From bfe65155d3aa79e0f132a18d409f77a4d52b4e50 Mon Sep 17 00:00:00 2001 From: philo Date: Mon, 14 Aug 2023 16:37:43 +0800 Subject: [PATCH 1/8] [Micas/Platform]platform support M2-W6520-24DC8QC Signed-off-by: philo --- .../M2-W6520-24DC8QC/port_config.ini | 33 + .../M2-W6520-24DC8QC/sai.profile | 1 + ...m2-w6520-24dc8qc-24x200G+8x400G-copper.yml | 4071 ++++++++++++++++ .../td4-m2-w6520-24dc8qc-24x200G+8x400G.yml | 4081 +++++++++++++++++ .../x86_64-micas_m2-w6520-24dc8qc-r0/cpu.cint | 85 + .../custom_led.bin | Bin 0 -> 532 bytes .../default_sku | 1 + .../x86_64-micas_m2-w6520-24dc8qc-r0/dev.xml | 371 ++ .../x86_64-micas_m2-w6520-24dc8qc-r0/fru.py | 961 ++++ .../installer.conf | 2 + .../latest_firmware/bios_upgrade_header.bin | Bin 0 -> 8388729 bytes .../cpu_cpld_upgrade_header.vme | Bin 0 -> 292669 bytes .../latest_firmware/fpga_upgrade_header.bin | Bin 0 -> 2862215 bytes .../other_cpld_upgrade_header.vme | Bin 0 -> 1184174 bytes .../led_proc_init.soc | 7 + .../media_settings.json | 2692 +++++++++++ .../monitor.py | 402 ++ .../pcie.yaml | 581 +++ .../platform.json | 504 ++ .../platform_asic | 1 + .../platform_components.json | 37 + .../platform_env.conf | 1 + .../plugins/sfputil.py | 365 ++ .../plugins/ssd_util.py | 311 ++ .../pmon_daemon_control.json | 3 + .../system_health_monitoring_config.json | 0 platform/broadcom/one-image.mk | 1 + platform/broadcom/platform-modules-micas.dep | 9 + platform/broadcom/platform-modules-micas.mk | 19 + platform/broadcom/rules.dep | 1 + platform/broadcom/rules.mk | 1 + .../sonic-platform-modules-micas/LICENSE | 14 + .../common/Makefile | 42 + .../common/app/Makefile | 25 + .../common/app/dev_util/Makefile | 30 + .../common/app/dev_util/dfd_debug.c | 43 + .../common/app/dev_util/dfd_utest.c | 2121 +++++++++ .../common/app/dev_util/dfd_utest.h | 109 + .../common/app/firmware_upgrade/Makefile | 19 + .../common/app/firmware_upgrade/Rules.mk | 42 + .../firmware_upgrade/firmware_driver/Makefile | 19 + .../firmware_driver_cpld/Makefile | 23 + .../firmware_driver_cpld/firmware.c | 144 + .../firmware_driver_cpld/firmware_cpld.c | 384 ++ .../firmware_cpld_upgrade.c | 1879 ++++++++ .../firmware_driver_cpld/include/firmware.h | 82 + .../include/firmware_cpld.h | 64 + .../firmware_driver_cpld/include/jbi.h | 15 + .../firmware_driver_cpld/jbicomp.c | 438 ++ .../firmware_driver_cpld/jbicomp.h | 37 + .../firmware_driver_cpld/jbiexprt.h | 224 + .../firmware_driver_cpld/jbijtag.c | 1679 +++++++ .../firmware_driver_cpld/jbijtag.h | 146 + .../firmware_driver_cpld/jbimain.c | 3362 ++++++++++++++ .../firmware_driver_cpld/jbiport.h | 45 + .../firmware_driver_cpld/jbistub.c | 2518 ++++++++++ .../firmware_driver_cpld/jbistub.h | 95 + .../firmware_driver_ispvme/Makefile | 22 + .../firmware_cpld_ispvme.c | 450 ++ .../firmware_cpld_upgrade_ispvme.c | 691 +++ .../firmware_driver_ispvme/firmware_ispvme.c | 140 + .../include/firmware_cpld_ispvme.h | 70 + .../include/firmware_ispvme.h | 86 + .../firmware_driver_sysfs/Makefile | 22 + .../firmware_driver_sysfs/firmware.c | 143 + .../firmware_driver_sysfs/firmware_sysfs.c | 495 ++ .../firmware_sysfs_upgrade.c | 258 ++ .../include/firmware_sysfs.h | 88 + .../include/firmware_sysfs_upgrade.h | 72 + .../include/firmware_upgrade.h | 57 + .../firmware_upgrade/Makefile | 33 + .../firmware_upgrade/firmware_upgrade/crc32.c | 216 + .../firmware_upgrade/firmware_upgrade/debug.c | 60 + .../firmware_upgrade/firmware_app.c | 985 ++++ .../fw_upg_gpio_vme/hardware.c | 263 ++ .../fw_upg_gpio_vme/ispvm_ui.c | 837 ++++ .../fw_upg_gpio_vme/ivm_core.c | 3097 +++++++++++++ .../fw_upg_isc/firmware_upgrade_isc.c | 68 + .../fw_upg_mtd/firmware_upgrade_mtd.c | 446 ++ .../fw_upg_mtd/firmware_upgrade_mtd.h | 32 + .../firmware_upgrade/fw_upg_mtd/mtd-abi.h | 259 ++ .../fw_upg_sysfs/firmware_upgrade_sysfs.c | 285 ++ .../fw_upg_sysfs/firmware_upgrade_sysfs.h | 16 + .../fw_upg_sysfs/fw_upg_spi_logic_dev.c | 1181 +++++ .../fw_upg_sysfs/fw_upg_spi_logic_dev.h | 90 + .../firmware_upgrade/include/debug.h | 34 + .../firmware_upgrade/include/firmware_app.h | 172 + .../firmware_upgrade/include/vmopcode.h | 192 + .../common/app/fw_upgrade/Makefile | 18 + .../common/app/fw_upgrade/Rules.mk | 42 + .../common/app/fw_upgrade/fw_upgrade/Makefile | 39 + .../app/fw_upgrade/fw_upgrade/fw_upgrade.c | 1632 +++++++ .../fw_upgrade/fw_upgrade/fw_upgrade_debug.c | 51 + .../fw_upgrade/include/fw_upgrade.h | 230 + .../fw_upgrade/include/fw_upgrade_debug.h | 25 + .../common/lib/algorithm/__init__.py | 0 .../common/lib/algorithm/hysteresis.py | 169 + .../common/lib/algorithm/openloop.py | 104 + .../common/lib/algorithm/pid.py | 106 + .../common/lib/eepromutil/__init__.py | 0 .../common/lib/eepromutil/fantlv.py | 192 + .../common/lib/eepromutil/fru.py | 961 ++++ .../common/lib/eepromutil/onietlv.py | 441 ++ .../common/lib/plat_hal/__init__.py | 0 .../common/lib/plat_hal/baseutil.py | 164 + .../common/lib/plat_hal/chassisbase.py | 318 ++ .../common/lib/plat_hal/component.py | 33 + .../common/lib/plat_hal/cpld.py | 66 + .../common/lib/plat_hal/cpu.py | 48 + .../common/lib/plat_hal/dcdc.py | 11 + .../common/lib/plat_hal/devicebase.py | 348 ++ .../common/lib/plat_hal/fan.py | 417 ++ .../common/lib/plat_hal/interface.py | 1327 ++++++ .../common/lib/plat_hal/led.py | 52 + .../common/lib/plat_hal/onie_e2.py | 127 + .../common/lib/plat_hal/osutil.py | 440 ++ .../common/lib/plat_hal/psu.py | 607 +++ .../common/lib/plat_hal/rotor.py | 149 + .../common/lib/plat_hal/sensor.py | 219 + .../common/lib/plat_hal/temp.py | 139 + .../common/lib/wbutil/__init__.py | 0 .../common/lib/wbutil/baseutil.py | 38 + .../common/lib/wbutil/smbus.py | 772 ++++ .../kernel_drivers_blacklist.conf | 5 + .../common/modules/Makefile | 58 + .../common/modules/dfd_tlveeprom.c | 516 +++ .../common/modules/dfd_tlveeprom.h | 121 + .../common/modules/fpga_i2c.h | 133 + .../common/modules/hw_test.c | 608 +++ .../common/modules/hw_test.h | 32 + .../common/modules/intel_spi/Makefile | 21 + .../modules/intel_spi/include/intel_spi.h | 23 + .../common/modules/intel_spi/intel_spi.c | 969 ++++ .../modules/intel_spi/intel_spi_platform.c | 167 + .../common/modules/linux-5.10/Makefile | 35 + .../common/modules/linux-5.10/wb_at24.c | 861 ++++ .../common/modules/linux-5.10/wb_csu550.c | 236 + .../modules/linux-5.10/wb_i2c_algo_bit.c | 725 +++ .../common/modules/linux-5.10/wb_i2c_gpio.c | 431 ++ .../modules/linux-5.10/wb_i2c_gpio_device.c | 133 + .../common/modules/linux-5.10/wb_i2c_i801.c | 2114 +++++++++ .../modules/linux-5.10/wb_i2c_mux_pca954x.c | 1332 ++++++ .../modules/linux-5.10/wb_i2c_mux_pca954x.h | 67 + .../modules/linux-5.10/wb_i2c_mux_pca9641.c | 1395 ++++++ .../modules/linux-5.10/wb_i2c_mux_pca9641.h | 64 + .../common/modules/linux-5.10/wb_ina3221.c | 1031 +++++ .../common/modules/linux-5.10/wb_isl68137.c | 572 +++ .../common/modules/linux-5.10/wb_lm75.c | 987 ++++ .../common/modules/linux-5.10/wb_lm75.h | 40 + .../common/modules/linux-5.10/wb_pmbus.h | 535 +++ .../common/modules/linux-5.10/wb_pmbus_core.c | 2780 +++++++++++ .../common/modules/linux-5.10/wb_tmp401.c | 798 ++++ .../common/modules/linux-5.10/wb_tps53622.c | 265 ++ .../common/modules/linux-5.10/wb_ucd9000.c | 675 +++ .../common/modules/linux-5.10/wb_xdpe12284.c | 171 + .../common/modules/phy/Makefile | 23 + .../common/modules/phy/mdio_bitbang.c | 232 + .../common/modules/phy/mdio_gpio.c | 217 + .../common/modules/phy/wb_mdio_gpio_device.c | 111 + .../common/modules/plat_sysfs/Makefile | 20 + .../modules/plat_sysfs/dev_cfg/Makefile | 25 + .../modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c | 812 ++++ .../plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c | 351 ++ .../plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c | 236 + .../plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c | 753 +++ .../plat_sysfs/dev_cfg/cfg/dfd_cfg_listnode.c | 82 + .../plat_sysfs/dev_cfg/dfd_fan_driver.c | 170 + .../modules/plat_sysfs/dev_cfg/dfd_module.c | 95 + .../plat_sysfs/dev_cfg/dfd_psu_driver.c | 70 + .../plat_sysfs/dev_cfg/dfd_sensors_driver.c | 149 + .../plat_sysfs/dev_cfg/dfd_sff_driver.c | 56 + .../plat_sysfs/dev_cfg/dfd_slot_driver.c | 27 + .../plat_sysfs/dev_cfg/include/dfd_cfg.h | 99 + .../dev_cfg/include/dfd_cfg_adapter.h | 46 + .../plat_sysfs/dev_cfg/include/dfd_cfg_file.h | 37 + .../plat_sysfs/dev_cfg/include/dfd_cfg_info.h | 117 + .../dev_cfg/include/dfd_cfg_listnode.h | 30 + .../dev_cfg/include/dfd_fan_driver.h | 18 + .../plat_sysfs/dev_cfg/include/dfd_module.h | 96 + .../dev_cfg/include/dfd_psu_driver.h | 10 + .../dev_cfg/include/dfd_sensors_driver.h | 10 + .../dev_cfg/include/dfd_sff_driver.h | 8 + .../dev_cfg/include/dfd_slot_driver.h | 6 + .../modules/plat_sysfs/dev_sysfs/Makefile | 21 + .../dev_sysfs/include/plat_switch.h | 86 + .../dev_sysfs/include/sysfs_common.h | 90 + .../modules/plat_sysfs/dev_sysfs/plat_fan.c | 501 ++ .../modules/plat_sysfs/dev_sysfs/plat_psu.c | 426 ++ .../plat_sysfs/dev_sysfs/plat_sensor.c | 452 ++ .../modules/plat_sysfs/dev_sysfs/plat_sff.c | 287 ++ .../modules/plat_sysfs/dev_sysfs/plat_slot.c | 663 +++ .../plat_sysfs/dev_sysfs/plat_switch.c | 131 + .../common/modules/platform_common.h | 74 + .../common/modules/platform_common_module.c | 210 + .../common/modules/spi-bitbang-txrx.h | 107 + .../common/modules/wb_eeprom_93xx46.c | 558 +++ .../common/modules/wb_fpga_i2c_bus_drv.c | 1120 +++++ .../common/modules/wb_fpga_pca954x_drv.c | 534 +++ .../common/modules/wb_fpga_pcie.c | 164 + .../common/modules/wb_gpio_d1500.c | 367 ++ .../common/modules/wb_gpio_device.c | 54 + .../common/modules/wb_i2c_dev.c | 774 ++++ .../common/modules/wb_i2c_dev.h | 20 + .../common/modules/wb_i2c_ocores.c | 1143 +++++ .../common/modules/wb_i2c_ocores.h | 28 + .../common/modules/wb_io_dev.c | 571 +++ .../common/modules/wb_io_dev.h | 21 + .../common/modules/wb_lpc_drv.c | 166 + .../common/modules/wb_lpc_drv.h | 18 + .../common/modules/wb_mac_bsc.c | 660 +++ .../common/modules/wb_optoe.c | 1192 +++++ .../common/modules/wb_pcie_dev.c | 770 ++++ .../common/modules/wb_pcie_dev.h | 26 + .../common/modules/wb_platform_i2c_dev.c | 749 +++ .../common/modules/wb_platform_i2c_dev.h | 19 + .../common/modules/wb_spi_93xx46.c | 111 + .../common/modules/wb_spi_dev.c | 684 +++ .../common/modules/wb_spi_dev.h | 17 + .../common/modules/wb_spi_gpio.c | 477 ++ .../common/modules/wb_spi_gpio_device.c | 153 + .../common/modules/wb_spi_nor_device.c | 87 + .../common/modules/wb_spi_ocores.c | 1025 +++++ .../common/modules/wb_spi_ocores.h | 21 + .../common/modules/wb_uio_irq.c | 282 ++ .../common/modules/wb_wdt.c | 1038 +++++ .../common/modules/wb_wdt.h | 46 + .../common/modules/wb_xdpe132g5c.c | 574 +++ .../common/script/auto_update.py | 196 + .../common/script/avscontrol.py | 203 + .../common/script/dev_monitor.py | 303 ++ .../common/script/generate_airflow.py | 236 + .../common/script/hal_fanctrl.py | 1135 +++++ .../common/script/hal_ledctrl.py | 830 ++++ .../common/script/hal_pltfm.py | 492 ++ .../common/script/intelligent_monitor.py | 144 + .../script/intelligent_monitor/monitor_fan.py | 284 ++ .../common/script/platform_common.py | 178 + .../common/script/platform_config.py | 184 + .../common/script/platform_driver.py | 258 ++ .../common/script/platform_e2.py | 434 ++ .../common/script/platform_intf.py | 367 ++ .../common/script/platform_ipmi.py | 92 + .../common/script/platform_manufacturer.py | 562 +++ .../common/script/platform_process.py | 405 ++ .../common/script/platform_sensors.py | 253 + .../common/script/platform_test.py | 142 + .../common/script/platform_util.py | 838 ++++ .../common/script/pmon_syslog.py | 519 +++ .../common/script/reboot_cause.py | 183 + .../common/script/reboot_ctrl.py | 150 + .../common/script/sensors | 8 + .../common/script/sfp_highest_temperatue.py | 148 + .../common/script/slot_monitor.py | 253 + .../common/script/ssdmon | 82 + .../common/script/tty_console.py | 91 + .../common/script/upgrade.py | 991 ++++ .../common/script/warm_upgrade.py | 514 +++ .../common/service/platform_driver.service | 15 + .../common/service/platform_process.service | 16 + .../common/sonic_platform/__init__.py | 2 + .../common/sonic_platform/chassis.py | 530 +++ .../common/sonic_platform/component.py | 226 + .../common/sonic_platform/dcdc.py | 85 + .../common/sonic_platform/eeprom.py | 92 + .../common/sonic_platform/fan.py | 308 ++ .../common/sonic_platform/fan_drawer.py | 167 + .../common/sonic_platform/pcie.py | 21 + .../common/sonic_platform/platform.py | 24 + .../common/sonic_platform/psu.py | 359 ++ .../common/sonic_platform/sfp.py | 620 +++ .../common/sonic_platform/thermal.py | 234 + .../common/sonic_platform/watchdog.py | 236 + .../debian/changelog | 5 + .../debian/compat | 1 + .../debian/control | 33 + .../debian/copyright | 15 + ...tform-modules-micas-m2-w6510-48v8c.install | 1 + ...form-modules-micas-m2-w6510-48v8c.postinst | 10 + ...orm-modules-micas-m2-w6520-24dc8qc.install | 1 + ...rm-modules-micas-m2-w6520-24dc8qc.postinst | 10 + .../debian/rule.mk | 6 + .../sonic-platform-modules-micas/debian/rules | 92 + .../.upgrade_test/cpld_test_header.vme | Bin 0 -> 406 bytes .../.upgrade_test/fpga_test_header.bin | 10 + .../m2-w6510-48v8c/Makefile | 28 + .../x86_64_micas_m2_w6510_48v8c_r0_config.py | 1110 +++++ ..._64_micas_m2_w6510_48v8c_r0_port_config.py | 7 + .../x86_64_micas_m2_w6510_48v8c_r0_device.py | 1233 +++++ ..._micas_m2_w6510_48v8c_r0_exhaust_device.py | 1233 +++++ .../x86_64_micas_m2_w6510_48v8c_r0_monitor.py | 206 + .../m2-w6510-48v8c/modules/driver/Makefile | 15 + .../driver/wb_firmware_upgrade_device.c | 174 + .../modules/driver/wb_i2c_dev_device.c | 140 + .../driver/wb_i2c_mux_pca954x_device.c | 296 ++ .../modules/driver/wb_i2c_ocores_device.c | 423 ++ .../modules/driver/wb_io_dev_device.c | 103 + .../modules/driver/wb_lpc_drv_device.c | 130 + .../modules/driver/wb_pcie_dev_device.c | 93 + .../plat_sysfs_cfg/WB_PLAT_CPLD.cfg | 41 + .../plat_sysfs_cfg/WB_PLAT_FAN.cfg | 304 ++ .../plat_sysfs_cfg/WB_PLAT_PSU.cfg | 64 + .../plat_sysfs_cfg/WB_PLAT_SFF.cfg | 521 +++ .../plat_sysfs_cfg/cfg_file_name | 4 + .../m2-w6510-48v8c/setup.py | 39 + .../refresh_base_cpld_header.vme | Bin 0 -> 292 bytes .../.cpld_refresh/refresh_cpu_cpld_header.vme | Bin 0 -> 292 bytes .../.cpld_refresh/refresh_fan_cpld_header.vme | Bin 0 -> 296 bytes .../refresh_maca_cpld_header.vme | Bin 0 -> 297 bytes .../refresh_macb_cpld_header.vme | Bin 0 -> 297 bytes .../.upgrade_test/cpld_test_header.vme | Bin 0 -> 467 bytes .../.upgrade_test/fpga_test_header.bin | 10 + .../m2-w6520-24dc8qc/Makefile | 31 + ...x86_64_micas_m2_w6520_24dc8qc_r0_config.py | 1438 ++++++ ...4_micas_m2_w6520_24dc8qc_r0_port_config.py | 7 + ...x86_64_micas_m2_w6520_24dc8qc_r0_device.py | 1190 +++++ ...86_64_micas_m2_w6520_24dc8qc_r0_monitor.py | 207 + .../m2-w6520-24dc8qc/modules/driver/Makefile | 15 + .../driver/wb_firmware_upgrade_device.c | 200 + .../modules/driver/wb_fpga_i2c_bus_device.c | 854 ++++ .../modules/driver/wb_fpga_pca954x_device.c | 309 ++ .../modules/driver/wb_i2c_dev_device.c | 155 + .../modules/driver/wb_io_dev_device.c | 138 + .../modules/driver/wb_lpc_drv_device.c | 130 + .../modules/driver/wb_pcie_dev_device.c | 93 + .../plat_sysfs_cfg/WB_PLAT_CPLD.cfg | 37 + .../plat_sysfs_cfg/WB_PLAT_FAN.cfg | 437 ++ .../plat_sysfs_cfg/WB_PLAT_PSU.cfg | 64 + .../plat_sysfs_cfg/WB_PLAT_SFF.cfg | 383 ++ .../plat_sysfs_cfg/cfg_file_name | 4 + .../m2-w6520-24dc8qc/setup.py | 39 + src/sonic-device-data/tests/permitted_list | 5 + 331 files changed, 112112 insertions(+) create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/sai.profile create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/cpu.cint create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/custom_led.bin create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/default_sku create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/dev.xml create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/fru.py create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/fpga_upgrade_header.bin create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/led_proc_init.soc create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/media_settings.json create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py create mode 100755 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pcie.yaml create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_asic create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/sfputil.py create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/ssd_util.py create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pmon_daemon_control.json create mode 100755 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/system_health_monitoring_config.json create mode 100644 platform/broadcom/platform-modules-micas.dep create mode 100644 platform/broadcom/platform-modules-micas.mk create mode 100644 platform/broadcom/sonic-platform-modules-micas/LICENSE create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_debug.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Rules.mk create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade_debug.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade_debug.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/__init__.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/hysteresis.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/__init__.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fantlv.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fru.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/onietlv.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/__init__.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/baseutil.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/chassisbase.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/component.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpld.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpu.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/dcdc.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/led.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/onie_e2.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/osutil.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/temp.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/__init__.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/baseutil.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/smbus.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/fpga_i2c.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_csu550.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_algo_bit.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_i801.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tps53622.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/phy/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_gpio.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_listnode.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_module.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_psu_driver.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sensors_driver.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sff_driver.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_slot_driver.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_adapter.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_file.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_listnode.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_fan_driver.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_module.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_psu_driver.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sensors_driver.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sff_driver.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_slot_driver.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/plat_switch.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/sysfs_common.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_fan.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_psu.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sensor.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sff.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_slot.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common_module.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/spi-bitbang-txrx.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_d1500.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_93xx46.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_nor_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_uio_irq.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/auto_update.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/dev_monitor.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/hal_ledctrl.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/hal_pltfm.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor/monitor_fan.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_driver.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_ipmi.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_manufacturer.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_test.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/platform_util.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/pmon_syslog.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/reboot_cause.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/reboot_ctrl.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/sensors create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/sfp_highest_temperatue.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/slot_monitor.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/ssdmon create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/tty_console.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/upgrade.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/warm_upgrade.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/service/platform_driver.service create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/service/platform_process.service create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/__init__.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/chassis.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/component.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/dcdc.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/eeprom.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan_drawer.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/pcie.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/platform.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/thermal.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/watchdog.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/changelog create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/compat create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/control create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/copyright create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.install create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.postinst create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.install create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.postinst create mode 100644 platform/broadcom/sonic-platform-modules-micas/debian/rule.mk create mode 100755 platform/broadcom/sonic-platform-modules-micas/debian/rules create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/cpld_test_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_port_config.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_monitor.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_dev_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_mux_pca954x_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_ocores_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_io_dev_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_lpc_drv_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_pcie_dev_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_CPLD.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_FAN.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_PSU.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_SFF.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/cfg_file_name create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/setup.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_base_cpld_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_cpu_cpld_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_fan_cpld_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_maca_cpld_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_macb_cpld_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/cpld_test_header.vme create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/fpga_test_header.bin create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/Makefile create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/config/x86_64_micas_m2_w6520_24dc8qc_r0_config.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/config/x86_64_micas_m2_w6520_24dc8qc_r0_port_config.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_device.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_monitor.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_firmware_upgrade_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_i2c_bus_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_pca954x_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_i2c_dev_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_io_dev_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_lpc_drv_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_pcie_dev_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_CPLD.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_FAN.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_PSU.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_SFF.cfg create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/cfg_file_name create mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/setup.py diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini new file mode 100644 index 000000000000..f4b5b5f82571 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini @@ -0,0 +1,33 @@ +# name lanes alias index speed +Ethernet1 25,26,27,28 twoHundredGigE0/1 0 200000 +Ethernet2 29,30,31,32 twoHundredGigE0/2 1 200000 +Ethernet3 41,42,43,44 twoHundredGigE0/3 2 200000 +Ethernet4 45,46,47,48 twoHundredGigE0/4 3 200000 +Ethernet5 49,50,51,52 twoHundredGigE0/5 4 200000 +Ethernet6 53,54,55,56 twoHundredGigE0/6 5 200000 +Ethernet7 57,58,59,60 twoHundredGigE0/7 6 200000 +Ethernet8 61,62,63,64 twoHundredGigE0/8 7 200000 +Ethernet9 9,10,11,12 twoHundredGigE0/9 8 200000 +Ethernet10 13,14,15,16 twoHundredGigE0/10 9 200000 +Ethernet11 17,18,19,20 twoHundredGigE0/11 10 200000 +Ethernet12 21,22,23,24 twoHundredGigE0/12 11 200000 +Ethernet13 81,82,83,84 twoHundredGigE0/13 12 200000 +Ethernet14 85,86,87,88 twoHundredGigE0/14 13 200000 +Ethernet15 89,90,91,92 twoHundredGigE0/15 14 200000 +Ethernet16 93,94,95,96 twoHundredGigE0/16 15 200000 +Ethernet17 97,98,99,100 twoHundredGigE0/17 16 200000 +Ethernet18 101,102,103,104 twoHundredGigE0/18 17 200000 +Ethernet19 137,138,139,140 twoHundredGigE0/19 18 200000 +Ethernet20 141,142,143,144 twoHundredGigE0/20 19 200000 +Ethernet21 145,146,147,148 twoHundredGigE0/21 20 200000 +Ethernet22 149,150,151,152 twoHundredGigE0/22 21 200000 +Ethernet23 153,154,155,156 twoHundredGigE0/23 22 200000 +Ethernet24 157,158,159,160 twoHundredGigE0/24 23 200000 +Ethernet25 1,2,3,4,5,6,7,8 fourHundredGigE0/1 24 400000 +Ethernet26 33,34,35,36,37,38,39,40 fourHundredGigE0/2 25 400000 +Ethernet27 65,66,67,68,69,70,71,72 fourHundredGigE0/3 26 400000 +Ethernet28 73,74,75,76,77,78,79,80 fourHundredGigE0/4 27 400000 +Ethernet29 105,106,107,108,109,110,111,112 fourHundredGigE0/5 28 400000 +Ethernet30 113,114,115,116,117,118,119,120 fourHundredGigE0/6 29 400000 +Ethernet31 121,122,123,124,125,126,127,128 fourHundredGigE0/7 30 400000 +Ethernet32 129,130,131,132,133,134,135,136 fourHundredGigE0/8 31 400000 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/sai.profile b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/sai.profile new file mode 100644 index 000000000000..4b3cbf7154af --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/sai.profile @@ -0,0 +1 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml new file mode 100644 index 000000000000..700edb678f1c --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml @@ -0,0 +1,4071 @@ +# +# BCM56880 128x100g port configuration. +# +# configuration yaml file +# device: +# : +# : +# ? +# : +# : +# ... +# : +# : +# : +# : +# ... +# : +# +# $Copyright: (c) 2019 Broadcom. +# Broadcom Proprietary and Confidential. All rights reserved.$ +# + +--- +bcm_device: + 0: + global: + bcm_tunnel_term_compatible_mode: 1 + vlan_flooding_l2mc_num_reserved: 2048 + l3_alpm_template: 2 + l3_alpm2_bnk_threshold: 100 + uft_mode: 1 + l3_enable: 1 + l2_hitbit_enable: 0 + pktio_mode: 1 + warmboot_knet_shutdown_mode: 1 + sai_optimized_mmu: 1 +... + +--- +bcm_device: + 0: + port: + 11: + dport_map_port: 1 + 13: + dport_map_port: 2 + 20: + dport_map_port: 3 + 22: + dport_map_port: 4 + 24: + dport_map_port: 5 + 26: + dport_map_port: 6 + 28: + dport_map_port: 7 + 30: + dport_map_port: 8 + 3: + dport_map_port: 9 + 5: + dport_map_port: 10 + 7: + dport_map_port: 11 + 9: + dport_map_port: 12 + 40: + dport_map_port: 13 + 42: + dport_map_port: 14 + 44: + dport_map_port: 15 + 46: + dport_map_port: 16 + 48: + dport_map_port: 17 + 50: + dport_map_port: 18 + 64: + dport_map_port: 19 + 66: + dport_map_port: 20 + 68: + dport_map_port: 21 + 70: + dport_map_port: 22 + 72: + dport_map_port: 23 + 74: + dport_map_port: 24 + 1: + dport_map_port: 25 + 15: + dport_map_port: 26 + 32: + dport_map_port: 27 + 34: + dport_map_port: 28 + 52: + dport_map_port: 29 + 54: + dport_map_port: 30 + 60: + dport_map_port: 31 + 62: + dport_map_port: 32 + +... + +--- +device: + 0: + DEVICE_CONFIG: + # CORE CLOCK FREQUENCY + CORE_CLK_FREQ: CLK_1350MHZ + # PP CLOCK FREQUENCY + PP_CLK_FREQ: CLK_1350MHZ +... + +--- +device: + 0: + PC_PM_CORE: + ? + PC_PM_ID: 1 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x73510624 + RX_LANE_MAP: 0x46270513 + TX_POLARITY_FLIP: 0xa + RX_POLARITY_FLIP: 0x17 + ? + PC_PM_ID: 2 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x52317046 + RX_LANE_MAP: 0x31247056 + TX_POLARITY_FLIP: 0x90 + RX_POLARITY_FLIP: 0x47 + ? + PC_PM_ID: 3 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x23104567 + RX_LANE_MAP: 0x64752310 + TX_POLARITY_FLIP: 0x29 + RX_POLARITY_FLIP: 0x5a + ? + PC_PM_ID: 4 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x23104567 + RX_LANE_MAP: 0x64752310 + TX_POLARITY_FLIP: 0x29 + RX_POLARITY_FLIP: 0x5a + ? + PC_PM_ID: 5 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x25047361 + RX_LANE_MAP: 0x10452736 + TX_POLARITY_FLIP: 0xf5 + RX_POLARITY_FLIP: 0xc0 + ? + PC_PM_ID: 6 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45763210 + RX_LANE_MAP: 0x13026457 + TX_POLARITY_FLIP: 0xa + RX_POLARITY_FLIP: 0xf9 + ? + PC_PM_ID: 7 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45763210 + RX_LANE_MAP: 0x13026457 + TX_POLARITY_FLIP: 0xa + RX_POLARITY_FLIP: 0xf9 + ? + PC_PM_ID: 8 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45673210 + RX_LANE_MAP: 0x13026457 + TX_POLARITY_FLIP: 0x4a + RX_POLARITY_FLIP: 0xf3 + ? + PC_PM_ID: 9 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x02476531 + RX_LANE_MAP: 0x05261734 + TX_POLARITY_FLIP: 0xdf + RX_POLARITY_FLIP: 0x84 + ? + PC_PM_ID: 10 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x37065241 + RX_LANE_MAP: 0x04175263 + TX_POLARITY_FLIP: 0x36 + RX_POLARITY_FLIP: 0x39 + ? + PC_PM_ID: 11 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x54762301 + RX_LANE_MAP: 0x13025467 + TX_POLARITY_FLIP: 0x70 + RX_POLARITY_FLIP: 0x6f + ? + PC_PM_ID: 12 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x73125046 + RX_LANE_MAP: 0x21437056 + TX_POLARITY_FLIP: 0x78 + RX_POLARITY_FLIP: 0x5c + ? + PC_PM_ID: 13 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x32104567 + RX_LANE_MAP: 0x64572310 + TX_POLARITY_FLIP: 0xd6 + RX_POLARITY_FLIP: 0xad + ? + PC_PM_ID: 14 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x03172465 + RX_LANE_MAP: 0x45173620 + TX_POLARITY_FLIP: 0xed + RX_POLARITY_FLIP: 0x36 + ? + PC_PM_ID: 15 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x36175042 + RX_LANE_MAP: 0x04176253 + TX_POLARITY_FLIP: 0x10 + RX_POLARITY_FLIP: 0xfa + ? + PC_PM_ID: 16 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x74615203 + RX_LANE_MAP: 0x51704236 + TX_POLARITY_FLIP: 0x5f + RX_POLARITY_FLIP: 0x56 + ? + PC_PM_ID: 17 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x26374051 + RX_LANE_MAP: 0x37046251 + TX_POLARITY_FLIP: 0xaa + RX_POLARITY_FLIP: 0x21 + ? + PC_PM_ID: 18 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45672310 + RX_LANE_MAP: 0x32105476 + TX_POLARITY_FLIP: 0x15 + RX_POLARITY_FLIP: 0x92 + ? + PC_PM_ID: 19 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x70465321 + RX_LANE_MAP: 0x63107542 + TX_POLARITY_FLIP: 0xe6 + RX_POLARITY_FLIP: 0xf2 + ? + PC_PM_ID: 20 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x23015476 + RX_LANE_MAP: 0x64752301 + TX_POLARITY_FLIP: 0x50 + RX_POLARITY_FLIP: 0x6c +... + +--- +device: + 0: + PC_PORT_PHYS_MAP: + ? + # CPU port + PORT_ID: 0 + : + PC_PHYS_PORT_ID: 0 + ? + PORT_ID: 1 + : + PC_PHYS_PORT_ID: 1 + ? + PORT_ID: 3 + : + PC_PHYS_PORT_ID: 9 + ? + PORT_ID: 5 + : + PC_PHYS_PORT_ID: 13 + ? + PORT_ID: 7 + : + PC_PHYS_PORT_ID: 17 + ? + PORT_ID: 9 + : + PC_PHYS_PORT_ID: 21 + ? + PORT_ID: 11 + : + PC_PHYS_PORT_ID: 25 + ? + PORT_ID: 13 + : + PC_PHYS_PORT_ID: 29 + ? + PORT_ID: 15 + : + PC_PHYS_PORT_ID: 33 + ? + PORT_ID: 20 + : + PC_PHYS_PORT_ID: 41 + ? + PORT_ID: 22 + : + PC_PHYS_PORT_ID: 45 + ? + PORT_ID: 24 + : + PC_PHYS_PORT_ID: 49 + ? + PORT_ID: 26 + : + PC_PHYS_PORT_ID: 53 + ? + PORT_ID: 28 + : + PC_PHYS_PORT_ID: 57 + ? + PORT_ID: 30 + : + PC_PHYS_PORT_ID: 61 + ? + PORT_ID: 32 + : + PC_PHYS_PORT_ID: 65 + ? + PORT_ID: 34 + : + PC_PHYS_PORT_ID: 73 + ? + PORT_ID: 40 + : + PC_PHYS_PORT_ID: 81 + ? + PORT_ID: 42 + : + PC_PHYS_PORT_ID: 85 + ? + PORT_ID: 44 + : + PC_PHYS_PORT_ID: 89 + ? + PORT_ID: 46 + : + PC_PHYS_PORT_ID: 93 + ? + PORT_ID: 48 + : + PC_PHYS_PORT_ID: 97 + ? + PORT_ID: 50 + : + PC_PHYS_PORT_ID: 101 + ? + PORT_ID: 52 + : + PC_PHYS_PORT_ID: 105 + ? + PORT_ID: 54 + : + PC_PHYS_PORT_ID: 113 + ? + PORT_ID: 60 + : + PC_PHYS_PORT_ID: 121 + ? + PORT_ID: 62 + : + PC_PHYS_PORT_ID: 129 + ? + PORT_ID: 64 + : + PC_PHYS_PORT_ID: 137 + ? + PORT_ID: 66 + : + PC_PHYS_PORT_ID: 141 + ? + PORT_ID: 68 + : + PC_PHYS_PORT_ID: 145 + ? + PORT_ID: 70 + : + PC_PHYS_PORT_ID: 149 + ? + PORT_ID: 72 + : + PC_PHYS_PORT_ID: 153 + ? + PORT_ID: 74 + : + PC_PHYS_PORT_ID: 157 + +... + +--- +device: + 0: + PC_PORT: + ? + PORT_ID: 0 + : + ENABLE: 1 + SPEED: 10000 + NUM_LANES: 1 + ? + PORT_ID: [3, 5, 7, 9, 11, 13, + 20, 22, 24, 26, 28, 30, + 40, 42, 44, 46, 48, 50, + 64, 66, 68, 70, 72, 74] + : + ENABLE: 0 + SPEED: 200000 + FEC_MODE: PC_FEC_RS544_2XN + NUM_LANES: 4 + LINK_TRAINING: 0 + MAX_FRAME_SIZE: 9416 + ? + PORT_ID: [1, 15, 32, 34, 52, 54, 60, 62] + : + ENABLE: 0 + SPEED: 400000 + FEC_MODE: PC_FEC_RS544_2XN + NUM_LANES: 8 + LINK_TRAINING: 0 + MAX_FRAME_SIZE: 9416 + +... + +--- +device: + 0: + TM_SCHEDULER_CONFIG: + NUM_MC_Q: NUM_MC_Q_4 +... + +--- +device: + 0: + PC_TX_TAPS: + ? + PORT_ID: 11 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 11 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 11 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 11 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 13 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 13 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 13 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 13 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 20 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 20 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 20 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 20 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 22 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 22 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 22 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 22 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 24 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 24 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 24 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 24 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 26 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 26 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 26 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 26 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 28 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 28 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 28 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 28 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 30 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 30 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 30 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 30 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 3 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 3 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 3 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 3 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 5 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 5 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 5 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 5 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 7 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 7 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 7 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 7 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 9 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 9 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 9 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 9 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 40 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 40 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 40 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 40 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 42 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 42 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 42 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 42 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 44 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 44 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 44 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 44 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 46 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 46 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 46 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 46 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 48 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 48 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 48 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 48 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 50 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 50 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 140 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 24 + TX_PRE_SIGN: 1 + TX_PRE2: 2 + ? + PORT_ID: 50 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 50 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 64 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 64 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 64 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 64 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 66 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 66 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 66 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 66 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 68 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 68 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 68 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 68 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 70 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 70 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 70 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 70 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 72 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 72 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 72 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 72 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 74 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 74 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 74 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 74 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 1 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 15 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 32 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 34 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 52 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 54 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 60 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 + ? + PORT_ID: 62 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 28 + TX_PRE_SIGN: 1 + TX_PRE2: 6 +... diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml new file mode 100644 index 000000000000..703a40619a47 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml @@ -0,0 +1,4081 @@ +# +# BCM56880 128x100g port configuration. +# +# configuration yaml file +# device: +# : +#
: +# ? +# : +# : +# ... +# : +# : +# : +# : +# ... +# : +# +# $Copyright: (c) 2019 Broadcom. +# Broadcom Proprietary and Confidential. All rights reserved.$ +# + +--- +bcm_device: + 0: + global: + bcm_tunnel_term_compatible_mode: 1 + vlan_flooding_l2mc_num_reserved: 0 + l3_alpm_template: 2 + l3_alpm2_bnk_threshold: 100 + svi_my_station_optimization: 1 + sai_nbr_bcast_ifp_optimized: 2 + uft_mode: 1 + l3_enable: 1 + l2_hitbit_enable: 0 + pktio_mode: 1 + sai_optimized_mmu: 1 + warmboot_knet_shutdown_mode: 1 +... + +--- +device: + 0: + FP_CONFIG: + #FP_ING_OPERMODE: PIPE_UNIQUE + FP_ING_OPERMODE: GLOBAL_PIPE_AWARE +... + +--- +bcm_device: + 0: + port: + 11: + dport_map_port: 1 + 13: + dport_map_port: 2 + 20: + dport_map_port: 3 + 22: + dport_map_port: 4 + 24: + dport_map_port: 5 + 26: + dport_map_port: 6 + 28: + dport_map_port: 7 + 30: + dport_map_port: 8 + 3: + dport_map_port: 9 + 5: + dport_map_port: 10 + 7: + dport_map_port: 11 + 9: + dport_map_port: 12 + 40: + dport_map_port: 13 + 42: + dport_map_port: 14 + 44: + dport_map_port: 15 + 46: + dport_map_port: 16 + 48: + dport_map_port: 17 + 50: + dport_map_port: 18 + 64: + dport_map_port: 19 + 66: + dport_map_port: 20 + 68: + dport_map_port: 21 + 70: + dport_map_port: 22 + 72: + dport_map_port: 23 + 74: + dport_map_port: 24 + 1: + dport_map_port: 25 + 15: + dport_map_port: 26 + 32: + dport_map_port: 27 + 34: + dport_map_port: 28 + 52: + dport_map_port: 29 + 54: + dport_map_port: 30 + 60: + dport_map_port: 31 + 62: + dport_map_port: 32 + +... + +--- +device: + 0: + DEVICE_CONFIG: + # CORE CLOCK FREQUENCY + CORE_CLK_FREQ: CLK_1350MHZ + # PP CLOCK FREQUENCY + PP_CLK_FREQ: CLK_1350MHZ +... + +--- +device: + 0: + PC_PM_CORE: + ? + PC_PM_ID: 1 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x73510624 + RX_LANE_MAP: 0x46270513 + TX_POLARITY_FLIP: 0xa + RX_POLARITY_FLIP: 0x17 + ? + PC_PM_ID: 2 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x52317046 + RX_LANE_MAP: 0x31247056 + TX_POLARITY_FLIP: 0x90 + RX_POLARITY_FLIP: 0x47 + ? + PC_PM_ID: 3 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x23104567 + RX_LANE_MAP: 0x64752310 + TX_POLARITY_FLIP: 0x29 + RX_POLARITY_FLIP: 0x5a + ? + PC_PM_ID: 4 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x23104567 + RX_LANE_MAP: 0x64752310 + TX_POLARITY_FLIP: 0x29 + RX_POLARITY_FLIP: 0x5a + ? + PC_PM_ID: 5 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x25047361 + RX_LANE_MAP: 0x10452736 + TX_POLARITY_FLIP: 0xf5 + RX_POLARITY_FLIP: 0xc0 + ? + PC_PM_ID: 6 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45763210 + RX_LANE_MAP: 0x13026457 + TX_POLARITY_FLIP: 0xa + RX_POLARITY_FLIP: 0xf9 + ? + PC_PM_ID: 7 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45763210 + RX_LANE_MAP: 0x13026457 + TX_POLARITY_FLIP: 0xa + RX_POLARITY_FLIP: 0xf9 + ? + PC_PM_ID: 8 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45673210 + RX_LANE_MAP: 0x13026457 + TX_POLARITY_FLIP: 0x4a + RX_POLARITY_FLIP: 0xf3 + ? + PC_PM_ID: 9 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x02476531 + RX_LANE_MAP: 0x05261734 + TX_POLARITY_FLIP: 0xdf + RX_POLARITY_FLIP: 0x84 + ? + PC_PM_ID: 10 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x37065241 + RX_LANE_MAP: 0x04175263 + TX_POLARITY_FLIP: 0x36 + RX_POLARITY_FLIP: 0x39 + ? + PC_PM_ID: 11 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x54762301 + RX_LANE_MAP: 0x13025467 + TX_POLARITY_FLIP: 0x70 + RX_POLARITY_FLIP: 0x6f + ? + PC_PM_ID: 12 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x73125046 + RX_LANE_MAP: 0x21437056 + TX_POLARITY_FLIP: 0x78 + RX_POLARITY_FLIP: 0x5c + ? + PC_PM_ID: 13 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x32104567 + RX_LANE_MAP: 0x64572310 + TX_POLARITY_FLIP: 0xd6 + RX_POLARITY_FLIP: 0xad + ? + PC_PM_ID: 14 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x03172465 + RX_LANE_MAP: 0x45173620 + TX_POLARITY_FLIP: 0xed + RX_POLARITY_FLIP: 0x36 + ? + PC_PM_ID: 15 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x36175042 + RX_LANE_MAP: 0x04176253 + TX_POLARITY_FLIP: 0x10 + RX_POLARITY_FLIP: 0xfa + ? + PC_PM_ID: 16 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x74615203 + RX_LANE_MAP: 0x51704236 + TX_POLARITY_FLIP: 0x5f + RX_POLARITY_FLIP: 0x56 + ? + PC_PM_ID: 17 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x26374051 + RX_LANE_MAP: 0x37046251 + TX_POLARITY_FLIP: 0xaa + RX_POLARITY_FLIP: 0x21 + ? + PC_PM_ID: 18 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x45672310 + RX_LANE_MAP: 0x32105476 + TX_POLARITY_FLIP: 0x15 + RX_POLARITY_FLIP: 0x92 + ? + PC_PM_ID: 19 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x70465321 + RX_LANE_MAP: 0x63107542 + TX_POLARITY_FLIP: 0xe6 + RX_POLARITY_FLIP: 0xf2 + ? + PC_PM_ID: 20 + CORE_INDEX: 0 + : + TX_LANE_MAP_AUTO: 0 + RX_LANE_MAP_AUTO: 0 + TX_POLARITY_FLIP_AUTO: 0 + RX_POLARITY_FLIP_AUTO: 0 + TX_LANE_MAP: 0x23015476 + RX_LANE_MAP: 0x64752301 + TX_POLARITY_FLIP: 0x50 + RX_POLARITY_FLIP: 0x6c +... + +--- +device: + 0: + PC_PORT_PHYS_MAP: + ? + # CPU port + PORT_ID: 0 + : + PC_PHYS_PORT_ID: 0 + ? + PORT_ID: 1 + : + PC_PHYS_PORT_ID: 1 + ? + PORT_ID: 3 + : + PC_PHYS_PORT_ID: 9 + ? + PORT_ID: 5 + : + PC_PHYS_PORT_ID: 13 + ? + PORT_ID: 7 + : + PC_PHYS_PORT_ID: 17 + ? + PORT_ID: 9 + : + PC_PHYS_PORT_ID: 21 + ? + PORT_ID: 11 + : + PC_PHYS_PORT_ID: 25 + ? + PORT_ID: 13 + : + PC_PHYS_PORT_ID: 29 + ? + PORT_ID: 15 + : + PC_PHYS_PORT_ID: 33 + ? + PORT_ID: 20 + : + PC_PHYS_PORT_ID: 41 + ? + PORT_ID: 22 + : + PC_PHYS_PORT_ID: 45 + ? + PORT_ID: 24 + : + PC_PHYS_PORT_ID: 49 + ? + PORT_ID: 26 + : + PC_PHYS_PORT_ID: 53 + ? + PORT_ID: 28 + : + PC_PHYS_PORT_ID: 57 + ? + PORT_ID: 30 + : + PC_PHYS_PORT_ID: 61 + ? + PORT_ID: 32 + : + PC_PHYS_PORT_ID: 65 + ? + PORT_ID: 34 + : + PC_PHYS_PORT_ID: 73 + ? + PORT_ID: 40 + : + PC_PHYS_PORT_ID: 81 + ? + PORT_ID: 42 + : + PC_PHYS_PORT_ID: 85 + ? + PORT_ID: 44 + : + PC_PHYS_PORT_ID: 89 + ? + PORT_ID: 46 + : + PC_PHYS_PORT_ID: 93 + ? + PORT_ID: 48 + : + PC_PHYS_PORT_ID: 97 + ? + PORT_ID: 50 + : + PC_PHYS_PORT_ID: 101 + ? + PORT_ID: 52 + : + PC_PHYS_PORT_ID: 105 + ? + PORT_ID: 54 + : + PC_PHYS_PORT_ID: 113 + ? + PORT_ID: 60 + : + PC_PHYS_PORT_ID: 121 + ? + PORT_ID: 62 + : + PC_PHYS_PORT_ID: 129 + ? + PORT_ID: 64 + : + PC_PHYS_PORT_ID: 137 + ? + PORT_ID: 66 + : + PC_PHYS_PORT_ID: 141 + ? + PORT_ID: 68 + : + PC_PHYS_PORT_ID: 145 + ? + PORT_ID: 70 + : + PC_PHYS_PORT_ID: 149 + ? + PORT_ID: 72 + : + PC_PHYS_PORT_ID: 153 + ? + PORT_ID: 74 + : + PC_PHYS_PORT_ID: 157 + +... + +--- +device: + 0: + PC_PORT: + ? + PORT_ID: 0 + : + ENABLE: 1 + SPEED: 10000 + NUM_LANES: 1 + ? + PORT_ID: [3, 5, 7, 9, 11, 13, + 20, 22, 24, 26, 28, 30, + 40, 42, 44, 46, 48, 50, + 64, 66, 68, 70, 72, 74] + : + ENABLE: 0 + SPEED: 200000 + FEC_MODE: PC_FEC_RS544_2XN + NUM_LANES: 4 + LINK_TRAINING: 0 + MAX_FRAME_SIZE: 9416 + ? + PORT_ID: [1, 15, 32, 34, 52, 54, 60, 62] + : + ENABLE: 0 + SPEED: 400000 + FEC_MODE: PC_FEC_RS544_2XN + NUM_LANES: 8 + LINK_TRAINING: 0 + MAX_FRAME_SIZE: 9416 + +... + +--- +device: + 0: + TM_SCHEDULER_CONFIG: + NUM_MC_Q: NUM_MC_Q_4 +... + +--- +device: + 0: + PC_TX_TAPS: + ? + PORT_ID: 11 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 14 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 11 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 11 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 11 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 13 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 13 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 13 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 13 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 20 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 20 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 20 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 20 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 22 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 22 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 22 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 22 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 24 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 24 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 24 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 24 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 26 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 26 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 26 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 26 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 28 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 28 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 28 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 28 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 30 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 30 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 30 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 30 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 3 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 3 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 3 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 3 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 5 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 5 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 5 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 5 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 7 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 7 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 7 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 7 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 9 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 9 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 9 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 9 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 40 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 40 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 40 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 40 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 42 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 42 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 42 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 42 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 44 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 44 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 44 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 44 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 46 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 46 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 46 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 46 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 48 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 48 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 48 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 48 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 50 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 50 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 50 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 50 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 64 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 64 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 64 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 4 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 64 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 66 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 66 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 66 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 66 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 68 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 68 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 16 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 68 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 68 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 16 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 70 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 70 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 70 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 70 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 72 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 72 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 72 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 72 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 74 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 74 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 74 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 74 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 148 + TX_POST: 0 + TX_POST_SIGN: 0 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 124 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 1 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 15 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 32 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 34 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 52 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 54 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 132 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 60 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [0] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [1] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [2] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [3] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [4] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [5] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 144 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [6] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 124 + TX_POST: 8 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 8 + TX_PRE_SIGN: 1 + TX_PRE2: 0 + ? + PORT_ID: 62 + LANE_INDEX: [7] + : + TX_SIG_MODE: PC_SIG_MODE_PAM4 + TX_POST_AUTO: 0 + TX_MAIN_AUTO: 0 + TX_PRE_AUTO: 0 + TX_PRE2_AUTO: 0 + TX_POST2_AUTO: 0 + TX_POST3_AUTO: 0 + TX_AMP_AUTO: 0 + TX_MAIN: 136 + TX_POST: 12 + TX_POST_SIGN: 1 + TX_POST2: 0 + TX_POST2_SIGN: 0 + TX_POST3: 0 + TX_POST3_SIGN: 0 + TX_PRE: 12 + TX_PRE_SIGN: 1 + TX_PRE2: 0 +... diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/cpu.cint b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/cpu.cint new file mode 100644 index 000000000000..e286d3cf42a6 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/cpu.cint @@ -0,0 +1,85 @@ +cint_reset(); + +int cint_field_group_create(int unit, bcm_field_group_t grp) +{ + int rv; + + bcm_field_qset_t qset; + bcm_field_aset_t aset; + + BCM_FIELD_QSET_INIT(qset); + BCM_FIELD_QSET_ADD(qset,bcmFieldQualifyDstMac); + BCM_FIELD_QSET_ADD(qset, bcmFieldQualifyStageIngress); + + BCM_FIELD_ASET_INIT(aset); + BCM_FIELD_ASET_ADD(aset, bcmFieldActionCopyToCpu); + + rv = bcm_field_group_create_mode_id(unit, qset, 103, bcmFieldGroupModeAuto, grp); + if (rv != BCM_E_NONE) { + printf("bcm_field_group_create_mode_id failed, rv = %d\r\n", rv); + return -1; + } + printf("cint_field_group_create success!!!, rv = %d\r\n", rv); + + bcm_field_group_dump(unit,grp); + return 0; +} + +int cint_field_entry_create1(int unit, bcm_field_group_t grp,bcm_field_entry_t entry) +{ + int rv; + bcm_mac_t dst_mac = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + bcm_mac_t mac_mask = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + + rv = bcm_field_entry_create_id(unit, grp, entry); + if (rv != BCM_E_NONE) { + printf("bcm_field_entry_create_id failed, rv = %d\r\n", rv); + return -1; + } + + + rv =bcm_field_qualify_DstMac(unit, entry, dst_mac, mac_mask); + if (rv != BCM_E_NONE) { + printf("bcm_field_qualify_DstMac failed,ret = %d\r\n", rv); + bcm_field_entry_destroy(unit, entry); + return -1; + } + + rv = bcm_field_action_add(unit, entry, bcmFieldActionCopyToCpu, 1, 0); + if (rv != BCM_E_NONE) { + printf("bcm_field_action_add failed, rv = %d \r\n", rv); + bcm_field_entry_destroy(unit, entry); + return -1; + } + + rv = bcm_field_action_add(unit, entry, bcmFieldActionDrop, 1, 0); + if (rv != BCM_E_NONE) { + printf("bcm_field_action_add failed, rv = %d \r\n", rv); + bcm_field_entry_destroy(unit, entry); + return -1; + } + + rv = bcm_field_entry_install(unit, entry); + if (rv != BCM_E_NONE) { + printf("bcm_field_entry_install failed,ret = %d\r\n", rv); + bcm_field_entry_destroy(unit, entry); + return -1; + } + + printf("********************* BEGIN ****************************\r\n"); + bcm_field_entry_dump(unit, entry); + printf("*********************** END ****************************\r\n"); + + return 0; +} + +cint_field_group_create(0,5); +cint_field_entry_create1(0,5,2048); + +//bcm_field_entry_destroy(0, 2048); +//bcm_field_group_destroy(0, 5); + + + + + diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/custom_led.bin b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/custom_led.bin new file mode 100644 index 0000000000000000000000000000000000000000..d1b65a292f655b64393b895313007e3a8314a04f GIT binary patch literal 532 zcmaiwF-RK$6o&toc`67eSMJwMW_%wg_VTyhS&jy27> zfVLWwatM1&3b_5)2x?VD@nu3wsJiB9dhG0$d6!k5)TOkdxMFP^L!yp2=O(B(X9%e* z;yS*rq(1YX$#>kK#KrcY@AN^)Ff-9X-e361OX4nz&zH2pD7EjNT_vBGf_&AtXu5m< z_tiDQNhSHnt`0r9W(O9_tW;r}uUT(}6>r#SHCUHF3wu zg6)F0)A__tEd$T``UIKc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/fru.py b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/fru.py new file mode 100644 index 000000000000..f95164e03601 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/fru.py @@ -0,0 +1,961 @@ +#!/usr/bin/python3 +import collections +from datetime import datetime, timedelta +from bitarray import bitarray + + +__DEBUG__ = "N" + + +class FruException(Exception): + def __init__(self, message='fruerror', code=-100): + err = 'errcode: {0} message:{1}'.format(code, message) + Exception.__init__(self, err) + self.code = code + self.message = message + + +def e_print(err): + print("ERROR: " + err) + + +def d_print(debug_info): + if __DEBUG__ == "Y": + print(debug_info) + + +class FruUtil(): + @staticmethod + def decodeLength(value): + a = bitarray(8) + a.setall(True) + a[0:1] = 0 + a[1:2] = 0 + x = ord(a.tobytes()) + return x & ord(value) + + @staticmethod + def minToData(): + starttime = datetime(1996, 1, 1, 0, 0, 0) + endtime = datetime.now() + seconds = (endtime - starttime).total_seconds() + mins = seconds // 60 + m = int(round(mins)) + return m + + @staticmethod + def getTimeFormat(): + return datetime.now().strftime('%Y-%m-%d') + + @staticmethod + def getTypeLength(value): + if value is None or len(value) == 0: + return 0 + a = bitarray(8) + a.setall(False) + a[0:1] = 1 + a[1:2] = 1 + x = ord(a.tobytes()) + return x | len(value) + + @staticmethod + def checksum(b): + result = 0 + for item in b: + result += ord(item) + return (0x100 - (result & 0xff)) & 0xff + + +class BaseArea(object): + SUGGESTED_SIZE_COMMON_HEADER = 8 + SUGGESTED_SIZE_INTERNAL_USE_AREA = 72 + SUGGESTED_SIZE_CHASSIS_INFO_AREA = 32 + SUGGESTED_SIZE_BOARD_INFO_AREA = 80 + SUGGESTED_SIZE_PRODUCT_INFO_AREA = 80 + + INITVALUE = b'\x00' + resultvalue = INITVALUE * 256 + COMMON_HEAD_VERSION = b'\x01' + __childList = None + + def __init__(self, name="", size=0, offset=0): + self.__childList = [] + self._offset = offset + self.name = name + self._size = size + self._isPresent = False + self._data = b'\x00' * size + + @property + def childList(self): + return self.__childList + + @childList.setter + def childList(self, value): + self.__childList = value + + @property + def offset(self): + return self._offset + + @offset.setter + def offset(self, value): + self._offset = value + + @property + def size(self): + return self._size + + @size.setter + def size(self, value): + self._size = value + + @property + def data(self): + return self._data + + @data.setter + def data(self, value): + self._data = value + + @property + def isPresent(self): + return self._isPresent + + @isPresent.setter + def isPresent(self, value): + self._isPresent = value + + +class InternalUseArea(BaseArea): + pass + + +class ChassisInfoArea(BaseArea): + pass + + +class BoardInfoArea(BaseArea): + _boardTime = None + _fields = None + _mfg_date = None + areaversion = None + _boardversion = None + _language = None + + def __str__(self): + formatstr = "version : %x\n" \ + "length : %d \n" \ + "language : %x \n" \ + "mfg_date : %s \n" \ + "boardManufacturer : %s \n" \ + "boardProductName : %s \n" \ + "boardSerialNumber : %s \n" \ + "boardPartNumber : %s \n" \ + "fruFileId : %s \n" + + tmpstr = formatstr % (ord(self.boardversion), self.size, + self.language, self.getMfgRealData(), + self.boardManufacturer, self.boardProductName, + self.boardSerialNumber, self.boardPartNumber, + self.fruFileId) + for i in range(1, 11): + valtmp = "boardextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + tmpstr += "boardextra%d : %s \n" % (i, valtmpval) + else: + break + + return tmpstr + + def todict(self): + dic = collections.OrderedDict() + dic["boardversion"] = ord(self.boardversion) + dic["boardlength"] = self.size + dic["boardlanguage"] = self.language + dic["boardmfg_date"] = self.getMfgRealData() + dic["boardManufacturer"] = self.boardManufacturer + dic["boardProductName"] = self.boardProductName + dic["boardSerialNumber"] = self.boardSerialNumber + dic["boardPartNumber"] = self.boardPartNumber + dic["boardfruFileId"] = self.fruFileId + for i in range(1, 11): + valtmp = "boardextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + dic[valtmp] = valtmpval + else: + break + return dic + + def decodedata(self): + index = 0 + self.areaversion = self.data[index] + index += 1 + d_print("decode length :%d class size:%d" % + ((ord(self.data[index]) * 8), self.size)) + index += 2 + + timetmp = self.data[index: index + 3] + self.mfg_date = ord(timetmp[0]) | ( + ord(timetmp[1]) << 8) | (ord(timetmp[2]) << 16) + d_print("decode getMfgRealData :%s" % self.getMfgRealData()) + index += 3 + + templen = FruUtil.decodeLength(self.data[index]) + self.boardManufacturer = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardManufacturer:%s" % self.boardManufacturer) + + templen = FruUtil.decodeLength(self.data[index]) + self.boardProductName = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardProductName:%s" % self.boardProductName) + + templen = FruUtil.decodeLength(self.data[index]) + self.boardSerialNumber = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardSerialNumber:%s" % self.boardSerialNumber) + + templen = FruUtil.decodeLength(self.data[index]) + self.boardPartNumber = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardPartNumber:%s" % self.boardPartNumber) + + templen = FruUtil.decodeLength(self.data[index]) + self.fruFileId = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode fruFileId:%s" % self.fruFileId) + + for i in range(1, 11): + valtmp = "boardextra%d" % i + if self.data[index] != chr(0xc1): + templen = FruUtil.decodeLength(self.data[index]) + tmpval = self.data[index + 1: index + templen + 1] + setattr(self, valtmp, tmpval) + index += templen + 1 + d_print("decode boardextra%d:%s" % (i, tmpval)) + else: + break + + def fruSetValue(self, field, value): + tmp_field = getattr(self, field, None) + if tmp_field is not None: + setattr(self, field, value) + + def recalcute(self): + d_print("boardInfoArea version:%x" % ord(self.boardversion)) + d_print("boardInfoArea length:%d" % self.size) + d_print("boardInfoArea language:%x" % self.language) + self.mfg_date = FruUtil.minToData() + d_print("boardInfoArea mfg_date:%x" % self.mfg_date) + + self.data = chr(ord(self.boardversion)) + \ + chr(self.size // 8) + chr(self.language) + + self.data += chr(self.mfg_date & 0xFF) + self.data += chr((self.mfg_date >> 8) & 0xFF) + self.data += chr((self.mfg_date >> 16) & 0xFF) + + d_print("boardInfoArea boardManufacturer:%s" % self.boardManufacturer) + typelength = FruUtil.getTypeLength(self.boardManufacturer) + self.data += chr(typelength) + self.data += self.boardManufacturer + + d_print("boardInfoArea boardProductName:%s" % self.boardProductName) + self.data += chr(FruUtil.getTypeLength(self.boardProductName)) + self.data += self.boardProductName + + d_print("boardInfoArea boardSerialNumber:%s" % self.boardSerialNumber) + self.data += chr(FruUtil.getTypeLength(self.boardSerialNumber)) + self.data += self.boardSerialNumber + + d_print("boardInfoArea boardPartNumber:%s" % self.boardPartNumber) + self.data += chr(FruUtil.getTypeLength(self.boardPartNumber)) + self.data += self.boardPartNumber + + d_print("boardInfoArea fruFileId:%s" % self.fruFileId) + self.data += chr(FruUtil.getTypeLength(self.fruFileId)) + self.data += self.fruFileId + + for i in range(1, 11): + valtmp = "boardextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + d_print("boardInfoArea boardextra%d:%s" % (i, valtmpval)) + self.data += chr(FruUtil.getTypeLength(valtmpval)) + if valtmpval is not None: + self.data += valtmpval + else: + break + + self.data += chr(0xc1) + + if len(self.data) > (self.size - 1): + incr = (len(self.data) - self.size) // 8 + 1 + self.size += incr * 8 + + self.data = self.data[0:1] + chr(self.size // 8) + self.data[2:] + d_print("self data:%d" % len(self.data)) + d_print("self size:%d" % self.size) + d_print("adjust size:%d" % (self.size - len(self.data) - 1)) + self.data = self.data.ljust((self.size - 1), chr(self.INITVALUE[0])) + + # checksum + checksum = FruUtil.checksum(self.data) + d_print("board info checksum:%x" % checksum) + self.data += chr(checksum) + + def getMfgRealData(self): + starttime = datetime(1996, 1, 1, 0, 0, 0) + mactime = starttime + timedelta(minutes=self.mfg_date) + return mactime + + @property + def language(self): + self._language = 25 + return self._language + + @property + def mfg_date(self): + return self._mfg_date + + @mfg_date.setter + def mfg_date(self, val): + self._mfg_date = val + + @property + def boardversion(self): + self._boardversion = self.COMMON_HEAD_VERSION + return self._boardversion + + @property + def fruFileId(self): + return self._FRUFileID + + @fruFileId.setter + def fruFileId(self, val): + self._FRUFileID = val + + @property + def boardPartNumber(self): + return self._boardPartNumber + + @boardPartNumber.setter + def boardPartNumber(self, val): + self._boardPartNumber = val + + @property + def boardSerialNumber(self): + return self._boardSerialNumber + + @boardSerialNumber.setter + def boardSerialNumber(self, val): + self._boardSerialNumber = val + + @property + def boardProductName(self): + return self._boradProductName + + @boardProductName.setter + def boardProductName(self, val): + self._boradProductName = val + + @property + def boardManufacturer(self): + return self._boardManufacturer + + @boardManufacturer.setter + def boardManufacturer(self, val): + self._boardManufacturer = val + + @property + def boardTime(self): + return self._boardTime + + @boardTime.setter + def boardTime(self, val): + self._boardTime = val + + @property + def fields(self): + return self._fields + + @fields.setter + def fields(self, val): + self._fields = val + + +class ProductInfoArea(BaseArea): + _productManufacturer = None + _productAssetTag = None + _FRUFileID = None + _language = None + + def __str__(self): + formatstr = "version : %x\n" \ + "length : %d \n" \ + "language : %x \n" \ + "productManufacturer : %s \n" \ + "productName : %s \n" \ + "productPartModelName: %s \n" \ + "productVersion : %s \n" \ + "productSerialNumber : %s \n" \ + "productAssetTag : %s \n" \ + "fruFileId : %s \n" + + tmpstr = formatstr % (ord(self.areaversion), self.size, + self.language, self.productManufacturer, + self.productName, self.productPartModelName, + self.productVersion, self.productSerialNumber, + self.productAssetTag, self.fruFileId) + + for i in range(1, 11): + valtmp = "productextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + tmpstr += "productextra%d : %s \n" % (i, valtmpval) + else: + break + + return tmpstr + + def todict(self): + dic = collections.OrderedDict() + dic["productversion"] = ord(self.areaversion) + dic["productlength"] = self.size + dic["productlanguage"] = self.language + dic["productManufacturer"] = self.productManufacturer + dic["productName"] = self.productName + dic["productPartModelName"] = self.productPartModelName + dic["productVersion"] = int(self.productVersion, 16) + dic["productSerialNumber"] = self.productSerialNumber + dic["productAssetTag"] = self.productAssetTag + dic["productfruFileId"] = self.fruFileId + for i in range(1, 11): + valtmp = "productextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + dic[valtmp] = valtmpval + else: + break + return dic + + def decodedata(self): + index = 0 + self.areaversion = self.data[index] # 0 + index += 1 + d_print("decode length %d" % (ord(self.data[index]) * 8)) + d_print("class size %d" % self.size) + index += 2 + + templen = FruUtil.decodeLength(self.data[index]) + self.productManufacturer = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productManufacturer:%s" % self.productManufacturer) + + templen = FruUtil.decodeLength(self.data[index]) + self.productName = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productName:%s" % self.productName) + + templen = FruUtil.decodeLength(self.data[index]) + self.productPartModelName = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productPartModelName:%s" % self.productPartModelName) + + templen = FruUtil.decodeLength(self.data[index]) + self.productVersion = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productVersion:%s" % self.productVersion) + + templen = FruUtil.decodeLength(self.data[index]) + self.productSerialNumber = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productSerialNumber:%s" % self.productSerialNumber) + + templen = FruUtil.decodeLength(self.data[index]) + self.productAssetTag = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productAssetTag:%s" % self.productAssetTag) + + templen = FruUtil.decodeLength(self.data[index]) + self.fruFileId = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode fruFileId:%s" % self.fruFileId) + + for i in range(1, 11): + valtmp = "productextra%d" % i + if self.data[index] != chr(0xc1) and index < self.size - 1: + templen = FruUtil.decodeLength(self.data[index]) + if templen == 0: + break + tmpval = self.data[index + 1: index + templen + 1] + d_print("decode boardextra%d:%s" % (i, tmpval)) + setattr(self, valtmp, tmpval) + index += templen + 1 + else: + break + + @property + def productVersion(self): + return self._productVersion + + @productVersion.setter + def productVersion(self, name): + self._productVersion = name + + @property + def areaversion(self): + self._areaversion = self.COMMON_HEAD_VERSION + return self._areaversion + + @areaversion.setter + def areaversion(self, name): + self._areaversion = name + + @property + def language(self): + self._language = 25 + return self._language + + @property + def productManufacturer(self): + return self._productManufacturer + + @productManufacturer.setter + def productManufacturer(self, name): + self._productManufacturer = name + + @property + def productName(self): + return self._productName + + @productName.setter + def productName(self, name): + self._productName = name + + @property + def productPartModelName(self): + return self._productPartModelName + + @productPartModelName.setter + def productPartModelName(self, name): + self._productPartModelName = name + + @property + def productSerialNumber(self): + return self._productSerialNumber + + @productSerialNumber.setter + def productSerialNumber(self, name): + self._productSerialNumber = name + + @property + def productAssetTag(self): + return self._productAssetTag + + @productAssetTag.setter + def productAssetTag(self, name): + self._productAssetTag = name + + @property + def fruFileId(self): + return self._FRUFileID + + @fruFileId.setter + def fruFileId(self, name): + self._FRUFileID = name + + def fruSetValue(self, field, value): + tmp_field = getattr(self, field, None) + if tmp_field is not None: + setattr(self, field, value) + + def recalcute(self): + d_print("product version:%x" % ord(self.areaversion)) + d_print("product length:%d" % self.size) + d_print("product language:%x" % self.language) + self.data = chr(ord(self.areaversion)) + \ + chr(self.size // 8) + chr(self.language) + + typelength = FruUtil.getTypeLength(self.productManufacturer) + self.data += chr(typelength) + self.data += self.productManufacturer + + self.data += chr(FruUtil.getTypeLength(self.productName)) + self.data += self.productName + + self.data += chr(FruUtil.getTypeLength(self.productPartModelName)) + self.data += self.productPartModelName + + self.data += chr(FruUtil.getTypeLength(self.productVersion)) + self.data += self.productVersion + + self.data += chr(FruUtil.getTypeLength(self.productSerialNumber)) + self.data += self.productSerialNumber + + self.data += chr(FruUtil.getTypeLength(self.productAssetTag)) + if self.productAssetTag is not None: + self.data += self.productAssetTag + + self.data += chr(FruUtil.getTypeLength(self.fruFileId)) + self.data += self.fruFileId + + for i in range(1, 11): + valtmp = "productextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + d_print("boardInfoArea productextra%d:%s" % (i, valtmpval)) + self.data += chr(FruUtil.getTypeLength(valtmpval)) + if valtmpval is not None: + self.data += valtmpval + else: + break + + self.data += chr(0xc1) + if len(self.data) > (self.size - 1): + incr = (len(self.data) - self.size) // 8 + 1 + self.size += incr * 8 + d_print("self.data:%d" % len(self.data)) + d_print("self.size:%d" % self.size) + + self.data = self.data[0:1] + chr(self.size // 8) + self.data[2:] + self.data = self.data.ljust((self.size - 1), chr(self.INITVALUE[0])) + checksum = FruUtil.checksum(self.data) + d_print("board info checksum:%x" % checksum) + self.data += chr(checksum) + + +class MultiRecordArea(BaseArea): + pass + + +class Field(object): + + def __init__(self, fieldType="ASCII", fieldData=""): + self.fieldData = fieldData + self.fieldType = fieldType + + @property + def fieldType(self): + return self.fieldType + + @property + def fieldData(self): + return self.fieldData + + +class ipmifru(BaseArea): + _BoardInfoArea = None + _ProductInfoArea = None + _InternalUseArea = None + _ChassisInfoArea = None + _multiRecordArea = None + _productinfoAreaOffset = BaseArea.INITVALUE + _boardInfoAreaOffset = BaseArea.INITVALUE + _internalUserAreaOffset = BaseArea.INITVALUE + _chassicInfoAreaOffset = BaseArea.INITVALUE + _multiRecordAreaOffset = BaseArea.INITVALUE + _bindata = None + _bodybin = None + _version = BaseArea.COMMON_HEAD_VERSION + _zeroCheckSum = None + _frusize = 256 + + def __str__(self): + tmpstr = "" + if self.boardInfoArea.isPresent: + tmpstr += "\nboardinfoarea: \n" + tmpstr += self.boardInfoArea.__str__() + if self.productInfoArea.isPresent: + tmpstr += "\nproductinfoarea: \n" + tmpstr += self.productInfoArea.__str__() + return tmpstr + + def decodeBin(self, eeprom): + commonHead = eeprom[0:8] + d_print("decode version %x" % ord(commonHead[0])) + if ord(self.COMMON_HEAD_VERSION) != ord(commonHead[0]): + raise FruException("HEAD VERSION error,not Fru format!", -10) + if FruUtil.checksum(commonHead[0:7]) != ord(commonHead[7]): + strtemp = "check header checksum error [cal:%02x data:%02x]" % ( + FruUtil.checksum(commonHead[0:7]), ord(commonHead[7])) + raise FruException(strtemp, -3) + if ord(commonHead[1]) != ord(self.INITVALUE): + d_print("Internal Use Area is present") + self.internalUseArea = InternalUseArea( + name="Internal Use Area", size=self.SUGGESTED_SIZE_INTERNAL_USE_AREA) + self.internalUseArea.isPresent = True + self.internalUserAreaOffset = ord(commonHead[1]) + self.internalUseArea.data = eeprom[self.internalUserAreaOffset * 8: ( + self.internalUserAreaOffset * 8 + self.internalUseArea.size)] + if ord(commonHead[2]) != ord(self.INITVALUE): + d_print("Chassis Info Area is present") + self.chassisInfoArea = ChassisInfoArea( + name="Chassis Info Area", size=self.SUGGESTED_SIZE_CHASSIS_INFO_AREA) + self.chassisInfoArea.isPresent = True + self.chassicInfoAreaOffset = ord(commonHead[2]) + self.chassisInfoArea.data = eeprom[self.chassicInfoAreaOffset * 8: ( + self.chassicInfoAreaOffset * 8 + self.chassisInfoArea.size)] + if ord(commonHead[3]) != ord(self.INITVALUE): + self.boardInfoArea = BoardInfoArea( + name="Board Info Area", size=self.SUGGESTED_SIZE_BOARD_INFO_AREA) + self.boardInfoArea.isPresent = True + self.boardInfoAreaOffset = ord(commonHead[3]) + self.boardInfoArea.size = ord( + eeprom[self.boardInfoAreaOffset * 8 + 1]) * 8 + d_print("Board Info Area is present size:%d" % + (self.boardInfoArea.size)) + self.boardInfoArea.data = eeprom[self.boardInfoAreaOffset * 8: ( + self.boardInfoAreaOffset * 8 + self.boardInfoArea.size)] + if FruUtil.checksum(self.boardInfoArea.data[:-1]) != ord(self.boardInfoArea.data[-1:]): + strtmp = "check boardInfoArea checksum error[cal:%02x data:%02x]" % \ + (FruUtil.checksum( + self.boardInfoArea.data[:-1]), ord(self.boardInfoArea.data[-1:])) + raise FruException(strtmp, -3) + self.boardInfoArea.decodedata() + if ord(commonHead[4]) != ord(self.INITVALUE): + d_print("Product Info Area is present") + self.productInfoArea = ProductInfoArea( + name="Product Info Area ", size=self.SUGGESTED_SIZE_PRODUCT_INFO_AREA) + self.productInfoArea.isPresent = True + self.productinfoAreaOffset = ord(commonHead[4]) + d_print("length offset value: %02x" % + ord(eeprom[self.productinfoAreaOffset * 8 + 1])) + self.productInfoArea.size = ord( + eeprom[self.productinfoAreaOffset * 8 + 1]) * 8 + d_print("Product Info Area is present size:%d" % + (self.productInfoArea.size)) + + self.productInfoArea.data = eeprom[self.productinfoAreaOffset * 8: ( + self.productinfoAreaOffset * 8 + self.productInfoArea.size)] + if FruUtil.checksum(self.productInfoArea.data[:-1]) != ord(self.productInfoArea.data[-1:]): + strtmp = "check productInfoArea checksum error [cal:%02x data:%02x]" % ( + FruUtil.checksum(self.productInfoArea.data[:-1]), ord(self.productInfoArea.data[-1:])) + raise FruException(strtmp, -3) + self.productInfoArea.decodedata() + if ord(commonHead[5]) != ord(self.INITVALUE): + self.multiRecordArea = MultiRecordArea( + name="MultiRecord record Area ") + d_print("MultiRecord record present") + self.multiRecordArea.isPresent = True + self.multiRecordAreaOffset = ord(commonHead[5]) + self.multiRecordArea.data = eeprom[self.multiRecordAreaOffset * 8: ( + self.multiRecordAreaOffset * 8 + self.multiRecordArea.size)] + + def initDefault(self): + self.version = self.COMMON_HEAD_VERSION + self.internalUserAreaOffset = self.INITVALUE + self.chassicInfoAreaOffset = self.INITVALUE + self.boardInfoAreaOffset = self.INITVALUE + self.productinfoAreaOffset = self.INITVALUE + self.multiRecordAreaOffset = self.INITVALUE + self.zeroCheckSum = self.INITVALUE + self.offset = self.SUGGESTED_SIZE_COMMON_HEADER + self.productInfoArea = None + self.internalUseArea = None + self.boardInfoArea = None + self.chassisInfoArea = None + self.multiRecordArea = None + # self.recalcute() + + @property + def version(self): + return self._version + + @version.setter + def version(self, name): + self._version = name + + @property + def internalUserAreaOffset(self): + return self._internalUserAreaOffset + + @internalUserAreaOffset.setter + def internalUserAreaOffset(self, obj): + self._internalUserAreaOffset = obj + + @property + def chassicInfoAreaOffset(self): + return self._chassicInfoAreaOffset + + @chassicInfoAreaOffset.setter + def chassicInfoAreaOffset(self, obj): + self._chassicInfoAreaOffset = obj + + @property + def productinfoAreaOffset(self): + return self._productinfoAreaOffset + + @productinfoAreaOffset.setter + def productinfoAreaOffset(self, obj): + self._productinfoAreaOffset = obj + + @property + def boardInfoAreaOffset(self): + return self._boardInfoAreaOffset + + @boardInfoAreaOffset.setter + def boardInfoAreaOffset(self, obj): + self._boardInfoAreaOffset = obj + + @property + def multiRecordAreaOffset(self): + return self._multiRecordAreaOffset + + @multiRecordAreaOffset.setter + def multiRecordAreaOffset(self, obj): + self._multiRecordAreaOffset = obj + + @property + def zeroCheckSum(self): + return self._zeroCheckSum + + @zeroCheckSum.setter + def zeroCheckSum(self, obj): + self._zeroCheckSum = obj + + @property + def productInfoArea(self): + return self._ProductInfoArea + + @productInfoArea.setter + def productInfoArea(self, obj): + self._ProductInfoArea = obj + + @property + def internalUseArea(self): + return self._InternalUseArea + + @internalUseArea.setter + def internalUseArea(self, obj): + self.internalUseArea = obj + + @property + def boardInfoArea(self): + return self._BoardInfoArea + + @boardInfoArea.setter + def boardInfoArea(self, obj): + self._BoardInfoArea = obj + + @property + def chassisInfoArea(self): + return self._ChassisInfoArea + + @chassisInfoArea.setter + def chassisInfoArea(self, obj): + self._ChassisInfoArea = obj + + @property + def multiRecordArea(self): + return self._multiRecordArea + + @multiRecordArea.setter + def multiRecordArea(self, obj): + self._multiRecordArea = obj + + @property + def bindata(self): + return self._bindata + + @bindata.setter + def bindata(self, obj): + self._bindata = obj + + @property + def bodybin(self): + return self._bodybin + + @bodybin.setter + def bodybin(self, obj): + self._bodybin = obj + + def recalcuteCommonHead(self): + self.bindata = "" + self.offset = self.SUGGESTED_SIZE_COMMON_HEADER + d_print("common Header %d" % self.offset) + d_print("fru eeprom size %d" % self._frusize) + if self.internalUseArea is not None and self.internalUseArea.isPresent: + self.internalUserAreaOffset = self.offset // 8 + self.offset += self.internalUseArea.size + d_print("internalUseArea is present offset:%d" % self.offset) + + if self.chassisInfoArea is not None and self.chassisInfoArea.isPresent: + self.chassicInfoAreaOffset = self.offset // 8 + self.offset += self.chassisInfoArea.size + d_print("chassisInfoArea is present offset:%d" % self.offset) + + if self.boardInfoArea is not None and self.boardInfoArea.isPresent: + self.boardInfoAreaOffset = self.offset // 8 + self.offset += self.boardInfoArea.size + d_print("boardInfoArea is present offset:%d" % self.offset) + d_print("boardInfoArea is present size:%d" % + self.boardInfoArea.size) + + if self.productInfoArea is not None and self.productInfoArea.isPresent: + self.productinfoAreaOffset = self.offset // 8 + self.offset += self.productInfoArea.size + d_print("productInfoArea is present offset:%d" % self.offset) + + if self.multiRecordArea is not None and self.multiRecordArea.isPresent: + self.multiRecordAreaOffset = self.offset // 8 + d_print("multiRecordArea is present offset:%d" % self.offset) + + if self.internalUserAreaOffset == self.INITVALUE: + self.internalUserAreaOffset = 0 + if self.productinfoAreaOffset == self.INITVALUE: + self.productinfoAreaOffset = 0 + if self.chassicInfoAreaOffset == self.INITVALUE: + self.chassicInfoAreaOffset = 0 + if self.boardInfoAreaOffset == self.INITVALUE: + self.boardInfoAreaOffset = 0 + if self.multiRecordAreaOffset == self.INITVALUE: + self.multiRecordAreaOffset = 0 + + self.zeroCheckSum = (0x100 - ord(self.version) - self.internalUserAreaOffset - self.chassicInfoAreaOffset - self.productinfoAreaOffset + - self.boardInfoAreaOffset - self.multiRecordAreaOffset) & 0xff + d_print("zerochecksum:%x" % self.zeroCheckSum) + self.data = "" + self.data += chr(self.version[0]) + chr(self.internalUserAreaOffset) + chr(self.chassicInfoAreaOffset) + chr( + self.boardInfoAreaOffset) + chr(self.productinfoAreaOffset) + chr(self.multiRecordAreaOffset) + chr(self.INITVALUE[0]) + chr(self.zeroCheckSum) + + self.bindata = self.data + self.bodybin + totallen = len(self.bindata) + d_print("totallen %d" % totallen) + if totallen < self._frusize: + self.bindata = self.bindata.ljust(self._frusize, chr(self.INITVALUE[0])) + else: + raise FruException('bin data more than %d' % self._frusize, -2) + + def recalcutebin(self): + self.bodybin = "" + if self.internalUseArea is not None and self.internalUseArea.isPresent: + d_print("internalUseArea present") + self.bodybin += self.internalUseArea.data + if self.chassisInfoArea is not None and self.chassisInfoArea.isPresent: + d_print("chassisInfoArea present") + self.bodybin += self.chassisInfoArea.data + if self.boardInfoArea is not None and self.boardInfoArea.isPresent: + d_print("boardInfoArea present") + self.boardInfoArea.recalcute() + self.bodybin += self.boardInfoArea.data + if self.productInfoArea is not None and self.productInfoArea.isPresent: + d_print("productInfoAreapresent") + self.productInfoArea.recalcute() + self.bodybin += self.productInfoArea.data + if self.multiRecordArea is not None and self.multiRecordArea.isPresent: + d_print("multiRecordArea present") + self.bodybin += self.productInfoArea.data + + def recalcute(self, fru_eeprom_size=256): + self._frusize = fru_eeprom_size + self.recalcutebin() + self.recalcuteCommonHead() + + def setValue(self, area, field, value): + tmp_area = getattr(self, area, None) + if tmp_area is not None: + tmp_area.fruSetValue(field, value) diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf new file mode 100644 index 000000000000..7a9fec8cc99c --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf @@ -0,0 +1,2 @@ +CONSOLE_SPEED=115200 +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="intel_idle.max_cstate=0 idle=poll" \ No newline at end of file diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin new file mode 100644 index 0000000000000000000000000000000000000000..7dca3ef29d4c3edebe5bf351b70f32efc5f8f227 GIT binary patch literal 8388729 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 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_< 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

AVWgMCTg(fE83R}1cned|% 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ξ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%0Ds&zGD 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%0D_hr*k-zz}@Tm-4&U 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⪻|hZj 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 z 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 uomY)d8DGwc{ccft-Go_Y)gezK(x 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%0Au^J%UXM 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 z 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

{`%PO(N#SAQXf~;(ZddV#y@! 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�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

4}B#Oq=EvbE?;DP@Fjnrs$6aEuo06ke%t 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 z%0A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˶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 z%0DS+w6@d!S!_TY)4BCgxU?h;SI&0}|n)E~$PDpbAH!e~|2e+e%A)JkqCm9(8z%;#f%qjv# zb-pwuuH6>4ltB+<{3C(_9H{PE$+)^TYHO0 zZX&X2hfn4p;8zla&mo8ino^%Aaib(?m3R+Aq;2yPazt|xNpY9$wD^bJXi6A=fPWcTq-_a!zIlK4uV z{phksUS+H?`RM&Y7a0%1P#vgHC8_6;kFCOq5_c(dg@8sSh81;=T&3PCmEUqJk`L2Don1jx(mvHvNua^v z#y*$KF*f=lZTX8R3K+@p=AJLu!I065e`h({BS0AEAWv>wzE?BHZh82Bl7b$KFtU4$*SldwhYQjD{c>DiwQO*I&~zRr81pfiA4 z)jAz>E2;I!O_avN+HolV!^)gRn80Z7CwnF1q@Z_h3J8a#XPa?>y!_=#2 zP-*Vu>4(Xm3mz|@w1iwAI~jgUm~)F683jl*lFIR=hN3dY7)P;@w#cDznX6cH|gs^ z9u}|YUMtHI>n)chU_7W<9uuzdP~(arT7Eem;i7J_M)_S{QCUq$_y6;e=_;uO5F8`7 zo2tkky^EfyG!^O$dkY1dZyStvZh)|Au=So$2AIFHIKDUN0O;)gT6%x<-k>_`E=L#V zEvN|}&JzrSD57P9zJq>bSX`gw!}Z$-oO@GvE(0Zk@o0fADl)JMH-{O?m>4yX2V!>1 zO7?tzf>stqPgc-`_~}i(LrG=XzSTHs&OnWYQ71w(uOF2YbJ3qg%O*sZ?}qQ@DH-= z3bu&{`;M;9*d@b>BjG6IH974|TtfR)-QGdeZ)uFpk7gFO7R=~ zheSbAIR-F0p|z>gKLI~@+TwSUw)I@z&o}vEH|UpfLgoQ^qMyN#^B1Y3U2eAm-tEhw zwmfVJH}fZ2CJaZDb^{2Q{p_k7P>_)+gsPL&huYl?PHj7;R^rf zkYUjOIBzp~Rrr!AvBSYO#=s2a41p0+-rtE>q7k^%xJyMy1#Rui$-Gw~FUx1(CM`zx zt^5JHF7}#o+PZB2o(yY}XZU zKXf;J>`LZ0!QmIxOZ1;|ot6LloiY-F9jxg`W3rdezmvoL_*aYxyRv*FVM-*pG$>py z=>%Akl`O8;9oM(KBK2v6;0D|F^oUCy9Sm7oWU&Y4@VV4;wsvg7ypG-zbDXuRR84*u zW=ElG+&*la16!6n$LxIy89x-|SxnCd29`cVPBhTSs?XKhkqxgbidahNY2|6M z64~)M+@^NnLdj8sic^A*zAnXFdyY>iK%K8ZUZx6fLuUoxu2l@06zV|E;*B4!1+0MFoW#>P z#Y}hwVw#8aCi(vE$e{kAa&U~u7Vwn>h)AE2P+Q5{vOhf1O5_gX8I&Vug51&RFZ*D^ z1*6*Y15p(kj^b+6e9}S7{q?FV^XpN9rM+DwXQ$g4L>9qWFJKQxVrE|IPjkK~O0^ij zAL`O_5#D)1cqbPjg%1P03^(6@+*v|>{etlGD=%{kK?OJCh=tSBcp8*;qrM4L{4tYi z6`?nnYylGAZRE6J8`!O>GLT6BVJMHF1)U59J4nj&k9%w8uw#ZPuKY={uik)@OmFX5M(8rkc?jPD5c7U zbXHxevRGfX5W9H*vo~&HZk=lkKaD1&AAb;PBBNblRuv(#!32JYN+jz39guohnYQZ( zg^Du1vj3p(!JkHfnx-PV3k44X7rg9npX2S15s+R%10?`>UxnkY-6>GISa%8P|0ie} zC|aL^%gBEco>;uz`O$Ll5>?OLo5Mm$LKGn-*v;v>&LsJIDmv>46`R~8d-%GR3w?n^ zvrI-V(E69N4I#l6HD~5m4i5QldtypIn+y}5T1h?zEUDB01Ou6kU*q`DrRg{D8Uy}; zS@+o+pOfAujFRjs0M0?u5xJ$i{M9cd>6fl7o}|`MdU*AL=9!t)t(TpZKXl9s1cH~U z<|qc$jTzpCB~G?HP9tSRhF;#~S(VYLKu6bkufbIeGj0>18`h}HB>E|y#P2GNm^o4a z`JpzU378Y<-w#V#Sp=V@UmMK+Fitmf7R*OjeY5p*T;gV!skR9DjiFifZqj#UZ3?@+B_L7?Xq@we;w5ndZUb94*G5r{ zBwdNTeY?dwy`976+lj7I zuSu2|53~T&NI@BCaA@q@8ZXVGgY@vdwoAcuN41)kkhV4kCj0mibC?L-)d>pSu%f2q z?(p0$l??7AThjKBibesH)pJ_}PU;&6*M|UN3*9-RgXI%cI5RG7RfS<5_&|4ZmK;(M zc^+E=qz5>^sU*k`KSuo=MEAr{Zx$mWeu5|iO-+gr(Sf9_ZMWDq)QxV%0 zj$ky>V?yv6Z~j?NBY-%_3OAZL$2l4mZgS?_6h3{!{7{z3q&K_LC&mucH(7fEQak{U z|!N| zGbpTdXuXBfKt$`4tE-lqi&1o?zL1jp3iBK>jg8Ze?k#39zuAy1{p*FVGRSntp!RB0 zV|#e^N}CeSh#%R~)91b%@}{*5Oq8=p8Gb`6o)lKG!*X1M@in{NvJ#MOO{ za%6P(wQIuK#vsSzOg3}IU;Im=-w1kFzop~VPCx-o{{NGt14K+wg1kN3ssUnMpLV}h zG4O#qmEelMlwW2jw#sg-#4fl#L9n~5jUt$}E4zvg8~NPTSX$N<5-mkg2yrYiU-MNM zAicbcml!x_hQ>U7v6q%7mr-yagHyGxok95e{$+fdbg^}Y55_syxs+;%v89qYxZ?@p zVFn7piRPW4KuJyVs0UR7bC)`UI@3qE1oVUjB4s_Pe<`E3($n4mm|v0Onc7;b4m@nZ zPvfp=O?kFwP?K^K$2Ru`?s3Mrg&_Yhqk))!CBJefSiBH{baq9DC%MocI3K*SY%My2 z`h%81lCKm{3$%nI)_;sy}Su?ArgRvChc^nqs&tgjh^Xr;5_p7MxyDs4rk^hN=_-!?Pi~=*c*am;_ zho~``?`9XsmLtq3eB?jekgauC#6h=qi_gk67m8NM%}}Y2M+fZLmExtyPYb-nPkxWc z3QR4Fn=Q?ai_iyFNTn)(sahE7p1=8&6Z_;;q;@D6`6sYxk_wy$%?+29g-W6516v^O z474;Ocp0s!%$9v`StLc&)OIaezuKS5nIMdQ5joB5Xjd@jjV1v`ZA#jRIv32f&$2Gs+2IEG*jP!N4BE+R| zdu#62T}8&ItV+u;3reo8*hiprS@z|1`;iPfK4a;Rb#Al$p2Eq%F04{?WnGXH-I;r} zBmf_8wU1T6HVSP$nm&iosF?_UgnT4jAeFvqa?p6ME5qH%Wgj0%{4#0pH=jS)fWxs! zhmD8k-4&Jlj*nA;Z5T>7?5?DC83;?QeX(k^&>tRqc@ST^Nw^fCV^ zr}!RQ2dD|crO0=vj$8erI=JH#kY5;6jKm`kNSmuakufNWQP>$HS}o_0ZG8O`z#!m; zM!-Gril^JIOe6_98A)}bt*hU)e^PS}^(#5B2`*T5?or}36xCJjqqtd^Z;JZT@@T#h zw_P72ypN*vW{cmyBq;Zs|FI_xRPahniYcV_Li)*Y6FEU(t4qj6)evz;8;<$?xP*BU zD6R1VD0`(j+Lyaouu?!Au)yz3+NjCvXKNU zc-~E?ROe4#!_y*T+9z}b$1n(W5K3t$LZ^&>>Oz*yJvpcRf;t8m(qF%_0qOhr)Y+kz zUpHlCobZ&J779wSoO(;gX`^o}i%)RlvYy(DiL4vy=X@{r8PUlZ|dKb!J2p z;a4|y5~$&|9>y3pw6`nipgtS2*bozo!|%BxkVF82jW@fUcktm-+k;io?If1vl_ zf$_00Ev@h~Q!lGzEGEQKaq&7ZpXp1r=wmK%G*8;@@!Rt}9oGwNgK{hE!c&cJUcKz8 zcu>^oDp|`=0345KK4AeNb>RTHQ3FvO-{GwNCvyna)GrnGVut}JG1)(i^;FL1?nO3V zEx=t|S6agBA>SJ`Mx6vmFQXpnjmyS`!LH2q@50n}6+^E2dnSHXJ2&S!D^6 z+DwIqIU?2g;=wxx%Xo8|4#bqsagZwblONpcGS_E_RkF9o-p-I%#c17YZGtwK zHn~SwBIk=-8!x{LtR^QbIrUYjncVA|H1%0kHWdfiE=c_FX} zuCqPUcmB;q6j4BnZx@jBG6=?JxUT;2g%-bR^^_o2^Jgv93h|+6bDoV~4o#OI(y#T6 zSgVNNXtc1d>r<5o85S`>9rgqbT-?IB?nPoY9u?f1Gk3I^nLqoPj6(}Vvq0yuP3t0hR+^@b>2Hi891l;8_J1|2hoZXk-=s47xUs~mW>G0R}+lC$(3p< zIL0qpEkpl&SXI;BnU@+uVxePiJagSXpkZb<2bIe5F(O{O-#srfM>wsgdauz4zUmgY z`0&m(A4~@|vvsXdN3-5u@_|{U;Z9jhgq>P_U~6t2V5#@tSa|9pm)j4*b>p24O1UF(7R&8prd#^s z5RC85$qq$6M~9>l%bErqwR`=PEJUvlz0u3un*hs)XBb#l_PN%OT_4pyd=u^=yyI6l zpmV@srPfGA8F;l270WD--vg98Q+M?fjG~T2>8Oa8v(I-ro}B5ypMJ9`14SR`Tyd93 zZlj$vzGkGp^<5ABlk(th@eyzCWpY>465_fba&!VtS+;ee;s6Wam z3WPtqGYG&J>_9K^!ggJ;9rxpQx-E_LvVOw5ps5@^MV>+O_pg&qWq}kSy`#&B8B5oj z2u8gJI{F1{Pm>zfT)B$KBQ)fr2&|yc>p7UbqCl5*JaoWtPQkWx`%!Pj_U^R&jijPN545>LLqr<-ahx(u1t zWAfU(z7>wr99al_z`TA`^siC zU?p!x`i}bBtz0Dds0I3i`NTS^8Ol13-@yjV-3Z(iSH+W~zX^F^Yl|^zUCR2+IV)!a zj8gIWF^PxgGSm1>^yqP1@YKB73WvfEq)lb?h8la$Mw9nAb2Rb@Ye~S z&NN+6?~CT!2mAC_ffE_>SQn{Zgz;y5b@EVd9T=WLbOEI z^ZS<3vR1#VK<1hdXS`qiZpo46rd4fL6xV4=dy~60N|MEGQ1s+uvmE#5vlZi;uM@^( zKDGo8l*M9hOkt<$0KYIUghStF_BSx=T_NqG1|DT-027DOT?s@GV)onUwtt9hd9JB9 zYox6u%SPxoU`Y&&2duc@b@?|2`oJ_X?FqcRToD=yMad2Pg2G~l&X%xMngtA;(XTk>v_P5Eg?NUU|$P|74Nw<~-4n6S*LT z4<2IB=(!Y>4GX(*X=wy6qI4bSr{`o0KUtzsX#c-6MDiMEZpR=m^Dm(BhS6$cs6Ol) zEXqL(n!J?2yEzpVB8-EKLUSsgNSE9ODpe*09mu% zDP9pdFyR4f?&}uaAH!FvX}Lbji_bcAG#YxPPEU+vhRehnRQS0@bx8I@BX6ImKD{%{aaDEFQW*Z}W&^I-UaZUiUDuHmmfnu#`3mZ(-pvAUonBrQu)s4|AHl zmS|A^gWarN((Ma}bFnqBWk+=NLGT{gh%S@B|I6qjw|P!JS8WZ2KM=u18~~wPfs5H+ zKB%==QAM8mUPM2B?H*@|c~EQRG*0F5B>*rb^fmn=`=P)w^8j=5n>=909LQ6P{PdqO z_-atqm95qbqA1Pf`A16ey zakDr#Ldxr~IcEwH9_ zw6HzPmT_8|blHt(@ukjH7znq3E_$zqZ=lHfGgj5nkG{_9*s=lVfK>%Aa_HC|#^&;X zV=e-r-Y*c0X6$I@=!Obn&QXSRb%n?+Cc8SuAp866Qn*s&%aaFD+wDN2ZkAS)E2TU$ z>CsCIc&JLo%UCG;R#YOl6nGPR)Wt=;K+eV28fTRjHT4~Q7=7MszS_mloChJd|b3w6`9>?!HQfWv;rS;5*fXUxQDCqLpYCmCC%pZa%P+&}$)FT0-<<$4W1YQkG zhn0pCYlbj#J~g=T&fj;V!KS~swA={d-IApRm^+I0(v_9|`1+l-Q*b2Z4QFhxk~d0OHZ=T`e#^HZ zrfhsM)FWIf^c&OfY9dv*2e&sfF$-ndxNf9I%kUyLx+^wdj&E>riRVVG&K_5e6rGMl zmh0&R<8G2Lk)|TPSbP2hS{e%iDr}&_sG>?62!_2cMX6YT2!~6rvdP`WQvtd*M`Gnt z{q<~RvO%8AEU|}WMCJ^m%fU>`%PlWNn;}O;_k6skGB7pjKM4Ww@lGbx&Kq};DcF8n z+F|!|LFIvxl3rondwdT`M->Rma|w0{>9ogSCmDX+Gfl$GGIpgMWKl1;2(RiGIL<&z zChdcWWcQv@=1y$Ao&c|D)CIL(>cBA^P!VLmG*LG$5N+RBr#Y=IPB%kP*8`sqE%XHx zDO5BU(W&;Cym@|!E4<*-yeh3gGD8DSE>v7I>hWnO z9(9`1kX%@<@cH_J^*Ztb3ifYKSRW$Od1{vUaFsEvI}hKgP+K0uaF0T(AInMsh)SU%iFHRuom+TXNy!Jzo4S7w|Z6r{Q+1X{=! z#X`l9z)XRmhs~IK6PZW$OVI~AyQr0ekWn5e)5;$xND1K)FKIwMEa>WE&2TPz_p|32 zP_`drG9@ZU_?Ti-f)9b~nItx;r``URBF$?o7$VFUIz?`*h+jwKoB^@n8VSjYh}ium zYJ7{uD(Yq6y^slzp;?Q+OnB%BLKzbtlR|%5I((Bt09npM>jF#xp*Y?%7?*}o%}+#3 z94@#&cC8BTk1xr}NJCH!WyxJ))&;Io)D2q}C5i%(5=7}R;2IDvI;`YLlEkvfzl`C+a<{q9k}80I;oN@9OTm%! z6U|@ENe`$)vj?xg`5xG>>8?V2lYw%Ik97;oogZN?rk||1H_~*sWDhtzEEraldNeMCtaR zT~Wy9-11;Uwh3zC(6O?M3Cd}UV+N9E*m>X4Ra|pECr{Mxz-DspWa+>mNANUOVwORL zvct@5cc18zFtz)W$-#6RUD{Qi=sQSW5t#Kj`tkL*pQqxfmxaEVry;)`yxPW80J zHxV0&@}^QTP1?r)cZ~-U;GVZm(ED}nP3o0+#J20G8VGaJ>Vy6a$}>q)a@w|J#r*mW}K{^lEm^aasSnEZHA=AF(k zuI*bHkHR251i}fXoUAEI2J(xYsPu4Xacy9)l1J$=_tPXk=!ewCw%kQ6+nh|Dssf;9 z%JSv0gj>0_W`7S`DWko|& z^Aw4Y_7Uvi8TCmr=S5&Gw}IJL80vfY2f_)AH)u^dOI&s!w4>=nwy_}?%6Qm5qj3h% zI+Af51B78c3AwT9hNy~zjYW!oHS2xz>BY8fAG&d9Xo!XfGm=+u>O$0iD@DY%MaaJ$ zH)YYPt5`PN~`@PkE-q0I4IG&>dO@1jvH>drU#N8Up4K%J62aH zWUvp(URa3VnwPiHrvd}2R)ib~ZGK^_anUT7I-ETzCM}6{K_>rH{LSq)JUXZn_3^zsEO4CU`%?n z2h=;XZ*bELS}Z=f$%GDWt^<-*m)=7;;a}jKDJGC^u|o9&je1rt+)l*pl)t50?beG# zgmI9#cyC%0WYxNx+?Kj#jYxZF$2z88HOx;8Dtem~CrItc11kyiFTC^;L*!B3))epsU+Uo|<0;5lJt)lvru^9CRoh!)9W; znAVPMl`ooYpZ=BvCUCyRx^y*oo<2{BD37E$e1?M@stZAJWaA#Ji)Zw?|IfnwsK1;H#C(x5Ox$%8mt#7NE3M&fnSJ ztbB><8ml^fyw>*MThi;mM^peSH1tB!o?{EbPlm3^`D(^g9rv8q^=9E>4*yg~w;tFn ziZ8cB<)z4FC#m<9Yo+#HG|S26r8bf>j3yf>j9odQbV2YT z+Zvn~BHQxD!RB_^3o_K_n55Npjqjgs%u=TiBN6iIFf{txUK0GvBO;iy`w z8|z-EyU)E-(H`ZPE%QnY2FC&P!l?{{x%Ld#;)>71oLL_Sr6v2em?Uq1o&-v%i(03lhekW4FMU7(zwj+zC5!@015e&H`_i=bUL;f?~vpM72 zF&EGzd=43C%k82F`4jy{b@DW9nuogWS-_kpY|bkIU+MkN{uG&HY(AZTK965c@LP`f zvbV2qY_N`b;wj$*e12D2lEhPjS&G*TP{z1IKe@X}qnt*bXmvz^tEr)2dGwVG8{93R zQjDpyke4Me)3mG-ZWCAkG7`LFSpl9^fk zp4w^ji;rq2H>EvY>{*Y!dR0fyQX$;R_RP*fDoVV!HbgEL^=p@*H*4c%4L^q1JOgk% zf1$AtO#>t%hvgImQbie!4PbNn{nNv|7QM>Pvzq~Dh`)*W&hYscV(OJ@f*b@6)W9-v zZn0^2GQF}+{v?Mc>aXn_N%}bmni9+4b)JdAh_v!K3dju`9gwE2kb~&IA9b=XGw&!h zHdd*$8$n45kP%KrOI3+}w$7I(LKj^56hr;0;Te`pw%jz0p;76i4?mcI)$OxS2*m&{6)xkv82*`IXq21fsps;T~(rl z=sK~b$BCIk4*>7no*}8(NjWV-QB+0|lI`Wm9RzhQ$B_fa*xio7-g2+oUvSt7hqa8= z&1voan-&Y9FYFN>2E5yCh$f3UZfhEe85~vY<#0fbw1C4H2%byRx_bJlHR%25LS3^+ zB3`E6mwL$XbY(*Fl$vf`1z75wZ6|l&pUG2-%2ACXsH3+C8p$oaH!%sCmp&{17yD2< z44B0`kbL+wBG;o@;6H}ISR3bg_{jrgnH&cZ)>Nf}e&xDJub2_A%TCdwER=zBU@1& zmxjAChrf&)?or=nbk8=NM|Q!pLk-WdL%)UL9^KKW;5li^#cYzhp)abH^xIvd1xqIO z!5b+IyP8570Ao+u=sUd0B*uySgYF4*O!4=*#Jl5u4TGU#*G)k^#i~paEjVeXWlxrT z+de_TZT~x`2p{ha)OC>IcpPMF;bwbGVLB&`z&`*6p|P0Wnd6sUe99@#BK{J*VZ4({ zU{of}t^w=}5Z&1NsQ)88eP|37#hdma8O`<^gR zr#BoqG=r)hLqeR*;j-F`WIbC_bhWE!~-^2iD8s z-OOnvnoGzr{z7pt%crWCa3b`iA-f&Xq{Lm3Y$@QJR7UR=< zFF$cr04(1*Z;y8HkTM#>fJB$I0ff$wti~vsvT8c8G5y;*Pb9AJf%s6Kfv4@mbX{bP zf3A6h;UnAEIdRI>vlS5LJjm5uQ+g7(X=H+q1wlN$IgFYHBOj5H6#nb}!ll)YjZxN~ zg^W9vTu_(WmmOs=I4&limBDQ=1hX^}39#dYJdc!*w;@y#Wbay!0vTd_nij`!A1d4fU9v@48ZqASG^!m$vbh=5a%#t(pMX25%x? zYY9WP?AtbojE(6u~&GMAP)N$R}1Y1_$H!Si}!wFkBeoaZe}TiT3<7lu`{=bac5}gw%N#@Pll? zpV+S2xstri<kGx`I%IoQ#zwSR{R1C;|O;UVH+hJLp^fL6rA3#};NmoTo z7!)@sNx$=(*jnQH<`m#VHGd>V!z?M>P*0wcms}I;&z8a;3>NyDkWyl~SM;&? zvi>jnEl4d@yTSQRqYj;+^$os#PIeTJId0`vXgoi6|7ORVbGM`TSUZi_oUou=qZ-1Z zX(#}|z=V-Sf3>%Uac86>h*%o=F9-7CBHc@?C%R0sG) zLe})Wti4m4DA2MbShj83wr$(CZQI5!+umi{wr$&0z3=p#r|vmVlfPkok&!DRGoWHV z+nkh@!VcVO=%o|iL*Pp1XseQ@;`!j5nPF)a7I+P8oycb+*Gi(VmQN%Q7ZJ zRnR+gG4?dY3SWX-D8E8TaV7^MWiLmdGH<}qWi1W5G1Jd8nB7zExH#l7{X%9o3KREH z=eX)8(A4Dvz?u=3j4qo$%gQO@Q!}L5QXF>jhd9a6MeuTM>|cZ6acIj0fuWMYtx%*4mBXDa7Ti?k8Y+e$jHibgKlvX3d_y9OgdcFt#7 zGGRxwumilr$LCQ3G)K!aqEcu!ktZ*$saNJDTF4M>Z{m2kp=QTtxXbG({F6>MZ=HgR zvtman*Q^!w4(GT|1-vbjEYxC@(X7S9U=x^V2b-(P|H+;QlJyX;Gm(+)Fk)Zr}zM5q4c<>L~Od(}e}i^Rcst5I@K$8|a{6|}mH z_7ILYmJyB$5nJTa$aMqym$U2ipPY6xI9w@5B_g@tpM)fAmmuW-OHMlz*ni30CHwy^ zr=9aNq@M#O8GGLTWi9Sag1Sf6o{W_I{qdQqMPiWLVX{CCBdU!!@wD+rl}4Qk8U}hU z2x&Jg^FSyhI;VC)OtgXj@nHDAnX3q#A0z&3Z zETiP8t`UVLJbp*(SAng&)~VH~%)c~@+38l-9!p@@@=|lXy1X|k)uzk!%$E!mkfDX$ z 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�p=FcI=^?x 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�FBeiy$Luw~ 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 oBCB-TX)?iBR7 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б#aO1N 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

    h*R@9Kqz^PqjXVYOsNbklOE}I^#9bm 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"UsJ^rx``}WwNtauf~U? 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 Sb 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ⅇ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°^!6JJZV0KVug-bLVLi(m0^C4Qy56V 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

    8t8X?Yf?5~wux2;qmh^Rb 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

  1. h$iTmtOxmJgPyjN@l9ek>z|CJ- z?PrCvvN8dPPC8&WdjC6 z6tLqVBo_L*W80l6@8Rh*V#-=|2I$@LjJp5t545XdL&YuD{L^O>WYugAUh5$t_Rk=- zzNx7wMF!mC?CcDm*<2xz;K_0+6(r>6N5>*7Gv_3C&%S8I4LLhd=gl~>uG@%%i|uE> zIR*A)%q6hD!0lQ<9$HLv1k=WTv^L@QK|uLEnxJ=|nABJI6-V-#uQ4mEnf_jqDpNUJ z-Wzz4)}<7k;+zrHu^H>%cQ8oT!Ie1bMhb$Ok!>$#!^5g83k81 zw7_z>0kTR@3^%1>sCdGoSGwxGZ7TL{hxt;w7sD%+5Z2k;PXMl&AmWJ>6zze!sYSLL zqAwz3kL{CkhN@hKEuBTZeuOVM(W)5B*@wLQdU({9$=CSuFFpW3S71%af`v>rVMFo= zB+gsPTW!y!jmIZhT0!KDR{$CUhl>Hg3rKGK7X;$qd^a>CBrGKbCm^2=zpHSFBfeg`J#)%qTPC6GfxB83}V3{h4 zzc%fn!mN*#E21?a*0^dBgqw6 z+hgOb87Ge zPWYz`Ie*7q8?P7aO>w&M+(o@(R4jE59vm-d*ObY_3H~+B!k+5Qx^c{x{5vD%Gxfva ztA4lSx_^=&c`1A;;WFX2{TG$Uv|r3PTxEpoH9DOjr-U$-yVE;s370~XD7@m^djSCz>3takTUV{oxV6@(h2p19>%za%zyxwSAN3bw#gknUvX?{ z0#2G3ls|*@lH$&wd+cqj;9yBk zD|qId_xA1RJRGi5{C6psG$wVnGQU;oQ9d#qf`ABv$j}1SeS|}K z5V|UT7n{mO+-p|w-fvRt3_igd56b0#9gv`Xu>J^W@N7pY{?|d08%>SwPhp$M;Fm=G zs5Q~eId9P`ACG#!AVWo=sIsW|i{8|0RRux<89mc{tY{oKO7P_gEI_VNjV%2O+U5iP zzZ!{Ch7GJ@;V~$<-oTcctjp>lS%NNHb(wL(|9~z?;kKX?3IyyM$ejv&86y)55Uz6? z(e+Quzal7fR$5z!3eGB*u{u7YPw3yf~Xp8h9$3vs=7d?b9?84MVhD7fz!; zWX3x1yce-uCiEVjk`4GcJVApl8hAgQpA@hWU^;@eC|YYdj$)!GHZ+jk{m!C$TOTOg zrh8v4XgTK8@na>b6M?2{a!yG;@Hm{Sl6Ka%_&pIyHC#e($xGjRJc%-Oy{k?|UZLi& z7^@q6pT*c!g4ZT}hk;lx$K6F!5`VYXC+K;@#V(X!qvk@aAW3$=Z={m45zA6DLU**+ z5UEQs)I*FhhPN#Fy=$>`uFFJuooVIGWcPSj!Ah&b4rDcw6tF6&=ml>bsO!+X%IFDA z-%bQsNnv1no*uI=Lqrl#Ih~X{RsL8MB@*;(DV9j+Ru3OE;WXyNUP(l`*+sOZ_v(HV zqde3-(2Xtv5DXd_4CeShzgdl=Z7&ia<5?X{g;N<1;{9lHfi?jP_)NDSa(+Uvx7B7n zsAY4(j?;lsNH%DOYPL(Ec4%b@I(Ck0d*9}+vCJl(9lTFHx3OIiy;Hv^TQ!Bv}7$iY*_qgi8TKo#d)6Y z`YbUPkx?aKu$sVn2+mK^E%yL8iz*FKuGc8pv0JS?I{@btq_m^Vkt{PqkUkc;bSmKLe;1amU&e_%0u{k%#AXnV(cKL zJUoV#dXbelq_*a3-eIrOg6nsZZCc|sgd5-iC3~>J9IcqUbOWv%ss6yMCGJ7O`5Up( z9R&E2ih7yW9_P6_1?oC{g1L-%5jQYj`dyVvFP11s@B#J8u`UIRL!v1l5>4 zxX&Yb}Ta-FWyha%Is5}lBYIO6-ac*2xQ&=!B$Etrz0hKA5|=b_!K zv%=g;a2+`j!vT*>;3&?vs5{IJY-UJd+kmxyNjDWqTHS@AdLnJ6ki|(!#0CuOZbiq9 zOj>$-W`v-g`#Hug0>cXkOy?s|+yJbS@7OhqNRD$vAa0!wH1Lbg#@1S^n|UmUd$-Em z0FQ|_1EF)s3{DOY6pG%(oM^n-pGsF|ApNJZM-73(vF?m zleO+7rw4x#hhj>#JF5;&rphVEYbgAd8calb^!Uo+Kzy{O_BA7$L%{{&oZlfoqqib| zKJHEc0k(U=q;y(5nGA*|y_-f!j}o(E6szZ%p==qP?nuew2}4s}MPt+>)AVJdX^?TF zgJjrG3*oGUH?{=pU23kaojh1q$>^WFu>ARLOkH)uehK&^-muKL)>mi;#E&22+M`n* zvV8BaO_(h+@gfbNJX%NY^i{q3PO_EH*;KW92{gcDt0qafRt%MJ5`=5frvpD(m%?_E@(&xT#Lc<1+fSY@+ z9y^H!ZNh>aj#Ms+@9eNEji+FU|Nf#>WIg6Ix4Or*UEn0uO%u@C&)QWaT6%<)S@BI{ zI+BS-JKZpS!>3R~{b*1yX(s@aipuZnROnl;U6g$Fsg;=K*GPl9{oLOy>$_Q`s9;^t zX~JrPLYr*ZKLh$L1MQ2e+?G8^$7OUOx}4ho-3h%@%B@#bP?MRBA8n%ciQj?x+E9-7o^ozCABjg zmBmKIhaIt;mTX79sY1O2*Co!F-DLr)VcMK>j+-PM68|O(K(2Ksxq_;qCLXF=z%u6F zoejF!3&<3s(dp1NF&)DciMR^T3hNpo)Adb$3na|~e|M&v*=ETP38}y0?iT-Lc5 zCzWG7hzr%^I<+j{xd5Zj5F;zx-Ol+0Piu{*x)(~`fk2wqWoz)u7(4nB=ZMurvx16k z=BoDB6Iibd)_GwOE*{z69-8E~tV$$a$C^MJc@7v@MIXf$Yyf9MroZ?mWgTpV5 zYy?t>gDv^PB;E%@_5RX*DuvrQl2*xq@4UOxYl@NiV{IbaH#3NuRb@CK$eTOe`B~#u z;CUVX^rU=+9)z^sz?l}?s&gOc`hnGASix@nQ!fC_RE?Z^41shI;_~AJ`oJ>x@LXa! z$sKj0nZMNX-Kl6kMv71PA*f+|SSsW2Pi3;1Ka06NgUhTeS$lk8Q1lb*9!7&IEbcwK;UHSDQnl2@u@KbSlr?_#R~sV($jl% z{L5Lbg!6r2=Sefw>DSTa$-pRJSgs%SUp{g)-npED)5xIJ8VR7i$-B`bn3 zZ(Qe8NKwH^?u6cA@V627ST_J$Nm=c$X|eJ(jiz{dn0YsWQ2(|exWyi_6_{RI5A6@o zUkV^smUdZmCDTAyO{Fb7PJVJ(>5fNhfS|cPL2LH^Twm78%V`rST(#WDs0VL z`rU6mZ|jiqrBSQq?RP&#anh@yN^!24t>&-5D*i2)F z!-O=hcdJY7)&qlesXSCM536MB6FV$sl|cWEIoV}vMs3MD3oXOchKJH8=sR_Ev51^^ z0=yICPT~V<-N@@Mh7Ui!hQQs}%|ZI|Bfw4&ndNq#DvLnqb<9Sn72!ZaZ< zmffU;r|PaVptg{wnK-!!BGqN8xx{39!9DaLo;D=$7j8nD2du?Er^R22rflK=uoS`R;is$f8bkYZ^K5Xf!%dL{%hmm^W zt7u?HYV572a;c(NUU}){T&xR5F1-r`Cqqitgmv7jY}fo)$_mzmW@d-HU_Goh3p=}X2O4;PfI<9y{dAJ`Ngpg0P%d#JY>#&^d7cfdt74*n)`^@D1y z^t#wQKyw97s>c2P;M7$aYt?06%-Jk~2eSn&g!~@M)A%{#<7CU?22%9?wg0B^YIUrL zzT?npa#N`Xmk3B!+d}(K48m7`f1f*-4X@;&3sw6Oy;X#5LialTK9$p0# zPAz(;2?pj%4dl`R^v4mtBmaxkr0yp+;R59c>>TJ*g9kld;09 zmE$~9W<{+P+Fb+fueT?-BBjug|M)+W$Eo*<~`o@)3)m{F@{^_Ct6&$j9t}C*< z0U!}hKk0c=zlQ(s4T@I*(rEc($6o^&_f6$A3h*5FVuc2t_%!aNJ#*{JFiQ8$DtcPL zexN9C1N(SmAdf1^_qREudaqunl1g&Z4fZ8LV;M~WjyL6KC?ERhG~jK)!*u3Vy^i!sdA036P(Aty$Ek%m1xn1 z62WcVTrp$0KtOiM!5cl9QF$;(xl2NyJhvpFbrIG&v?~oJd%@OT4pghz**=GU%3;yWiLuBqI1q%9ph7~u++#-#f3I2}w~9EfT)cQ?xfmtKrU z1Lj6CGdTO`x))HZ6&Zbo{&7EquoBvxgUjH7pT(rj&pvQ=MJcy4gTY8mT(~EI_1LZN zhURUSesUNBa4_9m>660~|5H*_y;6QM{l*kY&IC)mw%D1w^roYo74=n5TM#hzA!kzd z5w%gDA8o5#&WS$K98NOfxR)Xfj^}y2@-oG$WUu8*xD%QBD4NU+P_yX99{OfZ`m0i9l7b-nwQ3y0V0=Av~kcZ-o+X>gXV|#cshU zxOHG|dz&_o9qod1*-i_`Q*dNpbO1W;vUo-${^w^9 z4iR25V!*_0)p^+~=xZ_03qA)9Wlfi|7N-9+zW2LGA^!dfbM--o(LKxu8=Sz~VR3cX zw)Um5KjnF1Jcaqo#fEXf+M;EpwE3gpz^}!Q@jEDZKX1ES3*?R z@H0*Y{B18esc~+z{G^al1VcHBU1u!T_Gj_mqm7H6+KL;Mdc5WKw3Ii>KUqY#&F|wg zJbZp~RW}Us?R_gec9fL5wxlTTI!eM%si3(xW1~Y9+0$O^^-yS*@|C2=XU zy{Z&kn>$e@~nxPsV z{oGf|AL->1{z3Xqa16=%eM~Dsqv+1UT@zF_m@+`nHUWz4KWKJoAC|mbwihZh!Gi8yb&TKN1l3RLDx8zvv6Nc7y^4fDSv4#VDU7&E zeR+pTMonIt1D9%nhM;&KzAgSt&I(xzZq*W_yTViZRRXL3wRXn11}sTw!rVx5Ocb0I zGbB9Qr`+V>(ZTajFQ&uiD5X(odcl4X1>^F}PP$?$_N_vWtdV7X2^@d# z0^U9~>5bQjk{pc>lWb1bMF*Men70VMC13b0WrYrLVuj7SaqCBJkePn(x7a~xpG7NE`og$c)DC65IB!fu7e1y6R$WAxV=?D(r; zUg1NIzU>l#|D@mn;HcVOF!ym9C0OZ#U24tYsm?^&$Z|H|1&IwtH zz3lsAWQa-tBX~=TptZume;4d$*0Gj%Cm9VW)JW_@aB5e_r3y#F-e?NZtJ{oCS(!Ba z?(N_knHGg4rtfKe=%bP3GjLTZ9Q+w|mzI#^4rVD*Cc(O95=vB>Tb+wlBU82+6|wIV z&w#j80h0~E{UgFi;c>&I=@X`vL>cug#Wpn&SJ%q)dE%d0F=E*hG*19pfLsuih0D_y z!URR^f)Ui3b!JzqDv6>k%=G9OaIWyghj@e|YJ@bPAIp8O>n%U?%p@P{2Tq}f<1{Kx_|~_8Lwgx{{1(- z6UkC0h$$T*j4v)pyrq!WIZ~>s(A1++WVLFO=!IwDP^yzBFdoXOK5!4}pwH8zklshq zjXubF=OMx3`>Xi9URtkcfS}a5<;gJ8$}gy2$VYe$aH~;t*H?kMn&YHF{>iU6c!`<5 z*xY3rha=ylH_cb#!S3IhBGF65pW58n``WMHHRLx`#c+N8bo!$w1!@xI4?D+LGdv&} zLl~w<7}1zK*(O*h87KWP3Iv}ro7kByFkHT{k+7ePj{N^^G`*-e}T^{lLyWpF6r$D|^JIs-pj4Te=mTl&f<_;vqyKNXBiEr6)k=nw1=2j$N zbx%z&8G;CpWswNNX+l4o_4a8?U^=9e`t_acpts^F~+?(FA`6` zyss^rA_D)*%Xr-}Va!Q5yM`1yFF!JgTN{F+C^6~d!){&RSY3r|N>WS3ki*Ba zFur#@rxDaE)TR3p{!GVYM(<_=94Ah{E>YW;W_@zw)~zBk3-I0VMFi6xm9VV2k?iXy zuI{7g0Q#S{q0~$)(F7h2_U?+B1#z~2X&yt9vx69;Ph;^S4w7V-FInSB^B!lXf{N}$ zmPMJ=1u^WdiPx=Z`WgPFL#sYFcEwh7yaH%QYo++!o<|mF(v!>vCL%B$oNn%%_$s(3 zm6>`58F&3K^=#l#fL+rxV`Qm*9-sA ze{~|j}Nlkcpp4;0M zRRZEk9_p<%{(Me|QUK@+=5v1JL5V@|xqi+U=!xl^l7;fQDymC?{+V-Q zXJpLGjm_F{NMWLgEWj*Iq3{gU-`X;mc5aX6?}uq|*nnd^nhHN$*fN(^l`Mib7q6QX z0vxZfVSATKvD_|%;Ih+==^tkLUI~*QV zE~kUwsMz;1t*B*72vUmaXv+>fEWz(B-700DaG6_f(A%6O=>UGT zaz`?L;pz7t$=p+SM(|v7rgzgwQSlNu=CrTZEXSBa;)W@Vd}E1vpXzy(unO2=fM9E!*|%VE?x?c656PZsB>;>dvKpiOC@UGVG(^XgRrT% z^abwK-qJqlhj@DAf$qIAS?W5JkJ;2Ff}P*T_43!ttRid4A1uei?UE)1GCn5RK8^_= zp~*lO^dIfZwku~<5y6S=%0PD`X7XiPm^q})1l-!FV3NIveIU+)yv5I;i@ZOkeXrYc12gRYENB^6?_&DZm^Z;9~Ql7>8P2n z3l~^h<00Lg)v|ZVdX@En;9s4mLl&^&AEGP|kf0C1)@YGYP2-+Tccctp3T4GoDO{|R z8C-3&v2x-;9k}qdVL69lf7j`*9#*6bPvGLFolJT#2jdmUe4~b$-gA{NAL;dbSWhRj z5bV@7fK3o^tU5Kw(EBZAlEHz=44=pNW=2|J=+AFVEVt7QoF*qz}0Y^`z7l;4xzBA+4E9?U=koX|HVUA?9t)A zK#tBT)ghkMJcgIkuBHwe&kBU~M~bJaG0aU2R-L#Fd>cJCf=;+!qJ7l~N3$C*xuHpV zQ;xdF9Zr_Wa(w^t%i%qmYYw|t$x3tyC)3@fHilpp}exm!iYrd{n})xVBQY=9;9 zpxozJJiHehpCg0d32RDbS!Eufm~JN7XhPtRFoQEQ{+?-|CoS2lM8W zP$HgK17~dIA?Y0?-PZt^<*^z z8<`^}--Hj zDWieLOjVB6kC|I}vVfXbLF=)qOQ@Ilq<)CGu;0y^?OUpZBpeIHE1ETo`=I#pV(bxE z@OPyJaGD0_D|mmB>q3WOQ>|bfSmZqjh-GkenO3HNM zyz;n#j0DMau{=ygfviUqgpLVD)3iXs^~U@P#0Pp10OX^C@rPtgb!aza zQIkmvgu}+4i3+wOFO@-nCdDmd7w+IaprB+sh;4BPY;K&}AM%hS-X~&xpV&+;8kjSi zQTX7F=Eia|_~}Hyt$}GQ(mPuWUr7Ou8HiAMUk?NMuh(^l%4wt~Xlr7kSUIHo;0$(e z`CwLmUQx!Ck~IT{r;H>lD2joF*W$`SS29DYv@oEeK{D7&%K=}ux5tP*hwx;@l?MnG zde*OyPkt2`c+Cl%WaP-V1|h7Qx1;O9$IgOJWeru5Hg5K+PR7p7{?)gNM+5&gzvRVv zDIYuwEY939YV_g*sqJ2@1IXF(M@+J>4GNe;_AL)q6$&SzW9=6!kGRk;drp?df?Dfr zsQ}`(>4MYgXwt73=3FBCc_nS88k@AH~L9~Sucup#%Vu#HjyE`|km<4ot=%#~3i z%qby|<%uy(0s9Gqb-ZPS0VFvMdc#weW+_N1Qf$*0_lDj^KJ_~AI3+$rdY{rKYkYB1 z48+Woit&ZxHsptVlHf{OTkPQTfK6^2hjgyU5&{;%R`7mCj9Lf9pAn6jUqo3=A(gz> zUvq%hj}xM&JG$LoTa6(~$vFZ}>y6i(BilE<&Wxws&XEHRQiRc`lcqt!Vj0H|ialFbxHyie1~YMY!$z6Ks`$ zZFCzf(m!@5lXV}}LU?Qt0OQ=B^_$|R)@A^`zqhWdpe7qy|ErtD1y87?0y~PDw#pM1S7#!Y@uL9Oo9by_W4X)%`Nk;{*MK*Q%()8UDU=;S zirBy%)?CNgf`5sFK4T#8OoLHaff`GwMVd{gL?G-Y)zDsO(Q6I;!ZyR>VPx`!Ja5i# z6S*Ltfd$U58zHOmk& zzMDJm;>1-{Zs48Mna#c81J2;(N=(3qs;9kY0%0Veo>vpcjCB4PT-wNT*Ml z|E&YJ&n7IbPoPa&Tx}e9nT!QdM6h~>k+X1FkZ=rzzi^qne_E4vDYOK!m zUNzf-x6~j=RnVgLY1>fzbP9_F=hPakgsp8YX$4_J^gbQ8Px#j7`2Nab1l|i3p9Vyn zgsu*7OYeUsK-=p6j?*?g;)%wo4yxAM;u%Vq^;AlXZrchqsbuAnb`bWPP0Y8OY>Dbj zi_$#u=qJ^II$vzn+w|~YBq};ZPQFRZpY=~U%q6%<0t~mk#Zyc00m@z&9cHOwvM~@H z3ZCd3C6^6weCb_GeEjh!{~6;R5j#$CeQ1vYU#vM`66@aQ_8vRW zGT5Pq=to&%c4p2XOr;Nbzme1Yy@pRL7a2<^1nbSoD)RC5+#=zL6rxmbRwEINdOw%> zf866xQnlL+Z%(amD%^Ofzp69F_G=S!J&XP4EAW8%<(PjO8?Du|&W^sOgDg|d^tAt< zSSIWYRQd(@phI8RMge@Q&svoshHroHxelKL4TyW{B2+1eZeRYNZJiE5?BjgAqSlzc z21+Y0;i%?qx?^l>M@*;YOw{Ej-;OpR0#K}VL=gjp2dZN+BA-BoRN?EmC4LX!zis)J zX2;7gffY2vZG3xP`qXzJe~Uf-8cZtXyn={EgrqZ-9>O)uuA_9(et}Kygz?Uk8>vqK zqmxCDgdiNj&B{sm#eyXX)y)L^iSbEu@8aZqT07&&n>1rSBkg+Q^MJe+o-XoBXrsa} z!ZJ=H@`>=5qzz|{{NiY8c53!ek*&nZz$>YHtvj{}l{6%*h_<<4bY-@q#Wk+`0Ott~ z$%NCNMzpV@I(YFk^+XpJ!5J~SJIuu~orcS(-46)!F_@<2kBBZMvLBHhEsN#S!7Q6l zFo^}UBP}|QuhxKXwtdfl>SDdN-qKu6m-0J4;l(;S_{?gBUA@dCEkb6iI9xrNQ^0?i zzQiu=Q}>%Ama78xIVpE7kw~O&ze>6ULh`^SK1ftID}lXIoi9|ytg9_;utjk920xV9yN8?DHtdkRiNOd z&_N7qRmL?`Z#Ibl!`oOs& zb8fR-xP0Oc1>-k@jbi>+H7_&4S&@zY07=Z*J#{1E3%xzxz?vIB^8aVSCKEQfdE9^u%W& zb*?@2y|oQYaXlix*vGQbK7>#;_2o8Xi{>6_iG;}f?o@h7PFIAkYnQrEjA|eHBJ*)c zTYV+MjE*kwl6w-%5;$l|(a3Ju`xxAN+8W{ytIhdJx?~Mp&+PvAS4`t8i~Kwt$r`Pk z&HSyKe`v7F7M^%lL%j#!tV<^QVJQNk;!dUnqCL?rFXbR;>tO15nj`&>Yx|EWYOe|_Hl>|4mdF|vkK_*QuEH~Yld ze)B(RAkXQTb5Ro1S$GZ7Jqje$Ybx<3URoa9H0|{h#6hTuSMc}ac~VC*tGLduCuz6O za$z4**7PJ#N>O>&h63nTqJOTn)wljVm>4L1D*NI=fq8I+NndyNuC ziJ%o?di;kaaO{Ma^j8UFKqP<~b?4Te+Fhzwh}XLW3cJ7ScQ4wgW~Hqz=c z*$HsrtG#L;v4Y0I@n>8KX@UxuT6%seQJ&~(DuKO~p$nG6Bl&%`2xAd!K%y(RKP?er zyo7zh$J=C$jn%)AM9U0wM_A_9yUmy}9;P+{o=LwXWcCev`hEpS?l>P~TxU7$l3@0^ zGs^=IJykO&@xmd~jyabAHQe25{wo!cYTr}%zE0-XM;2%!>t-T2RU2_7H#BX6YWjV1 z?MH307ACfGq9p95w8JVwFI^ zs<1DJiar>QKU?8clRQcd(2vUA z@>$PYMXV$whU&!4Rx1`Yv@y%BA}%7DYtKmph*-U&VlV(Z{z6qJ_N(pwC;~dS<(7ND z{%Op8*f^0_4H4)lL_qhPL+KxxkiW&$()&G_5^)Dx|9_u&g!?lEcPV##)4se~q$(YUYNd#eK>Q=)H#sU=n~9^J z>dX?Gt|V#6q3HQR&wCW{Y^@nY?B+gP{yIHvVe4VLQ4T+l8C|J+_=|H6S8FiptW^X~ zT!7S=U?-7kzM2vph}JJri{qdc+Q_Mdm-K+LT84UPUZvU`c*-_G&--dmB7YLCg%Iq~ z{8<&yS^PD4HJ+DEu*4ow>lJ{mb5e0ahJ_*RwnlL;n$p};&K{Af#QWc|WWJfn>XP{} z%<$YD5pnIzUhz*npQX zyzs^O_UvlQkpil`hlx5nh~)d%aBKV#qfOs|dpGSiPtM(E3X1gOUCBE#KKl|2KtTRDRwt0~wx+^Ji1k zV(F1cW6ifro`0@!=P?tjCdyEE>=UOU!?bm+h|KM=m#zhdD6Of9vaS;#rS{fg^Vg9R zEht2zWD!zCV}-0hl7LzW8qp$^Gl^ zgN8MpaiFGF^l}Wp$LfC5h4LuZUUcN#lvi8|-+Sl_DaeI5(z;&&VYDz;zAj!R!mHz% z_zEG&Qoe+zUJ`P&*+8sTCQZCm{a<#^$AaRNIDnC)@`!JDB=+-t3fg1g^Hkiub(Pj; z7yIDLADCe>`^&=Pt=v!%)EfR?L^54{*n}5=3XmeMkl+rRd-<$%+;yH{WuHH#sEkT< zR@-AZi4FNZXi?$E33iK}`tB#3AW+Bt5qrSmppmoK%JH#l)Ws>QZJ+8*=?KyDko*uEK_P zS9o>vzgPwau1rtfys|$PTZ{k@gFdYfr&XL@CcHQGSp=@Et3Kp6x@soTpBzT(R+7Rz zHw_bP02E8~nqOSk$A&j*Z&xhpZCcrpf?TI__G**m(0{l5Hq*_Y;KVpE| z9MH*!Y_C(TPs$~FDhG_;1V!(*yN-hhX= zs7YVR`q_LBU-be_!vDHFY`M=n_V%oh5(EfVH+5C9CWY4Ku8lRSAkI`wv4XF+DMFha z07XAn31G3=rqGT@WkUkcd%VA|e{+r1AmA;P&|##I`tZbs;v|bY=ws;a+{~j4LtiBm zG0C}(Tn#Zejc8YJTWS=fMHxlRP8^dFc)>)K9v5oce4-~7a>>HbUNnU<4+CRZPHjW! zW-=P6C8UZOeVTPrk&%b>Kfr&e3M8vgSJ3^O6r$Z)iX?L(6{fT&6PRMx60Vy|m9_ zX{Y>wz^%Pn9?wtjP3F75W@z3u*=A3Ay&!~e{o%e|z`~o4y$6GVKDy+c((M~;bRyU$ z*GLiTlTCvz+7}jDR>b$_RUJl)#5I$soDL%My%NU1OfuiwkAp7IVSZ|~WY?dOc}S(0 z*pq!jWZVuo`i14yuqjZ|EtE=xSOkZN)*;@^LUh@8S@@l<_pR$sf{b#y&>**$AC`))(J%`*X>x<5a?{~ZmamAPyzqXxkm#D zDM$?U2I~KYJw2r+Vprm=)Pnbsx4_EX)edZUC;x|`js+>@R+C(F&4wB>3w868Gp zL~aZbxF^*s(s-DeGr~QRcEzbfKoIQV&@43#j>u-ni%SQA zyE|rHElbfsXKWebjKnTpzizBJB8`MG1zhtV7S zr(h2sEeM5-PlX3QWm9C_IPjhg);RGqq^*EO6f9Fj&-_ zywMI&)v$P~;aq1md2X8;{GiZdPegRCD|HO6OS0F&-1-Nu4vMY6zwxpjX|rbz9`SC5 zn`VcWI}cn7lQ@&;*#}Ks`Ekp8sWNy2zsQLxae4}lutEI+hU1g>%IJ;Htm z#%JTOG_2s&eg-_o`#5yNp;;i(NX@O5KsV87=4sY2dW@KjCL+M49MK#O(qaI1cXFck z{5?&v9yB|}T4eQ4cm>IAzPKcYTDbsN;+SaPpx&{D)rhO}{rbSZY2HCMx|DnRq@>FB ztkA9{besC*9&-SXo?$bRr|Y?$IKSutKk5y_p{;9@p(EjM%FRAT;QsCY=+~<0>jT=0 z&)OqYT%jJ|9UIg;*ya|=$X%skj3{@(-c~r{I`mpo&Cm<(#H0_zsL2R?w!h_jAZGTG zruoN0B9AAW_nq>ImFBU-GtV||Z%ZCBD257$DFB@O^i%Aw^^8*bJSrF(REB2VL+ow* zd0SS7io&cgp2H<3Gh$-v0e!O4VH=V{tWtSMHe+N`0-Hm>b6)J0#%EArSY&CB2(LOD zoIyj`+k7LkosP_2lm=s{Dg)%;zw69@i+SY*c901kYD&WFZf@WfmzYxWl%X&DbSZ zzDnluVDRduLWi87BQq!baN?JH2hd^(yRyqRd~)FG5pYIwS95hJI0%&ci!pzIk6+q z^|np^ukMZy|k9rHT~t2@;UM^hral}`j-=E3qG zpoPS_4_iN=P#ujAAYPOOPyYEsd-M1Uv4r64R)!6`{@8VVumI)-SRy9j1)872^TGRF zo&l2J#wXB_KmQ^Xedyaz4q@p@bSXvNSOpHW+8PfSjHEAa(tTUNFKmgc0JDuR74l^S znzLAoVPTk9g3vihP2RfI?t1_k{nLWk@Q-ozUw6o(zLek~AHs2O76C#x?VA_fyzEu6 z5L?P0CEu%w&bt>0jr}Ahv%AXLbG8)HgAWbR^$giR97kr6^=00~Q$GlbWR@Mpqfr37 zcy@v(t26N7P)E9RjBdq-G=jUr(r-bbOs=$T#|fcw^Lu8Be)Sju~i>s#!g;lrmE|UY@oe6HH-w?!46DopY!SZL7MC z8Whl3ASdwXED)z7Ow}kiC1Yf1e@#D>G|{d!6E!!=9^5KPrI4O;gxxw``pxQKhoF5i~-5BSV2wRrT_&|NeL9cTH*RKnQsP#_-4J`=1{< z;NLQgZV0mE#m@MR%56x-&PN|f2?c(Ltln#m%qlA)FD#DQ?oKnF7}6+W-6rcj@Q>%Y zQILQ@-=xk^gW+h$Ee)cB?5ur}!Oi82fVkJd%xEeKPbrcYT_;z#67i)*yxyI(`XmGj zzb<|J5|bU6jMzlh2FhhNkkNE#+*lEvKi^&=p}-JusB;_g9zVJayi^3Cijh>C{h6S} zWglchJvn?6c`)**=4BRuj9OX+GeOg-rNDgX=6doLOJtH681hrN5FgjuOJ2|T>USzTsGlc)B`Ne+KHBPj3M_?gJ$6c$f6*bUCVq9%uojFG2Jjy{S^Vr=yXFkXcU zE``+fd9bK(7B_>c$6Ix35m#&k2T)UP`E7)Q@=+NdqFq*B&vpUzr-&3PQt2A4GU!wc z_TyMb3T$1roh``?9>_Hl=&{#fA z8*@q%AkNFoD+PL%8z-MNFREa<$i|99w4R%Y)~Y%rI#p@su6!=?B7h`CGoP$s)cul_ zHjDK1tp))|hk2|5!MD(oVqsl|BSX64x% z81suH$>%|7s;FCw`l|ID6$9ILl5XT|`B=QrjJXVm@1BxaFHNV@@^jg9-bZjAX+en2Lk>4f11q z0^{RbVUwrq1qXeUgg`F5xn$W72l%Ro68cKRSWXj}DBwlIO8&lsIb*{-obuYD#zslZ zdp5OjR-r>2#Qf`dJ2YByCY@&?$<2j#CyP6*FA z+4a&$fe4pbotv1C^Q2Cl!)P}R+O9oG2Gc`DZ#o+bPiMUqsa4{2AU30{l2WD%jI&M% z7SP*GzAv~-YBaPmLKXHhTDjoY41dZcQJUaCv>&L#wYT4aiQc8Zn#D{~z}~zuS6Q>` z$_WxTua;7922`DtuA0tG1JI5FIZ}QukS%paNqtMZNrRTiFQ-KGLZbTUqwcm*x9ybj z1YU>vU1ShU>7tVX8F%BWC&A8TREK|)5#Gz>(vonZM1PsfdUMR8g)Pj4?)8@ZB8^`K zG%j!vNYU?YFqKo8l*5AlAHJv(aRl=uUBq#R8dezDM2}ZGz9q}c3<2^$KQ*JkbPKNG zra|9K%#-O2rXyUWo?~%cIe|=qs1F^qMnyr z?ayxCz~qA8>w+*5VLCRO;zEHT^J&ZK`bp~=QAPa`J0g=GB!68nf|oiwC2CZIhj}SPSEtlVBj+bgLU_nQ@mcUCI3Ui-8+y7^75n|%NJITlf$?ES&Us) zx%1YCUV+9f<3{{nsfNO_|l2LwB6MwA}0Gj-Yy!wCmSbz05o z-ISIF_rb12Sx5Ah<+~rP|L~MXwoPp{?>zMiMa`Sm6i+d_Kn%Y;Y~E)+?{<$7XE9%2 zhgNS)_5?a#8Z2LXiS*20#e!%LpwY{5Dn`ZfSdn(#0Vr#U5*K~#&=)Kkic<u!*m2gd)%;YpEkc zE!#Z=={tawtvOjBfeeJ(ZX=zsj@H%ao!gDIW2B5FK(kku%n=olEzL$F7$8b$n>+}ljwh4^1e8- z3IJk6%$TkVf~0qq?_GJ_jF9iQc!9TKVV&Jgh?3okatGNqK69k@4-Zi9k{0e$(nRkz zK%ZB&=-xPS9O0L=M^x?qf$^;9nj~a0&SmBGU4s*;3&UT_pvar~=|VN`!T)nxb<)aE zsn~fq@}oT?46JJxnXG21N%DV?^A=vO6kyO;uid>wDx4 zVl=EW!Al;vT4m?a@Q|?mFEtn{$bKh6W8D zs!(28m9@w69LR+Y_xPMfy(j$f0<`tUrHW5R&=7qtu0s*VN5Fs6B&nQptskl|1dNP< zB4@ia`nVJ7F}IY88`$RF-^NzY9IQeH4Bu7;_v>)xz+mUocZVywUGg!B| zc6$E1vw73njeIjp@J^qfammfCd@f4F-X_C!J{9E==u2QZ62xT~$95UV?^j06+(1UI zJ81FV-Ul&E4~euzr^EHU7}?T}ZsOZc83_E&;fVZ%v|2DI8`=xsj|P5~ zI5XH}%9Qu00h`K9_`0Vdz&*HM=Z37(;sx-5ONq2GpEQUwz$eeQ=uVW4njxvyg;pdv{aR;LW<%x<>3e8CDpy}ThO9?va|)fQltd8<81ThN1TDN~vPh;T z&dG117haqKD{>4xz)NgNXXu@>)sVa)gHn#5iA^My1s>*P%+gI<$N^h9Dq!3v&AtSAUBO#OKrqJhnE$_qVjfB=GQDzP{|RIE*H zSTZg7kbu{4N<*RoSRYS2SMAW3;_VT&=p0E{7i0d}!3tM@fWNr6q4kIgC(0~B#)ih9;B;2#T}iOr_M8Vhg{9Rlz%SPZ~A752*Fygt>z0c-!isNw)*}?Q=>Qf%2G&C0Q^h-y=NvE{ArG9}jO+iewhk=ZC=quSR$ud)a+hGYrx!po8@= zSAWwqA=~A83|lGE_>eO{XX5M}F{kFDOH(2e!0r67u6~%7AZGPRO->q5-dPqX^$zCB zJlP-8sT(zwxn@s2@)~EfI;lAVYCdW4UEt-WG|$K&cJ`Uu6W3$pdTXk`VVbHk#8jF( zO2zn%`Uhn5ldeHce4GP7(7;{U2Kdf3I>ceN#Xb)56c1@%pcBIO>N=l}Cg$X2*7?6$ ze@T^{_HDAg3;zS}MlDDbQ&!%!P@1JH5&8q3vYkiR^AT_$O`i0aruT{k4|u--obU08 zSkr&gb5YUAQKrDMe%J~=Wrz|c5U?(*duIG zmtF#g3b;c{ab^ZUk-^E%M%)fqevB5nTQs^w&ap-!01g4Yk?L`g?*%N@k2oq86o(|e z>SElj+sA^e_s z>I4C1L*g-D4>I28Fe%CP$&K*J<)eya8obJ|%lJ6NnJgbFl=!reWHRr10v4zP!lM}P z#RDrVx^kH^>Zl{`so-WKF%ngDQe-M2j5?2iBuMA|BC1P|$>B2-ySmpkj=8ckE4sv$ zY{+apvL4LfCg9gfpDv~EBy?&-PFiXL73STR4d2b1QdP~-ADi(dm8$MU@fNpE1*6H5 zL@*@juptTQEiIh!PZbNLuh!MNk$X31s<*}Nk{}AWSd52iZDQ`eZ`Af}*c_N?-7Wd< zV1EupGd4nR&@NjSeVk3~@Me22vRa3?Y}dp1_#z;x$ha}j_wg73(_WtJcl0oqa!HOkEu;sCr&w)cluPOz|%i=79=v_C>uuQ?)d7(=@TwZB+x%n!@KUcM(_q#B` zDYOBhD7vsUiZ}Kf=FHj;(!l)3q~O|2?jY`^H(SkteAGrb$W+fo1qA=r5Z3? zEu}0Won9ykbdtKj*QViImlcFEK%531q3f|&hWmI#_zy@=pG=4G-*+_qGc~WJ&og~* zfVq6eJInyk1}@yL7XB2rQ`d___oU;5y2BeKqO*2!QJD5CLBk&UJvVz8RqNUw%Olib zx~kXMtMrOX+TSRLHkI*bj5mEQm_tQ>)sjSqyRLN#->)NifPIELi^+F<#Y4#n2rim8 z7$0acacF6d_y6>$$5I-W&>hI;Ldwkb!^chkr0UsJ0GYx1e-uP>9>v{sVy8B5nqW2{PE zG*(QigDHnmfxDXA^=%8|yg=sXT%Y_7b?B8ze&4=uiod1DFMSV08;)8MPnKcK=|)69 zM!L3Y#^?rnIxa-Zul5Bl5+}IxrvFAqU+g&bVFyrC!P@mbm<5s@__m?DhP>_ z96-%jlOOkDdu|<$db(St3Z@J9syM*YjrOKz-k!|z>}`d7>X-S*-l>?a{$gdYe1|hh zG>2%t@Es_G)J!l|BK^pV;Ul6l2&uIPkM}}W%qCi>^C#%(uz|V@+{il|Q-mw!Vf){< zqc5gmHcnqTnCp8?OpdNV?cJ0ANk~t|AC@_Nl<_VOO1Dq7p80Z9P4ME-P+#J&hju@~ zBOEj@#8lK^^|5dVu9og^m?5=yK8?i zdP6!<(vISSL>AF{tbT+!_O)vSKTP#mZm~27V970aozGym2J4__N#?K{@wLC`c1 zrv8zwq#u|%Vx~>vg!$n|jTG`F2ut;mh$)`+$o1P6#tm5sWv z5N;6X`G8-Av4cqceW^EY=K&fJ&^%?r-{Ce(735Ho+C|bktGmCL?Orzt+UE}8LpJlw z8kkFt3~~-!73*?FkG+-sIX-dG0#`TYl&;?_`TW<6cVBK=uh5;ZO_gCCL-4df$;OeL zenZV<5!^i`$7w%-!i71xaoXD)uTj&g`0^~p$w>Uto4L)cHmX%7>QMU+?O3?q z%WMs2p8(D>RP|s8!DMMCJB%eq{x)0^!^!Y-Uz5YpZ;HQ_>97+3a0JM>#XH)?$(bcB z&0aQoA(8L|jL0Wg3caJr{iBfKgwDWnxD|(b;QTW|n(*N4HY#kn3tB&w+YQ07cbd}I zOHLYUL<}2HZ3MOEa{_D{5SDYQ3w3clJ4!mQ!ufs8YxzsT+EZc)!75?}EL%YfI&`L^ zq8NWN6T81DzGYnmHGzSpcorB6_{G&bqXZNe(v|;lw>J0Jic!RN6QH6U@1UzF$Nr=$ z4b(M5quQ2ucuN!7)x=2JG`Y+_Lx^9``Wxm)el&W>qi&YY_Z3q6J%Z&3*#1O{0}d3( zxd>Mx`sHVvinwj6Fp1-Ga)M(0?1=cF37SG2l2$IBh?{7C@&*P*_3bQTh|Vn>{K`H# zI|*av<=55Cvo_-;Fz}03W`!P#P{*Mpapeq50o0HJeBCP0+kkN9k7S`xB!4p=wkM8K zxVBm#xOMcBJ9)g3>RfdYrqw1iJJiCl#UB>#67$AC9K$DCqOTMzZ5<=j<$(p+3Aa2x zPYC5(Tr3qN?|(SYd^Vf-zT??F?L2kml6ES9j3VSbpDG*hxNIi56D%)E1Id-zq++nJ zFoPFCpoBoiQZIW60OCz*uvVq7KPo`%fzCBxL5~CCrMvosTj?aC8}4lm{F|UHcqCF_ zC+L1LF(27Udc;$K?56*=c`aZienM70_C;qNt}U(N=cH&z!hg#|Up_CHF3}sNnc~bo zGt>J6XQA)zk4`{B7pe?zSsF@)fN=X9^9)AJNYi3&HHc`lOKm~# z_x;Q#(u|6-K~$mbd_x?;nc;Y-`t6kCzmEs|`~BaGeHn1>HS*d^)~s@+sC+Uy#ERQ` z$`PR@RJ!$F6~{<~$|P^E-G4>ul$5sSq?G6*A(mI&a8yK2%Sanv7M`}na{`S46bHTt zdsepA9*46G{&s3E9rV(`6iWc!B-7`u~8p5@3($(nl$?iY7u zG?(Su8*mMmNljUNGK!ign+zH4r&fiB;9yLFrLPE`GJGGO{EgvNOX$12Id_r2}VjIw_50{4G@ed^We}pk_fFzvvR$i1k%zj;GK;% zWGg)E3W+|pgO>weF@Re4?8w@swnN3|*0_xCCy~QKF$jFmTl-z8;RBXV3crcE&D6BH z0W?tqgG8TAp%ZF-RV6}Efz;B^bOPe_-Xrfm5$xVVdAK}ita62kY#*T>Hvl<9WP+>o zrNgcJzZ?!)A+=?_8h1gKyoeSr-A!Yc&M0PCrf}CWQ4D_lDb-KvJo{32kFAXj*UFCM zH!Dn&mzHl;D|RXvMbO^vLPxi3K?Jw{O`bGvY`Gy>k@cGjQfSQijk`NTA^zbl1vim&DZW=?KMS#q?!D>%f zOO@ccc9xnP5xk}jp&I2Cia5QgA|DgEeey~$1QJ2kozes|fzCD}GJx6skpe3r?-xYn zO(=biJr#9AjM3#v{}z$M^tc4?>zt`RLrSm*>R{F33)R_b_aP{YF$!uuAeMMDPuA4} z_Nps3R1V>Gr}g0F71!`@AFp!Lr@bX`j#fJ%X@?+Lr741%8_Y4%O&eNX-itQ!1m)WIN|{aBe=9Of>4J=5{E|D3P3eBp z7o`0Dh$U^lh37U<5??cJ-uoUHhVPtOqn!MWK|l#|;4jS4lb2g1C3^1};Z!tgBQYGv zh$38&Ygsb5(UAt_ea21Q!0sZ(QT<{GWe4EeyD>)g_wTZ;$2*|oy7;H#)*UeMzboIT zTy#Nke4YKQnYK2xGyniKVP=R8Y*(n8hYe_kEiFniY1RX_$g=0gGTstCP*UNrdNS?` z5t!Dz3<+Mse##wyPd8ZSZ^Z|#p>x^pH0`-D@P?bU|7C+G7j;yUYPoq4_41gZa*n4u zF@ujeD2zT`X5r)dw2h&|!mGiZ(02#pXL#+u%)cKGYo3C5*Br`kT0{s^HMuh>927Tlf|g!TH?6~w@4bLuKdzN_ z*!hk8bQTA}-VPla<1GoG0Cwo#F-DVzt&6si`D`+DUbft2G72@*`ozr$h;mo%R8Po$ zW6(s4ubVz4or0|TXSba8U|))p*dPA#jGka0phuL#P~<|LYVntO!o=bDqExpBc(mXe z`vOe3UIo5ET7l$~eMLb%i$+uHB&koCxVr6b6CW9j#my)Y>*m(IZA@=+P+oB_a`F7B z$!E&mcq>Hw@1A70&CZKQss{iA4*>Y<4gdm} zSWfN~IaxxTZrppm!7Pxi{~tWV81W+7aNi;qi6{?V4zKjHy8 z+bLmuf6@TgrEA6I{=lqP6M#;;sT*)n=dY=Z*UI}FH&m1;5aS*=uO33Mw&z(gE9+h} z)d28Z5+b2H|6LxVfGL#Krx*v;=Z-y(E1fL757;O?M!m+2!WEqVqLO+AB<2Fb1mCqz zc9X<-LoCjA&p(W}UqDdR6|d73h@}#*#hwJ$!kSjZc87*#|MQUWAy01R3z1iOIcQ%a z?u_Yy%#6}_iI8@lP2D8k+DC%2H+;pDl}@aoLFwi$SvL}iwW*wLaE*$QBTN~d_@@0G z^`)P9-gWdP|p%NV3~o z8j&DA(WsXpQDb{^fpGT@XsU2pFcc*{Z3CTNom2!m5luNaFBhl=(=;|nG@z|xp_FIF zS=5~Fj-$=81c1F9ZD}$GSV8Dln4~^MLwkc_8ruy+u?aUqiE?8YCq~a_9kr$l# zHmM=ZiM zm!%t%3?-8PS#@(1!5u!!wD`D#YzNDl5maGn0~hWhU3-UD^#njN)fwVSH%>Cpx9t0B z%Sj4Bl#w=Y5Q+R9m-Bxun_E|W1TPaS5S%+V!HbyiMn*h4k^60LB6yP`YFlTMvR_%N zVJqZID|ls2g!*#Y4Ukf1?GSOPzQg~uj?hbYpH_kbBW0}w;>JHxdOnOuaDPz;J*5rW zzN9g~mL;e=l+W4(j`Ok1803BR02U;X#$iAO^s*G^ed|W_-Eg01WvvCptjdP1-aN6> z*C27_?J`oh0ki!yPo7j~89QakIdg8S%74ljr%<;!%Ci%oB4w z$EmIsR|8~iSP5zDRnPMe_%2@r5=`Y)EIu?ZfbbSzV3w}G!J3Q)9~bRN)y6p2U#2){ zmIst2(%PzPYd&54I@pK_W-YZV=TyCd`owW%HqKLjOOCiIla^kDU(22J^Dv&WUBAYu%DS2`LV~wNu#J9v!7Z){`Dc& zz1gP=G*LR+Y6N>yxWS6Z56yZ^Wxq7@bxp|T1z+^q2XkMC`|yR z`dw>S_=gIZSK3+^AP22qehdHo4D8r9hNte6v%W2T?O!#B*d+AvA-ktPK9}f5(nrh@ zx%uupiv5%J&p`08D&$&gGf^)Y#)pY1PmlnXVbgi=DK19J@_{aPX1g|`_}-(-_- zM`s1YJ<|frC8o2IEunDsnp8VQQ+ErKDfOcDW#UsFbfWQZeE|0|7HNR7{G!}|r!V>A z)$mTd^HXBjhYuL>+%ryU;w;%2?5Q#Z>4ACDb8ScCyq%MFAUyCJ@`~8wXYlw=J>2^| zpPf3!e5o^3zb<%9W7u!%kmo#za<%aRKGMllR^IvBmbql^Uu2DheJU1EX`Y0p=mr`A zjw%KbT0gSnoLcshPF@)hNS;>8o)~clNg&i=!dW3hUq{duZ0{w;%9Q*+fZt})*>#?{ zvzm}NxS}mO{1UZPJt*L8LL<^{StD;MsDBe%c((P8%kHE6{@NWmDvT`o`g1YQ~=~k-y|? z(gf9o%M9ya%NAICP%kE*2uIsvtH17*|4UxXFNh_hUTgvdOZ{~PFmprj0jUxK-PT>m zI>NdsikT(^77AaHa%N3BCle#T!A@tgzTH(A(qX?M)8mXfeRlfN+WFQN1f=aX#5Vn7 zN)t6K+(F#R1x3vfw;zDlRoY|Fj|@J#a%90Fb(n3pb96FFk$j|`49A_|=UPEEzJLqx z;!SkVJrY6Krc;EQtEW*U6Y;^EphIO`3dzApvf&nF{p>#gY7!`QMvP8x_j9PL0PZAv ziOj}ZK6lk-afo64o_Y%8$>d}0N_4Y(7#dI$sEgLT0Xlb7UD}vDs zdY;4Q_{O#pNWjr^zt>3qU!F5CV$KG5RP?Q5#$zdyEMJO*mSgUCG47zOra@7m&Gt2? zrRxxK*v>h=xJeb3E*E9_+?s)<@QQ+repj$Q%Hn52`e^uoAtv}EtIN@+%=M?dQ7$5DyPAuau@LR;LHx1KH6gfQ% zw*r!Gg(&6l=qEW1zsOWoSo#A?cQJoXEYH-E4wyD@UTmHtJ`fz~W}?tiJ;@OpsQ$Jv zgKA@b93ZA$0u@F7b!?X?AhiC5!!6JK!>5!Lqu|gJDqRT;5bILAxyBX@*aw+MS;-(s zD|2-tT4ZDmIP#JuV8YLm{D}X*KF=;N9(Fbv#M|+A$=}_p$CO#anY9TD-@kB3dg`TT&s&X?zWANoANvg22%mfD zKE`gploXe@IkrbjOZA@_(lgqw9_rw3n>LZ}lY)k88}}thgx}DU4AgS3>)mJW+M4SGh-cpzq3or_GB`GF3Tr;#1 z_Z;+(J%qAiZ!5W_Y)&N3W+_wS10lGgadN(s^M<{W=ykEU=d-lz*UzQqJK9!huyr9rGYQvph;>#ZSW190V=Z%A}t5 zF)~Il#hOr6)QA}@L<#3krW6e^-FFbSsgl1jDi?J(5Va#nkDQtXkU@5WNoRHc5(MR! zox`bb*0x{`o+x-qZmjQ5tOyqcuDlExqlJTA5cGp+?5MhW1zu+`3@F_et3BAJD%`sc zn^u;s)T~w6f#fFbRr3~WZ>+n7d*1YjXp^ImMsZpsZ@z?&Ze9N0e=?!va;P2=3d`F? z6pjPyo7J>gh{kt{oFZLJc|-M2ltVHB3#{ZKTBhCIqlG0&Sq7T|_3U8b4v|NIVknEu7;Zq)_S|h3U?mE{$e1U^IU+i~v2bXFtxM-J!IHBB_Wl8@P$%C@}NEOK0F?RdHTdu5000000Ad@w0Qz<#hsa?$+x~M!e#GfY z>m(LpPZs7}KB^i|1l@4u&dkUz%V0qcNi{`mfr~sZMzqUZOY{na=oKw11dh9MQbLJ7>kvjo}5zOT+C3nTDm>#w?BYJ8y4!ggeHjsZyg)qvB_ln*K55@+t zZoGWWXA~j0FrgD9^~okdcztIM%Ma-E%+YLYXceX$eBu7I3oP5jrX%`?pACv;yx)GP z-?FgyiG9+nXkN(FlU$({^d!rk7i`#E|9-kP<<^r`wKkWxZ%<3%m=%^;-9tJgOY2tC zD5Uz01BHu-^#7N%T9>z(u;|uu+QLS5?PO365LC;vIsxUbZSU@Wlv&IZ8JKr2(G5S_ zv|@b%L$))hX@!t8jc7^VnQE{CN+Plb&xz_JyKoMhPcp7R-O#um$RJ}Vh0M1d((|b~n5Zt6 z&i9@h875~+95-;;&mI_Zdl>a)zAC|%DSuOi|01>WLIdy^ZTPBOGTq!VT>ho*(j&eO z%NB$*d}hppBAxtM>}ie6%=kRV;Rz3Ui9&R9`LOMLvlv-FYj!7kYN%;@4#rN4dt)Q} zpnfZ8LAqwrl+os7Sr8YE-t+e|(=HZQxyb%8y_YVe2>;Rx(v(Co5}Y)FlJ7Z0&2QomtDf2n&Xs(SdmK^FOFip)g|_(y^`j?87%BKJW^FN3wpLK$$4mmk=fK<>YCXGg4j2&N=|mrCH6iE_CYEHC?Xtpy|UV-IBm}Hgf&l zR!^Su7#s`f{qh4h3OMw9qVub~q#WTTE8mhY*q}v^9Ai$!9(wpY7owAoJy4i4&3N%Y_*j zY?}Lpe%BPOVUUm@q(nZN(j{Qhr4`)-Y{Ff~mlnz&Da< zBoet!uE2s}=R;9;TWw5kl?z+s>?+EU29W3h(zoh1IbHOCEaGS5SY559eW`CWM4vh8 z*cD||4O_Ss+dzafkVcQrskXEoIi$`x6pS@a*z{`(E75w0Ny+tN$p*-X`RjR|W+t%$ zO}!mi(~&Pmyy?orbCJ!nLVSu0&$`EZU?m>+t|;tAh)9#?Y1fQg;Os8bKUG{i2 zgck!FJB(425Za%rs{pFrtUOuHv@va=1oAjZlhSrTXy8?2SR6%!pLIoDwE#<16>j;je-olT18u$Olo}$Cfiq8nSPh5NRG`0&&)iC zN|snn+lW+*Vqg8^hIsbHJp|P1=ycHvDUUsLg$kwPPrXx~qml!)(v4m>(Y#W4nHpim z9-A4d%McDfhD!Nf^fX0Y{gqulUYAxQ@B&-Y%{C{d4KZS6ZGV>6sJx1K$b@K9g7A*2 z?ef~(AgrmlavCvtyIdH2>bVg|^j@DHks07RGf$PEC;Wpic?Z1EW>+nPt3r9fLgPI< zTczDK!HrQBCc9Wt&MqdYTSRDAw$cH<&SrBqtD6X?W7+8(VZDiI+D;$~OslmN+#4i8+Z>@c&Kilm8~M&-4IpsWGkSzR?6Y43{Jxeh zmWL3|juZ`=zpMuHpQ3CYFv6*}aglW7VegmUDmoNEDs7<6CeYN~POgCQ%D<2BW@aWi zC(|C79{}b7oc_H}Jm(sqbwq;01N>V(0A2a$@~ zzrOeJ60gfwkdbrro6qG>SkqXq=5jF{c!*psSe>gf=2nRGckI5DpGfH#ah!t=3^KAom2;{EbY%z2>f3-9JWK-3ZCQ_X$smMoC5d$P zHz-}C^nTIWgBP4H8c7uIp)~|!tTB^*UOi1U@zC!ec+5LoD^X22fD4u+ERk>hOE9?4XeYws$651; zp!09p>n3DkParuADO4gTKL6Fbi?%z zR*n+?gJT>zaDQO;ZHjz%N|e;u{Q~&J?L!|xLAT1`JI&x;^C@BJCp31%!)@v(TpgL$ zOdK)8XIwWv!yG8#PLev(TIV{)AvKS~TXmyFG>W0F_aPPbFdH>dRQM^Ik`eMZi9#+A zD{fcJi93Ug%EI{hFl6jPQEslbb|zE2xWh|mlZt#5Dtu_n#J++)XD(ilEVrY4Rv#gEDPlc4-KTObZ**^mEC2MMb% z3(F)nrS@w~$Q>&$#woYT7^q5YO4Rcjdjn4{?%R_}mH8tWV(-xy(C>IQNgaE2!f`~V zBAnxcXtBUn9$WJ>h-k!^+oYnLRq|<+v&P9|F=$bVZ4d-l@Lis>BGJjnPa_(z)ykF? zOyr&l$K7jg`h_h*FJ|gG&L+uaDB&nm)dpdn`p%59$2c=-I})4}qHga%955_jkS=iV z5ViktPUs~G1M0=S^!f%va6WzFl8KjP=$7jHvKGUoWx)lD_*Lm?l+W_B_$<)v`{}al z*Aj{P&zRZ82MxR>25yR1RP!KSlvZN#nKc^3U)c&9`Bymsp!h(~2dKCJS3s!0&P1aB z_zoI=xMt`>n~Vk*Lxwh((Mc`s0WHD%-VvJelCd`$1FpX)3Sj!@oylur_i?N60zZLp z#=iyOQS{kR$FXgH{q1daFaAD*Tj&rUV`-)|zEe2X;&%f{;0~CE6a@r6M1(FDvVqh}TfJCr_Tb9X7e^Z^9zwFZuoDFE6Itb`^$s`cBw(pzZ9l7J%*U}+fiqsCGi z0el|m&1veIE}eD&Cv3#e-5Z40KjaIQ*XQKFE}Nz&&jqYRz7wLlvw}pjCsYf>wpR8` z)YDj^&5=qt)NWkV{{6glDv}(G;iHu^mCoNd{692ON-q2^N8PdY3m6rDxEVo~%C@3C z8)v^Tn&&*(HqCoUa1T7G@qKtv-EsEHzCdu9%b7n2TIvrRpmUpwIaGAp$T+7nx+zuH zQf`uED#RBYgD~>E{Ajj98-5J6KNGK}v_j4d(>=%vs(r7-%-E?6dY5jUt}BvyP}ggk z`*a|R=>9IVsw2H<*WW=B^r3n_Rg=_$w`KZ%)8lLm1a4}I+R;5)o&VyAJPUwEIRHL` zAiR#4)v=g|U^>nD zM_invRA2FFWic-WA(3R^P5tc?1uGZHh$ z!qT^tp*kXJ)-23XSF#@(Ce)t?(Y1>kkqEmx?rWa=43G|Kt5e69P2stypm>ZftIDv} zWixQdbHv-#gS41RdxDAjPFlofo4pxwT08@`9Ymg5n5c$7bUPGST@o}}rH|^5YseU3 zj;YN0Z4cVxxfW9{Uw~zZNp;hxN!ht@ik(icdDU!~|4ZcK;RF{paoQ9LgrnP*OcXge z{6EYitOJ$|YiT0s%Nl~8W+27=F>s4J+>jQWUtpK=Xsq*%H2sl4ANe-0lTBHsc)*rEw+-`Hp@EuX-H*~%g%)7_HF@*esWMGx4-D|l`ERpZLEip3FmDBS7C+U7c{xt1*7v6 z^A7<*f5L1rbp_S|ZZOms4b&DYY1a{Q#Fc)7V9GloOu(XzYa7$5@ra@vz6?*>75wUI zZ}rNCj=@y)M>FZPH5Wc%u0Pw{azWkZv9|h2pvC*ri(HKV==~NejZ0j0ncO*LCp+qpGE zka6lm!yWq7MW3g;F=n!_zWQY8(@P3Sl~ECJ6ZUf`YL{0hU&hKX_C=TEBviN zsc7}UJV|LZNR{!O{fNVLs79~i&}M1}Lsp}Es62((5RyMjCe)GwDBkoDZ!b4^0MF)< zFqXmoc4I0X=MsZ(N~?e!G~xOU@B0^|b(-&m{SsT+<`sBI%l>KJ`0XLN{%>_fZ_R=P z7eGs*aE%?*dCGq3o6pL>ECp(_tlbJG6Yap*EB|h?8q8=6)31EIrc4IaaOia0 zmc>J6uXsKad*s@G;2d-1T{eqsnJ?}kwZVRY-WpIv9xG^BhHSf#>JvR_*Je?{t4;+Q zh?UD`P@5wv3V`;hv>;JvJAh{yHvA!Sp zkAocRaYyahQ?&zq*CDKW0L#o0^`u45J#x**e9Z+%sHmUyUZoCYQc2+92b1Q&=k>IU zxXN3q`W(^z;HK=EOOFbr)3wZ<$=4w+UkxrQ*m78>6^Bf8e6)KFR(;g&ni!`xa~e2{ zDUnT&ub3RY4dHJqF|!z6c9_>wM6d-U5?6ps{j;w>kMt^Lk0eLJFgfR;$bvv_>XoTT zS#dl_$_qI>m&*rR;fB%oX)YQqg=SD+U6e~QS$%xW#^e1pnbyp8PR*CO&rT=66+ho2 zoY6-NLLtIrF{#V8oPz)cZmp#`!|F`e5Xm?9k`Q2=D|JpdwE!Dwf4X^qm-@nYR8FZNH-~ z1b%OTtVOu49;R;Ar33}6G=4=)2nksKT-wv}z?QHhEwy&tZ(v>r=zh*^HDRTWgq8a} zamGh@Hl0F{{JaA!UgnJfa6Y#_EsaMcGm3As^wWvx_imVoF~Y)7`#&Jd$||{yKEe#f znb-g%3sV;M7*)8i(EatuJqoYPHXw9?%ClK0JD`nQSb8z)PXt6W|~OxSNXT|s3{Na^p6q( ze1r*qKPf{^o(nEilUVTvusf7p>Av!i#PtN$?sTVDMiVsdt?YS3Zu$5b6`LPVySvMU z4#(zx4bKSX<#8*{F!wioCBZcd9|#S9f%Z}Jvj%srkHWP3RmO^SrW+zEbxC;TxO7W$ zCtm7Ww+rDv0jnwG0mkgFceD9t+`%etim%NjaNR-@T}8U|+0CTdNa45B?Fwdv)Q@~U zIn{&227Tg}5 zgsb;YkUs|1dXJ|^y}yGuMHGMnfpxh(e*Qc{*N;v@sGm0+HSuhdf~neePgCAz6Ab>C zMc+cDLk~gkM&{byyJ_Z0O9Ql^<+)di{BH3$SEJY(AnVAnRytGqvg&7W?)2&mtI`5m zbl!cD9^a_gy$bAUwrT4=ThDYGc;24|$-;dC$mO!f7d#MGv41Y~$ruECXL)`#pR9`s zauoUy{fZvsq74s{ie{`JhIjCd(bs-D5*c)EhT4YMziAWgs782vKP<45w*kY{PL<0o zM@lQi`MX-O#F?UHTrPIpS9j68ZD$ezV+E`3RX)ZJhTC*)P$C52!pBw9drp^Cy~n{L z8gZKGWb4%3jZvoA>|}I`B{~T#&D4t`J#o$ZMC%9>!Lku^jt?mFoKX_F8B@mXL<9z6 zF$%`qNyAt8>3eoP{<+Se)QSWRP}HdDD}*VOrncv5Xm)f9?rPt=loQ7iQwoZSd-5E~ z8YRrB^t~+D^OVcD^VM8u+O`@YTDcd599Ap4cR2DA)JsYyaX|C^h*80SUT+Id-9~6T z$wD#R@K^C32)HxFA1qvLK0}1Mjo%e6Th|SlJWiCXk~L$<0IcCf-WR-lMS-RaNZgD4 zlNIU11}5|R*$_XGWekmi{KV=`U_zrZs$(x1r{Jn6%?XbqCiPbUlZ+r+fD+CRJHq<8 zp~WClxUR^`(Y@L9b80tH%ORjo5fSa^;yr^ls!hz5*Y8Uug z%ppab_x*}a%sf0%6Kzd6c}h1BaHuV=JYJy#s-XXdjvD7#qRi|wq2y^_FSg(~3-DfQ z4^mZ0D=^aZWdKz2wuq}!B3RpPDr`&68J7{&Mx^RD0Hv)q{xgJwx}T@8cHi0o-4_2m z0XXke;DR!)Ih{|iAV;kzpJVH?xYJbtVr`>#|1JPc$$4qM3h}|`N&baBy`$`> z31t{a^DKW2?cJoL>7Ae(wwYiglC0+0gV=hZcU>y(vMS^a3{GH{i7Y5L@0|3{k8j1k z_+$hcfhXxce>euR7ihLXUHymH;y9K3{w$D;(DGJSBm3-l*Y?XT(>^jlrLyCMVywHa zXb~1RGC|~#g!;Q;HO(PHHAssqlKIHzNB3~F$+!(U#?>4qjv{P3Q9%|w&yp`v-po$H zx9M=R4ti8xdEwn)v1hRJ;z>e&;I({|aa-yNt<2W7Y^^rx$6H!B4Iw&^Z{8PaAuMa3?;Yx^N>dYt29AL!d^qQ9crL{M9c- zWkZ~kw;ypbmAOqIzWq&oQfNI(?)^S z`Q=Y{k9q0wp`x#f)90N%jH6daeRDSp7PiW;#+RY@&fxsj-Wv)1YdtrYzPD6mS?^1X9nzsJh@}Ip4;jc2MbQ6TkYSBk7g(0@iaPl)Iz3t|7LNp@-YZtv)(#o)O9;6Uf=?O*l0IJA zFLNCuTMg9NCFAQp59W&dsbskz?r}dI^i64y3llc4NpF%W9c8&lVZmRWeT3tlX|Wb; zk;q3{eG&uLLgDeC}dy-lQvT6V2|g~Y9ORC8N6 zmf?sWOU&$|_D0dCoIu#~OCtC{8c=vj}57ewJEUwg9U-cV-^{2>P6F>XL%@*$U^3 z&0~G=HGn@!I#Y6`h2oXKC#2kH`p^U+@;jkCff(aZMT(1EuZ7p=0KCj`kUuPKf+-ei zF`6tK-bUh^XjBXX$#WGrzq>>gh0xy0%K2uPbRiku4o<%F)Xm;`aTzo5IRVuL1q0h> z&vo1rZ<|<=hsLaoUA&-*?_)StgXh3;`oV9V(ITi6X#e1EvOyjuyul+b*v()q)H#tP zl^085=y^SbQ1-34skr4MFN^^vRc}R3|c2JOEc=pVhU6{J!o>AbO(EoIM&~(uKt^mDDZ2n8!P4_wzg0 z^%39)A{6k7UZ%X={*GC;pXA2m{+$UKeoLs1B)+K??2Y*5(yz}?3t$Wf(7o&`Lj%F` zS05U+UlUNChc9#1FxG52s&U0Eot5w{umbaz`FjcyrKL}Yhdw-%g#$e7d0?|Nw5_~= zUvWhK!N732=K2i?B$=me<2B~P7>2985CsdSp|S{3l?oekwIq-nNsH$1Y&zpM-+z6UyQ()k)8_Nt&`?5__hn?LDzV8VNLw{+6$NYK!2>rld$B zw6)<#3#@DS%CqUSGne+*>=vVl;5wR_WuGc+2#NOd6`_FM=`c`c#%rdgZ$_uNhv-}B zmf_V?@x45z%14wiJ%u*hXe|5oeFtAD;R4e2htJ7=;PMvZgODgmgNa%MQz!P>e$;& z)n6?a`a4myPU`{W*;ox6>zruC$AvD=;WZ66OeSySz_7tdGA0E z(oxyY9>-r$*lzEEN1_|)YT_CTqcFwDsR_hkR#pZk1QJj3K=nX?Kvzuz&)X0c)=;z5 z!dMe}9oe&pCwYzAi$fR}@XF^kWcq9NJ2YPWiV%8|bSMmhz6g@_QVQWlI1BED$DFlB zjICfllVS-bUEafg*8@@7eU{eU_Qh(79BGer913yPv22?XQNBIRj=XgokW0tF5=Nds zZ^<@6UE!Rar{4L1Z^w1Mw5%mS*kOLqU8k8_$9cnR%!@^PrJ$7KWb~g&W`MIJZlc`% zPhX6tN#QzLsn!~>eLgUPz{yF?-M3DN(P7y zKC+_Ek2+|LyC<(MW~*pkb&z7ivLIoeGi<1cxeOsOt}$ zTefn~(nS`8_fWHqX*X4cZ7aP;fA5XIM@;8#^Z_#>9zI++@ey-^ zq>qvq>}VA4zE+@(bLb=T%_A}%aA!gDL=MsTbpoj7F>%zK5@@x`*5k>BXARTe z>O7O(=VV^p#nJNLIIN>QuOInBsFPZZ&^lp0$g%bk+hTt|cdES{w^*7S=;$TnVCXH) zyqq+}LoTwR*&x&mC18-$CM0Q`*DdEG_*h^E<$7p8P&2TZ?b17M6XHr8 z9#f`gixpKX#bOGq@gvd@S{#n!Z7 znOdSFSTviZX)o0CwaCq`|HS88>zWU-HqB@9AL8!jzXuNEN(CPJSCb5Q_!42>la+t8 zq7ZEfFFM8V9hS7?$C1j>o~i8UWXwJHA~KDf2RGsSwLs1R+Rt<<$Z5bs_|EVSP*=Z# zlyBSYgSB1apcPL3xV}HDztkv~w!s>*^$|mRR zX{=x@NkM^kPSj09@mURTYc%-a;a2F(l|3%3GX6sXz#-qulbtks;0RlG4VXDl{<{K}-j`7pV%+fi6U#m@DyJv4J{@5K3(m>M1TBUgFM* z$4y~{*GP5Yn4wt{Z{0`4R0;?srtr1!T-TH!0Q2FIfHASA{zMe6inkuFF4USb!sX5iH>1Xp8SsPt0O6r%T$V8YFS@# zXDz#@^n=ylkNnWW(<R#a7$4&JRGeVK-`tORwpRfk1Tmm_ zp0Abku1kfOQ~)Tr_r@@fn;`mFQlNHBj|X-E)8aVbm#+y(Q4{J!NJ6e{Bh?<56{{>U z!9)DxTh{Zfl?ObBq$nAZOdkc`lLs9bJryXI)V5m^N!De^7ws3C6uME;^J$K@a5DqP zx2B`LdvavWEM57chwR)04KE%c_#B!wj^AIi-VNfI{s-b$CAiw-m?qVq+m(hxGmeH* zB7y)vLPgnCe^{>?-g~qz5^HpNamsaD3$r>TI&71WBxp#~7{HTuX)bS=qhXcid5qPm z?Fr!G;Vn%MZ<|Hlc+jU)O@^G3XjPteN%l^aFZ6-9qJm_;It@uy0#}%Nqe|{r#X^7x zl}{#bAm9XeKBB=bGQdTVv5pX_&sRMe<3euAwU6W|DYEJKN6!DhnNPam1T7&?vC0Q1 zXmEPe8jTT#965JK;9P$V?{0E}fH{HmzL2-USa-Y8LGTb9-2FJxV;`cH`xgk0?4Ubo z_(pSE1~hX6yE`?OXyRk2lA$xw#dfGE`tLnflY+^~w?0TFUux-P8<|nJ5>_12aCSFt zHuwq-aD>R<*z9jGpxQoFh+SdE(|FH6E{+;}Khc^27P?NYCnq!?a!z2``t8iw=|W;l z0Oe}VOypZ?1>*tbons@uSn@43a7`RF9EuW@F}(m(@rV*x>Y~9?=H^hI4+iEcl)@p$N|NsC0wT(_=GQ_?^rc<1v zk}SknwyFmJ5;g$%761Sf0`~Bu6G|rVKJwt+#S%0xGzb6y;xzyQm{?Bk6ggQ!oo?KF z*OUX#7ytnPT>t<80b*_d00000001Hzd;tP$&&oKhkSXpb<5ukberF32HTd`CWnJx; z80e%iKQ(J{VzPd2uK+{S+=1lEvWcBUntUxK?xpwONP`^L5?c%SQk z>yt|T-g2Ccbc9yAP9@=DwWwH`$}n-+1rYSp~zm{Vs9aEra)di-lr9Q4`MsU7+hu7<#4p$w2_Q8B3D z$ZE-7U^4VB*0CHI4UAcgq~)+`thgDRY6w6d8EU2V#y5B`U-fiGyty%WCq$Mq$@#0_ zGs)99tuYNuM-0>Ch07!4=(}#~`mf!&i9zxByUdO%s`YbCCb{2?`6(M)W674BCu$J^ z*pL%i7D$T`Fn!!MJ!&!4SXn3d3b=jN_Q*gUl7zVU-8>suYrGv&8Z|E${B_afAEu_- z+`qr<2oLL(m!xOS>81q!mo5wCtL3-G?mNFj|Ma~~6v#TdBIz`P&@Pk}PBP8Uc_B{q z#ISCb`ge_l+-K#DJ;*8Vaqr*E0BAOV=uh|Krs;bZrC{Zp2GT^x^w-8H=X+JFm8la) ziYeW*e`!sDV{o8F&li>G5oOYpG&M7~B|0yZ@}B&XKU7b?S3v+qxAue$L6;zd5y44t z;uWmUSfE=%Y3m5+#3$jZExz)y@zE9@_cP86hm9Mdl5VM!+M2Fw zm7aWjwRe^Ho`GwIT!Kxn;o1#eWORCA6qzM{REjK@Fs(xQeboQbYdWfCkdoUF_{P^p z=ZA=sUHDKvKbT_P%-bdd^I&$T9l!qd58$hKlhT)DW6Iq}X%X`C0pkDW7`*P;BhHQ| zE`D+Vw}q-5VpYhBDe)Bl!_VO-`c-x}zaDp`+_>YBVXz%VlWOWlMQ& z5OfWjbeZitys?#cRUIE#{M!O(o(2FpN`91(xlS60f_PY27lP40@-M zqpLEWE@3W+*Yl52@5)}q3dpmC;5y>zW3{SSBFs{>rjpa_cx{B|*#y%h)IhLb)#4W0 zkfORSDz)D0h(Y^liY0(usRjLGH##1&N_B=l%p80Ka<1K8(}Ur2gn%Gmv5!56hgMwl zK#whglr0?PbAe%eTQ4fIkBI}Lqv&`rSe`kLBjox3Rj}iPg*+(NN5QGuZjG<2s-KFS zS=$u)bSL=+tht)`A2(npo{FC|1Lf>VK&`Zq>^@+{un0>OAD#6LzhchAi9KC)-gZ_> z-AerQ4YbmRsnpmpE+3v43X+XgO6I|F)b9z+@|=ssUrzouIv(#8n<{ioZL`+j#m6?U zV(yNwf{hN3Kcax>()>s&7E2T_l#b{Y;4owD)0Dp!&W=`+m6$?xv3sE3@6%=JFc~^Y zB4}U+G`8HBd5$MdMTOP(Jm9a^{4&48MlJipZ$$Nc+)h*Wm@KuO`Di_nEF6a%UTBa? zFS1F+rLYY30x`jA_Ps+$aC`uz&7b-{-dR334+`NMLNVC-v-l)27$rj~Of?$+SrS8| zGui-^27mw$7(5MR@?RsNJ;CSulwwnZ1tr2b(T^RY8E%;J zP&20S9U2l}*=%I5=w^%p0kBDd^p(Zc_#s>MSk=Et@W6X?-jsr~%qdJdwyqo^^I0`C|PQPk~9nWzdL@p{#T^&%j3 zh2el82(?$3zNk#qr>rWMW21A#ORlmA@CYNeGBWd%Q)&-n6AGCI30A#lCALFpy z*)3eg(*0V9^a@$rGZhElDH?^UVP`vI6sKjUM)bE&eoQh^qY(1oR0uX6UJganUGn6i z55{huG{*|)jwVx+y*T$dIIw$cr3S{O=|LLgM0K~f{2)xluo|km7Gls)Ll`Jq>n^zR@4E@&YeXfNZ*55PLN~Pj*-v=IG828`$3BSbr7SWo{*qO5j z0qFhw0)_qu<6R8ltg-B{{ZE0|qRT!+t#fLPx4xuJ6lw(a~!@0p1PM zW=#0E$-$?e!@oyPq0gt@P`?Hv6mJ2?PJIK{_0!NgXMNL&TP#T&ZBKk|7h9Rks zcSj{LQ$;5VQu8|`6I=NojMDkD-3K6RSyE)viZvBJBow|Ap(P@-7nK}Ll0OWeQ~HnW zj`iMkC-M9(elfas3wex}lC|m)8#OK9(#)}(Ptmv*D=wMdQ~KM~L}OTxwgRt$6W%dS zi(rlJyp-G@9nI(iN&J~PB}Wx%P>=rDgXV`^$q~5LB({U z6q_YbSs^dM#pxV^GnC|PiJb)gu!8H6W-@gqz`nj0%XiNyHE6@8oE~a*d7{u&P^+Pl zB8Y<(?14`Z1=A!2)WjP_TF-YlNOd)FrMogCbj-3_+Mf^uG&zfWjUmEm|B$3@Vbae4 zcbijw<9(3+jjWe4dKoblr*dx_A=*&5QLK&f!xO5KX+O2wBl~U4r4gb?B|EqG2<oN3SlK}Qt9y)4~m%#0^7 zgvrSW!cwQC*Q2FI6vg?y@XsX-(EuEjGnRYOe?J$!Q9}5e{yhA4NLpgmN4h363q%6V zT^&XtCl36zmd5z|VDK#!K%k+cGF;TM|8iJYG7HreNGyWp_s6GQ22gUwJ8ndV?uWT0 zH|VnV+S3?t4tPEUm3nt^2Wf<;Fx702iOA1yUdYt{{FP@C>=5BP*>)bBgTauEmqD_2 z=Hqp}i7opeIs#7WY=fWe|Gx9^_LuHyvRT2r{sB1ei?Z$U6#teJF-SnQw~VOdBdAh- z(kvYOyjx!pA@ba--}e)G;<KtPjqDr7l*fY_eAkHOPwn|k$7}Jc`{#w1XZjBpORQflnwf_LPleAHmOeO5 zxfH7cW43eQ9M*6neg#wKoyFgsk4{adviR~LqnyMutUmx?XML4AuYIjQj~NR;(FWo! za;2PfIseR!DYp{}qRHe$R<7Y%Yr0l65ORuCbIFvqHFde%2`S0>%}x-)L7#2zsaSTW@J@;uZXWA6wJBc|_x zNgOOSoKbTw$V%AziwSyR0dcfW^`Y1NA7_Z67Ex^m)foZhQc+dJd9l1xp5ecJIUt!} z1>>p;f|85hu?f*9B{JwY8vS>1!Y5KLtCmxzQ?;4BKm(3K%f#ZsS)a(3VaXnbz&#n~ z?z-A|;>lk&Xy4}gwD%4vp)Y&*RR4c#UJdPB^amjl$0?PCfDJiL_tG+znE*a3t#lLF?MfT!E5}l&W)l~i_!1iPpFo%Z7&vhq34Q*Dip@V4vd*+dc>$#M#YSpt zM%SID*J*+fZO93E{O)isrm0H8G|lqvj$--e{U`l@5ht!1ZG|y#AXXpgw#Zx<(>=LT zi`h^F22Rx{BtIo6m6-!}LuZFz&J>k(wfsR0xT!yg#rf0Lek#W>P9T6ycxW&PUjzC! z9WS&gRsi=L6oFsPGiBM^c_0~LG#KjI`QJZgz`zt;z`*kanE=oY+V(QJ;g6i{Et~b> zx3I=qu#)OHN#8o^2v!GiBF#;-Rf39fT9??r7UF<#gJ(Y_XupKm9CUskG%mVzEouvw z%c~O&BY8qT9btOR9S4AjplwXvG6OgFo?nup7eUI$ACYzEDacAMcJY63y;ialWhyk0 z@;d}mL@|muWgiDFvE>Kktp_cVY|N8d+(NwPGWk@yjJEjDVi&rk$HNqM`P<$C5wfoY zW2=o{whX@mEd-~jqj$WpfJ=@>OktIn&@$UK9?#rr#lHxYl59R7u~xU+P7X6<>zUol zmP=JeD4v_5KX4eVX(@|km=rL=#f-|9csf*QW?&Q)D%=v{#x^}|npckbNU~FLaa7Sd z>LErDEjO0zpqic3l>CGddPsmd2!W~G&38bamQw{*ihIQ&=oH@_!C0u{q?%4|psDWl zXKvp%Ey71LfVIw8ooPUm@$1s%A6B6g;sCu}?j5_}8_p$tR}h-@ zySt~_fH9tl+%k4Mb)^aZPl-oyWOQ=~e2QwdRrE(p0|5_J<{{@gb3o<% z#jaTMGS?(}o_D79IRVGjl38D2rFyU9!^}lg()6nsreO7Mb0Q52WBGKO+$3`G4oTbO z6x;v;=||!JV^aIX8Q@+Zav|L@_naO<50q}yo`|F@f+D6IY97b_?c8&531lgd9C6cc zYtA++z^wvc&`Wd`EyZYWD8#JF+1#e~#KEWnOrf)b(kQ8Xw@;*Xi*A^%qq4Mv^wyIA9X_74>- z->@hrH9{c<+CUrvwcawY~qt`-?BBL#>@mKvk)v|QhJ<3ak$O5tt=yiSM} z6=aU3R?_C(S-El9mm?y8_)bq#RrAEH_G*ktVVcKRQiBi(`D~cN{3;A#h(F}kltm#M zF}#jXB0Q7Rb++qNhRo%AeiSiR>LOHN6-0q28E`GPnn#yr2ooYo$W@{d#(UZ^YTdjk z`Z%D<8%GtET<5TXV;9yO_$&5)h0kJ3vTQ)r4M~g3mY)-z3>*J#N{OOTKu9vpDX6Z@ zQ$`(67Z{g$y#p{QG}PHdeVhvM_7$nYkkijAVD;|-HH6pbhLClB6$1cPXF0%wfGZ%f zF$9CQW_#sp-gQ(z1MKc6{lNpB6fU5cOkQA^j5L40M3IM2H`1)|l|AsIV*~;3&3!mq zKa*<&IaZ|Da;f@fz=LngMRuMaUk@Baaao&#YjQ&hxFnp$h2WU)1UwbTqmwc4s@t%} z`-(-NV2e8gVP%*VEU;AE2^8@xxdh-3{9FFNGDQP zcnZd70v92B2DP6EZ`~`azDbS{c60D8>J~7U2pkHOw<^bnDK7<*?5s%Ji%ELq6|6CF zOy`}huu1m7Q@!X8~I*-2T`k@GzccCbuRbA7@MRxo| zThK?}SJdYF6fyh+0wb;}dZdQn1CbQJ^*az4hD*7P&b4K#co2jkNR{U}+!lh#vnmQJ zE~!zgR;a(eNOunB{18JR?qF3fw(B%olHNw#xrRxp*pT7VM&5Kz)O|UMgwpO}+_I0@+VQrVV=drG$m-uWxS-uAHp`^z zc)o$a)X6Wi`gv>Jh-O%84@Fx&&0axf@z21GmB`Dvj{7X@D`~>CtG!=cJFMDhOboEb zlF9pFp2Kd!U+9C&*)(8UJ^30ceoNWsFCe3(tmjsrLK|f)#LT**s5B-;Q_O(6f{N1q z*@`!Aq0tm!EgZN;Dn0;Yo-(eD&d;tIQk76J{v9`J1p4F#< zD^eDwn$>+<1+uSuplmUe)x47K4=6fhLccJrvEp$|+L%blt3P!VEbZN*#LChHU7yT+ z?3b#i{Q9_0<{@(SsAda~z;(uAE*m~>QB&>{d1B0Enmu0h=j}A-aZp{c(_V0%Gb?w8 znj<;zFLauvA|-_7aVCVo{Y$V)92EL0+Y(L(j^8cCwDqbDc84&1^tYdrLsDi$(nZ9! z_QknJZAFb_rZ}z6cg6y>Keb@r>Bx=xzFJ13V`LHSB907ZVM`Xs1lYfr#>8oP=|6M1 zAdt#&+g|)@n%aBGw6BL_-;A*8DunaE-d$4^<~WOK)?LzhU)>WARX zVprSRDH`g3YnPeZ@ZfoRX68YEP`mRst%Jevv`|C8+Pk6zzq4& zvyGKf%P2CTko7dnPw^Q+Z*~J2Uj5&*?=H#gv35|i8`*fwust+;irILhLWOH-56N{( z@|GPsfe@fuNonpWAf0i4luLZ=YV!&F9Gz`ybC+C16oHy?J(^ghaSlu(qer1e8>7Beg(! z^}ZK$UBA(hT>GH-P5;m?!+crX+o$M!?VC?V-qypLD^-8&C?#Pb!OUZNne!f5Xb5&d z5;97k*2^2-)?L@1H}>VUp<|_i&tL9J;^2(|WHBpPC@iXf?`5I6#>x01E?-zgCfT`t zW6W9rWM<`_{J6c|FEiURxvbLZE|0S3?of%Rd*pf_ z$B(AWn~aE=>d=|>zr##n0G=omU}nMW;Y05E8QXrn56khKa|-w`lLQY7f^1)!=jC==x(K&7D~GWZ@)y&UltZ$k~KvR z7(J#KQkB-)OU%o|Gr*GlcN=Yb#bs3(KjeO&J~?Km2Tg^%ETi#{h3leY;DFD#NAJn+t~%X5+UF&PYw>!GerfG>@&NXd6j?McE~u(x zeW(PU1VjJFAv|JzON7G99JG*Y*o&z=zUN7wC9wn(YEpTRp6bQW;Fq%5-ek#MPJZ1; zJ5T=({Sl-q>+JnrbBm%5tAYts=y-#RhgxMWPv1y0H^ zWM+MB=1Ry`o3*47l7Uz}4F`h#bmQ>s8&O9-dz|pIj#da=vDXm0PHRJ=6a_Fb@hUjy z$l|93k;^-><{+4&@b{x+wT^W&+s%73s`Qn_<5A7~D$&BrclacH^VE+eQ1DTxLgF+h z0p$=wl#f>}Dqkaf_)u1~oJw!KSH$2ph)zq;nXR8~@KZM2wMv`UL^2^%BDbvR)SZXn}-P6ru?MZL8~v*s_pJSokN7*+Tn+>hOJT7`VM{q~>mxazP((X<( z0l5R!ipX<}@b_<#lI9(2_#D5RaI>s0q}Q2A@EPH% zYO8zlJh^2Pa|+bNXy1Ug*93p#Dp1@kTP@;{G_fWr2Rl-!Z}x8>@P{e-Y^cAo>I!E8 zNO+T^6{I3%Pnbb$VOZ}GN%WG&Wl0Oi(C0S-|HxKKwgsyz{BoXpOEu|u4KwXUfl=Z{ zp5NefGS;*%wm-$C_J_rmza)$O4Y&Ro&)bv}4$1$kI=toxY8pvB+L;5Jq1EsCTm`)Z zt;bMZQ+pXUY`09g-&Plg(3uUx-@lW%nZ5PE@pNjr*?h%`5hHIM!We8QxWN~%Ltt4@ zTQt4HleX76TlC6OX9PTuzk=+Pey#<h}) zG(hM!PdvE2Fd@osN!=t~qoCHn6#m@QoFpPSJ#$Jzd)Fw}R{uh``vy8I0Ax?ex$V>-MW}2>yDm2;0{|eeFhq zC0zRz9Z1?PI~s;L%J%*6Q9yS=VpNjt5-pCW?*G=K+abRPP}WL@gTJ{r{pZ3oO&`4i zKX*yuU?vL{?iuKwJ%m_(oy-ACiw%utCxc%aC|(8Y?z=@uq`8$6yCSpbwqa(>lFbRg zc9XP{F;o!0xyoDvNXHa~>)_#2-K*lJ5k4GYt_y=7@l+;q=|vG%_ZIr#idi#ZJ|S?1 z(O`tl9HBNkw55!fPnX2uR}d*Du*ishs4!;J0_yDf-o7_)RvKrS&|V2~U4mM~{<6AO z%0`Tm@{R3;eVcv`bf)rriPqZeVbJ$ML(vVq^L2duYXof>B_(svK};x19k1cjoVp}I zO~z;M>F7oHo01%YQ5dy{3_iXIe}RzEN)oJz-=8xoEPr>Yy`y=G^TaLA*n|K$?#Xa~_o^m*M<@PD^`TCyG`DyhKWI6+AX zN5z&*`Fa(@Aim?~IP%K1bZe7#K}dODHkvJ##a)P|gSg_;YU;hi8_bJkQ^eJBuQQ1Ybu<5K_V==Rj>!M6v5KtJ%LpIrYKNlO6e|NIVDo-Q)xRx!C?O4nq10L z+?Dj)2dBTs`YrBRGa^33;x0INFo27SRDTQ>_7a#f1&AO~P;HiImW&N3;#JGNstn^~ zPgcey0UziCCj~X?Zn}s?uCo!Ot|r;*z&N30|V zocbP6H_&hF>m8+3M?Tx(&`L{a+z78ee_)!D#onj=HL7d(!g`KVsu0d?R5A)dO2+n{ zmDEH;sXpLH0vRw|G737)0>bp1!@IC=mIPh-7Q3!~mll2#gHX%TQ6EZ%wf7;x= z?k(ea^DFJd)`$0vgixZI(sXKU-Da|k*0nsyU|4ZgrHmB70^^e+8Y`!FSjA=}2WdTh zKCnc8Qv>QkbPqzq(1};T6-oWMPJ>1Z%47ciljwwOA);{rWk8z0|M<5!qMf539)`xnV219ZsPn8%)I(eu@RIH@U0V#I)Y`%aibd*95+ROQDb5C0D@+$70WWK_e0#1V?xgH-SK^&koh}UsuBl zek|3$u#6PrnB?nWvdupppd#Gsji;FS{%(h_cCoo+ZdT7cOX-Y!$84H_&boQR!!w8e zCn&!y$lnzYAqBjn!|jirYV_2ru_kPHY`pXDBE~@1a_<|oIG72Lrj&gV+AI2WYA8Zj zR;?ORF7K&y9#WeP^iB9$7$nE3w>lrhvmU~+BER30L!if{p#``5zoj|fE zvADPc5|V;@FeRW^cb4sa=syxOP(wCU7(^7MxC~lq`POx+J((P^Y zCL?wGT9B$QSPQ+hs%nT5;fVS(b4wgeE;?^B3GMLPaW8ViC3xNNKZy+7_@5sshn;5m z`rU|)l6>p^JQ%JjS*{{#U)V(rgb>gU%`r3ei~7v)xw7Q(l(QBML^!OMF6w@*=9#rI z9vdjw6*sB7lDZ`C7aYTO@PQYOqUJ_YWdC|te$1P_(xdls-lIY4_XD;Te(`;ktKF|45x!0XyBmfg3~m4$5UypjiPjy@ zPA|`vF<0?x(Yw(vw$9F@pA>W*Oo4vsDa|*U7h{%cydouQnIHT&;Fna0kRb3^K-3}$ z^`AY=Bo`zv)StM>t4nDk85?JM`uJs=6Dwt}T=UbLk9o5aEJj-Ab432=W+s?pc7lhs ze={X%EM9*Me;cei9wt~8DL@^H({DtE;aLM^(M9aZy*w6qost4yB?6O721|GG>&p+2!((u0FUZFvQ5II#`N=}45gS+Wkw-3TE z89AF?8rf{$F~Ni=gXE3q+A8m0JV?OXXl$zL%vO~ZX!`r4FW5z2k_HovTNQ0IUSd2L z{%Uz62fWTtu|#2TAd~5`44R0^yB=oaYvj|((1F~nv%A!KIX3DCyQQiUo=q-)mnC9lw zc5~{A*5H1xoM6skVSnw!C8M(8ggO;72RblK)xt_1jWM+*7sTj&Rc1W$jV1rzOA#I< z6W?y2&27|ou)dwa1YTC^215K@+;nGbeK0QJl_zv>=!Ey-w})*d!~HqbP12+MvZUeH z_3DeIHJ7~a_HQaWv^Pjj9X!k}RzT7a=cdM|JG56s!dT&|H)G|kCJYlXmNX!RJ-ZCr z3zZOVz@`Wg_U`JZ5LkK**}iDJ4L6(|wS$8kSc16Ca|pWT$=b9d<5Aci4yo&Bl!Bh% zNr}DRL}M4f;!T*s1<5_KhPaygYzr_yk;L8<7VY#UT9iJtzm7g!)c%U^fZ& z9TQ*L>Mm-hWSf1LhSzi8@UQ zrfK63cGr_1Xg}WS=gC?Nn)E7=B$rU@-63&>qA{S_5Yo)Wb}26yy@8jd)AnbWO=T0E znLiJV#-q?$F}IK2s0)SCtG=xZm})Qo1X2lICFuXanQsq-B5Bkg8w#%gNjjH+6rJGL zQ9_Ji6!^~ap~N+*=Jx&@r6ws`Q&2ECeAShN)Ivfrw0|T!?Dk--x2Cr4eRBjTn7qeT zldrGsN8e)$-IdyX|ALh*pd{I-=hlf>#q4%cl|XZV75 zu_u`amsSLF6w3i~)8_cmqhw8$lfqQ0>F=hT!j#Of9fb7N+CMM`cV%7~z%pR$nkc4mC6Y;tL$ubir=W7<>p0qc zBft8Ig{1BTzd`i(18;UvPLj~>ftWuLbW6{o_OKI_9K2@;IFx9j(%8YbGtX)|A2Olb z$+C?;>_BP0j>8|t;@2bXF7dZ##Bs$-{%TcQkoS3Vix@5iCef|O9aWh!)pWL`vM8!@ za-SHFLZCVJ^^c}UEfBvm)C(maoHs2Lnh&e<7C852#XRELU%r$C{H_N|1}w0rwl4O`GGBz%)@7-q6-XCHhH|s# z9Yrl7Y$X%z`n}~Q`FVI5RrNMqhRp)bE?w_)cLJ|_U;EPC|TRr-Bq7u|hOq@8^f1EY=`OkKLz^$#39wB9C$ zTBQR{&c%-2a5>Pj@`{+m)H*QdQ=bVgZ)%0GG5rRF3xVwPs#?G+T&v2Y@R)J8%e~C) zu0BSVFa9D(B)9@8Q*&DHvU^ZJ_l18Vr-r69M&IPG{e{GL9S|{K=dwi-K)8rXPJm@{ z@a>K9XLqw-U_imrXrh|@&x@MCb)pxd9HG~wM+ZyR*rm$>Ox6Jm_W)h>WEu(}ncAm9 zou?-+-j1FYpsbgq6S_aot>PYgcouG}0~6>+UFtXU9bAT_pe6)l7Yhn_Kzhz-!CPJZ z4+KA~2y=19;Oxo=&^_RtTXzsf)L`t>yvSm{CG2I!*$r$_x~sPD(|FtIj#veL44P@_ zmZ#gD{g4C?wkw*B;~|?^FCk;1|Ms+BroAW!xJ^;?DR2dWz@mdI_BCirlbPpP(3jy5 zogN2P2&d@B9ub30R=o_C&h5iQBn1G{mu%cKOMA#)8*rQHzZo|dG3`ugY1inp-$GFI za(M1fUsGq;w|43^m}EWn+4=mG<~94SPeJ^hGXji$1_c@L3Zf=r;d@G%NT{QEl&Fz zGGC}sAM)MwN+j}g0X6lDVocB``(Qx9x?M)FToQR`6D0nA+_M-?E`|3ca(!_dKV}Qg zqT5=l2FFk6Y_b2eSI`%<>!Bli@G%7@kk>QC2WHgX>oeu01|mdK0T=_flj9m)-TKQw zFu9wW*P|JQ%+4kwrT{Lc!p(98NWU7TWr-I6!ByFr-d(Dh%8eoR z$}?&=hO|><3IK-4LN2nkL`v*-H>e!jY};803!Mg^z}mGf4RdGl^#_%?k;A8cKU~-r z<ygvy z7KdnYGz4pMt73l5@Vr?;UF#_c>pU_mKhVAJgl4JHlMO@e~T+rwLW7a3qN+fpon%tu7nB##Wf#w4fgf z508jTnT>o?DJ-M}H38b=O&nuq$&ZN8j(b*gW;GjatmI!YzYCo4iX{1(_zM);V_du& zUIg#iN{hr>-CnJAryv~3*#1dz+uw$+#Gcz);)}!mn1>F2&?3{*>*M3i-wQU5t|LhC zSqo6<8s0nm#-4;{bd@L0V_sTCVl>SpN9+_aBxjLG|_?6=OHTM2i+*Sdc8@=Q}=7)hJj%Xcx3~0B=UZr%aC< za?tkcTfBfd^>NGXIaTQ?^^PY*tr!rDSjV`1Jp|6A5GNIc@8Hk-i)#LqMxd`|BP7OiISmd^-1+9N98J1E z$&%QbxY?+%;XhINjQ4c#xb_&?U0?#^CkdQ0$))8BJa&izCyrdK9TU@xZ`~EP;k|9} z??LfyL;chDGJQQyx40)&`;orRa}X_XwGaAXeXU-eFc57wiwC|<9kc&D^mdi69czJg zMUw+Z;Ai(gE+55J%GGN7YV`45abUhe?G@3$1@{#Znmoc&;j>`a(3$Z{XHkg!@ZgL8 zy^dBRak>mn7wG0|kf7A$5X=M01No#?b4$S%`^y}}YYDY<-@77L{q0AR2gusRX&TBN z{qrSTRsBch$Tk8G#dtN_`W%q&WjGpd^V0WO4MSKE9aZ z3h=^vl|fAoZK~-+ zk;slMmHbQh6+&ktZ{MPsiN3;(y5neRiL-+Kj684e?YE1R-ukDG6`IXu^Uz_NN#0js zvSmImyvT$;qlpa~Sx8<-=*?W4`Qs3wj&;m<$chg_%0L@ zq5EV1|NsC0|IJiS>Fa^*N3O$#Z(YGxsc@E#yjUG{`apw+99lbChy>2k zS2aTOl8Wcp@ns)MwW3xiOm{J$E>sJOmq!%7%W8rUP}3Exp@_$-X)L{}ia4xt@aGud z8=S}F%mxq`t?CO*Dsge0zVOGF_V}HD$fO&hXvA32w&aTD{f?J&BpIn$kg=Qn_+7OU zsmw4^rmzSAmA6tQ}3BWbol5RkNV=_C1Z zl??+%5kU-=h+Z*+ubc&0rtJ}VLbr@*wIw(aJqQ|-%wvaEtNbKEY=BR$?LieIyJi1T zDl`W|M%bnB({-m-!a40+7Ju&tA#HErajOQH!eriq~#m1pyPX>g=fA#pC}` z#FzXAbQ|M~IUsOB5sliaSS}=EzaB>|QP+yCVXFG&wY1qV7d})IXttQ&4F5VBZhH+1 zVQ-gL#jxo~zxTq~%SJdw?~9TUGZt)18l^D)CbTns4hRxG&4Ja^`hd4v%AQeVf{fw7 z2)>ZhedS4-82h_AJ%56cu#RM6VnjRN!70!>>ICs7<=U&H#&C$azM&bTwMkd61;|-~ zLx!oPZTZglW;0F09cqal5&%zcMpXu%gnjQJL}^QEQEC!+pLlzdf}L|>0VQ_$3a#pN zv2~2XYa~?(MSaxWiN^UFLS1LjqES^0FPp-fr~ac|o}Ex~$B7JDi(W%Z%neZL&C|EY z=7^_^&`Frj<4RyD9AGjd(=&BDMVS!N=n?HZ3ItHVzJ`a>X()IOj+ly~ z5zha47&>9y;ZaC7Jr0Zh_`6&^CQtaiwrq0f=z`^6ZZ(ZcXZO`n{sps@socvbimdR0 z-r|f-jU1u!J>OjB2p_RZoAjf)4nH*s`y@y4ZAE(H?I2p<-#(^rk06vhR6)2dV4SAKJy{ z1Ab*%*R&>BGk0{hE^g9)2^59A5G}k(d@??5`Hya)?|tigdSNR{fAfUmyb>a8*r>)J zW^p|UNrOF*GWb@k^123YigI8J104p6Y`h0+;WlAuK9X-`;rB8Y zlJxa%mEN^1tbRyq=1=!J;(OpE;8dOAiM!)uYAfNGy6b=BoqNo~ldlRF6NUC5%@6e-N-^qG@1{hb` z7EVde+|kzMUBBmluMs6m&z6Vr=B3nOL;MmG^Iz*%yUV%7T!v+v}*HinoArEn+WHWSLXp>Dk;|+;9nvd?y@nktLIJ3qvfdoL7y>pb9P7+bs1YnE(%0F9+ zynKZ25-;n0*aSO2S2hM1pZ{dU9ERgJ*j(A}>b*5ceO@Zy(FgBad>p*!XY%8te5kjT zB90~N^=+1-6Z)X3XjZQ$7rU{$F7Ba0!^>Z{_}>WVeCq=zF`p|-+8T)(+v*eC^MYP# z&Z0&6e;(=yl1~{M`bp9>Q)ky z(v9!A;dGwFPFE$G1tUhOca7)!nB4h4v>M6=vUpre?GEgO1khIIUmmehVO8#fTEyx> zaAIy_78GF5d44V%`nie@kvU!#5z(~Dd9Gl!t&F!xkPWHUpcsr1T8#D!qoIJma_zkF zCrMcn<*O*bZ4BZpRSAYM@;rfT(qOQ%>yNDpXYGbh(8rmuY)TpXO zZV|xxfgWF6qdo76y7zO8g-IPx%^p(V?*<{GlT^aMU?T>&-mKbT0Kc1w<;;PUrITT4 zhsNr<>h3za{d_YkDb)HZu&6dSmxmAlFOTjr2U6Nxc5M7cTt&Q+GCyS1@g{_^EwP-W z^HPHZYP!xe-@5DhsLM#LxBE3#YM%s}gi&cOU@-Eu=Oj{|%igoP(Ry-QRZB3Cydjz+ z;ZNz4=imd{{6Gq995|JrZufbwf{d7Gap@8Inbij9M~gi*_LS6>uZ{$VR3IMex)c}z z0}wEg>q>m}0l!L>$bqYX8usnKBfP}y}n%wa6Jw-p5aKw^uKL%_Ht5c>(4V0%Vj>S+v z$u(~$i)-l^Vu`K71@ZmBugBrgjWx3`aQ>x=RM#ah%6tA!*QMPL;7aMgMr*tM^LkFV+{{#q=W-wG#q^D2`V)W( z(%-!qIHbO-5@lvaTz{K`Ff6=TDHUWfZDB0lQ#-8x(!L!e`d8>Z(`qiwguKlFDkFdl`cTlOJi$9Czu_T`)m z+GVt;2=ul^%x6y|<2$&V#)#5!n;Ot^6tcTGgz@x~b3DSKAAiGnB7cYDW?$+@Qt5ut zd}IS@vBya}=&vwS4q7F~Ew_Y8^DC0fW8`4ZU_1c9V`yVoGL{9&ap?xC&&t;}qSNCp zUTY#Q*uEpgny}Xcy8IpMjUPTz7~ud$`Y6p}*X2QD>Hp%sK5`aCf+Zjh%S!c~|C6yP zrN=2?tXr4|FX9^-z3Da{sQJ{|JJY&*m8QkS!FTPePZk53gjfLE?Kf)?e$&i@la-UP zMJQ8gdQHD>IlGOYX8rKa3y62bhT(Ekkqie)kys8HsbH zpQafnqnhq7ygWE&wK?1nom#XAr?K#0=tFHHK@rR;M_WW!oqc6f;M6frPx{=eu*s^{@JWwN;x+u3Kjy=<5et*?SX`hE!IgfV zJH`3k2NHD#29^@HoD@nRFq*KK!4Zq=SJrJ^rr>RO`~Plnos$39Hq=DyB1rT5=LPM| ziu_?)zlCB69?#Ve-v5}ii&-?NV}@EMGF7M(VkP6Z4hB1RtV;L@1!TJi6Z2+p)JyL{ z1I|gIBz6mS7m;<-Sd|3vot4`i z^o7`UO_!}@XIecnK{9k$c9`1R{7&THE!kF4- z?}7d~V!h74XF|gW*h*JO@r3!VDCOsm74F>nP7;$h!DNQtYDcunDzU5+M!*gGMy!et zLn=qyv3SIo+8-z>hq;vx9U^ktn?xpv(mo`B=a^lRr$#^DvI3t=L_fQS8i~nVtlQZW zSc_nGmDgxWPPADq*>tQ>oJp`|IeiBnoPxTR&|{96vG0Ifh1dvU;CPs#Mm*QqdKE5(p?vY$kj2pgCD)rh6Vha4=f6LvZXIN@_Wjx z?O4B{bHodPAGp-jm)mW_8dB6j(2rfYJhfWa4caYT-r+<1t51?cq!sT|+ebk++fd{^ zT}%FE%gqSo<~v_t@UgH$`oc7~>B*^IsP^-GeDFp{a)>oPFuT>6WyHYEvlxDeZvLvw z_ixb)R!(5k`YK0?uqe`||HPv|Z)FJ>!@G}*)4bS%?{zdhbRKI~Ro}i!6{vP|n$+5X zV1NkceJqI4M~nR!7X)sV(%pEv&8;U$rIg9FaQ!7PTkN+Xn=akb^a?89^j@7Q4|2 zwVWF(Kdz7>kbFi6&bEo;-l610Xf@jHNU#f|5uIo#MB}@X%;(!rTUY|6GS7k0E~uEu z?*}*SESjoUD>p}+ogTk;I$hLgWQyRBX_4H0IpLJa64fq5G`s~Qqap%&9(hO;6E!Jy zNx(=XVW8ftt9i!?fTz~7nhnbtMC2nKaa}f>;1O8G5Y{oT+dKiPL{io1c}=I$?!cuY$hnR5g-HV?1CF3Yr}*Y z9+;v+0v!)Sa9-#%h>@iL+ecGr8K_?Vr<7F01uK@e(f}4}JVdf@#@Qm1{8gXCYt2=8 zfl0D{H*Cm!^~Jc0uqd<|R=EKv=-nG`9js6OF~}Tn*o=FlglQ2&1(^h}gHP3|7fb2z zIRs}B1;%4sLeZNSn?Ig>Pf9ev4H1MEWZ`9KI@FZ+;Z5e9Q1=$PwBikk-WQIWwPSKx ze)tb45KLA!$8*%jxlCg4K)r=#Nzho*F`>{n)xn}u#BM)P-Y4ELu;uC1zIug`2EHip z5|2p7%_4Wg@gshE}FJ=HHkQh)D zm5&kT^W9!{^d72(8r&LDx3P{F`Rdb&U{qxQ1Fi4alC;y;<|{s~?vNE2d4Rx870lM% znqxDxCbctEI~P4Q8ZsDuFeniv)}YBA1qh&@cc00v;xBOg2+rAhI+>(_-#<3L`BVC^ zQ)2Jmo@g9zRA*oB4>h8ZhHYd0zkRPFRN22fgKUyMx^|~61=E=}EaTOF3>3{4K{5EC z=pV(NyVerRt<8O05O4-=a9wo+ zsn-v}o9u>hogER1&&mH`#g~yqZ-y4dqM9jif4ID6qNuLFo-_YD?BtAiZA!j+-D+7W zMS_^4hr@{KyS+68v&M+HpmfmPWnx&QPX8@-pj`Mq%6w2Q3bbzvO!m)Q5lgn5?W zNLI3}uv{ZUANdPA5wA)RS2Y$8tZ5zN(8laIOCS{RLvV5yc5RYm#hJZ@QNFA0PcM zRMbKh@`4AGNz5qLD(ShD5RR}N;@B>;GI1?qW!in&X_@@`uJSl*Jmd5X|3EbUO2<3C z;)*!W&y!u#iqeLcP+pf=dT_gs0R9C=p4$p%xaTWXUsM#T^6owC zN2c;`fV(vtuj@#KAXgqdqmrfyu|^@LZwmrYGK#|O3Youm)cT5oRV+{`@|RS5#f(^P ze|AxnGh-I4nvf{!)a~MWr$`=GkWmfW2S{Y{P`=|RhF;;J-%l~9^SsXuFHI83C|H&v zCO`LaXW^Mwp6$qY6F@Jn>>!=*AKph~Q=b{Gx^aISrasf?9f)9a3t?@LN0m-?0-%Qb zakZ3wbpRsE&*lU@L^etl`O-yvQt?N^c4j46U=z}YuK~mNIRnFV;Pxn&n(Yc znKAOvHG?L)g+ZIJ*mE))Hv#GXt(cYDP)>~tE*Hkp`G_edFn6VHZE1K`ty38s{z%`d z(M91Zr3Q?hmDN!hQ(|fiFl$pqvHaO6G%-OrX|dQQCfy>rX76xy;x;$i{J+?E#8i!y ziWfh@ZrxTZtYtvN-HqR~P);4XPVFDE>dJx2-!*}zj%kKTFM8d~Hpn-;nH^rHsUQtw z#lOJ&q$#b0MfRx!d@(6J@H+^}KngF!GObpH!Sg#>Jq&_?j(H+9dh16GxiL? z*gmNLSX+pHKS~1$Q1vLqdT1K3QmH*`G2ij2ti1nEE9JZkV#)pC!5CJ|o12lL9@;`P zpo+e(BCy4K70#t4&wNR}nf6~+yK_`?bT$v9j$SP|?K}b-=CDsmHd6)Ag`V^rK+6-$ z?hHdM<&z9pK9+m;RvY6ABmh8cbzQ|@R>CUECrHOuw5mP40RTuJ z8IKt2vBC1UdzCs41Q07GhRV-*(_)QE5clKljM!oPy4U$e|NeNs50RY{k|Vt2NIZlM z1$kpf1|@h&iAc3bVAr4_4OcNoc1o|h*|gOQs#^75l%uTwx?=P^wI6?O5X9pMrpDtJ zdgPb=&YN(K?`5=R&-ZTu#BPZt`*IJz+uoTR za2$zSRe64E*6U&=((mkKH$T`W2GqEG1IN(KCV|5i5G3G0<$*N1JQXzjez?*QU&*ln z5T%vRfQZC}XTlrV)5afmJea<*+g88(r`TKVL~>FL08WW}hk7SwACH{qA-J#xhP3p++!n)t1PE;iZ-XqXKj*pnVG zpw1S&m|QQ(;eN1a02)Kiq`LHe@IUK#8+2C_o48yXqaZnhK4)7Jd9&nVwcN`Jnn;3X z!8a)LLaXh5kKD-?yQYhV*!1=ND4Y_2uke&Z;ZNA1(LL72wDo(S^IysN11$Rxy5ZK9 z`58u3$VW^!FW0_2yw7tYdnSXJN;~U+7;{W=B`h4U`{KT}&-W&%uKg34z(+&hlAb*9 z>U)!p1@RrMg;E0kLkhG#xpk+V7u)*U?u{idVC6oH=ifA$S9KSW`8)=L* zP0Glci?ko8-ymZ7F?~JVhD|gUDznDTw|Z5?r748gW?Dx_fPJm2CW#W?#2*D~dK-yk zk_v;d(8{4=J3wD0Vi8O^%{IDX2?&>!?F|#qp7_}xQ_MmdHk=&TYQ)qaY8hJ0BBbs< za&&ND^!-^^A+lyRFkq=HD&OVr9CK=Rl{I}A`C+avIL`F*%XoI5TZe348F}S38(tF0 zEUl~PjC^S{5r)4%G`^^)PhlFh;VG8SXQ@<-nb#X!SHcrrMTBhexz+(jbMp(s14is9 zMkh=I&#Gnfb~R8)v-+N2=hUUUjk^=GMM3N!Zhe$AwAFAnWdnCKRlGnh*MeagU8l>J zMhWo-NIJ6sI6RJ4AG~-3=BA?w+lW1DC3OO`mJTb4v0mKlMmSee;Xl~69U%jNVi_ct zvNjNQqNA)mKs$slwZH~ftUrPvbaY`9-@79TAAkB$v~|(w1=N0>lYB>v1*$&hG7q5t zVMa?Uf(nc5I`WdJVl6e+PKA#u?&&Cp&u<8F@AGZC+u&1z*mS^lM>}r zL+&kQ#I20wz*Np2J=tl^R*<$?qAOdWDj3MaSxHjYxP?+iLSZj z%%+Opob)sC`Q0(;!q#l`R%0LmceWB_6LyayPgPun%DD@uZ|&fP_M%wkLSHDleGiQu z-*9nh|L0Q!Iu{Skesh(D3_ovIjo|nbxEG*~8wiIj@hYI;)rU)V4AoKWUBk%b`9ir~ z7t4Up9Jk*YQc5^R>ID;;UjV()ZdHW}vs5H={}ykou{GVGdZ#I2{c!+p1v?0)%djLX zjzk=d4+&tcdFARmEX5Qf7lx1n;cN0?zw!TSiuh%5#Q5%@@`ZYn(y6N517%ycf=DW= zz?E6;x5rCBtWfwDC=r@oE%Ct)h=9|&{D}?)tjbs7;-v??yFq)A{|@ceKg?@7 zigXq65r0WsqzSkH8lc5A!}YfMId~xo&+1_VwaHl9iS}5Y1BKi~a(TzX#jC7b!N%9F znH9MJH0W8K{Mbeo)a(ss$IvV$REV3MMi^^AsH9w7^_NKCM+YOjd5q0%NF|XnzvBsF z;5pgAqlM}6ZrdH@V_l*;{UHK$F58A*xL{Iiy4`BP>8fv{*9}8=j}RSrOCd?lXYfi? z{@|3UITM35c2Ra77QO3jJ3U*=M0>wu?0_m}3w;l#R6msUp1I0{%FPoaS}l~OL(7R# zV{_a|A=zG2g`ek~^F>Km1kQe9pHzq7-$lb|d?8}4gA(LEk)fiXnpL-6{;j3HCVlM7 z(!kW9W_gCi8Fj*bJ7c_^aucy8%}jgP8pLI}>s7xvAr3$}liIElkT>@E{Nv!|7-gTF z&DL~U`a2c_HZz91aoOKQ3Gk#z=Ke@@ASuieyz;+xjv6zF5w!-zx|!yV`%AQ{a3Qxj z@A`E{KiQ9(-{w^>qo~rjmgO#R0VZ|FkNTyY{%Zqhj|cJ+d$c=pA+%tOKGWb3AZcU! zC@|cIM3`#r8Ne`nI#;xNH}*03kc0YK6TQl_--F7%u-)Uau6B!U?@-?iye;v8e^u+# zVx%H8Z8G=v=akT`C|pknzTF~UNW5Sqb-?*|Y4qg3BfloXsxQ3N=#z~(V^)PP8hY@^ zNzVH1iPniOyIDt6k5{pNuE9Xm6VjHlW2@7NtD)z%sc_U-APg^aP#w$oL3>L%B@$cM z-EPWo4_9fFVGpvd>y@Z@ZyweyNIg{GbM34Hd+rko6hV(+*=lu1RlGZ}Hm+c)TIlf8 zMh?2fj-h~i%_s8|M$s9(af>r$$MY?EeC9mYq%HCsQF-h?Tf0Db^GeB<6{WU^08q^; z0K)k8WQ7;|7J^<5#(XgqySgp*?+x)nHw=nhqJ}=1FO;w)cjsONPXRX0WXtamo@D+O z6GO4A?tT5j>|PN*TT6#>#bL9iIVHde0?&-D9XxQm0%Zho-l-hWPsRAGzx9r%oi8!% ztM0$Yj@=_}BTog+-6~+PM5}MBW|pc=a>2TCo_S1^qeUYgRXik6@6UXt@~z_`ZQ7}O z=JoHL;-qXXTYSU0*WeG*P5Wv7sn0ZO* zP`(~+ReH=txY|@U4XQPrnnyD5c|fN5?eLgYlblKuwJ8jV{q;!S+ASRet_zQvKyKiS z$Gg)o76}!)Q%uq=`3Pr}^V4uZoewp0k5>B2A=xO!-hQsQwW$E zr{S==kY5)xZh zL`ACt2}a*qs#qvCupAxl|BOynoTCUG8ZY;^^B%$>R5MLsP^Y8h@1qq%-`TM-%j{Yy z1p=fv2&E_**=c@hBRm7XP{YXZQgW7O-N_4Ru09`>+bG!~;vAR;O2(1G9Tx_jZR2Dx zB8pEz1OmU>t4V-Ar5-QTMKIXGqOG_rY>heT=euZ_ynBm|SI=}>SGRLh0dIOX{kibj zZRm4D<`7i9YD*N``nWLzEMWn>W{UeNP1ski7g4VgQ!1RT#dI~Aip8#c@#d&6!z|Ek zED}~SGCN?!EQAGK2W$spVvWe@0@F!2nNv&AeL`1SLXQx!>Mk?Lfw}qu1hYYRV-R^TUv9O)jxa4PEJBkV85} zrJdS4MN?r%QF`&N*G^S{K%TKwr%R7ugDkZRwbq6!M@q=n9!!M|r~zOhc|dC7wD8Y> z1GF@BGubO7eR5jBJRD^TZ0|i4N{qM=e1znl*mB;>eYV@pPQvMOD^>v!>rK8c;ni0F zH)zshDYKPcvU`U}u{MnQJ_o~n=x#-hW^#21cUz>!EDc^Enl3tWfit8xVwU!^C6VhE zTlw-Q5IibaUI6{J(ebIPij}Fichj;j@ARZQ3{mgtX|d-4Eli{?>#m@z6fI z2WVBz@^JO`=`9aVKUHLM^QjXaF6BMMR3J(1%UVH5N+3`pShlU2_^Ru;Z3vd5pY-F zlfNw0(WcI#H6o4^lnOpt9P5I$T1aX;VXM`&*V&(b&5{x{$SDDlCm|S zCXp9B{ex#uP{s0nZ8J`$3XG91N=Ygd8&A`k-gGDx#RPABP#r#p`l6C7v$I$Bu>V#l z^JbzC(5uDG#G^23ppkL8DOk=Nb}@JMGsiDGl^otJ$;aLO_5 zG8z)N9B1+WlCg?^b~>hUKkkre*l5N!SH45cz+XzsWW+sKHRG=vQ;%dkCvL#qn>LK@98+% zZg{B(c0LbjBOQlSzEO>685+1;VAmUQwJAK;zs7G|FC=Hmf~N(tQ+FiV3`48zMw+gt zwx6V~j5$F_38%kCDu`=p_(>$-HAa|6DlDxe2WTt()A@n+Tmkqhl7yE^F^s z8Wpg*)FAC9O(ybgUNX5ExMCpX*R1u@Zzdc4TIXCNxwxnto5>;DdEJ{up;zlCqV|+T z0I!J~(I2vhovKF_1K%q{7ZG9FL6s1xn-Mq)=`bgSy!`Xe*{*OYTPpgukH(Rvk+6Pv zulOE+^>XV#?XzF^$l0=b&;gRx*dES>$?Z`>j;K#naCvxZG-q+($asJjRGff0NC~5))P$@%u%fvP( zO3}`Pr>S@3!#|@A0!!<@Ykq;cOD{BdWLn-=zF-@c@-*|d>)6oIcw^(-D{LnnGO?#` zGEQ(CGM27O&tuvI^M-Pnb{&zm%Z3-@wy-0ZANlvkWAno-13!*1IGMO4>%DTpq@29=)O2;H57~2PIS& zHA*Vn{x>Fv)7fGcWyC;AclUB5bB1u57uLGn@f5S597rUGijs)MjE^`w1U(Dcu)EVx zlAY~l$kj(%Q#S9-L6HVh%GFJYQq~j#<+niPJc*ZZS;=AjzL3x0uUhtw%wY7k>3wRH zi^eZRz&6OHkF>n%!wkR85xQldW#4Wm;Q;4Dz%2`jVNvh*zBPXc=dn$1oh=m`fh&Tz z7@LdW(MT(uUB;LOJl@-<_>b} zJ*W5V5)Y88*&v^-ZEcU&z$dV6J_Kerc_dg@{ZaLg4HF}e4qfmzKO3vFCW01<;611f z0PaQtNk9)useG<3`6OJ=y%SLvj+AB%G#Sf06EKxw$CiQW_RRb&M2E>cJqgCjThu(Qzt|r*a)8jd2SehJSDBF^| zcDhaTYAWYgB*<>zQ>G5!`Hv$^gn(=3yMwx;K-@+3SumYzhB42>MQkR7x~=>caLc+B4*WNF=FpL3sm=L-Kt6 zG{XwW8mi&H;BwZDaJ1F^weuDp4=Q8}MSN)LzgSzkt^v7q?9n<$(x-EP?}fhEO$SIT zDo%NX$y|;KcJvFG@Et70&&3>xJK3UU$$r|&Bb4E3$d_(%3JQcIH~>aKxxWCeAzP#> z*jQa~@$}ceEry}v+)8XDMY&$)d0tlwL7!)*NAc8(b_?hT<*V)Ly6u2{!HCbE03E(w zSly!q{ywhZc#_ioD?Y9Vq*il#?2i+aO+uskv|VQ^x6OvDlMn;!H~lT6i(@FJFZL~q zy{K3A4~OUoTNRKSRLI*HWUBKvg2-#1Bey_Dy{wCA7ZK+Hg%XHHSPW=ir%E4WR+3@T zf}eCMGO-WW`JZU!=8YxwnPntHA+QF&Kd%2tQDz~;(0R=LbZz8^88Tc zNu5kFkSSAIp{L<*!o{YIyFy_#`yG&rK7HiIb_T z2Q!uN3n<>hu}F}#RBA28Kv-8xqbjiMpoixa%77e7)O`tW#>i}#^CQD(pxL6CaN#lE z+r@Ky6sDe0=zhES-Mez`Z{5(+>Vu~0@>aT%Q}1h1W{88=sIKwc3nKdG+u5^k&`(MF zv7G0uiBvx#Mn{IeTp4p%+296oiY3~bJ0|t4X>YREQ2B~Lgg8RD;~qMVq*hHFHsy*b z2Mm7*YEH^F(QIwDlRc=4htwVzOWKR7!epVPTw9ld{*06Pm&A0Ei@TM-02(L+UXc0j zyF=~_vpzx4#DNt{6968QvW!5-4;eMSoJEGinDH7;YuDwL#bhCdi%%6}xu(~I{&CknozpDxH7?{={J{(Qo4xN0o93w^vSb;7AP9=0cXE8<0>W<1p?#N=k<& z`ug7RQTa?SMLre6#&#~O7j=_3(qtt?Uot)E#!xfPcO=ZDYS}~svH3hxH2r+Ftvw04 zc`1|CXJ9v_s3Qt>#aefwcF&OF1|R44d_IKoAR9EWWvHufuH6I2RAn`747tmI7p|bx z>qr>PNiG=A_dBEopqQY&u=y|w>U~ZHbM;Ku0?4GDh7*%y3jWN~W7*5#WhRAWZ1=&r zYB+hm^bG>k=$bvoWf0Pwb5=2@k)WrJap*p-Uj)gHXP&03Uq#enrxXL-bJ<Q zjH^WaZ6g0ntFDxqh#)x+GCp%y@@Xdr&e7vEKm1SpVdsKT?Td@U&K@V2+YcWem;3}e~ZOy)%*$Tf}#p5(J9 zM}ij)nsc==G6cQMOfiZ_xS4jd%bap(@0=F&NjBbMYa@61?MGld_HAu{edQ z8fLlsDY2|l<8(;-`cP}wea_R2q+llDeNa#$I5;&++Z(_sxTVwy7F&U9%hoRL}uRaF$K#9HB?87Ig zzA<n=h%@PAe}Lp)d_LK?(&TKQvkF;h1WZ(Z|mrHWRQ?dxhfLnth%-CD07;Py7_@ zWI%$_VOG%nCU3(+OPCq48io0?lP@2*ntSJ-(iL!sPGW2Lg!$p2_CFDlv=kG!=81jP+ zY||2yIl}CDqRWx0Pc`3OtP=i8a#yFA53hjFIRs`ZJV5kJ!Qa z1%5cbMdCW5+acxKsNd1VU1Lw27s>D7iLtA(%0g5NBzK>0Sk=mH%bRI|G*nYIUZ(22 zdO(u5thDt*j>0MXB76EzvP7xA{w_Yqr4Vm5e z^&^eoD|PbrL73ZWV}qN$;B4|d@4B9O%+RigJ8aBib|TY*jOXv2jkbnMaGU#wcc?6C z!k#N9D|roPHTY$g&esAgBp4`6w^PPnzPLSIo*k<88$Aj!HP+38B=b)@J3iz{k=Lgw zz`B3wGxHkmW8|)ZCrssx##q9lH{sF45gkU~_I(sD<&Ts>sllkPgCo|w@KJ`6WuLM5 zfnt%PYX=Ln*4FZ+IqVr#qz;~jW~(%2MG;NUG1)pHHZSL4vt7{#LlzA}Bq1c^rOe3~ zj7*ct!n|qiPS?ACk6XhEXWp4SIFRGjKGk}+bmCzLQ~Nh zHSFnNjLvZZjDiSvWf5V%CgZ0!I+W}4tbD=6<;*#7Q2)3mf>kD92Cle`l&EsPA9Kn0 z1M;@BfBjJF-Ot5Q=OjkpTjo9=$;3EpD-VW0!^ZZ{fkajw$cg;WZGf5KugC;qwF}Xy$=2K+MVS9Xh@23 zc{#}uJ!Sj=!G#Dw;-|#QQ!VvTG0TC|IB^U)N!tH}g?<-lnBTvdBqI2>)Q7IP0Z0rt5 z_lKV{mRwsJuM<_=l2Zjqxj)k}Mnl!;`<$tW$EWs5x<-^8*^7Z05(>Bx>Jv?IhEJYW zeHi$!W@?;dRa6rlF#0!6)t7$1cpNy&3>XshTp`pzBeUW&bp!yWZT!;iFbC4&o;1oI zB5XBax^E^5%!Gm-r?NbPl8qMairASgd0}z|Ea-={r1p$b%L?8IO}YrltkbB>trT(( z{jv%sZb1~{fmH3Y|Zxa>^tIz*>%YvVd z$t~p$Nhj_nQzn*oB}6qtPDOYc*|vp#Q9Y0zi2yC-KoKDm(&H(?$+Fl^a4mQRwpLz3 zwwpgd-cmD+uUlpCO`t+@U-)LsYfO?rKArAQmI*JnPw=6rbR}T~-gbvQcH=S=Tjn$9 z`Twv-b>dr;(vECq4xWGTd}G&#&~kuy9teIPyBpz zwW@f=G^C;w-^-*!J!uB;iHGu-V2MQc7IRJ4afjt6z(`Tla6HJLi#cb$x%*{ZYLsz; zVyC+n_nVwm*Q$ z&O$>*S;hLi{X9NEegWp4hO8zA(dY9i3COt=Tnx(Ej<6&g{14X|kybR`PWB@A0hdQH zTXix_)(1mE#OApyskG_X5~ zDr4r;$yVESwSa!Ut+gvGc4Xm!0_jsXmP+nGZ;sxvEyB$$^xqBu1n>eQ560!2+K-u) zd%-Tp`O>NZm)<_D1A7s4#u2|TB~J2hmyBww3?<2-k)$RMoaI;@f4I3EOw!;$Nxye0 zkwm#VvkF~G&hCw|y-$Mnp3x(inI9khC^x@ zP6wp%7HiBF)&8PTf-msFq_dqm#3KF45tF6h=i_vpevjbR(0e+#F=W%TJ9Gx|BZFIPdj(Gkos?cobFx(n z`1WC;+VjRW2-6qQAKK|u@ApN}co-IUj!b&vR?+iK-XLJ*L3dXogT5T+QqmWXzkPG5 zdbndf7jL^|**QDl6iTB*F*%G<5eaD>?7h--bcXAb)-N$bxbS=Ld*i%iST$}=Eq~xz z91B$sQkiVPf+m20lI8+m7>RjFbEQYc_qUtIWB$~t^?oH4UibYK}xL+EZZ_D)_N^-*2HsTOv7ikiI+q$j^(PH#~0C~WmYeu6% zY!=TOR}~{dKHge`YHkJGHa%pbFa)7e2+m%$N05Q>PM`|&aAK?pMZdQcy8FSzD$?ye zHh82r2bM#00n7q%6b+7@KvZA1nGZNTFGvzv!>=Eih1juU0smYe2?dJF;v4VnXGk-& zxp=eE_^e!9chR=U=KvvsiCEwKN1oXxMXy>wmbrN0h zS2CA*-SWUP3z}c{RdYokM};k#dn{_Qo&J)AgC*r)JeU`N#77Uo8#V&xytQL0%>#Eg zKFk;Pu63O973$1v5<(V75e!!Fhy!xlkBt+LzbuH_B?DxGGFmV+@4{}Rq=V~M`oYiNGTHh1dQE57>PDO?pvC5P2K?U@DxpJX ztz53F!_$f~H+|3p=kAvO1GYsB$hy|?Kc=YAN`t7U-8j2xamZNI<&f{YjLqH3th*6% z!n;lq)1`Vk+hY=)98J84xrXlwQheK|{3lt_ z#~wgcs-!Rd3)@k@f$vW+T<0BHqgg~K8^cSyYHkXpzvr1fuT!#2>s9I|bU&AvotM3V zL4h_2FZL`?wH*D<4U5;d5CT7k%B25N>k`q{$&O0<;rDdO3I}))u{(>XQ1fBxH2tZV z!|g+naF73{7xVGxWB_jf`V?C;* zA#@w}jOsb>U?R5HV7mrxPG^AyC=x@N&^j6fCM=7_%kZY>mdri1Jx{L-C&U|tT0t+b zbo`yhTA}M=r*d9~2P3q8JqVNUp)m*dA5lT8zqioBM(; zZZv9yWep`2oe0c#k-R$PgLg)4R4JmMH(41%Lxy=geld?Nzp91O)s^o|oHRmVn-b1= z){J$8In)&kwnrEF*!{d&9l%o8!91vuG)j|%(_n9c#~<|gaxz6Ec!*@IPK#;(Hrf9v z`)B9dof28$)Wx`wtH+{{J|(fY7OkyHca5BwcogVRn39O=(+Y8bm>4Ou5_6hu3nN9? z3CK~W|8y&qZ-0p5>D-kX31pp6RtpvB9QJE5$;?PknxBBg2ihFQN8g9)sFeyp<$<(= zNjCt+K3piL{{Ho6;}Z<1e(qxAKCahwwQ)8grb2|621}u_>FMzs&uSrDvIYt|Lx+X? zIEazEYsmOgwT>%T=#HojzKNH=Wh|MGbUg}KC6(G>xu_hj2It*8PoeB+eAeNt@~4*9 zZIzUKE5xf|A1?~N7UptmK1vf#_>WSa@5pGy!6DyLCdrP-POJ7#r1Hd*PjI*|6?EL~ zuJO+WHMa{!V%mw3W^*qBIIy2i@P(=0i3pjMaB?r{MKVLy`+iZ!j3Uwih7N4$?pFn*)dj z56E)Kmt~RmvAHmB`H5~VzKI9=IDf79<(dYKS|7;m)$hTQJTfSjv&S?}{_*+s zV3&Hf-zpDnUn;CAur1h+Ni1npeEi`K{ekPjT;q=dC%-;;Lo#2)daQj53+-W=$FFv2cri3+K#^AX+`mJP^t{jTqL^xDINd6|l z7pE*t>k_dX*zL{ZUwPa#L9cTXTEOm>_5Fs^9BBzHY*_YrtpsS^&#+THlRc+s3Iwuf zT=*ZldwXTpE$+<=!)vi>OV^2GcKKfETnM4E#jpNm&o*Dg=2}-_CgbxF zX5wTbDsH{vvShy5Uu={Rn0v$U!J;bjG?!gNMGVbf0%Rj#56l^@Eo=H4CX=`&_E>9~ z76D{qHPWqT<_5bgbdXrIFU&q>=`AEWpn3(1D zli~9f>bPuE%7xYHaPSFg85z@TQVcE9o2_FS9sle*F{(~lP1@a zJ}&c=*dUG95DJ63>#2g*|Ax3=1o%BGE`@7=ydIg>o+JO)me%crn}n}B$r&_!Qzz~& zqnt35!DSv2@B(-W`Q~ydgW`&tJ0f5))iwB{!Fg%ZR569mflrF&pZUV~X~atRK@D#9C(L`1ni~Yi+$PR-t6Go&sDB|B!m{<8`oU!KqltrO$NK)mn57} zRj(%C>Kz4+h7Tmp`YHuAVN262-FsBlwJ7$_ufKQE`1bJq#PulbVDU0=mS(xTuLvEc z7wc2GKIXL?cI)Pd&`e?yWz8zu5Wn`yydz-?UZ?GstoUu|F{J%`*T!9F0xEQ?D>iXL7#g9*K!jxX;?QS@*h zaW5-j?Cn9l9&TsG1?V?}s4IBp4NMoBvUT+}6eFvUvs3+(7JD1J?NYd5gCxhbyczhL zsVA1D*+LOq*R!JFmG(<*uvsO*9?Ju*`)Y#DeL7P85$QB11QqdM!&z)Gi=q5{gr3!( zAa!5ks9diXG554{#}_2febaNTF-YWmK_-iaq~>zGbS)ESEwlyNmiLO#3jJGWI;-ThPp zX%f(QT4(&s~6~d)S(g6gGR< zV3qw7E+UfS!R7*U@sM&H;s$+4dVWtCYP9&0&_K$TeM^7*UYsEn_YPc-J6+t$`I8h~ zgc%OCO2TtpLe9NOZxUT1z7S83iDgM^!8%A47FLKu6Ly6A!yV?g0#Ux&jYwVS<(n15 zNc0B_p_faoFuSILEWj zh>%Rdy|bfd#a6KJ*am6%O=C5QV%}34+w8~#s@xAjiK-ZWRhT`L z+I|)o;@jX!t7#oEalkN)exh$5vhl*RxX`HvCVarY9(S^zu~f6xP0C6*3s&O@LYl8% zNkEQJ$Frf>`%e#VfSobEihH@~aK3~*`Fj_K7p5u6Ekzf>mD+I@U6FYrfM*(}d@@7! z-WOr%N+V+K_pTTZPg`~?pzsaa>N?sHvcd|b4HpJ71vfhioR^~GVhvIh1E9?%ie&#{ z(|m!;eik0B^F_Q_S{vY1zcq{{j#0~Y=2L=Y|Dg?pe!RUo$9DpH&?@7VGIZ~!E&!zi z=c_ySsdQAd`S{5@fGskzV~np%(yP;{V`?>~=woWkq5+p4$;xpi6p)`A@A1Sl1SIFh zA>Ts~);Do5(_or?y$tz-ZTbhY1iC`+9SW)oSvbLV?ly^WL{WxjuqRJLNV9F*l;v0a z!X<@`JX4@a{MCWElg-2JeaItN-(FrveIk@HVkh3duRKBp`-*Tc25Ux{J>mR58mdEi zZE!u$JVb9>|J*{{zzIt*%&z~St@L&g4MLuI==F<_Q9|8upIKKn{U?!pp6sEN*mi&y zTrxsF3J)hRAt`B9NhV)Ro0X)Eqct5pT7@{@{piUCMUIAj%sZFI6z7=QMavhE7IJ20 z<8(VX`y-k^;jI>pRWc~0gx42MfyM+Rp^KCZhb2+&K20Re_Kh6WP2w1DFu&qALS`q6C zI$6P4?kkTeO0;vIxl~7R)FKazr+z9d?|-)ao`yhhY(8rvzoIczAAQim2o{REroS(F z5g)yTVg$IyOK}5;@YMPX5zt!|GW%29y#6$e1Otx;$miVTGelj<)8)5Hzuz0TKY5wh z-y0S71PAtGISkYj3^|i!ZdD)9j%zPPb69I_511dB;=}n-)O#Q*0^hJtLCM1OK{U^) z6hn#}Z9PM{UI0TQGrvdatLniOqe@bko%p1h+bv7uSlOdeiS&|fN ze5K9W|3SF*F@XefTi(()Xz~Uh$?@yr=1AZ}jxhQ1dSTgUNUE!}@V}O26NI~ji=t<* zNbdKtopOv;)byf$_J%2q*(`m0*0(L$oLYz~^abaI`NJfmjrc+@pGjX+0&UE$X4sJ~ zvsaw!SDCxRnTa>#9Uiq|z#is@7z`Q)!LpQ=UF+xsBSd&ION?n8xR>@RQ#&^tQjWIW zRuLtbqoOoq%g?{iGZy}2E6T?k1%v}Wfiung_noHi)7Li^clSD4D)UROk7DjCr>Rba z^Hh*QK3S5xAhWZo5FAQe-gw?~lwwsnUqX$gAg24BAb2HLXMeJ`cvT&pXMvnR=zwhF ze(;FEk`;fxh_Eiu;MV5DVfct<7`0sRt-pj??i~sBGaAS@@x>+~$5#u42~J~YpQ3i? zPl*!f&E)7!wfOXd#<*pVhAi6E@YYOXAUTixM-tKO=IMS+Z!_PF+K!u20nHyDMG*K3 z2%&PkCKrAHB_`Z|URU4oekOw;=EZGNiWz+vemBIUs)_Nz|BZC zLye!o7N0ezKd$B(mHzLSEdo8{=fLHg@1rn9@>+Vc==OMNbT6(kajup(?1h$ROJ$T6bsfSI&ob_Env`F=uZc?)&hFUOc z>lri`9rd0J%3&0o@tlp&2-k#s_K~bHo3GI|k8OIj-(g;aC)pEpWb7427SS`_tyQzb z0+RjA8~$7Mv0kBTSrb&{bzCz#&DA6@ohhvle&_W*an`_y$Sjpz5g0b&``P=2XGxtdc6w; zgenSJ6j$wORio|ENPH8`1+G=1@$8JO`Xh2}y!|Sa5zh)_D8_9-L?!Ds!Wx1)VY=Xz z8`_ii@ExU(3H29e^7QuS1?zobvsU8-5{*QrkC#33a6V;7590;AVWygd6`31nWSs0j zSX)?uD7#)MhUijh9bmkiMVK$;QkMIx$hXa6WcRV`VG8lR^Q0jh;d75O^X=L0iwHQ3 z$adfp-wehV^R>o6Mj|1d?Wm-gJ5pFLZ4xUvN&d)mkz{itEe7HNLFon+7LpD-%=2kS zW8S7URIg`U(Mva}nBC6&MDy#dBRBm5w1uWuiOUVCVk7HQ*4|5NHlptZF)NM&9Iw}C zI2oY{1F~Rq3Hwy%cvuwa#9p1nI?UAl{}ZE}>&)%;81h;cW`6TJFKR4Cr3YjE$lim# zYPe$-8ayE=5^cJb5ja2x`exVLx-Q_a@3P(27mAB z^X&bBl7OU&(N;CA_uw|MEQ$J7|8af*DcGB%nz?>vP=ZR`QSD z3#_ECCG#8wHt`_dYmmk_m(=w_4gSLZoGs-23x-u_P=>;)iXDa_sz<}DwGveeVh3@F zhGyuYt1RnZ@L`bir_{HEHeUF|_XhN-@lYZ`7un*39{Jn-F3oTQ!Kkb&0#!~$l#Kf- zmGCx<5XDcXFWBU^p1IWF(Ll2apv1k-v<2_NKJtR9cTqlX^c?Rr2!qh2SP08d3N-(& z)_t4(`=l-E>%bYGV|-IrKUKqen>*S1W2>K)+yo9zxfiDLk$6t>sDocKu&--&24Zvr z)g$@!W2^($%>&Jj6g;9uzaC?6t6g$dX|8R_m82c8F+^eXdker5H0RDPL^I(Nb%8)) zgUgm!UeRNDX$RGtdv8IH-nh1q6%(Zg@SGjDg))L4Ia|1!=}Fh454kq31u$N!R9K4B z$uP8IT}OpnZQ$_sT5F$4b-tZq>amgGh*zZGMdyh~a_tcu{&WcDF=IT|(YonJcDWf7 z>a4A$w#Y@9YnVRK~?Jup_<5`&`z z6xrSY+gV5tnG`gRsgIN<;H7fVuiiP}YT%NVT8}0kI>GR4lhM-TX>JvZ(j;7a#|4#VzT2X+rYv}zon&G4+bP)MQbweapg`1VSj z!O5^CEm^_dFy?$KFs@KM&-0Fq8$n_@g^iFlv-KmyPFhN7FVTVHu@Kil(bJd~&3Di} zIF1;Vz82CyTB11mP?U)Nu({WfB6jrQh8{Q&=+u$;=O$mb)&sQd=85!Y+@kN;G)KEc zM8v`**@WJdj`{46Qw4O=v)fwt8laCf>?<2A8TP9K(`T}%qJTBnQ*9n$dYn z!V&kVk=-rlK_&`sM|TUi!H9&m2V(+%l6B1$2s(kNvY4Jn>JJk1gZq&e`5WW4p=xG# zS$FphJBnG7uO!m)`?y*9jrHSji%lJ@c6mDaK0m{AhK7sA4NL?hCx;xa?qHC}qsz)6 zqhKA#cgI%DF!`~dPx_!x8c&WUY<=M5uNGbif| zl0d0MlUJ3;$J}OorGu)QF`)D+Jb*q=J8&Z^D>tQFk+a2MJT@I`{Ej#M_`kV6D`wj( z7+w8glXGNSFjsh%SyOR&Ok}`Mg@;3096F~jjIJ%(QJfw4d$~79$tw^>#{s+c`&iFn z#`+CV-X$rxwzyojGq#9F@G*_W0IpUVzF+f=B7GWr@Q0p;O2W9nOO_66JfXFon;9!W z`c%w5nLs0SYctZ(|0EQOL^z;w+804hxEDF&jBJ(hW9y*|G zPtGE(7m`mfq6sGlL?z3aA37}O2_$G*9Vg)sCQOMm*KeNJ-V%J_z+@ZUjn5c9_0X&W z@>DMUum4Q%b~iKlHc?t6Wr+}r!L?JUV`3b;nZT! z66>*otD*KTm}k0Oxbvm&{}}VRl6xr@;05Oxx;$wzzBR_2Kb3oq;932ib#@H1Uq=N$ z7E({=a!FsQL|S=!s-)zt$P2THX8^%y?+5U|`Nm93=N2|}F@Q4qDjL=kje$IgorAh=MaiJw$Yr;)Q_@^Z?gN zA6?J}W)ZpAhQ0>O2qDh3JN_R0{U^;;DEb06lpvVknx|H@t4Rv!? zEU0Pja7qiI38+viE4VpR!#r+pYq}wW0>RsL7%s1ia4rs<!PeIsN6oTSRebgQmu?SnI zFK${{`ufylsvFjyY8{<64F>>ajui^k{{d zCQvh~5JXK*+`3bm!-_EvR$S^5&|>Lgs(d?0ss8#`;**Va{P+sb5+Bew1FsoWI9v<_ zow-oO`{*5aGGS=oJ+V5ooy{<~@AVl6m5h%MjjkL+DS2FNU@_Q%y`Fhu?)s-JNUd*IH??SqlB$fTcJsOA;gdDi(b2~-4O!oS^n5$%p zpW#7_n4mO9!<#SYqaTf!V>~kbdcw{k&BT2utJ>Y-+&8XUD3v>R$^ACE5{ZI16ledV zNd_frzJK3YO%fC*V4br*Y?ra_2M6=ox>wezMP=!UDypHe-?D+^pSp?zZpyc)^A9i% z7uyF%n_5Kj&;~iTc^xo056@%c*E4>@e3}{S$I~+*p?B#n{3P@6^hY(ZF~ zlCmqtfX-L)aRXTmM#JldPBv)|`7(yQBZ~WK@{vn8#U>e(Sfx6bdbJ+0{vt>VnqgU) z-U-a$=AA+h_HW)-6js6m@ZH7Y=$FWO*^Ui4&@^dCYd3mz4r)`qr-SURLFdrvEu5A+ zqo4&17ybHkX_u|8Q?_RqG~(hZjbS-F-Wv3+_I6z^jjA!!7?2ac;@{9_xg6{kVe8{j?#WuVBpJB8GL0*LqJ5`*sb9fiA8W*ydzOnJrBYGm zI(W6IkA`~>qB0tqj(T3Pqj@{5R*+@T`Tp$GJ=pceVnMvyA!_TdRE)9KnX(OYWD4`{ zpeRylkCcqtISE&jCSr8(Ac&SH?%t!^^7hUzLx8J?g@Ml68{>BuqbZ$`$1Nzt?&SB9 z4Z$GTegFKolFdWd+^?A5{+puj031NJXSbb7djA69q-e5VNz!f)qWo1;`a(u|6yOs7 zV`i>NWHJ#+S+Q931rj^o6*^lGd_nW~VzYs`GW&!|2QaCrfX7LKRrmRrZRkQt8_s#h~oY&Bv&QDn?*Jx`hPk!qP?z){xl?#j+zv0an7diiM;bV!!mVN zZ-W)b-|B;DFPa*Pj6;_NG``GJ4%d#JrWUS^lD8IWu&2DW@leD`Gw)0^3SsD`<3PZw z9ARXT?;!TCmcboDpE6 zMhJ7kH)1Jw=_#dL@;;gQxO>~iONtqR0+KBPkI@Qxs#ct@eE8yZsqsh^Q<%q|(g#JB zrJ-w-iM{EgFr=QXKY=|r3z%e?!?ums4QkGjl#1-j7JMn8Rfv+HR?IU93 zPmlsmhjZFf9FpMBee4ygA(-JmD7wBA1znpprOJc(X*>aP7AOxG(q^?QkY~is+Rjqe zJXYnlZ?tAFa-AzjMyf=uH33UmU~9Ic*ksn4(8J%HCJ|yvk|aw|M6*Uo317kI(ZLTU zRbWaM5TJ|(fj`##3Q@WI6AB<|H6UKFGSMX>5~+-pv9ps?T$+yW$W8|OW3`d9Od$Zv zmpCN<`~uXr<_*%KFUWS%bhf-BEm@xMFo7>Y*Ypc_Rgt=1xYJMzAWzbIY#*h@ z_d1-i((2?%byz}-jr;UI{Fqs4SwrLIy_28EwmdNhPcf+aWXYBXnmGxZ1UhdM1U**i ztiAncfSg%Gv};lEsjqdAV;YVofY4)4OO^6p2Lc7ru;?hb&YbTM$X#9;|NX5!DUvHR zxp_ruI-`ebDzQsp!VV3WMTwf(kHqH!RotMHZbEhsB)-0Hx1Ii-Idd(2?|td>MS7_d z7B(fIYS`}BXME=)wbyV~Hkff)4LeU!QzB8!4de)&@RffqMs?gmqylYMf5bfvM9 zn|=&#>6T}L!}S`U4tD&&O%JDw7C*d3x;7N+0C4!KYZq(KgSY{iM~)fhL5Mcrt;pUn z)!Me{HaCVNoSm_u|0!)VfsHF)qg+Rq&Z9AnBjA~UeCXCUce_7#*r6tVD`$u=;;cuH ze#S4sY@^u47JJZ1(*}@Djx#S-> zU-aOxw@13hJgKuspLrSO8KER3gBW%sE3@bxf=q==<$}VZJH4T+)%PBY4!?f^&}=#t zi|{{D7A%}Ky<70P^bPmVe5(iH$Mp>OcfVNB)r-AUUxj4}NSj9;7X}N9%2Rgfte5sK z-hV16B5s@+JX{`>$DqBfxr-a37sf7#+nUs@{v*47zPp%J1wP3^xS6@D_m+w~;rLOh z0TA3tT-fAb6|vs1x=*D~f2sz{1Q~<42x^(>@7|KWyVMyyS#3#YZspfsQL5cLCQ+2{ z&%tr|*VL}+%^DpZBXFD{Xh3Snv^S_fqE)9fuPIi0BG!l6L@T`%Hn4a8F9$VBR};l6IKU6sZ&&kz8BQ2Ks!Myr@8Xeim-{8M)o~n<|F|XK=!0Vk%iTXqj64vYxUwk5tB^cBQflWLxeC^d*gW5(My@9h91!KPMO#|dfj zRw#j(j8mSlkorzC>0mKD)1!iPART+!e+-j=;3=4qYRRb`@J&J#VMcI_aF4MOKWX21 z*};sTrZJEdf{S`$JTt`AiBFwJuylX)4m@^M_?V7%e!Oa>-U#lEos`%>jhih6{^1bDDbD(-^9^6-My1` zdtN;GU{hGs+)7rq{JeiE_qN|*f9affP#`eO8|t_Q4Iy*_wKt3CjAYGh@-^R=H2Q$$ zDf2~9pZb#MK3883-i9T1lJqg|6n-Foyta(BEo&!Fj*c#*&|j%D5a^K{i!wJ(@W4IH zz0-yqCgTE~kTxaV8@;lbLsUFwiro08T0`$^@kXeqjxC6L!wR?I^Wd*z^P8Z> zvBzeS{+SCJ`#r(?a#u=iZYnrnM0J;WVcVU#-D8p#nFNyjQD9>n8ftIj(lLB^q9$Ol zb(|LqZWMHmlGgWhr}`+|%*^S&C8J1cGq=|v;u!`+CD`YacqS)0G1SfV)p4y}Jd0&* z^Rh)o+^M#++)+5YV?s85Eo+XkKV2^<2z4^^_+JY?>a>@!Uo|g;O%n)t%iRaU9&oZH ztMW`5xN>xtMilS7gLZ2exJ#TCRpmC^31!1rYy~8|h4)%!ek6#wFUTY@Zhr5fwpHSd z>WJ@NJD)d(^lVcpry?~F;eWG!3YZo`Ix!5|*?3^fQrMOltJJ@e@$YpcdW1kbP8|Q()zV7Cuki_kav5xkg z2;tQvHAjG)IejK3H!Lt}#Iq-@et*0_JFD}fPt2~)%K)`_D`x`XzQ9}}!Ywx>)Fg`_^vm?)CJ8UsXt66FO%L95wCdKG)WVmwZ$|GyDEbHA!vk=?g|Zr1=2% zX3p6CCkDW^Zp?t&grsA2FDoFsabyEVV-6q;(ceQ?2K#%zJ!o#mrm;YP>A|6Dgm!a^ zp2edAD(CkaQRJFR2TA(dVHgR`26$|E4Pjckm10(l_v-CTS#$B~$Rpc_=o7<|cV1Pz zGzj>X{0j?xxU+EmcXdDJW!37kFq92g$z`=>3LG$3f9!_d{`kGYxpS@|2drgpPSD_y zQ0OY?$O%U&(f|rt(s1m<;MaQ|amo7HEFZ#$t|>5IU~noLO>T1Ys<+TRqvSlYM?0tWR{G~ z4|y~HqGD{Bti3_CH0fJ;{@5leD|0Nqse-_KGFP^p=u=-T272ev{Up|qtE<_RJN>Oy?7o%#_ZMG-`L{^^gwtgkoy3OaDq*Vq&!;NF{ipt+j z12a;%*rJL8#{E@xMxYDs?YW8W?_{-Xi>QGw1z}>G$32H$3r!9z9TIu_DUee|7BAfM z=$o_qPt@;<8ry{0k#>Q8QWk-vGmsSRvP#F%5k?lIbUjWso`BJgeaBGsre^+t)YTV9 z_(W>RpECz|mebD2Vl+G!N}@b<%KdKGg~E8n2K1)HbA}-$@Zl&5vIuKwD+e)uotJx`Q+klP~Nh+p_1=^2IqZ~XP zaNRgE5~C$@1t7_x-~`x;!=6N3O z{uPMbZ6mkACK)DcM`Ge zc7Bfv#i2M}g=+#g4QU;D+KEa}1;no6MzMtQjX zkpW_V`Z9(8SlP1wJ)b7x>O%N4z;&Wu4zU3(*L(Hjt8}aqZ%hI}+2-bBmZvASFXfwRZC!2$0g}#WuEVg74b?LGnZf!t3j~9x2 z#m+548TJt|%R7$7P2PU!e|J@Q6NioV^lK76=>4Jn3&v9s7CK1dj%AZS7LevGh0 z;D&@=L?7{>Njdf%9TY*DoZO!a4-xb~O>b3az+uGL=&&Rk>v>?^5MWX{RISyOJfM+G zUneQCT{ocLKcBLpkEqR6ftJOAb5wiJqL&23DLvVi$$p%IBt1O3E+?0nmT~M7vLz*H znV@`rhkC=aRr|g5uK`l9-1Okj&N4({izBg}(@ra(84hxqYcFSmoRSH$3lv<3!~GB0 ziAE*&ohH00gZOr6uK8ZR;^FzEcOhQp&qE>0_;|NhV=X#DAZSP^PrlxY{}EG%0m&|# zmx}1L$u4a>Y}Kza;_RtDR=bFzTvC2WKapkW?c2V8FMhIZRU3VsctTTuq%%+KzyJrF z-Jaw>2uzs06=bN=SZ>6( zbGMqE$y_wvO``Zy@sN?lJdoqaVpyHKlkc~8 z^4rx>Z{iV`^8_R2Zxj&M%# zQ|n1w@c?=Za28ua#Ywr-oH-}P5)ldH$+@P!{;glUx3h(6to=PE>n$k`XPF;wLMZe1 zcI#4Sv>cDACJI^1RV6^bL6AikSV|a?x^io(mR6S!Rk?5ytw_(KZOpNRxb?{BJEEVr zKws3O3rU-JTMxfciui>uyqhIQlu16#rv)Hs0)a$ox)?c|Hd zyZk$Ywkdl-qAho9BsIZr5L;w95;2w&miKM(PUzBb?VFpjE?&_4@ZFbQr-eE5(Ch!9bycjTPRW)Ej6=4mmQ&qcKXggNCQd?ua zF1eG>R{LnZ`2Y_k&4Y653|VZM>)v9W40Pn3bn+_ByQ#a8V(uId}4NvoN{Dw=z}!*AxItuSC-esazwXrfgHM*QA}s; z*aIZuIBzt8qToKo*_D?)pQ>>B@iVDFj9#pxpv33ksnzMbc{hmeF2>g^)hI2d>;G=~ z?fM716oAvt(Ka9U=3AnvKWN;p^>$A9fZFF9b%xMIkmfVmY>s% zYFAMa-4~if1^<4)DJJ}S)qIpha?QfR4Ieqpd??}1F4TNdEkjcf6OMigku81N7CI%ixXs(P8b<#SL zzX-nEhl}IAKXrfo@Q$I^Ixlj3j@InsyxQO#%rIeG2~Z!~xCOdYi7(-jPt>j`0uv!Y!%witiu9dKoPS^Te=nPIoDz{|a4K`v&j>!5 z_|)LmNX#rRc^ZMwJp&y_wpaYwFN<9v@i_{GDTT5_KAcX?i=EuMhs$t=Kin6nF>W{v)$O755IRxLkuS^++SI5Mg z(-%(-3)?C1+qKl={{anJ)ReB~SfKsNpES~M*3ZVWdx+6qcMY3wq?i2+AYQl9 zhx9B70%@^KbU&fx*P4`o&PqVm6qV_3I6Ua~Tt3OYb9W!MGQPgR)Zb5t=kxk__aCmZ z`uMvkkUHMKr#0U2l_(=I{+=--kZ&|Q6%HgpWaMTVEBm>g4sQus?65L26e4j2$~b4K z*{^O@(0~v^z#A6;fD7E-Kl8Nr@-3dbj9786FqjDZa#xHZMRv#cu(vac%tFrs>_Y7@ z1RKC87%mpy+L3cq0|EjG05A~#A1z;Wq5p09IwAf~%a^$lm?&-e8V2gS_D+X^bk{96 z!m468RZ>^cN~==Z0~O$%-01$EJF!tpF>KODnl)9mr+fxaF{d8srD31C0L&uB39g8o zT*{xqhWkZgjWxQ3sZR z#?L9QruwCjk#20&IfXf|xF15?>+>$F0%13V#pC=V&<@koKVZQ)jFh(yW8Xr;pjlGS zudKU8-Ouce+WluF%1fq6ATsHw&P*VCni zZ^0=%<>bUg=dlq)_cCNq;OoGG^Awt-Il^fctZ`MxB$y%`yC}RUdt>$+eVLwX$X@T# z0A~SyMp{A9pEC*tUIf~~5bA2^ng(5C*vW5S3^Wsjlq)kz$`1fJ>W_Rk9nO}ZKym4| zC9Mu_cBB|zl9HEqN0sZ2D1klvk#H~sBmEHlZe(;5Nt<3rgA4@3RRRV(p(Of`fL5Il z7xW5+k)eAynwN*=jV*PdmxGMblxvGF06ws%Q1Y0d0ysiVZ0}* zyBX%4z$JzdKhVItH|6rfeiS*tfb>V*tp*C!Bi6TqT@fg`mcG&?K)S8D_Dr3XnEb*V zU>rZ|8rNlEU)kX{B@WCI9*N7Zums*gI%-LOVd$njDP*@P5$HqZ6gxPy_ia>h?RIh^ z7W34s{gl~XsEy~)tKw3hZUy)2td3aFo_O41g8WpPwnhq&P|Gm0BVOCc^oi`dr;A3I z_1@G0c37lQSbKMt(-X#)gf_$6LTf-pGw`N^scn~S%UG6R=k$()a#=M(SNe0OGwkaV zq#>?8Dg7({XXf02Ir;R0Acs0*%LzE#)Loce3&`67$jD{yes}4Lwp%fr(*#UYcH;Kv zOq9ptktGmONa20e0_M&39Xgy#(!RzJi~DlmhaM28Vl0f zz*OhpZ@#4y_xT};1;IEzFcj@qe-8x5)>3{~(mvaFDAh|sLDWrTmdp9*M=iN{pZHeQ zcu1c30Z?6OGtcKC>$WjY$G-LXg$1~1zR{<_6h6;8ik(-yzy%b>HTQ&zzb`Me$z0Bu z0u_;8q_|6Sh;JC=0)<0(;15XHUyFZZJ&spf1dq1aFKr*a(WXCU1=((Pigwl+`v?JA zoDyUM4~VfvDL94?qE$0i>>AhHZTKO`WCjT%<>PYxqhWL6TMiSz&X++Gv|4H(vHf|| zp3UC4S*=Eo5=)sD4EkycQd%JoPTbW9Vyo+~3F)BMV_z`oMWX|IZxMLDXuW>gn)-2- zFl1s$gyvJiP+1|7pda8Uyr)Tew#$dEtttvedSHcZr@wnWG@NKHo4B>T>auT=yawO; z=lpV~I%`D5vAL5dgl^FC6k~t2C!CHj*)2L-w1XB{&IAS^#$U7TA`-rh)A%`D*R+B% za`|vu*LF78;~3BR4Rl#KEps%MdvLjqZzf{Z53OC2ady+=eb3vW4@XCIaAnPb2BT~G zTPBfC;63=4qux>U{*Qequ^)alb92h5(%X%CA;9hH?aT+t}-TVc4q2^2|E zD~KGWl?awdzXUa{0KC>A@td3cAA(BbB43@s6f}*evl?av(8!6$M7*Hk#(M2-oqxp~ znND!D${Kv1n)Qy@1<7Q1o#7o$&6A|CHTmc;aLFpOsBF_-ST`KUygBi$$tCZQtnY_% z%Ms9gZ?wkFDuyLKOQ$~uD4iTfN*F(vUT^ibRlA56W9kRFq+UUnd)Dx1Muo@*EC!SF zCE1wEQ#7)j1!I3fxEtOceDMF3QPOwxG=d=KNyqnbuNNNvChP3`#g*iM>U*WK<*Piz zuDy2qrpW^hYA|eZFRhpWmBx=$$fCs9mq1zHc;Kx1hE&ROWTW*bC^~Z?EJd}qrtZMa zTS7VN{dOzdY38Kw2_u#kx`1O|hkozN-}Y;&?GnFGy`h`yl`um(eIe3)9*d|1iqq&j z%R7o1qePy%>7m;Bc7&S~q^F92{Gqx-gq~4d62&1pl#eV5fixRV-{~{~<-Y#WMm;Npl7KO-+5UpC(gs)>68X>UIY}9#?op{upgPnsUtwUOrJpe;syT1u|l$zMk zaB1piid3}d7z93lMd9jB&usj3J3~T=p+b!HBjBrV|IiVm=1KmN;=< zmmf#1rBSrE(v0gUYbmF^zTHliKmkND$k)r~%$z4hN?ySp!74fbyQa`!CBNcXZdo^Q zXp<`{B(2}`f{CGHQ~b^%E{a3pbzO2Qcr`OWzBm8=Is6sdQ=`bGV*k#+8t5A z^A>XgMF!M&drY`}9D-e|Mh7{Kig4r%ytAJ!qcLz2f1LD(6-++lfNrPd zgY0fX!hSs02v5xq-rq9vQrLu@gPXLAZ~aMfwo%^rVG$P4)$6J?3w-5#9t$t!J)UcaO|u!SZ`W;GWiJ4P-IJpX(0lFiZPHpPy(#Vh z5t?`xEb0g}`LRcKp=@DI0SY^j;R|))G>5*MFOox@G=ff-(0n^1b@b8o(UaFXy=`2K zYjB)o?*c2Hxz-EasnYi!fH^@5xw*~j75}d0yBQ8vhNp>n4fpcw-F$12f$xtcZYqqB zeMOx_Csny2rDgY!2jUGbGb<@icrE~4CrZhuXCC4ZaV`JEkhf;dZ&utL1889Qv8QGm zt;Q4U$*8Q_p8hLD=)Y_4nyx1K1OR|tT}Jdq5?x%$m>>#c$j72XGGyhi=C-Wg;Hl!Z z`wQtw1DrzjplK5Pg8|jUQL8fL_Ar z5;&gC&pff{$tVFj+vkY!lfy;z_2L)6fdi*ThTw>h6tv?S4BUjQ1~?@<;c){D%Sq5I z%!~y-rBLhfdef6~MX`?9{+Q>Sl2i?G-}+I1GYpi43F2Dyr(aoM5;nEu<`Neu7^d^6 zuswdHYrmnsmwgvClWwG5_+N8yEA9$WVjX&PZpsiZd7Vt@+Y!u$N`BFJn+mF2p~QUK zzqLr#?pi(JabMpn-hBU|>Q9mo2&rDmS41+m%&jv2WpO^UgbA0fK%_3rCm+)J46Ndv z4dhw4UmWd_rHo-{Ftp#o3QJ#g?lmuYn{Wnc^>= zA1LZ>NX?V@un;Kenn@C&YN>Aa+CQ<~{@;E>b+!W?+E;)ysEdLvSd4PFBN%Tv09jsQ z+=4oimWFcMJA$j*P8YEFluVni70%_)}N4>-zxQqa)+WE z(>+(z{hLY8;Dz%#^n)>k6z^^Tja|HpHF|$=NrS?Me1!%x%XwpGPRFkGcI*=w?UVUwHo0LsF^`4|anO{|sD=?+Rnq+r>8 zOBFd^<9MNoPmNZO{ZCda8!v{*i30oXHE#KQUfyb zrn_?K8svLIG>N>(j8_y7ckL8d13ztg-{fMSh|$;*b9j@+oDfZa2W1DE#W&$D;kw_q z$_!11;MQFbhBt%ISC!{|(X9Rxb`cM!LB*T3#V#T(9!m78se@5ML4^qBPc9xj_E($k z3jMBUINyErvzt@pBW>%P9T?D7iIwV^i|&cu zDo5pR-E-PM982kce=zvqUpQ8z_yc%;G+$~8{V@WntL+`(x{y<6xqjcqnKlRVf8JP%r7mgh(vT^UNwrOW*_ES98Vns^t0KqmqwhPcrLw1U5}>*qeXy7TOvNq zdFR=izu0LT)f1lXAdOgB_ka#fL$X;uO#bx*Iq9l&1|&s?G?h@lb(7{8&f@?$`M2?` zr24x+J(`e!pwXom>!SKplM-+wspBXz`rg$)%H08vJUgqVp}75P$!&0=Ili({)m^^g z7sv!O@B5VR_CrU9?NFkPw}F-U2IjYna>+6 zALEK7*45eZaz$01S07>6G_sHqWE+kvS{`ymwBw*vcj_93*}a{wI&|sD9OIzB7C9kW zEfyMQIZsY|Hm)ltKIxJunzzIj zbKms^XgKiQ83a~EMGGE}BIxW`63ajm*+mzxBSw*DlEKq)oB^{w!>qZR5JwQ1A{jxT z{9>7ZL<2 zS<(t_ou7aF(c@21`q1P%hKWIWB!Pg}jw*W!a8fS?=V5$6Ks>Uv7W#+G62m`(z9nh_ z{T_Am;lP0MqBUul_TYC}L8hOo-^CmJU(VQTjRQkTpO(yXDeM&fO0m*-$eS8x+mEtQ zF@xqU{Muvx;Sg{9-$eU@$Ig``x>V%j%Avu~gs7b~9{o@E#3id^r16~ukojOE!O#ODZO1gO=fYt}877N{zM9#e`?$d=J zCdu0HslWIjzCc0jgM{|S1=e#V(oq!SZcU02>}|2dSS-&VKfR-EbCs1>B{b1ra7 zUu)HX0jA{!nbuS#-?G~8EB@(cW8<`ZeVjy3?$QHJ4|{3tfg&tS(rnPwS=u{ArwgsF zUmom*7}~>W#dzV%q${$(n*z86S)v7Nk=38WZnEil$h%(?-hlmQCNq(+--L znSHu)t4M78-#ThV|EcHVqcfscSV;-=ntB}{Ur8(A!Zo@nz71WT+P8W=sp$)yj?$Q| zX>5ndI@nuR70$9NSTL&+>Buydt=@6|f5Hp!0|&G(Qubr8kK{&n8v)nCI&l*0a%e@)4d$s|Y-&4tu{6`z zJyIvSl)mH0-h`XwXf^LjSXN0ETJo(-*p8#sZ(VX&XC1W5^Y02o>`BbQwgp*nXAF3x(9=AoJWYB*3CdSKG^NEJ|pS(+)ed=M`eGtnh+Un_^4lN zJjWp=#Ln9CMU0vYIGi%AGs?UjtXC6D85Y{Mi?mj z0d~W_f05LkiLnu|Z|ueN(gdVzS?i$`7Oh9asiH7|ErbkODha~ya34z@b&7b^4=WQG z^Hga$9}tFx6^-dTDS6VG!`=sS%B{MJ?}3^uyhPR9vMRh=M$N|wGhegw+4ox9u)lA(*lx)zSsi1@1)eCj$-z7t(?5P<0YFh1N# znt16Nllwfovo7i=9{faAlcJlcRtwg$t#SSJ0L3*(K`OPGqu@kL3oE{77ig33s)@w< z0lO4C3t7(4sMrL5MXk|BVZE>(aj$ziBvSUXlecN#Nxb5gJG=C+t11Gep!oyN3{C#K ztA`T)QiM?&3zHn3*1)Sl-PhJrtL)|=7Nk5t$i4(lKf1{(C#LG-Dl05KjER<*v^dsPDgl1#{FUUQl)FWV3ceL^6TvCOh}L$nzsj+^<o25n!*z05GK;xq8-%L;P>VB5#g(H;+89jZ)|#inVg~2H7U@}ucExpJOR*Hz%u{Eg*CNCllmPobG$XzQkVvkjE60TuiQj$ zsvRW}wbf8!Pe2q}s8)0rsjg~=#V2lq*7tjSaQ^TuR(pacJT;FdzOr4DEw!GYPr+$e zUfs0}&LUl=6X&je#DnFM9ex4xhq$*G6lu#rkFu&7oo?o&45WQ$y&y}dv2J8pcdQtN z{XbsgtPBl`J4WqQ+)#TM_J=E!=)m4@BFgo)BYG( zaiI({Y8A(oVG3=U`u~*EZPKib4ig?*kCeGeJ;1A5lHJ}mO>E2rM9#+kvz#t zZR<+%1$VzGH?TLZP2ZYlJ;t1GM_G_xHQlFFnyHC`5{bMORfKMmvvsjKkI44>Tcnei z#a#GYgrqWfKH@^8qe2J!4d&ITPrMZZYy~8_>)*6Zy#kaz*yKeEmgOpU-`uxK1^29y zT1-zIbl&dQ_avBlW7(7gn?ds-*)O+GEYJo{Pr52!sECY5M-YDfD7eEcGM%T_m^0 z*k>hQ7|XF#m=3ilm!5}}TOW;E-#0z&kVXsjSjIOjYTp!uA^CdyNelo(xwDEkHE)p5 z8S6&@jHQMt=cfX2Z|e_Ws^D3G_Rm*_+R8b`*Tp8j)nNYUG1%==7!JcIvO>Yc3|o zIljFdgj2?`X;XF^KtO-6$s)?meN_mZ^-joYdQ8`$8lQ?8Bl)F*mC#aVsv9u~f zg*n)YXp5T$^judc3r=;L22;ft0Ji3^uSMQ4t?gk~83om**$sC9(V|rZ9foa*ZWTe> z(M-j=Bm^a;Wr?Hr$9&6C_k*#*BQh5>B9yb`&ub9KgYxmJVBzAVf99uArNWnfJlunK zvpVX{XZ?%BjLWx!ji!?=Iy(|VUU5E&c3ITEXo-zYvSkk#cX9dJYj_FkPifl^qH+AHDMYf1tAk>%KzV+IR6ZCUtjIvM91vGz5WYcOWm~P=#-hWYc4GNRPtn`e-}ISdZ%&>uaXsOeX2#z zn7%EyjlBR>RJzO{cZ)uQ!jNu5sNGP2zAd>d?9!PF@nv!~dS8I!EA?2PWEddWPuC4v zBRs0$h!|0+AwbDm8}83D%i6)R7NImcgBI`uR1|~kFtn=awOg$BrG&%P=zj26{J~Xy z-_r+S-w)Pu6#SvR0}h0DpuuH&L~mNndh&l`b7|`$#>Uy=IzK=vkQWfG{B#Y(0wJ2_ z@)V~IhU_I7qc8puB7x6!MRFQ8T*rlpp%mfDg3Aj%2lR5*A6ztaBQ|YOcgn|>QSc}| zuUgqO6&U7xidg%VHDT=wxR&O0O-`Nxpbr#2NjEnIqmSs>M+a=QiZ9=OYy(c0!mXD( zM4_bAD@NK%z!ezIy3!+P#G)e)XhdLx-=D)lYaqO?B;b)dNC&l1z_PZgC&DweK zXIBEJLwjmk#fGrhC2Y)(dlv%W#NZ4(e?T0}?QFIx0X}7?s>1a)$wbopl|O9t`j%A@^L`acnTFk#E11?v?2Z9zj&{?Y|RucD=?3Zspm)_gAs zjAERTGg8$b{bq4HU4)LRA~4T^!D!NAypsSnEhzChjMQ)UT@%r45)9t0Xf!oaM7;-c z>BWLn6N;uytr)GPGj&s-&3RsO_!jbTc!@oO167D|6jQS0j-O?YacOr&4!bs%SXO#W zy+0aLD@{;S<%Pl3uyKTRnO0YKMS9?B4U^%x;8J@5i|P}3-4zZ5iUE$4c!KTqo!rxA zv=W7138ZNKym7x68X-qIxro7pz_NtBgH-}mUD@9#x5Y*Kd^hS*AyZSDW{ z!*mI&`6DRS?w*E85mzJI{9`e9Uq#{#>_YLpcu-eHg`MVVxaDaf1}gHd<**7ZT+W~N zup(A=?<761x+ecdX$zd?w{cRF`p74@pU_t8`XSgi5lgn@!?E|{W{)MTF9O9da3PQcLMWRZ}8 zzHI!4@*hMWJ{F8k0#BR%KqiFJu?LNYdMY@~dUw!j7f0gr=og6C?^?;qaA63pXJ$B} zWNtQ{-W3#>FBAM540{s3r8aQ4eeDNA$)m3@k!~vbq-T!e2c6xxfp#R|zs?9sD zo?>Yw0~N}@ak8~sfq$5FIQ=R31PfFHA_n%C`G61B)4WO1?)KV8j>fvi?0$+-hKN2 zmYh0b7Xr=97^p8e5yR(|@S7rjp9YDzl-GK9dl>3eTIX zxk*fYAxxc;uU@Y0LNEFc6$gNpnGUTmejAOkBz=gcS#-g6PHla;5{8d;t9dL3B01&t=mxebLIr5CHgNOKrbJ(fr<$1JQW`kN)ES^w7}1=u zKi}*aK2FjH@#Xi%V}1!N`PwsxS1GySkrO{2rMwOEX4MF@y*dosMAy^n`u>&Cwwec9 zb+S}R9~GlrdzQktU!nO?)j#@ockM&km}2OVVy5xe^d;-MT+J)$$zAjaR^d!7k9E4N zg5pIlBaih|h&s}ot1W`*Z~Gows}Xx0UBjPXMxb@8NWi`iiU@}Od)C^ON?2n}$aZFK zYqHoQS{q&sAo#Fs)8==jvkA`qCh-RtLiWK`Mewro%$#L1v9_vC{BOT?EeU9So*1dj zpP7>~8lCLa*udP1V?kH+w!yq-G#-f)K*XO`8=#aGu!+Iv1 zjiW&OjK~gurGA^0%PvhGKNU_+-#sw?{E;A43Va)C((is$x%2Bnpsw7u<$rgWL5}s) zyBb0A<21v(9hk-xu*=Ly`ncVEgNOD?S))mir3Fmrly$z{=C2fyCBmy7($gfeTJ1+| zvHz6F1%gC%Zv%Mi-z(!&84E~7PJKG!+3F8{wQ%oQkx2QYm}U`QELFst9e-%S-L=P} zg&_z(!aPWI>Z<YbPfW_KoiY}}f5vUgVHd>TA)0#J_Eo7ulI6=S9xO6y^sk4o*^|c5n znJ~*Y%b#xkS3ILfZv3hzb3_i}dO*&Xs8lH5uMv`x3l8TJS4Jr+nn(U`4Zw&ZFRA1N zh2v03*X}8syg>*4NT17*DJHg>E}zB#&YI#nGMip&KO_^eGDLv3M}Rf28X}9!5Xg%- z>X?CBF8&?z(6T;0pbVtk*};NE=KR+3VjJXf8*R(higgeKe7%kzRM1tm)%)_e`$p9; zO`!Z$lQM=4|L*PmuC*Qjy>NoYLZ7@4IhrgKQqrm(=ecRk9>?%BTon#+Gn4e2W7k-;sDY2|w&$O4{jjMh zprj;+jFcB_tlI8jrm%xp1@Eg}*xnzv%v%B3=ImWCn#*dazUM$FASkymgVJWq8`D!c z9xMbIyxq!DsJ3E%sG_;V_keOPC>Tl8a4e~_(#aZ7u~wAbc|PA1-+FdCkNM3>-5%?0 z1_?XnKR8ZT_=hxX2ovxWxO`W4zeZK?xyzfH(|=^F!l$obO7Fqk(WAbY)__d*$}z8K zu_$%2o7QMNu@Z+p&^uXC#;L24NimDjOkh`4sE8`=qJ~om=QgI-4uFe&?rh%3v??-F zycpOL6C75fV@6gl$wWX~P+&UVhKR~uTeuDR)Fxf1TLxWZV`R4X3k^Nt_Rr}uN^%eP z?HvcwG8rVIN+?t4_Z`IW7x})-6gS|p!c3F{#?JCXgojgxMB27ah4au za6N-7gHRs%!Q>h&aY9{(FifIsYAzl$!sH05;wI52>C;P}FD9KgPVDh%-h`FiWyL%B zLDUfeNt(uOuO-{GJWwQ5J!ZD@Et`m5QwtCZrf%H2c2qh&FFr*gvAxi`$DB&AVN<<- z_`&);baFBwk`h_=q*S8Wg!^-0KX{3|KoqKMmm# z#gU8Xm0+S`U9vky-EaIi<(W#IzE=L^tczQ2 zi;>t7YeNyq*M7NqEY8?-`TYZ+f2Y6V zVYXFbTq!#H6d}z}Fm|f|hCM04ctg{0`D~w)v;MW8RIXJ)=wRaZV}IJIXmPjHCYLki zwt~j>3TB{Bdn>{oe!_aoZ26n*Hn zJ6RryYyjkeqwVvA+IGq=CctaZk*M_lY?~p5ycuMy6;mLnvdz3yV;)Y9{|YOiy~-M* z00$X6QGTHLvVQ(}2OGeAFH4!uRkaI+$e1kPhvwx>u8e+06eaF01fbAHky?Il5gFJ) zXF+(iHBgxSrjmS0=(e;^g=bDT?rrdXLruIs8*Bbu6@0Hy^Mx3`_u)6hl@&2>S;@R* z&0W_WidS!5!o$)l=bQ9q>cMBtJ>j7?T+s@SX{AsOh{gO*Q2V)B zl=ln=-YzIRf=;MidKs~C=BhpTWvO}yBbRZS5-HcXt}4aEFo>CHvZxIMITp~pwOIKa%5M)xstPwrKIMw)Fq z>ztN0J&E2a_Gdh9S9e6j#56My>G{XDeH4Udh3s_35;INfjOrS_Dw-_QJ$yjh0~WJs zanBy687>f|frV$YIer^=X518ZkE(EZV!Q);IZYJXp6V{<`kTa!LTzvw#(-YY@!~)3 z|Ir%Z`LdVgvFWu^%sov}4}S0F?$MqcR(njjQ-=Po0i-vH3UqoNA-2o@+e3kN)n&eS zC>O&T_a?cZ#@GR%QKhx~)aA0&z4>erNnD+gV-Rh6x$Oie)AQ*it3-awv&o4VYk%%l(cUMKI1~yQUj0fJGVHZ(5rc;e zBwdX~_#G<_`PEO_5o)a@Qjzx7T1;1NFb1B4CvdpCh0t zi%+%JB()-sOVy$xhgj4902OiS-rAASg8kjwSo`dR7X7y3^j8H$Uwt`P9vJnih8~M=zyWlFVq`GU#ZgSALbYYk z7SYfBniQ7j*A(_4>PdkfF_hiY**f}wJz+riSZ8eUXQSIP8ZVC6#|1c*&_O(q4uTF` zeCYjC0=400A3+^e?had%gCqcDdhr%6yw@A8^h8IV;QmGkXA0Wzqu_OElQ}LMgtsat zPxa)17YFjTgDTpDz32fe)j3TicS7b}{S3j(3QjBQCBK}No|@6{7a~aQKgCFX=vv`K zVX-?3BHl16F27|MZrWy-YqAN|GrD86Bi9CsEFZ^nv&=lmAO8on^scl~p8MWFjoNB* z-K8F+2Il2}L{yKNY_=->ZWDb;0!)coQWyHj zAYVW`zBXQgBT=0PsC!iM_>Og3ibi*aAx_=8J&pY;-6e&s*aDNa_rHC4B~ho`p69}V zwEU=Eb3K6pWS#X2dBoCttWFp1$X=MU#c=A4PSaCMHqcibxrA43%SR{qF9Vpm8GoJMb5^P zCukQN&0qu&N3Z{-izr+lN-G=9<6ZOApL(p6F{>)6FhT`H5`+;@mikGldk~%VwS&YA zblVk|r-=5n@uv@F{8P8g@w58oqSdfqbUSLxXHWC06e|d?Jb*AzS zO3i_XVYb*F=N0AH<)qzso|!DGkbd~NVv-y4Eh4xOp`&1KY}$bXe`;Jg_)@Q9mjv%6*M&6~0tYb7gD5FF3PVM~Dc%lj~#3(;db>yMgC8q+nge{2Q2h49)A-jgWgGloD}*S=nL zihdaXe437qKla^%F3O0vD)|+aCS_cE4r6Qi2of}(PgIo^J6$!9uQFjXCP?`*dM*P^eHl&Hcd_MXo|KGu{3;7L})R znX)&Z<=Rh0gbP1CH!&$pC=& z=HS{qPQ)CF4)ANcy#!Ic+kWhFD2I(YDsVt9MPqrsYCxEMu68E*P~^~P3LAEU@|XW7 z{?8*15)FQHJE=A#j2>-d7yKq1burinrJamt0gewm;FkK}bZkd(RZVw0{=3Z0tumA8 zu_z3j?~6+utiNVjw>p*bWr%=~jMrc;D2y}sG_M9cbD|z^#(EUQEC_qv_llMnm(SYS zFya04RFqf6NDNXZiOVdeli?q_p2I`4oTb;_M2>Rb%db)`r@`oJN#G4|Ict74Q7sUy z+jK>EM*_LBYcI`(Crq+srG2GK+ccWJS~5}8Lo%)2bXp_w3KLN_7a&c#vM;_{Dw<3l z<-4ymn^#8Cz|llH=TX7NbE^xJg9`BL?{Cq(<*K7rk@sjUT`um?DC+-_NM8356G$MV zI%8sBcch!t#(O|4PND@+MIPBkBCah6)!MS%XyGR4xy9)M&0|$xTmu~ zg1P2oL5hhx26*NKf`)aPlyf0K<~}u^45eI7KZL14b*)-pE#0UyL`tD!19bIp1&?b| zMWmI#KWSOix44Sh(+8#BGWmBX#nd!H#}=zVN2Owh>Xj9Tx>yhl_-Z#Q@oGlmxVBw$ z)4IN_jKRyr80Rf4n~sdS8fq0yo=+I2vfFyixue**RONn%&+n7nD5P=S9AY4C4j5Qd zMytJ;{bVZj0LQ3@&>M^3`lnHcjoX)xA4DIQmFr@O^Lozz4@^L_zXt%&9!d^%n`&Wg zuvM)G?;o_dkEM4Rc_mu7fOcjk&tu^dd}Q;j-ZhSHAeb-`OYbCnjXzhLjs;Bq+B?P6 z?~FgnXUf+mt+_&1d-AK4(T8xII?%rZ>C=^oc-Q`yWF?;+0r=sfvMyod;9Ppo;&_Mk z(>NBm`H<_ozUCrCU$W$WNPfTTaT8oSW@vQT0Cf8&^df?95t==A5|cPoLeqC#6%_ku4eWom_G739I?2FdCARqb>Wivp${_AS6; zBtv&idcTCMEaIeUrp&T#;w5#Jpi66J*Il-Sfa{;0Z}KS$MUd=N9E z%GohKUaLtqCNlHb@`EAqhZ*`TNKDEf?EOgljmA`XyS;A^ji`saq=8!PmiJ6PY(1*z+fVr`S+$6`F3w7nR zB=lOCf5)`j+qd@ZqnMN^a&Fk)=aV@Op7H-^C>S_u<5JYwUyOFXnL_AQ<}8A5yvEsn zXkV)tauTaCj<;#({JynToLQE&JxX%db`GKRlgmR13N9dAOap>!xgjoz&FhmeqKn}~tv=BYJvW(eoJbL~bozdaf z4WCbG<3FIV^{j{potgEUo+TJuB(cVpgyW*0`h?QpV-Rdn%R9luNzzre!BInG2+nYQ zJK=-7qkQYlu;Z+c2;l{9&3RYt6)P}sv-AEjE!m9-3gB3m`rZK&{C%9lhyW zPEO}reoo}G5w=J3qa^)aRz-YWW#C{;QZxqugYPZXHw-Me(^o>N}GFDYqW z29Dp=p`#v43wJE?J}YNWRC9BLz(XY($6U(ju-vVWYwg#~=6)Agx1&_$tUadd1f&qi z^OW0njVZ(IR5l0X?`5mSPbrM2j!5DKVl}*V<+7c<^EL2^DKj9JU6%5?>vXH@P)sx{ zeHs5}@_ylm1!+GvElbFv3=s~8dLlVX!)ef+>`a~j@4Qnwhzs8*JDzDCvdYs<Y=Q7^-rL7zV@&H9ew0Wb^SRl!`shm>lB>!~>OK+ev9;NS=&KD^ zmnEZPe|sz=BR7YN)GVbggrpq+c{W`wTU6zsK7XR0lXQjxqw&yalnkhYI9meJ*xJ_R zMPf&T@`PF1kNA+`=e^-^=GN6diH+@d2A&RQGboMjIAX0#uayt|Eo{M6H;?xvUKhP? z)stOmIBus$4igvkL!!2dq;3eAqax5?5n4$kS(;xoLvJgUiZ-FQ^tf~A&<~zq_?IV7 z?aaUwvV(TYA{tJkyswW|wq3uG)$OetAp2rb*=7Zm?FTFlJ^H)g70*t4#{8VBHkz0R zZxdtB9mm}1+fRr3Mt(_J~bQvN}y*%$(HfSzue1LpG2YWD?gNDujYP;J5R+)1ls&-%vlzli~ zrU)>j)e$*zlS3Wh^w0{LUO>wBgVpjZZ-b&#u36 zr8;?-sp8{K|6w(Iex(4C3WifmCl9$#8|W9p5l4uXGoSa}DNDvD&XiBsd{n5K!Y;Tc z8RKg>#+#=in)N6+(v|lTWB-ltuHe?$O*BmiAryVt%^q*yebyv|Ky8drIpr3VW3a)l zxfU`$(WgWV!#iA!JMyjw{a++}H6W(Dl2mR4IiJXeZymFCDikEn#Z}q?Mo{@sNDd3e zYNHEjSh211Hxv@3)TN9PbMx8!Cm%=q8r|J9`%!dx1@`tBGF9V&TRkRP<9LIdPp^=Ml4^@h|l2c{d2uoH1V9iIugzd z>M?J-0@kWUrJX6yGNZY6Cj~&YS5q2Wjn?`Ry5D16Jxq6KODxhDW72j2&zZOO2x?^9&su3 zoe_)qKj)hX!|j3oUDsU8xSc>l!N04LiQSDtLjAlNg( zCfp=#a8hw8WEIp{w|{#@`%_wxSPPV5*jOP}X-`J~-Gmqr5Eg5W(h!m z06*E(72&(qa9U7Z6Ky)M$^~~1+9UvF4*8PjHk?VJfsAf9DGIRzQlfNN;LsrtqLY$A z*O6pz5Ad31n$>AM`scL}Fyos0opRV~>^&%ub^R`Cw#SXt>}Qn$&zVl4?CX2nXe0~6 zhln|wLgK=KrE9fhg$w(VmOLuT!o>WcmcCP-5UOp*>vz`xoYT6!D z@NLrrXMXyiPNMqh+mSgcNvxR6Kw+Q>;7T}Tp{ND;l9hswf@yT`dvdnBa$2U>^9fws zLE){Z6fpCpoz@16?PSTp+gV^{ooFaWj_d5j2KXzCgR@uht}Y3{+-U?RnzQ8}Bl4CS zQCScez=;%gXgW9;A1OBb-;`xi7U|>`HqV>kGC%&7pux>ND^%kD7uIbfX*g;TWbD)C z=&&`IVwYVD=F|7pCmQiG*5b>Sm*AjL3B_+RFAvxW=){g(CX~S!^uEx)U5t<}bt~(W z)wfvN?X>@z*Q6Cja33Avv%Ztt&!>Mu50hj{Aod~bxo=;-#eicikg|2v@(ibkCa5|% z$&vWpf!}fc-nu+>hoL3OoE1HbqvS7%Cjf5adaKv&ic%@^Br^MmC}d4u^rG3sr1@p# zX4MXsd}WL;vpDb87UNvNTM0ZBFK>dWR13B~AIoN#!o}qak~D z-kur6!t(YpUs-T3D&9zD9_q4ikP}1Ld+E8@zB4t#;sfHf#-6N)dq*G3dn5UbH1M0_ zPiJ*7_y>9!mrJWsZ%ClB$6N?QgNFZc4AE@O4&T>r0iv{4+>|=RJa9+;{ZQwb;{@Tv z9bgVo=SU!=mMrslK&_ZbY=-#!viPMZi|KH=Wd+nEyNeAg!X8hn(Q27YYuqCNp$~V7 zv>VaD3LT2|6tGBFpsLDUOGfHa7_20w`vIvrM?A(p z`hCwz3r@uaA-)T-k-k^Jx$PlAsz0_oH_u2cumCco*w0O7Ke0Wj&jVhCjK6D9@{&ke z_T65_(6r}UtSApPaEhIBc_VZL$C92OnnIM(j)9eI#rgf8yJs%fNC*snK`FNbNj}Eq zaq4dMT@n=!_&cu71yJe~4|PZ{O=?V$n7FY~(dhPj&r4z@LQrtF6vliyZg1+qx6YnA z_n(<>U{S%AN-J|zqVfJLB&a$_l2U^p3!&lTmvXkLQ^TVgQ-etIQ11}7H(HmCWV_Cu zh&0CU?y6q0rbQssBJ!S_1PoIFWS(+Ko8r9`W4bhx60+Ll7 zjB@oaz4do-DAN@LN;E9r^=FXs!mz0@ss}jcERXg}lRg#Q(3}xJ!7d2`Q0{|0*}F@~ zX4dl>*<^pp%VY0?7?^15j3&#mq)B&e144Zn@Pz=c_4eO_iw5=SGG}Bcb`*&BkD9x2 zZu70iRQR#!fde3%eYZsbJHes)JxS$V{!B-?x+l-n%B}u`5fVtw1X(g|_o>WsiI@&o zCQlrx6_>#RC6fV5cYX5=?;ohv%z=nr&fY{&D?34gR&oO*4>*-%6K%_uY3CGinlh+u zmw{b3^BS5OzZBOS*FA5#@eqs&`s!Gv3=VAMGWh`O(=iR}?g~wG<;&X0a*j*;fy8u^ zWy`YaKaQk5*=q}zFzTaz9$1lg57B0@Sd0!y^XX10$)3Ha z1ofh1Mf{d?Jme|-xpF=U8$E9m4EO-C{)ncJGHZ5(qHZQ%RB@n2=u#*6Q=ua}RHKsh zACZ}KJVQaXmGZT}Exwvlhy-5-d7IHh<%GS{yI*r}_6kT9ji6C7Il#e+Ca|_jGUw{q zt)yhtxCT1 z)YL3H6SOOUha=1rVe1&e3czNwi{P=IM-QX2Dl$MinV`xzYcQ3v=)1B?9rQ?HAx0nT z5$CYl>#dJ~x?bdaS=2^Kvj}tKxTJQ`J8MLoE~{ZHII{O`zY}-#(dfSPPiRPzS#B}E zaHiQ}Eh&n7*!8yX3Qns5_W!2_ET*Z+wKiSwb?^Agr7#|PWn*!PJr0?DlK3p7VQ^)P zx5>Y&AaK-WaJ(HShM~!W9)&EuLl1Hwx?WEl)B7|ic-kn&SHy1Eo_Pe_Q(?l6^37J3 zXONrJTF#+9#hDJ5t@;*jqV#V3_l|}i$xxV~sYyHcOd44Gg+(UY9E@U|)MkA2^}j!4 zdcZik`maH=gR1%h{U8>~htS8aF(7AV8cqU=iOZLTX%rfWN|ez5KRNRDio=qMNDnX3sxbWsNMu{-bWe{GbIe#_d0hjaq#Ii1K ztC>8)ZUMQ2`ASLoH6-Gl_7d$-d7!F&Ql>2znO`zRC`rg=(a^6^$K2FanL#*&(vU() z=AJBl;nU23k&3M3o(mF5i-rx>&)z8HS8gZ|?586J)F<6$2_ zhB2BYtUO@Ew_2}t=4R86D_;TZw*!#-b475M-aNuikfUs5A(}Yx^=q>zjJYs`}&@z{d78>MJ!T<1go^RF_4xf zf`#=N;ODIvrT9tjTxq%$XHkFtJbhK*OjO}5?&PPcBV!&CuV$fC5^NLfkrQ0C zb_z#cP`y=}_+V^vX0XuPvlFv08}q(qRI*LlVb7B;KL|-qjJ`ILUymmpy)EU)Q;o}w zi${oM;~Yk!J*Sm5Wol=73Ux#BFw{uw;FFnKFlZXcAd&H9kjM_)Exj+z`z4`1SdFfN zVo^4ToCeZQ&zTOuokN22Pz*cIMAW7dX5tks(y?H(U-(xU6lyMvrK46|5RSNH5GyfmFLe?vITwDsSL(ZbvYPb*sSra>|rs*3X1hK5FWQw{H{221Kq}LGymbf z1cG>yjSEk|xGg@6<9ct#!}=IlCZ zOsD3G(i{jKxaU>owV|XO;`)1y9l>?crpa4(AP*5)icD7G=ifcSvUv|gBdbZa( z5)D2RZP+X{$l(2=inUUd1|GqP_syet&*dwPBobmTYEsT2cS``+8u@V&$f$Z%+Hk<+$;sW-i&s?&!wq^q!1k4 z`0GUX#S}+Gi48o{$3hap6|Y8WQ=X{CELnA7 zYS;S&eiF`uvh`_+{nRD){mZ2#!|7uek77>*U{jF%%swFoVhm*|KQpUQ5I{UhsVmAU zv){xv`?fH~2%xvcq?{A0)ZbJUd^zKx!_p}PL}}vf{;_D(D!7lngxl(W-j1Ngc&gLd z4@j=i=W)0BA)cK48POW0JxXpsYijGr;0+2ZP@GLAj-iRSy!;9Tx#+ zF=D7Km!RG;e2C}v(Y^_#8h>}*R6siaw)1~;+=>q*CO1m%SF}u2m$^Mk-9XJU-)`YH*VhW@$Ju)4hF zWk6_zDO^sNF4S+S9FN#g6dy-nE_KrHWQPzZwv5w;D_7rfg#Hnpo(#T_O93@3@mCuk z#Q&{uOOv>&NbeR6O3x2_(1CD zQvYzaqq~&1Etx2vF%#Y8GyjDo9&d`yXaE(2+IG<+koWR*ec_{~zVPrlAS4xJa8-XtG%E{4<+;KdB1WQ*mx=&#hghzW_q`!u| zXKENd6~BE2Z1)9l7lnTU5+UDB65MZs8FX(qC3(ARe;{zl225*0kz;yPJmAGzyYCRD zBNP7u*>A0OCeXz?9&n1*+|GB31H|xy`6cY_h?Dxv7PQxOes%lIzglt@kp_`21@80? zE5IU;jL)c?w9~8jEyIr#hD2kI%_~yQ_x&Siz=kRm-)e)v1DZk`sn1onN7>Dd38S2B zzeCR_!pCQtqFy(m1n`>~2vN4#`?y<%=IjfT2q>jQ0&qP3dNuf%@8K8Bz6?oPb zhdtDm(IPC<5^xtk$RW0Fvzq@_*z9#zF{Z6WGP>?`UiuTo_<>CC4lOYgri^{O(tOLH z)(_2!7MBmB@Q1zacImseM40kmC(;-IZ{%qjWXB0z(%VR_bldfhcyA|>>!EWmfSCLx#e4@+L z(N1vKza40pxZE&u5Z7JG<27{ootI)BJ$|+l+i_2}gnMzvi)6gjEI#7Eg`r+a7HeLx zt)Qep(PJxRC$;{SzUSXv(=dB zu9_b$7Upnsta-nF`B?ozvLq$9$ZK1y6I3oA~-1w7hf zq*r|Iq;h)%O@CBwi0h#86MWh$_gqD>WO4DGl^)M4%K212!f3H(<0O@fsN|q~tKJ}! zZMDP3L<%QazA1uulh3@O&}%8_0F8yX3;>;=6V7Yzq4{n0ES~9y^_U37qNZ`9zZ5s=ftkX?;!wB?ky;TqZoSEv zKN>4L?+~lNq|)N+6taF%$_YY5A6Sw(Mx@FKgNd zEm^!eHf16VP`8A@G0=;={vOn)2@_dFXJP%gR*DbqbD2~P@mjp~(VN(1olt1prf%)A z=2sY!i5()^o;hwQGvwn4N$7|qQwhZ3y+V;B`q{Nr>Xw^OO#>So2F9N~OerrV3(47e z&44a4=DHle@T5tacGi|7D$v?2rhgA{K9}vNCk1vRE;#Le&;P2@C>h{H3Po`Fi}RWj zF%Y3wM}TweHJbdm!!L}bx}Bm-Smw&dwf(zkN6RH=j%on-yXOc{<784#sqlod@2PS_ z*%UtEhO*tR$aev2?2SsJBzP6d8)jHj4b#@Zd;18LQFRBBHdfw2$ouWF zEM!I{l^cS@1{ChC5GHz;57H-&z8-P%s@ zQ4ah;Q>(Jya`%I5Nate$a=txdc^nw`2sa-IOHn(pV;Nw=K;<7-iINjqU?S~Zme4#X zAWV#78a`8>F(KHQx19l~QqBV8VH?v8@kr7W800Sc9tHW8PjDs@c`%1&xpL8PleQSR z2tz9>dWWl;etNXgFdqT{b#2k6!y%#*e4yBx^)(_*0kFbyc5cZBq+i#Q`c1IdftL}o zsGj!@dMc~Uj>8GZu~h?Yd#&MnBHBWVVm)j8*L1FMG^w#}CC6JV@=W-~3*cW-%Qnwo zSuj%`5&(8w9s_qvx6&kyamj4mT9_A*KWF!%_QG=&20jCfwA!)uQHFWS+sm3>N(9PK z*&+y?UbZ&(%I?@eh#$p;r0YN0I@v&LXs2+aASPI$`sP2D$0y)kKpF`hk8vcFa77Ey+44vFR@dYpa93g*f z1U`14Xa0vraGpakJcHcq-OBCsP;@Xw=SIpttxU{r30=oLFU6Tassq>|1n#z|yaFPI7&6=3OC1q=Mg zd^pp^u^^os!X}?lgeK`P7!p$m25XF5nf!5cH20}*1}28L@KRqb8z;yTSOfk2s|LZX z>Z;z1V?mz&Hx>#~I(xLZSzFh7DfeA8M|wr>V`RJGEmWH(OvD%Iv0 zl6hqoscSZFhjG^-r+5SOmBPr4Ydfl2xf>D4XlI_$-y~L?WXn`NFw49l6YCKz(EeoH z($lEJS+`X;T!=hB0LN%x4l{_UD&ZmUv>p2_18^YhEPXcDB%>xMwK~nYu);H{A}7#U zY_1eQ9S&rpI`iPQU;oRX`%Ta&G*h?GqU3B#yxD}T0~3xACmK!%79;W)SOf3nZI3ZX z5}RzuAJAnu%mujj&Q6boqcx0;ROk_ID=)c;E%B|p8gBI>h|P-TeU{^S+!YPZ?=E!J zM&|{=Ftq`Xl|&L_s2e&+epy{!7)dCC zp?@Y)7>Sqjg*E_)3-;7=*${%6hcD>we6g4+ib#!ng~PbWiJ;@>ZP2?}Nzsb6{?fm~ zThLh$)|>tUf}bnqcGo_$Ji-Bh;*WHN5Qi+}y4PtMROl^-Ht}8CUrf!_Z_ET;4HOQ( zql)%1ZuE;TId!saI05IuZ=y1^zZeM-ZnPBA)72`2-*2_>$8;eF$+e+Hl1XS-^9$Z1 z7M-)jvYj&=>;XLXzIsZNB_~-AcZ6)SA zW<1olJ&7NN_W8o`w*_dN7Yb((cOa@fkm4AYA6)3IIB{7C)b8wA<4TaAIX>%2d6kcE zREZP6&A{ZVgkH5hz)mHy)OTlHxFCUp21{$B92IBf$d~A2V_lfK4~-}VEi1*N<7gwY zXL14*&-o8ez}Zio4vUOW_T#G}pR%&#N`PTxcivZqx@$6Y{H{gMVXJJZ5`q7?3BeuH za(N24e>|Jtawz$eTwBI>=U+oG*AL1W?)+(TskA+BV9SpoO1-b3}zJj0i9Xq-Vk#jI0Y_j-l^JK^_Epq#} zEKaUNB1>T#OMIlrCzTOeUqU|*488-Tr}NZGBg^)!k8$fHgPLVrnJN@&44WDSArqq6 zvbK*)>q+lnFN;dykz0H3h388EVJI7YjFXT83%)%lL5fX?BC-!K>o#mDzCTFu%*^Cl z#>0esIJ-JGWsIIy@?G0`kzh?C!szl0v;S>91AnjYfw|eb{S?{RV zx?#yi=y)eb*hu2IPpoGro_V{3uW${(Uf#(OKl7hYp0oVsp5&E9@FJ)E`J_=2fj=yl$=4lSZ{y z-H+W$`kQx*8y2V_;dpPksS}{ABRJidg|#>ew1U}079Esqjub#pYKoV%w7^NDv#?W_HP+G|N0@V!vc`o0MR_Gd-a?ieoFgT>LEPhf0KEwZ2&-X< zkg=U$ytz0w*>Bw^8wJdfoETovPinTi^P;84u0biLUeM=Sr2b>T4XjngMXR1z;NzhO z&KFR4T`=V*;u~Y^B3bn-AMg}xT94Jy*-TiWiCe^IdTZVBQHcnRRF}Aivx=nZC+ZCg z+QtM{=A$6TCDQe#XVoiRVH2_1r7*f!+a!(djqnxLi)-Vs;%$PKz%mgbR>|=J@Otf@$P4Z0c`Jn=oP7@X z*c&j!YUp@|7G#7q(aYL;xpU06G!~gW2zraypVRyP?sU;c0rd^j-e=LO6z;rL_8wD; zZ;4?FF`P5;-?W3K=YgENE>`{cS2@;cB9!i`y94AQZO@pG3pgS*q`>Vw`%8Au4UiZfk;2(>bQ;^ zn}9VQT8r%7YbpVQih3DvJRs&zaC0+-*~MHEp1MO1vU;uKXN+TB72KpQF3|&$VyrV! zIZIMp6_bOJf20Io7mo8*E1+gEv~wZ`20s2oY@rrQ($_GMn9;s=1Kf);drIXLu3q$f zwon9^v9(YDK_YQpt1Hy%46a=*vQEAt>CiJ0ULaphi;@28&EjX7x%)^2M}Id=xEOaE zyt}B7Ij`SdgDnnwcoRrMZlfOgyUMu?%?m{^^%1&C?ick8N1_U7kWfCL%>bgAj(rpa z{L!eZ5Z^%TxiQ~1QQXq{5hxKVVB)cPL8c)SiT66 z^a?{Z21oEim!w&N!FBjOAOL3dC94EY zN}hP1G+XT8OzD5pzMl|gqv%jL5$Q917KxP-Bs;l5#fpNhq&;IEr>@q6g^JmLe^@u{-0di+56|5IP!6>Kg<ZG*KOLbIe@;n7&``HnI>SDXWpzA%Us(-ch{vfcOW0SuSm?gUdn~TfL!>&g@@DQE{FJcTKPC zmZW<4f}HEP3fVsv76zr(%eR z0$jz{8SUDLlk@qY;{K9~&H9e+0Kf39zplN8gPCc_TdDR~#c2Z<_^O#r%bAhlNeS84&ruYkn^s$)x~M!;F93L5%{RMKIhX zLHBJ#bJYgdrxrv3UJUkSjjQqXuagccN)qGb9++qg)&*$dD?A0CSP*ZYg&3Euge5Dr z)SEvKm8yA&K9zy6t6L8FrArKrttT6ROx}X|x1GmrAN1{}GC=9AU>rYpgnav^?J`Aj-0-dhNb$sA+?7S1xH&U|&!aC>}1Mz%OGMtp`i7%ljG4N6cM)()}d6 zl3Qf8Ig(P#zEWtF&lV7NCAch5uOy8`=KpgsletWA+8Lk->26z8Ybz5T4*) zyRtPNyTijz5TDJj=bnjfIrLt2eH`1c2d;-WW_Ts2o zlIt%LJ*!@HKcG==ym1uEDcF#Lh#u`#HQm{G)$-yIJHqPbC+bw$K4|fwRfn52Y!)O~ zS5CDZNm%qzB^h_cgQ#c>!ZXSl9<&ln(GI z0T}1J|yH3`&SBh z&I`1put(Cbj?~n+C)|UzRf-L|?&Nm<6bPECH1U>UlQzhYb$d&91;&AkAwmh z46~1y5kXhnIO^i&g6mLnnM9m)L;B^hCX?KXX{{?5r6LwIzHeTTcPVg89I>?juqjk^ z%;RIYeV|F_zU9~^un&H-lg8pXje0S~EQIyj1gVeO=l{aqpJ8h**Bl{GnQP;mAvR^G z+lJHke~)U?m=`fMl^Y57C9{n=n*or$D2l9ZVOR?=b?5KxRfbEFH1CNa3BUGS%!wAYdBj-?nG{1&YeM|^LMAq;xPJ; z9WF+E5CH-l$<%4(m)t9g0kF_KXO52sMTQZ##$MU>a#)*)7~1QWOHQrOmH^(pGYf;P zW7x28IX#uTZDxCbvXO?{t&ZEiCnB8tnnsqA%KqP!fZVu+6Qf747iw$`eKU(8W}fV# z;HoI|`w{HL1K+w$V@j#?ksD4UB={u!#=wyGaVXVanR{&l_+%{pw&u{;yw`6Buv0aS zIwy^D@o-sdTSBtW9-rT)LBa%&Y7-TMF6c_s=ffxKaqWFi5u@WeB)O6%eaZBkMyy4w zh!J5B+_B|6H4dU+xiQU3u;gV{xWM0}R_ZMj|Ig`{Uzg+@9SJ$yjn|-F$#vINuKX7( znJ`JV)BpE2-5a%?wmLn9jW@+DXT8XoIk5CooytU36@qNqOiU%2Q0%w$pyd}e_=jBk z(SMCkd1LwE`zoW~lIPC~>$(6!4W0G_Nat^x*Q+Wq3P-^jkiyro)CO$Q8WBTA17zqr z_2Xfl&97uouywm&b%{H2kyYxm6Ur^((PFHMSEM>& zBFwFYV0GF{4(Y@~qZm2{?jY?X^RR=7;!g1tAwkMX1w>NhE*oqtbp~`+fSpk?&hmU0 zFU_8se+#OzBCiiCv4~H0v+B>9gT&FEEC>-~-JqMZW%uQjbiygGi{UH`>fv5_NAeMY_a! z6RB99>aGp)fTk-EhJBI*}p~))jfwl9BBZIo75KCTAa8-y)SAu%njpV z^nv3Ss&ws^9r%~H$@~Inw~?Wkli54zkHYt`R|=N3ESMfUeWeeh>}*t&nljgVfMRf+ ze*9M@TVp?gu0)jrvo(tn`S(7Z@+ZB$cMKkkLwa5{8GCxC!}FeNWkvK-FrTm6K2jns zb@W;qV@crU)ascEj8f|CcYfV2*wtx|?z@ZJMKPI}LeL#>>C#rM(6m0};oR8Un zi~V1i-(cX{onzATVV|6FLboml=Pb2TbaLxB|Cg$MM0Qw9hWqkts6N2KDKSA3^ZxI4 zomg&tvU?Ac9Jk2KMa@nrrSxOQF=APv(3b>Pis7sKi;UbA0v<|9P)uLNa6W0f&EVETuhvl*bdTy;Rvcs(^eCJF~#98#iM((u24IkG9~ zk`LH#g1*bUJQy*$@9D6lc$Q=LC|hIBLPpY*+gU-mz2K0>b@OoJc-c58c^vF+b35H4 zSD~fpnuv8!U{-7Yx|qX!yR3pMx=Iy^gy}VUokkJHCE|;luM-AjgHK*${IJw}K=nt) zuQ&MEE4p;yjO5oZLIQR%-l?C@CqMzg&B+0`1uoYgcL)wMV4ORPnd0<*0W-)v6h>Udms3(~iEZ;@&#N#&WA8ehf&?1_dwcM;D$J@d$}V{nV1J=M z%dao(3&F|g651Plpz{)u3w%!{&}Sw-{6g}UG`#{bxhf6{V#goahUEQ{=TVdFm|o!*6q=38%12oVAN?C$Ap zh+E-x?bD-?LG))+SLDe^@=9bLeF2325@+RZQ{$a+FD?di#y|qme(J6}?PiFS=^;wD z!!Fc>_D%2D{FKL1P_|%LWU|LeCb(x3$^GKXT!MYIj|nHd zl5DM;L$*pyVn{x}hOHxLlKZVsCqQJC=CCs7g>^iwapQHkB(veHmCp?M`zY;M@`;<$ z#Onkql#1u)UJdq)+*0dMwvPN&^R3(tK>;UL$hatNghfV#bWCv~x3seLa0mLlk1Jqh zA1N-Q!%EgAGB^~a%12NFW27;(-FD0S16~}<#wPfCP;Ga?o0N@mH)gk9S-ru5+k6GI zyiC6}gKA6(;Sn4_7!i`9d?Aj3AYn5C%dXook-k~+KYOoJ1N&WJk#$18k)VLRN9qvK z__S#G5Ge7;#;fvAYtS05g21M`>h5J;78QI0@fT&}^gbP`3}vhepQvUZF65s4Bk&Az zj}tJLGk0a5COHm)XDGsF2%NoRccx*tEE?OkZQHhO+qOG+V%uiNw$*Xcv2Ap$llP3Z z&X>K%+IyVea9?BAJ*#F_70@V-s3_{g@pa>>wv^zZXs49hKf=WdEIvy#bgu_^7+!zS zKuI9Y9_TxReYEGxuXkS_eQQQSw{&iF(mB{?trus+YnWwkdsu}EKo=1G!vJ! z*9yik)s4fQXN$cqy{IZJtbb1`$$1!FTPm(|#wO-@(zWdPXMNgX&^+hs!RpTwV}>@S zxiGcVHc6@818+`jcJEgN%LRk+H=^Vwbkk!?GwqAmt0#3L%4nIZ{eM{1X2ly3=6y=vALkn<4pc<{j&^AUq+ zT|aXrd94>0@1&hxYerh+!&?@cIp+?UD2M&9>h={!a_QFpKr$pv+|~4h;+ziTO@QAT9~x1%TNG@QH z^cipXWTGMGp^xfh%ZYtG1U;GO58QjMa@ivO??1R2(%3Ykmw|0k6KjcFQL#(3CK-i0 zyyO9hZ&M?vMrP4}*Ta_v!B1gjbjt+Uef++u1GerxV=51*pi~_l!h)R}VH|R;)8LB; za>gnBLXL;@QL5v$?Xv^FQzqRpMfiNi>sgz$s3*w)JCMoX=W*H}x;PBviLLe*)j;T! zq~0{O6__Pq>Y+z(jZ%s9v;VT!AABmy$vWtGJs-#C{-&LmLqwI4zH_jaWIIs{~qim zicFJ*>YTE0gFBp0_U+2&~L@7{E5bX#`w+ zyFY{a;4)NFgTT@bu#jMe^AxZl>?{7hT2UwW#Bn^$_ZN{MORrQ>9&q8*D5m&6yTW2> z{;Jq`h_-VRat>=jr~K17Oj}-~TR36u4aHKbTTC}XfWtduYd~n2ps_PE`FcFR^6;`;5i0qHvj}agnqb> zT5P@W=bX#pu&ZGuj3{CIYA`eZAwTf+c6&8T?X~eDTk#b{`R_UQ;l=qQbuUvEc&8Y| zDsBYWxz;NoGXA*0=)CYQPYmo9$%iPnakcG=kyTDWDEXIQf!rZ-Yt2-Mr-w0_i^qj8 zaWW3AndhFY;TTsnY>}#!p6u!f;XICP$dpY+2$q`H;Nw;ZuR6?f!IyqIEVw7sm(Rn6 zkp{sUSZ!P-vvgNZ=D8e|vtVymtrX$&ZbPrv#5t!HIu{OM!H#Nol=;8nCA0SNhcsZI zN-YX{&99jiFvKRgUX4_05lgJT7<^+`9oss5ZZ01%uoQaJ5cWhbO7I$x_oi@T^Vun3ttI;5mmg|uCB!%8YOh|h6 ziu1ZMi)?M5g1_i_U!b7m3o3+So*Qp*eb3@*kBx-{)d<`Rf_Oc|_;y?*k`9Vf+Sq<# zh<`2&^bi{Uu&!6eXN#`07Pl2J;O3aynb==$t4q(TtT0^_8njulZ^)n_*C}}i1w%W0 zzLNmi5GSY>eNNW%*-(d4u_1-c36^lzGAm7>`fAZqVn0PUPLcDWq*bDh2Q&%!nC#p7 zxJ4OuPsoDo+ep%lTk?T+evI9oA7t)=FD=pOQvJHxH9)ybgZvzRk*QCc70)Mz>Tq_| zbf>mULr&9^u8xQlPM`)B$Ci!V4Kb*V5QmKZSn`l2iKq#@M+}N9Os%fDUHvp%0Q##Q zHN3xkVOsB?CIjo?k1EScNFOxgp9$@U_V=gX*fJvq2V0oYiGjN5x%XMrj0XlKE9OXl zp<$}uxosdkuEXb{F)oWExM-C``K_W}{?wuo#{S%Lbr*?2LZFB*zW$S(-CbZXKoiOx z*i0-BTZm?!?ns-NUie4V9{F8+D2R#V(sC>MX&x_6V#?7HFegvku^~Bq+sm69NKq@2dj?NmA1{GWy;J4a8`#hNqrMj z009mR$|ZAx-RI;2|IoO^wIIvKg<-CXCM@5o`rDb|3r64K?ftJMhO;eVd5Dqf`D|da z%{LW>S9EM#pv!A{X|A8DcFz2Z24(;Ud6qk|siBBOT;LqB*U8&`v~XTh`4{l*&!1AQ zSxaHi;DT$bLRddm!1JoCbp`H8Pnpb-L9g`le6=x;7Oe-sLI9nuEsL!md{*@`MtQ)L zM60%$NCylA&#b>v@+9KNU&?f-{lJw=jc=@s6BAe^_6L8LcIoV-#Hg-QSYM%`0PXvG zbw8j4;ptN(PRn=2;BYXz`6q8)8Vu-#>i??u9ux{1?0?9FKZpLWOn4IzK46q%N88kT zdiPy`cXe4VNX#>3PUgH)ZQJj^#>;hVrDutqM{NKTBukmi*g=beae#<`R!Gf z*bH;35mCegO3emp%Rp6Q1T)Y0;S>s260K?|FDFc0YptSp3xBmF@p7{6j(xJNPFY69 ziDsl0ZSEr$kRAKApIj2Ow78!jd$h^xN<;JpStgoEatCfP zg==-g+TK@A@NLIjNJG9W0V^h?thewmyG7n77OS|(=8kN_V=@{qp&Z#Etc<-|ZtZfW zEjvjJK? zz-!^#aDV?u7>s2jSo9Vqz^#uGx{=akC3@ZMp0}y6fEC$qK8!|aZ^WJ~=XxznGpOD9 z)@W>VFgDbi)8tnBYTI@ze@EG-s1Nvv z70a@9s|lwFFx^~YVDc;3P{lQy+TwAH#^Jwxi6zc=e{7>cZDKm{DU5K+73MH&JH9nf(Fa|LVse??35&%C-3EOzecj!JU{h zrQoeLCm>qtG7mFB*#+RM(GkMAx8M=ozr4d?NwGG;5KGX>N*BQpx(+~NcR`j<3Ghg4uDqt-rER1rlwmprr(DU#eYc&cLC zeGJ|6>CSO=OaOWyP8-a&P?X`3Fr;}f690{dc=S`LlhyYk? z=S2dJM3vDmZ);?W+fG!pqRWAmwvu`k%VLBNBBNW9`$H!KsWx<{B&Zt>Sr$Vs{@?P7 z@9%GR_IFl;J50GIP=gNf)XUcY%##Yp|ND7j1^GYBlWWBPo+qH)|20qGWkQOr$1152 zg*YTFEP2=3MWL&{0r2DF_!){TGL7kdGD3m4TY9&sKgk+!jn+JcMXgBfND4FYHG(Q_?fiZ|s`)0h&9;?_bIRlp5Wi1j0FwR1349uoMndWn6j5ed3KWzObp z<{whheiCdc+68u#QCb~#>MdClobT+!Kxwovz&NcjJ9~#}*BETJIQmjPmueVoxuB=e zA2jL&G~wjf1LBW0Q|F(;!{@83_D3iiie{pi`(RgZGs#Eqwt2fCCH(*Ku!l=uH?{0!v)}3}sv($=+un8{7s7unh zW1)t@SCT#|JZcpZnMwhd&U0A+5Iiw>d+-gBcLy8y#Y(re8-GPV|v8`g!RHG zPZ&8Lt8Ta4$evzl8G&H1nKPpjOloM*6N`L6fF%&snN;$gUwVMJ&}9FtTDp}A16K!+ zCQoj-Nwuq-$&EsVdZRp3NfVZ}Zra4IK~SgKGB-mfwD_q1C?V~uZMBdYic+U6eWOG! zFca>!Zk8*%MKI}K9*c7qtAh|(`dPZ)2*ofA3^9^ZIo1RYh=9oy_a9STwNk1^UV5lj?5 zx#1=F*SFm8Tik2wwVXMag=oG#kPzIX#kXL9vM+h~h2DbVg#=G7tOx_xE!(3{C9C+# zkfqa*?X~;CVUJe*tbCmedJH{yx_FGb_Jo%vxX0zJQL~RN6!g;mFTczFaGy<>`_~6) z_RUN0CGBNiWz7!bzeO1KUA@kos|aPtnjfMlK_w;dbUZ(6P9$W?@gRN5$@px!QVrIS zp2V<0z^~xwC+cZH!(YYC>lr_WIW|zZUu@~|V?^-Ar4bU?2~Bq63sWIR#aZb>ip3)~ z8pw2go~IG`VEt5aSy&F7NiK*H%K4wcec`YL+>3{AU#Nt=*Re5_m&Y zwFbSOsQs$^@qLI}YKNx3RvKaKLE%1@F-oF<9Pe3c5^r6sL7?Us(?62{AHycM@>rK+0u7CMijYp5&^h*sTweqU| z5I1z31|ix+D;nq&4W_y>#2S=>)kehCLzmNbeQtufk9|nyeR|v0D`<7A-V=B98$6D1 zr7v}%6ij0-jaDnyS5oq&Ii=!P5D3CC2)NU5qwdu=P+8uR34;`*5BK|yVYzII)btiF zd_6A{B*z_U{S#E?CRT?#@R)RLpLKdBArE9`k!XfJTl$Dl3L}lu(io_?_Np_xfhi9x zfK=i3O|~~2fO;@Q$n{G>4P*WwrVWvB)D7VMMk^=& zTZoS|&ex5dfkSBa&Y=OmUoA~f&=WQ~2@DVrmFZp4)yw@!>3tJEq00>h66y=C#YRP} zxS^!}tTWd07H=_P3tW38MBA}O1B{eev#S6cX|Vi7s^D=qe0IoOEiAN%zRjK=-QqQ& z!ed_@@qQN<3pLWAz$^z<+@EgM#HVO#%E+ue!Dvh<{jnaInR*A|=maCcgL|fOK%m0C z=>hG9hc$i8tp*hrY^*86l!tIkUml}VK}YYF_c0&E$mMM#{#g8-4go?sk(7q78OilD zgYIcIR-GN8*J#uv9kp^q8dwM>ogun5@kW(xOYU|BH*k*lF3r$9k&ps63z^eWMJXI>n8%44=>D zrh$5=jbhmU7isWK%jBWOXUNurrQRe7enKEr$`=+pb0}Ux1-ig=Y~70`FSOzA5raS; z+@sqk&_mz8c*Ya2|FFtbUINCw4^Ra=;r_RXl2FJ>^7EfJC)dayoTi5WdNKIVfB)ua zG1j@kxK!al3v1MCR3^xl?d~_EahZf~qfSo12&LZt&lV{tAfOiT{{i3kVgC!?RY3k5 z-*Gp~uesA$lOpY1F44Ra+S`YkVXCA@>~f^=N%En~4)6+8@0t`oZP=A)`oqgDz-hpxJr@xx>QF?)CP~Y) zo+!($X}l4j!F_7`?ZeHL5o>&6&QifAw-6}dz%P~iInn}7kMO=JELrpeh2^?!)%duY z>fC3GbznC!ae8m!lx_QP9`0*GGR^fg4UJUqNJ7n`*X}ez+!m`wvS?c%)e!c$RtdsX@8*_oo3vRK0h zA4FcqD-uMe|Mpqj43y42me*_GkM!zVT;ru!`(jg$((a#+ec8JW0xf z+^Kjtl@$=$uUQG{zHK-~H-FRRLUJ~xd(X!~D!^JVw58=jd&4^$@2#XxPTwnnvN`{& zB!ds~y6wvt@O8Ra*Bm+{QbWxs^igAOdX=Xk&x%95{DZbUwhq#h?C^jr-Dk@1+iYF0 zI^K{mmDlh|c0=4tLE&ib;f3gIu$jo|o#0X21%XyiK~sE04-C}*R1SHfvAv>iIHuGI zJYA=>CIw%9yI$!+J^{x&h0Z}o@!Rkc=d07R*Qag}aVt}HSP{$-8kTN^-LfniRk`0t zQ~RdDP|@|@TDYY=*eG1{IzxagrnIH6%tWw#0QfV|GWJBNUCF6^f_j%X9^!t|y&+re zmwX4s)~;9=4I|A#oJB`~%*-OCEzwqUh9lPe@RV>z;+{;&18ui-6Qbx8-PP4JZ3Y)k z48T!+3US1KL{_0sjQU zlU0B7BsFB_%CALFdl~rK$jGcw+WBv`ed>${S#VRZHFIf$pXT?gTyIC@x{A{c?LF%m z3xpk)-kv1Y->yqna`ekJ)|eg!M<$ptYBUY*NqQd5!kM|v7e0q9NjvkcDJ_pQO%#~6 z5W@%HF8)?-AS`&JcH{oH>8Xy*B7EWZ`hknflk(Uya@=@4AbhzqWN`@cKv;JU7SZ0$ zrthwp<~>5z?9*OpEJ>%QbT^2XS)aKDTC9mS^l=V$_xlxGHSz$^&nMee2o7cyjr1Xj z9_2YLNL~r76Lic$M;x<)pXKw3Ewkw8*Jzg4^y=@7+C(MJKn}%N^8Vf|`tZWiKZY^` zs-=}{(^=;?1TseD(qAlc{w*00rlukAsyBvK=S`okT-0RyACIWiC6D z6kH=XJwltt2w55v3wkiS+z-f`pjsR0`7tP=VM&+i?|HdFpHY%s132%^rA;$rL&zl| zNdLheVhg`P7qMRyz;4nAV2%b;FyfkT(fa2 zmM}Dwv{c!|BONMg-F9gxM_h-T-tfd^#+2N)&F@-xeU#TH_MGKBJF}pDB7nqx*RoP$ zn)=dO{YaD$A54T{{D

    ZLmhc)2nfMt#C$Y`&=DNNMWZj?;r&g`$6sQ;B!JaI;c8B zox3?e)VfNpt{l39ZQ<31aAQ%?p1Ppx)OkBo_8X?L?V|cY(N*J`kFz6l$ysLKGVhu| zGgttjk?Z*WDYqH;B%tt*gmxNeg=E2#&6pBpf2MyMMHzctb+nDZOq=MvNH#3(=k{Q@7vI5JN}Go40SPmmOU9|qQ+vy-8LfWZM(Z>P7sM>P8K$3<-fA20Hv7&E``8V{`iTG2;XZMH6 z?}l)oe`rA5q1?L>RTzUb!iK%{T*9J|XCZY4piY+7u0E-a)bvs{#)KURNVKa>H!F72 z6x;w&|`z{8V(3O0b3{!KwVDXW{7BNcX9s4}sow)w# zU{`aR8@N!VhtJ*;#NYwj$f{;0CfyiSh4~VSn6N%K5FKkKUvXf!@=;j$MVSoKWifyp z!S~gj7|?GlhfUcA4AM`)t0Xx{%yypby;!S#daV9wrHJ-Pp$Qd{=7iU<>z=ji~Hu46&g0)4X zU`|`yzvN}xSA^kYvYXjNXa;y;Tho{mVF>l9qnZ1+eG8+ zdigBUeT9j4V0~IjWwAj;b$VtmZ{Yq)2Lh>oNHi|HPeeL%2h%6k1hYOdtuwfu;p>s)P0?iUc_P7FyNt)&u$Km-+6rml0>y z(9pLLfa$V3Jd+jTAMhj8nlNe1ShK0c*6vcT_S+20YSC7ei>JcN8HTCpzys)VJ|ydwMD#cNt%OOqJY5)++y6Pp#aPBn;MAKOvZi^R%Q zL$OOlM*M`m=TZ826ns>3^J*ozHkEV#$j=y1i7mM6(xFi;=4!`a&pr+7y+LmGTH+cG>aONq@^ zy7SF$s`Q;QOz`_7CF3(6g`r8{RPuG1+FsqFyJuggWcGrph;-5Ejnid4WaA}IXP?Pk z(m!GJtIaYa<$9l`aC}OUr2ti!SrQnmaR9W)$~-UjnXna39`kJ={Pra7S*m*m6wsa{ z=Hw}M7UGDvgk)|Bo{+=^YR#)Wddaq9pyie0otE}1OBiz|!=jaG+8zII|!2wXKxCOP06ycFC9& zGJzI6!Fo|IXgQ5xwbzwiryB8jzK>)o1fGJUwXxEmI}U+Z4kc)|6KY7myJ+><1dd8R zGjnt=^yv13&f@cp>0ISM7Qx8+$|?kIPBdW@>JI@S0)m#B-?VQGMAb(e>$&jvVjdk3 zv88i<1ucSs28nvpCMQn&=Lt)EQcHWZazR4YjsiiVhDwq_?r)uf9=VdSfD1>d?V&ce z;BMteFofffc&ICyw&;WpK(aNTq~K{YXH%imD*6QZ>yaMo+V6B)>^(jM4W%T!feygE z2iY~%X8)d`F5%_S`PXvk5ju+{9g(b|8p*(s`qM=t7Syav_3DXvnZfy+0$T_KU2qv` zbOV$^?I>T{L@7^Rqr4Tu-gk}otp zSy3u~;9)e}SJ?&qG8B}HRb)v*DlTA>Tk-Q(!^)7O&29YNu$`4P4DU38!#{MsU4HtT zXVn(Is_0yKuPIGN5vPc2icq^W>FI2Rap3Bkx8GYWxKCuxMo(e-mUpdI(T>m+22Js8 zRoX!_8_Q7)Sq_1RR*~uiIy_}*vcLOybY`66By6cN9nK@g(P1o}EM8({!SI6&08pyK8ur-POp-TjM0$6N$>tRR> z>vrthvT#v)G2f059>+3@8U`N#NW@EHSY28&6;6hNXNh;hNTs~4^*{0mU-4}zc_e<% z)Cz^$t;tEk46y>KY{n^}6L#k($YwV?RaPn{`!T2vbS&UGs`> z3~jI5ozh)Dhet*m;YG~R2JeT*3vWp{pZuW)M(&*@ho>Y-hU&QfgJH^P6Rl$3Wql99nK_~`1!hs$I z!JP~O_6s`U6ZXc`9&sq4pXpI%h&eAe*vVzHPIR8zG8eqRPRmXTfrZKhC$5R`B7H^Y zO6bdOkt>serY#6sTWmm-P5g9W(rJnW-)p64^WDQ=D*G-Z6cO?`#k>9J#0Kevgq@j4 zh5Dc_G`93SP1Lor(5{$+C_F*Gc_Z2D6lpfsw4#X@g+F)io=)hNBR($`$g;{o0X^Uex(Ul(i4b;Ab5ysg#sw%-_} z!Vw>Dl5mXw7#~|fJ>-f(kaXB(7a2>lKnOCDdhWOdU)?^BPG9$ZrSy*VQd)WDJMb|% z`YC{tIVq^KcTIg3wJA_n2`+2ORQOF6e}PxbGwwD5C2x+`k_QCc_?N5biElglf-Hz_ zUMubw%Jm<*JCK>Ql>n?b~`Zv@Byh*8x3F4r&E&NXXLxfCSlCU{Dhdeh6`F_Sg6`36qg^ zTyyui5ZC*HE@&@nXEiH)bakzNfB29;{FsA0XK2Z%K-rwQ)V%tFF6~sJd)oDxioPoo z*!|n}a(A;!)!k}bY8BWD7lP>BPO5FGwWELN-U9QdgFrzJ|5Ykb39lO)vClO8n&jlY z67dwRcV=QhXNwBJ)XZjYHXtPw+87W9a{zr)L2ZH;XJMfT0pj{O(iRQvDsxTNIm6v#c#LPo?hF7D?u0qQ${CvKUjc+U0VgK3K&9DKwiw9lLiz zT?HU_h#T0<6*y;3!=qg&=piz}LhC5J=K`eS(ASPqh;xXx@ZtNQD9Zca@x^iP)L+6# z`wF>Xl7$=N^Ka{ix3Z9XD8`NLeOqC_hHgOU=sIPJ;q3_}kZ0w-Y6In&)-FG<#%-uA zI9ww|9I{pK1tG5f7^noEH^A1Ao@_j}0`@IiTq z2^*d{yItI?5+_*Y;*q9tU}J6!86c7x`ADg=ZE*2LzwLG~$RnGs_VtUh z92#n`n#Mhp&<|6$?j&8IP{9xvoi9qAeGsx)&E0-N0{+DFwoUFWI9F)W+lQgQp895F zHm?B-=lZLYHpC2xH(=<0qqa-DNvM=d4h=Fo{E|=-6tsJ$oz)#Fgr4|*BEWEGY54Ue z1p#J>S6r_!_!DgyL#R{=oJ*$`_7_wDq;5|gWVn3&p_WtYK=a?Xhb znkt*D$Z`mp9v;|jFnQ5!{aGP2Rgmpqk!c2$Oat_cV_Vgla9|pp9~_yVU_(x^93+|5 zvteI90o!c^)3a55H7ZCDzUphhHrDO~CjXn4sYv%elnp;aHiP%HChTM^J7&<5Rr^(J zAR9ODxDT&6w#yu{L?>o|t&mghoD38-eC_ZDo^ zc($~RYd93>3l_RY;VIPL5Z7?Dqw{$|wZxOpR{f4RwZYI!%d>xx^26oW-dGh3O zg97B=v$N94ECui5`n|JP9cL0ofMTh`B8Z1XUYU2}FkS2@-ZC8#YTf*M-4ZE4+nIE_ zC-yCt$Y}Mv_l3H&GDms?GyNd>;^fh%j|vcK{7;FnJtV(C`(234DuWh=C()sn4WJxH z9BXlVO+j@BOSNIdi2##Gz_R;QlvZ0RT=vL=-0P~)QaggVfZK4}P&GSZcj6Hje$yIS zCHaV3Jt)xE>#t_{0Mp4;TP_B61HdYg0oi^rhs-O5LS0BABbV%w@=mmu|CfxocAisj zYf78O1s23rOpBa;o(Cs*yIL72Nv+`wQ#*|UF~J(KCvQ#%!2yNXNq3m+l+5roA)fWB zyNx1!B6EpYdK`4sT2InCN!Tr^m=8|XBE8FZfJ_r0=qKP7srlMA1s5Z`A^(QxbA$CY zC*VWE)f}(%X>AZE`x~~$D?_F>!Ajf;E-r52zXbVN90z1p@Xxu(LTSV(TuMvqzOdJE;`mJp$dj~08 zxn)1MVyhehi-XH}w+tK9s2F?Qh)n)#NJiG0>Ld6e%t2bz>sOIjx6rHQ$ z_g_^UtsCT`9EQ91beFP`rLsqH^((w3xo_E8uC|JNoS6`$qZ)R9g;ceIA^iKu)kF0T zHPm2_#i{N3ui`;+J|2*Abp)i|+xG78_9QMKV(9{_T2RKTGPWJ~O336j66GR4mhWpEi}fxNL=_ zLeVvg$7*<{KL`xe(3TM8ph8w@LG8`Tch3J=C;AWXNBlo&LK1NQ^~O*@K7iRjXiW*& zDaJT0jBj~V4_v`vCKfmdMi%G!yr)@vg=WvmfLM&(qz1|QF4iegy&>Y}S^jnv2G&I6mp z#tsER(6ES#0_ch~T^2KXpzUH7$61N%)9OxOEFk&&1!2aM{&vb>*W}^T`>gUKzf07} zCL|j_d0tYi9aFl&x^4j`+8{MVowkgEjQ986FQAel8A9Kh0E&98gnlubV(LTwS96k_mej}49ukL`G8G=112 zf;V)FW{|(ccZsFy{fj9ftKwcon@k+hYP^xUS+cPd)L$;8a)|9#EdtjxKn_qI zn^W#aQiJVJlo5nqKX9sUY<+vRJ(}uMPX2n;&(#YOC5aiQ~C%a8QXS z!|dXe9H)~yQb9BloLN7x79bklHMl-6-M5%407m#nqm1cS*zuRMm>^1;1EI&Zw9t;L zO5K=ikB4OisG2^j%Yy+99(t7jx*pb0cw7{V2X0BZA#Dd!atJrqWR0E-GvuY^Bz&HC2sfB4#XcC%e>ViqMH-67E4a|wq z>=0h+CTm1tM4w+yNY%4}Rfpe8?EiR7>cJYO2WXcS-F>G=S0h){9P5XYW5?3g1*u7> zmQNq8s7nf|C-C(7y3Rs zcnklbB4LzeODu2Z^`!YayDj2mI7xf?__dGbJSP*Ud3qd?3^hB)X>KC$S}}SPwO7K*;cK~QP`3yl8!CzNIUYAbNpZB?96GN?!3pS* z=dFT}=o~#QJdE#e_KTj)QQBb$e_`RBFOwX{!O-R9Fk?$)w>f;R*VqznJ^Ra#qH=O12)Bcu`ca?oa>B;am9s((5B?W+|s7 zmXNc!fD$ML2joG%SoOFAsRV=z)Po}X_m%|y&vW>HC&+;Q==EOk{}cY>{WtzYHX=Wb zybhH3wd5qW@UM%IppfFy0McM3FMgVqrA=$X>)q8{d~wMxp~b;YXQ44o$w%AVl1Z>f z!-oW~wYT(U@mm~Ba%X*eopT^x7(gh0{JjX8@0f&;#fy(pSrGc@a3;Wd(-ALeM0-d( zx5j$wexAfqpinwX+!2wA(X%}zG0nUGAaaac`aicq<1}yEF@)Wg>>to;Hedp}wAxe(U$pYNKRalaPOMMtG@X>v@ zPtB13`8EM0!$8{B*e)dFsPM0<*SDoYRQa+iGLvCDM8+Z}XTha?Z!iA9wlb|c$5h3f zFXfyrf)6(#ZOXPjTguKKHy>LDTxuOfXg2nyDo`zt(_aX;vcH-Cq#BJb^2C$W=ED zTAq;x`T@Dc130;5h1PRhr@f1NnLpZtLKD&SIXRqoC~Hm(n7~b6}AM4EhCRobIxtIo2X}3woPG^uT?_u=)-5H zH`A1(e7HN#~gGSBT(fyh^G2*yOiqvCUEvG>KB!31!=|&=Jpakxr z7xK*tXRMv%jVu}9fLI;32=EFvbO-Df)FYqI5vAm7!byY)z?h_zNmyZ`nszkNa%zhi zzlU_$C;=QMGmdTjunB9Z)?^`|<4>~T7zt%yO0NNoW`o z21=Nt`5<$W6s*73Yl0)4F{k_UEE#W%>=zUIJZ}&jXN7_*K4;YsEk>Rj$IFU1s-sMx z2+#JP@^Z?O@Xs$aGm%gpdY7@ZT@J?#LbVkbvnuepq9Dzf$JKi$0SJ66KEKAUzyDXkKVi&_q1M8!d8(vKu#`osH4bmoHz*b zK;?hIY)#$W*tHk*unDAbTAAuUX_PH07!G5muDDpnse9mx0GqkH(H6q4MW;v^p)@$3 zt;Z>8#8s}8H53R#M>v~dPiq@b-soi^)ltQs?wse2O?hbum!?_BD{6YpR6VerBBRRN zzU_?C(cR}1nmJC$R`Kz6H&j343cWIEux!S0oo5mhmaIfD->BF1MzwqYp;i|&s8B|Ab2!ux=htOPPV7;Aq zd!0!Is6om>XHnla;@sM1n=8g@tiSrQ+74%j@hrgL!QPS*yHeF!#ux)u&*k^vT-?iG z1ZkYY;|kijAlKRK0HkYu)*PIU`bSIhWRhxeAL6Zd-i_raPIwWftFHRS)fnDeP`rTW zaan`@$0l#CPZIrUrx0UG1c!j>l+1&@v+NCK4Bv&USQ;UG*u80P29%9w`xIlU<(ib0 z6|b5PI0P(}>qS;b|3aI*aXEv$qz3VV)5cs&MbH~`-qS9|(+n0(H3TMhcFj~=l=>En zOPy>u@DBwtvbI5(Xn2&m<_p7KQXzPU+Om|YeFCNH@iM=WM)z)ms<^Q5T@=q5CGZG#Q}TttMR6_QN78Fra)smCPzM$BZ zNh2DZ=*CRpkTQu0!fultXK&n=*a<0+W6=3Ou2r+XZu!Z{=yZ%&DaKXqL1_vV7|OGN60QXr6#YjY`@)HTkSc7 z2qNF|m*Y&Ed`M1FO0c^&pl#(=MtdBj4bfEZf>^R1n#W#Rb%WGH|cNuIn0i0N)|% z!^M+Y5C?7az4$5YoM7!RhgJ3M4v9&oFZMEp()e(zXFt>D7;q~aSu0A)IMx_u z9#7zO-3OTFfLD#9;h>{W=@T;jkrZOIHv~VLpuN&IIVn+isntu&KcSau&F!sAGuAb4 z7VUX}XK?n0Q3lU-(Ox0M=$&B$Mn*SRkLE$DTUp>kiaZDB!$#qfz3bp>?k739c}dUv=mFaPPWP-J)yqW|hFQsNUTtqc;N(ZLk1p zT(q^i))>u{0?5Ke{)HOXO%QyzS_uoAy8uLDk?ron6!8AG+JDEWMQJWM6jEvOFPzZg zH-2q!yCBYHiaE4aTn`s-cEU|M6r;J-^T|uHv z(t-QYZ-=FPY5%bi0e{w$_GO*x%GzM)*)ET-&*(Cv*2el0ro8%G_lg-j5nOx~2AG-E zqoOC+U{i!*=a1jsU9JVTl&E3V%Z_b$rmQdwr+~_%JVTG^9*1bLUagBU2fjH*ufI)- z3+OHey$pH@2{c#o7YFk#vhWVm7FiXyBDk(mMFB|wDCmCZQ}|6q{GWvM6+jNqT?_bl=mfl*w`Psb&3=9 z4f|$VW2{N%$dSSfdq1OgnOa_DVYds^$wKWd?9cwd=&7c$%43}PyzKmQ!HsTb?$p^wT0n*fWvgzRvbE*^YQ z?s}trW&{KD$Oppx}E)pothGx3jG4V!fj(IgFHqJDqm+2!3b~vD8&W2OZ`o)f@Y)T~4 zg(PMM%rVbUg~whttzH$lKcb6FSB7(IUiVh}Y5~cb8L5eH^cb4>W@xNu)}QT3q!6Uc zByE@^F&C%F$6gZ8b5A}z^L9mH1LMqj({|H@aaGjLse}Rs*JNkqA4^N4OTxcob2yCC z4tTB6`o)6Et?IE|XE>3^h(gJjN6#FryDRYx{RrD?N%MP83QFD>%6*;7+XMH`9GKAcGu}9;qX+VU3Cz8Gl@tO-cj84n3*dQk45QHXuq2L4d-IlTDU_hx>4ng9EH zyZ?oVt276eT`?wAC}W3{7>G^$^Z6ls{DW6O?@?zVh3RC|9Gv$ z130-r%2*MK3lt!7jp+X$+TQs`)HulUZriqPci*;c+qP}nwr$&X_ifv@-Fs&;o4m<}wXz#$o6IL_;o$Owmtc^IjnP@7yNO?h-5<3ybhll60Gc+%nm^eGv$vENnkNtm-8W&!r zvp&l_w@}PZ3cTcsD8gL!z`mOsf6^D~Y$3je1+1SViiMS2Fj-;L53=X%l_{Om{kAoU zRKAOu{1-n;E$5mf6m3cfp+566zG<@s%UR?w z-0wCfu7d;pt1>BRIrc3Lm_@ z<%%JV$E>(iuo<={qx_{JIqkBpL#}RFVyU0Ez~!XGmw-^NW;t3UzjM$`+K2GGz>^N6 z>cU5q^>v3@?j(UOx-si4C?vO{Q%)rb17H#6FT#CR?D;U(E#->Y)aG$_0-s&x&?VTJ8X z)jyLPrn8(3hVTbyRgR}d9(78?<#R#T@=2!g#y;Ugw;DO% zs!47Xp_FmCVZLr~pEYB-{!ntbAonSJreJl9_;Y3#d_KR{w63vfXQOtG=wyI>L%U5J z8$dv2i$Vjb(*OELwidxC_yqx>Thy=Gx|=Lwg%f_Ry5;z+=?57$%Sc<3J=r9ndhj#E!ax;2xMkRKZL|k z&rqMfJ;BwB0ncs-^G>aphnD_$atsjL8=9kFB(UbW)MvA!*t8@L5A33r9VbETYE8@d zPlO)=l7mbJX*K|3^04V-CF0u!G!iC9$132Jda@_ zsB|MX9qnDvj)q9L0%Z_J!cSqMhucEzNRG`(qr*1lg#{s)&vohD3_xCM?D^^P*bfv$ z?lJR|>tUb7cDnKYFv{?6S>K72$F2=*Jet~pY#}zK^8}RP^W?)vWE1i5cXxgUNz&K0`U@yB@4XM$Bc`Limo1?DqW_RiE{kT*v-&7%KV# z%KK<0_ku`AJ96IbgnW)tT6uT zXGG8dZ}$Jk{b9`MyFH``H~zjzOKox}UK1cKk+k55<}t}01@~Q9e5{%O*3bUi{0hkM z2Z|}_cuJz;erfQj4p91E$NSgwGNJy5c~&UOf6cR)K)wKpkFy@&l~{GicU&1|3AD*7 z2=#|`W+7wJSA@~WEC6;pC~LI;fS^{MlM-eiI6NJ|D`$s~V|K}{sb12cw*10VZi<|B zODh|yH9s?##BeS<(@k?kj)T0X`6#Z?uCqX--1f`-olOit??Qk$4iKLs!80f&e03@6 z#6;%^$3VgdzVB{(5ERu6Fd-~+l1Vemfq8E1sc*aS@DDC=cIq1Zf2UazZ);sPwns{WM&&t~o_Px?~*;T=vN3JKNodk!_SZw7FAuH=sr zT@~yQfk>?d?YkP0u=lAo}5YlOb07K&YC$H|56CEJoFOEk(rU@ z>FIM1X=_{4U?|jY=<4^dNM`oIOoLQ_I76D8KzPb*JL~GirFf<`=x13x@QU0}7??=E zfGo6tk>?tJm}LJxcKeR)*nNmpxEn`Ih2TgwECWgKqQbp%pNjR}Atq|zSAV5!N;Aq)U7JlX?-EEg)%v}HOMF3X|+ zmpa`z1Pxgz1CrDqd$HeVsV4o66gwuQb6IDBBWeF9UhhpzqbJ>)m?$S=(k(zNV@(^ZKG7-|Z-6kLMUTXJ%hn9_sJ-2`sD^LS!Uj ziZB0>)j}ES%qn>aNxy4y1EWpsr5(!%ZpJ*S#z-ub-hFutkFn5z^D(o5%Z`Tuo-Zg{ zajjH!BYTFFRk3+|(|kfGcHU!P?g**eAUh*g%)!HU>)-8VMa+to)rZZa@Dx)hN-8Bk zeg_GXjv(xfO?_h*P(>Z|)DT+Q4#tE*-ckI5ZXLu!a`bRagBi3A_bpELjNW1rq8)ck znPxp%rY;-idAas*gzINd6BOa8IbMV;0w9Hmx>(u8Kk>*>vaC$ysAFF-_f|>=7@jMgOs}tjdc;V%G zQ$#sDGMg&PM;S+!SFpCnLy2|xb4J095EKnBk7Z7dr5Id7 zWFkyK$sjEF_xZA!DXhys%QxiJbD=`%#9n%{<08<#hO+Odkob#Ni!c`{OdgYSX-uNx zVkZsgIDpg=x{14k-%^5SbJgz&x3&EG%CBaNIRP9I}gHdpaTL)s653r7eG(T-Mo}FIh-J*_5i(5Pq5J%FB%!0 z*2<0-%3VWduPOXkm9RLKm$hqk9l?v%Cf}-ve<;~$geFrRJ72T4>wEMJ7dRpUgqk2dC@`fSQdLrqNowx^u$EaO z=^GnUV%~DgCRk2S?D<~vMj!OJB$Y;Z~a*ZzQ6T~4= z7=WybVT=ZA{o`wQ*DQB$CN5q7@EJC3HpsV2_4(CUL6w3P-Izs^QM8W*jp!BMA z@Ate&fMj`mzPMZD=&RxpyW>&bXIlA-i;XM-!Of=g28(J;jNvS4br6aiV~hY~Bv>8% zVuWf4=^D>p!iS}!Hb@odJ;I7J`(m(S(Q;m}yP}|dT3ROCkJWP|kJ_LDzT7r++>FwT zBI#PHeiRa-d$K$+;)w~Tt7C5LRD4BbV5ToUBmS&uNMSsuu+wDWhQrEAg6qmN4r!X>YX&Z3<78b8_xHylBqLdU&@;bQLwAMWF zQqc~>&wZ{Yu??<@WeWhiYIph9!A*?GG+?JiwqBD;IE z`vpkWj?!@(9n`MM{hZQ(Q}pr$ws_{3;_?(7F0tDWxpg+_ev^Nb#C-{Ut~qbSbfW7Y z?tMwv6PqPLL3?UyBO&ASZZEA@!Ok!KL6B=7_|jiSI4|2@qA&W|-TK{>S!6i#^vE+Y z$)`%PbK5_Y_ur>m5K~4>W`6geC6v*tW+hJsuCfzSrevsad}qS!bpaERf;3|Vv>K6{8qg4qG3x9Sn_4o zBFuQVEVI)XuNjp`JB=vboA3!lX2YN2W1I`I-S8!KeaGt!-o}Omh<}X|`h3Gqw?Qm=Pa-zOq9;t;Ek` z|1$}Av+yCmt{Zoy#0FKNK;+V`FEbwL*F^eN?rjX@*ug0s=?;9EboLL!Y^BHe>qzV2 zfsiUtEy&Fp-#w6cg)n1a{FWY((+xm3m|o&}3QaNMb~hhgzdw`WL#vb(c=zvL{CaG! zNzWQ6-0PH_iM~KS?2#65Ek6`5V*J#e@>=DaZ{Ta$4(1JO*W#4 z`{bmjW4o7Q_T&mpAP=KUuMw3G0T~J2`b1PLw=YJIHvJ-?%M17JG=la0EfsogMYKeg#~9<6uVfcZ-&m<1DF6RX~zGNw8u4X=5$!3TEl4=R(%7!Yvcq{SL}fHkhB;t1R^ua z8p=3i$nxFU*6!+x(Ub05Ie*{c&+16-aEOl^f_f+yJ%Oo@dht;SIE1wDrH8ha|zK|TytrOY0r?ocugZI5IP5t!UHVS~#$OqkJRhcV`B5rk%9bO$yH zY!u6xkDkt)k#&!5=br}oJ%gPXMwRlg3PEvFMKusl<&M8|P;j)@MMz<|e;qz~zZtHp zSe#6Jt1y6L78ASNlZ{aPo~28C6_Z-up}W`0CqQ@~rY@VrylLuk6sxqD=N#8r5at>z z38NYe-;12Vg|Wmz?xnxZlcAdvUF$RSok!TrU(zp!hR(>SKfQ4vY$ekX8lvH zWzVpDi*Gcg?SO!V*&r#2yMl-wz8M8=x6~G*^^9$`M%f`qzeD9YA=A*?vy&P4U(s5O za)cF|lek&?cJEy>+N-1Gg{)3{JhFGYWAk$D?Ex*Q|0uxWK84~i_m@mik#&*(t{) z-Lf1v7(hs+O4Lm|M9ysJ+6U*Y333uS%)|r(wv$^BxZE=4q zBo)9Edkm=B!bxRG@zc$@?buB0Iiqjj*&9R0TtxFOg8Trn=JIy&8-nG<_rzCUlUK_)T*FLJfVie%mCKO~*IX3-Qgj0f=K54fT$HAPEH+<_3n2)^z^1 zDAL%f?cG7(;Om{*sK1mJyTn;f^F#AC@2$?v1x4H^GqBGmX zB6Nk?rZw9`0~4Cc3ipzLcrl`}QH5#WtePN~M*b!;3eCM@m#^AM!d@W-@m5n^dqQ51_dUMB&^Jvwa!sxLQ zZmABdxbp{Q;<{n{2DGD9S5i>y<1~?dlR*C23K^vS&FhduP!atsiJyrN#QQYuklYrF zURnLf5Te^A+4C!8|@GhDH}zZ>%l;y4Vg` zdaWLgaEvQ4qz#SZWYUvYw4bj6@I4hEb82UsBnf~O7+wnx&%hhu2fwEP83FZz={$=I z^A(jMlgZt$YHcdx;fca@I;^d1*P^LzE){wz6(WD36aVB!o8{h@7!P{(Sl2Tb-$?<~ zuJ=ih@wcs8I=zfgfZM)U*n7#+H8k~GrI}@0D)-5U00+FP{aOU5h@I?UqPuUFJLLkF%Ka5epu%>0t!W% z#)PSvFktZm(Yvw?nJQt6M&yXu3rkmdp0Lz>14kQT^la zw5Yp)3u7=uYJwOf`Oo<0$UPCG^79SRWuluZRgk`E^R9vy4Hqp}~dwF>dB6n52WAv@e zwrm|mA#4@_h|W>5tZ7uM#6uOmi{2W(tYHqpz4#H?>gyZ@?I2)r(=djDy#fbhCtfvS#0tXtVBB$bXDa4$D@alms(V#h7uuY59of zJDpI;lWWlbFo`(wth7>!t^v+*9{@A29Xaw<`i3E}3zj{L{cXI~cBl&8-s-`TZT}R= zhA`#V3|Y8>MQNz+QOuDFQceZ+x9I>ti!md(tAyjqG7dp*Bb7WXOC950$8n0=g{hPRNI1R5YRQGNJ z4MgZMpX-i>MkuZI8kK$TbY}+dI=8T8xM;d?pAxbaDGcYlzjsJf0I4dG zIY1v#ELiXx;6zV9@+V7Sm?+TxUz)SBEEg_Q>$P48ytAl_)zg-snKL)O`ovj?CEZImo|zOS!XGIy?X2(kTL16a z*v2J07GqH5c(B6lZFJKN>mc+_-PU%Hg%7qD4Y+#YrWz%#TJgOJ@|0sS9Ppyb2~&(=A9PcurH#lea5<~j$gYZ((dTHrP|XJ<9$Bv0TRTcBsqt9?K=5DA+QRZj z?kJlEbILFZCE_n^PSL_<=yW*b&E#1sWaBO<+#Af@9}%stPL%(>vq(KFpAI!5um54VpWT3rncyO1P0e-m>3K-$qFwaOmkFa zxc8l<0L|p})Ug9A0j8wD!TNVOAOw$K4QSMAZfskRSUqRv-Q`7gC@@YqG+$}#M<++V z_4mpcboe^+lNC1BDNcB~y=C5jEymA!{|mve}cxNTs4Djx1WM`UNuT5|&WQO9xnJLZT1 zJCw}0;>aQjy1qU(U2kg=e+%v2KRw0vZwVIw`kFdjsWZ-$LA0x1dscpjt;##OYO@xDI1mB>Y_`!)E});M6pPiF9;gcDz3=NftlmMW zI@PvY)XWOumyXc@y8RoPVjuK9Lcu#+Yk_C>W;gDcK4tuk$|B(B*e1?3PzH&Lz3jNs z0S0+n!z#$ve-i-ZJ$!(pg9W~7{lv#;@)-67lEUbrp4*!bnVnelFS;05#Kx&h1C^W7 ztuem=eq%pjx7Sjg)hryDZ|kB1FHbihd<$(>5HO$ugN!cM!%VP#SZxrmc@-*Ho%grR zafw)^Dlv=xEGMD;ZNA8WWt(5qdjYMDwP@orb!jMJfp`4ep06Wa5{2dQE^(YDe+%NMaEO%-Qh1;-O&l=oGAlRu+n7)$qAO3 znB7R1rDb!^y#_JtmbS;6*;>{WC)0Co4P^3>&ABKol;n_pzI$|UP#GPXAXjr|n06wG zoL?GJvKQ94u;Eh!61}u=&b>x0(-0wxPQYwQwc3Go6&Vb}d zU}i)R_sZ_FkV+a_m-Ev2jdRN*vk}Yy?d2)5&%Ko7`)0s1^+c$)$wKxeq3&rBXei@zHS6EfBhD%2f;9~ zhA#6v(k0XQ#jPv9C`;0G;aM1-_6Ctu9IlDq#+ROIS=?WPtIH*0a?a}Pu5Ezm;o#J} zZX0~z945fF#TI~*Znn2!T&dk>4`z4kd=57X>?o|`eG=#os98q~g=+~6P0G=kT=oU! zRO{|-)a~{k@T!vslyoZlWG#^1=Lhsu#qh%g$3}2uua`?2N3?{Xw5t7yI*YQy0B4#s z<_yNfK&s=t)uV^q*{8UoLaZ{AaQDItk~(ju#!Y>xp-3dc1e`HjntkU1tTd`NddV;W zMbuYuYB0oO_6rD8G+^x>`XbV zk(3Nb=CX#^-s|!tHw@g7Bc0ZL%m9XC9w;A<`?P^zeWqz)78lg8gwhg9SD zuJ>7yu<2VOibxxLFU}tLGCXX&I$}!Cnf=7Ol2Y2C99DfLs)}C_7mpM>Lh&pkqYMnG zBOA~O40N0QsMA}hyMj*k|uu0C7^cHB9YEMdb{OKX87oC8 zpz#^arwM@L;pDoT3cSkhkqze>J)p;kDp0w&Jit+?K>YJ&Sj~zZfIze<vM&qrHY7}GDPsUBl~NT@`x#T1 zR5u+%gItImns0L|!gL#-nGL~hC`C2V>`D#C2AKqWa))A%&}OvGRRS9Dr#% z+|qQ+E&-YRq8GmKD3JM!if^6?f%;;GD=Vqrf7`~<8&4QE&cJ(uXstnj@-J@yHs!bF zUIaj@?bT5@^e9oy1MCkd(GsnK(3O@$wP;~_!}7BvANqFpc}v+W3bI=tu`P?j80QSd z4C}?7KwsFpOL=k`dth5AfvQM-e2%z0GJKwY^RttV<;n|1R{;jQypaKQ~Poo z+4T!{{MC2|>5Q*XI}VeD&mrK*gNt7Z?mZ8!>$|rgo5OJrKWK#`Egfc{5-l@P(39$I zZN#dh+U|I=B2j(1lo&>|&|(!f0#JfDB#Hif`eyBjAdxqjWQ?8c&kjaR`8EV4sLlmT zq}kjt+PNw|m>(F$trR7ZFxnr`tfnFHPSFPeDJ;;>vv!dXP6Jm5D@&go33i!kNi(cf zvqo+vyXNO|FJq6Os{*&P^J5=7kzuBwH~01J*vtA`Zi*Czhs9j}81FB)Fd7J%r8+U) zUoy1(G*b6LBm59g#rb7!u}-+DpD>$FkO!(10(vY&{7@$v3m5b~EYZrT`(#!EPR|ck zUJvE^jRTa$Jhw*Uf)?}>PXjScrzqz&Y^5LRP5~C`$ zU2|++cE$zWIlIgoZaf*D9(}h`FbBDj%uhG1MvTz157{dK;0$9ac1Prq-vqQMSkoEl zGL{Hya5K$aF0{%BP}+yxQ z*C}LI?G!n#Hk|rqCy6*!$w(BqO~2+ITV}ayEDIbDwE&t0=S9hBknY!^o3l&A`PUoN=Kac1VY#RRztHRsxa z^$JQHw9x*|xeXdRzq_br%E1_ErKiB@#mn4mx=&Fy95~~i0Rg`VwCEfVv zOBVm*00jQW{@#DvHvVtEQ=0ezGX|sv!3t{74E{0~ zA>ByN_m7{nyNJWK`ehS@Lg^tIXB>VScDoZ+<0`f6=v>u~`8!BT{qLva=E*%TI)u0^ z&%ueyY6nQBZ-VIvPO}3-jVr_Az8AoW%$XxiD6+G3Qufpwj%UKp#(b-v+NWAN%=ySj z0B>GHM(AkcWIU+U2 zyRj1;r&rXS-SPbV;2u0Zswkw`C!Y3Yvh&AkicSsz8nrs97Qw8o1n&=3I3adf1(U0t z^B8aZb-wGZ4@QtF_SrnuCE_~TXBs!jO6MKD&*l{D`E;-bI^8i9s4}+L^~XF5gZTMQ z&=I+!umSa-J^1k!UQ;8`A~{g}iAtr}_d8==g%AGWs*s4I9QTwic~R|cV9GcDvD{?V zX9&Lf;T(C~VWjb)18^|^S1-|AB7Z5P{}te4>C89c9?hIUJ*puks9gJMC0H#~UBB|lEqZ{p)65!s;ZR6AH^(pqW0 zIH3J2dQL5K_g$KYo(XtffHn~JAX|UIhLk6|dPF67;ceTJjt_PKc4AqV=&Ax}cb(R` z(yb;1EvYQF$xV#MDz4d_*d$~pcwQE(pms3Z&(u@Mu9i~~M`;6jx zSq3*HVd2_O@!jK8vDQx>{hpb*7>h@|MLCQi+{|h^a`ij(5WgSV-@6M>si_9V+*Zr> z=CD>1hVm-Qa@JwX=4$!%2jJkR0ukA=<7Ko_d>=5A{A;8Z!TFJ&P4KZ)!BtywZu%&m z)SxFC_%L|dzDQJ4$wmlDVdgz8KU5o99uyg4JI;Aok>=dZ*L1be>o$MhKw}0<9J#}v zgMM<|bd2DzFDc_rLZqj?%f?Ik?Z4VC$-7oU{XVb**Q)rHoCEssF;3z;Q9Rv$VVH~% zBv(fKA%?ur^UcbloE` z;c2eNtF_XU#z2g|G40w>`t~X2l%OP)pAV^z$2FC;d3O6BB}0f$DRapMJ0Gc4x6Hq1 zl|}mgMyDjy0z=ixM*IOgh3fi7H?#jB#js@U*Cn}(3z8dE5XHQw9%NNFZdpJ0<)!F% z0Yx>=$#>FlSC{b{7KW*u+LF*|mwh6$?&=0DOX9WaLcMa{5WewX2=u)ayIXPQ@gG2e zjbrdEhGKAj_Cqa;lj%xE|7Y~OOEIYLKjhch>qtbp#1m_5P#;?!5jwbzQStbLJZ*ZI zEcGk%8daDc!t->-2y8-?!Bz1B=Sp8w`LxO;;bNxdiKXw2nlhltP53C~mF%+<{|d2l|O&#AkuF(DUC_!?>1(f*wImS6igt!~)EJ7>&Q{ z5+V3}EJu<66h;q^%_fr0oboZPLJA4YlCT}lbrh!#O3*w0C-KMKfkLBEV^X5qNQoNh zf=21!U!S&y_F3CwEiMMe()kYmi`Cd(b-2ne^CV}PD z@<~-BC{eTHSV8}xW_gBg`f}LGN+-O>{w%|dsp|mZ!q$kw2!!Kf!G_WAeb~Npzi$53 z1VYucVdht6m&*O-u<#G+OVGRijsmMjP68_N2_$*aDM$Aau$vULY|(bY#1HG8IP8r9 zTJ6Quq=a5)*m$`uH(Vc9eBI!91*RTSpSE^MhX!)Fj+??27d6)I=?cWI&2sze?}aPX zQ&`ar1AJptzV*i5t-+S?9c)no*DISAJ*5iNU#i2(b`toZ9n-6(oTGsZ8Q+URR}gx9onGl{m(&>uGhKloVH0-Ob>4sNjy0H}@# z;YqsHu>X!hLjFDX#>p$BL0Ck#?U9E6w{*0=re3I)B8?$zUTeif7ggCWPMJ;+gY^^W z_EP9Yu9B@N0R--)U%US{!`OLSwEgqMA(Gg-cl}wqdrIJi-2WxflL0{GY3sc+C~} zpoSn1|G;!w?RB9$H*_}v6zC{lt8vS+{g>z4Eq8y0@lFT_JDLo1q5nzrI$CA?gM}Bt z4qOsljaO07EUd){wrS3-?M{$dMqJW#gY7D24wHnpN4QSQn3zPBMSZdCofew7N2X&U4Wtb-&D|wY_m9epq zX5seZ=1UbIsTMCkN~?u)8k?D1gFAVAMpW#JGNQV9K)$|To{A$L>M{CW@9Bd|+F-Y+ zf&&6z-KvBPKa>|BrO}|s-QRX5}NK}Ow%Pw1BXV|T3#_CWmj$3V{ zje9)K0tVNo5{S_7O%&tpT8?!}FcUcPTh#QayGUBs3^6;f?OIn2@F;lCPWFk~=>`lM`j!m_i|>r%==z&j9CtjX zDn-ad0c$G%zylm*2H%Xre4!RR{OE}RCP32+Kk#coKOzCGB8pnRqgT1+Fx$F6>pISN zNhFt}Q14n#?{)X@XJ^b_wItg5s~={%pI~dj2-mZI85L|Rg%dAxrr|A}2J0ib@R3(X zUod;&3l48Df$q&8LOOiX)VDEiyEfUZ*d1wME@UbM+Ajr7e(8D0Rrbo_q5oORwR>wa0vD#D+wG$xG;E_eb#?i&g-&_V-%Df40C}Ho@b?{jGR(e? ze3x<3b3uav)BX-Mf;V!EEg2m`<)@ksiL2@W89n1Q8yVI8m>iQ*MM}{K~xt~mKrkiyZN~%gB>O695r=cUw zEPzhGM^M$ptz_m}6-*or<;zT@B;q{O8wqlHY0$N*DR-@3<(ez;*b<6=N^B8wYFP-l z0OE3$$KtwP)qfG_3Ia?D%Z#=qDR*)ZmA__`StjkNiI;>crCEuw$hV5T(7y|sGsoHD zT5L4oAznpU)WR2j1`Cyr1SObp**>$)k`vYhfB7P_gXMBdqN5Ma4XeFwW0g?(Tr-`r z+9M`=tWejgE_xGbag@04j>G--5!aT5hiM2;P?olMZanNwXvBYtltu1}E+O$uI!4MO z!a)lXStTiOCIJ}^A(EBX4f4Vg;{J*bvdwQ0e9s%@StSQ7g%qohk?5mDv;^wWzYxKH zcY0&MY$F5MZ69=7wgn($G^^e4>#i-w9`$Pcl|EY{CA4~jt1cB+WD~>|*zQ|@m$W2> zS@*g}-?IwSD+~-zvzzoxh@T`Zvoiub)Gm|8Dsqfak;44WF%=Q1m(_zSap5C-gZF&s zO@6FNRhYaGB#DZJ*_zuqm-MIKb=KA|LPG-U)~b^;xh7z(xizD^np}MU`q9f}(sc=p zpnYA2PfcDC`k^f|W{MF94-b?V4+Mnz_L|p3* zwenAIIQ`=ba{kA=@FNHjn;4@^G~6*;ElhK2x1`h#q`2t&K=t4=Tb_x9AQIq&`j`;Voa*d z$pGSdNDiVH@#@dIOxd{%Hj3nIP_@#uDIo|FOdh3nSB?Z}zyrm$X4hU%a|OVNpJ$G; zjhqw9a7|xx9Vxh6s+8g5vB!^faq|TVW$CYGAyAp1TUraRuaInMZTDH5{8q+pnRz%n zGn1aKy^BNXeMnA!;IA3SD-``$FFMJQV!xBd*kZ?@Y)ZLofs!_+n09MyXm;7MxW(jZ zW`zF%ce@hCAPvha+G%lo%ynq*Tl@W&7V$jVnQHlrHFXOV)v>B}FCRhAL0f%??$83q zhph&23C;{6k}O~Tear2y;a&5TBWx8O8l~K_V_twIMfyc8Lsrc@akqVlzyY5}Xn`*~ z=M`NJ*d?B%dpf9_Qh>BI5)*I47qM#R|F(ffH0kK-pGMB|vg^(T!2v_K8zQv6*T2+;Ts=fQp>gs710+{x(K9~?{NI#ojIFDw)t|Q z5)&2VOV>_)cqL-;VCvYq=pAHB_4&}_ib34&Kg;g7M}(<6utP;I&jZwQ^*n5Z^k3a+ zp#8t=Tuik8p~gh%{!8Z~L3;xtW$I1_B!v!~Rgln;J$sT9``$cX7?W6Pq|>*Z*7?`Q z{Weo&BaINo^T$KQ`v<~th4MYP>lDfWdziKt)rTzC056MK)L9ZmS>?$Id~W{$aEQ<| zrRwcCtF`qQyu}p9jkj}L3-lx1uK;F12OhXlrX|Kk22a>(eM`^s{G?}OqpPm=X|_k* zUXsEoHF#W9s|KYDS}L5EUhDt8EJy3SxSR9#B;vF=mS)l|Xg0_teS_Us+zD=8F_YS|uXobfQzfw|3I4yzLA@OkpgFx`O=SQX??Zz_|CB4#DAL4N$7yk(o zm|a8BEoCza`LF_yb%%7_um=mm5T`%O=qJBS`>k*4?KsANkvKn3gV)a2ZMF?I0Z#+3 z?yI_Gz|u?3?NalVIlr5^#%g*%h3W|mP~x=}{Yda&p1h!Nr?TB|NLGX^*~kcfSGey! zO=ecmr7#YOS>llDLO2cev^V&gxw4JU>+IRvB0`W;lf!iu<$I_TB2C zzDjwDgzS?LmfkR+Xz)ejM6%K&Fb5Z}&su(>-aYYwjydJFGI-_tM_hNhh1rUAgz^dR z08Ns2T>e$~^#a;6JL#_rZC1C##9Ei+Ce78NCykX-H3JPB9USpxi(UtnGlfUCq5fsT z(kFr~8QvlUbSUlhp=}$afmY*qr^V5#XgGE<#vLRm%z<@IVz!Qt`9j>`BT#@vH7);f zzpWQ}pm+ZS=0|q{f7%XRI5?4BeykZ7-Vq)!RWS1r)(J2;S=aIwdg)16N3Xuk7QEzj z-F~$ibNO|*DtrPNBaGfjQC;>$dz~HK*vy2VBdbd&VE4*%(x#Rgd4FQ8RO%U%P5@F1 z&AuC(hXm6bcq-9y%i@;MAgik~D9O1A^a0sR-*Xu#jO6SJY-=@`^2lF6vnjs^8oh;F;&0ub0*yzDKg?9tJkF&ojjUDG+r*h2=9|hLQ-~gs zg{G!mA+K?NB()D!GvF1khk#h`7$!eaG-qj|KRw|QvS1#fLehcJzZrqcr0g?_?Y-YL z5F5(dT4FQ-vp1}8A;WQ-4EpP6i}uGFg8)FmC!E;kBKBYgY+X+cFG^XM&0QVv4lI;8 z>4Qk1(sb5A^?mr|2ZqusiVBbFr^S3jIXLQ0*P4LM?q(uI!s$rTPPX8M*#IGu6`#_c zO~)8YF)FFZj=jJ91W#r|5a%bii{Pp@Mwf}(zgtlh$OuOBjerd1L~p1|WE7ivkyQ7` z%_zbr@N)^NTzoizd~nM0+)9DL#;5<_x1eo(FC(;H@QLyITEpyh8b$0jw^sbUz6TfU zb4WU9l>IPnTqhH!%B;JhLOfIgVKzKQ1)}ex_D+hZ3!COybnW&Kp1$224xm|Z&n!As{Q;WQ=blyoRxa9pIT5sCFW3jvlTrQ z0K^MHg_C+2E~LM+z3c{z^ghCan$CqzylFGp>-*p#2lkh^GjVNPO5qMouDqJQ%Do(Q zw4PkVfPAkp2S(_b-vWWop9i^vhU5h8+{pJ<*Uef*VAr26N5TkpgUlWLsXsnJoCl{*Wd@foIQk*OO5lcA^U!2=dlV7qya$PqKf zm*w>TG7CkC3V4vqCFU+7L%8eJUbnv^>luv85s$~uzPm`9dsU1_Ll%Bw>ex*F5nSa} zCsYhC2m49)_V9*c<>JxZHX+_eK;UKzTcD(ljvKYsb7ByXo&DTHOwus?UyPk&b1rPK zW@Fn|2ntK_`KwDvJZFv?QqQ}&}hqP-G%B0a5eCf@Q1 z$sj)TD*8K2bgu9iTeeX8U*;W0Yomm}^v%;fwMHy3$apRvP`?-6R%x=Opz}Eeh=p-D z>Q-G35^s>k9y#77yze*ognb%o7>^eq=HohTl7cCv<;+Z~xh@lyH>|J-*8f z{v&gR1FY9Hnwy4ar}v|83CnS7FMgvs9XiTPo#PdeK;lwL?Bo8|e-6xlSv|{um-OTB zAekTg^X0D=s~brsLpx>-=Xh+I<1EMtkt7vLL++z7nF6@3RBmjQ=P~dls zi=F8J*E4T-e&erYGQvqL#a3Wm z%>D(tSMI@zG%n{3kexzZOxTW>*SIDcCx4;Vs_Q0j9oKQh9drgPtXKS+KGCfOQ5P|~ zir5j2iJ!eF1&v}^e?Ur*xAZ;Zzz$`JSg_rXoRYprZNjEtT7;H-*U0ol6L%Oo1f5S% zw&8bCn-CW|RW`g=>&+*;TqDs%oq@c~R%7zBKk`rwRsTz&dBDEumM1obvSA>>dr5>6Ej&9CPX9SxCeh6KzQHhDO9D4*~+6P|F=Za1N)043Y^03NYW zSg;ou!%SXh2(GFzy2eG90Vb&Z{TAe_AGIbOWKzhOX!juAI%a?GTbHJz5haVcExq>F zucVqS-zAb+johD$1-34yaZDG_?=&k=w}DFTCIv~&td^tcNW6Vq)liSt1K4^9bsp23 za{KUE96nUOx(MXPoB}HLH1}KW1J=XRj%>CMv45hq=EZ3FmCj%2Rkip}ajp~jpqN|C zJw|lY$n0c}#p*512X<>jX;QwcK#;u2ZpMqfq{tIkD&g{=qpV?$&$}=HU|hlt1ViBJ zBl4I32X`n$h+>!++>{9*LImt+IOv8UZju=HT=jAX8_Pp>GnNc2@gP`CQSgaIVbQ;s zn=9aI*IgWFQ29ahB;8YAtzvm{O=>1W{uk>@67?a_U&ppbVPJ_lMalP=duvzfR3bly{o9TD(}f2m+D*hVk6qezhgj(*cz!;XH=|_ z?;m?rwS2k*R@*~WAeCHU-Ew#x3ZcyaNy*BxG&9SBD|Zq+hp@DStXH%jxfTR7F5*>G zK~SGV_Ddsy!SU_-uBCZ+(I~Uvq0z3HilM$sE>g1Z&Qr^JU{`EX(Yv$3GoBDTLW*~) zFYNj+@3%SD2qSwqd~oCJf4nM@cfN&j%Y^ivye{s0ESylrFlX7sSp8MJvQs+hKBurM z_WtgyR9om)GS|>%4mn86Drk+vY4kKEl4yS1w^89+L@~;RFRGd41SEn~4%5x5zh)4+ zm=Z17VYf*yr>*75?hsH7-`=(qU=Qi%>u}#Y9t5u_r8Lz|c;MF79z7UPZN;{V%HW#Bl7Z65Rpd+oMz@xdFAC61Rair@t z@~}|2x9zW~FgnO2VsU$OL=p*ohVAk=X12ilzxIOPMLoC;@!1|y$N=-I8(&&O=^2}H z%bBtayj~MtrO!V$Y+e*P=K0hk)G$C~2W~3w4Fr-npn`DkTKz3PH*W1NV=MpgHZFlM zFDi0H{2Hw) zO4aKG=TpbmN_0CO__Ntn9IKRzqz@pAHP9G}l7o$N4GklEJQta8To-1j`50!hp!6GM z2Z%OcetHppFUR6L@9V60;akykcEN_@oHE1J!S`iHQu(1#`RRQ7Zu9;fWG=e+TL4Lx z4gp9z%4zLm<_<<{R|y}%SiEVM+Ew(oZB-^{JxY3k(|R;a zc{h|kUi_)8`o1MHmmtPIBGN<}4Vf|HvvQ1(gLZmh8Ze=`&1Tn7nV z&+n~4AvIy&vWT;DEL`5`1!SAggGDhHvG3Kq;7L!a$slb?s&SG$0)!MY@=uLiH7D*D zAB7tMJgG-c`55dXMT4IIWTr#OXu;dgf=RZp2din8PK{6u-XLNW&$H6(mnQd!?M6~5 z>X)}5f=tp`@dR+LYpq3p^%yK2u`0c`l)BhVOzhsY#>ZUQ*T7kOEKwwsR3Ba`Iljvo z4Lq-)|Fn&V;cr-AZFy7p1b>pS+hYBG;GXi_2fHq+g~lxHc!I+el{4{K(Io>wX|A>c z0D=_kcW%Nx!Y)0awzQDbtfY#(Oc?ehM~2;%;cO=NSadBrJ=QCqm3JT?#O22zQ=I+L zk+}ODi)8RZ<9c=$^W{#&_~CVTN1knH-|995%v|t9Xf?IQeLQ%7$C$vFTdbS6%`-J7Vd?iz z@ic(YvB7fH$Z+`et}f9NB}<|1KlX1ePNn#Ff5S3#53(|;6g*Zl_;rL~2!5Q>lR}$l z%zxi)KE=EFD@8Z2g(z0NC`UpwB@i+2X%ofax(0PgE{kdu_hBvVivi4B+&;3>bZrsBKu>>=fAu#0z$*sEwS7QzsBB?EG9>+;$*op4Q_QU|jCn)>Ut7`` zTs^sSZrX%+_wc3m7R=LFA8P%)+(K$+(Adb_BU8|$$(?c>IVW;b7GitvRmMw!Tvs7v zgAC^_rG19{uM@EWa^+^!dS61IY=?5769g{wR;qK0`uDd7U{Nu5IeEvH%+I!ukB{Xd zKAgU}*pBXnVC*b)iaff=uiD&-9A<6LIfFYtd8T}tU!yKeM&GkQ@vwmpDM80Nzs4v! z204VQt5LU;8!e46VGWUeY-6QYHmI>at6EdzkhISy2sIS^at2^(Su~FZt4)5{m5L;5 z>d&S#rZ)A|NT1$EX^?PCj2lW55)_3rB72j!2xYmZcxZdC|ywfrSvE zJX24H|GiQbMv^6f=s`0W1rMoDeN-vxw^S;9>c?_2Lk=<(_(VJ|NE#MF{`VYx01&!NL|z=MxAZ1<$F)< z0oy3}V-hEPbk`n*s~k9ok}u+5Zi8=4tyah?*2Dn?0WTKTK&+-D;^FOEtn%}Px3WI_ z9@y{Cm)HbA4~UT$tF(%a9~Ivv4iHJy{Rg%MbJ9!T32FhZq7FA6wyyaoNOrpXWGnjN zwo#eJXLYEaW%y7;IMUDQ-j4=+r*GyryvzT*N2~dw*ZxU?wyNRXHYiau^=B3il2qT7f7#uBv~c6>>QP6$*0 ziX!q)9@ZZou%(k}9s)>ZmgClwtsa)h2I=TSz)7bO=`Qpa=M}5VAhHxb5}8z&PjkFZ zX8YmZK>SJ%!hU3x_#RSon|53mo4RF}1FPO8tJT~9+sJnSI&I*E^+b?dk(j$<+s@h;5lm5$u;@ikB!bB=8mW2^n_S(j)@|*OQ$z~0Ry-JvBPOsx9%!@M~ z_@;8f-GUyj<_E}54oa!l>B~o3p$yWp((y!sJxt&>e0X~A_^+rP>PUx>p+sIBr6?&C)44MPVBkF}1@eKQ$xTxp4qg6OJG(l7qI;^v2V8uG4RoV64~ zXG{w<5vb@B9jb^S)jy0`FXEw2du$6qpLRb{#}-mI=RdJgBT zpLl;LCe&i%K+|Vc<}FY0ON(@pT71HOyvWG>pH)VD2EcbutaN$zLjiw|a3>6j1=cM( zmX{8U5D}Dj$Q8`eLzgSij&>izUQ-tLsc{?3cIFsI`~`A)M3Y5d)Jv6#mNiz-?4d&y z@2YO)jEtZmvqStr@d{pBs1ukf>kUE{meE3lIkPTb0a^baZWL zl%fb08&Wn$s+HR@8Hwl5Q2QV99jF`mc4TH8W^3d@QgF@k>9ufnQ-0`i|0K30uQ|3+ ze>kL+f>n!Vf`c&JNiTT)+h-LE-Hc;W41DDf3T-e7;PB~3e6z|=Ia7Rk17CH@hjwo5Jv8 z-)d~g{0d6A_G>%2mZu&&p__W!_T)ZHS93j+OIZlz#1u~ZGFOK!sacF)J`?_BI+yt#Y8o(Yitt+w_1)`6GZ(b4p5-Q(jrn&vDypCP_$4c=w=>P?ln z%hc3MizJjzvo6TRi1d~gxwFI&6gOo0y^xc#xsg{^&9@@^7{b-ut1H_t26XZC^2HY$ zuBrhOh7aRUX0NG{h8@zJP86-Kaqy+a2;1&wEa~d;w(axU18LeNDM0ho>d7ijY!2e< z_aHBI*tQZxG_@6N+Y;2vd%6${|FC7hU~c?bXSJcA_+!Ak9Ylk(eFBz{qk^Y87Ga;B zL_loSFw-v*>L-kiFCYI{In0TjJ8{$_TSL!(^0NY>Hsx913BLiweL-Iy9oWL-Wo&EH_g?pJxbdQ@qP> zh{?H_L_~xgN9zLOqRFa$@8&POk{8t4IF2EUw6SziawW#@Fw!3!ja?G;jMu6G6Vu2WaS_@tqlkozVMI2SZmMRPyuiS`bcSvGI zdznj=L@9++(277e)}7k7lw_nvex6NqX`t{A9Hvy=U`M1aHwbUS1zNW(v+$jTsI@fE zr;c*1(D6&GQ&4ZD0p#q&1z&X_bpHh{(nJa2c+k9{>~10h(F9hyPEx)l=y$1lj0oz1 z!UD3NBM1$BRupZDY5iA#q6DA^pBqP1$HF5H=45d~SZi_Yn-q(Aiz{5ncB&Q%9)S;l z9rqR1<~YMvqf(8UVgnV=Eq2}WB6L{@wKA=vQB;?ZuY=S&Z)bd7kk9slA_2cSa!3~T zxE_SAlG4OpKCcn6y1B;v5bId9W{Yn~*KhY+G6q(QxR=O?*X#$%Lq84ejJRn#hs9At z%HVn}2l$gjAe`ea^yB3W-b{xU!2=Y{V%bT?3$&<`Mn@$6r?f9XSE;RYq1>68f-*$3 zdo1<^iTMp?>9J7l2(ElOr-8HPjK!zPegt~2*Q%^TW({?q|9qA?joZf7#{0zxkFVvysNK*DREc)ID(;AxHP-0B!xh2(Avsk>x8> zpza-LPvVK6;K0U$6C)u=2s>*a;NGOkezVsl2={0(m3ccRQrd0w`e1~kx$MkR+WOef z5tb@^NOTll#RpzN**b7%5O>6F7681A`vQ02cw#r{_=Up0#a&SX8+qf|y=x=_{C+UK z(Os$M?dPfY3`@Kk39PjMb#t1x1&Vu5E?IOMNubXWyInuSIGTF(uujTh?Z_CGFaM{v zS(b?{rmSi~@xbiIMj56uP=oSkseE6x`@B|}E6jlek|9;jHdkA-VtjePQp}ANY`$BXwK>KV#FA$OdX4O__CZjYORpdV}8b zglbE=+JGU%t6DD)Cv5eK&P(NlcfmG-m`A7=l(2b9hNITZ&HW-xOzrqZf9>n!`h42ebPnacm2}ar$`Ayi+LO&2U-ZQm{ z424N*BC-2vZ9_V?vvc@kiYF)oaFp~P)0AI1L!R1+hY@wj_v+Y1*KE##A}72VPcy~7 zh~Gn@yM2WMpHz{3O3ZxPjQiP+aR^?Rf+aGI)sT4N{EoWTQ?C%yjEyXNlC|5Mle>tN zGWS_c2Ec(guzMJjCn2x^7CnQDtsE;KZUr`an&zS2{vZH;2wVcGTWR`l_5{_A)gW4w zW#B0=BN`Jgx0r?u$XG(;|$wctNd=Vt1;Xy}~2 z9?d%v6ETeWb-y`-C=Aj1M`E^*y!k)TFHufh7V?fmZ^x8at3>6Nz{My5@d#G(LmpE; z`RJQWO#=y5skv%VwwTtT9ee6;lp0aG`9L0d$7IcVwIY4i_rL~&t^&EcwHeGTrvWBR zrm8D!h;4)7O{iF21{_7yKS69UJ_D5_+AWFS9PcB=boxT7F*w%`TG^} z8TtqwOx3&Qa41dLi!F!Hv~UX(9zqB>!hus!a$yO@7Cz#A*O+)cWa|+k<)~A2o70(8BIK-KSZ_N}0VMa|$i6ijsLp6j6P>XNM`cFT{ zkK0%t?aFVpcADUK+Mt(Ffgz`SQvKJO^-MJ;|IPd*7!qyS(*7yXOT7V;=I59bs2ax@ zrf2PWGcsCHz1k(FjVsx8RyB0f9}1jtorU{Hyro93i4-|L9|FMD)_o&I%KwKn$AOr zn*M|V4o5BPFD@^0oa7n+t?Jm%mD@VuW&y&VL7~?#A;O=IYe-*A`qQ(`E^_R3vgK{#K+XgV3>|ZDqk_TQ6b}!W8@d^iQ`*y^ z2iumRV78vOG_f~zJp*tqFa9j@Bs!2})0Jk?8G)SB%5e{)U^Qc{D%Xm?S72M?L}(dB z%1$Cv?JLxcNAbm}e${_l7{I<)B#?<)p|)w>@kaKqK>>&b2M*Tols>QigR=2ak?3vG zAAEdGf9G~Ya~vog`V(Urmh?(nzNot%%_4~5{-uo&QsQ>jo5W_ zSQuKkjWw#LJuGgQCoZOe4UsV@YGgT6u)MAMg70!u6=@7C`{6_8Dx$>NhLt*=ecv#fYSckjhwj+z^Gvgv)r@&t{TAeiRC zJ7k&6#eGrkNvtAuKP`eSvP=m)VQ=;iHKWQ+slunApJ-toijWjyaTsgw?Fd!Fu}#2C zZ6G~bXTTYG$QfcZe0pp_Oi%tZN`q$pQW^z7MMbTMb!GQjDm?8qh%LSc&uy9Mrs;3= zFr{fB^wIprZ&-O+VZ+VEs$UDa{{eb`NEreu-- z^2N`Bt&-!}EFjBronM|{Pd5r}?igHXeC}9!zUFJOuKV7Ik=y)Pn@PnzuV*;nyj zPQDbaAq`xRO1U>sl7Kn?3(XA%roR4Sa`HjO`f6SGAH#}*UA6=V7cv5T^qut-#GubQ zH-5ZVUXT@rvc|9en2P`}2JVl*mpRM@jW_PkX@f7EKl9Gbt_AnC|D9L7yb{nqI#ktl zL`SOZs~}~_1`qB*zSffQ?<-h{UiHZw!9!BIN<3>3zmN*Vi)?+qb;7}RZ(jO|vC1Bo z4a=-wa9+#F?dFp8HFWFvKU93|`a4$EQI!u9t^ul@i-eA+i-=kHYfFBuF&FpM5gK(P z?ISZbzbEW;hAjzP3{1Q>mmz6}hY_7u=p z?5-)6l&55sL_%R%V}^RZVi>R^-xr0z+Yq&*D$1&O=vMNj55ips=+B>cXYOk(#yR`F zKY$2E?D6Ou2Jx#--;ISY}Ri&|8H zavWG`xD8~OeBg7?>CiF)ol|A+hmtxpr(HzY)+7;p@~lBn(6j{hgiJDQRG%jlKbkFw zS^cQf^-G)oOIjb*st*as$Wyg-X!DsM&MOXOb$lYiOBS)>Xur_~U~3J2(TmN#3YtI6 zXbqk-J!+1!#&b3LAs|Ah?Vtqd5SY;~(uh}-J;g`aq~=rmERzLPL9(5DIA|(1Vg(t8 zJS8daxuL@+?@eS7>))nZr+iyUoL}u^1hh>&X_ zx8_JKeD1|bofNnzaTSQnvG^++jf3QECx}%$1Q2)6Te`+=mW?I=j0TigrFdXk`G^rW zJ6N)a4~bvj3N3Rgc+;RKL$$D5DS%YXzsD@T7})sLKz9r=OxgGBOigAeS0-CXF?afy z21Wml5tB9*Jk$}|G`rx7V8~BDYqGxowCj5#i=nkrv@Bip zt3s${b$2r*toj~w#jtH7wpTmS}~i`VMQX1`-_+_td}pNd*A)IUl*O8 zo2_FOMKQMs3e7=q8K0!v4~{Ga=-Z8^%hcbUS?eI$j1}+2G;{v1=BYuA7OAH%p^h1y zF2xw)!RlWD|G1mM`>y>`dD5d7bQsY={+*eQbH zlod^P5dA2uVYa{r7gwBooCv(#{rd-7k%vzZ0)Ouua7!-xwtdZSdJa8Q^Xf8JE$*&f zs5Qi~&X6wBx+2K3p4<&`u0PhF0EFS3Bw84D#}fbEyCrpWf+Fe8;MlJ_ZYS^q|r z`(GVqmKrWY$SgOEO<$;hhUvaZ5{fpsZyx%Z_el}BlFV9!3&AnOn;p;yQ)Q{J@%^1VSmr}s56YO8uQR)44cR@)YE!(Qr6Uys;PkY|&IL(xOa?SndUGX3|-I+_@^ z*DM<5ERJDMCPW?*+JFCA zGw9xw!!x6&j6mPg8swc% zF_$)A5egW6IDY9?w;*%vGs{6Wlgs*1iv2@hntffveez2XSzn(bKTCx!=G78+2PFL+ zgv)FhmA0uS_@Z)e2U!Y5gJaF`aKRGR>KO>^eRJ_aD?@s7pj6{kAASi%k*E2tHe4Wb*O#|P z$Kp<|s@JMsE)qqD-2kfwx84WG?WoQ#Va#Bcf_yIE3D|LjVLq9Wp*rKBC0U{1)YgPMgK`2 zuBpb)7t|!x-4u$G(-p;lKb@tz@DRN_7FhSV&ZUp z?9TT|mVyN{!^jOx=&ET+W3mi7zu#NajS(r*9?z=brD@+x-B2cVK>3TylI zMdK%<)gc(AjJCXT#FD^ZCO(_#;&lzr2wCWC=+)kyh|!T~^0R}4fT+fa?q}~%R1r!U z3gsmC9sCTq64KD0!uvvu6A02MelCPnhfViUCkivGwjb{--Nta`SP8YhG+I?0z(M8&Wt zIM9+u7pt$@6D>pA|0uFMdm}4$5zh@32I-|99fM@Zony; zo@nTTEm0NO8AAF`@U&h($|oFsvx{itm&wOHtlEfamWDBjOV_J?RWK!nR$6O!6K3MK z(opt~D)1>6jjIv~t!Ah%_c>UuGyLaad)M*|H0Hzt8T5lW#^;Ku1lGVk6ZjfkD+YHq zrJ5pG^34N_I#X;^nF>i;i-ZFvQk8YV`^8ws9Wm?uv3EV`td4WKm8XK!pn)sJ?n_q7RYFuD(j{8*!PGKT_pSlQ5z?RH}}A zfT586#cge9M0oT{hQnB-nY~d#@ctOONTIF;$oa`86g0Rl?%jXlV3)P7QuW7NI=d~c zA`IKv_UY?f=c9(WgR7&YG)d?1X&Q`kmc#I?Ey9l5ia~vazwUAl5?3o{hoxT)59EO8 zu^Pmifto^moD>Fvg5hq zA!;DTkdoGc+q5^#I`Ezc82PM4y~@sD-xHr}ffKkTIxwp4u?6C_gi3%o@pw|N4O67{^?(}FN1}1z0Afo~ zVJP^W5J5x7{+4{}I)Y8ckYIo~dXDYsqpGQ5jQVWt?O?P)iQN{YS8y)es* zZDFq2r#lEo#9A;D#95zO?XGrG#-ifmMxg3*l2rra%JK}hAWDp2E*+CgOsh7{=ur>0 zq_N9%1jPa#e^;;oII&J@u=}oX*`s{M3R?_1WM)K37pGG&w-rgn12C{7Tr;>_A5H!o zHv6>Q4}su>nq$9<{mEo5*Ma*)Ez-W4&?K&K9e6FuyD@{ggSXLDS_ytwq!r`gi;j=v z@3ck81KY&H<8$dj-frEfJ&qh|3r#gJ#*U&IVU_IzdpMYnD}+ji1#j;87v-;)7F^ky zL^n6Uhi7!)c)1hpEm$S}MD|-MNQChV0DXHX^lnS0*jgtG6~PEcnXdWza}7vG>gYX# zC_iImm6kU3csxT!irgvv)yt=sC;oU)Rr4@qF7L>)_jMa;(chI!P2hx zRKv>1^WyP0>}E-P*rp`>yi>J~U~=yA;P-e0*(BvD)3{NgjcaAGURdYbYVu*wJ~d*q zLbeJSiV|njF2>v0!n>io(`^$c^RE*OhxxY)wd&kaU@1y-wiNS{RcaJ5l>lQMpXfEF z5*|yRa3jB_-p1`;tNC7g-(NE}W1AUzlb~yPcrU{{;1n~_(SIP@h><~>65=FLP`URz ze1-l%M(3TRB$ohNqhyUHM~@W$ePl2NKf0fI`GAM*R*PCNo-HwGZBKs2dpECr0(X~S zkL9AOfhHzdy2-L|+G7#Yud0njV5l%f5hl0j@8=nY+?$Qcz=e}OHOS2oH7NN6%<9$& zCs2WNM`K*X$NNUw#Vk5op*{u^6~yF+s!e@bV__<)GE`4sv?pP(n_17pBjZ#|5s$y! z;AsdtK_*SEBFQ?mDiSP8SIU+4ChYAjsFq+fvQflEYfX~3W}oH6#!>`qJW#Giz}U+dTK*8BL}zFz>1FCKI+3yl%`)&P}@I9S{udpQp`}TB7j{ zxEiQE4eXh8ZQm?K;aKA{qC?xkl&eTgT77D=QQ5y+d|Xtpy1*lu5A_UOIs%zX*-@Vc z-fNvT2`qU8Cq;ol@~q#Xgu88%jEXs>iR4OZ?Px^&ls7YWe%But;b_09nm+iB8@BHA z1$@Fed#CKPfJw&GZDj|5p%`^*)8sR{M_AZ8tDHcepmkKTGthP#;WH#J^bJX)V&BR( zZ9w4LsA-XjFpOw798yHtD=A@UV%;I-#aS6>a@qu*` z8-!7a;~xq?ZCQ-!L1$2LT*lh6swQJS)bt7*8sL_Rus`kQqD!b=_eoXCf2)tgjFNv2 z3syJuF4(#60tY(6k)Y5GkuD{SD;J@x4Ql4Ms#r2)z*eJFwAj7q?U!OG-wHlKB;8j8Zr$Ni2K~bCk?A&%c}f- zK1R@ONhbOgd)~}zrOo5bI0TuVs?mH|N4IIM&{iGlTbc?TmRN*j@{ckFMz@7R+1_@o zm&X^%?hRGd!G*+f>-wvAvLX4gf_<(9lhy@hBsLEZ9a)~vgyN_}I3T83-+roMRE|OK z;7aA4v9u=q5OkhNiP-Q`@>8UNnj3(8osQr#Y12fG@}jv0GN(Bk>HeWDhFAlVH&)T?qu zWG?(MjkrnN%QRz^a=1?crOx6@q=wlqi;vnnWN(YT{U@}> z{q@KP?=MAneuuv91ih3fTvNYc08$h@p|a=(!+aj>b`%T~#ib%e1SA`)kqAs6Vn^zJ$fmQ1j;W@jTah>-F=_ zyh@#}On@!fk4;C)>tqTXbTPaFZ+H>~eRzPR*U5FTj13=b-sS7~F6360w5 z{He-Gw0}6_R>9=@H`s**piE(v%n|rZsznc6jby>v2@$kK4$i@BH0gU$NrYnvemZg3 ztKNh}w+;SqvTwi-p@y&AF>%Ry`GvGt#?r@d+>~+^*UCscI_BlC6P!wR8NgmnqVUYM z!x|bWOF0|nhs7{xqqvV3#VTwmiz5gJ=0H&%PynQNq+=*eh$$^Tn^wT zs!xpvs=KsnJCd)qN1CvdCJYc&&mK;!rG%C;X>GBvHZWa2uZu&ofQm0(>~n3TBS7wH z>vm9dxfj0*FFB7)atu+Ph-8w&14SQWV%bh(q`9u`x3fNS`xL zydfs>etrt#JU4;YgK57Xe)pyPi{)qDU9hv?X{|h`bW=xm8gn=cdA2Xu+D=0`D|;O@ z^~Q(lr4aQ-H!4I?5PX&Lkgo08x0-fVt@NR@)6!}iL0YhGDbPT9Dw3Dd&!FrQm~1Yg z#wWfq@lgkWACdcd~Df~b$jGeKjtJRQmg77d;HhiGU&4YqR#1Fm}b5%^5N z5X+Rd0x{wIBqPlXY2~X8AK&xxmCfIy^K7MA%$Q^us;x#fpVTtEO#OS5hrV!#-e$qx z$L3ZQMgelPUkGt4iW8!atYK;p^s>l|I3SB?;bQo>?Autop(bHdIT^2a5YcS{I6TDS z=yDfL1JtkjqC`JDeE1W5xmDysn87f6H5<5cH>O~s@ zU-m^i>Kes8*Fj{~HTUP6w8^i)W6cXjy$4@t$~8-tCQ%PZ-BiasuMv#9mgMdtkBE!$ zNaE^&DG7zR{b_Gk!gMmru>PSkI_Gq!;&q2sBiyn8=bw6f74f z)7Xv+pkZ%#fK1zN*td}Q_Fj>Q9K(&MlgvxtBR@@JIX_Um9doufC7yHIG&xxKhoXUt zvv7_YMGmQ_tHA7x+4T5hTO|Ua70#E6PI}M??7`1SHl;7dY@889HI>~`8uhl-) zxem_Tb2HDe{+UZ6drnYsc=r%Hj_|nNBR!wBBhglKV=kmgME z>~wCd+l)`BDN~LLab|)i^-1|f2?qltkzIi1anXCzhR*kFQ3wq0oRNNUm;0bc4wV3x5h1weH!@?5Q@h%NqOtW7Z)Qw+F>lE2F%R`|8c z()kdtem}q9En0a3kfDrcNMb5m@&Rq~2ybuHUMps2F*mKQI4oDdBxc=TN%->SoHAhx zZ?(BRl?RfUBCBM`#kbI>I-M;r%Hilta@4o~gvAe0`4r0je(hV^J$l+@FJ&_mb83nM z(EBnZ4KC<7rSiY<2thO&Ek@*qX?}OK@Tvh9$xQBDTcg}48S%I7$2t1OU^fya1qfJX za$~1+nq??~U(&d`1#s|7+kDGE!yD|Cq&Am5gL_sLhO7n6xVmd>x9f7+2V_uc07oVK zH!w~*2X(`<6sXgdbF*28E z1}}QwJv8mwD_d>yhX?L+3m}n_FMXv66YP8mV1$5V$}1LdK^wz0>_4 z)~He^dqbIREr>Y-F5mGIrzpD)HN^3tb53)5KU!N*Mpv5{y`#RoKt%^TYJ?4O4V^ff z$RO!IwZprEC!5(BD_I7#2Lo-rxK0e?gmWo;F+|<#z#OZ)dkDfL9>49-kDXW$t6h{|lk6#La&Ju}vlwd^jMQ+~QxOh%UhKx#-HM`bb5C4RtHW7Tk<=>@xL-R?s*-R){|C1FU zQ!FsnT220=s7Cp^Crj!lD|P5&^mCkQK>Iw_t0{Z(ctz3HT$jMv$(t4CD`QLglf+VP zgMaSMlu$^<`ObirK3}q<9`QO3NrOeBO`<~>F`R#_oRaFQEM5Nw6f5vvph2cousS*V zCkFd(1Vw$2b{TY|j#vvIv~ROpJ_-?_=QZ{HL*~qy6PeCA?|5jpKkc0UdZ;Bmk&^*T)k+G!sy~@e%-+yu`yFTDTD=lGSnBG;Bjqb zkUvn~w*(_#f&2W+J(CsdxqeWjB?V)-MxHVZ$|r9SY`+*(8uFsx$8_AYD_mvXOTmvd zy@^dIBSrO5sFgR0e(V+4-nt&se-zYBV!!7Ja=;0-6X_(O^PJrhC9!Hd&TwA3%NP1X0wVPV|sLFT0c#!sA2_Q`k}(T_rMBx%+?Wl7D>1E~Hj*w|M! zVYt?gim-K~;@NPx zGv`;aTBg01Ql(dxV9o4*?@^yGbW9q03M^#l*XdLcf|S0VptOt|vYvr2JT5|wS4S~PZu7kLetw#w!XuSiUOIUZ}&&$6Y0FRJkE zmfFHpt7GkuwW7_Jc@tvU@?!ECLyllg9p3X%;b*w0WSO=bxnF3)k0y(>Z_G6d)66l`?Q{yVR3l{$ooFHXz} z)XA+h^s@C4*dt51)hXIz+l^0?&WTEOZ)sp^hNtnQs^kP9j^}AZP-K$=M`Pg0wc-8( z5*@-Pa_+F&IH-CrNEsNhX_4gyl5p^&E0vdy6@2f=h1vG1VmpQj}ev~!+E%6tl z-JDDe(|`r09Ec>p~ftO=%hE){QWQ3P{1bBC#8?%&-~MLzE=Gd+{j z#2})*Y2Q5l%A%$9r4DQnsWwr3IZUTpL1f1tI`T##0=Q^tg7+>N1~ybWp2d#g41!u} z^sC@a%pNg$`f0B*B7<1Z^MP+9kHT)1Etld=U!Ty06E1te*TpP2d~paU(v7^b@*87n z;RmGwsB8HHq=J+ACkm+A=e}CY2;dpf)o++ArlAcF6qLbupp2_sq#BH?83=$f(wfQ5 z&(?R;UzkU_qZ%pWO>MTR%<{k}G{bTn2o|q1b?mo03_L;hqFjw%A4hFzp&#rpSBd72 zv4evpVu~O0%P62yj=E=?;z2|x0RqXpK4!9F?#fHRA0DuQO%KE3&HM{Gq4k?TeweuW=q+LrQolAXnSDW}ePz~83J*5LqtW`id2ricf~Z$M?cHlK+Zy62 z5O5@jZ!2gO3i9~yw6qys+%*sv2VDY{N-(cD-+%_I)m?|%)b>AU>GY~xN%E`Wjmveh zeo$)I9=3vqQNZFnkQYAcf9s&+Aj8=4)z!OjM`vT74Khl1 zv;4}>)}Vzu+D>R9wM5@@V~><0qOUDQfcn%i5&f(1&6z;Kt21I4d73VAs)j`ac$cwdgXI^Q0~fya-ip$d3~ z{TbI@0%_3n*1TzyUbCiiU;~-vp&6 z>fJGIoA;&84N`$OPJ#HVA0r?LL0#kBlZ(gE@lEu#V*6zBAWX=tDxN1l*WcTjM3{o_ z_-rEZf_L8Ct`q6I&*NllA?o8N8%9?;5_Hk{1)nGvF{yy!6Fwq;pKlLujYrLzORjMy z4tM^p%Gc#zHIJ+h97GG=LykT??iK9pdkU*Id0=O~?x=`*Wujb34wO8(eMu3bypD2} zxRDGBA(y$!8*}BNOO%@n;dn-r6_=6DE;O4-R$~qA6)_RIz4y~Vw_ll`X!o7>f2y$o z<`e?2|Ll{)A#t6fMIRco%lYRh^mr}BbPr59M_AZxOX(3{T|ugmVSVPoL;sp-pPG@b z3N5V}#{(M!Vqn#+cTetjl3>tJN!u)u5b0;ug!bnoTB93&PWfi&Q6g$EkIf=cD&6CD z!8ejM3p>C*#vvX=Cy?!EV~9sz#-iOsHEff&wIL*5+KJm+XGU~`#Bef$Cv6nK%zAxc zRUnf&0Ey*uEn1pY2s7p-6uk8>pN|xy5Ui?XWtmQzl6PG8t-WK8adrtgA!^tqgI@QXfQabqh_{}4cs5kGxS>h zXcq?QLHJl^o02-2ODtljQdH3%8ufXB5-v{(4G?*4%Qt{KBT~PXI+rP|q>N}5+ z3Mh?6U@frkK8&GQuy42VP6~M2r@)O5FU4E}(4DDWpdeN46(eXaiom6N4nWaju)=|6 z(5-8LHYkOyZ;HxVK?8^=tCD9yXkx{_2Mm=Ro51t9DWa-_2<8CZL;1fU9ZXXJ$b)*J+4WoTUYDMI5UhS(se}qd*iTrI(wK0GBdKcK?MC%@@yQ+dOSZFT{==U;ZU^`ZuVf{r^l2!j^_vv&d@Co;IPJ@D zIZ$uAq`~&^Wg3s9%1WstN?cOuc&9nLL>bQslAHnfJ<@N_IPh(E2iuUJb;HBa%#wUZ zMdr=f`#q(A6GtLCySpuo-x)~QWbq6A=(skC2*dNiPVwB2AvfY=baj`FJ?R*001G7} z7?#aN=JV7v=WBoiK7+#VwBu6`rQ0p)2kN$x)yTOVs&5BE1}*e;H=URMrww()aZ@-x z-DC?^$C&%EQPwTKOzzFQ<3xTVD9x$*4RyTtB?Db&x|yZX8Q(H4Bg8!7=rcjEB&!)F z+2t}1g|G+};y>FgH#~x3_6II?8Xp_TH`O(Yils;D75$;*NPJqGUEU=cZ^%$jDuuc* zN9QW@;nBL+aMwoG+cjfBLy*!lJ1MSMSe{NI&|~P=8jq?KCmBWv?w9lh11~VL?bAw= zu?%6|?_GI!@iCl*O*Nj_$Rs&_lRuqv(-QLOx)HIt7b0{Hr+9u&(3CsX{<3&R zZHOgSW!$@ka%)6Hn!au67F2-?lDY81LRE-AnL9IA64Jn+>Um1+gz~_Yeg?7Ft7I)Z z4TjO&e?9-i!Sg8fiWJ(ZyNr)5Ki2c?)Pe&Xx8%iZNH5+=Qa0NXt#-6)9(fmNj$7A? zrXE+jJu4mP*MJAft(_gI<}B~y)sI1$=x1Ri6_?n6?R6QOSzsF3{)gY+!g%Dl-n-v1 zj2W5dVLk@T3`~SA;m^*U{*?~hHc?F&_QVfR3^=IP$a`xY6rICK@Az9M@qs)GBRjUe z{7)!zj7!>&t*}RhRy3AWv(klbgC55<&NQNZbz1m2&r$~qIR}nVW0iua#V_!o6Dc*j z4yMB}Jk9?Kw`f}8$O@CtVw=_SM#x156B!(x5=*iJC`;LJd5q{yqM=I7MyR93JJ%qr zjX4(^Tik-Ld#3i-o2i&^8i3{DWz{-IJ3|ExqRtJ@kr3b;@Ly?JK~jC%rX-aORb>-b zP0+#4U4vak^wsigG~%S+-@U8Iy2syd;D&9TQU$4n4c@jHNUUOh(FQ7Pgjl6vTuRfd zJNCn`;uCE`l)_$-W3}Y8c@TNar4+`o-nj>?e1JlLY^Doe=T6C0M@cKWd~uH?h3cXI zPjI@Wt?kU7LJAb3)@(UPm;m0g5of=9ipqWB%fV;}&wL4+ z$+lBAt*IwKE zF=!P6S(w%of%4=jMa<-=zjq}sW8kU4Tf}x(q183~l#2 zpPf{gvuO|Ok>T-CdY(e4ZhtGz%Vmmq?l+b{J~M7RO1;+w5*W09#r7?F;Fl9(7`&)X zn<%V@hqXb-SO>l7rfYP#K62klC2%d}x;9}I+AClRTGrJ`i;`$pBRpBh7$LT<*AcX&CoK}k?LN+us z{q~Ylyohw(`jsV$prr|WAHHM&G&0)n=mjtF`7ciKcTm%;nddL(g)=)=lMypR)0}Hbh3a3~8uMVS&*2 zphQ?!vw@3#{+uJ-r%UyiQ)nqxqQSlf$G!HRv_gXHoiO(rw<^uUkOw-5`Becj<=@M; z@0DMRcxojiX^c(X^>YJL>i`~>KZUO-Qn83(TiueHdV!9XkjUX)#>yZ^?|26?@TRJwyf=RaKo9pcpxn1I(8_>i==aRh-DKR(ffS`u7t+v)Jns__B4_plil+<8?7Ip@hVNy9!Wubo2O&QTV+{o;Y!(1gfEBN=qQIP4czjkfIPRo|T6ql=**_xR=!9RP7zA+ng)ttV(&=k5MGq z@JVJ(Agcy`@NgffC}9Izb&n9`Mmpw|Eya6qMxgGrnB0nZ$i@p8u`y+c{{#B@-iM6*pmPR zrM=1KQVsKCCaZnhHq1vlImkKBEc~Op)q1KDl>a8K!T)8K)00jO*-U-$z5{nthkH%`t%w;6s_v&_t^smYRH_||0tCYXP@#i z7sqht#ay7@j5``Wn%0dPoxs)NiPC`gn)){)K{qs^V*5QtR$y#TKt@OSDaqg3ytpwS z8mGoCyWBBs+k_EtnX-%?Ebb|2`r=9y$u92k9!fG|7@>GZHkD}ZU;Jfkade40q5;Xq zpZ+*N99=vGXg#01PyyiG7!lw^?wUJBIyp_#<+nQ(x*t33^D6+W9Q$ZAeq<)cjZlZY zvAIKFv55IufK<7J3vmpx}zw7|G-=2>ng3x~8Azr8HE*(L1su|D*Ovn+e_q(}<-< zC!>WMK{Fpv4~0x5Kj}mjO|>x{3AL&7>8^uz@N@hR0HZv@HOmw?YrmPOuXyM;tnDNN z4%jE5fX!$m6RE=;R46CUomm>`x^FydT`5(PC8p1-6G~Vyzq_M!A7n-SPb?{!xe&I15rfT7g9h@*aMB7z9TC;jYJglRskBWP` z-suKXjxiB8+e_;L+b02w1%-VLpF|}loBmcz)(G~CNOWI*ov`JnDK-tp(MnR9BW5gD zB^haqz&=VJ*`f9YcU>n2h$LF?<3&C5Wh*43J6P=bj)Wq6eQ`UG4jp;4zd4&T@tCtB1!55B;NOl5o!^Tm%tF1hI#HegWPzlS4W(S4+ceYUPYm`#uDx$d z!R+%9EbO;Kg}P77QJjNSBE-AU`F)%+*}0s8hWl4WaSw!=M9dH#;MU!-#kNJ>W`k72Aya4MT1K^)0Xb4n`e8Qua=Ffh>2<7Tlt$SbMdt*Ugf?=(0Zys2 zEoc0TxO4^87fzh-v>O~PxEN?$y;4$jpjPF*D&kszEon99vxti@zXHS>CYI9#>eK!O z{lc~68}t!`Jdk7l(JliJsy*A4y5u53P5;kcsC6cMVMBB85)a>8f#R(fF zqh|p1G}xBQF9pTmI6xd-r0|?7VMiJ=Ib*=d#s#{NLBQ)*r36xoi66o+BqMPCXWYcYvpZI z4B=+2<;ogPS~R><@)~eBB8)h;Lm?S536>1H%K*#@9b&T!|75B<4$yV+fwRy^=+Q{d zyYHF|Z0xZtD(5S|AWx~_L^A$?Pa@NZJGAK#MFu!gO^rG=qEZobo5$V#^L z3jnpp!3(lNi4CJzVgcXNHvncBJDbnf`H!*PQS|wxsQB-96b@vp8vzI^{>q9rrC*Gn z*b7VgX>+RlmOHY4viRN6R(Ps;U~~%>08V3IS;x5C+-oAe%t<&6N*W4JMUnu`3vi$X zUH|_rUQWqN%uLT~-_--mUt5Xa^)I~(L`s(qE55TKWFYA_7W7RyNHEmSx3X{sCvye$ z7JQsok*bhsb5Q}xI*gO<^Z@uaN6^da1hNT#1g!7~puGlRx6wAi@A@x7fJz(24ffQX z95~%eKo49Zr_9a?hXy;H*(7o7F%}dOJ7hXrzY1NXwqQvNx9ovskhhH7xK!CLQ{HSa z)J}a7T{4AM=flNkJ1uP)Y)ZKaJ;JybH`e0i(8Y0lphf%Ydu6ap@U0!haksq#JPRg- zS5UJR5*h-Zb;Zf{6|2dV`Kg1V3u+OHQ5-0k9s6}-M+{BTig+tE@AD++fJ1r~GusXX z(a3aeqYWLD$Fo`d!QH0b#yqOIO-R|8>PpABG0BLqnM3C;PjO+0ayYE2htgS@dX*P=Wv7Nk5(u_x)2%rV%GE zVO4t$r~fOQ*w_M6Dh-d_#$f*Kb#{?5v0sErb+u&=QeozpN|J?}L^^vdOb3r13*AL5 zfB{Z|A2T*}$U}KhS`N)|LBR42^g;+SQK1xrxwmr28NnGD5W)VdT~G~?r91olfkVZx zizy$#2S2Fz5-HIaCT7b|T1gqcl^o zs!+wB><^7{dfr6llFx7F>V!Tt<^EBR%EpB@`*J zpJ-Rt(){rrK-QN$hTGOWaA0xD*B*ha zC*JEe{2ghqAbG)gXKfL$2ZenrlvGjNC=ADZG-Y zkE>VQqK85zcNvXU(@)bN9~N{lsFep8BYbc_dc6~|fj=bmV?zINj`TZKkBuMAV3ou^ zBN)A-ngx^gUhaLa?fl^zL-&}@GOe8;-B&_t(d{y4P4Mi+ymew(V%?Y(fhY*13&60; z;quxmUOJl7n`-EhN7*DjiX%3tVJc$?ExfkcGSc~m3M_4p+ge4qu$MMwEZRynIhl0fs(SV3SI7Jok_m`9%BlpUUL>^8` zBcC{B)1z4ji5lH&YHfpq53TzvTQlMH|8xA19@$>m`(`r3)(mv_VNi?=#HEjj+O{lgx%@v2{q!22N80C zPei`hzS!n2l%T9oG<~=!q$%EWFzvF&BM-Qngoq(OIC@K3hGjBkvZ}S2cd{)Bj7B$f zxvKY=zjr}bv?GXH_h?(u_>GX9lIe3Pi@cOfb>Fzjo7nzAXE_OrKXPI0G34$=^Pn() zy%H~^p8_mf^(%Ts{}KPR^CT!tiMAk^NPq~Z%#BlSv}}n$33*WoJEDK9RBG0Oyd?j1 ztETYLO$g!u7ub&26+gB(Od9NNt#jyJv$xp;AwwMOqwf?~R(UfV7d_%7$quP=UldH; zH;zNyp1{xyUY%yZE;lfsh_)bWb-b9%hK1Aksg!_G@8L+snsvxBsPXGdcQm9%Rv#4# zs8}gkZB;!LW2R6ZyrG_@Y{v3+eI70x9&Cr!Do=%}9w zMZlKz_YKl}#TXQOx`H=BlD!eh23%IB)GL9r72e8xu}Y}`6=loSjB2H|W`lc#Q8ue} zg{m#6*esL4f{=O>A7_UF?Yvu}Orwi}H&f?f&;R#!6gNpQ2k}o=PqwSbyV>S>SfjZz zz2}bBkyE4OsoVPHdRUGB#n>GRsPL)-toVjanpJ`^L`NsR*LKp426YxlUxS)?#5|p< z#t$H4;7tTylab|fdTZ?lnD50nCgNPf&SsN5!*tz})E1~_M_VTpIm%ut$52p10CPO# zoNog`%?Pe~cnJgm4ul0h&zydRDqoC?7S~ZF(R4cit%hJ_!9?$Sjbcx zq_);KxQXJjT^Y949b9k)yr5F3N1l$7{K*shXA`T=_hMY@aJ_z11R_QrhA2}0u+rOz z;~2}QBq+;EEY7;|nHh&I(4SMzUQL}gTibuJcWy$)%7;C{jUGT5A@3v5Yj;fTqxas6 znE;yjN&&sm_~=`Ype9G5fg?Vhm1p7SPmAzLZ!^VM#%*dI-ycMiLb76NOhf0Q-b|l1zDBbUIh`x+BEmA! zEJY@sVHYR>6Wz>{t?&Aa)`hM;mm@cTe)hPK{Hz`@riVX`3w~zuhBum(N z<>j4%h&>VNG~>D7b@1v;&JB(+pJDK%BGzX)|DU(Y0oDkwR6av+06Y#9RYSu4H6>6K z0lX-WOc+ox(TZpe7;4sip%M$UBIc4u_B3nSM%mx?dy1W-w2yu{!f+8(71L0F21RWK zWWBpnnWc%}hGa!s0c1>}ekcd`vbj8GD#*OzlgjPQ*W^J|egVX7--U9Wn?nCdX6?Ib zE=t}Tr*2#495EV&(wyztKjr06&VVHg)Ma>KV%DbKJuodjD}QCE{#c-NF!j3*f$=Kn zUecOaGqR{V#&M+(18x|Qz%}6ENq1kq7C!Qv>w9{hkp{77FEpzq20)2p*1EQfN6pCF z@zWD1a&#*-rOM&M)>Km&k0OqSA;K^M5G?hrU(%ZiMmsvIP}kMpDZFrq#tXk?TsZqn zfo-vE@DEGx|4NfKZPn(+*da2a`d_32)_M}b=oxGlIco#PGAf6jTZJC}Lq!rlTfIAR5VMR}~hxdyjtyf>4seU9jt>8-1qbNu&QZ@>6 z+ag^(n}OxgnF9?YR7jArXmr2~Za(J4mu>bq^*3ai8KR>G3rLK?yWbS*lgeL6OTHaN6XU1JzIt$`kB~3X_Hk9|p>HA=E1{CeQKc9sN%Zr}Tg8t@qaR(!*i zy%FoVOq~hqoDO(5;A>C+4FcT^ZzPIOWvu`FjL@20@5%%UiUByU!R(}jdwrxD%s{@WfCPlPnK`4jJ3rNs$CGS-_oHSkA$$vz6E)~vJlq>GxUn@6d6=Z-=l8E4XEV|9+0 zgXtRU+)?6N$SBNXdx+q(by$Ncw&qBsE9|2}N08zI`8~!m>dQeiakdfXSAqtt47^-n zx3|z(8y0$tFzH(Kmu^IOPt_V4FH+M347cCDCyK@rgz;5S5$_0(SdP+VvZq+AzLRVT!QHjy1h*(zM0NzUZg^)k%b2gaZ<4jjxW^9CWl}cHfzE`_tmyuQbb0|T0P67P>+bSJZAH)@!p3(T zFYQzbj(?&gfSynNOpi+29nIR7JUnZ{tQZ`>OrqFuJ5c41MU4=KnWA_qymFr|Ua_ip z%HS25PZSVFZY}Tm+Pu;Wtbav2j5!!t*$(@u{7X)BZS{|;JWD%9f?yTT8q?YNxMD*P z&GOm~hOScfW+r7MrLp>0m4wgGG)LN%ry za+ls;Qvequrji36;NU()bkGWz$Oz^whn-SgcrWjkPj3nl>SO8Lo zu3ixkK7@!qBGAnUyL?NY zK-z3SPfX7ON}a}c*1YVOr#1>m$Bkbi@mWmleKj3tVyr<0q}sIXFfxS=$5o~WkQC!R z$A~Tt3PZ}DhHLQnI+jhxr4`;mU2O*%I-#tY!Y`us@4_ljFDiK}D4gl?fK$E@4+%R% zTAH*QR|{E0yX|i8-b_oucXzxW!gpG4!CGx8Y|40q3?H&o3^0nnG|y%n+@}237dL36 zv@3qG8(>;1?i+(9Mx`Ig@2A1@>R1T|hP}DQ49B~2JTHZ7YAZfATgF4}V-?~DX!{}g zP4A|=Lt^|0@IkBxl|Z)Y&EvEGF_=YxV^k!}@KU}r88U|hw-u-?o|I_kEm{tl@fMvgW*1Wdj#pR%Z1hXcteNE&%?90giu@7tUg? zi@2g)$GZc^(RTu^KKz*R13NZ2Ru5ACj1%iSI|PVQLr@Eoxd|TUsR(FU5>{B|E?&Cn z+0{`c2X5otLKa+LX#SajW5yK&uhiKo`*X=;kIag4Rx25*L z^*nqj8*|CM8#V3g(C-!YxLF?cGHPP|>_gn`uw{^7SAz@KmOGBf{hdit2t#9_WFLU1 zOcGU{ct1llvr1B8X*a(NwGUSl?Z2dmHETsTCKY2&L_D}RQ3CL-&EB2!S(3GmvN82j zktzd}fd=ZSuRO5Npwk=JExca?X~N&ZbpOOg>0{KMgZKC6nhfi1=REJX9|bg$&i zAqOSE{U99DfjB$$`2|1BQVghe2;aDc`MueP=Yzb$*vB-K>evP#wA^g>k|#HIrl2jZ zi9@126vUwi>$F!wU%ZJ#a`p|54hr7<7xy^N=)R^k`bU-YOo_BUqT=N5f^b0ZgYC48 zT2*_Z*0QGttJ;#}G65jXv`6s6TcI}htWQWcCNW!wL83xQE%ESvccioaV+~EL*#bxOF9rPRDi~s9IK#`hz}oZ~x& zUP5CpDV=9sO>N2|BGdZU^NT5Fl-i%UOffjC>yl3(C~8pwW=B#nWvBV8u;JGL*DaMk zj2ziOv`BNH++v%V?6Rrr>ke9~h2utsg9)TXNWy)FyXH8m3Kf1~R;jTp@Z?o$BNcYF<8QEMJxiuO#DoIK5iO^3wz zyS}M^e!%7s#!V^CxXZo{YGJPF@^~*Dmc4|A>ZC2!&Q2| z{A+ZMFTXd}6$aod1Xr1M^jS0L4fJ8}V?5E^%3KgWnGTUNq&9}XVk*ycuLAm$+>4w% zuM`Egt*3U)yVupt>9ONq`*k5fO}X;1mQK zdBK?YmInPhg1B^?GE5l?y3N8|;@nLAquIsR{IW#|nNCxV`V}1jM1_QTPx5rrT>fRU zx!1%XXf>pG@^^1(&9$@_Fl~{S*bnwCH6iXORHZMjR&6TG;FrUO3#tM149fect|vGA zO8D?z7C5~JZImSYznaUgtEu;39eo7!Jn#~{~+G3<`=V`$nHo@DhwT9Y88st|bTr}YU)R9S@kg>46IvAeu5`RxWhVGyPhxr}aaewoZ}2B?XA!1yulHpn>-1%V z1#TNF;fUO^9@Ca}o3Cl`Y<8cnon;nApAB&v4p)heZu%+9Y+%h6- zpr_{*6x~wD(AP@F>Mv$4`GCeA%q`t?6ZvytxDAz$%mv^@@>|AS-1VN{m{uO#1sK3z zkc%X~VijXaOy3sCR$@sYZo<{dh)+Ufe0r3~scH`rdOF+e>1w}V>QyPwJ3&uU0DLlR zXNc=9!GHWZcP{ulM8`*Ky(4LJJMq#uptfh-?BkCfa(nOTh7ol z19nw8$LHZ#6Qo~OM9tdf6H(yW0G5zc$w#A^HFj}LADEB`5W~H2 z*w)Crt@|-4=)ln%Nb-=(kV@kgdb0191~HszBZ5Zti69YLW0#V)K+3{C%+E!Wjz9rP zSR9E4FhXHMIIGnhz%nu7tEy3{?IdAfBg`B@(hxE~30?;F~c1Ih*=cX=$ivsCsO~9)ud~i$2j$jVKP1l|esCCt{yH4k@*Q zEW<76_(h}BZ8_&<`v+s;Z8uxnISW* z!daS-r4af1Mz}K(dFVUx<^qqYF6j!?{r&7{T&IPXi6zU=1%W#o@1o5s4w-?RWF&!Q zzS&B#K2zJba+v_=Yz3&Hq5YoS-Z^);iOKlwKC`5BU?zIULuHz`){6(zP*2KkGT`fy zA_k7akWu&b9;!VBS%*opudQFyQZPN?SF>y5O0X+on#)NujFRRJn zfpRvZC==%?8aNN*;XsC(%gkPEKcfTH=9ug6Vl+@{3e8Bw}t zz&RarP2#DK+i%j?ne|$tLaJk>B+$Dy>9UdkW={zgPP1Sn9saxpwsFGvx|E7vN8R&x zk*ogy2$IBxk9;OFaE>b<1_6aE()$RvC`|+A21Jri4Fjm|;a`Ay8xz!fnBO&J8-(1# zelT!`+%@nRg?r3rDAJx5ZoRak2M$%p+Q}Y-ZDE=Taet-h3jhtHMyoaI$tkNNpHIl8 zM&|#!UW-~Alj1kfpN|qMn*$f`g>CI47T?0tQ+8uYJ`Q?MvA})K85ZhZ{~rr#Pnd!Q zVvlrlFcenp+%vL6-5?~?)vExL>$N_=fR6G_lSne769r3LdTc2QH!z)nZtbxt$01K= zroTpzNsJPg90Nb-neZy_fIoWSBwyD*`mpflk^k8)fdB8lL|#dRm+&uDhkBzBw24qS z<*hAvGxi2vnlDSXG&EW%b9nIm%PbWru@wX{`~+HV5EC9b`OB~R&N_m8b3K6(*_(UX zn_B$P#3g$vZ;iPm{X>lB_zziT)!rCVfv}31_IsRDPi~=hCRJuL{C-HBU?&rwhw5<4 zdwiaRr@3P~DAWn)Ast zovrTMe~$5WG!Ahg@F9cjyGE-2*_IMc#*95n|D`r{wGTG-^PV*5+fUMVCK*jQ9#;5by%&E*6TJYkk?qoq!=&QIBYwsibcqAX7dltkvWUJG!b2dm^+ja1-rd0eP+d?Op+Vl;wan@7K(_o#8&SZ;(Oge`poD-G^2`VAYwmGz?|Bqa-p(B+{x7Ld}J_CX2p# z3e6)dxL0`)ibwv`H)Zc>8jcMtRBaF@cfvGc$%H;bqmjav?X^gX#PbKFocy>=0z|cd zayYo+0X+c@6^bHSOdlP=eL@(t5avWG`m*>f!gCxL$foPVcMbD~JE)35kX*yhZj9LX z1jZMc*Q|6^YJe3N z4VJ9hrdogO1PXp?JcZ_EzFypxQV+JmL*&&Ajd zDOIp;LiW^u9?c69ymUDO(QNE0f=BQA2~cdq)D%&2*f8au4D-yymsb6NzQ(TCx}jK< zk$@E@tZgpb7;TmEPv`V;PF9C$ zjV@>ckUFJ4{2$F1(PmQm9mk$|`0tOO>R+L_YITJC3O9hJG>z3(% zBoy*vq62*Y-?p~>;IN#%lUCTith@6}f4qQ+#4v|}D|M~rYMtuq^(9HSYd_I(??nhYSOCfi8UVqW_*Di5xQNBG(%Pn1xdenfzEm7+w06+myj_;C zONDV)$4;DwsHXZ_GrSpz6BUUZK`cE}qjM~4oY(l~{61h;Q225|Obr~pKofhbI-I>@ zlPJ)VwOO`p+qP}nwr!lUZJn}h+c;(0wmH=?-Jjl>+Y__@!-`y)`^j8$)kg8=c(}UV ze@_r@uzv5LD04^bel)3c{m@w7XPWCr&92WH6GxIi_7nYC$|UYZ2ZO$elNhW77jQ{_ z*}Q1p4P3O&SyhTzZsmsnq=0 z>+aJDc8NzySwS2d8w(`QPG9tSv9b*Tx?Lh@FGTgtWmk8QehHs7_{a_YX11h;6Ee2< zxqK?M(kM~VtYA-n)rT@5D;*UJcS-o5x9=nRCpE8P>bHLg^P^Ge`mmi{|3GV&oOgc7 zI2VCW(HDnk<<&fh*9J#-K3NTo-H$g=0cygeUnMelT*P7i$(95VpG5I6NU5u7S+$CW z5y&sH@8=xKQ;5%gmO~Z8Y**s&1kGbwUQX!fyjI|=Etvh9M@_Zb2=ub-H2xQ^WU(yD zjg12`hXZO7^j2QGF6cK+pTm#DuVKhlXIZF|9~DKKElo-_5vkXeB>=Fi4dbXwWsBnE zQ~`mN+(i(EWCFEW*y4m;@EzQ zT!zG%APs~1?Ply@k%CC7Jp6?7!@xG3c~luZA2>=go6JX*)Lc>l2C!FqkMvTk>3s$kl121*Q@64sQlIV+1 z)a1)xoFNjXC=(TZg1+F=_<0RR5m4CHT1Jl3Vf)XGkIwe#jfBq2#ZufpBoMW))&?0RdG>x&Na+A6EWXdoAgFq}_=T5Rt0MD8GR}3{kE!JST}f zKBRr%C%wJ$$!_{t=#x7yC=0{kO}R+Th=A>&Kyh_HlHrFgq8TjLJKDEV{~fg?qIU| zv$BYTm|bYE`@WX-Ji48ty*;v9WFHqCek0x3$1|P1aTqf0F(Dx&)xg6im+r*B8T*mZ{fOpeC5haA}3Owi(ya|O7 zq|vkfVu3GDCMW_1V~by9CLy)jPN$(Ug$=*ojpTAUm*z$1VY%{J-ECB{_#|a5nX#`H zXu$XW<>{E*{4USGoNh&fcLjN(nO#(8Jq^h;3av22j9eXA8J&>^p z-1g3u7yeF zUPaFJV2r0o0JTvnYwEUBGcI+30()$MsX%y6hYwVZvb#7+9$%`&k257!vkVbc^h!== z!T(?^ixKt~`iz1N#1-T*F7tz`)S*bLxr_2k{$Ik@-<;%I zLV#C2000~y7ixzAm;gq>FtNDiw(P?ypv{p&jB~v)iTwU%=7_h544^b?mJ9u~JgF$6 z*E8zIB}<_HHCh??_x)xmdl3GIEM+vI|ISi&Lf`>-cVjLGB1~Ppf`}G{vc##+3X}Xr)1Wc5gWxdMlMsL{DfF}u5xS&HFRtF+o0Np2$e`S` zTG7$~CBr9UUnSaQ4KQmuc&y>A*h-spueMYgVb8u{ z(zH)xL6W1YbECO3b{RWY$~58rE*f{%-M_&KZ>X{-UAbAJX$$@%OY*`3P1Y7?*ILP6KOZG&83G^k89e*#!^>VX!!MR06S8^xPB zG%-p_!Wl*Ao0K-g9uYHDZ_yrqz+5aDh+mM1Wl)0E8}RxTI10}-Gc~6J3MV}hCUu*)DG7Zsh}>mt009x?K+R>i`2Fq^;OOFqnExVSm~x>9 zK(B*JaK}higFuS!D!PtTSh4<{M$Qb>m{VNpffjjxA+Vh~s2r8kNDKg~;)clo$#Ue9 z$X=Avp6exOO*90i^B|Z7*@h71I|0{KVU#HT&ycb?B-=F%B4^ zd6wFB2+@{gsD5$V+p}?_|KWKXT+6e^dJv*M$~3wB6ze-z(0Hs@s-U}v_qggBbQuK2 zvYDT~R(Q2ah^?oRv<}Qyee>iv$(T*Z&UjTMLrHfO9A2$El=%05vL+;WM^Fm0GmPTBwn{wp&1vl&s9(DThQ(Q-Al*cfr(8n|@g~f0(7{OdyQAyL$Ef zFfZ?(hnOKVd_2%?A{prt1-WoSp=2dzUd#iTd2Ca@P=)Ko3@c06#!HVnhri00cv3@{ zvDAD#`1T4>mr?>W>2r%~@6c-R<%i=M!vxtj0=j5<;UGGUO3<1iMT}i2_tK6i1Sva)a!XL@DOOq_aN31jb6N`xkHV zeSRAP)jDGq-pQEB>tYE1x?WwCv-z?}g}rd;WH8i2s+s14|2|LdH4uX3Mt9T2F-x+s zIH%qxzzaJ&+DcQ4pMX$N224+^8|c2Yaq`K_Hm+C|Q413Tdip-l!<+PcOWCNs#WHo{rsz7rZT8#&G_xV%qn z3;sgAmb)q(i~!n5$H|zeP)gZjv3O|RM(u+Aq4yulSUQz}32;JqZ`W^cP8`+5xO-Rk z%0o2V(lnz;scJrwD$z$Qlv#w{BHwRM6jRmnW&=CF-8)F9?!>{vC=8uhDEML-nZFdA zFDKa;MuVh&FUoGmrMddC$C`RJaYzw(f z)gId(eB4$y-m&fXgRWz$smRAgVG~d~^cJTxdrSrC5A>SXIZ#_5Xw{{}*_V-dgi6T0 zqo*Maw#w!q4<{J?v|V07zTt8LLbvOz;F;lwxACz>D$|AmHVU%Iuh)(W{W@ueX5-Ju z?Az_`2!ds(jN}%&3EhJxTMxD6|9PI~M=U+R_%h?nW0qjK+J(yk&S~d(JzJG2_$Nu0 z@RBgBVs4gs@H52%5CGDL{!9*EHQK1s8ma1@b+t;!qO?`*HyWu(AAakri8@N~qa63N zWL;h~EuCDtC6dc1k}n_6+H|x4ERxV{kS1Qq`<*y%{IVTn>EM-`+04FHBR<$sSaw$d z&nmB{A8$jIEErzZA^D+C$y+bP>mYISx%}xHd}yGwVKkpKAl~+$(F&U6+9$(VZHWzo0qXpt~uz zb@5a+R=oLa<*xg@wxCe>>!O^_#&2+dXJT?n`Kafm*L{-#wOm~zh&tfp91!GHaZZ3h zpDptVhqw+a=txAR0KQU2PqZiKkoWj^9X@MM9`&kmQ1j9ZX9%gGCpQeg@^5dOIo6+= z`@Bkycky)Eo}A<^q*c0VZG)a=w@?(-DYWQxm)-X}GudRWcCQ-Bf}dl&Yf%v1{T)|e zy8b57TZ$kR1<589x}=rq#l!~8O$iBn6Jb{isx)M5VqT44P7@J%<0GAEN($kbdl%e3 z+O{Sv#D;oR{3KeX{(gKKV>0rtmyqd{SZ=l%z%ti-1M2o@O?Het5E??T2AIQl^DF@Lew?R!wgrX~(g@cup zLUDnU=qBh^0<#$oB|2-@AaqB3$Mky;TZpLpJXayMG6QMMG)E?wuBfj#7*H#Er&xx8 zM;mou$-sPcVAv4qB7E#5rXV+u$?XQ!D)%0xT1FN7B5{87n8rGqsn#5(ph79wMO!SP z_%vF(2GPeMKxPS?uqKD2u#m*zIFRbsa<=6wcQHF7b+`7R=snd;Y^d~;9sCnRSU?wz zoE(mD4X}b~BuP6?o#?~kYU3ZCgsv@`85+^T)W!q6eP4#Cqu9@?15PkVLum*=Ue;07 zpzwmQ^zv`8;lc9GsxTY(0ecSyz`;ie3%{VS=bGQ@2MVF>7;2qD4s>I1+-IE+0}m(` z`;K=IyA4_&zWH&SGQ4H_ORg@#J=we-aPdm(Vop3+50U5?_y%&{O=1}`20Pu0R|6RMCyNhjM&OfMp>f>W^P9=q?*a#gki zdbH8HH0RUte)u$w9YesO zRK?M&1QbfkKp_-=eR8EIt`O+<6>MXmv76_=2u5M{3*4=BIFSf6yt&e|842`e!+FgQ z@nf%k*DP7)Fb$hI>AH_=3B&9oPkW~IAMuYw@B!#2rwU)t>ckHU&sJbbpY_CUE>*+h z>PZY`F8Ew(HXMHr78auB_#C3%Mar#lJ1JjUyl}t6!=V8iXCuwFtNf-s%092+h#B~M zc-9$O0Rgj74^w!3q6XR$1*XQNSfd|XWu@ud1EFU&oOs8@W#lDl$Dz46u{Seif80~h z^5?k8AVd{wL1IQrv->&8TQr_~l9)z@EZXiocV2SITbZW=1>MUQ0-4rjQxJV6t_iQZS}o$?SDCZyWBv6In3d&<(YZO9`2o6H_T^NkV~%37o3 zREhT|rcHtZq&N=ud0C#9aU`Q41FB_**0=e8MKUZIus$ z6g|C)vZ208{Mf@_7NknS37&|yxII!t^GW}2vT;LT~lA|xRa zc)|C>k>FpglD#fDuwrqOkIRa(nQL)YI8O?9J^tiAxHjpV$DPrxNA{k=$ZexHF{55p zzT$*}1!^co_uZoHZXhwSJRO&Zz*>+zQpS`vh7~ER30`JsKxIl5zt)7Z?q|o9ZDP<= zyJ}UfkXp82c5|@rXe=dMR97I+D(WbiW!2^iM`)FUcqi-PIQob_|pG{-h z%w??`??`o-*9blwAPN)rVlyHrsNfxabV=S@Ysd~FQ3E{?o?kHyZ&A>h1d z9q?k{Ie{lCRG#~WV*1z|g?er)5xne{=5m$O4IqB~jy`Ae%glJ>^g(Lf`E|!t6wN)@ z;E~4a#KsYv9p@N=ui-qYTGLsQ-l@{=9c)aXQoQ?lV7=7Y)VT3tefjX%?k|Und8b>U zHBOsS$ou0?#uIEjSmyZGI#?%EwBs>Pb{NQ}^mD;${W+usj~@w;X#i{=Sb{~e330J2 zZppJ%y*QF)-}1_ndR@i&X(^aG1ar_A<_~3alX}v6Lf;G1(bz#(7V9?^a#M{R6HJqE z*o?0xXb+nJWGfaMhySp8o^3BU54@c7c$gvxcQ);CI}#Ytk{((5T7=V87HmXv0dN5O zlgyR$Ys6M14(TOqtKDR1!rF%q^LL>4R8561XDy2h`f>-Ssh-qQ-iczBT9P*O^nK z#*)AQ+&n8^D70dNl|9A9;LE%pDTfmsT42`oJN3mciAZhuCea^{7sU7h%A#;s%J2v7 z5UmDxyOAm}pCWw|_Znf>Oy#UFye3)iPV5TWf}9~X5hJN>LeR}0tEtj-_67m2i*vHQ zCh9M%)tNXrG5u$-fJ6EK7WKp-5I%#VD8OkRyjm1~m*1B4z3DM-i|pejq^72XaNo=Q zkyDH|C)0)*4G8!HL&(L+hOoX-M#(u9kjGV3U@$pKS~>Ip?INN0CX8EPl?Yv?ztDGv zU?o4DX9I}!u%FXNtdf7{??mGkq*N1NX34e=?yeuJQIp+H^@lupJSgT;&d%aF$;QfS zvwr4if#sHk1GERw9-_2M9aNsA+epg5ERR-bnWZXH8InQqNe06iyU{kos&uzsKb2ia zO6~6#QvN!i{uk>|-m0`_$kLY#mfnZv$u;Wg^0byM%k!QazNy`~^*j~g`-LIXx6g1Mi)E>Tf~iW< zOT+!Y+QJPOZM@g3#=>+N89*oBOVqd0WK}sFWaULd?5}Bi1PPD6EK9F?q7oa;mL~>C z}9mDmkBsGxXMB#hBodL+oz^u)9Dl@9r95wy? znt&hx1mlO=G^Dqk+LaRsU92oLhumvv$4cnnL>k2>)-F>NLWfb!(6g-0$?Lp53|KDS z`HWNHZ5+X$zm`=NIP-268)wbXCVYCsRVFUj3@H99 zezJjlnEkhF)XM35$?QdXYF^@R>u92sN$RW)bnl81l2gk#!d6sEZuG1)>g@UInm|7T zo`1f2>^p&!*g5)oBqzge{SERlY}82dW!?t=V@7utS#tRfb_%`> z3cTq=Fn?!mg;;Ys9hfnK8Y&!L2zubWn-@iDN36?2)C&qG z6=TXUOdC=hj=^yopw3(bhicVh#nJ^;CuBHZ8iyd!#k_7TNKHP`e9Z=2TOJ3n5pHLW zjketV3Q4^Av?@T0E%#6KR>nh=0|~?GZ(7K}$F1!!^Y<{+b0DUB&Moel_hGeFJ-3`t zNCvqUw1p&trRZkh$oFCJh)AhKSMX@83fp{I5J3c?m|55oKBiG-k}ao%<*~VlxAn1YFAk{V+w#=A2*ZR2&stjPAxHb$oOm(95MLhw*HTACJ< zIu2+)n-nln1}>$pvrj}k&*R_u-T#SCJo{v=QnlZv(W3gSEBg2A4aRQMJVq0OeZ290 z5gtI1Tpt4WRZ`Xzz&IJpo&Buo2VgS-2o8+7|N0CmB*w9{TQXP05{{zKET{H#xa3Z0cSPuaLXuHq^Lm2Jk=u0O*9r z4uJzjQdwHgUaR_PSPsFI*^ff&B&P}F7*XkcX>aM7HI4dY&h0OA+#i=3b1E(L$O9Xo z;pa>V5LL$L?RZsTfIt0rF)FdKk295xk2_G>9N&ekay9BNKac4j-XLYf0DJCZ9FY6L z!tFmkZgzh)Ezb7daRyPqYleg+M-yM3g{aS&oiuO5qYD}>sftnH>~1;kkAGmil9fiL z!9S#CHuc6_o~T@&K9_)YWTm=eHTF4QnjRmEw%v-^`E|z}nwWK#xAeiMWBqAgycC~P z*|z7VM}w=$Lu=?3UeE{cFqX#!xA#hmvd=-(lu3O=R_(fN;bele@`HguqeceeAQ4Zc z!!J2x65Be#^J0B(d)xDQ_F8mw{1<598*Tq!-D|AksPLxILw5}>w4grGF)+CX;ejn5 zKT`dRmN_`$r2j`z_>!T(gq=V&S@#KMAougt^O!*YGl;CSbJ?yK6YYE*Wj6{+xPPi~ z2#Qp@75^u#b&NTqAz3Y#V)vrcWOgngedmo2`_nj?snqp_Di;KWozr~TRn$YZgXu{f z9=%XJBTQ=(7Pg(8U^+2`JC<4?SdDiEB@vZ=zQqPYcR@^Z-ov&szv9@W0rC zYjyWWMUxt1PfBC~Hiz8(+uMe*K2!K*V)G#GH^QO|Tm>sG_{cP;_FmoExfb;ll)-Okb1#29z!64U z@qS+?y{3&0G7hQH+Gekk=^?pkXBWM0ttg;*kXD-#4ta%DXKhWaEcL?|xgjS!f3jgM zuj-RH)*gP9x6AGHJ#O@JhBS{5ckZncSF?)Q5}f-m?|+t@O&sI4(a)ZPQ!b2g_qiM1fP)2H%tsB>i?*fZlz7aO~B66^7Z(hX1^lWo|j?lxT$m zdrDrjm6Pd$wQNZy9|B_BF#Z~iJ_TUGlLf%GpL>Y43pw7%ZI90g3iN$+X!L2xNrCo&*lu`qmvak$OxNA8o%d2%b#lJ5T1cf+MR9^#~*39Jb4@>l|K;Z_GXbS~VQ^aDVp){*LT6KyQr2R+8b@AfX z!p&MCUbypa64bdX;~T(p#nfzbGzErnV~-TPpZ8q$PqPhKmpjbp-x6uWxu%7jf4((po9uB!1=OT>g%)yK$z;=wA1%D9 zj~+nGNrQ!s{PL?%OP)w;nw28_1?B5~B&iHz9d#3)oOzn#0<(%&Yd&S-wrS}P8KhhITg;eBiT7KZhM~mvn86vpDwasrB zJM8j~savN{W+1Ei2CTjP^fc{%EDb-RQ{lb6D6KXImF8Q@H^MQiJ(sqvL}RCk3~$vY z{YfJCv|7(=hibxxYWmiq%`R4N^q5f<;tU!AHOgAbdz0QY^Yr|RL%-2%1OsW|e_k)| zwaI7_ot;FN*6Fq)_fOvNItA~?o^!c+FDf8ti5~a3DH4|imxlK=6rG?Bo2?9*s+WVf zx)}41c}f3>3({YX6MKnRiZ(+U>xDz&@qJ!gRFGbdYSue?8?I3-XBXV&Ev{$v@7+pW zv1l2$iN=)s9rDKa%qbL2z|$xu2JNX9y#FGx_05VVFkfpB-XF^kk2(KD;FD*w<9j+C zT2&#{oHs5QJ^~)(b`Bm<@Qh+np(Nz zm$CFirft*}*>)NZ8X$xdGNL-yx6?6(L$ z>`mfpS~8;!t5bn^=ItCG5x0;DthT5(^~ewtTRQLmG0k!d@2tuWUP^bqgH%sCoZzSO zxgSKq4t)EY#CMY==Bd5}`^k6qDTtS7wQcD5jD<(GzZP4%WG2sz-9lZFJvRf8v~d;b zF*TjU+V7gvCA`^y3M5+YU$6eO&Py;<1xuxyz-8TrHnb4J+C4O8$?%p6I@}72>&7*# z(KBdJw=I{&m-Dh+_2I^#g52vzrH8&vgbh4@80LW0=7Mn*pgToW7)QOS9_wAO<0ufO z4zjz>V+80c~(9XD5mPB2<~89$FRDq$Ryg zRQo+6Ra$4uEJKFsBEUa(BwyUEQu!&b(vOCID+RvFPFOq^)B#fe+noDmX-H^=8H5Qf zZ%`Fib#esHI*6I}kAEcB0q{)O*_ZHHCJNv*+HVJE#(F$vpoJ&hB9-hZBT@_jE?azyPSIR zL(uFK_mRkL&l$8@uzuIQef(HWCmiMqt6mWcC zk36)@`*3x7I`?dZ;|KdbURC$Fx2CBYy&>P)6Yu6i+K9s2wq++Ktu=CC;HGrCr3T5m z>A~R?Mm`EaVk#S6GC&e;X#x?-4=xaXdHE8MmB*dWR-H9HcQSN=&2GYGkdHpSINYBk zF73eA>S9i3Rgsgmou+Qb;yy~fuBdVvMz<@>5Cp}LqFAm;jpg%0Vx#$HBid@fIy(ar zs18F9Vk-2x8j4cIxVH0_jYBPio>=Qct!+lHH6_2)NwU9OGvAb>r%)dv!qt8f9)f7& zH`~9wM?EyatIU7#9%gX3QjSVQazWqmiP$cGkpFj@+c;9oA&5oV{;VYYW%Ap?Tuk4+xDtVbZ9~jWtEP{c)w||KwxqY1b%^C&ICj{XS9?;S|Uoa zq}28+vt(?JhG3fMe;C0k2vp`br9RfCqx7VBU*Ca*6KoZT{nIf__%lQ01`?6DVKh@;`*D*oQ$_yXC6*{zm7wOQt6T?xf*7yxt!j8ZZ zz&EgjQvY^se2m`7%n!YdLDJ0#T=?Bn)|OFn_yn->pR+y^Q$^4VIJ@0L*KvN-KbVg+ zf0v-o&C^$-h8^Q^I>CGwGPfj<%+)%Z(XDRh@k3Z&U_Lt=UU5gL>((uhX)8Vm^We6< zt|OKjrPXz@!s@$~E*w2ud)5JNJ-R*-a+(mp=)~R^>Xr}ya0hiF=|TED{y}rdKpOV5 zR}yIEMGcDX=u<%p(jT<3Vm_MXtJn?@AF&9V;GaVXCL(NiH7R4SgIIA)k9d)RAJv`y z?o0AGf%{6ju8|95gsy&YWSPmWFjr$KIF6X+fQe4>k<&*0U>PEfu>P1{#ch9{1I{L{ zMnD;2Ma!}ERG)&~VdaGJ^59wgIp;_x9gb8eN@vsw z`#`Y?GV`UXfRmGk^)A5j>X^twd`FK=Z73TwV~$r59k;PN5Ld-ZxpQ~5HQNU-Ez=9a zPGD@1qAg~5z5-lST#uH&6vz|tNGjf`>H!+@>`vt2w0?I$m7j#-2V`%`=y)Ce9)m9d z6TZ2=KOWANdt$z^Lk~s|RoKfZ!x*XBm|<9?(`V2B$9Hg;srAXjR%}(TW1eL1gL_z{3GAh9 zNzUsd?bG`vJNI(uKndb8m?*nU=X^egf1t-R({iMo-e1M1R^ceIldWayOd({zsLO(} z(_YVgbcPQpV5KZ9V~+>*lcN~41l1ZTigKJ|SHswV%iI{<*>(>Ui%zwb?f^aiSX5q3 z4QIIQUKJ)3^%LUVcKq$)njm1hnWS}ht`l#;rELB^1zynX*8Jyg@(P|4o5~XVEZMH6 zIqJNmuxk|OwlXb5K&+N{g8)Hyrb|D7G2R7YQX6#KI0X24mJDC8;8kon~O=U?B}XpaiB zB0e1t(p>EBK5HOJ^-Ke(6sMlSIT4z(Fm4kSd^lDJkD7&SIl}N6-V2U$^?MzcTxZmn zicwm}0wH2nq*)rnABi7!Fc>=vbluq=iSiA(w>I`zan1um{(mgA6!z ziPt1-P3qgQTIAD*@l&y~!I6D(BOGkgmpIfTT6P-J%Xp#T7)x}5Kp?}fJjNKyWqzRw z9{QVrFy+wkpDfZ@f6^MYs*nv{-=|gb0t%DUmbQAVY|4ly6q^R=-P~t;a|_)z&hiWV zmGa*(%<9mOetna`tRKb|G+2TQCM$5i7uBmi??R`|lb;DtP@wgYU4JbVC&|q5yfH1x z<4VX~p4?Pf4jsgFnSV1MzKg{ra#?;vBuAvXo}GcNyX){akbr+M^_J=F=d)0{^tWE$aIL`>uF>>`hSHwr7H(`+Heij;7+3 z)`W6i-EDnjC(x4vaZ8y`M5Wocp?xagT0mTterHZvZwc z`!m4zk_0PzwHbTptCbTB7Y*8y|Hvw~)5a@bUp z@RCJBm;+z>9(_q!Bk7Lo>XCj{S_<;gFuM+p8S%?#YU=pp`!O;AYYHf~86hZlTwBJR zJ3L7n-M-`4hhe6`ry8zk*=?kcgx{(OB+7FAbVQc=v13FY*1s)XVNEx$s9fI_VQGwn z#!qBDKl@K~c`K3!SDYlswidamxj*@S9J;-P^x4QwASoD)!?>MJ_&}{9-b4taxg5Nb zY~PleVP|c;!Zp+~4IUlhuJCw>T9kuRbo}Wb3a{=(jC*1osNH<5|6M?q?`!p3d*W{x zTr@totur`tC6me`eR&;Vh(|EEbz9AEt%SOX9PHU}rxo8eicuGoif~X)A8f)eLK#($+-{w??2eJ}Gtfr-;@EXi>0M2nagj1u*#@N>e z^DN;Gx!u^5=sq~cafmXFgG{v*dLVHAsrri0@)7l42@3+p@s8;`NKyG~bOe4N-r?JE2Mop=4L!NL+!8=%LSdw)ib}PN zzz!q&@`agjwehdhzrU>KH})n6==N#-6c+;;6EdWxo~dZ4mrN(%?KqeiOq}Sq`9QXQ9=uP`tFzu2h_nSk z@HgB?m2A;EAAAnu$UvrIGZ6Eg>PW#6{ezH8z;JmLr3ZL;>yEDc9K^)kc92goweblc zrq!k*OQSEG-RX?MuDfC4_My%K^PhjQDQLV@Dz+uuxmK zGOp|*=Rcel(jH;0fN_rrntYmU{L7Hw7h!0-(0b+VXmAKTa_i=VvS76g-~B{{p3aMhke1c>;3+3D~k;)#^zB$vzZbVDW=r}kKU28Ci*oZt{5{4&@806+it>#3ST zm7=;5%^gri)=#e_A^i32s=)v4+ksKLaSfmtgenRH&{hYx>Hkko`~M4;4RHtbAAEZW z_<#F$A;ACf?YzPBh1Q3Ll<)#BDm{*4a!H8wuS>Y&pEMt z`i+JZQ$bYpI4hW^$PlKU!??5xS#~_AVRWk!jP;U-VsgbL3z~x3uM9YFH?gcUswC++ zJqV_f*fpy10w&;VxV^$iG+owq(J2c}46Uh3LT-x6yOr)d^P$9GwVL)jRu%Z#rzWLi zyRNy_NamIJ0aqvOQ8B z1^Ms@ukS$b)Nr?$@joQ3J2e-NOa?2}HdG;z`Ev)}2HW)J)%=t}iZr7kHd3|xBO!Z+ zYN~IYgk&nq7r?WCF4f~+Q!C6mz?cXbVvx+GEhaXTTz*fyJ}5VZ+p0=!aGb@B3J;k^ z6U#BjNrz71Xti|Yvmb|Ox|x|M(2>Yt1giK0a;<7Xv*pLg4Yt3ymBw(DD+3!Tvr1BS z`PQ!I3kS$3vY{=|^BO@2P1gdr3?kZ}=8$fI-Mjg8^2``zg46R0KAs>0ypohtJ`^CT zTuDCDi?VD;ta>GT8TERYqa-PsUJN|>`0#+Xledt=mEWUtA4Dh}p!#w<>ym><`5K88 z@0_fi2kQNS1`%t#zI>)gzy@4bN***R?aZoJPuw9AMM~yfvO{+8{ec338K_6P^=+pM z`uZdE_EP1n=*?5fqEUiZQ?@M}?88<5pAF3#OcdureQB}G0!2?Z{y!z(*1KBk)~?2M zT^gYtCQq;_=VOEK7Ey5~u!4Y)gl_ZL8$U+p*Z}2xAQl4<2B^Q%njvOZfyvvEE#&Fq z=F%D3o?rAMCNSY3Bq&beLgS@E++7Lr-xcBsb#KKm`Fa}t=M+=8 zEB&0OMypKP+4Xq?_2u&*)E(!3%zqoV6u1y;Zc^FEZ{m~dHsJh$ewQ=C144X-7V%2g zOrPfkRqidm zT&{s>*;nI|cTZ0Xn#Du`&}ds9QOgea1?H^#217q!Hv70`$d@^CW$Xqzo~`4QIvyVn z6*`)!*YaQL-$k>|*$WXH*#lmavfXhUM*u}Jba=$$tMba4Fld9ON7i(XQT#5N(qr>3 zmb|y;=?DQJV7FSSl%Q`bLH_Z+tYUF}^5^O^8G-tDsAVctu`rq6Eb!M(7bK~6#d=JCL<1ykR$%O(aJH7{JC#%d)SU3V8IAW z;0APb$i-dxs$7$U;zfDA6!@f8wzd_%|cWwCK3&;X@dj+M&{&F~C;v1OGl z0r>$;M+j!E`gEM`8#V032WgK6>QTD>#v~6*E%eiy&g9xumne6Zpgc+muWzuthbJMq65v%@eH3S0W5UWrvGIf$7zc5huzz|A60YT!hYe|L5X}eb ztZW*K)_|Nj-#?KrD>FQLQr=Lob}SD-71}Ax$;XuTCDT8vr;Wk-dFO0~wNnjw8)f^= za8F;6fB5+Ku-H@Cho58uo%ifnNJ{+MD4{7G=ouV69((2ON=OO>IeGVM;U-Ql0n2r2 z4_H2*nBX{1ywi{IVlT}$sJECVO1XZbJ3e<~%}q%#d885sf}s4{;fRhef^1uO2nBZl zcVy3r)8FrfDb;$73&?Q#8Jbep@q@%&PiI>f{%gHh33f{s2E|+gOH*nR5mQ#=C;UWu zCEmYIYBa};ry1#a{j>tCKJ0l>B<0oD`ZsUFB{js8UmyL+w+w&u{EGcBsT=>_hTr*R6~#R%Q9;B4(U(wFQPIP& zkR3nzcxbw_!O0^YV2mSrO&B-nqX)G8Ftu~Cr?V`;7KQEx0d+G&?|W?3GwkfRl$6Bs zOR{7J5zlV1+QN^WhFHL9S@0dQq78uyN!nb0rltDt>|Lq5It#8b4K+5}mT@)favC*! z->@Of?X1{=%u=w}CKxKl-RxCE7~CV`Hsys897dRpnX>+!RHsUxR;V`%>x>#rXm|L8 z*AMw|)W@E|-??l1FQn(y{45u_^g+mtK)?>En^#D}pTTi}R}U+T4*n7!a5IcBQvrUP z0~t?_yFK9K&G`5l@g+0@_~mO6RmQqCSLJABKmhI_qzs&&h)Y*G#_a8zr`+2QIRThF zJl4Ag8=L8xzOK@ul&NN@o4po=Qv4y%z1Yc{(TsE1NrmlcjOOXXK3X?uHFPN7;y6bN zjW_W3wVZWu%MMusD)}js6joRV0={VhPn&X`X)RVU(z%r_FdDE8hB)=kDI(0NmB&_BY48=zfZJyvT+!j&(VbGx(i=nX{LkUIdP_zhiZ!XOD{U2cQ^Nn|W?4t=_9(qNZRZ^Cr zn=k};;I@aE=aQA1zBxpn$V;$RZL$ZzC?d!~N$&jJ?mNuM2jfdReP3}f9x>7`RVt*9 zM}pTH9sc^K>HJIPOX`4v9BOyoV$kS9B-U)~c}zB@xK@J>e*c+nWZu<>#y_$?tx7a7 z{=Y~&r!LW=06Dj9+qP}nw)?hiTeof7wr$(SZQJhYOeT3r);uKt;q0?&*RJ|%KtZV} zaZfdjgc^u)kO>=;4rujLiE05i=0-!}<2pBME1D}vg&LSzfUtuc<3tlCkK4uXD~Ev2 zR(Z>3b%jni9M=ZPQm)4W(Q|gS6|SL!a?g+s6py<(7tqC((&$Rbu8vDk&`N}bS+oxu zV|lKbWu?@kc;dM{sViB`Cx$VH-*N{)bon zejnd)5Ph>oX9?Ts6lujBdgk(6^1beY#D`U-L*geje;S~!XcJWCldYp7(x`m5qjT5E z+8IkMB=?+l5c=a@64{Qtu2UWkJqPlkG>6r-f0@1S;vT;JMNH;V_hs&reo?wLaI|uf zjhVLY9n9yMz2L@uDytu?H~y&rtV)sXbJD}wuc~vopBER0w5H%WVpR=Yo%B! z4I|2mPWP+G?BSGaYC%Y-vt5;56FP z+y`!DZ}+tx;^7|U!CC5P)KoCm#*6t08zc7Xw+P#DyJ`NsJ(L@8r`c5X4eNW6#MyRS zbwm=3uI-I{Feq0;NnPV#_&2?6vxjX&n71=k_X-a2^#ZTP?}1R^w%dm%uV~v8VNotc zBXNy-Xh55K5?ohOULz=~vBEWP=Yg)rN_uAGCqiFiEulq}@FP6zcgCMry{2Y6Nnc9)`_^ZkK^n?z( zwUv%~JW#X(gTeW`$cb};Xn~MbpYo%C&6`=iko2Gb1_c?x!VLmSN(^D*LsA{NbE$79 z5#)XBXwb})y=iLBv14N$qy908C;~)#Yl}Wl_i%oZ$8S8F13u%C1-BxG^u5=%y-)2~ z1>TUNRGed(?ZJU2u8O;;DHuz^XH0CGN zKGfMRj%cmP>WPKe^{~DV)e}p~7Gl&Wdf^x8Vow3xkdCL|hyU zKhXxkjxHwcDDp((;32#>Ay<;b9VB0w5plxNg6YQLNRtiiw~TeghpM3fI0nPzcLb`H zHrNj7#DNH8jY`dkuG)#>9a0AH{S~`p{_Yzw|E5JMEyi|mMf-vBJQ`=aQ$ZCOiL6$u z==bvu-Iu&}EM19y3vyNIh|Fp$O) zAlUMgz(bXjU6+k|S(VAaIahq)KeWqa@4=yL+f>NLceXaon z%lj#M?CPL~4PbdK^zOk}nK;_a?F&ko$a<%DeM1*cOo%hH z!xT+sJUn=fKCoi7ze%5JHH#rpg)?!{5=p#r*4@)UMbc%Vld1Rt&uc6vl6S zaqsr{(6J_5UYNS?Qb&WvXe2K)?~s(m1o6pY$v>!z(i7WvlM?}`>(WC+rV!ikJ-lMJ z_^nMNExhk%bH;Q!#V|k3xYoSLHo|2U{8Pl(QZ~pWc((-3O&6tdBbm^F+ zMe@rAeEM*zt%AYtil$ftiE1)V&tvFNZ;+sHXt3<5Q=$uu>MXL-!t?ZN)5e;dLx%Ca z*)JWNOwYO@U*_UNk+GCQv~Fsu9UxgeQygr3)982#zv~eSFVS^D8^peP+sjkie-dje z?Bzj6=rbH8N&@(v75j4kGDKG4UF{4vP4sV14;c65Ub`PW(yRVTA1yieO@1B`?3yax zF2yR|5wZTm-5t_0e&M5FRAx+xsRiGlR;FzsPWpnmQf0z(?j97usoCl5BPOjA9;XoS zhgc<~79BzHsFSUMB9j}c(cz)D((KhSQulM3UX&xt4=5l+;Z+&6WI5~!%xwat9zaL? zZsKP7406yG5ofj%v}D|~{o9(mVsv;r%Kkkm`8k48*$qh!l&Gm7EKhpOl%AYc4L$p9 zrQ2FO&GZ%)KFZxyUwNF{Kcg{u;O|&flqm5N7L$9EZv`R$Lz&dnrCKdPYfa%ou8nItO z?sITt9M0LAqdkC`q13pvMJ;ppD?jtVzE+(+N~#fX9M+=k^dKBq z)_JKuyx&^t+aqM2$781E<~s9zj%DmpW|epWn3YMqVaX!?)qO{j5S#c;E@zUZzIeSe z5{W2j$mV7+{uRZPkX#V-Es>(xjC=GsH719gkUE&e#1ddlQVkr}m~1Q>Hc8V*z;$V| zS}4qMXBw=xv`lm3_bw*)2P>n-#dwF>c@%$iT5V>6!2BK)YEU5W4s^ORn#(}$ttvad zR%-6ScPur^xat)Svy@K^z3zZx-atn=$uR<&uxOMcspSvL^H7*?#bEH0@hNiMJk=YQ z(28#LDAHlMKg|#<=hL0rHA1Xs31k-o3E>%ST&=$VIN;th*D!!eDWlMDvLuMBqv>R9 zaRKg3x#`<^s;hv6Q;FQD4Kmf^>tcTj)M*(u!BR4zBrGpMkK6O=KrREb0#nmq9b5{^ z4e3!@W;^Od3#mT5(zw(LpJ&JofMga}x`VcR)tV-NQhGmD)NpUF39jse;dmFO{h%pj zS7`+4F(XrfJbbC|iA%wrA@WFsX33R=#JUUt%iV+yeZHL;f4a`8yI&@7tECwgb0z&2idSoU_M5D48&u>#p@LY>~Vfn zPI`D+DUA@uuc69bKHwlG$GEghV8Y;rHTzrA@3n-1p1jhvSjj^7H+?!pIgQZOO8uS0 zVpj5#g(PKWOG)in%5TQNiypEzJsxPe`EJA!@*<2L~Dmrmkrd_4cV3xw=DfC+G>hfvpDeyIuo?OPF^>F+sFM#X0S%Z*EbA zj+TRkUA#CO+}5K2tx$dFuiNtC2|x`>yTO2JO9nA3b}E~&mY4=pk%ihM@EdU|x%?{~ z)BmMFnM2W5%a}o)ZN^`xBEM52rRDa5WrYWeS(&eCSdOqNuL?k)A>BXx%F`zO6g>7! zljGS#FBbL&>;&KCIWd|Z6mVf&K4XNmfgl@2fd@EB-u8imnA=>iaRPWbUd=j$vD#&0kv_+4H_xNzU4t2#54NZKW{ zu=kc zQx)%qoF$eS&lA$Zez6+Jd}Ll@Roj(XT5xjc`{!>O-{JMx3hbX*e?qI_&JgCl=+Lws zU^zylu%0|W0pIJ^HsaHI@}ko6-4oqhiqZ!tH#sdS7%qj*?Q!_ zC-HIT#U@eW5M#s=^MewNsgKb4oBF|3FC{2HA z{Gk;3z&bGjaa~Rpga&~c(VOk1XJ2fPGk$+HI}aU8>}68Kf_xXB@t$$B*h$ltn)*;b zMvnIvbkz+74Y)*^o`E}+7I|*Mbk1LYzTO7-jUP~y2_-~RjQyq`sJQ7t#;QEkEsk7; zX7GX19f_7^1hoa)bZi0&x{< zXs&C3ll>6hL|5`#ycRVy0JoCQcvcGqvrxK*t74-x9bJ6r3y*-rCa{EkN=nodqo&Zm zyVqlS0Yf&C;wudPt#M@$;h=Cv52@~1veo}gAf|sLa*>vGUykQ{@Vpd7SOCw|wZb-d zpL|53(Kx1kBJz|?YQGY&-g9wnc^|3GEFQbU5C~by{IlHG#jgc2;zscZW@k(7^1B}F z>BsOoM2Wy%G8)&0V`fuasT`y3V55>NbeO1UC(zrr(|$`J-TIlz;$z?Zgooo z_vG_@B(P`mJ2=2ix+i@ZW6XjuY%Ce!bv)m^YD1J z_5i)`V$QpUuM<(mL|g6r)?BqqL>Ib&b?BO&`Zg_%mt;+lLh$YVBpEH4R53@`_E(;k zV5bt`%pas#aerGdFr~x+@GAU)zAa0ryxQc`ZF`Ijwd*qH`XBBH?`@Qr6X&k(W;Dh6 znE*-W$pcz2a`!+F$~1Y)r-OdzWAMZa6xx~X&P0n*rd{U%=BSUmy@o)}2Pjl-qnN1LushgD$hr|;TX zgv+nmmQtK04#Z_^Qs^>=KYwCg8jVS;_uc?r*#qHVkjov*s}mu!tnG@X-)HL!UnMhO zCwxYzp8!TTVh88{9ku{An@}zUX&yRZcL(h)Xim&%UwKX%6d;*jU5NHmDrAp$AiXo$ zZAb@=t=6R)_Vbw@YD*~Z^!uX>9wqRc&?3Z8Tpzi`%`%|*WF;`qML-!(uOED~Z9T*UC7xc@iB$37iED?$^ZMT(93H`?KGHjuof)`Ku}+ zU8RxCB>zk9GU`G5gA-VPO)zpheABgb`qWXhmh$je)*+QxrGgx(vJ$6JLxD;ZfTvIV zAs22BWX{ai=W|hO9m~9<7>e|j)J`5UeBdok;*Jt{?=JL9&PpI~G%{D8`>s!?gX`@< z?U0R`%e1f6;R6NlY^?}z)_R$llTQS93NCBGqf@^|Sv*hBzFJ~@73d2;00*&RpspEf zDX5}2<0Vcp+pR!rGyPUk*^x28a!XJ~x6x0S*sKh`Z#|jBod8rd5XD%4jN6H_5z%t`40(s;xhLlUmswHH zr0!CtIyTMx*m-a#GlW7C?#_4UVWoxe!S-sK;`6p3h8a4ApRipN=y2>Ci2P~ZuE(gxFD8E=*u5`42CdQAZ&hFs&CL(O_;^p`%o+fXL78x1yloa59P zzEj`uHWsFUx&q=^e2thpI&dj^CTeUEc7Q&2Pl6=!y86;r#1kY%>uiXWP@TXkTvZoj zM!RM}LaiPY`t*Ua0zkLODE8Kdd;Wcyc71!uIExN?rM6Y?2N^`iZ##@qGnRkuZG_Sd zYNqeIU~UYL$X;O@=h!ArNKg41=D?z1Lp)MOvO4E9BbmzUUfP#dAw)Jpt3`+7E_a+3tFC6sC-xTZ@h^dt`#qK%pR^(b zSW4u6%ru-{zMe{bpFAFESb-AZ%9V#S;k~=Avy3vYyL1^dzV%Qv9m7r%SwTHW6HYIZfu>@2`Is#V2H1`vl* zV)nwK^Y!0HvI&J1+7p2@X2e7S2yD+9`>8tar1QevKV&YsM~lS9zwXOrjL`#0bk}@^ zd;!C6+M_BNjCHXpV3{r|{td^-K)HkpM0W3)H#gvx_q+rOsu^cRhWp=3l0xZatbi0s zB=0i%(cs^h_CXz$v9QrZGV6VM-U7xE0-ib~ z*KR=j?&WD{weww+itS2~cPkjLG-^qg7LIzcp_uf0X-9D_($R=%XAs^Axl@B*o#^@H z>~`{o&z(1n1T4&Rym*+QWuCmv1k$$=e`AZD63#g`$QRhi|bYufWI(lsLgpnz&oxVA2vAX9=K>` zl`;cFAZu=-A6N~CML@mLZGlgL=(8y%VxnyxpFV}lMI6IpfF0TGL{%2$*Gcc6oVewKt(DM^P68ux=`q#e? z`1SAqGiM$#kSLLlBNM8J6_fG0Y`{2AsKEPmw`U_A&j zSLK@aE*|(0vU{#O7$|=nNrC!e_HbBJUx4EfLA93<{aQO*uEpG6OPNT;t=Wo*bG~XSe*iT_mxPeQD1bWhG2b_ znE%zV_6lSqmHcYtk>=1;XqgfHehvO){a3SDMhhf37L~N>XAHVz<Nj>EXfXi1(j)72?WtFPA(+zP4{*`=@`L-9=zI%G`1F$vD<&clxwh#;1RVqp#EcjstcL< zC;694=Wx|F2HZR5L>}oYoY;|L1Sz^R!`t};8p@;L(%3GPN!A334bjEQU5dgIe#x|P zrtbhbw?yOHJkE2&3(?7b?hG`es0~G;ns##DY=%7LS1=P3?Lo4z&Bt`nq+=;M_>bz_ z0fpPd8&2#U5nXzbIvnXMk>+U0S^l%+P|*P;FLt)nIMB82?2N}p15<#tej;jfHW){jBC>;`p}-d zxFjd3&^p8`BrQSSv8|pyq=^>Uq$^W2bS08n$o>m$f^KdGTwW8RKI5VXs?`@D?67)^ zeipi$6NROSQ;FHXUHjXEtYHH%c_sbJ+$-3h)x$M&9m?=`uEV7tp%GXmrt0WwMa+Bt z4bgOiUbaZeDI_49?zIOD2q}g-8PIJ5J?B;*?WU?MIyC)k=Z-Htw60-h9z1=j3p*k@ z<|ny3YHih%vyf#W(U(Ac_b_^d$V6>lrgqE~v1+}1{tiD-j)-FvtVhvgPsohi>6mSD zH=n^F1ZtA$dq0Tk_yxM50dEz8%R9PH?V0&1=IIs_(Rm;^*z!TDjKInRY=Q98kVWtB z>wcH084Jf>N8r#p4qL}Ssd<{m^Gwmsa~_uP6LLRX7=}! zc*yZiuOu$kW+W&pSRvw!cO0P0F0MD$M$5PKA$z5|A$qA-wpgn)N@RKxXb z`|+E6g5dfWjXfI}r|V!UaC05q2%-^3^v=W6Ej};9KKv8E*=2}F5AUgbs`YQO`nh{s zv|oo^c$|p?Hr?n0(F>5r5va_4yoB2+1S;%PJ3Eoiwy}y z**9DHYgdVcy~021nL722y5$SS$7E`0@z~GMKLAHCayL{hHxa>8^9;$`nr#Co^$m?y! z03+Z{3j>`5BV#zoY}Mm+spNAlysU_3bVJ;bpa$^avAE(-@PIHm2uwX?9OPIy~xFq`IHz%2l7!Pfx==~0Xcyy!FR7DaUtqA)U zR_wiCD7_1ylURd3W24^ypIive_ukA5jqkDbTMRt*=ArKz| ze^y}FQExjmW;&d{K~(V;n@lcovddCcs@+WfI{n8g-{s`gSfeiJjTLh%)M){VYR0x^ zdOYP0PELV6o{^Q%20FMqwGDwo(S`yTxRV(TLk)0emMhyNJ{yd3#?}!Dv_eGpEW2Wk z=fMcYiOy;O{G;vVqS4&Z3#EuCtsYqxTTvDfu02=Yj-rp1Ab%e0vI|=ddPd=Z2ifsQ z3FJ;R!{jO+%ya}kjUlu3$Iu$<*wp1iFOo7;0fOFk&H!mNfdai@87EK{h!!aVJ9o8> znLo?VF;wFH6qri{HtC~@ZePu%9Jj6`xB#?a;%;QDBApLTvj{^?mJ|!ql0C2oU?$r2z^Ql|Qyc+0&w9#2I^l^WRnre0o#$NI(b|(Q2Po zMo`WvwK-XXCL~Q==FE&QzcE(Y6U3VCZyi^2t!A~!L09j4nNkKmifw5)%zFEGrqX;i zInnaw!4riiN`EeA2i9NJxF))5e}w8X-*bng=}wf`2>qb8e?UtghQ5vWNcV!$AkFn@ zUppRe_|^@79aIUVB>CrfQWO|ghqmS;CCh6wsOuIjCOMz}ZcXa;Ba3a+V{oR0BB7v! zH%Vci_JV{*IW7c$&6-Tpz{0q1y16t(tZL(i^Ip6oqf==u)b2{GkO0qqkd{ zPH2UycX}M(WUH1QHMoUBK)hs?YS30Yy!`+lE5C9@$Z#@GM=0Oa(8<6`1jlq9U~r#r z#|D+!Nb!qIQ+e`#4cfTav>HQKF*D!@1|y zkpX<&kMW0b;bVOJEP2k9r;U!~yas-2BcOu2mf$yW(ZMz<$8xNMRbQ6W!mDOAYi}|y zatIr8N+OcwSSu@BCFxU5I(rNtWgdeORlT#-Sb)BmPM8_^guToTrN)y%LZ{b@cY1)$ z8XVQ*PXR?`Y(kTuM~V|ADgE)};9a$Q$W)tkjwD0P=QLYhD+JuI+*VG-$(ckR#`-(% zqB@LwgtaOu;ErPLk8;cIKfApv0nH~Om$b=%P);vyhMxH^V)6#r8!H%yxQ+gf|VGo z3`xal((m;xkId8+7Kk2&1yywJ##2wg*k zA0qsM->j4so$ePPtyHuWUX&hA$f8EvR9zn}6Y`yqH#cw${ zJdSOIUU-DXLMmM)N=A&s1mg!0!ov()#bwB++=O%1rBwEs;#*UMxtNzB!v1EaoHw*J z(-uZb)$VMMvt^qVypJ_@=bpUI&-Y=2K~|SpuZ6M)VmIm_veMZk#j((SI&%!ChWg3g z=RBzMO~mX8L)eNU>1DUto+JmZdE`rpDY+y8i|*ArN)`9Q%5=27UxgN!L_M1jk0^yOMkx-ul-uIIZ&@wH$MW1Sos9(})5; zSM2;O((#){!!*}=yg4#%@llzGU{lwr1+==M=<~8E+X~DiIN${Mm;ub=8+{5u@AJh8 z-?XL*B`wSlrF;oo_MS|IeR#hOuBEE)V88DDuk?mwzs~7`ziC3TIo>SR>QgT^1t&^c zTW+y@z4EvtX!KFrO(uohC!@9pp9QHeD%e|Tb-U{Hl_cqXFB-J;2;E>6r z$}u6mh2#yPaeu8?Y9z|trn#ST_3mgL`+b0%Rm`e&EAXck`6=$wqatPLKv|gjwylbc(Iu@?VqBQCRNjpn8H}q9*?7gT@&_6J* znx87U{euHo3-N(Yv?oP9GbSFXf{c05ML6z7$#vN^?U_5FD!`S`JA$cESAl@T`*9oa z&ksXv%;y+G3<^!@onqvwc85w}vJeW>1-59T&bZBuuj!t|NyhNjCV715buG}Ca~jUX7zX~+lEJ}9x~4WHdXT!@#xXxLE}YK4pc z;(I%t9oxCDWl&4LF%r-TSc2corwvAXzsb069j3TDAu>ChJ;e79%<9}G9N>5hYoVFN zH)OJ;z8QqAbwYXZEr3rNYp;D48TLSnm6OL*$>EItQ6N;wjX&d@!Mc+Nv1C~Ye`OL> zXo-iCubdb%3iU4DZo_(xHxb8}vRo|4tekHDII!DaD06yGHb>D239lg~4B`UAtZ9=( z$V9XJO+H{v21~>CU@ZFxnpPLf9u)SuNtR0k#IR#sS%4a+|9+|!4I#A=Z&VIstN^iaCm?}|-ve&o7^q>M< z68}8aB#L*3pzQ@q$AFdp0b_U?_2{K~`vll|hj*$4oz)>aPyKb8y;oo~6cgs43`Rb| z1Z;bnWEeB!x7OX}=7`_IV5XyVspQ6@AIa3bo6}EN#78hkkHy2dABelHJHr;SqWq=Y zT2$;6sX|~n&=yc)WSWiTh&{Bw{}U+a=Eqp%fQ8=u=0V{Opqx23Au$_dbm=*4;qz53 z&&%oftl*Zf8oUmZc~`jJnZ6a1EWG{dO8&2+`x*t~)@>8tqO|jT0oyiUzd_laJku6a z^X?+#X5?KRG7|KTZx3ZoI(^LlU@;5IpiW`C{8mraIa}931rZ7CYyw+g0 z*wbHs=_~%leBkIRQ6B4c3o@t92S4OKZl605U4g8W&szY z{OWr$gB5~Zcn3`?%|kq|{+YSeJ%K<(^HM$}QqoMPljLIS)HYI4u*~Y+&^J{W-Xe0e z8lsd0lQdkpY}powvp1mzMAKTOZYkDSqzh5Da4Zuy9rNKcFXWx1v+dM+^@CR9n(yLh zX?2(_<-4?~a9Sxar)!sa%Jt16)I3uqcC;Z@7M_tWOeR(*8e2%5+~+9H$W;w*$dU*c zjao+kLo=KzAF+783JAkCCi_jm#;?pPnkEA-G zCjF6t{bngF^9DVjjtMqQZN^e;Rc&=M;*LdqkI=p&--UH>Qk=A?QU#I;=8t_2%&Z$) z1+WiC{z_x2altw=&=-tR<`(d~@Jw?>mVQaad4VjY*q_EfKvBvg0%fD9+rvSB?7YD6 z1K-;-I;5)tHVD}(ZUCV;HQIya*{Sa#{^LyBEVh^brY_k40*1B4xKXTa2T zhwuNUBCYCxrwm`uDs9F*vTb$AWx?+{0OIioG5q}sGd)Xbb5YTt5S156i_<@r-RQ#} z%-2h`DwY(jquv7xY&a&nqn~9*#w(D`Ypt};kM`qLr6!bVb-KJjR=JbL!!C$`eUhWV~jARiU8_)y_D;HjUWTISG+G0O>KsmRn z*QuT6qm_#YiV3#MB5FJUW*Q~3Dlk0Z3k7a&X~{01r!F1!RDb3T%m?G?+8)q{@EBz& z>=4RGUeE~D>D%?U>?zB`firfpuX?kRiKc2M+jenN;#F4ic!J&$^P1J>ZS$IlU`3XSP+iP%Fi!9BU!P3LBo7cXQNVcY@Kh_j$i3l6eO}BY4#WaUhkI z@2kLXd2#&|+OB*}d&A`Fr(FTK{BP1|iaG0dkH{nH(`NnGoCk{Pte2eLC+{PJ+yrC| zqVmDR+Ok$n?%N%noRa8p1qy|pl&W5lb0tU{+=#}vKIpQgLzRgM+Ue zcM&ASn44ke2KK!gs7XZBqn;0qy)){}46L{5W$$yerY7is1^z;A6f;L7W&r8FrC3tU z-Vzcx=e8%+u(8_y;^R>D35(=i%L4xO^n=K&0yqj4Hr|J41tau4Pxx7R`|I~Yh8s2p zW~ThxW>GVRNg5Z(*<7s8R}D<4b3QboFF%e~rs@Alx0V9mSrM}x$gJ}TrmOaR>`Rs1 z0)AO7^1`8#)xN5R!9BH|FhwOeI3+kTz?n$x8?=cfyE9g?dyHCPyY9X2#i95Of@+jr z)1qJN5&pI+dQhWtIczOWWyb?HP&(TyV(oX`koL}5Kr@R&(hv(N#Q8k1H=ig;i)aY-f;&i2qhtgon z&YF6LK>;Wgj+W_ZAV3ZwMq!zY1QLf8=*CB~$o@Uw%WhvXs=%*`U7?#wpu{j297d2B zSt2$86sY(re>R=FMpH_e7?1Ti=mu67JCtt}I_Aza;u?&s?Js%>AvhWVhy`tVVQd-< z3glWjP~-i>wX8&O)xS?%JA^cjSuR#Xg4zarq%gnNN&@Uqd{B_oPF};3*`g;t zc<7MT?g}rAn`GEpj&XM&8QSr$+FVaDAP8ZTm`G5lTV4oChIHJNaR!Vm8>UxVhwFPE zzWGF_R@SdaIa#VUW$3ty>c*W|QJ5wJvCZN6Atcu3R5#IaMOG0K+DYQF{d_3%$oa;mzJ0g~l_=6`7@VqZ>03f60kEB?>g=+BZE z9;NXFvuv6=a_V@sH*D3f51;Ly>pXb{`WGS*+zWcqMVI&rMmjB%D5&iG@ zE-UE&<-05WZ@!BUv16e*F|bdwxS!Lad5j0qSM@IN z#|6lxhJ9(2P-Jj~HBD1=c2+JHl12x=TnqV@Ff z8!O9@a5G61dOs{9h{Aq$syS?eWGuXZTvoEdSVb=fX{@M7GnOXuzy%tkGrZITNJNrN z@RFZ&GR-$ml7ny~ozTM`K@X3d>+p63)5j%q;1a<5Z2xYL%Rj%*rv*$%(_n)(O<0xIDX-8Dm!cwc=I>0tya1b08wuSl_GT=Gwm=CjN! zG_Ui>b{MYf=d}EuKC`m0jPrb{MLnZx5&CmQW&SI&dSw9`F&dAI?Z^VlA#>Ko$QW<6 zlVytN77imMx3*o1DF1H5rFGchXT-g7WvD2-TYRc=MjNBLk=3W}C}CKC9VSJ%v(O=K zR*g}@T8cMn9P}4p%y`M?>5htRz{y zRp3b=;ut+*cmIyry@P^^s&sRn2kOv>|Ed1V?t=rOS&9JrS?T~-L01<6&TFhj5%HQw z(Rk19jN?OEsz5$Q*3ckO63b4xABga@^AORyHzlY=nx6Nbi;4IlLAJ|${4Q|06RSoj zMm8Z?B0SBmK|LWFkiu9X&VEkXq3O$rCZFt`N04@Ou2}krp)LLyqP}Fmwuy<9s6wli z!Ry^6WPn}sFPvWBW7$hLe&M7dcKBwO<13KM);LTTe*j(OSVM*7AX!2*dH&gQ`^avh zYbE6$cH$kX9|1+AZ-B#^V@rI=466v~yH>_`g^Ja_+%lJdTtH#6LD{EYqZjm1(73TK zGs~K5bT*m$p`4u)%_da=fNeXNuwR9;sbG{=88Be=GR%w1BMl6zr z>e$^XTaE$r$>%!E4;3#l@-7!#Iv6?`5D9F%yA+w6*~yYIPI5i+e+yEeuiL;{LQjEyNd zk=~OlDU~yphuE_h{b4YnF8zLnC3*dKJ;rpSI;s?mz+*u{l7o=tp(X1??9xuj<@D`{ z_Zp(H9cM0fyNjM3i6cboM2DKMDs0cBH+#zASWxST2Tlz3H#uxuv-|p1(Pv=ArAc%{ z`(GV_Yq*Bez$e+E5lmO#m#w)Hl+wk-AanXcuw5{--DgbYslx2&U_dltAWF?k;ESpi zP`VgLgd!EEkf=-yf>CNy)Hw0%zn(3HXi_e|N~Rz>gb@GbvFgx=&J#go54rZ-Jg7fN z-Vg_ybzWYw_2@+UJx4E$+%B~pP8N|&w$Pnnh>=`TssVkb0}*En!th4N5ISsVTg!{` z#bqtKG<+x!6sr)X8-q6!g@WO#a?qASE1uc9vId(pwn{u3w59P?UC9;os-_U z#3}3v)XFq=DH!@RZ$lDAnOkem^l8cUtUPPM4?~UD!#q8 z)XIyQD=`$?MujEj;lTaQb~RCTbDW8MLo^VpL|P|dq%5`mObGRODJTkZUtvYu^&Wby zX}wC%oc^r7$-rf;%RY&>d3f4+mq%+Q029Ln{6g@fY32Ahmb7zMy4YPovhi-lR;KtP zhNuE?1X_$8aljwRE(MD~`~VPcHE-##vuOiaR+BWw2aylkvdXm4;^z#IC83V5Jf-9O zsj+PJuTHW;`-3OYgCkphyou#{TYMVF<-kd zhJavO(e2KVG?mvqQdOKRD|^jZ?Tr%7Yy|ZueL^6t@U4EQ>_xluU{9sI$8Kn76Ed`f z&rYQVQL8c0djcw zr%l`piM8i2s5$dEd9{cEW1pKRQTfU`X(S7arFs^uF#tc5NR1ZcQGfL#+QY-o(~@F{ zr05EJOZ50lCudS>vjG+~GkQvFbt$${X+-Bxpm;_VF#f#(x~w2i0u z1T~*+8zd-Or1Am1AT8wRUGt`X6xX;k1&1@T%fB0bUH9J5NTE-fr z^xCZQ2QwKrh%F{y@kZpM0X^e%M^xI&vhW_uiDN}e#0P!PcL0Ga&whP`Gam!#p~g?& z;B?+nR>@b1b9T(XH z)s^h9pcQAyXO+1o=>-24YzIz#oou00X$xf@nfyRYz+)K}WyF;<6j>bbgfXw9yd`RL3yc-}i4rN4q|(>ZtWsy-KPDY1>>je^%F8mvM}i zMrNr>5nhe~DZl_+Bd0tP00&C=UKtsdwfC5cmXWWjj3TxzKyJPU|4X0aZ?FVk=+Ft2 z^8o+tf#-*l`qk$(Q2&4WTnp;I>A9Mr{;ymNC=VdqZ6d`()9cc-SxdeX1(RZq`Hy23rm%;-AcGp%MQx8g8IXX z^-N-uvWoA*8Rb>cpi`{hfeB>rh=uTMVUl2DR5R*m8@J3h^c!yJRAFUaYT&gALKhkw zMEygO{yVfD1w_<7OldI$7=5s7Xs+BO>?p|S{ZW>-;Z6H`#&q%S*Lx;}Un@Sk? zJcxzmLZ>p6KjHJG;2^|r;RDcM?3B<{|+b#F! zuwQK|drQY?Y|KbL?$dy&`1{lh|pr{3rKZDk3mUUXy1?Ta3)x6GwGm6Z^ z07xBjnl2HbgV?k>M`Aq?`!rg)Xq0e44YcDVw6TgUHWk(h%{jwmpvn2WTgL)_gR9qX z6fElmBdayiST|Iy7kS776yqHifsx%;CtAe&Ye^S4L_MYd+UPh$oB{1&Su}ZwUH41i zi=t>~;q=wE@sm5Nps!$dV=1j43A#!?OQf-zN?Ly-IjW}XrGd0!C1Z*3gb}rS!o(dm zN(QOaOJS@VRGAIxL|0H&fM5g#aMgTUP-=ZBFBuX{<=FNdD_Lg(>MA`=2 zF-|?UZ`{APdTF2u|yMt6}N zOiAi?$r16;wuYoeTQ>!o4E<@#dCf5l`KJEMnoAJOGZ`&q(i7A(uXWDo5&Ds+ehiY6 zeY=JU6%^V^bwlhsWq~YZcTpyY(gGJ-GdX&um06R}=D%qu0V?ry#bG zSe`TmPwR%oaQHDyKJkvAD~-H@pRLYtX(-fkBgm)aR4GujDUecZC{R*^See|b_?b~d zoBNQkF*?OTlYa$oB@!zFymWS@Tf60!=M3fYKoT*1)g|5T_sjK$gAHiCZ8NyN<0JBP ztCg9oTQ3$`x*utT-CsJ}TQ1v(@NesCN zPYd4R;xLD0%a|vHLx@IhX*1d@WMUVSS!+GpbK`hvB<~Mf@KB-el2NBf-dD3Ll}>Ld zUUGF+#5xj=8%keWo4~keoOnQ!>k%9YKmw5ie}_36VQt$!zXI|;5;**35#KpFou&EG6vuHG{S$TO!Pc~A z>CjX6($#DCDJ*OE=eQ_2vlZl_bNmUR+LUL^X)ESj-NkrpM*k2{NUVb#Sdizrh0fw2}qYWu{_qkiFIz2q)dnW`wmM0 z96rJc?}o^X-Ln)W&AYFx^cq8gA9Ld`7J2xb)?chu9R-RJIsvK03G~YgZ}jnCtbU@Q z3%AScYXIZzUbe0cX)6cb+@Hx>b_(RxYPF)(bkTW)`8vg~sgN+rz;{NeE^Wsb@mF5r zeb0D@5(}RirAMghzeIE*=mX$+LAh?JWVLA6>iVD6Td478Wl3F%AEM3z7(FgX8h#zp zVu>H)etCC9Qr@%@ZA*}1N9aXdUzVY6?zZ%Un&PdV>)e>NWG#3jkyJv?yCNbE2;}h2 zbHU@Z5C7B&$`(Y~q$yJGhJ$gQHnz4I?p)I!(vC3r4V+%@!Z6b5PR#2EB!3Qv3jTw$ zb7~SS+?sTmUAAr8wr$(CZQHhO+qP|X*)=^e=Vszed>8Wv_SG9ZR<6wTWLkR*C@-o2 zFrKyz|Evkp;dG3Q&LGBPC}WDyBk;*ZY-{x&hYs%I0Ff^$41WsF4>Jp z+&HL|ttgSBva#XIUd~z!av@4bo}VJsIPagxuA;p|NM=F`kDYQ;X$Cl?`^^V5-y@5; z=1juWsIL)!iB|=FK~@6(bPO@PKJtnEEd54)xj^)9maeg~Bm%RMUh`mT3}mtpnKbg6 z$wh@cW499P3W*`y#V#Ii_Uc=cdyW+V6Lq@sbuCcja?oTvwlh-ybffd(EjPq1C^4zk z(f0uA!%?BvBnpr}GN6ldn&Cw6#)APE?dIEc*OIN%T*rXmN2d@ZPG_i;I# zHo?W7n0}}cWNcw6IlKZ(Dx1hgZ%)mpG7Lk1t5<$}_I483_e&V-+Iu<=#XWEG$I;AM z$8QB`G|p!iO>CM^J@Z#E?V(r}kmeuHi(qYsbF|yicGiHWK2s|xIwc00fl6x84eXzj zu`sI=6j07PK{2N5y+UpoMRwk#+{Fmtocd)j)?6?-EE3KK+7yawh9i7$hfW4Ic{$euD ziHVN8T@dMPEu2U!$zrfqgGF_?;bB7B2PncTLmjhh@utS$WtR?zbPml_Y)b3sSm+bb3&u0@QQkKjBSfuhY z_a;R9H?K+{{HHIz%h#R`Q*s$0lN}(QjBh{&sDo?v-)Fz2V{qWJohvy-G;HPX>m$6<7t_)tP$88kKp+R6)i>2Kwn71 z=v?{%0zgjF1CDl7$lA&wZ=Y)I$V(_U80;s>7%v?Cg@6(@hqX}{IO>|^fQ`R1T0%dE zn}xBGgC8ocGMDJ8Wo>9mOeX2FOM&|=UnS-{R^-DYddLo-$`RBZo?TVLYLcNq(!xR{ z1+QSx!n2g557u5SHkEfTt?j|8*WKJN1Kd&9G@zMr6gt=FALAij$iPFfld(LJ^=$;M zy|ZOtQ{TDwg3f{aExIwo+ttMh_73k+Tj{j=Su#qpExecRbGH)nut@Gr7DjhM-tU+N zJ$Rc*pIP02O2R)ObYX53qjc&D1H0>Cl}Lk^w9jJd}p_xu_nqM%ex z{37`TG^-_GVu2L2>&nz5UZlP1IFQfWfi}5_N2^d(|1vQ_Gc3}Z4YgCk2I94Wd>S8- zHHIqSr2sBg1S8gQC)T#ebl9u*rpaRIw}pdh`S&w}Jq9yumWAy!1`}uk@ft&;Tl+Nu zpmVknDPvU;t<*QFH3B0&%wb?%E-`ON%0b9ytQ5A@hJE@8m$H%%pkjk&Rk6ArCa%vn zHW8N#2O4xQxi9`VKh#X$&ftX+YLa)r!okV11Lz&0m4xyawrmPIvx#)KmfD}E)e1Y* zMic+alBGB1hTgQiuKn%|Qg_$%h6+43wWq+BxDsK!cLR*Rf;?OTz3UqibNk2+jZVz# zD5|a+sm?moSW8L3!36+_`Wig1Oz5O3EMH*n{fk?E`r_doA;k&tZUl}kM*b${U3gAG zxC>6RK=b0NLynU)KH;6HOtrk=noel~au~TNmz8-vLdw8l@=dcU(_RioJ)L4@3G%gy zaD1jsVO6L$ev}3V$USucQ#`2sGl5(goa@CcdAi@(+Yhi_amCpbrRe#U1aw#WJ@&|) zrq^af1<9?!NE%-3F>&)KP4*%c^s>}_bbw5&%{atz82ap&N9w{9HwX#$`9h zi95eJcD{eZJkG>tdLpXb`hC0SW`Zl7$H$yw$cQoaD+j$IGjtpQFmJ@@QaciX%n{7M zAV^Zqjg0SOz}cRTd>K5hau;uUot?du;IY+iV=6PmAh8L z`LDR1ipkb*bBYT9_&03$o@M8vxdn0g$>T~qScmqpFD;P zCDLI0FV8Z#Xb84BWtCmCo1RRMcDal?NnQC-GFsUDUh6Z7H%Pp%Ue>ut>xK|+g#g*C z>`3Jm4R3^jJw5k6iNcMG2%Ikhp{01T&iQ3i##CI}&(13>X(n{mSy)Z#ASyIdW>eVj zHUgwLNk+|ezQ8LXI^N`}I5gI7;OS#C9)3vzXpig1pKegg4|p&c8F06qG(5@eUIO>E z{FHej=1z)Qp+Ed35r0cLd5!^3^DBd-J*QiBrybLP%Kb={bwAE+D%mi#$-PABz4>j3 zS~Hp(v}pyGEZf_69~lxqDr`a#+9RmrgJ3^T!TH2*vAiRi(C~w#R`P!>(_ikb@8!>_ zb?=Hi1%fUKVqMxFpP_;vn{yCKTsk&eu0Jo^#c+I}P1 z=7SW_q}dI|+v&2-O4Pi){|9wAhV4Kj-q&+YGotC}|iM{!w#v-q`hg zD=50<#Xi(h;}=c^TQzxtO`Nkiw{TU=<-y{+y)}OwVXXvF(M*@rVQ<9zaICWc-`dYM z2o$Jd)qBU}j0F$rv2gVi$%#}d`HZNM#XUG_(2)g{RW6ejJa|z4p*gh~ywy<;OgSOw zW{!`W89rgm`w4z2s*OX~(9P+~V1+<|h#VM0SoK2iC2`4q0s{r*tqB?2pqaJiq?7Jp zmCm=X6W6Q~4Waac(THYPc#BBlZ>?_6CvNS94o2?r2Qk zjj9OD$+8Y}3!41L>YE1lk}bI0zc6c&ufo|Fq&nR=rl6^e-l2q%_St`9v04B4c|=GF zha>Z~>p~WR+e_#_%a0N+%#cN%~n zvDErvju^4v-X5bKv#nF1FYbicOjQLZ%n&-t4L`|sLVhw1PqdL0M?)J8__84jo&T#BPMNMnd zNzY^&K{1;3YS@vr%nZg3cRNKiRaQbi!R^0nBb#kxq#~W-7|~Qg@zUfDsYMDgQoMrs z+xDqoq@KBEjcWKXlm*?s8%fI9Tl# z!8meFVh(x|8r)8(8t^#>Dr8pK| z1lW|+GK+f^_{S*fU%&|C#hbr;JsXZ~NF>ZNgYWdp@n2g4Dh~G6d(wAffd!%hpsdvl z1uKN0F!+zPwu%)_Ar11=#h#%U_H;RUhH656`R@4RBKRkBTcOZF)f4hAjgKD~nc~#TY(YbD?#a~JjC@q1PYTzG z|L^7MXxO_9yidgtL**l$(CJTmM$?ZrYpOn1ndkb0ih}8tiF?B$&;8D4h&-#u4xjQ^ zJR(ACeOd18C+LFNFNWcK|3oej748X9t1Lg=ECFibCclAz_h}afei48wJ*1;Ga0@p1oXnla!E0N$J8!W0`4Ox+AOIRL;-I$RcJ%- z%3(hF_OwFZbdx`+t!)1WeQEHpZt=iZ$X7jJum{8;34zG^eKj}vy1mHyk}ziNn=Q0e z_z)07p*kpK>dK7*ozu3EQxi{ zVYY-2gp*^i0gC9HpTkplMKHI_jwJh=6Y&(B3wcJ5BJ+4vwKQCE1tJFw{8ebnXg_ z2^=Fcz!Sz$mTPv6#^^iQyD(@HmF*(<9})~B7yUj5807e=xq-v8;KiWE>;&G1F1WAX zIJM$-@4nuOgrw0DRt=cGb5_k7i2z}{1B_D2Own{E4+f2U2EK-tI>4A74ATrB+qV>K z-pESLBtoqq(%;Ro<6ZYC{%T7(YCS6Hg?|n`E=!V{P{p3Y@fePSY-3bF{Jr9se z(%-|`Y7&IyrvmlDw;Ky*gn@5lE1E5?IF7^+zwOjSX2=>8wzWe!!lDY+ev&!@k`eec zU%L+hnjxGg?Gsnn9g!a4rr zpOiG$m2H)dt9mygz*mU;r5d0ppcS+3f)aPUHdA21n_+1(HFo*8D zZx{PmF#TN~Nvx<2wjcxq3hT@4dO0_R|M4Jz@KJLC#C}vE0V4!_-Cduoszz&qxvVk# zPN1Mj`7u5e=>Q$81@2QaWa+jr<6x~!+1OSav`y57Ffa_Tv@Ov89q{xOtI8cQUP_A1 z^)y1vK>o!$4$<3q&+V@&!%DFE_OrGiLBCpo8`SsOf;Kd8I~j^sVcN?D$pFNaBXL#V zWwuiZ`bD`TF>$y@8!88ljo6SQSN@4=CU^1@+@I5^5)AFdD<0~u#X|a?O}&X;QmMfw zur)}ey;1wFm+X?)Md)joDf(CF$B277$e@xmrpju-;?)JFkmf4AY{NF01fjghuOdfw zKxux+#f@54!kccRQMjAfVGpOJg47&QCwSEwEvhF8i^G6Ap?=)}Ot5g1QIHONAGao( z*~nNXPFhom>sEuXbo=A=23A>eiClin280Oc9@)xnHosXw7}b%fSjLh!f`=>J71Sj- z@#KMC20ZH2=?Tp_ZsjeEnW+TIjhlC{=`O2A9vNqRqJM}>ie-6alEgPg0wNf0wa3OE$n&_FL7MR zFP+;^iv#2+LoW`94<(0cWfAFRPG2lKvB(dM;d?2II|0bXi?=)G1CdT*6m-r za8LIi|F7JNpm&&^MWl36XHrY3W)Jq?KBW=nKX>x~#ku{je4aCv{oo&e27xfqxR&

    md)wzeD3u7lf#oFXTOuGnR3F4npmi6C2hqe4<2916j)2E6D#B z9QOI6pm>ZlHJq7_34;tzo}$ui2r;|UZ7_{aT1r25L&~>KHUPKQzi*oFGKAwYtv*iS zwXmBr5p%0bK#wON0+@mpc)9zr>Ul7{z#^44k<0QT%FVVVAg#jmHPKvi^oXh!ABDE4 z>tP_?vlI$f^x3o-k-wdWhi{{c zkE)6hd&!Y+fEBezLIHy>C+^HU_fWy&$)4G6+H%%B83IQ6y-Gw~?iVJ{!E*E<411yL z*CrM14gp9Hz2MNcNJTD}*i})+A*UoJln|&IaWTRu^N6^e%Ao~^cP{F_i{=z!Nsb$| z01D+uQH;(*M`V-#nzG!18aL2Lv1-3HFK?aCxd^-LuYMZF`OL6IM*9V@!b@NGm;ZdZ^9@FP>qo#eXERAspiNsUS9y#AeKk9V8j zZdc})qW}`{*b=lK5=fRyJr4GaDFF}ju~)9~8i_ssLciiV7G4(hr`YwFhSkE2hC{>A zCu;evy!8`GvXDsGxB2f#c}XmZ4*kciu~fC1-oJ<>wAA}*@tn-r3>koJ5)aX_*pNUEtcp z@zIk8Qvf}_oc76l7UI$oAdJ<=c;*xCx&C~H)8Zn$t0bJL;e5>~?F#Mbzl$iGJQM*w zUUOfKkFiL(eBx^B0JR#41?}&T`5TV{Pe79y-<$cj}AP=Mpl&p%wB~Xwcs5WQO)VvvF8bqxLcIsFYPMm6S=Z^j3CLY@`7J5 zjS6M|ns>Xm&_ruLyZ#di2X)oeKTHwM(wYdp09P9`;z;9hPo{KyFmm)17fX(Yt8W6Y za<|YKt?6Uek>ebdf!i;J5N;`MWJ)$J^aY2Y7rGh0M&mhuSZ39aK;KuMRpXUi61=r` z7zi>(eQK&@d6{DcsRwmAkY6)~!7Odd`h@5C%g9<;E`nj$n8PSx1>vmkp^+awWm@*+ zYd7yM)Ia&{odE6_43i1RjFCMy_teqo&%LIXRUXSe0k1D1)7B$>)C-;Vx!4}tN z!OhQ5b&DQz8-pH)K&IAMRlgPZ*DmPlmtR5*6Lo6%6ec7^3;TwSq;hfY$;Lb%+W#s@ zB3j}is|SCgT`IZa)Bu_w+3xVUXu8;VWNx?mo0m>-%7(lC=#bODcYiI5L+YFG+9kF+ zAFzv=5+oQ^K;=wJ#mMp3asKj2O%0CViruf%%+F~WIi1n*^PMJKpJ?n~fu;*K#-dSd zT`|n}+`%H@focLqgCi9B9hdBt3^oH?1yZFc_-lLBLpy@C8*H8mkx^>~-bS|#&qdEN zwhCuSJeH7WT;=t5I(P?+HL?)g+(dt~d@S7sxn* za(SSi@rAqMqFT_3zlOf>ijh4v@@|i({I|CQFd7mNV=HaBNDRx5)#3G*91YF#X)GcL ze3<5%lTg=c{Zw>Li}aEV)c{cYL#cw2B!*#~tJS>n)`4Aps>CXHM+`}6me!SCo^))ZDKa5c61i5p68VQE zVutV>22OJOYINyjG`14aBflnNHG%5qsKh7^w+HiugYvQS^g`}bNKkg0r5}XH6#<(5 zJ3H+%P#u;88CMs+P3S&U@9X`5d)2{C*Nq$&^2siIemq6r-eN*Bs(|d92>Q~Kv2hq&(~o*-$R>vm2AeJ0f46@o%UWzI4%c z&LZijtPjh>Dqkb`DysansV1qRvEL>U6&X2@dXn=5m|=qh<7U{b!-G+50lOb{YGCtq zSonQQ7?jn$8ZX#Gs5-7o(POBl;FIvt?vc?zExZLsd9>Cxqk0PA9rDZOl|Gn zvdLOSSo72?)FU2i_R46p=rg=`j;aPw!Q+_2h_Oo2!nPWDe(!-$-dHja*0#QGc@|qS zVdcNneNl>k@}NJkJ0Th=AvrD%~k11bur+J6{C9P1@-nL4(p=tt9)*!!@{oVbbplRHPQM z(QW;|(8+$8H!+G$xQWg-Ts3_i_Q68+7~X=p`jjcrvvUGic7{&;U$vQbE$Yp2f~-c&=in?|hb;HeQ+cF4D;q zu8spp;xa%r_ivJA#0eE|hGvN3+)hNm+Z{@p%-=*{hX3g{Tv75QrNT@a41-f zUE{%AZ5r))85Xr4UfVQio0w~Ye|aoP;z`Ijo`HId&2)o9)g?$Z_-X8^6kf`ot#AKM zgiOVPf%UDFbP29g^UoE7M<0B|Evy$z$|Z{5Auu`_Y+2#aoW`IFn#d5QJZZKI+?UH| zRbym@SFCi1+O8l;E+2iP_b!~PEJYG5G*W-}QE~*ni=XqS_edYZ81t55 zS|RIaXAESqokj|(hntvcrp?qX= zNoe}>CPIQT)>iQr-F*V9gCP8tTcAsf+-7|MI~ecGe>#@`Z8swtNwvZwts(|gf5(J= z?V5zflJ4M>inKmzB~)y)=Up$g1Ha(@F~SxeMGqfwEHo-TQBqQPdI4B_v#&_;Qx2ON zA2z96iO4=r_Rq}x7pI%O^(hFk-%`L`Pz!IprQKc|F2^3f$7T6M&01LKX8hPb@obJ> zqIg3N?OoT98XkvvJt5?M$+&}5WLN~=2?|{pLC%^Fp5-tUdL7}d=3l`#p9WG7T23|A z6Vk%@*x}!h+ZU2AiqlXF5Voh0;muo8iV?RQF^$h0 zUrEXK(m5+rZ=)p7K>XDC*jBb@fL$QYME3|skkigsi4kc>B2CM^JJ^H$`Ke35DmJPR z$jtv^8gW$~YjUbk>4FdxIzc;e2SbtV2RPzREnMa_gVYT3Kyea{QNOf8EgLIa{UwR- z5;`M7A%N39Etjz3T=v+$Ne_iP&mmn6llQBv>Pjc2_pnyjlQ$#@FnCTNI( zKE+Tyhd3`*ful_oCeTQeJy>y#N~vk#q+UHAhnrBv7EAYcvB}8Gy&FXV(dnR9!M`Ud znvg%@Jwo^XOVWhgcV0O8TVKtfUt-N^9Fly{W!9pY_wOhB?gI$rOltMpWpC)O%+@@L zq>UZhmcVF~AS!!xX7S4lHs$YE&46yChwn}WCI$2=S*2s%R;OxjB>$ub{|k0hKNWy=mo zz@_oG>Q34JN@99occoLiIVp59b_|_IERoiK66_>`&Slx_sPz_H16dQ7bxq??b`bXa zV9uyQ_G(J}#EWmK@Ui6DNvBkz?k5r(941U0K8iWk{p$1I?h+3wCH(CK3fZRXF`p-4 z)_NG7(L_Fr++Q!NxzUGy;mY{p9P-EF#7pX3A(^Y5pFSfJ9TftY|94+v`(GgLC@F*x zba+c}Zs*&$YulVm%2DEp@m{?^5gwxz_|y_fU>-YyWWOHGqetCi=sz? z2k(;in5ICMGcYqNJh$Hn5eXbbRhrn>0UonQ9O7bMB{0P6F*D2BC&EbhCEY^tjRSmM z?@)(9c)Vw%@E|MbliLDq5fUWCA*vaF>ba@;J&hUjrTBD}4?qzIBUE$$B&)y<6=T33 z7iQ77j6!ae-1@xBT6X!%t%Q?zzj7aY3GHpBU%yUnKibQ8ruElOQ95{1t`TWNG?Z3I z*m!4Jy6A=oaB^%L$5#>9g6sr_kC@bj!4l%PVM6w#_xlKCAQrIs*OjD^&UYe2Eib&+ zQ{Q?v@b^UcCkO5;H&GsVAs7U%+FHGt3jc|aAZr}Q z)z9*6g)D;P{zX>w@MK#xQo+gWxLmd8kaoQfJf32!=914ixP$km!oU5uRU2ARBx7$Y z+q6fYtepbn-&f2`A#1UBF#8d_BeN4OnU^4&z{&em!W)I|g%Ws_Y?d-8WrmE|(*M%z zt)KgsJ||jD=W6$NX2O_0vm*)vwj7@BfGw4?{sAtiOv}(?k@h9XUr_RiH9y__zLhC|Hs<0gbV@h}<5@WbJuYDm@0;9WrDS42d zXG5{DWLheE98yCoaA>c+#%5Mz57s$b!(mStbp4fW3U+Tw!iTLo4Ks2#v!0p5SRcjk zC+6!!(Q3c9iwDV*DEV5SHTSQEU^cybx52Nce!K?8H<{;=lRR1s``e6AOa}T_nXe`M z_{QA(0XU`T2GuGK4Oi&^Q+8bOy_!koG8abvaaJMW{zNuf?BP6^3%s~fVNSqq@Fetl z2TvxArSmmO$6?vk?!-+mx5F?iej6mGbvt4>Tj@zwM5S-~b5yLUd1g>N4O(c#$hEX& zrV~G@?}Rt4eJWzlMnI#hSvWJnV23`t8;P&hwtMw#b7>F@E_6OeO&)6#gZ}O>m5xd``OaO2awfsuX>1g*~u>Bfi$BQ{m4EBi^Ojs^EX(nU>oo-t9^vqRobva@!qV*SO*;FzF26{ zjiwoi^?fJ{D4n?HOzaSqj+cR){lnHCDu^f+B1-K~j_SdsZaAuIP$A57>@G2*Hl_G+R| zZ@|TZ#=TZle8IT7?T{CYg|PU9Ozqkok0wsK^C0i`yhyK@oaP+keqQcV^VWq5RkK{$ zz+DWVyVZrwwnalr%16ptuuC5W7V5t0Hl4faekMQZUqOXFqa7-B1cl#;#o&bnD@gM2!n{{vf1nI?QG>N@jxJ0}8#b!z z(i?RC3OY$q_&fkuM_Z)GL9s}*sKvS0wrCsb_6Wsp0!XIhj6vvB8qJzFeN-h93sHC9 z^~0aTnwJp6^;iY-hE_|!xyW#9c5U*Nr{A$VVEg!?nnh-B8s8B4j@D{Vv|rvKesLSW z-Tkdypw&6m3CCP(-vKoUrmbBoc^$VV+rd0an{(5{SvtnxEbrzHtjri!QVl!OYxg*3 zAk3c8-}ttwC{-ZHRo|=$-3Atu-AYUxv7XSPgpk3Edw% z9F7QK{-&|P^K%mAtVl9-q%xB#Bx`?5rD%#?1zXM;so{%g&<;CY-}Pa1GW;W>Mko%& zbR=tZXr_xBSX1)?W#g~g@>~cL!f0Y?;0M|OXG3rn=x;1*vqSzT9lordgoGmD5|2)^ z!BYWBnDXJF9qZtnA}Rtd0&3m5e1G$ZjsS5GS_T-F!^!%j0Y}yS76s9zcg)86P|r~S z$zEaK+1D)csmplJeGq%ookRVpEi3;ue6f(9Ab~ag3s+cQk8Q6$)eUkx$j(eRjSdVeaI*ZA2O+)jtqv9e;^^pvvcx>+MSI$rCpY%WEe z)NQiPfiLqtyQxJ9Q+~woji6K*3s}bfht-XA?ah=5#0(79{AJ$ILpn7hVVma9w;c#O z+Wxj&@j@s#XZ&J5_P=>bJmJ6mVE+q`GP9JQt#f9(SaQBT1KABf707=REB`m?*#Fm~ z{NG2gJ6@6^3hQLaxQW67&tAE}|LX^HkN+Qba(3*X|2cz^!21}2SntpnRL4_YQyi#W zNhGPDfNnB~WA1pg2+|7gog+8V)7i=T@F{B46KR)Q*mssHBRt^D?Vd)yE@y!S(n`KAz{?6CP zGDnGATjfj_Ea*SxSIUL5dD!D+YNgTD9=eZ0+2oGl2Yo_$THzv95sHjO|ye1k~ zVZY$!H&y$9P;WHAM{1V=vkKi$ZCCrvIMj@%+ejC8oE#yU)KS2cDQv}G ztMl-5Y};}~e_`$mihdRX+k=*KzJ~1~2oFQs#|SY|+7U(Q&Dx zLe<(Vtk)uH+k^a5y>rH$w2Q)705E zYBm)Nm95TP^cBT0CRo8bkXRee@Xk?hPErJxZFvd(LzI{8J(!#{;&h(Q+coqL#nuq~ zTWL>8B>;(U%n7j=V`50gO&wiRsSn6%`s1JG+17E_v=x~=1khjk<4J|M!YUB zB!=u^zOux8;~2!K5@8L%fbR7wH>i2r)3Hx%5rn-pRJCd7{>4mKyQ30VR-Ah63dut{r@R6wNjJtXhR4*G8Xk)yS2oxkKgPX6Z+S#5=RkVekL z`2aY7??Rw^GuA99^Cx~UE*mJbRJk3l;411UNQoO!d;KXi94cDP(Y*hH4F~YGHyzQL@E@bhsx9@TJQX6Ul?wCsR@-Kd|k;y*sR`iO_HGNTa zK@h`nM{wRwkWAN3dv{Oz?vugD&!7O-n;DnX1p2V%=7h;+A>|7Z(2Xpj$3+2mL=2FK zLvAq>HyaGaE=tXqT(WYgYVPH~n@UqmB{=%;qn*v2VN_69geSBUiGeQkN-Kc^r@lA0 zm{brw<3JQK1Bva}LZN8Uk|vt0<>VUZ&Dk1WTTky*aGm&J179}pL!so+lrG;mkx8#Ny z+OkV~7M4eLM?(=d2fwSqeqQb8F)DMWRmLr39)HK+!fviB!n#&RA;X%PSOUQzn9CE? zscl_@>?viEJ%HWsPOh}h<=CFsp+)8fcMcqy6TEM<`T(PUOtUszgT{CI-BuB0Va<6I zIO5%$BjsJXhmB+G&i$6YKSR$kT0VD_)I&pi`cA65GdE3JutBWi1W)E2A@G3mWyH~bT3X ziPH+}VGusGcB}%99mi0Wurq3?=LyM8mUJU@_q5Y1VB1nTBYA2iyi#I`#E6#JUA z!WA#H8V<+8Ndqp+5NmjVOcMo6`lmZzrgC4E2aU$G20XX0b#E5tiQb=X(+n8{U1l(V zyc8hsi4lw)tFRIP4FC~uox>)_X){$~(8y=={q-;4ziE>lEXoK7)b$zx;V^Bf>LFzNQ98_WPpgX^1 zIYHIIJr5N$+@Z)Yp#L=m4_je|ZTPE8>;VDN*!{uo3sTx7hcGE(V@*{v1n zA*^9+b`z)3B$;syo&4^7#Wi2rIAW`Xw0+s8nNN$w9@8`HR>&Emb&h8h$(}$Qp==+FA>J@z$NO-*w%*Dc*)=8v^K%`CY=4`}FeuPS zDW`(*QLh$uv)PngNIKAD!0u~biVrN6k^wKQE&;KIvDK!ig$pJM&$6H|F6UR+9LDsC z$>EDSYid$9|7i|Iyw6;Y`n5chXCbte=}-Q6-EQW;7Nf_#fVPvoSpjH%vBP9DAbPhX zfP!4i4$KbMZGMucH-^0a6(&VbgW8{YFb_VX^;`Q^id(sHoo5l)0NW7B`ZB>vEdqCd zWMHQJE{+IUktizfXADHOjuRq;*mQ%pItQD|y57;G^GiiJ=L=%^`KzL&*_?8u+~T*G z0bw`!7vGJ4)h}0Yp`EoRZ$jR+f9pzy4HZRK>Z#x|mFlz}xkEw9SZb_= zN>9aN?6Me!@%h_B95@+yXOS;IeOjcTTdN(R$?uQOmiIL~H{)X%u#cQ`0idp z65asrlCUG5x%kY(lx)D8?Y*Dg;XRgpu4>&eUx zH@sSmAof8xSF%9HV6Oe5l=xVn!fk-QZqDcYKtzspz*9iE9p`6_?bVE=(ng^)#z*BK zPtD-Gc9sy1pJBMlwX+d^*I*CO07E;>Qjrq7Tk=OJ(6!?tm=u=s@)(Pgehr-;JSCgo zRM@M73nV)Quh$<4jJFJby|*rHo<`tmC&reXJ^qi%Y#=165CLiqsNNNTkpKb|6U2!e zjeCY62mpe`2W_|{ol%0V#gUBd9=U#vGVavpq_sTysr1TodEB(bfkU(`y(qM7fcVJxXm)n}T4o;I1aJY$TaGJnuGWPKk~d;J&kS{X zHK-DLVAm00Eu%@onbM!X&v{3|^=ID#qEwLzfT&n#^4ET}FrmNeka%n6L=FH7B&x!h z{>;qK-KUmUlOV;LH8)MLlXohe8wxHXMAWyj2d--w-#K52J~bK9t6>CG(kH=Vv^-UL zX0!hTPe8E0`3HAtVnwMMp5JJw(!C2jM1irxcFrdh8TdcqTl?-S2Ed@|$?IEq26UoEnw=X~asS8eo<7-av9oewI|tYm0-s{yILS>RL0yTvWLOAp zg*6vwG`rO}|FRkolihvVj;hjLc>)^C^^$`E+b18V7U+050jH0ggR+6tL;ILH^4Flk zwpGpf3j{5}O4he_3x2NIQ-eNx>A=Zf^}>?jlr`OJzyAcx6c)n_f75X@Em*~f9+aJe zyw}{QOit>!WXX0irbv|7Cm-fB%`qe+1FxOU-0KKQ+%-mlN$ztRa{X#Nc+Lk0>^Rd~ z&0iVW@TQ}Ks=1T3jjhZBM?dV{fHo<$8osu6YQ3Q4IanUo7#H0R{m|>ftV<=z2`C*DI{iUkV`{-EbCJP0 zc$OmeSl&W;n-rQSE1nQnnPAc$syh}(nbyMG90dFPtAaf`@K}j%!7>>6RT0~=X|ZE^ z?P|vni2jp!W1S;cvK`J8AJzRS=doD>Em+MI4o3P^FB+#~aOgKp@9(`^>GK%K9;71r zr>byqfIL=YC+YkN&kSnGAsZll=yx(Xt?DUb;99-nYtt_^s(5ZK23b{0mo|H|N0{oa z#VcIy*$=F48~l-dq>C6|c|KiUKh~G>voV;$+ZT9bQ)X1p4nOrDTS>f@JGmd%ytRnA zp#602Msn6wDcEG-UFH=JPe!i=WY3g7&AfCuECZGC37|GtR`3=hcV;I9(1}v$UmXcH zCVcWQ$NEslnC2?wG~r2oS;Jcb!dlTY{lv`9N_%BB3DrDBefzd7!Cf!HnBvh7{4b$) zPZ%EvJBwil&=pRmCjB~L4!6jqTfr)f?>9EXS5{95sbXm@k5%J^?Gq8Js5gj{JM0`g zdO6*fZ%gQ!1{xwdK-}o9z3zGLk|>}Qi~qz7^tW60K!p_cA+%Cxw?iesRGae^&90B+OR1x9fL*W7F>FS_vlMgP;~ZmT}df(m{(2Bz?ZB` zqFo~qMJB^2AF$G_Q`pQn7-~gObMR4U^A5_TOF4~vjKoiQ;w=3GxVduZR8gVFKNgvu zfk+=s;f{$A<&9_GFcd~}kl+?n9zlW(YHru;MD>3$tBmk+x>(%!{6%fRgpEb}TRb#Q z`hn9_1o+>R6b-3G*2?N-ecBcCzLHnKC7TR=9Kix+$5683vQH=C{DwJstiyg!qloDO zbT2bOzwmQHr+aT-RLw;LZcJSV(-JNzF&HGZI7OlBgW>c5NrIWX0H%-LVKtdrq)Jqr z-Qa2Tyi22#8B5L&KMxKu8JiXuErhyZhRzXJL<27)-JTQa%yrJu7}bfG;OjId3cn1L zANGiy`X9U%df9|zN*?$1N1VbQX|Pc4017$CO$3lP?cl}@WlS@xzhop+uXP8fqq>6X z=gmd3;eH~z`tL4e^*qdy7D;t$%D1+N*O)L-D@Y4B=0@4ZT+Q`EvJT5h*Qm z1?;Y$*V$lq$R*G`t$S8UWpPO60);%n0f#Miy>FXgX2Mh-7WbF41gu^%^s;yv)<^hB za&>@`eaq#1rA6?oQdU%J)wlO<;xWcAt-Xk+x|vSXiYNgZ6%jtVyn*lt-2vi!MTfUz zEnE=3^TV5}J(n>w0l2{z7gD*N<_){~v{UoSYwLCk*4_W5`X1q-}hT zH3!kSYEs4u#JI0-QD~?SLPz1034i zVQ(Ins(CMTUu8Zn;=^5YlO!GVc)<;sAtCMxpPuI64}wuEK*nynI>XKlHHkd2h70Sj z>K8AN5+h2zSjskeIT{^o zqP7Ti5L*LhVo0W$%qQdDkXja^Y|c`KZWq@tAnk{SX9cb!ca=gZ4(~L?pFyPyJ^3fE zS6~S2K0;S40=aIH4ru}$oxZEe* zPC=~-V(yh`Vrny|LFN_R@7iWDx~ANhDlt%Z!i<6>`h71T3$na#3D<*GrKTXkA9BzZ zM5U3whZkV3T>%Rf9Y*8WQ!#%z^FDHx98>E zF-4$}sdy#nlP=9F9^B*@FurRpBD_?6K4UhO9UOh_V{ILE^qf5G?B6qSx5fq=);!io zW_2$X6=iezo((yEKQwoOs#jtmfr1Kdo^BH;d-~3J6hN#>f3RB&xQ!Q?J!y9kqG+Ki ze4s{BUG-vfg~y$NXu0>lQJTgt1{e6k@y04b-)Rq5_W6-wq3}RYw0P|{gjM1%I=SD0 zmu9KblHGnX%_#|)bnZVVZ<4)G))+Si(baea>-D~QoZN{%k6yM|x5q81AOcdU255{v zx-z4Y97(iKZsxN#6~R1hCiK!gioetnNIE*@ZsCbCgZE|2nK*ox=bZcsxzdF}b#xML z{zU3Ib^wXTQEvCRN8c1K2wqw^?Mf}CY?6x zMj^YTbaH1J*oOu)qXZR`A*DHJ%6KzaRzzUa7zRPcB5^H&_-Pq}<#f zRdN`y3^6G5leo_~l09+Q;2Ne=2VT9iy7ZI>CB@wB!`R4YdC*l@?dn$k1On-vJ!lt)`*tNTK)Y9e@|k{#<|lnqI!s zXzfXnWVlWPbjI*Qq@b@8sRxeV1<;DM+}!Y;bxY0xS*-$_%X2QC&d+Er{ck4UCDHdl zWMjZe?YW(7r_JJ2oh(TSZr$jRCCnz|V+bK;2w`!3jq=vdtlN^d^ZjaXE5b9~ME49i z69w_vFaE%y(cWa?%#7_Zi0e2;y+cik=4hr-hUUDQ8L zp4~>xV{UGM;0?xY`0KW~F0+|odUk)rx6;7Tyaz5_1|@?;q{BKb49pgM(3qgXvDXKN zEL^@Os*x^Unx&H%*I3aN+>+oCjb!@W;hwMbu;jowgB!vq?>qD9sY^*Q+S&DZ*z-DG zNR6v9;VGv>6Za?6twF|ozp0HhB)-+56bGPc9L_%7N*FTezo|iQV&K|rT&N3$h2Wwc z<}S^Py>iNVTgCd%&6$4G(>_lo3={kJ$_Ty&)yl9>{&(N`>R|8ORF7>r5 zfZmN4I2Rmgl2bn<3Cb#3(A^%Hg;$v9vz)L_b&Ls>UA!sR^J zoHCVm!AS$FTqGpkfQD=ClHoT$((Pe@>A>nvC%MPP#Qf;gI_|>ORFUPp>{1_#`+c@9 z;f}*7Q>pRY(e4b?#VPhkN@!uV*gst!!QjDClH9i%!o>p8oalHeF&3SgD94(fDI%7a z!e{`qQ7tCqoGqILol^)~bt(C#+SR>+9S8??MK!wd(a2gXX&)67BJc3(M4@^NpLQL} zsl7Oq`0p8Z@2RDRw}Den1L=V=DHI2?PCTd6#Bwus*a8q^!$ zv7I&Yr$ie8>SzvC6D=0VFLa-mi$ZUxhUSYQqZ7?OMLQ{WmIXhAG!t4d*c-mdMsTjo zY*lWxXpye_;U>+*d4<-LN|{k)hpa63YI`c6plfI42H4<9v+~68V-2jOtj6riu(Q3& zn2|*JupZhh>{+wKsB-6Kfd+Hq_y0bDd37_Cs}2B)*Az%CT~?~$7u`ThkKwHCApmTl z?_!NE+HuDX?e_b8`Lp;FgWSaxorQd2#+r>7wKF^f}*DPV6`dTa^(ZWoxPasUfd-`s|UZ#CG;!pv${;YESGcA+M^ z5QFv$?ZG}6fSYguA?l)@MP^T1`yt5uMrp%w(VevFuhnh2z7LG6p)$*Q0xU&L<3>Ml zv31LziueZEqRGfuSZ460B~q*|<5j-*t(<6PF`6r!5&-eGpAr$mOWGoRY$hl4@Piru z3Vsll7eJDm94=Dvr}D5RWE+noS)44E4={yMOmW|J4_>irZTj}RD-KsGkQ5qPncoW- z&+TQ^;vDizDaEFous%sxVh$5#fsp-t&zR1qnq4Mp^Lw#>mtK5E1vL-EEjz9&#qKVB z%udcOPyKQKkb7YVJKyv?NAHetIs^lQXxMOJkwQeYwj4{~^GeI^Y+LbJET*C2^VW^! zEz|9dcnU-`w$dnOQZO?{60Bk?7e1?AbrR@8r)oQzDlJb%!LtO6WUVM)k;EJkwvovP z6??H&hTRmRaidgMCc{fkxt=DZrD<&A>UvZ&_?A-Nu*?~2ll;?L4BBwy4xyiu6+9A#~ zxkSK-%iw3~5oJ3>TOyUf)OCbj4hc=CI|<&q7n~C`Q{a+IbqEtC#ExA~kz*)Ubpo{Q z!iXdCWu;)(Ps|HTv`iTU;?9QDH9jbv`ym|~l=Bib=EWks#v1a;-)1-umpx1s{e^vM zY!s5~uHHu1-3b{m0O`wVR#UNGi?3d_NBB--F)MUKa`t<>rQ$=1^zpW~01a$u z@CbPp5i`3|0{^~JgLRyn%dz+Uz@+imGn^Qg?T5(CCED)D#DC$wS5g6+h@x6rqc@TU zOPJ_0F0Os{pgvMmRx?;Rdd3q3+&Yzn!Q5o*N4(cQoBFr`vCQs+`c&cmjGP@+FvSGzuU*1UNZtAjK; zLk1|~9CbEiIySxR>H$^`f$4}qjQ(dqLPc=G)i}s71$juQeMaHMX-U4v9*dZss=JN_v~f*7We@nsBJIwTqom~e@L;NLbeEMo1d0DT>9e= zOsm5Jf$I4vqkdQ3#tNX$4~juJNvNRIVW3D|lxiEqunQ1!*iUttaC#aM5R<77AsvpM ze;dMOU30E}+@6*^%x%MtB&}6`nt+YPAC|o(_p_#V4trI)y$X+n20_j^4z93&Kbkk z0y5)v)2b}RTP@45I;iL_K%;UcAR9&hJUhn$27&mQ^MMCiI7P8o>BzHs)M04hW3%e8 zle?wC%u7}SfX(Ym1{u;QNop-4?imdap}$Ogkv<7;YIjQS zYdK(m=*uX1Mnccl`U_R0KYKy4LTn3Ewu{f(5ySmk`8elYv=*Il+;A^6D}3Al!4@aP zOdZN}k87Q3+xng4QiQQ$&pSdBo%w;j6lj_a$b8KpN}Ozz9Y5%dc#wbf(!a z|3P|z>P-CGLisOqWS$?`kpaD081-jqq&C*ZfdR)wlx1`E10AVO*|@L~+}KDDZykz9 z6_rq2^A`}@d<^BNiB1^OU|+tfda$045jW@$-=pJ?PH-y4)|xJSDaDY9>*?Xf-vb$4 zFG$g$9Qb8LUf-o(h?ezByXFE)5Qg59SH~oY2(Q7Bn zeZ=~cB?+H^P$29c`CUQ^VOLG?7{IO$3`_b23_u8Q<|5w)E> zIhvV?yF?8ZSvRD>BX5;7B^7^KgKuIA(rlEkd)j~9(^p_={K8&Jjs+MFS`yt9%A$I0 zr3+VtHd5wiF>Zlz`GWa(Vr`HI!+qmPz8d>$vA8iT-@WJt|l1oQV+gf8x&eEO07d2%z(ggiVvs0Kk$UxA+?} zsUcReeMVKz`N2pe?m=y@nmmxTnb`Ux4ZZ}3hNlTAj0EC{XcdjauKs`fU&!IBsnX!I zk8x}9yZd|__r?~ldSAd7Z6Gsp?-*4JiyiR{JLQXaB;O`=c~ULu$GNZTIEIZ6tLFO_ zf)1;i*->7t2<_trZ4lZn*%LE|u4JZ5;z@{xa-IO{r%}%kF*C5Rtm`p}TLH5c{hX80 z4RKS<@?N)&Br2}8IJk{bNhR;k zTZ!kK=vdxOmikX#lopMoIBE_zuIzg~QN_)cw*#rR^9R5E(z24AIch&G^_(k=Ac_#S zURfP)2*i=;7ouz2_}u2o5nO|>3{|)A|7M(lKCzD8q8Z*VaBy_~%_5lWmtksEoJy1QnlIr0k1=xcXk1BP|vB>L=MP)~>0N;Pz`a;)^ zb}gO_P#&jLDXrE~&(|@T*ePRVfGzqd-P~OkiNm7%UQdz?6o)OY?;@tkKjC)8CT=8B z)3yeH-l8r6=lAKh+_7TJ2Gc@u^6=F#R_M&*A1YJgRT{H+$8+f6c%K0+KlF&&=?oR- zZ`$q!tR1}JaJ|R?!9MSZtnNb&lf)8?UGM1eeJx8xW#~e*yPt^4w^sU`Apiq-!ifZ; zeDN+Gimk5e2+3SV;AkVE8%$T`^PZ9}Z45Hbr_?GW+z23(8cV&VLqL>rJv7Uc*z&>m zpTEKETL`u92(3sKu`|8zQ#Rpv-Vz3;z{Q}^sdHGWKq96Gpd>$(gxWd8`&PS+CN{nx zyWE)sg|FJJn-6;f2E<8teIph7e!D^1DCDb99*4mYOX^u7 z>Yo$#Q~WAv?3<@Ec`P7YU)NR?IlX}6N+Wxp@IRl!jyp!boUEE(epCs2V}$OG zgM0UTt!%4t6`^g2h&{<|Xjlnuc8SR0&q&sj^hld3FZ5F$M2!Ai&&MYx6k)5&2zgKu)V%E+V@NxmY-2!WMYM zCb7xC&CO5K1T0bS74fdRZl(g|{Sp2wS3HDvD8K@Onv|Ru>063>`VXe8We6}^1LL62 z#x8#bXJp`i(8_f1{vprw+JZ7A%a7e$%a!2JC{p{-VG@a@kLQ@C1QcQ#F3I!gMKH~R zAkTnLJP3|Xda?%%y1UH*KH%^P!aRX4&TLZfPU9qyEl-9>#jSUD5fM+L^U>t1f{H#W z4e!Q_0Bo8p%GG2z2Qj!I-j=8blcpUl-Iul5<#9G&@%lUt0kSo{$n@+U(YbCr872!` z`v7G06tHqa-rUo5zV@w}Hn=R8BjBtt56+GfAl=!elzTTy!~wPUq^`;ripxHy)ouw_ z7kR4J*zjj1tZLg&o9Fp!CU@RzWruqdh4|kQ;H@T%*b7wwK8+`yZ<(A7Z~qU8t^QGi z+C!UZ;*78sIOq}=j-f}A*jKeAJ*M(4e5*EKQ}`tgk&S)qW!5MpIP3R~SGqGJY|AGxrW3@7xQ;l@P{Gsix)xMVU-#oT<=80`fdGVLU&kKqXL4R$5yLG zlLPSwzkVegM1CUg7B!NE=OH6(c*p?C3(LX)l$4u0>WE=S^^$!|e5$e6UEG znJ)w}T_resxIQNw)}e1hp#wMkwcP-D%V2BtrvvR-QQX&D(A+cySAZNY*_vN)B%bgW zGJ=p~5?A^@?kE>X=-a>gZUKF_EKXwX z8F*%`6+CXyssxalc?#vj1DMWm>mPP3*Aa058GfT@Fhf99TGTWr^rqep$>1AO&eBxv`J- zNSO#SbPJ9EO*o($pPARsR$7Rz0Jq6rROs+KG3nRL3Bq#2(1D+ia5Cb(4fHY$oN7`Bw|3_l=e6By@BsTRDc{a68UPtbXDzFKjR8VX?hdk*T~}&XU}XoCc|Tx;x&K!rULvm6 zX%ygH8eG9YTJ5OJ7H;PzV@f4L@9~s_nTx4%a`%U03v~4TBE$=bFJkx5U9C>7O3Pvk z+eKV_0>m70b_(~PNMb)D3|PkQE>;K(T7K8$jeYZ&30tWSxNLEEkK3Z zWhl1b%yhfuqG^`DDkot2!>51oSp?i~rUj6RNk;Ll^dua5R&o><9?c zdljE#m{`tNI{}?|T;Iz5V@V_DZ1&b7uALrDThyRehhb(efI+GDpy56+PxHVCJ8!|A zbw;>dQn39L{$yDE&&;D%Gs~HiDEx|L0X%O^(@AUr5WdrHo5ahQ#qkUH$1;mh+$c$J zn89sF!+Tpt3bb~Q`i`fxsUm;vm-n;kLBKBwk8>;Z8;GPOr6) zjQ1-Uh^wz>0sra{v7Gl%h%d`y4JEEQl((ic@=AtIXGb&L-z*w@9a*I}V|z*JUj<@= z{owU*ao>rnXNxSt&a|ZqkfZHR#s}c?-yr7wn;!F6Wm9CW6_yJg*72awONL-{aV-OK zE6k-}!!^kOeL81x)n8jecQ>>Bsx5>uX@s!v4%0wu?oghOEH>ZVD9+{rfc_{Kl?)lC zId?#3Pm-}y-LjXuF{21r55aDX<{wkdD1fYU2sWH?D9W`P6b|ne;@iM3f=RpKi8ShW z?6!E_WPfcRd*Imz*z2xZn67$?o48E37AocF7$lb`9DQ5t*jsyBu|HmUSrYlR-CI5O zcWa*IW}BLE^vE*jwA9&}h`dpY5hoNsO!XPzlp@(aLu}F0l#;|aArk%=;g;r`#Hb|e zvcKO?l9r+DTiSp!w?8SGRjusf7bo#glLYZSKSlSi@U^_8ACnj~`Vu(bz{*p@;9McH z*tOAUFXRX*+a20hVp=2x*7P$Xi99b3u@s?4$+?szY?zO+{tf@wFpH8Y1+yQDaJO|s z(djo6#qZ0zhglbKN$SU4nw|*VqmjM;Rx}>a1a1wOEG0obgOnx~xo#q3a%V%qC&M_+ zolm)B&>{||Pa*m>Os8MwJCRVY;&-MYqTN=F(CGQUd0-JGxTPox8y= zJjH&&x1#RI)jYbld_APKw!on-K*~Z0#mp7(H#FSBkDMB!r7eH4Ym>W?k-t1omX6(r zT9U-aj>kVl9y?4MG3R4@hEFPBN59S3fj{rFR#cCo*)@Ea9uQE= zyM&E?_>O*+s3U8zQwQfR@(7tOa0Sk_Kx{lAT$d19bSSB!lV(KM5TeG%_FNM(`Xe~j z9%=c~_=tf)RrKJJ2?yB=_5XtFpx0GDW3RI5yMVFJNZxv@DXkqYT~|8WcSpM>a9X+M zOYi0<2N<{dSX4%f#%aI;Z_cy&JtJHvM;u21aP{`vpx-w$_=!2k#fp#gi^c)f%y?l^l2NjADZjxufQ*kN-xnqBa)4W7GuavOqEI8(pOa9| z6JN^$7gdxGR?!2%p}tFPaLn+LE!yfRpZ$ur+4UG%q~al+fx>91&5{O88l@yKVxK5p z@DS+r?_??Lscuy01DWK4OgZnAZ_1k=QUX0r0fBfTD_+}VJ&7bj_TKTVM89{H*~yxu zRKf88S#VdVV-1!hePM>*P~#y&xdKw_@b&@2 z3X%w@!ZIS$KSRSVzTqq>MDs16y{Bivf)ILf3G&nNGiGM`k;H_Mn4sKP+`SJM3nts*zFYFR7Mt+!Vl=OMyI z!opWo0=(fvPoVL-E~_$fu`hhfRj?lm{;MlS$am9OA2D7T@$`xxDZw(+TsRH?@zgTQiKv;aRt@m-G$;)lAr*`wl@^9BZid)r*r+1iFU z%2eHVs1Uyj-2UD@)%wj0avKt)Li+kXYD`RfCv1v7#*t;t!c-#Wtiqh7Tp(2RbI1Dj z31uGf3-M~jRpam;8|~1;&ask-ElzQ|=p-NlO){X*;xzb~8rXXS{>?=jc|m&WyZ6xL z#9*azZ7LxEk~AmZjEHed22;Z&>BwrWSj_q{!Q2Oux|S7$D+Z_g6I^I6*M+70L|?>C z8Jc57bJk_k6Bk4SAJTx{jasUox~{S^goIkLss0N{vaGs8>zjj)9-WL$b7t!xmhmFD zfWGEgbb^e(A=FK#(k!qJckNnB9e-MCKd*W?#!}FkZQdDxDFv|kbk@>pJ4i >aos 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 ?BQQ>mnfG2+x5o1vX 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

    *Tl6+JfwvBu&ImBswJUTD*Tp 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

    2%C(pYU3)9(8K{c2jcoZ2L= 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%0AtuaayGrt8WDD~a_w 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%0DPWpRWmW2eczKvKs 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%0AHkH5p>X>+7D)?_but+GPtNo=D~p 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

    IlZr0P;GK-=skfLn1) z?EU2)^`V+zHvd5rWJ%j`1$q@0jOr^zEvnugn3jjKih156lJ3o@OQu`#K{w-7KQgzU7`_Fz(M43Zb|bI0k1Ut*|rL+lm$87`H5Ei@4iCSB8I zJRlpD_IVDPGrZ>tQ3$F={7_|J zo+JiNV{;W2zKCHuD*7b?BO)v%BR~Sa1Z4JwYOl6G4THuxR8Wj$J4q=^{cx-9zPa?A zUA#iSYW^vRb8u{XaKXNuKv4_jL7uce`E_?W4fDagge?vU}yz!b>;BA zT)%#xbtIU}q#6srAP)#hwhQTi=2saq6JH<9^>nnf-so~3(1B`kaawq{)m%sl(@ui) zMtUros(XQ z0fT>V29OZ{F#VAT1^@@Z0nq=z|L=$}0!Hs2?f-5c;y2#_7zZ{BKm>%)Tj1fB`=!AD zV+uT83AY#kfB^700v(8LJOJP$5OF}50Kox7A{GDu5A>Ix007lMfCDj&3jmY=fsG9S z_yc_vAnJhE>MjtJ!0;^&0I-e;03ZYN<^jXQK*#{$4un52y#$DJU|u3%+#cws0U-iJ zE0Dhr1Rf*+AP0m$5buFl2Lcm#fms00@c{8?>!aO|bv>p%*70b=qkWHcJ#q|Mp#T;@ z*aP7Xgg+2rK*Ry@8i*_)3W2Bqq7H~wAbNoq24WhBWgxbJI0oVhhzEgtj$6hn%44Es z>{eud=%4jHw*RrdZ_XchjC%|LX98p(h=5=O!XJn@AhLh}&SG#t22lVgfD8yqAZUT8 z@COA{15pRWM<9Uzo(bp#q8EsMAbvWK#|Jt9u%SO3H~<_3926W392^`191_TSO|kU;c@7%&p^BjK0-U5H;g z{L>q2;s|`+`sw_C2L8@Je*Dhu;o-ORZ{gG-z&HQp z4?ng1H^P51^!PdO&rW~{8XWX@=KcBnzkeL|PfbAn5kLM@I^Zu=_{$T&E8({%-ee7KjRDh-kiS-f4BX& zF$nGt002L%esiPu-~H(y{{6RVAJhE5od5@VKijwbgLC}N|7qWM+T#)2|L3<$zz>i= zxRrn8{`TPv$o*-<&uj2|JwMC+&0YZL4`Tp-=ls93e_H#St$)V^&XYg6e|;_g%=J6& zkJ0f{gP)Aw{NHhZXYz07e;@iC_s3X6{!NkJ6M^Bsas9uaK>iO#=ij(Lnnv^|?(eUd zzj2Aamka(ER)5d)w{ic?PUyej3IL1xTe*)Bpac0Qt_%Nf%*QM6FADy4{(C1s2EX?L z(YMr}hkw|%zwWM|*?|6!w*5h?pBayT^1c=Svu(e#67+AE#ZTr>|9i0yf8hQ+_ZR+e z+(%;s{({x|&5Yj&zvcS-41eo4|HpIw|DnEr;}Sh`f#3RkJO1OtckXXB|3SQeoaJY? zf&63c_x`*3*0$f3>kkn4*%z(f=MsV8A9Ko|Z2&gzC-u)3e5d}gFaBvR&|d#P7x*Lo zeMmn1CM%HpzbW^(S?Bj7_D|*iu=hW_75yp8x9Im-2darNA!*ekt%vfnN&zQs9>YzZCeTz%K=UDey~y|Emi8ZVBzb)sFwEa{pV6{8iX5 z1%4^;OMzbs{8HeT0>2daA5q}@D&B8vd4FHY&-GN`Tk-&KAm9K*0C)f+00AHXKm~^X zYANmSOZxXtk+gL-wV_m^B2v*%A(9bR&{vR`krdX{7ZFqu{Li-R=j!UCw%=Fd;eISR zKBk}obq4-M;@g5H!jJckzB3=wAK&!{zVZ {|+o=5jc`*-7h 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%0D^Mo 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


    *8S(lrR*hGe*cTPnkSdR7mymQsU z!-(&*&a(+mGN2i=UIlVmUbHhEtId*%wr{XRZM0UnkQ645f(rNUWLOiA_P3}eVYj#s zoVh{n<$rC~IR`+dcj~*R{Kui}wC`NC1($Ocoed6yt7qYtFbgiZgEF`~QWu@BsDLBH z?}Q}q-$kis_qz*a&IbuaRz&NgFy#x+4=$YrWg4enMkQD6}m-iW=)nw3~|qwNZcR7jA?gB;UG?4HsNBa5w4M zfZ+k#AHfBcUhd;xd3%$0(rRs=v%+vhuBvxnQIuOpI~ks1mlB+iQDl7NmXCo8ShzM| zSu-0LE`qy}+75RNTDAiaKE)NXokadrfp*v~dBXm)d(LdCcPVr6BsC(qrvh4ww)p>$=uidf%R zog~xzusqsb*=BT%HigpaGsmX4z_5JwPI`f;>WV@G+yQl2<~ZlqDCupysubHY(!3)s zB5A{QC5EsM?GzS+t-|XuYtBd^<^t^qy1D%z%4%AAxALE^Jc(xH9La(Y!!C+2+RiDR zH=S=}?Eb#k6zCz%4RqixFBE_FUr>F-0a}kZ60J{zIIyTv{LECyoj_d@_&-!lyTx>5 zE~pKJQsFd@%HviCKMB?F8vOFVt-Dmovq#uQ-YXf-wNz1K_i6w+Vknfr)(~RBVTn zO?V04Ko-fz?#!WvaDaBW8;r0o-3gPD$WZrWAuXC_?OJ~36R?-cg)~GFud9GwVG|@? zR#|Sztn763CaKp>VJb^i>w02f9E2$_W7cQ5xqP<`qnAD`Zmtd=A=NQe*UC$^sMMlY zyJe4|leVZtn2HX@w?b}tT+JMqMI%XlVFq*aP1Dq|qP~mqhQ_~XO!+`32z8fpFjNuv zaub*xF6ty0DDN^MX_1A*!>(h20SXJO3GP6u7iMLGpMy=OOsV^r(!K|+*2EZjt2=+mE1ceUNrHV=XC2YLU278+? zE!FXtBp>kN5|(~Rg5e_j2(^QSX%F7c%-w~&qW!NVr{1@t%8@?h*?s$HwQFWdYS9O@rFSgg!f*^q(mWjfnFWw`>%cV}3VK>+{ z()f@XGMmrUKZo0R7x}<*swSk80G%83>VMI@ObdM?G>1grv9t{L8o1q>Ij7Yzh&BiCkQxF_ zj#Jd-F`mI0b51$qU>%Z3&Z1X?sz3}KyRrO|_-F`YwH7i4*ax&d$95X$uGmn6XoLE$ zz1*#%(5^+0sT4%ZPDBjs)7lx}Fa$dT7LB5=@+{F$>#4fI6B+P13WnfVk~F{gt8-5T ztioHceT~ig>8G)Q-y5)==?6R5%LCT4IXLL47f7Re8PxZve9H{{&sSsd4iX=wuz*aC zhpPY1MvI=vHLA*6^5F#=oLFZy(k{Y9fJOZQdM^S(ca?WMt=jl}bHp901{=%~w>*M<9uWb+S$ckfw6Qzfz!6>Q1{(3|iy&gxxTd}rP(wAejW^hb%nGXVRnS@S#DxYBTs7y=QiW}T z8h9xy`pXmgylqbFv;xJ!a~@mG;>9VY1*`U+(-r%9O%4TV!+l{1|&K{C!s8fDDL z2h_2zG*A5=pEP$lo56CFmHkj5C6yI1C?g7Z*$q!$9&84yg@cI7HpdC1gQSl)zZEu- zz4@?=tnub|K!Kq*ztc(952`~BE!lz42q&=9BP0SrVAL?%2QL2W#Ba>sIEI+o{VjT! zQ_el~xw}iVSY_9gL)&3HuCA)nP@7ssc>|e7XDY+BC8fffEPD{LL=dkiAxADvJUUgp zH(!sJ0W{Y82+9HNhz-I}j1Ou{p1L*exi$#>MHgtO6xI2_H>}b}Xb1l+92~2>2H}+G zg5YqcZlRS(W`nRt^a8IH&fQj+8(yS)D(trFKvca!ID=BM`zhiUv_UvR4zz<6ceio4 zU=krxwS#=6Ej}13dM+$cg_WT2NBC~*q}_6&A1qkkEXZLU`jU2WT%sTImsQifBq%@M zjs-AV6SVrzVv7gctY~$R5e=AJO9oI(a_lrWE{?)dCTber5j@8D8^S!CHAE>{8R-W1 zHo9nz+uOP-fd;Ez$>5`aw@sCO-jDEkhkR_Z&lcvRWpOr<&t%!>H_WGl`K%_NNwSZN z`9#CVv25EE(be&=+uu$u3%1RYTxPrd-~{^}Gq=r@TqcX9b4=JaemyI*BYixD7_n`l z^qs`M2XC`V-|_6b&$c}2TaBCYO1p9vsF$Td_!^Cv@9359P(c-GZFEDera}1RGB-^_ zZ69=p%iPoylub<7z0>$t2zTTBv#e|zaUgVQFuQE+gpqf!D#!lRf`$AoV;9))x>?u( z%=7R2TW}wI53Xyh+*51Q;39Z1R(P4(q!W0l;j+}awPE!%sdlY!4-}bTQQU!k7sG6e z?`g146>>yZqRywO1mY(yJUEWP=z(T#sc6{5wjGe}di zSFQnZMkoC80uhihbQ!ySsPHMikTq#yxz}zK_KTmV@HrJp`o+&?e2y&@{vv)I#n)Z9 zbB|@zi=xY6xC|;4ekp$K$CnOCSBak=beEu-=qEH8;zY0$7a1^%b8KeEzR?Jb@)j*- z{7mpi``8trXKlhf%%vb^%umnGQZzVAnH=fLbD7pwL;(8=M*w$4cp;@T@Br~}o)HE_ zcqEuxaVn#M7Acym<@9l$twXi4j&6&tM=+PwL!(gkO{v-DUOc%du@ zp18FG&r{wd(m5d zNnu&f+K!t9q`ePGQg3+;VV8)X)H{ER&j-X$>S#}+ugnrZsUx}24JYA~b!=VL!=R2x zd$bq;JyBP6FF9$1B+&^yTvwG3C$UTR5nVBsbX93^bw6O>+z%MBc7ra`X7BVIT8&N5 zuLHLStHV4^9oF^)#9|%i%_FRP^BBtWfbCPJJ-19Bw!k|*34eD`yW}MVV$^{=1=ol@ zNvBy~#JG-Ma_v!hrYT{+ z8Fu2K2h}x6p$I6R#QmUvLeV%LW!m4xnoiwF2YQ_AmM(j=+pnG#7~jPO6kK4u5`W*} zFN8k@hov8Ir)O#n!dnX#a6BArNQg(SJU`c!?pj3j-eZ0%H z2YhR+O*z;8E@36e8M+dTtinbG5B3AbgA1Ot+!iJwf0&1+#2?qVb{@s20;3n^R%rl# zP>8;i?5_MEs;tb3Yjos|!+*#kVI><=(eWv}UYLZ{KbwlD7lz`)(10*x2t!dyIc{7S>MKEI z0n3fbrO@dp7V+kAq=YauI1CxX(5+!8DGUt?C!VMjcHyjg7ZbN?>=w5oew+of$U=9gbI5z|g?UdRYz7=2^ zI)Nfp14UuET9>g)x7AG-gK!rEx~XgOa=V(c6iaWgYiBj)8aE1Hvqm@O4x0@i*xw#c zj!9p@F&2)SKgZ@~8uWbRCPABQ?j1-e3n^g@&#+a)JMopKfkI)9LHIFhD(-DVDGUv; zM}#=I?6SaRCz+2A8iykFR&c(!M{w7yVG0P+aQl2=3__I&pGt_X4mdc=b^i{lIeM)TU%SOu z6TPr9!vPJfi>=;>FYjtvQI^@GysI~}&szHQuBJ7ocXb_p?a^i4r`FTwQybXt2kiGS ze%X}=@9OR3u(}?Ue&1ui`|-N~6c>M5{KexBeRmoN`?M7NrQwP@iocoon~lHu=-LZCqY-U{s`YN3t6`a{dw!s0M<(urw@NUK5H~4GA zUpxLf@OKe^o%q8UQ~`xmf}5ePW4EU$jp#Ca8D9I#?4@`e6u&+wvpeziq4$jnOn%-s z7P4Pb`{;ec!G4#qUy@SwI$d68mDlOR>*8~dHferK^?l1TNwF^~Pur(fqL zuXD54S?hIfDYI9g(1*+HOYr(fnf+0`j+WVh{DNat$7cJF>2<=F-yg42_Qmw|xi25B zSReo^rvuh>+(Euu>6tSsU>yxGL+zQ933*U}X1HbrtYZO=1DGAKV!E-8M}P?d>qLM# zaJ2@kxd8K2o;mpe>m-1a0Zs{6rvfZMfN25ibbvO1g#qgffJF!}Ghi(SSOQl_pUwhU z2G@HaVGD3Jz&Qb{24F7)hz(fd0Ak$E=^e240jLA04_NyG><6%az#0$m29#_7Z*|mo zGSEjnPt(j=GksB-=N5bhtT(EOoK9a&-}LAo5QL zSO)&8ZN) z-!R%V(wC!~j74TZ;3$qcJ2?A6s`at-x7&8~aagvyb zZnM&#hDf(pR``BSl!z2w&O?$ldNE)9c#F4S9;K6vs5o@wi{~RX)n0ScqQ3*FuDUUZ zj@iXE-C+r;T@N^RiCCkmks~a+)s#BYV5(1*T8cKvMDY6KQEAh`w=<^Vx6a5CNZ^Z? z*Gz_CzidaG>q3cB>w0XEaxqeHLOj{^fDKR9 z%ITT@c#TKLfaNtF+3!Ct_@G_i!bY8SqQ z+r={Agou@LeFmj3^zSak=O{(SIvP{XJ2KYMKyu!iv5p3i^Jck=OW(0Ic@8$=<~cIv zEL&3Us$8aAG7G;kOK12BHh2q``LN3>m=6UI=%Ky>P0%L13YI?RY z3Squxa2vs{ZvmHkf8K$Qd)awCSTe*|?5SaS1cfFI%WWV2iyD?iRt*j+zz)L(E<&d^ z^rrq`vfZQ<7S9hXo6hx=1??&O{kFdD?bh^W}p>^;3d%Xd}0{p`1v*cY}guKo-6qjx92 zG3d$9%Q8N4-}L?^-PE)-xf^<|3;c1!>rXvB?1fuv6G!E^Px6m7*F1DM?)IXWE1xX3(O59hz6cjd*i9YznQZ3!23@wO4ZoL&R^RxY4?E%t2b5eI2^e5*xgPRW>GMC*I97FjKJ6Et-8<`lu~9$Em-*Fq&#T7oTDvUJ*7dWy zdg__oc+5BO&&Otrf99PxvtD0#YW_XOBL6xeY3ftnja#m>!Une%ewmUX5)~c_>#U(i$PAO)^lJ)1;tm(+WO*omOSa}w8c%)PcQSkaQ+w+ z{iGnLJ@sSO8HH7VZOf`B=_RFd`aQpT;?Rs1@f8$b zr z9tt&sIw>sVF2Q={4p*+Qx1PC+uz}n=DfG|`1G!5u$HI4};y%mYI2K-nlbL%nBJ`P+ z%-lsdf!uM)niNhYkh=u0V&OTQCb&3A(V{#eyph~F+{tsNavRBAf;YqcZz!}8Ic$cz z40~93#C5qi4+}5CmRo>4oTwOL;yFuVH@ptvIi%A7&vghd!#Ps;b-m)b94S1(`4R5< z5$?<3j${Zcs^xH(;br9BjM`wjSVry=tc81Ps4*0U2wJ$yu*SvW!j((VBz3p1W>^HQ ziGX9f;S7YA+dTu}!!W{!VT6}q3&NwE&B#k(LHIC?@L?F?WmwO`Q_;{jSa=C$;U$=b z7vU5Ne;$1gOpO!@FT)gGhAF%R8z{Wo$0)oEQ+OGs@DhwZgtAF}kCjJ)S$QOwl}GB6 zEPOKxhd#-|OE3#B!7RK8Cs25~uTpp!rtmUM;pINe(wF)$OJ9On`V!327vYT*Uhdlz zUWO^W3{!Zy&m+9t&o?7{7)JOojPNq-Vd*0;8Vf9a31;a_FiT&AEknDLhxEfR(htK(UxvArs7ol++8J^!Qv;@c=vlV(!5k@HHrAwk87$??U@2cV z1|!1fM}*Ih2%jGjemTM;E9y0>

    {!5k3qfybLd+@XgYgrSLLL;boY@ORyH< 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 w^V2m?-GAP#zpL7{ z@2+=#^^XSzrET4w)-%1&_^p#KU(s{!BTrTQu%&t3&P^A+JRp^3`uL#U=byU$|KH!! zmv2FwQ+{2DfBe>*{}(-mkIZlC|9krK?Rp&Rd>-G^=RTR1#?Q1r?|<(1^rzw;d0)I& z{(ArAdcLQ>9e$Yiez*Dc9#`)9o}O)Gn{&-?%5fFmJkv8~Ip?3~et&px!}+fqblyh< zq2%xBKZL~Dg+IyP)BkUL2!(HyBJFfU%ka_lflm48x4Upt8oq6l53u;PR}Nxn4VsG& zg3TAd7cAI4egnR8+9BWjGVYFk@yosvzA1{#z!o>y)(PK$Oq^VY7GXyle)G0F3-@%O z(x2XtA3F!%kS@UYzd`4WW92)R`iwb;~t)1;=+uE6YYn; zy`dsjRur2SuRDQtr{-tlTisxNV9vbgvkVZh6%)5IYR5<3nzZe6!k~PG3=fBj%o4U0vv1m`Mr1I z1Nie^Nqj+{xqJz*Xw$8()7AC9@G2}9?x%b zC*ur2+k92IcyCaO_p>-w`B4qJ-E{-eIOjBc{)FRjwh?wL4PUD{(@^u?I^4`B)n$|g z=N)|UrFEy6x&hQhbE4_7=A=s<%flazAMRf2C48*I@13!8sD7hNt!%m+pIgqF?R=Ak z_$Iig`9S6p3DPE^o;W^en#}ec#BQ>auabn-GWPwWuvbfx@pj8syDxN>z*b`W0wa@ zI}x_={DIv=>IZzSbmIbFbQZE-T6+G_dH3-Au!&*w?&0N-3f;p7M$Z}1?dOTer~3Jn z`ypHtz7@k(FOAu04adkw&G>{F!3!541~R^i4mk^t4Do5bWew;Uy^F$*z6 zZvn=0?XLKTdTidT_2Y4Nl7aAzw%3*EjRskFT3I(LNv+wn3rUfiA?*c!WQ9FDdQb~TT{F9I*z z9F2`e%4x(msrKer$3T`l&7+a~dXT|5qRmG^f)9sfSKfozYX{fCTgcn-2{q#QnN#B% zqs*qRjHc4G>#xRV{L#u_H-};KZ2!E@PXD}UX68fwY15i^XEdDBw0kf%i)%RQ+=gLI zy9X}7C-}X&yxFlxlrzCVi0A|9=UF7kSPh4G__lgIjKhcT9q|Dg0$5fCD@uLW-Vtji z0H^fWUB~n0?I-yqcPD;c4cX7*{vCe+Q7N(aR%VGm!l(Z|^P$ zM`u2S!dT@4!gMom637|XgrChaoIy7~n}w=@b>zd@T(}*sJk6Qv<+=w!pKprfv-e3Ae=8`5PW0gB4qKsYn)?9#-J8?k}-jcSt`*QXa z8vi?e!H}*>_67hUibD;@PF#@Fa1;ZLAld<7BeVWpeA&H_XEq+OqPiYC6BAh51Ki4vaX!G}}9=Fay z3;2m+TC5=)@-66%#uo8_p>)sI2H!QIk(liodO327H*%2M^i*1D=e0v`$S8g1`oWt9 zUWJ16rkgT+na#JMS=Nizfdja!hR}@Iv|;sGHBJLv@*}}>ARW*!Ci9_9aP~7|Q%i=` z=his06NMSch1eZ$QlikGTv%S?9Fr&vHJqMu+B7ZfMyz;*oCrE?&>eoipShfYFRT|A zO=h#P({np|qKkGv1EG+1z5fyfPC;lBM&nZ7|45LJDsxF8j+ru7Ztm)ryjeQ(Hk=j3B4MWQ3F~RZ zgz$y4N7m#-QB;#fVR|^@U^&7|xa5YNo+mEwyVmz-F}SSR*o=M2{Y*E8N2sM&evH(NWnT{-co+em>o1;*&=`ZG{`K_jvz<-g(eCdYcz6Jc<|h|DI1xn`)@RIJ z@AAw2(unE-yY-=|e@w5;a1+h)y{?-Ij z$^g?Q#l2u~qvjV80)Y(EJsscvXCst?$(CVz)LCQ?Fv^VC&V{^(vz|1CCrL<_#{ z2YWC+3y%314HAyLgrS>3Chs9sPWSokX}Bmy6?Kd^P+2+%zQ{BHL>Q8k(*KD z?8C6Y2oHY6w-fOXPT3ceW1L%YQ_A^+5Xs@U-K&*=|4RrsOfO`AJqx#D$ntsM$e2gX z2O1Fn8y%Rz=)5#`>;oG?IrUlJDDAp-PGp920lt;*o_t{A00?s_{OXK| zQ?(qzf&&{7_M^Ut!qXr;o{weZfsMHH`f>`#LU?;I<9$TW>Yj68W2j+OQQQ8)^Yrvr{>ea#H#B?PKx7O+OqyK%Ks zBFo|qv$Q`KLN|?Fx+3S+ci34DnJ7T7_rOPkaL~`a5hvoqw|g4qqYD?P%x zZ!+@KhKz}WuASZVgCS#XK=32<=Yn-#L&X|r54scfIYZFh%d*cI#%7?*9@ONFh%U*$ z1cx+j8o@mdgYc3X#tRApeSjvuEIueVu7>RPSsM`N1Y^E|qH`Sd7!Nbt9z}N%#TO#t zMG!9_G|RpwJ38JzH;424*xq#6C^GQU;nK&$xM*+AjAh4s2clUV9-+HYpb>#Gm*0XX zEW;v>iLlEde%?gfp86r!(c}%31tk<%`c#KQ3Eb3@7Z*%oT%Y~?lcV|UHNXu(2XzIi4RUCp!b7tOo7tNCk^O8;_K^Cd`?qsh+4h-roWE%$Z4 z8Hz0*$eMp;XD;uVz;h735yEGPf0O=fS70AHSeBL*ip`ka^vgMDR$9|9r=v@YpBl~8 zXpT*mfr2~_Jcl`u19O(5Xib+hJtT2Vyxp;x>4R)JjW*NSLZ@fI<=M5dyFaGVh&UGG zgFOY~o0<5va<0{52dLYrd3lH&dO^G^A+>2n2(O}teH(cByQ%yMU#057}EJ3jxR%}!?~7;^oGF_9kF{B zo|7{Yn-nunQXN`Y?)(us#OuLxDtGQjy6O1&I7b>{aSi0jY7S0do-O_haMW|HcE1hGi(ZU}Rms zw8a^MmdL?#=W;-ag5$N|ZS)RIfnEJp6yFGLww{g-VIp$?$(eTbJI*;cqN!(?aq(LowyO^~ z;~`^jUHVlNedrtu5ht-_@^%*DV_sxuIzxDN-#ko6@S3sfGUi1GWj-_wkuj$YI;ZBG zSSrGs$fG#+`59yblgoh!#R>T%OJAl%nI?#}?X+*t!*6!Ew8yyu`k z>z#9sz3G&P&Gce1x+UyQBeI-3sCX6HfQ@mQAIE;;b$5Y-Yn&&bpwh4S^Tn_QbS_xt zRO9rVOKpCdxwDar-Ssk(7M#j+6pe;C$uuLS&N#NF`R_>1vj_1e=0yiq0xHbQ?~n_x3@ZbAd5CXfjY6~t8lg&>8;JuV_?sIbe3!IFbckL5gy0McI>-2 z$Z12Z(oJrkE6a{uOX<%cjd!j%u83Wgzhd#;?+XGAUIaook_ha>b?fdC1RlqzLlHO& zg+PF1&Ur}N)eED|2bi0TTt^?f*qP@ScJ=r9KoBSp{UrRwnC-rrrp^HvAmU(HFQ%iL9=%E(!(K$G+^?QA zGadf+fL)G_tT8m;Bt0HUNq@C7)-p#k0Iq5zR7?N0W5Ic1Ajod`oLnt^F#6rm-U z*G0iSTmWPMN@pS{^4}Gdw2uu>5Rmi@urC6VuB2{bcasQ*foZcEhSiU|#OZ_(Auodq z-ofHwL_u7tA#gFW>S+ykuay?hiciE}h@-v{UmD)YKE}lF=I_*yYO->~bf< z$^q_3a;VD~YJNhfOB#kJ)MX{J=*uKRT~;R!ND6g1At6r+b;+4x2D%)@@ zc|%+}FTw;6-g2&qZ@CxoEr*@A;3b)#;V?%-Y+v;75d^p73faFL-0})kV#vvOaLbu0 z_}7A4GPo(vBEc<7O*>!|-r$xWq3gn9{*~aCU8sXj1bM2@;Feg0o@Kv{g$i^p5Yh5> zn5P7?ycG#{v*w{Gi9nV&GLU6KB9J9xwI;=}ycLJrjlB}a@)~fCh>r{tC5Wd#J&1{(yk{U zF86v$tchY0=k~>W2~CZY1p?z~rsfx*H;MUp93hPp9+rrbHPtbFHOIa9oA zSu8wf_JWbd;)l-cVVDW0B64lC4t;2Z% z__5`SCVv+chuvs){~DoxrQfWfjxR>H#vAJR63zD&>X@7mkzmglCgVHE;JHyu7H(+B zgJMYN=N{)AoE*q4MQp|pMl&Il;K$$nB&fh;_dd>W5@gE|hWsNr)Ba^hRPT3s;W^C- z%;~zfxaaxYLzljci+y_N(nw_9Jw;fKMc1uYqMyb?mtuHw=b@*_1OFb2Y02Kso?)!R zB!`D4Jn8_(Hx*nw=XH+3qn4&f1k@2)eW<6p){v=9E~)|}8~w{3be9qSN>l?E8NA>q zDd1?5&%sVRei2l*!9-OxPa`y|>5Bar3-^vk8TOo8g|L=9Cx=FiC~X-3WSpR@TwVym z>ZCIfLn>SikCqoLt=xw$uyAcg_a?Y<_es-%=y~^ZPfgR-riIfnB;sk_!Mvx`-@jl0 z-w~D*cE4mqN!|du$9pKBO7t><2fGmR zA3y+=$FD3Ao>e8c$%W%6$74YwgsMaz#rpx@P-1WD8IalhJDeJ8wGP+Xxpdsr*dsF+ zJ-hEQB~Kqxq6ELcY2n3b3kooh?JB=`5foigbJD~TA*+kaE;lk(XgC{(+2t2Q^>D+S zUk9R@TyTB_$^FioBzm_Uh_~B=!6UCQo#+FRVcmnBIlu!G;8+?ruUG8N!rq5`OTt-# zGXV#=wO8c^_Bwa!Dfc%u?w4EJzxx@KV4K9Ig>~3~j6GfMnOI(j%c4#7Xh)AzDzgy5 z`T>xTXPx`slQv>j&v_b2`1;9@pe9Bt)aKobkgn$o^X26r*?l$64es&#oK_?`I04h) zGM6JcG2I;zoCkVrDj9N}(cm&%4w8dKY{Nt7N((G|osHgm04)2vM;I{J?@tCJ$SDW& ztT~=)2+Auf=t&`ju~~@vf%7%oplZx_FkglqZNpIK9F+mR1*P(6{CeT!2U2174!D_$ zkz8~lAJ}m`A2m43c@K9Wk0Tuy#`tm(TFM_~CBYS50Pr(Tvvcx(sDEN-xiH*|dEMdR zPmHL%EbZZ?h^~(a&$1I7nvWHCY=m&CvlG+ewjZ-}4kilfxow^7FNw3xu{WOzHM$#v zRCaLkI?eVO>h2J)-@IIppD#S#@);Wt%-Jt5t8K-{KKRUG_PY-vaPtFmzQJZB$7_BN z_vsh8+rrth;)9L^!$I>*(Wy`NL}xzP``UqM4~_&M$_k~wY4gF|_X*q}=r9uSzy2;7 zRvLmdOJ0IB`?qww+f@;~@{KRm3;%>l@87xvL7AI>d*xqQV@mcZJu5!$nv!$vyWcIt z#~)o4xo@9&%s09!@+ZA_!7rss!BaQC@tdyl!kaD}#+^UArW74})mf)>O(|YpH}FoW zQu6I}Q$FgdD0}dQrel@mZv65OMs}4?9lLGUMHV7?ySFFp-wPeat4eYUd{07jS#n|I zP=E2l@FLv7^&%^lBSLAJw-m6n+TV0zIBmf<7B_}?%(b)l#RclrIKz41BkYlo_Znb& zJ-gq>A*f;x$6FQv#h#MUw4H+JaBf~w8(h4RCyCM8Xph z0U9UcUKicNJaP$HEdy4(TVh&ahr<8_QJ<&RI2CUjlJVP-u#bVL5wX?4?}K@8*0kf6rwV1pzQo6+r>hNS{wZUt81x;#FLAEC3nkd&RT}|Bu<<}=x+yMl z!YIbxm>;^WVDa_=rnta4$t_Ntd+Ju7Db96pk%*er8r| z(o7+4?FBo=vs#;tf+aO18Vj-NVCNU8Y5@;st&P5SNA{??`q~~%gJ@*OqZ#-y&1~DI z4}6rWP`;txEyE13wubiIXRoQF}!+APxAzO|xs&D6P( zU3TnJ{93U({IyqJ&h*Nw@HbD^5%c7Jv{dE3w?~?1>MP#16TN|v8QWgMk3Iuv5dj>z zL@Xw{wg8!Eb0PlP%|bpa$veN#ae{2K;NubJJEPcIQik{FKT{kL=ul7oo`c|@*EqIM= zX5HvYKC7raE3*!~awa6uu&w{)B3Q#pDjx4V1F<6L5sz?I^JvkqUi8M3PIa2|zgPzd zvdG22Q~M<6l6dW&)Y@a5Z<^XHay3k}DMmdS`J}ya4t}kbm$I47v=6KKa{SF($!p}v z3bmH1-1p8%W6{3i9lNMu!5yzt!-T70wo6fMgPyd zsi?@KBC$pPd@<25!E5A7(J=8aQF&IjvZ`n}G;9#>N)QwxRq=QyllLPCdc-4~op|?D zF?dNZ@D!fryof?#z#jB3Hx6TFO`Sl40bmSPf-jPnHm_ z*J8C);4)9@-i;w4k6P^Ez*WR95d#uxFYO}~&JD?U3V|xR_A$h{W zc`-7UEu5bxx@h0UWAa4L`u37!L)S}EKV2_Lc~tyx|6Y>M3U8j_Z<2c-=G=#AenpU{ zv9=G59_oKjPpMXrX4 zHVI$ROO~U7)=KJ`T9_qoSa~g0OI4oaC3~o0!5zKSFxN}ojT6C3-iM!LFFA)-(0*!; zvjm?dC_Wx>z7vC3@$ra{b7t{q!RHaVLr>v2XD;gi9~Qazcn&zx$&T0FkXn1JbF`_= zB2!y>paEeIZErw0Bu{xuSXjHtdCj89ck%h>iJtZCCFi5u^^(+2*Gp0!m3~A2UXsts z^wqrmjA2d%zKc@?c^cFG81I}1u_EXZk8rYhv>@0a7DOAOU(0K##cHX_le}cwbZA)CqZ#;#d&w45 zgO^-`pJXpt1BvO7<~YZ(&BE~>alUg3TPqyz5g+I5U+&&vo7|zNaGdi#3VDYta`EvT zaH8|4ct_~HJ&B%hVrSL5-fpE1nYWxEJ^#N(aa5G#Tn@d)P+JX$ntjbPv@Jk43l zIzW&`E`pu|PI4OJwOdkak8y4=wOQn97+K5o2;e2>BWHQ~wU+7E@)~(!v0AF~BroZw zhGlFEQo~#?*@|lLl5O}&_L5;pOoueb*|5yT$0N>nwm_`-c*Ms!KjzVb&wX--p2Bg? zO4b2BEOPPj9B`sDGhX}d)Y@a6*`_v&ytM=F8@y=Ok_v4*gAyx!E;t@^_ zj}`=13kIIT)0`Qs0|Z&*V&FO8Bz#Wc)?SrbdyF&6)Mk;ZVPq{Ghto^eA!m8|wU+7E z@)~(!v0AF~Brh4Fh6Q(IQNvs>*^X-Pk{$R-_LAk0*xDh@aV}Zv;^PtLJ6A%i_;|#} zIYm5L@L3^u=qViMSgZqlSmfg4Ip9R+9jxSO?b}mpk9FQdA#1b9)Rr-0K>DZJ-hl9Z zp7NITQnlBuqaj=7De^?m`u39a*{+wQM|Hg<j|j{?))W)`oZ(~tf!Ph?N+48r=$nA8bTM7(O)ilvmT!R}W1Mo1^eu`0oL8xpG# zC738rtVW!STw-$mT3L-4O&P8^CHxmZ+V}oz$oSIjb2CO_OC^7FfE#Fw%K)3O46uk3 z_TezXO|iHtjBL}w@ciqs4&YyWV|WqHaow>fvMVUrG&OyCn&vPy4?%QFxO)c#O&h1{ zB1fUaMFo71;Li55@IS)~aT2)@vb-$Y?Y(UGPSmi|?MMbDMK?F6rOA|a(`&rg(wn*V z880t#T2jj&^_CYnOH<1?dCPO1y43P6Z+W&8PA%W;Ee|;bspVU|<$lMXTE3O#xM6&O z!sQJc3nRF*O8?TOk7>>Ln#w=l5csfYkAk$6_+*)}Gi8OT7ogZvxBBgwTZ4e>jwK$r zs!XQ=AtFZV8eu`7 zYlOVP1!n`&rp`iLAmlal76xK9xI4Z!$o3z)HYiVI_dh((ii@(q4^dQr1s29DvCxJ$ zW)UY5iHdZ_eAuk%0r&*UP5T0yqp=>GMwZqh8M4}3TxukPZC3Xw12+c_-saQQDXM82KVbbuexrQ!7fJr_SF)2c%~O&aEDQYM?kZ!ENa zDBh&uo+gd(G-)K83C0*PVhA8L^dfW z-lT$flTPw9>10onPGOUB<4r1zqjajLNvC<5bUK@qA8!&iwlqyT!_%bko+eprQbD{) z#qlOh@HFX6Pm{jFCKbk;q&rL!rHP&oV%q{*Hpo#koL*=$m=GzshW zSh3qh&80UDMq~R$i{Y$8(dNBk0yrisy7DFWm~7cM8VBS=n_qVi$c?Vt=^l_Dt?rR{ zljPOTT}NRH$m-tC-2uss3T(EpOEdCgB|n&XA1EZob6GK-C9k?y6TX!+!q|%83~v}+ zxsO+9W@GU#pdFLMtK;yQqTE2|o}sP`x^H16SPs}T+LaDTNb^?8ZOSPEa?5!!-fZA0 zAFyEF=W9nH)=RUYcJ3Ofcp^Vq@WR)3BRw*=D zrACvP$y2+Nf`GA}9 zOr9v5rhPGbAZRkME_+HI-Hp zszmia;l_Zr`WkzXL3Z+%4QCep5 zs4C9;3_TCNlI(1mvW(BNvPgRl6tE$qqi!B-m28-EtOc2uqu1dI7mjdZjtRUH*U`Bn;&mvVhX6)F>@8d3Y)!4bVjRoIUC)YVCF*q(7CUwAxg0 zr0haSLc0)>WEVnZrVF7`bRkq~)EJgP04&iB?Y3#!C%tfJGDB3mnk)uRO_qcbvLva= zDl?j_QfRVDjV3dbCpWAG0b@NqUNt5Rt{O9)tj1_Cg`&oiP&Jk$)mUXlja3RYR;f{A z>a@aOiNa`KPSaRHQB7tqVIFab0fIitzQLz9s=nrz$*L;+(ceAFKL zt?e;tjBdHNw;;wwn}7ntK16$IMFGjF-ZDQ{@p_Ij0;Ft|#~bdu7F$r)2%M}h~K-mfI7w<_%J$m54TrJ;w?iq|10|l$G z=n`ns8DXy#*&D+Go2d|3OC~Y^zpGHnD*q4ob3XXaJ;Uv0N$kpGze$q2N4m11 zGF~;(A(#r#*%%ojb~=L*?3d?wbu5TYle>Yh$bjz?R$S_{I(_m`IDjuBzU=Z)J+-r` zX_qZaR%F0>pDR1cUMDgj-UGxx@U5er`_}OSvE`Gv+krc(L4N_k zSO2}^b3Xe{XSf}c#H*PcpG$JjNLMyg$LA^?!a=!AUddEq=kCF_j7vLT8w=Ifm;ED|3egJSk z^sVFL@~z|9V=GFyg@j8N!mgwXrCFg1Ns=y9X6QntpbM26x?l!FIh6)TPP7pZQAm%~ z?Yxm(lIemC!#XQrAzes9=|YmE3zZqVP^r*`O#R73tk4C=!=1Z?E+k31kc3MYDiylm zV<25j#jk>P=){7VvjA!6{Dkm^4p=}PYlSq0J&X*Xi!8w*y}ot4062u3b+{ZN#Qs0t zlcFjJfk;9LM3N*Bl^Ft2sSt?Foyu@s2!vDGhCn1q0+EDEASx9CA^0SaFn$$TOLSRh zlQbRgthrMs!Xes$1LBfU4pA8pmqda?NGZN`yaqUgJEOQ9f}R=!IRATQMw>)|Ahsq3ls8ra4j?k7_e_@Xh&!OxgNwS9|T=r0@um^D_drapk!~>`F2xYi6n4L$V z4o=#@`}K4RX~+}~!YI-E8M+{Q_}1}spbPFS8`5N_QC#3i9zp)w#Yi3C@WI(+MRc5nrEOL9j_!r~k$ zNkUcyw2RD%na=u{4oBsoN7hC@^;976Ai@6%X=JrGGKhe(nfA_3_MnwR*n{S|Kp@na^d7i4R^lL=ws&k|c+y%y5WGg+u5IZRtk~hvf1c z${~^@he*QZ5S0pt5NdMB#XLn{GimM&HaJ8mQ#nMEcmZ$- z_xmy&!g+-OGIPKQNX{b+m7I=!nIA2A9re2NQ4j^pFq=y69rB8MFbh7)$T9*n3qEWH zKEEP19HB@;=|YmE3zZqVP^r)b-61|AWmS$)B%yR6Nz#QRT)I%H&;_9;U0ljj$T;1* zGKPD;MB^gGHj6~s3YEk#;`?Y09_IQ-Eatc(7XURgxl4*93n(c4v~a% zh$P7&Dl;6SQgDb$4TmuE*;n_d3PK=~Py&%82}EUvKvXIOLf2@^I|xD`g*=B6h$KlM zl5hz`r9vPCp9E6JQwU;*&SARC2jCE4P2~_tl0zh+9HKHHE{Oz(kWzf>cnxp}_Xc!1 z1gnSO5KNm0hhQ279DOkl_! zl2G=LB-uk{hCNg&>_JE9PBX#Ki+B!Y4@r_eB;m4$N`*a$Guh)RopUzUu+W7hlrAJm zx=@*+3zZ68&=I=ROt9%NhpU%k{qHk!yzga4xx9n zWtvlZAZ0v0!A(C)8M5V$ZM4lY7kf+dbis*8DiC88ez#*Vg;SfwmxIJia2y$)@ zS~-M0Xr2oM!cACR0ujO{fk;9LM3N*Bm6`sAO3~j?saeQjMqi-Of`Bd_i4XTK=MZdn zIfv<_wvg(Q?KR0d=vk>Cnahp%xFh=LmkyF?)rPNI;65``p56e=@Bp;8cq zN)1sk^V#1`TzyU4eI}8E{_VMV;J`Bqui{0l2Z4qB6iO3BYZrqu1BC1iZmbnqA%y@+NOcLU}`y z-cTucL#2i{n9+Bbv>;%n2YS4uL2_|PgXv__z#Hm|$Qad&bV8$cQ75>9IVB3_ zg(c|!bngjaiRnaHSwfOz2}!stp;BQ9;tZCkUaH_6`sSQFp#YW;UR0KlBw0cd$`UFA zxROY)1WCi!xD*t@&97aG`1iglu!PJ|yQEWSp>jzlIDt7O1m=Ye=-6zTwiGs~A&$xh zk|Y~Q!es-M3L6kovcYo2%Mwk*TPvE7`2sAb@|^@Or{bLjw>ymGRKCGry2HAhDs13u zTn_W+KH;wU3;WXiC86doNt(aPjQOh+=C4v?{>*&lxBP0C()KHtc8cLwFYScYGp8oc zyx2Q^nC=TA_CAwPs=Z5+_AUw6-c>60PE={{w*#3&-&}Af31IBPZEEb2q_Imvja_BX zM@htuU34LWA7@3y{pvNJ2U#Gmlgzce2=$9J?}b` z6kK~}I?3LpQ)gE$7n5IZOn$kTJaWe5kr$Jv53^; z_U=UEYB0cg^NwmU48YaCfA@?CAN(#GzRF<-}1fU6QnP zNw}7-Qn7SGN=v`{3wuYR@orf9eEYnOuB8jt($XcNmM%$Jy2^~Ds}z>5Qe)}NeC8J< zs#lApuQryxS}YwoW9i7#($VLU*+DV$I>M@EE=iiXBwRCBshBwtrkUTTGap~fyAX}{ z!S?TsT-D{;z7Q>KUlMBjlBDgc%-Ft4Vf!jIw$IFGexkAK+_lect zXRQ7{v3lf;)gv!fe>*~T5JavuNJ6b%lC*kBxK^)Hv3lZ3t6!rN7N5tv4UKDH=J|u} zzz&X_L2{SeVCK@nR5O<(&0J;1%vB0ASE(^`W=8{k|mn6+x60Vu6RLq=^(#%`G$afeTTVdwS6Nc?~&0KqzFmp+$nM;ypt}?ISO?zZ$_bh$d}c5^DRBr0q+>wSAR}?Gs_ze!EUOeCBr&8rxy`qdV^# z>l(iHD`EJOP{Wrb4PRx(@Kp-KSE(_4W5~|z8_S=l@w~6f|XKWvNvHiPkPLiP0 zy-1xqCsan*3l{OEQoa<;ycjz%q_KB=kuMuGcEH&ESAAuiG4}t7Hw|jr#je|pUAK!} zBWLUyd9myJY|e^c_I-(3G=5>u3ziT#zU|CB4Y_s^t$2gZG<*TC5HxOp6;Hn*9G}nE zZX>K%5^BYgq!p{oSg}fB#VR#c%*<#0ny9ivthmEiafetja>k007b|YDIUjW=C=Z>H;5H)Fjl-ltQa|C#mI{lud!<}?*S`bZmbw{B*1Zb+=`K>6<05% z32)ZPgD-5kzi~6H_>aMyiLMo6f$HD4)?fRG*zY68ejgG0Mb6kS@?yWOb|oe>V86E; z`^Dr3AiF(ozsQUIE~ouIuJZ(+$0B~?<1pB&2X>zCx?Sx6!eAw#1}jM#tjdhRsuTvR zQe&{peC98yDmRP4ZZ-zHSqv6AW3b4J!M54en7e?%t}q6Rc@ChqB5ttAi^1MbgN6I} z;+Ezcx5HpB*t+^6*I>1~2ZNP_8muH~uqrbKt5O)ON{zuX^LebxS3fQ``?#^$$Hium zGd7F7*lfF9i|Gs4>?&iknCbwOtKv3`yx8mt+U&DB4e$jlxHmovYkl|X)9Ty~ws!8& z!Ip$}uqDY3w#rNgTczk=tJHL`nfc7C?X}y*inkjp#xC=iMMut9G4f)?9d;!qD`3T| zjTK{J10b%BTQTxt#j9w=J9WgL@}>2^zKq_u6DIuT&9^nUCahgKn6M<&ge6H6R+%wj zmBNHoYD}1!&tna}@>#LsXN?s@%YM1gSn>bF%6RooG1#5PV0VhaB4-R1c`?{W>{`q`z+mq)28&q= zpmtx}V38Mty_*KR>x*0U-UWlrTDWu#PcUM+_D@W3b4J!9HtOVy*xN+hzizn7n?=cQ_LQ~X4{R;Vx|F5w#RK2d9m3x+U))>ZuNOTto5CR*KBfo&f1Sd&sh@M zbCx7~&MGrKXO*JotWwi+X6Cc6J~P6dPnKg5;VxRku(Ea}=rgPSkYKl8NJ2iD&y{0B zBFXZJd59!SB-uU_y)s*}IX+qGkppr>lIs%}D3V-}}!FS)|HxG?1GKh<35 zKjK2a^NK6v){loq#|?km+LGCPK4uvS&&EQHFudnMH^MNKqjOKTiTa9IulndA3ngSV zj8ZHIy5V7QU=3chq|kGi&)Tv8QznRv80>ViCHgQTV=m<;j4BHyWCLB9KOsX<6&{xm z47Q$L@H^gCIMlg2+XVhaXx=KnD-3yr*ko9bbVCI5$RR5992T%PEO=1bo|Sax#ttC# z-Z}!w;4UHb-Y9p7gwS*AnYi@_rTN)Ow;pn3o?FKYVYp2k=ehL}Dofn@$oQ@2B;R_L z+z^D`TOZ{Ly|<1ia=;_UbL(T`x1O7P>uS#sdT$-kv~ZUYdT;$G6?$&{==iPYC*69E z+!AD-TR+B?d2W52$`ZGJEN|Vrq3FN7AL`DZ5A4K#s9(S9ua5zPuJX{}9p66_`=OqE z($Bty_G3TPG5YRaEq(5faCz*9I&to>_pu-9&b_A-OT;!lBe3Bh_Cvk$1dDcw z{ZNOGnp21UP;aej`=L}Rx&O8gF2{bTLr)97C{@buyWqq1*bnuX@Y-qK=4<@oa*04L zL41+K#=erAfSP6})N4hMAFJM=k$=y*S8TMtC|0=vWEG4!JFr-Q?S;XRvhAmLztzQi zcOp=5thoS&UgJCl$IyaY}% zu_o)fOgTK;^#xF45CxUYSCx%JqG3q(`>I1tADn&tcQlT3?fxj8ST7*$0nqz#SZsPI zC*s`jJ-KgGZrYfmG{LQQ&navHdiN#?-kWfx}z9UpA4 z*9~BCHgoKLoE}l3b7~yFxf~Fc`=5iyj295<%lWA7+LjBQH~v!_L|Ttlcc7+SkrAzI zmwWbeeVFzgj8?Zv5%#WKgYlm|TmtO2*#6Gl2+zFuwX}n2cn_cXS3#RCb{ecSu$ioI zFpVDww?v2AwOBbg+Q#a_u7M2J+-g;~0~txW z-KuQOtL(sEG|M+7!&loDTQNW`T-zqi8)sK{VAea(8Lb2$IK5v27PqK(!s+F@Kml&; zHFR}a>~n!bHgS*(;~m(RXa#UU=lf{sd=ErpYCEjj_Pp9P_=|@5YW%+H*4Xmla^dP$ zY2P@zat#Jwf$h;+K{*mMFo%OFI76U7m(vR-BOSqxz!)q6Y7CYH>NQq%M_zRs{u1h{ zps%t$jy0Y%MhC#U&0q}-fOW{lI+Tia2r-TY>(C)s!xYg;2G-~#3)XE`<(j<8R{RyL zL%!OMIM$f{L;HYrtHBx=0Ba4Q4Q%NSy;x_tSZ5uIHT)G8t$;O_sRZj*tF|q#wjF;3 z>nvaOnmE?zJ)nKSy4_$62yne@7wha)tg~IL>2_1FMqFx))`2zN9uTad(5-pZ9r!C) zXZtGK;#gw_9t{N6umsU-U;wOhT�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%0DZb!$%_?p5#0lH&o@-Cg1)6?dw;#QaAPl()Bj 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

    73Snv{WRDuOCu}oVt_6w^wGd4KEUc?ivVOL9F z;jy60ku$HuSuJLPWxGyy)*j>&Sg`}M54S5`V3RVKphOXJTpF18!cq}Nyb`W_1$@-` zGmE|z3wEvO$EosZgt^`bxZa)U+Pgd(^)*RVNpH^8SydoJfT_mmQ+-wgAA4;W!y{)~ z_KItx-go=z59mU=v0`0lZ>-R}x{yw6E|iuLseL0Ww%{ANJQ=}svk4~ZgW@q*eImP< z%B?BWEGd1Bv_5NQTTQ=$^#3dq3z+ymh#o}gA2C=3$TWZDcg;ln=slESa>+F5J}UqoJGvzE9N|o zaMnJ5>O6kc9OF42Kqp&{4I-T^VzyDwji2ysynsc7+yU1wvNCy|(_t)NA)dC3p2>Bw zGX5P)uxm@PjjGrfim5fA?zSp|Cf~-o`#uxF0GW%brr2aS*IY&HL|5`dlLe+ocy>7J zy0eZ&(jM?1AN0^1XI%?|psmIAk(BFecCLbS*HtEC_K)9|vMglQAGS@QbmdI5^cG47 z3trFqfc*YrgC6=ItMYY3OdBI9_fvdisGwC!LJ0WjF3b85u^yaKpx{8TcweC4uv<_9 zOQQ-s-+x+0l8SYlaChafs!yXRw^V&#VNv0Orp|>u5=VB^7%}yh-Ca7MKV%Z zg<6~4eGXYaA53)6_4ySH@CDlZS_$+@U3vxBHinA5E z#Has+bXvu$0X7YuTbVSVx>K{4sp_~mG4DEWRm(AMeV%{1_4!ZMrw=Z4Rb+yr5M6U!E$#6yOqT=y`;`E-IB}=J*KsP zg!@1Q$rcRgsPKO=zjf8Q7Ml((Gn0L0@=7)R`QJyCSpvX$tbZ4Rn;WKhqWTYn6(tgI7O^va;mh3cFMB zYck9Pi=++&SuEsR+9v9qR0C(cMv;rR3JNebwYu)0xiJ_^i^}L!%)J5-dF`YxZe#pz zY#E#9VBZ#X2DWNO{%N@Mgb)nJtV7Vl&Zg2>TgPyraqJz z+OSSUtYcsn@LJ*AP+Jd`91|UZIdyasEl5Q%lRQ^)XQ+h7V7dw!dq4|vY0!+Dc z88m6o}GkSDvUo13;^188fTl0o#OoMBNbz2pqQ;I@b?M%ss=J0yH?rljoi%WDW8lo!k4Pp@O4a zdQ>&Z>3w2Ba>XxuU0<7Q?ANfdhI5U+^*K@HI;=_G3A=OcT!3I&dUDqMjYG4kTji|Y zMWBCxjEqWJ{ zTB;x41DZRl?;=_N6xk?1^Q{I(cZUYSLhIXr6}Lw65OW@mJgs2l66X+}Yfc8xR7^%_ z09}YNo`Haw`nc6nugnQKgoPAYI{Ir>+ZAkF$rUdGn;2X9HFtXV3lu;mjJ`rQVn?tc zU9J=Cqg#pEEQerNVGZ{~Kaq9W9`0`VlC3NihmXEZGr4^L0uJxFV}$h+Yse=Es(EUn zJIqt8-h9A%qPMvSO*W>IdHk`|CzVk^Sx;A0Zd~l7O7D49w>zXp+3yrDPJtD=LbqT; ztWyP2$v)r5^}cs}f-M6QU8+E4tOq%|2P#WnFH%ll0o*?=+I0oKk8^$ROhIZ_G@$xV zC>l4wi*Qft|2WtG&Xl5F>;u=Uyn3ixbWSXW`!*|(@dlaBM2H?|wkW3S zZa<+)P6mFay-3Axn$)m#D?WIWJ=d~rfhwJ3#Sq+^veef{TlO2fMqW}OdVXKZ2i|Q-LK02E&AHouTpXcV^+{9F&>~`^tIsANWzr?!|#tqhitMrwQhAo7{+jrQ4yKBW6ujp%PBE?fnHTKOroa|ZBK+wdel;A~5b zD?58c9j&rwvye-OFm}Vo@0ENbsJ5+yHiEJSgwr!v|& z7nGLUiTw-}6BUI_l;n}w`}^21^ooU*F1u!4qO;mYfEF(i8PZWmrE2*0r=-dhWZ|Q> z%9%>;^XSIJN13Q*JbUWkbf%Meb3X&jbj-PAz@v>2Ree4{p6R_g%nf3D+j-%ZszVk! zQ?<>)*s~=B*s`|;2ZdW2J{#gcWYbddoQxr!J<*ma_0WY=g!7a?bNO za?-u_GFyH^)iyzwM7eWBK@ahO_itsB-f>nxP5zkC=^M-Z$3|A%;N0-=^{b-MC(DN{ zI?6@-W&_gY+_1CZNTRr^H*mUj^y}>1&X>ExO-H|4S}(~B#*kA#viG-LO@4~rv2%!A z=!YS-4_`;sOLso(ktOJR#&;xoNBxo~F*9h}#s(9$g&W9ubkl)EWdJQH+#uRjI19>d z5G5E~Ync{cy$&cjnaAGkJ~>`z@9*RG z-e(?Z2GpdT$iqMUDVK*XdFqPxmTGiHxUzk->>nnQMDOc}OqcDwLpAvpO-8R~ggUsM zAlSz-8BYnK(b+=H+51uMGX=?pRrFUn>=n;M@4MK&4;EEJXGFPrdJ4Q{q?34{W-oNN zr^c}QpVG{IiSC#Bz}c!|2D|0pr>l5hwLMu8xlY;0s$AVd*R(y+9|7ckv4ZS&h+56F z02er#=|i@Gu1%ymCl@v^bdz-i4m&wodDFDEN6t-2BfNtq)F1gfP^;eUtQHH_{mH&n zNh2U+^+fu%itQ5EuGa{NHdW+jRxz<3*^(qbl<8jDB}b!3%7tPAZg9l@y$Nth9nP96 zN(2g&4|0e%YA30Xa5it_($`~r;dg{O>qM^jRbonCqTEIG*cwAOvyWTUnt`miuSFFx8w}X&vNw3)25?)D&F%;MW)~tbm zQdon?+H`>qk*02XNyOtAp_HewMvx>g^4lJeo5<407KaR0j!D8Ki_zp2izs(oUx@oA zGt*Z!y1LYTKv&c&N_z~a$e4o72h9PCZ|PoFm#?zRUhxsAnyt;bl_o-hafDToSVCx)x#Jsic~o_ zcROoEYmU)&^KL_AQ8L>(8P_^OB@#W-te72oxAP^}-;J^dkB^RuxcGN%Ip{Iv4v zkrr@qEz#k&XaGgM`$~*eSA8prB^o|~fXJoj6AZ_-K7N;j*8-y96>qn>x?JspybQHn zxem25Dq?cXm=BaQQRp#7SPUif3sy}e`a9PsI|k&8{?6u84( zx?9#`&d(+Y@9Mc-JiaS754utGFj&`|px8Wu3z$?bGzN7DUq$jzAHaxZm_!B`(5;qf zB0^MoQdJd*m38o3l_RrXHj}OxXT3k;r>a)2+p$CPPkt~mkZkh~H;IvVuueRuEhVJH zhyj&1Qv1Rf$kS7DHLqW(;c2nM_n@%YgIHkdc|b3-4fow8HuftqY9Rsw(RMA@-m68K zj>Ux+!Bu9=PBX^lDaW%<0uQ%0^yQgn#ysDbXJ%wpQsh5H?HguOI7?9rxG22M^j{!5 z{9xb8@8bj;Vy;9vBAzr9X4;xV>R5~y#_5kVl7OcP zxlSHjVjTa6B2K=#tMJ-iTlY15{?YAnEcMP%ezg2* zbl3#(j7OEQ#8}=J9;u*zTVFV}+(vp)EX*(qlI>EL-QpSK`<0;22~+eHUfAI^qmDr= zaI}Bq~8?WQxzxapB6INUflHfSuR{<^R-K&DbqM=S5Q% zs?_6ewPkJhtjPD|sKaALkC zTLnBCO6QeD#vS#QU9JqDXKjV7Io>FqATIe#HE51EV`xjvdP*S(P4gsZ4{EPH=_g2+GFesqE{^|1;$qD z67oWuJh$x7$D&ZmFxmNcVqCr+f0~r=9m9_@ftptc$S)E$j&|M2QkD1O@)doR@j6As zM)EkY)uG-1g3>hSZM)1pl|p?P+j>r$(VZKg2`3f0woRs~!Lq?}Htr}3S0@2CCT_f_ zzdLKvRj_WvqUL8#g_#OTEwmM zK_Np`JD-uZHp^MeLdsre&2TbVg_p7l zJ8{{XVq%}Ob~ovQ8U}v~c=gw6$BLx-3A%=~p^xhtA}O6^a(mkVhPp+ysL0rWwh6@) ze(LAIS2^U>7XS--_t9cwk}RD)JWD?bvqi{*-4&FQ^O^j>%tdmAmSpYC1^FRACcJ-s zi|~mlLjO7=-WDo^G#F*i7a5QLSdEwE4b}v!L@iXo7pI@l zE{#i*zKwf@BlBER=0`up>K##N{CXaSji^0M_O7&$Z)4SwC{Oy+1J+lp+b8hyL)#2` zhGLsWO;b2=cvE(+`uHTfepA}#P(W-6fh(PxmdzHHGkrCg)uB8Ml7-x=so;`Z@c8;h zqw7d>qwBLpjjpycd5ryRqwDiC8eL!fqS5u`Sxv5vbwA8Oi@Tr;dChOoaOZyacs|#I zBCXCsQyzz*y?B0#?#`*r1zyhTHOZWST#JLQoJei$S&0@%?f8vXzIh^A8hPqRx%eHc z6V4>7F^Ga7itZ%h&;pr4ZU(#9a6_(&qIi(hN#aq&eHD6+lbP>ZB!uz%Z75|Sfxt^Njk&^046{fx%xj?`d5 zZn$8qe>;O+06;i%X9gGM2Mgwf3ueHQb6?4J5H8?;VF3oj=?Z%^ZHEhTY`a2hC&(Hr z3FKRit;o^C1-X%xKM1>WL6D&9s_P=tIgZ?92^Nfty!IWs5p<38t$vC++Z?hZk87;m z!wR=jqi>i!H0Rq;Qi>yxl#&{lJuT$qV`O0V^w6ASzI=h%GeUDx0!e|{u25crZ?@GM zn3)%vzG%6ru}d)Uap%!fiVhlS>hP9btwV4diSh4L~3wX%>Rwe|cBy6%kRUDo7U=2L+s zO)mFvzQP5|!VOBmj2`JcTVum~>ETqmki)I~}P}*Rrr{ zNz}C@WQn@&j25^9R_~@r?HjtwseaP8&<4jXT4xWwa!1EHT>< zPlOxq*YZY(O`t!+w^7-Oa8|>8SpbPIly|0Yw!@YQVj&N=3av1aM#HQ=vB{G%~PGHjdDoItk?l)>W&}Rtfn6>uOY}o={+2t$gP- z1Zp4VBkYwuK0(ft|MG!M)LE;4d=graM0yG708a%u*)4P-4;pVW%CkS zbKucG3f>hgi{xMTuPQpV7UtEF8p_)qs9H~H{7L#7uK%}7?+8?Fh?So8Z=8szg@a1Q1ynCmO1H&%}GMNnvt6U`@d7+JZ7ZWjhcjQyKP&jv^nrd z6IHXGm?wYzE!3tjXd1e0w)bu5uDfIFC;fEmCzQ7{P}NKgZH4_93u1z?!v$kOUQo-Y z(CmVf@Ylp!a)k2U2-FImwhhs>Y@!BMNSS}5h#6CyHA`S2e6z<|Lvt<+%^WKgjiv5& zB9sfw86hF5O@*KzV`UYrQK5?nu?FNjZ&aYRnvY0r4S&I8y}Vs2@c(&vM`}g$OSLf> z5+dwS&?Rl8$>RF|LqdGBvqpyI6ozJI38BmitV2JIQI7V_9*5yXbQ>+9(#+7zaVgfw zx@QOl&IrsL7s?ysn|(!Yz#7WC(KmZM8S7N3qCjmuA5rg3$^+}-sCSj|l=6bUO4dBv zWwj&rj6%)@g^XvfvsOrzoTcHa;tFQ}w zAg9fOs|2C9FWoO};nMoK)Gt`L#P*TwbGcUjCs;$X&JN_;LbJ{ZZd&I{xZ3e7q{knaf18X3q>4$ZnKke?EoH7bxlG&E~;Ab(h6uG7+(n`#Noy08oH z&w>2Gp;;pW`9s7mm2>@cyLxN8K)GvOWt;$CU@*C}$6Ck%c-yIWX_LER$11I`2`?!C zjbe%A3I6);0EJk|XCuNL-Vk2srhH0SaQZ!w>0U4)i(zR@fat?`?xP~{1(T+ZR(HY( zNsayW z`=gQm?PD5UH%RNjg)DdWpFZmeH*gA6rfe#2;N`qXiT&FTAVtC7k|%S1ied{TeNVY+$nq{Ob)$3EL`E)^lH5W=X=bW~hda^0= zHURrhUNXZJRNgS0Av)Kb1EU>YnBVIvDWrs_}{ce>jLwNKm*9^Il-L&g`N)%*T3vxGI#|_M-1@jP* zbJeu~J`SN=J`eq+^ukq<+GV+ROH*wve=U|l35~TOzVM$H)<0|cu{G94bZ8wv!^7PX zZ|n2VKfmc~H2j{Qo4q^oS~c;7L05h-?BlB}c(!pnPY=q1Nn!t!f<&8dgOL>x%=6C& z{cHH%cr~YQkTL)H?46O2>7Uj7*c$yl9jf9dKj>f1Pg!u7 z@ohE`^ybqPUS~x!5#2;%>&Epd1O{9F=MN6a7WF%$8HB}cvo4lWetIp$h zk}BstkX?^}NNL1t!#`rj&K&|S<;zgHyuT+}es78KD8EWyFAa^6gKlAmB>6crxq@G| z-a;eySu||qlnt|APY&#o7^}@p1+h%$OQv9arhUfEW~Q+^6OYRA6T#@D9%Kjec|d>L z^32FAuGx+y-*_QO; z;i^pDHpwdzWg-ptRAno!xxgRBC7)V}JIm<~otxOU4pnV6q|;Z=2a;ksF{EUd!8+H;3+a^#XX*&42Wn5{f} z=HlP50Jl18E`|PuYs17%nz_VTa~{D^?PCNd&b-T6ldOV2QNg>NH9c$tq1wk)@E)#r zRq(%5aGBN=4b?uOg7-RWK2WJos$hk)rd|bqs)Ea%HK;UE)qks?$6159Q-VKJL9eq$ zEZv7{f3AWnoHe2{8mfIt1@Cj#cvbLe6Rlo>?_{5ZjYhNO&Y*MYT;?9~gRj%KwT!MJc8swV5sh*fgwX)i|0tExY zwL4VI&sEG{RZO#rc~-@|Lkx9)NECI8K*U+ILC1Zh<6c#9ztnO2b=>PJPVRt0wSOgQ zqB?RpYbsSttBO%?Cu{CdF$YzQ9G09l^N9)9enQNo+N~-kkC+m}_-TS=zR3P^RFOkj zQtf7@*I9G1iuqW@Y*8_3D(0|?c~iwCsF;7Km^u|BkBmaKpQ;!!BF+4(7(>N0sF-(E z%n=o{O~ptjL$#l&nC&X&1r^h#Vs@yQ$5l+big`=LRI8ZJRZJr>-W8$RFI1>WLhS9e z-2?&gE(y;I)qbf`nqWC-)1p1nhkoMHL)! zaN>^ob8Jnawc~G>{AKPJzO6V9hTVrGh6W)zPS$%ct5w_

    X0o%W9UGO{JgYVo8t)vEVCgn~*-#8)TyfqeH7cjv z;7UszRm#Ec36guhdGjl1pX+riHB2)X?hf9Ai)p6&{(}i#;1IRe?Bt!%?8RLT2_8qy z2RhE*`YpF9YP8uDKbAUijV$gVF74vN%zSf1{$&cb1$F=`y*dp4W-B$Q3sr>DqQ=N2_@ z6T8>db|<5lN}@WS~p(jEd%IbFfOb-{7Oa;%|1e?b__s9P_Ej+0d*0ERiwWj>&d>m0U*U#b&3UYi+f^HjXyb)g zpRYg>Q0GT%XVE)ea@*t>d{WD;?k`E;{mi{eiW;f)gR^qiovy&tD5pgMT4|xN_S+MJ zg}SxDUUMQ4oLNFM?;2Iz=L}fG>62Kaz7N#NCRl`is zmdJ$3WiE_bi`KfXc6aM;Tf0@O5>N^WxFJDHxz(kWR=vTk)^n zkavQOF>bxz{=?XMbXlQ#0SsPyeP+)s=GqGthJMOxHHFE5SA>PPSkC{(V%TA}W6!QN zT>>RHCeh}K%>cB!5BS9g@il@T5jg=uWe=r&pA^{E4#Ny6xZ&~NL7@B_vi?jXvB7JN zvSwp-jU4Y%)4Spr=^A2jeK$-Hjgv&OauARq%Swo*!y%gwcnE1j2|*|UVOY@Vp^y|9 z${NIEr^06ruiUE^B699IypO}ik6HnP6IST-&QOEp=hSX5`l|^{X)hYbUk+NYQLF9k zMK^MDi)o;($a8XB&0)M@2=Ruui=1om*LQC~Q4Dwj4!fL6{;ceLPDgd}T^zm$7c6z$ z*eRzC@2-o)sZCp-LKy}B7oHLLw>K?8Eo!>2y=kfZ#-jBHyX(8fpjH%@_HcL(f_h)$ zbtp8RuUK5Z*#FY?qT6Vce{E=Ke_Q!+6zzsR7?LM`UmkQ)9e4ZvzUz(afTv3Y*Mx?0 z+r90}w)`Ui4gI=+;$Oam<1Wf1Su&`J?ZKjDlRb>ibrm<>%|hc-YVb89^npj>mkYDb z3`L84jaN}UlG?6*g(k{J+dY2SFCumvtq~I&k!G|_At_tfRyQ3TPm~RW)YlICmG#oP z+Y&htbpsQ7_$NenTS^o`b@Nxw7$`DYhCc1>x4D)Ww=x=9&^GxWhBOwoxwExRNjbi7 zw6tmp|4L)eW2nVS_cu(oG8gi4>MpgZ`5W_i5LEw8rbveCve*s9J}XVEF;Ue(pbBu6s?B|)x>h{B z`xR|D+{Ziy#8T6y*ZN3tZJXF*Iq~W{l;bd4BIKifk6wU8mn$#C1Ub!s!ndbM@MleO=xa2U*8| z4mF7>u;CIY&Vfn^D?GpKKcSM#lYYvz_`X3lm6{g6L2_U<;D2D41V}_XQCTyN(_%gv zC$`s*#h@5f8Lv=bZ7nK)*J{=~owU&C0m*w9x#mOgZj=QT=etyt7-Gcb+1)di8@g zwhY6Z=u4hUxKFLcD{XG^z*aa5+iKFX#E z=>dZh%4T%Qfo#jF;ZL=$40$?b_|q|6r-0a&Ww1O6Eu?oHlc&$Z6eT=O>)Inv%ZEQr z?GlT=Eds}cvZK5HRi55H{OPE!4f50;dpgP(u|4wW7E$U-_1L47h;z#$?0yN4k|SkX zZW#V3DN?lMRcJ{)E!PZxWQ|PRBK|H3r7V#Ye8joQz1+GF>&0VL6?^xbVn3yrSSkojsy1OsA!a7nk??;4 z=0Cu;1lbIEZveR{n}IajS-5Yt#fLQfU{HULCai6%TCLa%z0oM^8=I?R!7oBxh7tD+E-OJQ}1_DFVrj>+HmOP$E#m^ z-s;p<@Y-=s#YYY);u7e{(SU;lS~o0|VgTM5tKd1>1KprRCj`xjYdkvyI}PsD;Tvfo z4sn6Cob-l6dw^4sg7);m&c&e}2P-oQTvQ+5Ij4^Y|9jXMfT0l@V2F}EAOFHlgI~Bl z4*C``Q>Q~rXl&}U*gSteXyCYn!(OD<^V2&?yRL@uXq{-? zF`O!lT)=zJY34PWQAl3!cZb$~PQ|{1vFRUNd$IBT*EvPsrKp?~WHK3@N!(PmjeGJ_%}G$Z2|ktch_)yI{Y;I(Hh?3 z6_Wr{8@hh%sy?f=C-lafc4&(CYX@ ziaf}`k(~#^Eq1-29(=4G2&32)k_WFooN8K^vRQb<$hw=uZ>u}u4I>ZV9DXxR-U&|_ z`PR)He@d4-;RPe*H)oWNF+FzS%|&xGc_>U@r0C{n7iY+wFou!oH}`y|?u5yU z+y(MZ_`AsX{LY*0doDC-FSgz4Jvz6(P58NB8|ydDT&oMkTptTK6mvZ>&RloLnCnA? zN|fcHt;c!8SR037uERsj^~*f}|C#Im4>H#WVJJDNp37YS4YZfs<&Nd*HkfN=Ju`g0*6c}SK?q3*3)1w@=PcOUDF$;V zD}RW&4ztw`BN*Cef@)vETtl}G(uBcW?+R^g6bi(C77l90?t~!!=knoD6LH=~kQGO~ z<@0mciUBz$s(_yvE&TYL7E^43JTaOvYs{ z3I$_K_gH7)Uic19p^Bx9_xFeAH1q3s6OqcO; zacEe-G=@b~ixD4sMKuB5pP#t}JL6*^@WP0?pYJB1w_0@~tQx*Je>eCJbEy&Uw(w2> z1z(I?XPh-|3Y}B%NmWp>#&C{WoG&(}iVxSfi%lOw$^_2t9_lE5(BSOy2Khm}sz$PQ zDSw}}doRY?Ej>NN+8r9n+P$Z(zk>IQwL3V1wd>-5Tfb8}60joQOwL(nTkgYKGsdFT zz!lY{90MupOv&Um0`n~bs7Lv&a6|o@UA#w3e8Q1wuihjrR_~3;=~+E zM14aMEerwWA-E3-*X%fg(|tqUF#n`OMnq?!x&8d(=;4@<;3PsGDa_~2$eTeYk)-Wn zv_n#KUA2}-whjt~OZoG)zC@&J_?9rpfSks|oy(lpXE)F>G&`zG&P3sD_yvW$Gqxsgy}YRz0fRs=)NUo zRpJJi(Df&Gfy-n(%qn<6W}r6Nr+&S=7B8+6?M2s*`KQXmXA&xXgGy8p1CL7>N&;v| zy_Q;9B{sPU#ivp{2A*9B;L#e7h-6cF>x}56nC>Pt5NZGFPKw2ELeW+!ngZN&tn@Hj zVOJMf_oCs&q9zeEcg;N?mgfv%`Gi3%kLfWg!k3>Jj_f;$vKr4dktSwk-W9!^evsKC zzbA;uHWyfc235)K+vgKgBZYk8W>d@xqGsr0-1T8wup!d*{c zoMx`t7>^J5Z#k$T#ZUGmkp@Vzs-FpOqaGT?wj-(eWK1)02;-M%sl1acgS33fDd~C< z2o=?P>vsuC$$Hh+S2A@&fmRmEC}aSGN}O;OZO87aGsxS0kri6A;>@0tCr72$iob|yOggQY|y$R9ydX3l&;G)1oIGGE-lTFRvM#8B3Lrkc#k~^p5EHO`_t29MZd}0fV95y#ajW zwIaVUH!kU01@&H)7Zo^iz11%uPKFr8+(pyGT{OS7VlifU1eL{^c)RFBh##g<$uN}E z8k%?}sT{ltir=Gu(7)sMV7mm$m3%qj|9n!xuPppN@RR2jt?~%(utooxTQwWpV=It1zT!4FJz-8h8Iw6xTp~?tlYdEr148tfv zri$?0;A{+2Bq*Ao(IYY~F->9kwqbX5Lw5@0e!_8==z|8ziLG|L+Gj*WC-`ezi?~oN zy^3)6mFO?U-EbtrjTdMcn;3CPn6Le7M4wLY*}Vv{w$E756*y|s>6d6`=v%*|Q>cdH z$P@I5BG!wWYf2v(Z0+vrf*w)Fdiy1SaDS@t*y7Ie_NTipXzX;SdHe0gL$lkO-@22T zR9M(o1Th*HSDIho*(_LLa*dW&iIqc1xw5$Wq=HIoLzI^cLPpo&E7uR*GqpEMG=2QL zhzrqlj0c2K-Qe%@i3i-E*^T{QO>(RFrM15 zeYlWFwPR6!k%D+3g}(W?+AsU&tNv~`l>8TZwj2FT>zkKub0tr2eccur9cUJe3>+HR zDgNsO)Fk80&7#{ApG<=sHa1HGt_)%hEcP{vV{~-q7pu zxilhApdp+|K9%*^boSnFfSdPq?o>0ixFSCqE@cfF2`FYZJk9{a0lo9h@0TjtdhugD#Bj~1J)n;Rzt6suA^$zW-pB#n$17Rt{?>2U*fu5CH5T^;gCbXloPqEA}mg`k?|Gbze)3B zD#B-^(HASi3;A6-p!yfwWw?l|WHC78X9PCXf94g2$4;6hg6jJ!FD`iYA2H3+nqE{> z(ScV^W$dz$PP|qm1$9$O!+vIr@okW&%Oy6Hn8LiFJ zHtlxKD1O3HlQOVlW_h&cGa}^HPNcDDD6JV7UxW1MP;mAczuDVmyWRaaAWzmP_3mOH zj*hhEpKTf7+mfu{;+a0xx%L03Rz3COx!E2N)tCxcz-D*~2^{Ggapgr>t-orRImJTE z?8HD>DbF~NlXFLfASA0r!+#(ELe%4ZBn1q9jvJ!;NfU5_2kYBJ+ZNhT-wmwrjU>~6 z*0544I1a6BoyP(qn$=vFV12WgM*8(%7@+YIQyCTiB}hai^p(g3W!*#`qTzvH$Ewau zy08_*(Kfx-V8Uv7zu$3$^jcR19h(EUl9~BTz;Pz@#?F7jV5J~!JWQ#JfLp5QoWl3l zeiXYdeBYhp*|LrXuntK2@dOc@X9gRxq~!s90NZR&-9TndfK#eE@*h?JAPy1!AR9}| z!k>aUa4rojQ!#Xv!kRY?ZVyg&Ah@r-O*OecbEv<5$JXGe&>ItrMziq7V=qPwgfzeV zjo|BJkYfq`O7QD|`KK8!Th3=bbIAK3Sjn8Z)5Uv7KiKZM8hd*=nVu!BYU5KN zn%43@Vo2?kz1H#`IZU~a6qfhat_yyyz0w1}lB;smaSFhMgKgihA2A;K^>+%}S1$>a zpY@zF*OvOq&kQ)uK+?`=uaFh+L|@~67txl_m}_r9VjcN2L|x?@X$|&JfbSsvRW0sC z)j=NP#-~UG&AB<2^X>=&l_Ti#wO1Ux)zhqGsRtr@kDI^{t+{*2%}E*`_twHOwU=y` z^{o;#hpUsS$CQN^kPtV>PCW@y#z?X6T-A9|==vFuHUHysve<(4v{&CWcvPQS(jh#iREUo9meO3X@kq z#v2~lMlduV4FUKEr4eVIrfsQN#WM&|d5pLZ{_>w{ z8xC*~h+LdFwKkdBhhG%4tVsjdnsv@_yjM4>z;Q}z5a~Dr4VG_Z(aMZtNF8h_kf|=T zNJON88IJD9R^SdF+UN|H6TM7Mb5^~>d3EW;*@ceowZ|eb7pE~9*IMRVo!GnH$0w$D zl8P${@?(zS!IdZ_lrkwssL-(mOK%t;Ygg$_GZm`T{1H-&ZE%{le!FZWS&1Vs%LrZ} zc`YN5GBpzu-&*AD_l>uamCC;OTcRopqQ%E7Jow~T0dx5;g8M?QCvJKz4U9|@9KHs9 z7nq6S$Itj3t)vDKK$MuPZNWY5SRS^|-fI#>-C=7tn`YnP{>G(&E07 zvY|{f>5D^|KMdA<+h4N^Foza=zX1FWESh30(pmVWYx(q6*|y=HpfpL&8Lk;tcJ9`hdbFmyK#$hu$UFurqr9~K_8L&= zgV4jLgC}3|b|u~Z6Ze;VE9fR#GzPy(pbxSCiMWUhsKqzi9GDaJ&9*rG4_lRKf4@5b z6~hV_oUU(ELWdoOie$h>H|ealzLb%(#}5gUh_@;Ogz-*Gx|T6=fP!T?OL!{iaKW<| zFea_xrwoWJKz?E*N{Bn+K1E$?l9XvJ8|`m-kYN-ah>sUjKV!U$rVStO3%7|yPL-hwtYP<_&)e=q%9Z;{Z3hb`Tqs%k=#eja6{Jb*ynD+E6 z+S6`ry@cr>Hu552ZH1kPMIn7r_I9>Qf{Cv98v9_N`Ehszj9Dc$ksL-AyHmrTu&+xH zuE^N%uc1P6NuzyXig~ujHePRCkJ@;nW&-MblRJ~vNT47jJl~rOef^Zn0moSaU~pjy zd4J6ah|~sefZLDnMtGiT=F}eY&F1oMXYk~n+)_ecTbXxOv1Mv=n^^n-tR;U z9MLuKk_ItIV!KS*hFu#QsnsnRhJ}Kw?XiE&_`;sraWk4vGtS!4!5<1=!EX6Qs5u8t zzA&#g*BLZ9bM^jekrhMHF)z(u%w=M8;q+&fX*JrIv!Uh~W8}X+E4T{=$-1-MBRrEi z5PUre*!h~dLB{Iy2`eW2T0>{;lF)|J9}=1|r0)Q`u!Ku{Snl#f9t-%-ZjL8L~>o_Bk-mx$jd%O(a#tG6I#EglEkWiROt?M;CHU(Ng zVBHyN=$F^DPD`;b2hzrhB~*V=p`&;0$6%KQ+eOk*+H2a#xZ!vAH|~GzrjQ%$>^xZK ze=xl8Rz_t8u!!7{C6Nq54VRs)g&5X#JFk8;#d-B3N#6FP+uZMQssjVzxH7f%uY)X# z2g5$X8Y_5uow*vy!`UO z4sTngx83eJm05EHp@YJgd!50Of#GQK=ozPf#&9&b!+j_&Tag1X!NaS~+r?~UF{Zu3 z%9z3q4-yay4x2f+b8yO`h(sH_G5)xyBK#Q=H?o_>BVl30oDql#$*OJO{q+5z$Jam> z4dc}NU?^S4frvn88Q7tgph1i7bbl=d*s+jtg7vJWcv+)D1;U!)hM}Sn}s#8~XstM|Fdbdv7;KlcA8(5wHcg^7_OH% zE$y?D%mD>A-)!V-@bM&#-dAl8HMGlVBDC=tA)xmKM*HkVce;rtC!2ldYL33A;H=nO zE`$Un?)s+$B`U&O6iQ4Y6}vE@Vnfd{^1ge0W>P@K65(R|tRtW_=#>ab+M9$pnK_xs z87K-MkIiUO3;Pn~sFAIFw0by=h@4*{{XwmS*HTmEccg`yE|)obM$Ozdfp{#j|Gw8h;674k4P0?EBrdVN-V3qTf3vq54FOl%eso8Q{rEELvEumboa!j?iCyTQz@j|)o15Oita zB3}k+iU%=sqBA%*2?8axh;l`ucaU`928woF2epdKvT`M5R>-roD!nZVh zPtA&Rl&HZ$cZ@@)%lkuV!AeQ$!ScKZ^{uvwe25(7IDE3!&R# zzx`$RvFZE20ew`*d1h}m3zZ<{1P8a}w??!PpJMm7t)8sbV}B@ZPunLG+rr6g9{w$p zK@5NW)%-iKL&)bZ62$#EBgt6)2O|hsL6$4UIb*^(Wb6}Jiv|hvRg#*8Lq+-NIQ6o& zb5xbU$Ir@=(i%izYXrFUmxn_e)f_r!JSRjH4oO!{V-M+!VCklFXGJI>GZE3kll5*Id>O3sxx@YzOXYF*0bB`f2$Z+5%{{= zc6Z=KX`A%UFHV!+CFUZMMtv&tGh?>dJvK%WM+KXd2xT@Qn-xh8K5AY)R-)vqlw;cZ zLP7b2)7WVPhHXwH$`~RFQSMdxmU9X6!SfL0-XVfqt0YAKZxQ4+ z!lgJM$lpp5I(tme?pSc|%Kbu0gOFUIznH<3eoSbz^?fo=gtp!!6o(lfRiJBxPot{m zt=Qgd;l}CRE_e(g_rko&QSWPts@^oq?7AXOC$DZ6v>CdSX;q~VOv_n3v%Mitt?x+g z@CQSbc32DkW@*70Z2nSy%<7$(5R$3O?4HE)GxB_})EsbyJ3$%Gwhdr3y{+P3&$i9< z94VR9(;CXD? zk?jGW&O@OMd!7djcL$zTOJ`{`@T^)p6K2n5>7Z=ycgCiS6?e4(?5h?0B5P|Uw=BaP zhc5*V&Bk~cD>4zSAr@cav^YsMRaJU!dZ(uJ^ra#ECe<4RtcT#qQYe1G^hso?U}AgQ(wc25AJ zx)pEQWj84UyrGt}`cyk;Q z92;NQ#>vjWvC+X76ua?z>!Hx&3crH7 z;26hUpMoW)l8w^@rD8&Lb?u+nUT<(8#$NFwL9q6E#e2ZH7(9!Wbhm=dalUwiVnSRw zyY#)7i<$xxd|B{}d)cwim--EEHX8Yr5DBJlAx$U(o+hI z_)Y>@4jK#8aZ%K)gjbFqJFO#*o$uqbA3t_BLM>>?#<6pI{4vMQM?M~Q>?Coao`EpV z;QondruZx6PAVq!$Z#+&QeIlss3ld5rw zlqhI;4PqN+cy-#t*WMvIK$VN40hD!mXI*M?)lKh2)>1o1YngRvupAZ;;tPkkHX{jv zUYm$0x&r0Vnfq$9;az!U)zhxor)}CFdgx@ZpP16#aLR2zaeuDFdAJS`$U4Q^7I0vD z74@Ns%OvzC7SO&DOTckLVx%p&w1*&R&S2W5PJao)ztgd_@jX^VA*YFRRRH90BdBi| z#iijtfS^lGnTl75A07$y`u9L*Z7VYXm*fR(6@xHCtD<)=j>G8mJfy-T|wd6ZVgy#kl(>ojX*WQQ#GY%jZF{k_aIq-t7h%p1#(*q7;%n z%T$&mp&Ee25^$v$ARz55HFTV~UlMQ)NO@Nj@V5XZrb;!mOTT^zBvu|=CN=>%DBLC`P6nEvV2cboN__h2{8qny z578a{`XZlR6V$I4)6*%?%zK=LbIGsszCz6HD$1gJIzdQ-js+M+Z(cHq#0Kmtk65gn zfQ`VU?r~8!`O-09U4kLNaad2GgF{b#gy;trqXF4?nhdROk;(lihuSRJH69vp)Nn+c z7!z>r(igE4k>H_SU(NnblG+k7IPD~DhDL zSUo|#rf)=djum;pC?ZX)z7NE&Ax-bmBy_@~0ZZtOER+0fo!dtkIKQJRv|;DZdGKn| zHF}LQZ+JkpO(HnG3MOG*lBqq}bT?;IZ?*~L0gT9(^XJbaj31E>-FQ;2?emDz!>Tm| zWZ-qnP2^grTW)bbMo8YI(A9kFN%i5k<-7j!2SUCi>A;in)zGWbi(JydErXker?s)r zlLIz#l#s-9Htxm`_{*!9eqs-*jnj644;F4wFw^RnNT76x^uK~16muV)H*fxIUWV_R8g2bjCXzVR!FKZP5qw`J+pjMpZZq@XlTY3@5U|8T9ym&U zDOSe<&_MZl>%WU&y z+U@Rt4LBb1oV2e-)ZG@c^@O%&DYSaSE4_HtehmWbRxB3rfFiN?{1W$aN$a9fc+l%W8* z5WeYZcX!Aq#5MFngf&4r8y$SSS`W833sb^oj;NEoh>~IFC{&YZDu|A702Rrg-fcx1 zf>H`!SQV>YKL!Cvm1C~32>$ZJ)&tNcj<&H#2jm_yl)ZaH8)trxBw+sXgP}$CENO8L znf}glUILYQ{EpVt$pncNv%43s>E{b1DVe`=FDP_2?(XfGl|`4Dq+I#om3@+KELgeM zitR)%?Y{Rwk#nz2P7JP>QH8C~~}kK>5H-8mQThT~9Jvd#8Dhg-aX1S?D1oy_cf{ z)|QM^K?gpB3)uQ#saTT0|Uqy8AannqO=-DoX_+qN5_6|jn(TFmK<)nOjN8I5I<@_>#E5mne^V?*e9hH;oZXn+6~ zDHQA5e1zI5m7H9AaXD-W-xqH}R{-K=bMPFuaj&g+wOMybs)yY2f z3rAuk`!Td1oJ1t$54fwXpAAYII!24y<-SpyS;2pVa``I&TpT|6nA+vM+vO7`xAD?a z6;>|~8!sh{i#q2t_R?A$G5-B25TolOo&?L^i!JCcaH8_NJG6#(dF%{U5T>QyX|4cS zI-J3~GP$&MiK0raWVRK1S?D=g$Q8TvGv6&5FkM}FCKQx2AByeA)P4Wr(Cf!p$Y>Q& zVrJ5GKV&z@ir36o=vECCgD2PHoc3U zRv$Z6D%RLTA3terHv+mD&+bY+8Sd#jEyDT5@i!7d<}lB^dT*xW-)y%>9f*UlW;Imn zVkm5|24IE?EXOz? zlL^ZX+M38pYXJ14@u`p9ja9L$>v$YyzU{k*>WsQ6d;;8X<7J-EwwH z6Ng!)+L07Qp*NJ7UVZxl7Ipkcl{FP1DjFp__<|n8aM4`@uNRtkFGqpUyc4_h-kXX{ z)~kukruVEVGNoQE`a3a{&!Jd;Yr*_e*ehP6nS$ZAa5m*#~B$&Q^^n7Pr`e>09~f>*W@*M%i6t)#?d z_l9lmQLkEezG~SSOXs07je~KHG;eoSaBsyRngu^M@Gg#ST0=I|BsxZe$i|F2u?`8n zVU~kRs7cr&sKV(#%SL@>F*snKZAlAl6ZVLWm)%5Yu9Zr(@AHWa@&&!EFP=6S1fq1@` zvjVMXjyC2An-gqk5;n*Ck=FLnn90#wphB0;vJet8v5?l1P-+LV9Ne>=s`?ILen9ay2 zQEj|UHE824WDR;eJ6mix?5uW?y~t;0;$Bs?x5zX~+%++{@BI99w5;mj(1Xo9z^#YG z!-HjB;t?5oz-*(ho;tg&=2t@oNf|M7oMt1HIYLwUnxaa2?>6ZV2&P0gySRpZue6s{ zCs!;EufGp|6wjUTbmUcK)hRrBF#hOo@RnuOgsTqU!y~V_NJv5Et*m-9Pv`LzNe7r` zFpg-N`o)mp8-2~jPIcGY4G=!!smo$s9DWO7ESpe~sdVts_6yCXx7R`w2cJAmA+Y9b zl#;~s9(qnm+!;X^!{x$K^L>Ga-YeTc%yvnjqOBhX&MgkV0@+xq00csjfeu00$3-fO zk9*Ka5CNLOAykClLbHUL7RWp-M7W-PTh4Hzc3z1<>hZZe)>=*lpSgsK+v{%A3bXglM<}EPne)k$H5P zk0^z8c9pI1$X`LBBS%Wh)ZL=bPD5XGB!jZOVY!b5iQtaOb<5kn+02J3Wxqfs14zbd zWiUD3of*c<2!3{nFTbQPGbBg{y?gRkA(oqyCGH#NJ6cufRT2IZ)x7!{at7q6#NL?p zfg%P{R0|;*3>g{U-Q$u`A>cxHG8T)gV6$)%YVUR^{ezrZ)ETM{Ip_d`>t#H$t8jQy zYwCUW02TtB$He%J@OWUmR6I#wiOsbdD=&Yi5JKG3dLvi@^|u|#s%JZhnouM|)rf7f)`OoE-3Sg1=1N*X zJ~q8o4u$1mWCq5O-ZN_~$F+?VoMm;VU`b|6i-=E$x69z2; zCH5HhZ#o-xY1K1BADxGa1@ga*+^&AYvN^pC!A;wU1f(_z*is;k_E^(WzmtZ%pU$M9chSzLqi4&(sNQ_O$JzV1tcuP8#cKv zEpd%2ag8c*X9e0ooYDN79I^4QAP*)`#79Cl-f=6d+NIs2b>wyB3PGIHI@9|R6B5lilNLk zWzJD^Fxw7?3u%JNKQm=8-ASIS1|n9EX0DRWE;fljH%budAjzY#wmny!6_@2ck-Ox# z7GWyC3S+sDE7{UMf1U?d$xvw&MpiWEEIrw|sx>__+Xqn<~{(R%E-?+P#7jVsExC3;&zMYV#1U`n`Sljwi zEH0!MCCssi2c7=g97^qd{hiJr5o7NdMS=S;tZXR(SNM0#!stVY{0$69F-D2J<*Iu{ zCuC?m9s=<KTvoR?j1St1qMnDoRn4`P~_QcUJgVrP!76qEwQh)ZO*6^JR5w3e{QS z*ZrZoQ}OF1p}M=dHgcp^EoX)M^aqjNKj?R7migVqe)od#RiB)WRxKzpT_Dec{bk|t zJgEPzut$qk6+x#5gFSe%@&Y!^yT@FiDySD_;VK@pP#%=StZ+;I&?5lW`Yw~``QCSt zNEEr265IJr*>XK6ZL5=&q^)269goxp`Fch1K-;`|o|9V5hxwhpr)?DUJuURn_w;T2 z>-3YmL;X06pF5482l)xy{;0uY_#Eqyp|;mw!+F_6YF@={80V+$X>c5h`aD<`-Z;_1{T_*(5qYfsxI^7JjoOUlE1Mf?w{8mmq4ZUd$!Wg$dvly zl6t;=&vSA&vHrNItLpbGk-N0|LJqFw(Mr&`x)fns~(S{`wj0CkHjO{Zr? zD_ez(Vw&|$_L9KklJD5pSV#H%Xy9q7r?p^wKPsui-$fs?3NqXofv4qtL8;lDR8V4Z zjhgTDMsKX$7r}t%TV_}I?-smzTMyxv#srLfqp_QH&_TH7IZHscUApyn)=XF z_bsy<;#FeH-^1ZO1)}|Vz_HGA)aFhvxc$3syDGLWGPPbJ#(Gq7gj}V`Z69UGD^oNT zqq5}@O>W);?@T5Fuez59%GY^5vir(!aovFF|1<+g+41T{2o{&K{qsd>p)Hb5Dnbxz zqMWHF3Vc0pi*&%`np75k@6QGYl108LOIi4uOqtCzK%642dIam1$0tak+9N3jey2f> zR;ecolW`U34|uoO)JXzEwo8#IjDr$;9P?e(9S)`9g8Q49J-+X$g17)!k0 zzI5rj>s$+1gO~D$T*iGv{U=U<=>4rT@(=Z&l&j0~NPhh%#p<#+GDW=3CwlwSaF^~+ ze+>U~?XlGQPx964{K%;KPu8f*HH!zk`nGhnQOF-buUT0t`?u0cG>SKPyPgC8hHfq- zcX1U3X9CXcfZbo0tu>5A%-c7=#^ajPr>`=*Kym*^1_&=SK={eH7zo|AY8&iA#*zr0 z??u5q2acrbCHXocUM72*UJ}Xl)FBTbVtkQj#kv#i9wCk7sk=W%LrZL$Wpi6>DL^x8 zmc=z`);L$jEUPPRmfdBal`07x*YT0dY0X)y3AtfzGJk@&5m+e){~k`s4K@^F+5E z8SKKV!T(hgyXU`!lF8_TEb@$C-SW_^UoV3hCC-h3;SX9B!D8&thTy!U$bw*bcHp*U za;g)`&C)$-aZQ0UbzK>_?S9Wu&2uu1(wrWYq#BI74V-@TgacdxcYMo*4b zUe0yp<(70o1&OC)d}oqP(R=kBG>%iCz!j<1&QNiBsnbk`6tJ_!kYw6o<*RblFPw?i@H-k6XlMkKUiUt2pVoQxnks+@pFU?fATH4e}e<5)!Cz zwW0cY^{vOZ$o4N!p4=kmHo1Dr+XmCKAZcUu?W)W(TTaEwJiBEQ>%QwsZq*2+6m7pF zzkzC(D!rk4TCC-EK`7olxnOJXhCk&4KZXSd9jmOBSWQvLAK>PmUzTUvdc z{05d*Yx29nXuW#LmRDkRpHxqtihXxu^|)BuDzdkQ zkoy-xy00|UD7+#(N=_Wb&0omrAeRN;_}Z%cj? z0~{y#Ow>*Ba{%>6-oSo@u75KF_ziA)uMLUs7DcLB~ji>^bdv zp0ZKOLsOm|sJP$rk>)F(<~e0!r`VCAF3qk>WG~3_oEqo4z;nv#8sj--M~HbUwkZYX zeJ4lr>C>SPwpp=F$Wxbxnf5H(>M`y5bX&yEM#kne-5Qv;Jka4en&Q**#S%Ux=Ojs< z^?dcrbJDzKv|JTU% zqt@~oqO(bXA`BC5kZx@y;u^S3XlU(WZHvf{Tcj77fw#XB(@KSq7Q6hTho)u_A z#ChApE`yUPNSoj8J)-6JkdkAMFnJ#$*d3hcG0dBs(O?n?1tK5d_?lB~TLOpPBdq9T zGw6Xf#+i#h?W(=u95W?UymqIx)9F1r#;KHk-Xmr%0(zlO|Dt;367O*>7eurLbc-|Fh^dn1^F^_ovw7h=@tBD+TCxm9( z2)ZY{xgp;Rx;dk9pwSe6o5z{J?01*AFRD<71P%j=e|$?pCNomNd#n4tvheSI4?|TU zJg9M)NQ$2wRPmruye#}nDMqPlxBXO(Tk+<~&VcTFQ_e)wCG4)CyYZPaRWC;^XpR#l z^b4D=ReTgNUMdE-fw|wMwMzy%a?HL)Io%FYFHTtSGr|~e;~+jdemo2P_vz^5>y+tk zM*5Y|WEnYekdB;YK09m*xap>%q|Cts-5;q@ZQ9<5 zZ@<+@mDuO~5lpsuTbPe&4Lvkd7OucTTfk7tQcxC{`JKD;wG>l%y)v|xMd>DUd9nQV zo68p@9nZ!&0He3H?hmm++eZe1;{5$>VS-Z>2lWMVzaY5h#OINfal$}Ml~OnD=yz2= zVr|><9NX1>k;%ffZdP2Rym61>&2NNdNaMnUCSkkCKiiIsCUnW?T1)v75m)MWTd`hU z&Z86g`-1}~PPBDd{ElL8T`>f3ft#elOCome#$C*z)myh9X?2pfBRi7L<+#-;-i{2C z+90~EXERgKYuljU6oZP^@Mi@O9q0)_kOlpp0pd_F=(0K#U={$FF6)WDVX#=FU{R3( zi))6#qQXs(a|H`E&tCcX8*5-;-AbAarI&h@>Sj z=oA=qF086&g1c72j))t{claFy!VGT8!bR^70ioI!!waR3VkTW+gd2=-ff4RFM%;$- zbHwl!o+$`)Z3nao2(id5-nA8yLB?^H`nPltAooVTH3A@oiRG+q3M&+Z6lx4Y0yF_Z z1X%{568VSWRTXM&8;)9kr+#1lel>>w18Doahd3LjxF_}LnU;lG<5Q4{A&k2-pfGM* zZ;^G73^W}$9SsB@<&?#mWzmZi&Fs2dP6LxTo?oEOTMO8th?_!6Ld*5kd?U1Cs*5XZp4eadQ_|*^hoU|>gCPbsI8~X58bYG{6 zrHv?N9x8@bEo!dKK$K535tkg#m8w|iPoIpVVzFw$Hq-)8cnN)k8DRd4(axa%$HIjK z{7S1>Y>dUOqNAzmY7*4QjairvDv5HEMW@sWwbipk1+B`ep(m8Rc(APNpp3~iA1{Jz zDT*IKY<^!7eJLH9;#T87|I06pmxkZwl$u}1W=zeN(QOfCR%cXaoVOo8KvEj(GqD+q zx}IRtR6zxsc!z;Z5*=wazNLm`J8yHvgUz{KJ8v^{X{KnfndEAf0meY1_{S)576Bx^ zDiP79F?9y^fqGRh(Zjc4Z3)Ob0t00ZsoZK*9-IcYHPU>m!lQ>zIE8;OSlD$y70EoO z$j?^e-GC36_lSjEpEb5G9JkDfBU0+{N`UJb+Fs&P^EQM?aU3!Y;n0Yh)G`nC=xWuY z3x_vOk&EaNHl=-7lC{zw7{FKtyEvw*DNl*5x^YrJ0k}U#2c0x$|}7A`EU zj?*mF%ZrR&LZ!MMr*vs`ysIyj(N7Qk9B+WG`ce@+s?o$7Q1GC{0qlBW&{w(S2HS`O z%txW$(leRFNAU4eQLYF35pQM#&E#Vcs3`Z-ZL@=IgD8$ZY$P0G#8P_bqUpDN7qA+6 z82%aNJLuTY-{08synL|7Zbfkp$x@ce4^SCvm`l$$tFgKt_YaQt9aX0wUMEi9l80tH zR_C>$I!~%PHdW^<#{TMZ%D*1=v_;9S}B3i8Zy9S%r8m?tOQx*S(ic6OcVYIhf z?B3WqV|z$!_e{hfto=pQY2y1)QYKX?m|}7kE?1o}cE&h@Bu?%Z4;qtu=~qtfE3{`! zExBOzevG_NLh8lXq<3hR6ZVSiYPAs&Aayw5__oo`5ad)hfCJcCM8B(yo~ZX~-6p)3 zag`*zAK7;CKMoOzVRVRkQ;c_meT`AMkltTfeREA1qzdLpAyXWKYPM`bEW4x;-_Y4zOs=^lx?+A_0}CiV=oAYDU!F7oQP6vmZZwh{Ac_ zy}*eh{!Z;s3H6>!s5kPRGojv?5yQGaq29hMY$d|!zB1RKKn=N!pHvUAuM@%?G|F77DA7Rj!|G`{fRJhY^3+{~kWA*4VgH1Sh zQ+|NLs-)|E1+a5VcnQBNq<^RD4amOT{mZW?H`nOr5N(L>*>A{f#`)@z0P0p!2xCJV z#!52!Y)1bV4FJyfkgLL;uXfr-WarYe?_h#2%=cZ#w1f>_lKH)$paA>fdUv=J@jpv(=0qj?$8?ZIHwqeBsS(y zq1y)wk%J(WLh%o|leUXmLDiXGJ5*sJ6%ftJM^SGGAv z=~&_9CA2O20;l)p-q*w8Dk~<0)y13TjwolOeVAc)S9!N}$Xg(2s=d>TSG{~knvFWG zyS8|w0XbZY1*PGW%$V2mWlR~-oBxWsjDDt`>K=z*j#NYJSlA?O*1RdV#Qsfvm$FQku-85bB-?5jf0b2)8tkG=4?SeTlY;aa zZUmwfH4=t?Oh=9L=t6ZkMG7b0IXZ6DXNV=y&TD#eW+>akB)dwv@jNeruZsevu}^Cd z1oi%#FkOaim40lqI7T=x*U7hY3=kmoG|s&C@T*RVeHRWQ3oZ`${=}Hj=mEG+CvG_P zA89ftsk=FkM_)Z61IB4S$(+87SRDU)ZU8l>M3@uNdWtcp)c)J|#I`$USCd4l7j13yb(yx1`{3{?`$1S*C+j=L zZT&cDA9JVG`_!}nW~NPD8wdXTydDnx7$ytF33>(c1j!P4-wRy!d8KRULd8+| ze}LbI-vXg=!z@4aKVdYue8^ZPXAR^&2TD(N8&D!#l>sQAWFWTzC3S5BN&=!3ZT&S0 zv(MD;GB6wP)B&Ez2+W=&G}`mF*cV|+WtfE-R&hRw`5vPbG1E}!go3NP*Psx8q>{0K z%fg%00c?;$*g@)TyauiWuZ*Qy!Qo#Fc6zjir+F3JtZ`7o!Zo&)uu7muNwW zl%Y7kwTvaOmA`HLweq)vzjq96QM)oi?ARPdZNSsr>Xx{eqDdl35C0x3s?O%;xI76H zx);ewNI%UIvimCE^Hu)FSGmVm`CEK<{gns(m52P5hrx1unOIRQ{oe4Kx1A*^h_FZD zQvTU$>@$d}l;IeW1~S-EX)XMxJV{sagxG6eS-!Tne5 z9~bgk@s2c70jwKco(fVn4JpE~<(z*rd=TFW7+y^uQ6n zp3${T(NcC!#+4V|MnQsaXf69#)%71;1{Hra={E1~BXisnh};Ychip$0W;keD&tPMp zfKoN;y{>U8@{b!!RDx9;V>^vprJmGgvvoRW=;75D07gJVoP}e?Xq|q$I4$g3(L0;C zl+Hq2m+m&|Oi;UdUidlbc}wfkrKtCWiHZ~jC7?+*;&uCpy_b8<5N*JwqSulUmJBo+ z#Zmu=NIx@oUr@r02K5}L9}jD!rS6A}Uaq8>g!-x)s?Uzv$=Jl?w&hAdPP-L)Osw^b zj21Ud{Z*UTH`9ZTO){+itq z*cRo#J}DLppo6&&6`QAe>}YlKEPv;{Eq-e7b}uVK7iTA&bGyD5Zs}EWioC|(ulReN zzc=`MlfO-7e`Tw`axmVQzI2vIyL$~^ z&8A1tGiV!IOD3Dl7E@Am0E0WD-+`V8zFtj<=jyp_Mr zrTNjtxYiu@Nw1~|8@yO#Kd*{45+P6MaP{H=!Z`mJgctmgkhA`}_xyE-{B?&(BoTDH zhp*)>{fMlU11pX+>PNJOzpw`oJ#vtj7br;aE>W2VGXi}c~#Hpkh zOteNZ3l8WRGra-;&HHcM;)pM7tF_;|;uw6!P5*|AzY)8&k63g92pqjVb$w`?e?=#_ z8f%2zR*BP&Njy)`&Q>znSdAs#jw3};cOQ&Kd`>Q%FRXzan{nfF9AtUR+I}Zu^R9SD z_6!yb;SRo_achTX>x4gwrI`CxDY<{nfsdH%#(nOYlu@^I&CCuZg?8!hjHA-1@*eMs zgGvvZ8n48&sD6;(T<^F)8PNL()K9<1Y3p;DFWg#S6Q&BIB>?UzWMrA#Nl%P!(EhJz zU)yAt@Ew(>NP1xPm@V2SQf&~#w79?u1=}kuzsQ*?!uP|IveV>a+SteR9T@?(e;owd zvs@98KtX^nHzJ`lZNWF`xj;%8TmndG*8N>h(iv0qPyG75D+)fN(OQ z|H9RMF#!*!OSKQ4yjduS;?8?G&bY=Z4nw_4UM2ky&)E2JfFw;H2v@CM|4dD3nvsG{ z4g@**AK;0S?Ypc!Im1_(Q&2gnc3w!&X5PxmmN^Kl=|0D2TuW!Am|WG; zMdKuShEkVWVr$z?q6)!Zp>^7(cVo0}mlczg%$W@_f+yz>gX5=a^IX(K?kwOfM*to) zKCGq&u9CCSxSIC`HiHbMw*I>yg+b2^H;rX*`E+(|u;~~3lT9b~{>+rkryI2~pv}DH zC-ye9YCa1$@$`WNAX=YK#txp-jO-%zUH*`*v+wT3pX0sHchZiAc_ zmsVe2Ca#NkiW%$#Po~I|zkVrC$a*SerplAUJi)svq)*{thI&!P81M3u!c9F(GYVhG z!m3VT8e<9RrRhcrM_uNMjyg@}NyFYr}9K33F$>3%vAnnVHgCBEKbU)ws>2wWl+t%FnGuc{-l+KS zw8q19*H^i$;04*pWglP0ZYO72uGq(4I;Pcj;QJxUKN)8yj91ar>Z`@D$K?3sss8mI?rZ)l|qvTWTv$B64WC$TiW_A zZhVym%vgM?3KmyGGz;QjedH4vw=sF~iK9f~%-w)spX34qdI59fsVlJ6ydJMX$)OqQ zRpqkJI}skzvKe^x=+GpPV{e(=b)QUtYw6+66$R5F1?UZNxLMn#ch209By??J zCy}ieBpn>0Yli%BBwahLF!v#^zJy2%YA%dYa7#LRXYnerpq?}*fmB0 z1KJXGFwPf9<3_bOtXU862x>(EaKYB$tVIn;J5(@PXoUWN!KDJ17-b<4EsSYvN?-x3;erfk z2ZTbgS8pVe3C~(ZLntjEjaAr41?y0SjfoYue2)XQaG(VFfkrHd(TKTm8nIxAMu=00 z^TcI}i%@_NhHnHHG5y0tE`pr~_HP6i@fnOpoQqiScesdOVoLyHcwR1IW^W9T?*Ahf zak}NJxrh&W_jkC6R`vRS$wheewf0!djzwnup7|std)33Coki=Ttjf^|LBCHbvOzkE5LRdj~XBeH@BaFh+< zQIWEqHd^N#cnfrcH0OLheBu+)RZsHQ^&1+eUPR02fjtCXc70=5f0{}6YcPIuzp6jM zq5fPJa`Z1$q8Vk92*$>SHFJ|p60;ERqUxJp$qW3 znxXb2#{bF>WTBvx6t7;-ED|xz7O_Nz>H|6)WMYjfn3f!|z9s_4;=+v8mk@r2NPOoL zu9}I{NbsF(B7DY&Dp~YoxZ3)M={t=FDuGH`xCN9Ffu(diCfgxMkfTRtL2F270?}(E z^ahBW>=~p)e}NJ)9EKtzATiP~49SRLi01t-%1QDLk(eZi^ZGeG3Ac%WgwxZLT;)gS z1I+BGds18i#7x8h!Kc^a1_#Ol%>$n>lZ{*RM6B*wYM|||?@7nfaHA+8nF&gTcts8v zc@^QAxgwC66v?GDEsWZlCo@E=2MBFCtT2MLbX9l?(i^f0hyX`hZ_u?fM2xe6+r}m# z0DTvPNtEO~%N`&yuC>9(MU-QRX!1WevCmgI7cQ=^&8{_mKScnCeq^nI1%3jCx5q^` zE?&k(HdS0NmgD)Pm-#PPcfE?Ae;dI-5vAPMP1vxC@HelKB~H-swG1y7xk7l>Jb&f? zL)+VcM^#-5|Cvla1`;^|qee|7Rc#85-ijNm$F{jDCMX+z*!brVBXtu+UIh$@atEf!iu+f0q zB!Y7!Dzn4orBjNB?=%8}O7TsN(vL($oFLkAyC;eEcFTS`yP-q$$c9!(rL;{Rr)`hAqrA*?!S;e9UrC34OoDHu+a__I8 z{7Ce!Vw^lB8^9fP=1f7OI`bxpcB@&Ar!AJFejkcYiwB?^ACNI2(r_COIWP99FLMvhYIG5rpTA%SJdf&UJauDRBWf7}q4Y zMBEL&$hOy6t-;mc$q^bE8D-9+n^(Qt?GenpXB z2ncRBZ<0{|%-^}@O$y8lLNH8-uZf-iw#c})q>jF$;DSSP?&R7(HLNAJf1A`XD z+udqW_-iXumtG_@$>=Oj)jbo86a^?_ngO4i7^Bv5_|KMCA;xg%3kFWs3V^P*dHoI* zyzpHa4#|=>Nf3!Fqy7Pft@fHQ7sS_u_f~6tX*i!rXfe%YT&Iw`)YY{+k-(Hb;KXfu?`$S`c~I1nU@A)_ zT~>FnYLdt@+yr$82+J&Kh1in}fWxW#Z8$JR31k})l*$)CkTo?Gv92Ymxk(Ne^{ywN z13*4#&Ym{=&XdU05MOO)-=XHD^Ylc8TGRHMvjjjWYbVJWjZRr-h{Xyt3$2VE3mhUd z6hWKGeZ2*U=mQ8(K1V9ZRS+&otl_<&1y3)KJTrn-WBDO^jFChFoV=Howv&6CjM z(_#ONc?Ja#&XME^d6gcH5K zSFl+iTT~_iDVbS%(3{d&HHKZemkf*}B7~@2_ja|@A!)pN?|%S>>+lhj88j}s4ML)I zQ|uJlFxKZ(Pc84chrW=&yJtEHA-jytW>0z%FuZFdKCKVDlt&A^{#*;M$q1L;fQMu^ zkpRNAxgm257k#KWjLq1oz}lGwc#XR@2sk6PT?d~In|HLB z^Vv^kM|{&7&G{&^&X{5@t8r~74i45v=gNCa&q9NM(BLk#u*PO%>bpx)!|zVUbw1>} z@=5|JU+vo;I-}p5j}(xY-7voMkvB`u7kN2c>or!srLfm06@>p{Y#u(@UAn}Hs6tnA z`Q=n{t?v^lZmfKQvf-*b0Ki@3Fnm!$>xV>vp~M01+0xy}N|7%{re!sjFDojaUy}~= z-FZG;3%OKwoKqv^(~8{ly_w-W}+FmN+@G#E~8x*aZd|RHlEu~_~5I3{|sd?yi|r4bI&pwgqTRC_Sr?{ zcP*VyUzbH@OJJ$HkXb~EPkLy(@LVw9^HUn$zvtBOvXi=St_;6P`e>SE3g%CJeOY&C zLfGX=kE}f@o6*d7jtI1rlHfMvn(Cgt6zI%W>BndJp1bgU&w_bHRd+4DfDYmojqi21 z7gP)vlcp6<>8UMDNOz!rehmra&AVn!ZS|hrzjaF0T{Z7XZl$}H5{s}oT-+dqeY5c- zA0>H}?yA`zXcbmE@W-2WYz3X0J3r@$Ro4|QbE*(_m`ye0y#t(IJ&pfQFAOpwqSd`0 zX(-^jtTdWuq^2xf!$2bqPwG1va>oxLjWo>OqssJ*;Lh}1xwB`ly0ecv`n(rCd9<+7 zO_7GYe<;2xo6}d+`IgX!Vo_2TFb(+=n^-O+0{J*6tL5sKf4T z|DviQW97B98?J>7Z^Qni(LD+41BnD#A?ZY`+My;`qmX@cT-e=)u3va5Q-+6PGInuU zg<_M)zohzb&u^s<>?B9)%&2A>+a(E)BtWX!uz#ogJd)-ktNXuQ^;x=Vzj-v3x_4eC zn@)REhE@0a{dcIk9Y(|70JmNL9t>SXwkQ_^p}CJbswCRC*7-l=HFz3b=VVl2*64X{OV}2u?!?gA9N)0U!;oq5L-% zpbj^hhq2s!sNXyoGo!Zl^B|iD_TucYM+1P|vVhQOq|W93{wtZzDX$w1bxDKWOLNRq zd9dmL<08Oi(fvvRh>_U=crCl9Od}n&yQn8I<~ty{i|lD!|Af`M1N4cvN7ej6O=K%+JjqE={NBl?9jRp}0+F;ihW7LNRfc?(=K8`}Mw*AJsBSH7U@S8elEi(a! z;Dz~2nt<<6R@8(^x5j=XKu6c@yGS6ueNmI(^pMaV_~QP@2O*_^RKs!>u*ArC|3o#4 zRHI=WKfr%AkUe6HWwr|bNNA-5c%D67;g3?ffI=)01$xoDh-=4yUO!G*<^}#nkO{Sm z@OkuaAVQV2+X!{r;MwDd!t7ne|B>D+up-fY@SXtQz`}NBSeQD0t)SsoZ8Y2i8n)UqZ|hSewOh<=!#EDwF~ux0R=fgZ z9IX1JsH)IdxrMM5kQzm0mMSVkVmX_>lnRh-;&L7Yn1hr16Ov3svV)QAtFI@?kS8xT zsV<4cR7SsI55guein6@2f0*AR74Ap~tMbW_~xS`K|daa|^{xOze$%Vl6_g*TWgy+yAPt zJx5p!N32m>lVsGtsRkodqB8osyyQiYSOGfvrL}G=qmNT83ICUVf6(~8`GGyYSzvzA zBZ^{aoS&j_UUUV=#SG}yz=41HsEy=`Y(1BR;WZ5k0!gSXk!TWIm4?75fxs(@9AqHZ zNkY-96aCW^b;AFpXEsHxjNY2ut6?=S4Q#aLk^NWG;FQ<@pS5@RkpWORwms29Dyl6E zrbX}Kv;4cHS>Af`P_yjy#c5n+bPGk2XLv9M-|@aZ!~YHjPqK#)r%)CKC(WNk!5s)n zI|-$bB}I)00t7XJ0_7Vk&xTouG`xH$7Ta#_hF;+FcLRalh_)EItG_x_1T%e=?;ltD zI%DqLzP}b#75FBF-FeCi0_(d-!v@|&mZf+unR-u}h+`p87V~r96M>bGw~4d~gR?hO z8&%uG&ak;th=H7u6WhqGCn?xMHSn;p7?rzJ32XHTSGRydY9HETZ6ULBjFsP{)PQv) zC0*}Xa5fqWcn-Fb#op~Idcd{0cLHP-8T zX*;s|B;CSrX<;~t#n}1i!AVjt&C3_f%Q1B%!+{B0E-RSf7=hm~uz^D=8R-b|`nqAx zH^Xl&-Z4`K)rLk~jYl-%($?~?N)uKYDL}z^nUF4%R3fPs-I>*@Q^u+v2tzSsO{yF< z$+vQOu)t$9l$gP)?t0rG2t1Ggm&&MW7;q=6~S+nbDeailvA#_b)1af2|U-#jp#R?(4Q z;sN1+vh0z)ab}LO;#qZv4RTLngIuKU!DzIL&IhJwI!mU`+$lUzU_0qAj>7arjTIcm zAb@e6aT^)nWU>E{sY)#N?~Sw0QH5hHw&sGJJ*7{wl41%y$;T7kz&@ZCMF$;Y( z0jMm&w+I_#q0_$2?PKmI3tg;x_{BokG6Y8JZnX?UZL5(zV$ATSWe#FZu|ocP#wvq{ zJ=z@PO|kqC{LnYmOL9vggL`MuoO!;fYBrIV!jJFa@EH@fbbEDpRm0DCuX_BdhShwN z7K~?~kR#rS3)Lz!@4Nl6&cQE9)V=VkbcK)OSEWlMP@8q;CyRIGvP?s(%H=iY5{0wO zWhzJ?uHDIW%1P=<=2A3WvejFrCwqkFEJPqlvZr z*l}im0rxq-#M~Q(~1Nx&tFat?`j)yZK%X7;?nGuv>2HM8xBnH@IN%#Pa?pIJGCGob^{_|}~MK0c?v z9z3UU`@Ovg0?=GDvBWwh|1(tKQ3@~KF&286m)jq^9*Q$IQlBocMrEKxCifAfQQ6o0 z-`^he=9*9CO~dKl%Q}K~Ai{RKqs*mSgi&fPm59MuaUN5lCbHd{$ir$52A*1;SNB-P zds)WHFGTb0i`DGtqvl)~y+(5qVT>CZ7+Iu2TEaKUUXX=^lqYs6vXU7fqsk74=YHTw z%r_$JE`$wPdZosch#A@MK~c{ ztNH2vSJMeS%PuHq!T%pSXK9NcUZQ=}a>@C2Qk8BqKrAn;g6Sw*Pw6X^U9g^t<7ZhX^1XW#8ZQJ$TP zn-J@-N|%Y_xt<(MNp^?J3!UT)L)Mo4BRH~uXRh}B*qST${d^0<7ATZM=22K@<|n8{ zzPb&P?REytodfraJs{ftPUd(TCuCtWZ5VC~RqeFp8Ag5a02nSCHUNgeS|Omokig^v zVOT@i!7#+;>{u9{@zUn9L_5>o6{xLLCS5cwR3)7+*g zd?9q)Oh6mgt%7hZ(B3JWy$<&f!FIZO{*r-ri;k557;qnbaZ(f5b0-qZP;Pbfym|je3uqy0U_EZ)_3#vjKKr3~C z-8}$yzsXQoEzGXSJsG?$Kz^1dS}_2atSw~W>jDbps}!NMLRVIS&9`cqPqjkTn-IGa zXaelqt+11bsH>8&6GEK};K(-Xd@UIxha%Ttq{xx&j(u=%0vq!+Hr{PRrBF83V;~~@ zB~e;zfx_ePhgwG{DxWUiP+tCfDm)9s!~eZN(*nNsZV*>fetf8}+c${gJJ+2}~f7%XfLp`L02cPN(T^mY}RB-*7zV6jVXwYEq_2B7JkI9F z^Dp#u--g>V)pfr%@WQ;ybRBL^@x!w;2nVQ)1;m}0Tq_%_WNQy|-@iee@i4BFvrocG zVFg#p(eHOD^vk!j(vwbR=542Nd%M|svie$^$5-^5Vj^ElO!?iBhFoA+iVC~%d~LC` zn@&VbG3(`P4>A>1KnK*?R_d9KUu;G6Neo)FFW$!`=*JCiwS217=mO1{STuR+*m`CiVMgQU)p;#+ul z#)1?V28Qz^4LKI1ubTvb4nF*#rO~D#wf*7^CnF&=v znS?yV^H5L3Xfi4?5uL@f{}8UHbLIrAT=;I1y%rYgjELD*>dEt*QC6lbTx7LLPnRfX zT390pOrJh(ky-V1JG6#&Cza`wXklq{!V+g@wVKMG@$3Fb?Ss`%tD6t0o4+JrSa>T> z9u+ggUs=x{SI>UqNxdN~K{=k3XHQwro>9f0RVCI$YM-}muT{6#QF?=ve%ZRcQQh98 zs%er3TdW7$)GaH{N2K;O>-J7{`wjIL0R$qoyLcddc!xkQyQ@Rxdq`wP60-M7tDlaT zdrPBd{X>#MQvd_{Y)ve#)u>u(qv|*H^(>oMROsv3HnF%tU(dy8(?->K`qoW0s(xEv zFR;l3S>uErEwssmM_=D&lZo%@>pN^RQDdVjhWBw)jS~hj!if_GrPj90m%R6cSFTYG z!S!2xH5P$LnV#aSCh_fdvmP47xjDGqoCI}(QWTx7zNU@gD>^n+{Dz7nrkL$7tB9Um z2yQxKzT%*XEAJ$3@>POi*=q8j3ue|U%v5Cq?Fu&sgl}d~sSa$=$@36oNP_e7Y#s7M zM=X(u1H;!}En%aH1(TQBQGyCkKuJ;DO!5QLwfwZ2^_9>@b)23|#~6O+64eBY;Xi0%&cANroeR|1?G_)nMvb1KVN{+B z191z;vAXqVTvx-sJP6c8_*;Sy#8U8k2-W7j;0lx6D(~%2>vwtaC3ELm`DT|n=B0SY z9ok}ea~ogx?|1o+#Js~5tg?D(=g^jJZ@xSrV@S+9s&g1o8z>-yl_(!sUxX{t>}rb# zS9_*ZJJNqN=FO(Y#@9*mW!IV4_Zc(?7eB>@Jn@jSI-gMqQHcJCd~bwuU|Ri~-+?*8*LW?o&_|96AY4`%{Uy36 zi~tD&`&~_9dI_Kqaj%uU&TOZWQMAP=v0?jc05!CUhXD>PGrnZyxTr%1I?oMUn&L|h zWw5!b;r3)J6k~tg(m6^N8E((g;z^iYbNa9e8VoZ&HiwZ-!WHyN7iDc9n(_9>4c$Ix z;HxP@m$o4P>h*oh5R25{Dx({)b`dfthK7>J(3LVHK@(&};5<0P!3&qNJTqj8#!92V z!IgB*95xZF<0pSZFg{=Pm~pZo=uZwPWRKY4r1HH<@1N4(d0xhWnR)x`!4MVEI zFpDjMhm<6UKosj=?jmAEN zas6a>p09w^OR+^eq5$UQlma-gtXU2hMwI^gGq5Dw(s?Szl8GXu33IT~v=%74Mslgn z=(ooDJvKD@K({6WkcDfg&*Rc?(fz7aftWFtYm&S6Yd`ssyq52|urm5SR@b~rOlEY9 z9m%ie5BchMHcBupVvgjK(K05RiJAr7+WuaJcY|7+GT;>s3CXXl8}gOR0k32Yd?mmu zGy#Gqk7@TS$sGgi$*q(Q*~(+Q62l&K-Hdc-KgNL;N+m(6iVZ}W#S8l5$R)3nDg<1Mb_p)p=Gxr}Ol=kwYyA}Q`|zX*&>Z~Bun_DN z6%N|Q9}&_D>Mwj*;g4EkUHJYCfXerwgMwLgVm6JB6MYm%Diw1s|N2wH^TrmV%dHB)4fT(uz~cTG@YTEmNh=0`J}y7M={ZrUj^`$Juje& zFW)YrxY^5>#UH56b6D$_?aF&5*D1a^gmNPsoObqlDdi2;@#IxG4J<<6rHwOCmO=y2 zZp$h+)@P3-);4Q8RT3%-5I3UmIc7{FUQ%PixY@rfolLogxZOzU&%P!PaFWr8*fjv; zBGrN_PPWMCe=AEDdvh@ApP>WHf=BiVdy81W#3CmO+!AF+=;8s$I=)4w2}S|Ay%ij* zkKkBU&Xy#MIG?3NmjDmF8i8{Hshjm4{jxv+=B|43YKLEdKz`{whc`pP$_1>>nxQtG zj;S+9-32y;h#J$YMidR0U1|0d*3s9bp1#$i;KXJ&OLaJh9!7bd)Z3h--sTVJZJi9$ z9aSv>Y}Hs!z>LNl+hQLR$rwW9Zei(IK9cB@b8udx;eVYRn7#Fc(n4~G14iAGr z4L+eLLnFLG;II!A|V^R3s{PI#Y3Pc**wME}+&U{6pQ)aJ1niHp~vwt~$0 z^BT9>K^Sk7V|(Kd{>%$Fl+}mWz^VhA)zQRgAUrHt3#K_5e;{#tjn&OT^Dt|PaP%(9 zlRdi2&MO^RJy`{vE#EtFM}^+7ec9;Nr;z`=rTBzBDVNo4kt24DV1?~0h%E;k5*iJa zhi_`Qib%Cb$x&kgkWh*Z&E8ys)_RH9L-!9?Mn6!VtJ&Dn%&>#4qPTdY#mpjKY77Kj zjSeefZUeor^ikCjyeTR*!j|b8O(xVoImLIv8b|nb1qm~&a{^3V*5S7rT7BoleC;4x zpn%#42<`m}YGNT7x&vsPSVwt5I2zlqFJN}0VW^pXg;JudZZxw5f)e{8Xdcufic}#m zP*|b6Ae`wz)!Jot#ZE?Mtjp3%p|RL;vgEyElgjoVnJ#Of%i$gVWPxuaznFNs{)X=Q zL4ieJD{KmYco0iS1T>;t0|<1Ql__V{g9>=>Lowp8QJV|Uem~+9m<@o?Y;0VBke6j^ z0R=v)V`9@}_PCO-?D3x6Qa}0k%p9KY*E%3dWKCD#DfL`biTFUMaen8CR-qIE!}&5$ zUlBb(0Zj)f1ZY>N6-&2QzzxH2=NcA`i<^#^g*Zj??&7WjMHeS-h!k_Zi5@Q@P@AnY5N2Wc3JNElF z+ulPonwYERN$WUrJ}$f>Z0Zen&o4T|dwLmR6dR-pU~joTM>n_2a0r2%6ydpMmlgCs z&{d2(O^dk^C-YbNY~r(-PZOVJK3g2oA3B9Wsded?iYUn=^%v{x)1Yha#P{cfYTHyO z%5DfU@w=Hrj6c0II9KJUZt4(};k9zS!cERs2)CWx=(eJ=;cV>Oj?JTcHl{+bt2q-0iA;oGy2Znr1EsWg+l+v+_4%z+JbuGdn7A2{FQ+Sw&Tu#JgLIS0m zyZLli2ckE14hN6%=ElA5WyMUhkwo#&)1i(A)pk0y;etCB8s_GC^4IRD< z5_HJr#n|Q0NbhCP3vK_s+1=gTo>}+Na<$m53heM-Mu}mOTvyn=_w=Uei7xMRM=eOr%l1M;W{oR+H+Rgp;0xz00vmZ;H=oCMYLbwDK6U2nAyES`bQvvZetZJ zT@0bS>}pzWTZ~kMxX2ZV7JK*{;?v9L3qFKiU*<7H7t*i9ohhEtazT1Q{^#k)$fv1` z{OJ?l=iV9WqTQBi2dmP8Rq4U1j9^t}2sv|AcBl%Z&s9Ld#JY=ZAUHc64gX5nHY<^F z-x}QkuL^448Z^toI0lG5L;0%Dv4!jB@PaK|KaJlp->ntVGvO6%Df^r`z7d|x*^;W$ z?3WIowkW1ev@g~{*pUW}302L+n=Dwhn8mhoEh|V+`Bwh9Zyp%IZ=7;aA16;1TMp`; zG|NMM(c6L`xC1O#PLgxOwbR1xxskMsiym?au)Nw2R{1wq#-jO<{tI^B~ zyJyL!*CsJsiyGeYp1H8QyE|p!&Ye3`7C!aVQ{-%kw>`R3aDEJJ$IMyc)LgSgqS(}5 z&50<|FyTE#=QSX1jh=^7X@Ur&WY%E_qWfp$&fycS!-w_MCm$#U=v*i(n%l2Hx(q=Z) z?<6TvI~)7DEPf$cVhYUJi*|{>DaM$yrWE3X7%J~BI?ZU<58)L>Z*yd$Sqfk)Bdbh; zb;quctTx3V@0$x{sj;3how0^JJLI0u2tws^lMo?1kHEL&5LJCu1kg24g|1X|*PD(n ztB}$H&#(u`l>AM50`*M)^}h#DVab5bVsRHoX1N{(|Ee7$;}_HAqP#d#obzaB9+^x9 zJxgC!C8p~ifhI09NgnF(0k;AmOw0u!tT=w$$0goH#jqUqOTrFB|6C-n&YrT>d!`tk z>}Rmaee;|waW5_>;v5VP2^#^ov7YFOc%E)qdNO{Y>G4DxVEU#y<9CNywhi6n79+7 z*?EG#zuhbW2T~?im3Rr}n|Qa(b8VQz?=Z9TsX?w%_ceYaxzwQP%(*kp;Jht(#R$W%M-o*bLpu_u!%=<`g1a?NbS1i=%=!a)ON9p zTf0t_Q-&Kpjgt3#EKGPgTT`}{zX~#xq~(b@EO7$c^@XREC*Fm&q?T`w2 ze=_%#;)EzC-E39bw5m6)=0_2;54}(ip?ab%s!+~;VN0Yl6G@UXJ^ZF@fYOzlbX5oc zcATzE*Uj}Ldh;+9dK?we>&OC3{oguIUry&zm$iDGc2IgZ6AqM3nob4frPK6Fh1N@1 zTq4Mg!|s~HYB3^jB}izW_&bxhZk4!=+wppE8bmNp&>~l5^lNll0(H+p7Ac(kxn?&J z(%Z?ml@cL<?)jaoQ>_Sdp1wr$lMb4$Aoz6z{pP-Ggu1zC{^L6K2aM_Kk zhVNj_1mRK59B-Q6-R1H)m0VB${nM`QEUKfje)FGHGsRi+yeAu(OZtE&W6ypWTXaZq zyg1MKx?57x;o+PIjdk@I+i8RMk=541zNVmIOzLY3FY>VS+XLaTT*Jc}D(QX&AmtW7 zUh*^W>MR17#ZUU{n~|=!k^u1RBQYeP11o#}H_`@T{$z;1-3fn_C1M~}80IAPJB*bp zsaI@gwa-}4{1WOK$wj!|ERoxp0DtY5U_L2{O2abY%BW*YWNpy~X4HSrkreOO0=0Wn zyk|oG`cvJqJY;d~HP&C1#sV4MI6~bSW=6HSOI?fXWmC*AYqt2!{GGikMHLy zjJ=-C+j<3&5r7@3Gdo23Wy=qaz(sspB(cauPx!N(;}Y7Gf+XC&2IYc8g6^0TXiDX* z*GKjXEL*jns%UmU0qB__!Dp_HcatIz4-V|qXMLPNHPVaPP5BH?7DiFpu2jJv#oA&hW#S= z-P`Eyo#Lw5Mhg#8kcg4p-cd8X!)DI(8T{@X-ePuVOB}&&_*lTx%_rW2FQ3+kyr}3A zS)RU<0Yiv*U8$Pe&&u$SJ3>xS8XI*tjK?M61&;>ZKm2Q{wP;}B5ekaP^oZ#d6^yWU zr7j1-%vETwv!G!b8T4Ty8=C;Ecly*hU?(j29FH6(-cZ&bZL>WtE_TiK$U$TGY)>{{ z@67ge@wJDz(0sio?D}5M9{KvvGgiLZ1Fd*)EoKVB1P7l~ zK2APqeA4-3klCV;!%MJ=95OFT=7`|Kcc}jo-z@lWjruP^5$M@{s<%Jp*J@58eEm$_ zxL+Tj9#j`=xcxkzwbLhZ=yI=|xPyyz^2k@u!HZkL%NUAqnfgG*oyLhf(D^;=^1sT@!&Q9l4OTrAta>987%C7ZF&bj9>HRE1z1)*0t^jti4mvedB< zW?8R#R_6jvPXsEGC}bQ^iY4rlKAxBpqEmkrCtl)(+ej!JcM$s5od@Zwq;x6)s7~oHj4?PdaiU~BS zqhE$4-xyer?3K+MUsae#$9KE7MSWE)@4-UwN!QzHLuzHZ8d!TVzo$~KcL2gT!9>%!c zT*e%b)MZ%%p-t;C31c1w?lWg+-p_V6Oi}8UHfJO%7jiV!mPQsT^q| zi3@cADepPV$G58k%gkuZcN#Tb5tdDtai2iEBFWA%YyS$Wl2XR{VstfxpNzP3;de_y z%E(H((Zq<7(cxjzNX`*BgG_OFCI1@=?fkc#?8EE=~Ws3Yq zg{mK>rHBJs`pdVar9#!xIZ}%7Ssqo;79b|p*3-JI>W_1XUWfH_jp?Adu|lFcNrqgF z1nilU^c+8|WPFIKk$21um?Z@K5n0PVxTMKdvm_r_+5WSTeFUp+wj@KOXwXdBEXf*k zB9PWKef{0zVM|<+Ypv(%u>;n#u@YtApb6AILo$KCwkL3?asK*SDze?p0yj&NdkV03 z1N#zlXSLJK1nkEaqPa5%%Luunri8do|8goysP=z56$QF%5~wfKBtpfb7FfOp=t1Kb z3j~dk;--icS5|ND--%Aw(8XgUPAz7cLqWJWB>4g`ieY(@=S}g$3e+Ui1=JP{Kl%$~ z-VIHM$twxX?hECGW~W6OqEuEY^h`v~G;#4coD)TezA#i}&3KesFi7_DSy}-t2v*(5 zav2sbFFCELzv&OfhxS7j$F=&86f8*(U*6X#nyDpe;ZzKPE>BbPl!i7hIgT_c3^OM& ze7|`khKsi`Y@w@bkkvHrOAVKtv@zt)ISW}>{YgSXvs?t!!l6MTs3BKdS;zF!fdRCf zj0Di~Ia0mOyR-q-^3_Z$M54qUMTApM;*&|-fG+7+YRVHKKU_XZ96?p6aQ8xlbL>y} zkIC+AiIPfA=;&7=t=+1l?&UQND2u`=kyR%NWe>L<-gV~4shsVcAii1@#Q`(l6)=lZ zSsaMHWkSV2&tF^S@ScX)!e4uHma(E88AQMNZGY{z$>A5E<$j41m)GcCAQBEq3LZ}h zaT*uoAVm^q@eSrABJgTKr3#Ftyl_yQoDU1Cm)0)MD#SaL^{a23fs~R>zLAqyJ`$|c zjZLlL<_E@a0RYD4QE&A+i65pzn-xN6?LhoJZ~$=xdQ{a3_Q1p-_f;%M1BYbc0pf+O zdQh!YP9F`kc@}3!3Rq-uc0}gEVoe5cA}75nFXt3hm1(Q~WEy_+7*(+-aU_bZFl<%J zg#D2yh$Z2Awa?m!c00Eiw)esZjEa1_|W=-IH8_^Z+?%5jU8DLMo_;K8A!$52?lc zHl`P{RjoQpI#6h@Eo0?p$56JHxudrxF~O3d06!wE3LY!GMjBEycVwZ_aG%^kCy8gY z)10M_@XGN7QdVyYc2|!#3#*OinxSgBilP-+c~Dd~jscs?_vS(URrk>EH! z*d@yX6fRDnaO+?cUiou{X@bJPkY|b*>aKi&Y6yGwvTVTU-9sWF3bs`O^)ux{GYKByWff{wa#sYzfT5OvNmyg2yro_o%Y* z4RT24MB58$<|J;eqdrEeL#POhG4G0>8{L@Pw-B zW0zcJqF(iIK)s*NR`trZ$-Zl>kg&vR6%<>mpvYbY#fepbRlq#9r6sXRTm`?y@zY zPZk&re~&9Tb(UU)9hO8d;ik2NGI4K=ja)>6a;Q#!3VB}{5l&i6V!RW(MeKH5l~|q_ z^ zHC&`?AR>0?iinh0I5tOi<@lSqR)O|!1eyvE?lfK#!Ir0Tcq<~%fo;4?8ys6i2DMes zX&;IXp`r+u`^_HfIO)O>q_!sw7#S-*04q?fYcWCKmc2+)@%2Ecs*`YY*-ebii(t>? zz#&mg-F*Xv1g|Nb?`!g;+t&FyEJ=ayMUfP=u@I3%UHHC^x=(grCI(vuOtp;qFi=ez z>}`KKs;pSM!&(}sp*-ftLPil$`sUk!Ka+w;aoLMiN`fmJ&3W-nYNC?KQ$1(~CV2&nWGFDs<0PEj3>Q4n>5iqu_oP#Wp?U)$?1BjFW z+39Yqk`6~V|4rc87Pw_6j1xg>C91xp9B4=KuEzU_Q1RLxFo1XG;wCGS_wMi>UM3r? zzJ1Y;WVmBwL%DM~S`*hi5r&~Kr7KtXr+HU0~6j4b+6A4W_ zII!k&+h5zkd1tuPks4`ul({dBH00I$>P0g2kuf99FCUBj<%QR6m-wO%r!5?cXp%M5r56z zMC_hbM0fB8W&6zz%8@~J3TA&RwgU`sKv{sAJ24PZ_GKCma6FOT>iO45%N(8=mBSUP zfNm96r#l`h`eVhgBM#o1Sc^|^k2pD4;b^pQk*-~*3HNVS>BZjmHk z3FOFkW%!B+#6S@YAt@eGV#i6wy$hjASNw?Qo(v&M&N1Zv8$^)C-6F&SJ!%rMsQF1U zmFU&Op2Mga8dd~i5z?61g2|Sc=GHeYJ<|&A&BoKE5PJ70+{!Z%4q@9`WV&kpr(Z0L zx|}uWEPz!mkJXR=Iz?cgqtd0QOdVLef)b#0j@ocs(VKTDJw=%LvTrTt7F343iusbu zTiDq}yTqOu8L9Ihk$a!wXJmEiqkM(mB|!5iepH7u$x4b&s@GVOcBrj0wa^$d`pPSV z&MShcm&e?Fz7NAyd7EYJS9+$GNeGanK9rKUr_xheR@d?Z1tgkj(!+^7ME{v&u{(GO zkG38&gpJ(#S3}rHI}G7@zW$RTD1(Z@qiFmIqgW`cJ_GsVu>e6ZL+wg;;|3Rdk4R{b?t)e)@vTd?ZmsP{f0Kg3+fcc8n9tZc!M)0+`lIf4MG zpdSa+=4iS+#l+C}6(yW#7vV$?Y{88mi0?o}^lvXIa_7m?@a0J)M=PCQ=ZWXk`0b_K zMiwd6`A)Fvz}$d6Kn1AjMu(PA#P^`wBer7xL^}d~zA`JtSbD*mQjItyjbkprZLHIX zB#LgA|0t&O>OL9`t-L!O`?B`SJkA^5-ZzZ(osXV7Ux$Q69}k5XrL1Hl2?bvwr!6Qt zvFYijJ?s*>cueI;lH1F38Ps%7=E9xKfl&QixqAcNFP>6Qrsv}Ltt*v7%q-7M+(kEQ z6}&(S%Ikkhe*JV+cKWgPrdsu?oj6`e*L?!6>4U0%hr7pC-DH(Lrpv#T;&hoz!10QI zVikr8sbQ6$s9>zvs@j4~8q8QajKh6uQ})Qt6B^BeruMYq>N3tMsrRl?^%Qu9S47{y z1QZ*4ao6YtmwFU^>lK*&`cKe$caO`V2u&|0fW5r{64GRfe`km_h+ic^NANm)jWkV8#=;r{#1ws=(zA1wJ@x^sfe?op|{Pv8I>Zp;zy7YA-};U3@qQAL`F4(m<|FImjLBW-F9P+f8S{TYyMykUHJSsU05yy9o&V>>@MWd1()tZp4Ejv z4(vi+ybIS^UC0yPi#OwQG0zxkE|#vc=E4;p_s!gr6?e>BTrFkguBMU}>?Wz=iMcp5 zLXj6(ixlr@F@1pniPxP;;YP_;M%cK5pu=7$fi9APS=*Wy_NdB9rZDiw+7eXxD~aE5Pr`vy<-LE7 zX;s!&1$$~Os*;vP0R7iXYxtXg{~)~n8?YD)k&*9I=#{LW^~`Kt01^yDCy zgIltCYb|fdmjC%5)Rr&4wHj(L&)w>L^ot}|T|zZ#hf#Id<2a>Wy~|;+27f0`rI^PE zES*ppHj3IV3nW(xNH!;f3C5}u?)}n{vc}PfJC7?9!#tp( zs19&>9JmNj;wi=iHkS>C%^R5mV8e>W>mKGI!Tj?bEA3G18kzP z6#^IW#V7|ZiJ{uhzta*QEPT)FSPm9z@ z`W;+;%qKcM%#ftd!78No_{WemZdb7CZHXdRCE*c?kx2mzxw`2e4m{BX8)afI+-0nL zO-JHD@_wq9;KaFvqwy&>yR@2pvbDw*$SANkYAQubZ+4-gClpQc$k^@dlhCKXRRh!R zb{sokH!plYe7JEd+p`?>@G79(h z?`%wZ$5rzdb8SZpQLSckL~uoyzjD;(v2)dVP2JtW)`+}t;`?IU<`cvfSDlAh-eF&# zO3E0m;zb4pebv{$ppc>QkQ@SSyS3ol zj0?0>z!m+nL0B8eaW|>8c!2QS%qfdoqU2z~hOA#C2(IW`ltm6J=V6WI+G#Zw8_xLhCodrzJF@LK1UfD zlSSR^+ZQjF5sN)u!#^0846?sT9Q3enJJhC6@){THH%_MO4BwM6@OBIk!R%}Buwk_n zUpfKz639po9&FaM10KTHf-M8z-KyS&m%}9n`?XkF%}$UKG)>cQ$I-@mKV#7QfkE%P zYF_h{i&wu!NW14t>ZFVLp7Pmr?gE@piZ8uTx%F8Y9FIa|UPbKkAI!l14e=T1p_4KL z65fIt2-hBE#?=%Qa=?@+&|AEH_r==y49H>YxHDjv|5-rsELaK(5be8u?#fwaHZ?S|GbX5vi9r^B~BGvGHJZ$I$i;CWiC?6J-qt*ahvKI3&M}&=p zl>ZhWswCe6`%;UE!{|!cjD>I==HJok=1<7v*sH!mwJmc0V0G4ZMXGZxG4ZvJ2pu?x zpC)a8RW0}eC_Qm`>Q_-$;Ffk$IEiFIx%_QNpN)B?mQ!~i*tQH9_Hy38PS?VcrlO;# z0cUpy9T)G@;f?NtZTo}nEkbO!fCgK%Uyz6C6~7>PEvq^I&J{;22%QS8EYnkH_oP`5lOX&bVyK!P16 zMRPQsxfez=>hh9ABs$VdKH5mbYF0Rc{WSgM)na~W8?29Nfaq~-gq>3YaRL)ZN7Xzl zOI2L)1<@j_Cf_Ug#y;M&4xlr96I1sJ!Fu^u{gYIINX-Oe;VVwB+x*CI7s zb~xw=UVgaI5lrnjiPNw%^)ljAtL_HqnLhRkibm>H*BGLpgC1XlKM@F?Vyy{4<|-`22;>9zO5#dCw6&?|HF0*a+3N^>VGGf9BvX z0(jBL!No#xn-s!{!>`o4kB3|Jg`k^(2yqdGj zB9#dH;$@Fw>j54^(@Phr6vHjWMH4dYeksfRng=0x|7bLi);HB=8k=zG&sK5hg5qj4 zpbHmxrmIf3CpGXO4S2vH;Ff$lz->+X6#v9{*F(|}8{jUE><67#3-2La5O{O>izAFF zgF51OwvyuxM3h6fRpw60D2eA$2%2HsD|vk45375mxaxQ^L9@VT?)6U8i(o(QYotW5 z2(6}P$I+5nWQ&-6nr!{So|VX}D*k*tIG^kep5xP?oJd2qCO!}8FL@h^#C%yaD1mfE zI2k06%&%Xzn2+%FXp8w6&wdq)p29F#`Jl5)(*>I(aL(vbyjbfNMUFS3Vi)^<6XOWk z8eRNzcMVkA_bIi#vipuEItzNa6Q24%XQ5T|xEl@;;Q?R(Oi)NOXABr)Gk|czF>Ln}yLPErgrFXF+ zTxB$zxHpY^jqV;XHx*Vo=>Qae?No}0F37GXZKRMb3lm8dmu1f!jY-GY8r2Z*wXW608ZMx{DxO8FB?v4;5a`9}Gkm7%sV1I2t zh7{s1#}4UiZCrJMtcF9)4sZ4Yo?&>Qhg;WVbee~nQ8vwA}YCMFaj@$83b>mS9~ zjTQaC7b1d~fVHF%(f<+p+%-Y>Go{z-iB&-SA-ts&B-fEPHnn7sYa;b7X*=e7rZj=F z2Puu_!(J*+9{ECM6{A`(7~BjoRkvFjM+vPs#ONbnwjs>jDa?sRe70pV08va{kL)Jzz|gUqfaP`t zzj;z2V9`UFm$FK{m*B*hc^$v-O>9r>DOK&Vr?jg*rCs|bwu9tsb(-vaYl*d|pwGg6 z`d4gW_MXzE_mqjWtN`meB)iIdE$-8Xb7kx(368PFe4m|UFP{(ieCUXF{npwl;vD4e z!5ri^ILK{r4sr{tL(_ZVMt*sRj1a+Ghn&HGsu)O4EGtE7tr$qX+GK}S3(Y>fbifGQ zptsCAdH~3+4fOUbA#@A#-yc4Pm(+szHfy@-%s4M;thgIU zNo(}|9nO8iO|pY?l}Z{G<@)fy;qc53?xV~)`*LSH}xWq}Y4rARM#*hFBSJwJ@GFPVJTcg4&i{6Ie zw&)r?PIP*u zmYt)9Z2YCf@gbzVTH;f26+j4S+rp|C_pTJ9p_yK&bD(l-Z<)BGD5xDxpX5PNQ2Uua z#BbYd%&3=hdQq?hlUSpE1-~V=XrN5AoFJ@y|wqe7|2$NmVNPmFy#xyh}uuT&$Hv5UE!iYu7q z_3ANuZ>tC&j{X=XRGT04abR{4m`;t%nc`(+z0TJoYxT%3O&*!nl+vNv?DuC-TSqPE2IIdLk3)T?U|{PjNQpyCOP5IXIv^>{7f}H+jV|9wp9*OEOBIkGdmV z?jlFXMm5Ny(K36=sh^#PK~lpnZiBkYskk6GS`Eq-pFXmtGJW0g>HBr^^yMohuf|f1 zz=zvtz5921ko{_qN9|Zt&X&ZS{Z$5I;p?$!9&CJll~U1Dkj+8ME28H-CP5N(K&m;B zjVdA)5kR6c+*)FVG5j79mES3O8HkprLWN3{x~qhlR6}KPQP1CQ5n3ghQD8&4F4BKt z?6uJ)*bR72wZNkhfESiwa&5r|D|e;yRDqix63(C&d(j?pmxmPKx@>H)wV^s*n1vB6 z6l~`>o&~G^j!^-}xdR+1`1(hS`8j8cgR$skj|z2AGbk!eOHU@J2u6{k^c2#s%IIi& z6h?zc-PBPjhcelEq?J*FUQ4tH9nLZNu#{BjQ;!Tyv=R`!oDD8?##k(6bJ ziJK0p8b+()(^b`fNUl1=t{QtAtA>ME1k1EbCAI;fs^mQ$99#7^tN1a!ep-s(#Flwp zyz2XpSM~BCt6p@xs!Q#v69Bp7cvX)Xvg#2@RSy8jKX0{qJuKeqecT!nAUmY&F|dBY zDt-(=9<-}Y0OSY9tNOb`Rz3T8Re!^-IsuTv<5hj)kX3(Ktp|xsgqrNl`xRTM*M%VA zUkD(`aV?=E>lSHAoABjrpiWydUoPb@AYxyUaRgJwy3 zdqq($x6ff%p7Ekhmi4XgoqMx7e4R{;gXS|qgo$P}E)b3jeWbfVcSmxMQ5wM&BRQ9zg>h&&4vD}B z%C_!8uoLa~j*j_gq+5lNg_I(1q*GGKmC7<7X(N!;9sWrIbU#+yFwxaxy=Z>pJrt2O zT{8!CO@K+x7zL(8_0a`Dj|PEV;^y1jY;ekN{8{aL6@z5U8 zw#Cu}lZa(&+&dq7kBWworjj-p5dsZL!A(rP8mWN){7=9~`mGRQ&tOC_>SwS&YnWX4 zfD+JH0MZu<9Y}IZMGLsY0YWszArm!YEUpgI-KiJ$i;f|*5x;+>Hf?t{b8=V4lrz1P zW_r(@In#S?Ae!ba2%tbaMRpb21vpY%B$AfwSm%f}shuO&I66;2ax-jAzfu>ZVG`Sq ze~%WybRSOyvl9_ayEL98f(eyx2)Q?YHMOz4UkqM14BsNc7)RK>26>Fc6;mmGvB7Ak z^90vB2RMQ=mSE)>jXQ~+M(T^C1$E}M*2OB;1>n`QCNWR-`jk9^L##cc{!Rt*UTe$y zfTN4d+6#OigV*`WYSC!;k|u53HX0-pLwxJI_HTOY^Qc4>iUutrJeJx)l+~uXRl%)+ z#-J9xxr+zPZuxc^LC`D^ihgX%uTIfqsj^HD5<~9wED$!6SLM zTXA+|NU|3^kw}>z*|P{4Shcl@VRsKx7pf0;P(u_J%u6%^v$*0lr9cXBc{RXYQs=srPI-H?E#t1Nzchv2hkL%k9(hV zn{7@^;YFFK`_h1@>0%uwut!ltY56)Dv6LO6f=XC}P?tPEpXabFNv%TZ4x-x~Sho_> z81)h0PnQoae3T#bPK-7-i1JZawr?JiEMZ6$gg3m z-$)+qX%2^PgjLVep9!#Y{#C#4R8_KZ*w8XoltRa3&JTLhglne{0y)wfu!$VhCL0Ga z+0dyZEKsI?q|iYM{(g-#IwVvtvikK+y6)kKOe{2Ub=cJ>C4%!Q;surLH9(#srD|*tBAsk1g1X*T zYk&2RJZ+zRtie#_L zTg3m7-U~ghxcP`>Oft}lWN%`ica_M@6!wcAY450-HKLOM+9DAUV25hgYU`26YS%Wd z0UJgnZ>V4BY@#I79HlOz*pZyQoPFi)bWBM6)5(&N`c`kyahY=4YxRA=n`#%d(HmP1 zsYXyKzQXUDD^d=toQ3O@6Y;}|$s5plCAL)Rg;eHDuuS90HMr9aL@n>7FewhD zUO?iXOxO1aUEibV`W}m}?-87{I_sbxx)TbK9wFs8-mF?$aRBoEEjV)UFK{_~Ng{wE_V zEURRlA?qT+fru9o_gLv15FCl65z3;WO^rm1W_CrdRFnaIPdmafvDiMUVv!nS60^g&WGMF*@)1eoz9rX{N!WC&@Xe(3 zc;3MV9d6yVPmC{h9evohLT5QzdPdD5)rPT|s7bZC&bDCw6qG8}f!dy#%RVL2^;N!) zkijWCRu#P;lBrWjh_Ue1kYhxh!UndhuKj%laTj!M3+x`1K{j5gQIvxOn#T;8-oLXd zc|`WzHP_o?n!=WmNNpiwD#^)NGGIGrkbJfI&zrP|*us(lTmw#Q^aDe&OC zP=#4-x7AOT?_n1RKv^hZyy72~3V4vI8VzfCIsin;**}bcWKXrb^WiG#4%_lxwAO-S zRb7d=Trrn-uAI@l6-1R40j*?p=xW}V$<1M>4@~ZW$&rMQ_MVcwNs#Wrxuqq|<><^k z=5{dOrHt7z8tjsEE2C;wGC5@1N%-;z{y4!Og%pymz(zZ4Pgj``?<8q|cGx{uRyoR~ z0-VYS%-$k7Ac&R}nou3O0F_ClvHl%j>cm|WV^?lBB`tPJ_0)bN(9Mrf?bzz6@Aypr zw9(L-?cDJ%8!drH#Qob?Urtu~53iYe)M$7{UDtA*7pg_RIeGk1BlL4_hRbOvXTP7H z&ZEQ-z~{_c6s{es>hYaNc?ySph1c@J`a{P0_r@Qb+P{1_@9^f;)uEB9%l&jw)!TpF zm%Q*B=mv3^owt#Q%1;%>Px~wk>SB(w%X#IlmhmG}LjQ^jh2YI{pL@KMMHe-E1 z^{Hy!p$CL&0wh<;5GV8YiW7k+gI#hPmwmo!(Iurv?um7tKL9RE&N0^47OJ6mGyKbA zDP9~sF^2IK)_hEC|JuUqjP)_qhJfKc#v}vFb25Sp7}{a!kc^HF_0bz+eGYAUuLcMJ z-FtcU)Gxf3EI9{`Q>4hls>iohJKrE?pRxY6x1xvv*1th8GeY@OL+1sJ!^XMV_ESzG ze^op26>@auhkX+~V{Y(_s}7xf0}Xi2ASijSn$(c+e#$>Vk_y=wcs&kZ=E5iV>r9vY z4^PFsV{%HP|F~OHs^sY8LauWL#lOiRpJ&tldX6?)f21Wk&nRPAEWU)YS4O5y@Nc&A zl~+>IzgaX#pw87?fQ-+urHesa-FB7Dr*;k6HmyJrn`6tDx^~ZYb8il~MLZvtjxt;mM49-xtP;Br~UADm=<#l0~2pw71%XVdODX2VOii=*-R{n#lTpRc$4y$L?w(~f+Gy$kIv&~(&*)2GxZv4>_)?AUP~Uo5jcT6oYN@w zhaccZDR84+xqj$6b*|~tOtw=Z?u>Pst>RVOQa?ckpRyswzi?}~E#&S9mBZ_I#d&>1 zWL?-beHV1*7b3C+`~na9u(-A)VC1bY&M9Oz<XXSXf70srAK*dRod95<*Wn{dFm-NAPNq>=CfPKa z{I1lB=*mAU2@64HzJZm{DfZ|+CyI^G(RwXq86)6$be7ZYGiQG5NuX8<->6yB&BbnAch` zuMUv^VwlcBOKRS_OXpx>(;8ZZX$*k z+el88;L((Nr9L%QTtw%TidTiD!7y7=CTNMz-vJw*BR6)EwP^l4CGo+}GrPh!4SNMo zHnF)^N)A8S>oqy@WY2*ms1B`~@U`bjFcY2smH<9ia|#vFOBdnmI-M%Ae3wWKSwqy2 zHL!+4a4)F_H{se91@heA~I=sW5vxE zHu?8u!a33b?0#DtA6V<(AH$<|%6q;u8y{%pV#+)ZIS?P%t9~vf2V$sOeqMX4H>1C4 z+KDwgrk&V1S-o0Vm-Om%F05B)sh{fAh4S;-h3eI8Ud^sa%|_{Ixl9&l!xI1|^64_k zUeIEGnG&6j-!6U?f!(b5IdfPDM*Ul|z`{)^Jp)IE8}(bbY-sYG7dSG^ckZU*>8UO& zqj=R(SrR!<7I=q2dL8>WP*7;_{x|rsPznl_z@lXm1yK!WH$~IOz>fcgE98rEHH=xbD46j6ih8@KN*$`H=9xMnPxPM@&Q~m8B^97e<;#A)D)C&5SuiF+ zYEpw0Cf>6gEjrFNjFglU9_0;gbXb{A?3cq2GibA;IqC|u8;hIHa<;V8=cyjao8N(c ziBPZgHvQ_Ch_bG~KFlJ|j`-T2D64)VdIP7nuuo1915Fr=6%ub=a;6A0WS3De+4l?C zjPn32W`ccV?wFS2%V1_4o!Qe0b?DIB!yXnbykv^^Vyq=$ zm=uv!sh+aYv;LiNmPP;I*OVzYv1}Ua^91gIUG^657(J!dRE5M4vbCVJ!n!`H3?s)7 zi$gIP_>d43#b1=Ae1r3R8P$QN?{&IfGMT1oVP#}*vsNICY_#t|HOi{3*u9T&k#TVh zt4Ae;hFe**Lr6uW-tm352;oYIkq|b=LWhaak?1doJEp?fTp0;|i*8ShrOOgi`#g5% zK6xsaalZf`spZDdl8|5CP4wQb-Fzd;cD1mDSlO=9Jc;yvNeN(ot- z#-7Kk{(Ew$sE>+9awR7!A>?|}WI%bvf`jVd@gZ+P1mF?IhPUXQsKa%zX-_4C7S+fL831*W<<)&2{_G_)>+sX5{eQo zrwIsF#VCq2{#fXZvo%PLsl1l79H)PB&QfQKBZt`djpe;TIqVcRmiMV2`ErVBaf(Dx zX!i^G8_nJ+4r9gr+yEi1pnly~USWmxQ*&ahSj1x+V**_hwB40Txf(Q& zD4ue+CgPF&BL6Fjr4(|+i410E1cQIY;w*p1Ma9DVr#prVMjok*esbuGSeVt#`+`W2 z6aU7d8eEf7ymu^o^sM;6Za`nzr&Xw`1l+C&95@~3w*9chgR{R^UOtu zB-&!I0hvy+|Dxd*OPpbyGbZQfrBxKgLUy(d~zYYUagWDCarsM0$nC(V4k$b)x5Y>&o~4 z{sbCvx5pv@;il`h3f`YfO4yl@h7Ji~qtYUF`|py&+d?T!79_}_-!;R3mjg8ZCum&C zeYAt{4B@H{CoDx9tAo@(7)gsXE;7l%>VO3zL?0#LuxHHItN5QBx#@Ho=1|O+5Wn86 zJI^rI`LB5ah>U6Y246B|A_x4^Av*gn$)QSu9Cz2^rW1{IA(Kuwu5z_K8)aMXj@&nu zz7-8$k{TRN5&LeBeF|KV1=)r$Xhs~^x=tJO<}Zk5O_R;$bGR_~7A zTBKSPLB5#rcclw%Ih)nct3$z`=o;Nw>R8d8E*aGRcfgpD=+;I5hqbqXkFvTF|K}~q zBpH|iqXtEZ5G;yqfk6!rB`6aD5*mz2po&<9Y>aKSFb`mtmx+_$yf{c(>)O^`-ELoW z+iuy`LR5rILPLU90c}eQwLz&&eAsO)6avP~?|bg^%w&St?*9M#`D8Nl+xIO`Qh+fGB6m8l9G?Q0xMQF6NL<3}YF1g^fj>%x^s z5Vi0{SIp7vTjmXUY;L!NjFo`!ORn0XE~pJ>z851lVmfpr&bEI;kY1 z%_C-;i_&c#kv6Z-#1k%Nr{A4A)U*Uqrt9Zp2=@)lruTotZ2GI|q*q8%!)3PW!%bhK ziZsG3FuU;g(NutDj^BIXPF$I8@wQZpYCevrr86#_`{`6J;6Ea>W`d*2>ol42m_T)tE<3e&y# z;nz(-{bM@m36e4Z^*Ar30ac;e`=6}mAj2~OHC0;w_-wK7GiPf&EeayWdkW>ePDsop z>CCKjrYG0Tyf~ei_?q!1yD%V_%13B2Ywl9{mHGJ`T>1L0QZzkQzN)HmWV*=rDH1DR zjW4Zq($`6%M%58a`^~!6lgdI1Z59`jDsO06++*gIU#v26(=W|4GN>(7eu?BYi0qWk zo-{ z4(^Qajcpby>5tVipAMvDUb7b01#2l#wFn@WWp?_HkDHV8v(%V2WoEaLoe5`AbgS7g z?&q5=emhl4!5JVLpiUQFo>}FWQiaW_Ye`jkcV?-1sZtqJmo9lvX2~lksUXJGJ({X( z*dRXK@;@2GuT!NmT1<^VWN>q=|3NW@%|AqPVW@%K4~<4S~TdCcsS>`ys^y4CP~0 z6^0LM6GTxXPc5c)UQ#7Q)=j^Cf9mb)R9-AIuQHWKj8F!+B{Og8P|f9^QQ2~hHeK!L z)T^IWd2(o%&O7~>+2JWF?`xTPzc=!v!{t*|wp>FuWP)i$>ecI2-jkWHR;2Q7PYgt6hSu4DJFiJ&QYt3ReRdv zXzjzWOUr7l;)_+azSV*uM*WPIbXD1B>jx9HoN%# z%^&OHM5Bv?Y?pj}k;=c$tYF`}>o2nJJ!bBE4_P4{8;+stTur)pA!qBPAH0|R44>(I z#K0!?r&JuJ%6FO5+%X#7ZbTP%mczJ)Jm{L*LFQ`@PwSRLAmX!%vMjK3rrIR?aW^R2 zUiQ5I8jy`Qt@ZZE@AF%&xgxe#chU+|asPUgKf!qhGoi(rd}Fbv`O4MAm6-XeSLV zXnk!=tIPA>}8|^QPkjrXpgB0m|hatr3NXk z_B74}ZlKAAtz~w#^*>pcIH9Z@#ZcgR3*GSN7`?EZnRk!HVzX$e=hUq%&2z@rLo-%N zZk`WB#A=T%ctN33Byz?x%e_PO2oK%)TCP#L%mQvM(u} znjC52ja{n61)GdT=i-yNtP%Ba?1fRXvjY6eic34@Zl3Q%BT;L+zfII$p_-4PHGA$q zsFY!Q?L;;@WZ!3hqjU2K;X|F9#mkgbFJFPyt)k!P^qu1)zHwhe(8kdl+xze52pQ4o zUR`4H7sX80_h-Zyc5mkX{spHICecMtH1xFRti7kRsdB?Pi(gP5dmVWjz+76F@P1K^ zOlfoXQwqO0!IfQ>z)NQE3OAG~1zdNFm8Zxe!u!PI345?7Cz!DKFRAdmv1HDv&|KS` zdfqmNo{i124S$xk_lL?yMdFb~jiDO4`A-2x)RwRp=LFxkXlSL5b(TMbH|E=I3;h4E zz+bq)k2*Bpsy|R_*Xjo2oSu_!(?4J8&_*~u3dC*Ld)r8IL~D*jzP^y?8*T5~(YJ?c z`g!B}z=l7oTFJZqdZyu>lEAql{|=Ign^F zFk`2Gi&g}V9+&=gg%%N*>(3Vdl1TY|kuCV#Nf!49j`q)tuetR6Nxi#KO=?|Y+p%-W zrD&Xrd1u;YdFQ!)e`axq;J{~%;_#D{CdfpQx>*GCwK zm*0=e=CQJHzzzTKB97kgP{h6CpM(T(l9aDqQJSTVIgNGsc_p)YxzJ2y_W>&Udr7I) zKf2WJADPjjO@A!1=pIqqT~+eAulUu{E&5oK*4{}}1ZcJKflXhr7{$syR?OCGRmJRo zyO_QA_nclS&7+)J$q=G7uf>`@qQ7RvX=9p7o}GBLW#gEPj%N4vpbBj&x#!(WEc&15 zus@H9vk`WIDwN)SWTgDwVt0ve(A}~{(l#!a11n-??+vuxCe(#HmA*r)QTyJy&VZ0H zTjGn$l+jRX@n)HnsiQ%r8g2bqz?M6c32d3Cnqe_q%!za)u#|;T?9@CVMZa}tWOGPx z#~E4lmB3Nw%r5`zjK1dzqaLT~9II%oLr92v)1tH6)s5c>=un^MZ&XB8hNO*&l;1Ph z6?#;}b2U1yC`8Jaqxxl1Ie=8_ey}Z6?lI%yXm*GL%h5eJ$DxMa8Cb?Zt&utQNG&>S z*vvtDd$8ZR(Ji!CQLL=q&4MMh9tzpoLv!q>%kRt43LG6R-*0?Rk+&GXl>LfcqjP?xS? zPa!8RP46V%NG9Vwx%us&Qv6GAxuP|11>dm;&e?@JzO^9!j?25h=^e`yl+o=b*!*Kt z)L0vBP$hJ@_u%1|s5{RjQ&h*@@;#`Ekc%}pMrv0E-m!;j&IHccw9%0#*E4t$cyhOV zM(BA)ik4eabH?3rsU)k{E3PdC2{-#e>0f_KkTHH}P7q>mJ<`j1R_-W_i1s zj`mQmmwPjd?h78Z2X-G(I`^#j(Hz|#Kg#h^?F0Fe+ZgP11drz6Yh=L!K$yQT*wd5W z6<)LsD^$+iBb9%i84`}_ek6_&gPkg3^=aZqp)Rp;#D__JLSwd> z`yh`TMCz9fi3Fs`l#;3r)kbn?*eM)aE`Wc;x!|$DMu#O*`H_D-)M(8W8HiywE6t%v z3Wy!tA{*xwwh)y-1c+8-++1Fr9a1-#Ig)YuJ{XERqb@bQc%n5;Q0nHkOv zwlKzKCj%Q!lKXA0QDFRM(J%*SNC3XN#DBU}?_-aOtR=`*eQBjec>c~{B=TEJ` zR3zG$xb%-ABf20cpAivaWMG$wH;CMvy6JXKi2}P`neor> zqEzWiQ>A!cl^S}V(pbQsZ1Oop1a0b2;;riZ7r}tKMC2E+E%O?9hLKZ#6|N=!f~r~1 zO8nEG2pitERL&41PYPDZiABO*t%OYfdbv^MukgVA7r)R-(Obh z@|Tv5@Rz{zrmMyps#$|W?Wx|>CLYXe^KhPOlgsEjdO~M)q7Syi&2HTE%YiKaY4k^j zWiCCYQNUuF=4en_?^QhuRSwYnEi`{K&Cf)R%8K|rdYRD&IU4v_AM~GQjJwY0gT9Yb z(@3SK(UN#Tb%GwKei)s&+U$g~@E8u1`@itN0m>T}>d@yiJJgwb9#9U$F-)MKPfo+- zV%4RB|8H>dK=D5YmpAd2md1zKMmI9xQmy)d)9~T*6Z^f)Pk~|lqMRMLw{H=A_8#`O zO@6h`@0dSdyPdQ@kT&^M|BdstxymA?TNX{MbZUuO%6<t9MEj=BIDHG zX!AwYW`WrzXDeb5Acvfpg*Xt9p{kZ?76Zk)X@_NdhOJ^@VwJ)qhz=L-{bL?z%bT&S z|CK~i!wJ>N2TtcTb;^@oq%tf!6G^tg9f1$0t=gqy=wOtPiN-l;hn z9ZNdAZ5@P4E_Os07CY-_nP(8#CGdNVoJSaj2$N)#Z0C%vX>IHUk5Eez3+lerXkUIN z>Fve^shA&Vhr*Tp;mQFykF6x~?=h?dqkAXE@qg*Ru7VAbCKlX8GqDRxZ zcCGG~SD|UCR*Nd!Eid!j;8|!Nk*czYDygpb8I>Vp`4jci$6MrDtF{CTMHSHTK(}c* zW$%nOTmL|}G2PGs&INLRr*a2$!jD`a_tz@7|8K%$4`qhKqfNbqBQakAook$Zr+-m} zzr4bKbA|tg3jftIRsQU0ZPU8-TjaEyP3VlW^by>s z(*G#`j`L3nW*6JXzsmMWjy1FS?&gqyNwB$h0M;Tuy5ExC8A#=%Is6=Ca)=-|4|O|+ ze)TPF8;zsT6S_m(1Dl4E^)o6@tU=zy`etZi}_liU486+~sL0sDNO`1_Yk zcyl7T#{H$iGR(Sku*HY{^|9eO8n?j<@lP!lki<+Y)a;E#ce{7&RjzNbOm^@1i@F2V zRtBq&e`~^<_V#!`;l&9+>N}C?A9r}R7#S3LyC=u}Gb^-*1?2pkR3Q+*vcg|b;m@nk z?tQTc%BkP^Vw;7pJ6^Ovq4df|yFT+pvHH?)k=F!`xE+0Mg@1g7|MCj|DD~>6UbLY9 z(Tf@j^bs#wP*ms_H%`)RjdPajt{3GxhMx7}Bh)IE*Y3cEf^2_o)6pc>UsEej5n@ZM z%b2I8qq7x=2(;BUN6h)qM7W!e@ZJKqy0XoeD5DqnA6(#Hw7~!A1@0EfRojv7V2^#m ztITjdhT47c9uEy9Ey;W=Ec$xIvM61OG80~vQUmdx(NfAjpx=1GT{O$g~SvR?VqwfBpy1~#R0&;^UVEhVAh|;1RD|3!HG2&w-*N~pL z|Dcc=d(ENf>ko9>?UhGnG)H7zYT4km)4u@AZ%n~@p!^V?y2L24Ru+R9MN}{*{BL|8 zEz+>cIHhPws$4J9Eah|wu-4!)Xo=h{qKcaDA{=OkmM*0M&zl+4NUra8PP=sBmx-;;ya9dk#thrEFOdS)f2%n5G1KYObO9H(bOyvCH4+3Pw$mxF!XuFPbQ>-n#G!X$a%Wh3Ev)sxc!~JIoslqx z{@RJK))&^^f=vq%forn#+N0AAX56Wm@%YS?>B64jqeEp1NugR8a5NqX3I2-OsVL2A z?R%rGzkt_91OF);cf(uwcSeH^mRkLO3EQan?uWR~60M1mo+KQ!R$t8&lu?y>jd!-2GwWJ@6hU>_aS4zr%bQNl@!vr~Y5&<0bOw(cd;7uaw6^{S9HZ z9r6#?sslO~nFn;N+D_>|m4B`BuU(k;1sU&tlks|b*AHjB?H^~n1;Tg>G8k`xFy4Y8 z0^n{L4SQmIg@hHK z{uggsnSOPnL+@?$=znS~(vP-^##XGGgd^7;JG~aqskDW_?zFMGimmfW}ulYsFywc1-K_X%n5&l z*yxAS6{LA9xh4nJUy9a%eQog`j1{|4tHGA@+b6s#%BHsX(L(*(>9^C(XL8q1X5N3J zd02Z!^MnQaUp0TqV89{^n|wb#u2Vy!Mi#z6Zid{!y>7Lv4d(48><%D;iP-KmLfXTbR^=)|fh9d^= zPO)y)*-v2IrxYQAbqgW-1lGNmY#~LTz`7+{Mm4l@FT}d>vZEN!V5ycu4W7B?gSVeIKC2JbAa^CpXJxGv;oBbNcRTLQZb;cUik&jS01I%8UE6LWBB zi}uzMkgL)n&DADu#qEXw3MH2TsOZi@amxosxB72raPfMosGYZk+r>fc0)$c+YG5zeZ@?WrAsx58g6%-r0sO^J3yUyUcO6h1M| z_^q~X7a6}t3U|qgc0idTuNGSaM`xeMB-9-{xlDD+&)qALiF!vt{}|0Di$&{YYuBY` z$3g*MgMDha()ptNWUJ;}lN)RcC<{twYTzwmVe73FtuP7sdG z#%l@2hay^;eBoS*DePtE6?|v5+IqpgDROEUS0JA~NV*7C4gSf1Q-O-@7I1P^a5$w6 zNdM5MYXfC^9{-DAb=rUj!VQUVo=>>V9g%<80{_hm{NomAjS!$00$>B(T7k-U}Lu?vC^1FGnVSkP&bmQ2sa48go z@c2J9tZ!J&+=+3R;A0jkq+WqZ#VIkxxtHUeALC1$G21)?`= z7HiDCzP>w{^2nBlKImn^#tnD|O4;$xV;K3|S6NL?X;Q)~Efc={tur6SYWi<)WP@WM zaDQy`SJcZ@OuXgxD*XAf7rU2uAJJtvBpMs+%t==EX-|7k(^#QuZ0p%iYU~^2{GGC0} z2g4w$Z!#OBv-?4YjLBPO4)INrX=)L4#hARab?JFa#P=A-{W;tf|01x8RrW8AZ9c#& z?(JAI5q7U|u>eBqmVIPh;xTNPhNd)Bm)J)Ykwd2sUv@a~uA?r{F(uI|l?o&tZa(bZ zEXN(}0YnP!i);yfD3^{-W#AcSpy;R7Y(&YVtJe?BhKXlw%TiDYQ^dV}7*rlo?#9zd z)+nKWU{6DL1)p*PT2 zdb}=H_^(ik#jHmA=kA?`Hp!3OunMh9+95{cz7lPqck${2fnzdu+qj zlQ@D^xJcemhG@@YuQ;h*^3{tfleT#g#LI67MzL3L8Kz1kDt#X&V-LwOtQci-C0V(R zNr8AVxgy8PWw{;+Kk43lFC7xY$}__Xo>qr_>V~M?wjp#1v3+Ox3f#eB9$Bhq@FZbe z7mdwzTA`eBF=jjQQ+!EoJK4L~`KXKkh4y%09bWjGe-G4Sm2WLhPLWA{Jtxa zoK*gWM&$7uCj@7T(fq<8xKxTC4!e(2g_94ox#WUx1GGc&W@kNk^z`mm`}t}0^2U}sj`kE|fI@v4}rfa$-pK8U-R%j+5olQ+n8q-Lx^ z9ZQV`Q1j*mI~})azeVkzx|7;;VkZMu=bha=RF6WYkrgIQ*hmgLtqP z&E?7~m#^)sjvB7^&m178j>f&+6_}`*zVlsjeOs5SoycVp)&00-mrzQ`@^Ka-{tHD5 z=l?QJvnCPT?13bs!X-+N6+p_}{Fda#+r1nIu?vmX6vbRksABEi?%f5W+`Apt=V z3Vt}r{n&A;w707`h4ta)5p#JvR@t*SR(XiYnEM0iu?yG=XlLzR|Fc2g@xX@TScGU4 zl%}~=ZM1H*>E0sDT$~C8R}$hc-J`v}6TqHLG^PSXXRu;TEH~$4zC%^06(oB1j%J@U zUX^&``>N3--c%}2XuraR)*-wkp``1lpZ4y_?XiL}2e{9kblqMbwlx;4!T_N^HrK+j zLTD;T%Qdhmd@ZgTnnU<+Qm?2b+PKUr#yA`pI1`V}5f>M!d7d&#rfpL1m)Wwpw>OQU z3dEWwp+gxpU5z3L&XI-)ehS@>jT!>^B5${s9pDLsB{kj}CJOPTC|ZM7eC%y8N66l0 z-(P>tWy}en!!b{^;I{f}Jm6GWk^^Ah3GG!?d1Z3e8|z;{;m8_@ZP*$8ErBL|V&yS8 zE~uasuzN%u1GzsT03}c>gaLo^T!m(;C;N)fSMT-h7kt1~6&-Rh0rJKX_YOy4ta86O z$;-btz-0iLi?^y^Csm0>Bw#lm>~PW}?G1px-@TiAo^gdGXAaeeb7H_KKyJ3a*G|4_WQq-2>+5Mw!p{3`^7^WkF(Jzfj8 z;ebax*i(nOa%8T?l!=eKBh0i=&k_ud`XHT8^A0SkZ&=Zt4w*uSNt#9u2^Pc&eGV1rxe!|9D{47GOk=2dqrI5 zoJ{jmmD6}-etTfUSPQvw)^qYl?v@Hf0ZxvK#KO(p5@PuHZ5!6(B6C!;K#4xXH$xG{ zK0dTx+RUN3TmBogkl{gUOb%J#jNF2QYvNXngZcM%r~(Vvz4*qVx)|pQU z1%ZKbufnzJkM8YXwX)u!()JB(ZMy5D>pyhF99!&d_2Hda0xT(EWJ_MQBny;?+U0GV zH!oS)0~f4(iUzf&C(BirkNQ6;kzcFJI;iEE7v%nYRvu-3{1*sr!*1klJYJ zy_G?1bL27 zpcL1_#^Mwg8fSpk$EWE^YkHb~Nr8}WoRVvb+(F~CJ7d;x_TjX~dzhXc8LeG-Kyj=z z9_5O_Bsp8IuJF&R@Xs=5=Ec;^v_(Ha@`+rcZoV)nTg^$iJ2ffA#-tq8KfTTIqLM-P z@k7a=aegQnw3P|1kABWkZ(Znniim`*gO>90WaTmKhr^+NFR)^{pe2t~_KT0}T$O+i zTr+sk05kHsz}^+BZ1tXA9vRhq(0`G8$K30ma&P}ViW1oF_3LFSw#!`zSptTZhj| z)5m7T?}X-UK=hIc$u{SsL*`@mq4VeCLNHg?#9XW1mNQ#GK2l))MtyYQtC{O06R4{o zRvC-q<_jzi@mBeNy*M_h(Tr7#gX63ehh1DNK4uXx1}wWud=?jc9_FZY2j6`Q&8^I5 z{@$vLMZ-TV{cgvC!?0mvd=hU zppNs;F*i32jiYa+HV`}OT$k|(3sGY zso^C{!%H3xKPA^>!%wLL{->T-wQUvs#ooX#_>Zh>35Q;k|65<-f2iuZaMiNTvT3$Z zl{dUqF6?)fO?P*eU2p3wyTKN&x<6d?rEt|(!c|(RYJR9{LAYu|c&p%9c&pe9gsUpU zRg1%0!}2>6|NHzW%2bEIr~_?~BN`Wz5=Znv@EvD<`+Bo!a>#nexWER2tO`Oc)RE9Eh{KK@m_L< zde(AyyoN`SO)Ff{&A*~}ZTL}vM&i-y#dWmYb_`=T=_?e=^}D=>_Yx(FY*q#@)h5<=NoH$;txlCvr>D zSNL9$2tJsBKc*D?%LEP{(MXK*CLyMG<3BL^`kU{x+)-TMzu3Lq8NI8xFg!gvXo)!O z=K^PQR@)ane3;H)5o>R}M;W^o{XwZ|qI%0ks&#LF$jg?Xi7TyTmiT*4 z{K~qo%IC)ESWDe*&#l&c_vQedWc0z65)9J=yJf@6y7dGJO*TTBs7|yUG3w_?1wTd@ z?Rb&L#u8poY2vUSnpgT!((W5T27m~noFnOvUb#z%+aDK6JpbvSES7>noPTW?>sZwh z^m%amH=s5eUyJ&R#7ok+q;ypLXN{G<&5&S>o^46KpFQQK|YX()B+-Z8+3^dLRY0^eEC4 zO)Pp@ATEhW2>v9##JhkS1sOYp2HacVQnW7dQNu#B!2Dqa2KK8ir@9G3aS+ETT}>gH2thC0 zxUsO<6iDW`S2Z}P5HTmreK19t`(~v2?lDusQ#0Ws+$&}@r>xHx0}e&v&6-ja{<(BL zsgyY%tLM{Po|^b*i=0$vu@&3nf$)d3QTr(O^Z#LJQGqR28B{0D4ppYBPId9UDd%_b zeX0ia)k=3YI+ivSCEL){Sgib*OHOz?oE~j8*|HqZZXg*%{+041DO*k1<^w0r4@UAt|WjoC691tb%cY$4UyTPhWPgQec zsv53^QR|zZ8D35NHL77>?>W$mZB19a*B(#UsI1s(>&_!QyKQ;i@9s|B`oX7R8Yuwm z0qPR2C5jR;LxvN$o9%FGY#E7Saxn264md> z=qKCURG3fMXiZXSC|xrATmAv*+?edx7mJ^2I#EX5#M^<_=6t@hMJ|w7qWfa6;9^TD z@c-T0*4eTrmHNxf)KjU{zhyk&C1c=A2FRC;9;QH*dwwk5MGHuqq|(+nsuK=zHw3o1|tW9a|e|wUUMyl-I5v1tjUm8OE<@ z&AQY3$NT!n-%=CumAIP^BhYsG9DG)w)~t&9szk_gC(W_`;xjTiO+AC_}VGGvv9`(!6Y>34r`OIN~Eqi$;u@fJ~3)a zV$C-h(0J@70mtIl&YJ`t$TNrc`s#2^MdEn^?_fk5c=;d=TN_@0 z%n9hU@riHl6FTRtN~a}GlcM1ICl2KGqQq(`(Q_uF#9OHnKT)>1#Ys8h^w9X+q*jvD z)+e=fs)G0NoJeXxYGQ_R3YGnHSrk)NRs4a6=VTBPScuQ?m{WrS@(n32@Rhr*q+&yY~8~t9eV# zi*~7o-OYz60&#Y4cUip$gT3}!-h5|4xW+Q8W(ggsSrV=EL?nmgc#n;o((n^m$C#;E zH4CM{!sv!Of-ADVXNldBbtIY>JnoJkFAUf8$t8(oU;Z26JThJj<5Xj`vg7Q_|1H8& zxW*N}G+MJhIFp{BiXIEm?FaS_xog zG|3Lgp9NfWdlJZ3mV_$r15kkt_d&~d0Hf%Jbu4C?P9t^_UovWz_4kLH{aAYY6V^ETNz@ez`F5nv7nN>_% zNq^RBfNN(ouZbgNt7XFL0>J1US%njRlmFY>$vzU>nI%Yu3D1f!>2#wrhX~KPfaF3nZp=Dg2+V*K|j{raxOxto=unc{(jG- zJJK!H#M`IL9&lO%?NB{f^<9eBR# zF2z)rF3IT9Z}0phfN1dd!7g@Gc!AFB*|${1cR`n#Tc=acCcy(iL zV{T?o|4c(^82UDq7< zk1>|k9ZBsvMTaR8P(&8$`G1R?bLhJQ?#GeSmC@5*5lKn)wEFM&^fwe?86|ztrFGHD z(pe!P2kuAy$^o|UR<0SKRCoiWLJgPLqrUaQ5=(6EE8mMcwcJ??Uuj-Fa*m!OKh|W; z4?Fd7%{BM=aRF;ArfxbFeZz>X>N>r@$afzY%o!H!`1z!732bJTZ=riL295-rfp6Ra z7jZvw77jG%n;Y@Xo$0&Py?H0{1d>?rmknkhMn4j(h_&fmgs6IA&1xrs5Wpp-Q))Ni zpJ?nLw#4Nu^Tfm?6^*b!<;F*50w-a418GB!iEA~?iaaHYnX@~RUmPT036 z$mSSt0!qNtZZOn71CVJEIWAR-y@orGM%hzR*}u^ovaHhB45T$S2Li9WOr?<4e9M{& z1djY@a|;d|IX8c6aV#bcE~X2Ko0T<90oxWlW4;CPR$U>(uO3sWVWl-Nf~|2!DP8*um+qhmw1p<)qSZC=Yug=Khc;_~sz-Ha>RPxxbgtErG{YX}Ja{;{=*nx_o| zv)dbOjRed1`D;q!gbBo)v{A&3r!i8Mz_#goNr82C$J()hbvE1DOUQJ}T`)5E^wMtdnylLI)vImB(y&#pnU7$VDy(17{0llR3d$Zd8SG;6F zaf(km|3xp^28~}zA8ub27u(q+s`ZqKd|>C4g}@x^-8=mrX+!Qr&^1*IhfoUtLG}U^ zUQB;&!*vEwft08-uH7v=>&!3_hQTk$X!kk8FIczXALeca^x?(8f%LpLj5X@y$c69% z)2($lLrc8;3KZ{gF>YfgC~kxQ5oT*(#jLW3Sv|J)k7 ztmH1M4cnD9`GIwLmbE!0OLEuRusf^B!hKm@q%2>CPec?odRs?`-KEi)JN?(wo2i{P zn|>WzHZE`$7>*1hbMkF-@Bm-vAVdQAW5CNi zCYHPlb;B76NH;9D^X4XdSQqZrt{&=x(;9KE%?^AuS7w!-1itFB_#wT67PP4Ut2WhC ziExoZ(>e`v=Sm2HM0r%Je}j47`)5{rJalQv6H_Eih~TVC;jA;Tjzuer2W(}zgmO|i z>YomZPU+0C>5~l=w+rMnzy*rh<`7z=kn%%VsxWl90S0`7uv|2k5zD4N_>x*g%GU=9 zbF)jt1GMsbw)BWSWx*QHw1Xv8d26#us&dw3|IDhZZn>meTwDS$vc8A4e2IZ~nQH@J zu>C?W*>V{|8@5>e>S+s4DG5O(gm=iD5fqfTCPc=?S&wmT z>Tgl$2vj=sgw^vogG#4NFB!)xW6)(DqIL6DJaVLr8eYD1ssFR7iPt7ZwZdpNR>c$l z`uKaVk0D^%)LJ?++M`6dFmPrla>oPxd!;-86epQ`wQh9;e}E0ZxjahHQN#o$GuGfwz-;G2tAZlAHb_SLr~{$|4f7 zy;de-sx>+)nvDxhZ+oz(#4EeKOXKfk3j=Nw2E3nmiDc(Yw3Kij`A#y2>M0cFg1#&Q zW5NyvUKUr8HVwJ<8?)8eg5n=!a(l2Xi@Edq#!ghVaX!dIt0Jm~poByqyqY84lP`rV z{WK|sl2cQnCDU4s@SPG|uH_#H_O#{izx}*&7x8K| zI~)`-Gbkm;kySOCqJ8Vlf%!uJ?Y#Ezt> zi8A?$p%J7@WW!j2HL~C#1gAA~BDdeazxUb$ploOq?)6q>1%+K*HCU#2<4Lijz|JuS)xLtXApvQ<4M%svc$6qa zI5})ycH9`vi=J&wf^ZZ1XPqJYtaorizxQl-W@?bNyDamRl>=J`1^k^qSC=rI7O`6{>M|oZ?i3Z7j5R#vUsaPq0uS+z8<3hrnJ)ZrI431OX~4+%5Cz zPeWmPeybA|wCUav6~czhNkq7O?Tha1QMsN*_?B%%YKR}bd?IpPPJUNl=gs#Dk<+HI zCv$HvyB`m)0=UEA5R>WTx%jE*Vq!}gaFSaJQ?5t<+TB0rP*I67#HAqF#|j=ehfT^1w78^2NV9%H25sPSC5W<5PYvE z*m;kaH17xDDY_$nAK^`>L|=y#2hLvM4n9V?*dn`E61=a6oxO6Wc4+p*yFsdN+Q!th z{oOgsPtDl@eLkWPYx9Fvi%eQy)1U=vy}B^^foxiUdZ!>4{p+KD)AY*?d!pfU*Ed>@ z(Z;fnyOoKI8Im<$yUN(RD49iqstXcF0*55t3F17Go)mX=mRSSJs^-j`dz25+Rqh>4 zCO*30^+ZvNdV=o^1oyd!7CX+p{o;8n5&Tu>OO`)}gfElerHp$jYgWY{%a3A-5tbF9 z<+*pbDi_kI&i=+#>E~DcsK>s~yH9voQdpi-wLh&b^|E%6Y8A};EHDUm7lobMl$SK6 zq}b)SHBG4M5*PmzTF#ZMJy-z*c3(@2#MM%+W3i>jy|Ied;8%`6kI05~tez(Xq*s1l zqez>w9;izkr6NW2O<6rH^lZi2fA^6&950IKV^IEQ{zG~Lk}p;z<9 zPnX~0@fUrZR%_CckAx$O7fF5(B!{m5E>HEq(2=koO;6v!k`3@1ZO+$L7Fx)~psQ;*=&(k*6Y8*TMv2&uBe7m)r>lx9;ACmI4} zR#Ryfqf5!{*GnR|qs_#1DshG+K9)|rPbG@vi~IRh$wee)D9sug(yUUXqsuvl1@jx$ z8L4R_7`sX@L}M1VDx3(OD3F8vOrwCEBgJU+6oI}Ku5=ivV$2x|HhcU``8^oqKAPztY3M4&3&s(9=8*n7_G3 zTZRAJpHr+haphkLKoHI%Olu{1#Wdc%&C@^uzO3kN-0p>QsbMZX5m^pnhaz=`Ejf{u$kk!P7Q zU`|V3etZOv0==}1J3g@65NyW;b{pR4J*wJoe2r?ij*_w>W(>{7)y#%52035qxJ{{ytJCo#2IVP%jKBZWDR`CLHtgo1DyvYS4TZagaS*cgAj=klhbJtD)#>DzSaR8J37 zFh5?E>N+E&%FjJ7Emx)H(>VNYcs4z{%V;w4_{~y*C}?xmu+z@b(WrELyVx0danWI* z#@F`1pMvk?MEBvdS`A#bVEh)FI!T+D?CbAGq~3L(1l#bd#TE1T z`2ykXEZ#^n;A4M1^2|?G}B@-qS?Mjq!0>y;L6 zqMqjNfJbc=-P#M_Gh@|JFb zb?#EZI<=7^ezbMY%f@=bB^!j#;Zyud5lm*|HoQ`yk#KrhmtSYg0U6Bz&;4c zXOaq_9Hcska=QLCDZLEupZvbUOcP>}zyP2DZl&YaWCtr<<8#Yt_$!86 z((o7>M&Q6CO`h`2Zn)C(^wS^E4PM++8h%txi}XtjpCmR-eDUx~|8ZrHv)jWfB0P~) zPiH314(&;fm>t5z&`e!PO|-=QbSd+%ESKP3v2T&5>AXRdA#-h!P{F%eF2iD{%nU^^b5BXiev$oaFi8j?c+w*edqOlOHqD7Fk zgw-PY;r$Q;UYNCSl_yrgM!*0BN#1yB1WOd$3Pb{7e*NQj+uG8-`xL!XR-#7#Kdp)u z8xQ4bFfO$ZLSze`Scu^shng&AAr*LF6q&+%u(j>RQ@LkObNlx2E)h1e_T&<`_3@uW z`PSH?ZXhg$50rly2d$Y5r=N4xn(u;o#+t%h?ieYz zO3G6T8A;hg%2Y`)PF+bkLCQE%gee)yF%tVo%pFD#8%a84d}*IW(aw{;oa$ zcO-o@^mAYWvfME;pyV)x-{l`NT6&9`p_g@uHPn)BKb_iY)Xm+4(#CO+zRyqCCjw)h zNQNgS_5`U4MkpYVo6}kraP$|8m*u<(?F2!(s^&-(rgmi3{?(|1k`#~k@GeEoajK?Y z$!yx_%>mVJ8*U7}9ZbVmi`VS0k^QFGEjmx9s04aU%}Opnl8pCcH60zdz7IVwrVb|( zqq&_s?Vyle-;t6hW&YMIAPN&+L{05Om#9QWN9Gh1k1Ng5awBty_=0zT*I@fhReaR} zeN60DtG9!B^d5@x)gNqg%43N<#uJW-mNu&;`fAfrzAWNR_ynCnX&gUlcpz5WcN|6? z39dYXER#<#5(9IIKBHNpA1}Fq>=Jrnvx-K=zxm2 zP4(^cqZ&lOCKp7T>sSFqWKw}~`t3xl;h77uVl8FH(hB(w;k^(IE>Y0LB7$}MEegfb z_7Ty|qFIh^5x$2=NYlkR7%oVwmxn96qFY3k43kL-GrE7C9Cj%9^LY@BI+Wj zo&*^F9-f{+Y~XRZxAIi08Zt_{Q>2Nu)BEa#u88lHs@+Ru2UVw0mDG?}sb2S?Nk7$y zAel22uQNDcNX@Hsjfhuf*VHdos2B$F?ltDS$}I5|z%pN!XA=?R{p|Gn>KB|kUBhvl zGZ~%Fmd*>Nh=$SZe71BRqm+0e*X+N*NBz#MBfWWchaSS5jJ0ag0 zZ+m~2xL3U|AUGD>1CK(EIi_IXJ0T$95xaLtR+g%QRc`(q0z^@|2U*_AW36&9Bg3E; znFG?ONR4DFD={%T4G;BesG8s5oyma4Xk#kJWgP~zZcEpbr|RJ(DPvHiok$HyF4BnXb11B^T2ZirPm7erorAem zCVL`RuwCW8Ai0%^OoUA!6r1amMOv8<^1v#Mt5sT=kfsw%LzT(es7;-{2%)Z5Z6)G~ zd~+~;=FbekB-Z0m$^dS@w=&Txr$(wyV~$AcGv+8U73b*Ste^`t#r!!0mg(twK-omA z5TA^CNE=p@~ z7Zc`gO$I{i3gQN{Kg2E$a5JE~@Ma+)iPG<|O7Uo zrmHH|kN)uHPKYvjlgR_|Xo?#jO`Y%29f`Gvz~z1}6w23ym zZCM9OEb3(&FiNV;sn9N?PFv&nCCfUbLYKFj+T2gXqw!_L0ipa*N3IR_=d8UAH`NWF zI-YDSUDDCGj?bhe9j$CkEgg+hc&g$vehF2TZkpsD-_qv4TxuPi?xw3TixPG|IqB{O z6IGPJ?LlrZu}*tmB9O>n8nc&lM3ZxA%fiRO$H~XVXEdKn_*}+E!N}WPg3*&!Oaz6B z3jdf2|7gCP#ATV;SfyWQc5j_NzOhulk}}1?L@6Ch6l65(!P7H_c}BAWM8jp9g5zit zj$45v8b|@7fRI)zUE0M|h<`MqHB3+qEdwmNheQq$*AX>>A>~o8K(ovMDbs^`DA=Ft zzl$K6{&~Uv%ly{|`^WjO*m!ZU|Ef)Bsrhpynh@!jHvLu_b1ma0yQx4=tWfjm(yuiO zzK)Ly{qmvwfseSC@wS<{kxaAGYLmehm7SBaU=-Z=&^C~)kFxL!me%9khKpqVX!!P{ zz^I?KZ_UNUZl3zs-%ade&r_e@Cxuv|=nYb zKUk9`_Kzn~rw7*cS^QsAS^^WGy;kL^09y$nSthgeYD!@!P~pez`i)HCr;V^m--1gw z+%ssp<--2bnRv2XTyilGXTtHXqRcDSFQE#D&h5ygUC-mc%`jXP8&fcSS%v@BbcO%^ z@d|xI75@BLqr!5Au0aa=>*Mc@n3x>LX81bn8;f&HkdVxN@m-QHJ})_E;--N#w36Z| zr$F?oc+GUToMcv)*GD_$^ot2u%)Nc_HWc#>uqSciL2g}pBFXi@=b#sfpW;%jQ54c9 zz-B6xz}-?GIMLrY%6oA6nKRz*mbNtnz#FKaF^x6k8yGcbR@bUOFTb1rMat`26;(?W z+>n4iI}=|%BL^^Jy=@%8`36)!f+xm`J2+zpYA6JcRdGi%X-WJWD8kEii8m|?S7hp2 z2S5j7*6Sw-_7vNJN*f3wn)}w1f-I6=Xr^=3fjmJR6KSya+-u^ApcEph>DS|BIn-g& z1X~ORbP8kY5-%pD-{NI#h0^(`UVSf}_&Hv?0Qy`GB!|#Pok+5coht|gLH^~x7_)to zLZ2HI`b<^mGg=e)mD|P4n-Rd;&)xb`x9PnBE^W`!mrn$~Y<-p9!LjMeaasgM#9rK|Eg2WBoJ> zQCV9}JDgVP&o>&XP1J$?oDrd|9FBM5T!OW6KlV#!8x!)sw5 zQKl8p`vbFCRW9;`Y|Dx#`it)cdmMW&0Xw&3qrO(-+A~ROxSWY4hlEuYb9uC8^gVlu?5=NUdla z+o(0>+5(-5+-1#5{PIH+x!ldyQ=vptF0*Fwk6T%*OwXN4q zVkp$b6TWlez1b3&;nVZ|#q<4_&nFgyKX<-%bLYI9t$GRnv-N5G&(W{rzeB&8|2Dmd zxDbJdZG=1R4D6*EYiB^}CPJI>Z0QVi%X47&59xl++DihPzJSAu&cHrWvpNH>s=}3# zh@9I6&N|nQihORW>Xa1Vw@&bPm!wY1NS&s;BcJnTB;e0W!X}48QeUdAMXId|1o8V% zt2KkSi*r^Lh$7lmA6}HV#-l=25bGVaXs;Zd@N;Bf(Tk$Kk_mne#kWt>z`4S8$w@n=O%k$ENhdMP2CP-1uyuuG-(qDr)s zx~O68OsV6Bzg5Q!y+lf!SH}$f7J2i=3%q%8s`Z)aOuK%ils&JGndt;vjg`Cfnha1y zI@%KAmtMM^D}#~*wiW5IzKhvsxr@h+)WCEOi!%}4H&I;!Cy{lUu@JUn{IC2N9*b1i zAWhBP?#&z%v&xQuhPXByWD)H_O@rRc@M<^+xQLajRv4<*&Hv4FaAgl^3DiSIncb?) z5qsS3I~1uLwEK42DwB~X3R_vN>~~w*+|5r@1X^eFo-U8R{pPzZ9sXM&s3}_vl!3lu zDTC?4NJvg7p;Y2`#&>Q)r=F{BNyq~sZep%@wDZlLT;D0`R`j#O4@Ug&D#JD^RoR>G z7%ol zLe?CMR_=s$;oOiN@61~`Lf&^Sb)z1ZAS(9~uKl>b85hNT= za*-MZr!%qYA2{>MW^@tM zVMBpcn;CrFHkALIk)JMqiF)=tXY-@YvC+URHgHEfAC=dwDf^Pei$PkS%di?&$MLp? zZD2-i;_+WgbDrQXIf1ii^HYa@mx}yI7?Xu(C}25HP3u~RXyWBBt0;=hrN>~I|Kh2pbMRWpUKzh&4=hfj+TGA zW44wZe77t3Dn2p|*BbZles+#>t)c2~iqID{xpE3hHD`WzS$E**9|3cu{ELBj3w;qA zMGlVLKaDr8_!j5%k*?sov&C`OPY*qCILo_Cq9-7P@}oNCvtq8%Y11q~d#E;XH*j70 zaw!4BsIf$D%*p0L_2A24&iyQHau`&`nO!>l0eTkjIa%Mu%E!^``nnXjW}Wwn378qY zA^Vdmsb4jgt}K@~7#_-_Y8&S}-?n;<7 z$KXK)=;LHv8@YQcU}P8Z6kob)cffcG@kKOT3W=%9cwc@U?zf{G`ei3ro481Iqu_a_ z$m8dZ@qm#$5MmMzspu6an_jiBr0BSr*Uu{r5-h1Uu@~PA6k?H52o3j8p*K~%W$BlG zM1>Nk;lrwQ(l%8DA7uHAgynY~3ukxHw$GL^X|)OKljo8zJGOn+1Bh_~<4W{>Q*f~m zM0n2XA0?-aJ+jjXZ@!Y1pqDmSQH~L_rPU(ewPt$aNvZ)copKOYU00jf%rmwsWmL@5 zI-WRmO&!CDiyfzlsdd`4+Qdr6w=_yLN7V=?r`2C4fv~~(^kE_ur~*rGdUmtbvg&s_ z?hjK1uT2%?e%vT`OPs}LW>%|R2z5=RNPSejz*N)++X!*lM*5hcbnYFJPC&V~YBDTj zL^l+MmI+P;R&p_~#R`psh%D4*xwp@=R+-iDj)bM-m0x{LhM$v>frDzvc!3O{+51#FMsyK!i!gbCA_w3D-R-fc^@cXb?dr?5pMoxxE`VPy(YL#jg8om}gcU6WEJ zja90ou`$_^6?zZjluf)(5lomBREzJ&@Up(dx9#Fvg~Rzm?C5Vn8N}BOe4**7M_P^d z5>@zBcS{Xx<9VU>{_#+hFVF>u*`=rio=^m=-=JzI6ji&Jbq*nFzwUF#yP@@;Fs8rbri6D52d=HK3S%Z|E^q z0d0Zhg~4}5#xV;@Vo#O7AHTEp!3`cq^!M5_MLdfXwcV|L2T~{qi8*=*%58AZrKn1@ zxgr$;b#}wXh^m5$leFyh&qdC`i4rd?HBs`AK1EggM`_EhJ*{dl)4zRw9j;Uz+WWvU zk*azGBV!<`-pqyop4Xe}GCH#N5n&p@t>uq?(&9P4KMupKsRN2F4f?4Kr19rZ#p+a}d7G8_%&d?I8+JvBZ1fwkaS5XL{$kZNG zV~1)Y$|1eYB`;KYObk)jkB*IWCADMwdpSd9v(?sP&+D>vv%f=}V2TTC6Mw?eD#D-& zPIrv)U(z6yzBcj3Z_eQW0K$_jSh{r8_R}3#h;Q0Hh%uhXanWLkLSkLMGjD3b~zC1-AOd|YI`%`xAnoJ zBkS|q>%FpdbR=@$Rf}bLs9Y{Hs=Kz>h6nsN5?!O@Uq-=Z{gdlryY9K#W|=WgVwP9q zpb-npUnyf2Pcmn@rWW0g-j!{;>rU?OX4HaBrc^;4K~;rS8>KA7{lx{fiHK1}bhA{B zUMHs_tbX1t)CR#i5)$z{vh^$2{LS2_jV!5gX(KxWs={R*qKp3vLo^bsRf#e{vUI6o z94`tLAYqcK6rrlF|9%2@hoan!_Ejekx#)6HaM0#%i7|_3uP^;9RWU&eCUE!0OQ zYPZlEs*|Nxo%r=8FuqTT{AcjHh?pcz8F>c+rkGTncoy#s6cRB>7^&)yQRv4M;w0*V z-Ft%V2(&ZW7kF6-`)0lW&Nc}jX+bsi<)TbB4X1JDA!;3EJgu6bgW}b9>C$1gbh*=2s_9Np*FO^pM<#{ZUlp-Y( zxp^_GJ{S8*`vJLKsJ0MX?UsP;8d;h&A3{fpFFq(7bU z^0L&++WU$RnFPB!aTj1@QZtH9Gm47*QKmgCUq${N{UP)P^|M~rR;sa}@v>D z#4&LmaWpAob>daEX7R^4_*{xIRwsUOAd@n_c-l93g`Wr>=;l-RS9c3VH1=h&>4nva zudT<2NqDoOh}}!m6tQkNMXXNTPr2}Bp@@*f;Y;G5SXt>Mf#&`^Vu^pe$C^&OfaC#f zTp!*1?F&|5m7Pk2d6vo}23jPhJZm3PPeHA+6S*YS7 zH-vqY{vT`a0v=^`E&R_d$%I@cVAQCnsU{WyTOep-2of+apfVDKB%(xVy-fpFnq+`h z0uv^|$xO$3TH9mK@mPC$Ikxqj(&|yHRuZC~s{YjN##7-s!-v)kCAUrA97GS5i)*cN&n}_D{-<w6?YE5&DIdDadp%6eY@JZoCByP%cp9ErFQd?l-Glw6H%Mo^CQ zm7n}N(736njo1yinB*8d_DDss*)cxWii7G%8}RpOU(~f0IW@0yO$S|@+t`d;>MP$K z(3>}a5Ys^sNp96vRq1sq1$;D8%Bu9$k}?^jF;ZYwZY2eSY)|7Cng7WlZ8_rGW4Jl; zG%kmx{DmFU`-%du$z8NlqPbFXotpk!N@j`1gy;{m!eQeChF+NJ_QIVztnbxgmUaUh9~S1t&sDxcnyEg$+~l}{g6*J1^lT<@k!zaxVe zB9s{Xg|x#~Haaghcti&b{sKy1I~*T8kP{qLg^hVJAomW}cFBb~(oy(rfsW|S8<3L~ zSriSFU-~5e!0;98E>{xw6G7XK;CJk5nVP*_s}pN9`1l{hE2u0~ORHJ0`GT=jG|qzwq9-8poW$Kg_0w2CB(he$rbE4}*VL97_yoOSnQ?%zr2UZ{q(Q{J)d` zD^2(R+I>$zD<2mN{c_lz)xpL2O-JW}P|D1&Z9ZllXtcNYToAqj3kvt@bLJ6ap$o_< z+NrDX9yG6Cv{P4wXYm?nTwQC%_W;p#Gdh(#ZIyn_R>gsF*3J>fbst;+%Rw399g}@k zwOTK6NPH9MC(*!?vwAI^y6ST}B~R$17oDUxAGBo*s;+FJMg7N3@!p(= z3%9_VQV7P44qAte4_QGTHDr%g}+|6v93@fjQQM|Ih)GJ5`=Erv^ zyxokeP<(W)MSoZ-zPMRii{pKngti!HGK?N0WYks%Dp$~F%pXvj=1&$rHZI4y3>&6p zt|PI1&ACEgHWS}SP$bUC#`;`JKLU-jxw#3HO<-!o%jUb$rZ>e(o6r+3-6$XoV;r2Ntjc%IzUvzz~~O)dUxQ#Xxk3KAI~ z(vEeA&rMi$1KU=ujDrOoyK@}o{eUd$Yp(J2j&Z28A^vr;ap0r)%1&*Q4-@JlpjtXf z*c@$>#91`ve4$a`mtyu$M5yMuLiC=Qp&o@OK9i{)g<1;FL$Ie(_p4E7v7_Z~=1E`z zILteSsdxQ!L>Uhhajsi2cgdOq6XtX~{$rPK#au3xR?J-UM6^DhAEPYH$zBiUE{Y^^VNHUGSSnPbj zvF&XIgK}ZiG_+T=2U=^2i-ea6XfwR8DAvv7z9pb_2Q!QP<#P`e9cXUDZFEsvu~;Ux zbTWBRW%W~^NgCkTCv5e%}~?gXepIRitWAd8}3rS zc4w?=+FCL9d75h36R2F>fN9R){d01p-#MMlYPVK3XQ^t-=RVKjv2wM+0nGJlcZh=K z+-Esn#$b`CWi(z3?RA!4`W;nE1~0LSo=tF3RI^f5v*R4q*y7dD87QkUOaj%%s>#|R z{6H&EZ#H;gZ3a(mz(Y9D-JM#Vf!D>I+G^>+!TVOXXsg}x0$M(rF@PRkbs){!@CDB+ zS%Nqw_l3b`O?cCIy8&%=x>g*{@;9pts`q#bDIHgh@WAnE1kpaHno?DbWQbQYV_Y@D zK*y^Q#QdCUW~gc;gHa96!I6_*2y}#)fr72VBWW{Q4VZ{?Xagqh>;E^hDG?H7Zw#CSi2~X3#`>eSodO?kT_-rocpYAvURmKPZSPU z|JMr=+bb6!FRl@iuMV5qCQJOl`8^H=awf`QOO%iY|3WUD11nZu-ka3BT?rB7{hR7N z)0HnQIqzRpwX*r=C;@^b-AWQi6$bYMcoYqI4 zLf`^Dqi+U>mZI1YPBR=?0!~aXllb32WlyUULvC@5c-9BK)wxf77|$`I?+AHRA4<?iOEcOR!O~{#Vj}ZWHlB z9Otj%A4d5=tWNJR%SS?3kg5AKnR<-UgbR&vXYtay@geUsANq_B`Jeefcwsuyes;Q( z(U`+-4CL<*l%QvS|Fl8Y?)_H|-QQXQoJk}l{;H3E?Hm6($SX*klz()52HUvT#<$`u z80a#=1-f8+^8=|fFh1ECR3YZX6y`LuyB-rSITRN zQ$gz^e(;I(-#sApLPL`3MO!0LuMmxM)N7nADE~;jUW2o0eMCfrq~D?Hg_5Kj2Px^X zEIO@BKhYq3+zbv<=Quu4bhfIJ1BG!0Xno{+MwMx*N=Qwjs}+enS}p}gB!iY4XVO|9 z`Jqwpjr(PcP@HsSLS}%kB9TqwZdTu^%1&;5~I#kQA?4wLRB%G?Fj zr|+A|9GfUCIa@+8pwY4U(PO7d!C z`xe=z}tP;ORv~`}wb;NaO(DA>WU;c9!54XG%jN_SQ^ENM6?wEsAdmWXdE{wB8m! zKa(;{Z=&_~xG07cU8Q8k=_DzCCIxG|Xnjtc0Fu})*`B))CN(blB=K35c!^3(K=WT! z;^mSk!b(t@oLggcK6j-`Pr$2IGS}xSp2x^}J1M~%(e<1X2ZtPxlSz?1D;W?|q~?VD zUr81J2(~qK7{-8tbFabT(}$K!lvK47P4~%hbmvNM+XUibt%DqIf?#_#4uDv#Ao0tx zOt@Q+ZojZPP7PuSzyB&U#Q64aiEpmV#Nhvp@8eOao^0s-?G-|>JWdFxdY#migifn@ ze_1djR{b0)#|2274oGrqlej~qaFJ?8Z9DWmV9L;Dj}r*Jmyryj6eD*`rc?Jv0W8IU zYLX1;cjJm2kk)HvtI8qQqVa<435`UkcE`A;zCEs-042E)f+q?=v&Rax)+kcHU|hMc zQI2*JVy7CWNM=#nG&YS@&~L{6>I9~-=7a<_TW9jjF*U?cto0}CZW8_}Y3}RZ?HvK` z!Iy>S@a(KRrpU*iNQ!P4l}kU7U;$YK-#vHJY#L+=AEvs&9-!N-=%g+^r7?$Cl! zbI4*2EwGt=H(#<~sr&Cf-<^E(`BtgFHT(^E?&7b*=Uc6kzN-FyO?|kBznF8}D?dKp zeJbq%BhAH6YRFS-ysa^Q*79TV`5xpaT!6qyC@sm>Y3T$33yRHI^^ALZq1gb4_dSRk4bMl!p<8mLhJLdsub2 zVZI=Y&yOttwQ08qHd?b6c_l=k-O<7wWYpU+A&QsV7NKZLrAQh3R=KAtKb*n&)7{OyJT z@p88VPlmbvvRfi;&y`I*gi+Ky^oDZypQ&%7d2#HAB(LK~r-xzzUa`D2yKN{uxA6oQ zfku;if`1_uV1j2D-SJjcYw{mb>QXjKq{F8T>*%aUNmYvKs3qu|WS}DDjo5wKNJu+l zs>APHg#TyErFMB9QP0wfUyC$Y{o07C(5GFZhgraQWFg6-MSkZQcyM%T_teVal`CiM zF0LHia6z&2j2lh#z1Y%B6T|aS`tRQ(Rk>&TwM!yx1HBe4TCCaY$>l`gsM%G%OXiCf ztDBH+-70O@k4{G{?HI(g4?K8@QKIf*PvaSr8!M8AoN-wfh7XLdi#E{-HMu7N!lt84 zv*%mOZ}RSr%nuWJ3s1xQZ#GV?81lvru9n?X_XPet?kwv+6zQ-Wp88J7+in{H5-wO6 zcq3LYh~M_#ddv1}rvi*N3320i zVFWjc%mb5FYF{6NeAJG?>_FJkE|WR(+v@~TY-p)+Lg`o8&yd%~41rr3PIZQ=5i?NN z!dvh$SbLpowduoXEmwzj{ZU8^dCu^?Ke*`T3Ri!$H}dRf!nW>kq$8+oe1HlwK^~Wsr!AjyVw;%0~~3mXV?7jWn^6s zmi;4mYa3*ZWOO0JsTA?u?y?*#D_iOg#PtScvbL8^)g~){Q)+4)+r)~M%t1RMB}P-o zxA`+A{%TJuF;uEbfD9B8!y327Vp>+=+D_qGd$s->a-vwN?WqBn5X@PKD7yDEAYv5%W5Odd2+A@F}-PF(w}A4d7$ zGCq{lMC!i5LUKJ}Brj8q5wG~QoZ7OL)3`Gpw1(z%HB5I^kioU{Gb7HYKw`Q}=cvg` zjCisy*Un%)9d_Sj*7ua&t?YCtp}8g-tsPHQOVt3+WPi;RYnKnJ^;~N=&=E)LI`-3&7*<7!wP;;Y(tuYRT}TXg z4hH$nUIF5Fq~5ovxA!()<+OOa(fT#2h%=wrkU1grv`h%I>9fu3{dXyvLq@?>YpkCN z`j5w6&sJP)H9yVvW6VXrbnPKt zD_o0X#lCM8I|n=sVER+pv*Hj9rJ8!h^iBa)`cz5j@ldte`8;lQ&m>O*s?O_U(;XYf z^_Bgb>c<9=a@HUKEz_mIn);cF5809`K2@BIN5R=@*<{PIX$R+hyiW1mYKE9u@Fo?W z0V}Vlf3^NSYLT@Pn;K)S$e?9%u4lvy-m+_q<{{IElUi(Ej$LtfmE~|XgdLWnb~c-b zUBB!FS^44%GH>+UTCGY}IiNtvbHm+H^`ily7P;wxr`qOxB>whB6=SShwGsH(9Cy@I1O zNM0xvTQ?Y#^;eG1_(~$<_hT6sn(baK)3R_Op`RTsT*q>_9Gx9SuG%t>m$C8B5GD!; z+-ml0nwf3#FI|fAbeE~0w-&3PLlx@h$nE@uG|r#f zP=y!5jf5_6sQq|q27gkp``B(3eNwg$*}$zK|Kg>7k8Gc8t!(3TV8&JKkY@}B#K-vn zNyay@r_o_EoY-TYff?ySvxI$IHMfU@$$*-ss;?-oN@tkc!nQMQXJC@b>ax7OWemkk zXanX9zqC>^QDh250-NT-X)P3Wc%znK!%T&Xxb!|+0q zgWM;1eF)MxED1!G*Q+VS4v4=2X^SmBqB%;I%(%+2^-5;KgHMtO8){>e6TYZYNv56K z0cE1qjZ{#0ndxuQj1J^NIp*ueb67(%7DLepkxKHRknVY+IE&mb8e`CtEkulWdzNXdr76>{HJF)Z+G#+7(p6I`6wvXVrJ%PqU)?NM_f0=rH%g2>d zw-3GW7~UF48$AnYpW$7Q7K9}NX`3>j!QjZQ|7^C{XNjLI17l&xg_+CpehAKsv{Ep!0T+295q6qAFBwR1 zx#uPQi`*ou7y}=RW?#OTzKYyN3EM?QP-P{xMpKW zD+Sl)^8W?`o6j=>prfZ9(yrzIb)_FNB!7Os2}`0OJYu+`pK0A$89FM zrfAi6YHyXPS&rBxtx`XyR`b*99CYI$=^<$J9l2o` z{f8_(O+vNSv!zTTiZ9a4!3`*`&kz^NS2xZGX_ZJYrue;!rdUkealzEiC^}$$gQ(Rl z)kW?LOS#UxQ&@DZveZp{T#I(!Z;~=I_e1c#c^uyDe=K z_DtC2uP$TL^*MpjEzJiSrg?@_-C3S?yUp%%0<LlKsmP~ZhJ&$hoo2+*js77etzr?qyNYTQ?#|6p-X=5pG)D_CCa z8rz(fTziAB{MzdzXo$8Yn3-dBmRsNSuUzVH75ZZh`BtTr`j({3Hq@^`j}q;nx@V%= zbgx!E+Z!U*b%8tJX%y|wE%fRgXqxxFa%kT;T|9tnLvebQso`S3bBm`JSLoIa4pLT& zKDEo#D+nmMp&{)76VcErA6gH$;C^7u0PM;h>l^+hS&K`YTN=`FjavCoU08%6E6tw9 zmF5Oq-8>){opoLQrDaGCrg?@^-N-(+*e~84zM9hhRavE!pUp^CGZL3)*c`r^?>Y6h zS-Wus(YR%z<6qk&9N$m+S6n;Kw<2XVzhB|kB|alkq~B)oInhfW(RS)XF9bc4IxEtBdO5)<6>l3E^aEZ1EoH~n43+akZjvxWC08f7HswT2ia?Xf@Dq?ORw0#XIsvk|_Cg zO1fC-szbPDheV1ySK0f+S?xzB%4pgCz$MbVX5Xl%3kpf_DkO5X&HOTS%_m0;l%ONYhbcF!!vAir$XZiSrKn< zxxR%u0`4gu?M`tY6493VwPhu#j;&Wg)goHuLQi8QjsmARw$`J0B(~nK%9f9?t75r+ z17)T01f2tHi_FW6k5{Q-6u=64Utg!>s!e?oDF`a}1??>ykTte-YEK%(=xKu({j7)4 zb!yKT#OPUr7;QI*(epx#I<*}_$U3!G2Ko7Qu6Ezcv&n zJm(v)1%#RilUx9iI|DoNA^fP-?>ysghw5lypR-SXKlEuwpflQE16mKRM!e$cM{%N& zkmfMWIt)K*#+%cKS?Faq3$n`;z6N}RHFZYxgkyjqLIaTk3i_4_~}n7V2*QimW$T)15SViYEJIdCK|IuQ`&I=aVcHn1vzP z6emtstKvOY#i#LAhh1~>s-t4(DR_^hQa#f^&*!g|Ne1oXb-hk1c~4ST|Jl4pQnsIx zjhi9h5Y-Mb+DV3@ZhR5NYulh|TZ$NnUE!!%7SS>3maHISX~uKjMoy2`XJO|2&OUJ< z!}=C?F$>i4v>V(u=YwdPV=G4Jte~N&_EuEu@iY#>fd3bZ>Z~<1JoTTfp<{d$UP1U} zgOKh6=&wOY70@B1j+U)7F;|B`8A8|(~x#bc!R-U;}AdniW3Mn zp8ORE4?obVy@I1I(Ek7PTEs)x|6hx*)%k?1x{%ffzkTGNue>8_srAKI-XG=RAgIq!P2k zyIyLl`Jg*&IV{3gPLi@@m`bzz0$GxEIkE;>A#chu=`@AW>%fzYvBz8@3(d`bp)tRE zt+GgiORjg};2}KONUU^>E!|Jfv2a`H)*-{ zG)$JIYOVXoGm=w3-S2#p#d*r_?Br)Kz8NRu&>%SEp6I(EoJB=(8Zd|@w4+%B%%5G( zAH>-I1yf?XtwZg$_N3i*Q0=k(z-~xAos`{H)@owivuKmoz3jH9)NVU=ni#*^##`P0 z#bk02Pkn(@njpkcrI_T%O0WNa*l^>;H&I;eeK9hT>)85zR#Tiz#Ise9?VP)9(pEcu zhmDuKgpwZ65Vb?U^8=a^lJOX{z^{eDcDaxUmon8it39_*QH&#;R-qUle|FdHy6T@$ zjO~1kQw-%VL-}UP@!x7z&ZK@U=-PZ3mGDSc!6~2fv~7kE^Cc21mGwbT?A_e#fczGp zb{>HT;hN4%V>7{Ie#Y&55wX2h1%S7T7a$SktY5?IoyXy65Y??rOv_$g%YF(8ABnn8 zSL+wkp+d22$7iV9KbG*Wb6{kZxquDWsnQaYF@aw7(t|w zUH8kFr(#C73^|s+%q;Q)d$sHFGV26RUtF8vDt?4MSae$dr0S!?#j+^q2BPBJZUP=DkBfwi<-QRc8i-EG-uAZODgdb#eL1IYFrJ| z=5)I8U6+#+z6fj_MfT;{G%GvDecs&YJgcceZn3i6sj$74-{M5e-)=Z$_4X+_8L{UY zbNq{z0Og{?OvswH^wyf5)*7Ao0kPqvrMUj0N5d&8_Cq>~r!F(NrJ4RWO#(x(Cq1ZvHnkj$|kEY$_JPh)7+23LoQ=xmOedCmfg4q;kuloPT&c zuNp`2R8fb}bJ zsxHUg`b&}2dWKT!&gZ|a7 zn?Jt{~8^$21pSaAphTA3S&d5T~59&=bDGpKd9h#tydItRl= z%uR8&vDR2|r-qrh&G($Q2y zUJ{F#EZsjtY6aatf-#kHD|iTOc%8C=nnOEbwNt8DdEkSCeieQft|~+8sfeYSNOQr5 zrx;oKz5vP$HhrLSHTF~|efl$>L}v(wK9+f>WM(yf0LqEn-Se$dQ=qdUh3*iOL!6=9 zY->L{Sr#uxECMs81omUw=ZNBX9^Vdx<+3#$0|OlyyKu=Mp?5^JQ}pBwO;4NB^u!y7 zdX=w6(8Q!J%%=-GIdjB^IGy)G)2L}QLpu^5;-%8@PFrli6XXqTrL!^(=1Vfh-Z!Pv ze#6x}Ik3bl{R`g;FJCYi&B|FI7Q6O%Y>W;$b$mQTiUQP^Uz%AW9Dc&hmjsNcL$|em8QWnxq@YxOn z1udA(BbNSaa0dU@Fqd-*yqu-GW*!9tqc*})%+*tw}w z$(&aPe=IWRrp}%G4c{U;94+U|ih(J=dudarh<=#UT-VQH)m72{4Yk9-LX5N zX4RgY*Pc-o=7hiK+9=JQ=UOX2nXc9Hlj2&D$hbviav?PP99+3^fNL}oBbJ}kBPjOT}VX5Yt|byG;@5x?p(58UtvGiLP(h~MD3FC~@p-Ea6lj^S{$h^!9pOx94+q|yC> z4+I5r!e3U^ecQE({)F??%Y(+W;qZ`#R;$UQ!0W1jTv2*9&NVk&DPJ21l%85aU?Ncx zsc@||#`Nzhr<%Tnv-!I43H~HyTWn-&P}wFMw}PTqmzcU;@u{QPTa9MNW{%}}*33;K zi&~Imzg(VUGk2amKa;LzD@~r8jpvc~d3G7kAM>m>3gfkhS4PMzG}0lYzE^V=-tGm2 zED!|7KoSiEnU!1>QQ=YpZsQQ0Ui?Va%1x%yS&5B)p-W(~kNff1_*Etu|0(w~f-|oQ z`~a)jeV%KE(Vq(PxN><8U&sfG`x4inQTQwJ;fV1(O;wa9#KwEyAPknc@jWGq4YEM# z&IB?Lfll4Z<#=AYgMpacmTukBW`i@QJxinwQycGxriPN68}e>;-v=XMMZn@)4vrD~ z@kK@+&WR@qo)R8@>9UF{D*x~I1cJF3&Bw}!+7YYOCs32$vF!1Ye_Iuq%vEDl{GCVg z99wTq%s|26eu0dSI~B~tF6pz7QcFX zF9Jv>c)@vAAi_Ri_kNIy+duD{X8kvO3%tSA-TvO~X75oPSL7e)@zo4-HQcH73De1V z)DDEgSEDYTcyYqjwPv^V;D?@L1jO7WFX;oenPy02<8TVjChF6@?fD0LG6usb%0qEU zWfUKv&VD2;?RjMfdwiAAbnO(bgQIv$)B411wY}~sC8^Ug+uzSEa-X6HP4Amb>r6c3 zn~Bg$vgwsoyG-SlbVh)iXS+U_Cl^BqY;%ioLmZMoh$fE_{W^+ege@uSAIYlrykQz- zgB!Nh{W^JbU-)VaH1AJZ}#Bk zrIC(MT0&=S;WD$YW&pqNdJX>FYUiW&P~loa8I@aKOd{e1L0Io=vzc&C5!O}@Ku9ln>RrIV#IH9qQ-$^(hLA4@|HS-3{(V_{#->h zLP5K};cZ#}H03Di*f7Ioqo8XF*p+;0l6?Oo^%x3f^4fKQz`FpEXt)TF_VjS*zuPXO7s*}i z+_qRKlc~(4zwlQj`LyddVigNpGDbDA)KaPyT>7t?A+tNe)Y4&DM6Z8e%`212l={0p z!#V3MzsvFO8VEnPc`EvLQ31QJ#*wUJs12Cq^krRtfuUz&z@Pc{O`Jb}u^XwtFrtHo zYavR*e$NVyp(R?h{!*!lOu_HW5USuem*&)`NA@DqsB!qrEDR7dr;ZTRcA0oLBf$XqQRjJ$IyYRMA??FM&I%&K?=V%;0J&ENB=`IZsdc9ORYUnRouGv*TQWc@|{UH(d>S=9d#_3tu1ab?pB zcAtdUeZ;|jS;cL&860bYTm|ILml0drt(85x|8H`})_TEcZAkunTHz{-XVBO3Rf&xJCCqXJ|jBg80zDmro6dfH)?eZ`|k6POywm#Fp_i_#8#jub?ZnuGoYGUzOut zwf^F+p{OJpll7FG{+8?iNur!Lw*`3xomUz^pBg{nz}po3;T`;-EhjHR8rK)XEKC== z8`y&fJ-?YVYG!HKdfRk-wX$%`I9|wf>)u`H)kt`WU9FXw>^*@>yXW^wRA%TL zRAxx1Om|?o=>uk$;}4F9B8#9h3&vBK?#LcrrJ^#J9*j|$Aw^||3@S79yUhdPsVMgj z@w4Ces8Wi5RBkdN?LOzH;InN$EL&WkUTN4HI`wfyd!WKdk1#CAbBtDO3feCJ46Qi+_Sj;AR=gK=3$2ii zxq!4}41N+J|ShsF_#WmFPhO%RHc z@zpeB;@N5hhtW=+lU96oc($bBammc^PBJ{1P=4gFV$h1sZ;p-drD`hUpq3j?6?Q-tFblfu?1>CO64kQJ`$)!{#3~{h`5abpSpT=yk?8h$ zQx_U*w~aMhI}a8)ut!)&uF}LFL(T&ZyI~)LNfWVP_7D(8eXKmwz@aB%7i9&xGCgCO zwcB6Gcq10g;j0|=SDx`zj$ks8CP%lNr8*kX+fZ^qtd5#c6Yy@o^GrxwDAs;#fZe1*z$9!hTzEi8fq+ zah!X8+~A%qrS|$%TC_xVM>hyvib6UZKCvtHQ~ZeS(wuV_V7C@ufOQ^ZvZ5q9})$ zj#_htujXU@`YvI0tGUv1=-2S9uw`Q$Tl5KpmjMSH6|V9`+Q3_&fZ%aie89=a8!?*F zn5hwN`J-Xk=#kf13;rX;Y|0JS~cp6c{!8mAyRdIU0ssW#vs=ecyBVrGO{ld|4{o#?8ovIEb|)`cHPx zt_a+NG6aQ;$VEV2yzXzQx;fZ6Ogl443}36%5ahIsDi!+k9w7-ON(ytSW~}5ne0O7Pm(P|3QpYp&KGJ zLP!B9iEz*^$9gP`t?Tdh^xC?6l{T4Sp-4!3DF3kE>G0!#&oEPzjV5ApI>aO=YM2;G z(x{2I#aKIxV7lmEGM8=TjLA8IxWTu0c3BxgPu=vxYXpn$hf0M&&!>rKe~_jyL0qkyul9<53WHW+UzdyyeyJo?s^cNe*4dSqKr~h za8Dv-9|Ey(8V?)x3zR$$YcQDKCqKe+GDokj8LSRIJT)XSq)?~Cx7;9Z0Eq{2u!nos zmia{ucc};y+{P5i*d)}EvIN23v@up9Kgw>u9`ji)Akn{I@Kt)M`j{j6$EAP5_>^Q5 z3gW;` zXsM|xRCbHay#=uPA61unyWMl+u$bb&Ld(CxZ1D`IG^BWjv(Wf@W#->#&ql>ndXT-V zSM+9i{t;BNSL_^RDNK|wcA3WXKTlft>#=*niYoU6{i}Z`>-R|3+t6w6^+}}!DOw2yyek&I!O#$@c6C#$cu*LAj$HyQ#SSLBLbpAy zPN&}ca!kRy93TdYAEtpDqvnRi;6NnRz=jd*3gm2>zR(;wFpw|0!N)QJ9=^S`Vfb+L~+!-hx8D`YvnnE&R zPpb3~>9y&opS(}+uuo)|MemTA^>w^0x%RcAd~>mANIxpw0s!h-`VlVe3YF;(2=3As@GoW9iYA)lR5TTpg(*)j)LcL`d^t5vmA zupLF}t^wPl@G_Au_a|&kD1tVBQ+U;CTp_xpnP_14wm_&|XL^b1;X!Y=e%pF%k&v*9+3x|9+mYd~QE_7vA@`1ZHnnHAMCCp*w!(KT6si&A*e!%1=smIhy~A$6^#L zo1c=0N*;c|L&+XTbC6$_-K+y38P*kO7a*r-KWYh1HV0PCaqJIcEimVA4PWO-b#l$& zbnDxJC8P>`OPrrH+-7Kf@8;xkcgp&!=nKw(*0iNqJBb|L502UO26Y#eSxQhk&MSAP z)V))iBHvIyN=ana+kPWs%8V>Zf&Fl_{6MBw9IhDNR+cTFb-23tu9WpCwZ~fs#R!e# z1^b%aslgR9sjIZeOh}xH&ZzU%QNUS{qRTCHiv&w=JG6 z6&Cl+vYq)SiZ;Quw=lhPeWuAcvV;X9W6NTj(WDF zD3QbZ1`!Hy>w3l;ny_Xd#duvDDTr?2qjP=bZ^~Knr3A5Y$w)-Nu+_s~(S-9oN;SU>)PfS>m zxGba^>A-GRsfi%=`E}JRa&8c6?9_MJ*nFlc0*iq$Hf-RmiV7q>vw`WVh)&$j+-B)%PVGab6k2|Dh zr2bLndy4BVp~n&CGrrAAo*G(*+RNj^LyEkK?-=$W_j#fQtac;o8^QAVE*xnPuHB8; z80xDCQEG!1lY5%$NvYeCGQMu}SlyRXH_>xMvvSz9!zcBwYIHYclr4 z8Q|eTHGVoI`<*p0Ov|d9U8-@nAGP2PQB*SwL%Y?K5I(57Ha{p~11j{DzZ#0VJfsJ; zr(>3m3rUji`SSgGUYH)>5ZsK9WET#m4RYg>owa$gY-VY3-a|w`Z8|~QeA5MpI>GUm0!vq?IGb_Si28d-|?@y^y!jA z4HtVxqC$Kh!j95bcOpE&`06Xa^y$ELr$aJL4U3E|*U}dFv(XKjlcr`Jwh(?r@tIV5 z5GNli&VRaOf5U~I;V71iSVakiVkhL2Z^`*jN3?H1&b|?}J)&5SED!@gdo@?Ow=*y5 zTZ^jw3Rllsb#UIIx5d;F9Ark`F9o#1f6Ap5zqBz_vNx3?84tddCJpthaIgAyZHQw$=DK(&&U1OQum)~ z^NR+G4%{7N_C3XB_tl%|oq?z}_?p<@HtO$xB1CBhI!!T4 zO>bYG5`w_f)UFOLT^C$figWOxpF>v`i4L#q1B)8idWwW%CfJ!lmQe!^MotBU2QsrA z-59Jl6P#3zg4odU&#s?7IV4BHmF+$DmC)(nlHZmVnF}T8;Y=7TK50?HvjxguT=$IG z-NEj|j-SrXpXcpJ6}iq6fkvGjFLa0BKG1H4^SON1+p^id?aT9arn5`l?0%2_1|l4w z@hBNu$4z^zhXZNmhU*CATa;RBXNR1b8erxeqSl>V)DB5VgQ}D*zRx0N#8Pg}{tIc3+U-dNRSuSZS^E6JjT(Wz9Mtj4B zu6;7Aiut(pRmq*{?TXfPunQo^$Xs)ve0dcJn}-A(XD@HUqg!_c{&w)VdQ5-fX>b=p zIQii5VCK9)-=OUu!DhRNA_!aH%)c8Wx4Z7Vi8Ck~ z@f=A(mR5UAF0w38R>WRkn^JV3D0&y?ciAI^8F^FK(1vWkGlw^N09%@I5FdV6nvc5w zMrYX;obj`3`Q5blnzWyj5Y2e|G6URr2y2_O|3i!|)*P7F-HSp+aLLWH0^Qigd5@W` z#B{I+bNw&?xxpn_r!Z4QIR7atcK~IS)BFzdKE(4d|3?r#kAfREM6%9I(b(%rCnl+} zOFr4uw}T$YU~+=mblC#0`>C)3>jI5}q_4pc7Q z-%B)CV^e~Un}9g{pa@wzJdK;!VJp~m%G`M3q~KcpqrVR!hzU5Cs6vt*denhbe@RLi z54CocEAJcPBWQ^l$KsZd!T9=}AHqW2R?oIGtmXtu)))dn2;oc%;y7(-cWr#f< z%RHL|tkrkFoWz%`)sKIy_>%CYXn0+OB@AG`$A5vfE27;K*?X&RMb@*NNI#5dUt?0g z7HoKAbRZRSyNB)3tF1D&%N356AM*~_@r&K5RT$7-;Wvpa<5M8m%`w@heNAOpMO>HI zbofpFu5JNaiSuiY=AC4e0-~QPZE;B9UfXzQpmL)qe@?8jzFBm*I=I4LTA>bPuKpM?UfX`$o_?|Zz2D2)%?n?$rfnkd zwi3#7W6^*r5JksR zAa3Avt6RiB0ucdha}y8V`$kO*p017?|`C8ze0>_%e^rB6%%01@b zl3Qk3yS$~}HMy@RvRPmkE3N48ZAe{jM05Dyal&l}x}eSnkGrOy7du0oKKO+vi(jJ! zeaA~`WKnHYx$EqA2Lcdm*lF!lImZSO`M5bD)-WdJzQ-B5260EHsIb!LPfQH zGE9T+wd$ox?^ie5Q*eNbGh>cbYi)JESLansB~B#T`e=tDu;I19roy!^k^U!@o@1OE z*J7mf8`=fa*Gl9-#2StlDz0NIuDDkIAdM(1x~(EOUql{Ip5lsSuE!Ep`BhbTU0Unc z*2-ycht#_MtAW${l#k&VHzjheHaeqBtT!Qn#ka{Ogcci8TeY=!2eh>Ufh+u}B^?cu zrMtKVwuaEVPn6GB<#WB-+Vq7>-EXKpCb3U9W(xFQ7Ln#o5re)e43N9PRhG+9>Bpec za>AL)4)xB9vfR~`$Y5A4b+5SZEO3?Ig6-hbNjbNV<$NQaGf#3(mpXrvlyloy&Yu}M zh2pcPuW8E*HrUtA!iKRUkh?9Q<;nSYTEHG?FWU7?wtJHLo#CEPwC8lY;^=1ybDmoF zCVL`lqy}<1*%V*{+1r}?XanJz>A2cxZ#pTW{hXqKj=he3>Kx76w1u&-(oCd5$3$1BVvO_;E!qnID!%rv+ z+9}BNlDE8czs(*yG4;@l64x?BPLU#=epv*~J7q$om>u~>pnbp2HrSKKPB^FAomu1@ z9B7~6Xuel=AZ-wFa5_&x?T|WGGlD8T-^^kWJ3oVSil4dZ9YNzvg53E&t)Bz;xum+T zZ-}2vBGUiwFn*IioFMA+hVRTO{UB*E#;;2MxK|JXv3Fh|PtMKv=_Zk6D&Mnx-TMBp zPrERv>FA25`D%_t-Tdo^iPMk2Cmfvk8>_q!y0SvX;#ULjDsgX4uS6m;V4SC5Y{)JY92btt=yOn;ekIn|Z$B@<-aoFd_mh?Y_Eud1JL>L1r!jo*xTY$U%oiET z=S}Hju~u?bD~HClVoGjha#AbEqCraLOeWPJEeQUNM+JcuN{x7OxKtr{>`vhJSW~}z zP6qV1aZUYzv;^>f`+*E-c9IYjL!#V3c6FdQ&>7f2hVvW+MC~F=@Dk{ht7u|0Q-XsI~^8A`IXEY``#&yODr zu1$1v%30l%iZ2}NsJzZJx~eD;x-9$gT6Q`-DPRIpHfRTos8H4*nKE%uc+% z#w+K`qPDvevar-b6VwmZCPiIf9o@n^% zWK$7GOzyO>IGo1*Ja*|cc{!JSRm9xx3qD+m_AOO%eh~8=NAqu>Cow4+m)IA?*eSh^ zCIXlku+<@kEwI)KW3G52m>V_iB7~RKsDD{CKSdov?DrVBd5qc8e$u`sIE!c5lf2mE6x6*PmSYShfB@c^;>5N3)z2V>gLn?p7k27~TXdM8%70GO&Ui;+7;M@tFt50@w4ngd*!d%J!K7VE}Y z=9^HYv3XS=BmXlTtxDYVU4+v&=u%vi5R>iwT%A<DtwN_{POSDHnI zV+?)dQpj~Ejv9eMy^@YnuxOyxs!*b;N{Mgv!eiW9xpCH5z+I7Ca|bu93*L=O9(6G? zU^O?a5n~d=n?W`v|1u$J=vNt&WUPnSwQhyWBW)_S@A!Ym;nsVOdyd!nnzSC?J!%j? zEZI8Jy&)u^eeSKWwa_{57PCWaC-Bq9jfWgsLR!BFc{pyJA#5x+6}I|y?C(*3dGV|; z{_G(khYFV03^V9jB4nj#n^|9D;aI>k0|$tw4w+NrvWHeAh4#U%&~M$kPd z@LmIY08uX8s5fHm2$nyxj-}^*J$^IS9MSr@#bSp>G`0@Ri36Xb$>U9ZN^*`TG;WO> zs)O2-AfBG_F8b6wR_UdmfB=mI4#BkjMn+ggvOeR4%%?of0Y8k45{d_uCG9wBAQEw| zMV*!N0XjkHqhS@8ZlBRvD5)Ir*2c&wtYfD4zCIIl#9oCO-JmJxK7{;ir>V`9N~|&O zRVEpc!>RI46r*+%~yP`KDB*K{2>o-`_J7<(x&BH*s=8LK_J$;gc#Q;B zf${P?`HDhOBHX z>=9`8tDR<#BsZRR*%sJR1^v4IHWV#Pdj5q|)akSKP10!?cPES=@FX;d`k??@jwklRzr7Bg1O{xiH{&;G+O2xh6X>-FASNVce zRnyg^76J^DMK&58N60kqRV@*?tq8>p*#+d0jT*npE`>jBnYRjtL)eftHq zi0+&DugK)Mm1AkZ04x&HBdWEnjbngK9aw}mo=bB&5!1!o3S!E_N*jfbqJ%MA3FV z50VDY=N(LKxJZz-Uu5B~f;?!ltx8|^j1sd@{UUD%xI_IfKt0WF7}$PS+l5B1Y24y0utMcAqiI zpF@U{C%WIU_3Pu-Oib&sx`@-lC=&}WlR02x#_pMQnEPPP`|UlJU}oAt`9x?*CYQ6G zmlme5_r8=9v=pMh@C-X%#rFs-NT%ojc@TRl1d_dCnZpcKLv(N;#>zD56=^ zw115IY?#0a3Vfrsy5{&+qL#8C9ea6FhxegP|!RP5+G6ocNr zR;oI9%66ltanw@xJw=B5m1e=9O;oYAt{H>n^1!Ns9Hs7B9oSSb*)=7$GQUe@g_o1h z+r_$!r*0-Su}IhQlEqyCWF@|C?;=UuDU`-)xk+k?Mtj5;P(JzM>DQ@z1#z9lTU_g6 z1@h!W&&yeUU_xw+SZW%nuGz7dPv2H`TBJ@3nd0fkNT+Qz8R|m(iI}J#Uja;qiO|pH zc_Gc>32D~!kY;NOX({j+sc9iCtUCX?k-vRp>`?Y1A?u#_1ZKzeEFHo)OY!@NFiY znbj83imnN1vvE{#ZAfclMC~N+@`SVwM)Vq=UuQ%ihSJG%7k%ALhxRbKy&-KMkAGxz zZ-lfr`O?jZ_UDJR13Vw3yKm9mKhgC+(UA5rUFe^J{TvdH!@3mpf<^pXPaRI+r`ZV3@&<@IDF*&h)?@ zGD*dVn!b>t!KrDP=1tyNqt$#`AK9wSp3|F;n>yzG9x+Ohzx8Kao??PaHI=<=U-IVE$5C_ZM8pbk>9b% zePT=J~4@Ixg9+;rj z`?Oc0ZvL&RofrRjf{)(UrYqeB(e+9UFE!X$%+#WManCP)RFb)z&>D(wztufc zx|SR7TJ%q!?RVni^rU{*((l@wv4SBA8gPZdEjiebg{g*nLh%n(Tb6=%jcIB$rYZ29 zm((V4H0`FF8g9R-LE|R}h^7_{X6A(}3r=TV7+$L0k7ZiIwu0lC*tV=AfuX1|8P$I| zR{a+}&UN|WFQ@_^W=;s_7KAf1!rAJ*KQo64PG(M|0`3WuyIez;;bLMQ_*(u0XveBI zw0=35aBxZRVt;;%?8(g89ui!|G3IQC@fGh{6^XQ8N}3|t2G967?}bqmzq3r4LWN6X zWt*g;I6wE0$`p;hImY6B)u=}iVDIa$_{|mPnLM#jsCG>;c&S`MZAw)!)+(1R3IBhR zvLcoNu|<`hMGDiA+vGguVa&)eSUWfZV{dzsLf&0w${1?tZm?wF3}>>*J^A!5lO2{IwdqZ{isucvi1B8T z>>iVm+55qnmi zq+oS5Y2w?>X-E7S=n!UDWT5$Ty6SP9V@K@+AAE?nGO+m)o+nY+r~73vEO}B@7oUiA z@iMw7l6b>%#Tb-GV7MshD#qv{9Vuaz{#WH61$S}E;NfLCEd?JQb+lx{&BWKPD-Mwb zbTTo!8)&%DjP*s9X+4W0k$x}fiQe6&dRJEXSF@=ni$D3o+8f|4PxWbr4dWA>zu{V&hn*Ww*>-yNT=s@VQg=L~3*3zyND zx2s}odR~7s2>{RWQus${hd)W}JWYBW08XQw#F)28nX!X(B7JRg#dk=iv4eC1;)_U! z!p7@9$!ns5t9UVXq{8btgS}L|S%fr`GumZmy3E)*8nQ|b#N8vB>(W)mjCPso__U9W z^za)=Bi+r*xv=mB(&N3kM|Ca%(X}y%y6=f+SdiS^4N~J5=xA0x9jy@J&QKtG_ei_O z<8mIMyvaCbe3-`vr$BDwx1vQasgSP5eUWVW}{qrf5hr2mxMTu~v0l*6Bh58z=( zO~DOjG&11YUREbP_e7%+x}%Fio|0OM8ihKn{Yhj+ax5RT)%{@%I*5p19@+W;2bvla zmRDIjgU|b9&-15>LM`{OuwWI-ZgY7q`7qiZw$_?G$FYE_6#2iercY0$b7F1>sL-rq zlyd)6t%sf+RnlKJ(f;vYp5+U1c)gANCbwN&eD||6Qd!-2ATyD~_mHtk%EDOVI#Om+P}cpJu6+ zZx^AobSwGOh3eB})hQc7$GiV&KZf@RmaFC;lNM<{`op-4yOymySyoc5ALkpSrPhj9 zI}<}-W)kSh1c=+gJkJ*5`f8&WZ~)=h7s*3h!zp6$iyTlm#0+zI8JX&6X$3|S=_N0& z?YM}j5P1jnf_VZT#|!1xj#dbt&HlxF;1EXurcDl%+0M!~I4;|A>6DfShRwjfpx^zB ze^HI4EfY1jwu)L?a)no`?&tN2I54<~GfW&#LyYf~vE*aDIsy3N zy&9KKOvYq4i{*QTd?^0Jy4C0YSwze8Dp_Y?}oFy*Z9z?anGVZM+!{FX>GFNv+^7-JX$`*!o6j75$xtsQyc1~&RilB z-Hd`V9DjLI}tz%5FA0qFXJ_ zXl#35h)``5D~$?zB=R|oK98!O z*A^HOLc{O}qNR4uTA(w~PFVT613d)MS4!hoBfv_orIKTCc-|i|1)EBpYXsQgwNr`7 zbWEjW29^xn7M1HOpaBRffhkz(Sf8fukw1KhT|Y&YXB`m1)iGYfxbrpKmw{UqE-ETA zADCdS;7I4I92pvt7f6_0)GX;}78XDmoq1yOZD<}`<+CS)@l0uL^2aM+_&SAzM!`7h z2JD(K$^$(qY8zU^ZAeMM)i4wXsvP~qW3ay;&B~q<9t|i_TRT+}EDu-*G_1Y{S%Cl! zj}9O{1w^{$+06($v%;HOCtY@Av^p`2XjKR1-N1wd%A{j^I{<#ol4>$7o$F`et#wB0 zylFAvR5@xY$gMOoH>s(jS$&eHqz{5U2(ZKJ$dssc1d0=|*r*B(M>z`ExTZym_{b-1 zRC?=JGBO!iQt&W3vZTBoMKo%0a*k#VQeLY6p zEAH=Bpv*lC&jgB{ql%r@;$mm);C|PaK}eHAF+nmNV`NqpU>b)Mz}Pucl?NwfbyvaY z0c^-X;*KKZ4i$l#XXiVZE=K~vQFPK6L-u0W*rcehHo@z{7bsl@-jTs14N3?tX0?cK z(*C2)P(2}l+)y5;WkLYj8J(eE>}w{n%?~^M?0I*{8Q1+aX|K^$U+3P)qoGs?*6A9Q z8mJt_$5}S4z*z}7u%(F%OOm!kp{BtpC4-8kiIgPqD2{aGKVi==mwlQL_!UzbV>h;D3eZU0N4G!7VlTs zbmIO8D@_6}fJnuZ9wF`ml&(bZq#?b|#IAvG15~BlwHMs8pZeEOrNnQfsh%EIT`9v2 zK{=$FAssa6@qVn0uANQj!z|K5e3#z5=IhT)AF0d>e8rV!cpZ+^*b-7u06S+ z<1kz>Csn~b#PaWP8!a^SR?~gc&ZA>vV_Qimuigtf0X>h~_w#zE4f}8Mno+6z8K&f5 z+8wgH7C#*yROpj{f~@)>;zO12M?k9q!chkEgPE*(MZKcKL^*4!e~_teWMSlz2}Sqr zEMm^CYcWIHzwzCb4wQ~xcBkm5+2p1 zi!(o~FbZf{SB>SB24Gt=@v&IfD90A6o~cp=n3eU&09(o6Z^LWJ(5aXfl`MC|@DTiR zxRJ_nIkrd9o6<^U4pK)h@ap{3_!%fJ&vHZMQ8$P+Af=n9=Bix9vV$>xtRC#<(KJTy zoKKAhHg=w#uR+fTN-5zUJQ>W>7D~0xA3+}MC7=74p5H(_7y3%US3rR}wl%}ZZ=l7I zXS*Wmembt8_a7Nr!;llR*krE4W|!Xkr(dnE%x;Nx6)-xSD%}?^&5uE^sk=ysXC8rm zOcfIWs=!Lc%Box7-hDgr)42?A+TvKkHbj&N3f`@3v1a*3+ov##tabjT&yRJD$7)uo zRABiRNeejAT(ifhCHh9B-boEUu;Tvc*38tR-$yhyaMZOZD=2LOB^=MaepjlvmB5Y^ z4fT0ODJeKnyNzb!{j=S4h-K*`S$9xlVEC_K2{Qhsckia#e!c5%up{))1+_z;)Y@z| z&@el&-;t3*GkbQuu-h-TCwHiQ=<+?sZ9BeguK`Y zDG;u~9fZ4eK3%w0SBo8Fhm}jzzVhQNO;6Epti{uW z(noiPJ6-Lq0+b@$9mvTD{W7&Pu2yL|YE?w!proiJJ~|XaIgavVruOfID2OMVV{|fRKURjfo^r3cu?GH?2xyx z3uXxh!r;5;bF!WA@yhsY>YeQOg@iiO0)0)NaWAP&wd1gqKo8fjrn#P@y+QyNY9ZL& zTuW>5xidxJ+xcgT2Jj$_qzV(o;sMbLMg}|Nc<6sky+PbBm14KuiS7n{^myq&r0nYU}xW zRzWctrO1ez+~v$$VG#F_ZB9M8g(0sw0_?lsxk-3|KN$<*uCYySVsZ<~>^at-xL;sf zM%Em?@E1;ceGh=6LPvou^zCSreiYW?E!Fs}rRfta`Lvy)9TV7Gl;&HBJWZcXo{qv* zVOlXx=p6RTrtMNwCYwKOL11$Xt6HCuC(> zAUPG%#|R|d%T0ylE%>(=_9n36lmwn zY!tyOXMf@+LMofIW}38C*p&6 z&0rQWI(s1|(&xvxenMh@tv2Vc0&k^uxmT;k0WY;niZ=7f{tmpSU=gGOy`Z*Hd=d0h zP(pOmDsN0t+|JZtRo;?eF5xDJA@m5|*Lq5fVVZ_3Wlvj9xSB}rv|=00v4gG=*ZE)R)8^P=z+u{ z*t^2{+hNwCzDIg0(0^-X`FjhK&0>k0j@EG;xkk^Nr3sDgJVDe1^i;Jsb8a&u!PTN5oewrQt%qRe|06@73W5BcL zZGMXouNOD_S+d9JYm~V81(s|Lc1oN7!y*nL!fC`MG+uwt&M-^!GEB=lYmNKG&3E3Y z)-fMLj_{Y@d-CQf_)_ufO!KolNwdqWs>nWKN;l}7aiC!JT%&`Nh7*gJokKH}=yG=- zCS{A+lCAbnC})Ao^pe4On|rq>p2+<|ZWa)LB?jk>m2En`a$D_%kbAcen7V459-S$c zmJM!{9AQu3mwACT#_Uj$)V`QmNc5b7VYUIbTGK8ORl$p{9wxK(HnTD zIop){(zR$5Y8NC0LqMkx)vl%fK95efth-j+l8}dJev7%_=LVgYemeDATBY=co|0FU zW`~rAKIz3S&G?em!Wd7t*# zjZduLz`yf065v)Ueih+<4dFHQ)2hWjhtE2L-25x;`$2q*Tp~y;=2^+;87dnJ|39s@ z;F8K}1pe=>HTn_)|M%AFQR^3Ot%K@kxV84EpW)W}8$K^?t!Gt)aBER>pe@6#<-uok zYpuZd4_b@8mdyl1famnx@pRhjSlUTduaqaj?kEin2!Y5k`u8N~YcgI&5~XSa!`=`C z@9v#Wbe6u#RqfeH%nNo)Jv;rNWOf#Xwv_>~wW&~-SVaQp@5>eC-N8_~a@k9?E~kdJ zRUjTyF9t83gK@YG(Iskle&AtmdGbMIflECdJ(N0yW#-&c|3A|)YEwqZyR3_m8rDkT z;?&Z#kjgSwUtkR2ZV;n7Rk_)Km?Q1JWmrGy$wixQDnj@v#Lrr&I^r?;TFf2D9>0T^ z^`&P{g2xN4qsCt5WUm5IqK9UX9Sb`Aj$FVm_q{#PW3nd(2=<*8CczzKL$4F_Y-1^O z%JdWxXINLbWN|GKA?q3<`>X#8+24oB zlD!TTB8n`eM-j4DgRBhm(RJ5G0pkILt5d1uFf_%f4do_1^*O7SUEm)ANfsuDFTN6% zK_=Dm7Oj?pR7Y0bODcN;lv!nO`9Z00$cdB+okCMa?8vZyiXZ)LMk+X9rPg*I>#e&2 z$cX7gquT?=U^L--OG{@td_^fGNXl}yOC>$_#17e4t(8x}H_CVejr1NAG%CN6aIq%; zpjbFeMT+&^^f2vsPGPNfT~zELiiKv9?3+8(BEN`k5$yM(@Qg9EJg(D z+%m1ETIWvqkiCh^>p6k1*@r@RP>uN!osiw*|NSMixDx5X@Yp^BDkGr~*W<>`8LzMJl$+Q8 z2#p9CY51oA><~9r6V5Lpp7@|5$m9j1KzV@i031Uu^5lIE|+H2Hgz}?&jbo!redx> zHh5XS(Uov!S}h*y;@jljNqagRnYUt};BNi;Dk_G}#k7#ZW6RRC6DZ1;w;=HHJk^ zkBTZ%qd=Fp;Ym6s8y6LOLpb4B7G;Zyx-1-Z4T~y@iaI?-E6F&1gA;0_o^iZr+T2@{h0r z`z2F&7D)Y&6~Mt{edoy&7|_a%K#*1N4nQ`JQF(P{{>V`NG*3es znv)t<^k97xSlT$Yje>0OM=D~wq$2B(vTUtCDo#GH>S^*frx))WZ!9HbQLBh{y8K z%F!)a3FSW0&?~Vn^%qRF=nyTHqzU?(z0hp*r0cX}`y~<__pStzqv>7oZB1qx{kpwc zz(8IiV6%|jcjEd8>KA6Hiyqrb!c4pY>%&LK)$~e2>Q!DsfUa%fd8p2)UTP!yzjN6} z0IIG1OCfa8>5SxG3RW*|wfKdNCEoUH@|J~HQnp$HLh&pFEh9^!s{qx3?A5HEMo}nY z(GX+rRi#gDO*yksTz!~lr+@_1XsyWh7swXP$_j(`5OjkM=omoB?TT$Bi@@s$Eh07? zv5G}NM5{&oD~A;y1uYifAByUBO(e1lk&Il7Xj>(hn9JmnfijUyi-K?B_Rn` zUXUryJX(nssF_j=!ZMNVAz{!(RV|!bZp=37FMF`1FIW*SO%|o*++n>W(S0XQ%_O3`>+DYOAAt4B7 z*QvPNErI{(q?Hg~a!Kmsqj|;Vhm{07ny|lI+53bxJ9=?hQLemnC9Z>d$!=3!vRXR^ z-f{~K(9APX?{mRcG)-ul9c|Myp+L`tl3bTZ0h=MS2 zlMAUrY@`Aca*7CM1~8#P$TyRjI!31TCTi}N{hA_b%6Kb&od zIw+P5%tzJig75d(`>AZ3O6g(GL2_piO**|D>2@M8CGj-v;ErW zZb&qxt@I&+bIS zKq*t3>}EFE!EY!&7Vyi9DGCm(9j0JB{u*$RKgR(&j1k~37y(xPAx283f*{oQ+4U7QMU<8OBnz}pG=rAKdT!K27z=59%C$&=|$2u&=k+{Zi9GC3mg%Gi+S7cq7-o!G7ZS=Zn|QBp66cRxfglvk39Dh&;5z#Ugo)1c<#S>?$12; z7oPho9vQcBuR$U7b!fZ&4bPh2z_sU_u!^{i=URAfJJ0Rlxwm+3Cte5h+}k|2o99}2 z&d+lJJUhqZhrPIJ+{bh8@LU_uwQEn#;Tms0&%MiYa02{yzJlJHgM1f!LmuS0Zk{{D zbBB5E1D^Yk=RV>&SpNB#=RV;%NcNBN+&_5kGoJe#ugXFH80a78xi5I`1kZh`y(kBL z1&&sE?rWY4@)f7>m>l%K0sU{GN`N~8*lHR#2)CO&_ivtq-$YP zQ1JQBc-URTs~JezJfV5O=o%koQ)DON>hQio`SekC%k6j-v7~qZ z93pUi*LeG4u5z*S7x0~`!o>)&>wiG(?l7?pDlzxk%XF59xkT^}XhS@TS~&65%EAX^~2XBF6%Diy;6Dn>8a2RF|3E zU48aD545Rp1As?U&2zxus46b3JiU(fpg;|EKO zC^*;S!{F)x*Nw%Qe|Yf2{1||TVNZ(`X9BdpgjglCDouJXvZy=oZ&RR%t8YQJ%bPmD#p13a7cR|3$Zr=Bhh^>-Ze!k zGQqM~MqGZJYa)*0P`_hF$js2o_ck&LiC~cD&1w&JU8nY7ODz@03TuV`p+X0~h)Fy` zl)kXQ+=)e(2wl@6ed5;f=>}b~^O|DkNW5aO)aghC=KHs3)+7Z}Bx7)xU4lf_AB+)= z*c;&Zz*+?&_dY0p^g4Jgw;3$ARB5hx91IT<<+ zqcH3mOn`fOR~kTMR)H3zO68s{q;ccN#Tn`l97}yk_%nmFmKnm9I~ zGTbS2Hld%Q6!&T=s#xLDrNv;%abkrP&2dUD>4BRI<-foK(0&;4*N10Tk0Vt}H-@Fd z%<3CgWKQIIs5tTCYWflvj~8mtx*=G5K(Nf^9_jl}4B z1Qvzskr`EwMML$#$ki(HQifXf4M-BanvOk0s6d0>7a{Z&(-caFuf+(L=+`u~%7KJ2 z230#SiahR!W!>wTppL^@^duG?HX?WcN7y70$_Qk}$BbKfbGg`K$7`1!s~yi>;2R^I z^bC#8VP`+_>@oTFPdIq`Wof^35R(1VuOLF&fBNMG^B3zN)g^{v?!(@VW=b zT)cmK9ezqCw692((-om$`PK;ImngyuNaRdm&^8l{X)z3>KmGiC z`%?=R!RDx?1sV;N^1V5g$_H8JLhjWWR;aTKBTbB8%(bBlQ0c2w_816mtH*nf=1 z20tcjG$gRMgt1ZCGI%w>YJ&@3s2M>ADvvYQf6tb2xC$^Y-d(yEYQ&gCW|$m>3Zv4A zzap2!u1TqL&5FR_ui>w1PjMDPU3WogZ7TxMDxT|VT?{{pP|PrAb>{HJS75%ON=|DI z^Azngx4Cb>3cL5cJWs!S@ydggCeo=#$BVwplW9eFra@buG}XXLc-uY7lRm1j^-t_2 zBhI+@=tSSIfC>H|+h+SMs)OAvOo%s=K%-iG^dM|W@K6Y^o#Fbo=v#|2@Xa5fQAD4c zg+D|XrMjuS0=+i3E=AsO1Q1w*uMtZ_d|61e^2s9nxR&X~QUhOR5KE1GnNch?@nt5l zG=?vW5la*KvIMErB9tXcrEx-8tjC|?30O;9Z;QTCWKw5X@HQISJ$bL|PR*vwZ!48+ zcvTzb%1R|i3tHJO<3=_^FyCE8mC69BTa8w*){(x@#7NXlmCD0fR9ZP=Muua8iC7jd z)9e_yV&d;!f(M0ma!$S0-CBmy=-)=Tbtei`fapa_g2u6TFLAd%O;N7+#yLw6lO9g< zx#-J9WL9%EtBbQ67#BkXW5f&Nf4 zDZ(kw-i$86U@?mYkUTD@v)6Lm9ee>a9iGC@sV#7~R-n=J&iF>Edgy}MTxb~4_aU(I z_0D0aB#XtoRAWKe-TD#Hc#EV#J3=HvKwG1K;w#ZVhY*Fvk6%XtLUFEM4-uyUch zRWvsesE(Ms>L>D%Dm&A`~Ow7$#60w!-Q=5Dy- zKgX0ifCw-WaK?L0#2N1ueScR$n1!SWY7WNoEFk)Ph{!iO#{i#3%I6q>!K=Vb642x0 zVBb1DNOo=#@#X3H9FH9!zV*FFX<~`~Dm~F(CHme6h_|^!Ul+yUo(+j;ltM^>QF_+h z+6_44G$^dfX=svw)67FtsQiJnL-kZL3Wz>CwUO=jqVG2>@Bml|YciNzoT%S-gzwz=$RzZxGvs7<|F|9)0-{2mXo=`1M9@A%8_}zZHG|LDHdCSb~F% z$G&7x^qmKMCoSS{(}J#HFm`PmyJ(5%JIm6k3>m@TO661|m=E!D_|Xu315rpQ z0640_d75IuRz%;0s92~v6F*oI!doTLHO<^mQLX5!Mbls%n+WJFYEG_eE0wFL zIv8-{>h$y+sq8hjo56VnoA2f(%GIj+Oh@*b^K{Wy2U5Ikjp+MkC?~Y}62=FYTo8S~ z1_D|%0j&{>*8UuAK4(d~=)3b`cq@Y!pc9uM0-Z<~%kI_<#6{V{B;Xsd8v#HpnP|k< zX7!7%*zxs{`bCzE@b$3zwMqSYRQ-BT{d!#e+M<3vp?*DrFL!GlKGYnU4z};xi|b`# zW9Gc*n*qE?w}HX`u-gXFJF}v(47%XeX!7A&lP6XxFRxXbyodEOt;=^sC(s#wglq_n zYQG4}^kY~k;%_d(vi=wrCWYf7Ec1_HofUmouMW>h3Yt4JF5KWkV;oIQ00 z8at=|qKzHr`&2WGROAyyA^nFGo>nQideqT(C``e{D145~8eb|X2+fb9ndlv-$h z3SrTg4mjV8&5lmoI2K{KnY=gfW^v;+6tjUmG>IF>vG5+o8|EOj(Z!ZUUk2cw7e|3* z_4Cc!f$DC(6(F6|OfYA>r^6typu6=uj0J4_JsT*-&gg$*PDcenlM&Bn$+u z3=p{TBLMNuZzEgL_b?0ZV&$!&)a}zVGVn!JFvr3q=n*&CSokXzE@EK=?GH8ERtRmi5q9J@UK~THVfa+!X+%ciG}B|@E;MDH~b1$E5huIG+}xMoC{{8;x`4q zY1#im$clQWQ@ykN$Z(R5$7uu{ON3Q&sl?IamuOJ(bgAy#=%=GLZn2P90*`N9q z!!)?agNnZx4}pMjdPZi`$Iz{FS&V-tUu;d8(@;fya9H%G4rltC2K}Mw8IvfZd~^Ln zjVJ@%_jpjMk)C%(hGu7^TfBE;DFP%j6@OA|fs;npe2B}icykcvZaqQ$TeAS(`g~uq zzI+0;pml_Pb!Tl$@YhYTb1^mfW_o!-vGl83ya=Kqy4!>G5t2G5i5n&n4SoTpp}64} zEWD6~Z(-pY7QU5*7qRf|EKJYb#0^te_%0SMU||Of7qW023r}U?Wh^`m;VPbA&OWB& zqt3+h^gK@9K9~M(7!TMl#p0x6V!s6g-q+x44a`GDos^8xR0(-7*eW47gfxoJ&PdC{K*Xn>eFf z(pyG?2uBxAgXN*pbX>wkeaZKxI{3PHVhlGoqxdpOX#QkLsrufoxP zS_zefN=qf9;~=$y>?P>-TfPoMzh%%$ycBh$_Jwil;$<0T7($Me@53O+8axk>S zl}ZABMBij|1_Y#h^D@Zq-K{r6&0pudtgX2MpL(^NSX4LTs8j5`ve=o_-aG+=1^?W^ zDhO=30n)B2wMxAr42++re(}Zi}S#QE}=OaAmNc)@mKP_K*ZQ- zd#4VA(mA5onON*JNqd4;X>TxTJ8jH^G27ipi|yZZmgZSjfa+rB++rtJ?93~6-dyaw zw%8fBU6%uFPTFJ7WvDA5kY)k9@JJq#1}CcY#@U6f?0f8XvNjtWz8wc~9p#2GgWPoE zS#E?9I63;&0_Y+&PsK-D^ECX`w>MvfA1sk*Q4*->oUkX%?%SL=(J^rv@h}Qt3HuXD zn{OE1c})ku!G?6A@8u{+5rfcKlW)F_g*SpAZL&0yVH1oH9kewUQ@&soEWi$D1QC6= z(K^yRgN11W&BtQtq+gp}^pOJ#-e#12bo6rPETMDNNQeb&*vYs7(#emu<1g*DZ3Uul z9m2e=P-KIcw@np&)O);bn&=C#z;v`=37_B)LG{f2g5@aU7cPz^m>0tntK!yTnX1HJ>KqB=En27be(Qxf@g2Y(;YIt zJA6-LAT$OdC<1%BbfskqPpL`<_(I5S`$SB#r2KSHPLHO1KjA=mh7mStgfVU|Ash-B z9jJjxC493=7^&#pDV)x715{bu4CR4Q%DB21Vj+y-9R&+1ZR5U0J(Gy96VrnOD%YeO z?px>0bcsKdpcXtQ`%}j=NHR_3IKXYHNpvz{qE45|UM!Mi8f&iPCJro_tK^D-J0d){ zG*p%jvjkwfX0Y9XOW3YiWxHfhV&6?DL_%XbaYi8*>TzRrkf>uTViFtc@u+REBR|&S zdk!TougvmS(FGYD)3UnpK)~X2BdFr#!%%X5oHGSiiMadPv&=sd${PhBY6xC-(YKy# zQCW7gTT0;#^IV_=CyJjK19gV3;3B*5DnZ;|=wryRtX;~1hTv&?;Gbr@=PSKE@vPnR z-a@;O$(({)){#wtSM?|D>f)5`->W_*bnm93o2u$E7t~E!>?*RfG^eFQCuVP{^2TT! zemV+Dqd+eK6#i^4RURaap4JEkK+Oc&mnt?BSxA1YsAUprYew66A3__1lOuz2;IgZS z2mt`Oi?g^HpX$9tI3Y3_8-;@;iHr`0N;I7dqb@4ySNK$KETZUq3?Q_n!Vr-169mp0 zqCjt4Ola#R7}N}m3?7#+*b7^xFQSsII;bC1DJEE|#^nPn;gy4-!HSD3p{}4x`4@aq zR9CA&T&2}btx`UT0_mK?-Mi^zM{$K!%5E0N9?DlKudxq23Rb(1t~GF5obxngK-*4A z$2V_78L;u%O20pSu5`Dm=SKq%Q_s|2V13IN=S>CQae?I@Mx%n`vg2nnJAV4u@w1tZ zpIWBbmC9?_5NO1zog=H-nhP-?Va#bh{U{2y3Dv0M1%v3~M=^7)|!yaB^ssISf z+Scl7p_y=*Zzy*A)Oboa3a=u`cAV70m_RIL7vTYw$Vv9<&|Tmy{{tJS(vV>EA7idc zp)O(dvhK!9hlDO_CED0cL&hYWHrc3XI-)c9TX)f-@<1 zD|odUBF$Myv9=Kl0m*XL}V0HrclQqI;J>DQFEch&H^SY`B|!HwNkU81g6pL69#DEr0QzM zLh%5djkq*vEA4=Ug&F2tb~A5jB5NBJRgO*Lv3=;r_5+)>Sx-Q9G zrBZ<`UKje5RR+0u)La(gM_{#WY@-H3h49K0a+g@c;u^Rg+h=8?8A}X3(yx?Wy<~{d zV5T9)2J`Afv@9+jL!~Lz)zEQrSh0pF&x}Aj`BTLLTeSw+phBdAtE=~(d=bk&CQRe0 zdrL4Vpc=z;L#yiIs&|`j{5m8z>^uE}^f$`3TzLf*DCa#ip%uDF6+9~tl)W8b9Z;#X zLv39yIaSs+4IY1EQH=56*Pez`$*!b!4~;)P`XU(T`7ib$m?Ch#>H`pR&xTVmu6soJ zJ{S-Yy}!p_yd%fKFRt;<+O^0DdV5#|ueSI|jx9d`(>ZJ_B*kTQV-hF8B$8op&q2j? z28JL{(tRC9@w}I56c<=AioO2(Zj{=g<7im525lKCfyrd26F8ZKvmF-xb=7Cvnfv0l z;6ljBEV^;$^3Fj!?Cn)3iw?JEtZ2bFvE$4^7+Z6{eLul1-nl3oJh84lIU50Qr*pUz z=MA`GVG%!WaF4Nbaz$eON!*uXUt;mj0gC(W88mp{QuMysx*NeJ?yahXb__}!s!GS_ z@2V<8Rq%&8;J$0%eb2rO4Ii!Hyc}}BM5Xyp{ULYBKqgwGx;l#+cq!AF9wr15Fq;#m zlFs^IAqJ#I#L~1G`8;dZ9U7E|^_mY2LjCgK$qYT}lMrx@lfb!pRL)g!(Xfh_xE?rT z1NVE@inM6D*;1_IJ{<4R$EnrT!70&Y$E(=)vpP_8R03XB|M${K(=@9VqhB((u27$g z`J}<`nGNoRDF8*fIJS!&c;E_f0S*Sh za$yW+{THaV1oOGr=c>+nl~P9m(#zaFY|KuSvV9;3O~Kmgc0migPw7gf=}#sbz0mc= zI0YYdpWFmO*v^q_;h!Ku&Les~4QAcyIhJj!@J72R7W*b+F9I>)fC;a{b0*=$L=m!g z)9aW$QXKTL`#pX$jAO3;IUPmQP#`pQoLXf)++ieEDWBy*=>(Is+8*ML>RtUexCT58 z(4q2OjnU0gteApXD_NnFYw1g!D>x9J{hc>NJml9V23^cVCKx+YPQiAOd zjZuzaZ}Z`A>xi9pE{4+Z_sriAUd^ZBdD3m+q41_8H zR8FLkHH>?pQVIUL7~NZ``~htRo~c@^^_(h3TU9akDb#cbH3y(wIM_=2fj`T|o*z`~Z54A6)O!l=PG5hkp= z34L~S;YGS)eZSU?YHFbUByDUg~D2P}ixSuBGfRQD~*Iqf(1y)P^w88c@ombbQ*x!MH}MV{b^bK%8OKc`Ek7Z?Z+G*e=xUa>eA< z_*edt*)t(zHI*=LBC0_bT|s=rj>Z`?yU41X8I#gRhE zE;uc%us|VdaKG@_YbccP*qiL{pV;3&<1b%f$$4Dc`#es2A4}74R8-nbTcf-~mZlhd zspSY9PeD=8>=P+lXiZvB7L?EU9v*dz@qAL2iYL#Wm@FmVfcn98?+myFk6nMK<5h;yM&5;QbpGUfDd1Z>Qo#tR%{<$vP&p|MT34JS*kcHl;J+Wf{Lll zpqDE4p$OD25m>wm)A~uG0+v8Kvgd{}5I7;t%NjAN4CM`XB6SUUeS#VwOvs?@Qkh=Z zMC~D!#R!|INu;u5VH35MG-HIoQ-cl0p$*yiF`<3_W<-m$z)XE-VbF9?F?K?CtpDIi zDd17e&N1|7v`5Kwj_@c2PV3LyNbihiPlcR@?9RM*Elr)&z})u0vE&J`detwL?2;<_ zuY7lG&AypuyM+q>xGvUU`^Fudz;y{VM}>;RQir999qqQk1~Eo>Cb}V$ss-IYsv3aC zHt0O1Xd{UFq*t1ed;=V9QDDR7exPaP&&aK6=to##*)Pe`(YkN|UA8 z6Gx0HMy6DR_UW0Us4WM<+3A~lEK({I$$yocl&MCE$$W|yl&5DVOI8{hcqvt2f?*P> zY1gQVT@r_vmLxej+cl2ceztoYh6jg1!bV7!#2vnp3y%;EF-P&#O2Av6qe3Z0NF0p@ zG|Rk9b%bQ1GD9$Rgk)lb0MnIlFOYL%8yLnGP`FrlPlI7-AFKmuS>bD&pY5wKsVfwpw7#938+<4t6}$;K-Jf`t0&rS$s2TCuZwhq+r=0o+rsCs^# zj8#-E0?KPuK3k0ZN~~(C@-m@u743XGRH)GS0KSk7#LSo}EH5#R20GR#@DA2Bk+Jbp zBUY;D`0+ujj?e>wHbOg8R)9`D09Ft+?SFcNqT~>`UCQR3!b+X{II%fw2N7mnht}%3 zwCnzaj&+n4==5sWbuU6^%+o$Gf~kFW6KsA2c7R|n6Kr7w28$wA zJ_4^L)V>G|8pc*-8NvFa`uvv!7>FR9AS4@Lr2UH#Xl#>;^-=-2UvDG!MY?`4S@6+Q zG^XNoi6y;I#g8M4?yw{w&o+moKsNl3!TU|(Fgq}APc|G`oxrRc zwDZn?L>q^oo|H4Wveou?0z%zxn4xAi(@ z#R3{hDT2$qn-0QxpRF)Rr*SATJ95rKjF1(34xWw86Fx&Jy`Q>1ZEU}DM2wE1=DG$} z7;(OWh_aYas+hw6XM!A<7Whovkc)l#34=u7GaSD@Vab`(*!7L4p1&Vn`5L~VdnYa(!iv?~ub##}u8}+>rl@55_I57q z*+)*poL9zMZQQkR>u}vhcyrwkZ?2cao9k+LbDa)vu73F3#PnaNJYd4W@Ab5$viq%S zyvHxHOP)=TCDp+ek8K8=1<9Uo@cBzii`kw#XT}PXU6?b&<6kt>^)Jcu2NF8jW=Wo{ zEQMg3D|-eATQcX)nY+R$%$dtjd#mcwvmt%_+lz=)njQzYvXu+y9M5wA#M{c_*8l_Y zf1&s#EPjDdxmfbN%;F&sN{wH$Sl(&Ap6m**#+FQ12eCnDl}Wh;*pekNAkA5fhRfT( z%2FRE&B1H96|sVih2s#0OYwA4TqG@ z+ttjZo|&cPLPMr<5JDoU0pf^sTr)RFadgf68C@M)&uI6=aoRQWIf8DwRl8=6b9_r# z$ouI|IWvMw*UUR`YIEF#A;)g11sOU%9Lf6j9p77o$(yOf!2t#H^YMDEAY#6A>O+O`Pn554Z-`48k~V(JA#sJ zmf-DVfw_YB?<`O*cn`8bmEiq=1r`Y2k6B=`;Qa>$)TZ}(sVGdJPw)yX%r-b)nT4tC z1@C4SrsfyC53?|}yx@JDg{jpA?^6^;k9uEVf!_$;Ke52FYQg(wgxb8Lp=zmX^InOc zP#d>aCswS@_Cv`9@=@uW*Q0LQ$ULUhBs~vl?6S}mLX(^ZblEgY+_W7ae#@|%@GWj) z59_u}IZhQhxU74T@sLolq;ZcEBekt*$}xcT!uly+;8)%?MZu3yvAmtD1#ujgmy4G} zi-NDher~yR`N6MYrko$i!hx?%?&C(j3VT|_c(~;z_#SZ|xA0X4CP=Gw1+={9P5d3o zFP&Q!8qRN-l7|Y4o63+oJ|ubb;$`SgYfkrfj1`+**WS zMi>k65^>Xdl>%NUfSjy;?7)ZXvbS)^1lM`^Eqnznc4^ZF#M*@|QwSidKX%V#ohy-X z5xZajL7)*Ek=zez$h%Zzc-(>YiQ2}7TAj{6$WSHsBft@wrjTQ_`gj)AHCUh67R9-;7_p zN(=@i|AdeSwlL(+G-Nm9HBD34cN3$>wkI;LODB;@DhPiK++w6Zj$h>YPx?_&gGJ~L zDX`3cg|I$`I=`(chQIL1%CfGesp zX^&K~M5tJenMH_F#cJ_#zH|^b!!FFH)#8IAuEv}#HBk5tGhd34+XnrN0zLj?q85a7 zjofOcujao7zNB5d8@c(!eHytXBy1}x43*4wxkV4@!SLPydJ?(fo=L(rpg3(B&q<<( z%-G_Yx#%H94m>tzOM|*7KvJ4ks(gQ;AI8UL(n@jQX*|G!G;Z-QY&Y&&t&?^V)4{09 z>JD=vZ@cqK)!HbS4yG(x1+oP9c4l7G70<4n>$`*SFtHlwTk79*TsgZCUchr$?dU z?a$!vvd$D~{U{=^ER-Vc8bhH8=P;z-2ePm$<`8~@BP1z50fm2_K{5Flc#vB`MNF}* z`(22*%L=S|y!Y=&AbQAXtK%6ouPjmiSf)1OI-rfUik|oW1IEOqIBhlCgaeo?DeV>KTgM#2ags@%W zR$~SG2tm=aj}bn`!elI#_kM;j4zdC_UG@$jOxHQ+GJ%`d=KU1kI$r)9KeFd0podv| z$!aD6kV>Y*{qf~e!@RoKYN_}13-%Wzh<6(nhPc%pZr*5*e>4rZF3(*{U^Qw59ssWp z1GtIkQrtW5hK%3Dmn?&ZEp&r%id_OG^35~I@Z>N^Us#cHmijNGQ@9h)vzK<-(8uDI zoi{Xfl#D0Yg;H3rK@>@qjr)!73MKh=N!aG5DOr4( zD3P5tzSwA&B(k~zm`U777CrdlIB_G{@ZpPNMTyGE&!T3j#v3|aHV22mo@$9!?B zD3SeMzIc?hv5>}Qae~KxgTT#}n?~o}K*OvSP+Ei0oI*pbT5C8>Tk9IhSYRQ=gw`6Je3XBt>!fNai3qyR3rB4>*KSF<)*Pk^US;dB zZaQr>rIO|1jF9A7&X<(C8_H3+!wh8Mi$7$68ou}gyEJDl8tgNvWRhKqN9ZV8eap}@2~jcBlNqRFaCsn@8yd>mEJ>w8FwMUaZ6JX$|}7l#d|v~ zO=P9B@ti}5*R4(1;l@4e$q5W{-_H^VvK<2blO&F6JZE(IX})d9$t4AP5faPoUp zrSaUWze}W4%LwuXgD5*0WIRC*s*pF62&Wb^<76v?bbL09Adf+8aFV2^pj>(xK`IFH z1cQ(zD?qy901+7Eu_~)>ZQPDofCPWvc&-;uCh%#d&t;A0x-K71pY$duxUlh@`MnYJ zc^^i4u%z)^?H5YpGqmwf3fRXTbiGr&@-tjH~?c7bY+_=|X&^fP?Tm^J%Jwmj|Z;Tj;Vf4Db`#2Jq zufU=e;tCqu{|($w$xV2wz)d2vI*kD`9^~==JXA6r1JL4q7E3vJg;X+MaxIi%>&DCL zhaCW=D#i?B>k{ORbi-N(1jM8wMvI7%H&zZsTys&x0yQFMY3Ehw9b<_VNv{uMAg5Ty ziZK&`hp3w(`MFY|dx336BR897S0h*Z&vg2kH;Ahvb?-47_UvhkVwM{69ppwu_8o16 zqRmTIb>yJ3advhEGMzjy2ajy$clRQ7&&3}-MU0Vi^txKd>4 zFW>5EImx6m5*>E#D%O!^M{${h#thUlW@Bs8LBg04GN~71_xKGk2`h2Mxbj0dtJ|}a zqID}B*|blpft4)eDt6pUqJfvczi2A~pBx0;0w`7|cY~yJ z4fE{oL~BC6`3e3?8=j@VkI*QVcE5nXp1Zp6{|K}=n7F87^@M}6X)|_9HSqJ{G<`oi$Yb=g-uNlX*+R;G2EeGO}FYfaATEIGq|!Io325jrb~Xf1XSSy zD)*OW*Bz2Un%OJWn~WXO)V|?u&_24o9@bStD{`dzzC2e?{m)jJrTX4H*U|cMK+AI- zslRenoRpR4I$VGG1YDnSMVL|J}O=h6;IWX$*t*t z8ijFwF4y6Vfv>P2npz3MA)7+&AamPEJ_~Vd$aN&-f{42Z1~sT6_?BQ-PJ@8h^k@u6 zTt3=ZdF0>JEwgb~j2c^-PlIB()^BRHmTYE73B4~O3PsN2`d!nd*a_TWX^!d2k|SlM zp_P51mAx808|Wc|O2v>+v@jACab>U8#6gH?dZjsiQdiN_^_qAE?%Y6(=z>A`WHesY)EkB3-fw08)hye>w0Q6)f4 z-bPJs@m>W!S~q@vPEBYfy#8>ZVlWVoe|)LqRT{QCflm%St4XioR<)T{)=?A54_B~J z(JvVy8O|UANG~VlNK+M|&@4?oB@`w}Q+tI%D~5|um?BN>7Yb9QsRKe`nrAYkr5PB~ zh3Qznp=E>swuCwqn+=G5*M9~638iCs`fUo%B#)IUnP>Y$jodR2LZKXB?y=;W=Sv-# zRL~+6l=S(0w2j^YA|~nJ+2fd{XNzie1=t#4qF3}fXINSuU4>nUJ@1fnilxP8^HP-A zp10TebA0~Qjs9=>_k>=jc|r?q&V#WNeDsTCYtGS6gL%S#gbH&o1K6Q>42c%nng1{W zY)93YsR+0Lq^rAjHGBY?OmvUPB2GwcLWOenSoRqkR1<`X{=5(Cb5=p2Z)H|1^>-!i z0(x;v0ny(#-?EN}gF8<}e@I^g{jAn3D{l^G>A=#YFIQImM7Brjf!??3 zpq3v@)(_>UCC&e_JP)uuY2G8xEXwo1$_e2-QO&rY$nU6{-v>WYzpih7Sic6kA3}C{ zgZ0_0O@9{7M=RhHNQCi0P5P16qIrX>K2dWzL^-uPQ(=!(Yep^AU23W!dyb8#9t(48 zshMQiRTyfr*FhIL#FfE}LrKcpVE=hQSW64Z-bO^i zjo&$%!Fd0O8Jy_xUp3biWK%SeP0_@Qr)Vll1dD~xEWf*c2^dQ}p(qnxfEKJmF~v59xP3iziU>YJ);k za$i-cBA%vMdLTSY_a)bKX|wd%f1#spN2@os_hAl8aWo!^aJha0%CJ~=nE%Hiz0aS8 zw$bga<0bVf5oW&DO@&-(8(rdtuZ02pEr6bV;|HN6$o0cQoTPFNg_kqr0~7H6o~6SeA6v7QR6Q@IQrA4!SxEUm*hcB?HpUS@;$az%Bsk z4sjb@%Z0BI0pHG$=}Inq^9ta9F(BQtg|83++`xcz*%rP<1n_>9>`wXSS4vT4$ z8EoSO{`X-MI~@kDwv(bw`Gk(L@>0emFwdS2q92+`z7S!RSl^{)VxD+)!dMb?5V6n- z6{m7tef7mOS9@0$(j3B_uL2qiK!eSnUQb0ICXkZsB2=&>LS6MiWag;oH>v1D69=47 zEJ?D%arB|u6nkE&b>;1q_6em{>E2XNZK_V(f9Ri5ak^coNUAf(-<#s?T$v(e&Jc>z zrD9kgo^)BEaBr$moP>LyVk>-HtlGQCenY9%(o$@dN>dMg9bcNl3Rf7e;6v;B2e2m`nN(k?k;_Sg^o({6OeY{l(@Gv=9sf|)MG zo?EfonXnxq5Z%eoiAmsP&IB$c`%}Dbn?@sluXGw&q^!yX{Sj?{R-5G;BkFGhl)?wf9MOaa7)WxOkA~%>b|=dOKwo$eI;G1F#}S1H`f}5yJ_d1j$4tUE0Em7L4|hi)WPQ zjk%MuK*TdRrhXjenj1~=p*H{rWi4-1vCLvDEzYVN51u5H6~`?tpP}uV@=`9RM#F|& z>BgBAV|6d$^(#~6z~ATfICjG*V)aycR_M@iPS(?e9U#L(tthA>Zqn^h6ZYt>xH`+fk_OGB`FKuk2;*g=euc7veQ%tu1 zq#tP6o!KEf?kZQ6OE!2(3o}327>T?8L5rZv!FcxFRqZnZ) z>^$V>mX`LS>T3SUOd@a3Ye;cjM`jj^sK&+Q1uuxv{eDqf(?mkh#i-rkZ}=Lx1NG7Z z{3NZo8jrCiypQ1lYGra0qeX|e+ts4V%~Y$>I(T{}A~-8Rb2Jt?VCkg}qemxjR996O z4^Qf>O#W=NH(nwn+4I_61q9y)xML6#*wS)DZoUE+N?7DRhcdkcn`mgj#ubfSO7j8c)tqhsOEgk)d%&9U4zohKI(&N;Wjk z52vBAmxczbAPo(?I)T`rx*Dx(ST)m*`+Zmjnijkj-*9zG9xn$G@9`Uh$%Nv%nyM0H zpcFLj5j?^{li`UxRY+H4{0B%h{0ooHTH4((bND2K7uoYLoGt5Y7~yp&wDrK#Qm5g$yc3)7f`bo5V)}-mGTB%)Jchq6D&H_fA zu`Z@=IJACkX-WphIu;p($7Aq1<1q4glveeqisopZ1f6WOMpbFu7&t6c`&Gksb)&8A z`Za0H+q$J?*BmMoD>`iV7R2&QRULf$Zc67T#tctyX@ z82HL;gsII^y%w;B0kMHE%*Ia;6B7==3MU{gh&6(1<^Hz1WcEy$7uEx!D}&f!Eck`fip#(enlvEaD^$i ze?^jT5at(|4a8ua&?c`Q8M+`GJpKFt-Vs5!K5US&YN8*B$=76(K<=23rt0)7KztcS z8M#bKmYhuH{M-e z@<+$`_3u9Y$5Fd;+x&P&0M+R zjajYT-@kZwX5rzvPmQQscK0~$FK?dxYufZ#mJvE%|CXhX&3gE`w<|x{>|cBEyFdT- zz+vl*op-N$?SeZrW#!?6D?0ypVa`VBgRF0JMw-9Bd;5)Vo|;tnW@XO2{bP>3kw5j+ zw(haRW_a8FF@MR|FFLR8Tl0s4z`Yr1FCcZR#pX1K4vJosfn zWr^YX{t~{gvbcF*+R@c`tK`K0<@o>q*!vdvx{5mgnRB1HdEGplHfej(CT-FtAxYCV zO<#GoO`EhKX-kztNs}}Uv68b zS%I?%XC6+*y!d12SYGbsjC1Zayto?7>+-so%ivzO*Tr3i;q`c32L8NWuL}qB;g9)T z+{b;4`&@?4@G-;Za`{|7=JK7_yQRPT`MWkK&JDui@`i{N-)U+gggh0{m6ruLysY_#@al{1L1ge*~+y z{#v%SY~6yto%n0Q-yZzs{&4#K-9 z;8DOw1PTuaBPiV-!G>@2mdB)fn9s^*Lfxb2Ej=tTl&?)sRgP#qkrphLeu7We)9sb{ zd403fQ|Y1Zs$5EsFg!|6vKJlEdcK|Zq>54P7n3y;9013(RgW|hkls|wbPv-{!b>`Z zcY7G8)9b@Xf|K~^RCsEA)RNp7c04|h52KCOhlBE}AMl(I|TK|?D#w?Cm6phg| z!%PqNERNaeFdN$07u-%?tsw8&zrNAX%F-_53dd`tB`FPtXnW_--XTr(CrOTyXc z@PCii!QIEU@!2qs$dLAg&G;Z)W=w1&BtC2ndpnMVX%5nX2CBD1m$R8i{45R@2p`iw z7KRTNekyc$jOf6oeGID*_}|kZ(t9*->F^i{#nhx7AaCy@^)KpSSa*>fEvm!G<=od?U;5uPZF zmZ>wDlh)+ucpxClLkUAqIANf5gbd};6HXXt9U+6Fdcua`{;)dW(Gx}_0j>2!1Y>9= zHIN9~jS^u~MPamBz#yRWL?tuCrF0H1U8;iu8#LyZmSF{^`V5 z=Sc!=&|wGv9%<`MjMC4)`{xs1O^@J5ZbCXEl799*NM}aUt-pJDg1(-d4&wjGt-xDz z;FR9}QKaWY@b_MabXFvNQwV7qz;FouR-~=(u{9AJ%FFS&tw*cw+k@WKmk?xM9Z}}kP z;VW|JApUwvCq~i}*CI^=GY-Pnyc_8ik@R~hjs1Ca5dK?~UKvRjd1ImP#w{F#KlU=}CoPh0Kzj+dZ{S~#NBObYk`AJusEf2OO7H*INSf@s z?uYjDeLG*8_-cyeC;W@|y*z;rL5PFW*S_%L1np6#gVLXQ$)09EdvO9=L&ZV(SLfR0 z|9BJRV=E~ggpck&w}1ZSiH9Uw^sg@!zdZ4>{)ll+wORrHaUE)7OQ!jEz8)?hU3Jc4tx22(Qh zJJ8}#!_4$4i{UT0z3EC~8~GdJdPZDd5Z4KV;1gV2UCC@Cn}}Swc(z^Nbike~?{(+( zI5+oGuzVU_!iSMBH!N5Hw>{~#C;j>Oru4`Wf+$VaIEbyDL^Mb2$)onCmrrWMv9;3C#eA^|Q8?)sFJ}2BMB$|4NHNPZAqpoQNA1aD z_GAcJnGvnVp%s!!t0Tx4Nu||Md-9k)$)FYTQ(76&3Q47v8~GxswDQ`MetVKFVYz0m z33_oD_N03Wq$;`Cyl+qX?MYTHL@9AbITVzCB-(9HdhJQSJ;{~{QOY>RG9gMC$8Aq~ z?Mc5q$x5UsQ9!}m_N3pQ4D~?;*{`Avh>9r^Q_9W|x6cAb&_N3dM^xBhtdot803rL#b9JeQr*po-?$z%3ps5xRQ5@k;w zu_uq(lgI2yh9qfZO05ig(rr(A?Mc5q8R`j(5jAK}9dkWL1V z)Gd$LllX-)f~xbFJsDbMbI9ZNIWM~ODh{`&~mtYT5Z%~p%&)Hbtg*@&%E3d%3vN`JuD8_ z29_wE*)r0>jcbtkaZP6l;+ZcadR8K^xB`nSu;Q7Q2x+*YMjC@-DV#TQT#d$*Pzn$A z5#$K2seG)D;Me1t%g6f&dz7vQ6Es|4JpyYGoO$W$Vm(4;kC53zTwb~wA(7V+Tp?NH zI4*N+7CGVyc(ce6SLE1Cyi8!ZfO`bo5b%)50zsOunVoG4kb;1V<*L33FxOX$RT5a%Gy5uAr`QZqXrzuM#164(TNfmu^X zq7Tz_ksBwytGRGeN2Vz%nwG+sTHwdR zrn_iLa4t@onxyGBni8aGH?^j<2+!ntDY78nRe-Y)=Q5njah@ynMwSV(bY?=+Qk1Tf zRkJ~S;A@1nu*=v^d|2Nd3U8pMx~dprU9bKS*UuQB(N%w5mDMcn%u_wD4q zdc%VMh`Euxl>4?DzN@*f+i-t}xi@mp|1i(Z+;@=s_87kRa^JAweu}v_aS!936Wn(# z_w^dSPjcT4hWiK1y`6jFx##oTcbxk|hVRSV_Zh?eZ_Irm_vCTUueqf3eVzO6H9W5~ z&n?_r!M%UtzOQlLNyB%V`<_woJ>0v+@clFQeH$O`Gpz5fM;xv#_U`3>LehHr!6D^c)6U@?5D_^^u0*J$|GxV**O z``;X2?&~{b_(~0*>7t_Tb@_hIeLpaKw*Y03aW=SoA2xi~xqKIMA2hs^`#xllakjX8 zw;8?nzDc%O zUA5U6eWr$qc^NrVV}nng!I2QBc^r01s`GZ;CS37i&MEr(CSKENE-D(XAegDL%}Y6z zQw$U+5{(ys&P}q-{5s(Z2+g9eZ#uvg{Y=Z_RL-*npSGmd+Rs#U7K#04G1!5A)G+E9 zH5q*s^&bPSQA%Fxs@jWeHIb{8?IMid`21c9LP*2SR;<9+3M8;&$IxdD_PNjD`(^^{ z)>}DqdD%k`app^6_4VN7?7#u=#j#zxz~^CCUk$!Q_T-a5x!7-h1HO3n;~#_1M;}jR zKJ}?CM)@HgNuiK~^21H$hX981L!5H!t+-KsxY_bUEVFADfRrC@GCu@5lpkW7AJeom z<%e51KN0(=RxX!Q4d7)wBqJpm3#qGI((?!!xm-w*l#HEZM5Rk-)uzBcg0HqhA?;;- zD{xkMOD>=TqrN!s>YpP2Qd5H| zbfl(dWX_qBH7_S;!9sIU79DeQa^^2E7v&ceEH5gic@k`$7hiYb_hZ9+AP^s)kbuud zdprR9e1HKcVAx1Uhx}-y{M@7bq(wYF@17h?NlQ=9%$$Rn76Tjc6{ipwf6mOGoF5m? zj|=C=1?-dlD;pQWn+mNU{?EDb>fNn1s~c*fd1;<`ch40){oOi-W|{HpQ{Q`e;`OIq zo>>3P%M(ArDP*i^Zq+I2IkpV>Hatnj$J#b;j~0M5y`i=BwGWNha8i$ke|~vl{8{WR z#`%utpvTABY*Z@2W6F?vM9W|mHJckZ*HkKAb*Hz+n(m(N_K~iRg9<2S=CSzq-Ipga zo_u+t4(DfavZ64-q=)97j-i2m9W38jqh+`8(SMj=ne@llmPvoHVH+_kd^Y~h_v7>Zc&dI( z!v(GHGO@Rio?K!(iF~4whgN;@Gl;m-8Zf@&Pd$mTp6J~40R|z3a~fd@#(5mB#Nife z)$)nPEPCQ%6M%f8Sy_5=i8XBbL^GlEM8EQ&^rIW}2KU(b(!=jQl_o$%YXh-P8c7xu#20sd$}AR3Sm z4LDK&86-~$J{k=;77e%|8gOGY0J|WYx88VTq*-CBy&Z5Y8gN52;Kpdcks`<-kxKB< zXuz>(zzxxW8>0c($G@}b8VIG64(#N&1F)Ch4hTd85~2av(Z8#ivpVt2nCfc^b;zzxxW8>0c(<-c<~2~?V5pT8Y|o&I(}AR3Sm4LI*V z&Q1SuuG9>a758HmE{}H;yEcd01yUfC0t!uy74TY zP8mi@SXEZE@hqOPGNhl%wY95N>njXfyIQ%S!eeV!tJbYB?ClBw*{-zKSH7Vvs(r34 zU0{<_wy}%=k>ajgTjs@n(MXe8xvrc55sLDv;sq`n#rhQlh)_`LJ%%FDX)9O7x-vwM z8s(~0#R)cj(3Vi)Iz?3(_QC4w^r!&KB>S#hT|A9_SFI5Sk7&E1sw77LUtJ8lBt@ty)|TRBD=AV7kVAk7 z1?2Ea`czb1fY@5I9%>Um7o(MY)!K3bMC7chD)UJ>dM~RiU%v4yo(p0ec0aPZqG;n; zJY(dCX0DfT^@`;i&*JHnVZ_jD%9d|Di)XA1r618+&B~R_(H^u`LjYU5vH%e^31H|g z&jQ#fT+tK&*eOK+r)dS7)gf%-Sv+HX5wpEroyE*Z@mLw!+tu5Yq0QKDwMp?qQ`!jp zHk6Pud|OM1eXehB2`R(3wS@L~^Sobp>mAW~zwj6N`dF^^yk9u$CZ)J|Ejx*v}A}wm*y9DXGdHo)2IHHH-MDgHu#|PX5aRcIZxj8FPk_f!GP_4B$d{SuRUf|A7Is$}B4>ttwknQNF6OL|~NnoBrAbRu<^E-HsNR2!x z`GQ!Ze|;A8@sR)KEa{=vjP(gX{&lmU$F7lS?OzRfbdY^uEAweQN30TgQuZ;47>A<& z6P_bfktan@cRGk30mrQL$BrKJRq#fnMxK;>H6W9G?7x||yr)PR97K;D9OiWT)6@_h zM2}rP=5O&F(IWDs^l=O72>o>Ob^B0xKQ)c~%QX2!e`Xqbi(KfBzGG54qIKj+=`RRC zL*<2SMX!%gMV?~OgLm5Y53%AP`Ab263aNsqky1vURC!wjwWNptES;|Xs~rU-A8mEo_L-o` z2g|Jb3(9Vuo<@J`tByr^u@`JwdP^PJj>qbU(%HnD5u4~w%03KAiv#oppikC`v}Z*h zR2hK267+x4X!J)#ugFQCb)?V4DV;3*9HBQQ3+RJ_J~l&y-pT>=>4JV?Sf>6EO|RNyrYVCHn~&C*8H7xpDi+un3~*tYbvrVr^5tq<*Rq=WR2riTe8(X0B3MUU}* z5=f}_|y1bN!IACn^LTb+wZzvl5uF4BqVIn;q++d3bE7nw2majb9@gR+}lyL|r z9b}KG;z32P%1885#e<4oZ(kVS9OFSnFSU{S5Pfw0D;vh5pDG@7qNnz!Wa{@=^i#!y zvFN9Y2Niv_Rba9wY~>gaDta@D-YMQu^rCTrhvcIpIL3pD-V!h9Dc*S%0NpO?S<#b^ zpo8R36%Q)_g>siU*Z^Q%INciT(`I$|m|< z(d+G>=&zfG-V!hLN8LHbcS^oaKUI9B=%Ir+$Ua2xG+rtC7L6W1`!H?$)XPiskAPpd zi+Wb_t2OznLI1mH==JsnUt|)ylBwU7d_e#jDlhy=>2&mjr-SHC{5!p0D*1xgqF)O7 zQ+U?(P|u2fqs2h-3uZt+)A(A+pJ{xp==Jy-FvoaS(a$uVRrF*JI;gx;#j}cjrtz$z zhmVy9I{sAgtfFVoLmZ%=DxOvJsy$PDI#oQY=q>3YzMd+cjnJE6eWr?MBlK1d&}XW6 zHWqz_h<{@?PkdFJ6^O`iMCd;V`ZCpkqwb3S21^~PU%<>4kd7i1NkwmwhyB}h{zs=r z7Pk0T&qvAE+YkKbr1(+sD0*G~RPTR^UiUvlKb`*7Rt99Bsp5SlU)KkpQ7Zi=07_^5 zuINooKH93yJ~Z|#9z{QA3VJlDN%Zuo8#+k;X!&G|X!(f2#G&Y?YY%1={b{6?Ov0&W zr9a*2Ao<8^T7M3oFAk!Q^?nd7UypB>K>l>`r%sGpH_j1fWj z@)I9_mNE_!HXUcCn?8kvL*T_Te)z!3S1@T814^i*Kv9Q64lW>gC~ZZv6C!|HBH z7aq#VkykK|sj*sUZ{rbPN zoXuIc`364X+1c>W4S)Rjmp;4k3Y05U{olWsAdTp`)OvpJS6=M@+TZ>C_D{aJw%}V& z|5nf)v~WawzFquvwTtgGFTHqC?TYFLAKRDq>6Fi8e5kuJEB!wQxBp$@mW!6Z+V;=X z!sI9H#5V=OZ(%_lJ>p!c=h^B(9}1p54{de$>-s%n;jyUh)PO^s^Zaq%0<*M$8g=N7 z54Pfn!+~)IpLd;&s94+HoM2+mdJ8V}WoI)zW>Yr#1!^<9%CA|Q*>yHL%!YP0rk#!4 zx0F^YEwY&Ekz==(M_jzqKE9>;o)<2I&lxth*_dmFB4 zygkL1PrAg$Oa~=CH8nUL?O%vbnC2kyG)n!2*}U!S@v}JO*Noz;L<5289}B|=3qKV) zJVtb2(>{vq|Ce=$^d8MyIy^=~F>OxZ?R}*FMLmpudR{cJs17HSe`X&%D=ju+P%$Z@ z^&;7)#Po>R!#=b3Ia+YX9uU&)C)TUfgb00Km9Tfw1S%$JXmN(IQ$+idcb!>Jv=e&W z5Ech`|9p9G<$EjhyMu0d3PouyRX^3du@0kW1&_XC&d7G?`vY!13;P2|xyyWHWqDAW zi*%3)u^vD=(GN3-gXrf_4N5A~Jr=$Au?J!x`uE8iCpv2OvFR-i&<9DMS0$B`K7Q3A ziC*X<#X9NZA2&%Gp-)iib80GmKrgET0@DS(+`;6ezkghcr}Fw|pns4QrGw~apnuR^ z6QQ4h{-Bpl2l5kUpnuSsjwOBE&|eq_26D1L*7(EvxJiGjzNlES>h~r>&_VL0{({WO zo;T$+hUu}pep-Fu+*LYJ{pHk>!71z-|N*yY1Dd}Swh0GAk zJ~n!xkEC+4k4|3!eUyQm>dQti+nXrDO!TRc_7U_m(Wi2j^eq8bcz>Xi{wSe5pm58) zi2a@Pm%|BIi2jC%{hjm|qY&i)`pck?UccmORGpC?%10Bqpocz+fb^M`p7gO8NT2EG zJEP?5Wmfupj&z{|$j&JFG3gZpkjJR~SOs*lzal63$3**)47zNBg!NGjL@(Qe$im6~ zpTnW_4?!Q@{+4RursM|%u`F+B2K`H^L;8n=K2oZ)K2`>xKRyF}^!9dq2Kwmj?f4Az z34hNw^!c@ytRO8!^%blA_;W!>2hnE|z4QpqJ%!mQR{WeNJ2UNkWp;q%*p_SKMpufCAg;DEq{wzaPu?I6(ii zDEq{uCmF?F#&yxNZQTB-~KT_T=qCG2v=(J=b)gJWr`NbLZcfEanQM6~7 z1sPx2-X)mkdt&i(i(b zLO|e?(8qFbj`15=TpUCXeU$!A`sn`uNz%vC-$@_6f3;lYVrO2l^k*z&v5Fh%5gl*b zGXs0-`rI=Ed+Pe!GXs0-{rv>=QRQ`NpSt`Lq>shmWKWxXp^xNnv?r{k>Z_9CB`XId zpVG94N!hbfY;XYp1nXu=Un$}%yFOFOpCx_uEa~fKNgvBTs?90;n9QUiIof9``dIdv zihf-T{imXjWuK|&W7%ga`eOlD0R&UU54!(3CfbjbNbODU1InJd|2Y;_-q`dO2L#?| z=|edXZLD}t*XPD4ePYrp29h78Pi*>#KF6cvQ<-JyBk_ayc~8Kpe;tpKADiCd0J7Q- zt62_Ow+-c??0JR|bP#)|k{8;q#!5~$?y8SCed8vx0vZqx8XxBSIuRbq<9Ama0)%-;%un}(J%!H_7`gRi-y=wZCQ<1ki8>X86@>N+X?ua@3K zAWz|an z{ySozUn&rc)-t3NkNmcXJfY8P)W7h7*(vE0EDr?w8>zk~WPexs$B<9mS{S<;{)7&S$8dxc zE#1TVOPrv86!JHol2lIZGo;g_eic2`6ZN3-Q1Wf`M(y4#3 zU^Q~a0R>(K{dJZCj_plS3;I8SUJZ~=^wOA8{*y${nE1rMlRhEr!53LTpGs=~$#MjC zk}timl%JRFVq??juf~_zuEoC9^zV6h%(k58 zir%C@m6O%6)QO3w5l@+-Aw|QeJx0T*RYt=o9Sx&EDH=v|&e1U1N)QbryGO&wu|~sa zeIXhKkbvE@iKWtThM_WCHi8Mq0hlU>fLTDLiw;xr9<$_8xv0}oz62vydQDUE1PnlW z6I1eZ7)S;0li;P^N@*pJV5Bp_lstk_9t2bJbQr-&m(xUt0sN^ozOXzAW2c^4^Gc4& z<7a{nFaT5@I-P=r>AP8&Z~6(wI%PB+g)LuC5)YV<@VturSq$n z&aZ$`>7vsqSeOpH3ig_ohtfsoRWO}b!E|1wGuzBkPoX~Y08si7jAAERuU7dA7=|fY zlUDL{n35N?cxkVMk|$u`rTq{}o&|fA_B<$9I`N`$(7pzhhfb$pI-Sb*GU7!!Xw6OK zD_{W9DxbfJajq*i$zx*gSTFTDgAVL3Z~0b zFkPO4>GG&N)VBt=!dB?4ui#mgO~3%8wySiOFxhq$Y((Q#dFXTsrqii>4{5wAUjd8C zSHkT1UaRq{Jajq*)9F;cA&pn%D_~LiN|-(0BO0&DL#Ioq$I7=ZNv zDw|3e=0I>Lc{)tVyD^450gI9+VRm^sOvyVQL!N*|$&)aN9@z-a8D@m-CN34qc33P54l&P<+4 z0VwH42jy`YY@o&{r8B{(-iSu&EMNcxRg6Z-UOqZu%c6k#-5^fumFS>$&+2u)?U7my~dAB3J|D)9}Re5!olBdIz zJRPRXqX`^J>+%##m#1L5JO$I`orxh&!E|{Frpr?>T^@abSG0Z#rpr?>U7ms|c{fVi z)7KJ-E#TCqb(oT;!<0N7rsTaw?_1RV;GmWLbeNK-!<0N7rhI#W@a=N^PGD+B+!%jhfLD+X_ctA;bk<=?o(@y;M0|yTmC~wyWz6*_0aNl+97c2s zrs6PysXTN#1=Hz>mg+Y|<1g~1B`TG#fZ?Sit0N(thlH_HSsgc)seDx&M!YHyole1Y zI+gFA(4Hw@^0z8q9j5ZoVM?A3Q}U#*BY#>gKHEfP(_u=U4pZ`Un36~18_gky&>56| zI!wvaVM?A3Q}WdNDy>s0dFow~)*_WW9j4^zFvTn0IblCqXH>lEJ(T1rULB_B)VnF^ zqUdy(%0t>kj0**dSBEKH9j3~A3USyebP!r6Q1S>y@4B=WpyUyZ>`e3hN}di=@^qUj zc{)tV(_u=U4pZ{}s_Mh~f)#4hR2J!ZBX$j!Z(+o)I&6|1K&R}W-kWG1O4(JtH_<$l zva5PW+J!^O(_u=UdT-L@srM#bo_a^p<>@e`i+V@WdDZ)n&a1;_JGVMp`g39acudqF zF4d-bVmfS0gDV0XUI8^aokxFGq&keA^|Ydi-0?dh{seK(*1of)|8wWYNmuGq`l;sa zbr?M>c=SDbUY`Yz)3h4?xqmfffR8VIWD?}2Nsy0Df_!WeM%egvOW?GWHMM4fB1<{bwP&A}$5~O?*WW^*%#Ux1Su}P9ALCPmVR!o9aL_zKk zZhoJX%vmM5XZDj|UeJR0mWhScp9HHWL89&RLeTVCTvqFSA;?~ehM1Ee(Q=N4+TtuO z%g#qbLm3Jpzw7d7XfoHxe9jiI0KS;3FrItTJx4>MZ5AY6LVlM1p-j#eVq6k5z7&-9 zPes3)_yx|>IG@4!HJrEO{20z7I0td|;{0p&D{gFWpl?G_S3f)w`5u}BAqN%+wASsb zX=`g}-I;6V4_BG_qo#=mlkhk?tM=~i85rJsRoBpP&p`jazV`n1?ykPB{*k@=N6Je} zhf4Pi5U#6zI1E_P(SLBXw7h)p=Arifk>0MuZ37)wbd9uJ(Y?2+Xa7+9(BZw!U3~*X zhc6uLY3%PA*;{w8XK-)bKwsZLza3N3K{{-zX=-br2OMv^K6QhmEgd~I9UWc6!%!!H z$)3R49i5%95{|l-UHN5XF?rw_ItJD@T-DVtAP)Gt{R4!q?;0MFwxLwZz|aVI@nqvt zGIe4>3fkhy2jw3Ktc3`ZG;19g9qH-sHg~q~@9hGv%4}+A$saAqAFZNXMhi{SS3Kg0 zo+pbG5W+!jQ&0aDX2YS5gYEs@U1m%BPLm;?P?W-sv| z$09VYLbGF_zrU+PC^a%5iaHubmXJ|;hM_CzEck>_Xl$-4-XN)wD3Q7b%w;&ti`s|! ziN0x|+uVW1c%XOS>aI?Kqp3OQJ-KDSeeDR1d@oM4d}_^sKvQj_d<2 zEU^Tc>#6@zPXf>!MlUtjuQws&5ZQr_upAO^4x-7SSDOO|B9d&P1XZ*gl5tUc&xm!zI+M&2=X1w(r80#(gb2T6ea=f&p?4?eMYiMIbLI6owz@ zNB`)OT|(0A8ty_vYw2hk85RwJ^deqO3Dt910a{*Tr9VFFUQt)_n8&YITELJHw)M~A}%LV^N_GF?>Dy1jAx z<|@-{?YeRlo)C6#?HV2!9qQ;ZJK#F{2S&{OU1oc4??6X8uqEcEfuRoS=CS<{f!=}c!=`kSXx<$|&{DP@G#69q7bZjN6z%S?xk-ou3BI+(+=0ra z{za}78cM|vpjCHLACPq#ma%iFt4oLuSQskhw8T&(U^ZF}(i(_%9vmRtf zABMHeDXMBmeWapb^0Kxto}{2WYgK{JWaJ34ziZ^`E_jNz{81W5$TM1xBoU`-Qx$FI zkZfKuM@ydB*xf%M5eH$K_TFJ!d)vFoBh>AvN4<8AVmyNzC3zKX#jOxR-mCy|O>ZZ8 z!|l78nhIF~Ix!h13=lMfqr%DRKq?2-qw*P%;dJEc0a2)7YHyN4Gb>ek#D>TZ_AQTO zC(>nFdOL;^9ZzWu4cJ%VmN49ow1!TqMzjmrV@wlHNYa-pIe0J|cSvA`0^$Kc zj9YbK>5*Jfw*>_U2Zl$AH(b>|RC48DPYHZ8{Yc-%jh%J_E(C={c!7$avcuC{%+i=@RCG;_UrgLtCPl#?J)3p2G_<3P<|Psbz$Wqm|xC8nls12`3zO13W}Ym+T2{XX|p*z*xo_!E0OU@!rOYT=@LUnZx2NTGnBomLdk{~ zag;5}NW+qp-H7q%z=58Q9`f0uZ%9rN45%3CpipQXg3z)xIOCGHJNly&adx!}5n0nRq3Fjau=7uoGth zG#LN#OUvaOsq%Q?hy@SU5vCDoJtbc^o#bF*Aadx5$g>n+78jFhkki=T*>%WNp|&-m zSiy#s5^=BfY>{sn7(|S2Ic+u8m^8Q`o-h7imBkQ0KO5afg)Cj>bsA?GCIoP?Z{ zkaH4pPD0K}$TWi z{8c+d{#&~`yEgT+Zf?gw+x=x*I^pEx-;FOcMlpY?z%a54KWdULup*QRv zyr)>OK!E1WaEPfQytwRcA2QoUhVU9QinmRPTgC#N9qkSM7Ed4KbgLBd=z&s^q|hNu zOgi*Y=u3m6;KzukU^L3Akh<6kgi9rTucWtvd<&-2n*^&n(5=%6xqwB{O)6ts*U0E# zj8cNXb@-}Ivw((VdLu2YBKCtw@XmihSU;9YM!McN89aoUG ziC^eHINEl_$d-YTmfq2BHHKOQlkl=GCErj-GhX-vrJ#%0Aq=B3>g7=RV(mcYkA}Ug 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�dSGLI*ux1N4j50R7^JEA@*jR(JYEJ_h=f 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009L4KMEAxs~44v{yDlC{D15UO(TE+ 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 literal 0 HcmV?d00001 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..9018892be3c9906fba45af7b74863b884bd564df GIT binary patch literal 292669 zcmb5Xd010d*Z+MIA|@Cxlb9f4MkY~1hzf|35fbJ}MXN1@2*F|vh>F!p2oS;`hJXl& z$RrN6Em+&CwPnUYQG?o6TL(b2=xr5;RxLu_)cg7U-uM0Ixt8{lT$S_5ckO-l*?X_G z*V#Ksz5Sykb(->{?dp__MCGQ%JGN}H3zCOPWm2I;8sly!k*{Gy7Jw>u93#X$|ECI?%=-rrgxXG376W5W5m|4;U*?6 zO-}Yx+IiS*a=iGF^^Z4ivG=p2AW3TCmaU&C>5@(Aw5_|gZ2BaV9=COC8r^5HpB0q~ z+)1cO%u!t>!!;lg6OghP&m^FTSTZtGO`?-g2!?`m*C37qY z7kT&F#cGoE8p8j*=6@k_-2aRG?_c=G|NSbGz-kSaV*UG0>F)pg3j!HI5DJ1xn1e)G z-u+Vj&J6CmOa3)swmSLNEYdr}i>!vDtN;Z;)a(8i^ThwPPVw%W=>HY7vi}keYLW&; zMp-OBd~LC;K+tFe&9(dgYS|G8sCPB={}cKjEDGm7LuLs=&}WBH%_|WU82q1V{h#vu zZyFYa&b?woXe4+b&~Haj1dIU9WYQ6gL?Y0`&9WeRc54X6P9PBxHBdDRVq`{B%h+Xd zdKJd?zs&_uE)?5(C;z>RkZTbeT!)xzZ7pEHPUfva(9r9xZ7vMu`vsO$fglS7n2uT~ zh(dpx?~Ba9)FT)uVnKuf7+VJ8VietoPk>SgItnStL(!31BmzapY#N4wD8$C!hMhsu zsu7zYD1;y=E=I1wB;cc|*1B;uKtU9OpglV5l4`|NYpsB(Ms=cwXnptuA;=6cRApns zvWj%(YY>DCr7TE?pwU+NA%zYn4E1qX?7@1U9B{{ALFx&S!Dw8EkG@vn4X+0QR+Fef zY(fxQsC6i0W=TLR0p9#jh#l@du1-VHb{!~p1S7%Zq&o=%uF-hqRSaHK;44TWIDxAK zh4CS1aL6pUj4L0Z`{-FH@IY?CYN*(`T{wEDgiA1@z(c16N$2`HBbtupBW$}^aETBy zv$o3m*AK;$cd1dn0%*|?Y`wwL;OfK-k!+xo^KO9^EeM5%c4Kx4l;}_fSgqQinK66; z31MEpkMIQ@Jy6hsRQD&WK@}aR>+MI1pcJAmK8_>|i{m>xFiWi+0=N@J2~cWehA;|^ zZ$^+Gz;f=^SpiBGf|ctPwTM~K2L^p5U73&VSMb#3{gf_&tO5$6G6<+znRRHy3cc|r z6BI)-qmU3WFNSusLZ`ZiQTl^Hy9`?WdYv++q1r**Aod53;fUW{q6^KLdxh!Bsn>CM zEU+S}MpiOUgv}Hn*ko(%!uu3-b+;tKb&abGhq)%J3U>!9mL@hPB=S-GDEWG&F%$P+ z{|qo6NAgN{-S6oCBY)+K9q2cOzYc;G>0!8IHHw5V1gDV^!?5uC$S}s6#aImi!J~+K_s)PqUd;V8KV$Vd4<-``h;8v(GYT( zV6cLLW+Y+_^HH9@5{0m*JJi=g!PO+||^9)tuj}?PK zo`|NMkK<3gjG+6l0I&@f2?H82Cg{fM(L=nnW6mogO#7y`D=M#MdkAY_X}|TZ?tb}JrO51e8`Zw zVmk0#qWWY9_E>`HJ=!=5<&Dstn0P0No|~W{!0#iQjc9GzQp`nMN4GcAPX;Zc1-TXE znnlqP&z1-(=AglI1q2~BF=7Z`UjO3D`7`j=feI>!5Da-+wDOTsq4SP=*yygqU{E!j z6Ht715${Ll4L=8R2fS{VfFiv2vjePhnM6fy4?#X` zM&eD%5n0l{5RU9OOBPP_1*vfD{*w<7u;TXb%yRrx(%J-xlbM3bsxWPu;+)PkYk?4z^ zrzsw+T$|rAjW$GC6&OU*hGY37N=c6ZK~gkG4H$GOY+YOS!5UTwT|&ySi*^Qs9y{zt zM(8?)FQaDr2~V~s7-TsxZ}1mYo*jLjG8Emax&{WnNOS7>NvNtiNQ&$d{lbp{gFIZB zW|kOF)YvC3$ekzL0S3tiH1RM!H$4E>_le)9qz)n5VRDy}! zmsldF{A0IwA%E<@fq%%<(KeQ^&wGy8E0o--3UrkMY$~J78j2(!xD<11SA4^1H5fz@ zuw(}!p5dTp7RbX2^k6XD-5RR(s~A_D_pA1ZdvOs8qE?k4sH23dXPxBM7_^5kH!kJF=W#Eh-Ct8#3)nHZZ127N9Y-Rz`YZo?%lTk?wa@UH6E zVSZF3o0mjgc65ch(6<<@m^UJ6y-qiY_%E6}TQ|Q)89Nd+t`!LOsWy%%o2jApfE9a8 z_jRvFNBf9yL-Fn%veeB0Ee&1;MSHYm9H>F01;uAK@l&ZoQmJSS3 zl|j|6@*ciB_NqQ39J>h&dhlJl3#E3_-@>l<&z;i+_Z{^=MsvpW8Scp;HHl6MNFrGA zsx{=9@JmEB1!GF?zm|{z2GNp+xCZCeFjqpT?~Rr*xJRyh&LMHa%tuGa%k&)lnM$yt z?->_%siaZT6w-4{yXj}RD>p;ZC{jr3xg7yEY$SAcIaqNnaYO5~846sd@5xNpawB+N zg^(_JI?p3k`7pxNMmaf$2v&3pZBY9=bg!46roHwEz>b2!YF+FaX=@~>&8@aLuR9q& zl{Y^pN9?ES5_y@5bP^YF11n0fc`QaLP4AZzkluI50H3Y8+SqbZ!8*90h|?Oi6RlM?F&KZR{d%o*M20 z%-V!FIdFJE^1?7_<7$2Z@FI7VH^daf!>S|k`Vqo!HGcZS7HN-=TLLx}@y^Y|3>QUJ(m9I@-3=jN zu(Q6xIfr;7VOtoQTebu(1B0fojkFXRJLbGCzD`xO58eZG$SP#^o(@qp3t3o>iWv=7 zq$Acf`Mp2B^{f5jvi_sL;4zt}lctpRzsv7hF6ee!Qde5Qij)0Yr^a@FHQAqHxxeI* z3kwWZ@BQ)7KH{&FU)eCDr^u~ zoebL3speO3#iyKh%aDeR5I;R5Zy$?K0W1EIfA@9DFWKjwCQkoxW9zOuF!+4Ilh1Uo zs-GtQxbt<&fA0JZ25C=s%_FuCzF;-|T7LOv(|^F=)UE)0(W)N{-LJIXd9m{GaxgeJ zY5&ycPWPTGtxtbFn(}f57__Wezbb9s^yG~r-nm;XPe#DtkFTme*?nh+wWzv3e)uC1 zUaJqw9-ZM@{t2A)Ztu8q>ZuP{@m=xmyl5W_y!EcMV9;7EO$f)@aN3qzo-El3UY(E$-7sk|1f8t1A|Y6Kc@V=v-;nUVe4Ag zKVYz-+k*S%H^#wf^R_$BKeJ4OLGy0Q-`4A`AFs4`$9H}N2LG6G#L~B5_T7T^*+0LX z8VCe~YqIZN3g%5(F3oJWWG#9>Q~$N`yY{z?D^ruIS761FyVGwP?v7lsRJZ>*?QD4q z1ud5G4R-_PuDq0c2y0q=f-!IhXj9+^U;4ZMK^q0|B z&Irf*ohKzOC1n$bz@Ws%n(v1XYU4_?4lw!6d0?=f8G>l(2|apJKKn0b-Ci)LrIj6v zNFjIHDb3;RItkoeRV)@rTgZ7IFf-OwQ<}|Wuwo&`ny|wW^Xb^(ppA`-4uHWOdfoQl zSoJe=sOiM~vPu^)h<Ll@we*p=%yt zAs-`E!M-@$F|;2CT*mz!ozL_w>S&{HDXYG2Ee;G~VuWOe31(@mp^9@oDH8r5GZlxW z-U0SRY?Y95iGYZ}iUOsEW+xfUt2N07^K+3?U{F$3fUk+t^b0t_=v|FtOfZ;LChk%# z7duG1RLrbzDHC8&>E~KJS0X)gOmWk-7~l6X7&P8&4CzS_<`M*SQ!GINZ#joG2!hws zHOj&uS-&;48LSwB|Jn~XeSAmyx_4llB0d28115$ zcB*5KRl2}u4KD+f?~{{PoCj7M7Gb%mv7KnH z#+OP&5CIqrLsM;R#W{HsT3Uf-#McoF7IunFah0EG<(tMl3iLH`VDMS6b5K7!J#tvC zOE5FK;T`fsTz^k@^F5Jgi*IqnTG0n!MWsJBoU9j?h3zwR^S$ZtCbzgLrU<+Gi+uxS zHSP!w4S%e#jx6F&)H-a}iv9%Akpv#t)G#L;_ClJIawsxZc!0kgZfa+}zM&L5Rr^nl5v)i+k|iB%!WBBf zs1cRCgqKlVygAAc>~+oi1KtS-TiR8yqCfW9PxWIfFvb8^4&_k>1q?EAn|F~N!`aV+ zU6`0_M0n)+P*|#O^NX@{+j66V+d_s%Wrd6CnK-l!5raEf6>iXLz^3jCSWFMARm8B< zX1ec}7#+Z%kg1IC@pZ8;+*}x))}Qtj7_>cNDD8_oZ1{D(U&b;{YX%sUd1}hZDgIvf zLL$bK3)0~WI%pTsFFn1BOJmtGsDtt%N%)887#dshOnH z?892Sss{ZTu;N^X^UwV)awop(Q6Kx{@9^c$B+BJr<+coB-wi(u=FUv`l&tewSDL*} zS$6cW{hBMTVrQ_a<&RPuYE&)50wTgj%`w3P2qzK~=p_hWw#;qes?OH%G_Yb?u(nRt zFv1*eereC~kC%YKJraL={gVU!etge!m>%yYFj!8kQ*Iky8_eG>J{=TUr~re@Bb^Vk zeOL)YB-U_?ihBr^rYEgB-+eNNQqf@j<&%j_A|iUU@i$H0auM zjKoltmgiIt!@YpYxQplszWXs%^o@Ztix0@#`v#_r`ir>~+YkzW9@`Sk5jPYza+C7QbuT?wL10ry>i6YT zW{{8+a-O6-qz?}UlQX$(3pt0=9OE|EmiR4(caIzV@KXf`T&la$$zA(9M&VxhmjOOi z`whg`Yf9EoNBHZoU{gmVIrG=g$~oZdz(en33;$>IE1y zHUw{+C}~liXY;D}Gi%@tAPDcUvT-YlSR?PEMT|J7gB6?W_6#VVSDZ42sShc2OW|{X zUocc^&0r~C=PW~zSx;<-2!jqeh#6SGhY`cR@NE)WNDw5ffc{}!NWd6>#0!3be5=3i%P+u zDfuwoXZ-Y)@B?kM(f$7L@Y*lEJ>un2apS&(j71^XKSowPVF(JEo`^2f{8z``%=OPk+PcwhuaLGXAXR+`%UXeNsZ%|;+BXl`I9KhAV zJ7kl$>|Dq{?%dRj&~uoum{nj?HA2jD*=bx~Z{zUACWm=WV9>^P{0xO_@3>xh9(yu3 z58ibYcbL@uW+hkd9dIxqs~o;;(R0RQENPCY$lh)jyC8f59+oNh3^kfg4YvecJ=ve> zQ4$L-V}~`#UVt-?vB}+rQYH%Car&z`zI4#1m0SaefusL+;OQO+T#BE z^{5Qu-aUKH>;i*TOBeigCi|rOE%!#pgUkAg!C?D~`Idk7&YL+hT@gO@_&qWLQ}q33 zHy@1|dSYGN+kG|xuDG%Osppm5mvdMC&j;Al|ASrM9{I=A?teaqf)>lup`D+UpO9J> zUHP+pDjCWlov)cM0@r3sK1`Xa@vEKJ3I?D1gcqOfJiK>H@Z`n?cRb)7z(3U~e_XtK z`%U$BN@&pCN_Vj0jX->$XXCz@qGf|qpDp;C1_pzlX8$>uShw}*UQ3(wZ`BuIuzU5s zg1ggu+ce1T*Q)5JN5J5NTx+JRWA?Pl&+?`-#qt0Q{+GKGxVYhMg`lYf?jecx|0%U| zkN#QwI%~GiU%LHZ#dA-h9p*m%{q`Hf^k?1V|BQga$?=-6o;a-x&Hiv|YH0aRcz@h& z`RwmUKfdKBzSuN9`RXpbaxVRI?5^a{l$~Go%HJ4`g+GE#9pgv)yw&ahB>_P+wOYwI z82oQ;*8lqx3@+2JBxRs8a4f6b81}Uo3=+$_4bO=ax}~OdO@`-=Dln+ysayVqs0SGf z9FjKVfx$fH)e_OVS( zztKyVfI)<$3BitG2a8fM{`f}PX)x%ao97v1&;M~I!PFu*@jSp_6Lp#X{#l)LS(CnD z;Dl}+7(6P;OWYGA4ftnn4$dL(2z)Lt#=n_mDiH0%boL<1^-OpJAdFYJ*movYFDqZP zeJ9|unblI4$UFXxOHwrJ2a#zAdR8#0t1#xNrE}6S8jWl73Zu^BXMP``{45IY8G%{W0$l}eV zzZR3pMxn8usV*EC- zt!R`42Ez><;#;F0G0%Mm-RKAcHc5t0mv{OY7!04A!{FO;tHQ#g4u2WJ zlY_ybV<$e32;b0nA}_=|cQ^~aq*Hjz*TqM2GDTZehkdyYzUQs=4C7>Ak7HSbmW#c@YP8Y5Rmyt)SFP01^+TanAzM;wt50b^F2iY$ZJ$Ck~E}(Q) z3gDH)weHrVX%5GbB)P<@&qZg!riw|G97i8r9p%4lwwW*S1avIfK?w@p`>| zYu|G)xakJ=YGRJ_f4FC^kHv3j8v}#!B_}-Ah0PiFvx|>WS2e>ISd2GzIZJxJiC*k} z+Se7^fq)f*18%4y1hI=Ha=y`9{tO;J5cYf;F_Tt_ixn`Qt4(_NoLuhjrx@agg=~=; z1;(_Ka5qpV#osVupUbu{vhDq0ks01~R0hptF0qxj(U?-R(5uZATsdV+qsGruzMJrm zWR$I4rH4oKkt9OoGVNKnybsa$)q24>upt9*h9 zuDIf7Lo&C474u$vOmr>sWpP*8;gab!@LukL*4ue)Xd!8EsNcKLTMKp{P_ctdcHK(S zK$-^g9enFw1pP8st@iL;aj!r5Ain4+JVv_fJZ{ufHs&q#+*6KsQ|tj(4SQmvZ>7Ao z*YJ`&7R5XaUwYsVWDdMsy#976HSL3mizWqF(dU@@JWfX~G0~X)?4q-az~Gl8dykGD z&T!SYtd(@+LwMyp4#_er(nMpJSV@M;{z~F7gg&=>p2bw@dg$5A}<>ZGW#2tI^{R4j=`dFOu8Qy3~s8#y3v|ibG9mczC_$ zD0j}tCq$ELx{)Nx?`Z}rhN#LlM~KdB!@vO(zsd}sS2=L_Pb6#<6_M(E+0PckTuj-mXfMTN6}GmKgXBqY>X>Rs{5z@hFh}tI`|x5 z;o}LvnVk7MuLVqoE$dG+gH0We3SV@A67v{Wjx*8^QR2Yh!H)3$(0-o1P`SYmh^D!kM=_T-aPOV5*`fy#NgEzP5JR$5oJRK2bj{}X?Ad2s$J5z2( zg@Nzm8pi)&)_S3~5&1hf|dk)xkf%248<@v+9`YB*;&_K(4)X3?sQCqKs%K7r5{6pwES6Kv z95V>up|1EoU$0nESz#za^n4k0J-p@AvJ0Y_%ko1RB!rC)x*iEPRUla^@t#Pny6vC@57MC3}XTI zj|^c|V8vV=>*S4;ymNuVxEK;s3-?$F-R{=IRiam9TTWfETn-HcEB@hOn*Oy~Jah1t zrD|w==Nm9M8EL6Vev)gG;exWPICmXBvl{UE+cNC_){e64abLmCC*fd4>Fl-BDO10d z)NK9rZNc{q@cF8Gs3&}KXm*Ntbwl>8#(WpB;_ldn+PCDy3URO|diM7c8W?=~?|yCf z`O&jKx-y6$TOWc!>uy`OUR`+XbC(xzWxV`pBNz+_%q~B2k2Pd@=>8z-?l^q)v3>B~ zB!8DROg3HU9{eC0KIl9>a#0kSJ^a0OiDjQllI0Vysq^nvyI3rrxVX+QNO>!%fbZA# zD6nAX6fl_50h`e{ERV3I=zTTBf6`znfaK!7>$X z4!sKoADg}j&wV_7=e1?s^n%56AAv#1;ENFVB5QWukX_(sxjrT^*t+%U$!#y!PW|WX zv7OUWc%>pCes-4j7ZgkOw@;_PxBPVota$nEc=GPI)kkh0+`B+G^6LXIn6+ua;jed} z&7QnFJ?}yG4tOV5_mRYU3}g1qn%R>=Yll1wtQct7PnsWi<Tf9Dfl#Ja{SY`m$$aR&}Hu=S|2g^ z?Z|GtHLd^j_!kIb&FQixX@SdV-EV6pInSG%M|bn4>|wye(}UcfrfZkEQuq6UopSq-{>dm6RTE8Jku2`wGqo|CGDvlMuuq z0Scl*tXuX|L!FM_q*sLJXgr}Dg7R>}o-G>Xxnr3Fn`*W2NoT^>lB)_taEeFm%qi7` zW59}SyX+Ft^@Oejr4Pmj;}5?Z3~cg#n_p%v3ezc+{-hJ|yTQ!sKT{psFf@n8zuG_i z9?4k^HEX1eY<>4KVp(`YI1fHqsdrmf-#v^OGQ?M~O0oAkz?E~YvnibY=S-&gC{lqL zdyg5pCfpR{I>w5qQJ1RY3^`n|Vof$Cd_jy|ZcYgfS6Fdr4H(p7Wc^xxtg#t~*>-{z zb{Guu&ead`<*fbv#iCm4YIh$PB%sj>ELo(*c9CKby`dKjCVo%xHjpLGYvjH)Otc?- zWiBV6EJFLb_3C1gUnmhHfX5v?l<^69)+lg{luh8v&%oEo-%tf11_WPZsEl@ydl2ES zbuOF3sX#lspiuaW(If>PTsg7z!3oStnOV6`5qF&R9Dj7pA7cp zP$=HwT&DFfSVk3Nh;4ueIw+&6kLfx759^JB3W>fX2V6uZE%vlWgUr;@Vai%O!)pi( zUc~RAOiV;|TTds8{STqf5e&xYs?gXhV#xqT#Y?S?u?K@rN+Y92jf5aIxV#Q?A-u&I zWMRZ>T;>=iYR-u@&&lv0zy{?dQiejY{b3Dd#BVNP6m06TDjb5-5`-uC)Dyk_7DHW*Yj zNUr%+$>r7TM*2QN2z;vA+RL5ECLoIjXbq|2X7a2b;Ri z6r+wF^+|W^UF<`7!h}1IwzM0G#~WO=5<~h0{PKu=u%fRHJ28+jlH3x=+_4FN^(`3m za#)(q9xe7Mbgc|1`jV6k2Hl^jm4xwKUe(NXjYmi#_?V+zH$3EOj@?2YR*g=i4X1(? zzjZ&IddAsh3)#W^(#38AJkk|(Og|PQ#q)##pN5q^DyM@Lb48fbdbz1X8H;$?G6nEC zpmDAL&eZ`|Wx~#MtYI*X2v+=B&dMd7mOVL9|7hs4Fy|*QIDdjKdnvTfh>axXraQ!p zgTb>!Z?UIxwLjn|Mz(+LIs7LWbQR9OMswclAou>T_vA`;IvBiYb~`{ym=V*1qEQ9R z)t`dFuGQu~lS1ho@-tr%f2tS$UT`1bqClGxfv3uJ(dAC=~O(l4!$3@i4P1b2!3iojq{*HG{Z$(RFa7u#$&>I{FZL`kC7LY%P;G=0S2=?&gyyYyVzs3l%cTzcL5mGVV|;FFxD?^@&F zw8ux-_vNS?7#!O(i^d*LKk+Fp<@DIL=kUc2SI-~iTT4YBJkxW^e*0*dEm+a?V2Bew z%U0)6uN!x3v2GJfK+Qu#PDC7c4eBY*^a@V6Vf=Gdkp5dRXd7PNlZ(H44re4>w7yc# z1cN0=?T4sE<}}Qj#Ii`rhHx-gTVQD6AI9(!F4?8;C|qF!21`G)y}mYh=|gquIedxO z+yn-NWt%hRTxXxA^~7Akf9i$fh`l zaL%{EAnErrwcB(0F$NSyfP@{AfWe5|go!OxStzClt6FzzA-wDG@^@f!Mz;{PI`bG7_hX7uTB%RFQ9CG+pc_D5n*bl5|e;$AO%Tb(C5hc6a z;uQiXW8>Nn+4Se}f?~0BZctT)(mSeB}+&<6H z1mgm9s_O{Y)U3i^$9|)Df0Y#TI=tI<6b%M5&y(!u3C%I-H1;jY->L#I$l3gMJ%#;q zq?yy%YRWtT&s*T*RXSG=?+fgK`7Z{0-(#actO8l|IrFB37NtD5pTYA2n|d%$=ylV6 zmqUSPjGr0aw`4caR8yqfq=a>vvkS1JZxr!7TyE!MYM&z z4aJ{V^M`_T?sf1c*QRW}WL_JgFK?)CzG~$O>dN$X6*UH^^ss{!A8kfrem=axYIv>yXKr^ZAu_m}T$E?IYC{H+z`Px-WBXl~)f)x#7 zcKO6Ip=o`sDXE+_1P{xgj)vNL^U@AF=>m#QHV=ORRumQr17{Q^*0Nt`gq)?u^ngLJ zbw-T@2ONmt$XpZE;o#g1B-bGr(PdrjJP~2&=G5(+16H&h@#_*y(85b|b9$PBhnm6Q zx-jgdZ7iXfef|1hIC)zb7(AAG!*!jFjn40M^K({cFT4S`bF?_uqLm7YJN-xp^Fj<% z5rv>PxBtO8VyPIK&RA!81LctL1@EY*FWnDUUw&eNzijJbbGPB=sK$JX`-?f7i`?NU z7S)GZ8(w{O*;1YS=_KpzymqjuFaLP8tNlDBdifu3jz2X=b%Vh_qJQnyn+M&s_TI&TH=FyMMJGxqa`EWu5yJSaIT!dwFq_L&{{1%L21J

    xoQ0`G4xs&2@ z>`4FNSH$U;U{F5T)VOPf#m#};{o>Kri+sRf{ool>;2lecW!o@<6ce9koz1b`?802^Z)Ui&GtX&MYZ_*|sT zY5(yb%AOlO%o{7UEZ^L2DLS;M4hFQ~%u+ zZ0cV7==^+gVy0MX2L`!+Tl|X{jrj}q_-~zD-Yy1%lE%&Mx~-Rjt7rR&Kl^p$2^gFT zvRF42+wx-ftM1Y-e$Ixc=UJZAKWcapwo0GY5d3;@`fsq}!s#FG3ftde-J>mm+2>Be z$JG$OOEZ^G`g%Q`&RuEA@`5WCTl;UV>~(nK?4Wl)!KO+V;H)PUHq~0Q!tzMLe(?3@ zE`l>d|BmY+1$Pm^84t(;tk|@!ky^Bh(02|q7LX4%wZFDxctmI>mh2P8+xmq62Xe>Hp4|7CROCup>+}a}*5}FmJG>V34oDn8?I@ zx(J1oA>oF4Flg&dGki{9ivyxFP-q(l9SkCF`dr(NdwqIQ^Kd2g7<{<{n3Yp~C6 zZY9E3gE523JSNf3j39MuhPX4Lz>3eDiJMo--DU((yA-r@vfsd998E38-$n?})<(`1 zc3O|Pgf7jcUSQ{};biJlYN($cZ;``8RueI!3sZZ&Ie+?e1Ynzr;gg3xTw15`>`#t; zy(CGUiVII&$)W5_Cl+Q|gF$P#XcG;-q$3K@EsP}M-)hs07jr#b;jyj_hS%h_e9OYJ zeTFN6)(uL*wOZ))IIh}VaI9X7ey}Y(O4=A=PM2kR z%-PUa+$0iX0>Fxrm!mZ}|0T%5bq9eFd`a>JFyQWr_>+C|_p8bjFy zIeuN?{FOF^W3E2%4tYem(xK4sEY`Kq6XRQv{t&Fl?M-n}7{eoll-Bd|h9YM$D9yGx zIvy4I5s~u7LAp=`@2uKf>@qj}B9du0ZgfgvIG2DGodhIJ5UPlbq}zum7JI_i*lX}r z{D%#n+ZN|BGd!x&HiH$Di;D`>N%)ZQO=4%+TkL5t_yM!J@Pn9Gd>*$a_L?IN-d43@ z%uG$OW3iEG-dt0~?FTEq{EurWhEVm1*gtch7R_G|20M|24y-obcOkcv`+!rn8w{R3 zOxc&jJV+a1u?raAZn+2sg)t1>Dn`e(*)z-;{f*7TVDOxSZI(HF_^ZRrjQB@4Iq;tR zP#n9~-e;S)^*prkI_(zt8p0BGaYxy*&Tikl{bi>ZQuuw$Q`I=wJFV?U5G-1r9tw7@ zky>n7KW{NJo_w~H8CUpR0aYnO@j9R=`7VC5y-fO+hJ^m#|sg0;MJ z6JW(a?SZz(+~*#lm9U6$H} z6_*+1?{Rz|xlk3;kB{oyOs@@YMft;{ou285EKyFHdo`~%R#Eg=2QFi3#=`FwW3?AP zHiYWdRosRTI-zszB8~DH*RD9`;%nIx@B}>_=6H*7*Dm&>5nXpja2R|o0Pl2Mf6tsj zyR_!WyzBVwlQySC zcB+4DJ-p64sQVMarWPkujm#C5IkR*V^k5&`7BDEvR4K}QYpbx56Xii;j__H>#44>y zMsk=b-5)8$aK~K1iY$z)R!2)PZkflf36|~GfS2HQ;a>KU>8wqA2V8xad-n5~b z)nA8owpHJ;QRafdggUwNtoZUdZr?@}ODaEBg29Y^q#aHtKe92DeuXJ3OIrg5bJyp` z;BFlFlx2{wDzsC<+iEF>^49L*ZMd;f5&P4e=;vg)kK;>tFIO=_ zxSYpL2tbg~HPSFbELbs_SyABqZCuo%nlpYB(s#4K;NiJ8UNnc;)`<8U0XRkBTrh}H z1`vekq=x;HfjxHVaZX?me`B9_X9hdkuyz*7<2)@M3_3jyI~Zb?s|Q5MEPa0$d}ejQ z3#(PTx!KCByP%dBJu<77}R1~b(s)s>N2f@E2_w8;b>>haA%!_ zhb)F7t#3SN<cKkUYm6|?2=?s1wp z^-_N2;(W5n(lptAa|O7JFZUMQcFQ)69N9^83;g~fJehFU2l>vD&n!>fj$FBTcOU7+5Oku@81mEu~a?DKKoTY{IR+@HTy})JmP5g2T4dQ*ZRpWJs*-aPVe<`fvbCusOZyM|0y|+l)h;H<9dBIK%E?#AJu!Qg2M zbsj#~LoZ4pNh&Zn_&QmrS2I1Q2$x_k@2K@H-AATtJ+L{|Ch`}u5ccPoboR=ng% zJ8;Pf*MtyWqK+E|JHVhRS8L~3f-GxGAuM}LiOF$zDOH3SW%eEI-f=V(l02hz|f-4PnOkGrmKS zb2YW4!=)W?aOL=KTN%!UEj49Msf8M9JlIr(o>z@@{FTSc&r3_O#lR3x7Iri+q>0vDKs1b20lolUX~#igq^^@|}|+ z#(g75_95|m;0|(ij1)74dB#gi%9~&n`P~OA)`fAaCltJkX|EN&v0Vr}S&oe+@rXH{ zWm4`~n{Tvrn>ldmT9Evx%DZ!3-c{NC0!h^&FgP%=RQ7YiP&g)HR!7k;GdvkU74mD> z0aCXlFZi^4xsdG(Ry;-i+oP?hX<$8Bm_%IWoB{?D4$NGnyGIUQY_H^ovagE3AY$#I zZ1E^Eqqb<{toR%7d5&7jb`+b)_o#)=)Gk*k1+1vPCC9vAiAizPZeozaeGm**ZZPi1 z@0kdYl>Hjp*vD!EgEIv}} zI2;j^uHs$(&T*`X3pRCWqlaB=+dS+@>E6b$az1=SelvWJpgy|!i%e{J_yf)`yyYBl z+L^dS7>GVZ9DnwSXdxWzx>14ktZ|TbjBz_jpUr|d08_({vNn%TX(_|WM%wUk1Y9{t zie{bw>7^eRVm2qxtKgHssLZpSwyfDXWO*b%ru#%FSTU?Bk;`XN8;C;Z!Z9ta3=GP{ z#-1GucV29}jdC>L_-P3kjQu@xMa4Do%3G_iH)l9U!F_pa$DffY%-4|JFddj#yHH?7 zUXn=82#C43F!LrqJeN8K21zQeykBhe?F)IXxVSX07z}!!xKUEoaee)4^w=^Svlku& zP}SlCB&TNgeO*7s8s%<=4?5Mh>;i+)VWtDqq%iu;*akK=DA}y@Fotq5V|3&c@*cUw zBk4v%7HOamt^8XZ;CPG&R?Mo}rtMK!H_cJ`MEKzh@KuuapRTQ?b0T~) zpG0G(GD--kw`V4ntv1|;F9fi^t8!JT1$7<<8MU&a5+1TX`dx?E!3SSGw^RQxrp?hC zd>@rxpZq?tCC(>pvCzw~aUA|2yZT_to3$>YZPcEYW@Z(}p1t?b=h)KfVcuLq zAv}IabUwT6s7uq;?ZoHt&A!#}e%0Br$w6dFG^(Dl-!5cokAo{m+$CoeiHmZjhjMQ5 zBS@cu!NlNBHz_amXt8Pdbj%_t$00S9|k_Kew)j@!R;3$CLr@D z>H6r4U{k&Rdd!@6^ayod12c4SZV7ykhw}Pjs&Uy&=UBrwUtS#@zP^@fxLBrg@1JGM z9q0OHP!E7j9p6Rz_*#;GcueprmM;7hysf4Xonz&WEPD^PUdGT@b2fq%+1D67MZ<%o z8gmLtjmY+a!A9>8`Mz1&)Lc?Nf3-Ra?y-j09qSq5(MGBYJQ=3^QMglv>dXvH&$~u; zHJIazGM9FNO|8S-?|4|F%A(%i*r<-WM*@RxBZ*$;QwT>WCQ0pVBIXw`h}}f5jG=X; zXh=fCn0plbLFWC$PB+y_>Ak*rENu-19$k0aVV5$>GVX~vZaU+YPjdj9x_uklQ||mM z{sZ0OE&px6W$}%f#MD%59?z24;8sFM4X<^ttM{(*(Ft~xz=N|Xd+@-p8mGQ+LM`FO>aN^L|LDh3c%fz9aBlyuBU@*kM zPnHa1dY+v#(O;yD2M??$OnuL$3IvT+)VMcl_Oro)b$sloo4<{y&Z9|g8*+F77%Zlg zNA$E9l}GHP8FEL@QZN|5L6@}Z{;Ex+nZhMPT2~qvGdU1LEL$IlO zzHE<+t(bkdP+lqZ*aBZ)m2k!E{uYIyLpvkBNEr>URR$+oAe?b%d7^7!_v%&bO0cQc zc}Da^$X4SAWW!I+-bQ%H3QfS&4;?iH?el8tGL;X)U(xVhEQ-G-8c(jomov;&h7Z7| z_C)l@AHBdLefwtk{Qtw=n}#)Yt&RIDVG|P!m`O|kF*BfuNr(!Fl8`WjS+G{EwFr^H zq5{$uTPq<12nZMgA|N7@I8<9vPpj6}Fo>Y2pzW#caR5t|_E<%7WpqK*iyMZv@!;G7PtwSV)C zL)Nb&_pS@{+3_F;T*Y6*2LC-Fj=t0p;QDIX?H2gxQSSNR#-(Y#uinp*+ZcPCqB{qf$c-Ik{*@T`R$FZS%Vs|%ax8q2#~_43sSIO2q-_Q|5tv+{m(3Yzq_ z{<;?oKK&(Vf6&Y0lO6egI0WpodkF?dk6R~9LbUeP!?lf1E5E!22D=wO6nvZ4FMie9 z>`_+`76t}yZhhxQ&bEoA56_3)^I*P$cja&Y&R98lGlcPhb?dfY8UAc=#9vxsQU+wD z3mw?+abA8+DglEoA9qzu`expKY0J!dG1>~x>DjTY@g3in-M&Fz$2`2<&HWr4F=|om zm(yFKQor2saAI!HOCuP3^p5Nq-I~7e(e2+k54W)4<5dy%_LMDysiz*P3*6s%X+}z3c2earIJmbOr|#s1m!)S2L|&d&rP{GFYlL-XIsjG zCQIS1qo~!lv~=F9w9bFHT}iz1`|t3Gbr%vZESUD9va{`)Z?N|O7`&Xi-RT$h2e%#F zgQ;IlSvnsK+Sc0>y|muVQ$3t{Puci%7z`qml6TL3ul2kwP0IQxzZ(orZoA@pVQJl0 zH~SytZQ3@L1qNq5x1aVjC6~3}4{__uqEh&KF9i>l{t`5eH!!s6)m@b}1>TaceclkX zw{F2FwFh3@ZDrLvVdPOSrh>_Aq2N(6SBGbUIC0F?y`)84pWbg*r zA1fKKt$wAVS4zwJ-R{c35&z7q>N!PzmQ7)r!biwp(3Z^Qd5>#bHOueM+JYM^E9zcN zq;P{XrBNg)cy8T_OfqB`rny_d1w<4DF-}KO*so1PWmAJsK|w3(8RvRA`}%R061Y$Z zk@!f+uqAN3!A00H9eEH65^Txih|6OXN!e%$6hbr|mWFJpYN7z!=i6&Np&$VvBPE|3 z>4~OzKp86{IW#E}6ELP7ScetaZ%n*E#~ixBNjug=onjs1Oq;_9rPK0zJ~&6fiad4s zYVK0ZVFY|N5vV$>iKZ)R62YBYQDuuCfjrFa+u|#QYfQ05e#M@=K-$OwwI@;#{gSy7!==Z!_w-^NF5W;LW*oZt-q70A`tJGjn z#1rVVXafEo4S|cwN;9FL6&Z&)?0kV~L8V`5p#q8_tUp{xR+71Bx}X-3qrplEE^IMh zDh*(Gb_SRf$POG(#6#5wObk7dMj&HN^yOgC^1%>7ZM;2f0hU-6 zj)FtUg|orM>>0Zk5^xmLAtXjbJ`FsrO;BTFou2cM9g)cMQ+xuAXKO^2Tw@W^r_Ce6 zYgetKnRVoFiq3ws;dqe++{Gb8kjct?9hGgGp^xXP;j5%t(HXu!k&?(YM`EFS`k=K# z`D6hPOOQwiYz*sBHNgFkWm1~H>_2xIwl($%1a{xb(k8S_*of&$SH)t11S+I2~rK}!9~q->TXsA`i7#S zj0=9o1n~U<4b-pTMS5S;t`gdo%FZRjPlwxa9x0?bs*Fi#ZyP1A!v2Bzl=*56@+NZQq(h;NC4F>0@0hdC_J2 zv9bLsEE(PcgmN!?>@=O1^KwJ6*6Gp~upG>c5Fw7NIKjBNkF7QR0}S@{Y0m{3vpLzH zk~WaCYe&FfZ7*H!?vVZ{cw4ZXd?;822C175dc=}Mv8K!g6Em^QU%?bzvIiI^#x3I=7>5XYWynlg9s zcCd>>x{qD}N4&nSc4NWpS9Ec~9Pz-Rnn*DCt*>!Y?}^Z`g7pcKG@lIk>n6M#AuMUq zY8GvR<9#$lY63?bjla}%U)EfECxBE?6e@!EteQsGek$&?Z48pF6ANw2-h(41ty~kF zb8NKg5k1pC<_&LnE0;ih%*|ZI(n`|f-|EVYi2z63(i~GWx-V;;v~`U9Q_*S-7;HF& zMf&uVMH&a&GPkNs4{4pBb2e6`MUUkuu&T`MMrwTuxkq-`7 zyJPz4EK7IJ#R|P&)qTn^7~BwlFyH;?na}9tM28d0p272sNYO&i#8Dw<*&1C<-r9Kv zaKwAxGbpV|UK4J~mN5A>su>KDx7x2byohwv+lW$hwpWM1VD5Xt2UnFWJJ~jvI26nB zg3C!-EgZj)Zfu-_?Z~e=kzfHwZ0t|nr8bSwFLkUnc+VA8fk8hn?smi1AD*nGH-v2U z9)iz}V4I)Qr23q}E3%c`5&1%UaKuo=~7;Xn6tOFFoH8@zvXBCGVGeDk?|Tz=mfcWz%gxQ>djmPpec0l#~7 z;bC*5ehwHs;e*xqpWrze#zfm0?Hn-}tnp43_qL~11`szU=tsox!Q65|l-5GiA(>lY z3(bxJ&xyO#Ggs=)GpA{?Jnu8Pr{Rs9M{)kxoRV{4tmFH3)y_!r0@smOY!K`kE@iK1 zqxB2TkxgLmyo_4aQt`cy%*}Z00W+8j28Xv0Zh1f)aZ z70brSs1Xc$Wu?6*_n#hT7B+sA>-i)U40e7LRiS>s&`d1Xhzvc)V!`10Q}i5q7I*HX^r$kH2R?=mk;^k>SA=iL zmb!2(wicNRe)@*=lw&@u#2;cEG;WV02Akk5x%OnLo!j8WnVIG>(eY95yI?sV8fYR} zyP>iRql+2}^h029;#6|cB?cw)ik-eLXE4nd42D% z1XY#_cbcjygFyg;`MN0L%F2zj3mxn_xAbQCMZQFt@l2k{5lSKhPcgO@Z2?D=&gHmf zs_V6zW6K!*_Gu|#(6(oR#`I{$`Q~g!M0DUOc$a+W;!nac(c`3Y8K-%#GG`??;^F7i zv{Pge{YIpRDv+7O0E0<^2FkLdi!27@&>h+@hBuGLI8_(r3AGtj*_1|7;os=zgt&FF zTZ=fYM%#i6s^Bp?xTvvi4w|GP5B{;WPSv9w0umS;?l9EWY%dGHkj;J+mDtz-23_@) zZt23Y!;@rDotfu8Dy5Jqo`ph0MxGyYl*G2iz&v7GqPs$hJZD8;| znLUs-P@udcK4GYd$u#+y~p;7Ehh#l_i?mYn&$9*fdk;8 z)-3keS#v}7lP`aKYu&F4;Fp{^*WJUuN@IVB$Kt$2h%?ZC3`F zVDO^b4~`3F65VPjXUP99I;;kRdcU4%N+)d%+ngly96AT@AVtW%p14eKWGfQF9A+rz zz&l7qjud;pYI4V#DHp~>HPJJ`MGa1voArp17RZk(+TtAH059rwgc$oHcFG@pZeJN1 zCKZ4qsyp}ZWeA7gr_jXx)M+O8O9NZ9s%c7@lQ_-Haq8T<@G&?dCj!G36Xy}6TjN9b z28Y4t51RCx6sh`5e!IuWXOXLOIpBzuGpU;+M^@VI0N-|9sNDe{2G(b%B^a87luAK; zns9qBT+aIV@0}d|JCqz>NBYWLN$|PnZpRh7L_B%F(0FP+g~>kzu4CF&e~RGK@QtUv z?wl}OOdJJ+Jo7T=4$ivXq@pxmFPE;lV9+5v*_`I*CCqmUA%83NhPQG}1Ex{a+nOF3 zHwHyD(&2Yx?+A*DUai^MR(W3Te11E;qkEMWHJl#5(_yA-{1{j6wg6nmZI*uS9ib@; zTYAS=SrQGO3C5laXJXEsEm~iTBtu4o=hI#^_0G%uLb*PQv!qqN(gXfOZi$pB)?myOAzuem#_Pif{ zW3~QddkFu*hg)|)+){M!t9xs~MQwaqyYZu2@7rE(m^th4-o5bob@#LC-R+m$C#zoc z{P<|`zw*El&+c}*{q#Ar_nB}!=*FU_@TV5hw{maYZ~U08Wobg_X5}+*#IO+8;>YT| zuNX_up5N8B3x2oS@!N#3$9h9Ls<~;c9DWSHa>}05hrZEFKCis<_14-e&F zM+Yu{^eFK1;y2IU_XUHuCL}1@)7AQu&quf3XnYD^(U0`k@uZLTE_t~plns923|Y^y zf_~h4pOx~_l%melr{N==IBVwfEYA4)z~4jKeSKfT@5r8vp-{&VM(34t-)8Nea#IDC zlQ%KbYT7cETkWo5svEc$z~Da1Kvd83nmMD~3D&0ji=Dw>YT((2FJ>rT??t~2p{4K_ zKvjFK^-g)O_dtK%bkBOv9vpG6^`Ec4um5;o$>6KW-`taSfWgjJcQ=tf_~1pi@zpPq zXIZnrp!D{j?S&z`joUN73A{405dIpMRn_4~v;9rJXIs(N1n&ck*cS6u#3ajBw$u)k(|Wbwh!w9F5BA&4dHs?L(Z7!Z1_#s) zx)Ew<_&u(92{Wx=5DeOKK*VM9mvu7M_4rw;Q79O!Evi!|+&S*1imJ1VXkQCI9sIQY zWoCy|afO#f(%-c%5ggG#q{%1fatlJdT3($TZdDUvn4naViQGb|lRmr%en%Dt%%Fdm zo5D~@UByG(F!-pP)iUSqICk}FQTq6J&uM}KxQ>C2Y+3sLRPyuX33|uB}_A?Y|oWE~;GQ)v%w%H;BwiR+Bj%K73dnpI%9B ztyp%=uYy~5cohbYIE?BLS6r_etdNkgJ8c#)Nc0or`)SoQ53`>jLSaY(gFYj3IML3b zfzHkpHKpr0yr_rI5l@UXn>h1*)A))|1easrS4R*T!CHa(fJY=d0iJ{?@9Of&C+-m^ zknRY|iS_Z|I#yqmyZlt=%KJ3l>zbjk4*oPy?Ltk^u?qNyD>4zHht%gnSGV<;u3#}xITA3JXxlsx8(Ya6YTx0 z6DtY+(;S1q5xHpz#KQ;b(*<>$<`~g(c<<5nYF-G3sAR;^OnvM!!yRx$4<1G!hL*U| zFNE3giadwGpn_XLw_{lP=wxzbr(6En z>DjJMn~OAHkhHre>h6N@N3JJWm3Jfwv%z4r*h6|W;YX$1cz1+AJ@*_8$}L_9O*JNl z4o2>;9rzvoOozLJl3{2iZiCj4QLuAXE#9Kxfz8|JDfQbNe!h@s`p+`&`kq$gv?*uy2_0x;+!t1g!p zsf^v;W5cJ_Qh4u?KDUzIyo>!c)i-!l(%%vVj(AR!Vf!T;5*3OV0jb0rKGMra{aCmK49?Y-cLwpXp=BO15*s*QZXPVIc~TTI9&nj4Ef>Z@z|mLS&5{J{|% zF~HfYt+&FRv}TGjc4uZ6{P9zR?0wf`D!br`bX}NhBD)P7QFetMXy#I>*iTJNK35B$ zCy#a;6CK%DHIFj$U3Sad|rc4e6w zeu0mz!p+*i^ST?up^?LH2WAJuTLABCinl!MjgMIu7ihfw+zx|_Dog*FCbzxLSyqM$ zv1^y$y$+S=&CfbpdO55>!}UOI4ZMe3;gG#7e^GGxEJd_*Yv12^sCR|GwcMO8{qCxG zcZ-a35`LSj?|S9u)p}_5uEhV5@scjl1mJ z9jEb#oTL2;6b=T7qS^%(j`k0_H&b??eXt1(&Q4P@6Zaa;#9ZyU6T2`G7>xLQAgo-U zTU#ElqW$O41vokdx)E8j%ysO$GA78Su~<{6r$A%PR;-RiZ*9M^sAli-LoQ`jBO zg63H9L0>~LJ!1tJEW?Z`J86lDh#4guY$`7SgFX|)14k+%AJl!A?zc0$8-B?}PtV$) zd66^Uq?wt}`t=$GIO2L~uQ*c9aT0ld>agtN8a^1Tb9*#ed*m^MciR%5DE_`c{N>*hR<0sZf=>Sqy!#|bz9vo6*A6) zBewcQ&ynpY8ZPk*|E%024E~^GNGcp0pPh1QTK+;iEHD86hF>{t7o&IGa7%yS27BSI zl&j#PUKxr0_;N5-^>d&h!)a!*8VrvA`j|Ut?h6x|!`zNB&cQG85xFrDSu9Z$`}q5I zUW5C=5f3Y~7UoAR<4l`A-}6yPF1*b#2{Yq;Iy$xC9S2UbpT)o*Tcku)^r!F}VySVR zO-CvM%;2JSiv@hoXBEtlfB2LvD@lTkMVXNYzJCvGN{9 ze^AvN+e|qEgUn#^ut&as=}Lgii{7IsQU#oLlMQhE`LPyurb%YORI>RRrIDN<7jwDq_7sT>Jcib^}yDFnt z2r^blZ@DeqDr(JM`21?*Hc<(`Nb}galiDvXK3NR5YA{Drwk)s=ucMtG%69&FGZ^Ie z8F)fF={auAbD3Y$9r%=fV)o6WIoNaRhRBdo%_G+};D{vAf$xN})0FG&RmLlAhu||v zyrDU1OCt{pm#;xlc5hhWod<90%l+?Ix4iy3B;Dq<6I|3d>#3(%Q-{8vRXFYJJ9)Q1 z0fUK`s^e~3*STUrPpXuG68QMB#hCZ=-4xb~*q&#bljA)Y+jhd=`lx<#8W`MGboQxdV@A-I#WSDAzIPLzyRtd({0GH4WLuxt z`g(ode}g0bwVv+~R(tlnS#Nx+2?K*cv+Ag|5B@bPe^OKV>m%!JFnD`^bj1;cKnjk@;A0W+w|QVsjvQZ6AW4#LbD%uCT>0cvU#4l%X$P1 z79{_8yO?|261R)49uryMX>Z1knafv)uvn2(ZaTj^7cOp582%-tN4S0tT;4gx$Lvbn{h}E%#}B+qRFupmCIU+_L-jV_r{c%Ey@B zEHFr4AW-}57+J9WTUFnyYbj^IpgO3yZh@f3bMn_#$JCcfc#`(sr^~jOIv;$I_w$uU z)b9pT!4a)L(kEt}dA#=34Znw{pQgc6-){~)n0ad!7oq%FloQIaerQB%!;Y@^t7nDr zbct*dAs>n%w^8!51Ws6&Ni)kK*_NaQ25Sc@$BTT0TcyU>|D31Hz}-@Gf9$!r>e`Q_FKN z_1l>5ayS88)INfL#8Q6T6#Erv+!!|e8blH}lkzL@VSBcs1E zDxxT93#}F2b*%k5H>Hkh8rW-A$(InHrGq1Cyaz93Y^GK$c6cJYxQKrh48FOYJ##GQ z;8CfziCVv*6aHwPl5gND2+`^rdj3WgyLvY`qKR^fTIiQlS=;7!K)A07K1oiHt(DGR zwfb9iuOu3aX9j>Ht|X?NG4y-Tg~-E+=jApZ3}WMJlrH?VF73E3nB0ev!63y*K<^T; zA#nqp<8Ue*{^N*sqlLeN`N?~TT4IhP`EUF<6l0RKAyLEBJ|VWk%>bX2Q_y!^!PXKP z3Pe$wBN%#c9apL`#?hoUBx5z?lca8sz##ocrn%)!iaaI6`inO=v_(LN2f;8`r3^7xDRV|d} zT0_^pLHJnSH*GVoeraXY)f7g7es~=lTt}CsJp{LIJK80(BYB-Z5&jI37DcHlsWO^| zztz>4(yQS4VA0gaUbTHCp9#};3dONJ_*7?oTCi!i<0?r;xUwr&c!vY8qp+_a(NLtfucMMor=2XhJ1&mWyCjDU62V2?>gr)WFz1^DwI+dO zUbH|423gEMXsvpty0f{?n|*HcWiYsl-Yu>Ra1}E5*Ek%Do(-RP{LJCW^mB8McfP5_ z?i}u|>jg&?+AD+zDfp;-`|6rk3r>TT`C!2XyxlzUhXHf5 zJKU8;Vt7Q2advTVzWjqR6aAbywqq5zs6&!8kHI%G*k$y)9m&y-@VRbAv2)$WWko%W z#JEP{Bl0?ML>*d1h@*x+5V`b(7iQ|9$fyF4?^mMx(m69`}s#pXCUys;b0 zPCv!!?^_L@v820(G;S;44arw(+awE>BydE{$C5BZgvF0G!%7Y0;-K}(3G^HhIS zX6HamhjA=H1qORIOCJYxJ(IgTZw!t}APs}TFP)gndOi(vPG8WSUzH?*-*jwi1EuQ3 zL~ad%&z(K=H#U?za5%g)_`rbKzjg4_&*&o_;G+5@-Xe+mHB$$R4fK{>Z1^O35kad0FnguM zf@-<7%rT89kaD*N46g4# zdzn9wygI)jX|=iteq;SLL4J+iG%Amw99C=2tty2^Bs4@M&2-pUy4i$?v7WK;1|Xqn z(74aRs3qSik)NW=Gob;IK&>&&*bpJ@bFBAv`c(=t;WXf%RL zzK+NsFcD(eHe^`&`hPfOGIX~8Ab(4IxPV%_QrmSYVh?t#77VV7T(GRpyH8CYZE)~= z;su`ux^tY7BzZnPWR%iWM;-5m-vMSs@5@!+a4s;7)@$Z!ufrR;{_m93-jV|YO7r-t zXmJkwTCM6Vi;T~Se}7p^t%5!_3?BqURHcBGVu`YUF;;hAs@PSYRq&0j(>zu zcE*~2l)`@6f-x)OX>SWcuRE{KA6+3GZXlJj9`W1l!9PAD*S-uCrAW9q-6Gi4rE49a`$_{=K0tT0>qexx@W2R2oTZV)xpF3cX7yP3~ z0JS1!DeF6X7Yd<|QUEBtan9Q#JIXSi^Ho(^N(3V7ufWgm| zopg=cwP>t_5xO%_2k#(L3?*vQs6PBBX4qhG*iI2RV$m`;W6?&I)?}9Y&?}QMF!=A* zQfhswasjoM*VEJ%2ETGv{#0MB{;76Ud{&wixQm;fa4Dk$4Bm+fJ?T~Fw)yQc?P|AIzDvb} zt$Fo_z#z{uwp;LWWHPtEX|g)cYd;u_+szyp(HFl^`956{bkhmmSiStm^P9IPZd%Xn z{W0jl$a#2r=06`kU38YqibAOKz{3|*c#6%L9fw{Ye`d!Ue|>@L_@Co%zS6e7+_Cpk z78vw-V0<*oIm)T;(XB(#%$M*!`I2{Jv1f(dX9Jf+cz(%jg^$Yfi#=}y{UG_twXizu zyI*8mz(sX?xrrb9u&=v)&kwoN#^FE{DsDB;*)xR3lj<@Tw zwibXv-)`2Hxy)B-*8A@iubejzK43}w{uRUO+0^n5^Lgi4$K~)_`8MN$mbW~Y)*fA= z*fT|10Pi5}q7Sun-XoL!i>8fwKB2*Hb8&f_ZhXKPY3R0lczwqUDtr|1J3>L1rv^Qo z`KE1u@K-IbRcb+??-uvQ1_N*5h!Qjk)YTx?W z&^+z&z@<0qoJ!!W+#%lMr_awmIOG;qxBKO*weUOgmZov%JmYB(!SPjNyyJsO;G!;8 z*;!rBR!)2Mpo25`!F~9H>q2J7k~?nJmnk{EK~H9#uz(|?xuhw=t>U36`~UoG1%rPb z{^w^)jBTrMFgV5G^!0Od+lai2-QQK)?+@?HS6)t*`2`cR z?TTOT5$;cfMkFku=^FHkUPP>>A%aH(ltZ;xlIM83DOx1VNRIjk2A{EbLN3jscg;6M zuPwf+@#N9L5xety6pfh}fqLDQEmMf#kGs+it#eQyk?oDURjTHgom6ndPHK;5idfaG z8jQ5POT>H&3@!NrOH*(BkTXt6BR0TMqQ0yfhrN`_(S{B`h^{p3!!E)Y09t*pX zAF#pKGF;M91O~l+n5Jw_delDLK1Ls?YMTIq;`X_mMZqBrWb+hKLlNB-46+=V`SfJ= z%+bE1&#n>EhQQ#DlnO3W7px#-;mk`ee@fEq5{K$*18B!1aNQwK0OJ zj1v37U?p|~-c~&w^=fTMnopi;yhn~BFNHrSHAdT;$9y9Zml;W*Hj}|k4q_$6MS4bH zojJ|k_8G;0V?o=F4~OP1Cb(7qNKd?`qCKL4Pe&@TF4+_>^_jiQA(-4+zZ42uQPE&K zgUx>{#I`wR3g;@6v!zOz6(*HLC7%ejWlC{OVDM6jD*t?CTIkz-s-{u1N(cr6W+>;` zEeKgK1G|OEPu8sjgRFn)HO+%nmtELO@4l2f@X;fK=Ej$KdedrMIK@1tf_!kqeYQ;$ zwK`kAR7+bFr9lUOY8lwmKPoQGTFA?2w2Nvy2~H$N?WT%7`Wac~gm%^DsQUCia8d6T z)%B7ZYG~WbhTFUjO5kaho<+#qAzgMvoLNg;fmHBEdOC$cp;M4)Mgk@=+F1^QiyE+u zX4#2(o4q>NajW(0mvAs8pR6ZQnF6YhL{Pv`LP0`FOqgG63t4Q`sdZn=;k!5^CZdMx zO5+&V9a;l#j5`L6h-kq@xh1=N8v1_B9~6mW;aLRrvM-wo1C9KilX}l}72)u4j^0tf zfYWj(P=4(El>9+H{M{~jUu($$Juwj>VWl52P6w_dfn0(dF~*w?IfHFVVP*yxG&j{y zPC2fMT3Zk~S1PYP3I;a{^oPFkYPyhFnlRSD8h}r)PZOj?`*h0Vl70Dx`gzW5aKzSs zH2tzPm0=+F9O%>8+5#|$+0vFh2sGgVzJXUL=9|GF1&iCOe)p<(x!W~M?T~jN81(jD zPGP8o^TP{f7ev*F-~*&Z{66!==@NDDH_3jpj~xyNM?BfNUme1aBk$LdbqcMJ4+a%9 zJ35yedc-Byl(bs!4A0PRGO){fy@W1h2ZfCRkKEv+$Jx0p@t<;@?BdDiOZuo+!@x!5 z?kX($I4SpuTO@mQx#q$-FxZph_GSTpn|`%{MkDy46fmgsQ!DNgQHj5N4}tXv8v%m_ z*^Kd;*yywm-GjH(GhM(LFK7$DGjz~@=S?IY4OK=z>aU?bHrlTS_ZeU+UbXc3XziqI?1wPOr zEwA~Sw58n`F_^TSYG%Vn4~_myqkBiH!t7VFU%Aj>5m|iXleb&CsSxpeN;Fqtp?b9J0j z4vzTq??zsYr%aRMwZcWSltuxAAsOZzq2X=Ya&|`bT52M^D=+o_kQ>c5DdmgRB$#t|l=~A`@2)sT zxvPOUIhyPH4_Gb^P^-gjcPd&Z{9#9Tdbd9&Rle66tj{^XYv=|S)w?2Vx#LmMn@2O~ zrgd+zWMFVy#+|)qhB7DZZGy8(IMx9M!>=mM=Z!bLj|Nj+sNu!%zIcb zKjocdzRVk3)V7Fn=a~-6*aMHA(8Ei^uY*(TexYS?9ul+$dY-<7x@CMndzhyAl%}LNB(LT8#NfUu1hUIr- zB`HOeyJNKd4rU(w>2sjiarj5EgeVvbXS&9S_UTSc1AwWmrWz~Hm+ z-026sMgymAb)0>Pv?vh_4u+gb8SD?#i$i>+X3kxB9r7v9UF$~%>%rjktj>lX<5hFypRSq+|8xjG zU@gq%#E*Z!GcMt3h`gwKUnV%B>9$!Luq-<*PT8u?c5avo28G|mf5XpU>X18$;~BoY z2@IBMlQuBeTFc!L17pO@hQIr+^D`!sEaCO(IVmA_mre|VBPQ=$q>hqYcA%8B?KXX$ zs|AC)U96flmID1Z)%W9NoKZCxEU2y&@P4M9Au^oVMd_9Bo;5=BwruinZ7A)LutC2V z14mT#h^tJc^206%v)U!}Ebx>iQWE`K)#Tr5lk{_%Gtr>lk#4#e<&9=Gb2h&9nK+AFt{^>zcs;BUilu~(ViteDglFtz+stU#G%3*Vl-*# z-+0_eun_TFv!(D`De7QVoP{bA!+S>Kvt3WPRVZ8<^UI$EpGUXBd1dgV3L z~s zrgihX4~#E#0M~IbHQ=)snRoLV0)AOI^&+dvTOt-y7rnB!J^dXVG5k@` zcbStPJR8q@KPq-`$8<0_A?$i-9M9uN#nyJe7UUh87c>bUletYg?j7<;zMFXKMWWt#`Y^bTpCsOUPIaAT{hS*6yz^w+DKL0N_W0$~ zya6uNrKJCQz-oA2XJ6v0;IbRfW_`V};C9~4zp-@Mt<>R?xJ^@agp{FV3-4VfPm9RWGsz z&3A|Q0sZ%Wzk%7EZ~c5IC(tTg5Ckr&+JBF8_qRcN@BZMqbW*aU84MO$D;`?bZdHA- z=gRZ)+b@g3;L}di#}_0iQ-Vw9yIWrke*p!p)@^r|JpFLS;thf;4+}Q^0p-wKg!JLh zqFbhg{`si{gMTgT^uM2AaIF7-A=^L0pFP>qtGZvW*YrBQ%FC8D1&-+SXJXcXEn({Q zR(uQ(F!(yLs@udgF<*!MQVm~S+?E9PLhWvYcB|bjh|mI#n1k%OD1@XL7WFbNR?0%b zpjX#)y}ao+zkrUi%HeaCe}O?JFMm)&VU7KKcqf*y4{HO1=7GX!9vLaaGYfd(gn~I> zut9{CT}T{gr(Vz=KapPY0~lmo6{}=15xF^`dX+4_4n7M|B2dKJJ$HOowwsNXZd z5jp!m)h3=!ntx5SGp9dZ1@Enpa}5EEZ9M9EtT?!=kp+LE$0@NOp;!~4Y2XR_OT_Rw zva~Af2fjvFlh(62Hhi}U{v^Oq(m-8<9nWeo_(m?^h`qpagdeg#7>J76p)8Uuw$Dg| z_sFMDxbV~Ub(f}?bo?+rf#Z+686*a`+eSUZn7!<0pkl+^?{8*Ev>_YgD z@Ij#0^$*Fvd0ser-9V4+^3cJ-gi*=zN>fk$aup+DCG~GCMnN?zB6OYm_F}O4wS0~+UZ%bl)sLx6CJ*=&Nt0LC4K@`1K)vr+nHDzzj_4E2X{}kmwq1VzP)6x<+5i}=f8xvM)#vVOh#o}2 z{mxZjP^6NM@`iG}Y)f{bRL89qHV%)p(1oJ+of0kxvz2;2MqQ)l2(lRyv1XS-{sfWRKZ(vW+c0oN!F?SL`j|r z9W;2;!PQMCp40wYxcq`TV;z4U5nNPqazNQ~|2rd`C~8{YTJ>%)NbeSLyftENhq%t% zGpP0jgKBRw*Q9j(qEEM7pma!rPgyDuVj7x=oD2Qml-5_jAb}%xvQLVODBtYgWr%iF z>)k!UV8zQwLoDl40e@|+g`A=_fWd@<;D`#2M~(Vew~VNkz#m!&It{0n8^RSxNT6XW z*l;;KO45C?8Cxp}H`3GA2;e>B!4A%u&aSLg!p13crqFYaf$JD-W|2cB7t{yTI^ETz zA^5GFZs>1{^(V>eqr3$K@^Ww;35ZBd64uiu=rQf@g;p;Em$cGtMpbB^ZOexwb4YIK z`|xYLi(9vBgh!jrZu5-@li$#RBNhq!es_|XbdBdJeyD;AuA*(rt{8+oMsnCw+uWj* z`S8|}{6shq=~%=W{HNY-cF{)o*A)DWR*3|z-}u0Z#-+j`8OW!x~_ zmLdd$!&p=QWtWFuV^wUfszGoNB6PW0?ijV^X(6@P<5y;lsZ!xZc5O8$K2B ztp6gosJAd-n@q&SJafbA<2p@O!C+`CYw#Z3^hi?KJlIZD6QCfW7!mF4$enIHhq;V& zLl2ZgopLGmD?@&(UDMR<*4PG5KMCm=7z^-}MXcQt-j|Av!mn{|o!j~RX_C`NHEzCN zVMCjtMI})FC0uJpcD5DQ2!5&I0w{;ZXywbRg$YgML2Z0rMIO8Zuu<>o(|4qbeN7O1 zJRyfuGa)fIyFG5m^)E}=CQrFD|n zsOUsr&qer{qp#=FFHnuY;L>hw}68qG2!?E^CNX zQaSU(f0!LjlK0cWVEaB{wo#D3b$%~BhbXrE0}M_Va^ii&nJ5*pIi8iCm0-}br>UPN z^%Mzz6?Dwr@HaM^<`rS%pAM$XE^L;2z8O0V{~>oKUghqWXE3}U$>$_=L`8y&s;NFF zo$J91StDw@5ZS-T2Mo^EaIXsreF~cVpQp08axI#2A?N@)j!yM%|*XGAhIQ%|}pY7V5 zcN=^Pj6J8x+C4lDtrR{4++WA!pAGKi7fVZHxW^6fk=&RpMj5pPTRM$c`=hvB<^`_f z!4hu=^8)h2`iSA3{Q3S`Fi0L~tDEh0ZGhZknNDP-!+*$vw5m#dKnne8T77%@&X`hg z#GGR-1)9B4jR)Hz+s=cR ze+vfth3kYHXghdGCEFQiqV~ai^4d2PSykucrfv#bgb)LsDj95ROJ^?-VF#{Pvt5W= z62V2SqcV9%jIA1XmHbZswXgy(NcNj){yDW)?_99Wi?w+ap41nq>DworD_(>3oT$s4 zldJ$oY}EV_6%x3zF?`gcik`W0HW*y(L~l;&SkrjAEz3TMhQM{SC7*mI`|icQk3ODw z`|0PgXQ2VD)-~%sdm8ck^U+feG8(r*F=WdEy0QPk?U82R3&jK0!|>9=yNl{q;d(8Mp5~xK}i{Ytsa{sNrb?-M;?`X??5#7u9Ord~oxVYkrek z7Hq2d;OrrAz@k#|1M5DPul2F{iuFRyJ792e*y*KCdFm_UlPOnTdjf-2FN6xtT=~fH z@sd9?NWkE2-`ANZe{r`S9|gNX9}O&A{BRNVX;ek&LZ?Y@c;?BD*|EM$x;MWL_UE4g zE~+iqK=&7UFEXEhMO~C<1wUIyQ$4#+pL*)Zco|R@mN_}r4UX9UN#@;;Uj9|jGqxgw z!T;9HR^&4k6@2);(X(O)KlaMY9n=3>PYQlIhCZMM4SxBsK5BCN+1nG(!9Rc0;2ZR3 ztTKc?nY3L9@H+l=rTxzZ1O|g%pZumPA6+>9`fD?MUhNC(lD*g^PES;1hC3gS=gDcE3-(a^{o8uamRD z5&v`if4-K$pL6VEN#Eh!wjO@-b)MDBNO(dQf8eqImM4qfeD0Gv8Dd-g3S89Gub$Z& zogi!OT&d-i*+^-g({U@&u~HMe!3n15IN-ES*0e?9^RU%hyiw^)Dssj+BU*QO5~!Bc=J z=x)K@*Qr&LY5rE*8dg?t#Q$(sU+ZbND+9aXw~h%`-eIdPr)%<2=`-5h%?H2{AM@@# zuRA?&f*sVq*Jc)e{%vy(meCzOKX9M?^$Cvn*Wub71{?bN6AZpSyjWW27Vw`mDKPj~ zR+a5@GsnEdtrtGz*ik606O0U`gx|AmpJz*$0!RGo@c(``z(+@ARVKm60^?%VRvz|x zQ#^3Q*SqKamD7a?;mV!hn-u{O4vVVk`i}hJ#9Bn8fCG{QGq|+E6-y+%1L#0hJq-$4 zk>UUwE1pl|$->3O0t1vok_!~IZ@ypRE%c_OXiF!2j4M*f{1YkpE*w2ahiVZ#BEpD? z1PLOh2qXlqR~Z5qbu+Y3AGMs;CMuYFib|~ zmeGr*NYoho4#(zm)g+Z`KADRmTxj8cqo9`5!?Za>3YRR-2T$TzkwqyXm-7`~H26F$ zX0g4?qfh)iF@`cYKwQ}cmNE~aRYh7wpJFG~f-Dvc3R=-Pt4OQ#BS*kTm_&s>4q3ZnY3ZfkuPH~qJJ&aA#ikS$`(1fJKALxOYPd)((5u~+=p;{(V1tbPjj5=Z>^bA5YXWLf@xWka`t^z-FD$!PH z=;2mdu5WN$n^1+I1OeF*auJEvbp}ex?VP|UVHuYBj6pdhjT~kMP)c+q{!}%Wk^=ty*vg2K%2H4nVKciit85%T;=GSm_j>Fpl{S*L zD9*9}#^?wUc1UZd*7iKsov*#Z3>byhk+Au)o%?Q%?i8DNR~l%$y+T2RR#$B4Nwi~= zd@bV^B-jfE^)@TE1-;Pu_TF5M`-GzNwH5^a$=Z^}s9DD3iY?a{ zNXy7adJ@4!<$daZFGMUrSbVa?c22=p4k4M;E6sPzy5a}#RQ*}XD*-M)Hs(mr2adJ% zfJ>S9S22AFEHl-W-J1&rITl;Z!v9-I5_pE2P?l`lU+(|@24U-0R?0n4l^J}72#DlS zWubU9G{%yk1w#ITNa@z##1W45^{};7@Pt`}4Tlo9cr?ZmGxbsqJk#1%N@k4h@64t9 z!IuzPdZ{zCfyln5Lk$SKRt3K6TTyi;-5VnXu`WhoObgVCZMZj14+8S3gzeZa9kQRjpAT=Gh$!3kbG4Gz*gm0wh*tQG{qOX7@IMtd zfE&OK;0AC5xB=V%ZU8rc8^8_V25H-H zH-HH-HH-HH-HH-H``r2uuR{zm0+aski~$0B!&`fE&OK;0AC5xB=V%ZU8rc8^8_V z25H-HH-HH-HyOgui4Vs@0H1qc*^pk3On z5^F>hvy0&6hO~qnqWPBl2P3nRBD|8w)S=v=J-Sqd8LFD7J;BcdEbAc`1L4rdXX1i8ZS zLgDI0GALF;ryR&-^_$#4ms}y_N`3^vC7(yhH*Us&ZH?d~65?6x4H(3HmoT^-@J1oZ zG=IcD7*~iUkkLZw-8zVg%ml5$K^ID^kfLW9f$Qe^1kLcbF?SUUSUZ*YH)HI+$}O?Q zC}AJ0y~9?qhD6WF(YYajw0VfomKX7B1YU&27|VFb_2_C1Z;pR%U=}(IoMVt!!bCeM z2f=tEgzE$}wE-f~EmTC|g@s=J$pm}QKNQB3kb^_!K;FpVBQ#Gn69rB$CTtD`JHHc0 z>kxAZdK5S-n2>a?mjja1-gJy*6%ATN$c&mw^Z(u`p0qO!<>e2UN3eBTS1re$5iH(F zBj?`-HB5*t745|6^p~SU=-~USv^leet{}mTJ5Lb4e|tATn2@Tz_;skFlQgyUa1n4B zNh>~y#1DyLJK8bJ%zX$bUcqXY-_lk_2O=YFQ0pl=Xsym$)9dp^;T>cG9p;IQjdY#tNTAXQ6B76`GK{s=b7{FxyA5M9+J4(F`n zNN||jlFBe=P@^=VAwGeR;zvj~$n}}HXCRSZy8B6c-?M^MZ+4Y6=0qd(oNQIPV={>fh^OYMgn%=~5`+@7 z4vK~c{fIzFW#vk5^ZmUNoI}WCfJ8YRO;5mT7ouFf#5r0Au=k>H{s@{d5uI~E6<-*D zP6s7y@(BYaDp_26#|4Vm2m60xp8vJTBRnBhxe&*ncpFahk{YsDphi>G{9JB#Gd@_M zvK~R>#UO#gci`KRPeZ(r;PAnDxGIovHp)gYed1njm`}8L)B>V0>SWtqQ$0)m(;Vacpv~W^ln$2)9Ckj&Ms^+r3B^#ZZ}CNU-c`n3ZyRzu#L-Ss^XBy;Z&wemsLPJU zjJu!)?<77T)(JC&5RPN>G2M`U{8Wq3SOjdroA9O8j{YH#UTQ=v+z8PQtsR*3Xw2b6 zh(<~aT}I1|%`XxLICJ?j$fwOmkWZVCSc806l6WB4r62UvKN!vZ8uNAFl^`}j=1GHu zY59aa%M{+2FFvL2?CvL(;eZC}mZS{B&*d#(N1b8RG{NG~F2quT>&CvP7zrm31|(cT z5MhBU^#rHSvi~j%adI*MR*=YR9p`Lan0XezX6h}7l1h+3Q-`AY!*X%AKY}FZAk`q@ zsA*ZR`(zz6m?kFWT17g5gv(B=;bEFe=0&gGamtnD3KC2k#$CR9#l?}yS#QQiWM7-6R-foWBJC4i5+6cu3S{}kH00LE}YDdthJcd$kXf9EQ0RX}h z`m@EfTs<*9HNcta1O`_~V+khuKthSs_HV2Gi}|DfE1UbT%*qzAjOMHJClPCzoLgCr zu9SgR=sI%-KtOQG#+J_5`g3U@fg)hZHbgw#M$IUch8C(pBFx#Gu6UP^$u4_Wxx~D= z1`w##B?#&`;nqcasX13lI0gU+7MpV`p)%U-ryC-#B5J-ABzoE1X$_ds4OW$Q&G!C9`uV-JnLd;fd<~aOtPYzx2TeT@FC{F=3g8_#@AYIB>w3BXIZ} zvix+PV5)Fh`?=N*R&ObZLP(=$TK$HWw=%JhIe`emKyL&6KsQ~t+8{Y`fb}xU`&%Xd z7D$MDlB)$MK4FVQuFym=RUko;2Uc;U-F#>4EppVtYA zJ=9kt*`w+V=cM531p9a-0o1r<&NSkG4zIGs7?S#K$7g^9T3jDf@6Zy;A%u9{Z61Zh zQSwPPi5+S@K1^P&X5%kZfEr#G99gB}261C>_X*|ZpCEz5EOCQSCa&YQ`&zJ&khx`` z#(d(&me;dnxDKz=nVd2`I3pvZ>#hz9h?So7&@{c2oJ#~XoI>i;d~CWlNY7E(amF0l;pv|&^l^^7@;1E3Y1RNbW)xhlE@!;SWM&*LBw zfGKGT{H!~`VLPkHgO>(bDd%iP>}}Y*K&d7)pkXb)1JvM_FeccX%{=w;I3?y5u?r-4 z(#N6tvvjoZrMkkQPzVXN4sR|~YaA}kf1Iwy62mzzGTyrr7s+rAW^md>Wc%!U#7mXU_?$Y^P2()lc{Oy!HZ4P7jF7p4g29w z$fECK*lxPIW!1asch>_5Z%m_r1ac=*v(5Ch?3k&hB6}vq8{+7PzT}xFKCAG%CaR0b zrk{6#8m4i2o9Wjz*$*?Q0v)*@X z`la7z$$#(N1p4uS^y;_iO;7h2w^jZ5&kIOwtD3P6DlSTXyZ*u7mzsCI0g27VZSR{s zM>pSzY)Ssllelq^*lqmxg8Ajro3%6FJOzpD(Tk~VH}=h*dUSKYtY(b1~p=kf`r6;lBNqet5>X{o&+3(+o%$_n7`NUogMCQ$8Bo^%+P!n{~|8yJ+sC z!nV0TeVp$11BrFnkFE#trcBpox0$ls|9`CfBmaHdNBYg_DaAWbWBAd`hx$juH%(P- zf6O?TJ_3ZvG`8`P@BCHQ^KRbOBu*;;0D0@x*14JR&hM|h+IMBo+Q0#2GIcyV;z{!6`z${b#<_Wk!SNUXx_b;0Ov2v~dR z>b^zTJdn7jUrjcP|NHmWr~@PiFF7+<5~590G1=9e!P$+FfNt-<|NhV4rgMqJpia;V z?QP`E3xcsehbggRiEiQuNQfQHRe5}1D>oqP5QE>84-$2ZU_?oa?^crvSbs8V_k)Cz zsyh*$OzyCf8^c(&Vn_fZTjC$kOwRv=kr7vA+hinz8XAnba>^F*Y1pB_O%3jcKw_s_ zwc}T2-RxXSI|icP7_K-ck1ZLYtFp3Oj2}u#AYoT9 znwFt`uZ>$et3FMsfTRR2S^0$P9EPYKyQETpZ-?BMU=|0>t=^p&R5zhqHM<-vBq9d| zqu$8pNM(>04tE0W%?ABA*xvD4-JBMw_bO%9)vm{Z1SU#AwwYj*Mr$kCcM{h?dJsc) zG{D2xnux6w*j^_fLQunBopKg|$LkU`q?Xbytl z)wCSBCQ#C6ehdX_1mn-UVGv7eo|saE(F*2)#C8%cEyd+x@X2tZc0CIVnN10YExs3* zZd4KR^Ek?T+aS@0&KaphSO~_4#aKw74?=nnVNAbA=`@F;Ng9z=Y z4(LdWK2hNaS>=UDKw)X&Z7ZXUYm@~q%w7hf-hBy*$DB>Er* z%k{Fb2>uk2L;6PqpOPm?%M++EqbUKjb19$|OHJob5$l46n8p+7mddn^AYql(Cp+qs zbt0=~^JUU!2qfLZ>6)Bc=cA3f5Ohk8wWk);kl+|1F9hj}3YVXeu4D&*gfZMdSX3bv zSo`NxV;OTWAd$9~e=DG~tASOVD~nKfLp;S3E(SY3-StUz`tW3<het}n%oR<9Gi zBqylvaX=0HWk0l-8%P^Se8~v>tP@fT(s!}s6H9y9qw)IPXM*qzpaua+61TGmH)#ZY zjqb{%^u8Rn?TZXskYM1p>?YfVu_l8Y z8JOEdNSbvdG{vjwjV|4?OfTa$lOgGiz`c%vLt79rxYLzkT6GR+<$&)JT4;?dij_Ls z`Jh;D0}=v;Jht1*(OR=b6PenV`VB}}9@Ccg#vIlDvcWrJIlCnTBqXjmW#nWZx5vTZ zV@ZYSkR%)JDEzs*XGv)^OM-kxLq~ub%Q4FjNwKFZx4KFS#mWlEik$KG0GX0WI>$Py zw5qIEUjQ}c(;a^5YnIyc6)$>Or+V=xbALuT!c+nuS_D!K0X zQR{U#IU)zpO4*B)`f5eW3La zO>eE)KCxnu*emw2R=+yrp`OV><(T}-Gt=% zdVW63;E#Yr@MP}sP=8DZLLP}D1WJt{5ir+6CAFwDY_5=;!k)QN1`-0iN3$Vm_{>pD zO-~3u3ldAcKdh{sfhFOMJhs zWF2LgABP3442yFYZkUsM$id!;RxG#+sVUS33@q~{FoWh==)#VMSh;{2Z`rr6wS;$H zJn{h-!Xf()frP)_yvwIY6D9TD;C;cZXdOs!?-CpDacHGO-6!;XuQP8zLSG-WX`-ZA zewoFqI>@Mov{)eCW>v#B6tP;`Nev%%NC!2VYWMcbCd<$0L(`7PRm&jr*v}XWrFx*0 zuX2ze$O<&1Y(?S^M6J#v@gyHm#UdjPGG3}!kz@xvp_IYDpZ}p>0nx|_cF@Zs>YEHv zobF6TCS*n4tHf+=%Y;!)Z9g zAMrZ5FT~2>>vjRYufo>l`Q^H$wOsrNYFGx;XJFp*JxVq_e}YR!(?9~pwy?}~!OFNH z-j+R)&5%3iZ4-jIaK1R9qE_!MN&QL(YMlL#i*>ltRhAajQId8}SPBw`q@#Gxv2!=W z4z*H84*Ec%@t=FTMJpm=#=Hm_?!nlk0Z`*f^^ptGC%Uo>LjPf#+q3S01gE1L(~gk( z(f+wDE=8D`#aUdZNuif$HVZj1dWkyWnf(%Gp$Qr{+H{eeQ zSWP=7&NSUcff}yvB>vtee*e*u{x$oeAzNgSS`2T%U#muFQi8~rtAdOugNNi&@ZZkd zl#Gx|n9!)zpp_f}W>Rtv*W1%Dbgj{5fjvlASdLw=q5y!QsS#Rq5$X|zZGBu#at)a9pHz7s14dg)m?q)G$=I`PKU&b|s zEMZ~#-Ugqj{uaKOi z>A!*Iq6Lr|O6kDZ?sC8E2f3z`&bzW7&wy5@Vn&Q;US zubv{vvWc$RO_DyZ6Fwkf>a? z=+6t;r=9ORH`pCs-dhY3ZEqHu{@%Y}_V7%3*z`+Sl|NbCcX7+{sKHm}3dNp_@eqwo zb>pr#_uR-^^?zSLEB}4{&W<(DruY2)6+oCwHQ9RFDW7&;DZ|p?2H&ep73}Uy83mqHFDe!bdavTXT>-?-h~b$3Ws~ zp8460UG|K^+w`F$+4K}7{tI~Mx1|1Kxqo8`WKkC${3F21Ir1mb`>eU1f2t0G8kb&0 z+RT6X+k+3yw&E}b@caI>R zUjO^VBk_@GEAOgRztS5tS3xVI{7BD_s)IkrBS=n-QalC{|5a@MpT8inT)m2vfzH4& z%>tv?_acxW>bkU(#0k|hLtLYF(oO*qDqdRiKUXP->5FUSu4F;E@ zd?BG_6z)VA(bwJy%f#&S2`$P5{a8lEa;o`}UcD?s)S@p-^}L)6tE{H!vVAMi{GfwC+f#T3+UUa5ke7mL#dF+7Xm%R v@8qu> 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 z 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�Xz(g^t)6$Dt* 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

    L;uF^SktE@xPNvw@~^C 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

    !m7y53;huR22k1ik)K-n08yPL7t8#<)>uf;ru2 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 &Ojq%Y*P$vi9m-n^7q2+fXRxWT>DuT|X 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 z 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%0D7ab$A#QilfQ0gO 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

    ?-+ya!$tzF_@KX-2g(6DTb2AiV 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

    )uwFKI9;kdT2^pZr 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

  2. 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ⓈZ;aw+Q zaGdw0LX>weIqNkL{&KUscX>Z@7PMS zo~2qaEFo&sqi16eRzwZW1=6$HOw<%TfFQs>B>Tqryof$8$@bV2h{km517uW?Q(8IA zL&r&}95~}u_@P~7LVw=ny|`R~H@UUXbm0yujUNj`3-dr`s=26z8V|N+0>2kKpawPW_kp>Q?akJCH#SX zgYR4}MBq(5tB}QEI1s8=uxH%+mhFA*S^9|=8n$W-cQ>)WRY0$cR|UkYXECA0T3AC= zoBDykZFy?&{cPyvtL{BwT)|E0z{j%6HqO_M__U-SvXT{wxLhdFGKSk&9k`J4EsZV0 zt($@?kDM<5@6-61@kseKiln~EavtvzA}_`~d&X;NbGxEc%kj-eGJBr$P#k1ACH z40pk^d(Qo(rUFof84*f-;@`dN)E_(cQj`Jzo58^jc+@-p!fB%uhtNfht#muUYEopN zOPT^9GOj{7=+&x5(HpU)WN%(~8dWlKSzb0<<=|*)pU5cORjgo{-baFAB#MrK3?B#L%lJ!V+5{FS?g91~}dueT&A<*@+DDMB{QpOn(rWCNn zd*M|~{FZZnXIx)n)@*XW7Zbd=$g0l8=17eCc}Z9ga2C`%1@L;UbACq_gF|Ds+t%bd zz2q>5#9YDtp{I0!1mqXcJmwo$_1GCxyPsU;)G2k(btrXShn^L?$yhXMu^tVXGFWHh zrnU!}gBlUeOf^6sV!;f(e}1pROQ&$LMbxZxun6pjEF`tm7W^^)_cClSeb~= z)_8TXDyLFJi1%y+zX!S((J2O9;&;08_8mDIzjnBH5%(kCJ=vqW8~rjFYh+R# z1_NaWyI?xDCRc!3o+b~408hXLnyk$VY94#%Gh)|u>l{>=S!DZg?SPc^U{L}>Uxz3O z+}TVH;)pgqk!nPi(=?3~#2zbF>T>aNdZ=W|q|oSd#>X1%7X1*Il3-_Rixk(T)_#yn zv28-!jjE98yMqK3AWTuc*jtuwl;!wOR8^&M z=Z4<*p_By5L-f!ov0rLFW9%iK*XhzISM6<3EsZq&-*|Nid$_pFMoFF(#K0P=suN}3 zD#%)+;^ti zR(U%1d z#w@}?-}0IxqakEW+8B;g0rs;WeRoJCfswVUTH(zx zBp@AO|M8{%*ksxb+fpNUH;256c8BpdA*~ShCLkJde5xh_SxOaEP?)UxEa$ERH8j%E zF7iD#Me5I%ps-$Q54o5IoaC-|a`Fr!{o)E;_4HC-!OuVi*ZhI^561*;?WPQO5>jyx zi&olvRUuF9#i!!^GmDtIJjE$8TPoAE-JatuVu~n+KiGC&t77O)n&S3@r!!>Rq_}C& zTZ6#70m6wt-IKDypFff-aB^@OI zRG~$wmXSW!G%(MIt5^nUaWgDjn-Zm>>fGwKTTDh`flu95}F#V_8+NJxMr~ThXKp!rD3L?KDrS{LSg6j^Z|9aRb0-Qq>EV22f|*8ku1_|6M& zKCOSomC8UV_qpw8FGRwr&+|dhv4|XM3Ou44_EnH3Alc@Ep|*Y*lrno)`0ZCiW{mb>1P;Mg9V4hk0F~wa|L-_L{txL62NC^= zLw~KgK%E9jLEi(O732NaU)~n7B4t$$v|oohX~P`0N*tf(=i^5wf-?`0zSYe8%m(%c zZK*$`r3I8i5Yf%xh!SQO#pWJm{mq^^Q;xx(EkIlPIsnKqhiPJ!VGRN$SGf|1mm|Eq`x9`7YakF4?7uU)q^?UQpA`|vKdIB z*ovx6TtSX?Ae!t}*jA}aU9lfn5v+@1x4CR})9QJzTt0Oq*34oC3=D$C3JAV;(exFq zs6%vJKgK6!^7fXav?cXOv;%M$6vEya;SkAY>!#s_E&q!6+N9SF^Cp^k)1#9SC`4%9 z#qSYpx6_yhTm@_4tTxrhp^$+J4LqmI`T%R|57ysWzA}xK?^Wlf4WZFxwV1;@7?dWe6(mr0U zd5t3|r68t!@LPRvvsZ$<5q2P7Hz@XvJjuPbQ0 zpL$Qb@tW172V~@mVWuY)#{sKP+lYmV3b;trk}=PHGbNM+6nNDipw!XCofRBw@k>E( zp%j6f03f7uHU!TL@JY%_{x`ho^T!YNoD1!1om-XU@|82do(uutDy z7%*$N0b$yDjR$1vsxnx4Qh#BJB`}TpQT?zE$wv(bI#zZ2&TC%7Z8m=AomORac7|Es z(xPy)!OPp+U(G6+%^*emv~e-PTTD>4`U1&-<>-jw$V^{^)G?83OOd>qD?CF)|D+4?o)yBgAoQhCvvm23f5X5z#C*c1I2sVfGv8iest1h_Yn5X=Wxy&aqVk1as zUS$t>k!NfqL zQ>xo1b~L)A5t`I5;a0&@MdU5#`WF^S_p9)NSCa{DoNB0MJoLf*uQc-G&Q&g&xr8Ql zU8F{~Wfo@@@J5Q#HEjTusrj+{mxaW$Sv{PI@uf_-z33nCL8f*ik)#(P!}*9 zm|?l<<`i78mUp5AoV;#rygDTtvx;ZTYs+-^Gw&5iKV}o&1-y zvk^`YzaVE6Q8~Z0Dz$}A)pk_X-60y?J97OE!3zz_}06;kW@OiM<%PI9T`|A9N@Y8{BNr~X!Cw}^xtpHJDyV1z99d!VBy zu;4>-WoW^1u8(LGm+C}8XAahp%^&`&V)yR#_NWenh4C?xS%3p3q8bDEisY|XgCsxK z+bRJV5j3q;Ay5L|l!&2+Vs|jEYV_odII%`10%8OzBPFty6k_1{LGv8sMws^}l>1N9 z9Ho8Vfu*v>B$@m*PqUyo#fp4gnzDnrWnLtMGEUC}N*nwC*P%L4C>~?VlWGrCtDb<% ziP+GX1&OVoG1Ge|Vp?(E`#6`Y(XhJey9s^uDb)I!;Ytdy>WUdWJgBv170Jfl-bjMA>1#h}+L(ui~+0+;OpD zMCLRakScYgAxAEIE4UzU*jd51B(S|VqXRo%9NiH|3T#=$rw3IBz=Is@WT_EYn4 zSrj%LcA0ehQc1u`q#E!G^{d!^eXmT1!;>wsCgD}?|A2(;Zh~c$z!qO{Y|i?6Awqsv zRsAT|V!L6;TW~s6o)nn#>Y!@*uM?p!bnOD!C=QuCvz#ZRM>RcWlE#9`-o%#Bys6ju zt>kzFt1&2RZ_anL#i?<_=SUAb_F;G)ysfLa&`Sgp(j7~0^gJx?=D1m~3ryaXliwX> zhmF^ei_sLFE(PG1XUye9Ff+EZlIc%7x~q1MsPf|~SPqyFvscGc0zhc38ry3I< z^gC)lJgcElCRqE7POxJF1-UR5wsGANdH}@VL7hNs>TWSefnky{rak+>=@tJX&nZqd zNKWt+SS>V=&g(hp9$50nGMwx*yxOjb>kqr1pf#H!20!`-6uxzpbv#>*fed`A0Zy@t zg`L;ax_s_@+&;Ubjv=uVxsEH2U!Ec{kGjy|6Hk3$V#BQQ%~xRB=j20lKcWWQOc-1A zA5CqwN)^H|TXu}VpeR(fzq>bWBE}!oq)0JT!QAXyPqIQ2F?Ni{f7r-AX1GPt?1Ith zKl-IYDH3-FK^lxI2Q$a)nP{G1k-VyV^x$>f-QxlZF=aeJOYZrvPR251AzmC_oW27- zhNe+3sJdg?8zM0TSSAhqR@2W0ie`IF{_CA2pB=-c#ta>?#h3(=b#P9ht@$?OMs68F zm!sA0^iZ}{JufI%t$u@|e+3VMrnV=iLYdh)3p*{}nLDGrDQOwLcGiH4Pf{C0A`H1_ z)w(Yj$FQ(@H>MT^GGk->_{sNi@;;zqUESPOO4iqk5l{C&gpuN7E1kbx z9(V}rFy=4)H*3_1n;QdEh5iw38H0RWJ1AmB6-GojMbVf6d)yhz6RAHcwq7HxpH`g7 zFu`${Mm5;>9ehLN-Z%2qo1-)pR`~4!2ZfXSBQUqqvd@@#*sO=q`<1qAQ7_28JglG03ajV z_eA*!+{ACyUQiW07D^z5jgVzIt1Pg^xc4jyG%TKW))YUndh}eq_B7D=wXIIyJ=d`7 z6Zl5Ec!Ife`WIzEhvxz|Y$)#-``(GItDUR?pEHQimf}}I!uIX?UwZMC5v~1Va$A%2 z4#AuzcC8zbx4kxcP7k8!UR8?aW+40|{<}ApWY(JpN9%f?SKmLURD@Nf_#Xn{y}hO# zT4J>SqzSY}G$W_ZV@%pd>KXdGPX8Lu5Cx0rNe;%0$`f*U+Gk?biq7Nene=if|H+a| za$_usMe^bHggt+>e4Vs1>naCO4IkQF|5)SO>0qiYw zItOEFI^@+$YQcbTprn5}YQ6?LYJLF*Mlt{74(o@&XYUw9_CF;A$}OT@de1UQJ0%Bfjg2Q@>S5J%W$8$KwXp1l*7fflxkt zA1h3qS86*gf$S?20w~K{C9F&oYrHto)D&EU(UL8`&1xfo;oJM(+jH?n-k(inSV(%u zpYA1LO^)lI^2WgQztf$NB7G!a)YaFaH)njR$g!(S5D3k zUFnV@u1DDx8D#xlY9&GliYm^JOoKRe!PB@$zc#gls{~p?SnyF4U^xX@?dvTx>6Byk(@2J5wM>Z$0;SzGo4j5`?k{oEy#4#Ec03ntRM7xrVsVz14R#T?EB9 z^YI;QFgm{zfS~R4q@DPYnw-qzR@ue#(uPlShm6uXX*+j{DYkl_mhgP(6CB|2%gR5Z zGf&I$ImL?D*iYE%Ybts9glY>E8rdqf(+)8dWCFBIqh#Qz`4Rr*h}hIb4Rs=TZLat} zMa4N^QlQ!dLsRJJQ5}S-!F}O-Su#X`!~zS9*&wMhgMmwzm5L?h0kcosKY%V{04%vb zNVLB7i36hf39{q=)FVaA%qnR0l<@BB+NWaBwm&^bHXJi~7li2r=n`J+Ra*A?x0jx9 zi^+Y``YdkH!ws~Za{R0|_pdW=me5Rn?NUw+ctA_8>!(!tSJvM>LqGs` zE^1zoVHoe$$mSBRPs0-CZhmX@o>6~tAch+Md5zk9ShCi_496;PJ)GlvF*`OL)73QU zmdu8U>r9KBlA#t}nV2BGdnZdu>qH$HUL(^Rh;SWsPkE&-iPNHHl9VE}U zrAQ4$Cc{}09E5y2lTJ_uv|n-sQuMEu&@cjFf<#yiZSDU;FJ8~Ef>Lh;0yTsw^u04s zKMMkSmLE}7#|8qRm0f#E>Y5s{G_tO5yygJnUH9MfQLc(7=t_wRiyZ<+8Dhh~sWxWEi zkjSJIkF%%K{l!5C?j(j(Hxv2wEpho~QCa0jvkiBY$1HPL6`(GUJvRu_7S*#3R=wc9 zfBVY>=@fNEn^)hAT5ef}v06YO5In`s#c_x?skV7mWtAyXYC?sp3EXWqYAfrzZ#PQY zX}iLp8N`-GuWdr748h?%D+$-1z)$)HkHtLw?(+|d53xB|Auw1}g;x{60=!;1a3a?7 zhV6#_ws|2n4>ybE^~PCIhkqKEHmU-xGkPSJC$=LuN(^w zCM(tWa@naObedTd(}cDm7F3+7xS?Drm(&3CLg%1K9m5xWNR(-RNv=Am7o& zs3v~;-lsl|@H_;_*WXlfY#c(x%k7;q>hLCOM^xd%wP64^w`l1J&PmJbh#pN%#g|V)E&JvbmI=4&|qfhKmFoIV< za43-Lk;aV#QjTJ^>O&y(^KY}I0Iw9=v~wz~Xg#^GNn*~plRkNRby0&nbI`OKFrFJ3 z#!SNU2)(s^oa*b-Avs+$nOvK%-g)d116EFU)yF4vFJ|xIip_C;MeOYV4BP11V#kzb zLY(hZ3jFi{+>sxqf88X*iJ6k4Ag-kp_YnBVf)~A^??{s^Li@MzOUjCiEpD5N;nVjJ z`n9C;Z`;VZrcg3<@D1{l^F?89eoy)*a)9=-iwycu18onoIKHW;1|CMIb)ZE{7Lf<( z{$E;SY2DjOD)<0cneBwvHhyZ=GjBdy>D8X%qcTe=gHq*)r^JjyaKO1YzIX?aqGUmg zZ7bSfhKcUoyV;%+5oy-G9*boIwR=bDMVzB%^`!fYXrzZL%qpLMItCuF#V7QQbh}>Z zi73qZ0*FuqV2(bh2c&+P@}sDx+QMO7bjf4+SiWpwbEqsgD3LT+1)`O=3tC^r#wEP% zKzA~~4(Bzo+2Mo{T};!b3NDn`U4&I1cMjPE;#R3UPEcDYf?4KQ!+M$QR<6aT2=Hz3 zp{@(Yo88^1E0Dc#rkCa#U>@o%)0HkdMM$JlLVb+Q}3(Oj*e7ka2Ie zhi9hh{)9Cp-UDb^Xf1vZbj%KjMLtnGK_q^T=8DDX!t@xaIQBd?CW=5^Fl~kM_n$?4 z;0LdGPg`Sk`-LV(n{(l-6+*%i4B}vbLyA@T6?JWduW^ux5KQl!cJcCwMuH(!F!5VB z0}?a2{PaTYV{VEzpXlFsrf!1H`2(#I8*!xS8~WWthJGukz->c}IEgUTwNBo{BN>5S z|3x`oG2E8M`;x6O{G(bRW>G{h!m808mDC z0$g-TvN2Tj96|LfRK9sE$3)hf^TLHH3KD%9uE;rxVZmsy2oyRBIW-e;(X?O;r>`!@ zn#-DIOKK2AM-sCq+TfsaNj5`;Bti>qfmzTUudflGuS~DGr_d z@%>~PuZkbW6e>5k3qzd9%>B3htla*qpKd1bm0$bn_?~PBl4O93iV*Wc!heC zOy~v4&tz9++w18^IPj}^V}&nvRk#{Tp3c`sHZ|k{DIF1bJ&;-+JlK-L3>nd zsMHoNlpA@11zLLjgcpQ8N*E}-h$S+-9R$}D9TLy(m7tToP8=j){Z6Lzq%@4xAnkRX z95a0S^ejDZ1?@HBrBNQGJP9}D$W6WN74pQ+3qp^}NHd=)663;w2h;#TgoPd3G_hmF zV-|HJ8a4T!Qr4EO%qC2$M;aFCu@N~*ZJ2u1ETgjkvUB^-0UsAp8*`9tSK=;AwYrKz zK6pwpaQp(^CUfZBINXrfrH`Z1ebx;34_-mkK2C2Y(_?CMb4fg{=k= z{@PCQq=a5$#2c-|P!Q8(aPF@aMTTA540lBuzd1oKeJshjU63WJp7=tQQf~M|+%kRXsy$$mApz zlO-ytx6L!1*rqIJR(nsxWD-o{Tl4$)Fs26seG3jH*(ZYg8QDhucTd+&E%oSSWP_qk z0@#=#imI8~J&1t^jLoWOQ@4P_MV5uCN=OU1g7IR%XJHw~{~1Hwbrs%{?Mv{aVzk-T z^dd@9f-`li9?C1*Ql#3QoIE^hDFGL)0(_j9KwTgVktxj%M=?N#SQ0^m zs}N&m@$;ATVBgVd?RY#CwOs&5jU9Feh{n&?v}>n}IiE%)jPI)%3bxo%-@^)>Qa~TL zp*`o388E?gI$NtP7YN>ZJJx^C-b|a!7?;9C&6Javin)7Z<9;_glL(n$0*Jusg=!e3 z-6ulj+SEbwxSt*X`|NJs(uHs4Uqd2Qu#gmED8UK6e=Zmzz2v$MlB;N~**mbSw3oa? z#;%ZkmSRS{D+RoCz^s}6^_g$DcMQP>;S#0s9Bg9p6JgFuIl-?qUdg#@S&M5NZ1@7X zew2plGQD_5XNRzN>dwJYwdeBEhaZ@@(>3eL+=KV&(CX3?q^FVv+HotSQV_!$)@}5J z{$n%hRI&j|&KmsXk^`$2Q>7rE7TL~ponN@3oUGmDV;Zt|xL1+vrWW;p}m^M+;VR43H`_$`9;7PVFMgUQZqR(f6(Zf$A=(Fnad!vquuqgK3{2rDSg8 zMXbu+$}56-*j2EpEf(wcTlwPQ-ky0?!T0zK@=M}a!~HV-5VB$g*fL#WD%n=BU7#KE zD~1DJr3DT7kbBab2x#j98Z5Z132swm!0D=0N;V2qv_L{Fs4!pR@`u==?e zKj!LhiNwzi6P^l=S+eL!erH`o`#FAO#u#P^)#Xd+7%=K%{a@m2*1s|!Q&S+nF48T( z&l^FTwbE47`3P6pG5x9-njB}2)Y~(azvfLrvj~0wR_eiN@m+ERY$-&_u4>QNB zF?>OO(!hg#8KU&OVAIh+ey*rwR6A(7ZOeB*)Q9LX_ENO+@YNL>42Uqk;rH*l#DhzP zu7xq3nuw;fjycAVXmrRVVST zLO50$=iesxiT-21Z~0>1$dFrCPOC+jL@>%lykYfb-{UPBHSyH5KY7j!$wlh)uDNW# zPTe@j?o4BP%g!HAf|_iCgL}?IQ7^p6?XvcZp8U&Y?Qu@_IZ39dG(l+Vh%tC&)j6r| zmliM#`Z6u1SAF(t9o7^34?NzWhw(a-6%UV(U*uV0zR`{;>}TAddb8)) zM5}n|#S2>l&TznLosF#@%iJC3KhR@gd4D7UViqSuJKpFTwBO`)zNoyaE@)RFTuqz5 zkx!>DPX|csrbpQmVK%xfuFdKm`gR@HGxITOMCJLR`W8G{DFuC4gd{0(`$8n8@DLc> zP-2v!Az19Y7G=liaBQr~0O3WQag$$sXmax(!_Hczf@I_zXDudBYVyBWEm1W#4}#=v z;T6YXBn1CPYUVJN@`x&<7P#V+s&RrFn7-8xmf3u)gGGs1XajGDya}pynTh_lb5Mw= zcSm^<+q=qVC+k7mBemlAfekJ{k|-$$=#n&-GEahFdB+26S1w0DTESiAqm|jjN}J7n zh-nWc><)9d!0>QwP{8AL;Hrd3D+C#Kj&x%XVJwFrDWg8({xi<_kZ0*KVdzI2tbfqHg4!X0m6C*REfZSw!V8lH0zGce*&WY9CZ!=?r z$llLn6-y`(7vYdm5g2y0_6S}{(duNrMs$2|r(*cJjL?XQ-->hzpYI(_|3t8ynHs9%z76n--V$qn zrbZ=g9HOu~%gMmB7osLH^|4G6e>BD;0JVlg5$h)MjyO9c8unEnn*;i$Dbt6d5=>2* zKrt&;u}pFcO-~eeDB^gTzQ3jVy}zNUm~$lQCoVkoFS0#+mHZE!>TaSKm>=3^r=cE|i1u~cNsMT& z!VtA{ETwDhCG;3qg=Gy(GYVj=xlx=oQ>nOHnNZ;t^sv;5o}%YPMUn|(8eb6}w$GY$ z<2TQ;mslbY_p0cLG4)}Pd#M3%jyp3XomPTL%}~lt$&{UM(EQapUBwebjOTAIu--;~ z1ovWiZC!Lv?u%SY;p*h5mW}zqX^yLBF+aV&o1Ar4*mAxOhbMAvVQSR=ol33Hj?zi` zYmx$We_NJv?au=mr~yhxc4)qgcgDFPp#nuOD$pytY?9~HKO~fNE%sw3X;+vn$S0VX z0)JQ34PNsncC&O%Paq#UK@`1;EP$csg{Y19^Xmt8rqyNS7qY%lRhCAySVA>vyd&w5 zm+91ORF_vwv_L45s$IVgy&0GQK-!(-Yrd>K`h?fa@WTO}LgnhgG0$%bggz$noMsrJE|fa@%)kB!XGh`mEq)a=c46U;?92Yv)7Rd z56)55R8!`{MwDNqq5s~zJX}n1DUJsv=i1&Uv54NUEVRG?S3s!0hp7Y1orCqMok0eA zx1@R%my;ZoH1}t7tXl$Y8dk8onBFF1d@lp8pU6WjUy{3WW5yEr11Dr0mS)nko&4iX z0&Vz%gaIQ9u+YeY3yLA@{b2xj$)=zA)>Y$?ej-K9s#)3V<@gq!?`mHEpKV;-+gi~B zS5QPEh;hFZW1W%**Xg|4AjHQF`JwGCf!6xdm;pzWJN^vpV>*iuDcD28uMtv(({I&t z&L*YQF#m`#DC^;&oY#rWoU<;hdOSQh5p)3N_=#EBVS<6>TjSwI>7_T7fd=a0d6ULBBA-WWpTfBy& zGrHfQ{t<$srZyA?OX#QSuwtw9{jXg(!v(4MZ+F}(d-cH!sTr+^Gi2a2GCcHhg;h3j z%>w&Z0ycUuA;TN*c3tqHL6|IdIjW6#I6^;SM6-L-@pE6S&JBTJdZgfo356wl5?GHI zkcq_zi>T4ljO%mkNsIQ#zJU@SRdRHN2fQW-jtid*%2FW?5ARcjAFt0knTmB8W5h#Y zVd+CZ7Jo1&&4u1xUSDRO(B)M5qDyA}Vpl6f^x$9UZ6n>Njokn2k?1|g79zMcE$-dY z_NsiZMA{X{Fc#Fi?t5T)ZAk$|IXXkxCOik<$t4m79(=o*A+D3VNHtI1SDUZjp*O+K zL8*tr+%fEKLVg%igYyf!SKvxNQ15&Wy935x*rfp^;Ck?ORY1rCn`x^QJTUx8L5D6? z#2W&)(3G~$qR=o}` zIbOGcC zuMUKUk@XdqDI?rFwzS3zg#}GGynAzQ;w=Vrb*_{+wHw$}Z3z2f*^D1U%CzoJ4z?ax z0bKq=iM9?lmWKJ`xXVGTzw7ct=@(w<`RmKZ;k*ic#<&7Hs@x^#Z-^ZZepw8g!3TEA zf_1k+^Z81b72j`QAT0FhWeZ&V3YV}U$(D6PB+!pp40je{sbH3u2>Y^i2vCbB^M zICjC*+37f~4(GwK&g=$9cOk#oR$`1=Gv*ft96&#FLP`d8$InYUi zud`%G%QtcyhGt@|2lNN!h>5Kx{v@I;$`UOG>VKwQ1+r0HxKHgsE-j(4zr~%zh+(&q z=HMN~Z+?csWr7=1vsR5Pg~&SVewV!3aVt%@UokvB(BUapDm-?xj}bM34(hq;N+Lbs z^#Yk>WW}I16r;dtjtBPIPPMr}OCS+%T-bdhKfcE|pv%lja4z~fTSv_iw~$YBoj|7hXWI^=D!SpZOS$sffWJm!_r!=dxGV*{+Z-OBhdK(ykzv8)d= zpdW3ExnB0gq-NADd-jcW^i2hD#EKyPs_k%CNUSj7_mcX0A{?CcPRCZWiRG^gjf2j2_O}gg&EL)Q6 z4U)=JRYX*5xXNOIaQl&SdLIAD)yneo%RiOR10(O4UQ*(wA+LQRv)xPlHb)PcbWSX^ zrP(p>Ae1cl59#)+4uhlIyhi!A6U!N^yW~uy<(0r3S5+XS?cf*IBP&i^-; zQw;%JY~ruPQ8Z;@776v*ZNJ%mwJ!1 z;4epj$N&eHJ#t*YE*==zCA-ytQ$1=E_W+ub;5B!P&cf8d^cE21%@rk0UkK=Z>o^@Q z1EZ)`6Qtevk>4nRHX&EaSg}dT5{pN6w5(5>yH&619?mP|@UR3}T?e?` zqA@HI$bG{^dRp};Buo3w~HT?KdUTFS6e(AR%M%Hg`b{rzcR?o#OK%T==(BfT%2Ci^i7i z@a|ejP+Vkgdveb5k@87QSB})T)^-v;GnT<6SoOibAz20)YwPm}SF0pKg> zJ;2UlcKcP}a+RI2AuC+rrEhnQJBN)~4lhhE1?DI52wNj>>F&s$je($$M8&ar?|TQd z{YIVSs-8bf?OpuPi2>@>DK~5-#W)891`VCFx`9DNav6*%`y*L=;=)vXUhC0jfdNFJ z_IkI6{YI_|ls_Yy&E_qQ9Jg~x^S))5pHV>w?k3AaZz*G1D%U8jm-C6`!w#jjh*q&% zJa92@flMj2KTZZ|I6eU^uY9A~aIk%{J&$ z-iEHUjCxBn%6o$-uc2V?#&pw@@LD{R!L7E0nf zRCYwVR(iG(Lj&*flMf7mra_zjz=otgW$$5vR3A=wv=aP%Q`g!Te_Cv%e}UsCp;qNT zCD17R*=rIZg?jTk3{=qPGbuj$nTo79QvZ7-W3ZEvLtio3(bH}8-RKBC0SKZ@PpiM$ zdp>Q1k(8Eu~T*0w%oFX{%D>;ShzDr4Bk5OtY|J#UZ`NHh>HoYQBn$`5#xHRTOHE6X)w9k+i;*#KM#!bnM@ zQMqO8d%0YO?~^UtBaiDjNP^kV)1+Q@NwWu}#50v1Uz%N%&;yX~4Xl=}#BrYSEr`8t z3Tj&f@RxtS`kk)sjmE%-m5x!@_(BOQNKzsVe^83G!(Cf9wYEt!cNdO8R!2Ru$xbZU{%#VB-(>vUeN>Ptv5+4zFhDD2cFj9{>@b+H z*{22$iCz3mrXmzzYaZiqk+x-CU-jJa4&O)3fhEC;mZv{&s{5_XDxSv#2505HYU5Su-yX=w#(+r5IoIT zWwHokUi#&`x!~$qr@YiQOM9r&)p7=qi8b0JaXGV|Y?)_MVuUp9>UP1L48~J&_?jF6 zj4mp4CsAvV1psj#S6pJR7~%^`mBG*9y>-7DY6feg6BcB-h3yHFQ|2(KpX+^_YOLQ! zXgv&oZYchu_>J+eF`>DB_}>nCIGbJuI+v8Wa3vcUxCi&`=rXklUH8?}VofcEHz7h4 zdXT4h4MhLM74C=0V=V7q>7MTxBrM1{_wjp~6CnzowdtNbb5*SGEvFqIcI-*5z#;KB zA;P779&rVl4z}B#04NVvt*rQ^5gXn*y_$^QQP}ntPl+(rlt_zviGl*eyri9CcC|6Z^7lXhMNLstk?}Mq6KM6919_FNZ^hs z`4)I!YutXB-#3dHn{ZDhXk4KQp;vTZt=x`Ana#1eVnLa1mZ`%si5+R)OmFB-uRzOm z){GQG%h?Ndkr@Ek7w*iIJSQBS;H-%!5)#XK!7z^%U^srWY8ezg8fET<~y+We2R}MA~9MbH8#PFx~jA*177bh z=q5b%P-m;zFG%p^=gRbVF4Th!d|mG%Zq~*lCK>5G5yTQYW(FoxcYLd~5KVL0f6rFQ z#wRojYFpCEXiHO0KEc>yHQy%0xz#_au`G`Y=Xc^E018fOO1WpvMLZF_Qx_tH#K|#0 zAco3K!UQn{PVe?$_f3F*i(w~|67>*2fFTLkdE+SZ|8ww?;AQb*`k?G@!3R&S^; zI#4+fu)Qq>-I%&sA_(2ysUN!MYk)W(n3!X*?%-bzqqpH6EuRy+gIBP(az}2taQ=COeBI>OuU6kSkdX)FJv_h|v8VVoEyF2hT56wP!|%*sLSK?TyM6f1(8* zY}pk!FpOqBojo^JEywF=>6p9-;vhC-?~^O5b%OvaT0;-;KZ-U)>sKeXE}>rG!-hSk9PU6QdFGPxa`eybebzDp3o@!Od|0r`wy$X zUx@g{(6YtCJn4}rC>>i@Y*5j+b!&2!iHs)WI8`$XZ!~`~Y+{r~>Yu?E5a3@Lu1K?l zUrL=WuQbr@q?d^fr8RZ2DF#(;t1!}|f6{NH$Q=1^s319hCeZJ_h8GD}w|Ak%w{%7L zmU$bQwtLW{qTz~~U>g2)GWyiE1h`R2&o8LV7NQ*I0$2%LakCF4N(ZAu_z1=kz*9<9 z$xAeeZUXWQt3=W!p{PD;+8sXSC9(4j5DB%Gr2+T_H}8MoLH7oez8Lp*BJA92Q zY7vbb0tA)%hgwScqTX9YR<7O?v61Xq{RI#|`-izH?epLC{;C$o)=CN{c!`}DbY$zS zGEN~Ld#Zzl)dxbYugbQAL(P^?R@$4?PA2RJ`m4QNSq&>3De0kwlC;=lXHUcvYC6R$ ziB1b7Fg)ok#%=IQF^xOuHro~j`|`NBnAZ;7Jfb+keLtLZE>>7KEN1*obb`MyL#&hd z(dq$b<$qoNIUeS^89X5m=l>M)uMzkaNtXP<+OxCku3-BSUPgT4Y$e*`ta zSjOxe_Vk4Od+fu`csi^~5GYLr1?q+AQhggZ71{hjT2^d za~A1$ZIe@0ER7A)+>Kg}&~%Et&K>*NolOLNJW3=`qjafPWlHkXfr@@-O8U81 z2f~0Rc3cDFQlYn#7GKQt?oeU-npwO%&6gF!463WYLx*z%6K=c1{UZeX2P-VKXzSh! ziSGTNBn7@C84*By&WEa|E|Kivf5Mz!)OUtoa|cL$v|9x&INueF9JiO~)nOrp0uI&% zP3i=yAI@{Fh7);17Zs*9`Crm}SK_Wa?f`t_PlE&~iz2)+ySn6)n;W(DAh#SkAl&Y- zsY>_Xbl!=eq3ObwglHy`{gv>4W0N~kmqD(P6{8lOxwr| z0fKz0gGIeqM^PMHESUk5!8am6p;UC&`3VDf2@GMBv%gx{$B{)_4gL#jl-$PImriv~ zf5M!W@BQ~}W+L52p)3oZ6d@A+5pY%j@vZnl%b4*d@40{Qu2Qd(p2)M+!l~ie9Q;}% zN`#n@0m|QeFXrkYREZkitj6S&5e@9RouUu%G|pN$`TBmFuwi4zlA1xw%lb(!Vq0DC z$$zsWftQ!zbM5o6(n(74kJHAMoHm?E|I*^Xts;&pOG81fvsDc)p_rendc(~`)acKY zx(TSHAq71@#l(Kja@HfFye;j6X(LD$6f}uskHEJtF;>U-WU!N2d_@;onUkj|b5?zM z4o=7=*QN_<@S6XOdZjLWC3O)Kb7<7^9-g3DUm&*|7@T*^0`~+@?FBU2HX; zk=AzocnE0QD&-hgu^IRE$aJEgEB`v2d4+D|)sI?z(d zx~+ez&mb=8!+K>xI!pb~b>e5c;w7M-qxFfSiP?zZ{=0C(PwJ7ElUY zX}0cJZS!5Fe$EEYKfYV@XKzzH$qUeA%e5wfx2+>*XfUm8lMeQi2BQ7X!Y0+qxQjAW z(ZPc>q2Gd`*}0`;K>nDMyc`=V+%yq9v7uT(#xjP=quPy65Y=QI|f# z%LY!{?m;>IDA0(Bq)z`7G%c01f^(43*SCxNX%0654(C7!u#xa2Xy)yZw430ex|m)X zqm@N6^UFL}bK?IG$XPNZSzK5FwO`?5Nq2Eo_>iOYcQmb%%+xEM3&$bp7oc}hP2G;J zQG_qECft=FgO%2zbt5CVH$so~6)Fm!m>Y&vdAeQEA7tGwAD+5Cy9C1*pXh)}uFuYQ zc!Y9Cf0nT;y?Pouawd<@QD2vqJN?NN3FvX%a1hLC=dO`Lae@j7+6BhA7fElER=7X~ zpX5I*MnO$hS-3B&cFuWE_sU3;G=A?z6jll3LcE60y(CP6r%||s`B2^MOi99Br(vxd znWZ||E)O!^Fa<)6UPGuv8E(PJl_*5v2VeaD;{E*VmPM-l>i1sNLRZ8@+dCD%0Lk{T zkGPCe_s2r7@crXySl5IdZ){0xXFoQP(f$f!a(JWILZV~S0yk7T4`7|;gg7YLaMb&2 zw5o{{JWJIUA!j?ylwwL#VPmPoe(x;5qlF|^+yTt#K^I5Ybs`%blRdJFX|Spa1yn5U zlOuNV5hVtdMPwmHLaXLwz=JmI@@ekFB-CS0z|I}UO>cdFq_L{B4qquIM?303pSZkWh_RbNIRqQzEk~iYFQKQ|B-`Xp&J@~oHXWlIerJc zoArmdWdXB7N#ljWo=7C3!3^g>yiaud=!$#Uz6~SXe%nKRAyObP_#?BpG6G|QPT|a+ z9MKnPeJ2UIg)~M>S4_pSbtt&d+rYKc!NrEQdOlui4sBDN$=aC@w+l=5%tGl;EW7Q` zUI=ZTff&$nWbM{08oi&1iCCkkT+}+;FMXLdG+77W3B!34OZ3K3I-DzL z5!3!+GVe`Sw;s@>775;6#W@yk=08mOK^D`@Z}%*k>8KHLpLkciH=f?MS1h*N*oQ%M zMEgC*I-j9Qcz?8vKH~5Z8tYf&p(yzdF1lj1Ass^|dV?*(<++=}8`B(i#tB6L-hh`# zuK*|l?Zn|RSbU|cFbF^&uRR=el_9hm38 z>aT|rdI~Y8rYA+S6_C%hTYFIlXUiG%J5^nTcv#e0dfK>3%=U5bHk=3pCt zjD`(m4@J7jGd$8pM-3MXLPk93ZHcMI&hVY$&y ztZn-aB~~Qz417cdme}wUV z{@bIO%*xsPui((A7D^2{F}XnUv)5vNk$4%2kVU$82Y<05=x)n;QZ_Yv2m zx+5s^TM^Y#qY14I%;~j}=uPHv^SeSf^HA1eKWRX=-_RhJ?NlbP?sYS>B8!inFt)U4eV z2Cl6T;gCW23vuO!P36Hb&VlQ8r{wsZ=>>`^z!j^lRB_;M2G1&C_vebcr=Oa)6pAJ! zrHeVad);gsS13E(kaa2!Z3POCw|2GF6C4OOwzH48CjO)%J`A-z)=ALC$>oEmH3~Mo z`L&TuZq1vU@}xfcDJh31c>(L-c4a(16sl4!`=V=0*PK2$!9-yi2a&MOQjJ6s-M*39 z-WUer=otmn$^UFJ=t|51XU}w?(2fy84NgKjwuRy5~nrq6qyvGCN8DA z#QE`5h?cutTu)VF48EbWA7_u)3r( zRxR0z=PkvB5u5VphXk9WUK581hImQq&EH2?B)&BDe8fWLGBc0*h#T;YF{si*t8WZu z$9f?%?#%bA0UMYkkgtkG>Vz+u>0%KB4|{sR;Y=Vk4qX7YOpi#WN}h;f?0%LrB*4%e zA*3dE8mRSC7}i~y6EhIyp$Ai>pFR<#cNttN5fF(YS#C$K?hKQ9!2ds_#4Tz^XN1UU zkuN(++US4dc}XUQj`shJb|K*567YS$2u0OQ96Fh((S3t#$_Qjo0gb28zy&h>dQ?isL_<6D)p<2u+^4zM8jk>;Nn<)@e8} zpVyY#h;ovFZXL8+Rdd7e&Ze%oZGa^~d*ngSxgGE8Ng3DHi46m<1Q`T`9JnCRWOy&i zt}&ixZPG|W5Pkf~;O0;O_Z;McYOb#)^Tve_?rQ{Croq4AN6(GJ5*&yV61}n|W6IJ$ zxp(Lz)f!*5VAoq)R0Oofd%?>v^Nx65kE zPk7TfZX5f;6c;(Qq9Dz`Q*Ykh4L|+d6b7ytk%%*@)#sDi#&uAb(`saPbSnTh5x9dm zisONA#+ZkW6ERi{UOK!~YvE=y#_cY3D~~@tDyW7-N?J#2_b_Y;biPcNI8>N001W>j zm7onvah4jbv7!Bi7nMVq;wW-Q<2-O4JCVMjRm_CQoBX5js+$L)@TEASs@%X4Ay_72 zUB!G;B4u=+h|Qc^=JM;Bw1|n&SbQwo^E1NAp3{IAOF@m;0m4PWBl}W7eyFdSLNm|%W6g`4Be2F)eMek}`FDm`dpDvd?Q6mD_6PlfNkL|=q` zkCXW5256NdBRtzJ6Yp9f5Pr+N2FA0KkVwGMeUor;+BLklx6;uNBKJaiy0jPj(w?NA zdqD%a8o9#FfV4&1>>MssFAj`a;$JrYdSw0{rhc5v9t5T3hC&1>RT0ixBE>R4jbq`d zUAk-EXf?)prn4F_bGFYV$|2%SFPh?c_WoS@MmLfV^)56(D}ocZjoM{hAyrQf3$SG1 zVGV*I)ia{qRS-q;ybT;#6BAwOMsVW%#GO3{^J$P(>mA=O{gMORYELBS>h20Rg ze&*tt_|>q}%!AKs6H2j;N3)bvgdN*Z3!hi+Nu;d>pqF(@>`XttYafNE_ja0^zYXz< zJXt_pP5OsY*rOD}JJ@tV#6^T+ygrvFoumt`|{ zzm(R;pcZKe-QPT4t@l$-MSi06%^PKgA5qz^5_j+*TjrUMV0Vp=82~2Fabs$+OT#A) ztcAYq6#A@+wI6WsJf2V0VVJYPG91LLoi#?18n7BcYE-$Opz7)n4>!zND#xDkZUWX= z-3tUpmjmHHs64>wHgCHVJl3)uY`1z0I|!Da-Lz`pu6QzvjV?itJ}CKosIA^;C98(B z>efO`r{3Hx8JgN~s03uS5gS}58swTMI3-Ae?p5@RP{GnF7p_A@WziBnSw%l4%spV& z($`mz|KYb@-_kNv&V4J-p+``{pAsBkb{&1FpTyU=?`TBAW!Nx1e3Xl`R^i0;%gDJ7 z_c-VMc996+u&Wm3)^pR#d`gNHKZ7m&e`{EguoEC)1xiidJZU}P9SxSzx8)s#_a!`b z98{|za_I(VOz>u>uek>0#&}ZaJc>SHB$3q>BcklbUm}GeY2!DI>;+OUE-L7!YM0KJ za#aWlWD zQE=%n=fZcD?|y*gD9gB-5O&L0jLH!)`0-P|=Hk-8j4N)=;!=GkL+eG(o5yf~v11NB zpjXfdp-i9tE}cUq&5(Q)s6r}LiBb<$LSG{PIm9OOiDYcD?+eYe&2X2Ra-kqN*<8K% zUS6#}qim91B^|{uQpJW-==>Xnr<@ZFxj6?%u{I^^;eDc2i!yx`; zx)Vp=sn)JSXaTwig6mDah;3-4pcjv+hO;8;G9uPm$?BB;#sV+ppyKJsquZI#jj@y- zoqDk){jhF^;us(4W;_F3vm{6yfyM`8QY&co?!+HaD$(*r{X?%#mqh2Fyn`d=^ z`s{n!MATEkdDxw6$D(<&#Z2NAFU z?5cZ@STQ0x8rUjb;#eFT+ADtXDETbOQDad{2qYifmz#aR{ow>vim-wFI(0$hS7ulB zC+Cxk8{8J#kdq5Yx(Z+b*)jyw2}!IRs12vI!8@<-1DI*huQ|DbLtA9{Sqjf) zyTdzxa{xiD`~N=BVjQ@N@1ry)o|kL^!cfNBA)w0m*^V0amwY4Z%}`KeZ`Ma{YNmdF zlAJO?%<0Inu=lcqicz-84viA-oZfrDhcrpXh}=9Hl6uoCgr(`tLR(=e0q+7h983yv zJD@_@&*GLl0@!cwuCv;sT+sg~V>ZuoI!Q7%x#qf*n-e1L7iVSQCbX2{QZx&75xZmR zxIbL3`x+#^i;Im+)n%;fAuoJ2U4cAP{sKok(v_i~(rcyhbZ-DVJU6zI78d5ti-=iu z@S~630`WG?8}SdjsgClEejV1lbC>1Q*DII9MN!mp=_}@+pLQCji7D}kN`W4Orm9u< z)T4Nuv2Z@f#Fb_MjbE{D1oBCL>_}2CaP1Am{k;Pl8@GB!oXv73RB-t1k`I}E?+9TB z>AN`1miinNN7P=XW*EEbcSTZqH1eju>mv8JZ+XtAQdz0E)u%y1S$=$(k3dv~M{0Ql z=p=jaub{Cmf4SYRY%3#1T`b}C^i8%`Pl~9-lwwv4Q;O@YquBmG1j-iiVr_ouMsc^c z!yJCWB1K8?DVRFEtTvA%kJ ze!K$w1JHYK~F~fTl5B!m5y;$u?MKzK~AgU)o>IabK%QFKjFqXe>Ra)+neCqp0xhw|8B8|QV;9E4^#2w3p$rmA-K4^r= z{}o|M-|p#yO=-P#=Cm>NxzOa(ifv|#ec;mqFXcwSXt|gBj*dnt`iGG^{Pw_>s5~?1 z1tC41@`nafW=PP0iggkGkO~0sJ`&KigJm<)R*EYP89^Pwn0Gx1%Yblgqa#*NL&VdEuqLpmhE8M< z8nRML<`cuW%x;vnmfgIBvxap!wN+y<4q!vQB_)0 zw~S%#Tc5VrKNe5&ZHj6385ijvr~SoD)6K%(;wnpIFiNrOY`O@%vf7#Ad z2?_aJYt@PdpUh;c_E3KuJizxebMGql+up&$r(Fu1oXP5=0u9u3!?ju5W(ULkC$$^r z6kSHYYsE}#-bqb z3$ZL7SWeBE`S1^TZZVaEccc(VC`h5w*pphhLwuV1__%!}F$Qm)@Z{4Yh@_3l`mBi} z=Er~M>K&>R$2Hm4rD*u5NeiI= zL7sK2H;y2ek7b}0ZE=UmryFda8lpC;P|yo|~J+TFv;PzZh?!<%Q)- ztw%O6YIv6zH8ha(iuFCMT#=?ii+kXHI(l)4!@(;U-3dyCMhl?PkcMd4Z9Vj$RHjos z$INqOi{MxlikP=>>2l=j+wf$B_Z326A+9fY#02lUW44Ai%jgc90_GzyyPYI;I`c1N z`D$NyRyEft93dG`KAz0Zbro4jiJ+M}nt#s?l0rSKYAeo^s-bt}GkVBLE@E$}oM4Yj z=8TXE%utpK2;|+bUIIxm@i-Huw6Vx3)?kD6syPrs*yW3kaI8rI(oj2uYDSL6|F9qe zy+!cZt{;}@Wr%fLK1!L3*IJ<<%@wdA0&{p(Ds4u}63okFEolE=&rP=Y%TR75L6b?2 z&U7jlfbOjnZPJI2)RR}w{cd2Yg?!Z81#+u*%jzCX3dZLRRw<=szETHZdFa9YGLNH8 zmxaJ5SSw&n5nzavvHdN8o19jM5tctNmMdd7iy##Q`sC=m=i^-! zjt6GPcYCktZQ%wyS_X^^Q5s(oVzA|d$(ih~sVf#QBLI^Qa)xfK@qO$|HOO#-FtQ#UqA$1T4%Ulmcr0&s*28w=OcyIxOPL|C^OKNVh7-eB|J@n^s89*sAn`&MlRq3 z$drOyXn-0K1vecyjTD(>Ge1iWhv24!z)o$Nb!t=DhI-%?P>cJSR!o~d03-(Bz7v!Ollr&kHJ@Rq$;6*4;+||*Ud0hs5ZOTM7E-b!i}Q5G z#~$SOCuCh~!Cj3Yv%5^T`WQL;E0;UXjfj+5JvB;;Dq6zAO3li_Q~QGp?At~+NPA)V z!HgVd#=0C^T5AZ@W+%~bOVJ4y*$=KE&=K~F?S0aD#xc7BqBn-$*nbK`^ZYr5PD`l? zzbOc^mwARN#+?<0Rgg!T9YhF zbx}OeUZ(4Y_EvmFD-VXC&d7rEKK&Ys9TdOtsgeQ2bNAC94LaXg(%vI}y+?M`#Sllv z!Sl_N?do&ZH(*Xefs80;GW!E8Eb3`5HTdQQfa{p}=m0h?c3UW||4XHO)3WW2(7Z@t z<)_LU#Dn&+zIV5KB=Zot{<3)4`3ZHesMVz)517XQyjihiBQka_^wrW#*t1Yx&8e50 zjU;=6(4qCffFYj#f9q?z-Hnth_q`?VE=aeG-ylwi#?F?zHU5uOlihm4+sXtHD}!g? zee2*$^UmOn_d+gVo=?=Jb|{QU&=6eV^|fbeUy}{kAJ~We0s>{-X0Fx@qPa1vS_Q@uEI}PNryMXU81K$6Ml+T8@hcE}YZ8ZXX(o1a9Iw?-&`9&2}fgUpn`Z=~j8AQp=A$HHQ z1VE{Vmu0vIri(cM70j8lQ2k}$#Z@nOyzcZV894;Rc~}i#9*gp5)Ep`aE%p*xdthTi zx4l-<(&L?~hB%nz^Fo6wGBxZ80jzYO>qDOEtixm`=Uqi8>Mki3w}iq@_JH(aY@8}1 znBgzj0%Mnz&)SpOgouJK99djBJsB?rITr!?|0H7O%zFSw$fq?^OsNLEJ`s+9*|z3^ z)$2nX2hd8tSsRWE2`eEG+A|WNETgrGxqL#>0werKqQe*M@c}pRPOkKLKky&*EslA& z?&JMU&%FHSA#$bgu=dq5`OihU7_JpXP()ideyXamF>%MiyqDsfr1?s~wVz=SA_9KM zsdYSOuosbO*c40$8w=m)+cVI;R2{q=(>^kZhf}1vUy5v}V;$dP#VEq9)RuOhGXR{) z9Q~{MzYXwb*!Aci_#0xCYo&X>V+Y%}8nnTC?OCVXrY)E;xxQ{`cr@=RO%(+egiyPNRBx&R-QIUR-#3T5Y~3$uuKO_3XL~h3nl^r?3UN**r&{+qWXAM4P^0Wq z_mMCg($scI2_P_iEpC22oc9T+DQLeRePJlcnK8laB>%uW)D@Ias!p|x;j!qg$( zv&M!|HScj$oYRyQY1WABb2oSQ24#dFf=)++`ug=0Q=bIW>Bf;{V0^pT_B?%@(iI9p zj1ZljpnP3dY!_Mc?=KrGJo+++Lw-;sAEZ8-N(SS|4t)#Cx8gzxvb|v>v>2wg3>On^SEzCycPj!Va$c4aX%k1*_Zi$6G1I@qdAd^ zq(a_N4S&AVEZlT;bYv8k-GDr8@J=jM`&*WEzx5`q1Z#&@GR&AoNeu*|A#&{n0;2hA z5(mkO0Vyfdi-p(=11&S~MT5faemeTV!?r;*ifLj>@JQ})ggH1`3fp@Fg?OF;CFSD- zw~Ovx%u6!2ZB~QNPr6{pGKxHWNJ-m5OG0pxJ4v|pt%sGy?sACAc=%d8C6Ji_Qk*v3 zV!zV4VijV^Q(boa<-Jl*>fA_ez{;R^SpcuUQ=CanxN?j%z^08@Q@rBLFQL=pw6Ng# zCE+iVy^6;5)1hVZVL0=ao85!#1Lq|t&=zAB<{%L+|alS8|>E0_(! zTq-VxMj+Ixb&lh2FOkDdI-YiPyNQQcc~HhRr~+4^T*Pl~8$;w?ffXuWHpZ65o4~uV z%PS~{``0Domb>qrE}N4gP!?lzL<+{$Z~TybiwwPw=vakS@&i@*DW~+kYkT4h@@~fi%X{-(Vdi1jgK7-ewEeWYWi5FsfRchw4 zYG%c;#{1{ioQOx%i#D~SDd+mp5zR-+5Aykbsw{0zwDHhPSnucC%#|%0{>l1WW_pj_u5iFR!RjKt*s$`XxQ&`A^hOq(Py(vl-7&aou zqn|&9Jp+GS!c#S#jARCy(pXiyWGZoD&E0yl($E>zzY-!EI50{3B2_mR468OHB}L13 z0PdJ1uS#zxsa~I2hEGU^V2hkDf7`kTg|dnKk<{@p$k&C*q{A|jfe;?ePt)^BcRQfU zjGSB>(>H;&xgRsfepkD}ZE$UaxR;4*g;gr3_FmWL=aG1VT>$$|ZsKf*6_?O=Oi4q| zVQzwBkW*bCt0xLIN{b7b#QEN8B*bsZI=|s$o2mkAiNnmRXtS>50z9PE<*a(bz;2%Q$cHl@J2ga-p*j3nCwtpTO)dK_sGKSIRDR|B|X618=r7re? zZX4Fz+yja&qlAS7tl0?z5z^EE*aGsShaveHLckyybj=^Cx0m7mKPa0Yfb-H4HI5Fo z+@pQt8XpGy{oLYZ#kH_ccpTtZoEUF_&23s4AQ%+{GF4y{fr44NxWp?nV9nVY|&vy&N zB6L1`gI+PV(GCU*YidD*L3jM{`;c-=hV&YWTKC7XROtswKcIxQGkwHWeKeXT0`{~#CauK!eE>j-h*{>J$;R=LC{S0Lj)pIm@}F9%2f1A|VLKz zBHvXH_ff96)n~9%Yg;?3#0E}q9J)5b1y}|EJwU?05D{X?NuEy6#T^upz}u`7x6cNV zGa_w4lS}y{AH_+;M_xIgCoJGN#B9=yYo6B#0?=Rjr6e)IP?j_T$2^7CT|9c*$TQ)S zpyIwmrlq>bKJer;ykf)Kc!%d7Nf~h@y_^onsygCn>yJxZ1tyFqqi2y&lniO1vwm1& zthPTW@EKS}y;NrEKb`A3g%uI35(~5d!J#Nyq{X^=W6zC$LS$zKRq#yks@0kgcd>F) ztpW{dVw=CEMm~1NZmK{n|6YN}4M;S1=Ag4M!X4wY%E>T{A3Ao) z#Zgt~9YI`mXM(;>?l^S}sHAxoOgM-%vLZ0~Adf+GTh=s7u6EHZkIn^cc6BrJy|#ul zw_+7%V5CbPJT8!*EuXu3isCKP0$BT_yD!Ge&8T45^MBm(UN5b}$~UMeK4wzXQmMGw zjDCA~(yBjxZe4@vBx=N{ct4lT8?bQzZrkF%Q5AM33n}(u1y+b@gqnk?lYwklLJsf6 zmamkYAz%kZ!zq7AWz|xm7vP$!FF{{K?t)X5FTOg^Nuv_gBe9?g!z>Yv39mnd-DVr8hM`PDB|hei(%{AX)%N1rGl zA3(k!9{A7jF)_i$xpPnnOy2`%tS7cLoU3SA2?Y~)TmX;#Z@iI8^G}Ii#lCDX>u*F@5c4T;o^Dx@_PjWSRYymqg5SF=>3b84(U)g$ zj7FBwxe1=z64ICHRq)ii3)Y-j2m+0!(X$h;Qm$DhrmX40+g785()bmJhk$m?3~G#~ zX9`yy`K1PnPyy2bDYq#YQPT?eGPXNOHuj$&f}|cdhaSCzY_}Xp)j6{MG;^FBIA4Tu z$rmTyW=69vL_|&Yet=N$33{02{v-5(RFJ@YZ69*1W;Gc4NaupJ3kSN=2r@T%rcaW! zg4iyFFD4#1T5xZJ%gGv7!tS7ziMqbV^SX)HymCh3o^8QfJr^tKoR}WZ2URJC%8vbdKHzaKltZVA<^C2aL)y(G*-HU-EmeXGK)?0UB z7X|M?vYnHMjgo~Mq)fHJ^6#joNvrTCSKk}AJ|TtLJi0}kgL$(nN8Q?fn7gH*fx1| zZ8=%aWQG7dQDc}AC6!R+k1>Yyl$rNk^tGRl;4Wg@`;Ue&e@|L#Fkyf4^wh`eWN}oZ zvw|OIcOR0zlmpV;EW@d=8+%&VDC)xv*H;+AOmgaDHY zv`^s3cDIg9yA$A_a9t1@3}%2JnQkD1$VR1!=bob!xbD77UZr?27U!vBOQ*HZnyzo% z2&yvZJr+<*EwiJsS^nP~NsN4IUuFRV>^BoGP|sJI2Orp|5X4w|azR1s1gKY;enOB9 zKHu22um@kAOXL0+L|}GM&t`@lMb=F9nEoQ$`LWW;JK`fLunu-(2%dR{_mCG0 zN9^(OQdYAqFTKJoNdP0|hA2{BM7W$0eOG#PpArC1Gs_?uq9;p1+2y3!+R0F+WXubB zH<6!5OHtu$CSf-YX!?@Ht2|{#rsTLZG`4@KUVgpq5L?34K97)wxx1IQBYG_c3sN@$ z;VUDMmixgCs>a)u=^=E5KK5=bAMBoQ>qyl;=QMwUblUG$ z_m=I#_9uf`<>j#~+cOCSG0|Fv;ax(wW>B8PthixV2>Xbe;~Xu(dX=KFJF&oAQ{ z)?_wjJkze(xE}W`FE)Q1L}1=+FNr#UdB_o=zVDe(hvMqi9r`2-{a_6H;Psh74{$oQ)M<3$BGYDVohlw( z$uarAiOgtnR}Xy}c&MjXBWJ38pDZgS8KVFmXQzZumcIoZwrLCDByCrFglx72NDs0! zL@fKpLAcO;>jqtieTv#AWH+y@HcyK?(aIt@wl@wC9nvrM?N5y>IDMib)o^@gyg^n1 zW*Cn>arf@S?x8zvaH?QuxLlS!f2;;9yfna^w$jXvafF!^rr9(1bvULv#?t8?qo)m< zy4(2R)6D&6#*zsfGzfNUavv5w6D+1aG4iquITw)oX`WKuz|muJg-nr0Af#nu(|K$| z`cYrd)-*pdsOMMhhX)y<3qGLNq`vIj>S>p74B(?#T$X`^cgh(ZFX|ML4#`NTE5-4? z#Eq7QN(-dPHuWH_#Ff05@6a>oWQ)hO0{e)p zhfjumr+cBol`ozD$hI#2BOUq*Q|xG*{uxX-hziVe_(0%AC*o^ ztRqzmCqf&fbm-k=c_}HD6 zL)=|~axfbZbFTfXw`*w*y=|;NBXraMXOi_u#GW@?m`pvhm!-5>;~X^AYCFE|{NGT3 zjX>cO-I&4X-TipBBVXA-ct}^LgM`S-q`R6{2IMR4t-PBpcTFb|y5Y9vD*C?x|GOzN(!u}(oJb}^rU7D8OM(?l#?n}t|>E^>v z_!E}Pu|KC)z2Y^Ii0@Az@FbGf&Kiu(g2ow5%RW*;);PrfwvtKJq+Hzs&I&?k~MWhM0%0JL&A>*-_#G`ufzL%!s&~C_CEQ zvdVsHL#m?ddn9Mj%@{T;LSkDtuzG0gl$Njc9AM~=ks?Rjk#nbNF?&)3=mft^Lsjfy z0k~$JUDug50SJ{N^F&JSboJ}u0rb|5P~KJf<6*^si<7JOm4)af;+ji8Ywns5J|ZAo zOBT8F&F##;S~r@bqntPr0B^iuyUo;I3*^p;z?voaL3_u3&a?IXt-Ws8D5ppzS1M5Y zY8DGw?PW5FM%EADR#XqQTp0XojFje1JT~weLLSAQ`CVY*Xw-nV;aIs<+FfV0U2Kd%uLO zVY!Gk73$00g2!0$|JXRgKaWrN<<-tUQOj-Wj3uij&mG?c6*@^Y*z9X6OX0W;KqXhvm!@~0R_M=_uY3s$h=2-vYF*J(} zU>u;9V_{I~%e0#O;!3pIJ6jJxv<`N+vxaN|R8*jIeOxlL36}1aRW*7|pfmL)kyFC= zk>z z|5BC=<&=2jOv@e`aC$($_8J4fNF!cLlph&BLxm=RsEiG@@gZqOSv0_`~AAa}f zjY}{oQYPW;jFn*l+jZR9*4Cs2e(SC}qAXqVH1}(<`B23T_hU1Ik>$%`t*jMsTv#VQ z;c6hB5e!g39gz-5IcSMBg+bOqhn6Yx5;Xuz?L@WpeqV8FnopHOsRKJi?g8b+zb+(O zW;aSkL9r?J{>-=xYuCL>rkHm4X!yGwfrILUNsHC^zvpHLT{3(Cfwy^A#iiE?fXK(e ziMA=A{ClZ7D~sKX)5}MywNs2H<1RE~Vm3V?2HkY-^qtjFoFs^yNar;ToO(dqFX->qS$NO$AL?)>jLR_oy(z!_Juv zD|L{mK!M_6w5@H3D*#h-rAX1rypCsuC0H)F{A?F;e0do>O3_D?W20n86yvtN13pDQ zi!nTLyD^OIVb~88b47l%=mu7Q)r|(v$mT#bwFcNQq4h|Nr;5{ z#{}T1Xc)NUaHBv>?Euv;$NmHA-k?)J@17=E233$}YX|SGa_e+spavku&cSo3umu$?nV{6UyvNywW#I;7Q+Xhc#FssdP-L#*|-beCoeOBDe|r z^*+`Y44|jA{8&7tera$NQ6Qxa2RDg^cbXP*GdSnRsZ>~P+#hf^G&T$@$UTXdO#=j# z!69#;1Citp%QK;X?xl~o*52=oYugL<_J(ij9In`k-rrLBZ^IdJBM-A+w*J&AcEj4A z@fLar0^kya9qUd}FEg@>wAu7zVt$hfXEw{~tUhhNE2hb_?QTYXIF)lTJbv(6JQ zyOa_NN!a*d+WnZS5Ana394be=*mJ`(c0g!XC*v?Gp<&E5nRLrPPgfwNfNZn}gOT!L zf;3Qb^&s-)YM4n=l!|G@JN9c!u^G|yA8M4_*K1Ehw&gbY3Z>=uSh zg}y2`$bU*(nCkGtY42nl61E_Y!?Yn)Bg--pAXUoVT~MKkrz5QKFTRIAIA)-C@(VrN z@8X_BT~XjJo48irGz~Mhy8zEFSLEPsbOmYXzUYZ`bDg~j6S!s8G6VUVqz;hYrnp+u z4TY~Sn5SJlwx2X~Z!~I^_=gF{W-BTcSrs1olZ8uhDlE<`1s}>#09SoRc@s~I!a8tC z*C_bCQB-D;W_e-bBw(sv=geVWKxL;TP6!U)iHHt`cPmmXUul{TcZ5BuO=h8&N@*y% z!=d&@4U9gzwQ@IlhbU+oVG1iA;*l)zugCnOJGX$c#arSU{t|rDQ zOV#OOI1>vK7=4e?KtyWm6}N%==c(1$g2!riYm=ouyu@QeLOx9#W$D@SN;2MO3Xa=m zV*Nw$>J1AK%kQ~HZ3$TtS6UsjD>JrmotivdDqtC72(SR0wItK|b6X#*$2g#l!*~M3&8O%d}Zj1-gER7%I`MG`` zQM6U-09y*ES}%g0Dz+=ixtPX#9xGlHp`1aIe;LTi4E$R|rQni_mKDpMz;i8ngz;|Z zQ+65CHxTYXk~JJ&s3M|G)1p;`^NhS3jVoY!_1nC5<)0!Xv}5-u{Z;4ZYqc)CGqJP{ zgYfTU)ML@ADoPcspA22HbDF@>aAathiZt{2X!|@E^n*xZP!rrvRJN^2@JsXrc+i>QooDj;6&UNo}k#{R&hz2h@-I~->hSDROC0^0@zcadUK9;j4wtGFc%HjKU zwkD}ZZvYW`rp>jaCRTiNiN^cmS5DLclb!%mVcWxavb5ye7lxDslk2Tcn~b)I{V@ya zs2DjMTe>>NsmwV!Y~!Z?&zYxOlY}}PaopjE79ZJ0uDy-_k3}hd+!B1?M}f83>0#<7 z-3At>>>h2eLtItKV0Giz0zjwB2HAh}yoPc^_gn(M_Y$1eGe1&MA9fGNFsaD~QHurh z>3Q;Jys;YDg61P(&z*dvl+ZVoG zf$?$*Yb_CV7*sB|(vS8xlivc*RpYF-0pmL!PEgBp{o9ma=j`^z7t6Nt zkt@tMzh%$_d!>E@=}2AWG{lOLy2Pyg0KR=m+9vH=pKm9B9*ORAjH&kt`KZb5?D1}e zq1V|Hwm>3I(q7M>XE?qoxsx4`3a_)1)>OWj_go@FX})XDXIj>b;+jN`=d3avo<#xg zl0!+cIoQ3Ug&uXh!Yy{<9nDxL^g9Wob4>srDy1w1V=XDmns&VQn;`_-S&2Ulh&|dV z$*vIkvu9G0O*mE1CZ+}tARz-dJw~CLzm8V^Uh!STc-VdScTp00LjRj4@tv$B44lQd z3-PL^()>U0IvSrUgOqPy{Rj#tH_q&_PL!yN5-f}hbKT%V!_THW2@?|cwLIv|GtU+Ut`MyA|fl;11EqWW@blF>!G zEXm?6GNj;^ueUrBT=+c5Ee9xnOqW-bvy0{PQ&)>}R^Vo7=p5yFNq%nKT2s?&q5>+0~q=v7j2_J%zH^aI0GrQT0LYK`MxSpcqQ!8iYnQ)^yFN1W=}MTH+eV zBliBh(6eE1@h;-^U7vAqenJK%{)4-@9+UAj!eC{?b#tG|>`^i=iZf%uXz*}GQnK*Y z_7FZ*ja*oSLMI{IWHaMACQ$J=J`&#UE#M;X_!}OzZIKEO9`&DeY~m_(#J_KF0Fq52 zX5`;v=-sDP8NhdZw^!wVyJl8RkM`M~_V9`XUB*r|6(H8VA20z&suBG9z5p2P@_?)} zUR3Lc0Yg0Q1l}Fe9$(bkE4Kr0NlXobYhtNj-opt`!L!sO7ZcrWLloJ0+(FE#wa#%D zaCfw{4w6zYZj!?;A3aT2_3B5;os($&^>F*)ndWmj3OG?B-?tn~bo)Vuj_ih7d&h(9 z3X>E86PN#BriCQ26WQ8N+mVwOt>GCjUW5rd3Db5^h z1UA+eL$$m@{(+K%cDyaKOmS%lK=2aQESQ~|5o5zpqf4NbHVB;S--zcMKpD_jD%2}W_-W@;pasA0V=GtyTcmujNDJJlQndszYg#`%`uSi7peLO+g9D&(LR*j0Y=n2SJ39 zV|-M2x-EPg__a5wa|F)6nl9k#m29FR>oSy64*{HmJ@hqnl^%Fv|7I+0vp^EpU{}eg zXx={N&>fpj`MlSlfx0sSjlf^gy0?<+s2c>{9=?5EErz4%{55gp*4yK8O2;0+S41@s z)1pDl$Cji~0M0(hcJ{7DZ+Hs58D&i;jjc5aPXaVe?)F6{cIkh6XImKl*E!}$C~~X1Ibgz$|8|99ovuB0@MM9<2sbuI=ClDQQ%ZOm4iXPQq@?^`964vs>3 z3A%P-{lUd|!%-cy74L@Uh%$Ygl1&h;Ylqv^1 z@zhOaoaTd>ZGq%RhqVggrnOMluHv9;;@B*=nVdV)fRHCT^Y|o?QMnLPrK$TQky)5X zmRkC!gba4v zi}JuMxeK>6C>14gIa>>34GRML!q$;Sl35i;kAhN=Q0Q}xeTWt(jbDJBsWwBLiDW(a zkyXZyE#-QO)Uld|GS!!MrIE_S&jVogb#QUUe!ay zusJ`cdu!2IURmAnq$6Tfe140y_t+9~yRg}Y{9K6iqq~8C)B1&9IK@ay(9vXBPYac~ zrIKuEf1b`lQvojffbIMjA*hu;%RN5!uLvz%s~e8hHf}<3Y`X%K2mj~NWG~;;XQeu3~7#zi& z5mB^g6xe&Xw~PJpGh#PDpu^L3B-P*m-7B9+c_Rmn(GLG6mOySF>yq%COVa3jFk;~rNWVOIea!o7J#*8D>>K*{))?_z{@>){xvcowwK94e3`~n_$EKj z@Eh;#&o=^QGno0OdwwNyfpJ*>6JP>hpHpDr)mA~I-*V1jn0q?*IF=^FJ?Zer_T7Xg zZ49V(JusbwGV|Swrc8r7xiu62wnJ331e+BAgzD{L|1gQnNJ-48fR2$Hp%$Y}b2f~0 zV#BEmsf1YbbkdP>+Rq?*UkY|Dr@r|K;cz_QgIO>BSkl-0Y2To`h7>eR)lI- zCdAU*s&lf`IBO&l2rR;>J816rqlJot0O+ThnS`SWbDdif3+Z_wB$0+@&Vf!iy7tIL zGAJvFZnggC-oz}_D2H~f?))6QY zK0-2$uKCV~PtK=5*__LR3AU?Lue5KvkQdB$*)Ab4`{MUZ6RFgPW*m#fiXrKaJt3j3 zX5O^x`}DMMmqmg)pt;$`|Jmj(Uo({oXurM3cSL##0r(Q1Nxmr3*ySLh#j^W-X;#~a zP|&ShPb;f5uuM!^o)-+~?5pQd8rV|I@@iOgs0>pCh&e!CD|48c%n1FDwdt4=u`fd8 zDDXRlVwhdVCp5GT5X6?T4IzIzsDU<&`eqS+!!*+Y_n4=(KTP38qJ;{11IE`SpMKV( zMo+VDbR2ij-2CJ<%aUy3C^VEQpz>FHE{thp&e=f)6;b7;rnc|6vr2d~%*fyZd@dnw6_op)hj0DVV zD}k{0#4nksd%_%Q1EwtK&&?PHOZD;EiUta9`2)56(H`lH($zfG8?-gyEc9wxI9`r;e!cLnkFk5sIV(4tfbu-6VzLvSAVvEfENT%o6A1 zka1d#(BKaXAw1C6sC%RazPx>!En4kA$a#ukGpX#%Lou z-aXV0!gN>w{C;9pM?tE+jT>X$z&OhVU)XNZO$-M_Jy{|7vORB~l@ zAp1_CdAV;;74-oUbUhvqDpVM(H&Y#_(nwh+npiIJE=0`L6I;FJvA$T(*DmEt&INtoZm@I$k&1umZhdYGUuP+Q(J44 z5jg4NW}hLFeaYaD+T2C#VEOc;@n=pL4uq&AR96yh8h(0psZIiP7xEi>+f}y3`&wAT z_*pG)zC+xGr)BajbaPR3LcqA*V3a|;9ld$O(M&yr*j&W`iJ|=hPnuszS!x1{4|c%P z1SuPUyy_Rtt#nQ3e54P0PHh2?ek?SFYIg>oN99W?>H{RR!OaQkDY%q2)@SYTN$D%w zOl;dR_w1hFMbp1Wq|QRmQ(jiOK_v_<>*;VYjMz<+pSGY2Z<&yb%$d^tL}zb-g?SbG zMuf#C$Zum>N1p#hTl>*~DedO(fTl)14mns5)VILv8Prm_yJ>-MT|Pb;S!2sNA9WXX zI~I5|9|pF)C~+T?BL6(!I(A9MBzvL!onB7q(TE1lYpLvTYpvKoSZ!O)s^sbwQbvF?(fh+~# zj{Q1$G;1}g4%**sBuK>J4|wE z-bNv;4G{ng>7j2hi_C-I^?%??4Gs0q<1Jto5v%!h*`t*V#L}AT6GVbclJpu(D2p}H z?O2hImdvL4RjjQ+4hGd$*KaUI?PMNU*!tqk440nv)@64T@Q&=e7;N;Tl`$%PDINOfeT%B({jP)%@H=a~Xc_gpVge zjHk!2DAQLxR}TF}|g$rCB#y%!+V!y3(CqK2jqRrdQpJd$befi-_7Q z9L&M=xDuNm%zFv|VRVl3_nWR{p?%D3=@iJ)LY921zz>HVm<1{%TD zdM{+)(EeRohGGmhMr6JJ6(cg)nBd6}H_84b8R1}1x)X}kdF34wF&FlkCUwt63Yf}d z6haedcwtbUb3f(0=Od6@cE-#h92@D!)c9}68Q@|(FYpy-)$>Y4!>gAZ*L?eqrBYwK zP)9N*ucL-#;E`QFqKlZP4Y^0|6o#>GXNjzMQ)of1E>~y?J!-e5&!=b)6xXh6gl@T6 zFkV3G_X zz|RbUuRuqvywtyMz6_cT#HhkjjSJL*m!IY2ns8DUT;OokhGW{vES(h8u5s_idP)xk z%&#^MSc$WA;%Rj+I25DNYs$5eJx~RA$gkT3{o0bg(;63(7#pO`vNU%-Io-x(GkL>P zWpClLP+K<9Q1tqk(pX)5SjhDgU#`4}o^HvqugM7S_TnQShgrt4DEqanQ3oCPg?6v>zMVE9IY2#DUI-)WO-OlY zk8K#~q>FclZta1LXPWbH+=7g=L`$R%3HAVHfCYs1AP??{#3wQw8yib3qZeO*(cQxg+ZYN%yd+H7Plv zCt_r1%^#1^LcGDl*e`PQ66Q3tz@?#_&vSye%?0{v_cmb^mB?pTzK?v!^i;8yJz4K_OzH{7uh!6<0F=Xt!4*ypgt&T#hZQ`G3+Ns3wJZpDMpHIRH5Z`4V?mjww5+du zI%@XFK`5>mM+*xO-raYUKd^h~pXhXtJ5VRzFy^{+256v}fpPyIA4v zKUQG-y-mC!JmXBq=0M+XBoP=IM+(*9;f;VHr(?`10J6?f+^VIIBHVO_FSwmWxPA9_ zVL{Ux3DYu0T??gpD13d)ga8JzdTFiZy4>Sy`NwdKxQ4495VLk$@=xVSt%^W~C3o|G z-Tk+SB`&o7zANgKcbhu}d_Wp};Q&@4=o00 zRK>QPkJ)4b8~dJ4xfV*biiWZa#v%40UGf z^@+U|9ECz*so0}7V+c(aV~`~>abnpBn5TM3KPQf|NyXkQZn`*cfLIj@1sx@3T6Un| zYH=AK`~u_=1Rbz=A9=Y%_4O$5EyG%vcjj_7Wal-ZrU-f0*g587ReI&XT{?-UpRplc zv(?F}u)LHC$5W@`ySqJc^Lvz0guqD=_nj2bTT!!l;u0y2A7XV>ez{aBTddYcS*%*I zg9P^M=mPc=LeB+f<9K1nD}PxOOVDaMrZ6ue1q#3BGHr>KORGJ)kEhiWpZqQ~$M|3# z+I6U1#Lj@ykPbrT&C@ANC8F<|^2Fq*jq596eisa!52d95 z+c_jTO^F0BO6a~-Ni2rXVWO@f!8-C17dL}rqTaX_1&<|Rh(Q9)26kBu)rxgeZ!hpE zV$O2>%v2mJr+cP+7J02TYBEK;qI;;MQ~IcU7S*}nt4}^4Vb*4FAon2m<4?+}_Yj~( zlhA#e*D9GfpyR*MH&~uGkKc)MUQF>&Q@fJ!?1m-}D+xwg%RYJ-{!bg4@%|5R!>jDtU?Y=b$$zd^@$0hcrMkjMHT2H zyjLhX%Jvr#7Lc$OY-G%U;3T{C;!+7FcyP+bT{OFQZX-f{&fCT%uOa@M+mAC}6{lD2 zX@Ki>YPOB2OA^-f@cLC4R7F-<`FH=$fdlux%MaCDX?EoOH+4PkxgYi7xI3c6`PmT5n(T*;r#hTb3~DR1`yf8hxwU= z>mhG&tY`f}*~TcZ1cLC7y5B5iT&fHS4JCJHb!0lS!zgM5xg+$zW9*8p+w^O|mmJwz z=b6>0y)#U;lKzD{oX%#`l;+K!nVEUy`sCpWNKa!6V;<(1B4IC@ceXoQmGURsX^xQu zfwuVaQIf0{Nro736;I0Y3?uL6D_X zb5)XJ%D_J5!1Ofrk^btie+_lL0aJA9NT&~b-5V2YS_&&9*rZvZL_^WQ-$Hka(``sN1^ZeXVH#M6MFaWHB2`E9m$=30a?!T&CbO-2@?Xkk z!h7=mDjeXgmuC=GP`eLdEw#fg$b`M?w#e69=fl`3#+4Av|4WYUq-*p=!JNj)}fbT zTjq?MV-78I-Tb#0fa15+gbmMmi^9?p0o3qcY(ZrBv%NRuOJ&Z)coJ+$?HH98xIU`F zRv?3}%aFwmZe2d^Ch4w5$)5&#zD2U>jISY=)hB2Ru)F%@s4;5T0pqzo`5f%d^Da$} z?0T97;zOx5o%nEiXG#ywt-pm61937{4e(nZxXzEe&<81z-M9h4n|Mt0xssELak#a$ zd#m8afLBm9v@@|jBeHxlpQ6NWMH*k>Td{rGoP{ZLn*orLI9es8wt zcgSkvO&@y9L-~f`=xv#a>Ge2SCuqvHy(5 zn~j3TDMGd`J7AnmIL~>=Azvo`We5PLG{wyVyD^XA@&V=7Wi>{YW$JbtB!~KV;?j&t zaM?)SGxOj5U9~XsYiWVbWO2TG@L!P@7G5Ew`7vvQgH!;j;L}0@HI1q(Rep6+D7yS+ zDTr5+($$@VmtIk_X(zcU5$7>LpO*nz0Cc zGC}$?(EU8X(7L@{@RR6!=G)XpG4K}azjl1V6~RXkRl^$SE zh*yAB#K%;3SAI8l;7gGEvw+~7T*tosoq*80%ct;?=M1%VN@kCA`-B+Ydmy?<)`Dno zaKn}?n!nWDte0P03pr*%@_pq{_cwjgVU>IBz+(nE(6R@=kl?C4$!HlQxalzhDe~CY z1`{j8AY|CEVY}eP6X6hrMsEdTAC9dFdv&oGcI;CyLa+XmkIkaaBP-7FXL5NTmBKpiq|FY0nW5vqMy+NXwz1G#~1~UhM_4nRYd)7{7Y1jUx!3Sb;6t?R3eq9sHEL01T zs~m8V-k(;*FL3j4QuuzauhJOXtk(y-Yh4>x_{(dKap_zmxF{4U51LEXE0e*BmpLW&q*$(_TBtmW98@f1&{~i;D|{ zdP>U5Qwm4HCRI&U#uP+Bk;a^%n0;9#d#BaWp{$Z%&t{ZiqWVp4QvREi55#H)W^HdD z!_)-DTX-f^Mu5RHNtH1y!uWq0s0QKjd!!}59B8`mR+r&EL|a9G)L5r=gpTFEPc3aj zKlu=u8{F!K;h)!W_G?sE-(kjv4x#BUQtB|aYUYyLPk)Nm&5tkf@|xKBfh(KdI`i{JHIt(`V!W9USecfk3oa)By7HU>`2(q+c^E?Lj{$ymL zEJ%gT_Aqc!&~B8P3>(&TVR_Bf@PQ`$S>DRVLza<-DyaRcv}HAmdaC&t!WrsME{zIb zoC+qz=M^p=Fw?+Q(b1m5p;Rw^U^Q!oO~3JgOG=jFCh1WD<`pER)tq`sYtokUSLWe} zAm6=jNn;R5Q4K$%0~#K(ss3sK(|XGqQ@d^9$h$vk;j1Q2_-}~Y(n^z+itmvL z&2B1}Jt*w($?>31=3!@p)$OJ5V3v1S)pXzmd7SxHPtBKx4Y@cakh_UYC_}kuW%;TE zcv+CmlH=q5i?cX8&}An4Y4cbpkQP{USrrH<;`j&^02<0EO2 z{Wm+Go%ey=_%mhwwqgwo3_`v_KZ1Fkg#X2)ScuRFUYcfI_ypOh7!Q6Qwj^+mIFa>W z&t8}%ashY9ObKQId1?h921}u^XuhG13%7>v3 z@?+5%XEUzW2UV8NYWPjY8qb}H@4Ma_#SK@+ik>2EkZg8Pz1+HHOWawE<|GY;=4M31 z)tSaIfS^|E@Djk+jA#$m-~wO?MUQ|2v$g-eZV~A8zz*Dx${=0{S-KCFk}7=*A)IwF z+8pL^u{o?CpJ_REst7%zsHyp6G9aw0}({2Na$EgzZ^FK0X`Lm#f zq63$x_od05f#TpKoQLC*c%MXO!bhg_7a-i;km4?)wYFWGT!odiFXbTkh_~3s`x+^I zd)d`j-dU}YOSfXld5e86PPK1+G(Oqo!JxXGH0rsDrPE$_3GD7|w2l9O+XOn;bSr7e zp{79gjZH)rO}#!yX|$zrjD-9WumO1^J;Hf5$M>aRD1@Z7c+pfZH3kADMvrfJLA@kK zc^K6XO}Tf%H_3r4f#^`SPE3`P?x;H9h-My{$b#98Sx2M)K%_+#il9U1!_()HQP3}#5tgrz1>45(FWqnP z2rEBN4O$ZTc=3A34l~dY0scBPA#@A)dG%=+7dMn`K4U;ur#81D%s<4SLI62H#=q)c zy@%k^SOWtoelMb9K%NA(A8><%BJsj z*rpJPZ3R9D!AI*2l(mT#1MagFF}qY$23`IQc8qnhVhE272~^!Aca1c{(e!Q+c|6fF zPMse(??f+$a}kz1Jr>pv{3Tg35Wfqkh8oJ;<=ymox}Eb)JTq#1twhQ6%Xqyl+F_v4 zq;ePkgk$w(YiZPd|8zRiC=^=qUTdfR&FBp>O;5zB(c#T8Go>`h{o%)JGhOMNJiV_An%dKiBw6z!#jC( z{9aWfb#Kcy5~wkTGUq+_3ff!8sbhgUf~!=oHni1&3n}kXw#!^M)tu%Y))O2|JSA~& z49$VLN~idWddfrPW&8TBtq!Cb+(@eK5+dqai4xkiLuUq5oPwb%jO2DLdwVCE02<5S zcVLd_UucfEDXHg{dI<-~F`{G}TR)CN0qt5$2SySCCR%H_BEs=Vby{cGZ!3XMDUBum zxjjPCjig;SJM#0u7RFb^K#Z;br9u$O%n|cq^K3Enm=T)q++L^e2IhS>jO`k2A*Dv5 zi{_Vueae$^8vydYylms~<`>qFSBdV?Pw`_ZrwZ8^P^3^;!Ic7q^V~4y#)#{2g%f*= zTyLIahzdf7MSwuSJya(Kcy`>9l(mur6n#MNDpdT;k*e|P{8;4c@>>7Igz*COVH2zx zYzuEEZ#3C&PC83#7{R8iD#5`Z4{Zd+KNDu&wV)Lmue@U}UzlV{IJz3VqfZfF_MnNx zBEaM;0+wh+Z>kEX6C)wuX#s^@f%Cby{uSi;e}qN^JN~hYTgU6qfv14^Q#%RbO&1Ef zOW`4ukKr|OD|>}-=G$2taG6W*?W`|imX~9Adu(f}^#cYQu`I!zyRencG@Jsvnj$ec zo&0K!L8L;leETS`^O37o>E0i~4G0j8!t^|p3Itld%``n4s|DZ7^LPo~SX&34*>kP; z-bfBm^JTes7DkWx+}efuhG96af?eU~GBW$lZ0wQv?-*injX@$VW}Y=BU2sSZn$R(B zG_O;4-_}R+VLtNEFmpdOtf6>0ytot1wX6q{0&)^bt2bKz=CU@yVH$_@ME0Dh7u#=3 z8nGr3D}P;stBR5pgBCJ?KeE_bHsj;lm6W)z@%6ix>r;rU%*ov8R<}X=MLkXz>O>Aa z<#kumoOCkzO$RAq!KD- zhYdEVyiKz*tSZf$qw8z$qlJHH?4C$@uD+s z<*YU|r=;r~1&v3}xNZq2(^Ff-t&aXzatLNxNjIb3y%M7j&Ko)ch#lu`SJE?q2}*9( zm7|;>&8SQFM=gQ-#Q3{0!*n-)OFd5Lc2=GwUzVRFy^{U)c;&9PAzG`}IB_cwpEVKl zdT@mPPBaB7?R4kk8+R9aGet=H*4`?3m;bT8&5fD(wBI9rHUL|D6m#ykI%(E=+j0;JP#D!UyOy^2zWGqR4xv zcs&*I-YBj;o>=M&Z$g8?T{HA^dXL3)+nlU=vTZQ?Q9W_GB_7DES;@}1IxlNzT;uogqWET4?TD%J&5gvn>p#XH887VY7JtN! z!^wHR@xh>tkC{*Oq%w{kus4jVCyme&?F4c0vo|kjRrHeRaFiPMSQdUWvpaD;c!L8W zV3~Jw_*JW23b~q9kj^l3mUTJgV`5|%i4Dj}yd({4M4n@6UUHih97Oat-WJ8GkkJw` z(bc9ExC4IwzsGuKo~Z%Oi5ByAy&xV!9_aMk567w}(Ju*AZ^MILnXXC`==c-*x0Vjm z*ZM)>gu4{A#9-y0JMD+*Oc$U(uH^1|IJVZc97R5Mj7h=cx z^NT_2d#AmFDdd@IwtIo^%x^$2)k0GGpmW zY?(u)6j*fWdzN&XZ1Y+}LuZX-BX?Q)c6d_Q!oQrLsk|a?ex4!Q4BYNT%kD-ItPGY+ zF38oR$oX(P>20!A|GgIxr3MS^SFJnWR!%C;hp}_>%Ry=#(1Xmv`+o-Ndaa_&-viFm z7rGQQSU3^vk51JqR%PH~yxV<8pJgrP6tj*jPD#~Cd>o&LONoEf5EXs-rvbucs}FM} z$UidjWQYqa*qOrRER9MK-e~TYt${89Y@L;PiCucz#%U9++qI{kFghF+KX#su5o#fW z`v?y#sBl#fQExurghWR;*p)@3q#(F;kT4n3i!jhdZESi?`nq5`qZf47?=*$D&T@?N zyZtHM4TK&!XXy$Qroun|a@_inYHe65l_(|p(VX!53#@I*IlLhUL}U}2r|}eiVnONg zt^UBLfuU;DF(BM7#^=&)&f>E|7991o_ntWvj<)*O-i?^PU<~6PkFDz8psxn)lkwuB zUR)+|2}E{@GTziZLznO8gj#{x5Rr)@Xw3#>e*o1XLRbSl!uR94GC@knjOS>R{DcE0 z2Y`a(1hjrgV{q7^k+}N=^2id>E)S3yMe8ic0!XgKT3@5<^DaoQkN9LtW#?{I-czo< zeLgw3=N7{)H5qE%txTh3r!}D4ylE>vK$b6SMS!7EMS!BM1-=WU^f1S!R5o1_7h#vB zxmL&XxbdV4;M8|{C&OJtD>#G#h&o^i{G4H;P*?jM9&M~$=>03Cu}5?Uv5ua4r#m_F z5#uo12$;zA!#5yK$wk<@X`A&}w+oDwEw z!?H-@>KlPqdk&Au`!x1-YwbF)YILLfVzl%z5ONQ*%!9+;#couxBk_DovE-~Z2(r(* z@6lmzT=Ii<-rj{U!Z%v009mwdbk1w_d9Kt#pJ%Y@9UDJ!fTv<*Xm~r@tZ=!Rs2b^N3K_0{nlsNlX~7kAoGE!cuiMZCRR%JSW?i{19{*dy|ZvxNfeMKn?`p<=^N|o`BrLAw;FXbSNf0J<~0F`OpcpR0?gG=G0#Z-ix%yGzW6$4i=rLxwI*J^se9o?lM&@|24R3s|r2py&grOUTRwaYP@aLQ90dMDDLzO>=Of?>_I z&;>56&E1&y_@b2kT1>(xCkvy>+SrMH%HXUcCUaFIAjnsAEBR0pK3wRb&f@9Sm{ac7 ze3xyXRh!O~QlPTq26;f!*rgTH64Gq4*1ngnCp`;WKepKvof82@H=;Q4lNy|r(nO^u zsgv2=v)uecIbVrT7|Y8Vv$d9n{-+&W6$9p?qWH@J=vOw%8fm_8jRIFH9}RFQ5POn3 zl$oVz6a0x5tSvR_31v$%p7ry}-Bs$L*&EHdcmGH7ujByb0b<&)o|$5O8tWVL|p$BDVLTvDabQTpHs2cZ8UEDR~e2 zrm^1<#-tM z&@7e*ewIEzb%{9hk)x_*1GBO#F0 zL*QZ6)%7$o*oy-&>KgHQ4g4qo=UXcNcCyU#iU29iY$Ec2roeehVmc{koJ}8><=hRWa{){KvF3LpZHzz)Y=5>3D(}Q*~TK{UFtEwD&Vq2P|rM0~9 zb#Bx;>r;uWG(F_poe1ak33BiR3UnL&EE}d*ni$Ly3Fe#x{5U7L7xi=weaBk2s;v)v z&B9cRF}jT0lD^}`pdoDS%nx}EPXomg2F!kvKh(o9o*H28k%QrC0Qod>|GBYaU-pFA zFMMejAZ21r>_^F(R0-pbMD|8AC~qu(PMRC4NT`5_7?>v$e*N9WHT((5ZZNcoA9m^m zolo$J`oRfU5@j2n*t0^~YWgX310SDv!C_(OPe9~U%dB(Kjw9=}3yq}GE zzmDUGI36PWlT%m4oRm^skMK5pA@WZ9OJ$i)CAn7|4vm{lp?|BXJ|YfUp8VMyqN1xv zRpyja%+M@OemyRZWCw+?T04LxFuayu6vaXdsPhhcYn2(#i$-YS&lDB{rl#jUe*eD z--mi687N%GOmQtgMr{hV# zbz_T}<@=1;aY-AjbzZ0m?UWH`8j8b{I?sPd5ZxVSu~jn%A@tRaqgTALI=sB8Z8F3? zTGTJIi0|Ixk+f5xmI3`AfE@v`AZW(ow(t;n$ID<&tQTuKVQU$Np8fKQf)l02R-{4| zh;Os0-feV4svkrGUFo?PB?gHGH$LK(G?xYa0tqA~`~Vc0W@LDDHFOH%o;a^`$Eu1w zxLRV0DNP%d5Uk<65I-0Be1I9)A58&|KT`hCO_M3qKq8B)42eeCOfplZOQVxhi3=Uv zix@;)=?Nueox+g){5(XYa)|sO-VB+Cbdb`#H9Q-0V>Q3%mcSV?;nL@pa)WYN6;NT{ zveQ-Q_UFMjRAb5E%MCL3EA;CwEJmDBO(&f<^7IrN3o31+k@^zLzt$veVWpRA{E}$@ zad$tYUlwc}vUKgp7@{_=j!|PufA>&UK_bg$UT;|vR=LMBaCUlidan$z%){h#vkgjd zGf2H!1x+SStW_{#>osER2SU(>3sCIOV^_L2y6e=To(&A#9$Q$8ewNiVRTrj{<~1J) zO0Zlfmibh8-jDU-wxV3%0^wB|r)dHuz0{ zOkFj_H0pJKX!g+^w5un)dG^>Pg_6xgImR!Yt%GR&QFj>{7T*oZ?X+rv3#522z9?S) zfOpzyX>%(0zHF{p#p^~C49(7-$2|LFFgor^J(huJMs!oJj#XEeOB7CK8ySUMDfv@~ z>0kfn+`r<5#&6#2)#!Niu9X(@;2&pqD{4Xh zE5Qa$UTw(WNDlvyDHb~@uOqwR;&G`4$!WEZ=Nw93@2mtCb$mI|N>)F**qGWh_duV~ z=Lf5>%r^EK@T_rBJxBx!wYAPNQq1bUdxO`M!~_8;a(O zdgia!Z`y;{LYqTeSI*+2XyJeU;?7NUTQ0%T)PXbhFKl)0{0d1n4 zgRBi0{}~>dEWA!;po+j}f>-GECG+R}Y8dzuK@;qEtPI!K@hL0Gqpas~BU5+-H7q># zsPn(Hx=n3j_{oc8G^a;C+vOgQJ+Q@<2yMz#e{Tp~p9s@xO=jF=w8$sQ)xn7aA)+%Qp?y5a`w-=gDt;er1Y%kB%?Fk@&IqN*VPQ+KF+d)R7V6B5jLB!#VDV}@QG@0G7y z-*UPBXRI#)+)4G9;-s1V4k-I4fk+M0CkE9_;MMU`AW%mvpc<}Sct~eY!0wcB3Uy02 zawFK5erCfQm4o7*m8Z#SN7q{?)ZTeGSoK8lDd%|l<-o9OY!SMa+ip^1#(Fe;L=R)O z)%qSA$1rmSc6oj&q|?;`!)f{o$Zul1DP?oCVav=OhTD3QK|8blB--DZoqnE9@L@!5 z-F=^Bah&?>Y%XN+eIz`?aPz2w#w>2eME6&&E7dXp70AJU@Gs=uR4 zQNZbaQmSRY09e7E-58`C4pgI)owRb3fSDwPezxa`YME-8_iXlqfsqw(Yrppf6O=-z z!POq(1e_xYX!kw=1>+#Lsy2%1LtrK-FRc%N9h&hQB}hRvcQ`I%K?rr8;K)nrqk?=6 zReP(6;H(edi+!j<+uT~QPA|IKO1i)!jKc~22F01dROdN9bB_me>octUHYNWBu?OC*DJ^l{>z**F1u#(XORPqor&2#; zb$}S|jsJT0d;^Qxjn_XNf|BrEvYYa{>FK*xnZ%AR(7{CAtJR%7oQwf&5m(LHSW-Hp zV{IAew_@Don#vE~Ya&Ey8R(CV6QZ;CA$OnBTPQVgBzM~`%i@$l&{Et5t`GO+sq^1W zEpFPTBif2WHPH14L(4>sXBpYvuBci;`7$#qoVD@dX(#S~9P!rd#A%5&7@v+$YtDfn zYFh<`mc!yFzdA~B_9Sn{uW&9)>3jPeD}0sQ4*aB+A9IIxzWMq4nO&?kld$fg`HJ+7??Y#=-byCzuiaYAb#|nPNtnxza=#&ecssIE>cC!Bhjn z)ahPv)ceX}=$V`xm7ZBXy-n3(KT+`ru;t04|p)*;`h7oB7r@ za~Pm1g$GRALJ9$oI)36)vHckb+Fa*NOxyofvlgW`v8Oj*ywLYMtzJJs-p+FXS6W7- zGOst5ug{q&jUk$uHKt}1&L=*RX6ULm{^NIh2!biH32ooy`6}YqZu=oXOmo_1%P(LY z=wpFPUn2t3pza{JEud0EtBo5{?`EH|$AOI6yhP-JJ8;l6fbitsB zOP(-&O5mnVWFPX(KDb*0KbNmsq?x%XCR zrmF~RjbH#o--*74@X1Hpq-j)KQgZV?o`bs8j9uRXTc|m;U&R!Cr+F$d)|pK|DzIYGdrYC-el=PC04&FuD4EMJulkKghj`rk@%wq3v99}Ra1&jm(IAKb1!s}#` zNXZT(G;M&6L9&yN9N)LE9TH5?W~B>n?8;*BtzxwAlLXOnbRwvGtf`swTV8vPoU5eu zAFd2(fAHUy!H5IqG?n z)YS@yZ{oNgEG2I4nqg@Olm=PD=di;i|H-R5nc@Da*m0@Ca!M;yn~Yx)G3imZ%lg6a zl8l5DA?=@JczW1^JBAMF|Cb7+ns0L1TIn$&hi@R$yX+}GCE{PYX6ONp?f~$+JCwZe zmnoA(#k2L#b3;gG))GJK4)j9xAnq%uZa5S#qb0)TbQNvI-H{%8PwVONv-=Rk(Z?~) z3ejk7>Y5bkUVI3a>m}{gz~9T)GOJDOLTXrm@Xr>On&2JdO>*dL5sLY{A7BD;D zy&ReOUI&{|Qz@*=%2Ji>S0aU(=B>vRv1qwvH!rTnE2)C6X6&4%nmTFc`dCaEi*`N= zd2Oz_=Ff}pCmBKvG}q}a92Cy)-HG58=AGo-^qY1F6PgHWVsOjt92Xz(`ro2 zYS~}!#_aTI#x;0tpkqya_;gi1IFhyyLFBF;;2v*|Memt%Ge;t^-JsMi{B}$3NM(sz zaWsV>k$3arVy(AFEoUM7@AD|q`+(H4E9gJ-h*C)!4vmKl#*BesHo^%mdW{SqR%jZ~ zDvb|2;ODy;6YOM7#jk_ZD?$rdMejKFOxu^#F=C6#;t?PUr}v&LN%lQ;#1ew89Vl28 z&MNQ=gyDLUw~X@CkaG$^uN+}2?Yb`cq}o)@pPDXqRP1cj{Xkd*kvx-cMrEecBDv6W zqIu>RBv~dhv-uE}UYe_cEGlLzAI)JGP3XS*9@?)y#Juvlv;k7ybRgrE*IjY+g7+?Z zpI*#RgkM(to%I2lh1-HZG083#?baJ@93r!{#C0->UzdG4SRoaAQs>%@=D6s>I5cIv zWSm3dZXxr0#o*qDb`7Ddq=WQ%{El1HJCnBCNc$;&=Al*U2co+Q{{;uk)itN}e)tXy3z=z`V0 z!CeMgtX>{p6zu|}&v?}As!Zf}(Tqj=vY=7JLAf~WuO0X_y@kQGs6igcXBIq=aZ_o! zxJLxid}KRVcVh%LG@*h&h=l_v7USGPs|l6uYMR!Ud${3DWA!*jkAXPu4%4smn3q>1 zb2=P36H_2%-tw1V#o{tWr|X)<{CZNe9sYhJN73VXz_nagrK?7Jhb=9*0`f4} z9bw&LJBaErM5~m5oSE&OKH@KOq2FiqALBb|-uug_Tl9c_ahSth+&HaMpoIZG)}Nsr z2d8n`AxF+)7~a$InUF3Ch_ERE?C>9Q{e#gj*%3}-=prW3mErGCnZkri$w^e-n1QrM z9Y@I-sE3r(xz!at@bokYS`KDi*z*BOya5wvTB;IP+rVm*%i~j|P$f8s?LNKHYf(^= z$2V6w>EnT6vuV}}Oo3LI1X@uQg%BhwjJ_>1f zp!twITEMfcD(k5AuURxc1i{Q&Gy?$6z8dheI^1gpbo;E{h=O(>4~+M9LYnjnjSRGd z-`cy}a>;&)$qhsnriHlvy`^F9L?50MJ@6~Qie^?1{R<8H*}W(a`Bzn4MMtI&BKH$> z81QMF)X|KkMeVuO&=(d6n&XppJ&KsDTI{jVydf#C+|~R;9bfc3lwA-X{(RO*O1#=| z`@OBbXAk2<%~b)-GSP4QZD}!QIUmWh5wmM6geyzf9AnBW?IBfWF@IFyf z6dF79Wq+rBs0DNI!U)>GR}LvIC%>nvC4j(rx5gh(pOp+pAxOgiJv@CG%O%{`M^Xxi z@+;-k942H%6ExQx792umTTnhFypq;f+1lN{B? zx%xld+sSijJx7xsZk=g)*?n*wrT4K&#MRXb$%7E3;nHL+Ix_rmOrfM8j&XMG!1vM| zRs0g)X;^=LmFg|PGo&vM7~OlpBNw|n3Ubi-rB?iORmb{~y9?wr*hfbo25HWa73vCV zT?3-safgro_-fMt(KqXW#!2M2x`%Qmk360lJPy;ck{R3d3rFas2D}`=^MxBi>ZCpg z&>P%;?A3_CWP*>IA2pu$$cnMNAz#xif(e$)=OO{wcms@$@A>J)B6P-E4x`J#tkfaN zCK7A09$}OByQkiB3gICi%N}*1u|;MzoWO_FdJloPap^1tBGJojNuS3|vi!uMDGar~ zMmRw_u*~cN&b&3Vi2oaMq>;x!3dd8@pyhg^1+m^w5QKaph;_d)T>>CZi&Dcw|8jQJ zStJ#~y&2MJJEOJG{QNFkpr7B6_!J1L)MM3h{(I9&m0(y42yp`~^GGQ&#&S;o@VPOY z`-i=0za`vae))L>{Adi#Q9TPl=m`h=d}0>`rs9t9D|sVt^y*d8WHo0{y5JF5VOurF z4rmoHqykm^?@JaH*Im!}s;BYr%_=ojy~L*OLdk6PCpyEy80^2CqcOudf0LgLtnF^jOFGS|TvCKmbBKl~I?0ZtH&6mC4NEiw;kWx$m!8S_s-8&rOhKOk` zbim|in7o>%&n1G?EuHmu0e@BzY6voMeD+^=$lliv5iVGGs{Af-tK*@Xnc|ugneUTv zi71>J>b){Ob~G5i@=wTD`);P)!npzo#RMYnlbS3^At}L0i@Yb3i`CdF5o=_CDY&+Aotng&w;rK|czw8n?@1T)WGpdoX$>)Ar%ra}Q8 z%ILMd5DU=VNWSBi)rLA}iOfy5KKMF{%u#Nt4co?dkyGp^9ZO~N@yiUTfQ0|EA~M&8UOV%$a{no)`z`+3ZjD{NhH#w*n3g8L~Jgq(^{?L-{$sVRJ7ONy^< znh}%?Iz@yqhUC9loVZj7a1;60%F!51jN1I1xLEZEXc10I@KUIpZjHVK0D0(@1fh4Q z;e>G9jP%lt(P(6e@Kiz%1)5~|6l{?`!2q@6Lz1ZlQAQ~Kn7D6R9jzL(xv z@*wVA@4)xXhq?UEtU=4c%Pc=HmY}qD5W~6FMjU@j=9IRYNz+Tl%)0yF^o$s`4RZP> zyTVd5jlTG86t_0cn@EQt0Md2vOK#oZ6;+32>8dYGb8|COgA3SNz7z1>0zR=kex&DG zOgQYoE89mH@eLE@+1wW$R5UAt9Xw5*&{+Gv>SXEAchfQ5^u!WI!Z^4(VK^`8|k7y2}B1GuP`> z%T0497JRkE0jq=a+zc_hDyhff!*oUwC96af5g$8*1qRND<`qZJn;}S`Rx0a&zBa}b zxbmL3^^NyvaKfhnV|KWJUi>)7&c~v(uIOkk zAg_%wMBvk%f9o1PM3<+sw@2X(nX|$^a^~j8ZSNoVZq-zNJ>w@hs-{q>dKajMhFdId z$4XQr0*As$HHC@?8N|iv*v{y%A#J&0y%IIAw;6U5Y>q>c(KA}>-w{~*LJ_0*^lOwl z8?0WI5$bYi_Bqq03d%F%zdI-}sq<^cFL$x^22<_r!c}-tszF%4fX-A7Z|S>DYTyDU z(Gk@ClSG$(HClH+H0oHFnjVR;NMDZK>GKy7;D8}x5kYMt7>MXzAK{kwLwx##5>NMr z&Ol#dL)o%J)(7Hm6AQ7TD9neH^qZGI{%eyF0|L6^!0p(%#kcBXhSLiPLrz*3QO08N zD*O(k3l(4F4<>DXH|O^z{ddfCyaKvpGK>0=dUhbIo>foSRhYi>u3V z;t1>RNs^K8Ws4tExz{?G@OYBgJPGo$30X9H@vwDc&g8DV0*$$@!;YWad?K-tq`LO6 zg+)mm-Tpdg0A~JW7WD*Yw?1tAc&=0l(#6K(b` z)|n>)KbT`r2n4S)*6{e;{bNJ33DXG$)D@arsj%rY&j2RNEGeG`L<1Zhq~9R&y>c}t0dyGT=m)KM~e;!N&K6u zr{fgUt~*7XUNQ=4HCa7bx%Z2Z?Snr#UjLn;b3gBz_5>yjo#R6tq$!%*7uzwy4gws( z=U(=h1p#rAp5{DRrK3coORJlbQe8MMSBJX8g$bLckK;Ey**UFtLSRP!mFoDW6uJ1E zgQ?8j@U?43{nO*)4FM1*YcQ;v9yk4*^)t|t?ROD=4fp@dwo$_MT7 zh93s?kd%vXjXApSaO;@7V&AAQw`;(4SkVW1h%8LYF}c6pFOy7NC(nasD?e-L`e3(I z>QDAIE~_9Tw(JVIxBZ}FNk*<=59Qzi?Uve($?US#VAE#eAe0dOxQl1{g!{q+ z93Ab+85vvQ8*=VhF}NRIo%PV9y{W z@Nf~l_?oIt(?x6G3|vh?KkklKd=uBv ztz-!A3x1(J^r{$h%wZw|#3ZCFlUcahBHZt(^Fulvp$a%y&O#>j2^_@b#6rL;#x|DG z7;cf38OI1xb9H7LI%}y(C!dUTDi>Jc7aL1}84jpAM_4u7AxIQiifCp;uI{Yto@%(6 zUIaJH2~W6<50ziUFWl|c@Kz6!{7db~i_vD6geSASy+^^3)#3W_x(3a$(@pHR=NE^} z^9wUlE%?^hGBHHJylK{7NGiYFgy~I^wr0R9_)`+m3T61=x93d!^& zR@kY;Eiu73&G1_#&S$aTFFye6{aOj2YpF0>h~yG}Rz(WJ_sa;Pp0IRozeTA_<7Sr7 z8MPz0xyv@lX|`i+*Y%u^s)j&B%HjY5?&Xwcw%23%Tm|?3c*DNpYq3VGJ5tTMDcm~D zz6@nn1q`MNJmv8^{H)Xfrir3^3Eqdi0M!)xZ-r)~K%LXtJI%cQe`S%NwF`($)>Qx3 zy`;2P423cWA&5Go2)I%tlW-K~*_2WhpnPbZ#dtxQ$Uru{J_JOBfT_L-av0seW?W|V zA@m|OZR}!gf{qOPk14QsS;BB?9a73#X}EueuEAYkgN>&sn?;U{M{v!E&ou?%VpeV^ zu8RBO1m3kk3>u=njXloTAGxW;pUc*3ZR28s0=@I~_F&?E?J?&I!A=_iHrbZC znf>#Ylf4l6yVpzxJH-fFYL&$vKKvtS-y4jSMNYg zxe^|Ih1X%Q|M&ktZQV~tc~roOC!3CBqvf@w)k@KEbP*2PoJ;E&|F7ki=$tG|uZPAg z7->pT?_%IwAu#)xlbEw(Kq%1H`RkPU^EXmUK$!Q!K^x0xNeqD-@w?1$!Tj2%rMBl% zAaOJTL1qZC;?p?~>x2P-L(Xl1^edIQ7m0Y^+urR zEM37SK8Dpd8h)TBvxKlV(x4}~P))_ZG=;XM)#GD!UN@w8O}zbw~%dqJ@On&HE? zsCV|kKZ$KGR0m?|6P5Z+uhW0-wb;tAXH%WnlZvY1LqOR1<^cTj{2c$p{ zx4>h{o}vbiBd%`+D#}L!D7F3QQkl{vhy!^};pY}U6QqA&HySE6cnEX4+3M3393n|=nn;exO6cxfhyaKL5dM|Djuq}d_% z%4iaONL*<+(f&9*E4{tXnuwjJUVams$!?v3pE7g;V^flJfJ$EpxaETYX}KAJB(NOk z1ktuU!oOl`xRdK?CB+Ro}fi^5w%Xp_-@W^ z>WveWCx0m^3H3d}Sxs~{M(5G~@aAFUKLlO!E2#$jQa`#k+ROS#&QwE<7XTQz>fulX zdYahl737Wz71XL(%;W}UT*d!m7L$j;8`xc29&G&OIMIIoj=%Ctj`R3wn5yXd7Y+?4 z+S044PuX=tM@DO_w8+^58gZz)@g{TpNq`j_DaO7XQUaQ(?E==vb_qcB(V85)D)2@# zxx^(uXK;SihXs}Pgf?7o>g*ps{mO^V#o7E{g4qcuOC;Ql5x9nC{tQ@PF)9M-Hq%&H zIUf8}3EEf*8GG?iSBg#VeM%#PWz4o%S4x@G6_Tm$T^lV!8uA(jXZ)GA1pXmQ3H>@f zK&}YoX*YcuM2fPRejhNSNBQ6X4qxE-GmcpHblJ!sfBGh9M$iZ!K=^ALj~nO5>daHW zFc2b{1mf|9XhGm?f<}oGK!&C0=K^}Vz!i1@^2`SR4-8(oY0UV3|gFwy6%vMzYhv4S=b=Ei1%F=1qUa0k3MU6jT6D6VaEo~cVxUN-TQTX$gZHyb z+h+W}iHRF>1}3w=-1P{5BPfTFpuuHhmBFBRFe1ePn~BfE8*4NyM5s>s|PG~G`stm z$BDcl>%{VfT2&XN7OOVRd>=aRRYJAWBT~bHZL<-;Y?)-_ny5Ec6$(apyHxZe|6A7~ zf&UImRfV2s2e&UB04IikDF9pK1bCYw1s@AtP9AiNMm8s6el^mMdy?jVdNqjK)2)A6 z0_JlH;JeJ2BBBJh%ZTXX{+I3G8|GMtcci}l2^7jlA1G4lrzuw@eJT-bt`;cwE= zgt=-9H16lV1KgbSIZnpB)D%8Q?Ldj}KZkMnK8@+mqO@IbUuqv!IhM%gpd7rZL&rwLV$<0>5|p z!Z~xDr>2Ps)uGc+@KisT<>^a)hlZ#8?yyWuDcUI!Dz89~Pg?O78n z;junLw^z2vQ7K!%D<2G$4r}K%P%0r*+iRAOEW;}Y1uk&(h}{YR|3mb1%@_y9p#W~` z+Zd4yT3`1x061Cz>!$H#9NiJTs!n!yHCMU}7cB4Yo?{{q#39|TEqK8i&Z9nL1Bvom zKn6B~%BD=|-C$7`k`sfyaWvCF9m+r!YSZhSs|kU!DznhPh#rO&-_%ko$(mv)Z~)9; zf_LnB8-ecbe=O+{;t_DY<*;1l1x|OG&xL3w4%aM8IiRnBEsq>q9)@nHEkbR7;Xc@^ z2A2>@1VQ)HRP@nZ#8wgz;S1DvBNCv_N`p3pJk8|V8v0LU@#cmR4nb)+ zxdgmIpnAB=c!OjR8Ezd_BV&aur@a&~9YC37(P8KQ=~5xMjtWlNp;=8ZZjM_U#^?Ty z!~uZDI+lO?hXSb&msqBgTSYoYM&#SJL*K?jiwAL5;Ad)w6k|G}ChvQ4L0yZYP_xq0 zbu9LHssM6oRr12EFnn;lxT}p;KoOExU@$unR@G4-O3_Wa^rRL2Xg}Ly@49`>Iii_F z*yU@(1$O_mejAj~e@1<%mshe64R|WbhFSJX=QL?-^Aki;y}-(hl^3LPvaMW_0d`xR zFkfhcn*0DX$^<(}I*rY@%lZ_>FVvok@AjXBc98#riN8U&t}-JvcNx9aW>)li9_a}b zh+C++h^i)rLZJ_hDSVmsj=}eTO;pl@@|B)lYXg5kB6LizvY0|LWZJf7#ilD@!pc&( zjv%cfMfe+czuQi(Ys}?Je1Jt!bhh+s6f*NJ(G-(tr-c`X-K-|w_!~q`Oog(*UoEjb zP<6GC-W;#1M>3U18vh7G+sL*k!g){ab?FvThW#9+YJ1dt0)xsbC*vpu%~J7Bk+YHu z9@eDx;0#jMpC-hSiy}+T#i5GBC=-Yt6(}nNStwlbIe;kWxWyHzJ4Tqwk!}-I*N-HV zwb?F}PXL)!H6PXKXCVn~OIsjnF)DbLSb>DlHFEH=sA3X|&Q`jPR(WEq z>oY>ww_yvhi~i3RaBKU8P8z5APNyNt2aOO0m&EpL9z#IaxXVcWUyir{u!4riYZU^z zEbXs#c`?{jOlRK`E6AEQNSosU3gz%IHm=~#*JeT$PM7SEMf^qEb5s;43OZgTL(bE! zp#-)-5xq%ciYjOKz%6Qr5j))>AArGzL`Dd(CT(`o%r#oGpHC!c7aAH_37Xa4ak*e* z*~0N#sNi*}Op`|-U2b_x7(ANZtK+^rJ{Q9sZojpsPl2L6=KB?7&MDG>7-CcV#tm$g zrs*MBF^2AyzBGn@*nCkO<;(4KJXy1$euESubyaCADW<>R~Vm`5VkMI?;x zr*RSVHPa%7{)DWuZr$+_ZY)^$#^j$G8T*{K<_DDTBsWryhvD|+#69b=1#MCa@oOcI zH|rhYQE%h1a7B^LN%prQX#Zp?DSbR>6&rX);N{j;ycn{Dvp{Bi43?HfB30Avjsq4` zzoEf=Mad;BB0bCisoGA3<0H0q)#>k(<#`-TBEEb~{~3o5z%GYgzUELhot zS?dBAyHCdeKS030y!HtIO0X{#WzbCSL9Mu2CB!^lOngu6CUs@NmbisS`pN)+x#^a-%iBya>Z&bryAKI_7d zbwk`v6!5{3xo|@(VwB_{e~ZIx6G~(sv}U800|KIaj865d3w|g!LS|=;92B*O^++wY zj7@=*kUt33Y#RphU!ir~fS{p~>sPwB;1-EJN7S*Ajn&KUFPrEY4*8adQ*brw_D$Pp zg_e8gLOR^i>@wVE!3@Is2J1@D1@@~{DYntTgl~jX8=X0aH%c!uf z{ZUJlK;+uZ?#KZr%s6v+KPNt9yG7hX<5b#;l$pc zi$dB7?sV?Ffbb>oEW-}{zOPPJUK=*Gb`*IJ7N84Dei(McV$(gGLuw)EN>UI? zix@wmbOkSd5&Nr?hHXq~ACR6;Fc}&m588Wwn}Db$ z$O@sF!y{=&DYa|lm3@2Bfvnw%&YClzr>N#+`(7a>`p_J6>O@AeU!I6o(T|Q~NDVFR z@$iA5cK_uDkpe^PI341xyuB8L_=B4=&@-NV5)$tTEnm?$-~Z8jC`L<^ABAd(jWa|8 zgn&M@$-@AmDQyTcRqE_Zi+D~UAO)OG(uRSEU#r!Ua@GY7;Y}rP0#ibA2JXJz=qiJE zOtfCgyWHrbag?Z0R{0!Ehdp-8)jv&%dR5qJ{WGo>K(9s7W3ZiS;ovTP6*2mO`s1<8 znulN2p+Rd_Jw$U1yhD~k!-CU#s1hLEqqB$M0Q_dWg6O&;d$3O`Nb2sK^D7o0QHmg3 z6ichJ`I1VsXBm!ezU?@y_IlyqWmOBfqQ91n?lht~cTmCU&6-wS&5(K33i5UKqM?Z+X>r9Ju z`0a5qDUy++TEmJHkoOb}ozg#W76SLuIXNWPUbLnQ)1@Y0U^RKJeO*HYH@1Gz$R;Cx zg@(qf}NeygG)0cmbo*#oO(zet19CVZ9KFk?nQqtiDt zp>#m+lfb2)SBC^p@O~u?TSxifBc0EPal(5}mW!)Z<{nJ991`OmsPzoW^3yW9fC^t& zq$KMkV=7g_T>RJXR2|oog>3#YcUj$Wk82uMTkTu?{|D0xl}E#+A|$VE_<$@$;}j2} zfiZi?hBp927~) zopp9p0y%nnu+LEUgK+Q?99sidaPk~0U+JkcCiuW*z;wJ0u}g;?G66-KA}xoOOAVCC z<|TpOGtVZh~PIWJ2p3@C)|g6tB>yl1~}ti5RxNF52=pCeYY%BBAJIv}*5 zyNEeOee<7Y*YY;<}%tj;!J1>(Bl1Z3LGk&mi>>%-3WGt-=$PbOb~ zdLmG6{8vzdKaZKI*dO=g=|i3vLrLZD%t84JN_k)8u5i!kw#5DUThboFa8YM%vondK z)@y+vLgBz|2iVgoyoHKZrao>dv>so4Yr?h9)#AjHaIrfPUL|-A{5|9602MwySz50> zuSuT#q8|@~a#A&rji&hb%<@sxg405?J-EGPYG1HLob+U;7ZL1mo?K56<)8s5(}@k= zAkQtl8k-}mH>0%ZY81t2gXxTo#)>?vPxX}RFMVh)GBZ|ZL{<-=NElK1Bo4sUOLVRg@%+k7_&TM8x!e1ra}aV-nIzD z94`j&$^M#0AQ<~WRVaSwlGN74M7jc zPs2Y4Lqxl8tn3cK9W3KT7^^bDN8oh9!)v1IJsO7uEuyJTBZnIOLr}V;G#`{P&B+GD^xI6D>cd@`C@d73rm6IQ z0qTDLwC-EL{5?v5m>1IpP7h2Ito+hf0CM=QpJ!3qyt=&{0~Oj-08=CSX&F3Fh3pcm zUH@@WjfIeFje9^4QI#k~b;f<>o0=f{0Za zOj~8|(~`0!a-_#(5?5V;8}9ZyS;I@d>$sVT3ugQ2 zn#(S6aQk1bNTwkM1~Ecy7%c5$CKczi2NmGahD<|&X_BBFinvu$VvGKZovO0nx$pAC zK(W1jYjpFd{7^uQsI?Ybv%G6X4>M|DHDWQh?fry_F^}uBEx{6IE5<1EOty*CB{OSWS~W0So{Icx5P#2ZCfTxD1k{mNxh?c|C0>F63GDGGb?0o(;o; z>{2J|uNGNm&qIU(l;@ff5~vRicl_KoznX9LQM_m#&s%c|oro4ftUlvhzSMTHIUey2 z?+XTM5)DfcPD$=^5@D^vuRxP43X9I?{>)F`r{nNPm8Zk4S)wUB69A~vige*}riD&{%A zt%Hwv*^CVUtKD<7Kuc?oCvJLj1-Pc3+hW3PT@J)V^RmZSY*4m7wi=@?^z$1ARMEDm znBUg|Z(4-;gi_#007L@jH|G}c%}f(NIFwr55d3j5eIk!e;i@J+=(h#w>Fh5@X)eRZ ziZi-(ZDXX0%;fCon60V9*zMbYRuAqK^$iht@l3IW5?&o{``_fYTd6?EU!Cg^JR}+Z z26dpD{=g+FH2H41atw|cGIXM(ZL_69yFv5%G=Pf(sxkVr8n{N}FNM~kNMS`#QcT0Et^UxXMt&m3IYeX)u1_C8O515lgKjU zJ|KHVqX|Ee(O@>|GXy`U)k(rXsAMZ@*A_@}%a40>b9KYd)w;ZfIIeonWK+5WguHH+ zOkY_m#NB@+*2Q{fv_tNtym#@;9#ZshDl`G(Yj^Er! zQn!Kwy%KS!_(zAGgzmkmNwCQTZ=~vNFN>?le9cv1inS~r4X#>>k+4iH**U@qFoAx^ z+Dw)2<#jx)?(})#w>K7?ldl2ek9`8IX~|y{Ha$2vt-g%owiZO3!*r^qQfV(1K@uKn zvollzGY(8d5@-RRkFZD`?Kbt@WFfZurRNkHj&7A(k_5C~X-R(lgjVG+CY!{67Tb-g z@KGP3g%8oacWzbPEbEAzmg|)8*tXkdDWf}_w#~JK_UytQoTmp3b{NAPB=tCl-oab+ zboFzj1u5N+32oQZj)ngTR3sR?5{<`ld*5+AR#I7=-FFRkCDA<{BWT*cReN8{&6@(& zew$4mG;YYH0Ive^eFT-LW_5d-WL&G-0$A6vQO7QXbAc@?YlmtP3xTrigeJ$!futvQ z@sjS6|4gc-gG<%&Z{chHU1>7Igk%P(@X=>Oq?)!TV+_7_ zschoT=okB@a!FcnzP9Gj1Cc3*ase>)-Z0{OQF~7#C6QA-iA#$htr~)0o#=B>&DMy; z{St~`t=Vq#ClLxOmHDt&xnQjl9s$7^jf4dhC>HJV0@_SFjDyVb#c+RUN?HFIpYaZ1 zjOUdCFV?aj_{ek1x^5MR`_-L3(7S z0qk>OVYh3@jiq16kf|oI(;AmMbz?0<+i&brnh|vS9f$Y(OdN8WsWbsON zWl(L@fK1L$SvXFj8FTZtFM$hM!kiqiePA&h<7T2{I1{qpZQB%(3f086avH7k*X){xYc+88c_k-hK49+alKIgq7+@+ zHa6U0Abp+t^q4s420`=1keo%ud^FG1)BdS~<}$8~9%V3%eF`NN3i-YqEq$0yeFarl zFsz=PP#ixytG&8etbC>bdpnZP_!NObp_KI%@kD9#OEMV^{s&mIo4xeWoShP%DTsU% zr%8rsV$<&`iPvi@%D6X((y1w)$do# z%vNL&g}OXjR~RKenZ9Y(wWe^SDh_bkzq?fUMTmc)@RrnH`6`pd*>=>N%VypomwnpI z?3ecf%?I2n3FuZaQX_=dP3~xPJ@Rn0x`LWvYSyNsVkg9RK{UjIoPyMPm0`PCnTO@C znVIq?ALV<&25w%V-B4iUnw*YeWp)_bzF$1CeD*$@nNQik>=NKNPrl|`v`n5AFQe~m zj&=@wRiB3@I$9|aI+3}QsbemMkYg-HerZYhDBgurp^<1sl`GyQZS{!yJ556#yEOP; z%&(fa?s3JD!&~h}OR_pZmKW<4z zPj{M|U0J8`k*Mlga!fv(bKhOOO_;;c&f09(6=o3A-5dgg0au zgrBmwomXF)p!F?0-3!={Ul?V)Ve1l2KKlRj5*gL9MyFvdRIA2m?dTXt0dXcufo>Qr z!<%svq%Qr7<~4?09|PT=lJ`uPkOGM$o!-^eoF~+^gyPH@1WuETZ-z0Rq#TY<(~&C|5AUark(X|xntuKk8zhHO9wa}1rz_pom&D9P^r^#&@q`nK>wC5%IoLV(7abl40Da>3tMTXLW4kqwX3DX`D z%thP3=V&9$JW_59@`({|!mkf|Duj#s$of_+*s_-Xzfo&yow9 zy<_OV*7Z!Z6&jd+GBl;+)xq9eE#OnCAZg+67Z#QO2es>7!d?nc{-d{X8P$mlC}B!l zG6Ah~A}LBHvl(t_&7`hgiqRW($9_OSwJ7s3EXPV7=*g6T!`^PR8#UE`wqYtG8^ldMhJZRky#^T=` z#M3@-dXxOx*IyAg>Umm4XwMNn9%!z!Jkg+m|2O$Kv-%YV8M-iVaBg70S&1| z#U9TYYsqFMP4DPdMaRn-Z#I>Bm2- z<-rOQSAduySqa^=PZSN>Q5Uf?hT9jBao3v_e-FOXiDToBb0V7})taLNA^9{T+3F{@ z{+=YTZBFGe!Z)ebc1D~xN^XMXqo}|{E^l!GNq0>llp#+kRmYQCmWn@^HRP(5j{vbA|*kP*ljQ zUgU-VJ7IlRzrwBTp**=Bx=;Jtd}lb~Id!Qyj}w57>|L%kBEw7dOx@J{%sEX{04;A# zmXoy>@)~f{wall%0a+t9G-2q3e&_BipVGDz!oVbMYmCXB=R_G6CN|f#k&qVPc>Q4< zdAFVi2OLMcL+Q)3pBDTeTZ8>nC-z=u><(Wy(cY@|AtD4UosdHuF>(Fueet2@8M;TP zA{b;hrW5>EMLGw&ZYt~z-9LiPMW_s!jN)+HCse&2$VcqG-lUxEW=hF13M8H8fi1c~ z)Zi%P<$+srl0WNRsgfy^IUSpvb$Y zwM3N+TS^kwO36K>mSO;0hVT2`>bZprKC(w8?86^pNvM^ZFlxKDpaO8Hd-SSUOWJ!m zK}mC`{rl`rF<_!R-wkGJAJ3X7l=I@NfiS=5?on%Li(e737viF03dBAA@?eom!B2M) zt4-~deZyQ=Spl=iq4TFH_q+VuJJmh{>$sI>7bt@7n~G9^Rv2Q9aJ1_jc=LL=lIQk( zAkHu-SA33=f~~79w6^HygX~WN@BeB5i)^n1Y^n>potFQB=%^7mJ|yb#@HqsgFBmv3 z3sk0m**D^_=P!5DaE@JAS&-$2Yfw({oN`F~=vbxXHZS*rEpt)tL^5)OsM|7CXjUre z_U_9QBE{mv+MCf-e>?afq`MLLXGIb!uYjuUO2Lz;w>vBLtt!h8U)<-@+gr z2;ICo9)nau%X?HiQIsiV1pJS?y63(d4FWK6;(EW=p-B%bzxHJj$LpgeW zq=I*YS!-`=t@Nfy8m+)6eHo3yR;xMS@$88#QX8>0cagTTt=|b3i59Fb7x;98gn^^P0NKNY~OJ>Rv5jY{8o#siRz8`av@Wal7o z8tsj=UIkcQw(sW*PF`wj(-Pl7G!LXVXRhtxezT82tx_CrgMrl4W&Vm%MqxtXR z3{IQR&Qq2zHpBFTZSQ2c-$?8fR@@yck)r6CZaN1nR09zh(aWNN?d+9iAhriFY5MjW0gzvR8Q6LMw%QEoExKZ=m+P*Ya_7~1?BUm8gbN~r_ygr0b>}y`%-ZdCFZsE~y_RS3AHo!lbM?-&eFKu*+2t2c7W^G^ zM+n_TB-Ic8fRC{OX>nyVS{nJ zpC70-rTJ%UnnP%Zi701i`Q^}%c9t<+0iJ-$lqu0tiZ&hP!zJ>$TkgPbi)V1YKkD{>ds6G7Jm$&( z5TV$bHhX@uLeS5)NRk){<0^T@;UK+PF2LH)AHho8wE9 z*xLFZ&6R$PDd$(9S^-ncQ|2~fvvPMVCSZ+-!skzd7dL`cb=gFwenWy9<=0w2+ENzG zq~QpjP`!Cr;Fl7qN@6J)8R%WSi5c0@igq1*DNcD&0p02f)_iz4jU*`yHGN2jNDDu{ z$8Dp4TN2<7<2vWcTr4R<+AAof z7#&3@hq&2i#E^tMqeEJy-PBe$CXL_Rp~G~!^%3mLo?Qukg#tDUaTyr)OrS#*j><3W zuOa25p9QFcoXns6i>&ki3Rf^oIqj4T23K4BI2m;-3uy1kkr*P(`+vfq`O_^WYIC1nW2@wR$#ppcJB!mX}~mRueAhz>~M_n4xcSLHA$-UMx}{ zcvb@23EqX^n(!*6n*+^bH~gQU3t=J3CeO5&>g4ny`D5WUJ|;Mh)9c_xY&<^#EzRzr z2ED9wt#wp$3?7=lB1Byl0mR+t2b`MaJNev4#Hl(uz?^0f?>4)ptf+Fsk+dDrUao`G!8x zy6*q<{I~1*T&Z`FV!w0Y{-dW){6S;i;H?yDjH2#O47gVd00 zv^L3E`u~K41;VI|@HKr5Zioj_)n;tv1V?`lp*nHcm>H!T$j&ZSZ0XhuAoWBvwma)`)AAiE@gfyV-Byxm8iucgo%w{feK1R^nk9P!1-3m z7y_pFnBB?KU|H?tba!3UsSQG5K@tOg#R}x)J`E*0yK`{?ly?QZ$H+QOr0QKXC?^nA z6^MKebq#uFz*zQpn~ke0QFt2WRxdde8mozCDXJq%Zft+h_z}S^^0p%Wpolc!jLDUU zrDIaFUTKycX9bBQ;lTvhty+b6D)?NGb$WH6Zf!Er!F6XEkqH?!_Ky-6D074dV4j2y z!=9{j?#~+xAHk_n)9QGG9d_+HE6^3va~?%e7inHF2GL?%4NJ6^I+&}qPJtaNDO$KJ_u zUPZrjxFAg4h(99tN=BLsE zfe+l9RgZ-#NmQJV;xS_M*!-k!#ouUh0`vKmTKJq4ergT3-P7z*Bi1rX%e}#?Chwb! z!BCkLCE$wiFG~e`79Z&r8*IgHCw2Xx`g|lvTL_g*IK3&4Ev_RzD=ImrGZG&TeOEl5 z)^!_^3kf!Q?lfBdGwY(bCW-c#kb3fdGU9`*remIxnd!DsX4Q!-bt+H#k;5+qG`U~3 zYS3`AA^T}si|zrq=L&K2RO(snW8mVP3w2R++SJ0RB^s>Y1fr^50bE?h98ue=P>rMp zif08km^K}cP@c{7`#cC~1KK)`?lN4)0*dZOBrf#Q1`UU)z5vuFXn-&wI93x-E})AOK&gOLZE=# zg<)-3i6_RduF7PjXU=V=6JuTwja*B-jk`m+!GpOV{O)C@Im#J({JaU#?9v8U9pIau zw5_>A`WWw^`uxFDaR6QHE7%1=yk<|SSL6>|Tx788QjB@rCRU8H(=M4bDb~Hmh-|P2 zi(Mga!EE-;TsjN=_%0mdxgt)6cA?Cdy zk{*f89Fy#AsP4c7vz{VYNq`CHKHYO0@(ZnFlc1X3{4&TW$mJ(Ly6-$fV>hVHsD}81 zurV+g9#=IiIob%t-97XwOhnzSCgo33(-=d86d z&!Dg5Ef%8c%K`mzT1M@%fH6wfToVI}_ELxZH$7l)3;;YkBC(}vnb4Rbs9eMc9^f{TSwh~ZbC6Y?P0rQn`o(emUpfrwHkce76 zWdW3SDHsuh4;*+7sN}qRao>|Ty>4f}La73hB@z=I^+KidV6lvBYyXmv5CvadT#&XZ zOlXW+rRPEh5GgW*?x(gb0Dt9^g*tGvtfK@G_pG8!o0U)AbbJ6kcqgTLoGjWT3WOb8 zd#;nLiSQNn!!q#fo zFpFvGe&vX2M-ux0v>sTQi76H;pYW>^Z1K(-qTHx*)ed516BvPR;KpJWQ7$k23&^n#j5V-C#r*mz6ru6cTNQUt!nlb z#Tdi-ITJ*h@guYp#W+rPRWlKooHgr>&e{-Jj5Y_zJt!DT_#@*crzz<3H#sFHGv~(3 z_#Gw`+S7DQwIef`pBIIWxm*|rSiCY8aLnN4O`;yHbQ(Tmh*ayX+uuKLc~Im9dbgik zzk#lR5EQ`-9TskIYTPJNMMrZa^pX=;zHY0O=x;>Yvx#ASS}XAGcx(+}Z0bn8zGxnS zPF~}?lWSweFIE&2g&z)sT^P$HZkZJ9NRyD&>Mf5o{QOlP=QZO469L%9j)dg)W>MsXIpN<=AKAU7ng&S7KMYboB zc_7*J{yS1T8Uuv$;N{;ACbgJmMvaWTy+5OsjNx#~96?cHrw0jVZMt{7$Hv#NOU8>%RjVTfdM7H)4_R*$Ih)ZJHBBZkY=&)6gDWs7PBDiP`OXzP~p#*g2bMuVjAeZqx=<<{=EVWq{$Z-vzBx`AX0rK zgKqaj)=*QA;+{3ljIepI|R9;t_B|@|`W4+L=G7 zaV#qcF>e44Z9qXp{y?Wb5^v&%km}%Aam#+_pDPW`Ap^9&r$A5$!U}*S^ z^EiMk*P^WHbclDIQ>cvUb0YO}23DpNF@(5QOy8*DCj&;k&E$(t0oIo*ANaI6L5a&a z$%tbCR~CfTu4>iwWS;v(u9LU)ggM93@2PH`XnBo^+S|2z|*g=3}R<@5C6EkwsA$q-*KrO06AqwUA=K%{%2O@ZFpv9Q)G^L86?yP#%aa^xvtqMwl{sOvI<~iwq z*=N822U(0uHm@&OU-hveY=zwu#zUqK%rX1+wtGiuiwKbBUeP+> z!#lf+q$<-0x}jN%X06ef7hcYq>SkzQt?HqZ8=mRXSG{*mh*FX=%u#Uhf}jEqLN>^?0TLZTl>hVHO!GkM}@jq zAd3T=$Y34T@GoKx3j4dI7deO|$FtRD@0TFrW8pm!k|Bo6z(&wi$nVyUyJnih3FWJ2 z%-WLZ*S?97jokx6r9VeOcd&*nl`6G8ljwouK18l zAWf5}IlQ3%Mj2`bB)zM~Xzo&QD7$Fi88}zB=7}T|tCv9W($$dQXr?)ebFBpRD-GG6 z_-gJ1P}C4W4~a7)mFNd*M=NA-T=OaMinw*3RlX2UY)qekS;CW+>1+#G!UlO??Ju&9 zZ0{nZFl_`&6=1D@uguKV$ME6pFW|A1ZnF(6v=KST0@HjdQ8WO8Z6RizbG?9zv08o&lojGEH z=R%>vOdD%Cu2dM|TJk!nb2%ZIq}sYADc}Bjic|(+U7VxGR+)$qc1ayJ>amBIQ#uRn z_jz?FVl~4Xw3!X8HI|1a<#YCeO?`EM$Vj8e(jC1Ch19snT2nV|i6|cl?JpUp$E6VFV41%FiT0;l!42eFBmOoJwfDSrmKg^ z$EWBaxL`;V_pR~$X4d}C3E1&?7)lpiWh_j@;qQ#jgFD%At^V9GnvCskv7M`f3!u?~ z0k*50lE*g)P6QIih+okKu(^Jp*=wx9JN$87CxvZ0q;%*Y$ei#!OI<0ZZCivRSs}ORoifZUpTFScf#jklb`?lR5}RM$aUUhXz6ChADKrdO zCesRIvWEWc8RnkogA4LBs{o_xtg^IC&H^ewJPb7{0%mC{y#q80N@^wHZg(*Bo=<1cfmo*@5mL z<-)8H^tD6Lfwo-zD_=BcBN$r3^s!UL{xe2u&8*MJ7BI3vM*bO9dVkNa5P~prTOkKd zswk5;Ey6r-C-HFsit%DzHpeFV^Lkgf9gh5v7JKXDn+WzUa^Li*DlO^J7){QLjoKu7 zprd(adizbN@mP$fwrUF?>ZUgEB<=8+T*WA5Wd%O*wzp^zq$46Vp&v}J9mbfCA|yRf zvV)vX49NG;I>SDzK5TrEb}h92%3w1MAlBt;^S5;eRNX%bAu$}<9Ujgj2zsZ2o@0t& zY(rzA=R7pPQlHN?XNLhZw5tZ}ZBCFBItq7n!g>m)x=2U$H|*-g1%wlowZ5ryDpsK} zeLmLT9RZZ59lfgt)^vZY0Qc`HvX5nh6AFEN=`cexQz%3$lAV2TJr~p?A>AAYYf9lD zk?vU_ap_qEqW3eT5*uD+{+g)7}385~LOU;i+&?)>x9L2LopG1ilrH0D&6ZTg136M`~Odg6R zQXxvDi_LItK~v|51+j@GFti_`#?0fJE`L~6-*ERwJhKy`2h!5bqG;-6kV1HRjIf?U z5n2i}4HHL7wzPq_g~aC>Ix%LMv4)LTcG$`tVMaR5YELusSqv(#g42G&O_noG8M0ZL zDyE8NH$zoci=6csuAhlz(^p!zw{?lt z0|@C6Pw1{R-qQ9Y9!%iWA`TJg`|z-L%As0ErF$%o;}M2?$w2xFM%ZKlhnj_7u>wI= zr=WeBbf+MEHe0?ojN;k54qkQ#NAq-u#syP{T6Lc zHZM|&8Fcn(TE^K108^`BF`5`e?GtmPEF@l7s%R~@~@c|^K+4{mJuJ*WNPs~I)!PG?nCK6?v3xQ zFVcv&%J04bnL|O%H7(K(*+?y%LCnAAh9O3M5NdJO;yv&btAI>hGzo+F=X>^(CI(KL zT>i-X^4J3`10H*{TQ)LqH2X&w(2QkZ}|Bn7? zK}sdj>mlX=n{ou#ZNcJuRufLGfhWY7w!k=gn8jk!J3G&$ufE(+mR|6?AOt312-`U{ zIR?iY)$Lo2S)S2j?R~m}78knAryQUJ3`?5MM)@!yj|)m5Zw6j0OSIB^ZX983VoTs_J>y=pkbnM3Y|NhW)q7nN{8lcXJkjg9OzKFtRFl76D0b1|!JOO0(13{C3AUL*eKHzd zO!v3KE4pBdfjiCA&_MhRP;lnsK5KUOvQfDziE`rKOwu%3~P*2!@hV=t0wZxx`R$%b6iA<~fQk#9r;%LtJsY{9*lWoBabY5;orf? z6aqRplc7|hvk&DVQNCMui)OL^o;<(%%>Y!DWcZ2sCIL@Ou zFd4-P`<%M_E<&DF%zD4iJOOY_`PyQ z(WXJVXFI>ZFNAz1`FOX?M&*sI{lOiuYg?h#hIujOw)Be8Eh>o*=|Fi;j{L1;K||Hb z;RC8sA-L~pg`RSSrpdqEDz?0aUZ`=n=*}d2LVoF_~1$z*xvoS!YEhA^vf!xLN&&ts{R67bn#A;qySr867&2t!*)^S;^E#r z;B(Q%po7W~m2LnlzW?;%mig2(p(G!$n1hxj`|Iy4s0`Aw2R)@36F4=D2tPSs*zWq} z@?;aVE9C-cJO9I0u30@TP)h8qMSq^|Ay`d0#5n&^T{jP;yOXE2T6oTT6);DzMjU z9_ndM{kW13Niy(n!$*AwfJvs!QfdPEknbWZXgalBN0g z%GpLiH7Pd6Lnj0kxj@dicQbps^J(;xSd7>fW^-oGd&OOaOi5uXcjN`jp?!{xCv6|% zfyN|vs|Lk|AdUmY>rsLv&|ZZmn{FX;bPbqC@uV(>pTpfXJ06^r^g8wvi2H2>mHvx(Fcw)>NL)!+_iKtxqN7c4?1^LTBPG?qe zZ4+hN8=f*WeFu_(5Y#5!W5Pg&D?iZ%&JFe*r3hYzgM!|{gB*t8zztd&Vs}Y7l4OPg zy0gSY$yX;8pyf3bFrv2pk3BLKZPlx`k9(15NgCmWNdnbIJUf?;MeIJx@Gj@| zY%Jrv!LHfPE6+kJ8jlT$Os`n$U80T{*8>3zIqh~fpJVjj?SiOn*`W7zc3Hx5^5sR{ zI7?Sp!AS6TQ@0NCTTaN2S|6F42GI+_J|e^KViypmSr}VWnENS88ZNt~@~t~!lRzQn z%!WO(X9;MuTgLZfat~{q1*Y2{7^@FLj+Ft>X8NF4A)}Ll>op)yr^=HWPW+V)t_8(i z{>0R_z5Mo*k%Z%9V@|fCqY$RQdM_2A>2LaJfUp2`q_&Y4ThTG;i;A9Zn#0=+#J~p> zO$$gJ?Kca#wWP~pVVY@mu|tpUovG4eHu$uHL!3+~J?C+yu4h-)XO)^O)KeR$nafT6 z3BSyUF`w-2Bt7nsW}&&TS5XtS7Mr9ODjFMSPR41F&#mDSvzyGxcbf>gsA*z0NO})B zQlBLzVM;|1_AV%b6;;>;N?Mx8qck=+zQ@>~@DMZXXzEj+H~$oJj@{{B(m};K|HBTB z1)5-6!)U{|XUQg@E~Jakn|A@M7zN6pDaXtJLqNR0XF3uw?AF!XKi-FPvqt#ky>``g zh8UEH2hJYo?Lca-O&4YjEm1%}`G6?Z&DSpodfp{yPRQj>oCJmR55&*2{D!IWicjCo zU%j7(Ng&TW6rA)eQRel-K^0zk7JrvMQ**8Xi<)}Y7Hur2O5z=fg(WrvUz6I zmGT-LJq((ruH5Y8HuzXU8UVDeMBcOeOxfBgyYM>pUqG>{6M^N=qf)_9;(Gj>_p{w# z$4rgq}!K$cz9yaOH~m=HlkowE^@3%>daW5s#>U!3q`YqR1$jnTBgS!z%q7y zOZ5bR!FuZzZ15ylM4Mn$b)JWJ_k|wOHbX5Pb&QJ8SrA}*FB(N>3+l-1_>iJ}zVf)( zkJv*;e*?nz-SoaaXOl*JT_)ydDOXTywvPF2h%?KXc~gQK-9KySZ%-)};VMEnhaZia zS!hcm(1;(hy#0oX+f(umeN(JC9CB-7MBpjw1j*7a+US;^r|VbZ;cP*}84F+R3Hsmh z+`1}KG)^QGq!{Tc*B}2)dN7a`dXS-Uq{4~*S;VB|%->!jY^FaBX($+clmk)~GOO0jn`enH$CeZ|T?0W?{x+b4lHq@js8SDp=>>Wsc8~pve{} z$gHx+mq(J)N;mrmE4}!ry*soFeLrj4n=V-<8q^-QI4)$4puZLZ9zK+3;dacE3hRT3 zhP$()u9_1BqB3;CGsVwG92=XuPPOdy2Jgk~FUSd+*OStr79^%DIA1g6pHWgCQ|m&3 z>u=tN;x!qw`8;8h%&zlFHTIsE6lHn3&#zjj<&}1a9z` zcHLB~gWbAWKb^;?WQMhgrhD#K^BV7;%LSxHAMbp*ZTBmS-p4JWXoxEN#M$0PJRIfL zi=kCcoD^&o3=h0B>MPL~n3)+ECx~6oACE{;ZFaP8mXhno3aLvv>);iS(~Q+5E}A{PyQE+O}TL!;ao*P zHoPg01>Drp!_4roeiIlLs;_CYQCHi50yXWDl>6YS$Se^MYo6lxv$He8lH!Y?d8Ll| zZ+xI&^h8XI#m|BN8-+mJc~y68Drf3=RXpm^H6Bq6Z=`S`IN8Z8=YyZ)-nM7?(U@Tt z1{6y_de#4s9E{NJ-679?XIY-FyqA_vD-_OpBhJ8Vzb6zS`!J{g-&`rVZ@^o#=4DAr zi3kI=`ySr}?$o>5YAaE|*-|hH$G1Gs`ARTA1-({he#4Sg&I)M(EoTL`e=gi1P@Rr% zjUvC83wBqzs61m{-s%D+ni}Q9bYi?}xDl{NHQ0{XkwOLi=?GXl_*3Pmvl$WBz;51} zajf{DBN$_6O0N`@O578KC5|K~`-sO9gVQ+Qq6-nNRA`D+2!hSo!KCnzgAh3WK0rw> z60rxGg6&ca5s04(MPeBZ_nl3qZcxO&h{Ljdy^x4iO4!(ysvGSRuqE{LJc;9~8wid( zZK7OTo*(>7CJ$@Ms$zR_i!#&XCXLvyAjQQQ_iYX2cRtAhqpyQ6C6|U?M}2_O<-P&P zGqj5QaytarSI2W^E6L?HMgW3~Q_|PJ?`YINL^|-~#K~CK&k7DigwC6NWZ-Vch+S3K zZ5%CKX|Sb^BSPucP;ya%(+tG0)wMJ1#i#K)CzDw1V0J(z%k$3|-GbLxEh~>6p}%?# z&gykRUcAE{nS=8eYrX+h3GWi2$|F7yJ+)XIM2@yVFSg4^uA)b`_=S-Y)DOW?GE~d9 zDco;iMI5sy_bujBDgnvY!liv)ThxW-XlFkZ{z|)yOIFLbFO{`?(R@v|CGX)7yo`xq)vCnS|*y768_K>Yn?1jw; z(^izRV?Dj<XX@Pa?XxJ_cjIc_d0 zPX3qDz+ZgTGv*2af-35r>=w(2Yqn8x1;NItFgh!^M5u|saNRl%dwKFmvm3c4muoo& zLdX?D%-0Yj$v{S)UGos;9($XddMOZZQc=saO)p*CZ_`GumoZ z!4$G)a4!sVQ(Pxqrq=2^@D_H;7)e51Avbr{c*uDHDR*o710|Dr#N2yWG3~IYn^v${ z2(!s`6elUzaB*HARTCecGU~pkA&pAw1K=9Y5j44Ae>uW=E|mI=J>-R;z)yl24kYw z1L{t{Lti**wg<+no37K)Xj&IU>6zBS$_;m~zFk20bADf?&1qW2K#=^>=7bd!omYimy zm&Cm(kEXZ7zDpVnR~AHlZ^&u&t>s%vW&V(l`FcgF$k_^zLD`b*&LYd@#?w|;Yh>@*g&BZ9+3!m+CQjV(1aWGgKK0Of!kg9=EwVr!5bcJ&oFrHEj)ZgDf zQNWbk#wnj5hKm4461J^iP(*O;s>uOndw*kv4_!-e4VM=GrCimnhUIK19u6^ z&h>r_@-G_t%=Ga4Iz7kM5%jCWS-YQqb7i%~R#2_DD*CK+r@AKcqITIVNG@SHJ7z>S zr@UO(Ab626!me$drl^_`U`!gm^P0?a5p+5F#cQ=Ddk$!!&x5%@ReuOailWT9(EWT> zuKO}k(NFP2S#PAo@gpyB&_Vv=_9kD5b-TdmFMknGylnhn1|U(0@A^C#$K91dEinw8 z?o4_ww~rHo2<}f_17r7!nA;Ypl-~p8b);yYf>8_-lOs7N%LedYqC@fojBa)sVRDH3 z$CwOL1^sZ*(rkle5(SftAP@%WS0$$*r@HrI3owCDra~c4RU0b=e)p#7^f_LQFwkNi zy~!wCG$6(kQW$o2ox{MMlr;c4%dHma0%f8*ibrugqAir6w!Qk1Mx2(Os4yY6Mt-_3 zd(IL%TL5P}nyCU9$$A^q_wGmwS6_MXrpHN=d^T+zTyk0@*l4P0H(02C$NM-1mJwF1QE53`jM0Vt2fj^fioe%&=$#((j9W@cqYC4N8dl z031zyxDu`)cB$zDz41OhDU=07BV}P|0u; zj>dxPJpB(kbAfy{ILoXq^h5VD{rUO%jEbm*d=Fsn#TI|_vZZ_u2bBzdW_9(uRAJo~ z3#yqm07vl9{OyeD#pbS-S#CKn)rwqTe@x?r@UxX|uef`&>&JMd>+Nm6*vItiJl1I> zX2u{ZY^eB)I=qjCi6iHqg(QQujD`{&>jzYR2rf)h%CZT~o=aOCp&C)GAQ%MQZQ^y3 z)152fiQgI88*IGHli4KX&tTtWYVQ(Qs^5=N*Oy~PA;nLL zHm8&WBES4MHvu0z>O_1&?SXpTJsD#CR}wP}C_B;=FZ_0qG#a%c4(f!|Z*Vo7afzY2 zu3#M$$9f_2)x%>aXY)yrG8k+ob|+1LZEY?lQ6dW3HYWq?t|xAj)E=?#cttCKS}{AK z(O@3u(&Y&kFGCy!mze)A3}&Qa1LO0zQHz@>$#BR0&5T1&dG(63o3)Ht*k&H-hqXu z`U!;55=W+3v4$Q8ueHXgh}fQwN@3@Lq}qWny3m7Jt^_i)a!qim@D+ciXg zniZkXA&r9O&khp|U+(=EW!HW7*_wAP#5TNv;i1s?c_GQw zH@hMM&Fx{2Kc*|a;Oa!+l+O?32oq=3p%`G8Id%4S_Sdlu>JhWMpE90*x2~-XkcxMW zgR4TmH7?#Nj49919Z;v?a2KU28+$jrh=pqTW~f__+}_I)_d)XE=rk*WYb<(yHl^D$ z!W9j6mP?_lA06w>py92gauB6llFW2^`GNDWWeLdS_?-pW1=o6f^M!=K*dbWIf+nNx zQ-l+qgCKf`L@Gn}xu<^Sk~Xpw{%7Tuy1qhK!wn$u6KVDd=~--nkEe9A`MT%oQ*PqL z&P8eN^u{%XG(076n?5#^I_uq{vhyT9BC;XBr@A-_4t}TKR_b^0+^x@_Jvm3tE0l7X z<4ko2%rlPq2>LpQX#tl0DF-9;k~3Cn{6t9Zzno(%$Y#*Is+KIWP3>_U0C!UeIn!x$ zC>vtzhyA|A<)WTAUuVq?pUg{p&NvvyQ{x2R9N#!qZ|r@*5AZBGI!m}*F>Ga*_$XZJ z)OdH2RZ5I3(*4!)u+vfU1HZgTW;VR~^B`fxO=J@si~qkUvJi`>aIQm0{w}zdK{4-R zKR(gkDW5bxG(Q7GESXm^L{xkovwqGvNkw<&Zm~}Ri5Kc1QuSON-fgx#S<&$p+&XM* z?7kR*K+5R?Nux~T(%J(C95YF;5}uOg-cG!IeMW&)`VGSXd+{eyr2ObkwZPmpUV*Ct z*r%D2UPQAFt=3_(_m2)VVk0d)%^<~J%yJ&VXdi5%bNR8g-PtPsEZnzaevN-fat;1Q z=`10cJGu;1FdkD=hR+SUY zPbE^g&_+nUSUqtn%m-y(VrTxT(g6z%7$FeuC3L?JJbTj;xu$gUh$L&zaHE8yiFM#q zcyOLKg}DM+x~PYx*Eeoe$$WP7FGF%?7Su{>((c)cgRpN0Vf4f(44 zVO7dpp6Eosrr7k$phfo|X>|hpLv`X(N>H8_9RAak@RDAQrV}XJZNjq;Hu%avFL26m zXhI_f4`zQb2^kNHUC%ZVh;7%$omJo%HdwZx9TivWBf)Jq(aO0w5quncm(rW;(scgk#9HTN+x7x*Ga7ZAJ&-X>|=+yhAI5cL_ z0?{WqHn8x)@A_7)1#CdwLEtktppuX3$DN;fU6(IL1#R)Eb*Jt+2Y~~<2W~my81(GH z+BB;btXFT5H%x6(3B*ww-^K629EDTXS7#sVskb;pT8c}FeE>}UX~P)L8PKirp|ON2 zouE$FCriW4}}S$rb#yqicP@diPH&ZrPMpjFir$?$PQWHs)@86&8E!~PH1 ztxkQgh#BFJ=flP7hxrsto`fo9{EIOLIoTBjTW`y@;&VhH?DC^C8Z%{)-X=x+=`GBH z>E)OMS;PDqDxl zzCvKd{}}^>47Dc_hQ$b=JO`7s*slHX6)-M;2Q!Qr*M5gp2)kL0RCDGwGC6(fC44_T zb&|;%kf4G@%Q0>ms{A9kIsIhRO|t&;rt=ZWUWG#N?2QBAh0lPC!o~l3`c;Ii5RRz? zJ7{laJ=s^=hPyeAa?=qWj(>Mo+6pj(n8m^srtO*YjlVMu6#=mBE^VlfWMjDcJ`_2~ znXFco&yrg<9D#35!tGMs_Eb{M@ZHh9IVZw-?aXYPiTq10ss+856DO7VdxK#u)w|qR zPUDNPb{`PkDX4anNI;QvhWdwz@GhJq{wV-l_t(MlY3Ci?$b@xV+u0l(bgHpgxFLK^pl! zx0~wpMljukl1iN$e!G11(z69o1KW>Y@=7lvJ@Ex(-!^9W1-LD^Fx*=<5XyC`X~(m& z4vaYZiTqsVQ(HeLd zmAo`1OH!=!L&YgQ3_LC-9z1xvcbJZ1l`On>2cYdTapn6dT)>GH5oHFzk-%9@j(T_* z=rz15+~)9pkhf4|>7rCXyNG?N0y%@=S=Q$|R;#ouW9Qx0LYtPv571--Ex`dU5m&LP z114EMGDEo_y8;ja`0`g(gbYq5pcv&59k^@ETzO67rDq~YwMQ0bj9Wuc7!mMcs`C`Y zkKPA$RGymXrRkgm$T6z(mPT5AL@ z>VR(nmeZ)0j(7Q;NVCPMNBFFrgiLtV>tG+1!`|-hfr$U^jSDY^`5Q!;I4uTgEhyO{ zrwNW2yI)ILLJr_&88L-l0qirc+O~hHP#_CP!8uu60#{eSz0>MHuc(}XamL9z^j^si zldJn|#^?NyeXg!BlA+=zV3v_-(UqRDkdSjI_H0D22p@|1+m9emLO}-e`k!(aV{@Y= zAJavaN3k!mv=^@d-^{7wRRtxcV(_cR@x8h13~q+0acD|h$N1ndqA|2-diw^(~uQ1xIjG%I1U?#phK5nt34&UO9OA-$k)Zry+ z`H)+6;E(eS-zWd9)&+Gof z0>RFFMKVx-2CMW@W3jg(sJYdaAiY662{@?ho`CZ^QF|!km!PwVamJka)rR7OyJCwC zZz*CMKhlm+((r>UmaY5pM91ojGZ8^?TtERZsw0rW*H?VZE-tzW;+0(zVB#n6Ow_Cy zS%|dGcNgIHXJFkls@9;}c(|nNS0IEk{sVPxfDhy!yS6fEw1`Lu<+XrKtjsjFOE9Jh z=OXW%Z&V;`?x=@fuPq{h`I{n*JDihe_CB2md1h`#!NaKyn* z^N4=HlZ}@yhw4Wh+c2DFI(La~G#7bBiLj6gGorg~p8*W56{5N(#i7O&&-){iWw&e? zBaJ;A6>R)nOCKbL9+AX*PX4-*!|sn$O5sv4lc>HJ>B$-mMbhb_7Wi_p-8OIzM3<`{ z_2#R+%b^r@B-iNt`_5Mz$3@m7<4*w65zkp3WN2FxfVWeBcBg%m=5E0V`))vc*o$mnV)X3W9 zHS3@#1Jnqyb|Tn<9BA3P+i{<>b3|or$X)$Qx{7;@x5_Pzz%6%0s8)WD6?on9BY9r{%BioQyGXx71 z9;$S{e>7^W2>PyAk|=eN8H>}FUR1*$z`%u1{$jiFrfDRr=rN#EVj_YI@f_!$C;M6x zPh7u5#f&Rgkh(>47`Jo8gV91$)(238fZn>=hpWrb_jHSB91JJkCeCk4Zsi7v{8An) z&GmJ6W!nn6PB;)$Q|zO-UrRouzPr;w{6%gWllpG-E-{&vz2(X7?RkXX3R zo|X{hJ37|pj3vr_E}+bFE+u=y_bwUg>^JETv-cnWuer4|94;guXs(8lC3M2xkEPtp zT|^TD0Py1i<)NZWYk|9*&vqDwC$Ix&eP=hHVj)5IT)2i6YS4!p|J|Y&BDe!584o|z z`>MQ8sl>|)Cd99LsT;6W>}BR9ypGU#O5`pP|1bmPA+Vp)hOwuJV|Z}foLDBkFfV`m zco1_b@*NRFfzs-z@>shwpG|;tl7Jg9i_(2t?Ab>(tb!=D6S;|)DtrXZx`s^k+-6SmnX*YJxaSAK@Wllqm9E$zz`+*`WWSW2I0{4e<#O-Ym-;-LexcyL_;A zAXbh|MALs+pdnb-U$)+mwRPfXk(Kg`*z0fvbb_Bj;F^N?=IBx@@3!xO-oHoC!#v0; zBeH{N!5Fd2?vt&eFWRwD=%;g$ygkEz@qM7NCy4V|LXa$)#d)&&NSAlnV0$j>xw|EN zT%;g|F)yYm5W}(6&CUbNr8JTkN@hX{|MMzoDzr5L$;x|g>LM& z2D~QiKOE=xe&fI-(|`mUG5(fNjodQb7;ez4D>WMZz~8^IUEc)1=A^E`z(PY7iP>U)c*k5g?p}ihudzV*f35PP8@uY-pJS@KiZ%D zig+?#zBdFl%A?rmXTJeelM$_Cs~g^KR~mb_blp~>6&6!VRH{1Q;u8d=CPH(=6rUl!eK{WeN2e>k}` zOIHYQE6EQ^@4EnNMiKIbV{n?!ak5b(x7p%0_!?#gQOf;HXIMd57mk3F@`N9zbvY^t z<3}`K@@HBIA2=5q+n)Jg+gy~m3)K)NP}1m^x@*oxAb6Fq6tg}yKVQ+f$g<&FB?GFf zC0WK()Ej|i(#H_Tn=in>MkpG)K)7(OxQ zn#Tx!W*xSu)OdvmCZ4SgQDALT0|ZaYI_$)2mRmeCx0y#ZO!S>g8}+L(cFRdI{(Sc^ z^F|0Gwp49jQ?8Ixo5R^Cb4*)=cYjYJfFsy7PyQ-mdv3Nh_oo8Ekj>bRPN%@NaJtBc zOr|OdpU~udF*#ggT+EAQpuw&x4SJ}Uu8R`Y%?z%c9`M_Mzeja=AYcyhlM2enz85*& zE%^++3K|N*}#Q{_)11qo3Zy<2Os&#)5hS~|(_h9Gm7Y`c(VDj%>Gy=#C(d+J3La$%JHk*@7w zs7sSAE}LA)CtD%`&PT_`U(H7adb_?&2+${##!1277*A=@3!hyCEpxWc{H^^keU9%H zFa8&C{2U14lL0Jnv!>>hgc3W+`ZJjqf-sD|Bh9&le5t|3qh-uX-RK%p#C{1*D8--B z%+gf$5)fllNDJY4$(h=oDDar<4ut_AWkUtv6e{=Mwal_WYS9Q-kA6+NtlFQUbo#@0 zk8E0$sG_lx8~49+|F-9=5Ua=nn}ANjV$Pk+tTs5B&%mG%E4h!=(tvl&rEfW)_@xe< zoFIa^-qX5bbt~}U@GiMas5$4&=l3cRjG?&co>g^U)ib&p1yqR<`AbU+_ni>942}wy z0d#H-+-sQ{j5Z^*I0QZLez?!b+IfT!%^m8XaVrHnGaX6`P>YItp)a?o(<+g#4>Hfj zo{t1pG}l@I2GL7NQeT0o&8E#TfUn8Tq+p?g?6-Id{HS$@S{!XLbdNJfj{Zvmc9mcIcZ`fU*l@$C`RjfZWmpHZwJDhmCEvPDZb}g z-oY*+%-}c}F3EIi7Ck_D1Z=V0RpK%y)Xsg?I95>5wDwem(a;|q!{h)cv4XPM|Gb%Rh*h*TQH z@k22s`#)q{VNwRY(?8}^asM?Py}U?`Y* z4Ua<%?(~T#r1ni-nY#Lthbyyfa0uR9Ae`P%-V^sZ4giwB44M|RBpAsI*|OhkbJ|S4 zvFQ)%MgGbd0Mh^_*Co?TwMfcdCe2)D@YEyh0L>{1@j)JAmG3|+o}6`rvI0%4EAL3_ z_Wo!LxjNa^1vaj}^O8B_u4IgNybOou#Vh#lFc0sQx!7NX%dEr^bYZ?O3RXo$vi$`w2(+`3&jI}2vJTDulI6#d>PP-?GRs>iE+--IVF!SW zcu>wQAZhF+?+4X?Obw!Q922g6=~&UTQK#Y!v%m@F62GPGKZuwfzg{_^{z#I& z{tV`(?N_-i@!I!inAH$37ZW~;)Ho36S&kZ#5dEk#ZBhCv^Wq^H-tWFSm=)q5|4F}D zK28}87OD~(Mm>F1o8^Ot%ZsZ%vV(VFNyUH~Jt6=7EGjQ>&V_5<)|XhqXh0!QZJRw;`SUm%Z`w%pcS7 z$UQ$U96t^u#|4iCU71SiZ0Rc#x+ul%isZ7P&vbeu7Wt#}b}072^K)9?^0WJiw<22) zlGd*pQ<_`?mQy*0VWrnfpaCbbOCRdJNmjMU`i~igY#?a=fNxY{v!`-REzL5d)s|G` z?Ir~#XN#Q}2c5ImY+E>9gd(H|F~IZ{%E7Ea-%Vz7RMvP^;PRT=N2)P_8luYLh;5G5 zEEXCL0mG%I*Jz)aD3Ma2mXJ!y!LV&w``31#|20cKT+so5G|ijYE=o|1V|v4T74_6|pw323{Q6Ry z#&@uTQvM(8?r#yomy>}#IGM_r^?KFCyd&AP7x_3@U%W%j1b?M%uzoKvHXpl#^1SS( zGde{XP?yB)+z0gZKbeB(M^k$o5&vw^dJ0?N$$~Q$Yk*mtW8H|Y`~a;C#qSq9dF@-S z_qa4ojtDy%p2$jO*AWhqey-TfBvC$&U6+{j8RGXXNecojSt;ifJp~;l?~d{L(J)~4 zs4<&lK62H*OIJj&bEVQo{+@jbu>m+=)V#OLRZ?D> z)KU+dhRa*10104A;4ytaHHiVNDdq_|Rp^vq;Ov>o{1~U46s+9u4;)>##`4Va@p+uu z2!-lHjvH2TBu3Lk%Y9wEl#{Z*Nfg`QZZSpiWeNkH@F+@SPPGx=FYuv(wV}Q>P=jEA z^~~G1({W!y4up!3eUE}PBI^pj1$KxZDn5cZgc?Yccrjj5Wpgi)QqP+sV}2M4GW=p* z3jZtjGdpDX3q&seh)`61UIjPI8TFo=C><$FA6)^yY5m`Lb5Q@GK7f=@1TvL$RQ!em zUVfRs^U$g1R7TA04ZcO9-Hd{xl(G3imaY0+7&}CZEjQjMUK;g?nwM*ko3B#|U0fuWx zcWuc0bXf(DoR~R;+~i7ZoA`-dP4L5cL$^1lB%l6D%hF;74G_Qj5P00t#(x{;r=JmS zM=VQnr4@PQBf`F{z;}Bx#_nfA{S{ZJJM=rW`c2=q!VH-9i_cb@%i7!%LkPHxls42} z*J#G+EKRJaiS+@4Z_#}4ptg%3l+{dv5WOSUQaRqc+giD*oVu7cg%g_>g5uUDkC~He}Nz+_&RP;s`70-N3z64H->g`5= zssW>m)~{1m38#(Fj>^*c#o)x^@oI>f{^1neqM< z#6e=CgZlw>I+HO?Tr40|g+^ZYcm@2^$4Ng_Y8-Hms}T+>0BiUU!hwSE>Q(_oe8_W= zapful;$9RA`a=oD-8$VX^E(HDsTEf@O~MH`Y}~u=u_Ut25j`Ep#r}_@VUy=Sblp1z z0(kKtz-x%;R941@Y?G*I<+bee@ce-VPs@-+20qVYfa{tV5kg~}EXJq`P{smHd5I{& zbc+zL163_e>e5+(VMdmZ|9N*)Jr{30?^z1Kyq{a~2h>8<@ruJwWa_(My7U%_?0rX~ zP58rtb??69*H?cL%5XEYeOI=OhaN3)$AnYTxfxDc$GI{lhPsz}Z*eHc`}erWN$YSC z8FyIcc7p=S(%m5(=qb-l)4x-41QdMS7*P9SRnnEbL8QlkYA?oX#=ynV6>RA%g@JMw zI$P`X>TkUO$_P|T22Yg-gkol7_@`$JqdV;$`MC-*@}gE++%;A;YnQEpNC-gCT-%); z(@AF7EiF^*tj3T&G|&;1;@3sNAg^=ehayhe=gue5*hK2uHn=|dNMg($=o1#W~kLTyV40{|yT5nGlI{O3^A2 zPXW+(FYkve@D=RchtE|>eCR;>V)_!G$wIf`Xz1wt)F@=U3_-{D2|x=qfJDejPfe#( z07)k;5x(oiTME{0H42L;HG+7ck&@1KG`|2tu65^J_$?~<$@8yo7^^Q}goChWuUx;p z+;P=`GLB5YS!8Jh6166$XgPIT>@zn@K)9;4Yl8&ABJQWP8e!k&WeY#R1Gn%UfA2dr zm-P^|yRB1Qt{kOORmBPKja_7wH7}EAx#xNq+UPU zzfl}JoifI@x=t_F<`N5|jlfpTVl`%gB1fGNBe9{urywu8+r0JH2FhB?b9ya=hf}nl zv*JQ#xhP&M*U>UO>bl@mFCl-c2=3xWN+#3ploake71U#YlU$ZEk-%}*0C<|K>HU80 zVLkJ;&+{J0E|L@uS1Z}UQMvkxUshe3gc1+6-%)aNcOU7fH-x8$IxuHv+^^|zX8&5Y zSB-S0mX$`3afpytqT+M-YhmABo+N_y4FWv`!pEyy0QiqM!RK~)@{}nZ{>(Ugon9;= z#YQs#qmSJQF5~ASOeQfyOV7_pW|5(^py5@6@m|zSE8X7UYg12J6YNx1ML>uElikMF za928(9hFK>^9fw<{;ZB$ZMb0rRrpj!1zt-h6in5COoT?AlfXC;)epf7wO>|S$F6-J zc3wZVYuV6V@lmS#gg5z-CIhps6AzL#5vd_vJV=IzqVP4yB5bSg<%*H1silbeWj)ki z^ai67LJ+Jw^{`Kd6|M|fSrcmvvT4TIU@XMa1P`cIKSYuZ+mQt*22}oQ1f*SzUP0>MxV)q=eEi(yTt2+B_5w0Gjh|obLeXPr8UhQRBaA*~g6! zeWFXg_@~6zuDTsS&X}eqr4TIw_OetQ%gchniiEet&aB?6gWW7sDKoQ<8*$;71yvBQ z`LSisx~^Lfm0BRQu3r`lMajt3SaXNOjSITO**(9$aG?V)=q!RzA*g{s-`ym3K26m9J%^yte#oi_qcjIV;E4+D8 zcoKK7nMUAwFb=ubQ_dKlz_i`*`q|MZf-_)t4GkfID0C}IyhvE&)x8b@7sUXLuiuuM z9NQSUDK_xGOqpy3xGw;KSOWz@iN)b8sIkSY{^X`u-qS#Tx&6{PVk-&CV)PnoLNu7f z(lB)}i6@;{KIy=>|y=tMSSkTJ8i#BzL=DprUyNqDeD7&Hsuu7);Prmrhb7^Xfc zQIAy7Lv0{!V2h5Jf?ci1AehN?c$=Qu_1C)W@$%iZ+13c#>GVdyrt1Ys-^veCoHdepX-j4c{+@;9h@8kN zMbGxH!RsbmY*qWpU<8u#oAAQ|FKsn#8N~(svs5aYcyOgIyyd~Op!1UibF_R-(#M_X z-_t7Si_9`5U-gT!M2g%1YQK+g& z*)grR^xQf9xcuR<%L8H~E=h-qCKZhfHjazzujrEy@EHqgtYVrNi7^PdgHkp#=|q7b z0e>&SCL8k?A+4Y@)7<72$bySri^B}EfGfM>VP%~GFJf*D7aLc<`dE&&@eja{Tq^*} znHqn~@lyTTAMp2heSmPmWBtu$-7pNluf<>rcSP6}Fs0}>PfWbUb9g?+u@YlJbF0$~ z-yN>v3{-cd@13Fbgak zp2^p3x@&^wFt~^gfb4<$ZoL^@>{ZWr`2%-c%z_--JptvlQcJ~6^ER%#22Qc_2D(bz zU~zZiHs8Mu=zXn-&~5)k00lEu+Ty@;u&u8mZ4HL_3EBQpsLQ!l&(Z9{HMXnbCtx9E z-Yjekj4qI3sz!@^)Qd3LL6k=E(3^2^|7!H|9jP(~X`;RL3m2PRA4VtQ`A7;7F9L&g|ynr6imVxvh zIv-=6F>6ZoQ~#=_TREY_qbvu}Hdf^H9&vdcyMG7Nt<&sm@VMD%7oI%dBMDFfg`fJ$ zM36h5G>DZdx`2U<%iC|XwR__-3IG#LAEAPo-`-YVA+5ly!YAG_rhYIef~j0lm8ppt z;pZ8Q{1+?hI2X-8`#}ud@rY6EW9j3zoTWT?v=SZ(=vvaTOOcgPfQeoUZ7BD{=yNqB zYo~vck7&ve3d*}JEbvfi(`|iFN&@qMmLWKkpcISKGkT&g~EmW^RE zJubb=>K3K&W|aKtbQ$2SpyLfJ(_&h^koV7+13lIgNe=u?IR0v`MvTovt+k8p0!fWU z^4A7hyd`7?{a8c4n;jWuJ}#(FoB*?YL5$d^mS*xt^TCaPxk}#n)BwOpm$H`PFKJC1 zz$JP8FCd@zsuC@4=ILHv4-gyz8w28z871OGlo0XPDli|h;{kyv?=*iZqmb7RF?wjCxU24naOc_y07R6#EZ)43m))mm zW@h#r>7YEWX`Uv@zlgRvqM${23n+82V%!@`GUO7yd2#ykhhyQT)A^@`YCaHZix=_0 z79VBr@9g6qmxdTs<}!a6_?GmC^~SR?m=IucfmpAvfr`tiP#G z9b;{64jigqfBn(7seVq&*(h_r;&-PwLImRcvNgV-eJ8`tv>heDh*fyr;Oe-0uZMg2>G5LCc7oJS+fcx zYx1xapl+fvk35v-a~+12HITLHHgx?suzh1oEj3mx1MI%9?as!`pM63xS_&r1|1(sK zEI=p{Km+(j)FncMy6)dGA>`GtHa|wcjw1bTyQAsfH_+g}SIUxiHx#WsHtM zVi&Q*&#Lety30xbgG8S_vnQ1pSB$}(^Ow_eB1l_0;y~PeTlxC!=eJ!b6h)xJz#(JS z0lcEpti7AuxJUI8!3}bw;xaPDs@Xb$EhVaM9vf4Z%ygzk$ipOt_P zu#4z6LS$`Dtq+&=veDag^p?OvB^pprS2+Qq5y_+l+tes;2e2FqTZW*+_(;*&P`DQ zgZdwwQ!y1B62+P~TeIJeLv?mVz zLGXCgQIpkPL-^T0NYE^~zC`5QpfVpTWt1lEz&}Jy4fgv9^*CC$X z@syVOAUv>Q9w(1`&nyj_tUE<{M3AA57UlP#aT9W{0O-q(RBVgmZgk|U{%O&1`D_Dl zw%%|0KL}VihTAM+_i(b|pmbg9qTk_+U%=;dO2x%f(H@6ZGIa%Auar? zqyC>!GbdB^B+q_EMmBagPFs&MKt(V^v24Z0HnH1_Zfz@&PX8m;1X+dW*J=<$0(d+P z73OA(v!Q*(r>VH}177q~k@w?^Yh;g!<+w>;C1tx`n_4*@L77*s#U`hrGp^f`@-*83 zKS030-bTs{2Glqw9d-P3x7jRfKNc-{t%o%my>u6|kbC{<%#vd#>uRuRs~$NKrpF(- z?4T?>fI2axtT4UrIEbaPf>oNnYhi^kp8kqfLlu4gP>2yi<@p4@DF{;@9ba`+ZBO3D zTWzErjb!&g-ia>RH#4IKFJ*8aEdt9X6eo7-k&ec)F^)HfH+R4?;J*R2fpQ8#o9Bk7 zo>N+lfrEuf?u7gI=h6()g!n7rad1T%X>CA)X&fUZSWiI{kCCwwxNL_$WX0OvTE%}> znRG@|(b{+jaePoFc&g&SWWgzzZAA-{@7Nxt6(dng%x`e^o5=HEhaDvRpN7{;2xvYj zr3kM<&UDNzNK72X{T=>9jb8gauxD@6%}(5Um=>D3m$QJyr4)Hgw((mVKvqZvSXdSa zm9NPkaUV>9FZ+3!Bu>PtrH=&dB&iSZ7mVpcI+G}6o|ZH;k7>bGmKlpvYg(=ZiM9C( zrYa%oi>{lrW@7Mkda;6n**&P0Lh@_NLOL#z0evZPhLna0U?XKU)}i6DmH5 z8L3_@H8a(}X87|Xp~xPE0Hbh8rPjQO+W^tsmCjl(;Ds%j9^qHzJH3=4Z04{VPcYa7 zwdjWbXy?hf%gsI;^|Ng~f2<~{h&~oERk*7Siv;7HFy8&2#{&{aoUvZxVr+ESz#*!*IqDo;A72nt_AQ(Ew~U!SlDG566Hyu>;5|=Q zHpOVQb(Fu47tVJ|9IN_^9=_v<)Tkrbs$~d zR$6Qu;R4_7;iUsWaZ8e53z z4V@*rqAtg$iON6R4wiZ^yx&TOD|T&O=V8@TS0NKygG)`s2@^}q5}eXvLGO^iuVnV= z&z*wcvBNH7rH3SRTJ+1H20bDFCC;(HTS*bw%nMDP3E?(h=KY9l&2=#u_|NAECEIhr zI>rEKsXg>gy@&KX6kH3G3-p00ucR0v9K5-xO?1|o-91;c2# z9zm~EW?pwljTP1BEL>T3xWK)!1#)E_hqQ9Rs#2aBmbBED7pkD*WNE_#{29fw0;{H%K%l4q@|deEVD;Q1GwG7(`YTW z1!a!d#d0hQgd^&^d=5z)PGi9+D|Wl{q%2Qxu}0{g(o?CAK=hi86aj(5p-W)0VAyVK z_0(V_p_)w5D70Y0t0<`_sq?{GCNJ|1evIl2AqnpvP6MEYX%fndBpMJwq6udS36opS z0@lPv7*48B_7uc5?!wVXJmGZNW1%H|mD+3Oeba)(L*rtm=n_DWh*~Pr+{2WVi<10O zikK7f0z#_KsIjpCKIytc1gN-bMvj4WAVT`X_-t24Rn+4oRUQQpx=Rkjf#ro2rB9}X zS=FLO=+?ME8pY3sm1Kcd+0_5Ftj=Vn=$qRtknio|x0jIzWq(|JkL`ZA+M;kVb~n<| z#y)F1RFkLNA_-WaW*ade=C%qEVPK}$NE$Nm1{$MgiT29sGA1zFQbNZkOeB1PTgP`K zJ1<*EV33tyfKm{f9rP)S;8kF&@9rC_G487$W2w9 zl&Os)#ztm^L|!dKAQUu*+78iYB+Rlf=)g!r@5{;>_{^erH32q{{7bWyJ0@Qu46fso z4I<0xdwSSGdrBbXQ(vzJb2*}AEyRAkL`fNaKd;xu=9-MOAP{vs(U754ABLeHl(wD1 zhFYL6)7Q+de*RT?cD#~@PmHU@9sEeiN`$o~Exy_C=0)H9>Kx0Po@K0JQp-1g)rhm_ zA{6?%e(OPcfHT#yZ`iGT#OE+uBIKpQNl-;_7|4AyQW7y<#ofpRl^P2oc3rpHelg4H zpC+TE?=UQxwl*^B8M?AC>i+`qp}qp7amKuaXc!xG*cWQ?=d;kfG>em{J%rLGcF^No zkmw5K`S@UGn5w>9q=z7y+Zf;aW5s7?QG%lf!X5}R`0H!dEcHRShzZ4W@($9_iFgP8 zc^eCT&Sz|Jba%@`M?KEKrNE#K1Q)K6@fLHY2M3Zl=bV}AB=(;2w0KK2f1mf-fkfmw zfq>*=-M#h$;-$ZaIuAhp%i_*#wg4~baz+J$r)R>kEqbDZ&vj4A4S}2ak2C%S%hTvs z=6sfVpAn*=EP-4#ZoSA63nW}aB4ugytXw`)M6AcvX`J<{;AD#=a-kg{gaEte0rk;| z47_%1xx2?gB?%=QOgJk&XZfjj=O`4m4>5DP0kpM{H)PJVyig0Q!nrVAeR&&IX&yN? z!+9s-VXl`6Y~}5L$5W18TQ`%;0J)h3WyyD>KI}%fIS$5qQdWpRG6bHENWKFyL(+;c9 zc$Bjqb@LawI>GH&g1xxA9+Xb_I{kkm_wpT!p9PwJ2Q>wacXLOQx9nEYWse^q zqT^zl)=wz2aBBBoIKg|XS3ua-0&456n$=8rrwDutklaN3I?R!Y#^s}?zzz}h<#vo2g3j*kF64+M^}@8aI#8SnIFX0G zFByz~DB!m?YmWyGXE7Z#3~1iGv=Hd2ovg=L#kvTc$M#LhxSNL$KQiZ3Qp*IqZ8d&! zHqw7b6+S>cRgEn=A$(dOBM-Y-tsyFzu;iQ%VSxEJu#bX6vR!lkq7mKlm!-L*qABMd zCe8ecU*>9g`fKcV)d<2F5rjHCse!G;+&SdBDMV!ZeB<6n2M6c&GM zU5xY8yHQ?E29=VmvCe0JX#MUQ(srydu^TmBuNxHIvS^Mw+4GMez1*nHC#;f@T(vig z#j6iFj*|U_%GLl4LT!@YD44?8Rny<6Rwkpw1|l~w9Rv)$_rw2Ed`B_EV7clECjZEp zApjQ}5CRXIDOE3_{ZH6b-+5ry1qe7d`BmLFR3kK}sUf94QMc(`&)Vj4Vh zI2OI0Wy6j3D3XeSBD@-V^UY5LA+A1-y}yoTti=0l~D{>$}5! zq;5O4gwKQ=7kn4VwzqO?ia-*VY8-%h)rAv{ejAhzQ?7hfELmzKm>j*-^1YMk{>bU{ z$-Wccm5Wq)?2A~h(ogJOmzT`AA$Zw1l`hM}nAP3xC9(r$4(Ym3n9{N`(dyi8bwCEh zdQD6S>3=<_o9%}@`2=BI$C@vvtjjC_N{xqzA7pezyRKq_Y5n2;Yxp$1or|u24PQ?8 ztC2<@G3YNxV8o|pJi|C|e#kck6?u%O)}px=gMR_ku=ZzBpU1?e!cz7s+ewCzX^FsF{(9asi3vRW)nolEod$&qN&L<1a1jmU`dD?q=)gYWQXC|eu0ap4HHML?No=>8ZVAowu z8fmwM(268OG5cEw^+XsUW*~8ghhK!w(kx`c`)(Epy-lJVw;@HUgr5s?rL9jxW=?a} z`sfl3B5PoF<*m5SfbiS0Os`*T z=?o(n5TihhOz*lW^VUJlk|uewhV8y-7V?A;-}nwnactIS|`mMY3j`1|MWPxrMJiv<#rxIL}cujgYCr51?2%juYHV6 zS~gr&e|%_P9vvjAwO~1o_;&#$<)(DWXa=mvYhzT?fnf)xfPYoh^rskbilDq<7ynKl zQ}IJv6z$!b7E1F*s;5!oB3+|;Dj_s1_rPIrD-@%?$;(%83SYv;EJB!A&2E-g;U14$*h$w1_(sq zN5M>jLKz;+^E9e{)R5KFA4Yuj&7dPWDBjJ#Xr#0H=Wv{kcSodt1r}kI>gob}T_2ds z(x;5dXQ}GXAyX5d#1_rbU6VupjFU>RrMpp<{3viz4jPR9&|a)$>Q&$=wWx3ss zO%Q%QIDtd{rtxatWwSh5NKZ5MK=QCZ%>kM-GmK6KOrVuN)9B3q1;ErWC0($=HDpfX zS58j;28qCg%hZjpjz}_4i2T#H!YBkQr$hj>@`?Y5)EOn}9Tk1ZJowrlb|kYrjRfx# zOVPW_GuMBLn}ELDKAaEN^)DJxWU#WE$45*Q`is8U7te2jWIgkV8(q?Z(6bE|XQ;i8 z0tH)68n=SeTEggPVQ9l@DX=wn2 zgKi)dFaM1V`1pfQS!z-{mTax6BYyBy5tkqUk;d}!V~ z^~ptGgV#sB7$UZ^;Wy)D>jVAlid&xM@~%1Wl_|n^ol`dxbk*{1#BTqEzqPTb5jtKt zF=D!WN(qGotEWhfDCN$|SkX$Gu`bJ>gE7-P8K^3AKjmuAp-G+g>we>sH*NqEKLs=%tjM zq6VU{kC?M_#ZYe$_uH&5>IsJmS|a_Lt;$!}&4m#pUqr~%K|oiap%S(lZ1ytx^TkcP ziB^H1{YzsUU65Q8Q%C$K^SeP;mE zXmz8R8tSxeD(kPQ+ct`^LSrBb^<>L$1!7~%r>!L?CM0q%h!-RhM^sB^#3F>R))?T) zI0Og`QmuZ}_+D<52SvdH-du-rE;0L3vf7kbLjd6uV(IP_lfZ#1=8;u*WXyUO5eJc( z`6%YvQ{wTQ$v%zhXF|NYX)Q-Fl(q6gR{B_0r~3&0Y?X2-!)3ySMW3w4+*!B@L0;l4 zFVw_eN;`BLaspQkw;AWXZX$@XdW(AIaOH7p0&2@BS_xn@jbWWOF#y^I1av>NVdZAx zY9SV~50Dq{IU!-NcJ0rlQeON2h>=gc`d8nCP3@A}ze^7huz4sh@o zIxTuTT`<>~CzBeV@3hbjNmn`At3FJcNmJ5D1ZRbN#eKj1(v|AFa!(uuGpy7_Z>c>O z(*NS1;FTf)8V}L*2%xbXsu{S^vOPumWglh1y%VRO>1#dEk>5tp!d?pG5g#*lbeq}z zuEvkODC!Zv+i;y8wnC2ZiNkeouoa@mrqx|$GODs^C__pa~B zHW*`0O65xo@SuS|#0!@d!OOhn=Ff7$no*Oq!DiBw7D72s@k98qL|2(*u^ZaLxc(?9>X*4R1qnyaa$q+iy8U5LZbMZ&(6P zQ5l4pV?O@fB+*&OfXfEOnhM_6Ver6ZYAMS&1p)a@@f4IN{4NV@ravKMa%X%)`K3VIEM zR+@J;AS#f*d$tl%n*sD9%-fMuH3=bRAiUXl8AS#{?#e9!=N}@tek~C;&DS}~%V+Ng zS*#XR9j(gMQ@x`$z+UC2#dVkYc)%}}j5p<>y?f&qGFVGofU=!WJAWy?8P z=V^E${=OhF%v5wXyvSHQ)Fg*8)zk_s9YE?sg%zEM z60|g(+T7JC7*j8y&=yH|^u`;n8CGq+ve09S2k`QF-JPwl#RW!}2WlG9%gAF85 zR!LlBJ&|3!VM?N=AnseB5Ve|-;k(UT-#vs>+>S2^8By<2rvB4X-1#9^E5CJWw($SC zBG91Rb8CggIEPW~miHTP>voyX{^b=Uq*|A!Y`RM>Vq^e|Ni9qe#b9Ay2U&FdeMJw- zAY4GE0PG=2uOvq)msRPy`AaQjsGYp9 z^)`A^aVg>z%#Z+gTl!9Ymb~13MMzA!5UC7t`7?s44Csj2<1JUUy`k*4#DZtGY3@CB zL+j6BLJtH-O15g}5|4CO7b%cmFN%?-M4IpXCNCaMgr@ur+qQb8rE0iB3{)5yx^*Jx zav1s7d{@F(h&43?A$fy@D(pYtgkWDKYkE^5+IrN93}D0A$_;!Sap2;>AOBI!7qR{3 zsA5+4F}Wl}kho38ky3hcn5m033Ooq#^PbpcT@Sv*DRFF{?el+XfQ*M~I6a`M5)l`# zdsRD=fITz(22Qc|8iZy6hP?V2&I-7|kd1fO5WpuRCVMZc0B6KOyCq?(8Hc_bzsP{G zRc)82l9>s&LDt*e;%w+CdLrd_hP({~?)fnY5T<|=bwnm}wY_c93l@ZK*A_-b&EXu# zS8;Lg!w@HFS2!;3BJS>-3}&>%*!F77^Wz737r}aDpvMSoo?H?OJGwiUkAW5#Nk{O^yS&@8ZX56{uG}$Ireem8(WU1A(dXcc zeLKXng>IavAuLC-G7=sYp$n>tZ%NZ%oTNyRP4z@6ET$Hkl8`p8;D3NTs<5>wrH{af zU-sImPuLgM+V>i0_16WNJi*)CPF;ssho@DnHJ}XeO?Hiz)WIeFH~WM<#KhUL3BBh< zMU{L-U?rl-pib8XP!BVR1cy4D3Y%w|h$}NVlRG%SJ$n4w_ZaAk)mMTlxj6%-Ib~Z| z0L_GHO7zYqX3@~L+pc4O$vKmqswOL!k}`q%zt?>qh6%JERn0)#U)ag;i!q-{2heAYFefUlAuYy4+bx~>^>UT8Y@>Nc zxTwEWkUNu9?C)dDF1qKq5ENhETCa5b73~6*%Gzur2%mN#(R|<5zLNeIO9$$283q1B zC8VultxXXj39Xor33{=Yq}yC>(;n2I5g-b1;*{e$&)Uy0S>wH>?O%_DYT-BR!( zOa{+;e@-R>)qL^9pER>pMF)yjsxWMwlnYH?Mho%o>efjAo~x85 z!&Eou+h5Ou=*&Wu%H0k>s(Vp}07T1^7RfP)z~b#g1S(N8CYHyFk$UaY^#!y@qZ)ya z?(Ss1UBH6HPw*Z#4(ZmOz{KZdVM>W7uD)Wd%&-Wgk)!#}l#zgIFivF2{|f9ZC#hYcErwp;3Ih6(zo+o{5O zKSt8sP|F+sZ!B!bW#4iY*G0N5s|T{QNYA)qcd`pjJJ!a`FkkB+RJWdOCe*W_?2`V= zEj;x&R%h40=VWfAB)z^;*Wmc`oIdH->OjHdq+ZDi>VfK-&AcI;J-o&N-TuEAn=h_@ zpzc9xF^s!E@ao61o>eV$1rNFC(w|@H;b4!&9gmOE3&ZBUr|)MQlcV?gU6Jdy$N9Up z=8G3`h@HXFawFwszjvjBe4V-Ln(h6 z-#mRzi`g>anEs%SAntbxLwEMH+%Ulv1Upek*5a*5_kEgcDZ|25+8+H0rvYXzmHY)O z;wI%5Vy%FUh5pkt08|3tzqNR`nDlj7Tphi)hz|&v6jVXKomf&iu)G%$qzO`vyR~$} zpRQ4Vzv{}+ip^vfcCgyuz6cnE(iA%ze4mbjE687Ar=B7fp*@+z{Je)-oAWwfMl1b( zCF(yqalI^26CqUP(8>=dkwC{HZk`o!C3Vg?Zwr6~s`GK_C$MUt;LhYH+v_fPZ$LAq z6O4nv1~5;#Gl^g11YG_N;RQ!Rd8$ka1g%ykbC0Hiu=St${=018Z!VDWyIh2%nURt$ z!C)UjFP0-G8cg0I02l1&itv*;dW$ldhkJVOAKG~v0oVe=HufGKd4GMgX|P$jkR?+` z1C{g#qC1)%!`aoRw^pknxcqd-UMN-2u3F2{Ga1={P+mQI2CZ31r7@#Kl)aU;h>wJk z5M&6em-EB9{>{e(6aXdiZHmIX=gOFBA%OIja^KHQ50Vfa(Wk!9=qM`@DoajqNWLT< zmLG*pomT;UBgy>x>1C;aUVD1K*@}KM-~wGrWI(7_IzZ#5piinvl{^2n9?;SAXUsn+ zg5sj)$^(^n)1FWI55-(8E!nO4(a`F@b>=ik%xt_S85TcerwtLL{B+E`?=dmuN}FVy z;9%2~lA!97=^y_j7sI=Dnf73qnJ9!2aXSt zR%uNIs_nDRnreyhb^Z-<#VL0p-kRPmT_d$d7^HSC0DIqDzjqv#4pU4X#fsTkV!U82 zg3NfqJ898HGQ)Oj(tA3Pr&4gvueqiJg$}p&53MEJW2FVDZR}0c?;+3$r&}o%$tNjL z+#WA~AqmTK5!icssr0H}(N)^){!qgAV%pSMqh5^|Hsvn+veAOb1iE}r?eyglnnVDp zUxI=EG~&#VqVlN1Q1TSGeD=62vBmMbnvG+DxwKQ=RH6|KmX&BVJLN#n;j=cV>`+8E znZr%DoXml^#V1)o0A$*EGMp;*Te+IxsW-;0#9O|AJ?I#Fe|F04elDVjKgd@v4AK~E zUr>!}lZL}bA5}B|89n~r$!#}qjqs1|{b_(zeXQHm3WBJcCd42PDG9+)<+~I=vGrGu zE-RFI7@Ax1XBZ`pd_8fQljcu@Io$3dmzOQZkE{5o?=Q|MtLh%UW_~|^IIb~z@X9@G zMDrdGVcjJeS!HZTPSbQ_45hQef+iaNn%m=1jsS`ow#z4JV&U1rzXBqQRJ8*XP$>yp zNj1!l-u*med4`RFcr2xmBn-!GI?Rh$b8?@cOY?j=>Z&{-e{VU9BgL^lQ&d#Lau|3v z#P!q%5cTAumJNYXqzDu&>=M4294NZi(TfHrCtg6mzLLH#u0k+topp3O4RI@_pSNbiMw$bJoCnh5M~ z8#dPV9aI2A6Do2V2=m~`L^L(FfbU%VHa`nq#*QV@O+zn&+9}G4Ui`!q59LUlZ-2!3 z-HNB}N;D7=|93cTOKpmQA!Y!|C6qxwpE+qv%%L#+rSp>2`ge4c1>;iC^R1lKC^Dhi z!7}_3BP91d7PQNp_x7{~YGuzI;6YfPY@vJTBrawdWTDoob?Cm#WhO$BXLm#}o_E@g zIH}e*FK3gkPf~aV7v3Zm`K#rE7T7!P2jm>`_dk*nseb?c@dg(4F@dP7z_LoC5C>V) zbFL19>b!1LtmsXewPNVa&0fHO_9Hjj0<2i?a-0c2M-fGF@Oymbd3{614zy_xIftha zH*V+rzkE8I(_LA)s0su`XUkucy!2Zbqns8Rb~R)$54mc5V4Ge4nh?o|6Mn0iq2kYX zPvxb~-jOseJEoNf*G^xsYSg`heB3~Xi8{&Gc zHM)KX2*n0wU49;jcl(=EF$5VGG5F*GO0}g|98r;V!rKNI)}t`RLFJi;uM>dOxQ0!( z*Q5>uba#}jGI&1X%!D-A&0V?4rrh^=;B2wTxbx?e-`%$|BGTC1~;$UQPWq zAE}uM;~w5x(g=>^8K-DL0(8*iJ|f~ZYRW=_Mn`y>kO_MqYKC}--6EO~75m6tWN21_ zZ||vggbTSR_0UJ{O1+CNu{iAP)4=X@Ah6pXB5$9DHoldEXvp+uP4Pxz0%fvL8w z&Kz&0ZmBByfX)~C_Gc*YhcCEUU=@Ux)HD3cVjILoZ6GUitx3M9*HRx^K=NHM$@^|a z-GDC9ELVS=X`)QcPZ8QsO+S&T+kAtf8q@SE>28zkzn*CD67S1Z{@R2a?oLLL+DZHH zqpDn$WZR6&I9Lq;Ec5a$eTyQ|`U6h+BDz1XQB?wa@-L|^xr+W*y8%1;&DBOG*b7Xj z?b0T*VcRBpA4|~^Q)6E9+t@A87!HNy!^bYry0Hu5tY}vj@S$v#fHWMU zd1)B_6fmy@Z@y7#+leGx#)M_<#^W5ubw2+F{~4NZsIj#e#}h6DUKdcO9eAL=dpSe3 zV+`*!o|~F4r$-E+QB!XpeHXoLBS~NuTH#!`Iwc3_u2umoJ&KaQ02hPe0vGa64`BOH zQx@@GE6o6G`%d_Sd2k#b;`$bEq_b1cZNu=JtL(fPOeUovJ$?LF zV$#Dqp_BxK{;pw$jm`57AJ$kI$Y6M`2I)INo-#&q)7@)t=sddaIfvyMzG&vjDh+n& zPceX_($7+&iVb$qULP9iaJ9|aD#KRWdEW#{G)8#H$TE5k$Vta@xSkb3Z!iTbuvTyO@dB0LpdA*nql zMANOZjI!pm`-;^EjH|!l_phPO^KUdDO3MN_46|z-Oq2oz5@0^a5x2za(5fJgC3aqD zOBzhgJ@zd@*@&U1r%`>jCs>!Wi#HyL7FUe;$nRvml1mSXj8zOvjzVhtxwu)sR}Hwv zA7Z2Qnk63kA#9k0yeey9Ab@YHsJA-h_9e;ZqKZ9t3xyURNR_VZrGt0I^HMyKwlEo6 z)s?YYy*|R=b$BZ^h|I5(UI9g`Ch!StXZe6hp(0`SEpRS8eICz>C6GgML*zWxeI!yv zI{bNu(^m#lOO#ETRk!Vvg)Nz)YsI-%6?nPLM0b=letIMTg-;ml^0@vvqNqyO-NF}K z&}54WJAvi8ZDzQ32{qPE)kBHa0s1Gw;!2=JU2JU5GdtX{WKxId9}#6Z;Yf-a=YN3e zw!DVg?4Z^ar43e9P8`M9#Vw3r_g1 z7iI+~D_|3c>y%L}H(#))UL9w{w!iE(u z*vr|R{%W0f+te?A+4^TIb7UrqDVfb#6d$yvY)Rq7zXH|Ypj%H(Vf`vFuXj&Ki~jkW zr`It-`_8%ND%%`eKudEw-RUVqE3Hb)<6^}9AY>f@mEf&*RhOz#3$vIwQjdM^B?H_! z&e{%Y9zP>#GaM)#>AnQ3g;v?A}Rgy-< zm-(GktS=?0q-MUHS$Bbx|8EfHgD|3P_29*DkoWi7r)P}jeL{nD!Jk_@Cu74m*eBdp zujg~&O|Oo6>^xe=X6mIO(+0<&tAAxArrY?TL`2xCiFB5E_5{(xc;m z-12!b33&$Z)l*zO!f}d=wjSU;(wkAdnBWqfO*PjF+CT&K$-spnFY6~_=Z5B2)7T4z z2AWKnTR4AN7fBlYSFus$Yq32$n6@2Q5}Ti^oh|=yfG#knruF;OLQo?djEI1AiyaY# zeisicXsEBQXgp?qR2=)G8_xiOK=widn;7jT8wZIU?EB)~MHO1Ue49v7yyR;)_AXrF5NNs!hUM}SaJy;c`kQ){%X-2!^{quJok zBD_2J&8wdq)??e9YuAuzt=ptyX5VjD#0xM)Fu)BOoo0K&A1`{2x-pCD&+0M=oNqaN zIWnQf9G@mppFiNTlMy)NErptsNOlstH~I!vgoEvEZe@ zIagK-vW1kBm(IN5`PEutRTL&f;$D7AmX#SIh0-OJ2QE-p?IRtcn+_|5xH}vXu&ng0 zu;~e+{n=ugprVTu3R>I1qO0~9{kO{=F3E1IOrJVlMI{{OIw% zI%nG&`vpQ(EUNj(o={4rZBxLU;+w0^8k>sb7mLupcxQsAYhC}|eD$Du0D&u94Vd6q z&$tuj#ag8Jto)gRm*>ofJF;|8jEv=%ArM42BEk6rgmn0nf+yEtTSV9QNY0kNw(9x8 z*Wi!|ny@)kw!fpAm55`uQ{%LUH159iqEUl85Nw6KgPT8BVC)d7x{0nRs6c@WASoIo zQiS(OhgN6MLRFIuV9NhQjKDsYFT6ES_ERoa2;tlmZC86w6U)}td*aDV+`8<0BX$9e zRqYZ4z%u`yHR_^d8f2eTD1XC8B? z5`gRZ6~9rntIX%aMQ(U{n1 z8(*l(785kL*4?~a;AL(NJDx+J9!`k~EE^^7&{%3Gz z{*BHr6UMHX83lj{uP_rOzSbbU!ShW$rB&YI+@yUGlzwQF16s))>$+~UQ`%CDARX-v zG15tVlW2@pgPY4!r34D1QRj#Fu%J6+Q9@hGSlFhz4|KUnCF=))oSPT;2aSqE`ZeX!S@% zcy&>K%S|Iz=`^FQu_bdIj`-S1H!ndAxqj2xod6<}^ohl-fc6(;p?l!bFg6@Oe+E+X(aS#7#2HZLSv9${*I$7cnvLD09K^gDKg9ad0Hy zC(>~^9Ue);(b;15@Kks$TLnPAi(zb&gR}=1m}qdL2id9wf9zrAm2iP|g9 zX``E=PE?i)&OalQJDEyMUzxLg)h@_i#>}`nb|I6mCCm;jP$#LJ#&)tg|9&>WKAUCR z$uU2VZ966#>FmNjpl+N2t*N#3O^2*bD2)phD z5AiA2N!5jfL%KGQ7^2g?1q`bmn@vFpz5%P;WwkUH9fLc4ojZE_Dg~bsz5sQK?3+Ilr zN0riDRFhWD0g+M9jeo3LXv$Qx6L0gMc)yV`p!3uQS@PLdR#7`Gh6>A3vY=7Bb*vZlZh=IbD#$gNkLTI^{ysb!nd373B{UpSTSzfg$F_=G z2}2*sX?n?}!@vWa{PCx_q*vd6Vo?EA8(sY9#9q^BKQ*L$kn&}2xs6J=?L^UgCNbeRm8&mvyEpvUWY3ipY4HWjq%Ifd!;D^K-2I%HF>oeO)yLw zTwu2VNefB*yn>%cEyQBzGs;_&aF=ubKcQ_=+@O$lZS#;uk`7hG+rFkQ8ngzI|1aiv z?MS#j1==)&gy1w7F%$sFEVAcHpMKXb7WU|uFq5RAs%a>f-Kp+ZBpglP>cSW6pLqkL zunp?@)~ptS{X^-^p?$8#2B2O?S4Px$O{Er4V0sFp8VS+svw4*X+EA*`d$GGD&QcHX zZ1(NEc{sH5Kc_zIA7Q>GaI zn0y*W?U!GU&lV#H-5cCdg%3}qF$%B%VD}MqcU6x7hz(%=Cj%MoqLR22Y(xd8h+M?) z?()O0zK3I(AX85~zYj~be0Z^)oV@dO<)(TK^5qIpv{O`b!4Uytcz6qsm{=LB-^7gR zZtr?wCW~-3m}x+?@5mn_g8l$im|hYJIa*Jtd+G<@YfuGE7ZLJOfeu*kp$XzR3+F`Wf5AT(PARxh@W!p~5~ zsl(kENcrxbm8`{1t4Tib%%|Snl9FR+MVX;mBI-WL=T2Q!yxci=`S(@85wbki^xnAn0)0zFPk5AYBfG z(-kpaY((&*<|e^t!4`cNc8*PLq74Svx%kr3SS@Aqf5B;OflWff{D0@CoF8ZwUP56W zLS|+^3t~3IgcaAzrLPCCT8_0HEuZ2^v>!M5af7w_Dw5P!*%{kTEmaQO7XP*og?Cjf zo7i%mh-SeQyhR&ZF$`jrrkHvCEG?JqwyMpS%z*(T>^_yTmb+)JE~?sJkwaVMk3lmm z-EWv4Vyl3xspy!qyT>rC0<#SRfhrV)m&IQ$qRVMO%^O^XPKMsKhV=H-F|q7d8BKw4 zXQct6t~8t2T8i9`v$>!_Psmo1l?+B{bC}^3b3;&(*a3vp>6p+=lWNDwYZOD6%f(0SS9gdzFOwP-PX-hHLoV z3Nrq$G5$1VX7W|Jg#_q3MRiR3keK;st$h2m@K>~|)B-xd z&IwTAS}#@&ZgqLDJ=67`gpHKn)+Hi5T!6U1M>&uA!A48Bz7leu>!ZHS3JE%WRT#^tXj7RHK(i5DX^6*H)OU4`q8jIKDRs(_z7l{`tC9yj}>L* z^OWa`w7KLtqV#0Kn}PL~aS0xV3&__C6d|Tl4e~R|hT=}AXSyzyX@bz@EV`7?z z`g*vdTL|iWiT=4(<9R0((87PNZZaW-1fEtkoLs( z0aPsM->X~+^D6xJ#y=Q8JZ8F5arW)aX|$NWu$sy?xeZi&fKiZpKJIZX=Whdv>6|od zR;hPwM>6cqv1!&|7hq^d`iINrABvikBYfL`mlav6-2O`~G9t0QF&9vFVxx zu3z|aw8H~*sS59g$4_*7u}_?-7t@}VTV;j(NC*W<^G+s)nVnX(#&TBmWpBR`EX5($ zse~0#LCtDuesm)#DiwUO(NM=Zxs%(_Lk#O@5{i*2YBhT;$?4)~Y;z?a4Gee=AANIm zMjzfWvf2>vwyL~e_u=*wX>F;H7MNmABdCO~&&vX)`Dm4!>$UYHbM$<)|BJw0KwE<+ zr;sy5Dg=u88cX2q-MJz>1CXD3dW?}!IqR|T4D?Ga-S?%FKbhH|K5-EEmuJgF^Xaa1 z=y!$?8`;uFpn#*jZ_IBt^6{wItj%P(AlF-H^aazpqk;ZA<^yrII15K2BKik~e^`=S z^Gw$T56;rHX94aj_&_9B$9D20>dtbd)Vdx!PGaSMSr~JyE5RLJ{(JCe9L)B!ZVSzt zYe>BBf}C|=$$vpW?)*}!EJ`vgeMc6hXlHnQJxJufV%rw^^McC8{X<5K8%yM=$O%JO z#x-P%nIv!TN>3e^jJ9!QjdP`=1MOvfLwK_LX(0ZdWG#i0if-}Jl8q|g!q@OTFgRJdLhXe86W=(U;`WaNpi1^U0v$1MJc zPd?c+PbE7ew7%pLxgy{X^G*Y(4{A4 zYeGPi`g*ffg6X7I4VKx>kEXBhVM&^(_)o+Z88ttya9xY%Xyv_=y7Z$dmUwusLVSfZ%wUTg8pX9U~jr`+enEwL>sD@7~PZIKp<* zYU!gvW@iE{KskC zMoV94ifxMh(G}sHi=eisfs@P$CqkmvLYMMKK>G(ltnC2m2wmqk(_PdC%n|WN#&Q~X zC@(8%C-Eal>rbTJj{#Sb!bF$3m9>;0Lld6p9ax8o$D3BEOOt3SUV9RfqsGkrqt zGH3R&m{MI)5=O>4m-PZv>TCevSYkRwLB{+RpZT&{i-R7x(aWC|`{aOw4E<;zytd&I}#AIo-ygU$-Zs?FHvyvL%y|ySlcZ8KvqwOfh$jK*8tJ#l%y$PfgOoj zDOFSOoKEfghLLWt&OVyVc&x-d=AS~7m;~3ZxwLO4wr0IEDv*&u@ot%YSOli_jq9{u zCWw+a?GK5@a=p7$u!aLPJz+$oaw7?v-sFDvl2tNmH2A(2aRq2AP3n!lTD4x_cCA=W zaVD@6l8@f!x<4o40tYHTX9?8I#sFwMWe@xbh98U2^Yz+)8x>x=pyzi1C+32=PcHT5 z?DO88>L(tQyHs`q?#%SL(@2k>U@HCunzMojdp*@%C0NhMsHhEiEd4>%CU0GOvIw%< zrnKy2an#Fx=~&?=O}66RfZa27AeD;DdU{i+5;ZSas#lq~4}T<{1HT{mkKS+EhH=lN zjQlkREh@jSZ3wMcaT_IUY@nW<;NfHMPc!I#d?nTPb>h4cilQdigw?hVX$j-haUXL{ zQClyE(FMrle0N1O40_;J=(#LKXXS2zd79oG2S&FW`Dp{xTKnoK1!hhQQIa6W#*iJA zsN)84LjKQdGLu9LrCS{pGeP@rX+={9;`;I=F+GITI=b{bXlgl66j_-!8@;Kc5X38`rKJ2;(|sFF$dk=8|02?jMmb1AHilBO}p7NH4YpP<)mD zG}nqv%V0d@NnOh$hmGF^T(xt+suKn!Xb0!7Q9deKCJPRr1k-sD|z_8CnDN?DHJ z7vonnL?&j{%8JsX$4XaYfl%985-PMgxW+plHtL}&Rui>GeFG0aeGo%(FCv6#-3*p0O39bguH)7XPf&s4!t2m z#ip_qN1=IDqQt7q9vx=UV`h!ELm>E#$to+Ye52Zbir{!;5@AjU$Br#Cno1Rs)S*hp z{6Esp0L=(x>*8##X0PJ`ycCQZ4!gvZWrF`n&MV~uFCcpUwyjefP$aArC+uF(eyFt% z!O}zO%{0x8&~c$pIs-{17Xj4VW1>Zv9G@3W1wg@!SjkElWIonnEB|a%)VJ|2(MmrO zP$`Q*)q}AIEi9@a_i0x0Hh8rd+KaoO%&EB~_LN9qF3@s;r$b3~wM3T# zgoyqN>dx`M@QNLa!HRF3B}p0z}3j{xXpEa<(gy9A3qNc~JkB2(qNbU_r%5j0P<4fgNq z>%W)I@qla3&J#Rwn+wr2`nJs|S;KY?yU~MTY6k9MjI3D;6`?RhA5P@q{_B_y0z=Pbb0vjHLI_S*Z2azq_-!e zHkv4;;vYuic(z@ewPqc{EO%b~N)x88OY`ve8nHw_3X3LL1HN~~gQEiCk_Q8j_>T*AbK z)Y81(xf}N)S^VdA-hnv~3hOR%D~X)T{( zgC2)z@`>zi&)L_G75vJZk`1j)TzQ|OpgsF*ssEoqjb3)rFKaf|ejal~wdfpfDk>_Q zHd7ef1oIw);Hl%G;$V~Xt6DCPfKbSc#_69>$Gs-&zHwVHh*|#H+)`noq+i9*Q%AXP z5^Ni(;TSS4D)p~Wnm5LAc@X+JTI~qEB9T#Y2|R47285L2DGT!PeSlpeu2fgT>uFy- zejB~E5`0>%4u~dv*eh#*b!zW?PJvTDKqmX3i4Q1Km8{GmHs`N~e5q#|u=2WB zlDbwV{~%o%=#(?TmBBe}zO0MVsSFtMJSaUIzc6E8wfDjL-Gg?nH#{tT`Srx%ujQxP zR;F~EP>9IS&P$yp*i*$h@G<^dmsdv(5u#bDuUYBat31I1k&T0lB`BW3 z=ndBz0t%kh$J{F}5`&y!h%zvkxw1pRd;gjPR+fl3Zj`gDy@+kAjkOwpE#n-~jBmDX zxmYYW#R3|{oQ)qGFZGo2l_?TA*TGB#Bn`q(3-FJ?JJkhy9ele;Wy9nOj?`SH|6t&D zx#uF^FH9>7AUM?ise?v=(MhqPU#Q}Gw_CO1nuh9N<-XJ%!tJg}pc$rBJrE;{cH$@K)R zBQ3mTz5QI|aXT4-%rRNCT90cXz=mt91%l`fGW5pv*)V%8ul%s*?R+cs!R(}m!6)e3 z?nMmRH$)*@nzdGsTsjWBmvvs3EA)m2l92lOOe&YCZ@B>LV;%w_7;GU{NYiridfOW| zB0YL))l8!3DTOeGt0>#aAbo}CW&4<>flPdko)O)FBkGFx)TkWRE^H$=t2Blq>(;s* zz6-Evx#8___5>M>{r2kvM3kgunbfDXPD(GuWI6Rn19>q)AUXp5*)CLn6yA&ne(A@R zdh#?#D!23&K1H}F()~G7m<)k}OH!?{Y9^_<|7m3Yko}HPt&XW)u4O~eEc)kfk6yuv72(VZNceP2B>cpJ_nV@A1(z+JH@CEbqiJE_;4LJ!19 z((|Um;Fdh6IKrK#-~^}zLXk|EPE{CRc)r8CXu zXSbo-*vVo8HrUcyMatTKMzy9jj+cSAHqE3j%D7;T<;g>2#@!t1zZ|rrGpo7l(GOBF zAZx*9SsFNZhFN3!+w~2BPp?~;rNXEzI&k7pa!Bdm_)DFP)?NtN-|a*Kxc<%=c(N4e`jE#u@0v`Q6iUeIrON`##Q3{*>q5_#UGL#_9l=5W9ZbWbq z@@hr0%yzk8?54^IqeJ#M%hw!gpufr4yK{rmoH$tLl2^h>vu~5U=-I=`-6;2c&CHZD z`g}I=R7n7HC2T7P&~O6!2wZe7dt`(hx(}o{y(sNH1UMPiV(WmG-A;oVADM|OOncby zd@|(?@}Z^}G5ynbHKdUAh6O=lHoabYhV?S9hfDTB{>FI@$;rM7p$)%e!dV39voGP? zDAt~<2p8&3Z>}7yI^`2ce(*Jl)S{wESEn+X;f}nTxC`~+V9@B2wKTVbwupBw9kp|4OE=BQ*K@EKt#o&09Y8|qxfuSXg>_D-$>uMzQhy#6FENV`VaE z>xl((&uyo5z^EPoFWhp=bsLank~k7rq&S?yj2OP zTfuZ4jr(VF*+LcNQNM}Lds;ZJEYW2Qo%S#@nienks|{C%MdZ3jt6Sb0hutmB8LS3x ziOL5vY%Ql=66Et5suRvMdV9#h6YpwXsMQf~$Q?6@&9OIRgMX~?7+U$T$mPFty*`~S z0HzK{p~w}fzT3;+y5hV&E1?p5O@cd;D>rB16KSRLESfG{%DSMbslTN4@U-X@q|lWw zwz8h1HcKc=Etc#t9JZrLvF7O1mDn|=R}Etv>Q@Z)3+rJ161?U}ftk5oa4)8&$vNTu zVz&F|%EXC^Sc`yOkgsz}6k8QUA_YXJX`HR45$WA(wL@^8l%)O@%*q#h6A}c_tYF~w zUut?2-`b*=uIhjq`?NBk+uO%2zCv_=T9b9La+l|B+o4>1p(x2oG-4E#Rl?`s{{mCM z6+uIhEgzBHeP$nEt04|(5wzUJ zuYgFHvJPV8_{{=XSGhV*|Ec6Wlnul#5N(sRW1XPEMSGbf%@CSZLezxnk1H_xg7Nks zl3PciAa1DOuci~1lCR<-riSm|gQb0{Q>}Ly?GFdR0ubi~nDM}QNP@2G@m8|+DiZSv zhW?J;af8gFnUQLm9qw}{;wWhiFW)dUwr20e@{T~PoZIg6chXJwDRWU+Eio{sk^&%N zmO6S>*F;}=L{&-(7|`(*@PTMF9n?*mgB)%V!uB=L!>6J%PVaBSs_Q!my}Rt1lrR<^+O zA9iB_>Si3>3X*WEIoyTrElFC^A1wZKZl0*Qc3lN*`M52N>M(JbKy5|^a65k6y<9{F zk}l6;ugEVt31N&Y29+mu)M3{Vs{&vnB>xR z1u*#p88N#lp7PrRFkjVCwbLGUGddL`I>o-=GofPN&p+P}ZX!6%sViaA4q{ANX^Z>C zj~l>EU{w}~b_v&qMleGWP=rYE;8Kj)@gjz(^oP@4qyZDb1GRiYia zHYL!~(uA;pLC8JP^2*^qh@W+p;U~Pz8=>39OPyVr2mj$dZYUk&{xZl_$3@B;6Yebh zI?88H3Jk};mwDJk(xP=CMBtl7Uz33?BcZgr#1Rn;?CF_71*;I~4EN|DR`pn%46~`M zhW=$057Y;(Trkv0HmrPEE!0(*H5q&>$$8qVFs z;#jwXKL0rsE7Ess7kpWi!)O~61redawp&1#%Hz#nO`-*qbNzs4&LZa2wyD+$CI1e3 z@Cb;C^?J&(A}!=p*?b(|8j<2&?MFY#L>fR7tZ#ErH3S_IaK-%R$$YslNBA@&_AwB? znO;1HJvA8RYvv3t32o1DYsmau;x z8f6fH=k3^n09Bp{mt_ywL~OPWxgP8|KMi4!gEm+d6a-LlotI1mTG@Il$6gLISzc8-hwL&A%|?Q^)G2R; zy0vmxc=howdDV%<+Dq+wRtM1ahfRN;K}$ zlRupp9WU$d!TUc zx00sc<78C3;@E{W*>Ejq&UAacKU^wV?<+m|48Qy^jEi`|!y$l)Ih?2|$z|y?X&lI;j%>}T+ML4~=n{XF!05+8EBp<}#rH3+Xt1G4 z6Hb)lF1CxR9lpvQ=e-w_1`9j`58KU2y@c^yw94@{oP%|@O_%N{)&Zha3Hk8<9L-cv zE>Gi=RI977Ig1$$qlHQnc_0pByw%R{6wd&jY*4<-Gos5gW~BLwtw;!D6G+{xz0NUJ zMnAzOifxo`@Es1hFiSukn{{f*y>1=JmTQzTNDuA7wnTyzc0|c=&it1AFj#C2@BBh;Esnq+^RARQ5VCo4@k!iAa#nY7_NN<#fyNu*ijT|10BBJH@vqK zdimspXB@mnErS2B*kQk%o*S!w+}vIwE>uRcnPIZw(MRU^mW9HsmFd(qviU^v@WV=TK4&z2` zRpS%4DitH-L78MMY$sO{g6=vb(EEn>GmEGBECim*u`uhm)y$4>Dmm_LH>`vbDC>zQ zen{**Z-LF>JQF7Rt$Hi!OIoPW-$@V4!L-Aq!#vUJ$^LarOeLbg*1$Uk>yF^2CxkrX z2%RyM9y)|8uKKbu^2RzrWx71~rD=xt3_wB)iMlM(CLyTlIEad{ipz z(?#sK<9en%8!;)w^W|bDzG#|-sdw5NBOWSO9fn!uaWeeIL5t;(bd_VJmgQdw#=nPY zb}CBZR1|bR;w;177{ctB+9-W3aMo-R*84r2w~{mwPcZ2hr=#+N?_6(bMgH8ul@W}@ z1=v)jfO;n4rhgk&n2*RAg9G3*h}kXzm%(Bi*lKAv5xr@?7z5RoAY1*mRxQjI!pG0)MbP!I8$y{=L% zEG$UnAzapN!2c-Nd283le!%O+K(WE*vd+Os5q;FC-=9HtgG$BXb?CxO{Vo~upIC#4 zZz@!OC>dZ{WNm5gm-dnyAmX6&RKxDJ4^YUR}nJD!PIM#t1=I0lj~h zq!B|qns0$sD7*nbuFe*+lM<2NJZ5-MFb3u_(Mr2ynzh!Act569enECvRu9J^pMRVK zpMunNgrN{G2V?OzCfA_}b;Jg9t+NROnGmVzc99ZZvsr(fs18nwghS zo;{A}^>Rg-nNnqe;j$P%IKiqUi}84~^Xk{~Fi8rp)~uHNb0k#7`|s*>;cIHy8*m`k zY^IxoU9Cin@(>}yS)FtJgllk(P^nj1hfCbKs$)a~-cXtaM5(OyRb#~xS+@;C(;EhZ zl=$RGQEYI(fna#IO$@Z7o)CzI7gKZvwkUu9h>D^g-n9C+Y?<;C=1urOkIjj+M`4sV z-sIE$<(Syh^mIQ)3E+yinGQQBx`WvD9{5bPQ$kq9X!w1^1aD_a$_;^3gYc{ z88vCZJ|=q24VnbK;pPW$ZJ9yHPqtC&9aLL5?kuw^wx zxK_z(%3{T~v0x3FhO(nL{zu)lTFGJ;t0(B1`$$7nlIAlj)Vgva4Jw*vpv&0NXG zvJrP$)(y2>f*#3#+sewWU)Pe4G+;dc(cl+Y!VS8D7P+MH)W^^Zf%%5tRI;*8h65^e zYyhP;_(Z%Mt!`TO*MiF{(wLRv_JT z;9#%pZ}|s0mn+u6mZY*XB|Z?-<}5q5Q9L!d$2UOz6$L8AO`X|C8@F>dx%haZpiw0k ziL)8nNrSFmqAe0d`orD)nRljk+E?YbnrKbf$<$SR$q!-B@>45q(oWjEuqGAUBbJ)` zx}A`Ct`8oM{8yd9^xMBBsFuHvoW}!jQQI*N*~q*B1I7i?!$ZAce)v`BE8`jz?&i7NIlDa0cOB`2xj!K*+Hyzpd7*yR_s1Ra0hYAFJma;a5L`4>M3nX0@UxpA~eIL5ETa zoiz(&)47rAR)P$P##%Pr0)QbtMCXB3_Z5~V+878>%JWd_Q*6~=;OTSiitQ2vu{#@- z|5*ope3vwRq>|cQc197Jqv1ip$dim0yuMmme-Jt^YuJWZ{Yz;|u-(18=5=T=c?k9_W;PMS)@=MggyEwpJ0 zIx$7}zpGTwmF!sM=as2;ao;}UfhsYrOpk`mPqZxYnqte#>yoAAI^j|^W(g^2ho$L8 z-gZqB>>x6$DPGtkAfc`?77$KqX*s@O56wpw9Pi>K6J7**if>5HPB=aBxv$Z&O=SXG z4e6Q%2Qx{YNb1^EW2%@%?l6_78C`U4<=G^P;f0&+mvGx_l6^umU>w z8t7R&=HhpEVcSNm@WGwf_sXKvK^%4ukp6Ey0~9TMf`yNifOB4LKPJ?B)E1o)~hX=vMyhsMm(-MLzKv!ux;+-=$mo!8wPEE?|;<}vMv z5&HkVL%3F435;l%z0~K6Fh3`AsRGbF_?pfqAD>~D93Q_krH~w6qlopq=hPEzc?HmM zbq@^3)EcBZvigngV*dj|2LkzKt$Kae#TVo6BlK~}N~TnaSLrY0Ab(AUrMlf)Zs-=? zeTYF1W3MT~*^3{I{UKTDk)~QbC3gj!aPUH%jt@5aKR9=)$CW_-c$vpTKQT>nc^t=6 zF8YxnXXMu1%CNQ!CS1MdTEFUqxj@%Bght;IoXPi!_L<)3Zx?RSW&2QxN_6@)u9cqc ztzL1uix$cn<*(q3!roCc^Xokxec}acw;@~$$QJ(Xsqx5B(`wiPju&uS;d&Bo71)r# z6nMX-6*C!PO8oMLV!N?L!o~o+iLh%5h4nWI{|%%TFm`OEVa_)^+yUXqMZBl#rIezd zJz8oGVX+ucvLh)Hr}N3sSkOfxAsWJZ9Ff=5rE8fSYhA}}I^!|-Iclunw&}7ZVBWhA z90Xx%8Bk*jysjZmI>G8()05e#& zwT;ftQWs?ZY`gG zfAR<4@A{BM(H#A~5Cw*Z?S!dmdyKyFS`IBG3^H8wtY3h46{$qeE;Fqy=Bu?nBJb`< zv=>K;UfpOS5w4xlQZnE25O)7=_UXbO8woeiJ^lT~a~{**X`;_ellW1B3p-Cv^n6}__{S@>0 zGX8j2%fk~#b-rY-z(PEs5Kenu^zbS8mc$P55+2TPTmxD~^)hSpWZf&V0(*v<=Kb_c zHozW{14Mm~KgyXM=Cz}ne1w*x0*YIT-rOEosPx2MMx`Uu!vpyYpu~(o8j~Qr7$Of# z?FFuE9d27qVA8aF4iV&GKy`K`5&3@yAo1AKGZq>9Jkpx;S5xPP+`$gAe8F?bo1LXk z6GbDr%UB-%EmVQu{Et?PiQCLKKu{9_fhV@OWvB&xT@bz&vl1IIFN1ZPu*i0xJaSN$L6n#%XyG z>^WiM&4nqRhS4T?|8&R*=u;|NyPXPiia8!Vh%GlI`w0(g{1)B zK^JqJXNgT{*E$>~oj9bDz*q`{z=LdwS%{QQ2rl7Sz1~Ij50#Cr1O#SJi$-lCJ1^du zkO%eT7NX(;BA%Q4+mW~`}y9+sZ zY9)OS$y%u&FovO`h-RBT7=_GOy}}YFcf-+&NjeCyA-ILl2uosccjU>4hUC-Lg&}mk z3@K&jz$Px%NSh?PrLC-;PTev%Pck`MOFg&+s#g&EE);>}qpIR#k3Z11^u^B`fe(=~ z3|@{u0nH8v!#7u$x(A z30Z^5cYiv-5HDFIv6dd`3Pu@YJGuqp+Y!ohGzX&D{y=LF*Hc7Eg^H@xuUOSUT(skpaQ=q*PWaf>|iqMm(dh!fkG=Yr`({Zov#B*H+J#UpA^V&~8UO8nK zDEyf|6^F0jCZtAlWIwOlvW3Yxk_c&H<2t48J<<vi8P8{xLKcYt0i7_sv1p zddX-_cq1&)F~c6w4ZcHP-+4ldnKftt^S{M)Q-?y=*fm&B8upy|$j&fQc-}qIEE;sz z4PNwakZ4Vdq3B_4hzO%!j?<3s;@KNnHSxH2X^(cWhk_W>bH@f zbbrDl#AVxJAb?4nj~4M^w!oH3xp4WC^SRFDb0sw3`^NDdkA$DfjI(>7)q@I`dT}!2 z;(N!Dvo1F$OJ3=8k4 zRA?C3xtB1NzM`VM&UAmhe84-BJqq#Bw7^D;ynapS>!yM-Z)G!s?p~vn>){oeb;hM6_@ICUh-4> zyw4tD-J5N}%7YA9`I7k4?NX}vD%|<0*13Zt@1K1+pn9j)(d>|KZT3VYE2t)K`qq2b z@c>)ENFz%1`h)xwt@lXB1Wx9ce|>ggA^&W=GbZ}5k6Pg^cimhXamu*SCSidua~I7# z6Xq&3gw7tI^wP{P8GhLj{9h4k;DkeN1`zPsc3sZi$j026QKF(W&M$5_`l2db4|E57 zGDz>I@We?L5R$_8We%vQK?IBb)&E6Si2AS`UppR@tU&4 zcg#fV(EFO0)YA~t-6pS8tJg0hh8RWCm2jumpS-1bZmQIiQr~tjPg#=80KMt*3nlgw zkL|shF4C&p57ehjFr~rQgL#7Kkj(qKd&nci#>34B?s zT>Z0Dg0TTJQeC(S*ch$D)%P-YHkEh>%|&=Djx7#XB#B6bdE<_ROP@D-Qp*KGQ*926 zFyg02M2_i&8fl#@&SZsI!Zg(g_5V2Yx>(5X?}C^vL~{#ygMEke)$#PO%i>Od@6dxw z{*_wnN@ea=B01>@&h>)SQP|7v5LC)=M+J!0=|bxL-s@Wy@D2MI52?8bu{E+C?SEs8 zNjsHt-i@*wY=f}w`bjJ4^sr#ugDmr5R%8-=x=Pi3P?sI2BLnYwCZ5Ky(3Gf&z#gCI z_$Z;cY`&+F`Fv|+U)BO5zR8karF_2Fci!#tcdgaZ+^;JtP~E~SQmo*2ZU=^RBt_%q zTE6x*{TBu3q0Vr#Ni8@a!gb&G2Xgdir9XO|1^cD(&h_SXHH}GXyiqz3s4#)RQv-p= zY|*^WkCDm@9`ccQJbvpR$+lg3OU<7MKpg*a z9xT?(+i3kQ)_ar~5RN}%I5otI_@SIu#vx8OJN&wdQ2lwIbq5_A#St4iQGxQ0 z{dI%8`~>g*7x(p`KKAJB6pf%uQ|}(LoR{BoJ4nJWRMWqWwSDyP22@~(j@&Zor}Eb3 z5)k^Rq&}mkTkEki!&O6V@$1BpEG??>=LHDk9NZQf3u%hJq}6$HRedrQNKz}Hx4Rzt zRwft(Qk>tLTiwtIzzew)fNz23x9E|sEzED|RLX)n`QGBwU+4*r6_O&15leMo7zSBc z9b1Yigw{V2Et%n;n)y{CHSVQ(bCI-4T5oNL0Y-7B+~u#UmzX|BOzR9uL-p{&E|oMlH(pB>m>6pd`r)!{ctPLJo~P zrAK4%M3SE^fIaHIJ@66kVfvI4nDioK^PJ5{&lpuau4W)QxWL}C!Tw{2dE2f}4en?4 zAM|ChJHSu#i~(>o$FYM8kD~c8cm)nE}DPI z4g~l`b1GVz0PKpL@&rZGlRINrsC4e zbe8%WTs`F-G4#P51cLjpHzzHAxlon#QkI!oT+?wSb2|$QSx>N%n<>ALyg|evPRRo^ z+KQD&F(}CC6hCryN}kjb5vnvQHB7T0Ebu`qIz0S+NTW7~u7(4z??rQc=k#q_H1n00 zMy3KT85t<7cgp%s1xJ%b?7(# zG*Jj>6~~gpZ*{)VubYx+M@*{4&VxNEj}tY-eR@N4^-OJ!36u^h&9{ccAFq-Ju5Z6{ znm$q+_YfNB#dcaYgr-%dv7hquOHSoiUI*mE7MHzX*9gC#S~nv8cr-kw{p{kfgwvgX z-k`YvWj=>;0|mGq?mLh6Q4tS|rdbmtYSEJ<`v0f#vF?x!i^QeK(%#Oz*acZkK%7`tFh zn>+G1My=1{gd^8*I<#S+uDF+FmksUy{7q0R*o@mtP#KZi5rq4i+sUb^=e|!xC)%w8 z)nC!Rbm}kc^+(9Xx0QdD5j>z;V2Kmi#BnRTw5N1kC(3 zQY8P8j{e%Vg*mwqcK>_!z`}pkY|E=YXV&7Fc3 zd7ksR?Q9gi2TTvDAh9tA03BazB2q{~{oyFwhGjQKZ>JC#9K# zoKfEP_`%}e_wg3=3jkEIW#24bQ+K{}EN$3s#agEh`mkxPza~$s64y4S3jvA1#)M|H zHfiW1=uee1s6r^z51lrTs4IN*J2y%NJ!ST^2=_0Os{P(08+`3Ri7{|5R~|*&*zKH+ zL}O-EM1BZS2?Z79Y}gwkv5EUo&N49!VW3*1!U8z*F%c4YH+5(Re^`5?yFO;Ml``@~ zqxBfh=72-R$PXoOmOBoQ5_-gLc_FMex||139gZwZ7OuVQ1Ky?sgkLD%;SWAJygd|U z9aY^S{{^UOUq3uE1vO2T)9~&!v>rFITxE#%Q2^^b+bPVa99z=_Nb2+et@o|<`f$M@ z&5n%4){z$b@e_9}Rq344x*{lezzTynZmBfyfW`UteXd!v5hOfN{@(pF0oV%f<(l`s zck4F7A%Abj7YQt;T_4jt)jfX}v7*;sVfi@U&w53OlWGOf@u10)SoZo*FnAB@ z1A~%hBxaI%G6P14;@(7RzeaY*ubFBVUMR!Cm?D-ucpw} z+ouz7S+ulDRP(xC)liy0)9a`V5^>mhUXq~yhKT+Hjj_Z}=t|Sb5bNxOY5RoC_zL>q z39-4d*~ zHI#B%X*YO4u$Kcp*rTAE4rz`0_~eDp@SvmHSI@arHHy2oDuBMNG+es_i5OMR@a;wx zLa(GVwTiH|`gZMhNh$ikg%-$i2l!oFi$Jx04{gf?c^i(|JEYlmIxe9 zIcmu2^6gz-lEdLZt?jZDfH-ZDkkfwcE+^^fmU9F$a1acTIQ2=cSs7Lzdyrjs!M}oT ze7Q=hi|JX!H!dIb_bfvb#4~kOUohoTlu{Kytm0^$BaR+wzVz1+g(sySps)siVKU_A zliC5^`K}mx(?{y?RD^Wth}B=@h(bY<1;b;5x?2_;WUvLSG=RsXRm3U39PY|8XGMXKZ-6={l<8DqF=J{(RRZF4)zQwnN)W`7P=w_c{c7AEzQ(+8i`a zLk;P~BG3^QE53_XuG=K~Qmdf^oB}}rcENpa_ z7p#OTxzfEz*s2xiZhDd}tp=Ah_&)yUC65}Nr@C!D!br;iRJ8FEHwL5J#8N*3AbiWW zx)jO=7bV~pqrSCZkhLcQ3)_oC0UVGvyI^tWhj;8Kc54LLXB&MQ2{}QfGLN9^<+|Af zQ={LC@e5??Z5THFW}rZVWkyk|Ghbb6ix{bpNogGp-9PYN(c$!GedyBtiHDItTz1dk zp53Ez9M}4gjzwvlBgg*)5hp$JX1*C4rFK-I2ysXhEn)Tb6FO{^k4BG>!9|Y771nPz z`l>EVRZwVcQ6Xz7A>8UY*GI0omc1^9_)`DNY|f?UfY_Yv)Oo-fU4HUiwzj;3z%5YN z9lwujO{x(yjfe-nCl@yn^Hk;eS6c@Yp6E1W{VzHopnl1y!E28?hyUH?w5s{R{t4+lA)6m3MQ;R+#Z5*RHjE;_lt^ ziMC}74Riy81WQ)(hBDQjxcfKE*Ht3uPb7$!>j$4-5v9T+spGafiGlijo$JQb^4s7g zcubWg4?A@(ipx<_qeMR~vWzX19Pbh%%L+6j6uJ|9^R^j!ANUZZZbbheYB5+ARe|nb z!IB$|hXw8^9ysr>&0hEy*%i!qx7J%v!r&9%-iwZGqO%%qT&$*>dZDhF2*Ixf;!MH< z;79fERI#_D0y>qVC9GsXn&#UE4YZ*4PSBZn5^`foX5hu*wX+VXcOg}S;MCV=dvigt zg)>X(Wl#s17+mM7ejIv0rL!*-qUbjj19MQRyxW(p61$|?Z5=)GxO{1W0cz0}s;};$ zk55~Wp&s7jR{+7@q!Jq%U|_YpC8u^X-)dM5YfprD3Zj&zfIXKs@@?6e0@Q3n%uE-Q zQHN|(EdZT^S_CkhLI4!qBeMppib~VZPhM>ip-4AtVs66ehzEw2g<;{psL8gxtPJFc zjVo#yYsf&#G7zvn<5QC()3{$$sGd^@jM5tUNn=nt@ox3nSL8kc78YmValS=U;9#ou z2Iq#fGGm~es3lB{U3aFD7r2G8VqobG1r!fu${ zTy*PoJ8OaVChC>mobVkf%!5C1O@()b3saY>LAG`eO+ebR6< z8c&mH-UOvYS7(hQh9THlp-7A795y|I=p2nZf&ZkBTqb33la>K(Yh`{I7Lv!YLn~`- zROhkpYHSK~Eu>m%HVN<6R3#5Is(*nJ#kz3o5&NQ~N?*F2KKmMM=5o0=sM+tu*((nX z(fMI>U6wSiS7{wXfmy#r%HMDPY{W}^>(Mc_9@}JgEO_t$Fl0vl_Bl z{sVa7mRi;j3I_}Nr??^-*!9H#3~#V1-x7v>IZh&LvI}iZ&Fu zmTG_`J;K`f5&|1b&p0qgpuE2UBxH(xqgQs+;>LjUDyv0ar;`xcHXd3W`CV~EJQdkd zR@ms+uux9huIWpW0M!Jc5hMB^0S3WLc7i;ajp557F>PYY3fo_|(T1Vsd_3$0AE-xH zwYkE}ZFclJwQTt~Bu)UaL5wc%I?aL)5=75vQiM6l>5-zuK+YZ`H)KNX{I-N>(7ucQ z@SCzO8U*L46YIFmMG;a8qa%Mk^XD|eY$*sLLzM%jJZx|KT~qA(cJtJ z#A|{5HA6Iphnna1HF ze0k{r!miINfexz9!mDbb-$-i{IM(Ae*4j{| z6=R97y1>gx33MCh4M+j&DCM!H%Io>}U1G|U{_lHRomPW9+_S?nM`!FIrvi{W4`m-l zc+Kdv0t$Ztm~uhSX<=Oh=ZggAC<< zF3?1U&-|p5 zV%m-5=bVsZdCD*5pMjW)lPE)1QD&{_+J1f0fZTt{zkQu+C>6MHed>*+;GMlyXVuzfXbNiRe5x4 z`OdizKqC2RT&!!ranV_$vyT=uY@s}2~!-hw_cJn|M+q>6Od zf-->>_Lr-CwyRUyh6!0gI1!!bub`y0_Z@vAb{+(7SmclCvyx2LjdfJy{)GIa6& z^+j+Umm|XDP@XO@M@yFemM>y8CvCvpN65gvkoRs-B4u>$Qskv@>nTs9IuOFAh{=n1 zO`1-R7y0W;00F&? zif8k06^PCQLM5>MF0~KO2o&<$U0XLTWq{E7HmHrpULk_HK&Px#%i{~SlZ+mVCWmn+ z!mx!`zMb}@5sp5x{sr#Wuo2CaXhFb8WInuRBg`1cUW(h&-b~D7#bFOks<{+;F+Byt z;{f~Iopvz8#n_xW$r9tN~belze^v`#~Y{FSM#|dhCS(EtwPSkAm!!o zoT#C;j-swBAt%gM1`2+Zh08kF;#mY8kvHavf3_0f2O@1uEI7e^m+2O3r zoS;*G%&FePX~fe_TVp&;{;cQGw7@aT2>v7i?>{O9!zMMNX6q^j?JtL<9D}1>bj=MtyrIj8poWMEi3T%WsxK4XVZw=9 zY8jLy7yPqxUlB+wG2X8ZIVXr_eN`RJlr$S0DIIccHSPp@5+CfAM;kEsfzVbss2kY~ z$cJ3!$?&ECgyOac-fSBrp$JlJN?_K%PBv%#g094MDNY`+=up@Q&%gKkFiweTt7&>- z>a-xf(vKS~u<>KBie8*`wJpcO^JwinGHo~NETGwrl7M~Oza9y!7}KDSK|4eQNQG+) zP-{oRIH+j^NnJP|Axxcpz=P*ZWs+<^u10zQNIJbaYUv@SdqAq$E6@ZxYR#nQfKiF6c=5%Y9uy4+zeXJ_$OIXUO~0eTP$X(%1opydm zrNOo+=R7kP6~*eHysrxc{;{lQYPEB#@rkuc*3zom{Sl0G?`D6O3!*#qAf<@(eY5bY zp`J1MU7-xitbiBpO$N^-Jn*5bfE(f7wjHis|6|%54rIBEy&vPlj}a%7mfxtTZAoW8 z-pLhN5n|8Zo#zX{{XAOup&%J)`?vZ5S69)V^+VvU=!~Zb-C#J*cw>7W;|oMya3-en z)C71p=6y}{)itTlc?WvCACsWt&WOhw=PceW2HK*)p&P8^R$yzH zTK9d~-N@+KSF`81P z5QDcJ9#4zS;h&CT)NoLbQj{E;_|n!N?l>@dK44X}!&F_DISq%r+<~iGv@V|&lnnkE zX<<7p2^slWGG-IpQnd}<`dhELgizc8j@lM|V!q=VyO%Lg17BIDOICa zuX?j{*&%9I5=NPUE)8t10q6j@)&=hDd9aL?g&sQ)OKqtxpsSRgvG~RB?2BQWwz94k z%>)5o&h>n9+#~mJ1pNk7&BlM)vej@~R~5$r(6*&t^W==^>M!@EO{}y*H+nuF7T&}z z*K03gRrTuYIN(tAS%3vCu32h^xykk6o0C&MCjA8diS8DrmoK^26pyviHUC1OT-<{bX`bL%^_r5_L&iDqOFf-B6%zw!0 zq#bUauUE*vxk~{|5w?;NP^Rlr_Vb7?b!+*GSizaRVlgcPBslOmTX5v(3Pe0hcl`nS z>sseI*X4S;7<`*(*768dNk50a#RMrYJ-r4MP~d|7O|m+vb-&SB??dnm@Ve8_w(5}6 zgQjwj=u;iviFQ(36`sy0A7@k-btGV!KhAkpLQj*Jm4zeDJO4QjhVliY$?RSjPgO4=z)R1TCkh15gojl@#*y#db&Ff2MlI5}lw%|}*IT|f z;MCfnUFlJxrU-{o7?USIra!XjV*914j~k_YJAz98JXQfDo2q7%4I6x`C+lS5Vo297DsoB6^-ik&~$hi^_kO787oigLB)IdMYzf`F+z#eQ`&ekWVXf zaTvs`K(AFt|LNR`ZW%wFV7bej8$p(`_BO7X>(x3!)rMf*m26BJ(m?H`z_HC#iy-Cq z*N2`OukUjYx6i6n^z-BC{952Ftk0}L=Bc!*=GVQFiy|+hjM&s_Z+Dr)eCHSNIBSDR zp}A24L%D2@XL$9!g@qEKimF&ZRp}IP-!KQKs!}V|uE7H(qxOd>OXz2eqBcy-AMUhB zKv2jBbh%=KEUY1qV(<)X0bh~S%D1@QhX_B$0ZQ18AGcOEMc@ME+v$I5;!>H-i0@R9 zb}Ch6|7h#`%Ajr&5pISAbX6Yqe0uc?osz}e%{7JNOUmSEQ$6>7ou)m3*&ijfY7oua~`ZEem3!pTRL zZcehBf{{8(^;J=Sbf)Z={(r({Zo-ZbLeH*Whz$ATSb#fuqI9Qs2iT0e!U;h|*~)A* zt%AAL9^sc7<>nj_`C4?_<0xOytmi;X<47S?!#o9sOJT8L8Cvs~AiI8FyhRc7Ad}e- z0uDXgB)741b2^EsSi zin0}EU`8zQ?8_%_*bZ;IRx?AG1czQVxACTVsw$GJXIaUz2aM-lUaQ=4eDkgKquIXR z3ZmDQvpei>WOxWx{gcFM|&t$Bby(4WHPCe>6(A@(c(Gj223$c!pV zPy&lQ>8-MLmicKIvB_3=AHE1Xmj%?QvLuS7J<=^1Tzsb2qh>cfYXnW^3&7XVJ?gO{ z((t-SRenLTr1TDOWC8!n*SY8u8=i7XNjwZa77n}jvMbGORM;nl_}yfZbwJ(m}K4Ri~8a3wPtn(~mSCu9~^h(b|J6f2 z2a!%eKkk0_{70^j=fn<@mX452(tJh+b%_r|*u~9CRICm(Z=+N@DrdlIqKlhmGWO`F;IJ5b!Oy5q7u#ncG4&ZHIrNC-o z5!i>~D+3txVZ*s`y&$cpFT!oeBoM)Uo)aN4v`47LfX$#(ZK9^BS=0}k(1^=9wTT$N zf{vPRX(b6!1E|%Ey-0E|Hs&*ozV7Y^ttGBqg;Mdoo3g0Z>W2^3C8jP7z-#NkbRXwQ z6axwHfztjiv0Y)CkfFWpc~e9m63rWqUrM@4zI%e%gk>qbJ0eCl0pI%jYwmh4*1eV8 zaa?DHp`yGD$-Z=2>2CHbr2kf&63!`y-uxMPmG1k!s!uf@$trlE!$O;hl^ zFav9+`f^5%A#NT_m;7}mH4robG`-gmsu(F^($TD_CuUjX$u+``brGGXo;{*)=K1*y zwVLHNByRcU*V3qX2{@;0Dxlr75LAy>`)Q_dm-E6*+U43;UY_2b-@9M4A&X_-6>QRH?}#y>Q_btejm%-YT51c-%8+u!*LzAX zPz%&dAFi*(@>mSKw#yl7%`~p0nyA>(7mP4+*$veZinSD^4uc9Jd zBV!k-Jg|c0neWd!{JE{40$Y|sC)t!($L2#p#}IkMxrL?*Hz_|p9o*!()C`wS*MPhA zHRbKQ+8cU{wUrAk-o7={!-kVR&%SJcS?NkUrzJu!Q@I-MqO}16$G4ach0ZEEMp7^~$q=~Da??ez)IKitcSqW-yZ>c-ktYz~GQ#${l%1juNkXBKbQH~g9zg}6uj(@;%d>G#E;>^*u|T2K{CiA zS(J2&@;VsXny3_kclB^9gQWfx(nYa_+k4mM(#>CvEL-MIGA6|D?6q)RPoDHL(s^c_ zI>4p_o;0M&sref1QO$@3v+327=UZ<{c(R~SCY81LMP3Le7Y6}{ z;l9X-$4@Z5b>(h7qeWk~-xPTXa!h&y6m@l-kuWqiiWdc#ATM_=jr*a0@g8+#$)wdj z>!$kZky+{L3wjONrY-OAB^}ee*ZSYSd4R<*j{DrXgVF1sRah%K)0tb|0zTb0nocnQ z#aBp)$!JMuLr9`jtHOH3o8e=I1*VUisAF%n-I$XC^EY+R_GBZ$U$AE+HgjK|h_9fy z6`|dfs@alzUh#`~;|{==y=Xn56rT9JGxt|9XjjFyYfPb(+OUTN>#|{jdk+3t8&`=D zE6obg^jf8|TstmU zPi`6K+aY2Q{fUZoV9+Bs?7od#IBMyabld-E4{>EQz8>iijOX+Q6KTe1N(?NQI@bO9 zIzsg-O#UPei0 znAaiFB)SthQTT$Q%^bQTmE^{;q|4oy$zu&|abNn@<<@4G$IMu&j)5T-T$Fxtj*Dj( z#ru&;r;LZ2pEc#K>V82^Ut3J`nE1~MP8_Z%wk(yJ0GWcf z$RBB~BiaOtKwXI}!6tsr84Pr>>(m<~JPbp_%0#HkTtdgAX2_nU-GEk)XjYp-&;M^? zi~`;`hKek|@WxZ2NnQDoOfa9hDHyFJq)dzf)ZrPZP$JkWZCy{3Rzg^It^A=}T zaE*aWnqV8biIhi^j!>652SR*9m&H|0=AkTrb)#<1gS|hjr34@YSR2q; z0S)x_awKX6utwzD9sVf)v>rs=I!ouUmI_>pey)$;aD2W=L%&){^i##L;z!0~5ThBg zU&h-8bEuIk7ZsIclHK%VIL2naReYVKKB`TfkEXBoVV1?6+|e<$x`JP(y`DDqZvfgM ztn7fz|CZZXvinL0pfcb(oG0)~KbP&MhM}(w*R~gb%6_;&D{@Vu3d`D8dP#za^VWh# z@dd?1pk9Dbrs6x%BE1SbA*+JZaRn z2?eauzfA~&1J{xhX0vmKR7+^PTZCerFvaa~^N*WrtKvS$l!VFp3%Bl?C-nzmGCGn) zd(8^{0|E7yclmBQr&)|gwd~lPX)xG)7Bo=Mjx;|8A3R06#;s`+1Ii2B=%vcPy=){l z1@LPyefl(xoTOsAap1EOEF$~=StdzwwTp?#6T_B=AH{c4VSK=bZwv$-B z4_Ka@GRFS)}#OLNM%j7ruh>o&7on4^B9%|C8n#9;VisLL>Q0r*p zCF|%ND^l$E_Tvr2zj-~$k=#g1WO*)PzH6aES9j9Ey^j-?snqvnz_5J~gmgT%XwZGY zSfg6Y;(FGO(+_P54B^?=UhH=C7e!;R1OU4$TkPAi*nr_4KuxONU_HJ_YG`rr^W4N;uEN6A$E!7)mMpr5l}d#NQ6{<_#3Ia9H6J zg=)O5ef3FG6&5}!R7zSiH3DW!x77l5_`sdFf>S_nRNHC3mg;zbduQr}Dl9niTwER zU@YF8RgNquE*S!k0}k9=oFyy1D$Oi++rs9oXuI7uxyVao66ED`Lpdc_qSJ|X113zi z!9*$D<35}>6g)cWkQPZNlgE6YOo)n9k-*JP1#J&7^5lREX8R%Nf|Kk?e`tx#-^*(| zN4&)1g*6kwJ@=yGRFlnhMlF3H2lOSbIsW+FK^ZUK-2LKz{*6o!nAbCAn>Ia{e2@87oH|$Pb*0oneRgdc~8DLO82;h#G`_ zmD`0+d@bZ0Y3>y-akO>j*r@%h8z7VjiaT$B%s1ktRHB@`P_1J~xYHc+C##A!eCqyb zr8u{X{t+75oMBiVDJh`QgPEf}I^R(ZnY7no|7RN5yAlDC>_-|NK`DV|;@tQ2`xRRo z5j7$3e4#>8S$+eY(tQfx0lS&An^pczFLg^#_eRyfRmE9YU0anv);?j( zunphC@ssZI@9l4X=mG>hnXBgx8{3n$fRO01J!$nJBRL-);n)MkAY(Pkg)vM44W+j| zSw?dt@KQxF7nfh^5x<91>wR(gd{A4M6~RmaIpS-0aoUh;ovd1PU|E0f#06WXga6h9 z5Y^dr#Y$=rrX)8}qT6O15pi%lKQZmo8nI1 zf|COk6%pKBgBDUI8JEMu*t9PSH7ry?qv1+pd=Rw%p?Zjm#vdeqH**&Ts2E3BWlVkp zVbJOu&x_H<4PHZSbQ;a`so#I!e4;WUpiOZdc51ezy4%acmpFEwgR zO8DcfS?X%G(C$lh&pz@h0AS@}*}}KWV1ePv|D^3nTwp)uJ|e|BiBjB)Xz7bE(h8F} zz#-__+!4Q2S4GIZo7q6WvYAY`X_Rmy&-Z+XZ9>l%*V_t_`fl9Rp|C=U^uf2j8@Vr z9!Eon@UK*=2HCSe0W9@*UFbyy;(Ez57U<`HM4HS|Y>D!5M}K3Vpi*M`vOYqECJ!0^ z7&BQ<_@A94eXUPMjRR^*hHTnlh^4OkrH1*E?y+krPOX8$FEXP*fmDL5QO34NZ7F3O z#tSHAhzj{2G}&1(gdS7Iv7qN_+@JA0Cri4~cX9aRDvI#EMx!Q05hAXafmYj}Z?ejY z0Oe(yO#xK_)1R&XoAPHf5faKh>w0#_8Q>uzR%*h$~*(#oYA6 zx6r5?5$s&9dSw?3D;8h$I4T;)NCt7=R6rdSl~y!`<&w!CXd;k52^2{cXUY;@baXmo>)09Vjf(NGVqEA<@@e`t~g1gCK(wwCaDUVkHyxM1M zimNOR*fTWAc7uk((ZDpzK4u1YJ3rN2r601|TMOi54!}npG@K>#<~qVUYB+Jc$t{oH zvVEx!%?eh913MlVvRM@5B0}aQsnWn=(eEex@HML(DXCG~d2FgpNSH$ZUEhbjz&f z_U=Mx1?lgos|8l40|fstgNt@OgyM8^I3d`0mcDr;4uFZ@D zIA1WKXVfh}iQ*HLou*hLv^rBDRRd~{PY;); z<+L($$8fWx)ZT4$=oyW@UFiwYuN6=cP)f`C5oM%?9ksRR%<0I z>MDY}dZSk+*@3;P=VT3qp|5)k;g=LQr6D;H>-)`zwaVw4&Qq$M5>V1Nh)yUiovft;Y7$8@O&*$$vn3-4M|HZvO70t zz_&*IRUiNl%3(S)sY&<4Ivh_ncN=;S{S1Kpy@6ajNY;?bWRd&M;(FT82E^X~ar1+3 zM6uGVW|+F*hb;CdxRgZWHsT^9p7HWf8#XI9Y$wPHX$`!n(2z%8@f_GyAceg}FF`?q zLA7REzOOCGZjB(^k#KyElU@ z{1;cvY##`*@w2;D1;K@h-wB~RJXZ#l(fD13uEnk$OZ9@HU81V*534`t-ieoHG7#oj z3tR|P?Lt@(Zj?zo8vp%``vyDmAZ9ef+3K<4&R4!0Wr>4n25r$9!93jPQRIgXiaTz$ z4dC#WsZ$w4R;RwjT1|x@$+4TxzTTlc@COMO?i1;49ZAHvc%CXIvzn#ITr24Dl9F8{ z7w?RjW*|P4-L)uKH%ny)FT9V&%T&*2%!R(fVt6^9PK6=zTa%3>X`Er;C(i|fdS66K zyUbfZ==C1#>8z$*g8|{Y=_F^Si*qy2o|_N$*%>V%YXxd95tg?bmr%zE(l9bdHR&Co z3y#t(hI;Gdug{K!SWJH2Gom+wYd!C~EwBz>0IS`F_i@&AIzFNp@5F12Z{kw$#B?e45B6VXg6$SJj6(5!P=vW@-r|%~nIprB0LJaJp zTri?nGKB}ac}`(9%QraC?UMn+BWE~4zJA4c#A_fh+O^tp*oGGo95ze6l|SclBJU;1 zO9W}7_TuO`y@8J|O}JD1YukI-8|rNSK$wYeS=&gaYpC47SnY2a!(#`|ck9k7!@$&u zx4?nfvQr5jF)$loKi81l^!01ba@l(&Dx)5TapQJZLk5F$hCR7^bgI(flcd<@o&Cn! zO3K}}4VF#gC?$;$@JwOAHJl-tUf<_8{uf^YRPGhmv}{nrMLz1ip6q2Nf6_c-QtMP1 z2fZ(^%En#LS+jKF$WyOoeIQd^$<0fH_=s1ct;6D$JEP@WPc2g#!EKsSg0e4Yu!Y`* z`?rxpen2gcv+g|+EAeLnfQo*kIUc=jL8mLqlO$V@Kr#CyM?8}fs+Z?csE+`{!=to& z+!Z(Jj|+quHo^jTjB+zvFDSvgX^*wDYxC9&h$srfmqu~@b??E-U3JI)CL~^1UKo-ywDP!Wo8XnM-lM?eL-5_Jfo^0A+k&;vvM|K zTBSAZzA=W)8i=LUdBsENA=)mKXW?QgL(P0{I_@|sL0X8}!)wOmHPlDmNoMtmE0wpxV=EFFb}Z{%5B-)8`pEzp`}-Ym6KnP@+${68Co9z{-A zoZHc)BnTupl<^SN@4j%+q!e06%N?HhvUULzHe()IeWsnYwJ!2nj5=|&D9o6P?`AgL zY+Q$GX!kBmWYz)$tH<>Z$Wwd_<88QW-fia#+ZBt_f{&Fn(EuPQiXUTo5H7cEjI8ju z4elvBz87*U&z{F6nqFbZLUjRZD4vMhd4c+;A>i$EXW{5A@fQwJWX@2Mbb-)J#uMdK z3ruG#Wm~Gf^B2v2dF70G!+{UYtD7ol4vBFfH->^w`nxLPRMNSPLb{dCh2qy^=^B#x z`o8{moMr~%4eL@IV`S*pZamB8IuZBDA-@8bu=ZyQm`3LkXj;aPYAlUQi=lFl{gSIP zK4wf&#-s(ev@T<<#Duq7^4c%OCn;}tWgD1J*X8VdI6qw6`dtQZ>MB@2U@^s3bajeK zM1U9_aM8vbuWSxjD@?7c{elup)dx(pEcT|2^43nNcd$ zO80Gk5jgRYW3_hAbUX1?abO~G)`hx_w?4u!h!X0gJ~i>7_K8EE8kbgKJtmFT^_(H0 z0Yd3BasXlj8mR1ru)_?XO7fx+*_tLi0D1V2nun~IG==RlWL42^?ckHwYK~uVa!@Ne zLt24SJ&%VfX+5`8GZh#<4&ACjZE*DRA>R({Xq#nziiyp)FpVbQYzfYsI8boH@-Qrz zgwq~)jyi)UDmIhP0+j~XM!j!TO!6aCa|^4c>z+USfBBzRuN;eSd}_(bsAr?C$hM{e zw@|e}^wq~2>^w0rWO?315Y3kGjQ;%?HLfkeu-|xq;cIC7+>)=mYz2@oEF`mb@5*67 zZGws8-SUHS4_V7%b#B?D@v7!AaXE540sV+{yzV)9GS3b>=Cs+gnY5A$VNi@i zEkSFdZ+}tYuN7D$!(3N6dnZA`Ks+tr>_+`RHz0^~*KFudkmQTkKRuITeclweuJ9w) zi5KT+6KcSEERTz9y0Np;P=Zb`!6r#+7wYS1csJHQQUfvJN1h_-Ly|d4Cp?yV*oe7g z0-yOD%=Id%aSVEO$XelK-D|=BGC&0@>xh|72%8o*a*C$j2H=HT9BT~=HQt;QEP6UQ z?4$jPhd2xoQWHXjG1E)DNmZ$We;)~iS`o>wy!?8AUYp%A%M_nAR7e*iwCo-o*M!T> z#6iqEhu=S7=b?nR?3%^Qy^zK3bYZ9pQjzK8PW+;}U+OO@xTAgjgqHbOA1>Z!x6_0E zwR&5Q&-ge$(K)RC>2jEs8vpl`%vdz$9`kIc_N%c_#sdN8DV}vUe!HGL6ol*0qB~F! zt2MNTD}aciC&1W1`Fu=@**uW*gegh|drXeKP#l%n6(d6*ph8UNb64hcLv+5k{`v$I zf0oN2KkgvC)CZw_-=Wr!H&iLd%@xu<)}LbV09)wKg&NcjtUbW}-5WX}ulS{zCm)IA z{Cw?Y8_57E195!=DYrvS?9DFe#FK2*`bHn;WgoRV3@fGXeUKwqNk&+i)yhDG*`vJ-<{_vS z&`yoCQJkBm;HYD{{t~qtfjP}xhkl4UA`YC|K**L*?_Zr$N|2GQS}0&X+(z$lqIDsN zu(j@Vn8%RVn5kkeH7(bjc5iUvM%6Q)F+XZo=iK|8;<$yT?Pp|-aCjNMNhF3?e^{b? z3dkICsJm>;s{U6hbVXU(rBJDsnVgT`joCEDthU>SfTcb0@M1C$#x0Uqxsh`o;0%o1 zysEiAqQ(^{tb zLk2Vetx@>JRJ1pCo2boPZP76b|631$%~!HVG5goDOVrrT#C0zTL#bPFi!gPgYGwTL z{=*Q8Jhc*3yi#`Pwp+vjnAAL2)HI14*RYDjhZ~qsh*#V4pKhsmbIFZn!@1-Gl5v}8 zf=^hf!;#j&FJy?chBnrYfu)duBMh0^I;{DP8=9H>8!kITa3m##`keKtwjuw)as4wDwug-VzJ96bcip6t7a&f-pKU+w(ib3wG zm|^2;QpTg*jhnsI{@CF98hxgAV%k3WpDLvnM2uCr(PH*}vsv%GzSQ=;CDW^)yr!jQ zC9)l{8~n(QHG!|5g?T`p?thCyOJ|MId^>;-aD7$UbT>zxofht=F|XY#D>hf<&X?9I zKXgl)z?Zw*!W(HyZ`l7ls#!)l`;#ZRu3cBj7S2tLxJPvVTAsi!DickfNH>PCa!ai5 zxtlZI+D{j&Qv79{>=^$Wu54Mtat@t3?P=M=e9vJU$%Yu~>VdNekKAL8{p4`L3rXW@ zY_1QKL?m4arXwtGhpTNTB}19+o7;ao&R5c`W>jnT1y0aR285&xH-icNSEol8vmjKr z_@sD>>Z=JL_pKoy6SD`&J7$kl0K-G+XN!H>Z8MKt-BD18^@di63U)S-tP1t+=TsRa zwj~#h!K8?;WF(cRH8hNU+-0&8+PPV6LhnQqa}c~P4;@HHne`X3yhM-l1=n2O@d#jW zuQNPkk#6|iv5-Zx#Z+7KJ$kv0(as1ilo2S4;Rb%ZAr_=Entyf;4aToJ0W4g?1Qo$f zxg2I&e70=qS02JB$5@8T&`JI^1Yyk9RDSdfsjfTj$LvTYh2etW(o=qIm2lDqp_6U$j8w_4OrJ>;JI*xFPBLC zM&OK|QT=})a9nt4}^YP=HlXI3A4KEkS0bxS3$=C_j6 z>sl*#zUu@6_c@CRwfu;!?g^`9H z$5|XTP^nbRWA`vvF4y0v|LbK!r5ztp-JiQ(lwLW7V?tHt?H?u_p(EO=k#v7;4fOW% zKP3zyroxwI>ucTN_nebycV~a4lzUtva86Mfw$r86*$3p!Jx~-@l9mRDQ{1lcXg1{C z7OYAt%R#kR)g-pT*AOq|X!{?tEr0rKkUKMAjcwm~)Lwv6w=bhS)|7`3V%E|PYB>9%Og+g=P*>(tH)U-pXK zs~P`ZF?jLzYY}9RaXW|4R6$u68T;mTt5BJb4A*3&@vAat3>z1kgSz5PiQ&ZmyrafXep)A!{ z;5l`4zN=SfnM*p8wKLCwmwB-0RGTl8m1K4Z4QgWh+q4!xKO!o~^l&g?>aB~33aFL9 z-`QIt+&A84E@84vLVB;)m?^PEA#3Jo;5BOf)RaM6N_$Bjj-mxs=l3J-!qdU!a;b%= z7pjDd-k$+O&V<(gNVAa3K3$f`%T>8#!*!<5fj*kr%r2AsAUW2oHTjHv-eRd+fQ^%- zI_mfU|Nm%2ei~ITR!WdO0VZCzVk--(2LO;^0Qh)e00Nj;PVN*rSwfv|+G)TRhLl=M@ee4l^}s>)*dhBQDZw_W9;(lGCY(ASXiR-4}I>{<+Ge(X(pn!yIa zLucxd))Mij!Gs zbemu-$LKEca30 z!NVzxDE%ywd&MgZL4SfP({#II_b&o}D4Uj!L*^$%3Vd!tGW6lO*->CS-IB;n!h6!g+{VvSQ`SF)Eyq3T+g3_|l_oCB=N?k`{42PhLJ`EG`Jq7_<~ zFf9Z_+Kg^&qd-1xH;p7r47>nrACP$6)hJXXtR@THp$>oX)rQ>aXau^Jk3AgK78&Hn zlB6KO;J5?Owt*^6zyY42LwqL-Vo6h2X!*ZYDVU{-#y*&zJ(Jwh0pw9Mb5$xP3^HuN z|Kkh>S#=)8NDw7%N?%ILaDTeWlU-AaAEFHZXJUjnn=tkiuUeoW7_xSR1x%%3BoDX zf(UdIJwdBG8^d*v%>Zehw#_SQV^>3s(Yx)r+|!Ar3eXhwh>yVY;H>Zbgc$t5q~oNw zJ-)&mgxE#LB*Y45npgCf`fPQ9NW%_Owr@q88@4N~ekR>SIj~)!49eCGM9pVj_S;GD z{O!cFbmWYg)|QEYSXa9Sh@WHVu9M}Pp$9JA73Y@B4E9Z_Q($iK_0?Ito|~4Oc;EtR z(i5cq@!qhm6B+h4r%wDu5xgm-aZ-(jUc~7?X!;59xA11^R7DkQc`6NyAlXs5FZZEA zHE2q6izUj@$AnHQgtwJ`rzm0E-P?G!t1DwlkX8k0B`&Rausj`?u>^+*MC3{_O$6@1Y z9$aSL?KnGzpWIOotti_X;7v)B4J*ltbf`#JO$G(G;tVuSiDbrcE*`~#!7>d3KOE5?k+v)W9=L zg<0YY17{Z}Ghy>)PpmhhrF^iPZqwgVn*p1~>%t0?or2KR`uSHy8~VV8;Ll&vg1;(L zl_C3}7f%cSZ3k@CXN;AIOdZ z)r5Hjr{s4Q5Z5jNY^(3|+Wd|%_|(nhrHQ!dJ?K>L0tje(3g)U6 zYXie{P##72%jWt&SZWFRLE>E1=dRbK9b5Q;`7`}qyW_GRfBnnj)d?k=Ev>><{^s+x zES-%Sv$k-aVkK58WQhr)`Y9jrtdy-M{z(zEzX&Nnj>?l*=@^H=egyFaJP^TE?wJ@y zl*&D>m=~>zzM>@MvYlGfyE7!EMIqKg1$}@Wv=HV2W`qxgHMbP==bzau)ekL}rOUJNo)dJ7_`DA~S>z zD3euLu?Si|%;cH-{DXUvV|$MVU0u^sY11aQGZ0odx+j@r;I~D^kR|ae_MU};0!D=` zr@Ya0AD%*u3`D4d^2vAz)3pQYWaK>|p4wF?BNQ&`;mV$2SmQ*?-WQeK!reGiOyKEq ze>N+%d}6z`mF1k=8`!xNs#qlAxI^HM7(;^^sHfy~1Gn90oXKnaef~<2H)mW9ZmVG? z?WJDy(VS~TWAE0}L4k!NMYN$%(5&02_X*aS$E_U&PmU)0*E_lu=SzEC{UYx@EHTT@ zcX2*PhPoZ6`ey^b$(1nWF;v%^#pYsD5e>dNL&O6;<~0EVjtVP@k@x2m>zI-26}oiN;La@)AR_Tca}-84X)Pd~N_0CF8L{&>}C zZ?y~cf`?LF>L6O>vy*?^Oo|y=qzU@-yU#d&54$oZ{X(2m zyPXnD3tSW?F(pIe(D4?&(yGE|glx4;Pvk(s-YRcT#fgHxl^rtt3#q=0*thm7y+%M= zfG48(zJQ^gQFIJAzA}4oVkt1%^PB{cpWs33%B6D<4@%FL5rK(;{rSXLy|C{o!g;-@ zk-g`cS;3wY@8oW0^pkt1V4d|s-wTpy8elym?ACCO^cXF63LxLN^91JbFWnSf=dmv@{03B~;{mJ(btAyV90XEKJ1a#sLmGsQG6=n61Tif z4ckE-UUzHM$Y$0gQ(B&Vu>raT57xWg3e#tM&r@p zffl2-rLTK`9QGvHj=5$k0v>h(t_Yf724{YqLi(Y;iR{9g@w8bSl1dp#y<58Do`}A` z6MfatCk*yofC6Qx!SVBi|EA7%#|5GEj zyY*Ay9zPd1Y7GW872=9p4l2%5yb%oWOsd60EV>>i`T90z+TVIrIflrY+Ex-#FQ5IATgg6%V(xnV&5faetX{}Y~6u0J2S>PuX@&mxZb~m8c^&+~WH9SK%&()_eB!_W7B4@pxU&3Jta8HH4U3)hpxN^pK%kex|awE#=0{!0QqpLuMZ* zw%1*+#TVaIEO86Z-Z=6d6S+Pw6R%ahu6H}xV#Ess>MiTG$qew)Te2;w8XC4FKd%8X zNXk^vr9%PoZCH*&ms-A<*nq1l{1 z1}C7c84XgZoESF|9kkFIO&XnHD~ntAD{jj#)VFQfO%?OO(XE^sLy+7_s0uD5Nh0Rg z&yOL3)x)y*?gFNx<8^tiyL+MW_LS-o8wH;HNe&XDfy5!#FEn3h7zM#58~9J|9KS_S z!QALbRpF$B`hKEe9bunFdA-4WV zbI`;D&FR=fnkC9cSsCOGvk{E~axh;xG<$t%QzM99SitmHyojd&dZn9Av=I~nV~BzR zTv{JGFGEhehc5o2HE9iB&16C9v?=kEMG-UVJkxf7S3jr2jBkcb3$L;kccJl|p*A~< zgL!J+lgV9;pVF4@0c3xYP)kOT)_stXqn{(tDO>5u9ZrRcx|kuRP`?p{X%zETUZ-;- zlllQMrW-g&l_KBNvfr0!x2N?g+z>>C63VESh9tIuH+v!Gjhrzk|m zZ1(F)KIld)-bCGMT6c@*$)T7if`u%SJ@EvE&}V7F&|x9?P)+>zs>wpFF*&YTgPYP? z-BL!YB%%-PzEo@{EkzDfSKXfpBzD8M<@n6(q|~G5>#qk@3=X{feng`M)*T9CE8Y23 zzP;lN)cWuqb7Y1=!8X)cwUrJA7xwxaC9{fdpMMwYe2DtMZYEnBpS8-na}LP|{b|tM z$1ofz07pQ$zm?`R_EGe)OFU*xR6^ZAV#ct}qn>zdW(NgU*Es>>wdhEOK~K4H%lR2( zvySpWoQ(@lk-cL7Vsl6Q??UH@jdUbun~!vRX#0BVyvRAOAo3irWrOaIQaVpQXp(|) zhl!`%^T%&43N<2d&lYC_6KoB@(S56VT~I0uP)mWCo%9;=UeJ=)`Tyh+$@N5d+5#dN z*&nCK0;o@6u#{QIZ94JWsrSFPbIceB#@mMw$(M=r5u!8g=Qbm7u~y24r{xl5c~QKl ztV8?r&YdiTEZWx@?|85!h62vbZKyQRyqJT*I2y<3DBUer`r1NuzKr_h!Nx(*QU|$l zCLuDgDX_c(6{mV{Ukpo#{ej*cNfA7Fl^RYMcQcl^T0I8vei6afP&Axq{6;rL7vqPD zrauTkk)OhAp(q9B=&Md05a0O!w}t{&`7A4$>Qb z4{uLHVgPSW$Gi!1Opr(iP@?nn^{ZHmRmuEI#SE{1)~X!sIsmg{c}IG;CNoD+FR6P> z+JlpSPQ$Tqb+tYt2mYOX;(*s9Hg_#jcg0FslOkksJ==GnMv1$8`I@J1kJhWK`QD(d7F_GHaj4l|;&1bq}SlBpIO`Nm~ zJHc`?ys_)&J#}S`)W2y)%)#B70a0nycDgG1)UYfRu9W)g^j8H|pvlECvBZ}ENDKbp zAuA)JfrOpPG_Z%~J-O5yG*}GQ3LuWPz;?9V3^Eov)C3;0xGxDn1&i_4X>nP4?2?z@ zBI9Q=k#G)&{=m&SD^~R!TQ#%EHMtOCuu|{{Lj14&Hk?Y~))@w?eUF}4?XYA3tGo1C zAgRnD6t31@Qw=W9{&ntsRdweIg&y8IDAUOHxv$;AUfZrcDji-Pb0c&}S~b<%Mrn6y ztOyh`#MDRO**PPFLP^?SjTY^bmX_AWWlsP~p&@opokaIU?si8B_%aMub0ks8@${)ssN5UMT=4=CIgZDL2jHyoQK<4zcc> ze_Vtp+UooOqUS#{8|Yw(oTZ6ds@E3QzHW2KU)SI+FVP0#b;@h&1WKBXHyq541pL4) zR2q$Y2BdD28n^2(a{6wBM|Rs!_d~ABqJ)l-PZwta zHFz^CGz;{xtEI#B%^}GO0Q2Z;9aqcS(;l!-*7H}qg?*35x4n>JS`CyAJ0^7=nO@j83qQ9-o?!=cV%odO z7^cyqVZ|2pyoi|mJbb_P3#Ln1EHFIjcnu~tp0=9+G>ZjQQ|Wy@-w^j*$9;AqO%|~x z1`UP!x*$vX7^G>(djutyC6Y)Gzw4EV$D9moy{V5btr7{u-Yy;|u>E7kq1O%0bR^%W z8hv&tO%K-3W(C_4fIz^Q7c$#;?qU~3ZU1JI!j?6(XdC{H z7Z4GKUn($&M+d3)s<|kyOo60E_SxyY2C+43zIcT60Cb z^7b{ak&yl^K}1l(RF=4jvtAzL3J#})L-Et1hz;a3*|$bZwOX;K6yv@W*v_(I`a*(O z!6b$_wtc{7Da{3(;^!y+2xaASyM9j#JuTY@g2meEMc>C9L#pGmhY))j{FtZgV@nQ8 zFOKyQWGKbMM5P4D+R)uj(?sEO;Mq=;f7fa*X&iL{0`H>S=8*{sA{goM>*w;aokg$U zlXO}zRT=k_%{z(F;(lYkw5;8E+$A{R-ewT=wJm6O2?3OiYpH6)y_T=-w8Br9@8Wb1 zs9&?5YVT;IJ`0<;oUON23EO?{nU5Lr?c(c;bib^A8B7dP*uKHUg^1}?$9hAaKYh}r zSpL$2ts#vG-B=?~cN@S*Xn`(6PmDq<#e6Ml=?^Tin<$FUXrO7{K&MNgE>I%YWkO23 z;((LNhK?h1?z`2k&UP%cSQxxx-+IECUWa72G;*lBGj`28*|z0CUE?l$1vJ(i75&Ym}q#Pvk200C^+`g>*xPURG6l-Iic#ND)~YGWqYsUF@qs`>fHq0188x zcAn?UPC;EptAmcV?}|LRGIYK&8SmG)HYBn|_zE*=PC<=vXmG5y+VT-@i&GvIm*c+3 zOz$9tU8;2cN85N=hp@cc0gA*&w~6wt#AoYbz?g+oOnhx$)F{kgzfvUBj*)RXsr#r~ z0Kip^8H||V6c-MaDv#^7_B0TeqJ_{6vs9D#;iNVtxjC6t=8Xcwqd*Z^QXnmY=U0QR zTfvbr*w9c|czy0cP!KmsV+8hOuO8%$D8YD9+GkOVby#eC%!dAbp32A`aY`N*G6KCP zFu&XdDyA(aX0s8i5z0~IZHrXOnt!9v^!r#i$`%<##NZYbAA_46K6e5XE`wrm!d|j| z!N(aNw%9J^D|qw-WQ(t=)3;zA6Cg<$JE#|wrM3BKFx${Xt=$qjrgCUgDVEJsB`_O5 zsOIGBFclbWVJE^**fykLLDBOSzvl5{iy4aElmTCilZZmG#*JbO9=(Yq#6FLK*v|!*4AlILQ$-I zi2A9l@xYPT~hFU!uALq+rXOEubr6rU7hD@9^Er!Sd+YI!) z{`L+=WmE_iI{yD#wFgGky&)ALX6&X~hV;qP_?*NND!B0_3HS<+KbP|L6A09poV)8! zng@WWBQp!J3ZPPCy6$l%$2CVshw8|s)2yh36U*^vV7%z7smAo2FEtQP+%vBU8u~|z z@OW^z0Z(E0l&c>mUCuIF*J1KLiomVG_kaOwp++elUUBwRhUB%dp+S^QW}Q!OO%+1U zK;QRnUUS6=S+w}hAJ2qf6jYvsVw^ae_^PmtZ|p#mQ<-Z0Lp~;&x9gA)O`sPE=#?v{ z!AKfR1?e#My@7sk%g<)#Qsb=qVZ6Ma3`}@hsjK7*gY89L8=+GYv1X_zAt-uayZP#N zUy@@W@{-Ov2U6sTrc14vEh#wXox@T0RQ<_Uj}xF~Ik)q@%oz=u83qidT-%Rmj9@DV zkX!D=M1$-rc?*#LiB@7(5Oz{EmM}cmJ*(wiSEDy;PM7MFt2S<NdwvZOEoPy3KPpXDfI2h|dl8Hkom(%RLPzf- zHwua+`Cl&j%nvPphq8W{Rn#tP#}Zb&nXm#*#j{5f{M;mQ^Upg{JRi$2*sG+hkW(hM zOvoEZv4F6WLQAbZx&02cqUYfH?Lt?qKuO>fu2Z`vE0sS2hwcVhtQm3f5CfL+uRyxH z?%RiJ+`XaSwPyvv3{mfLWopsotxHL$No+f#H+Xxr&?=MIpwmH_dRpuYewi0`iODQG zK94k1G6g*9m*09+8xx=~Jf%SPp2miGD{;Y@RwPUH4?*H%n-18c?#r-sXPssZc{u?S z0tW5>q*|$j@~32zNi)ASS=Sk==nK#}OvK+0t9~9%qA}SGmqn$rp~M5WI6jeq z8y$QI{)c+UWa>pLCeu0%)GlEM?YuPM&T@^vD(r$kt6C0j&x(lRON2daJ}&nW)ckG< zmN%+Hnp#7j`H;4fHIH2tw==i?)Pq7dkEzLF+RkjK2dstSJ7sIUnW9L6J7szL!0LZr zXjc!?e2hj3+@5S95C>2N`CnppP(wJb*O&sLCAh8s#S5J&*G6d;k1NY@Ttd!G0I+@| zm9eP*CUcv*%+bc36Wp5Ghl<~Nx20np5>_#y)C8We?Xn6>{O5xCFy9$b)ER*Cue5=m ztlt!6qE;m;OqPk%D+19kwzwWjjEL%NsPm0!z&;!zkGJvTKu;Wj;)4cQ%JO}4QnL}e!Yu$o2vBl0k8&UR(r11Rkyd3 zg_bJ~vRH1!4vd>$=jf--Fc6`%^Eps6zo9flI=VS`!E9_=BqQ?O5$MK;3QKru7GL52 zE<&<-eqJlia+D>@u$ULmd-g^N0bziv&pH$8BZ*@7l}(9AssaOt!~)|bw6$CA4rM(H z1FA{6y_oNMzRTEQUhM@Mls@l+J2Z2Sknby!Pe^wCU5WedTv-n#9fG#aV109Z{ZC?; z6ck0OlbBUm6!agF4;`!{!6lo&Mno>~y~WDPsj;3BQ8K6Kct@LNrK^{tO!3Zf)MqX~ z<(%>74MUGht4D9c3BjiphQ4W=js?sh#pf=KoBC<}BbZ#Lgb}E}rma6dSR4c^F{@lf zrz61ih$Fi0LpGQIM?{GBRghk1)vaI%Y!at^*YT3h8eV*E7Br`pRQXLN2mvJR334viI&*$v32{(-fOGwXy$1CMQI@$m&pzQKj}s3ix6zGI~W{ zg9W1~>ZrOL-s?u&j#XL7k-AyGG7XC+6k^Z{cWlt}iIy3b(R4gO6$0Kr(Q{>qlM$|x z`aH1q%}MIWosSWL%zHGr+jx@?n~%UrTp51r3;g~b(NkBpIpFP>!Py4&eqKUs`dWup+Fe=KPUt2R)oS~&+2t$u!^hXl zZW_Qwlt93v{#TLJU7;eJaLD_=$yAd`h^)M{;z5pGx>&FO)7o8%%!zEC?RpKBK5{Ft ztUsVhw_m>QeIpQQDW_x+>^r~Zbi@u!v|TfvxX@nm7PnWv#yLED3A;#8oFu<*TbnG_ zK7F7zz6Vz|XqkEMCk*`<)6*4M<<|!LGD;f5qfyUl3cYVX5ZZ%3K>8V_hgujY$2TOI z{M*RB2;<@z4k)}uV$5@BuOyL+MpFQ|p&y4aCC2L$@C3NAb@cu6qJt^(- z^-$edH)2fks|314Khc^)DB%e|GO#l7%UfDPF=@tUg>=oA(+|?kv^c#TOb=d7$Hv}3AC zJMhg8j5Yp;=4wuFEGoE zCv_ur<&a`1W@Pa(ak5xK!Ko57&cH{behUwYL0&*eZD~wd#n=x5@pI2Q$q=q}yPqxA z{HOU5!*Z`0Px8ve%vPD5eBd6@TEzH`jkTWIvk+bQ6RxJ+l&Wacq8oB3deAA$`VtHY z_EnGhQEy|mCxe2jq9O#FRPIhUa=Nw6@739EAW?k4D=A)L01me9qYzegM$Lfze3K%d zH}<8*BHGDJxLM`JQEpjdZ7gri$6WiGHuWWgo{;(0eJYyF8l>S{+H&$wDc&y30z9tHCx3cDs z56oApz%k$NFO!1H1P_I9(vOFJ?B7s>4}7fDQ7R~+l7qJ-#%T= z>4AsQVAin_Rt$xrGzR2Wq-k3@M~xIUkUQ2+k3p!*;#22{$(VOJ8cQU!9dGBMJS;V~ zC{|Yin)wr4*YS`!tr?h(xtHGq;OlIac0t3TEk0wJfruBmh8AXFJrmKmGd~zWkPqU3 zpMK{vWV#EdAT@G4EL%LUPJhHozI+T!q8R0T{*R!CuHhytI zgJ9nDPc4)DEEQOb1&{RaA+W~B!|ES`XiYn2Pa7be%OIODII{c1qniIB?`l%6{-o< zzr2LFx$4iFf-75NMl60352j!O-EY7vZM{#FN`WV8_tWvJ-94u`axho7PV`4gg!ORI zQh~ImgMkZSg7{*39gIVl7-~)xWk3CxLQEW!f74GCNd*O0$qcEGc z)bR;~Ww!x`yVBcgp2I7!RE#>h2$nws7Py5K+E5$CXi6N_Rvh*t&~>9D9?GR-O%mSB z_jo(dc7gMlSiF2%Z zs}=!PnJnfYYiWOu?6qpS0TM6lO%Ykz9iSwvClj0zuz#F=eX6!g zvEZq14hy|-uVC4l4*1p?2^)(qiIjedjE&~cub71Aa7~?~`{pVX$Kj`1CTcfw9^!B9 ziJ!B5-8NiQ676=9Smw&A&`qaTg$XUy;JGCM3QqVDqXtEhvD{G?yGpPh1!g|*9*WZR zlnR}vrE@Wdz+pHaN7Yyqze6Y%*JzGrQpFh|+jcgctCP(+%C+Qqle0mdv(iahnpsr( zXw8!DCL!7*Z;nf)qC%&$TQuxOfl=Q_=!v+y3f(>;TzREPkT2+QJxypE&ALGW3x5jl za}zJbN8JE@xD5LFG)MY54?C2fUc0%8h%%cz#!>0QAD>QC_*VlxYZ1B)YRFfjoO~En zN;kvISx4%_SX#lKnpCVjrD|fu&13>JvAkwRiB?Yiw{76b|7IMeKl30d(kT&291Q*T zZC4-NVf=BUOhI^5IyVS{B$z(=OaHwdwVFaO%9=q#-_sRhkwkgetY{x|5wnu9&^>GQV!=zslQsz*}&3VG8VueG77iClJFCdmZFMo#PZ8YSZuh0xf5=7U-XI=r>)Yke+`eV#IV@09atkE3_-lwQ zJ^_a;!8yIFZtjRXD#ILlN=3fG{bouD07$3&ecij`O9+k<_=Qjj`9aSA<0XN`E5En* zGzXjVDA^yp_vIqLpmWzwTn$A0UPo9I0IFdGXPG8X;#}-4G-WZ^@k9rqYOqm|btkC~ z-K*uuElY}$wOy=Fir2UW4`yrNKj~n!Nl~}YQR+sXC>-0vE!|qE*cChS7(`A1`4!j7 zPuTkw^3ATBQ+{F*;0EHrHXJ;_8og_=ZE27o^?R)u`yEOu0lYQBvu+Vwav|~K7lK6A z5F{k6Mdme72+%@s0a~Vw_Mh)6l{ep5A9{fc!+Mlic}yzk>SPF%8qQjm8+PJ42$+|e z`{R(KPu}waer^Ke{V7~MuUg1nLJ0{mg!(ak>Z}oCOmpQ*u1wM=Ek~^bL?-zfm7L1d zk+7^>ZO8IqxWyPa3U_Kloj>*iEstjj#cxBM3Ek;U3p8(0dpv$J+NfqhtM+X?W*@d( z=gY3>UMeX3Zl&kq=5^d%zVStS;To4+j0=ReY?|}y-CcT!-fPZ_mr|d0JbaJmDi&*d z&bSSSd2EtMA`x^P$~5u&k2%3vVie}{5hOeF>`9BL-CC}o8b*^8R}NXrXDe@Mk|7AK zagq=06jF;%_M?5v)<-PCtgX3^J53S z3et@`w8cr_Mq|yzts|BsmBjy|Z-{@L#3VD6zeSP9Z>D}2q&f-f zew9^s<0VEgZ`l#tPq}exM5k^+ECy#YuyM_3Z#&nn^XD#Sg%x_mk5^@ZijIp#K2dmd z0e-Kw2YUfaRlM;X74dP8cD;b{$v@fdf9{IDCY+r^cJQayi+kcerPO-HjxI~e3CJ{E z0S?^`awq^{|14XtQgL%U9vF}E;Q|e2iBrLqo8MR28YQl_^VQ;FcMrHzSL>vu5Ry0$ zUNMn&moX8(L{mIx@1)eaVE}B(;BhUkQ;ly<`fWlk$~Sof(b++U0MdBRxl9xw@mt{wXy)|j0P5Rkq?8#E%%w@kCB z&d9PyNJ>6*A4tc%`f(%~Es0bF(B*d}o~*6Xz#XcUQt)X&i0^nx{+<6?*_soE*~q?T z{pVEpC!y#I`#%-`&qQ zIhwQ-4JqHWTXP49ARQVXs4H`7k)nt6+OChr(B=VQc~idp-zfSJ3fu6<;1Xd=*{4Ex*$o}wYURD9Xl z_s7Hd=~+*yOuv2SRHuN(EIe1OUh*RuJTKg_{DH?oaB(~p4Tv^W_w{~DKQ7->N4b;o!WKUh?WPiq6VB3jt*}s3HVFpxUF{JX zp|yFQm|VW8b&Fcsvn_R+WLCv-j{RXKM_{uXOR7ThK8<0Qz@2DepFX1oVGxu{gty%5 z-b)i0+#-c|+xjBk@?Z*npqbd*$w$y;bJ;BRM;739HC@1HL_}P;vl{pxbb%{Ac}7g3 zC98|CNvFtTHvy*iRw78<$(4Z-8sIBNiTrJ>tk(ozZJOaR+MaYi8EmGFa5F?dNo2YZj~rBiaE#)ha?mZ`H;xU}`)jv7_lmGnZNFp|lBKNnjkI{22*fT6 zat&y7yZk;SdM)EP+d<7UN!EmNYYbJ!&eWQw8gU4W$YqvhVsT@bvhwh$sx=7u_@OY) z%0W|jGDMaZ9>X2WT*b6J&7+=_y_N9Sfgmd2ZZB(Z>>C44R3%%U`J3vo+8+amYXnSM zZ4rE4xx=EaKlDlht}gTY?c8Da>BuIu zkAn<3JcOiYGmOJT7L}OR%c=~?+Y>MI%7J}O;dR^jiGotS)O6yMPj6l}j-s&h9Y)ur z6AK_2`=b)KcA<*=-*0L5lCqxtieN0=>sp}Xs5|13HR%>L< zh({gh4jRF1kL-%y&!?iCSu3BYm{tnAFRLndG=~zvWaP+B}}bU zo+lWEZD_w4L8dy?!NGM6HiVHa<~8%^e=yBVnTRAvy#KqrUOZnnN80-57~6PGsrhGC zJ2D*>@p*N}dI`TQQh1&VAZ2^yT(f{(sJ*VbJ8w#Tv#=GE5d5BGx_aQ4q(pr8@4)n1 zDCejA|Gs)CKJf&Zp`&?X^6sLtj_TybO52#5esagg7J1rY@?}#Xz93_o5LC;bi3N`z zM?&H%q!NwfJ_OHn#g^C%E^1g$E;{YY+h>f&ub*b4NR&ixagbbS`&c<@@cHUyeELE$14Iaya1M3) znT8-vO9>&vQ|}&iETL56m6wQQQgrjkDRY(~qae?uG03rHB=t$v5LAsij6qe_Y{~=q z3ad7>&>tuwLz?=o3T}_Tp-Kiy$T`lWBT04P9S`N! zJ#OuGMK(8)4E*LbYEsB<>{i+WZBs2)E~I)#7f7R;gK#xYGycXh&2}m99!6UGzpE(m zb;W<*MF0T31F6QrjYmkrOBVn#mLD<8-V0{nK)5I@q1yfrD@=%O#14 z$WIJgRzyd+A2;4+9H`1b@ucb^5f!5b03@BvSOzEdi}O0 zQ|i;p7z(YFTq$I9neD+SKyKNLqIp#VziH5%y|pp`)t$mgm~!b2C=?ctk6-lt5#Mb?YH>r^$kYp_Q;lG zV#VJYJh4QmH&NTY9>jET;&c!W;_MeHd+DXG*$jPadfV;I_;i=+WKpi`g1ig&hfOA_ za`?}>ypIp9&m3PP00Msw7g-je`S|yA%o4s&Drxyp!>xU@xE}iRh5%`&x3g`$#(S%^ zFS8)mGkGUFE%tdsDeu|0yNyyDa#C=YO}i)sGI_+EeuMEsq_X=?llB5ksi&s49I zKf}kJPTCsYW)pPtY0Usfyc#jDigf;c38FgPkYlY8EIna+b678w=fG;elfTsEK=F?c!c`XCW=|r z8J>--QvjAgXAtkMT;$Mk{qsb-(6CX_$3&&zMzRaz#h>AI?(kX>9>5x04(ko@5H)9G zHKf*7gq3EanD3#>XezLz+hs|PZ%5lu!)EArQDkF&w$HT~88KbR4X%?2+M*51UZ85n zbWD^YxE*Z@h2Ni3xE=%4k7fcJ7K?BG3g-OwfVaB=a9nSyU;8G+NU+s#sOOE(!$;Qu zGP(C3S;_nKksP!sjd$OWH_}ZVpQ+-vLxROuHp%x|uZJaON@6)_ zsB85u?YGmI=$Dib3|A)9;rW+r;J<4*}%PrE6!XC2bmTy}r|IA(FH(s4pdlIhA4*EhXA+-a%qj zs`1k%3qCh=_!%mDE^vg6kryp0wq5>@Cq555cs@uhpOCFoNK0lL)EwV@qyW7A1yhKZ zSsD{K!%MdzDK+^-LDU~~?0zXChu1A8=dXpUhZ=mdEdr4|*%%k28m$>e2l|wmc)hRC zUHC6hw-XjbkEoH8tOP^0O*4&RU}!7m74OZN%XV*#U4y<-1$1W_6et>>(M0j{PALT) zTE*(E1+6Ew&&R#U%ute9kb+wxyZ>tQkj5$lQy2T9smgTgbi(>ShvQxDM8GKoLMsf8 z7WugATz~St3!-QMO3+u(434GOAFHjjLeAltfKM}ToKMmIF-ZStYt)oQmh|&24va=* zfWAYKMqZ~FS^08r@Y#Y58PI3C*D=gmbUIwg(L$Z@cvaKj+tDKVvnX^S%`dP@zXHj& zU~V<_bgEq9t`q=8bgz>q*Kd<}0Wrp=oKPgAo79ai6WQG=B&AJ1OFw6^ZNA?K7*n1R zrhnrrUw=v{A`27oP23gmrRV7tTJka1Dv4XPAOfL?yT7M;)FwBrM(ymDf!Goe|}%%57HH>K_BsAypm9p>b}cD&6DT7CG^s= z%#`(UWLtgjXq2n${K(`7^)gq^V59nD*x+UJhni_Xpt*03wtp^T0S!}6{Dq!@6-D`M z;*u9G`5*r6JZS}-Z?w4{d|MB8N-ge{Ms0*RuUJF(F8wb%HCJyW95fPT?vwa`gbAu+m6_2iBR}d0SlUCsckcI22h-g+?{%R5QIFxyB+ByB_;sF7n?-%)9=%JNY?mT}NLi zN<;qSN_0W-mZ)vTi`KEh*f$nX!cnYgvP?v7G=0<8T3AYvV=$@*xE#gKNFvi~Lk zMv-x=Tf!|YuO+h$90P1hH1!mpO>w;(Uuw04a1k&z*Xw{&Bg-64qW#u)j$x>@Ws(_u+%jH~X;Id3dmcm^PwULIP z3$l-aGD}jtu`8z7)5uRCsCZ4~tt|_Uk);-Y(|&eV9FT7%xWEWp=0O`?$Qr{)x4W$8 zL}!vt*p}X{>$3S$NphVY^340A>cYWj`Td3_i+I!1HTfmR>Pgj0)KZ9YCj=`inmgm` z`J(jh_Ta>9Y?zN-+gJe%a?E0Z7I;JR(GxUvj}D_6K>adfNrM*LptZbbm5BPUy!!r; z5TDRN=7@&tYC*U*o#eOrjUZc~8>VMZe?@plbq=CY{5Sc^TayU&PEDE`k0uC9z8M0n)wf^;J|D}Z=DDRu1$CE3!W+BjREpvl%o7C#9Exx zy$)B!zO0TTkdaz~Q_I@-gJ1y^->4DxN<86m?|sx$>*>9nt_dO)@i8ZNhos>zGywc! zGMmLfd-&_zc4}ntoiBeJ;rs!3h(kj?l%#(afF5RmP6um6aIEgxt;}cPf6Cx^dEJkl zr+*{BGL;q$$1qH5?qv1pa!-t?-&el&?v$O`rBJ%5;7%{f=%6)Bg&8^!X6w<~@4XvH zu3npPP&}{7fgP3-8u>KTc`)1_p9w{vE35SKVNx!}xu!&%7b}@xX*|vO13p_J5Ck#4 zD6|xTy*_JDWb9#wW9Vi}sz&F8rnmf-Z1k9ULxYY8Voa|uk1RQMGPRU^w*Sm1+{ia) z=1SQVG+X4(#wDj}uv|oZ5DmRh#+1CZ?U*K+jQu3+l#S0kTP z7zofsBT`bUf>YJBW}us>WiG_N(nD%T@ipIJ1w_6T;$qy|9Ymw*M`q`-*8g^_R3Bd*ek8mw&?mxRvsXku zkHpi##*ID4&ZW?`7d@li@7l0U$>My8jyvux4#$pxz{09BfNf0@c_X83XBF&oF0exnNlMjyhaeo3W+=8s#~Oj5)Oq(t-e2MZ`|mzllF_!Tv#s0@4f7|rO@ zCYVf8-R15CfWF4Y`h)u5@5q z40sHbIi%fc;|-$_`mFofjHzc4pyD;PIL`@whbDDIr1wENJvoa4bS@OcjPWMY+{l}I9p9bz~LmscNE{GEdLgj++0M1 z8C2iTNe9PCg;)5@q%v`mj7{y*6m+q>4=zv6D!2wY^#G3FNptnE9rf!E4~T$R<>^>~ z6SX!lKDnXNEb38LRg4OmvEak$Q4@HLEX3ruMq4_tScMmZ%6nDrayMj{1*131M5&73 zxOLfP8W^sL^c&Q$-`cgnk6IK$JIp?v|4`uxkYsJlCQnvu4}*Z3T9BdFi^mv>S{cQ8 z8QLBUXhrMkY`c2W?%F`QHbOo?Z0YdvUnYzVL&@ycz6_c^I}DMr3eP&x0O3tBW+B&Q z3k?~HsDlc_vh5vIdS%lCbLXX(`jj5?4(f*V+=JhBXqm$2U1%cg3ni~w&LDk+0cYG! zg6uJ1!ylfe3DZqpe%8u*Bod6bVyhFzPS6OkMfK%TK*Z>vp5JQqvCc&(Lh9E13d+m1 zS}D^xv#$3JNe4L>T5S3|KO+;#1075T&mIRC5^bELeTFGh%dD|!(gcxsRK0A_Wp6`SKTaslV?IJP`<)NQaYqE9(vQ81`V<|A(W8114tC+Zw8Zzd?XhD^IC zz`zCdGzAX>q+M^;pdYV0rlkmd`Oz=nzylittvs4xs$8-ao@kq}IU@ zg7Vq3#^JEzIBXks5W}JBSs>~9n%9wW#7ur<=pz}|Y^1pf59P`uGmTb>hSUkG&kdL0 z=0l_YFL6|*9Odf9bk1S-NJ`%J_|BT(eF0AvsQw>lAE(n~JwIF{bc4Bp4yLwS3jR6N5`!M z@?adg9n4(T#B7b!+lUs~>lD7GgZmy*nMU>hNkU#4Jio?7$=p3lJfKI9I}0=9Kc-)S z#H<@cYSyv*W^A-|0tY3w@ef&&4{4tX$X>Vu0Wr(>Y^@eQ3QRG1qtm1QWzqVzp+ID5TFmz6PQUU*gTD0-ZVgRO5%QU1wQk_hv zD^xFXV<`Rn^x`Qs;dxfZg52>pMvYDfR9hMgjs!o69)b6>+Ff;i z5Y=Ws_wiTbEf5@pdQbOHbWXO0=~<=tz~N;BpWn&$OzXb6z-*I&o`|lQ7}2{QB%A0~ ze~IFqC@=JcMLgEwmmXCE2%On_EjP0ZV7v5PdDg)GQ)w6FeWVev_;k+hz1r!1iy?2( zQDY2h>OebY;Af|oO(m{`{9&RctSl5RoEZi6557Q3tu0X}p4{MEiU;E)O-s2ls%Rn9 zWeg=6M~5zk!}80=z0u;@qc*c<61uk^yVp0wlkkTm;fBC&0KXK!7UU7uuqYia-oB4fRs5yB`Y#0&?snV?K;d{* z5#}83$%PFABmf1|_J`+K7{az;z#p*0zVD%!K z62PKaC?~oU5wS$lW4tz>t>hL|ZY4|(>CbE3*!lOP59@W=P?ZneOVyBj0B&ooOs}kS z<3j#*j)PN8bhl_yt^7+f)o1UPYHVmn9U>7(e+h}()>Ds<6zB~LHX9Ak``s}uR=AaE zPfai8d+h;7#m2OTvpm9-Nt_||4m0wiH?dra&Wztdm zdb1rXx_-!i=SgNHL)xd8n-oZ4#X9!1@CCf|4&!*k8l5Zn(|pT2k(B?^fA#Ig3?dpL zD52KQ15||}Ackx6Az7T}nD=R`lh-JH^YL8Nw(XK{!2L}BjwvF`#2uv8p{$YJv(m&H zQ5j?=lu4BeIdmuxL6IfcfuQ@?l?A!UyRx1Q zM+%r_O~fP|?0&}-2~|B-Z9-)Ki57AoEOcLp9TQcas$IucyT+hxS<=eg(uf)u;euej z=*meCK0HuiuIggb{U|Wabf{CQ(i!Fs&FC}zu_c1d*bEDTkx5ip2#GpvBI<`NFI`0e zitHMk{SHPJjc01GyxWVNm*iFZ*ru4E-?YC$9#Dz4m-i5>6|SnE`rc_r)*M%>AmK7< zkG@?ejK5^a3!9#;^!kCRxpsx&YqfNiiE?5;Bt_m?3U4ri$?xmgvfb0+?Be07(RNvp^$AAl86g$M~5!5UE}d#uBk(vCZD%AP?} z5iUa}FhqKN@x8EncicWnshI6Wgm%r2FE~=DroP)yxTbaL4bKe;FImtQh&DbsLuP67 z4gGoz;R5vvCH7Z1J{KWzO_GOz26ZHFjnjLx^?+MYjU1~`-IEB}Ab~z@#oo;t_$XG! zeL2v3TP^YpjJ!z_en{A#0Dq+KI4#Ao_9TFQ^4qcz@8B;vQs#{Z5GcCD>g0)+u}?9B z`>evuM#Q$w5GyoL5XGS+QutX}lNk)h(<0MbII($h&v|3|#gigFO>wj;?Anr4lYa4| z!blv(9>hg5!n2Ow-IK@l+rqavGcX1_*2mt+%lY}KBPNe_aZ_+E0LIXI`I3b_Xr*F~ zghIgobCQu+L@O$x>`9ysN#sG&zu%D{_F(4DW03S+kTE50ET`W&^8W9ckwzVgYYG^Y zhpd{?bD*SHzY{+LP5q{O_zG(#@^sUogi1Dj!Z@6gQ-GyE8Qh%jtT3kdOL|j z!`owFb97{o|MeQuAH(A;V9%YN=wd{p5Fm!YrETa|XKvxp7T1 zySN5+alkw|knld;IdVWzd?b%pc0f?JS63K+zKzup|4OqD6s)lbn7Z!Wsj64+jDzD6}rqc@jPLOH>)2N=jx zzCoTmp1cRIhSE(EcSIeFyL7WYrXfBCN4tu7R9({Oia=()IMUYy2#S&ujZu)H&roIG zm7(i|2x(3o=rY~}WeK$9q7h<7ploz>ctX&Tnf|=LymlBDs{ZJM(%)bEeVLT?e2t7` z0DP6Z8INzWH=HxI2)XS@h^&*^P*sTXTIkU1CgAjN7D*6ttP#Bqb;coE zC|9Kn=C3uJiWSes&Qog8hzrqY@L)SwE+z=PpTp)&uwv-)Z6XB^S;^X}6u#5(!nf1d z=tMB$p8PtYc^uU+8}N6~89kw+vHmMQ-DNX48cK~4e%w2W%X6t`DIv7Y7#MjXq`WA` zE1ky!b%Sy)R`u%KZq(m&>!|mN8A?W2Fbg&>i$RHcMRnm-2^AHh-v;D&z8^rgI*CPZcJqr%V+OjZF#pCb zHYVXtBARls$tO_!C@E4V6Malx+2=b#Kf!KkEpfxaMgz(Ano3732S;ngG!F%;6X4& zI1_VaiKcH%BCO&A9F_sx^s8KF4zodHERSzCMVz!yP+WWzfEobpV6OlOzoH}i1`;n_ z1}G&s(zQx3h_=xqe!KDyB=oEH>z9R$V)lsU(Aie^i!5DPq?xuivRFl4MUhIrVk5>I zar%-#qMuU?>5b!I%c^B+;ckSB)3S$u1_m2j=*)FvA+i1-Z-U*pYv=?JCrpxLFRx{G zW-Rc=`yM~it2P3_|X5jF4WkhsNjwCGN4I@cQPVgDiIP|q`DTeBl z&SS5}P*)P)5vut3tL?oQ&lO1tJ-afu14Gd=fUJCb)%>>+tS!8zsj!zLS&ZchOB z8O%+(o6OXOjS7;_Ei+NqA5@0Jg~?DI1T-<+04Z=mVgB@R5*ugp3zEw+Fo$%(!lK<( zgKMiRFg8#4zp-gXwi*H?_yLpL20UAo%;y0Fy(e9~uS=sUbj!TOW3z#y&NkHQrm`-2 z#TTcTb;*enYwK1(s(i$*FH{K&8pv?t=zw??DU?5x9y*hL-u-gV7d$GlvS0awMTw3P zHrZv2mtW+z=ZE(4H@9`~R*lIr^tNHMUo1mhyLytjtO!T)K>j$D|IIL^Y;fE8%IQ2{ z#|r!x#4bQfOd3WdH#afxKW{2J7IYr_08A?^0bs^gNEGe42kMHJQ^(*IMq?M9W}BOv zx$(CuUfpWiYA+@Ow7Da^3|p;|>&rg=S~&5j4QZY6EFyMlOu2)$YF9Dl(yX>B$qIfm zIi3Ym`|m3n7qan2X%}TbyF!pi+9B!eQgH_oqb<<{gRKhA@%s#h+E?qfzYw?N1wCPIG`O z!j?&@{+?JzXZ{* z2~`z^IIrCUs*d3+M;-G>n1*mpA&L=(kpn{0GTcLCl$NedMfPANRNEV$aAW6!@ z*!)L<0euMv8p^ux5^+w&S*>tHj!3t@JQ}52`@UAOow~~Q$V6DAM}dgSG@`2~<4gaj zdW02#7|yu-fN^0917rn!3|Qb6|A6!3B*_^-*nqg~09rt$zgywpy>{T_Ysk4&R`7yb zl0Av1a;i@O_EmFaqRSi~>B@)4&#$Rq+fbW6`5w=df~CK|v0UKf(r2SKkw(o-cn}Rp z0DzskniD_~U~c5KIkcpl-Njvb^$$jw`hNmvo!o$100zO_hfCN=qg>^@C6x{UqfCQE zn8g9c8Qf%zb~EvvOJeal8^cq6DOXA6p$BOI{8qoVW!PbpmVIw6eLyG7*=I(hLYqyu z?bgbF4QOI8)1^Qf+57zOLJ23~7(0&jftG2AV@Rl@Y=Ma+yfYKAry!|<7zng__}}O^ z5&O`4Sx9GiLzy~71EgEyj?{XmgY{rdyn<-dk1MrKi4co!e&*-DOpKIEhNV|HU>>s@ z!{gA#G^WMqVETrn@j>6NO2BReI-D9#T`B>N!Uf3EEbxqBmb~+>&xC%w_La+h?H3tC z)aQqOe|iO9pUc!zt2G`d?%?(G$J5HRdqC+ADGs-Eb?U&BJ+7$d?SzeG7F-yo1!F&f z^rC6NS#zq3ecfDlO@@Dk3PN4z-_aMfH@=o~5rJUQe6C%Z*;MVZWML;7YQJI$@N*`G zr42-h_jfqX7OgtT@3+uO!N|y`C3XDE)Spuq5_T+2j~*|{JK40^#EzT|C6ufOnk@

hPG6Y}7bvAzo#q1=)1xmX%)uaP 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
PkYBN%g^H(=Su;6S)`kN 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 z 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μKuLvs9ko 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
b@h_l!z$)ZI{?(rA?<{Oe~JeFzbh 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 literal 0 HcmV?d00001 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..67e17279ec256b8ef1127e6efe98a9b8163ef1a2 GIT binary patch literal 1184174 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

pVhe&!kY`ugzL31SX~CLSjz$4>m{XJos>I zzKIVytUhV67i~SHQ^dfRM>mf%)_LBg;?;@tMio@guP_l2OU zz+kXW5q;fQtL%{s&?Xb|;dzHFG9P<;i+Z|ZI(IPHMkfR-_J!SK6%d+tM$XKIZFX4A z1cN_Vsi#}V1*P_>2{r32aPX|0uzZ#DNJIl6O!LWdOa5~_Sh2`y@#b9&*D84RURog#u*^7%YAHdpJF(GAs%^*C&|t z>j#66nn#^Z-vI)m9EK- zfX@zP9_!E-P8{VZk=1MIvyulkHN=BaknSj=mkTPp26U<3U=a7kY?QcSxG#9UP0x1b z#91)7L1nL;^Wub+gm`4);z+(=Q0&@EPN+9WGi21Q0iDSVFzCkY*fVS|n5&6X>RUSp zbHE^#G@FB{LnF$~m!MR!#kF8C{5Tpfm$-AMQ{$(TXBqIVyixyLjJsR?`d+IdimJTm z23CyD;UAJ$B^R_T*puwT{3KvdFCjXbdC=>g%Y*$hbk_#J;A{nHv_N=bYujv$m#DA> zzOEAW@rOx=>8d;U>FYwhZ!}nO@%lqlUQ!;dT8>c{&mO|U!E<3N{0|y^)x6ds^^8Cb z2EQVCzQuW#Y_1B@*StV_=)hoFn#Q$}U7Shm*lMKx6H)*MwYNW2@he)?w=tViW0o1< zE}4(EN8mgZ-m`Osx;|*(#1*ijSejAq#&QkBEG%I2%5+jNSYqjR-iB7#QrS@>QtLwC zNfOeDAD?8p^WsWe|0t7RHiMs9Ew4;8OefYzdsE|7CmF1Hu&K$(;USJ({so-CK_e|u zjDW#I^9m0}YWb((7rdD2EMzhiG+`)Dh?nODb6bV3O{o6=@O23a^Rza8#^pGkT@l7POWCr1S*v>ycDfC$IDu(43n#It~Gr84SV;I z`zDTH#o(5cvzBIF6tk7Z5*EW9ocq1Cxk1a7Nqc%{EE+;Bq6?*j!3Ff z$$Zi9<&m!0Pvi_XA&ixps#Z}Ue79osSE(P;nses#=iCg52jOn#k4gG?jfY3&T2zqQbq`~FUVgV2nL;%wVSwJ zh5f%Ho6!<%Hr$yn!d3D=>31vszwiE3cPNU$ifAs|IK;%`JH}U)*S7wLD{YsxC>ld$ zm2QWFiiC>VQg~&j6;t;cqgg4?<*p#jlfB>*d38+nUR;&z=y?BtWk{iB6x_y0E-{T| zolaFB<8&Ar12VzjXXe6fs}rmWD{(uPI7tynU{IZxwfNP{`Na>!Mfg_E`jmjdXx2m5JfO22THdXGB`643sqadASo)u z%HNpW7;kiTbIEu94Ge}4&Rb;d#OBC#X;Wg~)9}vmBWGaxRStO?@5h~X$oguq;a40|rOtUwkWS85`m;r;@4+0HM=Hdj?1K+R?YnyE0xkuaw z)OQ^XglmgGLYLNDc;M+8bjZiPuhBAE5I^i}b06-^M>l`Z8cN%wX>~;qI!u+vz@6hx z!7oFwF6>K^c(X!!65tm-oodu=dH$^`LZ8UFv7WsYp0teCy|8GL*hVc~(i%)X&k6vW zx?>fQJZ^SWEq!pv5JE132W53P`IN^o4gJk~2tzX6H3L`?rwMg3AtO+JDxVDB@J1&v zm~AEGKVsf-j@tM$_RjNYIT%!o9+I`nSfW)+e02+3No&C1oV-e$5nH}Om(jqhdGH^K zP-~Mt&A80IEBrKPR*mb#7+A4}-A7d{hSh;x(i7#YTnE8mH`A|-ZjE&rLh}0&XgYi= zw~c&caUzKG=^L4L_Z&k2?^Q9<;ehZ+{>i;=gMZnkMV|+o+DHr;^pWn$*Nz&P^UAyM zM9@j{bOWJkK)hb$%Sl~l1)s>Q9fR5|`4-t>t}u6xq*x3#71uXF#m@xjO>{|~=ojoq zV6cX1!jt+TzI4hpXn`Uy@7hV8z$rLhFCM{$aJKG|T2W z`{7yZqu1wBB1DY3Px6;~`rh0N-*jkSUP6}GpZd$P5tzrc6zJi-OCL> z{{9p1;~Y2)GTzWrn;KRi7 z_r4=G0lKs!FTvo4!x>+_`Q-a&qu;+EfAQ!P9Gqpe|9cz#WP!YI{YUL>*Lbkv?SuI) zbpdgwULB@yymv1Uej2RFHWPpN-y7%IwY9Id6>C016-~Hlb=BuRv9eVZ_t^0NP)T^; zyFVU&InhzGvI2el$;n4>r?Zjsy;Z`IVdCqzmuv#QY`F)u6!E6y{+U%jv@`Ty{!nl) z-Uv@0JaZ{K~}7CePkmM1Ozz4rlxw0{PVscc2{Nmoa_9 z|2V3>^w!~jT@w?ZgTe8C|8m=K{<{w}(jOn+BwV6{L9FA~15Aek%f=?n%lQpID!`zw zgjVocxBb~-Y2TCA(O;higS*}(zHBWTT6%A6{M3hx$M3uLmY@%kJnhhRzuiDXKlflRG@W9H1<2L`>hqswuA2Q{?Hq1vn7 z2Kb?6sF0cKO<#{5amh&LdE{*{p6l!{^>k)N6!#EcD&-uiT~WxaiIH9=tkG9 z3Ky`VU!(@Tr?^e2ZR}T<#3T{H;1JTE#bqjMoK$EAN4X8Y|F7ibnd~oU74aiSaXxkg zc=m`k{jJ7jiIuufvV{K?s`GEKsn>iPNye_6DCOx;r_tmC@CCrw=eiHwYD`#2il2&4 zyY?8Ycvz*Ow0&lU-4So2Xk<Ic$>3*?>{3gsLL6rbck{Za zHCOF2j$$h3~sxkzMND;Aijl1t4;@fR1W55=S`wS zDoj@;0<0K%d~8!BrmmudSz*IaQQ#{%isRB3jp0*L3e2i#Wi5kX#V|gaf<>o`_!eDr zT`F=17_4PgAeN#s31RN~IQ4u)78rDr_@M1^oXG~$iy^2su`3)rjU961+t0qBqvH?R zFj~Oi<0Oi!(2Fad;?+*-7!-J(Bhj+D-XEpJcKUDRVRY&|u%ZcnY=yt(PAqBExDaJ? z=36jmq0`QH)uc(Y*$*fCzEQxBNjsg0J^UO>snC6DsAW$20IX;{!~9jP|A32p7=3Mr zVivw5=af$LuC$_jifcA-ZQ08SU`2ChFD@~3g@1$9;3G|Xu^Sk4z}9Kg$`-#d9)#P7 zJ3HzF2AO*GU3`c)e()Gw5t)sFKjf#%ILG1x>pWsO`~c6mI`|_ud+3V&j`r#FuGD1R znPH|8Y-$DHmZIOZk>)Xw-=T`_>IH+jRkBs4ytD_mSX&m$NgCq8U^%D84^h@XaBMqu zYmn>2XJF9jPP|J%P0U!3|2mE3reG-;jNxZLiz6hT=X>Q>>&(g(gjs$~zPv!%kMGK?CaGP>$##vyHqW9wr1QSte zULMmgBN843aud;&eA{a|HG7kbmm+^;gB5w~Qc6jxVAH5|MwRNUYabZ2U2UcwtNg?E z4|^-!sNM7nFnBG56JXqB%#N$^674En?+*rRFoNzRtLT}9Q+{E?jBhkxP?5SS*vi~Y zTqM&wORVX&U@&1P>OgWcf*}w9b-HS}^%AvpyXR2Fk=);-1>W zB0F>mRk2?N21yYuH6J|93M}gXQTHu)dw@Ypz4dnYdnQXwJMF2y0e{2u$0eaB{qHOs z+g+qEcJ=)|Yyc}}p??}0ShctUv|Ha`<1&K4AcGr_hw)dw`H4YA<)c_4FzCz4q-rE> z(~~zS57NgI;S)J58k?riieWUPv)NkaLAa^qxGT&{`$fbD785hgC^CGpvSl;Z2M}rb zZYMg8%CFQsa2v-|=t-yJzJYGHuqj*Z)8VG38ONE42EE!Ek*x0L96JG4EN4Hu?Jkii zQ-5#h*Zpb+H+8eJ8S^>1%~&N~{6PBiatp8`vp`(^U4{PJ1>SO^VV@}p4Bm+fI!H6@ zl&oL5o+K-g!Tr@7ba$DrIz!HyoD&>-A=82tGqrOX^f`x3;bC~y=3Y7i43cv&F05OQ z*q9eAPh93K{9v}5c0i$#@i$8!ZY;>6@(+O(_j|6&qBuunTQgtKo1f~|gF*Ulgeh}O z(O!Z}!Lku=Z8sPkbqx5z(_=-8uZJyp_Ow6zKu_?v&!M|dS$CWq>l<~;SPoS*(OF@? zGD}UAaY{C-0{%ljU#G-O@uXcj1dd{dj%|Ri$6Y}T;+6E$rT$qm0g2+C0ksq%IUwBC z8){xD;UA!1E^HuzL6z&qYmS_H@u-eAU5|IW4h9Lby+kY4r}$qgF$~R@^b#CZBHUz>G54}w9lGto2+pyY|bJF}UJSMA6x5x6x`)oT|q~lMQ9{Ub#sxHSe zDySwcD^9Bqo}G@b0fRW*mzZxg@{)a7F_~nWxlh30&>A7qw~&jo=8-w6(=~8EH<@u8 zA3Qqlz6F)l(HOjB1gvPjQs|0E&I_FgAMKQ_m%?{BUG1;KcRNVqTpy48frQQQs=k*= zo0CcNiH04M7cq}j?#IEVI*u%(|3=qWR^6cXEc86mfx(_DrX5!s)EdgeOsd@yBfL-s zcbM0BDu1x+kh}4BGaGXZSW%!FZ9mj9m~?2)n@^OoXTczGjyJ%uM-v7`%I{{mFRZ{| zzFE@=W{r~lkmGGTzm^3Lk(r-dbC~24z0Vcfu;!VEY`}^cGBeATJ058dM5U2GJ7>Um z@~D;}%B!?E+uqSAeR87(e6iB+D|U(hHM+;pKezF#UJBd=FsoUw%AKTc=`YXu{g#Ug z9wE61cgf5s@(Fmx=HC@g=dNAlhaBqg|Bi&G{YT_1JOKs*mO{n?`?QGCzpx8jY62L#Vs7y z@Ye=%!KRYb9)5?3Z|um*=i~i%3~)b(6DY8wx%kZ~RH^5*n+IdTiaFKm{fdG{$c|Vu9oSSm%#3K7Gh(R^oKiNw{T%Mg2TI>a6L0bC&xH=eJ+m>wSMtqvT-_NG!R0o+ z331)`*cq^?^u=R`iD0JghMQZ*!D2snT23~=RiX1aCeC-&6|aNm*J*)kK$ykr7jIyU;^Cf~dc zGq*jM-%x1CbOS3sEuhu!azneEOzl)H7e#&s2HDK00?BT=_#EH5WOT1PJo8jNto^aT zz4%y1Mny(WlnvaMTg;9kK7A$nvpT%3xT94949yZ?kx{EP)wDA7hm!H8+ zeJa@f*lW#?qS_C8zW6H9;Tc%b;oTn}4*c`&Clz-NH)_T%!(*#kdoAl0Kd4)@{o|43 z@q*ppnn%RTBOilEpM^jE_;P8hc!w4Ih_%1!`#TT3a7)JyMsS|dH^86O?H3NdpLP5* z@Ao&yR>j{<+6eBP_w!F~etMVunWakom5ufGKf&P0yEQn;=-|VC5n(xv&@gCBmMl-|Iujst_s zdS0?}mj2-Rtmx0N&(ZT6z~K4wyTAJ9CKK{Fl9`K8?pPBY28x3gC_`@2ZK$ojnC%AJ_iTP z``iC2eBA;DTgAj=zMwfP&}FITLP!;SUG4ez2ldY%W0!tE8zRYgwiliy`(3~0Z+fU= zUF06Zj?+)?&w)){96y!x56&^hnURk2DFQrawN{?msFxX(@guy&YSQvOU`2v}lQBnJ zyv!1bVN7cY*TG<->tpUQMx#CyuMgj>h#CNcT-@{P1$T7om#6+ezro=D3*AN_1R9kx zst*hjiR`WF%pCs6yy@my$}s$FmNO-Yd8|Ws%RgDXLcL=8E?Cj|S5)drRl35G$DSB+ zO}GgLuNcSebGirHMaADVmSp$B3+CNDQS1jbvPe|F_2NU+tpY0=&NN>2nJE(L+nXj* zeM{kw+-PNLOjLh~151$extMz!p6eiQs=1)_T={@m$!hYFvEyVh^D-fWcv>&tLO z^r>$LLU>?P!xxLQnNuO80|7C~wbBqh7__1%9W+^E!Ji6l=^iL!_k+O;YU8zmptE25 zr?xdz72)o?lUgD9>na^6NIeB z!epzyJ?j1k^>VPOULJ*o){iOjqlg*q-Os$?Zs&SbsK}-?3`NvlM7>y0SAiAhY4rKz zFcdn6JzcG4B22*Gq1NfHgvg=cEvSkc1tA{r&e7Apt8MbK>G+#C{p0i$cNtjmj_m>6 zlR%pmUEj{tY~0USFqpQG)|u8fKjq@o<&IN%=Yl~@EPqVQ6ja}3>Qi^>+On~A?9HG>sXQUCgBtHhHRioYF=sLE;tgMkdU zH0N9R83|Ui-rQdZpB+=Zp@iKuFLjgw^$Rlc72GB3M`0o|n3H0|5EZ|0-U6O`EKi=o zW?wkrO<^M4FTEBr!EMZ%=>N{LfuBgTe4=b&;u^mJH-r>we#Sctxo=8r;T< z>U8@s6J0{A^`Nn1tOp)HUOf8gVE2Gg>0U^;l9>I6GaZF6?f_Ae%+UCs3=l;4z^g2F z4>K7oY#v_y<4`*9gb=<0T)_PtJ&~XbwpKR?>eFmGz@4KxykvfAIw-Hm;B!=Q!0LN2 zXspyLx0*$j#_x%r>YT^-f||z;S?XKU3}m1~s2o*nvUBgZ*56{G0R2ztw{Tlqjwu3`X7}$I_Jal0C7HxDJxciA;h_sCwqs3 zJAuR^LN``}V{af3&0BQqT)=JAF1VCocU7XSy94`2c|nt4@IKWd+u|HKYOOAhTfrA; zJG%YhK0tfZR`0Rr*T0J#IC(g`?5oL;U~YUxmUq9m;cZVnKvH(zy`T7feLM$8obe?Qmg; zCWGy=c=49AQz^KOXw};XO>WB`Z0$*?w=-S07Yr`1%q84lsPi3N4-mPozrkPD$2D~Z zR%uT@3-+(syF(E*3Ra|E3Qb&-H^h~)PHwXZ+7$%`!&VhnX4|xs=iCj5*~HDi0|psx zS;U13{ag(74u2ndlnMrmIG1fl7VGSWxW!{3gG#s$V3U)u+}St5HO0CU-~O=I9;_IC zM@ehx>Y4Sz+$B}n+rmrV%?YKUhe;*OQM+*qX7LGl^4aKcI1N< z?UjMf97{fGR$3L<$4=Y<1|!?+1?ffHp~bI&-+oh0j0Jt$w(_TBtuzCh>iVUH^K^TCHi2V!aAEHx zyaEAVo_{mj`g%=nkW|S_KOO;AEZ)oQDxvf&UfJwC;xZvk0fT-k6|NVxKX+)Kt8o#z zZyLeii4k&ly~W<*Z6izTvhl2~U@-bO#T?(kTr=JF0OvNsfTt|NT!gF#33cN90n~dW zE;0_RxU5Y_nhL{c<|4DmNAi2(!QcZkNvF(7Q8mxzvDt=N_*VX=&CxcPiAXVXr5!>y zH^cp$Hvv9jOU%?N)L+9WA7U;SY$`G=mdZ(tl#D92sy?x7%m9OT3pwNZmzX~3WC)+I za908b3CEPX%p-rW6`@{UEtdzu*VWd1_gtM$>EoGS=w+jQ0Z#=d9BMgNoc*mtt0K3D z>W-cQo7xz9B;V8$A4WmCzM>Yo6Tsj(*2cn&i`K`zk!LCEA}+Xs!IlZ>Z)H6)U1rs+ z;A|%fzFUPdb}vDZtI7O2oTL1=&H}Kaw#eVGv)6H+oj2o!o0XSlAKR0!~MwY4l<_b+caQBO1nz>dC;_ued?PEovRZM47vxMrw?WD(#{<7 zPQNna2j9wR)19*nUGUGOb0{WXyV7V!t(4*ThXWN@#UpMN)X`=F+AvnRd8U7KszX&jQwNvRqnt%&#iH za#q;Vsem6_3{Zy`6al$w82T)vq=@TS$F(8?3m0`-;+rrh9iaZ@%BK-y!NU6f}8K zciFgD?NDE0_p%Ug{0|>}8E6)c^}ORsX6$x<YCy-ogyU4PEieYp6P7xw~e>g$=m z9dl!kNIV#?#eaX<2hYq)W`}u~Qrus@WXI%g`S>1Q_Ey*XaqIoXYQQglh~DtfS^=KO zh`IG2FR%IK=8)v|nxAeCiQ)5cbnWujkM8{wlj%smSpNA(1GsZWYd@Aa)%kM5;;fs? zzRHECEY@E5cj>tKOq}CW{ulEu8h9ni9ZB<}xAqH{D~l#v>OQ!_tAam$mpd}9|E2P; zr`tUa{MiN%bvM*iZGBRAB%@_);V+WYV|Z*uYe671(m$BZ>qsLV2PN>plg*eI+a-O( zrK~cJxgOOk!NYN|h)ZG2;F2Z(_o4fN!|-t&7)vs<@(ZxSjYKRY%|BiRR+O~Yo;jD& zA3r&Bgn(O+!(B4wKJPM_V>#hx1Om-fo*4ow`ffuZ*)OOSenV_}KED?pmDhUVL={s^ zVlQ6gCN=iKBi41U4>Gc@mJ1TUAoxnT?m=KvW0Lf{LZT%BC1$-`Pnmoi4029^dkfo#o4N z*cZ&jySXK?wqR2?c8$%|dlhQQ;E^_Cj(3+bN<0wk>qEK(zpukg^Gl9? zuWdoEpU#1`-4lLLVoaD+%(Ku8#b(@He|b=iJS<@F*R~u#7qhPS|2CoTwiRaB{ZxZs2&hV46xw@4J zXx0b<%?!;Dc(JKq#VJ1(+9?k&;_LC<8TD8x7~JgWX;r9E(6dj7@A}hJ@E!T5UaF7x zC?Pm93r*_FaZ!U{ER8#Krw;=3jsl<_N4!QDCrN7mswE z)8$+!GfPboQsKk#fKS}($y^XGiKt_7<*xAIaITU6P6$TIJ=^B#D%T6eU{iDC%S6hk ztNpXbdm;p`Z6$ye0TaQvEA<^7)P@X~rdlbl&QaF{u6;8Ut1&GLZ2I zBqsipM;*qh;7%kM%-Kv?<7~NRJiqT)BQbU7B{29aX~-L!GT2&Y6q0hrCgJmuRo0sB zU|KPH#=RI9{tF+zvG(o6+MzYSS{!Y5O)fGmghv6X(wPOPVqacD^ffFxnE_8)x=m!3 zZow*|0^@T@s)iA;V%>7#uEO*^B2CWbO?4YG;XCrv5R3e(pcyB9=XBaY zSCb=H(cC(}vUps+4NGA**O>djXGhSoZ1$^;RH^lrD)eoh{TZ+#;TUndhj~kDQKg!W zNJON-!7IpspWcw8=_i6o&1s4;Ft`ut-Rn4TMpkhEIQF&by5E ziDSTEhfkT$pu;jviBC7@=Xm1@FnD}_UZ5gEY$I?l&;_W=qZNnqSru>m9M{ zJl!?$jdfwBmVd$0h08Q!FgK5#_y(-#b^Bbv#sN>Vn{h8TS;*Ie!HQKC$9#cLWLxFUN-#IF)rao4IA zYZ230;nCbyi`zL>V*U>}>kOW=@sB}pub!(*S)dbs!ToGODAEF44C<(SvhrLxvm`CXk=u7o2?n%X$-oiC#By!HR+rMh{D4aYmUXs;s4%94fghJpTvVzA;@VJ3sJc8?NjpkgnV(&qsN^O*}5ir=ko z!}$d5=#zEAoxtiRaq1T*RM~#F7*|g<{fD>MrVxmf3OW4Pg$9dfO-=wC>@(CC+JAf))Q3Tw@g^ z=;S{Jw@RvYw^?9NBVD**>fRjaAHPQ#KIhf}2GdfrZv-VF zP!on_KBGU0(euEHB7Gup@lCtwY$Eme)@7=n!Jr@@E^nZv|6%#ldQ77vVL2GY^ayWe zaK-{>749V`?IYm{JtTqSf7+iVLS{`=c3QM$>-mU6?0T0UD?kMr2F2YuEv3x#Lc6KRP(ZqJO zCGR40^}YP#KXYB*;=tfiwedVkcB&i~Y08|gd9fJ`%B!nJoEoKzF0Rlq_@)A$?DE51 zi!Zh+tZ1qKE+W?`Z~!Y}>DiQn7Ut&E(q%dN$>bg|s91?j>p4-(uidn z%R49MJ?8~A&Q#yhQuwqYh6G}a_GQIHMdVC)ECc?KJD+ts)?C}B^yHD>sOPpY!EHp+ z$l~>m*qr>89Qugmk^(Ro%iJ`)`cI@4M&6s@vuepcFqpH`Fvg>5ZZqp&y!~9>paO&a zhSPDHPdjP-FODgO-Di@)V9m7_*>a4W5az%c;JzA!C%Y>9$b|mFkukmE`{I*QMk-h_ zPQw@!`g*P?e@{AsoxT8fkouhw=oIH8ruC`L2T5i8_h3b&LxcT-d&N+9d9z>rHKh>@ zrd-%y=AA|9d>Q`RJu|!ILNKV$*i35h&n>slTvx?39KHbt%|s<4Y7GBkN|8%c{~sjy zsqVO93&*$0ZC0RSv|Rl(R0dY;Ne`b1i2QYN2!$>Ywv6>)P+I0erqK}u=Y(_B+R=nj zFz74m7;JmsTRo-lNm=4i055!{>4+hNv;(H)9tA>O?s53u@wYTSI670(n02n>_gy;I zRbW#kyH*$mdJ=82s6iBZRDl!>>Kj9LDwb@<=;ouYIeuc(2nKoH6+`S#Os$EEiW@{~ z5PZ`)Agd6rANQdcV*(M(4D~Enk)qnuZ|H0`V=$N%s-W&HFle1g4Ol(zDcR-hz9%8$ zOZcXPBFa#{(%GJ0ZXbMLonHfY$r4L2^`y5h*6w$d9u~a^;hRpg<$ysEd1Wx0E9tm5 z)TsftG46P78a33yAgW9YS1OJ0Jb=&9M)ar?X7RPDi1#A>KDfUc7W^V>OVGMsHOt-} zZ~gw?mta%%>545~~1P1TDe>qk~PYCnOc>PB6r|=CJ zT=(H}{MQo`mCu&`>d4(TJqQNB`|xM{FYjA!Eb|6KmH)#y8n z?-0D2_&~1{t0qYZ0sdCN$2zaw>&8-WLmR$4dUxR}+_4^2&eHTBEel@$d!m&WC%6l4qCHPD@VMvH zjqe*W+NhG3x4|H{ZejO^&AZ;I-TCiZ+qrPxkudb~b(q?mm{&F0E zUrF@g>DO(0*!<08>eCJPWV3L8?8ApspKT=^Z94S!VaU{HCm=x3+D&!hj~vIqST|KS2fcJ)=HH=c!8x+V${tYR)$5#fg_4xpjx zNsC`bDG&7T0)yz$AfwQWBSZ=js8ph}6BtzZ=>qUfJQIOTVuq(s;8{RCF`t(je=?QO z`2z0{u+tu_=x7@oFF&pIJAiv(kKOzL9v}M#q2D2Q^j&vilXdL)A8f&jWLk+L!k18~ ziq#cQ51z{dg9Ut-V4R*XvN-mQa(Qhi7z`pvH|L#I>S#^;!t)M(YA{GG)r<;gsszhl zk(8>S@?>pa7?dKU#jvZ`2Qg3`nKY!C8wP3Kl+ya{<T;K{PtlEUmRRUu%#t zCtaf8UQUlyUS5sh92ryPU*R&!1P_OaPUaR^jX;(SgfPGJ3vdBjT17aUn!|3LPE;W` zASrV!FenO&jgR?l9Xf?w?ubowF9(BYf$QnfQNk2vqakM{mI?O&XvIdS)sd8*F`fXm z->)CO$a#$;k%GseERk1FjS2Zb>;Tk$jOT%3PMV3O{+kXa(huCm!`O;P|4CDZr=0<2iyJIJ_B7kLHH>Se-A)Fc>8LG6h~n7EOmM)Hi( zsQy_nh{y|YVHEoQBtb0+z+0o>*^2)BSA=HxIa6678*z$+&tq>2^siWl z1}i?$?T;_bGbEAQUONS1QkY;+S$QrGjUbwdmuXpn0$VdM=!+|+F3iirZ7WlE2Dcr7 zr&c{hrZ?-moeW)!)VPo+@-nbue*Nd>ou0Bg^tDd$`>r`R!NI9@$srak!zl*_#Xb&Z zaxlnYY4*0x=2OEf;+3d)HGEnTJ0yElnym-OCIcDTXTl(`;`t;)Va04ryRf%zWOl9r z-mAnOPjOglLMTUle2yNS-3?ZBnQ5ds9by{HaEUmr>_6Q1P5jdO(Nw40JWpG|TtGy^ z-JBRy+SFO~9%RJ~xs9SMiwB!(-GRSWNGKP^1!PHj((&+Ktss=sDns|7lWwm%q_d*I zYwTpdO`qV$77uz)3bZMaX>DLrW4Nx3-Fd@VHd%QHQvwa1SyT1}`qTXbLd#0HY(hXj z+|+YQ4}u+1gNnfS7zE7W3b3gearI7$N@4%8lJ!e?eg9!TnvwJMt0ZgiZhEbe=v1Qw zD?Va&B27#>&77Tx2$TGK@Dk*X>#7zP_DM$!e>6qxmf!?dR5YnCC5D;g?j2dn4F<#c7#h|aPf z41R_+vQT5%;M=HPzxd2n_%_EtG5dos{sR4Ef0hY}5BEBH8U15NC1$od;v+GlQK$i% zy3~Ii+q72dgJwEawvwp^Flgws@{ehg6|m0?o<}L~!hHZF%9oDgGOsM*`WFAsy%Ggh zL@mBD>mA^GAfi^*GKQBIfI()er;^1+jgI~}P&^Shw2Z=b8%5tffYye$;U2AQPwDHKYa%R1K*KNdoZgXEyH`U2-Tbe7GR!j0V2VY3sAM3Hz^?k)CQpOO!_V z(t(?MG50y2nUCsU4CzR^R&X0j;z|P8gCsR)D!XSe(GITYi#nPUVitgU(JCbMRm{UZ zt8PaA`8Z8BN+nB}&Me7v2b-GgxTK@65~mxrTCLMM8xz5xzsf?*inQCFe?5lBJ|Xe} zg9v8?B0rMS?q4S@b0ekNfWhnaN!sbfg2_P{7Rl}ZpA-zHSKX2NNku^&R!f2tidx_+ z0FIqYv0ygGcKVBWehH04sNzS&#Q;I<*rzt+8S$J(0k;%A@f>9xD5@AI9Ze1t^^ZXX z5yUpy>{6#Djw=3A0=l-53qGJmb zG;#D_rW+~A=C@fRkfBcS0Ey=6M+ufSTM#SjYwO>vf`g6Q&qod(p4-!tv>+5{vf(j# zk{}}Ty;*kTeeHc;TQ31TT*=>WwsA$q@$7W<;N(0ravQX75SMas{j&&r`Rq0$4S~op z1%qm{VE*$q2Q0-{W}Eg<4j+Fy&t$s0iDGg_sl{+oERbNu*onX)bhk3A@>KqSyfjb^ z235)&-d9Ts@j(`g@A$u@H9|p?j>bBYXBGkr1`zoF5B@6xK{vC+2OQ60;r{O*@e@!D zgwPuo!_kuY;h_QAfC0517}U7Bpk3(kgH9rnb;U615g4?zUFuyRM$K^-rNcx2gQ@W^ z7j+gf0fMIHq{f5C2%#an&@>oBf@+VM1~X<4Uou_ji#BpXSx6!&{2sP)2 zB*!-{YSU5hUL9!t{~Kw@$Nygoi@_V1$($boe6(kRFhgTK=%R)i`>*OS)qV|Rg|K=F-uh;S?QCktF86%7$Y#kq-o5$|*PuonI zxWec%?nNC<9s!%mti)XpjQxjw-jyd?NNa)nkCSJZ?~#ubUo%ano9g&6@XjgZFJ7Zu>fh{uB|2i$5}txhJy%|` zizMQ=NL)jytN@KS7_3XA$~{8X`w!dRa;cbQg@VDst_F1x`FH1T(!v@1+%9;{Tiv;s zi~j2x2Io*)Jx+=p;RS&PG3kn*c)2hZx3}1V8$Ss))l99A@>t+ex^&sPErSW?z~EQh zEe5y6R}ll3?YQ~Qjol6g=S`0PBtR8E%4V+$MxwH!!Jz*I6Kc5g){0-l_~czS9`MDg z6y=&jeiO)Ei%q1ErYW1jim?}{_P5oZ3F>g`sG~zncnRY5RW(lw^M~wAqx|DvCb?b! zD`J{($X!Kd#wrPl+`$bog2CxKcnreCH%~jD3oM?tfbVJ>r%Ri(Q(@|XlSxro_{9sK zpjR%eJK8!h`k7X*q1D#F{>%d@Lsk4H1Xr@skEpQI; z!C=7PJ)yzT)XdN=Hi}|>TTZ|yGSYE{aNG1bc5yvv@}!9W7OY4*-E;F2(gCfJX1nsQ z5Ujvpp;ZBX&Uqw!+&7omGam;Z4)%+kwntM$>2H$LcrNI3GhjtQF@BW#M&W>Vk~au7 zO88=B#cc?29qmFVSJAR4UPbVNdHNi!K0L5G#RP->HOk-G8fcwpYm7$c!2v z_^cKTCe<zdaf-LM$9GCUZ~FqQ7&(3{*o$71TxZ}9 zVQ)Lbj}d~s0)h%x@8R8xWd2M#qyHaR(Q|MM@$1FUc(#VP{X~ne{|yY%5r>SoOze=# zPq;C+i>tL@u-g~uN-LZW>mPDnNZ9C70|tK_!jYpp7!^M!=o7@KJsn`MDlH4IsQQgF zHs@{GMcotw2GJSWQ>`-GT!l#AKXCg5xU>&}7BAjsHja9r+sTo!*uLsAmY6n+-CjW*3h(!wduw+F@tj~iMG;crbYakN>w ztaZo6E4bTj=bbY+V8y9ce$1*2sX(i&bdSt*ga_E_UDt3{SOK4XUfrvvRVu-X!hv+M zmQf}MbzueMDP#0taIZT$r#2wn9^)UoF|?@iIT#d#xrqB8{kZC%q!VM0^gH1h7XQ5Y zbG9kCxRqsQ?CKYe@S_s?z(w?n6H)3*=#CtRGd=KEEvzWE>Ow0@ao9P0|FDbox8OF$ zXPlKssf$WNymM`fds6+t;31|{3W`QW7x#D-7E4DJVDOugX5Z@;uU5v_ps{oA!BjAK zTB_ss-Ct_cF~YjjQvNkK(}DgecXAV16Zt|}Z{zU*Q4w1c0$+wAITY6J*7&7!W z7_{MhlVkghoqu^;G7rQ556|lDkw8QMqIC3(hrg$7{r)_#qOnWeT8$Ogh@f?5Mm_VzGo`)-zp)h&7^FrLiS%(Rl z{YyN-irN~tW5xD$ii4xopAoL;u7JTwMeT`w`?&*I*34Pbql+G3kg}fPcnd2Jo|)lN z=FUpFV6ggUJ5y9HBf7wBP@8gyIROTDHe%bT$0^Ah2XlyRq5bfH<$Bo7oR!56f)3T* z4tifK8m!1RU5d~N*!7|Q-u$DJQI%lu3QlYc6_LhywKGlW$GQf=V0%r-fx@x#*vv9) z_REk~_)DxVPDe=GwC9d0_E`#Z?ARr+BBG(RS$@k9V#u;=Xa7iqFUVV{;~4$DC2i-! zJEb$UE_kkEs!B?4#v^+WL730c=dJR=rqbQCw5MG|N=lVg>c zr7@eTvDAUVh30^xzIBt%8bzZU&OQyk0)&tjW+Sgz3Jzck{K=b`aDR10dU-6qf1(>_ z#b0k``3>AdJ|`>Heo}JPrJG4ZRv?7%Uj1#eTy7-~#2dTj{(tP9c~nzp{_t-?2nhzr z1|}FZ2_Y;ZhD8mCmLx0*`=+8&Wl33DY7wbowVH%2AYur}CL$n$T5CZai`KR*5rcvP zYKyHM10rJUw4kJKQQ!1io3UF&^TiyS!_ zU{LrO2&|c z@P5u`Kihv1a3_U!Wqu^RZwC&3Ib11|CqC+P59d2)FLqm_hff7d6ZGd6Q_iH31N$0+ zxOREqGL{GiLpO*TLkvH>yE?rj{3;k+&wJ96vNbKV1J)pQRZE2mB|E?tB-<)UEv`2p&qt)Ueq1DCKl9^i=Y?#YSysShCK8&Y{Vf9D51%e|IrG`-ltVyPg(GD6ROl@EFO8P?b%^*Jbc^{+e)==J?YDA zP@m!Xcx3E@XZ4E!ftSx^_vL|smxZgjBrvG{k>rzEs76v1+bO-O?CW4qOqh_E{-PhR zX&5h)$8&ds!D2@z4`*I|yr=mWHL|kHg?5onC6!%=KUUU*Q@+YdR$lXpmW_*O-EgZL)v8Oa>Y;?v->^PKH^U9!GPcxrZ)bMS zP{TtdZnmcEG%&b$egwbEt8F9i=1TbpbT-t*>_IZ7aC&8e{iRGb5A7QVxpDK?ojgNshB+^m|VocYAku!Wc19KaEM zHa7I}pOBm+9WplyUm^TBbcd3#gT<}+i8XVDjH=+BC8`W;p0(OMui7tOIc+qu5*#XISyv&QFw5_Xi z;T@#P57I-TR_B^IYo==E6D{%Jhy~#rEVbtbSMXvUM9N%9&0tXXUZrorc4sSPV^VZd zNsSvA%rBNakjI4hMrBZPECO78z#u7lfX+UhzzfGYnsiQONx-0>exX=Ca*kSE*{PEb z_tb#F-~*hSjh4XJ)gse^R5FC_g?on7Yx?tzAQ9rdLJCoso;R}`Iw9M z@2nUT#swP~=yAU(xx&5|$s_+T(FUlP@{XwQz#&wGMA zH|_lu44(hUVclnzdk2zM#i;Ildlf!HdOANMo{)BgBIFOK%OC#;e;n;^JMPsQ7rp&; z9>x=G?!qVLX9`yE_Hat-e5`_{|M-CopU#n|P4EsBvV$6{^rL#77(RStsRBuxa!uHR zER({eW!@OD)t-NlcXbY-4Or2ZOu!Tczdd1*@8@QlvAVHh~XpL)ZvL){PXb zPwHcP(KTJ+;E2bOz$$v0vwt+F$W1#=*a8Og-mglySs&}HS)U}+Um(G|IXnC!n7RJP zylP4XuHW%0vEYcf!Mt92C|O0;AfZ@RE!^sRm2UGy<2>Qwlq!|Pi}wpS;=_wcue9X_ zH@CV>tG~bII}8TLZ*uwwAAB}X&|zmHK4#|x22+AUM`DK}yxJa>ZJx)iF#&^0eM@Mq zw29nb&*0RqPnLi|4>@_D&EI$c>j<+e6l;LjImG+?y5e1__2M7SxvpVF!KVRgn#a#a zvkz+dm)~{vqJ9V8N|v$wRH%i5((>%daoC|oH~u7%HbmvJcu8P7w>dSb@$`Wqhpt-=!j z`WNnbAM8ZFnnx~g=z?#Sk@8CbP2;SJ*Uo2PyXKKrYK%{;DOqAmof}0|lH_9`RUp*kCB1Pn08A z+%&wFYxcO@-F-%QKAsVNQv7u*eAv-@x;npcnVMZm(8cLulHje?d#<-71vv6wo2+~O zR+0+ep;_h|Zy{|oyx-NfOEc!)4xd0`=p`lHhODqaLWk3Pb$xMQt5+zRPPHMXkL6=d zBu~1Afx!}lKop#yXnMOl7N?$fZY|OJ zG^tj>myz>wLxc7PH2mt;Ick4U{T44Ao>C2dxtHe6m4m1ypXNwagE#x2B~g5)t|qW zQ%95KngF`%2VgMc@O;Y0hJES+?_-tTzq>VpK`VA;Un{q&^IJ_Rv2~vkUdFTZp=0~h z0i8YU3IvJJ$-xoJvnXfQQ>zy)!A0rLe`uZq2H!A#ok)3NUq5-D)8c5-0*_dI0ADaq z$o#v%aLrxY-7)ZHt}n-HW|8)Mxau@lHj!&F2+nHOl6m^NuS0ljQnGl0E5d<6hpLvt z%G*0k`1abg@25!z!JrMVMsut-BUs;DZ!m5q5P-qvq=g&~v1o0n)R4~$bAc}+Meg*b zKb0LzTu;|u`;&1CURjm!i(HbNo;h#n{+ihs{sjk|)emg=dg*BC?`tmSTlvXY9bhn3 zw%TKg6jFSk;bTpgYt=O{cvPH_m2fw7nEws)1ZUU}ZgmQw-gA*QjB3ZcE5qX7VyWDF zgLEo+QX0kbT7aajiGeq)F?!BmTu+7}C&MHCQww4jxQzN@H?enOQFG6#k-A@1@4~xe zv3FIQ6a}Fh?D&>6%~bU{aK!O&iZ003+3}fk#EJ#X#qfDK-iX`&dGhV^IS8#sI2;LY z$_F~U7>}!oi3dcfwk&}kyl1ssTw#cHVsSP? zH35T(XL-XNoG!Z4MNCEH;k~c;;)Jf=K z-Mr#%xJEw?AF=is-x^!61KZtr{Y*H0pC}1j#`0?oGv!@b&R$Ms*Sd&j;Ct<vu_882_kij4%)0S`~^X z$1bPzEhiFHyqStp_^6z~=#ERQt`t&FN6<+vlQrNnRyucQYZL3Qa6C?x$9-nf3kFk0 zN?a`P^NINz4PLG>sxx5FlaAZu|4G{q*Gh#qI+CuB{olVo`Af-BHs~_qW(m zg<$Yzfh9tS)g;A)65A%*PE3PA*?8gcF-Mw&xAo@LuoWgtz~HkkPu`vEw3J-VZTs$X z8{tj)BJ(Pf_~}&Aq0UOilM_7n5DE86Eb?-4uNgjXXC~h7>IBZ}MJukfLn?F=$FEbW zJ}Bz}gSww%FE6w%3ol-LlXNIy9Nx8d>M#@dV0Y(*xd}X^7#B-$MAh!%HN|c6)woMM zAG+)ee3mRJXMXRfz&kW>cOw5NenBocqJ-D4l|N6Drpg3K`=)&1-_nr!dj#3;R$msz zaI-e?mi2=po~hO+SL|O&Qm#;LXD~dlV9;D>lP-b~VgKzHHso`DgPY)#-oyHVxn0z4E-h*H5phQE$?{XJ6=3 z;Ss%ZJ|z$RI#4qkCiEXS8Ew=RUw%Wb?@x_@n`mA-VTNy1Ia%WuFDA6F#3zxb}* zt9MR+vGGNBbp{yJ4&^7L6MpV~ZZ1?$c8|b^52W8_z0*3U_L`WC`&t~r>%bBBdhe|j zWb81%yY#93{RibYz~HY_zg+wywdLEZ{GKV{PzZeBney1udDrY8OJ?6xeLL%ign}dD zVxzY2{c-g0+SzR>2iDZX!FNJ?+J(AhiD#2mdK9zr;d{y6x%U%2VUTWL{B>^N5pK#h za8}dqJ@ZXTdO{vLetzk|><)OnYD)L)?Yg~ZXvgf`i`UJ{XTTBdB9y0Qt3AK^>g7?( zp;s14FxVfUOMLRO#>PTDJ5t4*ya@)soxWJ*QS9q8xox-SSF>lsp&;f>{F%)!y?&eh z5y9>}@(jKOY4+jr&-_=;dM-ckTl>AOMYGU=2)S$GY`lB*>qkvli*f^+=7YiK-0icz z2lqz4_}Os(@1I(J3kHARyW0Nst9wVdN85J2c~t>+gEal{a`qpmW@}6L-nwyWR+|cr z_)PNp<=M11yOvJKkN#Svf!D_)`^nE|>u&98d$KFnO7i*zIO5GHe=m7V_CIT6B=1~4 z7_@8V>8QdiA{Lv4+s!F~Pg++OuV#HCeaJ5J#+9;^c=#Y78R>04AU5ulbv#h;1A9si z&T8qfUvhNNQO)&HQotgD1pZaDKdP%ZpSC#YH>b0aP`m`bHp?Lg9`-I`=%^ZjAhmtF z891vFD~Y@E!B1kJhFZ}v!p|x&Xq)Av?Xqbq7G^n@b-7uLgTXMOZAyT%;IiWn+{=z9 z`!d1ciDQ))68hK&8fxbW`koe*fx+<5eGLcC@l1HeE-Q5|MoqI-rc5F5@h zA5h?vE6d~#uKUD1Ny9UfrY}|Bz~y-Q*e(CiMXvLqbyjH#C5ORTwPlulOzBxZs=Qj* zmrNLi?+JCajN=TYo)_*+KUR<A$%w<)>`wrwuUYEKb>1oZZ zGlUOmJ_nak&Rctbp|Bb1xpg+~H4U(L1)w`h4&f`SQp|@R_GOym*ej zhbqiw9kAdGi;sh|nyj+1APHJjscaR-SNA!5b}in;t(CV_aIWuz()Ep$0US7D8^5}E z=lQ&o#ur@FSSd6HFxX0}%_yMEr(_RKZ3vxKmxDp_0R1AB*?Pc)cH1?c{sVj&dHA_4 zeK;v5tSc@0(P3QV065~JvV2L`#ty&44K#JFBN1LbhW97dy1r-W;B`W1XP%w_U$wBz zUo6RWsZBPXF6-XD1eXlXs&LH(22l}=D`I#g?RMvrz~Gmv>$D{?Z2hpNIiGiR2Hs!g zgi<36{Bhp6;}P+wH_;ay(X``q`I^sigrBP9FPvAHz$dLEOvDGc#XBF~bS=Q$Aaef> zj%YK|nzn5;-bNKN!Y;kDAO3VWUm&*h$F>|2g|Ys?`r%^05!FnKVM#*+i?F3$rno0p2fpx2|H`#!d(yA?(aADvupMFZ{0s)a%W}(=3^yu6eW-TUV{LLUsE?9(lN3CxUuR!` z;hKF3U=a5_Y@_&_w8j+AP<@=;%nC4Q%G;JCbf-TZjq}}otfdQn9W_6;)iQ|D-@WJ6 zIpcL|0sQH(uTmvScM{^F&uty|_$e4ZX?=m160v`sSBiDb&2?mze;>GvsUD2xe4MNi z2~LXlt5(DB99t(|sMgbEtH<@y7*4sv0dPc%Fx_Qy{d4C!@hcbqkVo*b6;D|v6<5Ze zW{!=^_t8qXgCn-Hd~LWc`=SaiJf+IZ@4@R;v!n$~mfmOH7quV!@!9(=@XCtTpfa7B zUTM)_JOjrsW&!-p$J?>I*kCY(&n5b$D&{??GdngJS_|L5++3SBQM6y?rEhh-%o!uYCv*e3 zr`LGtW8Bv|wRUD`&$)rKsuH$R)>*6xQr1wvDdKV4!Qeu1p~t#>NuvaJb!!^`i8~lv z%4P7*@>DZPiJS6gbenKs(DR-fUas=>MHXPa{kXYQFnG`_IBwy%uB>jpL+iRhF9sN7 z^ad=nZxng37I2GwZMRUsU{T{)ilOa6GwZr#@Zo$tPq&+w*)r--AEO$j`NJoI8nFoot}{BBpbfFKZ~9IL z&T4Y)BmcYR&JX0n=fkV``f4zEi4uf6)3+eua6`-a?3rcot=13Cha>7FESg^_RmRua zrGO(cN#&GLs$RwqsO~zJFa)1Nrq3knYnjByQ?;Z??iBS2I3l5=qy>v%Ae3VzMCk=f zdoU;}?UvTqnC9gIFr=X z?2^!T!JrSu)8sm})xYjm2g^qq6$A#0_*Le8&IL)?KhQX1QOssAIK77J8 zr;l@caPxk6ComvCu{>yGW8+4z-9h>J;qVE)Z~UZ{qmCe7SZ#IIHu?T_u5h zv*vTGmibtnln(|EGVrUB*2+0|r;|H;Mg+ z20}BUTKu_&7Wi;J$V6Kfpc6HX$828ha6$&}=pMy~Y-+d6Uzl4U9ygwe32%`l`Y?B$ zIB0oAML`rVv-2{zjGXd8nM21~=AgUu=;68~_??sFneaoWgr|NGjl?6tEV!K5C*vMh z2j#p&ovk9}I2#TUE)m?8Qh~YUlW&_*XOjs`#F6RBbgxxCvXz;&cG>&#_}}nuJ|u*}+s6_6LRBFrD0dliOm(ZP0KQb} zoI^Mx`{ioFa7Vez(mV-#3UQ{n-+4`BKwpZ7I%%vW0>0ptQ}Nw=!|)B4{@}e>hm93a z!E&0^2+psDMQq`OA6y|S4giB%^S0x|ec9Bed7pRhZBt0ewX363~`cNF;!WZ?KU353|RhQnTeH=&m; z;M6axXoNomID9)gH30Z(EH$@O$7EFc|rCsbo;{@afY}XH_Mul+VDR`Kl{l zO?V&q_@^tDOLYT5d%)nmSA7*uV~c*9xc6}Hkwc#FQF+U2pLN^%k2eNbemh=h_7vWG z?0=b?nM8TGBh?!f(IzvNL&e7Ybq!Y~kKU@zI7TOS9)8 zz3_RU8`vfHUY9@ZzrX9rt`g@#cnk1wEN6}RY%7%}>SN|z33LNoi!tLGV32z>|omn$I`r=h77)-_A-e~s1 zKl|gCWUkT26z=VR;NoKj-}N?+`xRH0T(o&&-;T$B|Iq9Ya8_T* z3-;H%Zalj8(B8&3ExM1vU_7(l>CKZ2&%K8h>()Pb3#$|I*wm6IC5#cLqxfH*u7uYd z6S7}t)>rKPJM+cU74M#XZv>px;xE6-7oIBXzg+s}i+4JEj)TE1Rvt@xp4@$Bg86#! zjn{SXF2MBU3ajUPOAsV#LULrb))E|X@0-l^vopD#g(>|LJr4`veZczQm0upgy#Dr` zt~Wzg&sV)g&0)U!h0`m>euC4d&%%xj!Lz#V*YAV&+et5HDfsYl)xF=3&RG9R>*;@~-SbQWpRvfY zp54|H^wo+7gYP_kg&^=zp!A_}LnnU7Oi_B1!WEpLfo}j+7Lnmy(znPmnU5#2R8lZF zljXJBd$+QL;k{qBs3h?@7z{YWs3@CkR?kQ%+Et`p_#|28#4_F|#%Oje%XqsvMc^g? zW7n)euoMv~{ZZdJr<+H?In^D_tRsZhaY~tNx%NjY5e(LJ@$>o3A2YL`9CXO*;m3hN zdGx!a$uqX^`9;@gBdnCeV36rhR6`QH>uxew`8i%JF9L&()iihGwxtSc9`WMhR2h8w zAbSJ-dG@krF%e}rU$(m40vyp}%-P4eDJ63%#!;_(e;7Ww=E~?aBu}zza#h{k>x(#&A!|;pWqzMAv`#%wL(tK!7!XBrK>!&-uOx`FnFS&P*l596^Ri#Xskad z+Xx2r3*~E{(9+ri((=7B^EB}1cpxL1wyd^>uO0t*J@ zA0`Q$)$|ATrp@jH8E4sH`W@Cu&R|fRT*N=Xsl{EHhw;7Dc^Z=ZixH#g4j+Wy03ORGWGv6d&i(>7 z%LNU}Ti}R^2h2$ec)f#uT2i^FH&YG<&%f{vx1c+*H}&PXM!ajFe|P)~)=uDZF)1qnADjwGn+ zihOS{$H5Up$dCEQmWPx_oRiRJSnt8BNBh6oJu@~Q983W=`;OPm`{0NR&6MS7@8Udj zn9K9u5xK!P_H~7J6i6@D)Y1E9Du~f%;Ez?SqOT=~6(Hz8M`KjxmB1Hfs^!rk{9KFX zX-ViFERG0okW)4|sTM>m7E!J>jBgGV9CB zB2Bnm`t6qHkHFvn;qw*t$GG)(Uh?y*i@V{ot5MWjPp@|$JILbIY|##$gx{;3JW3@qM2w1^cGPuMUaX}Cq4qQf@`5$$*fy*X86vP*5en`}T!KijB zc`KzmFmEV?_hWP*{LU%!jItkdWLnhpN=QC7axpk!=go-5_1Wugo1bDXiw^FE%h_MI ztfb)C?mV(%aYhiu0=_hB-KFU4L~!!XI`Vil>0~-Ms|4B>Q-6InW4%N46^HbK6JW47 zz_n;`2+KK1*E-l-`DPv%G$-T>xLP;9@A9*<#Ep&$Fu2UQqa-@Qo^#p0_yYgX@oq3U zqN6p8bBY%F=LP0(p!6q$K|+&^LBuJr1U@&}rbwO#28+MsNi-dHDmU$9;wbLaJ}`(6 zvySZYB{aOtJyEXZ$k%|umP2xbjJ&SQ-9M)yuCfFkQ9Q{lBz@7PPx(glQ7*4~EjVJ^ zsL&#wm=As@Gk+kmJ>^ybT7E zDwh>);$0$joObpt4-JBM0=-Uff8`hK;Hu(J?)+0-Ganq0?9g5mVkzst)@`2@x_bTl zV6b>+%7@g@Dc|6P;?&;+qiJWFX5MN^-9VHgK0viQLTmPO0P$@wZ4T) z6&RE=W2s5ep;I2bdjDEW`Xm@+zHdAHt_{7?bqF6?${4K&gB>hVn~a0AzSetLGfhp% z0)ry$RLpc)(sdVE>RDyjYWVjp4`z(m;$yswXN%@}Dv-B0%nEmg!P+L593PDkqX%3EikC z8uU%zh{1(Ls?f>-%l_sJN=VmM_-O7DLAc-t(uwVeE>BdbAj6vg8cltU?8xuMsGHK< zV&3BWB(^nYoGhcItYbNq5_L;0e57+WPhH+WesU`acL8 zx9bdNz!6y=bREw2<>waYPgwX~J_}!%QFf8<*~(h_?32PNj>@;F$w@n6hTNGYQ9Jw- zH~JsVgEu-k^y8VQC4tB2Gv6KXaDHqGEh9#ZV6n^P3kiHRU(+?Bg>uL$rS0QZv4fTr zI5S=n(X<~7DpJ%bUrI5HQF3s^b?vg8+O{p` zTT~k!hL&4Qfx)OAmgh~46ehnQQ@%KA6UOq)JZQh8odpq%_BN&`;s7+=V z8b@2=gPN!5Er-CM`N(II&Z24Oc6F-crpyXH(oMFxaw}ZlL2q_l7=sV6^Z-XZ^X$=s z=o;Oz@9g*?71~}A7}T5*IT0~VNJXZ5NQ%rHK7k}(!z*VbuIB#DGXHjtWiGs0)eYUx zdP0*PpJ``lw{*L~XM)WOHSH&co9{0@lCPZ+G{GO_XnE#Ueie0}_;0HPS`rgJnisWo zE=juJaJK29cNs^QTmZHzi>69^8d4SW5&N=v<_W`KFf(!`)6uwrj2Swf=@+yTemQc? zH&8=8Wwjo{#{8vtM-n(9NuR3skDm0+clL^N9P_XNgE4z@HwCB zD%XR-``_5BCN0e64+jLbUIsQ646Y}vD=?!^U$)}RH(M$8frG3N`aadw=2q@$yaTDy zrWqV@vUMLmYvDRtA&VzpmsMQ{249p)ozotb4GhLt{-g>y2CtAQT_3KH;i!^^E@gX^ zrVoAtNNlVv&5GpiNl_tssyi1xdYCAr7kIzN>!V%e@!2F24qV1&7X9q7NM7k*kZDNZ z7UqJ%Ztd-3BCN00l1C0%(G?1xLM9b`l;+(-SIIL@VkMOB25>}WaSo$wqq*wB(NgDK z#Ii9kc#-t`SlM{&GdtXF<4GY7gJAG+>{-4;eqhAB1T5M3ty1{r3`xqS+dHvuK3g-s zz-!lQQ}{^N+;e*>$@{grk8syFdp_LzGdQbJZ^D9NoANg$zkJHr8{0Dp2d9@lOR0GE z`p&mjML`}tvtTgqjeKZF=2Opsni+z3&G8jraOZ?7Z(;VGx~Z-!1J7p%e}jUUr|NC9 z7ZVUH$+FnjqP7IeA(s2sbvBh)oxHuNYQ@nU-&dqQF_z348-y?2g{`O$sxAFD>c~ z7?jMXxTWlWo?-P4{^I|x4PTt-P z-ziaB^4Ent`fA_ar+=7z#ey$(+`n`FeP;bhT~uOqO4vt~<Y0|t9d~5R0xX38v_FK$Y3)Pvc-fa0sy|+f^JL@fgMl^0D#whLQ^q%Ouyn&Rr1*1{KM?QPzX;aeU`rXCYQsfWiGGy-`0TMF({=Zk0_= zcpLzOLGI4>=O|PJBSjXN%KSaSAVx^TopBVG;qbhKJ9K||`ycX{=0I}@uElwTEhmNe zc7P+^(#YI8D>In(oK}3W%=IQ1WX=;-)3E+|o=7x;bd4IoUO89?R?DfOCJ1WL2T@l#68q_^44k`x&P5y9P_rUyEQ42ZNK}MP1B37TRr}R4y$Log?>U#HJ%dkJ)BWeI*OA{{w#J9Z z@1y+!Z*p$xWjtaYlXtV4Rlb!>gfFhx*I{@!CxwDEo*ZwnK$H(IBbiG!(fIl0nzL(z zXgDGp42p1BA#yUWUdWb;OeiY&xatW-FJ$l^JE)Gg+M1sUg=ZBXz+#lxi*%V2mMX#p zOanBlvq+C3zFy9)jI8%oC8bRlrH7V*!C-k2jd#-_w2Zo*xHj+1 z-@#zgiKr~xwfTH0KdxLXl)>x9ex$^Bx?iqqc~4h(7~Kax>-=cU(DJU(7i-Po#?`q- z!I##!)AoLR6|*CJt&mf@_$?|Nul4s+}- z0)L9Dt8u3oSlov=TY`{29S^@(rFkAYTEFo?QNfsVm$wIeV%4A`XuB{z1mXh~qQcbV zfXm1-XOiW-v?nYV`Z%E}*BK0kkuv?xsj&3jq|D|{0|M`IA|wWKNM$(XT(gL5NaO{8 zBQBI>aeO^G2fKM!A}9Hx1z@m&Y2U!^v%>~I@qf|nGz4!PbrSV8pB%G98)-rMXT+oM zfgEnQhrTXTYaP~tUq&Y6!J8_KtzTzXXPs-FkmYl574A=P87U*a`26K6KL?t`{FWdI zzV77jP7Z6_5Rf0rEl5x{=;5n*=?3E#m&_V2D?}u}HCD|6XEi2qW4K*kM8=R@qcPku zPXvQ&@z!DlNmlR?LRq=yEt=ytS-z-ON?A%KyF1C6y4t`IyVEI6`x=6rT|C^B9c(Rp zuLGv;x)#@l=Smpv3+&4oG2n<^zwcK`zt<32i9L9X@GTD965++VlLc;vIR`UiuDITW zuOE7hxp9dEz5Y|;c$x1@yfrwhALM@La3C+jw@p{SM@eyei|Vm7);aRBiMCSuXUzpm z_7C8QZKrYUBMr*&E-TTJ>g8{7*207|90@nRMwvW~WlLLR;3*))A^H(_Khe!zpb5|P z3|jzSlrzNpYx*+yX7upGrdxe*aI3n>$oJiSaD>A&^DlYBJEFmI{w#3XtPgXEi;2*U zwGGJO?V~+Dym*s%zJo8*!XLpeM8FXPM-bfV`D7~LL6~#61=9%(F5w;05X{y9~C_64zEkhYZ;!jq=g zwux-)z1o}f{ujVyw6f<7hEWJATf>w?SW75;ZH?Ytezg0Ha|e~=k|yPp7{C!PIAu9g zM>o;2FIvYx!RMQRLF&8s{AF3K#Y~Q>`ET0MGhk4}n(A@JEiC2LyHUDA@$jbuDG=HE z>mO2#Zy9kgej_Lu9Fg_v0x4%-!)GFlpy1irD*`asf2xl*zR#}5zSjGEIPCy@rfUVo zYxo%@%;xg4r|r(6*WsOcNk@`K7{V^h?InD!JC6Cj1h;^8*4`zU%KA|KDJuo zk#j;zls;fHNjjxd(H?L_`yv-ji-(hk(=uykDM>nG`{z7w=>>+p1e{e@L2%mNNjKY_5@ZX^e|U?d+MJa3oDz}{!`^3GAM4A7 zH|2W*eA9Tro4WV0{O5;W${~QW`g2+gH&9g(^C;$TjHK$*$HCx-Whaw1P*Xm`dB)wk z5Vuwa20OcaHA~xiNm@&h>(;EuqhQdl_KJxnZ`y&g53lyG^9OeVXYCdKBdbi^N4GOS zHMMy$4i4D%nA+c86~^ZI61V1xHdTT_i)ak%&XwYiiA>UR?w4}-pnSQ^H{*ntKX3AJ z(OQ{TD+L^pK6H(AJj|8m)71q0Stx~*D!hGrbS82gPh>3&y&l_^S1it$!#QFJTUm)GGZq}6*-l;xHG#0tBb&(dMZAMXg3(1 zZag1~ce)EcxlXwCyBjs9sjHzr=hT-j^>N^cZL7Hi*L~)Nl!Nr+9ES>cOOA`|AFQPc zd5_6i_^yMJA#g+qOG*o)Yx)VP2f0!11n_f=M7_ycKl|@Px(wMvVsJ#OpJt*gm~}s` zY5imEODE(h801W(Wz+E~@;xc#H81KaKLUdj>E8Eh`cmGclplU+Dp4&B4|X+j?R$R-sVeh z%w7+9r}NQU46O?HW}622HM!2dIvB{@{L@lsL}bUd(~Iur6i0YIEio&18+Z){duPRY z72DQieH|e>{&Y>&Dlqu3^uGW4KO+qWk53!J7%@Z6TIPi8;0rM5p0ce%vMFH2iX+{! z-n~M2Uw$TacB|N`OEf7+-+Q7W7Ce7|G5_n}w7;&%EceFjHTV}0yw<+z1@?dT6N#k1aB4-_&$}$(Q(eV9J2$nqeYexdjqS1sg4b35;&T2O&+^)< zLU2||KOgJ5blB7L{Nn|$y4(8UU+s;ZcwKigH)0}*x2q%dtLN{6BfgmJNZNPoso?56 z|A_HSY=t+-v-ZX_y8b$I>qUd{7(-L|SyZ#dPWk-Sh_b?bV##{GBc4Suj zbar6Xy&CxL(?t_uM_yk~t@(7~$m71I8&=?msR213by?X5b>AR$f;gf4Ja%gC{n ziSs&n=Rc7ekIXm+AIx`<(_#uu1kn@(>!&fU2Z1BD8ncpgn=2py5Us zlzeeuf!|x4L$XsyPOQQT)GWKMvVN+{4;+z49_RXds5uo0JMHu|!!|HTvZCXL5dtTo_5~5uxBLVqnZ$jUh|yDYh9C zF+wPZ1aRqCX66cZ{yt-EgUf|)&92Um?UcF1E^K zlLtztOtu;sd{1-4tStgx;Rr5cvAG{5#08UybU6O?@*eP14#osAt*dk39wr%Z@N4fW zV|x8Un1^A`SCr(bQxR}B>q-!{;tY@KMzhBrWE*!vLw89dI0KfQg?A7nH3!r*B*?*F zbTd(>$ip^qKbY58qF}g#LBYW^S3&y0_`J$2fmm7szD*HzXQ~40hv0b4&1V~sW)(al z^@sV`sH7;aLC$kXN&w5jr17W}Y9sEfq7LKKrFe^n-&%#>WF=CYz*F<+n!q-AQ`|~O zl_n%8ti%g&UAQ8i1YAZPug=~yp(HMk!SbUhQWa1TW9%)MVE7CwrXe@XShGSoglfQb zkwz^#aWSe)8G@LAK`X>qc_Y+3oZ_;`oqk3S1{Vhs)h(g({L}q#eq<>T{LRc+q#%dq zr)7)H-Ur7z93Ah^A8d6bxF-4I9fVRSIEzT-VW}p$q$v@>A^}PnjTqZBbu|(yEK28a zIq-gMnWFQd$i>f3sQTD1l>8a^VZx}mUCXNxY^nmmU^6k^;G7C1xK2#9N)SirV%T%) zxL}ZNOEST;5iA=+MuG|z@TR*0LGs9I#NR(5L8mOn!smVM#ax`fy|@BHBqH2kwkb5L z7(Xn=$GM!$h{GmW8;|FJa)=+NPQ!MmEcso%RkK->{{#%GhgFeszY;8wi%@%UlS(K! zi>N-Fs;tG{PSOFc%R((ZgJzjmM03V)*NHY3)d3<4HF+IhcNClmb;e_nl%#Ew(G^ADPYh9-|JqF-)>Q2^jaY7 zgiB2r>GkY1BE3e`mo%9Sjfg4TIe3NjRDs|zxljiArwqpZ`mH6T1&m%C{0d(2ooqIy z?-gVuGwQS5uYe=^8j!B`k`(N}#lnkM@|PIIRPfuF^FwH~x2WbYh)L)g!CSO*Y=mH9 zGUo6Wqe}#-tM{62Eh)izO{=`772s0TA(#@!l9CdNN?;tS5&sP_gflM& zk*+J?n{O6*m_XcYcB4dmdj1hx(+p_9S>(Vbp=EaW)BBuV^KR^i51#rL=5!)eX7vKZ zz2vW7p#iZUn$DVaD~uH^7@0*JHtZx{FrNa)m<2bMi0BQg= zfEqvzpaxI_r~%XfY5+BW8bA%822ca20n`9$05yObKnMi0BQg=fEqvzpaxI_r~%XfY5+BW8bA%822ca20n`9$05yObKnMi0BQg=fEqvzpaxI_r~%XfY5+BW8bA%822ca20n`9$05yObKnMi0BQg=fEqvzpaxI_r~%XfY5+BW8bA%822ca20n`9$ z05yObKnMi0BQg=fEqvzpaxI_sDb~t2F5bUm<3o{ zr2Mi0BQg=fEqvz zpaxI_r~%XfY5+BW8bA%822ca20n`9$05yObKnMi z0BQg=fEqvzpaxI_r~%XfY5+BW8bA%822ca20n`9$05yObKnMi0BQg=fEqvzpaxI_r~%XfY5+BW8bA%822ca20n`9$05yObKnVh@d2M5zX8bShhcg&Ep#Xhf`?O8tR-B7_6W1?PmY;uCxEi zJ_bST|LZ@`GyVk|Hzz$p=$@=o;G#P8RC1XnxH^1pia~XbbuL5hpO=?u#u0`gb5hJA zekm~#ER8~!NM`EzxH$5)E+?wIv@=6>yx;QT+!Uwl)(9pY4hZd&3d|PM zS#z%~a)#mcHz`%08Dd`+iBptx&i#zeN{^k!4B*l`5sVO<=rT72RTGL?VIsI}PsnDL zx3al&Q!J@7q+p}NapX`$n~7n)nv-G{$s_O;%1?4gB$es8Ie$hvHPl=Zo5xWy2G?Sd z0O6bzvk33j%2(!+!OrM;7Rrh_e>dI?IfV{) z2u1%TN@Ab*lg7hVX4(tH7QE&M|fgiO?j`x$R!lewSqmr0B}#c473S4^Uhn`mx|_4EY3z&oC3C2~7% zk4u<)b73frrinahGEJ3<;OFuLwclYj4^Jm~spQR`SEA;oAa2E!&BF-%L_X96DMHiD zNimCLusu~3YuTPPw^H-}w@&@f!|eP6YrKp8NXhWQBD`Yv|Er?^SFKA&+KalmRIDJ4 zZAL&aZ2!4+3Wns15g=H$h(pcMjjGG%WC9^m$=Auxko}zb8qJ^xGxz2*J_4EEE~b%e zcU4u%Tpo$Tc~Ur$s zs4a6pLd4P`g+jswe1H(A$iU8hLNK9+Nd`7s%huqwDZLc`S3CHhYerQVOM+!%bHv$5 zIE&OcH;T}KFy9UrPghiDYW32p|I%iWu14X$$Bw$CJDX_jO&L>w2F)2Z9g=$iZ+M z;QtYo4k${EGwLg10FfkUj4J>M+r4IoWM&;l4LvAHhSm5ykTB3_kx6q#rDkc^g@7e1l-WFcKYd)o2KW zfaHgDLDOicNHGZ#O-REuvh=#L*@`@%veBicfmU`H&u#InuZ)()VAogW1m6-c=h`G!vLz2uhz5;etGd!x`kpMteURy@Q}&GB>Fa z|B%v}c#?SwB%Bf#xmyLC*Ei*vo^cVFagdN?CF&=u#pCKm#z19-w;Ck$DFxT~?0%wh z$b({O?ho;`R#-_4et;qK#Sb}|C0gZ!8g%5ifU~Gn2ZmPpOeHl#R%}lqV`5Z&({SaN z^;H+#iFi=sUJ$RiDlsdIrr+gQz*%<_B%JVf*PV5rl#K2Xv#MPTGeE-H+1e2)>d}oE_Z6{ZPR$lrzc;ofG&QfFD zz#3zdH6T$H&g9&)*eb9sG@y-3XgrW8xSif-YRISZXo9vvo{1DB3}}OhLG5cbR^6fs zl;^w#i4#0_rTi<;M0#9=$vMvxJ3zvPIm4!TwomhNUS(pM29mV z7(l}SVOab5*#&>`L;o5jM+0%#qQceIf?lO^SGh6kfCbwFkU&U7vp9qiW|*Dq=x5wT zbQegR@=y0vrqtGVlr?Bmi1Wg2GEMbx5#QjX{yk~B%LBWhqDF=9+_i>Afw|PJY{@}DY6(OM1?e}rdhnW zC_5{Pz?u<3!g{VbKr&Sxa=Z!YZS5~-fP`c!saBL#5*^@Dhhg*6A*qWG5j(t*dIDkl z%hyE+YZ)Zqcm7XOj-a9MDhv!s^CT5$pCqku1m_Q#TpaMwTPW2##V^0l^Qfb`a*viJE~CS1!pH z<`->6LsIx(E$HLZfm;xMCt>5y@Bd&cgcV<+k(R+I6w@fe6d)~3~eZ?lQ#el%={x20T76e zCjzNPK+>p$&;YpyxxMmcFUPawp7Sekq?Ct**iVsB5t!KPNW}^H0g$k9$!`+K4~lOG zykgr9HbG)b1B=tSsFMcdCW?A<46sq4hHL1xUG-K76c&X=V0=+vfrt3lELJg;7`7GN zH&xbEpfvHP!ebOH$Zs20u!C z!A=8exYZI0eA4iZE>=4**?tSQAaM&5^Sz}Bw?p*+)#8xRvj7rQtx}~ zNWp@{86`EyEy2xwbyYuMDPR=h$2@ptF}^P%s-D*M4^;X6|5F zgB?g9_0_}EXP4D7*XmJoSCodlyi(;GtZoA}E(Ek^jK)}rYOaOWMi_V| zg2b=iqZ6NaqvJf=c2@JZr|UrCRO4Q04$gV@93#QsyLYG)Bo0_ppEZ~{xUKx>2+Fyh zS`QKk`JOh^G@V=%q!_VBGZ7$Rz%1p_q-;ZGmpqIbWoQ5r_}=PDm)dU@dsfp#&yVUL z-tvo9E98igvU>j&NEG2WZL`WUbB($gCUB_g z{2L^~{kra$tP1$#zO}L4sC`82T*-1!Ed@2k#vXN~Nz1n!bnX40 zKajKEP#oAk@K5^aN-xLHZH^y?oR__LQE}QOqsz}1pMK&+{V)t#`S;^wRGf+vnTEEed|=`#gRQB-TA0(@mWn$(x(Iv2}WRL?E#|#&)NF)WlUCt`RTgn2an>eP(k07z?pN!dz5bDHj?ZHuqO@ z-Ywrf0SN>heJ-x{B05{x%~kZ&Lt3XcXLT5ME`IP%Pvc(s{S8u3Bdjl?);dVoxO%zu zjnPXW4S}xoixy|c8vo6y<}J8fw;lsE>bj)f1M#~l>5R#cJ==o!f`tF*c&-T{-L;z@ z#Ee5t=7WS`Jgpb0azr&CG~El5WJqx`6kHl5xArf<#GJFH9k~mci$k@t*2B1D<}6Ab zE@?K0lt9=BuPBi&nULSN`7Oz%&? zBl{87uG~QV`%PRwk&#DED4_t3{YI+iX zb;4Ld0^t)B>6eSwM}PJ!$87|p~>0u(pv1ACMW7|R6>#qPk(*#bt+}>HFt!y zK5B>$YH)tVD00?B^3(YoE2|r7$VeNwYfQwMjbc+{HIw6jhwQ@W^~P$#kfTXnMt( z{K_jGpp_VRMXsnV$9SN;w9#DDO#_L0O2ettfQsnV--h_2t4WX&=m~P-7tV=+(QXcD z`SzQB0Mv-HFiR)pS0P%T3d+KJu#k2kp_e?k+Qw0)zNl}Z%#&>xM2?4p8 zk&}=Fg(N-`T#cLSnWa|H7EZS2ff{d(6}z)zglh^5Dl2v0$U{IvlK!o%Rh&YZ7A9&M zW7%mS(X{NT5mx>Fc?g1o0cHtOh~F*c2OW&dah=ulWtLh~AraZs-X>}nDz9v1ViTn< zsR0s!8fs<7>Nh+55MrmC$z;8Tw1QU%N+odzQat^S#nFyf)P4z$^sL(f0$tg~^tJqE zUY|{Xr0bYqLY}3RI6zZ#?%Kx@AXc~yRx(sda4%8YfchD62eN~fS7J6W1V8tdPWAm@ zN`~y@N9>zvUn~UFC*h}{nPAGZ417%qM zN}dZy@F;|rz zeJ@BjnR$0>GxR4o=au47Nv0b}ynf+)Tk(%=gD$8xhcU?w0Ey@jhp5-4)YW)go8NTX zusuk0R*Jc?Z+L|BwtRaY%fTNc(w9Ws{LuR4Rxl1>r7Il-iLyqE)iQlm@78TjrWUG@ zgCKzHp~7r4|eExC4U2Tp-R&tUCdKBc;VE313Df`WmR`#9BJ+-Kxg(X8ZbSf%Rb zAD{-wKPa>^F+01N^>q0wqk1b-9 zSuIGUS4xDbSGah6yP~hoqy~}&+uT*!XZCK*ry%Sj%>yRxff|7|Ns*)2q8myME?3-u z^8twqE0@ZHZ<-RCD1ATjG$(%riBF9vguMI34~?$Q(8YEAV~C2S-{H9z;UKAu5QwSh6$C z?Fk^USFpqpVI8jp_tb8i-|aaB5)0Jg%IR)hN5O{V@pHC(h(=^e47cKJWx2+0gjICq z;u=un?A5{Q8JgT0sIGlUXm;hfvKV2e=6( znR1ZW%0sr|415Y;$jd-TVvqb45?o6N)gw^&?>vwh;Xu67PJo>2Nv_^>FMqZkFkaJW)_9y zV<0hjo%xfC;8<0Ux|mUsc^v~1cUfyHb}xml#)&<{EDP=YKtiAEN`6f*aorV$)mx3+ zA%H}U=sdcsk>ns<>8B(iq{SdX%5Wi{UF%J$!>%as_AiIrNDPpSU#F-`_0?^>;=Ttj z3P6pQo>9-+W>*-Dz1erU@9?WWkl2(|75T&8`#u^T`PY8aXrCuYVAaQ-RBCi#MJdlW z&dR@rHt{3E%2hqQ#;4qExC@cn-?^asle5%%`2wWsDYYlVya_q4E0|3MDJ50CGi{>ft1>j#G)uc!)Wjs@p(WTW4#DlKXxZ+(JSM^>1TGcWKg4`WTD;RX34v2rQ%nv zX@`wLBKOeqTbCQ&<|7aUr*YGK$TKDi--2_zY3hvm_@ay*q^<`w%BmK-J!$)8hgfCR zl@8vJM5)X{8fclq4jQf$t+EWP$Obit52wcxn~N|bHon$`*cVFxVPO1{$0{3jm{ZUZ zhL}ne03ZmlS-j2(0SBj1B~_zl=RksUvc4itIPHT`nvoic(BmKxLCN_?U~Y7iloS)9 zL#vb^ak8eE?avlHyq(`dwsZ~20SUFCgcNKg;3CRO3^2M_$f@17!r08IiC0T;G&N7q zcSG`M^O@;$HID`B$@?pH-D#~5Us-hLXs&f%r!}+pfF)`AoC`RPPJKV)453Q0E#c_s z5Z}uLB<7c&v&^eeH@bC6Vm23LLDn>fE|hFpRI*N)WqM*t2$0#50+*jFGjQm;#hKx3 zrj(?DRusvNCoP3t`V?%KFF~O@2NE^@c2*M&p~L1M%XhaW>8A%MkK-P?LO}heWPz2SXi)4PxAP+O1B=edD37JF91ie^V-(qnFmFA3k z1QG~wehN~5ldhl)C)y5^A=L{vCboppqit{Ld|jQ(zP=aKu$b(@c88VIt-iZ^`(;Z& z6iCpU+GbpwCo&p$nmJhB-UW&2T><*`AKU2Epl%6yJ$Ws}@f+W6kuj7rp|e=@+5B1| zBd-YU&J( zAs&}IN|3k*@RR{Z+lJ}>#a*DrP@A^gg&aQK^pQzQUN5R%O-Hl?rxV&S56-qO0!Y% zK#l&0+w?+g>z?SDxrl9!>u4bHlcj80eS=$OpPp2^(HsNG)_E0cg~y_ruo3dDt1LJ# ztU!%o((d#0@ZdF8#*<3$&!fy~H=37TeDihmdw0Sl$OZ2D=BudD*Pt1+x9LpA81Qz12 zL$0kZa!Yb`pLep{-IXHGiGo~PaX$U%7bK>56h}W};j@MfS_$)@7G^r}DHYtRZjCD4 z8zeAa%*F^Ruk?p(wCUSP8~+|8Hc9Qpb6(7dk}!`fOak5)Bm}N!2uY2mD5}U|M?hB^ z6(rnfo%^rYbLVOk#9DRNP%cO~;Ae9Y4Jbr~sWDO-udD}&$X=9HXplQ=Iz4eZZI%l0 zQq9^I0?fUdH}}=aF%II3ZlFeNF6U@yby{KDqCMU|!Y>FUv_Uv06Awzmi_j2%iR!ur zBxWn|qlLVaJKAUCy!b_Jkn@7mCf4EWDAFmb>6<*QZ!D;>{3-!5KQ*6R6N;88XOEge zh=GXJ{zvq_GPb%{Hp7*H#8-IFw;0coZPmfr+LwkNDv-#?kh?ZBlv%jW9eVP=VTB-} zxcixuQ`siFi{6qRw^9f3+CGXtuJdqY-=5X7#^A-1S3wPdP}1l|cMU`@E}G?+tArp? zV&Qh)hFsKE)mh7zslp(cBmU&iPqN(E2_>$7m4{w7fmHjes#0{*DYe2g=?T(PRQdvF zB`qy7%!$RhfZ;mIg(b-&AaQgd*@K#1@mb^rFPbddFbyCKsN$1?Rrw(-HP5vLIS6}C zl}J0QNStx$wPI9;w2j&)0UC%w-R65IcJoixx{w zVPG9d3~Hl4!%ZIw80aa)ekVU~)kX_IXuTjV>is5=QF} z_Ll{MgtNGQ3(Ko$@K3{5RFGK?BoY>5syJH*-IV|Ha&}E;axtiZVlni?G%Ksl8*3}- z)vyVk`T$@OKByB?M_)gRPWF;{hHHGYBM1=&IC;%f3R)uQ7!1~nF8 zMe^3F|5vd>{%g{KhcN(I6 zt7d&lKq8iX%i(+(^HzDFcrraQ0OH3e<$XKpg>EaC>gQ^OFI=KP4GlkvHlZoou9Gll zq86*Sg9JV%%+g<<)|{w!c5^9k{sSZ;hZfAU_n75|sxl@8zGopL^&?2ogHp$Qx%cBP zJHy5rP~+3+48kt!Dsih3Eh*C8)&?X-7G8eKZyOtC(BB%>i>V;VsPr3p zoub7SQa4~eAb;p=!d_qg$8%91f@CPJ!AE`U`pD;aBM&DT5D-W| zsgJ}rvY7-DIhH)mJZ;K3X7jIRQ!ipeK_Yqds7NiM^Vb^tsup+P*Mr1dXth8RU$I&x zX=2wtgxy=IPxCZk(fY4)GMwqPuH$2%MlGY?A$d7R3hWl1tXS(h1QIWO;Emmgk^u9?W&XLgz+ZT<1t=#MW6U(BC|5VO>d|L&rmED{cG{HVC=nh0v# zJyPJ(5Rh>Cbsc5%{riECW{*6_MDXFeCFj`<^{+ow%0B`c2CR&Rn)9A!qP0Z#_(<4o zfYKlSdi3RZXYHCwRPU2h^N`rl%>2DU$Ao41#20={g!4;Vo#l{`4N_NNZ2_RF6N z?eXjWlIb5Q%KC$hIbR{W{sFCA_ie`OyK`g2XTwROX{C@Yrtfz>h*Im57E==^6Em(q z1~uxWa$@`EmS(#XZIYX5lfxjfdw1l5y9doPagUp2@EsAP_rWN$uq?tbCo#8g^3@?+ z$P)$*g9fxrcJf*>=e#8|Y@;b?r6j_s&?ESJx7@NM@3m)bAX`1OQT%K4`5Puy-=qGF z$ov$dL9$Lk=HAhpR(&e`Avq)z(hC}0MG8HFrL&~s{k)ue1xRoljhM}X;5*7m?&yH* zKJxA$NVFtO8>lkQ=5X1$9rKB`-Vh>`)h=OmBsW&zYq7Yuko<*o#7F9AYI5EnhA%~T zS0O-+@ZPa4(ddTC5?ZAVRZ4`MIV97iKNig)?kY5?CYQGjff^AU6wwTo$>*4N&vi=) zogh(9uSBdsW?>`TwF$C?sBDlR1^J-tG0cf3ql;n4c7ZE|IBPcS#<8D$NkJtZwV}3w z#N$+=E6cyVKKD=dRH7 zpp{CFEm6B=GucB^&?$}YJ_8bmszqy!*clJ+(6=u)9-9(DqJmlLhbSM^oY?8GBiMEP zbC4iSCAtLE#*GF0e>F={_0bc7ba%s6uKb z5RZHPq?pxJ>%Y}cAF4_#G=!Y&^B6l0gGAS6Dae&0Bs!$pLy-N&KKOO&^sUVp$yM3_ zI1WzM+~!+l0u0tq61k{wfpiq)MX~)mHGFmG-)pX)^F~4XYvjtO%#)@3Vts3UZv~^t z1his@$$A+%bIR1*d4aBq+ZGKH98cOqpJnlw2+WpTn;UeHAZq=Xnh+dP#?GhtNunXi z1uF$r#j(AfTbq}rTw(Y#1JqzM%7`WD+%2Qll4|MquKgfkyUs*5R`r+dU-p)&QM>7v zAaOm68KB>*&q=8D;_ofm=noRLXl_rcW$eu2X}^do)NkYNP?uRK2J$2Q_Ggf|?&HwcjqXSK)LAjqo5b6%%}ftlJZ`am_}&s6+&b zFS)3ma$lJwls+-XJ@Hbc05!4{b8^&xE9tf~6a+{Ra?vjIJ5FYCFX^6`tXW8x zriWabEEjRM2_J1P%y!@$1vL(PuFWPoN99=4UQ$}0sy2cIr%LK#9Pq= z5~EH5UwC?~Zu9l9CCr}nhjb;lkNX{a`o#^sgm~YWJNgPh!$4(e_LWI`iilaVSsDN< z8C7ERBwN^>i)AM7Rxxyt1JxZ&#a+!TTj8HA;^K+!62J%|sFb(&Ot@)P5T}%Kxu^*T z5>nUA*PWP+f>9NDy3xw*CP-jKc{oe@XI8&ep{epODJ3A0<2%T=k6ymdfGWh6Yzl;= zbZ2PZCGj~94Ba|c<|)%UNMcZ*X>Z0R9JKAC<9na3IPn8$MU`t26I`2-ouJT$%uXlP zf&@nOCHh-=Xvx9sxGaLr+*XhnUe7c1En;D;*#u_#bS)$RrBUx%g^b>C-;T`gYz{FV z0X0n5@LUmT`QhV{qg|qnLWpxv)&G9wUMKzr%g3WYle7)ez<-sxEe*erqT4-j5&c-| z-V0iB8d*vCgQBgfzU9!j*f*~NiN32wo!6RVa^j;b2Rmaur0t2RV>h2J80tRiuK&}- z#uN=|aHXRiN85%{kIs2>a6-l`NZ{t!8m2u8JH!|NFw1&r2@(Y+EhlNUV#Xt;x9!3P zIwTFEZN2U|!NGYCC~fEqw4*klhD2my(Kh9g@sM8@{j0MC;-q5QhKa8;5^T?m#%R-; z%^^Ekdr;|;_^?Vf$c3?w@yDq>!NQ!rLn{A%>1~NeHV! zj~U1#2D@3G+fZ9~ksbEWwEsNQ1xa8lH3^IR(dqHA zhbV_c>pf)})e_=#- zK5TO)3mivtG~;z$!JNdK&IzMs&>$zm-%wz8D>I z4>GQd zL6svtAsTvb_hNH-My@i4o#Ct)g`CR8gSIjMrXA&Z+4aU$-mqu@t=OSw_|wc03vJ+} zxb^J;NFWRpE(ufauR&5oryhsV0yrL-V!`kpukTA?f#rQ;zq)h#!- z&Lc`cNV+c4u%xI0rh)T48KJw-fd*>CgsI(n87D|5ibU>D_j*IhD9MybVO#r!6Y6T& zk#y=^$o^PUNSQ9XE(>#y?x$rB&+P=QIArrp3)I}OVnq|Sa`phEj6y{(ZdQ2IZV@0y zeU)8>kc3{vh@?=1XXzmxu8s!wevr8crqMVN=atAUR!bWXXiWphK`i8Ll%{UES#4es zy1}h}2qb^MkHWN>~WB}QPn|(18OK&1fZI2W*73s3vK#iw`jD3?>| zUD8$j=+8ldL5nF2+D8!#aI8y4^V}gxaLpCP&xP*F6P=PuNp6e{#IG+GC5X>n^Pks5 zwktc;L6B&AYawdh)%Bg@gTZGDyxxl+z;TF695&S-v}R7tcZ?NVz&@W}_qO8l`Y4~% zH-6N|-$g^T@{^U#(CJc3VQ) zFoV@UPCfL(tQb2I#e7ED1i3CdFC2M4>-0ST&!rP<6Yr&N21ojS;mPgK?h!t>kjlQY zvEKO{Bu3t?#{`WI9S?i3Fn&iXg3R`5)Wff0kKMddyzhNX!+f+CsDXAJT3!wP)bXK( zj{o@!694bN%a&K<>%X4;w;$s9S8lrV?ERrJ&)@%j*0F2o2k>?T!sEg5VV_gdh@w@0 z&mM2L&H=3)Hra*0v`~NK!=DqvTW0GLKw@RzD|+sVpFE!xKOZ}QTG#{<=g;r^>fevI zHZ?~z{BrXB*fEf3JLveE*^}1dzw92|Np6nt1c|g#?Os(>!FW)CfUs(FPyt8?2#)rr z3(kI>k3dAd9e&&i5*_c0-?sns{Fma(AG;OJchQ?RkWdS7X&i2AcA(1&&&9B6$a(4e z?ALCd2I2#rud6oyswg1$v|A!Ku{7LkF?C!HqAIyPPme)Zl{EK;ldTyk%ViF6< zlQ)E>H)};YapDMj`QAyzeozC;WlH97%P&|MqN&pg>`jnJaed4>L2cHCTWKS=CC6w$ zf`xf;vv5kaaaH>N`wJ5P`@eS)2(DZzj_C&p9FDO=mX*sHSuol*OS}SU)G#NxagSA~ zp3tq!Z|7A`-vc$Ae@CXDl4d4buo>gSu1U8+;;R0JeQwWC2VeP3b4kt_$W20bPbA}E zttc8fXuZ6=JyK9Zcdq%G&rC5-+tD(f?pp>~_0g*IxR}8bM>;q6fPi%uk{1%T)LsyK zu6al+_ODhq5g}{ZUALxcJj2(LQ6<7md7NJjj)T%L^(88;PIrXxq2Eb*Y|u*N@*OkUWEj3QATF(57^VdYOG@ey zgZ1W|$&j`lO*vx_BreGG*EPZ4f9;>%-c+gET@DhT6$}(BT9bzOO~0)<@uLM~9Bz4* z^4J((OJ~~nlW?+q9H{Yfq-bq`^pEq#Dtawibpz5K3pJ;q<`D+YtaS1w!)-ZCP@^i$ zFt>8BrnrF>8o0(7{Rv1!rpAenlbTG53-Sw1o@e7hLhkcOhkXD6}Q%|&UJ{rhEu4;w?lxp;XL6PxsvIrzjaS{1)QC1CVERZP+X%R?NE@QezMnf2Y#8LHhcT)85mF>vNTZLgBkdbQ1 zKh(E)*>wJcoBnxvlC=`ln6fQZJqfgFQ}ypz$H4q*1`-*I8C@Cu3zIISZg-5-`w&Q= z<2hpj8n@;iO`E<)8@d7{LMsSFj4<&C?NYioqmu`@`ks7;^fW^WwJgC{rq$j@f*R57 z4XII_)zN_s;@^?~t|Eg(=UC&e0###dybF)A*Z&Y?e+-@3VP-!mY4+#{-G=)uwH4Gz zNB-xhs1{6IP<}faRh``o5`k2=4CgymGeKtZji&xQ$hDn36OP?S_L9ZukiQv5zlM12 zK_og#LYolih8?UH&znQ)hKjUFvz!Yjy@@nK_e*bhG;kc*v&=`X^HRK|@)yOhE){Yr z`*dx(_%CZ7vsLpMNY9WeP$N79Yt&gc=oiwM%oON9h1BX*p%=DD1NB0RgshRQ*Kt4% zd?Erd$R;tIGtj;5aVIGVLP_R7vsHL;B9KK1lv?@%U#$JsQ2(y@+BNWCE+R zlX(fHxS%wu-2YSnH_8Xn>)UsQMx~qOTgiSN&SanDLH5`M%&)QINvaTQSrfN0!=@7) zsl3j3VRAY+zgXvUJh{~JN0880X~jECV#*TtCr)-PSe*e0xz+}I<&f&dN@Ub5xhqr# zAqG;m8)Znv>=0k;tD!_loTE|%_b^;SQ-Q3($|^s>AJnks*^4I^X;m604aI(@f&>!s z1J!ou>A;XO{@}GjGcBa?Em)DV$uNjsnt8YLZcJMc#9KDFZJX{6bqXMiRlamsi-P#% zyv~X*yJ;itC7YQ`&Cvvi4|1KQ2z|^B$a)7HIhhFQ9q6X(HoSX|F z`B;L_a+*vp)P*_MvqkSP5YLY*#`c)WF^o-EoN1ft6BlqCiba=lv%OVF>z=^DQFibI zNSsuf^dWW?k%^s?Uc?j5klevipihsziqDz#x;o8iI0)(VdZFLSUP)L%tBg4bc=skq zhH`}>7xmn}Xwgo1ScF+&1lj9D17$(yo{)c#mb?1~L=H89BORnvo4sBme@o@NPhKsU zg;Y2TF}KS*!rb=a_8AgRFMiVnYIs;+RCna*+t#%c=my345dSe-pOw1cvedKjdOx;^*A^&8JX>TJFx-%C>1uJ5VE zhvlF8W*?|gdy>7EPpFP=T;XqG5yFG)j~DWI-PNMe*vMhdcUG^%At#&of{;=erHytj zLiUH?P>}W5=1#6F3X@A1F3ZnAJCn-5aiFAcAGWxye7K`8snO2plRS`ERdon^iz+K{ zaxKNNT>pSP`h{uf3anO~dKTheo3}eTW)#$LxD=kUK7W`cq@ViKJa}&mNJOkvR^`~V zRpj0ah}*&{m;wo^TQ+X7QacytFvU5D8g&4PV&-Mrk>v*bFiSZWHYA4lF`L|^RnERi zuDh(etU4Z@u?ICGr^Mv8?!H+s^gVpFy)EP}peeR2ybfPN8@0P(PE($QR9e>8@s<3N z&4&9Zp)uqm{)?cM)JclULtq^5wKm7@qDP?-NEGA5!H))Cx>)gV&-uhILe`^fCe*bz z!8b^=by{Q?-&p`^*oy<5nHC)6tgt$;pOLZ~B%(VSxtYbR;pI<1-Ce4{#e>Ak?$owB zJ3Mz(&iug^j)y^3{oo2i{h8LSRmIYBqsnSC$o`n=Hxv`fUWJr+Tly2T*O-7-T)#AT zp6+PO!7_CZFXT-?dTdq|1-EmoZ`K|P7K+)Ky-}csGLO|=LhM_9`^tI5Wn8!mB>dJS zyIxfM+NpRU!$cigY6gjuBZQtt^E~CJBP$wmtmr#HBKD8uIgX>Le7gN1#%+WO$@(H( zc=U%!4T1s<^1UG@Isw#J*{;G*Mxf<$(bO;AaSpV zc|-dO-7lO7<6sx>1%U+igm|xM^iQ^Yxj!4)Lh z#)W^B_lZCtWfl_Bwtbf@=tdhMIOR?LRQ^N z=!M31T=x#`PEvEdJ0Kbg)gE)Q{;Wfj$#hCm@MB2tq7Kt_BDt0J9+_J?zgA9woQ8m` zr0vlMh{k<8%5-Brvyd#fY7dp3Sh-<5f&-Kg;ZfBxMEln zT4v-}dL*yxcV$uf6-f77@M)^^$(5L&X+6REU0T>LDiAxQ!UMt6D#qz=Dpjr|HfY5? z_&jA;!p=B%!aMWoj32~Hk*B+6sj84)@dGE%j_Uj&QEZ>4I^c?foTU?}gP4swOhGGg zxb7>Y60wTb_Xt;wpz%SXAD!T=qW9p#+}_*Qyv0EFDJ^+h*mhGROK1F8(pu_JGN=)= zgiB|p$Aow|yFWMF0n1Q=B(vTYX5X61Y7-`!gUAh_20k))UF z7AuNQ_*EBF&GOp1k|EWr#^K6ha=@YWRBg6lP_e@jXvND$7hzF_v#rcWB)%rA13`lD zVBxEC{GfkJXXGWgTr)_YzxMeX{+lz6xpjU{%kimddo*O@h~ys^G_te_dYeIJ=0|FHoy5O!aDNFywInQd~g z|JBRPRRa>ohgbjh-@BDReq4QX_K5bsHz0xDbZEnaM$!9v$)=mTuoe~|F?=iN{tt#5 zS+q^x+eAI+(1OICru)9npKS9sIaYlC&HfkjAo1VD=9>*GFMD!!TC-kRL_-J*`M!^T z|MJS^{o2C_gz_jPng+cuj{2}eK-jfUaR0+T`9aXi>yQT@&#aU?41fE_7ij9R5+pj3 zZuRedUle!`L+~3K7=f(VgPAcEkX)_*J^HTW_k z60BRxzd8iT`ZiqnZ^aGMnFOb&oG%t!Y!RmI~j4If+~_mVz)cWC5> z_P46PpYHT1eGdBs=cb109ZwpLN!rF1|HhLZL*hQU4S|pg|Dv^if*R8ph}0QOTG0P|vP)A3Sr5%vs)?mvfF))mYB6=;@mg@jf;#HY z4eT0BoR~R=#Vm$Gyf*Eice%)^0{bfhfntfz4TBoKpCSzzFC8lVh8dIs&KXE9Rquu2 zS5DG!XRP>cLVZ6Zhxx?yp(OiS1vljjtgn#e9t>KEOV#cTiwz1WF*(EX6ouXZ306E! z*?Ps}Jj?x4ElB-Uv96*OT{JQx@0N=tViBAW?OT-C}l$?ag6q;c@iNkek3fgXu=#OMxjDcUOThwyLBf(Ld@O5!u)RHUx?x5a;=S!ATg*) zG<2O)E4iU7 z`Qn&sgR>`mxy^l6{vd$~Q%0=TE_g1#k@O_B@inBFiLnEpLxb}0Gp=EqxI(~6CXAh9xCII~Dn`m&Q^ubZLLU_ZLx zHl9_s-7GmKF!2!nhQo9>IMNoOfjm3~5mL<%l?8mCnhO$~1O1(zH`KpWUeRWVs;@xK z+$Ga0EnS}QeOggTHenam7u1+qtq4&^==du7UCAxOoC%P4fvVIryRZov^ek&h)g6fE z=cy8=yfMn7x7cyhp`;2(tUTFNSuN@eQDq3jz9)r-z>N#P`o8d9y< z@-6C{*Ufp9xOVFk1O1MI8tdvy;`Tfx72^21WF~zCvXk9e>3KxVcv{h)cIk{RR0^n( zZRJlWvlfL~(bE$wsTjza`%~v{u6slZaWzOsBbmP#gBp$Qu4jaw`gdN7U%{gf7DJ-x zbj+h@K}_&0LHy*9;vOB6Te8<0-j26+KY~3H{llPc`7r_DV<`jf!BaE#W!%i{wjuQ| zWG+ZJl*A=v*5|Ys*1vMaMbAU}AN}7Kd1zI~$HNujr{12+SqExdwaO2-5uyXSg*22^ zY8a$HMrRbIM6SK)fEo>}czcU7_w(hs+qN`p%7XZyr(xy=)xk3)ZP#>$ zrn|)n)G)O!s8Zet{nU&|Yppf)fn3|*l{t*po#{gB?bWEeZ2NPd2KEGQr-x~qy0}V4 zL8KsdL5Qn{0lzE}Vksv>@U0oiV<2(R(EE&&W-6K6O(oKz=Tsn}o86@qQgxsGOj~dn z?H9y>M5j-=&yeFvd5KRC^VdZENs#D0oFAARC9n{-oynYd`>6>?@a?QBHaz5YUe6uI z*yqhIfCMvx$`T$x_#2rccoS1?KZArgDhRXCRl6UfS6&x~VEzD!rR}w|>wnvTYjiUE z#M504@i2=s^_&Y9E-ab}m9}l{Z61G6tQ9)5zB8#OKkXo!%AV3JKAt17e?6_3{y)7=aECCY*WziO` zRzO5-ZAGvZ>%yD+d5`0HKFoYU5Bd2&XRd4JoO8~ZYo@yLqsS4|a6wy9&y2Oi$Y-jR zkNSUvMAC^Zvowi$)riC`MsdJo4;|EaE>}vhLiXtfX5NhE8v{s;Yd{uaPJDUxJEm_> zz*>Gf#5*`mcYBc*=0o>3_1KAvNf0Xy+yrHOY{;Ot+#B`G&1O`r(0^u=`kk=I!$8OweY)Y`^ za<~zLAi9nH3hvHm!hdzqjHcgU)fDP470oW|q)riFq;2J(CKsB_xV%&Pfx zg@Zu52-G;V)>lfT^dblyUh!y2C?v{p{oXrO_J*t2#br(K%SdlPjX57=(W+(pwQ^M# z)lUff^iA4mauNL$o%Z0lSTmIZt>|$dGp-qtN>S`r z=IGT}Q;=W{gqfFHPTEv$DO6s=9ERnBWu21u^*)5AgY5UjS=l;J;~(xFW^Rl^^s|4H zPo-j#2@+D@g?rle4c`3dgW}*>yH=1$N=(1!&ydCF{>VPa`qv+eMwV(zvA*6AMc*h`L!PEanO@*u_nGzgK-+D`f^ca89 ze~(bIK@EX2j;PrRF_liFp547#@(3ijo>AF-jlIvyUe#jjePY&t1h$iRKgDs_dnVSt z=z>`&B%((W9BmL78_YPbUQn3$5YmEl{RzsR$g7yHJ>i5oY8zgYSD|P=Rd~e^)X*~7pwGU+*zhFh z>?0@J_c)L+%p1Lm5?(CBg=#aVsup*Ggs8G&$gyz@M_ z%9`q4QUZDV!~k#Xs99+tF*bBMIMNF8=B%&SooT3U7CW=a%XzcA7+^V&G_uzg3%!h- zb&m8QeVts8h-7RZ-0&J{fE9J6xUJXu79=vhR1LGK(n&_`;`>9QItfVhsxC!Izi6ZN zE}n@Uw4aU#iK;t|!ZlbCA;{dZ&*^PHB$C!#b5H2a9~xH1UN5}hYn2FUL`kjsdG5|@ z%RZ4#=}ldOc-&rV1SY}yly+^R^)XT@=M$)bG_NyTu$K>Xlr?zN-Vu+2M8dVLXxB7K z+fwk$Cuq|(JdjYP>?GCkGt10UH&-xJC+>j+T2LgQMsRK<6xf9I{z-!5azY9c^1-d|M89X4^Q=}PwQ#@2bWqrVxu{t}kiutfR7CVgVL4xfnA7Jg!HX_E#?-8kfke*#El=HTX zxKTzUyb+9)yctk~B01QrYHL7SSux}izm7DJFiNF*ZkTuWIbdynFec>)q-UduLX^Aj zOy{qY$DSGGR6)FUToJaG^xnqE{-M}mRo5{{&u-A~Q^khf>Q8s_X?-%#CI!n8bv84J z8n{X&C{GF&i$@{xnA_=kjM@^bS-lVWBv5_}8DE0@7t?n6ZT?NV`u*9a>mQatD|~U- z$o0R2KYSYa=JWJGRz65jW8K!g-iy2J_I}rm-#4KlbM>h;62l*Trfy^hOY*64Hjt6f zhuv}^=KbT})*QO|{<`YnN6^aepWm*Tt2p(yyEN;PkIy^MuWSAEY2}nrcgxb(yk(Hs{Q0Notg*53zYKq~ zaN0A~4-!9oejWYmN1U6MxA9M{WtosA3qphMhvmJG%CZd9AF=KOkj19rl(D57EM>B( zd}KG~kLK;572W)0^Pr}w$} z&I2Fw>^YyBTAUyw17YCx72KQLn6Nc}I4>~YxPTgQGmp2v*2b;4x@H;B*WWAziKw4- zZ%-XXU;6Cz)7aM}pR)j=)fE`OR?{+;1uy=sHS}Ku07S~Jp!a)TFAH*)oMYY!o_+?2 zgISeMpXoP(hNXE=J}&e@25h1I!kaBeKE0yNWcvMW(FfT``}tK?^FbD8Cz<+c>l5J& z#ASc}eDUkugwrQ4e#ZBC9_xd2r%%k(Hv*r&y)W+k^i#9n7D(FrdDO=pbB_sfShrkX7O0SWQ3f=8DBT*dt9 z#On9Z+59|A9PkNY7Yd`Gm%OMi9~y((9%vq*UcW$T(`lKfkaE$D!qL?_QP$CoKFAV z8HjIqrt2|{)I!JY8k{dl+0)rw4!LNkRL~7ugWF_BBQOZ zB0(bB2&F_c2%lMIXwlaow5>q`g9$_@HC5-xR6@qMO&G+Rb{b@7S8;pD*b2VfM$G_g ztECXyc~>HkrF{X6A3Qv5KqD1|D~TDbrl~jyax0QD%LEC5Uu1N|%gvYsR+)ufqJ0@i zV7RuI)M~;6cAF|=ogM??#b|}2mK#DTox^M{>ZnIAq^Y}%Ad%b`flPr*XO-rZUPz~; z_F|oj3mucR^p)pY8AuPX94GYT-ovx_+k7{Pw}4K8q+nEHJ8`J4b-Jf3shlzTBLdW@ z?drF>OBc9!(rSggRMa>~B%lt4Bed*DVME!YzG1yHAc4sCw6V%}|HTKTHln`?pw33pr}bzxo1rGN7&$kfGIpnbo#!&235l^7KeMqUkSgkO!lqeROpF{m-eXhUjgwV|yoi3qKnCy=G6*1M8M8`cF2 zEJvN-Wfx-!YQ&z*yB5n$l3slswDI&6RtQK~NnPf=)`m224G9}UT4`M%ftqb~7OYKl zWVfbz2ayN^AW=lTEAtjaAP_jeR2&8c>H9-y4^=eJT4sRC&T;T@_XIU+%13vb@cC*R z#_{sIvzP>sSX(Ej9jlxtm(j&xLkj&~koa0}l!+Ra`A?#{Jfc&ZAl|_W#pw0J^0~_K z-ZU)|2jUC6ta^t}`=Ct}#5pfSJx>Z+G30M%X;=HYVHlR>O=PMHBvfq%{D@{@F6(mt zRh0NK#E&6S?sS|JYw|n z)u<>3^I^6DB?uV=Q6jkp4|GNg<@bHf*9gfj9_ zwj!_)AEf2ppPF;mdllvUdp)-<&%Z#896~OsnmX2him}bHJO~MS9^$aeJNK(~jwb~V z=K5WhLcD{lHhmAT_iical`ODGJPK)rxY@0k5dCXALy*YOy*sSvcH;_PBBM>>Eloo!CZ>b$A(HJD|*6x!{X;viqg?dP* z-v9W5L~_MLUk_h_U#o$Re@sCmq>bTNnUqzGhR8O)fb9`ePXshp5H~!zk;7jYlc&9A zrLhnrn6Wn~BX5CxgmgOIThKcUNFa#Kv>8Lola7+;n=zQ`dNN3qjJ?Gq`B3lj5EAie z&uEAn(5zeJDyug3opJXc(Vqm0Z64)m0H_T_ni zgw)msV?&Sbw-k_!xqyw#ndR+D-e5qQ0g`~z=wlm5WqL|oL82y( zDsl+e!XGqwU?ZPl27*L?dtF`u`48(3(!yo@>;Xu2yrw7O27hy1|14^^!v!x3NFHD1 zMY`qTwT2goJ6ve)6g>`FLFXyM92VG=c15~kSAR?oNPOqCOJ%3oo8i5B|NW14tQL@% z*E;(P7gacy&RXw}M5Tp;1pk^AHQ0K${I?(u`GBzlq$QW2Y%|Eq-mFb}aTL-NWhbZ+ zd5vl|ndcmn7i<)EdVm303%I+!>Q#QufT?yEKYD4O?KMyXdlH8{P=Fq-@IjGVodO^$ zV^a_DScH~)wyaO#T{yK0;taM;m7J7K1m*Qz*cXWSe%)|YKcd2n`PZ*kffE4+W37XEHkH zqad|qEq-ZoIzf=U9G}Ft!Sqan8r(v>nz|fojmR1|=U74VT)%z`sZ)5~osSWH)tkvt{F}E?oM*6<428n$&jK>>!xN{N5mpCnX zCn1Rex=3?y(Beh*;ZFAn<-Exvs1Z7H#@~fr6@yuToXtgT|T$_F;m^el** z*AjgwoHVc;#tlT$!bQjLi%0s;s+#g4J3w?Sj15;e?ca6_H`#pEI>iyxm}ufetWWXf z%EaaNp{W*-fGF?49h`w4m&3Z6*Of;r7lRtSzGSk@s+1dO!}QD+M<_w!ustTD+B4Y< z%a7a^SWx~3B)CB~UcGZaum5-7`QbU`myi&WpFQ7Wl7Nd^SBhp;E?PjQx%9ppn8ov9 zc{eew8RnNeA#1A!6qCGs14>~~559NM#^`&n9MLIPL}7UaMFFmvCWW1e9w2d?VVQuU zQ89&`F8PJN>R6CCSJdEsch%c<(N!3|S$lsfNL=z&aJruw8n+HHA2ya{{a+~gzrj_Y zm0n%G^70AG^6mTz-rodJV}R_cO`aq=nb1!b1|b6{LBiPaT!zUxQ+`=gJR8e_y_d-$ zZ-ghJM19$T?`%?gG#k_yZO=PtzyDxV`Q}YJmpfe`d%LPKBC5P+uKA|@Y2jazL3rAn`|6PW4+AfyzBxA%|(obyp0~`2z7bYj;?zc zATcis9!MX1gTFf(L#qj&hiH_du-RW_2iONQPY|R>b(}#BS(V+HLbICKW9rJU3AbS9 z-;T#tpa1r#Q(u}9V}>+$!vWNwY_YOD`eSP=lpyh){4@wSjzB>>6 za*()%^BN5lkVe?m(R{2Dy`D$>R?=-C)5*JQX_|hBj$WDZx=DvWd z205S=x}A*ns(nDLIi~KdXcNkwb!DG^vIaThK_>Um$VP-nsRd-UK~%H)?WU zxf;@f1luMwH;O(qEk}K0t?qJw>=Bv9{3YRB5^klR;8ks~PK5aNvF1uuQ*OCGqDYvX zElojy<T6K9Xp*s=pt#0(8o9BV$C~+JW?c_E2Pd(bbC8;FvHb_J=7Te=f6Qj(k z+l8azU`Q;*;O=xOsEIQQ3VmBs`B=XU)DTd1H9oEBA8)H5E|70ry9E+FKhl*E;>%P~ zWy#15WCj}~_8-Pt1#J~LO^J8mq{goHAn}{7qriCfh_|rNmoC#Dg}hrVCNC{UfDT~D z!>Gfd4&I;!)^}>!T4B5B;KF+2cdb+xB;>7=meNRjX|S3|4wE!MqCRGB^a)uxm4RRA ze0!1~1sQL{JBY>|XWc1{vTlYOJGmHQ<)W7($8FHb#oK$3yM>Me3E8hWx0C`IA|d+_ zVMvmG7bN(YIf2d}s@a;x*>Z6dJrg8~Y;4&qMnjad-o+YW`CtJ^r0wy_5W5*##kZ}C z81m|a)Fq;$5cMd$`hZoC@ypoqyO6hUJi6eXQ$@{d-PpcsjZr_OF1uus8y&K-=(5*H zx5A0QDX<*v4gH5Gz01Tvk-))B$1)Kl)|v(}`#7Du7!yy7mn*}XL86#B6SqqlyJ27G zMD*~K%0SObcZoBB%5T#0U z4A6IuqZuGUq1E2bBws}(K7VMHr(Qb`66`ZBqS&vHce>73gqB5xLA;dgL|krK&3c+C zwk*J6(7_tiaNE_WW-j7v1wBFseRnS88$0Wgfa66S`D->5h;Ga0H<3V%u9*fxiDTpK zCM0Jnum}N($NDcbS%-{O;)(%-3KQ#+A3+V{OiX{b1JQiXYRe#lGku;Qam{{X`7y!I zjFfA*#MCXh5RY5+MUsEWmRwzye4)k^Yk&qdq=7pP6qiRgGQyq*3+-^NAfen>|E$k&k5|`gBrK2aUZS9 z-@b{QifB08KFa_J`RqXoO%m}cgFw8jH1dVKxntxDiI}))%UL2p%n~Xf{=)+iGJU$~ z^_W4{RDd!5)-q@%0QY@edEJwbw52U0HqP%L(U$#4(9=%?Ea_-N?uP>1=KY|C<__ST zcQbabe^bM>HJ{v}EDb+45R->=-O z(0;uDYMkBb`eS|RkoX8H@v&F>QONW7P*>k@1U;B_)z-Vo=Y0VrPj@jp|HLmfo##DY zPnw&Z{{YF-j^t>bN6w|>$=#%HSGx>D#%vKPIOLlVZ_3k^AF?pTGRRnYwc^dv_?w8Y z)++xoKk>c*k`Kx$Sgm`?Oghb&+;J3tLtPElwtj<)p1$+h2OE!^%>2MG{{Rw8EA8*@ zUNk)X8SQoI!&!HTcQE`*J&{$t>FmcfbEJ3iDmkd}AJN25(di+}A(u2irywmz%SHD= z$W+K@1TsD&bJGf>7#m1}kN2V?!=3I$u?KvN_JT%U%=LfZQ13mS>i%i5$EE<{)@QyL zOGtGWWWAv&Gxg>h$e@M|@0~z*%g9{TjpDt6AJj~c@Xi;6G_N`O&E9tdKF)ix{sM_B zUs>-sXOJ}#yE#nq@Tc35L4CE!ioj)#$SPj_3TYlz4{Wj&n!J;zlC9Yy`WP}L zT$XNR9Ho`iyBYfV{`trf5}t|^=NQKdEPa|zsHRm6J|z60O1yD<+5taxoVLw6|8LPJBkmP-V zpvGy0_X$!W%QKW#=%ARz8~};D{U@R)8p2uf$XKE3Dh}dKzwrp7Vw*`rKAJJs^SP-Z4W%=G!^croD$WgV6YJHpW!wqCwZDgDP zB-mp7NT;Xf8<$B+p9nbxX{Xp{%=)4u2@U*5m+iMvLm=T;P3!EHP|M>A=HPA?hxjuj zt)1+0UgYMG=W{mJb~IqrWDqRJQ~+JP!;AEoPfrN>3Rw#oqMU^l=BRG3+y|sp38(UN zAc5mjV^PwJ>KexyM`j?BG?oThVWc*Cdv#yMMdP*d1O4J4{kFu2{{v4f+)$>A?yS)- zhfL<NHq84)!`6Yr1M45s_*?_ z2h~*fj*d{(O`{3k*4Cc*mzzM1f}E)gytnGY3A-Bi@Ad9OhFc`1J&YBkZSOdoh8M68 z@HD?H?^ju$t+uX?sCD~@ zOoVvc@Jl1PR6X&>_E4#Rw{Rx`w8Fr)RR@fUm`tn~fkeH5wDnf@V1Iu%_evBw@GSqw z4#;pjbfG%GX@ktN3ZslrhQ&hq{yzH$0x1gr-vzOO|CA&^7B$MvD@A@0Cr3si|&ySp2+w07#S|Fj&Vk1o=>Z&)S45 z4s?(p+34fN8#PDzjkx499Pg|Li5#XEbxe>mBahuFsy-pi1&O`RIL%V_9zLt_tvQ-< z%^M^polA;IMF(P&=mOFw6a&(4r{_&aWM$~u@g4Tdt<{x~XR0G6Y(6TxonqAX zC?2#zKwx~oMX@XB)x+Wddtw(z2pj9TCycnhsU-@xX31tqIw&t!1w)sz&}dIu~k5r`nzk!=-egziXUwZ%GAi1Nyp zdKsXV&*Z=6;uozN=AY5pZM56PAW?k`EnUT>{N~Bs_Sh^l4B{Qs8Jy)ciYtMV3v}UJ zuKp;fk+yD?s{TiRh9xeJKS$@GK*IV&`^lUKnyVJA6p6pQ!5s$)6Gn}^tv1?Mlw6; zJAG^)SPoT@1K%~KuytVbWc^=~-4L%G{#ddnTPoUV&NMKRFH~O!HD&_|N*^F2SdEnNDqhnsu~+}jF(_Wb@YJvWEXywD|fY1Wr}Z* z(R>5z8CZ^7^r+&N5n+ZnpMV`rsf8r2!bX&Sft}SA=u!Tc>~9xZL5-yN%2?+MbIx0l zd+c`5&{iPfq}bc1=i712Zz`rJ9YNFviI_`_@g7>AP08=+l*jy$wIG2DQ2DIK#qLlK z$Kl20mm#CrNAGn_J2tqJ@Ya(Vt-E!dKn;hA*+r~EJXsQ<>^Y{LF8~Qn%GAWGr2S*< z7n0(L_vaujx%P0%uhU~aGTJf12^b?*Rp04?1Z|K*-T&L~ zk!POS2&LRJogm>FXw!MSWtK|nYGHLp*%p9AqryVsdwYD|(LY=lHRuG1aaX4_Jm7AK zJ)IPk-1P^}3*vEIwYX!wm_F*nEvKnFq|=ZXMy)wxM*0o1zv*swAgP!a3znnePUCV# zUmA;JTYjex+YMPrBt|?oS&d`A#lPBOO31n00csGBn|*~|SJ&%VWMMgDGg=H1&AF0! zhLjvrLk;`6YL5}5jqwGH@}UJ6&%|jJA6LV+1T_$-+3#1$L{@=`VLfHpDoC0xqCh6) z{4MAVV7AzYaq}R3zkokKGZ?RS!D1zh<;pThEQKNWN5oWDafug#NVxX-8n7Hytp0RG zOv5c2`+P;jIqe~kh@UL6(?^?P^LI^g?87A8AmL0x?eY9J;F1y%m*>$zg!F7d-`+L& zV0rQR$Z;{Uu{q!7*8DV7%G2UBCCO(GIX2m9w2G zVQNxf|Ni%w)&N+FUgzKNxES=_!WNq+}g36S@p z=7alG0jr9J+s%kvkeHAfATZ(b*f0^cbH4M;8;}sr7Mz~3F%mFRCvFF9)LsV?Z~L4X z57QIlb7>E(`Y-Q-c&RmdC$yv9B;e|LtH_II7?4pN^^wox*gDmWUoqF^m)hHcR<0S+ zeS3Vl4*aMcIg&5R2S7skd-$M*ad}|T+6i1;^eki)v+dD!bVFw51vogeeYNZiKn+P| z(YB&a@fOq#h8s!P4T-g5Gfao39bHAi?hC- zY#*~s*&sKJp05J*wAP+O_}aM>+FYp^%160 z@Uc$eMw)Bv1efTekUm$xmRyyTy7pw{&NaFDX)a!1U2gBH4{%`NZ#Vm7{_I;wY6J;J zY&p^tlTSiMwcq4f_1*x9+S3)SrPU*r16=jFl&hwY`1JH5S^SRM5l_taY!NUW769yqZ!CMu^qP>Lp3@Im4fvBH~&BO2Ya4-pJBVCB=nEj&oy zcUi9fs`2UjcdtJQ3dT0>h2*3gSAsuu9PRzLb&cf0pReCQmew|1vEn@WL=5?ypJ;WPFDo`)j0Z#mm6zb<9UdjO%po>Ah>8H^2L4F6eR>;{r&$zUygO>2{H!s%*V>^aSCM~Y`~K==kWh@}M<-!^?|-MqmCg50LPk^E>lN3;-i0h}?OAvII&$^Y*Cw^M-K!`vMRCvgt ztY4>3ZeKYVe{5R=gxD$?=;A6j#9WHq#4e)dL-N{NpFSZ)kCLp4e$4egMUOuST1kBR z);&IU5kGeN%KDL&Zy^0ehvYoe_u%N*H!F{?-PNsF1~trsa?Y<*J72&4p~YbAqkaxZ z40|bK7C+RO=*w0nPf+G3K;ox2*G{mD+}-96W;$PAxfBQxTA!o3_kQ5KUilS)Jbdac zB#pcB!sVRjrWI$GW3RiOrWURM5(s?X+@&a|>Q675)7IpAHJgIOJNls&_v2Z??|+|q z_S<&`KY_&GSzD|=eSCU~-qLyG^T$fCpor#2A6EW6zfxP4b^qS^6-5H5@mBEZ!==Q} zN7m1YTmCvBhjggPQvAD>`uj&Z7mwr`3O>CDH6}tlIpVPN|LIbQyvz9@VcyD661izu zBr*+^Nh^U&#j1<8P;dIauq<~)l~HrhkfAaTp*cdHuUWgXIVOE%xgZ9ul#P36?z(A_ z-<`&Jt-%N&`w;%AK0*7g-CDIb$r2$#3m}Oa8s7V)Yav-llsh^mbRE(Ktq2SSPC3t? z@ZB0~d2N{AB_LszW~=BkX)fZXvC8`#^k+dL0BaWS#c~|9c|;$yIjc?qi8F0gSEJRI z#~N!_IjWZm%RwSgRNQ#{GDDl8absnxavDG)OmdQXgXHYLnm=`!@|*w(EjNg*?Th&g zLE~HP<{uOCPZ5S#?9m{H2VCJeYt=iDw($6=-+3nTUh5wx*{ zE8N3LZPEOwlOHS=630pU9^&?}fGjqr-Apq1sg}LiR?{bSUxraBti>NgR2^~~o zIuU1fRL9=#TdEnkA0#k&j`iL4y{>9VYsR9IobOU{FKM7CWl%C+!Rr9##t_h?Ss-nhvhoVXjvja!a9N7 z#Pn-0k^EeSW(}bs(_2p>mDF=csCGl^=Zk}1LW1Cjj3}CFfXGd!9@D3d^G}0T;v^>e zILCHLf~7>uUHLsE7>}}Z=wPgOysZABEV79(f&w)!4A)#QDH<|)HOOBp$hE7D(|m#B)U^&32U_87 zyGq7p`=JWS?AS~vCJrQiklZy|7iOs%m$&9KZZAW|7n+C|G{u}{%-WpdPrG8>K@FXr z3l-bWWpKZfh~Kj|YD1=CLE8Ld^rFKrChVoCdszB!poYn0N8-WhC=-eQq-EK|Qpmey zUB$K!hqu@90;vBWJy2nwhK!;=E@*6|VqB^ZdRU7fUOU`*!7h^D=wRX^ypO&7i=qz1_{)=fL;8XiB0j&B2|R>@(! zu$r}!?#OkHF6Lj%Dbr=;Lt0^=723EhXv(h4f*9d=hYcAC4dSg8do^bUKdIxV<6|9z zz}mVhT-PIvZd;esCO%W1FQ9`&jdWT*d&7uGJHD=ZWBDyhknm^Hu^tK8tDe{Ew#|!b zAq!TmwTW|ur9zIX!)A~+gNICkyy+LVaa3VW+ig2~lNFa8Kr0e%2VsZ)HlLgt;>|(^ zy$d8P_yz18`GO_^>UL@(bI}PT*3-$1OAN_!Y|NhgW#t~oDCYds0WFreyCYU3T|MZz zL{Q^6$1lQSR#{$eYTdD8ltTsy@{pH>RTGa*T}>}?H#1-Wfn6U_ISUt+fwxPgTQ%E!#EBnjXdi=8l<0^Qr|CxL|Y9EWhNt~ecHMqOfqfc z35j5vG}o@6dPCzd3V#Eu=AV_ImAKlMo{#ld&&A_c0#7hi)gW<$;DhQ`uZ}+1*nTB_ zc>`ow?1kQVP`!X^05xuOaQoX&5Kb`C5NGoJ71JOQwJ`^C>aE0lw`aZu$nec++tZG+6@wJTF%;ci5;Hx_j{;rz9Bv!QOG=@r)EiG(;pep zW79B1~K7ebz+B#25YK|*nF_wl#bi#)_G zLmk;O(>ahh5g`3`HR&qD*^SlZ*IEkk{9gGn6+V-@ns#wAee&}IArXDtDn;^`dsnk7 zc6P*6tcV1ynBx0NyqUVKm#OWhNTn|mBjHu)-a;@ z`$Gm%FS|ivGjk8$b8JME9MbMdpK6ChTRz%~axW#Xc{XhC7V9%Y$OzPe_TSTGkZ+MI z<qrfFXMx ziikq^Q6VJ_Uz}y%9u+g{dOLVIvz8D7a|7FDYZb(##MRYAT7{~>ax~j4(l1XXm6^rA zwf6J>Jq9Fh8bq8TULU&oBX+%BLq;dWpQ`63X~q2G7W%md&$yDfkT@t>K}~4P{(&+d z<`tTO`Kko8qW3$hP?aD}C4T+bRGX?E1_|M&lv?xj;ymU}#>5Lu0K|VxS`|nNXg;|c zC^M4#eNsr4g_VKn7XEQNdc3E?Zhf8rGAmea9cFC{_EN{QWwA5uL6D3+r05GaotDz=>#czh$T$O|MCdYz}o)#=1n8I`BgUs*t+i}=6_x|&(V zWel-qqHtY8P(v(>uV}6#r*vH_#gv8PA+y(Za}@g-HE-+*^6={_>>pL2#t7Pm=RTSi za#A2KHvZ`}BqP8X>zMztzv=jtCrWeuhT0j_pcKnk9Ll9Y4+*8s>$$iHB;sS8cesc2 zmW)O#uVNDfkj3hGw$Q+;Fvv|2nIOJ2bO92f(9J2T=uCdndv9TLQB&1s(8?Dk57wQ? zsgURL$9goEK}Ul`gI~0CpjX1^x<@ndRM`51M01QtmP_)FX0SbDWVd}F5nFg-<4MkM z+NAQ;w1y3pO^|nMzYsRM<9Vb}ZJlu~V>}Y_Jp37tEE|1pWtNHkjNnIjLqmd z)rIi2Rk#Y;NgN(5Dcep}UF7?0XHS7%MR?+93P>ns9>hK(Ju<`}-wDQsjr{hGFY!1@i__-Pd}r|aHB$jIbMpO&5|pUq!!8SH>0Yoh$z4)o)+w{sUV1D3+Gi zXpSq-s>^En+^+l@B%&w{wx1W1owMrJDkGo6>M|z|PbgU|Ay3-2p#NCf1ZjkG!oQXy zE3HFHx|B}90JZc14T*>+;&{kVsO4A&X{)s(vc2|qSJ{kvt^_+O)e;SY+VZv~K`FU@%6;DFEdjn7B7 zzWRtjK!OY37n;Qm^q6jT*#v>^c*Y2PVv;m0*|kKy#vqP~#!)4{AhDdr$#l)kDIsg_ zxLs2c^A04uy2+L0^R2RF0YR}DHv|c_Q|31O&mFnu?Hd@Gv_h~~YMHlYBaj3hF6pKE zvh73*XhhkPQjZbU)5<88V#TjSEJ)P!G4q+NUsKW-k6Y&rFe5-h9J(7f-)*+fBeX^l zWSBD!5)|vg8l2;9C+*Ry@6mj5AxPL%8#!rmyp_Z}?6tKCLP)%pzLWGWeZ$+ZpmLPE zrL0RI)L_rB+*r-=DGOmXD&_uhNGxto?wyL8r<&xZPc)XR8IZ_<`;2E$%$QK;Cc61$ z(CW~jm0B*X=6C?gnb21uYS5e(01{^!3wX7MCBa%;Yq{|k<-0&aWg*_aXq4FHm6*>- z$&*7G&`5Hq(T3U@regN%NcxowNTl6<3Oy#QV82E_e2)!QYsG?AlAbr{v^tF>U$P8P zePbNU0trQ2A@dlm7IkZtmiztQE0DQs3$~>mNs6%~xS3kIkr|K<wivje00> z6}+JoF-Tl_?;5C2vbEfWYht8$DEvS|K(0g(bBuJQ>F?>3$2Qs^L3Qr&uxs_q&Si>o zg~FCVkdTHuUr!<@V7A%T`aN$TLS`=xPGZOC3F}kQlKMjTdz4vF!yo^O+2-P35p-EV zTBh!U^aiW{n7`F@T$+{?nf{P7@eI_k(9Nkx+>LV1pt$63h=t(m*endBXU(<31kjkEe`c(=IXb;5r~c=QCNrzir;A~Ssk>NN4V2C zyA$^>Bwo{8>4x}S%dy<3a_0%nVS940F25Ha78(z32-c?esSX+Fy#$F7%=a6u+UN}r zKQQyEi~1q6mk{FprMvxY$El2(1B%hJkoVF%;F5dnA?H$B=N)9?%za3dyi+*kwUM@N zbR7#}hd`iEU^!5F|J0j#ZGO6d2_8}n!U8tM&srsd8dRx>sf z{hA>G&do&32Q_*pf|?@JcRbKLPuURaHv}nZY5j&0>D$aayiHNE4?!Q2r!nr!?(IdO z#J%Q2kQHsvs^}`S?sPv$Oe&2UXK95No_XH+I|;*aAc1KXlCh|4 zB!)?kGbt43fke>{41v7IT;iaZkC{fDF9r#8fN^l2JEn0r{Y-^|Cf)`T?RDZQA$~`> zlV?U{L{$kygFjC%z+LQ9#oy$8mCLB!4r+8xbM4Y?DU9nnf3STC=hYz5F7}k>C7`;q z5fAnm&HShZ61i#Q^I9g7At!|ejnkF$03>3oHWcn*+`#o*V7XU_d?22mbB6vGQ~C{E z5_R_Qzp@%rPy=t>Rp@UZ9KO?U6)V~jxgR8o4#$5<6fL;>MHh7z%PWZ>@gHjWW=qY4 zpIO2zOXb9-gG3_Nc3PpYvx)Q4tk%6CM*|Hxy!lj&mEsz}~$CD?`&|w_S z=OlT~*$CL?WK=hqdQdDlJsnYjt1;i63RGy9MRtB#feu@urPuzew_%jw=<{(Lv&PvKc8FK|mm! zB2+uiw?pEw!3_Ly*)^0a=}*kAL&~XcP=oqK-^p}$X0B9qM&Et#5@ZgY(}#a*CTv$* z#Rd{=a$tQ9_f6QC6Qv~N8_$?so-KKho}EEDopM3o-9}pe`52q^N(U&179W8`x`-_> zOc_(&H>m&s#O55cR~>w71$wb>Ww#>=^n%J`Z3v75eA41W3aG&pGOhBXHCI3+)oH&zP_XAZu zq*i;2FtnEe8`S82`|^2cjk4`$bEbc#Vu%M4@@}3jR?8Mqnd0OhFVusCxZ-V$3UbUA z`hN`aA7mKhLb{7`>{;5Pk?-l{E~?@{zXN2Fq*oyCIy2t-Z2hTx#j;~Fqy>eFQ*JX) z5R3W$+2W|cQ6Rw{aVa&DUJZY05Y$SQlX^QQ+2?kZp>vDqp1sI~X}7coW4& zlgy@wW>Y+THbH8ep|_JLau(LIxlQ@&(Ka~H3Qm=v@(i7K&u4KWY-ZRdAQ5&ncaN9s z7~+yRC;d>O6T~^xD2DD=J8^obOT+cqHe@cSf$cTQVK{3JB~&w$55{v(fCRy+F&B5L z@Z@UofTfT0JIH$xh|atrC5u1B%sgD^8oCM%x5>PB=h=u;uj;1wVWwSB&ZRI*&)>>y%{v5nd)xhyFm!5KdD%9 zyS0OU0d0+|GHC@h<~xefX%;(-3aAY6j2;#=tPGMrgH@(sp~$5+UPceX^F$3z;d)wNtecX z;wn#R%2YJHAQvS16%X2YNOy$+1Mk1FPXw7p;R?S>bR8f`#K~uo0z!WysF72YK`!5= zC%M{E#yWy6p8<($xW8x0XT#r`qcSyn6|F}>;#K%1rggq|(5h&p<_32RBo`=%-}B%w z^7FZEv#U8rKIuS$96jel2{_kJdT!h!H;;aq^*d-KUt0nI2!qlcz0DQ}da4kYl^t{?k|pXhrGh?)5%1^vKP4N`976 z$Y+ocXf6|vFMXG6xE1~SBla|8W_s_hALK!uwtY9Ae$ae`QIY^?Xc=gp#Q)UQws-zP zCM1nlTk_ur((r}|(_SwTL`zZ})l_4?J@c~~ETmU18!?Oc9uSRbCd}Ac{ z%|~(;WP{1T-`fu>10JLj|2~Sg&i@zUE8m|Yb^hzL^TM$gdeT=FhLCX(Jw2DjO}7|4 ze8<4YE@NZ>D2JAIi@_hiKX%WqDAAl4hH(P`#P{0|682wuHSBfv?h51Sye&x7ZTsWY zy+h69lz+($6a!5v9yslO$MrXQ?zMk^OFFCwd9bx19wa=Pd=9l-zj*zP)B4wA9Zx@i zL|egF#kP0kQ_e04p9MAdqCmnNwdJcC7oS&}L#*~#&050dVO&|t=FbOi%Cc&d?kld2 zfQDwBNh{}1{9&~2W!@~=VhjKfy2lv@s|&f@H0@lgdZ%n}kjRc>OjDoF&Z2w&`&~hG zB}kN(423+>+!orexixftj(rRye4JQTmkFAC!+a5|b%dVIAfd%ILUr5l%TZ`X^h1&- z#E1F6GO{+Z_Nzs)16*+a?meK!eYwz~wx=}*#Z&+)jz)L`~8utSKH`*?sY$V?Y*99t-Tg5*H&V^ zxKZ59j39V+tqU~fKCqL9(PeI_gXEVMty)U-8=?K(&bYpU9l%K}W%8~xvg-25L_6uR zPYc4kG9Av(<*D(r=1R(J^&oS}P6n~K#FgC~LqmydTL}qT5UVEhTEp3Li4#R<$LHUp z42LuPzW3D~==O5$RoY>}N3j?+K9WJrZFe2vBx1H*{hO^s=E1}Q^xPajxnD|MWVpi4P#6U@ z*y8+>;JSgnI2C=VofPZa$?>k2!bLa_4mYJGIMGfufqU0S?5AU%h+7@bXOzZuRbWZ2$Ij>KIzL6(L&og7h;M{#z-ENxaX zbyyu2*<#{dGWyv&>@$!&Ov(JhJyJo?EPVxs+8Nd}xwQBK^vcvq@gDPdg3yk)zQZfK zX;v*y=u&ju3RO(`+G@JH_(dOc@p_b4TN2ptiqy{Q)7Xd}X5i45Q7=L`{cf6_=OQl+ z9i)w7-;nSp1N$OE?IbSaI)bSWSxO+@(g7XPRAj3M%auu1^K$R8g6LC(_L4wb2^C2r zKCZ*jw~;iRmT_Rma{v+p?9q)M4s4oF9?#%K*|y=WDBy@fEo1$>GYQjvlDW1LW~Pss zJu(ls;-2hLf50U>#$!-gac*gmONOUhpZ7Mg!%oLAMp}f z`YbKMrQxilyOyE9*y=&KCc>93)`@*-QrD~eOgm}3Oh8t(y%1HVB6`|~L6)#jMMpwN)w6Ks>6`W(`7!G!kUxl)E;u1_5!$yN{HPdjz; zFARik;s72Ax3~6Lf^9Z;NFTD7vrCh7Cise-vPS4+2$x709)6QJWfc8tZ$r5aC7=7g zRT?kq8EoBNObM|!8fudR6HYss8sxt;opfh^X{%|^5tO~pTs+k`Te7fmvAq>=x8-pl z4%<(Nd>6--cPVURSKzzyTkcL`h!5WorwLQdwNr2yPm>u&Hu|~HXW^r1-(fp7Uxu_QMAsSG6W`j<1M0O9t@Xz_yL( zYXE(24w*{0r3#Fj#SE~OSjgLBDDpeY&;YnUaCQh;;s##ucZjj~KDe~!a zyYarFq!09($TM32X z3&C^r`V57vXt&r$pKL2Z%csS16-BJT(3fk4uh`q7aq;nh$;i)NCw5hvFCRM1u$})w z_#MNVQ?Dq>l#zj%NoITd`%<+2yItc}CF7&U)wP+zd|N&4DJ~gyNrM-)^*6FQS4x9z zC5m}eTOLn zwqXId5Y8L$0=^tm5{Jz1_Dvj5!zJsyaAu)i1*`YZ`lc>mr#V4A5c`Drx)En8mPQr#}i6VWE#R_+2tie zgm(t_7uMP8VS4DoNI{3O!9eqq?+mr$_ZNm19W)W;x7bY5U~xd@cH1_5DuWDNp#h-* zcj*beO?FO+2c3$lta;9#h2}m&lTyuJ*m(A?~To{V;xQiKPvq`%x|}FXTtbu=~}978%;Iwp`=82 zcgqhW&rFcx?TqZ-=#N-MLfWsSs(H>!72|di!qWu-?V0k2Ucb0S$WJnSq_!-<{1v%> zBV9Qfkgk~P`lY?~u#~GOQ&uZ%B`kd+!!tcYB$K-&IKLpF!&XAv ze8$O8de@gzjjxck$ZRdY)kiD4w#->Dv6=a%v*)8J+a`Lxr;d*9R9!KeswO6H%DM908fE(62VDkRiB|k7-ZJ#=A;THeGqdiq zHMSCE^EvYpGIw2gKm6NxPmdBmTZsZD>u8_xg`G=$Dnpsp5qdNt6j?}yXXfvzV&vD6q+zP)=UlOeNQgH_wABivTZ}klG9Xl!zdwV z7dKHruzi6*;*)|@>z@mw#|tk-+O{$K>xYT6m@Qwg>i*~IUjx8>TM5qX+(J4&TfIHI zuIW)r!>hIuxAP*tX&T9Xl3lm=S4`lxtwdhLK1{%h2|R6~_>8T@zMquuj=a8U;KQ*m zp4b^rZmQZrHxmGvdrVZqEOYGwa*JmzTFT^gld~46`m+vTajuE#9 zTYuXX&0PESGd692*Eb!Rf1{`>KJ0#tOI^tM$F>qf*2vQOO{)q%j+Y#`zp7xFt;8P} zM1TAb6SI{#a2Eq&*T;)iGjA()J+hS$WN)gMu8CT*WM98xXh*mmNBA(unjbm4PcqHV z+i|cy**0K9T%WE5e|p1K?nUc4J5!y))W@%HdZ>Q$b#cZ-j5l)GR*iGfqi=srA`PEB zyu|q38?)@h(NzOm)^zuLz6BGQd}CIOofr8Jfui4Aa6k83xh)InyZwD1?F|ci|NFVW z_4kb0S+A3P`*F*mlK9)1yf;qdeE9QAwrxDJp2)1;f1iJL`9G4vGP>=UAgd3yF8b;6 z=SODjO95v)OOCBo0cE4-qu-vz*!K1F>2LhQmgS2hncIt8R=G9p@%Tx4(L38#q6B-z zJ#+q0ziDIACbl-Y@**8sgCROI&R_%Ly zA*boh+xxyBX}>tzwvC*qqF4K7`$QGBT4(S0?fes4iLvjk=UtXt!?DqTEsd7u+DepI z=E}V3#!;*Sn^#e1pxH`j5$x|#?|S1`$0gq?=6z@@A^Z2m-+$Ul9G84Qe0^A5dxdF= z80MwhF(3b48ojx({#%2c+J@{anK!`ZpQu_88{kXmvt==olN&PJEWG!(%CQB3$17|l zPLOkx%ANQtDF7!nV9B_xL^sBeZJ=tYa$h-T+SkQaLc3t7dsaHPKB%DpzyB)XxUB>; zGGcILY2r18FugInmu9w+u!2%`kEe1-#}*hEx*D770GPyb1>S|7SsLDj=M36$P$dRK zRFhM4jimAhXY3W{e%m$(I%c@G0HAkE&9!+J&}b{+L!fAB=rsnVEHYXzwzsx%OE@`W zH;!Myn%8F>rRv1CZScrbTv=!Zr#^klykXk-CR+*8Y&v=w0306x8Ja=n*h&ytvSFUw z4;{0BCI-)7w3R3xLc9olY+w-M#Btcevz1^|%hDS%aN~au5vz^n=1yCQ!NY^a9__jO zP$IiwDm3(5N#QmEAc{-JF*Qrr zW!2alik8@!FKaAIw#b9V`qGOlaU)R*JGa7=u@M4^fddGEGQ>vhL~F$X8g>O3TW8qk z(i4xb_qWxf%2iB>4MH^Fg#XjeyKO^L#0faJwD@xOlEzUxofW2F3ja=ULzr{4HKi3f zz?Pw<22^N!dDIY^4{jG5*pUF}IF4O__vL4HMm3q!)wXS{>?96qOL6Vo4Q_2UT86+@ zg1;*_n4h;Rt+b(lA1SY~eI%g5lB30m0m|#_JZ1)+Iy-Gpznp_h%uM8tt9ibe>9(38 zxjZU`+J+v}wjcq0T6?dThYp~M8o6imVK=%Vy2p<3!Oj7Yr>ARYN6tn2&`O@vR*ykm zi;r`9O-d<)C8lU|v^Ek5X4;$(KL!;sm#DB2V(rFX`J00F;c5ybq zh8duiqT16E0ljzFR$@Ukv7$@qCd(6}VzQiQyQstp^hG?ei5=;(-WI)gWtz-ytlOUu zoGHWmhRbavtU#_-YAtspL1J;Z?lrNJ z{I=~gM|9l2#f<=$qXh^~gGAVp@TI5)Y1Hvk2z?A6P7Bvog6&0e!m|O6jgUc1xz>(V z!nS5FC078MEIoa&xC&<{CGv^nqB5VzdW1*>+!btR8x};2LzV{Ckr^qtbPsGfp^X3# zb6N~+0cGJ&75Rp>hO&FM5*3$q32Jc-j>rYnA#}RfM#2hoFV8eI<1T8$D&`RFSRAco zO7*N0zwKEMw$D5yf??AFAP|T-q%mYE^#D~zS<10>NC=Or#R``=guS0nR^k@fHo;eN z8h46l%5;rNkIQ6^+DaG%@-eMXKBXML!p#R^+Nxm%-PxMy6&zi~SA^THfp*3i-|zff z0Oa!1v-sGD1-sa`B!{)v)CIJX%2ckmRT@?q-F6;)%UXc@`yeTMt_P1XZ+E{P`)g$Gl2b~FzV&jnji+^vv}M7p^0BgX zz}-mZu_+x?o~?v0TYK88l7pm86A9+^yaZbbUMHKM*C2N?OjF%V*g_&32?T&(4VzdY z2LB#Ko?3*40P?^4-{vp=b<}hzxeYtMD3Xv+At7)gIjBwhfL)5ROCt&5NP;Xt79b(m zN^r0?+E6yoll2~h{8HOuo|V(D)<3OGW7U&%spadMy{gly+JG1MQ| zBhDr>`h*FOHg?yYcz9<<>`NHC9d6PYMorOXczj87sH(xwmpJb z?aZ2NC)XI!I7WjtXWNDrZZZ}NY6zVMDQnY(DrL5hA> z0h_B}_KX@JC2zg87m!%nwoTi6NH=fZ5j(lepT87=Z!W^SixIs!rcq|@89IS;dXJS9rrxyU1R~fU0V4-Q1kSsO%u46 zovkkYT5NdOUb6z<7q*a3y3W|5tpBztHqX@Y7ypZUa&(ZRgZ`)R#qoYP-Vew7@n4kz z$7pbj2FGY{j0T)nu@>hr1`cE3Fa{1|;4lUbTll}0fgR4m;Vc}^!r?3&&cfj=9M0l@ zo-%d#N{6p>_)3Sbbofe#uXOlIhp+tiGA2i4;D`(yk%1#Ja6|@<$iNX9I3fc_WPr?d z*g}Ubbl5_NEp*sIhb?q0OLDBr`rkfCbJS2AH55k;#Zg0XI?Qq-wSGjG6QF0h1hf#7EC5KUR%t1KjARKcL zjyVX&9K`>)C!nL2a;w8@b+InpM_gumm9 z2FK=tjtYsRLgJ{9I4UHL3W=ja;;4}P|5+h%j{WO_v!a@(7e)3i zT7eY&es$~bSD(tw)?~Yq$;i_@mx|B;pkt?eq&~f1r31DH@cCW*&vWgj%W=P7c?wp0 zO=)oi457gjXjTo;3H#;3pjoX}4bI64=Qiy^MxF}0X#P|V^v}Ag|KHT(|Dj%phKfP| zeSpZ*hW^716$ktQ`45->Z1BIGts=&{ihy+$;rBcH=HJ~!#_k@weH1&!EZ+M2Ma}PO z@c(;X-EgD+ZvLzO-`({e`2Xzh%->u3^9&gb`}Bs~HNT%=W3_&K%xZlWJ30;E__F`b zW&gSS2_q)po#obOfIBgcbpCnt&C^!@DM3XYo!QQ3(b$^^Y2BE$c%v=|e-otUr`osS?j|Tz-fSWrVAY~G6x=GD0 zjsD{hB^V$}yNkf90hGZO%Saz~Y!-A^$N`Ge;D^5lpgd6ahoyqyD_sFv$VB>n+3ry6 za6)G@G@mS&{XJ14;Qx8xEew|u7jb7E5}bPnoTgUR5e(2=7id}l&Qi&9w9$Va#s)!W z1=``@A_Uo)LU|LVX`#umnk6Ne%jBhzU_@{}wfpTKn@L9=PmHuRue zp#2No*n*wCRu8{naB z24EnZ;$jXvmks>gh<(Ksuw=lLNg^U=;;o3T6RzS}2wMnd!5p?DAxsuP?}%3bsYpf>lmhk&UJ`7-AZTw- zcz>V;I5{c)%v53M2;IP!Xrjfi3E9=U{&whY0nz$&{kqbyC|7US+$>IGE3BTteSxHv z$4tIX(npz1y@7SGKr85rD-sk(D%!l&Se6I-x?~FSiTmq4X1US_FLxge4TJ_tNMXuD z57#x3B_*HDp>+Ae0+CkY4`W^8D?tsiT=B3LK2-z&7hyq!TFgTdGMfP|1eOt?E#q0w z2OHeQ#D~-^UW#X+f$1FCaE3{d>Z)+hrfcEfZo~|5jlh}nfI?M5lc|GuhLWNfk!*%V zPRPj&fCVCjO)Ku`mT1K*u>)YC4KHS2h-0GwAz6HSifQ!mVfF{jflUR4qA}4qPh!!n=Y?6o_KGG@7pFluFaZ2zU=s zw62l1%GLRX|J>P5gL!rS&`Rpw3=MVX{@|)v0h~yG#m-Z38q7?8RDr&OdJ(E&`M{XY z)0eE#n|x>3-cA{M1uPJ$;E=M(#SAJyQS+aNTfF%mx7>Q87p}8aDtL9Ew;!a2Dx`jp$W|Z9X|^UAdjsMcv$fdcpr$JrH)V| z)^Xow3^s8>`Ejs}SiDbc)F1*ZMIdW&ni^Of;Htx?7}O7Ej3qQS zoa199Oz4;i=>~u#0#2dYY#u&0eH|r%CfQ|VyG~cbf1Xv!s4tT___%7(PmK5?`UJNC_wS=SxF(Z z1P~*Lc_zkP=pY1%3fD0!y8F8Tr~ys`7HC3%OCVar2(!2`5ts0QCWQu$6T4nOC(!(V zdgH>J$mgI7MquoukGY8AQo>57YB5W30h$p2PD>*I(xtcrtPWv>j$pvfP%(&ZL|!ay zRrWp`8qa}cL`d6_;V9M>;GC^RU_pRQkmnGzpjm?x1?KAkeBA@Rre5g_*zDo-v260B z2>KZ!<&qkJW{jhQ7R+8izu5r9b%IPqGx^A&#CR`59K5}b_ovXxq;hA;PIiO*OF{)~ z*I;IXgLZyPpzF%u9qvCYOG%{zU!%hv&w$eUet7@aFTw&r_iK4*=P|w+JOg00#M~H) zBK8*d9WxTq8~#6ptJ&X|lPw0!y&CX`5e=P967B~ao>I~@8s9Evv z1|&wpSLIykbWVHqChL9E#j6MOC2L{t5NV5=wK`?fFZ6`=GFpTIURA6<>N*V&eX%S( z;07!k2xy-dZ*GdL;KUK;-X-RQtv{p1f|I zEXjs{W3c!7kGm5)&vl*)pE$m>`t1d)Hl$8gxh{6~7)vaMRTF&n``taEt0L!FKlr5P zkGW@#x7DWw6 zfQ~&u;*;D6>!ZFL>qMmPtqb#Vpc#MN^UY5a9cTBv@i^m&_1pKYus~$%{6gSD-~mJj z3jyLG5Hn!7=Q&DZ4N+#Mppy>3FZ2dqvS%nW6Z3|Ad0UyVj7X*8Dd2T%ronI-8U%3M z6_X?r^I<75>*hjuQ`XlR)u0hHd%WFULP_6x2EKguN$`u|Q6?N-F`7Ti)rAZXOkI>< zTv@+z#6LdPiMpSqg}p^92q3uoIj4)WBi!e6??%AlfM+?~%d^g?Vvehm&(Sw&pn+G^ zbw|dIU*EbgqfO;rLV|vRz_X+(YOK$g8+vhZiF=uAFf?O1w~4fLw#qz{XV&K(3S9^d z#7B~CR9%2y*$8P4IGJfML$s*?vZ_i(gnXUXxM z#}BWD1`=-w1Z@b>fu6LTJk=(DHo-2f9ba8Bf4=as9&Qp6YF7tb z&?>Ja&cHGvNvpX$otI*jAN7Q`fc#ftAgA&+R2AiRiZizEUHEjc#IM`Duej)iInMo) z^6aLiu!@3tt|38j?aa3IYw$0%#V(!$4Kz<(@z0D9ULJ7|tIJKDwG$eMpXZu3J2E3F zRd~Tw%@?y_fmYD;!e&}X_JTfrkJ|$1Dh|N0*)+d^2O`2hJwNI8~g= zp$xvz9Pi=rCA{~3U3Y3j$Y_#k4w|bds40UFN#k+@t4}p`EyLwKe4gB#JO-<(6;xfC zx?VFXF5P&Pz%s+afEdY1!ZEfGd{!Picv!y`UQt=YflYzOx2EfFy9k|sz6tN$NQ_QH zCO>9w=z~+uw@l1mpjF)+kj0k-#o#hluBvH^GFxDQR?t3~cR3GFTgJF#M5)j?0MLbU zq1RS`rx)Wd*aA-M~o%W|Oi zvy9^BVh(&})R=g6jE(T_ZM83JOjY*0;q<%~)<@oBsnGX$V5)1PEv5NQcV@4|xw^v- z8aRFuElS|j-luAh>t$&)=n5OMi)N-si>KL0kZ>7!9lY%a*o+OH|5nN(rDEO{^GG55 zZ0&VgWg)?MfhF+{B;A$9!2?Y(+?H(g*eyo;g0~e5^ze=`c7i^Ua3Q{JLF*RHW?$AI zY_B5JwM&;2vjJiPXgwDe1!$2wQ6{Of&`-b`8=Udo0}Z^Cop8@|H^HciKrfl~IQXFv z=o76&!@FtRJcBBIgk^wcY&4wa?-%qOKn0c>;F|`Zf!LJD(|08)`K6j=P8pxEp@I5B zH1AF=;m#!Qvuy<0m+*7F`8`wN^?!?T9!f$tb#Z3kGln8kR)v0Rq-2m-S7Dk?gw7a| z7l$d`mYcO=fDB+YtaRvGRQrrIxkaw2w&?PV*B9=EuR<=7P)G{j)(!3cr*lkO65!`> z2-ghV0jI)OepJ(YpeVQvz7TmiymB4?V1|J>q2S6ZjnEDUkpuxe;u@KINkM|{7sjfG zozx1ml+>Gtg?@w=pn);&edfl_htIc#rs=n}ZxBEO!;_@hfub9^4FL&0E))c_5Q80HTt z=!*xdoQe%cQsJlWfG%?$o)NAP4<`|eu&Mh6DwS4X{W z^l#%OLI}dB zP($&go;w~>ziG1)x<0gq#&JjyI067~O$n#=)mP_S$;6EnaqxDLVllMT zv>?S=Y%U(hh0Ybh)tRNLx}N9UxCg2}%xAm+KNImR;&C#@7;u|E-7$Qyzn2bui}&Ko zGGFMXkTTVRzTlrPxayh!OoTB0dsE3btNSrUjb`G}q;~#4;q-;^hgt41F(HoHW@r-?srj9Ns`NL~K3 zaJxFhN7D|i>MhSysnb`Fe{}lz#|>3Gb+ypI>{Cnkdw*9&&$%_%>DPCcLz{0z;I+hs zJa8c$;Q#pS7-p(wr2hFIt#9C;9UWNBT=a=^A+(l>J!>C*5&7fxrBm%2XaBr$1RD71 zdd|>;EpOk>SUme@L*<|f8W{72`#0aHzOwE*aAV1j{il{g1OIXPt)GJvcU+gPUm|jKnz0X8p8u2SNMY4GE)CZv=6V(OzH`v#`Ke+dj<;- z5UgCgcm37dQq`LXEDpSGG`&In%#?&)?sJa`p4LDEm-%xpxZ_#RrZnvl9?lA&Km)@o z?s~f9Fuek|x$6#h1i;5ak7{D5ttL5*!}*RdUeAKAxFhwo5vx3~&m?oOwT-RR2xv_U zZW*SFOlh%)nuP{UQp~f^K+44Nh2_-PHWjHT*^B-qe8Jt)I&ao;7c(}kaDHkkNeXQ= zK!G~RXXXhfq@I{-voIC5PBc%m_hb-Sl6&AsJsRLbmTM7iK=a|Oaz^;bF z@QJDL?l%>uh17HP#&dK^?rP}71e`O*hpyqGmge5CrPO%2#yhpWOKN7GVx+>WdVi81Ex~O$`l?gg zk=#RsL(unFouTJ?cNP+;(gnr%Fa){`itSRt)AO&a5i(!?x#}(#nomc#^So(O<=^-C zwH8h4H|n8*c~@4>5cmgf)kY-cQ^VuJpn;{G)g6}mmG7JmDrET#>()R6x$BLYmCbZP zya4Cjj+^BS4MclJkTLR5=K>rVfJXRe1B9LNR++E+e&3uc47kT?eg&Gbr18VPkt5}X za>?*js6RTDLDXOIEg@8rR4ifhQ~vz>eQs#o}@1z zcHYSxOj;Wc?>U60sQYm0uRCuX-GBP>`B3=h*iWi1R(S{3-wHj?nd&+i0lz6o5zi!7Ychan`A-H7m7Sb+~KQXXMK&P zb;ewN?9p%!;Yb<$Kn}cnIE>b+=dAG|-!# zw`G>A=3tN66fOxR`@jORkQzr8*1cjC|06`^`0gL{`r@b z<%Z}&+-S|dp9Sjtd@sRj3UZYjsOnTV%CK3Nn)m$J7HHs{0na{Cg>gVhGq5@O6zB>J z(7kxRPCwdHpU*<(c+*?@zYfl zZpER{_sF5Me2<-b?ec&=UY}X*Rs#(zr;GRc3yku?j(wTsWo6Gn0~eg86f&v;G-t}D zGZQ8cY=s6A(crw^0!Ai2u!u3g%`+7iXa%OtK~(p$FNtjN#BB+Djnco4ZfHFp#+eZ; zGJe(*w+EIGq#vSRuPv+A)cr&{ri%~001f=Rp~?6P?T(lF6O^^YtzQ8R9Q50#XpZw- z)={cX9CV?xV1bBFu_=SBV-DU3P3^4sONAqr`16?qH=C8~2~)AKbf8KjqSVYIg$=V0 zHpP0Dz}MoKoIR1p=sv2nurq}Z2k7vDV^9dW+oKh)2ycvvP-Yy4FC2X}xI)@^7ogZT zpITWi^c}9jaX0Fj#Jj;Ub*Akrl>4E9!V}#TUhe?OJ4O-2AYU{=1EYGS8>^3cyKxMc zD~2@(;SD2c#fa>h*OuGknMUPh^maZhBQh(*nOUPwl*M5mve%j6BPs&`Wh;D=Z&Bi^ z>&xkr@HLg%6Nw|VtrxZb7X3uBD`Vw}QFrLNA?T>AOr1l+`_w36RhLp_o1huV!;<2T zj|KN>-R21YQC`1ZIE$v{rj5@hDT5>h$W_r{R>+ouX?!zE=!(2QeWxmRE1 zU&|an!Sh=&DTI%3)#pUP0oC07mt#GnX5&79o@WB3E4g_o^(*6r0VhhYdklXGttvHY z%k%78bLor(fUvOu02&C;>tceBsi?2>EBZ1+Z5WC*`087eQ!(RyC42 z%pE=vkQ2LjgJon&3SS*t896`*EpeSH2yC!Sh+5&}&839_Ige zfZzaSagFj)QE*kX$1$GAS!hOVNs1X2V;dZNl6R$@r-J_!te$W;XnsLyht$S~$3M&{N`4;v#;_Rg=;-xcaSX_=rq~%%>)W`x%47V%BuXtK4B35v5vwS&LKiu}Mp> zcbrMEIPj#5zGTNe?;VetYkTL-f4m+V`0=)9y}wzqZ}-uAJ3ouLao-IZxGnm}C(Fb4 zJ^1mBH$u5356Yo|-?VQypnt2c{UQ0+ug^Js10Mta*Io=iJ$BmH7L)t~EFWxC_>XN@&DHx1 zM%HfFv28(Ehvp%Co@z~#ef{ZIX$y7nzq*z!`SdYt&w$T6(mO`q+1~fn-SEvjz6ofD z2EOa$G%a%Fe0S$sg!Pk8KZkz$$fm)tAYNNp0=5-PFErcE;^PC&mwFOqONwaO+tm@! zz)lneynnk64MZNh`^&!h=12E+ysH3yY7-Fd5FTz~@I%9#78;9O4A@X9v`=^=oToH0yGNJIU%32wdzZ05q4x}2P)a>)f8x;Qe7DuN2{OYG$h}MBv9`{1Bv5rhYtnSHU`F&NkvCbz^@lrzo+6o zmV&KI{(v0H%A5s1UG!U3R&fN?)2D`O81Idw{|2op58J^ENdo}ehRGmg6vEeG6qE=T zW1ljVRh4^Jak2(}OhrbjlRs|9mP7o;IX#hZ5k7d!O?*JSaw5CD??Xw3F$bD4urA{yJt;J9vyd$IYmJBBgCMawa_^WjcD`HZIpG?gKKRMB zS3L8!RUE&ts$N3BusSpE4z#M@W+w5xL@Gi(RuzpAj>D(n29S(?O^T32EIpK-`@)OE z(2Ua?>L~pNZu6FVji(0Bm%#_&QNqq+(i>TV3yQIU+UbOQ(2Nw{u7L4@b;Y%PWik^< z4`0B^&y84^&uwN}gM zhleMif%n{Y`&T`0^d~gCzB0t#9RLkHvgOj|uyA?k$S)~pkFC1@1vD^t_elcplhlO3 zk!+6PtPAO(o0F^y0($y zj7#V1asy^W(7+g7^R+fozQuJ3l73A>W6gcZE4~{)lEHWC*5soC)`Fd5N5gaC^sEjZ zG-K@PLgv*kJ!QQN|0zbhiv${|&nF8*s&I4A0TJ%C#*5H)+zPs~gA%K7JtjKS*>6J_ zG-1~eW#D;*F*P{N&8a!)ZTRB0VP>Ijp&O<7TCXTbX=;Ff8s=YUSxir<@56PMo83y^ zUjwab5Mya@Y(|OhEMv5#{>o|iHRF-BDO`P=EAxj2BDbaAbOx5u3XJ`qRGtobksxkI zX%hI-W@g|XPKo48UPFL7sy_2_4=f=#7_2VOs)=sM`>~3^Nur*B1_}dPo}qM}_YM?f zEbB_pz`v;@jYEQMEy0iCiBnn3z)JY_0wKDc&$ym)y>oC0hpD7#pdAN7C0GW46FEh< zC@Ir$9{LUk^F#Aiszg8e_f1W`qnBNQ2Hqu4rzAg#PW7A^iD#MQQ_#Tho&BEv%7?2p zRVl}!ORhk_HlQ-Ys9vNnW)?L>^$SD#;p+xdN^B+VV?ur;uT6Mp;xDWiMh81*aNNWI zkfYN8@&J5&tKO$IcaJ|~<^)~jJ7Z~;LwAlsFt3kPr+HR(gD#l<7!SSd50HA(rUbRL zisAP1$kAr^acD;6q+uq^r@DB&dmp#DAql>EpH}P|di<_5yg7GjLNtpAAC0H;0N~GH zTVb)|th0CMWE8XmtdG~LL{DAPczs%&f1oT4t`Uks5h;7;W2g$5R$JLPUM!bDAUhNGKaSesl%=)1VGD z`V6*|FL+im#GP2m_$MqOKx@Cu&0;rrr0k9QVUEER3k|%h(gmapHhHS%)9Ry=XY!$e zUROqUqJ+AMY{mS#V@1@B&_Eh~w`cnd zD@gFkrdg4sYtfjVe!+!Lm;&(A4df9*9a9wiSztGe)>l(g9(6&=WK zQHe4M&?P)82&_09RLrgn;J@PQ7YP3}ZZSH0RAY13QqZd-!;=X!(3;jYj?M^T*|AsS zd!&}eE_fqX#x+jF3h20vD+697pEwV109q8J2!Bb{eje2?YU#4P5NK7C7ME5v7QK{Y z2H=dC7Yd!FJ{`b-yO&O+s*Q#ylLWdD0}@Y%B>HoNAN!S&BBT{6J+!LPma)F=9fvkk zljgP!H{`;{91>o@QC3Kv=K$-T{7b*E7oZvMdvjBjQI+fE!h@#DoVdRbkUjm5#+i^C z(C+ozojbQfp&37oS|XYK_~Hjobgb>=kEM^Gfxlh*=DUs$RnjJ_-^J-IPyP-KTpMsN zex%|jrS);Xbx%~SCp55c$&M!ntX&;7<&U0ZpDG`R2JZO@JC9>e*sd*6uFJ2tOJ%S? zqz<62(+WuxHF1y+zlTb{^4&}Qd!ze)&MsOtAKwS>jjf+q*WUR2`}~`4I{kWfru!RM zJ;8|>*^;|+^)3|?S5?{8X!zwx9lyB$!+rjfA6)rAezL5@sTrDaX~4DR-_75_Jh5Z> z`PUPB;0NP7(GyV&&8JQ8F7HVHVWPqW%ZQYwKRs+FVA0{bF`?(T!NNdS)V7E{>YpD! z)O7Wgzx~5KXkcK^{n?X5PWBs4%k}TxOn(;|*z)c#pS=3d+->LP+}7NDu#pT6{CTGD z>MJ{SCtlQh_t$Tn8xIY9+>jVOzB_m@_uAt13lg{QfCVC>6W1TlEghTCJ?&h07yi4M z5siecMZUJ`nX^BIM zMy=1^xvhBXhuk-QdI=S6hX(d#u6%>@_$!s?8xN${RM|g517*)H@|1iyuTq=`-S}d~6)tPi z?d}3-;5*{6gPWbhPEuAR)5utX6B-DRBEo>vC(QkW-DDFj3qCPA-;w(v7&{(VbfAz? z7|`nn&6s7(UD`Yny3i%Pv^+9Jx)>T*uKa}_xH zhBb>M9>dV8a_?o1^#-1(b=`78vA;|R@2QM0dB^gm#?%khNwJ-`YT>QwD>U<26%osc zPI;xZJBQtdR<)*mL8ZBBdKV1~%Co><+3_a^XcBy-qh#HnvTP!z5}Gl#_A6nIl(47m z9X+FF4PF2Z3_T!d;_NGaUuv1&Fv8WVp@Eyv?rAFzTvnY?74*Ycdh>B;;0;$fWoGfn z90^`JYc#fO5E{6_wD~9w03}t4t>akVJ^~H&|IUs403G(*OD}jp32B*t2F@d;dcC%C zAS7X|@Ipi0IDFl(c=X8B9&kvvUuuH}N|vD0T?-zBz8v%tZ=~xp_&Dxj zS#IK)S_SDVYztMCyi1SZr*H>P`Yzhvu*_HaB^5hRfC#_ZbmWp>>y{H9m(9Bh z^RH61PSC2lU=a@Bob=Wx(4EZ$BV}(2TzH#g=;UNL7M-9HR7rr>=+kGoVz407Jzr@LJ4=EHrdYl#nBzoh% z+}{a!2pyXxhgKEnh(!raUU?5?QxQX^GWb>eZ3ojfDXtZT+`LqE;?>ck-q4J*xgQvZ z)hf|T+A{B5q!D;;W!e@~-1;@%+w#k?o8XZu(+&;N(qOdutJ+8$PwBuN0^{d}sX9P6v&fMmBJv@A2%y zK{@YycuO6_w=U>vEPUr&DcMC=Yo?lJb4Z=6(t9z`jKRa#+A|mf{>P)j0j`Dh7hXBM ztRg1(^3b6W=f1UL3V6F3*}S*oWdD0L?c3TJng|8_cnmHb9CJqn2fJ42&SsQ$B}3oi z$vAGU{K34Si%vT1w9Mf`XyB$^_G#J`bGy%O-Fe!60H0gomS~^O<;iINtP-)m zKm*Yugrc1u?omsM=~-s|>+nuzIfWa3N4k+OuHm6tq+AQlh;8@6E2ED5aQ1j!W&Sf{ z=&B>&7Jiu-=e&*O?$fX0iRdUa<4NC59VOJU#B=U_`{PaF@HVHdzom5ew*%|CexN>A zwI##|%~%$jooEX6;rSSf^|78V(CZZtWrGG=8Kbx&wG6=LRTa0dJaFN#n8M8y#?fQ- z-Oy?>8baE6Ui8p>N_@}yqSIs0z?r)Bp}o)Gjt?K(7@a2whBw9%{l-izS2?skrCpR{ zh=+fMM`IGvE8o7XBL?=(bY4s3!>WqxqEDG|2>_=xg%>hzmc!yePi0MN$O_YH58;s# z%loS~K?Cm*PB4g}mE_oG5?6bWMugBny3&1XqsS!Ae1-ZPw`pAiG;q0_y4W}sk$k1{ zhQF9Q@C-CCYOcXgA6G2G=Bo_YA|m)iP9wt+(3!ltw(`cgF_h&*XvPUI(z23(N>cG0^g z_ zz9`I6yXBVYMs-v-yjATED7(tp=Nfk?RHi_RIZ%yGpukEW1j({V)!>lhvU}_@mP^t1aq@1tNy}9 z9IK9ICBwVK;fe0FgEvrPrSLio6ec-Bxg#r3X#aPkC&0~Kf7OSVlX(qdfKLNoeMUnYy{UwDR-_76ALtKHMkKtE|`Up7}Fyfiwv zrI@yI7c`KH4AMriLMIsjx+=;w02;Vw?hmZBx6kZw3Hx>K;fQ_DK?AKHq!d`s|MFy( z@XQWe^xq#t0|kHUU%$L!({jOw|I}O>?Xf}wKdXIwe#f!A#uvY7`}K+Ia`-{DzO3wxh7d7Osv#thKtOIPShe9E)LKNe(Ao+igm5(kL_pMV5s+Fh zXj`?OmYW(7HKJ{?$F>1cvF&NmdQP>q@@)G&W4vFdAKuZ?(J`#Q@t62|LDpB-l%`e_lsvi>XFE&*SEv_bnR^GmFe`oQ{uRr zv+MRgP=OVjXREGQ;{*Txacb`tkG*Gu!QhcEW54>%P{IAscJZ2X;P3E|(bBFLz59Nc z-?ZY@+h#8CY%KmVG&xK8FuwW-oqM(ZDMBCa!40O1-`z zR;J0K?<-qcTLM-zePSDpHfgnQ9`pV}TQUO9R3mfAI_0Y?obVI%1Y#G}9jvI|NHSUU z_h}>X6FsYhdm zhygWhyK26Pd);S0{O2$YdQ;buw@d4FL{1o2ZwD(PsJ{h&odOkyEb}2x=fFV~sSt}B zjj*2O=XMzFHSo?kIAmrvdKHob$q@@zcn4d-rgl#IuBnX)Dlx>=#%v3pdlwA)+U@qU zg7F19TLE`_Mb14i*f%xZIVI|zw0BYlg$QB>gHj%`4~viZ!ju$a^Q&rvCx7z)yJa73 z>x02Ln*9M4iwM(T#qGm_itXWHS8@h&WrK;l59*?HbAN-Gj!LBl& zTf%G3wHFRkTVv&8@JMw-cYE`KpOzg?5)`5J4%}F)!T)St7#ipoRR zzviqDBKgx1u&MUg zQl$~U8xO$(u|OXcymPb(*jQ_c&UTmTTH@x=ss<}c>TQz=_4hY;{qI_k!ZHZo#j6i0 zv;qA{8SUnY(&8(%TCn0K55_^>L5HfVXO}$G5wqY$XG?Sk>m$m-Cw;=|HnI&F@JcR% z20_yC)tEjg&?erZ!%fZSd0S5W;%!Th@lT9kz5@@(Pt9MmR4sZZXt|ppd|r988@O{= zGu|;Zsr56p=dRDO^xc{d2Gc~->N?B$wkM2B`dc@|@H!5UoTJ47^|EFXf`^Upf5D0r zs$I)kC?j~Ke^M$=SqHCGVGb2Kj&-Cav>s&ZLPepsz>4va{CqEi!n#W`6gOxOD+PlY zAuef!hYckgvUB?S%_{gOcQ1G=z405_HAh~6pz-0P51@oOAe#B_IbJKt`y9srvv zn<3 zxBf3YE{OL_v~gpHw{7j4fm(`usa$T|lgvKYpq^P!k~Gi>2CJ)Ocg$&$1^RIHnKf^{ z#+%6RmXX6v*E(k6-|7i^$4Pz)tQZqQYvE(~Yh$u>q=nR44+cpF)gHdjQT8vCczQb}T>V1vgGVVR8f@zLm^N*KUGYwAsKJ%C z*MScPo9{d)H@sCY3dVO>%)DUuL~cFWoN9}ij2h?_q&{U+u7VXUf4TF@NfSHhov&^I zWxzwS_(^>4R!%v0(De0+WYRJC@<{nML*l7bzA&~mxyFRvm4i*S7Sy<#O1K$~9b>s` zqnCt%!F|OQg6i5zm3WM|k1^Q_&vOI^_?=O=hu4|xHPpZ%9oSUVw8k@-qD?>?Px0V2 z4gzmFZAwK>F~82mn+vy?&4`MtbhXoE2@{23JJ86=X zo(2m(W7Kbpr1kFU;ftA`?>fRQ9X-$*L^?L?>$^qpNO)O(2(0M!{x2(&xGP zO!6);cu0R|{v69yTSjO`Zk{y89}1$jdx@73LV6Kis~!N!KU#-u`D z{K0vsAQHuY&L~GdH%;UimN_jnq=3P+65jNqM~v&<<6%pm{MZYh{6)FuLAGhovyeJC z6f4ug%du9?kr9WPYaB)Ssy;L%FBEKQD1vfwi$inb*}{--+fT!*DxS;h24ZXGZ(We~ zBr{i}O#~~>h$d3xm|(;hXX+{=wA zc1g}?B&~t^9XA^AQ@p)Hm%FZA)Pqf>S%o13F7Z+O zxYgX+Z)-EaplI?yjD1t7kG+YTrh0q~oT^019BLjtVLp@GwqEkBweEmND-*2*(&S*h zwYqH#uLMai0-K7uP}stt`67lbCz$>}N&px%<|(JHX0J>Nd`jXTalQ=?I!>OR7fQBj zbkCl|7Vj(`+X7bn)V|4}!2WiWbj@+u7D$IX)gAV;3thTT^E0d4{u5g40S^GU5tK#v zxmt^|9`SZ?bA*S-5LKw%)6KCoH`q*S>wJwj(R=Rp6c*HQ{42ujp5!|`_&~Od1{inv zWq#MmOABD@v`fLgdiW7Xul_!OzYDKZoVwWyk2(io0q=0Tvnq0o!*vm{@)ocnekvPb zW73|Cgv^B~({lkBJeua;78;doY53r#Vm@244-C>r1h)bfbPgQTo)@31J{<)Hr+4q9IJzSs@FeeWN~+qqw>^|c-(66(TkVFU+Ta{bK}`@>><|ADs=4WDVkJ`IlhD z#Z!`ZMc@9}dF88XO)pPAd;tctJ{k=CBjpIAeQ(oWXTB5E_cJ}+xBfjnE}VS; z1}}uPKQBw%#;9QMdqY<*ga3+;s|UZjGjo0K2VXtBGxHPw3{(;Q&*0C4fB!Z6ndfe| zC&JeVj{h@Hd1U2>E6A(APyY%YsCw_ORzoS1ws-gFx1&2>M#FPe|6?BMzF^!N;-63X zu5QNK3T+}X^wIM-US52`ZT~IxgFT05;iWYP{y39Z{Oe2Fo6pwWiCjH*F<9~Gk2n71 z`r~Yjg7Vk7J-6e*IS%yg2PH>lTRir@#D@k6zBwj2Fd_#{?&af>$iap>lRMZ@lWH-R zE(#+t`x_dWUXP!F!K@YDB>|;p82u?;Guj6}aChT9Mpf&LRYo zz34hc!SU6Dt&|Z|bLmx0^kQSV`(>@=HN*yF;ToBE_>$8O3Ro>;GwPpMgkU0Hcb^t_ z47|@ki%3$E6mh1>*kCO)gBTxPPYjzYE#p&s!r}cd23;{$$Nd$KZT8}uQ zScV-%5bEV3u$?W49xIc&7E@YG?)qK}_>-PR&Jl;wmKRYNvUzYdq^jFQLr`xMk?X)< z!LKElMNG%)jY@W!`#0d0sXZ;y#zW+(Ge;eZ#i^JE3eF(FI+RYroxeb#q>HQ#6*pZnALzZu$28Oioi322sJjA zS{vJtd(lW7Af&=~_iRb{8+=X+dzxC_ACf?WFFz5!h%>bi44goAK zYXb)M^bqON`q+A%FqX0uAG;I;K7<2x8RLo_&;l7<;T}k!YOhni1y_9;I5B>;mg6KPzWKM)3lUhQ_}zUU-0-s`hz#J zHwt6dlif{&*nPM+i7I{BdbWYoNA!iyA1LAqUzPYIYgZ-TDUL$oSo2rpjez^&X=aAF zS5J#vNewNOUnIjFvt`peRnPQ~HY#@d{6t-|6rS4M;p*t&wzT(BpH)Y1rgv-vn@a9- ze2_;k;X6A9n%xNn7#IvJ60uO9qEhnE9(f>P4%}23(-hF1RkO;4n9tM{)ocSRcE&g@ zcum-^V6Z0E zCFhFcN;V_XOPNg>lz_ns=B)@rE(wW6=3xUFk0ZdKL5bb^_;BF`ax;(F8rh!<2G8zS z;P((;4R60|JNo!sOePp?%?Mt!fRNJ_(PWLr64zM3;FJMBZIe+qT0Ici8E8z~1O|)y zgBVTzw|Iv)b0>T=DP3TY>We)pmf%-IWNgOf4dlZ=@|*VmO1%# z+|w`S3M`onFLNe$r6zYh3hx}mo*pR1+CpmtmE~>B6Hxm&G5e%M9yv|q-=43vUF1NRq^Q81Y? z?K|Ur*-J(QgJai@ifbpd1=(}GM%Tn&@&beYjcKAiZk8G*8>>&aA#BG2^=K`WLl8pGnTSMI zb!c9{y2`u-4k``1eHwDt&(vR9d6R7IfL{&C6JRs35e9k-eLM4bcvTqKR6}eDL#7yt zCJ{Lk6vDcrU{F|vaaq(@p%CjsNYjb}#g&S&=BcuOC>@mnxxY?FP#srbm7 zR>r@?Gi%}AN>hfrZ&_PJ^TJM7kIgzF+;`w?GCZ#-A@7r!bB-!Xm%|GRWt!YyyuzYx z_u)Yq{M5}Ua2rKce$2r%-DdB;GP1g^0$y%A9!v9I!Z{|sOZJkFC#-}=HJasbVlxu= zbGCxBq2i&bzrdz0>QADmT#rsBI>kFM6729VXGC~yKEG$OgS+2FH6oqk0#BH-f<$+4j7_Q!xXHZ>WA*hA)M--A;*rHz#jmr#;*ll=gTRrPyK`oR%6x&PKSyg zO@8^2Owc;m3a?+4WF$;KVn1meZ?B9hZCz6VR@CJ1>gp+1E5nBhXwjkuaDo8|&95ya zO%~Tjqy>EJmuM^oEBa56@3Zi6ScORF92I_gmVz!IP>Jq{TW*#Mg@Sq(7ZGSE{yGjF zPxqy~`X8>jv?BZuvP8y>3j-pLs{A%Zc|~(nV6fCZlb9Wu@n#wOxMrtH2>(tynIAYE zR7RSHtwF?8YuA@x#YmDH%PhXAbBYn)yiAPOgTeTsS2L7*k&)YiL@whtfk86%B+n}r zFM1B$-M@CJ9|;Wpfo+cti>7aVpztL;$ZCK`WGqz~Wu~rk+O3ZT?jz>V9a~NG*a`+SLXRd~&*GXt>C*TZ3QroqpoS+U zPSlEm+tpR-nm9GQb68kl9Vv_Yxr4(Yk)ZPce9w7+zK?TCv&S`nJl>Ggp9;?cwds=U zE-fb>>@OWmO`-3|0k^S4SD~F6KkJoPQOUn_<~82H3;pz&MyWlwUTMW!-Mf0)q;F z5l8H~!A*E#lcywqJ_QUm5VH@jYP%R|98%?M;ikaPls##e*4EFln#*aIY2~z{L9k*U z;$GB~ktWWK_J8QWPdg6=F9mW9`Q7;~e*bX^b(OfE27_KpxJQg5oaxlMs7RwB!xs$Z zHe5aWN$s);ao*a&NH!O~0~jsZfu$uUS55LCwv>m+;jsYA6*nz-kK(Qk^tVw zA=Uy_-O(L^(ZQ{`E&7fjxP!#eJ}^i~#epvF1mPM~2_KJ0CULTcmat8Q(XJk68{i?i z1p1fm8|@kY!gkDj;YED^V{qqiCP=a2vdn-egTPkkezgh==G8{}Zye;-a77U#68|VU z7~Clk>E+I>=moM)Wr42#F&ONm)?0@W{OC)BLwdNlM+XLTdX-tr>yj%i4gAORo}Gm! zkmz^0KVTUGp6zUt`O>AB9bm;F?~2hVuc(C{2}Iv!3BJBUy+`(R6aKmrMUG9qft8!n z;Ay#Xd~PeJ6%!Fu=IO#Wz+G$J<=M;2f9;-Rw;Q+rbzvXe>v;Ez8)Z$cCvBe_xBLdfr#svEP{qgVGmZC-sn8f@z7S#itki>Wg&TurZ%f$#{aximlChaOoy zVNUxa_4W=LSTTNR{qCQBdr|T7?{(VQbGawM;GgQ%O@pW2=uwLB@R#3*K@7fig+F!*{IW4@|L~E z?(6&pX|W7uG!fm9bSKg%wHYjz3*WOd=G&Cgai^J7_0KStg>=7lVC&N!y-fXFd3}c z;@U>W;qT$@5&nL<0l%@ADGYRp?6*Aa04vt~r_BvrczFf)eLH>159t;+@x=+NVjVX3gV_R5+A$SysDiRErlkJG&O_rJlWy?AvE=+Fzhj*9>lRdXUOM_%q690R63Fe=OQdHNVJ!( za!zul^kD2oZ3U)qFjya5awTcAgYm#z{l9E|ylF7F^#K3EI}r;NK5x#|J{DMZgTdek zpVban_lNi`*rd=sF7P0L&aWUjxt*bN;x;&##IJFaNz_zsyNTqUzhcycl3559Y-%Hu zi48r(dXjqk4U?6b@NJG{{vTf6rz%ZTzWLbnL)j6q;@r@3-vLXh%9B){npSuF4KV21 z>gw#P7*d4R=8ko_5Bftvl$uVH(317%sS>RFi4lHm22aLE=_##E0pvmBLjCn-c*OGO z`>f#;Yv%B5E$ita#Cr#!rXsw9jkOv^-^MXvLQN7wzIgw-?Ynx5s%e4%zd&kR;fo^vk7nR{YMTdCi6>3Q`{ zFc>4=%pzo$SYsF{&4%)ez#s*qwx9UOkrR@Tp)4@62f-kBf@gc@LjLFya=6`l+9?4H z);Asw&h~UwF-G2PY-(NsPm|@DFfw=4@Z7oR#g<8lhD*vj+9wx=_0uRkT^{-hEh zV3391d!q~wu8$%S3QMBWO2J@x=OkyKv+oz(!Z-VW^m+z&R|2EY<}v+9yOUg<6`yM+ z;oc(_Fc_q8^(Ke<`f!#xhrx>-K3m#AzqNu-?btLg`C9@r4&26Lp@LKse&T?@q{s+FWo5(U!^=_@@#KnDeSCp$DHvxcyzrYm)D|`Vi}ffeV;?rA$Y`6(>!i!4@c}*_TGxu6oYUbEm%*LGD`JJOR@jxci+uC_=A>W2AcwP(y|DY%q=7p^ zC81n+uP#7^9Q;(K8?m23_<+rV*B=iTkE()>1$Zs@=Jfr1RHOx)N{cwXlI>-_w$5AJ zxNiU4m0&Vj=3c3k>Gmv*%Nt9b5`i z?K_MQ%%NZ~f_{CuZmfWB&$vCaGiCfOFqq*U-oGO;lExwxuSF$gv!Jmkr+{A;`Wy_a=4U z0r#P`0sIZ{h<>d~{3uVkWXAvSkL*C|FnmQm8sxLmJ!n5qG2-1^kev%ZhMH1*{|*0} z;|E-F6N8NRj=;-ED*beiMor#k61P6K0S$nMEUu+es>q?370;IVGUWmA&M|Ch8|oa( ztD$b}7$0%x4ugNk>?7<09BYAq{Z&+tD<`J_45}-u>cUD&FMKH@y|1pA56@b9Gpy$- zR9Of3Mp2EUm*75FF`D?4VJ=iFRjyouh$x4Da#4+#+DObZMR}(tSM#Ufo|R~rJ7=Od z=Y8T``e^Dhg#c_S7M~kT7wk4>*Su`kHPyp2dX80Xl6&4PNp)q^#L|h>aj+t9D*sTt z&8I@J@vy3j+Tjca*`XR#IOB^SV=ej!6!HRg?kw6s^m_8h&Di-0x9V7$((yvk5 z8kzJ!yXDKl?`Oe^i{E2RzTCB-W%U)>*B|+K!IwF=d$;$V=qWqmy<-27n=77w09I`J z`-W)oy*pc9e$ezJY40g`eD(P#e!*~B_YO~bTw8g4xB{w(y6<|*Z;h0Ga3;>6b9s$d zc=308_*Lc#;ZOX#{I(0^Rq!Cm;$Kw8iN^PS9NOl!xy0?O2&kz@f8>v)BEcK8Uxr5P z&XzCZfWgtZbDz7DXV)4FMug(I4q3`x(eU#qQu6dx{x3*ma_vOAiu`j@f^7qrA zEkY~aL2!`#vb(ur!ED&6H@}-!NoRRbQ_=VA2*D9m%)1%UA5pl;6UrgC+-`WDJk|Gn zWOjFd%dZspBzNb{r;@#P#>t}DxSP*n>fpy$XTE-^n9Za0KTF$qjlASsJlNC+>&yP6 z?Oc_0=;VLj(*Nr&yvp*E1!Z4FEbMvS#Pg0|{&pR%NT+XGlu3;{^WS#z@BHz_55T4_ z43jM%eA)C8-|RSgP;P>UBT^qf7q3`svW@;-cI5i%Jpo|Fmft@6Xz}e;FA}y~40mgY zg->!L@n=-O&BnegU%mP#&o{5a{oJ1#_x{N9z8l^&YtGtR7YMI;TwF@|-@+EWrHk+4 z*XYvW8`j9ZWO_1QWOb(J@ZuYP9}I+c4*KJWf9qVQ#bGaTPuBr|RU29?yOU{Ng&&r1 zlE(UKQk|UA!JxBiy0242O`a%kEbmqs_YfEiCRdX$ckELHl;5+BZi&!?!SuYyfyS|5 zE4L<{SzBUKf2~Pzr^GVtv32ly5V0X4rFGs^e&$WZ^g;lJf zz16i;qH0VUgL|v1DY}##_Zd$7n|W8cLwc}#G>e>$x7f5|&S)Ebn#?wU`zGx<+a^DC zZ8^L6$J#`%<7Hrw^F@Vjp%b$s+VpG#ZFhPt7>w~OT&wab$SMt*aIc%}gu9M{d)Cgf z`InuBYqcpuA!HL+k!|awX%nU5CHlB$?tS6lPDR2)1CL`fqj(_@S)@VibzsG)%sKj; zCdGzWRbYRQ_%*Ht@$`@16#8sc9sO?oc*bKb{9+)iHgirzwUc(U{M*F-4E$X~=mf9` ztxZ3P=A}l7PhXR$ec{YXomT%I+(Rk56E>Vmg1ad?8hMoG)WmYONU*_A(B21DoSI&;glS{de-1_pNy zJt9r$$crW3X{xd4K6p?rYI6aj`XiknPGP2rYKq}O^29-R3)0t5?n4Q2_~~FN*i-^H z&`WQdKBW?yrbS~mco;CJ=~!KiKlO@hlcX0l?s-fwsQ6HpCjMQQi_(OQ0;JIe3~JbG(0M6xO06YY9OLMf2nMe@ z(8@S7lyHxQKCwC#M+XL(!BtybtQy1g3kOT-P&(X|yXIfpx39J4Kb_0k*2fbR@NadB zldKu&)t^|$uyGde}#2)%ZFf79bJ|a_I%7fQ+{Xr5l%%Qd|q|uNyAq=_G|ARpoDSD&vLUt_#4N%GRq zfcJ84o!>lj_#^B-i_fqn1iAn5nkPpY!wwjnWa)MEL4dC^(B$$+RR+Kmp6>d;K2V zZ&;_YT=F7EkqZ1pLt0)2e1bbPpHS@L1s;8Ij6DT z3+`}8W0=~dF+wAiz(NRpukj!vf-03&r5+JOsd6cWx33&*>a_2maQt^;?g=MN;{mD_ zUe(>su{~&3?U9pf{f7e0=Sg5i0yERDxp~YSeBUfkXYGJ5|6DAwh#=@!A_#FHFRoz* ztQc8du#muLFSqAWQ&Y%KzW{^G$pd}X-qCf=wdGO8p#jri@Or#yI$m+=1Ez<-Ya#ty z78s0ocW5fd+L+eX9wpiD1NgUE6-(-uxECQ=b@;qmPr$&6fo(05?2j3&gPdrm`2Hxk z{}-D7jP#$e)XN9`bAx$`kV3GcEv7%l{;4wS3tN^ce54B=SRD{Zd5KJvyNeP=kP_<# zp^7Mhi$~T88tm~=wa+CU56U48tIRpKEOo`FJ^UgUW$iP9!6xJ2o?!avLAqf<#p!Kn z$zYIk&X6>GG%Iwz(!lom#2KChJnbh*Fc%y|2pK!-yo(TTup)v)VTnfl&`o2L>{zxw z0Sroqdj-4_js0dyZ5Vbs9A1_~;+h3@U!Pjy&X}s@#Bgtd6=R3eE0CuBD#?A8($+R` z9t;xGC;>4`jOvQUTU>-v;syq@ilhi>f;hAstvXy*>;m^xmVCO%N%{OO%h0jX`ZcF` zlVC;B$77uho}&rD!OX_(C2sJoifC2E=(6VxolV3J+&h|vdz|4R64lWb12Ms;IjQ`0 zp6OWRlv{-$)s(7;dC4PQ^9A5G8o#agKO$@1eay=*so#7}3V`VFE`YnRBbC@w7f={T*Nzlku<`(KCJG*v_5wt(TZRr6(F#Y>uKdhK?~^jgb7O|dI~ zJ{as33vOPSW5HTcb-X!v(HtmWy*{F@=lXEfR&V*5Dl`aTZa zS@D@7daEmPG8sJ`D-^ufm{uFJ=LOyKU->8@+?r($v*v?Mbx(T>J1>ji2Qc@?^ph-9 zD2OUNH4O!mQ?whk+^E+$n}b+h-Leob7sm%JmVL)-hw34FKlz3ZnS)qz!wE$LKLKPs9P|mqwD_0Tc-Vez)?#bq z`?0g5hL}ZLr%%A+_(9}@P4SB+YTuXaqHm|i!wV}4ceuN?=jx2pzjF)s-&E8?I|ua( zd37g@i|{8J{>XT{2Ff8z+Oy&hujmPK;crda=JhEB3{JfLLx1r#*LP>Px&6jTjpcyB z>D-WIFTZ~Nw^QFFJN2M5JZ@lR{qC9__0?~;&#eB7cT;-@tSDSPaO8_G4hGIHX{**% zaNsouzQe**HKEt52V6KGkJdf|#|_Zi@u%XtUtQ|+l29?te~p6x$p1H0WzzX=qu@3! z`K$0zh$s8O-Y>kLv`+pCcgFVpx%f9Xb4~GlD(_>%YFGHmc)e_+N>9>8Gq98B9K?FBZI+L&nRp0`K>>D*3R$M zgWW&;?Yf#g5(9rqxp5$P6#Vn!Pcf!DX7)-rcf9S^hnfd;u%R_OnUdU^yjL8B$lV7o z9SG?7i0QJ5a(QZF7qRB3>%f|DbD`4{h(-@72GUl@J|Qss5CW|T z${`s3%xm;Sqk*3_PLc>Za=~DXpLX2T@V3i}Gwzg(&D=#`kbc+jMrM_3^0zbV!;H5$ z@L0^xNLh4EVZR@L{<~=cj54P(hme?uOEDS6En(fJXX?}@hR=vr2_Yn3UCuWIGgsYaTM>ojn|GN z1UZyL5JJ9Pg)*^?bm3XL4uQuh=S8Wb{XdruwJH^h;-=H#^V=cJm=V>3ZJ5uBjoL-~ zv<7Ud6EU?uP<(DATTzuM%uHy7f~ak)PgybIaLpG%BS`S6|G0&l|O{8YqYcyD-0@TyLpIumlqP z^A7Vmf7>+8CXYRHifN7f@K2~5;u>SQ(Z2@2xqQr+P7YMFz@S0<0x5C8U%m;e%L&XU zJ_Cb-bNDA%-A08A5b7T9~-W3-URpi)!}n@@M12@bM#nhKYn5r z+(ra{n*m{A6pD(l(J#fW1B0?fjt7OqwhYmrZz9Pp;5HcSsGepYkcDz8Uv>MEH6vw?!T?rOoy6#U2R&}aCD~&f1KbEu5M>S_4#eFhd<69-cOQmg zh>sVK~xq0Icue?y^&4+dEioPmizex1Bhba)4cX$OPWJ;zHCWU~(pYxRLJla5UR8DGxdLR604x~O;NyQ(=#=}ifh$DL;8?5NJ zOFo*`5$Q12Hk5npJhlN0l51S#Uqpu;U{n?#q#t(WfI;n!W8Zb*b0hmCHJX;xI}HY7 zqZyyjn9o+U1+yy(3%KBgaTckKDj>24?eY%gynz7t%D*hWc(`7QXB#q!as7*_aF21G z#lBN9M`ij_lGVHLK*T<96J-afv4;3%UEbn6&uGq68yK{08X}||4fp@Hb4>PxRMY_l z@x4^Go?}9V?%~0r1h~U!TvJ=%9zJhqP^Ro*^2)(}ACe{yNL6l(U@nj~d&rvKafBL* zc+&lHPf%{T%7pJzq&43fp&(j?I5;gL5;WnAB-&hpWrVPC2y29Bll4U%tdrCb7o zP0K5o?)NB@r#_A5HT6fsLw=FVWL0Y{Q|9Dm=J8t5zrphq>RZVtXzdBLHpJm|Zh&LA ztl`%x(EtJWm&;hKS_N()cY3a;2h-|3={N4H>YIj7Z$s1XY{E?KO0&m`A)YxHo_8Y9$fK$b2uo7{YGayVW!g5hAydFMD8z)gtjOK6b37AlvYk@~ms!wb3 zJ|n$j-o2zsHXTfg1NZ4uVu5m3)58k#7VX0lpE7vxJ&&ZkZ}h3MrgHGi1OdJsM&1rd zqloaw=cj_hg6k=8FFY-`nf@eIEwABEbl7^6yTDCs-e@>Cl%V}LwymMNGiDk5dz;AE zKsTtoX8cYdZ1=QTE2cImtukgovBwH0VegyKsbDZHpfh&p znLtj7_Tnb5$H1;88jCn!$NEsdPj|JSHW92B6T;Z`k=NYQKIxQep*1{swy#81^DMt< zu1m(ZS6fw#O0XA(_-tD8SwoP59)urFpf#}7P*Z1->$i^|SlHl;Tqg41gP&9#A=#*Z z3+wJW>2Oe^Q$ppC<0I`?f(iVoBm9GOZpj?D+qbHOGfd@#71#gp**MR7S`JnWp(P2g zF=D&whL%#bDm3^Pf;Qr#JYw!B* zrLd0_-_IVXyHcM4H593Gm8I0#Q@Mp6$AHD{681Xz-{L9mxl=y#==kTNy`cLxQf?)h{LN)xymv33=!XNBz z&uuH+D60_mfV;HI{No=kLwn{3U+#1n{U*-|40;c#%AVIwu5$S5-hw|z-Qd4P&8nrw zo1Vd(UxhuA%Fx#+EF=H5>fzp(B{v4T+eTL3^#hN6l(FxxQhrPKG@Xt=APR2aKR-ZN zMF0Q22BF{^F!*U_px?{+Yl-BkH(_A}SnhN?H8Y1_8&pdf0fy1u^H_1AxL*?6xKz~Dbqg$F(Z z;Lqx4TfzG%#D#xm?f*QU(X_L-nw}rpdkQLuywKux0ppA9H(p*@`Ea-xp5<4+J+t-i zf4jA*SKrfol>XlDU`58>#=ob_zPf*0{q6`qeg!;vT4-#Df0>&y``q$y_Mziz%o(K! z=H24ma+x~wAdm~TbC1MHm^)QOAmlk1mYP^_2P}~3ix`woy&1l2{7Qq%9Z*GdUr9jm z|9xWw^}_c=P!4x3{U;a%jgC&KQ%7S2_|kT%$bnYjOeMw5ko1W+hQP^TB#gWxHqT2I zEMk(|1c??l)Ks+bO$3qA@Z6~bDna{)p&UXU(q=`AP1oqnw1pVE8SW812p5J2O6*N^ z>$ihKVk^9F5}g(Au?Eg~RczO#h$&OxCL)Fcd7x>MtG!E~AU|UuD7cM$9zsYHCaL9# z1odf=A3V62Q;yvgFxZE4?icWl7xZIb#T#Db6&6-AqmJoMjS)9*0fT~`5lR z>*I@zz&%?8xk!0Nk*cZ7i!$n_gW&aVEa@c2uJIh2ceF;sk{ZImrUqcSonI0V{Z7H~ z1<$cd@QrkMaxS~L4}aFeJZRB}5?`Z@5qOy2m%tK+wo3K2*S6bGm@Gt*b z@kSp!^+K891cQm9(Po7Yv2EFu z@4-!^lUh5f`?W&WHzakm&Xx%VBliR*;>F9Y43_(UDr9$

rZ%1AjzGt7AO) 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 a8{+j6p7C#D)8&MhSLS}o@R%wl?D;=;mAz2_ literal 0 HcmV?d00001 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/led_proc_init.soc b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/led_proc_init.soc new file mode 100644 index 000000000000..6167c3d68f33 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/led_proc_init.soc @@ -0,0 +1,7 @@ +led load /usr/share/sonic/platform/custom_led.bin + +led auto on + +led start + +linkscan SwPortBitMap=xe,ce,cd diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/media_settings.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/media_settings.json new file mode 100644 index 000000000000..be66be697b7d --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/media_settings.json @@ -0,0 +1,2692 @@ +{ + "PORT_MEDIA_SETTINGS": { + "0": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000084", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff2", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "1": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "2": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "3": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "4": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "5": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "6": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "7": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffa", + "lane1": "0xfffffffa", + "lane2": "0xfffffffa", + "lane3": "0xfffffffa" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "8": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000084", + "lane2": "0x00000084", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "9": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "10": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "11": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000084", + "lane1": "0x00000084", + "lane2": "0x00000084", + "lane3": "0x00000084" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "12": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000084", + "lane1": "0x00000084", + "lane2": "0x00000084", + "lane3": "0x00000084" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "13": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffffc", + "lane1": "0xfffffffc", + "lane2": "0xfffffffc", + "lane3": "0xfffffffc" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "14": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffffc", + "lane1": "0xfffffffc", + "lane2": "0xfffffffc", + "lane3": "0xfffffffc" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "15": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffe", + "lane1": "0xfffffffe", + "lane2": "0xfffffffe", + "lane3": "0xfffffffe" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffffc", + "lane1": "0xfffffffc", + "lane2": "0xfffffffc", + "lane3": "0xfffffffc" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "16": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffffc", + "lane1": "0xfffffffc", + "lane2": "0xfffffffc", + "lane3": "0xfffffffc" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "17": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffffc", + "lane1": "0xfffffffc", + "lane2": "0xfffffffc", + "lane3": "0xfffffffc" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "18": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffffc", + "lane2": "0xfffffffc", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "19": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "20": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000088", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff0", + "lane2": "0xfffffff8", + "lane3": "0xfffffff0" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "21": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "22": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4" + }, + "main": { + "lane0": "0x00000088", + "lane1": "0x00000088", + "lane2": "0x00000088", + "lane3": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "23": { + "QSFP28-": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "main": { + "lane0": "0x00000084", + "lane1": "0x00000084", + "lane2": "0x00000084", + "lane3": "0x00000084" + }, + "post1": { + "lane0": "0xfffffff8", + "lane1": "0xfffffff8", + "lane2": "0xfffffff8", + "lane3": "0xfffffff8" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + } + }, + "24": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff8", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff8", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000094", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000088", + "lane5": "0x00000090", + "lane6": "0x0000007C", + "lane7": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0x00000000", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff8", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "25": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000090", + "lane5": "0x00000090", + "lane6": "0x00000090", + "lane7": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "26": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff8", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000090", + "lane5": "0x00000090", + "lane6": "0x00000088", + "lane7": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "27": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000090", + "lane5": "0x00000090", + "lane6": "0x00000090", + "lane7": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "28": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000090", + "lane5": "0x00000090", + "lane6": "0x00000090", + "lane7": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "29": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000090", + "lane5": "0x00000090", + "lane6": "0x00000090", + "lane7": "0x00000090" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "30": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff8", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000090", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000084", + "lane5": "0x00000090", + "lane6": "0x00000090", + "lane7": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff4", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff8", + "lane5": "0xfffffff4", + "lane6": "0xfffffff4", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + }, + "31": { + "QSFP28": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "pre1": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "main": { + "lane0": "0x00000057", + "lane1": "0x00000057", + "lane2": "0x00000057", + "lane3": "0x00000057" + }, + "post1": { + "lane0": "0xfffffffb", + "lane1": "0xfffffffb", + "lane2": "0xfffffffb", + "lane3": "0xfffffffb" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000" + } + }, + "Default": { + "pre2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "pre1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff8", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff8", + "lane7": "0xfffffff4" + }, + "main": { + "lane0": "0x00000090", + "lane1": "0x00000088", + "lane2": "0x00000090", + "lane3": "0x00000090", + "lane4": "0x00000090", + "lane5": "0x00000090", + "lane6": "0x0000007C", + "lane7": "0x00000088" + }, + "post1": { + "lane0": "0xfffffff4", + "lane1": "0xfffffff8", + "lane2": "0xfffffff4", + "lane3": "0xfffffff4", + "lane4": "0xfffffff4", + "lane5": "0xfffffff4", + "lane6": "0xfffffff8", + "lane7": "0xfffffff4" + }, + "post2": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + }, + "post3": { + "lane0": "0x00000000", + "lane1": "0x00000000", + "lane2": "0x00000000", + "lane3": "0x00000000", + "lane4": "0x00000000", + "lane5": "0x00000000", + "lane6": "0x00000000", + "lane7": "0x00000000" + } + } + } + } +} \ No newline at end of file diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py new file mode 100644 index 000000000000..307b0d0581d9 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py @@ -0,0 +1,402 @@ +#!/usr/bin/python3 +# * onboard temperature sensors +# * FAN trays +# * PSU +# +import os +import xml.etree.ElementTree as ET +import glob +import json +from decimal import Decimal +from fru import ipmifru + + +MAILBOX_DIR = "/sys/bus/i2c/devices/" +BOARD_ID_PATH = "/sys/module/platform_common/parameters/dfd_my_type" +BOARD_AIRFLOW_PATH = "/etc/sonic/.airflow" + + +CONFIG_NAME = "dev.xml" + + +def byteTostr(val): + strtmp = '' + for value in val: + strtmp += chr(value) + return strtmp + + +def typeTostr(val): + if isinstance(val, bytes): + strtmp = byteTostr(val) + return strtmp + return val + + +def get_board_id(): + if not os.path.exists(BOARD_ID_PATH): + return "NA" + with open(BOARD_ID_PATH) as fd: + id_str = fd.read().strip() + return "0x%x" % (int(id_str, 10)) + + +def getboardairflow(): + if not os.path.exists(BOARD_AIRFLOW_PATH): + return "NA" + with open(BOARD_AIRFLOW_PATH) as fd: + airflow_str = fd.read().strip() + data = json.loads(airflow_str) + airflow = data.get("board", "NA") + return airflow + + +boardid = get_board_id() +boardairflow = getboardairflow() + + +DEV_XML_FILE_LIST = [ + "dev_" + boardid + "_" + boardairflow + ".xml", + "dev_" + boardid + ".xml", + "dev_" + boardairflow + ".xml", +] + + +def dev_file_read(path, offset, read_len): + retval = "ERR" + val_list = [] + msg = "" + ret = "" + fd = -1 + + if not os.path.exists(path): + return False, "%s %s not found" % (retval, path) + + try: + fd = os.open(path, os.O_RDONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.read(fd, read_len) + for item in ret: + val_list.append(item) + except Exception as e: + msg = str(e) + return False, "%s %s" % (retval, msg) + finally: + if fd > 0: + os.close(fd) + return True, val_list + + +def getPMCreg(location): + retval = 'ERR' + if not os.path.isfile(location): + return "%s %s notfound" % (retval, location) + try: + with open(location, 'r') as fd: + retval = fd.read() + except Exception as error: + return "ERR %s" % str(error) + + retval = retval.rstrip('\r\n') + retval = retval.lstrip(" ") + return retval + + +# Get a mailbox register +def get_pmc_register(reg_name): + retval = 'ERR' + mb_reg_file = reg_name + filepath = glob.glob(mb_reg_file) + if len(filepath) == 0: + return "%s %s notfound" % (retval, mb_reg_file) + mb_reg_file = filepath[0] + if not os.path.isfile(mb_reg_file): + # print mb_reg_file, 'not found !' + return "%s %s notfound" % (retval, mb_reg_file) + try: + with open(mb_reg_file, 'rb') as fd: + retval = fd.read() + retval = typeTostr(retval) + except Exception as error: + retval = "%s %s read failed, msg: %s" % (retval, mb_reg_file, str(error)) + + retval = retval.rstrip('\r\n') + retval = retval.lstrip(" ") + return retval + + +class checktype(): + def __init__(self, test1): + self.test1 = test1 + + @staticmethod + def getValue(location, bit, data_type, coefficient=1, addend=0): + try: + value_t = get_pmc_register(location) + if value_t.startswith("ERR") or value_t.startswith("NA"): + return value_t + if data_type == 1: + return float('%.1f' % ((float(value_t) / 1000) + addend)) + if data_type == 2: + return float('%.1f' % (float(value_t) / 100)) + if data_type == 3: + psu_status = int(value_t, 16) + return (psu_status & (1 << bit)) >> bit + if data_type == 4: + return int(value_t, 10) + if data_type == 5: + return float('%.1f' % (float(value_t) / 1000 / 1000)) + if data_type == 6: + return Decimal(float(value_t) * coefficient / 1000).quantize(Decimal('0.000')) + return value_t + except Exception as e: + value_t = "ERR %s" % str(e) + return value_t + + # fanFRU + @staticmethod + def decodeBinByValue(retval): + fru = ipmifru() + fru.decodeBin(retval) + return fru + + @staticmethod + def getfruValue(prob_t, root, val): + try: + ret, binval_bytes = dev_file_read(val, 0, 256) + if ret is False: + return binval_bytes + binval = byteTostr(binval_bytes) + fanpro = {} + ret = checktype.decodeBinByValue(binval) + fanpro['fan_type'] = ret.productInfoArea.productName + fanpro['hw_version'] = ret.productInfoArea.productVersion + fanpro['sn'] = ret.productInfoArea.productSerialNumber + fan_display_name_dict = status.getDecodValue(root, "fan_display_name") + fan_name = fanpro['fan_type'].strip() + if len(fan_display_name_dict) == 0: + return fanpro + if fan_name not in fan_display_name_dict: + prob_t['errcode'] = -1 + prob_t['errmsg'] = '%s' % ("ERR fan name: %s not support" % fan_name) + else: + fanpro['fan_type'] = fan_display_name_dict[fan_name] + return fanpro + except Exception as error: + return "ERR " + str(error) + + @staticmethod + def getslotfruValue(val): + try: + binval = checktype.getValue(val, 0, 0) + if binval.startswith("ERR"): + return binval + slotpro = {} + ret = checktype.decodeBinByValue(binval) + slotpro['slot_type'] = ret.boardInfoArea.boardProductName + slotpro['hw_version'] = ret.boardInfoArea.boardextra1 + slotpro['sn'] = ret.boardInfoArea.boardSerialNumber + return slotpro + except Exception as error: + return "ERR " + str(error) + + @staticmethod + def getpsufruValue(prob_t, root, val): + try: + psu_match = False + binval = checktype.getValue(val, 0, 0) + if binval.startswith("ERR"): + return binval + psupro = {} + ret = checktype.decodeBinByValue(binval) + psupro['type1'] = ret.productInfoArea.productPartModelName + psupro['sn'] = ret.productInfoArea.productSerialNumber + psupro['hw_version'] = ret.productInfoArea.productVersion + psu_dict = status.getDecodValue(root, "psutype") + psupro['type1'] = psupro['type1'].strip() + if len(psu_dict) == 0: + return psupro + for psu_name, display_name in psu_dict.items(): + if psu_name.strip() == psupro['type1']: + psupro['type1'] = display_name + psu_match = True + break + if psu_match is not True: + prob_t['errcode'] = -1 + prob_t['errmsg'] = '%s' % ("ERR psu name: %s not support" % psupro['type1']) + return psupro + except Exception as error: + return "ERR " + str(error) + + +class status(): + def __init__(self, productname): + self.productname = productname + + @staticmethod + def getETroot(filename): + tree = ET.parse(filename) + root = tree.getroot() + return root + + @staticmethod + def getDecodValue(collection, decode): + decodes = collection.find('decode') + testdecode = decodes.find(decode) + test = {} + if testdecode is None: + return test + for neighbor in testdecode.iter('code'): + test[neighbor.attrib["key"]] = neighbor.attrib["value"] + return test + + @staticmethod + def getfileValue(location): + return checktype.getValue(location, " ", " ") + + @staticmethod + def getETValue(a, filename, tagname): + root = status.getETroot(filename) + for neighbor in root.iter(tagname): + prob_t = {} + prob_t = neighbor.attrib + prob_t['errcode'] = 0 + prob_t['errmsg'] = '' + for pros in neighbor.iter("property"): + ret = dict(list(neighbor.attrib.items()) + list(pros.attrib.items())) + if ret.get('e2type') == 'fru' and ret.get("name") == "fru": + fruval = checktype.getfruValue(prob_t, root, ret["location"]) + if isinstance(fruval, str) and fruval.startswith("ERR"): + prob_t['errcode'] = -1 + prob_t['errmsg'] = fruval + break + prob_t.update(fruval) + continue + + if ret.get("name") == "psu" and ret.get('e2type') == 'fru': + psuval = checktype.getpsufruValue(prob_t, root, ret["location"]) + if isinstance(psuval, str) and psuval.startswith("ERR"): + prob_t['errcode'] = -1 + prob_t['errmsg'] = psuval + break + prob_t.update(psuval) + continue + + if ret.get("gettype") == "config": + prob_t[ret["name"]] = ret["value"] + continue + + if 'type' not in ret.keys(): + val = "0" + else: + val = ret["type"] + if 'bit' not in ret.keys(): + bit = "0" + else: + bit = ret["bit"] + if 'coefficient' not in ret.keys(): + coefficient = 1 + else: + coefficient = float(ret["coefficient"]) + if 'addend' not in ret.keys(): + addend = 0 + else: + addend = float(ret["addend"]) + + s = checktype.getValue(ret["location"], int(bit), int(val), coefficient, addend) + if isinstance(s, str) and s.startswith("ERR"): + prob_t['errcode'] = -1 + prob_t['errmsg'] = s + break + if 'default' in ret.keys(): + rt = status.getDecodValue(root, ret['decode']) + prob_t['errmsg'] = rt[str(s)] + if str(s) != ret["default"]: + prob_t['errcode'] = -1 + break + else: + if 'decode' in ret.keys(): + rt = status.getDecodValue(root, ret['decode']) + if (ret['decode'] == "psutype" and s.replace("\x00", "").rstrip() not in rt): + prob_t['errcode'] = -1 + prob_t['errmsg'] = '%s' % ("ERR psu name: %s not support" % + (s.replace("\x00", "").rstrip())) + else: + s = rt[str(s).replace("\x00", "").rstrip()] + name = ret["name"] + prob_t[name] = str(s) + a.append(prob_t) + + @staticmethod + def getCPUValue(a, filename, tagname): + root = status.getETroot(filename) + for neighbor in root.iter(tagname): + location = neighbor.attrib["location"] + L = [] + for dirpath, dirnames, filenames in os.walk(location): + for file in filenames: + if file.endswith("input"): + L.append(os.path.join(dirpath, file)) + L = sorted(L, reverse=False) + for i in range(len(L)): + prob_t = {} + prob_t["name"] = getPMCreg("%s/temp%d_label" % (location, i + 1)) + prob_t["temp"] = float(getPMCreg("%s/temp%d_input" % (location, i + 1))) / 1000 + prob_t["alarm"] = float(getPMCreg("%s/temp%d_crit_alarm" % (location, i + 1))) / 1000 + prob_t["crit"] = float(getPMCreg("%s/temp%d_crit" % (location, i + 1))) / 1000 + prob_t["max"] = float(getPMCreg("%s/temp%d_max" % (location, i + 1))) / 1000 + a.append(prob_t) + + @staticmethod + def getFileName(): + fpath = os.path.dirname(os.path.realpath(__file__)) + for file in DEV_XML_FILE_LIST: + xml = fpath + "/" + file + if os.path.exists(xml): + return xml + return fpath + "/" + CONFIG_NAME + + @staticmethod + def checkFan(ret): + _filename = status.getFileName() + # _filename = "/usr/local/bin/" + status.getFileName() + _tagname = "fan" + status.getETValue(ret, _filename, _tagname) + + @staticmethod + def getTemp(ret): + _filename = status.getFileName() + # _filename = "/usr/local/bin/" + status.getFileName() + _tagname = "temp" + status.getETValue(ret, _filename, _tagname) + + @staticmethod + def getPsu(ret): + _filename = status.getFileName() + # _filename = "/usr/local/bin/" + status.getFileName() + _tagname = "psu" + status.getETValue(ret, _filename, _tagname) + + @staticmethod + def getcputemp(ret): + _filename = status.getFileName() + _tagname = "cpus" + status.getCPUValue(ret, _filename, _tagname) + + @staticmethod + def getDcdc(ret): + _filename = status.getFileName() + _tagname = "dcdc" + status.getETValue(ret, _filename, _tagname) + + @staticmethod + def getmactemp(ret): + _filename = status.getFileName() + _tagname = "mactemp" + status.getETValue(ret, _filename, _tagname) + + @staticmethod + def getmacpower(ret): + _filename = status.getFileName() + _tagname = "macpower" + status.getETValue(ret, _filename, _tagname) diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pcie.yaml b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pcie.yaml new file mode 100755 index 000000000000..ee025879f7f8 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pcie.yaml @@ -0,0 +1,581 @@ +- bus: '00' + dev: '00' + fn: '0' + id: 6f00 + name: 'Host bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DMI2 + (rev 05)' +- bus: '00' + dev: '01' + fn: '0' + id: 6f02 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 1 (rev 05)' +- bus: '00' + dev: '01' + fn: '1' + id: 6f03 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 1 (rev 05)' +- bus: '00' + dev: '02' + fn: '0' + id: 6f04 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 2 (rev 05)' +- bus: '00' + dev: '02' + fn: '2' + id: 6f06 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 2 (rev 05)' +- bus: '00' + dev: '02' + fn: '3' + id: 6f07 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 2 (rev 05)' +- bus: '00' + dev: '03' + fn: '0' + id: 6f08 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 3 (rev 05)' +- bus: '00' + dev: '03' + fn: '1' + id: 6f09 + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 3 (rev 05)' +- bus: '00' + dev: '03' + fn: '2' + id: 6f0a + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 3 (rev 05)' +- bus: '00' + dev: '03' + fn: '3' + id: 6f0b + name: 'PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI + Express Root Port 3 (rev 05)' +- bus: '00' + dev: '04' + fn: '0' + id: 6f20 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 0 (rev 05)' +- bus: '00' + dev: '04' + fn: '1' + id: 6f21 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 1 (rev 05)' +- bus: '00' + dev: '04' + fn: '2' + id: 6f22 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 2 (rev 05)' +- bus: '00' + dev: '04' + fn: '3' + id: 6f23 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 3 (rev 05)' +- bus: '00' + dev: '04' + fn: '4' + id: 6f24 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 4 (rev 05)' +- bus: '00' + dev: '04' + fn: '5' + id: 6f25 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 5 (rev 05)' +- bus: '00' + dev: '04' + fn: '6' + id: 6f26 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 6 (rev 05)' +- bus: '00' + dev: '04' + fn: '7' + id: 6f27 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Crystal Beach DMA Channel 7 (rev 05)' +- bus: '00' + dev: '05' + fn: '0' + id: 6f28 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Map/VTd_Misc/System Management (rev 05)' +- bus: '00' + dev: '05' + fn: '1' + id: 6f29 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Hot Plug (rev 05)' +- bus: '00' + dev: '05' + fn: '2' + id: 6f2a + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO RAS/Control Status/Global Errors (rev 05)' +- bus: '00' + dev: '05' + fn: '4' + id: 6f2c + name: 'PIC: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D I/O APIC (rev + 05)' +- bus: '00' + dev: '05' + fn: '6' + id: 6f39 + name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IO Performance Monitoring (rev 05)' +- bus: '00' + dev: '06' + fn: '0' + id: 6f10 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '1' + id: 6f11 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '2' + id: 6f12 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '3' + id: 6f13 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '4' + id: 6f14 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '5' + id: 6f15 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '6' + id: 6f16 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '06' + fn: '7' + id: 6f17 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '07' + fn: '0' + id: 6f18 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '07' + fn: '1' + id: 6f19 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '07' + fn: '2' + id: 6f1a + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '07' + fn: '3' + id: 6f1b + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '07' + fn: '4' + id: 6f1c + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D IIO Debug (rev 05)' +- bus: '00' + dev: '14' + fn: '0' + id: 8c31 + name: 'USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB + xHCI (rev 05)' +- bus: '00' + dev: '16' + fn: '0' + id: 8c3a + name: 'Communication controller: Intel Corporation 8 Series/C220 Series Chipset + Family MEI Controller #1 (rev 04)' +- bus: '00' + dev: '16' + fn: '1' + id: 8c3b + name: 'Communication controller: Intel Corporation 8 Series/C220 Series Chipset + Family MEI Controller #2 (rev 04)' +- bus: '00' + dev: 1d + fn: '0' + id: 8c26 + name: 'USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB + EHCI #1 (rev 05)' +- bus: '00' + dev: 1f + fn: '0' + id: 8c54 + name: 'ISA bridge: Intel Corporation C224 Series Chipset Family Server Standard + SKU LPC Controller (rev 05)' +- bus: '00' + dev: 1f + fn: '2' + id: 8c02 + name: 'SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port + SATA Controller 1 [AHCI mode] (rev 05)' +- bus: '00' + dev: 1f + fn: '3' + id: 8c22 + name: 'SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller + (rev 05)' +- bus: '04' + dev: '00' + fn: '0' + id: 15ab + name: 'Ethernet controller: Intel Corporation Ethernet Connection X552 10 GbE Backplane' +- bus: '04' + dev: '00' + fn: '1' + id: 15ab + name: 'Ethernet controller: Intel Corporation Ethernet Connection X552 10 GbE Backplane' +- bus: '05' + dev: '00' + fn: '0' + id: 15ab + name: 'Ethernet controller: Intel Corporation Ethernet Connection X552 10 GbE Backplane' +- bus: '05' + dev: '00' + fn: '1' + id: 15ab + name: 'Ethernet controller: Intel Corporation Ethernet Connection X552 10 GbE Backplane' +- bus: '06' + dev: '00' + fn: '0' + id: b780 + name: 'Ethernet controller: Broadcom Inc. and subsidiaries Device b780 (rev 01)' +- bus: '07' + dev: '00' + fn: '0' + id: '1537' + name: 'Ethernet controller: Intel Corporation I210 Gigabit Backplane Connection + (rev 03)' +- bus: 08 + dev: '00' + fn: '0' + id: '7011' + name: 'Memory controller: Xilinx Corporation Device 7011' +- bus: ff + dev: 0b + fn: '0' + id: 6f81 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D R3 QPI Link 0/1 (rev 05)' +- bus: ff + dev: 0b + fn: '1' + id: 6f36 + name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D R3 QPI Link 0/1 (rev 05)' +- bus: ff + dev: 0b + fn: '2' + id: 6f37 + name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D R3 QPI Link 0/1 (rev 05)' +- bus: ff + dev: 0b + fn: '3' + id: 6f76 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D R3 QPI Link Debug (rev 05)' +- bus: ff + dev: 0c + fn: '0' + id: 6fe0 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0c + fn: '1' + id: 6fe1 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0c + fn: '2' + id: 6fe2 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0c + fn: '3' + id: 6fe3 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0f + fn: '0' + id: 6ff8 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0f + fn: '4' + id: 6ffc + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0f + fn: '5' + id: 6ffd + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: 0f + fn: '6' + id: 6ffe + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Caching Agent (rev 05)' +- bus: ff + dev: '10' + fn: '0' + id: 6f1d + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D R2PCIe Agent (rev 05)' +- bus: ff + dev: '10' + fn: '1' + id: 6f34 + name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D R2PCIe Agent (rev 05)' +- bus: ff + dev: '10' + fn: '5' + id: 6f1e + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Ubox (rev 05)' +- bus: ff + dev: '10' + fn: '6' + id: 6f7d + name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Ubox (rev 05)' +- bus: ff + dev: '10' + fn: '7' + id: 6f1f + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Ubox (rev 05)' +- bus: ff + dev: '12' + fn: '0' + id: 6fa0 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Home Agent 0 (rev 05)' +- bus: ff + dev: '12' + fn: '1' + id: 6f30 + name: 'Performance counters: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Home Agent 0 (rev 05)' +- bus: ff + dev: '12' + fn: '2' + id: 6f70 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Home Agent 0 Debug (rev 05)' +- bus: ff + dev: '13' + fn: '0' + id: 6fa8 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Target Address/Thermal/RAS (rev 05)' +- bus: ff + dev: '13' + fn: '1' + id: 6f71 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Target Address/Thermal/RAS (rev 05)' +- bus: ff + dev: '13' + fn: '2' + id: 6faa + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel Target Address Decoder (rev 05)' +- bus: ff + dev: '13' + fn: '3' + id: 6fab + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel Target Address Decoder (rev 05)' +- bus: ff + dev: '13' + fn: '4' + id: 6fac + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel Target Address Decoder (rev 05)' +- bus: ff + dev: '13' + fn: '5' + id: 6fad + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel Target Address Decoder (rev 05)' +- bus: ff + dev: '13' + fn: '6' + id: 6fae + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D DDRIO Channel 0/1 Broadcast (rev 05)' +- bus: ff + dev: '13' + fn: '7' + id: 6faf + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D DDRIO Global Broadcast (rev 05)' +- bus: ff + dev: '14' + fn: '0' + id: 6fb0 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 0 Thermal Control (rev 05)' +- bus: ff + dev: '14' + fn: '1' + id: 6fb1 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 1 Thermal Control (rev 05)' +- bus: ff + dev: '14' + fn: '2' + id: 6fb2 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 0 Error (rev 05)' +- bus: ff + dev: '14' + fn: '3' + id: 6fb3 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 1 Error (rev 05)' +- bus: ff + dev: '14' + fn: '4' + id: 6fbc + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D DDRIO Channel 0/1 Interface (rev 05)' +- bus: ff + dev: '14' + fn: '5' + id: 6fbd + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D DDRIO Channel 0/1 Interface (rev 05)' +- bus: ff + dev: '14' + fn: '6' + id: 6fbe + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D DDRIO Channel 0/1 Interface (rev 05)' +- bus: ff + dev: '14' + fn: '7' + id: 6fbf + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D DDRIO Channel 0/1 Interface (rev 05)' +- bus: ff + dev: '15' + fn: '0' + id: 6fb4 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 2 Thermal Control (rev 05)' +- bus: ff + dev: '15' + fn: '1' + id: 6fb5 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 3 Thermal Control (rev 05)' +- bus: ff + dev: '15' + fn: '2' + id: 6fb6 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 2 Error (rev 05)' +- bus: ff + dev: '15' + fn: '3' + id: 6fb7 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Memory Controller 0 - Channel 3 Error (rev 05)' +- bus: ff + dev: 1e + fn: '0' + id: 6f98 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' +- bus: ff + dev: 1e + fn: '1' + id: 6f99 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' +- bus: ff + dev: 1e + fn: '2' + id: 6f9a + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' +- bus: ff + dev: 1e + fn: '3' + id: 6fc0 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' +- bus: ff + dev: 1e + fn: '4' + id: 6f9c + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' +- bus: ff + dev: 1e + fn: '7' + id: 6f9f + name: 'System peripheral: Intel Corporation Device 6f9f (rev 05)' +- bus: ff + dev: 1f + fn: '0' + id: 6f88 + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' +- bus: ff + dev: 1f + fn: '2' + id: 6f8a + name: 'System peripheral: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon + D Power Control Unit (rev 05)' diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json new file mode 100644 index 000000000000..000635894793 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json @@ -0,0 +1,504 @@ +{ + "chassis": { + "name": "M2-W6520-24DC8QC", + "thermal_manager": false, + "status_led": { + "controllable": false, + "colors": ["green", "blinking_green", "amber", "blinking_amber"] + }, + "components": [ + { + "name": "CPU_CPLD" + }, + { + "name": "CONNECT_CPLD" + }, + { + "name": "MAC_CPLDA" + }, + { + "name": "MAC_CPLDB" + }, + { + "name": "FAN_CPLD" + }, + { + "name": "FPGA" + }, + { + "name": "BIOS" + } + ], + "fans": [ + { + "name": "Fantray1_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray1_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray2_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray2_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray3_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray3_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray4_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray4_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray5_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray5_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray6_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + }, + { + "name": "Fantray6_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false, + "colors": ["off", "red", "amber", "green"] + } + } + ], + "fan_drawers":[ + { + "name": "Fantray1", + "num_fans" : 2, + "status_led": { + "controllable": false, + "colors": ["amber", "green", "off"] + }, + "fans": [ + { + "name": "FanTray1_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray1_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "Fantray2", + "num_fans" : 2, + "status_led": { + "controllable": false, + "colors": ["amber", "green", "off"] + }, + "fans": [ + { + "name": "FanTray2_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray2_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "Fantray3", + "num_fans" : 2, + "status_led": { + "controllable": false, + "colors": ["amber", "green", "off"] + }, + "fans": [ + { + "name": "FanTray3_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray3_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "Fantray4", + "num_fans" : 2, + "status_led": { + "controllable": false, + "colors": ["amber", "green", "off"] + }, + "fans": [ + { + "name": "FanTray4_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray4_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "Fantray5", + "num_fans" : 2, + "status_led": { + "controllable": false, + "colors": ["amber", "green", "off"] + }, + "fans": [ + { + "name": "FanTray5_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray5_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "Fantray6", + "num_fans" : 2, + "status_led": { + "controllable": false, + "colors": ["amber", "green", "off"] + }, + "fans": [ + { + "name": "FanTray6_1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + }, + { + "name": "FanTray6_2", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + } + ], + "psus": [ + { + "name": "Psu1", + "voltage": true, + "current": true, + "power": true, + "max_power": false, + "voltage_high_threshold": true, + "voltage_low_threshold": true, + "temperature": true, + "fans_target_speed": true, + "status_led": { + "controllable": false + }, + "fans": [ + { + "name": "PSU1_FAN1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + }, + { + "name": "Psu2", + "voltage": true, + "current": true, + "power": true, + "max_power": false, + "voltage_high_threshold": true, + "voltage_low_threshold": true, + "temperature": true, + "fans_target_speed": true, + "status_led": { + "controllable": false + }, + "fans": [ + { + "name": "PSU2_FAN1", + "speed": { + "controllable": true, + "minimum": 50, + "maximum": 100 + }, + "status_led": { + "available": false + } + } + ] + } + ], + "thermals": [ + { + "name": "BOARD_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + }, + { + "name": "CPU_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + }, + { + "name": "INLET_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + }, + { + "name": "OUTLET_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + }, + { + "name": "ASIC_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + }, + { + "name": "PSU1_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + }, + { + "name": "PSU2_TEMP", + "controllable": false, + "low-crit-threshold": true, + "high-crit-threshold": true, + "low-threshold": true, + "high-threshold": true, + "minimum-recorded": true, + "maximum-recorded": true + } + ], + "modules": [], + "sfps": [] + }, + "interfaces": {} +} diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_asic b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_asic new file mode 100644 index 000000000000..960467652765 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_asic @@ -0,0 +1 @@ +broadcom diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json new file mode 100644 index 000000000000..c7b0c54b48b6 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json @@ -0,0 +1,37 @@ +{ + "chassis": { + "M2-W6520-24DC8QC": { + "component": { + "CPU_CPLD": { + "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme", + "version": "16210909" + }, + "CONNECT_CPLD": { + "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", + "version": "50220304" + }, + "FAN_CPLD": { + "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", + "version": "30210422" + }, + "MAC_CPLDA": { + "firmware" : "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", + "version" : "01210804" + }, + "MAC_CPLDB": { + "firmware" : "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", + "version" : "01210804" + }, + "FPGA": { + "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/fpga_upgrade_header.bin", + "version": "7a640436" + }, + "BIOS": { + "firmware" : "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin", + "version" : "5.14(3CNHU022)" + } + } + } + } +} + diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf new file mode 100644 index 000000000000..c2aed55680dc --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf @@ -0,0 +1 @@ +is_ltsw_chip=1 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/sfputil.py b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/sfputil.py new file mode 100644 index 000000000000..f6c4e0477c57 --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/sfputil.py @@ -0,0 +1,365 @@ +# sfputil.py +# +# Platform-specific SFP transceiver interface for SONiC +# + +try: + import time + import re + import os + import threading + import traceback + import subprocess + from ctypes import create_string_buffer + from sonic_sfp.sfputilbase import SfpUtilBase + from sonic_platform_base.sonic_sfp.sff8436 import sff8436Dom +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 = 31 + PORTS_IN_BLOCK = 32 + + EEPROM_OFFSET = 46 + SFP_DEVICE_TYPE = "optoe2" + QSFP_DEVICE_TYPE = "optoe1" + QSFP_DD_DEVICE_TYPE = "optoe3" + I2C_MAX_ATTEMPT = 3 + + OPTOE_TYPE1 = 1 + OPTOE_TYPE2 = 2 + OPTOE_TYPE3 = 3 + + SFP_STATUS_INSERTED = '1' + SFP_STATUS_REMOVED = '0' + + _port_to_eeprom_mapping = {} + port_to_i2cbus_mapping ={} + port_dict = {} + + qsfp_ports_list = [] + qsfp_dd_ports_list = [] + + @property + def port_start(self): + return self.PORT_START + + @property + def port_end(self): + return self.PORT_END + + @property + def qsfp_ports(self): + return self.qsfp_ports_list + + @property + def qsfp_dd_ports(self): + return self.qsfp_dd_ports_list + + @property + def port_to_eeprom_mapping(self): + return self._port_to_eeprom_mapping + + def __init__(self): + self.qsfp_ports_list = [] + self.qsfp_dd_ports_list = [] + for x in range(self.PORT_START, self.PORTS_IN_BLOCK): + self.port_to_i2cbus_mapping[x] = (x + self.EEPROM_OFFSET) + + if self.get_presence(x): + self.port_dict[x] = self.SFP_STATUS_INSERTED + else: + self.port_dict[x] = self.SFP_STATUS_REMOVED + + if (self.check_is_qsfpdd(x)): + self.qsfp_dd_ports_list.append(x) + self.check_optoe_type(x, self.OPTOE_TYPE3) + else: + self.qsfp_ports_list.append(x) + self.check_optoe_type(x, self.OPTOE_TYPE1) + SfpUtilBase.__init__(self) + + def _sfp_read_file_path(self, file_path, offset, num_bytes): + attempts = 0 + while attempts < self.I2C_MAX_ATTEMPT: + try: + file_path.seek(offset) + read_buf = file_path.read(num_bytes) + except: + attempts += 1 + time.sleep(0.05) + else: + return True, read_buf + return False, None + + def _sfp_eeprom_present(self, sysfs_sfp_i2c_client_eeprompath, offset): + """Tries to read the eeprom file to determine if the + device/sfp is present or not. If sfp present, the read returns + valid bytes. If not, read returns error 'Connection timed out""" + + if not os.path.exists(sysfs_sfp_i2c_client_eeprompath): + return False + else: + with open(sysfs_sfp_i2c_client_eeprompath, "rb", buffering=0) as sysfsfile: + rv, buf = self._sfp_read_file_path(sysfsfile, offset, 1) + return rv + + def _add_new_sfp_device(self, sysfs_sfp_i2c_adapter_path, devaddr, devtype): + try: + sysfs_nd_path = "%s/new_device" % sysfs_sfp_i2c_adapter_path + + # Write device address to new_device file + nd_file = open(sysfs_nd_path, "w") + nd_str = "%s %s" % (devtype, hex(devaddr)) + nd_file.write(nd_str) + nd_file.close() + + except Exception as err: + print("Error writing to new device file: %s" % str(err)) + return 1 + else: + return 0 + + def _get_port_eeprom_path(self, port_num, devid): + sysfs_i2c_adapter_base_path = "/sys/class/i2c-adapter" + + if port_num in self.port_to_eeprom_mapping.keys(): + sysfs_sfp_i2c_client_eeprom_path = self.port_to_eeprom_mapping[port_num] + else: + sysfs_i2c_adapter_base_path = "/sys/class/i2c-adapter" + + i2c_adapter_id = self._get_port_i2c_adapter_id(port_num) + if i2c_adapter_id is None: + print("Error getting i2c bus num") + return None + + # Get i2c virtual bus path for the sfp + sysfs_sfp_i2c_adapter_path = "%s/i2c-%s" % (sysfs_i2c_adapter_base_path, + str(i2c_adapter_id)) + + # If i2c bus for port does not exist + if not os.path.exists(sysfs_sfp_i2c_adapter_path): + print("Could not find i2c bus %s. Driver not loaded?" % sysfs_sfp_i2c_adapter_path) + return None + + sysfs_sfp_i2c_client_path = "%s/%s-00%s" % (sysfs_sfp_i2c_adapter_path, + str(i2c_adapter_id), + hex(devid)[-2:]) + + # If sfp device is not present on bus, Add it + if not os.path.exists(sysfs_sfp_i2c_client_path): + if port_num in self.qsfp_dd_ports: + ret = self._add_new_sfp_device( + sysfs_sfp_i2c_adapter_path, devid, self.QSFP_DD_DEVICE_TYPE) + elif port_num in self.qsfp_ports: + ret = self._add_new_sfp_device( + sysfs_sfp_i2c_adapter_path, devid, self.QSFP_DEVICE_TYPE) + else: + ret = self._add_new_sfp_device( + sysfs_sfp_i2c_adapter_path, devid, self.SFP_DEVICE_TYPE) + if ret != 0: + print("Error adding sfp device") + return None + + sysfs_sfp_i2c_client_eeprom_path = "%s/eeprom" % sysfs_sfp_i2c_client_path + + return sysfs_sfp_i2c_client_eeprom_path + + def _read_eeprom_specific_bytes(self, sysfsfile_eeprom, offset, num_bytes): + eeprom_raw = [] + for i in range(0, num_bytes): + eeprom_raw.append("0x00") + + rv, raw = self._sfp_read_file_path(sysfsfile_eeprom, offset, num_bytes) + if rv == False: + return None + + try: + for n in range(0, num_bytes): + eeprom_raw[n] = hex(raw[n])[2:].zfill(2) + except: + return None + + return eeprom_raw + + def get_eeprom_dom_raw(self, port_num): + if port_num in self.qsfp_ports: + # QSFP DOM EEPROM is also at addr 0x50 and thus also stored in eeprom_ifraw + return None + else: + # Read dom eeprom at addr 0x51 + return self._read_eeprom_devid(port_num, self.IDENTITY_EEPROM_ADDR, 256) + + 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 + + cmd = "cat /sys/wb_plat/sff/sff{}/present".format(str(port_num+1)) + ret, output = subprocess.getstatusoutput(cmd) + if ret != 0: + return False + if output == "1": + return True + return False + + def check_is_qsfpdd(self, port_num): + try: + if self.get_presence(port_num) == False: + return False + + eeprom_path = self._get_port_eeprom_path(port_num, 0x50) + with open(eeprom_path, mode="rb", buffering=0) as eeprom: + eeprom_raw = self._read_eeprom_specific_bytes(eeprom, 0, 1) + # according to sff-8024 A0h Byte 0 is '1e' or '18' means the transceiver is qsfpdd + if (eeprom_raw[0] == '1e' or eeprom_raw[0] == '18'): + return True + except Exception as e: + print(traceback.format_exc()) + + return False + + def check_optoe_type(self, port_num, optoe_type): + if self.get_presence(port_num) == False: + return True + try: + eeprom_path = self._get_port_eeprom_path(port_num, 0x50) + dev_class_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/dev_class' + i2c_path = dev_class_path.format(str(self.port_to_i2cbus_mapping[port_num])) + cmd = "cat " + i2c_path + ret, output = subprocess.getstatusoutput(cmd) + if ret != 0: + print("cmd: %s execution fail, output:%s" % (cmd, output)) + return False + if int(output) != optoe_type: + cmd = "echo " + str(optoe_type) + " > " + i2c_path + ret, output = subprocess.getstatusoutput(cmd) + if ret != 0: + print("cmd: %s execution fail, output:%s" % (cmd, output)) + return False + return True + + except Exception as e: + print(traceback.format_exc()) + return False + + def get_low_power_mode(self, port_num): + # Check for invalid port_num + + return True + + def set_low_power_mode(self, port_num, lpmode): + # Check for invalid port_num + + return True + + def reset(self, port_num): + # Check for invalid port_num + if port_num < self.port_start or port_num > self.port_end: + return False + + return True + + def get_transceiver_change_event(self, timeout=0): + + start_time = time.time() + current_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, {} + + end_time = start_time + timeout + if start_time > end_time: + print ('get_transceiver_change_event:' \ + 'time wrap / invalid timeout value', timeout) + + return False, {} # Time wrap or possibly incorrect timeout + + while timeout >= 0: + # Check for OIR events and return updated port_dict + for x in range(self.PORT_START, self.PORTS_IN_BLOCK): + if self.get_presence(x): + current_port_dict[x] = self.SFP_STATUS_INSERTED + else: + current_port_dict[x] = self.SFP_STATUS_REMOVED + if (current_port_dict == self.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, {} + else: + # Update reg value + self.port_dict = current_port_dict + return True, self.port_dict + print ("get_transceiver_change_event: Should not reach here.") + return False, {} + + def get_highest_temperature(self): + offset = 0 + hightest_temperature = -9999 + + presence_flag = False + read_eeprom_flag = False + temperature_valid_flag = False + + for port in range(self.PORT_START, self.PORTS_IN_BLOCK): + if self.get_presence(port) == False: + continue + + presence_flag = True + + if port in self.qsfp_dd_ports: + offset = 14 + elif port in self.qsfp_ports: + offset = 22 + else: + offset = 96 + + eeprom_path = self._get_port_eeprom_path(port, 0x50) + try: + with open(eeprom_path, mode="rb", buffering=0) as eeprom: + read_eeprom_flag = True + eeprom_raw = self._read_eeprom_specific_bytes(eeprom, offset, 2) + if len(eeprom_raw) != 0: + msb = int(eeprom_raw[0], 16) + lsb = int(eeprom_raw[1], 16) + + result = (msb << 8) | (lsb & 0xff) + result = float(result / 256.0) + if -50 <= result <= 200: + temperature_valid_flag = True + if hightest_temperature < result: + hightest_temperature = result + except Exception as e: + pass + + # all port not presence + if presence_flag == False: + hightest_temperature = -10000 + + # all port read eeprom fail + elif read_eeprom_flag == False: + hightest_temperature = -9999 + + # all port temperature invalid + elif read_eeprom_flag == True and temperature_valid_flag == False: + hightest_temperature = -10000 + + hightest_temperature = round(hightest_temperature, 2) + + return hightest_temperature diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/ssd_util.py b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/ssd_util.py new file mode 100644 index 000000000000..89d3ccd770bd --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/plugins/ssd_util.py @@ -0,0 +1,311 @@ +# +# ssd_util.py +# +# Generic implementation of the SSD health API +# SSD models supported: +# - InnoDisk +# - StorFly +# - Virtium + +try: + import re + import os + import subprocess + from sonic_platform_base.sonic_ssd.ssd_base import SsdBase +except ImportError as e: + raise ImportError (str(e) + "- required module not found") + +SMARTCTL = "smartctl {} -a" +INNODISK = "iSmart -d {}" +VIRTIUM = "SmartCmd -m {}" +DISK_LIST_CMD = "fdisk -l -o Device" +DISK_FREE_CMD = "df -h" +MOUNT_CMD = "mount" + +NOT_AVAILABLE = "N/A" +PE_CYCLE = 3000 +FAIL_PERCENT = 95 + +# Set Vendor Specific IDs +INNODISK_HEALTH_ID = 169 +INNODISK_TEMPERATURE_ID = 194 + +class SsdUtil(SsdBase): + """ + Generic implementation of the SSD health API + """ + model = NOT_AVAILABLE + serial = NOT_AVAILABLE + firmware = NOT_AVAILABLE + temperature = NOT_AVAILABLE + health = NOT_AVAILABLE + remaining_life = NOT_AVAILABLE + sata_rate = NOT_AVAILABLE + ssd_info = NOT_AVAILABLE + vendor_ssd_info = NOT_AVAILABLE + + def __init__(self, diskdev): + self.vendor_ssd_utility = { + "Generic" : { "utility" : SMARTCTL, "parser" : self.parse_generic_ssd_info }, + "InnoDisk" : { "utility" : INNODISK, "parser" : self.parse_innodisk_info }, + "M.2" : { "utility" : INNODISK, "parser" : self.parse_innodisk_info }, + "StorFly" : { "utility" : VIRTIUM, "parser" : self.parse_virtium_info }, + "Virtium" : { "utility" : VIRTIUM, "parser" : self.parse_virtium_info } + } + + """ + The dict model_attr keys relate the vendors + LITEON : "ER2-GD","AF2MA31DTDLT" + Intel : "SSDSCKKB" + SMI : "SM619GXC" + samsung: "MZNLH" + ADATA : "IM2S3134N" + """ + self.model_attr = { + "ER2-GD" : { "temperature" : "\n190\s+(.+?)\n", "remainingLife" : "\n202\s+(.+?)\n" }, + "AF2MA31DTDLT" : { "temperature" : "\n194\s+(.+?)\n", "remainingLife" : "\n202\s+(.+?)\n" }, + "SSDSCK" : { "temperature" : "\n194\s+(.+?)\n", "remainingLife" : "\n233\s+(.+?)\n" }, + "SM619GXC" : { "temperature" : "\n194\s+(.+?)\n", "remainingLife" : "\n169\s+(.+?)\n" }, + "MZNLH" : { "temperature" : "\n190\s+(.+?)\n", "remainingLife" : "\n245\s+(.+?)\n" }, + "IM2S3134N" : { "temperature" : "\n194\s+(.+?)\n", "remainingLife" : "\n231\s+(.+?)\n" } + } + + self.key_list = list(self.model_attr.keys()) + self.attr_info_rule = "[\s\S]*SMART Attributes Data Structure revision number: 1|SMART Error Log Version[\s\S]*" + self.dev = diskdev + # Generic part + self.fetch_generic_ssd_info(diskdev) + self.parse_generic_ssd_info() + self.fetch_vendor_ssd_info(diskdev, "Generic") + + # Known vendor part + if self.model: + model_short = self.model.split()[0] + if model_short in self.vendor_ssd_utility: + self.fetch_vendor_ssd_info(diskdev, model_short) + self.parse_vendor_ssd_info(model_short) + else: + # No handler registered for this disk model + pass + else: + # Failed to get disk model + self.model = "Unknown" + + def _execute_shell(self, cmd): + process = subprocess.Popen(cmd.split(), universal_newlines=True, stdout=subprocess.PIPE) + output, error = process.communicate() + exit_code = process.returncode + if exit_code: + return None + return output + + def _parse_re(self, pattern, buffer): + res_list = re.findall(pattern, str(buffer)) + return res_list[0] if res_list else NOT_AVAILABLE + + def fetch_generic_ssd_info(self, diskdev): + self.ssd_info = self._execute_shell(self.vendor_ssd_utility["Generic"]["utility"].format(diskdev)) + + # Health and temperature values may be overwritten with vendor specific data + def parse_generic_ssd_info(self): + if "nvme" in self.dev: + self.model = self._parse_re('Model Number:\s*(.+?)\n', self.ssd_info) + + health_raw = self._parse_re('Percentage Used\s*(.+?)\n', self.ssd_info) + if health_raw == NOT_AVAILABLE: + self.health = NOT_AVAILABLE + else: + health_raw = health_raw.split()[-1] + self.health = 100 - float(health_raw.strip('%')) + + temp_raw = self._parse_re('Temperature\s*(.+?)\n', self.ssd_info) + if temp_raw == NOT_AVAILABLE: + self.temperature = NOT_AVAILABLE + else: + temp_raw = temp_raw.split()[-2] + self.temperature = float(temp_raw) + else: + self.model = self._parse_re('Device Model:\s*(.+?)\n', self.ssd_info) + model_key = "" + for key in self.key_list: + if re.search(key, self.model): + model_key = key + break + if model_key != "": + self.remaining_life = self._parse_re(self.model_attr[model_key]["remainingLife"], re.sub(self.attr_info_rule,"",self.ssd_info)).split()[2] + self.temperature = self._parse_re(self.model_attr[model_key]["temperature"], re.sub(self.attr_info_rule,"",self.ssd_info)).split()[8] + self.health = self.remaining_life + # Get the LITEON ssd health value by (PE CYCLE - AVG ERASE CYCLE )/(PE CYCLE) + if model_key in ["ER2-GD", "AF2MA31DTDLT"]: + avg_erase = int(self._parse_re('\n173\s+(.+?)\n' ,re.sub(self.attr_info_rule,"",self.ssd_info)).split()[-1]) + self.health = int(round((PE_CYCLE - avg_erase)/PE_CYCLE*100,0)) + if self.remaining_life != NOT_AVAILABLE and int(self.remaining_life) < FAIL_PERCENT: + self.remaining_life = "Fail" + self.sata_rate = self._parse_re('SATA Version is:.*current: (.+?)\)\n', self.ssd_info) + self.serial = self._parse_re('Serial Number:\s*(.+?)\n', self.ssd_info) + self.firmware = self._parse_re('Firmware Version:\s*(.+?)\n', self.ssd_info) + + def parse_innodisk_info(self): + if self.vendor_ssd_info: + self.health = self._parse_re('Health:\s*(.+?)%', self.vendor_ssd_info) + self.temperature = self._parse_re('Temperature\s*\[\s*(.+?)\]', self.vendor_ssd_info) + else: + if self.health == NOT_AVAILABLE: + health_raw = self.parse_id_number(INNODISK_HEALTH_ID) + self.health = health_raw.split()[-1] + if self.temperature == NOT_AVAILABLE: + temp_raw = self.parse_id_number(INNODISK_TEMPERATURE_ID) + self.temperature = temp_raw.split()[-6] + + def parse_virtium_info(self): + if self.vendor_ssd_info: + self.temperature = self._parse_re('Temperature_Celsius\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info) + nand_endurance = self._parse_re('NAND_Endurance\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info) + avg_erase_count = self._parse_re('Average_Erase_Count\s*\d*\s*(\d+?)\s+', self.vendor_ssd_info) + try: + self.health = 100 - (float(avg_erase_count) * 100 / float(nand_endurance)) + except (ValueError, ZeroDivisionError): + # Invalid avg_erase_count or nand_endurance. + pass + + def fetch_vendor_ssd_info(self, diskdev, model): + self.vendor_ssd_info = self._execute_shell(self.vendor_ssd_utility[model]["utility"].format(diskdev)) + + def parse_vendor_ssd_info(self, model): + self.vendor_ssd_utility[model]["parser"]() + + def check_readonly2(self, partition, filesystem): + # parse mount cmd output info + mount_info = self._execute_shell(MOUNT_CMD) + for line in mount_info.split('\n'): + column_list = line.split() + if line == '': + continue + if column_list[0] == partition and column_list[2] == filesystem: + if column_list[5].split(',')[0][1:] == "ro": + return partition + else: + return NOT_AVAILABLE + return NOT_AVAILABLE + + def check_readonly(self, partition, filesystem): + ret = os.access(filesystem, os.W_OK) + if ret == False: + return partition + else: + return NOT_AVAILABLE + + def get_health(self): + """ + Retrieves current disk health in percentages + + Returns: + A float number of current ssd health + e.g. 83.5 + """ + return float(self.health) + + def get_temperature(self): + """ + Retrieves current disk temperature in Celsius + + Returns: + A float number of current temperature in Celsius + e.g. 40.1 + """ + return float(self.temperature) + + def get_model(self): + """ + Retrieves model for the given disk device + + Returns: + A string holding disk model as provided by the manufacturer + """ + return self.model + + def get_firmware(self): + """ + Retrieves firmware version for the given disk device + + Returns: + A string holding disk firmware version as provided by the manufacturer + """ + return self.firmware + + def get_serial(self): + """ + Retrieves serial number for the given disk device + + Returns: + A string holding disk serial number as provided by the manufacturer + """ + return self.serial + def get_sata_rate(self): + """ + Retrieves SATA rate for the given disk device + Returns: + A string holding current SATA rate as provided by the manufacturer + """ + return self.sata_rate + def get_remaining_life(self): + """ + Retrieves remaining life for the given disk device + Returns: + A string holding disk remaining life as provided by the manufacturer + """ + return self.remaining_life + def get_vendor_output(self): + """ + Retrieves vendor specific data for the given disk device + + Returns: + A string holding some vendor specific disk information + """ + return self.vendor_ssd_info + + def parse_id_number(self, id): + return self._parse_re('{}\s*(.+?)\n'.format(id), self.ssd_info) + + def get_readonly_partition(self): + """ + Check the partition mount filesystem is readonly status,then output the result. + Returns: + The readonly partition list + """ + + ro_partition_list = [] + partition_list = [] + + # parse fdisk cmd output info + disk_info = self._execute_shell(DISK_LIST_CMD) + begin_flag = False + for line in disk_info.split('\n'): + if line == "Device": + begin_flag = True + continue + if begin_flag: + if line != "": + partition_list.append(line) + else: + break + + # parse df cmd output info + disk_free = self._execute_shell(DISK_FREE_CMD) + disk_dict = {} + line_num = 0 + for line in disk_free.split('\n'): + line_num = line_num + 1 + if line_num == 1 or line == "": + continue + column_list = line.split() + disk_dict[column_list[0]] = column_list[5] + + # get partition which is readonly + for partition in partition_list: + if partition in disk_dict: + ret = self.check_readonly(partition, disk_dict[partition]) + if (ret != NOT_AVAILABLE): + ro_partition_list.append(ret) + + return ro_partition_list diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pmon_daemon_control.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pmon_daemon_control.json new file mode 100644 index 000000000000..94592fa8cebc --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/pmon_daemon_control.json @@ -0,0 +1,3 @@ +{ + "skip_ledd": true +} diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/system_health_monitoring_config.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/system_health_monitoring_config.json new file mode 100755 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/one-image.mk b/platform/broadcom/one-image.mk index b35e69c77d36..c19cdabfdca7 100755 --- a/platform/broadcom/one-image.mk +++ b/platform/broadcom/one-image.mk @@ -79,6 +79,7 @@ $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELL_S6000_PLATFORM_MODULE) \ $(DELTA_AGC032_PLATFORM_MODULE) \ $(RUIJIE_B6510_48VS8CQ_PLATFORM_MODULE) \ $(RAGILE_RA_B6510_48V8C_PLATFORM_MODULE) \ + $(MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE) \ $(NOKIA_IXR7250_PLATFORM_MODULE) \ $(TENCENT_TCS8400_PLATFORM_MODULE) \ $(TENCENT_TCS9400_PLATFORM_MODULE) \ diff --git a/platform/broadcom/platform-modules-micas.dep b/platform/broadcom/platform-modules-micas.dep new file mode 100644 index 000000000000..6ae59a668b27 --- /dev/null +++ b/platform/broadcom/platform-modules-micas.dep @@ -0,0 +1,9 @@ +MPATH := $($(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_SRC_PATH) +DEP_FILES := $(SONIC_COMMON_FILES_LIST) platform/broadcom/platform-modules-micas.mk platform/broadcom/platform-modules-micas.dep +DEP_FILES += $(SONIC_COMMON_BASE_FILES_LIST) +DEP_FILES += $(addprefix $(MPATH)/,$(shell cd $(MPATH) && git ls-files)) + + +$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_CACHE_MODE := GIT_CONTENT_SHA +$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) +$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_DEP_FILES := $(DEP_FILES) diff --git a/platform/broadcom/platform-modules-micas.mk b/platform/broadcom/platform-modules-micas.mk new file mode 100644 index 000000000000..dffad30f1590 --- /dev/null +++ b/platform/broadcom/platform-modules-micas.mk @@ -0,0 +1,19 @@ +## M2-W6510-48V8C +MICAS_M2_W6510_48V8C_PLATFORM_MODULE_VERSION = 1.0 +export MICAS_M2_W6510_48V8C_PLATFORM_MODULE_VERSION + +MICAS_M2_W6510_48V8C_PLATFORM_MODULE = platform-modules-micas-m2-w6510-48v8c_$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE_VERSION)_amd64.deb +$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_SRC_PATH = $(PLATFORM_PATH)/sonic-platform-modules-micas +$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_DEPENDS += $(LINUX_HEADERS) $(LINUX_HEADERS_COMMON) $(PDDF_PLATFORM_MODULE) +$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE)_PLATFORM = x86_64-micas_m2-w6510-48v8c-r0 +SONIC_DPKG_DEBS += $(MICAS_M2_W6510_48V8C_PLATFORM_MODULE) +SONIC_STRETCH_DEBS += $(MICAS_M2_W6510_48V8C_PLATFORM_MODULE) + +## M2-W6520-24DC8QC +MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE_VERSION = 1.0 +export MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE_VERSION + +MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE = platform-modules-micas-m2-w6520-24dc8qc_$(MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE_VERSION)_amd64.deb +$(MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE)_PLATFORM = x86_64-micas_m2-w6520-24dc8qc-r0 +$(eval $(call add_extra_package,$(MICAS_M2_W6510_48V8C_PLATFORM_MODULE),$(MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE))) + diff --git a/platform/broadcom/rules.dep b/platform/broadcom/rules.dep index 075636a8dedd..6ca99e51eb23 100644 --- a/platform/broadcom/rules.dep +++ b/platform/broadcom/rules.dep @@ -16,6 +16,7 @@ include $(PLATFORM_PATH)/platform-modules-juniper.dep include $(PLATFORM_PATH)/platform-modules-ragile.dep include $(PLATFORM_PATH)/platform-modules-ruijie.dep include $(PLATFORM_PATH)/platform-modules-brcm-xlr-gts.dep +include $(PLATFORM_PATH)/platform-modules-micas.dep include $(PLATFORM_PATH)/docker-syncd-brcm.dep include $(PLATFORM_PATH)/docker-syncd-brcm-rpc.dep include $(PLATFORM_PATH)/docker-saiserver-brcm.dep diff --git a/platform/broadcom/rules.mk b/platform/broadcom/rules.mk index edc4eb57945d..7919ce9c0bb4 100755 --- a/platform/broadcom/rules.mk +++ b/platform/broadcom/rules.mk @@ -17,6 +17,7 @@ include $(PLATFORM_PATH)/platform-modules-juniper.mk include $(PLATFORM_PATH)/platform-modules-ragile.mk #include $(PLATFORM_PATH)/platform-modules-tencent.mk include $(PLATFORM_PATH)/platform-modules-ufispace.mk +include $(PLATFORM_PATH)/platform-modules-micas.mk include $(PLATFORM_PATH)/docker-syncd-brcm.mk include $(PLATFORM_PATH)/docker-syncd-brcm-rpc.mk include $(PLATFORM_PATH)/docker-saiserver-brcm.mk diff --git a/platform/broadcom/sonic-platform-modules-micas/LICENSE b/platform/broadcom/sonic-platform-modules-micas/LICENSE new file mode 100644 index 000000000000..5681cac34476 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/LICENSE @@ -0,0 +1,14 @@ +Copyright (C) 2016 Microsoft, 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 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-micas/common/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/Makefile new file mode 100755 index 000000000000..578d65b3bf3e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/Makefile @@ -0,0 +1,42 @@ +PWD = $(shell pwd) +CC ?=gcc +INSTALL_MOD_DIR ?=extra +KVERSION ?= $(shell uname -r) +KERNEL_SRC ?= /lib/modules/$(KVERSION) +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +SUB_BUILD_DIR = $(PWD)/build +DIR_KERNEL_SRC = $(PWD)/modules +SCRIPT_DIR = $(PWD)/script +SERVICE_DIR = $(PWD)/service +BLACK_DRIVER_CONF_DIR = $(PWD)/modprobe_conf + +app_dir = $(PWD)/app +app_build_dir = $(app_dir)/build +modules_build_dir = $(DIR_KERNEL_SRC)/build + +INSTALL_MODULE_DIR = $(SUB_BUILD_DIR)/$(KERNEL_SRC)/$(INSTALL_MOD_DIR) +INSTALL_SCRIPT_DIR = $(SUB_BUILD_DIR)/usr/local/bin +INSTALL_SERVICE_DIR = $(SUB_BUILD_DIR)/lib/systemd/system +INSTALL_LIB_DIR = $(SUB_BUILD_DIR)/usr/lib/python3/dist-packages +INSTALL_BLACK_DRIVER = $(SUB_BUILD_DIR)/etc/modprobe.d + +all: + $(MAKE) -C $(app_dir) + $(MAKE) -C $(DIR_KERNEL_SRC) + @if [ ! -d ${INSTALL_MODULE_DIR} ]; then mkdir -p ${INSTALL_MODULE_DIR} ;fi + @if [ ! -d ${INSTALL_SCRIPT_DIR} ]; then mkdir -p ${INSTALL_SCRIPT_DIR} ;fi + @if [ ! -d ${INSTALL_SERVICE_DIR} ]; then mkdir -p ${INSTALL_SERVICE_DIR} ;fi + @if [ ! -d ${INSTALL_LIB_DIR} ]; then mkdir -p ${INSTALL_LIB_DIR} ;fi + @if [ -d $(PWD)/lib/ ]; then cp -r $(PWD)/lib/* ${INSTALL_LIB_DIR} ;fi + @if [ -d $(PWD)/sonic_platform/ ]; then cp -rf $(PWD)/sonic_platform ${INSTALL_LIB_DIR} ;fi + cp -r $(app_build_dir)/module/*.ko $(INSTALL_MODULE_DIR) + cp -r $(modules_build_dir)/*.ko $(INSTALL_MODULE_DIR) + cp -r $(app_dir)/build/app/* $(INSTALL_SCRIPT_DIR) + cp -r $(SCRIPT_DIR)/* $(INSTALL_SCRIPT_DIR) + cp -r $(SERVICE_DIR)/* $(INSTALL_SERVICE_DIR) + @if [ -d $(INSTALL_SCRIPT_DIR) ]; then chmod +x $(INSTALL_SCRIPT_DIR)/* ;fi + @if [ ! -d ${INSTALL_BLACK_DRIVER} ]; then mkdir -p ${INSTALL_BLACK_DRIVER} ;fi + cp -r $(BLACK_DRIVER_CONF_DIR)/* $(INSTALL_BLACK_DRIVER) +clean: + rm -rf $(SUB_BUILD_DIR) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/Makefile new file mode 100644 index 000000000000..25ba3c5a9156 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/Makefile @@ -0,0 +1,25 @@ +pes_parent_dir:=$(shell pwd)/$(lastword $(MAKEFILE_LIST)) +pes_parent_dir:=$(shell dirname $(pes_parent_dir)) + +SUBDIRS=$(shell ls -l | grep ^d | awk '{if($$9 != "build") print $$9}') +INC = -I./inc + +COMMON_OUT_PUT := $(shell pwd)/build +common_out_put_dir := $(COMMON_OUT_PUT)/app +common_module_dir := $(COMMON_OUT_PUT)/module/ +export common_out_put_dir common_module_dir + +all : CHECK $(SUBDIRS) +CHECK : + @echo $(pes_parent_dir) + +$(SUBDIRS):ECHO + #@echo $@ + make -C $@ + +ECHO: + @echo $(SUBDIRS) + +.PHONY : clean +clean : + -rm -rf $(COMMON_OUT_PUT) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/Makefile new file mode 100644 index 000000000000..e4078716eb33 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/Makefile @@ -0,0 +1,30 @@ +top_srcdir:=$(shell pwd) +#include $(top_srcdir)/Rules.mk +DIR=$(shell pwd) +BUILD_OUTPUT=$(DIR)/tmp +SRCS=$(wildcard *.c) +OBJS=$(patsubst %.c, $(BUILD_OUTPUT)/%.o, $(SRCS)) +DEPS=$(patsubst %.o, %.d, $(OBJS)) +CFLAGS+=-Wall -W -g -I$(DIR)/include +LDFLAGS= +PROGRAM=dfd_debug + +.PHONY: all + +all:$(OBJS) + $(CC) $(OBJS) $(LDFLAGS) -o $(BUILD_OUTPUT)/$(PROGRAM) + @if [ ! -d ${common_out_put_dir} ]; then mkdir -p ${common_out_put_dir} ;fi + cp -p $(BUILD_OUTPUT)/$(PROGRAM) $(common_out_put_dir) + +$(OBJS):$(SRCS) + @if [ ! -d ${BUILD_OUTPUT} ]; then mkdir -p ${BUILD_OUTPUT} ;fi + $(CC) -c $(CFLAGS) $(INCLUDE) $(*F).c -o $@ + +.PHONY: install +install: + @mkdir -p $(common_out_put_dir) + cp -p $(BUILD_OUTPUT)/$(PROGRAM) $(common_out_put_dir) + +rebuild: clean all +clean: + @rm -rf $(BUILD_OUTPUT)/* diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_debug.c b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_debug.c new file mode 100644 index 000000000000..93ed6066efed --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_debug.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "dfd_utest.h" + +int g_dfd_debug_sw = 0; +int g_dfd_debugpp_sw = 0; + +void dfd_debug_set_init(void) +{ + FILE *fp; + char buf[10]; + + mem_clear(buf, sizeof(buf)); + fp = fopen(DFD_DEBUGP_DEBUG_FILE, "r"); + if (fp != NULL) { + + g_dfd_debug_sw = 1; + fclose(fp); + } + + fp = fopen(DFD_DEBUGPP_DEBUG_FILE, "r"); + if (fp != NULL) { + + g_dfd_debugpp_sw = 1; + fclose(fp); + } + + return; +} + +int main(int argc, char* argv[]) +{ + dfd_debug_set_init(); + dfd_utest_cmd_main(argc, argv); + + return 0; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.c b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.c new file mode 100644 index 000000000000..c82b0baad4c3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.c @@ -0,0 +1,2121 @@ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "dfd_utest.h" + +#define DFD_UTEST_MAX_RDWR_NUM (256) +#define DFD_UTEST_DEFAULT_WR_NUM (1) + +#define DEV_MEM_NAME "/dev/mem" +#define DEV_KMEM_NAME "/dev/kmem" + +#define WIDTH_1Byte (1) +#define WIDTH_2Byte (2) +#define WIDTH_4Byte (4) +#define DFD_UTEST_MAX_BIT_WIDTH (4) + +struct phydev_user_info { + int phy_index; + uint32_t regnum; + uint32_t regval; +}; + +#define CMD_PHY_LIST _IOR('P', 0, struct phydev_user_info) +#define CMD_PHY_READ _IOR('P', 1, struct phydev_user_info) +#define CMD_PHY_WRITE _IOR('P', 2, struct phydev_user_info) + +struct mdio_dev_user_info { + int mdio_index; + int phyaddr; + uint32_t regnum; + uint32_t regval; +}; + +#define CMD_MDIO_LIST _IOR('M', 0, struct mdio_dev_user_info) +#define CMD_MDIO_READ _IOR('M', 1, struct mdio_dev_user_info) +#define CMD_MDIO_WRITE _IOR('M', 2, struct mdio_dev_user_info) + +#ifdef DFD_UTEST_ITEM +#undef DFD_UTEST_ITEM +#endif +#define DFD_UTEST_ITEM(_id, _type_str, _help_info, _help_info_detail) {_id, #_type_str, dfd_utest_##_type_str, _help_info, _help_info_detail}, +static dfd_utest_t g_dfd_unit_test[] = { + DFD_UTEST_ITEM_ALL +}; + +static int g_sys_page_size; +#define SYS_PAGE_SIZE g_sys_page_size +#define SYS_PAGE_MASK (~(SYS_PAGE_SIZE - 1)) + +void dfd_utest_print_cmd(int argc, char* argv[]) +{ + int i; + + for (i = 1; i < argc; i++) { + if (i != 1) { + printf(" "); + } + printf("%s", argv[i]); + } + return; +} + +void dfd_utest_print_all_help(void) +{ + int i, tbl_size; + + tbl_size = sizeof(g_dfd_unit_test) / sizeof(g_dfd_unit_test[0]); + + for (i = 0; i < tbl_size; i++) { + printf("%-20s\t\t\t%s\r\n", g_dfd_unit_test[i].type_str, g_dfd_unit_test[i].help_info); + } + + return; +} + +void dfd_utest_printf_single_help(int utest_type) +{ + int i, tbl_size; + + tbl_size = sizeof(g_dfd_unit_test) / sizeof(g_dfd_unit_test[0]); + for (i = 0; i < tbl_size; i++) { + if (g_dfd_unit_test[i].utest_type == utest_type) { + printf("%-20s\t\t\t%s\r\n", g_dfd_unit_test[i].type_str, g_dfd_unit_test[i].help_info_detail); + return; + } + } + + DFD_DEBUG_DBG("type: %d not match.\n", utest_type); + return; + +} + +void dfd_utest_printf_reg(uint8_t *buf, int buf_len, uint32_t offset_addr) +{ + int i, j, tmp; + + j = offset_addr % 16; + tmp = j; + offset_addr -= j; + printf("\n "); + + for (i = 0; i < 16; i++) { + printf("%2x ", i); + } + + for (i = 0; i < buf_len + j; i++) { + if ((i % 16) == 0) { + printf("\n0x%08x ", offset_addr); + offset_addr = offset_addr + 16; + } + if (tmp) { + printf(" "); + tmp--; + } else { + printf("%02x ", buf[i-j]); + } + } + + printf("\n"); + return; +} + +#define I2C_RETRIES 0x0701 +#define I2C_TIMEOUT 0x0702 +#define I2C_RDWR 0x0707 + +#define I2C_SLAVE 0x0703 /* Use this slave address */ + +#define I2C_SLAVE_FORCE 0x0706 /* Use this slave address, even if it + is already in use by a driver! */ +#define I2C_PEC 0x0708 /* != 0 to use PEC with SMBus */ +#define I2C_SMBUS 0x0720 /* SMBus transfer */ + +struct i2c_msg +{ + unsigned short addr; + unsigned short flags; +#define I2C_M_TEN 0x0010 +#define I2C_M_RD 0x0001 + unsigned short len; + unsigned char *buf; +}; + +struct i2c_rdwr_ioctl_data +{ + struct i2c_msg *msgs; + int nmsgs; + +}; + +#define DFD_I2C_SHORT_ADDR_TYPE 0 +#define DFD_I2C_RETRY_SLEEP_TIME (10000) /* 10ms */ +#define DFD_I2C_RETRY_TIME (50000 / DFD_I2C_RETRY_SLEEP_TIME) +/* i2c_smbus_xfer read or write markers */ +#define I2C_SMBUS_READ 1 +#define I2C_SMBUS_WRITE 0 + +/* SMBus transaction types (size parameter in the above functions) + Note: these no longer correspond to the (arbitrary) PIIX4 internal codes! */ +#define I2C_SMBUS_QUICK 0 +#define I2C_SMBUS_BYTE 1 +#define I2C_SMBUS_BYTE_DATA 2 +#define I2C_SMBUS_WORD_DATA 3 +#define I2C_SMBUS_PROC_CALL 4 +#define I2C_SMBUS_BLOCK_DATA 5 +#define I2C_SMBUS_I2C_BLOCK_BROKEN 6 +#define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */ +#define I2C_SMBUS_I2C_BLOCK_DATA 8 + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,36) +/* fix tjm */ + +#ifndef __ASSEMBLY__ +/* + * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the + * header files exported to user space + */ +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + +typedef __signed__ long __s64; +typedef unsigned long __u64; + +#endif /* __ASSEMBLY__ */ + +#else +/* do noting add tjm */ +#endif + +/* + * Data for SMBus Messages + */ +#define I2C_SMBUS_BLOCK_MAX 32 /* As specified in SMBus standard */ +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[I2C_SMBUS_BLOCK_MAX + 2]; /* block[0] is used for length */ + /* and one more for user-space compatibility */ +}; + +/* This is the structure as used in the I2C_SMBUS ioctl call */ +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data *data; +}; +int32_t dfd_read_port_i2c_one_time_smbus(char *i2c_name, uint16_t dev_addr, uint16_t offset_addr, + uint8_t *recv_buf, int32_t size, int addr_type) +{ + union i2c_smbus_data data; + struct i2c_smbus_ioctl_data ioctl_data; + unsigned long addr = dev_addr; + int fd; + int rc; + int rv; + int i; + + mem_clear(&ioctl_data, sizeof(struct i2c_smbus_ioctl_data)); + if (i2c_name == NULL || recv_buf == NULL) { + DFD_DEBUG_ERROR("i2c_num = NULL, recv_buf = NULL\r\n"); + return -1; + } + + DFD_DEBUG_DBG("i2c name: %s, dev_addr: 0x%x, offset_addr: 0x%x, size: %d, addr_type: %d.\n", i2c_name, dev_addr, + offset_addr, size, addr_type); + + rv = 0; + fd = open(i2c_name, O_RDWR | O_SYNC); + if (fd < 0) { + DFD_DEBUG_ERROR("i2c open fail fd %d\n", fd); + rv = fd; + goto err; + } + if (ioctl(fd, I2C_SLAVE_FORCE , addr) < 0) { + DFD_DEBUG_ERROR("ioctl 2C_SLAVE_FORCE %d.\n", errno); + rv =-1; + goto fail; + } + for (i = 0 ;i < size; i++) { + data.byte = 0; + ioctl_data.read_write = I2C_SMBUS_READ; + ioctl_data.command = (offset_addr + i); + ioctl_data.size = I2C_SMBUS_BYTE_DATA; + ioctl_data.data= &data; + + rc = ioctl(fd, I2C_SMBUS, &ioctl_data); + if (rc < 0) { + DFD_DEBUG_ERROR("read, I2C_SMBUS failed: %d.\n", errno); + rv = -1; + goto fail; + } + *(recv_buf + i) = data.byte; + } + fail: + close(fd); + err: + return rv; + +} + +int32_t dfd_read_port_i2c_one_time(char *i2c_name, uint16_t dev_addr, uint16_t offset_addr, + uint8_t *recv_buf, int32_t size, int addr_type) +{ + + int32_t fd, rv; + struct i2c_rdwr_ioctl_data ioctl_data; + struct i2c_msg msgs[2]; + uint8_t buf[2]; + + if (i2c_name == NULL || recv_buf == NULL) { + DFD_DEBUG_ERROR("i2c_num = NULL, recv_buf = NULL\r\n"); + return -1; + } + + DFD_DEBUG_DBG("i2c name %s, dev_addr 0x%x, offset_addr 0x%x, size %d, addr_type %d.\n", i2c_name, dev_addr, + offset_addr, size, addr_type); + + rv = 0; + fd = open(i2c_name, O_RDWR | O_SYNC); + if (fd < 0) { + DFD_DEBUG_ERROR("i2c open fail fd %d\n", fd); + return -1; + } + mem_clear(&ioctl_data, sizeof(ioctl_data)); + mem_clear(msgs, sizeof(msgs)); + mem_clear(buf, sizeof(buf)); + if (ioctl(fd, I2C_SLAVE, dev_addr) < 0) { + + DFD_DEBUG_ERROR("%s %dioctl fail(ret:%d, errno:%s)!\r\n", __func__ , __LINE__, rv, strerror(errno)); + rv = -1; + goto fail; + } + + buf[0] = (uint8_t)(offset_addr); + msgs[0].addr= dev_addr; + msgs[0].len= 2; + msgs[0].buf= buf; + msgs[1].addr= dev_addr; + msgs[1].flags|= I2C_M_RD; + msgs[1].len= 1; + msgs[1].buf= recv_buf; + ioctl_data.nmsgs= 1; + ioctl_data.msgs= msgs; + + rv = ioctl(fd, I2C_RDWR, &ioctl_data); + if(rv < 0) { + DFD_DEBUG_ERROR("%s %dioctl fail(ret:%d, errno:%s)!\r\n", __func__ , __LINE__, rv, strerror(errno)); + goto fail; + } + ioctl_data.msgs= &msgs[1]; + DFD_DEBUG_DBG("ioctlread, return :%d/n", ioctl(fd, I2C_RDWR, &ioctl_data)); + DFD_DEBUG_DBG("dfd_read_port_i2c addr: 0x%X, offset: 0x%X, value: 0x%X\n", dev_addr, offset_addr, *recv_buf); + fail: + close(fd); + return rv; + +} + +int32_t dfd_read_port_i2c(char *i2c_name, uint16_t dev_addr, uint16_t offset_addr, + uint8_t *recv_buf, int32_t size) +{ + int i; + int rv; + + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + rv = dfd_read_port_i2c_one_time_smbus(i2c_name, dev_addr, offset_addr, recv_buf, size, DFD_I2C_SHORT_ADDR_TYPE); + if (rv < 0) { + DFD_DEBUG_ERROR("(read times %d)i2c name %s, dev_addr 0x%X, offset_addr 0x%X, addr_type %d\n", i, i2c_name, dev_addr, offset_addr, DFD_I2C_SHORT_ADDR_TYPE); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + + return rv; +} + +int32_t dfd_write_port_i2c_one_time(char *i2c_name, uint16_t dev_addr, uint16_t offset_addr, + uint8_t *write_buf, int32_t size,int addr_type) +{ + int32_t fd, rv; + int index; + struct i2c_smbus_ioctl_data ioctl_data; + union i2c_smbus_data data; + uint8_t addr_buf[2]; + uint8_t write_buf_tmp[256]; + + if (i2c_name == NULL || write_buf == NULL ) { + DFD_DEBUG_ERROR("i2c_num = NULL \r\n"); + return -1; + } + + if (size <= 0) { + DFD_DEBUG_ERROR("error:size\n"); + return -1; + } + DFD_DEBUG_DBG("i2c name %s, dev_addr 0x%x, offset_addr 0x%x, size %d, addr_type %d\n",i2c_name, dev_addr, + offset_addr, size, addr_type); + mem_clear(&ioctl_data, sizeof(ioctl_data)); + mem_clear(addr_buf, sizeof(addr_buf)); + mem_clear(write_buf_tmp, sizeof(write_buf_tmp)); + + rv = 0; + + fd = open(i2c_name, O_RDWR | O_SYNC); + if (fd < 0) { + DFD_DEBUG_ERROR("i2c open fail fd %d\n", fd); + return -1; + } + + if (ioctl(fd, I2C_SLAVE_FORCE, dev_addr) < 0) { + DFD_DEBUG_ERROR("ioctl, I2C_SLAVE failed: %d.\n", errno); + rv = -1; + goto fail; + } + + for (index = 0; index < size; index++) { + data.byte = *(write_buf + index); + ioctl_data.read_write = I2C_SMBUS_WRITE; + ioctl_data.command = (offset_addr + index); + ioctl_data.size = I2C_SMBUS_BYTE_DATA; + ioctl_data.data= &data; + rv = ioctl(fd, I2C_SMBUS, (unsigned long)&ioctl_data); + if(rv < 0) { + DFD_DEBUG_ERROR("ioctl fail(ret:%d, errno:%s %d) !\r\n", rv, strerror(errno),errno); + break; + } + DFD_DEBUG_DBG("ret:%d value:0x%02x\n", rv, data.byte); + usleep(5000); + } + +fail: + close(fd); + return rv; +} + +int32_t dfd_write_port_i2c(char *i2c_name, uint16_t dev_addr, uint16_t offset_addr, + uint8_t *write_buf, int32_t size) +{ + int i; + int rv; + + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + rv = dfd_write_port_i2c_one_time(i2c_name, dev_addr, offset_addr, write_buf,size, DFD_I2C_SHORT_ADDR_TYPE); + if (rv < 0) { + DFD_DEBUG_ERROR("(write times %d)i2c name %s, dev_addr 0x%X, offset_addr 0x%X, addr_type %d\n", + i, i2c_name, dev_addr, offset_addr, DFD_I2C_SHORT_ADDR_TYPE); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + + return rv; +} + +static int dfd_read_io_port(uint16_t offset_addr, uint8_t *recv_buf, int32_t size) +{ + int fd; + int ret; + + fd = open("/dev/port", O_RDWR); + if (fd < 0) { + printf("open failed ret %d.\n", fd); + return -1; + } + + ret = lseek(fd, offset_addr, SEEK_SET); + if (ret < 0) { + printf("lseek failed ret %d.\n", ret); + goto exit; + } + + ret = read(fd, recv_buf, size); + if (ret != size) { + printf("read failed ret %d size %d.\n", ret, size); + ret = -1; + goto exit; + } + +exit: + close(fd); + return ret; +} + +static int dfd_write_io_port(uint16_t offset_addr, uint8_t *write_buf, int32_t size) +{ + int fd; + int ret; + + fd = open("/dev/port", O_RDWR); + if (fd < 0) { + printf("open failed ret %d.\n", fd); + return -1; + } + + ret = lseek(fd, offset_addr, SEEK_SET); + if (ret < 0) { + printf("lseek failed ret %d.\n", ret); + goto exit; + } + + ret = write(fd, write_buf, size); + if (ret != size) { + printf("write failed ret %d size %d.\n", ret, size); + ret = -1; + goto exit; + } + +exit: + close(fd); + return ret; +} + +static int dfd_process_mem(char *dev_name, char is_wr, char width, off_t offset, uint8_t *buf, int32_t size) +{ + int mfd, ret = 0; + void *base; + int i, j; + unsigned int val; + off_t map_offset; + size_t map_size; + + if (size & (width - 1)) { + printf("size %d invalid.\n", size); + return -1; + } + + mfd = open(dev_name, O_RDWR); + if (mfd < 0) { + printf("Cannot open %s.\n", dev_name); + return -1; + } + + g_sys_page_size = getpagesize(); + map_offset = offset & SYS_PAGE_MASK; + map_size = size + offset - map_offset; + base = mmap(NULL, map_size, PROT_READ | PROT_WRITE, MAP_SHARED, mfd, map_offset); + if (base == MAP_FAILED) { + printf("mmap offset 0x%lx failed error(%s).\n", map_offset, strerror(errno)); + close(mfd); + return -1; + } + printf("width %d map_offset 0x%lx, offset 0x%lx, mmap base %p, g_sys_page_size %d\n", + width, map_offset, offset, base, g_sys_page_size); + + if (is_wr) { + for (i = 0; i < size; i = i + width) { + val = 0; + for (j = 0; j < width; j++) { + val |= buf[i + j] << (8 * j); + } + switch (width) { + case 1: + *((volatile unsigned char*)(base + i + offset - map_offset)) = val; + break; + case 2: + *((volatile unsigned short*)(base + i + offset - map_offset)) = val; + break; + case 4: + *((volatile unsigned int*)(base + i + offset - map_offset)) = val; + break; + default: + ret = -1; + printf("Not support width %d.\n", width); + goto exit; + } + } + } else { + for (i = 0; i < size; i = i + width) { + switch (width) { + case 1: + val = *((volatile unsigned char*)(base + i + offset - map_offset)); + break; + case 2: + val = *((volatile unsigned short*)(base + i + offset - map_offset)); + break; + case 4: + val = *((volatile unsigned int*)(base + i + offset - map_offset)); + break; + default: + ret = -1; + printf("Not support width %d.\n", width); + goto exit; + } + for (j = 0; j < width; j++) { + buf[i + j] = (val >> (8 * j)) & 0xff; + } + } + } +exit: + munmap(base, map_size); + close(mfd); + return ret; +} + +int32_t dfd_i2c_gen_read_one_time(char *i2c_path, uint32_t dev_addr, uint32_t addr_bitwidth, + uint32_t offset_addr, uint8_t *recv_buf, int32_t rd_len) +{ + int32_t fd, rv, i; + struct i2c_rdwr_ioctl_data ioctl_data; + struct i2c_msg msgs[2]; + uint8_t buf[DFD_UTEST_MAX_BIT_WIDTH]; + + fd = open(i2c_path, O_RDWR | O_SYNC); + if (fd < 0) { + DFD_DEBUG_ERROR("i2c open fail fd:%d\n", fd); + return -1; + } + mem_clear(&ioctl_data, sizeof(ioctl_data)); + mem_clear(msgs, sizeof(msgs)); + mem_clear(buf, sizeof(buf)); + + i = 0; + + switch (addr_bitwidth) { + case WIDTH_4Byte: + buf[i++] = (offset_addr >> 24) & 0xFF; + buf[i++] = (offset_addr >> 16) & 0xFF; + buf[i++] = (offset_addr >> 8) & 0xFF; + buf[i++] = offset_addr & 0xFF; + break; + case WIDTH_2Byte: + buf[i++] = (offset_addr >> 8) & 0xFF; + buf[i++] = offset_addr & 0xFF; + break; + case WIDTH_1Byte: + buf[i++] = offset_addr & 0xFF; + break; + default: + DFD_DEBUG_ERROR("Only support 1,2,4 Byte Address Width,but set %u addr_bitwidth \n", addr_bitwidth); + rv = -1; + goto fail; + } + + msgs[0].addr = dev_addr; + msgs[0].flags = 0; + msgs[0].len = addr_bitwidth; + msgs[0].buf = buf; + msgs[1].addr = dev_addr; + msgs[1].flags |= I2C_M_RD; + msgs[1].len = rd_len; + msgs[1].buf = recv_buf; + ioctl_data.nmsgs = 2; + ioctl_data.msgs = msgs; + + rv = ioctl(fd, I2C_RDWR, &ioctl_data); + if(rv < 0) { + DFD_DEBUG_ERROR("%s %d Error: Sending messages failed:(ret:%d, errno:%s)!\n", __func__ , __LINE__, rv, strerror(errno)); + goto fail; + } + +fail: + close(fd); + return rv; +} + +int32_t dfd_i2c_gen_read(char *i2c_path, uint32_t dev_addr, uint32_t addr_bitwidth, + uint32_t offset_addr, uint8_t *recv_buf, int32_t rd_len) +{ + int i; + int rv; + + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + rv = dfd_i2c_gen_read_one_time(i2c_path, dev_addr, addr_bitwidth, offset_addr, recv_buf, rd_len); + if (rv < 0) { + DFD_DEBUG_ERROR("(read times:%d) i2c_path:%s, dev_addr:0x%x, addr_bitwidth:%u, offset_addr:0x%x, rd_len:%u\n", + i, i2c_path, dev_addr, addr_bitwidth, offset_addr, rd_len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + + return rv; +} + +int dfd_utest_i2c_gen_rd(int argc, char* argv[]) +{ + int ret; + uint32_t i2c_bus, dev_addr, addr_bitwidth, offset_addr, data_bitwidth, rd_len, i, j; + char *stopstring; + char i2c_path[32]; + uint8_t tmp_value[DFD_UTEST_MAX_RDWR_NUM]; + uint8_t rd_value[DFD_UTEST_MAX_RDWR_NUM]; + + if (argc != 8) { + DFD_DEBUG_ERROR("params error\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_GEN_RD); + goto exit; + } + + i2c_bus = strtol(argv[2], &stopstring, 10); + dev_addr = strtol(argv[3], &stopstring, 16); + addr_bitwidth = strtol(argv[4], &stopstring, 10); + offset_addr = strtol(argv[5], &stopstring, 16); + data_bitwidth = strtol(argv[6], &stopstring, 10); + rd_len = strtol(argv[7], &stopstring, 10); + + if (rd_len > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", rd_len); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_GEN_RD); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + printf(":\n"); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", i2c_bus); + mem_clear(tmp_value, sizeof(tmp_value)); + ret = dfd_i2c_gen_read(i2c_path, dev_addr, addr_bitwidth, offset_addr, tmp_value, rd_len); + if (ret < 0) { + printf("read failed. ret:%d\n", ret); + goto exit; + } + + mem_clear(rd_value, sizeof(rd_value)); + if (data_bitwidth == WIDTH_1Byte) { + memcpy(rd_value, tmp_value, rd_len); + } else { + for (i = 0; i < rd_len; i += data_bitwidth) { + for (j = 0; (j < data_bitwidth) && (i + j < rd_len); j++) { + rd_value[i + data_bitwidth - j - 1] = tmp_value[i + j]; + } + } + } + + dfd_utest_printf_reg(rd_value, rd_len, offset_addr); + +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int32_t dfd_i2c_gen_write_one_time(char *i2c_path, uint32_t dev_addr, uint32_t addr_bitwidth, + uint32_t offset_addr, uint8_t *wr_value, uint32_t wr_len) +{ + int32_t fd, rv, i; + struct i2c_rdwr_ioctl_data ioctl_data; + struct i2c_msg msgs[1]; + uint8_t buf[DFD_UTEST_MAX_BIT_WIDTH + DFD_UTEST_MAX_RDWR_NUM]; + + fd = open(i2c_path, O_RDWR | O_SYNC); + if (fd < 0) { + DFD_DEBUG_ERROR("i2c open fail fd %d\n", fd); + return -1; + } + mem_clear(&ioctl_data, sizeof(ioctl_data)); + mem_clear(msgs, sizeof(msgs)); + mem_clear(buf, sizeof(buf)); + + i = 0; + + switch (addr_bitwidth) { + case WIDTH_4Byte: + buf[i++] = (offset_addr >> 24) & 0xFF; + buf[i++] = (offset_addr >> 16) & 0xFF; + buf[i++] = (offset_addr >> 8) & 0xFF; + buf[i++] = offset_addr & 0xFF; + break; + case WIDTH_2Byte: + buf[i++] = (offset_addr >> 8) & 0xFF; + buf[i++] = offset_addr & 0xFF; + break; + case WIDTH_1Byte: + buf[i++] = offset_addr & 0xFF; + break; + default: + DFD_DEBUG_ERROR("Only support 1,2,4 Byte Address Width,but set %u addr_bitwidth \r\n", addr_bitwidth); + rv = -1; + goto fail; + } + + memcpy(buf + addr_bitwidth, wr_value, wr_len); + + msgs[0].addr= dev_addr; + msgs[0].flags = 0; + msgs[0].len= addr_bitwidth + wr_len; + msgs[0].buf= buf; + + ioctl_data.nmsgs= 1; + ioctl_data.msgs= msgs; + + rv = ioctl(fd, I2C_RDWR, &ioctl_data); + if(rv < 0) { + DFD_DEBUG_ERROR("%s %dError: Sending messages failed:(ret:%d, errno:%s)!\n", __func__ , __LINE__, rv, strerror(errno)); + goto fail; + } else if (rv < ioctl_data.nmsgs) { + DFD_DEBUG_ERROR("%s %dWarning: only %d/%d messages were sent\n", __func__ , __LINE__, rv, ioctl_data.nmsgs); + } + +fail: + close(fd); + return rv; +} + +int32_t dfd_i2c_gen_write(char *i2c_path, uint32_t dev_addr, uint32_t addr_bitwidth, + uint32_t offset_addr, uint8_t *wr_value, uint32_t wr_len) +{ + int i; + int rv; + + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + rv = dfd_i2c_gen_write_one_time(i2c_path, dev_addr, addr_bitwidth, offset_addr, wr_value, wr_len); + if (rv < 0) { + DFD_DEBUG_ERROR("(write times:%d)i2c_path:%s, dev_addr:0x%x, addr_bitwidth:%u, offset_addr:0x%x, wr_len:%u\n", + i, i2c_path, dev_addr, addr_bitwidth, offset_addr, wr_len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + + return rv; +} + +int dfd_utest_i2c_gen_wr(int argc, char* argv[]) +{ + int ret; + uint32_t i2c_bus, dev_addr, addr_bitwidth, offset_addr, data_bitwidth, wr_len, tmp_data, para_len, i, j; + char *stopstring; + char i2c_path[32]; + uint8_t wr_value[DFD_UTEST_MAX_RDWR_NUM]; + + if (argc < 8) { + DFD_DEBUG_ERROR("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_GEN_WR); + goto exit; + } + + i2c_bus = strtol(argv[2], &stopstring, 10); + dev_addr = strtol(argv[3], &stopstring, 16); + addr_bitwidth = strtol(argv[4], &stopstring, 10); + offset_addr = strtol(argv[5], &stopstring, 16); + data_bitwidth = strtol(argv[6], &stopstring, 10); + + para_len = argc - 7; + wr_len = para_len * data_bitwidth; + + if (wr_len > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", wr_len); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_GEN_WR); + goto exit; + } + + if (data_bitwidth == WIDTH_1Byte) { + for (i = 0; i < para_len; i++) { + wr_value[i] = strtol(argv[7 + i], &stopstring, 16); + DFD_DEBUG_DBG(" index :%d value 0x%x\n", i , wr_value[i]); + } + } else { + for (i = 0; i < para_len; i++) { + tmp_data = strtol(argv[7 + i], &stopstring, 16); + DFD_DEBUG_DBG(" index :%d value 0x%x\n", i , tmp_data); + for (j = 0; j < data_bitwidth; j++) { + tmp_data = strtol(argv[7 + i], &stopstring, 16); + wr_value[j + i * data_bitwidth] = (tmp_data >> (24 - 8 * j)) & 0xFF; + } + } + } + + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", i2c_bus); + + ret = dfd_i2c_gen_write(i2c_path, dev_addr, addr_bitwidth, offset_addr, wr_value, wr_len); + if (ret < 0) { + printf("write failed. ret:%d\n", ret); + } else { + printf("write success\n"); + } +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_i2c_rd(int argc, char* argv[]) +{ + int ret; + uint8_t value[DFD_UTEST_MAX_RDWR_NUM]; + uint16_t dev_addr, offset_addr; + char *stopstring; + int num, i2c_bus; + char i2c_path[32]; + + if (argc != 6) { + DFD_DEBUG_ERROR("params error\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_RD); + goto exit; + } + + i2c_bus = strtol(argv[2], &stopstring, 10); + dev_addr = strtol(argv[3], &stopstring, 16); + offset_addr = strtol(argv[4], &stopstring, 16); + num = strtol(argv[5], &stopstring, 10); + + if (num > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", num); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_RD); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + printf(":\n"); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", i2c_bus); + mem_clear(value, sizeof(value)); + ret = dfd_read_port_i2c(i2c_path, dev_addr, offset_addr, value, num); + if (ret < 0) { + printf("failed ret %d\n", ret); + goto exit; + } + + dfd_utest_printf_reg(value, num, offset_addr); + +exit: + return DFD_RV_MODE_NOTSUPPORT; + +} + +int dfd_utest_i2c_wr(int argc, char* argv[]) +{ + int ret; + uint16_t dev_addr, offset_addr; + char *stopstring; + int i2c_bus; + char i2c_path[32]; + uint8_t wr_len,i; + uint8_t wr_value[DFD_UTEST_MAX_RDWR_NUM]; + + if (argc < 6) { + DFD_DEBUG_ERROR("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_WR); + goto exit; + } + + wr_len = argc - 5; + i2c_bus = strtol(argv[2], &stopstring, 10); + dev_addr = strtol(argv[3], &stopstring, 16); + offset_addr = strtol(argv[4], &stopstring, 16); + + for (i = 0; i < wr_len; i++) { + wr_value[i] = strtol(argv[5+i], &stopstring, 16); + DFD_DEBUG_DBG(" index :%d value %x\n", i , wr_value[i]); + } + + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", i2c_bus); + + ret = dfd_write_port_i2c(i2c_path, dev_addr, offset_addr, wr_value, wr_len); + if (ret < 0) { + printf("failed ret %d\n", ret); + } else { + printf("success\n"); + } +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_io_rd(int argc, char* argv[]) +{ + int ret; + uint8_t value[DFD_UTEST_MAX_RDWR_NUM]; + uint16_t offset_addr; + char *stopstring; + int num; + + if (argc != 4) { + DFD_DEBUG_ERROR("params error\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_IO_RD); + goto exit; + } + + offset_addr = strtol(argv[2], &stopstring, 16); + num = strtol(argv[3], &stopstring, 10); + + if (num > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", num); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_IO_RD); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + printf(":\n"); + mem_clear(value, sizeof(value)); + ret = dfd_read_io_port(offset_addr, value, num); + if (ret < 0) { + printf("failed ret %d\n", ret); + goto exit; + } + + dfd_utest_printf_reg(value, num, offset_addr); + +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_io_wr(int argc, char* argv[]) +{ + int ret; + uint16_t offset_addr; + char *stopstring; + int32_t wr_len,i; + uint8_t wr_value[DFD_UTEST_MAX_RDWR_NUM]; + + if (argc < 4) { + DFD_DEBUG_ERROR("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_IO_WR); + goto exit; + } + + wr_len = argc - 3; + if (wr_len > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", wr_len); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_IO_WR); + goto exit; + } + + offset_addr = strtol(argv[2], &stopstring, 16); + + for (i = 0; i < wr_len; i++) { + wr_value[i] = strtol(argv[3 + i], &stopstring, 16); + DFD_DEBUG_DBG(" index :%d value %x\n", i , wr_value[i]); + } + + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + ret = dfd_write_io_port(offset_addr, wr_value, wr_len); + if (ret < 0) { + printf("failed ret %d\n", ret); + } else { + printf("success\n"); + } +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_phymem_rd(int argc, char* argv[]) +{ + int ret, width; + uint8_t value[DFD_UTEST_MAX_RDWR_NUM]; + off_t offset_addr; + char *stopstring; + int num; + + if (argc != 5) { + DFD_DEBUG_ERROR("params error\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_PHYMEM_RD); + goto exit; + } + + width = strtol(argv[2], &stopstring, 10); + offset_addr = strtol(argv[3], &stopstring, 16); + num = strtol(argv[4], &stopstring, 10); + + if (num > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", num); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_PHYMEM_RD); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + printf(":\n"); + mem_clear(value, sizeof(value)); + ret = dfd_process_mem(DEV_MEM_NAME, 0, width, offset_addr, value, num); + if (ret < 0) { + printf("failed ret %d\n", ret); + goto exit; + } + + dfd_utest_printf_reg(value, num, offset_addr); + +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_phymem_wr(int argc, char* argv[]) +{ + int ret, width; + off_t offset_addr; + char *stopstring; + int32_t wr_len,i; + uint8_t wr_value[DFD_UTEST_MAX_RDWR_NUM]; + + if (argc < 5) { + DFD_DEBUG_ERROR("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_PHYMEM_WR); + goto exit; + } + + wr_len = argc - 4; + if (wr_len > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", wr_len); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_PHYMEM_WR); + goto exit; + } + + width = strtol(argv[2], &stopstring, 10); + offset_addr = strtol(argv[3], &stopstring, 16); + + for (i = 0; i < wr_len; i++) { + wr_value[i] = strtol(argv[4 + i], &stopstring, 16); + DFD_DEBUG_DBG(" index :%d value %x\n", i , wr_value[i]); + } + + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + ret = dfd_process_mem(DEV_MEM_NAME, 1, width, offset_addr, wr_value, wr_len); + if (ret < 0) { + printf("failed ret %d\n", ret); + } else { + printf("success\n"); + } +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_kmem_rd(int argc, char* argv[]) +{ + int ret, width; + uint8_t value[DFD_UTEST_MAX_RDWR_NUM]; + uint16_t offset_addr; + char *stopstring; + int num; + + if (argc != 5) { + DFD_DEBUG_ERROR("params error\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_KMEM_RD); + goto exit; + } + + width = strtol(argv[2], &stopstring, 10); + offset_addr = strtol(argv[3], &stopstring, 16); + num = strtol(argv[4], &stopstring, 10); + + if (num > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", num); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_KMEM_RD); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + printf(":\n"); + mem_clear(value, sizeof(value)); + ret = dfd_process_mem(DEV_KMEM_NAME, 0, width, offset_addr, value, num); + if (ret < 0) { + printf("failed ret %d\n", ret); + goto exit; + } + + dfd_utest_printf_reg(value, num, offset_addr); + +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_kmem_wr(int argc, char* argv[]) +{ + int ret; + uint16_t offset_addr, width; + char *stopstring; + int32_t wr_len,i; + uint8_t wr_value[DFD_UTEST_MAX_RDWR_NUM]; + + if (argc < 5) { + DFD_DEBUG_ERROR("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_KMEM_WR); + goto exit; + } + + wr_len = argc - 4; + if (wr_len > DFD_UTEST_MAX_RDWR_NUM) { + DFD_DEBUG_ERROR("Input num %d exceed max.\n", wr_len); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_KMEM_WR); + goto exit; + } + + width = strtol(argv[2], &stopstring, 10); + offset_addr = strtol(argv[3], &stopstring, 16); + + for (i = 0; i < wr_len; i++) { + wr_value[i] = strtol(argv[4 + i], &stopstring, 16); + DFD_DEBUG_DBG(" index :%d value %x\n", i , wr_value[i]); + } + + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + ret = dfd_process_mem(DEV_KMEM_NAME, 1, width, offset_addr, wr_value, wr_len); + if (ret < 0) { + printf("failed ret %d\n", ret); + } else { + printf("success\n"); + } +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +static unsigned long dfd_utest_get_file_size(const char *path) +{ + unsigned long filesize; + struct stat statbuff; + + if (stat(path, &statbuff) < 0) { + filesize = -1; + } else { + filesize = statbuff.st_size; + } + + return filesize; +} + +int dfd_utest_i2c_file_wr(int argc, char* argv[]) +{ + int ret; + uint16_t dev_addr, offset_addr; + char *stopstring; + int i2c_bus; + char i2c_path[32]; + char *file_name; + unsigned long filesize; + int fd; + uint8_t wr_buf[DFD_UTEST_MAX_RDWR_NUM]; + int len; + int bpt; /* byte per times*/ + int page_left; + + if (argc != 7) { + printf("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_I2C_FILE_WR); + goto exit; + } + + i2c_bus = strtol(argv[2], &stopstring, 10); + dev_addr = strtol(argv[3], &stopstring, 16); + offset_addr = strtol(argv[4], &stopstring, 16); + bpt = strtol(argv[5], &stopstring, 10); + file_name = argv[6]; + + if ((bpt <= 0) || (bpt > DFD_UTEST_MAX_RDWR_NUM)) { + bpt = DFD_UTEST_MAX_RDWR_NUM; + } + + if ((bpt & (bpt - 1)) != 0) { + printf("Bytes per times %d isn't power of two.\n",bpt); + goto exit; + } + + filesize = dfd_utest_get_file_size(file_name); + if (filesize <= 0) { + printf("Input invalid file %s, filesize %lu.\n", file_name, filesize); + goto exit; + } + + fd = open(file_name, O_RDONLY); + if (fd < 0) { + printf("open file[%s] fail.\n", file_name); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", i2c_bus); + + while (filesize > 0) { + mem_clear(wr_buf, DFD_UTEST_MAX_RDWR_NUM); + len = bpt; + if (offset_addr & (bpt - 1)) { + page_left = bpt - (offset_addr & (bpt - 1)); + len = len > page_left ? page_left : len; + } + + len = read(fd, wr_buf, len); + + ret = dfd_write_port_i2c(i2c_path, dev_addr, offset_addr, wr_buf, len); + if (ret < 0) { + break; + } + offset_addr += len; + filesize -= len; + } + + close(fd); + + if (ret < 0) { + printf("failed ret %d\n", ret); + } else { + printf("success\n"); + } + +exit: + return DFD_RV_MODE_NOTSUPPORT; + +} + +/* compare with sys_flie_wr, One more step is read back verification */ +int dfd_utest_sysfs_file_upg(int argc, char* argv[]) +{ + int ret = 0; + uint32_t offset_addr; + char *file_name; + char *sysfs_loc; + char *stopstring; + unsigned long filesize; + int fd, file_fd; + uint8_t wr_buf[DFD_UTEST_MAX_RDWR_NUM]; + int len, write_len, per_wr_len; + int i; + uint8_t reread_buf[DFD_UTEST_MAX_RDWR_NUM]; + int reback_len, reread_len; + int j = 0; + + if (argc != 5 && argc != 6) { + printf("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_SYSFS_FILE_UPG); + goto exit; + } + + sysfs_loc = argv[2]; + offset_addr = strtol(argv[3], &stopstring, 16); + file_name = argv[4]; + + if (argc == 6) { + per_wr_len = strtol(argv[5], &stopstring, 10); + if (per_wr_len > DFD_UTEST_MAX_RDWR_NUM || per_wr_len <= 0) { + printf("per_wr_byte %d invalid, not in range (0, 256]\n", per_wr_len); + goto exit; + } + } else { + per_wr_len = DFD_UTEST_DEFAULT_WR_NUM; + } + DFD_DEBUG_DBG("per_wr_byte: %d\n", per_wr_len); + filesize = dfd_utest_get_file_size(file_name); + if (filesize <= 0) { + printf("Input invalid file %s, filesize %lu.\n", file_name, filesize); + goto exit; + } + + fd = open(sysfs_loc, O_RDWR | O_SYNC); + if (fd < 0) { + printf("open file[%s] fail.\n", sysfs_loc); + goto exit; + } + + file_fd = open(file_name, O_RDONLY); + if (file_fd < 0) { + printf("open file[%s] fail.\n", file_name); + goto open_dev_err; + } + + dfd_utest_print_cmd(argc, argv); + + ret = lseek(fd, offset_addr, SEEK_SET); + if (ret < 0) { + printf("lseek file[%s offset=%d] fail,\n", sysfs_loc, offset_addr); + goto fail; + } + + printf(":\n"); + while (filesize > 0) { + if (filesize > (unsigned long)per_wr_len) { + len = per_wr_len; + } else { + len = filesize; + } + + mem_clear(wr_buf, DFD_UTEST_MAX_RDWR_NUM); + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + len = read(file_fd, wr_buf, len); + if (len < 0) { + DFD_DEBUG_ERROR("read file[%s] fail, offset = 0x%x retrytimes = %d ret = %d\n", + sysfs_loc, offset_addr, i ,len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == DFD_I2C_RETRY_TIME) { + printf("read file[%s] fail, offset = 0x%x, ret = %d\n", sysfs_loc, offset_addr, len); + goto fail; + } + + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + write_len = write(fd, wr_buf, len); + if (write_len != len) { + DFD_DEBUG_ERROR("write file[%s] fail,offset = 0x%x retrytimes = %d len = %d,write_len =%d\n", + sysfs_loc, offset_addr, i ,len, write_len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == DFD_I2C_RETRY_TIME) { + printf("write file[%s] fail, offset = 0x%x, len = %d,write_len =%d\n", + sysfs_loc, offset_addr, len, write_len); + goto fail; + } + + reback_len = write_len; + ret = lseek(fd, -reback_len, SEEK_CUR); + if (ret < 0) { + printf("reread lseek file[%s offset=%d] fail,lseek len=%d\n", + sysfs_loc, offset_addr, reback_len); + goto fail; + } + + mem_clear(reread_buf, DFD_UTEST_MAX_RDWR_NUM); + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + reread_len = read(fd, reread_buf, reback_len); + if (reread_len != reback_len) { + DFD_DEBUG_ERROR("reread file[%s] fail,offset = 0x%x retrytimes = %d reread_len = %d,reback_len =%d\n", + sysfs_loc, offset_addr, i ,reread_len, reback_len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == DFD_I2C_RETRY_TIME) { + printf("reread file[%s] fail, offset = 0x%x, reread_len = %d,reback_len = %d\n", + sysfs_loc, offset_addr, reread_len, reback_len); + goto fail; + } + + if (memcmp(reread_buf, wr_buf, reread_len) != 0) { + if (j < DFD_I2C_RETRY_TIME) { + DFD_DEBUG_ERROR("memcmp file[%s] fail,offset = 0x%x retrytimes = %d\n", + sysfs_loc, offset_addr, j); + j++; + ret = lseek(file_fd, -len, SEEK_CUR); + if (ret < 0) { + printf("retry file_fd lseek fail,lseek len=%d\n", len); + goto fail; + } + ret = lseek(fd, -write_len, SEEK_CUR); + if (ret < 0) { + printf("retry fd lseek fail,lseek len=%d\n", write_len); + goto fail; + } + continue; + } + + printf("upgrade file[%s] fail, offset = 0x%x.\n", sysfs_loc, offset_addr); + printf("want to write buf :\n"); + for (i = 0; i < reread_len; i++) { + printf("0x%x ", wr_buf[i]); + } + printf("\n"); + + printf("actually reread buf :\n"); + for (i = 0; i < reread_len; i++) { + printf("0x%x ", reread_buf[i]); + } + printf("\n"); + + goto fail; + } + + offset_addr += len; + filesize -= len; + usleep(5000); + } + + printf("success\n"); + close(file_fd); + close(fd); + return DFD_RV_OK; + +fail: + close(file_fd); +open_dev_err: + close(fd); +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_sysfs_file_wr(int argc, char* argv[]) +{ + int ret = 0; + uint32_t offset_addr; + char *file_name; + char *sysfs_loc; + char *stopstring; + unsigned long filesize; + int fd, file_fd; + uint8_t wr_buf[DFD_UTEST_MAX_RDWR_NUM]; + int len, write_len, per_wr_len; + int i; + + if (argc != 5 && argc != 6) { + printf("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_SYSFS_FILE_WR); + goto exit; + } + + sysfs_loc = argv[2]; + offset_addr = strtol(argv[3], &stopstring, 16); + file_name = argv[4]; + + if (argc == 6) { + per_wr_len = strtol(argv[5], &stopstring, 10); + if (per_wr_len > DFD_UTEST_MAX_RDWR_NUM || per_wr_len <= 0) { + printf("per_wr_byte %d invalid, not in range (0, 256]\n", per_wr_len); + goto exit; + } + } else { + per_wr_len = DFD_UTEST_DEFAULT_WR_NUM; + } + DFD_DEBUG_DBG("per_wr_byte: %d\n", per_wr_len); + filesize = dfd_utest_get_file_size(file_name); + if (filesize <= 0) { + printf("Input invalid file %s, filesize %lu.\n", file_name, filesize); + goto exit; + } + + fd = open(sysfs_loc, O_RDWR | O_SYNC); + if (fd < 0) { + printf("open file[%s] fail.\n", sysfs_loc); + goto exit; + } + + file_fd = open(file_name, O_RDONLY); + if (file_fd < 0) { + printf("open file[%s] fail.\n", file_name); + goto open_dev_err; + } + + dfd_utest_print_cmd(argc, argv); + + ret = lseek(fd, offset_addr, SEEK_SET); + if (ret < 0) { + printf("lseek file[%s offset=%d] fail,\n", sysfs_loc, offset_addr); + goto fail; + } + + printf(":\n"); + while (filesize > 0) { + if (filesize > (unsigned long)per_wr_len) { + len = per_wr_len; + } else { + len = filesize; + } + + mem_clear(wr_buf, DFD_UTEST_MAX_RDWR_NUM); + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + len = read(file_fd, wr_buf, len); + if (len < 0) { + DFD_DEBUG_ERROR("read file[%s] fail, offset = 0x%x retrytimes = %d ret = %d\n", + sysfs_loc, offset_addr, i ,len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == DFD_I2C_RETRY_TIME) { + printf("read file[%s] fail, offset = 0x%x, ret = %d\n", sysfs_loc, offset_addr, len); + goto fail; + } + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + write_len = write(fd, wr_buf, len); + if (write_len != len) { + DFD_DEBUG_ERROR("write file[%s] fail,offset = 0x%x retrytimes = %d len = %d,write_len =%d\n", sysfs_loc, offset_addr, i ,len, write_len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + break; + } + + if(i == DFD_I2C_RETRY_TIME) { + printf("write file[%s] fail, offset = 0x%x, len = %d,write_len =%d\n", sysfs_loc, offset_addr, len, write_len); + ret = -1; + goto fail; + } + offset_addr += len; + filesize -= len; + usleep(5000); + } + + printf("success\n"); + close(file_fd); + close(fd); + return DFD_RV_OK; + +fail: + close(file_fd); +open_dev_err: + close(fd); +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_sysfs_file_rd(int argc, char* argv[]) +{ + int ret = 0; + uint32_t offset_addr; + char *sysfs_loc; + char *stopstring; + int fd; + uint8_t rd_buf[DFD_UTEST_MAX_RDWR_NUM]; + int len, read_len;; + + if (argc != 5) { + printf("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_SYSFS_FILE_RD); + goto exit; + } + + sysfs_loc = argv[2]; + offset_addr = strtol(argv[3], &stopstring, 16); + len = strtol(argv[4], &stopstring, 10); + + if (len > DFD_UTEST_MAX_RDWR_NUM) { + printf("Input num %d exceed max 256.\n", len); + goto exit; + } + + fd = open(sysfs_loc, O_RDONLY); + if (fd < 0) { + printf("open file[%s] fail.\n", sysfs_loc); + goto exit; + } + dfd_utest_print_cmd(argc, argv); + + printf(":\n"); + + ret = lseek(fd, offset_addr, SEEK_SET); + if (ret < 0) { + printf("lseek failed ret %d.\n", ret); + goto fail; + } + + mem_clear(rd_buf, DFD_UTEST_MAX_RDWR_NUM); + read_len = read(fd, rd_buf, len); + if (read_len != len) { + printf("read failed read_len %d len %d.\n", read_len, len); + goto fail; + } + dfd_utest_printf_reg(rd_buf, read_len, offset_addr); + close(fd); + return DFD_RV_OK; + +fail: + close(fd); +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_msr_rd(int argc, char* argv[]) +{ + int fd; + char msr_file_name[64]; + uint64_t data; + uint64_t read_result; + char *stopstring; + uint8_t cpu_index, width; + uint64_t offset; + + if (argc != 5) { + printf("rdmsr failed: Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_MSR_RD); + goto exit; + } + + cpu_index = strtol(argv[2], &stopstring, 10); + offset = strtol(argv[3], &stopstring, 16); + width = strtol(argv[4], &stopstring, 10); + + if (width != 8 && width != 16 && width != 32 && width != 64) { + printf("rdmsr failed: width:%u Input invalid.only support 8 16 32 64\n", width); + goto exit; + } + + mem_clear(msr_file_name, sizeof(msr_file_name)); + sprintf(msr_file_name, "/dev/cpu/%u/msr", cpu_index); + + fd = open(msr_file_name, O_RDONLY); + if (fd < 0) { + if (errno == ENXIO) { + fprintf(stderr, "rdmsr failed: No CPU %u\n", cpu_index); + } else if (errno == EIO) { + fprintf(stderr, "rdmsr failed: CPU %u doesn't support MSRs\n", cpu_index); + } else if (errno == ENOENT) { + fprintf(stderr, "rdmsr failed: can't find %s file, Please check if modprobe msr driver already\n", msr_file_name); + } else { + printf("rdmsr failed: %s open failed. errno:%d\n", msr_file_name, errno); + } + goto exit; + } + + if (pread(fd, &data, sizeof(data), offset) != sizeof(data)) { + fprintf(stderr, "rdmsr failed: CPU:%u offset:0x%lx read failed\n", cpu_index, offset); + goto fail; + } + + switch (width) { + case 8: + read_result = (volatile uint8_t)data; + break; + case 16: + read_result = (volatile uint16_t)data; + break; + case 32: + read_result = (volatile uint32_t)data; + break; + case 64: + read_result = (volatile uint64_t)data; + break; + default: + printf("rdmsr failed: width:%u illegal width.\n", width); + goto fail; + } + + printf("0x%lx\n", read_result); + close(fd); + return DFD_RV_OK; + +fail: + close(fd); +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_utest_sysfs_data_wr(int argc, char* argv[]) +{ + uint32_t offset; + char *sysfs_loc; + char *stopstring; + uint8_t wr_buf[DFD_UTEST_MAX_RDWR_NUM]; + int ret, i; + int fd, len, write_len, index; + + if (argc < 5) { + DFD_DEBUG_ERROR("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_SYSFS_DATA_WR); + goto exit; + } + + dfd_utest_print_cmd(argc, argv); + printf(":\n"); + + sysfs_loc = argv[2]; + offset = strtol(argv[3], &stopstring, 16); + len = argc - 4; + mem_clear(wr_buf, sizeof(wr_buf)); + for (i = 0; i < len; i++) { + wr_buf[i] = strtol(argv[4 + i], &stopstring, 16); + DFD_DEBUG_DBG("index :%d value %x\n", i , wr_buf[i]); + } + + fd = open(sysfs_loc, O_RDWR | O_SYNC); + if (fd < 0) { + printf("open file[%s] fail.\n", sysfs_loc); + goto exit; + } + + ret = lseek(fd, offset, SEEK_SET); + if (ret < 0) { + printf("lseek file[%s offset=%d] fail,\n", sysfs_loc, offset); + goto fail; + } + index = 0; + while (len > 0) { + for (i = 0; i < DFD_I2C_RETRY_TIME; i++) { + write_len = write(fd, &wr_buf[index], len); + if (write_len < 0) { + DFD_DEBUG_ERROR("write file[%s] fail, retrytimes: %d, offset: 0x%x, len: %d, write_len: %d\n", + sysfs_loc, offset, i, len, write_len); + usleep(DFD_I2C_RETRY_SLEEP_TIME); + continue; + } + if (write_len == 0) { + DFD_DEBUG_ERROR("write file[%s] EOF, offset: 0x%x, len: %d, write_len: %d\n", + sysfs_loc, offset, len, write_len); + goto fail; + } + break; + } + if(i == DFD_I2C_RETRY_TIME) { + printf("write file[%s] fail, offset: 0x%x, len: %d, write_len: %d\n", + sysfs_loc, offset, len, write_len); + goto fail; + } + offset += write_len; + index += write_len; + len -= write_len; + usleep(5000); + } + printf("success\n"); + close(fd); + return DFD_RV_OK; +fail: + close(fd); +exit: + return DFD_RV_MODE_NOTSUPPORT; +} + +static void phy_help(char *name) +{ + fprintf(stderr, + "Usage: %s phy_index(dec) regnum(hex) [regval(hex)] \n" + " phy_index phydev index \n" + " regnum phydev register address \n" + " regval phydev register value \n", + name); + return; +} + +static void mdio_help(char *name) +{ + fprintf(stderr, + "Usage: %s mdio_index(dec) phyaddr(hex) regnum(hex) [regval(hex)] \n" + " mdio_index mdiodev index \n" + " phyaddr phydev address \n" + " regnum phydev register address \n" + " regval phydev register value \n", + name); + return; +} + +static int phydev_arg_parse(int argc, char* argv[], int *phy_index, uint32_t *regnum, uint32_t *regval, + int num_arg) +{ + + unsigned long index, regaddr, value; + char *end; + + if (argc != num_arg) { + return -EINVAL; + } + + index = strtoul(argv[2], &end, 0); + if (*end) { + fprintf(stderr, "Error: index invalid!\n"); + return -EINVAL; + } + + regaddr = strtoul(argv[3], &end, 0); + if (*end || regaddr > 0xffff) { + fprintf(stderr, "Error: regaddr invalid!\n"); + return -EINVAL; + } + + if (argc > 4) { + value = strtoul(argv[4], &end, 0); + if (*end || value > 0xffff) { + fprintf(stderr, "Error: reg data invalid!\n"); + return -EINVAL; + } + + *regval = (uint32_t)value; + } + + *phy_index = (uint32_t)index; + *regnum = (uint32_t)regaddr; + + return 0; +} + +static int mdiodev_arg_parse(int argc, char* argv[], int *mdio_index, int *phyaddr, uint32_t *regnum, + uint32_t *regval, int num_arg) +{ + + unsigned long index, addr, regaddr, value; + char *end; + + if (argc != num_arg) { + return -EINVAL; + } + + index = strtoul(argv[2], &end, 0); + if (*end) { + fprintf(stderr, "Error: index invalid!\n"); + return -EINVAL; + } + + addr = strtoul(argv[3], &end, 0); + if (*end || addr > 0x1f) { + fprintf(stderr, "Error: phyaddr invalid!\n"); + return -EINVAL; + } + + regaddr = strtoul(argv[4], &end, 0); + if (*end || regaddr > 0xffff) { + fprintf(stderr, "Error: regaddr invalid!\n"); + return -EINVAL; + } + + if (argc > 5) { + value = strtoul(argv[5], &end, 0); + if (*end || value > 0xffff) { + fprintf(stderr, "Error: reg data invalid!\n"); + return -EINVAL; + } + + *regval = (uint32_t)value; + } + + *mdio_index = (uint32_t)index; + *phyaddr = (int)addr; + *regnum = (uint32_t)regaddr; + + return 0; +} + +int dfd_utest_phydev_list(int argc, char* argv[]) +{ + int fd; + + if (argc != 2) { + printf("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_PHYDEV_LIST); + return DFD_RV_MODE_NOTSUPPORT; + } + + argv = argv; + fd = open("/dev/dram_test", O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); + if (fd < 0) { + fprintf(stderr, "Error: Could not open file " + "/dev/dram: %s\n", strerror(errno)); + return -1; + } + + (void)ioctl(fd, CMD_PHY_LIST, NULL); + + close(fd); + + return 0; +} + +int dfd_utest_phydev_rd(int argc, char* argv[]) +{ + struct phydev_user_info phy_info; + int fd; + long int ret; + + ret = phydev_arg_parse(argc, argv, &phy_info.phy_index, &phy_info.regnum, &phy_info.regval, 4); + if (ret < 0) { + phy_help("phydev_rd"); + return -1; + } + + fd = open("/dev/dram_test", O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); + if (fd < 0) { + fprintf(stderr, "Error: Could not open file " + "/dev/dram: %s\n", strerror(errno)); + return -1; + } + + ret = ioctl(fd, CMD_PHY_READ, &phy_info); + if (ret < 0) { + fprintf(stderr, "Error: phy read error : %s\n", strerror(errno)); + close(fd); + return -1; + } + + close(fd); + + printf("Read success --- phydev%d regnum: 0x%x, value: 0x%x\n",phy_info.phy_index, + phy_info.regnum, phy_info.regval); + + return 0; +} + +int dfd_utest_phydev_wr(int argc, char* argv[]) +{ + struct phydev_user_info phy_info; + int fd; + long int ret; + + ret = phydev_arg_parse(argc, argv, &phy_info.phy_index, &phy_info.regnum, &phy_info.regval, 5); + if (ret < 0) { + phy_help("phydev_wr"); + return -1; + } + + fd = open("/dev/dram_test", O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); + if (fd < 0) { + fprintf(stderr, "Error: Could not open file " + "/dev/dram: %s\n", strerror(errno)); + return -1; + } + + ret = ioctl(fd, CMD_PHY_WRITE, &phy_info); + if (ret < 0) { + fprintf(stderr, "Error: phy write error : %s\n", strerror(errno)); + close(fd); + return -1; + } + + close(fd); + + printf("write success --- phydev%d regnum: 0x%x, value: 0x%x\n",phy_info.phy_index, + phy_info.regnum, phy_info.regval); + + return 0; +} + +int dfd_utest_mdiodev_list(int argc, char* argv[]) +{ + int fd; + + if (argc != 2) { + printf("Input invalid.\n"); + dfd_utest_printf_single_help(DFD_UTEST_ITEM_MDIODEV_LIST); + return DFD_RV_MODE_NOTSUPPORT; + } + + argv = argv; + fd = open("/dev/dram_test", O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); + if (fd < 0) { + fprintf(stderr, "Error: Could not open file " + "/dev/dram: %s\n", strerror(errno)); + return -1; + } + + (void)ioctl(fd, CMD_MDIO_LIST, NULL); + + close(fd); + + return 0; +} + +int dfd_utest_mdiodev_rd(int argc, char* argv[]) +{ + struct mdio_dev_user_info mdio_info; + int fd; + long int ret; + + ret = mdiodev_arg_parse(argc, argv, &mdio_info.mdio_index, &mdio_info.phyaddr, + &mdio_info.regnum, &mdio_info.regval, 5); + if (ret < 0) { + mdio_help("mdiodev_rd"); + return -1; + } + + fd = open("/dev/dram_test", O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); + if (fd < 0) { + fprintf(stderr, "Error: Could not open file " + "/dev/dram: %s\n", strerror(errno)); + return -1; + } + + ret = ioctl(fd, CMD_MDIO_READ, &mdio_info); + if (ret < 0) { + fprintf(stderr, "Error: mdio read error : %s\n", strerror(errno)); + close(fd); + return -1; + } + + close(fd); + + printf("Read success\n mdio_index phyaddr regnum value\n"); + printf(" %-10d %#-10x %#-10x %#-10x\n", mdio_info.mdio_index, mdio_info.phyaddr, + mdio_info.regnum, mdio_info.regval); + + return 0; +} + +int dfd_utest_mdiodev_wr(int argc, char* argv[]) +{ + struct mdio_dev_user_info mdio_info; + int fd; + long int ret; + + ret = mdiodev_arg_parse(argc, argv, &mdio_info.mdio_index, &mdio_info.phyaddr, + &mdio_info.regnum, &mdio_info.regval, 6); + if (ret < 0) { + mdio_help("mdiodev_wr"); + return -1; + } + + fd = open("/dev/dram_test", O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO); + if (fd < 0) { + fprintf(stderr, "Error: Could not open file " + "/dev/dram: %s\n", strerror(errno)); + return -1; + } + + ret = ioctl(fd, CMD_MDIO_WRITE, &mdio_info); + if (ret < 0) { + fprintf(stderr, "Error: mdio write error : %s\n", strerror(errno)); + close(fd); + return -1; + } + + close(fd); + + printf("write success\n mdio_index phyaddr regnum value\n"); + printf(" %-10d %#-10x %#-10x %#-10x\n", mdio_info.mdio_index, mdio_info.phyaddr, + mdio_info.regnum, mdio_info.regval); + + return 0; +} + +dfd_utest_proc_fun dfd_utest_get_proc_func(char *type_str) +{ + int i, tbl_size; + + tbl_size = sizeof(g_dfd_unit_test) / sizeof(g_dfd_unit_test[0]); + + for (i = 0; i < tbl_size; i++) { + if (!strncmp(g_dfd_unit_test[i].type_str, type_str, strlen(g_dfd_unit_test[i].type_str))) { + return g_dfd_unit_test[i].utest_func; + } + } + DFD_DEBUG_DBG("type: %s not match.\n", type_str); + return NULL; +} + +void dfd_utest_cmd_main(int argc, char* argv[]) +{ + dfd_utest_proc_fun pfunc; + int ret; + + if (argc < 2) { + dfd_utest_print_all_help(); + return; + } + + pfunc = dfd_utest_get_proc_func(argv[1]); + if (pfunc == NULL) { + DFD_DEBUG_DBG("utest type %s in not support.\n", argv[1]); + dfd_utest_print_all_help(); + return; + } + ret = pfunc(argc, argv); + if ((ret != DFD_RV_MODE_NOTSUPPORT) && (ret != DFD_RV_INDEX_INVALID)) { + if (ret == DFD_RV_OK) { + DFD_DEBUG_DBG(" [SUCCESS]\n"); + } else { + DFD_DEBUG_DBG(" [FAIL(%d)]\n", ret); + } + } + + return; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.h b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.h new file mode 100644 index 000000000000..1ae65148ea9c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/dev_util/dfd_utest.h @@ -0,0 +1,109 @@ +/* monitor_utest.h */ +#ifndef __DFD_UTEST_H__ +#define __DFD_UTEST_H__ + +#include + +extern int g_dfd_debug_sw; +extern int g_dfd_debugpp_sw; + +#define DFD_UTEST_TRUE_FALSE_STRING(flag) ((flag == true) ? "true" : "false") + +#define DFD_DEBUG_DBG(fmt, args...) do { \ + if (g_dfd_debug_sw) { \ + printf("" fmt,\ + ##args); \ + } \ +} while (0) + +#define DFD_DEBUG_ERROR(fmt, args...) do { \ + if (g_dfd_debugpp_sw) { \ + printf("" fmt,\ + ##args); \ + } \ +} while (0) + +#define mem_clear(data, size) memset((data), 0, (size)) + +typedef enum dfd_rv_s { + DFD_RV_OK = 0, + DFD_RV_INIT_ERR = 1, + DFD_RV_SLOT_INVALID = 2, + DFD_RV_MODE_INVALID = 3, + DFD_RV_MODE_NOTSUPPORT = 4, + DFD_RV_TYPE_ERR = 5, + DFD_RV_DEV_NOTSUPPORT = 6, + DFD_RV_DEV_FAIL = 7, + DFD_RV_INDEX_INVALID = 8, + DFD_RV_NO_INTF = 9, + DFD_RV_NO_NODE = 10, + DFD_RV_NODE_FAIL = 11, +} dfd_rv_t; + +#define DFD_DEBUG_BUF_LEN (32) +#define DFD_DEBUGP_DEBUG_FILE "/sbin/.dfd_debugp_flag" +#define DFD_DEBUGPP_DEBUG_FILE "/sbin/.dfd_debugpp_flag" + +#define DFD_UTEST_MAX_PARA_NUM (4) +#define DFD_UTEST_TYPE_STRING_LEN (64) +#define DFD_UTEST_MATCH_STRING_LEN (64) +#define DFD_UTEST_HELP_STRING_LEN (256) +#define DFD_UTEST_INVALID_PARA (-1) +#define DFD_UTEST_BUFF_LEN (64) + +typedef enum dfd_fpga_cpld_flag_e { + DFD_CPLD_RW_FLAG = 0x00, + DFD_FPGA_RW_FLAG = 0x01, +} dfd_fpga_cpld_flag_t; + +typedef int (* dfd_utest_proc_fun)(int argc, char* argv[]); + +#define DFD_UTEST_ITEM_ALL \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_I2C_RD, i2c_rd, "i2c_rd [i2c_bus] [slave_addr] [offset] [len]", "i2c_rd [i2c_bus] [slave_addr] [offset] [len]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_I2C_WR, i2c_wr, "i2c_wr [i2c_bus] [slave_addr] [offset] [data0] ... [dataN]", "i2c_wr [i2c_bus] [slave_addr] [offset] [data0] ... [dataN]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_IO_RD, io_rd, "io_rd [offset] [len]", "io_rd [offset] [len]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_IO_WR, io_wr, "io_wr [offset] [data0]... [dataN]", "io_wr [offset] [data0]... [dataN]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_PHYMEM_RD, phymem_rd, "phymem_rd [bit_width] [offset] [len]", "phymem_rd [bit_width] [offset] [len]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_PHYMEM_WR, phymem_wr, "phymem_wr [bit_width] [offset] [data0]... [dataN]", "phymem_wr [bit_width] [offset] [data0]... [dataN]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_KMEM_RD, kmem_rd, "kmem_rd [bit_width] [offset] [len]", "kmem_rd [bit_width] [offset] [len]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_KMEM_WR, kmem_wr, "kmem_wr [bit_width][offset] [data0]... [dataN]", "kmem_wr [bit_width] [offset] [data0]... [dataN]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_I2C_FILE_WR, i2c_file_wr, "i2c_file_wr [i2c_bus] [slave_addr] [offset] [bpt] [filename]", "i2c_file_wr [i2c_bus] [slave_addr] [offset] [bpt] [filename]\nbpt:bytes per times") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_SYSFS_FILE_WR, sysfs_file_wr, "sysfs_file_wr [sysfs_loc] [offset] [filename] [per_wr_byte]", "sysfs_file_wr [sysfs_loc] [offset] [filename] [per_wr_byte]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_SYSFS_FILE_RD, sysfs_file_rd, "sysfs_file_rd [sysfs_loc] [offset] [len]", "sysfs_file_rd [sysfs_loc] [offset] [len]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_SYSFS_FILE_UPG, sysfs_file_upg, "sysfs_file_upg [sysfs_loc] [offset] [filename] [per_wr_byte]", "sysfs_file_upg [sysfs_loc] [offset] [filename] [per_wr_byte]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_I2C_GEN_RD, i2c_gen_rd, "i2c_gen_rd [i2c_bus] [slave_addr] [addr_bitwidth] [offset] [data_bitwidth] [len]", "i2c_gen_rd [i2c_bus] [slave_addr] [addr_bitwidth] [offset] [data_bitwidth] [len]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_I2C_GEN_WR, i2c_gen_wr, "i2c_gen_wr [i2c_bus] [slave_addr] [addr_bitwidth] [offset] [data_bitwidth] [data0]... [dataN]", "i2c_gen_wr [i2c_bus] [slave_addr] [addr_bitwidth] [offset] [data_bitwidth] [data0]... [dataN]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_MSR_RD, msr_rd, "msr_rd [cpu_index] [offset] [width]", "msr_rd [cpu_index] [offset] [width]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_SYSFS_DATA_WR, sysfs_data_wr, "sysfs_data_wr [sysfs_loc] [offset] [data0] ... [dataN]", "sysfs_data_wr [sysfs_loc] [offset] [data0] ... [dataN]]") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_PHYDEV_LIST, phydev_list, "phydev_list", "phydev_list") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_PHYDEV_RD, phydev_rd, "phydev_rd phy_index reg_addr", "phydev_rd phy_index reg_addr") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_PHYDEV_WR, phydev_wr, "phydev_wr phy_index reg_addr reg_data", "phydev_wr phy_index reg_addr reg_data") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_MDIODEV_LIST, mdiodev_list, "mdiodev_list", "mdiodev_list") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_MDIODEV_RD, mdiodev_rd, "mdiodev_rd mdio_index phyaddr reg_addr", "mdiodev_rd mdio_index phyaddr reg_addr") \ + DFD_UTEST_ITEM(DFD_UTEST_ITEM_MDIODEV_WR, mdiodev_wr, "mdiodev_wr mdio_index phyaddr reg_addr reg_data", "mdiodev_wr mdio_index phyaddr reg_addr reg_data") \ + +#ifdef DFD_UTEST_ITEM +#undef DFD_UTEST_ITEM +#endif +#define DFD_UTEST_ITEM(_id, _type_str, _help_info, _help_info_detail) _id, +typedef enum dfd_utest_item_id_s { + DFD_UTEST_ITEM_ALL +} dfd_utest_item_id_t; + +typedef struct { + int utest_type; + char type_str[DFD_UTEST_TYPE_STRING_LEN]; + dfd_utest_proc_fun utest_func; + char help_info[DFD_UTEST_HELP_STRING_LEN]; + char help_info_detail[DFD_UTEST_HELP_STRING_LEN]; +} dfd_utest_t; + +void dfd_utest_cmd_main(int argc, char* argv[]); + +#ifdef DFD_UTEST_ITEM +#undef DFD_UTEST_ITEM +#endif +#define DFD_UTEST_ITEM(_id, _type_str, _help_info, _help_info_detail) int dfd_utest_##_type_str(int argc, char* argv[]); +DFD_UTEST_ITEM_ALL + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile new file mode 100644 index 000000000000..62663efdbbd5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile @@ -0,0 +1,19 @@ +top_srcdir:=$(shell pwd) +include $(top_srcdir)/Rules.mk + +firmware-y:= +firmware-y += firmware_driver +firmware-y += firmware_upgrade + +.PHONY: all +all: build + +.PHONY: build +build: $(firmware-y) +$(foreach dir,$(firmware-y),$(eval $(call compile_dirs,$(dir)))) + +.PHONY: rpmpkg +rpmpkg: +ifeq ("$(CONFIG_CPLD_UPGRADE_ISPVME)", "y") + #$(RPMPKG) $(install_cpld_dir) firmware-cpld-ispvme.spec git +endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk new file mode 100644 index 000000000000..5fb5a09d34fd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk @@ -0,0 +1,42 @@ +CC ?= $(CROSS)gcc +AR ?= $(CROSS)ar +AS ?= $(CROSS)as +LD ?= $(CROSS)ld +STRIP ?= $(CROSS)strip + +install_root:=${top_srcdir}/images + +install_header_dir:=${install_root}/header +install_adir:=$(install_root)/lib +install_symbol_dir:=$(install_root)/symbol +symbol_files:=$(shell find $(EXPORT_SYMBOL) -name 'Module.symvers') +# +# symbol_files += $(shell find $(install_symbol_dir) -name 'Module.symvers') +# KBUILD_EXTRA_SYMBOLS += $(symbol_files) +# export KBUILD_EXTRA_SYMBOLS + +# top root: install_rootfs_dir +install_rootfs_dir:=$(install_root)/rootfs + +install_sodir:=$(install_rootfs_dir)/$(INSTALL_SODIR) + +install_usr_bin_dir:=$(install_rootfs_dir)/usr/bin +install_sbin_dir:=$(install_rootfs_dir)/sbin +install_etc_dir:=$(install_rootfs_dir)/etc + +export INSTALL_MOD_PATH:=$(ROOT) + +BUILD_CFLAGS:=$(CFLAGS) -I$(install_header_dir) +BUILD_LDFLAGS:=$(LDFLAGS) -L/$(install_sodir) -L/$(install_adir) + +define compile_dirs +.PHONY: $(1) +$(1): + @echo;echo "building $(1)..." + @$(MAKE) -C ${1} +endef + +compile.c = $(CC) $(BUILD_CFLAGS) -d -c -o $@ $< +%.o: %.c + $(compile.c) + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile new file mode 100644 index 000000000000..e8879aeff5e7 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile @@ -0,0 +1,19 @@ +include $(top_srcdir)/Rules.mk + +firmware-y:= +firmware-y += firmware_driver_ispvme +firmware-y += firmware_driver_cpld +firmware-y += firmware_driver_sysfs + +.PHONY: all +all: build + +.PHONY: build +build: $(firmware-y) +$(foreach dir,$(firmware-y),$(eval $(call compile_dirs,$(dir)))) + +.PHONY: rpmpkg +rpmpkg: +ifeq ("$(CONFIG_CPLD_UPGRADE_ISPVME)", "y") + #$(RPMPKG) $(install_cpld_dir) firmware-cpld-ispvme.spec git +endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile new file mode 100644 index 000000000000..0add28cb9056 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile @@ -0,0 +1,23 @@ +#include $(top_srcdir)/debian/rules +#KERNELDIR := ${KBUILD_OUTPUT} + +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) +FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../include) +EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) +EXTRA_CFLAGS+= -Wall + +firmware_driver_cpld-objs := firmware.o +firmware_driver_cpld-objs += firmware_cpld.o firmware_cpld_upgrade.o +firmware_driver_cpld-objs += jbicomp.o jbijtag.o jbimain.o jbistub.o + +#ifndef CONFIG_FRM_PRODUCT_FILE + +$(warning $(firmware_driver_cpld-objs)) +obj-m := firmware_driver_cpld.o +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(common_module_dir) ]; then mkdir -p $(common_module_dir) ;fi + cp -p $(PWD)/*.ko $(common_module_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c new file mode 100644 index 000000000000..db72b369465a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c @@ -0,0 +1,144 @@ +#include +#include +#include + +int g_firmware_driver_debug = 0; +module_param(g_firmware_driver_debug, int, S_IRUGO | S_IWUSR); + +static LIST_HEAD(drv_list); +static LIST_HEAD(dev_list); + +/** + * firmware_driver_register + * function:Registered Device Driver + * @fw_drv:param[in] Driver information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_driver_register(firmware_driver_t *fw_drv) +{ + int ret; + + if (fw_drv == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); + return FIRMWARE_FAILED; + } + + ret = platform_driver_register(fw_drv->drv); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: failed to register firmware upgrade driver \n"); + return FIRMWARE_FAILED; + } + + /* Adds driver information to the driver list */ + list_add(&fw_drv->list, &drv_list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware upgrade driver register sucess \n"); + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_driver_unregister + * function:unregister Device Driver + * @fw_drv:param[in] Driver information + */ +void firmware_driver_unregister(firmware_driver_t *fw_drv) +{ + list_del_init(&fw_drv->list); + platform_driver_unregister(fw_drv->drv); +} + +/* + * firmware_get_device_by_minor + * function: Get device information based on minor + */ +firmware_device_t *firmware_get_device_by_minor(int minor) +{ + firmware_device_t *tmp; + + list_for_each_entry(tmp, &dev_list, list) { + if (tmp->dev.minor == minor) { + return tmp; + } + } + + return NULL; +} + +/** + * firmware_device_register + * function:Registered Driver Device + * @fw_dev: param[in] Driver information + * return value:success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_device_register(firmware_device_t *fw_dev) +{ + int ret; + firmware_device_t *tmp; + + if (fw_dev == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); + return FIRMWARE_FAILED; + } + /* Check whether the device file name already exists in the device linked list */ + list_for_each_entry(tmp, &dev_list, list) { + if (strcmp(tmp->name, fw_dev->name) == 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("devie %s already exists.\n", fw_dev->name); + return FIRMWARE_FAILED; + } + } + + /* Registere device */ + ret = misc_register(&fw_dev->dev); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("register misc error, ret=%d.\n", ret); + return FIRMWARE_FAILED; + } + + /* Adds a device to the device list */ + list_add(&fw_dev->list, &dev_list); + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_device_unregister + * function: unregister Driver Device + */ +void firmware_device_unregister(firmware_device_t *fw_dev) +{ + list_del(&fw_dev->list); + misc_deregister(&fw_dev->dev); +} + +static int __init firmware_driver_init(void) +{ + int ret; + + INIT_LIST_HEAD(&drv_list); + INIT_LIST_HEAD(&dev_list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver init.\n"); + ret = firmware_cpld_init(); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware driver init failed.\n"); + return FIRMWARE_FAILED; + } + + return FIRMWARE_SUCCESS; +} + +static void __exit firmware_driver_exit(void) +{ + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver exit.\n"); + firmware_cpld_exit(); + INIT_LIST_HEAD(&drv_list); + INIT_LIST_HEAD(&dev_list); + return; +} + +module_init(firmware_driver_init); +module_exit(firmware_driver_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Firmware upgrade driver"); +MODULE_LICENSE("GPL"); +MODULE_VERSION("1.0"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c new file mode 100644 index 000000000000..18ec509d0f2e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c @@ -0,0 +1,384 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int firmware_cpld_open(struct inode *inode, struct file *file) +{ + firmware_device_t *frm_dev; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Open cpld device.\n"); + frm_dev = firmware_get_device_by_minor(MINOR(inode->i_rdev)); + if (frm_dev == NULL) { + return -ENXIO; + } + file->private_data = frm_dev; + + return FIRMWARE_SUCCESS; +} + +static ssize_t firmware_cpld_read (struct file *file, char __user *buf, size_t count, + loff_t *offset) +{ + return 0; +} + +static ssize_t firmware_cpld_write (struct file *file, const char __user *buf, size_t count, + loff_t *offset) +{ + return 0; +} + +static loff_t firmware_cpld_llseek(struct file *file, loff_t offset, int origin) +{ + return 0; +} + +/* + * firmware_cpld_ioctl + * function: ioctl command parsing function + * @file: param[in] device file name + * @cmd: param[in] command + * @arg: param[in] the parameters in the command + * return value: success-FIRMWARE_SUCCESS; fail:other value + */ +static long firmware_cpld_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + int ret; + char *buf; + void __user *argp; + char version[FIRMWARE_NAME_LEN]; + char chip_name[FIRMWARE_NAME_LEN]; + cmd_info_t cmd_info; + firmware_device_t *frm_dev; + firmware_cpld_t *cpld_info; + + /* Get device private data */ + mem_clear(&cmd_info, sizeof(cmd_info_t)); + frm_dev = (firmware_device_t *)file->private_data; + cpld_info = NULL; + if (frm_dev != NULL) { + if (frm_dev->priv != NULL) { + cpld_info = (firmware_cpld_t *)frm_dev->priv; + } + } + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to frm_dev->priv sysfs info.\n"); + return FIRMWARE_FAILED; + } + argp = (void __user *)arg; + + switch (cmd) { + case FIRMWARE_GET_CHIPNAME: + /* get chip name */ + if (copy_from_user(&cmd_info, argp, sizeof(cmd_info_t))) { + return -EFAULT; + } + mem_clear(chip_name, FIRMWARE_NAME_LEN); + ret = fmw_cpld_upg_get_chip_name(frm_dev->chain, cpld_info, chip_name, FIRMWARE_NAME_LEN); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get chip name.\n"); + return -ENXIO; + } + if (copy_to_user(cmd_info.data, chip_name, cmd_info.size)) { + return -EFAULT; + } + break; + case FIRMWARE_PROGRAM: + case FIRMWARE_PROGRAM_JBI: + /* firmware upgrade */ + if (copy_from_user(&cmd_info, argp, sizeof(cmd_info_t))) { + return -EFAULT; + } + buf = (char *) kzalloc(cmd_info.size + 1, GFP_KERNEL); + if (buf == NULL) { + return -ENOMEM; + } + if (copy_from_user(buf, cmd_info.data, cmd_info.size)) { + kfree(buf); + return -EFAULT; + } + buf[cmd_info.size] = 0; + if (cmd == FIRMWARE_PROGRAM_JBI) { + /* JBI firmware upgrade */ + ret = fmw_cpld_upg_program_jbi(frm_dev->chain, cpld_info, buf, cmd_info.size); + } else { + /* ISC firmware upgrade */ + ret = fmw_cpld_upg_program(frm_dev->chain, cpld_info, buf, cmd_info.size); + } + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program cpld.\n"); + kfree(buf); + return -ESRCH; + } + kfree(buf); + break; + case FIRMWARE_GET_VERSION: + /* get version */ + if (copy_from_user(&cmd_info, argp, sizeof(cmd_info_t))) { + return -EFAULT; + } + mem_clear(version, FIRMWARE_NAME_LEN); + ret = fmw_cpld_upg_get_version(frm_dev->chain, cpld_info, version, FIRMWARE_NAME_LEN); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get version.\n"); + return -ENXIO; + } + if (copy_to_user(cmd_info.data, version, cmd_info.size)) { + return -EFAULT; + } + break; + default: + FIRMWARE_DRIVER_DEBUG_ERROR("not find cmd: %d\r\n", cmd); + return -ENOTTY; + } /* End of switch */ + + return FIRMWARE_SUCCESS; +} + +static int firmware_cpld_release(struct inode *inode, struct file *file) +{ + return 0; +} + +static const struct file_operations cpld_dev_fops = { + .owner = THIS_MODULE, + .llseek = firmware_cpld_llseek, + .read = firmware_cpld_read, + .write = firmware_cpld_write, + .unlocked_ioctl = firmware_cpld_ioctl, + .open = firmware_cpld_open, + .release = firmware_cpld_release, +}; + +static int of_firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) +{ + int ret; + char *name; + int i; + char buf[64]; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); + return -1; + } + + mem_clear(cpld_info, sizeof(firmware_cpld_t)); + ret = 0; + ret += of_property_read_string(dev->of_node, "type", (const char **)&name); + ret += of_property_read_u32(dev->of_node, "tdi", &cpld_info->tdi); + ret += of_property_read_u32(dev->of_node, "tck", &cpld_info->tck); + ret += of_property_read_u32(dev->of_node, "tms", &cpld_info->tms); + ret += of_property_read_u32(dev->of_node, "tdo", &cpld_info->tdo); + + ret += of_property_read_u32(dev->of_node, "chain", &cpld_info->chain); + ret += of_property_read_u32(dev->of_node, "chip_index", &cpld_info->chip_index); + + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config error, ret:%d.\n", ret); + return -ENXIO; + } + + strncpy(cpld_info->type, name, sizeof(cpld_info->type) - 1); + + ret = of_property_read_u32(dev->of_node, "tck_delay", &cpld_info->tck_delay); + if(ret != 0) { + cpld_info->tck_delay = 60; + } + + cpld_info->gpio_en_info_num = 0; + /* Enable through GPIO */ + for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_gpio_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_gpio); + if(ret != 0) { + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_level_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_level); + if(ret != 0) { + break; + } + cpld_info->gpio_en_info_num++; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, en_info_num:%u\n", + cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num); + FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", + cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); + + return 0; +} + +static int firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) +{ + int i; + + firmware_upgrade_device_t *firmware_upgrade_device; + firmware_jtag_device_t jtag_upg_device; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); + return -1; + } + + if (dev->platform_data == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("platform data config error.\n"); + return -1; + } + firmware_upgrade_device = dev->platform_data; + jtag_upg_device = firmware_upgrade_device->upg_type.jtag; + + mem_clear(cpld_info, sizeof(firmware_cpld_t)); + + strncpy(cpld_info->type, firmware_upgrade_device->type, sizeof(cpld_info->type) - 1); + cpld_info->tdi = jtag_upg_device.tdi; + cpld_info->tck = jtag_upg_device.tck; + cpld_info->tms = jtag_upg_device.tms; + cpld_info->tdo = jtag_upg_device.tdo; + cpld_info->chain = firmware_upgrade_device->chain; + cpld_info->chip_index = firmware_upgrade_device->chip_index; + + if (jtag_upg_device.tck_delay == 0) { + cpld_info->tck_delay = 60; + FIRMWARE_DRIVER_DEBUG_VERBOSE("no config tck_delay, use default value:%u\n", cpld_info->tck_delay); + } else { + cpld_info->tck_delay = jtag_upg_device.tck_delay; + } + + if (firmware_upgrade_device->en_gpio_num > FIRMWARE_EN_INFO_MAX) { + FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_gpio_num:%u configurations exceeds the maximum limit:%u.\n", + firmware_upgrade_device->en_gpio_num, FIRMWARE_EN_INFO_MAX); + return -ENXIO; + } + cpld_info->gpio_en_info_num = firmware_upgrade_device->en_gpio_num; + /* Enable through GPIO */ + for (i = 0; i < cpld_info->gpio_en_info_num; i++) { + cpld_info->gpio_en_info[i].en_gpio = firmware_upgrade_device->en_gpio[i]; + cpld_info->gpio_en_info[i].en_level = firmware_upgrade_device->en_level[i]; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, en_info_num:%u\n", + cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num); + FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", + cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); + + return 0; +} + +static int firmware_cpld_probe(struct platform_device *pdev) +{ + int ret; + firmware_cpld_t *cpld_info; + firmware_device_t *frm_dev; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_cpld_probe\r\n"); + /* Gets the information in the device tree */ + cpld_info = devm_kzalloc(&pdev->dev, sizeof(firmware_cpld_t), GFP_KERNEL); + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc cpld device tree.\n"); + return -EPERM; + } + + if (pdev->dev.of_node) { + ret = of_firmware_upgrade_config_init(&pdev->dev, cpld_info); + } else { + ret = firmware_upgrade_config_init(&pdev->dev, cpld_info); + } + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("get config init from dts error.\n"); + return -EPERM; + } + + frm_dev = devm_kzalloc(&pdev->dev, sizeof(firmware_device_t), GFP_KERNEL); + if (frm_dev == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc firmware device.\n"); + return -EPERM; + } + + /* Based on the link number, determine the name of the device file */ + frm_dev->chain = cpld_info->chain; + snprintf(frm_dev->name, FIRMWARE_NAME_LEN - 1, "firmware_cpld%d", frm_dev->chain); + strncpy(cpld_info->devname, frm_dev->name, strlen(frm_dev->name) + 1); + + INIT_LIST_HEAD(&frm_dev->list); + frm_dev->dev.minor = MISC_DYNAMIC_MINOR; + frm_dev->dev.name = frm_dev->name; + frm_dev->dev.fops = &cpld_dev_fops; + frm_dev->priv = cpld_info; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Register cpld firmware chain:%d, name:%s.\n", frm_dev->chain, frm_dev->name); + + ret = firmware_device_register(frm_dev); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to register firmware device.\n"); + return -EPERM; + } + + platform_set_drvdata(pdev, frm_dev); + return 0; +} + +static int __exit firmware_cpld_remove(struct platform_device *pdev) +{ + firmware_device_t *frm_dev; + + frm_dev = (firmware_device_t *)platform_get_drvdata(pdev); + firmware_device_unregister(frm_dev); + platform_set_drvdata(pdev, NULL); + + return 0; +} + +static struct of_device_id cpld_match[] = { + { + .compatible = "firmware_cpld", + }, + {}, +}; + +static struct platform_driver cpld_driver = { + .driver = { + .name = "firmware_cpld", + .owner = THIS_MODULE, + .of_match_table = cpld_match, + }, + .probe = firmware_cpld_probe, + .remove = firmware_cpld_remove, +}; + +static firmware_driver_t fmw_drv_cpld = { + .name = "firmware_cpld", + .drv = &cpld_driver, +}; + +int firmware_cpld_init(void) +{ + int ret; + + INIT_LIST_HEAD(&fmw_drv_cpld.list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("cpld upgrade driver register \n"); + ret = firmware_driver_register(&fmw_drv_cpld); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("cpld upgrade driver register failed.\n"); + return ret; + } + return 0; +} + +void firmware_cpld_exit(void) +{ + firmware_driver_unregister(&fmw_drv_cpld); + INIT_LIST_HEAD(&fmw_drv_cpld.list); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c new file mode 100644 index 000000000000..8252c2a39bb2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c @@ -0,0 +1,1879 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* CPLD file parses the relevant parameters */ +#define CPLD_HEX 16 +#define DEC_VAL 10 +#define CPLD_INIT_CNT 4 +#define CPLD_UNIT_SZ 4 +#define CPLD_HEAD_KEYWORD "Header" +#define CPLD_NAME_KEYWORD "Entity" +#define CPLD_INIT_KEYWORD "INITIALIZE" +#define CPLD_REPEAT_KEYWORD "REPEAT" +#define CPLD_END_CHAR ',' + +/* TCK clock MAX 16MHz */ +#define TCK_DELAY (current_fmw_cpld->tck_delay) + +/* + * The instruction format of the MAX II CPLD is 10 bits + * For shift_ir state machine use + */ +#define BYPASS 0x3FF +#define EXTEST 0xF +#define SAMPLE 0x5 +#define IDCODE 0x6 +#define USERCODE 0x7 +#define CLAMP 0xA +#define HIGHZ 0xB + +/* Following 7 instructions are IEEE 1532 instructions */ +#define ISC_ENABLE 0x2CC +#define ISC_DISABLE 0x201 +#define ISC_PROGRAM 0x2F4 +#define ISC_ERASE 0x2F2 +#define ISC_ADDRESS_SHIFT 0x203 +#define ISC_READ 0x205 +#define ISC_NOOP 0x210 + +/* + * MAX II devices support the real-time in-system programmability (ISP) + * feature that allows you to program the device while it is still in operation. + * when there is either a power cycle to the device (powering down and powering + * up again) or with the execution of certain ISP instructions to start the SRAM + * download process when realtime ISP has completed. + */ +#define RT_ISC_ENABLE 0x199 +#define RT_ISC_DISABLE 0x166 + +/* Chip ID */ +#define EPM240_G 0x020A10DD +#define EPM570_G 0x020A20DD +#define EPM1270_G 0x020A30DD +#define EPM2210_G 0x020A40DD +#define EPM240_Z 0x020A50DD +#define EPM570_Z 0x020A60DD + +/* The size of the output data for ID validation */ +#define VERIFY_IDCODE_SIZE 0x5 + +/* Erasure and programmatic delay handling */ +#define ERASE_DELAY 0x1024 +#define PROGRAM_DELAY 0x5 + +/* Chip instruction register */ +#define CPLD_INSTRUCTION_SIZE 10 + +/* + * Currently, only two connectors are supported + * The size of the instruction register needs to be changed + * when more than two connectors are used + */ +#ifndef CPLD_MAX_CHIP +#define CPLD_MAX_CHIP 2 +#endif + +typedef struct cpld_chip_id { + char *name; + uint id; + int addr_register_length; + int data_register_length; + int eeprom_array_length; + int first_blank_check_length; + int second_blank_check_length; + int first_erase_addr; + int second_erase_addr; + int third_erase_addr; + int verify_idcode_addr; +} cpld_chip_id_t; + +static cpld_chip_id_t cpld_id_table[] = { + {"EPM240T100", EPM240_G, 13, 16, 4604, 3327, 511, 0x0, 0x1, 0x11, 0x89}, + {"EPM570T144", EPM570_G, 14, 16, 8700, 3327, 511, 0x0, 0x1, 0x21, 0x111}, + {"EPM1270F256", EPM1270_G, 15, 16, 16892, 16383, 511, 0x0, 0x1, 0x41, 0x221}, + {"5M240Z", EPM240_Z, 13, 16, 4604, 3327, 511, 0x0, 0x1, 0x11, 0x89}, + {"5M570Z", EPM570_Z, 14, 16, 8700, 3327, 511, 0x0, 0x1, 0x21, 0x111}, + {NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, +}; + +static cpld_chip_id_t *chip_cpld_info = NULL; + +/* The following variables are used when cascading multiple chips */ +static int chip_num, current_chip_index; +static firmware_cpld_t *current_fmw_cpld; + +static int TDI_PULL_UP(void); +static int TDI_PULL_DOWN(void); +static int TMS_PULL_UP(void); +static int TMS_PULL_DOWN(void); +static int TCK_PULL_UP(void); +static int TCK_PULL_DOWN(void); + +/* + * set_currrent_cpld_info + * function: Save the current device information + * @info: param[in] Information about the device to be updated + */ +static void set_currrent_cpld_info(firmware_cpld_t *info) +{ + current_fmw_cpld = info; +} + +/* + * firmware_upgrade_en + * function: Upgrade access enabling switch + * @flag: !0:enable 0:disable + */ +static int firmware_upgrade_en(int flag) +{ + int i; + int ret; + + for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { + if (flag) { + ret = gpio_request(current_fmw_cpld->gpio_en_info[i].en_gpio, "cpld_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade EN[%d] GPIO[%d] failed!\n", + i, current_fmw_cpld->gpio_en_info[i].en_gpio); + goto free_gpio; + } + gpio_direction_output(current_fmw_cpld->gpio_en_info[i].en_gpio, current_fmw_cpld->gpio_en_info[i].en_level); + current_fmw_cpld->gpio_en_info[i].flag = 1; + } else { + gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); + gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); + current_fmw_cpld->gpio_en_info[i].flag = 0; + } + } + return 0; +free_gpio: + for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { + if (current_fmw_cpld->gpio_en_info[i].flag == 1) { + gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); + gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); + current_fmw_cpld->gpio_en_info[i].flag = 0; + } else { + break; + } + } + + return -1; +} + +/* + * init_cpld + * function:Initialize CPLD + * return value: 0 success ; -1 fail + */ +static int init_cpld(void) +{ + int ret; + + if (current_fmw_cpld == NULL) { + return -1; + } + mdelay(10); + ret = gpio_request(current_fmw_cpld->tdi, "cpld_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TDI GPIO failed!\n"); + return ret; + } + ret = gpio_request(current_fmw_cpld->tck, "cpld_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TCK GPIO failed!\n"); + goto free_tdi; + } + ret = gpio_request(current_fmw_cpld->tms, "cpld_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TMS GPIO failed!\n"); + goto free_tck; + } + ret = gpio_request(current_fmw_cpld->tdo, "cpld_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TDO GPIO failed!\n"); + goto free_tms; + } + + gpio_direction_output(current_fmw_cpld->tdi, 1); + gpio_direction_output(current_fmw_cpld->tck, 1); + gpio_direction_output(current_fmw_cpld->tms, 1); + + gpio_direction_input(current_fmw_cpld->tdo); + ret = firmware_upgrade_en(1); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: open firmware upgrade en failed, ret %d.\n", ret); + goto free_tdo; + } + + /* test GPIO */ + if (TDI_PULL_UP() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_UP failed.\n"); + goto free_tdo; + } + if (TDI_PULL_DOWN() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_DOWN failed.\n"); + goto free_tdo; + } + if (TMS_PULL_UP() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_UP failed.\n"); + goto free_tdo; + } + if (TMS_PULL_DOWN() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_DOWN failed.\n"); + goto free_tdo; + } + if (TCK_PULL_UP() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_UP failed.\n"); + goto free_tdo; + } + if (TCK_PULL_DOWN() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_DOWN failed.\n"); + goto free_tdo; + } + + mdelay(10); + return 0; + +free_tdo: + gpio_free(current_fmw_cpld->tdo); +free_tms: + gpio_free(current_fmw_cpld->tms); +free_tck: + gpio_free(current_fmw_cpld->tck); +free_tdi: + gpio_free(current_fmw_cpld->tdi); + return ret; +} + +/* + * finish_cpld + * function: finish CPLD upgrade operation + * return value: 0 success ; -1 fail + */ +static int finish_cpld(void) +{ + int ret; + + if (current_fmw_cpld == NULL) { + return -1; + } + mdelay(10); + ret = firmware_upgrade_en(0); + if (ret < 0){ + FIRMWARE_DRIVER_DEBUG_ERROR("Error: close firmware upgrade en failed, ret %d.\r\n", ret); + } + + gpio_free(current_fmw_cpld->tdi); + gpio_free(current_fmw_cpld->tck); + gpio_free(current_fmw_cpld->tms); + gpio_free(current_fmw_cpld->tdo); + mdelay(10); + return 0; +} + +/* Loop waiting for */ +static int pull_wait(int gpio, int value) { + int i, j; + /* Timeout time is two seconds */ + for (i = 0; i < 20; i++) { + for (j = 0; j < 100; j++) { + if (!!gpio_get_value(gpio) == !!value ) { + return 0; + } + /* The first loop does not delay, normally the first loop can immediately return the result */ + if (i) { + mdelay(1); + } + } + /* The CPU is released every 100ms */ + schedule(); + } + /* timeout */ + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Wait gpio %d pull to %d failed.\n", gpio, value); + return -1; +} + +/* TDI pull-up */ +static int pull_tdi_up(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tdi, 1); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tdi, 1); +} + +/* TDI pull-down */ +static int pull_tdi_down(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tdi, 0); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tdi, 0); +} + +/* TCK pull-up */ +static int pull_tck_up(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tck, 1); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tck, 1); +} + +/* TCK pull-down */ +static int pull_tck_down(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tck, 0); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tck, 0); +} + +/* TMS pull-up */ +static int pull_tms_up(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tms, 1); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tms, 1); +} + +/* TMS pull-down */ +static int pull_tms_down(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tms, 0); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tms, 0); +} + +/* Read TDO */ +static int read_tdo(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + return gpio_get_value(current_fmw_cpld->tdo); +} + +static firmware_cpld_function_t function_fmw_cpld = { + .pull_tdi_up = pull_tdi_up, + .pull_tdi_down = pull_tdi_down, + .pull_tck_up = pull_tck_up, + .pull_tck_down = pull_tck_down, + .pull_tms_up = pull_tms_up, + .pull_tms_down = pull_tms_down, + .read_tdo = read_tdo, + .init_cpld = init_cpld, + .finish_cpld = finish_cpld, +}; + +/* + * TDI_PULL_DOWN + * function: Lower TDI + */ +static int TDI_PULL_DOWN(void) +{ + if ( function_fmw_cpld.pull_tdi_down != NULL) { + return function_fmw_cpld.pull_tdi_down(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_DOWN.\n"); + return -1; + } +} + +/* + * TDI_PULL_UP + * function: High TDI + */ +static int TDI_PULL_UP(void) +{ + if (function_fmw_cpld.pull_tdi_up != NULL) { + return function_fmw_cpld.pull_tdi_up(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_UP.\n"); + return -1; + } +} + +/* + * TCK_PULL_DOWN + * function: Lower TCK + */ +static int TCK_PULL_DOWN(void) +{ + if (function_fmw_cpld.pull_tck_down != NULL) { + return function_fmw_cpld.pull_tck_down(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_DOWN.\n"); + return -1; + } +} + +/* + * TCK_PULL_UP + * function: High TCK + */ +static int TCK_PULL_UP(void) +{ + if (function_fmw_cpld.pull_tck_up != NULL) { + return function_fmw_cpld.pull_tck_up(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_UP.\n"); + return -1; + } +} + +/* + * TMS_PULL_DOWN + * function: Lower TMS + */ +static int TMS_PULL_DOWN(void) +{ + if (function_fmw_cpld.pull_tms_down != NULL) { + return function_fmw_cpld.pull_tms_down(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_DOWN.\n"); + return -1; + } +} + +/* + * TMS_PULL_UP + * function: High TMS + */ +static int TMS_PULL_UP(void) +{ + if (function_fmw_cpld.pull_tms_up != NULL) { + return function_fmw_cpld.pull_tms_up(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_UP.\n"); + return -1; + } +} + +/* + * TDO_READ + * function:Read the TDO level + */ +static int TDO_READ(void) +{ + if (function_fmw_cpld.read_tdo != NULL) { + return function_fmw_cpld.read_tdo(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDO_READ.\n"); + return -1; + } +} + +/* + * tap_test_logic_reset + * function: reset JTAG + * No matter what the original state of the controoler, it will enter + * Test_Logic_Reset when TMS is held high for at least five rising + * edges of TCK (16MHz) + * The controller remains in this state while TMS is high + */ +static void tap_test_logic_reset(void) +{ + int i; + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + + for (i = 0; i < 5; i++) { + TCK_PULL_UP(); + ndelay(TCK_DELAY); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + } + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_run_test_idle + * function: A controller state between scan operations.Once entered, the controller + * will remain in the Run_Test/Idle state as long as TMS is held low. + */ +static void tap_run_test_idle(void) +{ + TMS_PULL_DOWN(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_select_dr_scan + * function :This is a temporary controller state in which all test data registers + * selected by the current instruction retain their previous state. + */ +static void tap_select_dr_scan(void) +{ + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_capture_dr + * function : In this controller state data may be parallel-loaded into test data + * register selected by the current instruction on the rising edge of TCK + */ +static void tap_capture_dr(void) +{ + TMS_PULL_DOWN(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_shift_dr + * function: In this controller state.the test data register connected between TDI + * and TDO as a result of the current instruction shifts one stage + * toward its serial output on each rising edge of TCK. + */ +static void tap_shift_dr(void) +{ + TMS_PULL_DOWN(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_exit1_dr + * function: This is a temporary controller state. + */ +static void tap_exit1_dr(int data) +{ + int j; + if (data) { + TDI_PULL_UP(); + } else { + TDI_PULL_DOWN(); + } + + /* need to idle here */ + for (j = 1; j < current_chip_index; j++) { + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); + } + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_update_dr + * function : Some test data registers may be provided with a latched parallel output to + * prevent changes at the parallel out-put while data is shifted in the + * associated whift-register path in response to certain instructions.Data is + * latched onto the parallel output of these test data registers from the + * shift-register path on the falling edge of TCK in the Update-DR controler state. + */ +static void tap_update_dr(void) +{ + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_select_ir_scan + * function:This is a temporarily controler state in which all test data register selected + * by the current instruction retain their previous state. + */ +static void tap_select_ir_scan(void) +{ + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_capture_ir + * function :In this controller state the shift-register contained in the instruction + * register loads a pattern of fixed logic values on the rising edge of + * TCK.design-specific data may be loaded into shift-register stages that + * are not required to be set to fixed values. + */ +static void tap_capture_ir(void) +{ + TMS_PULL_DOWN(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_exit1_ir + * function : enter exit1 ir state. This is a temporary controller state. + */ +static void tap_exit1_ir(int data) +{ + if (data) { + TDI_PULL_UP(); + } else { + TDI_PULL_DOWN(); + } + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * tap_shift_ir + * function: In this controller state the shift-register contained in the instruction + * register is connected between TDI and TDO and shifts data one stage + * toward its serial output on each rising edge of TCK. + */ +static void tap_shift_ir(void) +{ + TMS_PULL_DOWN(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +/* + * The instruction shifted into the instruction register is latched onto the parallel output + * from the shift-register path on the falling edge of TCK in this controller state.Once the + * new instruction has been latched,it becomes the current instruction. + * + */ +static void tap_update_ir(void) +{ + TMS_PULL_UP(); + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); +} + +static void tap_send_instruction(int instruction, int ins_len) +{ + int i; + for (i = 0; i < (ins_len - 1); i++) { + if (instruction & 0x1) { + TDI_PULL_UP(); + } else { + TDI_PULL_DOWN(); + } + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); + instruction = instruction >> 1; + } +} + +static void tap_send_data(int data, int data_len) +{ + int i; + for (i = 0; i < (data_len - 1); i++) { + if (data & 0x1) { + TDI_PULL_UP(); + } else { + TDI_PULL_DOWN(); + } + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); + data = data >> 1; + } +} + +/* + * tap_rcv_byte + * function : Receive data from the device side + * @data : param[out] Received data */ +static void tap_rcv_byte(u8 *data) +{ + int i; + u8 rec_data = 0; + unsigned char tmp; + ndelay(TCK_DELAY); + for (i = 0; i < 8; i++) { + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + tmp = TDO_READ(); + rec_data |= (tmp << i); + TCK_PULL_UP(); + ndelay(TCK_DELAY); + } + *data = rec_data; +} + +/* + * tap_idle + * function :Used for state machine idling + */ +static void tap_idle(void) +{ + int i; + for (i = 0; i < 0x100; i++) { + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); + + /* Timely release of CPU */ + schedule(); + } +} + +/* + * jtag_read_data + * function :Read the JTAG output data + * @size: param[in] buffer size + * @data: param[out] read data buffer + */ +static void jtag_read_data(u8 *buf, int size) +{ + int i, j; + /* JTAG state switching */ + tap_run_test_idle(); + tap_select_dr_scan(); + tap_capture_dr(); + tap_shift_dr(); + for (j = current_chip_index; j < chip_num; j++) { + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + TCK_PULL_UP(); + ndelay(TCK_DELAY); + } + /* Receive data from the device side */ + for (i = 0; i < size; i++) { + tap_rcv_byte(&buf[i]); + } + /* JTAG state switching */ + tap_exit1_dr(0); + tap_update_dr(); + tap_run_test_idle(); +} + +/* + * jtag_send_instruction + * function :JTAG instruction sending interface + * @instruction: param[in] Instruction to be sent + * @ins_length: param[in] Instruction length + */ +static void jtag_send_instruction(int instruction, int ins_length) +{ + int i, j; + i = 1 << (ins_length - 1); + /* JTAG state switching */ + tap_run_test_idle(); + tap_select_dr_scan(); + tap_select_ir_scan(); + tap_capture_ir(); + tap_shift_ir(); + + for (j = chip_num; j > 1; j--) { + if (j == current_chip_index) { + tap_send_instruction(instruction, ins_length + 1); + } else { + tap_send_instruction(BYPASS, ins_length + 1); + } + } + + if (current_chip_index == 1) { + tap_send_instruction(instruction, ins_length); + /* Gets the highest bit of the instruction */ + tap_exit1_ir((instruction & i) >> (ins_length - 1)); + } else { + tap_send_instruction(BYPASS, ins_length); + /* Gets the highest bit of the instruction */ + tap_exit1_ir((BYPASS & i) >> (ins_length - 1)); + } + + /* JTAG state switching */ + tap_update_ir(); + tap_run_test_idle(); +} + +/* + * jtag_send_data + * function :JTAG data sending interface + * @buf : param[in] Data that needs to be sent + * @data_length: param[in] Data length + */ +static void jtag_send_data(unsigned int buf, int data_length) +{ + int i; + i = 1 << (data_length - 1); + + /* JTAG state switching */ + tap_run_test_idle(); + tap_select_dr_scan(); + tap_capture_dr(); + tap_shift_dr(); + tap_send_data(buf, data_length); + /* Gets the highest bit of the instruction */ + tap_exit1_dr((buf & i) >> (data_length - 1)); + tap_update_dr(); + tap_run_test_idle(); +} + +/* + * jtag_program_donebit + * JTAG programming end point */ +static void jtag_program_donebit(void) +{ + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x0, chip_cpld_info->addr_register_length); + tap_idle(); + + switch (chip_cpld_info->id) { + case EPM240_G: + case EPM570_G: + jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x7BFF, chip_cpld_info->data_register_length); + tap_idle(); + break; + case EPM1270_G: + jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x7FFF, chip_cpld_info->data_register_length); + tap_idle(); + + jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0xFFFF, chip_cpld_info->data_register_length); + tap_idle(); + + jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0xFFBF, chip_cpld_info->data_register_length); + tap_idle(); + + jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0xFFFF, chip_cpld_info->data_register_length); + tap_idle(); + break; + default: + break; + } /* End of switch */ +} + +/* + * jtag_rt_disable + * JTAG Disable state machine under Real-Time ISP + */ +static void jtag_rt_disable(void) +{ + jtag_send_instruction(RT_ISC_DISABLE, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_instruction(BYPASS, CPLD_INSTRUCTION_SIZE); + tap_idle(); +} + +/* + * jtag_verify_idcode + * function :JTAG internal ID reading + */ +static void jtag_verify_idcode(void) +{ + int data, i; + u8 buf[2]; + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(chip_cpld_info->verify_idcode_addr, + chip_cpld_info->addr_register_length); + tap_idle(); + for (i = 0; i < VERIFY_IDCODE_SIZE; i++) { + jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); + tap_idle(); + + jtag_read_data(buf, 2); + + /* When validating the ID, the data is compared to the corresponding chip value, + which is retrieved from the BSDL file*/ + data = (buf[1] << 8) | buf[0]; + } +} + +/* + * jtag_rt_enable + * Enter Real-Time ISP mode; JTAG Enable State Machine under Real-Time ISP + */ +static void jtag_rt_enable(void) +{ + jtag_send_instruction(RT_ISC_ENABLE, CPLD_INSTRUCTION_SIZE); + tap_idle(); +} + +/* + * jtag_erase + * JTAG erases the timing + */ +static void jtag_erase(void) +{ + int i; + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(chip_cpld_info->first_erase_addr, + chip_cpld_info->addr_register_length); + tap_idle(); + jtag_send_instruction(ISC_ERASE, CPLD_INSTRUCTION_SIZE); + tap_idle(); + for (i = 0; i < ERASE_DELAY; i++) { + tap_idle(); + tap_idle(); + } + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(chip_cpld_info->second_erase_addr, + chip_cpld_info->addr_register_length); + tap_idle(); + jtag_send_instruction(ISC_ERASE, CPLD_INSTRUCTION_SIZE); + tap_idle(); + for (i = 0; i < ERASE_DELAY; i++) { + tap_idle(); + tap_idle(); + } + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(chip_cpld_info->third_erase_addr, + chip_cpld_info->addr_register_length); + tap_idle(); + jtag_send_instruction(ISC_ERASE, CPLD_INSTRUCTION_SIZE); + tap_idle(); + for (i = 0; i < ERASE_DELAY; i++) { + tap_idle(); + tap_idle(); + } +} + +/* + * jtag_blank_check + * JTAG blank detection */ +static void jtag_blank_check(void) +{ + int j; + int data; + u8 buf[2]; + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x0, chip_cpld_info->addr_register_length); + tap_idle(); + for (j = 0; j < chip_cpld_info->first_blank_check_length; j++) { + jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); + tap_idle(); + + jtag_read_data(buf, 2); + data = (buf[1] << 8) | buf[0]; + } + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x1, chip_cpld_info->addr_register_length); + tap_idle(); + for (j = 0; j < chip_cpld_info->second_blank_check_length; j++) { + jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); + tap_idle(); + + jtag_read_data(buf, 2); + data = (buf[1] << 8) | buf[0]; + } +} + +/* + * jtag_verify1 + * function :JTAG content validation + * @buffer : param[in] original data + * return value 0 validation success; -1 validation failed + */ +static int jtag_verify1(unsigned int *buffer) +{ + int j, ret = 0; + unsigned int data; + u8 buf[2]; + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x0, chip_cpld_info->addr_register_length); + tap_idle(); + for (j = 0; j < chip_cpld_info->eeprom_array_length; j++) { + jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); + tap_idle(); + + jtag_read_data(buf, 2); + data = (buf[1] << 8) | buf[0]; + + if (data != buffer[j]) { + FIRMWARE_DRIVER_DEBUG_ERROR("%d: %02x, %02x.\n", j, data, buffer[j]); + ret = -1; + break; + } + } + return ret; +} + +/* + * jtag_read_buffer + * function:JTAG internal data reading + * @size: param[in] Read size + * @buffer: param[out] Pointer to read data + */ +static void jtag_read_buffer(unsigned int *buffer, int size) +{ + int j; + int data; + u8 buf[2]; + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x0, chip_cpld_info->addr_register_length); + tap_idle(); + for (j = 0; j < size; j++) { + jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); + tap_idle(); + + jtag_read_data(buf, 2); + data = (buf[1] << 8) | buf[0]; + buffer[j] = data; + } +} + +/* + * jtag_program + * function:JTAG programming timing + * @buffer: param[in] data pointer to program + */ +static void jtag_program(unsigned int *buffer) +{ + int i, j; + + jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); + tap_idle(); + jtag_send_data(0x0, chip_cpld_info->addr_register_length); + tap_idle(); + for (j = 0; j < chip_cpld_info->eeprom_array_length; j++) { + jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); + tap_idle(); + + jtag_send_data(buffer[j], chip_cpld_info->data_register_length); + for (i = 0; i < PROGRAM_DELAY; i++) { + tap_idle(); + tap_idle(); + } + } +} + +/* + * cpld_read_id + * function: CPLD chip ID read + * @chip: param[in] chip index + * id : param[out] ID point */ +static void cpld_read_id(int chip, unsigned int *id) +{ + u8 data[sizeof(int)]; + if (!chip_num || chip > chip_num) { + return; + } + current_chip_index = chip; + /* Send instructions */ + jtag_send_instruction(IDCODE, CPLD_INSTRUCTION_SIZE); + /* Read Data */ + jtag_read_data(data, sizeof(int)); + *id = (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0]; +} + +/* + * chip_num_init + * function:CPLD number of chips initialized */ +static void chip_num_init(void) +{ + unsigned int i, id; + unsigned char buf[sizeof(int) * CPLD_MAX_CHIP]; + chip_num = 0; + + /* JTAG state switching */ + tap_run_test_idle(); + tap_select_dr_scan(); + tap_capture_dr(); + tap_shift_dr(); + + for (i = 0; i < sizeof(int) * CPLD_MAX_CHIP; i++) { + tap_rcv_byte(&buf[i]); + } + + /* JTAG state switching */ + tap_exit1_dr(0); + tap_update_dr(); + tap_run_test_idle(); + + for (i = 0; i < sizeof(int) * CPLD_MAX_CHIP; i += 4) { + id = (buf[i + 3] << 24) | (buf[i + 2] << 16) | (buf[i + 1] << 8) | buf[i]; + FIRMWARE_DRIVER_DEBUG_VERBOSE("ID: %04x\n", id); + if (id != 0xFFFFFFFF && id != 0) { + chip_num++; + } + } +} + +/* + * cpld_reset + * function: reset JTAG + * @chip: param[in] chip index + */ +static void cpld_reset(int chip) +{ + unsigned int chip_type_id = 0; + int i; + /* JTAG enters the reset state */ + tap_test_logic_reset(); + /* Gets the number of chips in the CPLD */ + chip_num_init(); + if (!chip_num) { + pr_notice("There is no CPLD chip or the chip is not supported!!\r\n"); + FIRMWARE_DRIVER_DEBUG_ERROR("chip_num == NULL.\n"); + } else { + FIRMWARE_DRIVER_DEBUG_VERBOSE("enter cpld read id.\n"); + current_chip_index = chip; + /* Read chip ID */ + cpld_read_id(current_chip_index, &chip_type_id); + FIRMWARE_DRIVER_DEBUG_VERBOSE("get cpld id: 0x%x.\n", chip_type_id); + for (i = 0; cpld_id_table[i].name != NULL; i++) { + if (cpld_id_table[i].id == chip_type_id) { + chip_cpld_info = &cpld_id_table[i]; + break; + } + } + } + current_chip_index = -1; + tap_test_logic_reset(); +} + +/* + * cpld_program + * function: CPLD programming interface + * @chip: param[in] Chip serial number/chip index + * @buffer: param[in] data pointer to program + * return value: 0 success; -1 fail + */ +static int cpld_program(int chip, unsigned int *buffer) +{ + int ret; + int counte; + + if (!chip_num || chip > chip_num + || chip_cpld_info == NULL) { + return -1; + } + current_chip_index = chip; + + /* Enter Real-Time ISP mode */ + jtag_rt_enable(); + /* JTAG internal ID reading */ + jtag_verify_idcode(); + /* JTAG erases */ + jtag_erase(); + /* JTAG blank detection */ + jtag_blank_check(); + /* JTAG programming timing */ + jtag_program(buffer); + + /* In the process of upgrade, there is a problem with reading data, + * which may occur in the process of reading. Some bit reading fails, + * but the reason is not found. + * Avoidance resolution: perform multiple checks */ + for (counte = 0; counte < 4; counte++) { + ret = jtag_verify1(buffer); + if (counte > 0) { + pr_notice("Verify again(%d).\n", counte + 1); + } + + if (ret == 0) { + break; + } + } + pr_notice("Write chip %d cpld success(%d).\n", chip, ret); + jtag_program_donebit(); + + /* JTAG Disable state machine under Real-Time ISP */ + jtag_rt_disable(); + + return ret; +} + +static void cpld_read_buffer(int chip, unsigned int *buffer, unsigned int size) +{ + if (!chip_num || chip > chip_num + || chip_cpld_info == NULL) { + return; + } + current_chip_index = chip; + + /* Enter Real-Time ISP mode */ + jtag_rt_enable(); + + /* JTAG internal ID reading */ + jtag_verify_idcode(); + + /* JTAG internal data reading */ + jtag_read_buffer(buffer, size); + + jtag_rt_disable(); + +} + +/* + * cpld_eeprom_size + * function:CPLD chip capacity size + * return value :Returns chip capacity on success, or 0 on failure + */ +static int cpld_eeprom_size(void) +{ + int ret; + + if (!chip_num || chip_cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("chip_num:%d or chip_cpld_info == NULL.\n", chip_num); + ret = 0; + } else { + ret = chip_cpld_info->eeprom_array_length; + FIRMWARE_DRIVER_DEBUG_ERROR("chip_cpld_info->eeprom_array_length = %d.\n", + chip_cpld_info->eeprom_array_length); + } + + return ret; +} + +/* + * cpld_read_name + * function: Gets the CPLD chip name + * @chip: param[in] Chip serial number/chip index + * return value :chip name */ +static char *cpld_read_name(int chip) +{ + uint chip_type_id; + int i; + + chip_type_id = 0; + cpld_read_id(chip, &chip_type_id); + for (i = 0; cpld_id_table[i].name != NULL; i++) { + if (cpld_id_table[i].id == chip_type_id) { + return cpld_id_table[i].name; + } + } + + return NULL; +} + +/* + * cpld_upgrade_init + * function:Initialize GPIO and CPLD + * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int cpld_upgrade_init(void) +{ + int ret; + + if (function_fmw_cpld.init_cpld != NULL) { + ret = function_fmw_cpld.init_cpld(); + if (ret != FIRMWARE_SUCCESS) { + return ret; + } + } + + return FIRMWARE_SUCCESS; +} + +/* + * cpld_upgrade_finish + * function:Release GPIO and CPLD + * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int cpld_upgrade_finish(void) +{ + int ret; + + if (function_fmw_cpld.finish_cpld != NULL) { + ret = function_fmw_cpld.finish_cpld(); + if (ret != FIRMWARE_SUCCESS) { + return ret; + } + } + + return FIRMWARE_SUCCESS; +} + +static int cpld_str_hex_to_dec(char *str, char end_char) +{ + int i; + int result; + + if (str == NULL) { + return FIRMWARE_FAILED; + } + + i = 0; + result = 0; + while (str[i] != end_char) { + /* Check for hexadecimal characters:0123456789abcdef */ + if (!isxdigit(str[i]) || i >= CPLD_UNIT_SZ) { + return FIRMWARE_FAILED; + } + /* Check for a number between 0 and 9 */ + if (isdigit(str[i])) { + result = result * CPLD_HEX + str[i] - '0'; + } + /* Check if the character is uppercase */ + else if (isupper(str[i])) { + result = result * CPLD_HEX + str[i] - 'A' + DEC_VAL; + } else { + result = result * CPLD_HEX + str[i] - 'a' + DEC_VAL; + } + + i++; + } + + return result; +} + +static int cpld_check_upgrade_data(char *src, int src_len, int *dst, int dst_len) +{ + int i, init_lcnt, tmp; + char *ptr; + int ret; + + if (src == NULL || dst == NULL) { + return FIRMWARE_FAILED; + } + /* Pointers the ptr pointer to the data following the CPLD_INIT_KEYWORD */ + ret = FIRMWARE_SUCCESS; + ptr = strstr(src, CPLD_INIT_KEYWORD); + if (ptr == NULL) { + return FIRMWARE_FAILED; + } else { + ptr += strlen(CPLD_INIT_KEYWORD); + while (*ptr == '(' || *ptr == '\r' || *ptr == '\n') { + ptr++; + } + } + + /* Converts a hexadecimal string to decimal, with 4 groups of 4 bytes each */ + i = 0; + init_lcnt = 0; + for (init_lcnt = 0; init_lcnt < CPLD_INIT_CNT; init_lcnt++) { + tmp = cpld_str_hex_to_dec(ptr, CPLD_END_CHAR); + if (tmp < 0) { + ret = tmp; + return ret; + } + /* int type is 4 bytes */ + dst[i++] = tmp; + if (i >= dst_len) { + return FIRMWARE_SUCCESS; + } + + ptr += CPLD_UNIT_SZ + 1; + + while (*ptr == '\r' || *ptr == '\n') { + ptr++; + } + } + + /* Point the ptr pointer to the data after CPLD_REPEAT_KEYWORD */ + ptr = strstr(src, CPLD_REPEAT_KEYWORD); + if (ptr == NULL) { + return FIRMWARE_FAILED; + } else { + ptr += strlen(CPLD_REPEAT_KEYWORD); + while (*ptr == '(' || *ptr == '\r' || *ptr == '\n') { + ptr++; + } + } + + while (1) { + /* Converts the 4 bytes before ',' to base 10 */ + tmp = cpld_str_hex_to_dec(ptr, CPLD_END_CHAR); + if (tmp < 0) { + ret = tmp; + break; + } + dst[i++] = tmp; + if (i >= dst_len) { + return FIRMWARE_SUCCESS; + } + + ptr += CPLD_UNIT_SZ + 1; + + while (*ptr == '\r' || *ptr == '\n') { + ptr++; + } + } + + return FIRMWARE_SUCCESS; +} + +/** + * fmw_cpld_upg_get_chip_name + * function:get chip name + * @chain: param[in] chain + * @cpld: param[in] Device private data + * @len: param[in] chip name length + * @info: param[out] chip name + * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int fmw_cpld_upg_get_chip_name(int chain, firmware_cpld_t *cpld, char *info, int len) +{ + int ret; + char *name; + + /* Check the input and output parameters */ + if (chain < 0 || info == NULL || len <= 0) { + return FIRMWARE_FAILED; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to get chip name.\n"); + + if (cpld == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); + } else { + set_currrent_cpld_info(cpld); + } + + if (chain != current_fmw_cpld->chain) { + FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit." + "(chain = %d, current chain = %d, current name: %s)\n", + chain, current_fmw_cpld->chain, current_fmw_cpld->devname); + } + + /* Initialize GPIO and CPLD */ + ret = cpld_upgrade_init( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error:Failed to get chip name when init upgrade.(chain = %d)\n", + chain); + return FIRMWARE_FAILED; + } + + /* reset JTAG */ + cpld_reset(current_fmw_cpld->chip_index); + /* Read chip name */ + name = cpld_read_name(current_fmw_cpld->chip_index); + if (name == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get chip name when read name.(chain %d, index %d)\n", + chain, current_fmw_cpld->chip_index); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + + /* Release GPIO */ + ret = cpld_upgrade_finish( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get chip name when finish upgrade.(chain = %d)\n", + chain); + return FIRMWARE_FAILED; + } + + strncpy(info, name, len); + + return FIRMWARE_SUCCESS; +} + +/** + * fmw_cpld_upg_program + * function:Upgrade CPLD(ISC file format) + * @chain: param[in] chain + * @cpld: param[in] Device private data + * @info: param[in] Data to be written + * @len: param[in] Length of data to be written + * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int fmw_cpld_upg_program(int chain, firmware_cpld_t *cpld, char *info, int len) +{ + int i; + int time; + int ret; + int target_len; + int *target_buf; + + /* Check the input parameters */ + if (chain < 0 || info == NULL || len <= 0) { + return FIRMWARE_FAILED; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to program chip.\n"); + + if (cpld == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); + } else { + set_currrent_cpld_info(cpld); + } + + if (chain != current_fmw_cpld->chain) { + FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", + chain, current_fmw_cpld->chain); + } + /* Initialize GPIO and CPLD */ + ret = cpld_upgrade_init( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program when init upgrade.(chain = %d)\n", + chain); + return FIRMWARE_FAILED; + } + + /* reset JTAG */ + cpld_reset(current_fmw_cpld->chip_index); + /* CPLD chip capacity size */ + target_len = cpld_eeprom_size(); + if (target_len <= 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get cpld size.(chain = %d)\n", + chain); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + + target_buf = (int *) kzalloc(target_len * sizeof(int), GFP_KERNEL); + if (target_buf == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to malloc target buffer.(chain = %d)\n", + chain); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("cpld_check_upgrade_data start.(chain = %d, %d)\n", + chain, target_len); + /* Remove extraneous information */ + ret = cpld_check_upgrade_data(info, len, target_buf, target_len); + if (ret < 0){ + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to check data.(chain = %d)\n", + chain); + kfree(target_buf); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + + for (i = 0; i < 16 * 8; i += 8) { + FIRMWARE_DRIVER_DEBUG_VERBOSE(" %x %x %x %x %x %x %x %x\n", + target_buf[i], target_buf[i + 1], + target_buf[i + 2], target_buf[i + 3], + target_buf[i + 4], target_buf[i + 5], + target_buf[i + 6], target_buf[i + 7]); + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("cpld_check_upgrade_data finish.(chain = %d)\n", chain); + + /* CPLD device writing */ + for (time = 0; time < 10; time++) { + FIRMWARE_DRIVER_DEBUG_VERBOSE("Start upgrade cpld: %d.(chain = %d)\n", time, chain); + ret = cpld_program(current_fmw_cpld->chip_index, target_buf); + if (ret >= 0) { + break; + } + } + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program.(chain = %d)\n", chain); + kfree(target_buf); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("SUCCESS PROGRAM.\n"); + + /* Release GPIO */ + ret = cpld_upgrade_finish(); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program when finish upgrade.(chain = %d)\n", + chain); + } + + kfree(target_buf); + return FIRMWARE_SUCCESS; +} + +/** + * fmw_cpld_upg_program_jbi + * function: Upgrade CPLD(JBI file format) + * @chain: param[in] chain + * @cpld: param[in] Device private data + * @info: param[in] Data to be written + * @len: param[in] Length of data to be written + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int fmw_cpld_upg_program_jbi(int chain, firmware_cpld_t *cpld, char *info, int len) +{ + int time, ret; + int argc = 3; + char *argv[] = { + "-r", + "-aprogram", + "-ddo_real_time_isp=1" + }; + + /* Check the input parameters */ + if (chain < 0 || info == NULL || len <= 0) { + return FIRMWARE_FAILED; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to program chip %d(%p,%p,%d).\n", + chain, cpld, info, len); + + if (cpld == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); + } else { + set_currrent_cpld_info(cpld); + } + + if (chain != current_fmw_cpld->chain) { + FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", + chain, current_fmw_cpld->chain); + } + /* Initialize GPIO and CPLD */ + ret = cpld_upgrade_init( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program when init upgrade.(chain = %d)\n", + chain); + return FIRMWARE_FAILED; + } + + /* reset JTAG */ + cpld_reset(current_fmw_cpld->chip_index); + + for (time = 0; time < 30; time++) { + FIRMWARE_DRIVER_DEBUG_VERBOSE("Start upgrade cpld: %d.(chain = %d)\n", time, chain); + ret = jbi_main((unsigned char *) info, (unsigned long) len, argc, argv); + if (ret == 0) { + break; + } + } + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program.(chain = %d)\n", chain); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + FIRMWARE_DRIVER_DEBUG_VERBOSE("SUCCESS PROGRAM.\n"); + + /* Release GPIO and CPLD */ + ret = cpld_upgrade_finish( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program when finish upgrade.(chain = %d)\n", + chain); + } + + return FIRMWARE_SUCCESS; +} + +/** + * fmw_cpld_upg_get_version + * function: get version + * @chain: param[in] chain + * @cpld: param[in] Device private data + * @len: param[in] Data length + * @info: param[out] Version information buffer + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int fmw_cpld_upg_get_version(int chain, firmware_cpld_t *cpld, char *info, int len) +{ + int ret; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to get version.\n"); + if (cpld == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); + } else { + set_currrent_cpld_info(cpld); + } + + if (chain != current_fmw_cpld->chain) { + FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", + chain, current_fmw_cpld->chain); + } + + /* CPLD device can't get version */ + if (function_fmw_cpld.get_version != NULL) { + ret = function_fmw_cpld.get_version(chain, info, len); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed get version in chain: %d.\n", chain); + return FIRMWARE_FAILED; + } + + return FIRMWARE_SUCCESS; + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("The get_version is NULL in chain: %d.\n", chain); + } + + return FIRMWARE_FAILED; +} + +/** + * fmw_cpld_upg_get_chip_info + * function: Get chip content + * @chain: param[in] chain + * @cpld: param[in] Device private data + * @len: param[in] Data length + * @info: param[out] Read Data Buffer + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int fmw_cpld_upg_get_chip_info(int chain, firmware_cpld_t *cpld, void *info, int len) +{ + int i; + int ret; + int target_len; + int *target_buf; + + /* Check input and output parameters */ + if (chain < 0 || info == NULL || len <= 0) { + return FIRMWARE_FAILED; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to read chip.\n"); + + if (cpld == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); + } else { + set_currrent_cpld_info(cpld); + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to read chip: %s.\n",current_fmw_cpld->devname); + if (chain != current_fmw_cpld->chain) { + FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", + chain, current_fmw_cpld->chain); + } + + /* Initialize GPIO and CPLD */ + ret = cpld_upgrade_init( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program when init upgrade.(chain = %d)\n", + chain); + return FIRMWARE_FAILED; + } + + /* reset JTAG*/ + cpld_reset(current_fmw_cpld->chip_index); + /* CPLD chip capacity size */ + target_len = cpld_eeprom_size(); + if (target_len <= 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get cpld size.(chain = %d)\n", + chain); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + + target_buf = (int *) kzalloc(target_len * sizeof(int), GFP_KERNEL); + if (target_buf == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to malloc target buffer.(chain = %d)\n", + chain); + cpld_upgrade_finish( ); + return FIRMWARE_FAILED; + } + /* Read chip */ + cpld_read_buffer(current_fmw_cpld->chip_index, target_buf, target_len); + + for (i = 0; i < 16 * 8; i += 8) { + FIRMWARE_DRIVER_DEBUG_VERBOSE(" %x %x %x %x %x %x %x %x\n", + target_buf[i], target_buf[i + 1], + target_buf[i + 2], target_buf[i + 3], + target_buf[i + 4], target_buf[i + 5], + target_buf[i + 6], target_buf[i + 7]); + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Success Read.\n"); + + /* Release GPIO and CPLD */ + ret = cpld_upgrade_finish( ); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program when finish upgrade.(chain = %d)\n", + chain); + } + + if (copy_to_user(info, target_buf, (len > target_len) ? target_len : len)) { + kfree(target_buf); + return FIRMWARE_FAILED; + } + + kfree(target_buf); + return FIRMWARE_SUCCESS; +} + +/** + * jbi_jtag_io_ + * function: JBI GPIO operation + * @tms: param[in] TMS signal level + * @tdi: param[in] TDI signal level + * @read_tdo: param[in] Whether to read the level of the TDO + * return value : tdo + */ +int __attribute__ ((weak)) jbi_jtag_io_(int tms, int tdi, int read_tdo) +{ + int tdo = 0; + + if (tms) { + TMS_PULL_UP(); + } else { + TMS_PULL_DOWN(); + } + + if (tdi) { + TDI_PULL_UP(); + } else { + TDI_PULL_DOWN(); + } + + TCK_PULL_UP(); + ndelay(TCK_DELAY); + + if (read_tdo) { + tdo = TDO_READ(); + } + + TCK_PULL_DOWN(); + ndelay(TCK_DELAY); + + return tdo; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h new file mode 100644 index 000000000000..3a6ab117df5d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h @@ -0,0 +1,82 @@ +#ifndef __FIRMWARE_H__ +#define __FIRMWARE_H__ + +#include +#include + +#include + +/* Debug switch level */ +typedef enum { + FIRWMARE_VERBOSE, + FIRWMARE_WARN, + FIRWMARE_ERROR, + FIRWMARE_END, +} firmware_debug_level_t; + +#define FIRMWARE_DRIVER_DEBUG_VERBOSE(fmt, args...) do { \ + if ((g_firmware_driver_debug) & (1U << FIRWMARE_VERBOSE)) { \ + printk(KERN_INFO "[FIRMWARW_DRIVER_CPLD][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FIRMWARE_DRIVER_DEBUG_ERROR(fmt, args...) do { \ + if ((g_firmware_driver_debug) & (1U << FIRWMARE_ERROR)) { \ + printk(KERN_ERR "[FIRMWARW_DRIVER_CPLD][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FIRMWARE_NAME_LEN 48 + +#define FIRMWARE_FAILED (-1) +#define FIRMWARE_SUCCESS 0 + +/* ioctl publi command, the same as "firmware_upgrade\include\firmware_app.h" */ +#define FIRMWARE_COMMON_TYPE 'C' +#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ +#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ + +/* firmware cpld driver ioctl command, the same as "firmware_upgrade\include\firmware_app.h" */ +#define FIRMWARE_TYPE 'J' +#define FIRMWARE_PROGRAM _IOW(FIRMWARE_TYPE, 1, char) /* firmware upgrade ISC */ +#define FIRMWARE_READ_CHIP _IOR(FIRMWARE_TYPE, 5, int) /* read the contents of the chip */ +#define FIRMWARE_PROGRAM_JBI _IOW(FIRMWARE_TYPE, 6, char) /* firmware upgrade JBI */ + +typedef struct cmd_info_s { + uint32_t size; + void __user *data; +} cmd_info_t; + +typedef struct firmware_device_s { + struct list_head list; /* device list */ + uint32_t chain; /* chain number */ + char name[FIRMWARE_NAME_LEN]; /* name */ + struct miscdevice dev; /* device */ + void *priv; /* private data */ +} firmware_device_t; + +typedef struct firmware_driver_s { + struct list_head list; /* list */ + char name[FIRMWARE_NAME_LEN]; /* name */ + struct platform_driver *drv; /* driver */ + void *priv; /* private data */ +} firmware_driver_t; + +extern int g_firmware_driver_debug; + +/* Get device information based on minor */ +extern firmware_device_t *firmware_get_device_by_minor(int minor); +/* Registere device */ +extern int firmware_device_register(firmware_device_t *fw_dev); +/* Unregister device */ +extern void firmware_device_unregister(firmware_device_t *fw_dev); +/* Registere driver */ +extern int firmware_driver_register(firmware_driver_t *fw_drv); +/* Unregister driver */ +extern void firmware_driver_unregister(firmware_driver_t *fw_drv); +/* CPLD upgrade initialized */ +extern int firmware_cpld_init(void); +/* CPLD unload function */ +extern void firmware_cpld_exit(void); + +#endif /* end of __FIRMWARE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h new file mode 100644 index 000000000000..ef69655a4b2e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h @@ -0,0 +1,64 @@ +#ifndef __FIRMWARE_CPLD_H__ +#define __FIRMWARE_CPLD_H__ + +#define FIRMWARE_DEV_NAME_LEN 32 +#define FIRMWARE_MAX_CPLD_NUM 16 +#define FIRMWARE_TYPE_LEN 10 +#define FIRMWARE_EN_INFO_MAX 16 +#define FIRMWARE_EN_INFO_BUF 128 + +typedef struct firmware_gpio_jtag_en_s { + uint32_t en_gpio; /* GPIO enable pin */ + uint32_t en_level; /* GPIO enable level */ + int flag; /* init flag; 1-init 0-not init */ +} firmware_gpio_jtag_en_t; + +typedef struct firmware_cpld_s { + char devname[FIRMWARE_DEV_NAME_LEN]; /* Device name */ + char type[FIRMWARE_TYPE_LEN]; /* interface type */ + uint32_t tdi; /* TDI signal corresponding to GPIO pin information */ + uint32_t tck; /* TCK signal corresponding to GPIO pin information */ + uint32_t tms; /* TMS signal corresponding to GPIO pin information */ + uint32_t tdo; /* TDO signal corresponding to GPIO pin information */ + uint32_t chain; /* chain num */ + uint32_t chip_index; /* chip index */ + uint32_t tck_delay; /* Delay time */ + uint32_t gpio_en_info_num; /* GPIO Enable Number */ + firmware_gpio_jtag_en_t gpio_en_info[FIRMWARE_EN_INFO_MAX]; /* GPIO Enable Information */ +} firmware_cpld_t; + +typedef struct firmware_cpld_function_s{ + int (*pull_tdi_up)(void); /* TDI pull-up */ + int (*pull_tdi_down)(void); /* TDI pull-down */ + int (*pull_tck_up)(void); /* TCK pull-up */ + int (*pull_tck_down)(void); /* TCK pull-down */ + int (*pull_tms_up)(void); /* TMS pull-up */ + int (*pull_tms_down)(void); /* TCK pull-down */ + int (*read_tdo)(void); /* Read TDO */ + int (*init_cpld)(void); /* CPLD upgrade initializes the operation */ + int (*init_chip)(int chain); /* chip initializes the operation */ + int (*finish_chip)(int chain); /* chip completes the operation*/ + int (*finish_cpld)(void); /* CPLD upgrade completes the operation */ + int (*get_version)(int chain, char *ver, int len); /* get version */ +}firmware_cpld_function_t; + +/* get chip name */ +extern int fmw_cpld_upg_get_chip_name(int chain, firmware_cpld_t *cpld, char *info, int len); +/* ISC firmware upgrad */ +extern int fmw_cpld_upg_program(int chain, firmware_cpld_t *cpld, char *info, int len); +/* get version */ +extern int fmw_cpld_upg_get_version(int chain, firmware_cpld_t *cpld, char *info, int len); +/* Read the contents of Chip */ +extern int fmw_cpld_upg_get_chip_info(int chain, firmware_cpld_t *cpld, void *info, int len); +/* operate TDI */ +extern int fwm_cpld_tdi_op(int value); +/* operate TCK */ +extern int fwm_cpld_tck_op(int value); +/* operate TMS */ +extern int fwm_cpld_tms_op(int value); +/* operate TDO */ +extern int fwm_cpld_tdo_op(void); +/* JBI firmware upgrad */ +extern int fmw_cpld_upg_program_jbi(int chain, firmware_cpld_t *cpld, char *info, int len); + +#endif /* __FIRMWARE_CPLD_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h new file mode 100644 index 000000000000..865c8d352174 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h @@ -0,0 +1,15 @@ +#ifndef __JBI_H__ +#define __JBI_H__ + +#include + +/* JTAG operation interface*/ +extern int jbi_jtag_io_(int tms, int tdi, int read_tdo); +/* delay function */ +extern void jbi_jtag_udelay(unsigned long us); +/* Debug switch */ +extern int jbi_debug(int level); +/* JBI upgrade function */ +extern int jbi_main(unsigned char *addr, unsigned long size, int argc, char * const argv[]); + +#endif /* __JBI_JTAG_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c new file mode 100644 index 000000000000..064d0ae50ec4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c @@ -0,0 +1,438 @@ +/****************************************************************************/ +/* */ +/* Module: jbicomp.c */ +/* */ +/* Copyright (C) Altera Corporation 1997-2001 */ +/* */ +/* Description: Contains the code for compressing and uncompressing */ +/* Boolean array data. */ +/* */ +/* This algorithm works by searching previous bytes in the */ +/* data that match the current data. If a match is found, */ +/* then the offset and length of the matching data can */ +/* replace the actual data in the output. */ +/* */ +/* Revisions: 2.2 fixed /W4 warnings */ +/* */ +/****************************************************************************/ + +#include "jbiport.h" +#include "jbiexprt.h" +#include "jbicomp.h" +#include "jbistub.h" + +#define SHORT_BITS 16 +#define CHAR_BITS 8 +#define DATA_BLOB_LENGTH 3 +#define MATCH_DATA_LENGTH 8192 +#define JBI_ACA_REQUEST_SIZE 1024 +#define JBI_ACA_BUFFER_SIZE (MATCH_DATA_LENGTH + JBI_ACA_REQUEST_SIZE) + +unsigned long jbi_in_length = 0L; +unsigned long jbi_in_index = 0L; /* byte index into compressed array */ +unsigned int jbi_bits_avail = CHAR_BITS; + +#if PORT == DOS +int jbi_current_variable_id = -1; +int jbi_current_page = -1; +int jbi_version = 0; +unsigned long jbi_out_length = 0L; +unsigned int jbi_out_index = 0; /* byte index into jbi_aca_out_buffer[] */ +unsigned long jbi_aca_in_offset = 0L; +unsigned char jbi_aca_out_buffer[JBI_ACA_BUFFER_SIZE]; +#endif + +/****************************************************************************/ +/* */ +/* The following functions implement incremental decompression of Boolean */ +/* array data, using a small memory window. */ +/* */ +/* This algorithm works by searching previous bytes in the data that match */ +/* the current data. If a match is found, then the offset and length of */ +/* the matching data can replace the actual data in the output. */ +/* */ +/* Memory usage is reduced by maintaining a "window" buffer which contains */ +/* the uncompressed data for one 8K page, plus some extra amount specified */ +/* by JBI_ACA_REQUEST_SIZE. The function jbi_uncompress_page() is used to */ +/* request a subrange of the uncompressed data, starting at a particular */ +/* bit position and extending a maximum of JBI_ACA_REQUEST_SIZE bytes. */ +/* */ +/****************************************************************************/ + +/****************************************************************************/ +/* */ + +unsigned int jbi_bits_required(unsigned int n) + +/* */ +/* Description: Calculate the minimum number of bits required to */ +/* represent n. */ +/* */ +/* Returns: Number of bits. */ +/* */ +/****************************************************************************/ +{ + unsigned int result = SHORT_BITS; + + if (n == 0) + { + result = 1; + } + else + { + /* Look for the highest non-zero bit position */ + while ((n & (1 << (SHORT_BITS - 1))) == 0) + { + n <<= 1; + --result; + } + } + + return (result); +} + +/****************************************************************************/ +/* */ + +unsigned int jbi_read_packed +( +#if PORT!=DOS + unsigned char *buffer, +#endif + unsigned int bits +) + +/* */ +/* Description: Read the next value from the input array "buffer". */ +/* Read only "bits" bits from the array. The amount of */ +/* bits that have already been read from "buffer" is */ +/* stored internally to this function. */ +/* */ +/* Returns: Up to 16 bit value. -1 if buffer overrun. */ +/* */ +/****************************************************************************/ +{ + unsigned int result = 0; + unsigned int shift = 0; + unsigned int databyte = 0; + + while (bits > 0) + { +#if PORT==DOS + databyte = GET_BYTE(jbi_aca_in_offset + jbi_in_index); +#else + databyte = buffer[jbi_in_index]; +#endif + result |= (((databyte >> (CHAR_BITS - jbi_bits_avail)) + & (0xFF >> (CHAR_BITS - jbi_bits_avail))) << shift); + + if (bits <= jbi_bits_avail) + { + result &= (0xFFFF >> (SHORT_BITS - (bits + shift))); + jbi_bits_avail -= bits; + bits = 0; + } + else + { + ++jbi_in_index; + shift += jbi_bits_avail; + bits -= jbi_bits_avail; + jbi_bits_avail = CHAR_BITS; + } + } + + return (result); +} + +#if PORT==DOS + +/****************************************************************************/ +/* */ + +void jbi_uncompress_next_page(int version) + +/* */ +/* Description: Uncompresses one page of compressed data, using */ +/* data page as reference for repeated sections. */ +/* Overwrites previous page of data in buffer. */ +/* */ +/* Returns: TRUE for success, FALSE if error encountered */ +/* */ +/****************************************************************************/ +{ + unsigned int i, j, offset, length; + unsigned int end_index; + unsigned long tmp_in_index = jbi_in_index; + unsigned int tmp_out_index = jbi_out_index; + unsigned int tmp_bits_avail = jbi_bits_avail; + unsigned int prev[3]; + unsigned long long_end; + unsigned int match_data_length = MATCH_DATA_LENGTH; + + if (version > 0) --match_data_length; + + if (jbi_current_page < 0) + { + /* this is the first page of the array */ + jbi_current_page = 0; + jbi_in_index = 4; /* skip over length field */ + jbi_out_index = 0; + end_index = (jbi_out_length < JBI_ACA_BUFFER_SIZE) ? + (unsigned int) jbi_out_length : JBI_ACA_BUFFER_SIZE; + } + else + { + /* this is not the first page */ + ++jbi_current_page; + jbi_out_index -= MATCH_DATA_LENGTH; + long_end = jbi_out_length - + ((long) jbi_current_page * (long) MATCH_DATA_LENGTH); + end_index = (long_end < JBI_ACA_BUFFER_SIZE) ? + (unsigned int) long_end : JBI_ACA_BUFFER_SIZE; + + /* copy extra data from end of circular buffer to beginning */ + for (i = 0; i < jbi_out_index; ++i) + { + jbi_aca_out_buffer[i] = jbi_aca_out_buffer[i + MATCH_DATA_LENGTH]; + } + } + + while (jbi_out_index < end_index) + { + /* save state so we can undo the last packet when we reach the end */ + tmp_in_index = jbi_in_index; + tmp_out_index = jbi_out_index; + tmp_bits_avail = jbi_bits_avail; + + /* A 0 bit indicates literal data. */ + if (jbi_read_packed(1) == 0) + { + for (i = 0; i < DATA_BLOB_LENGTH; ++i) + { + if (jbi_out_index < end_index) + { + if (version == 0) + { + prev[i] = jbi_aca_out_buffer[jbi_out_index] & 0xff; + } + jbi_aca_out_buffer[jbi_out_index++] = + (unsigned char) jbi_read_packed(CHAR_BITS); + } + } + } + else + { + /* A 1 bit indicates offset/length to follow. */ + offset = jbi_read_packed(jbi_bits_required( + (jbi_current_page > 0) ? match_data_length : + (jbi_out_index > match_data_length ? match_data_length : + jbi_out_index))); + length = jbi_read_packed(CHAR_BITS); + + if ((version == 0) && (offset == match_data_length + 3)) + { + jbi_aca_out_buffer[jbi_out_index++] = (unsigned char) prev[0]; + jbi_aca_out_buffer[jbi_out_index++] = (unsigned char) prev[1]; + jbi_aca_out_buffer[jbi_out_index++] = (unsigned char) prev[2]; + length -= 3; + } + + for (i = 0; i < length; ++i) + { + if (jbi_out_index < end_index) + { + if (offset > jbi_out_index) + { + j = jbi_out_index + MATCH_DATA_LENGTH - offset; + } + else j = jbi_out_index - offset; + jbi_aca_out_buffer[jbi_out_index] = jbi_aca_out_buffer[j]; + ++jbi_out_index; + } + } + + if (version == 0) + { + prev[0] = jbi_aca_out_buffer[jbi_out_index - 3] & 0xff; + prev[1] = jbi_aca_out_buffer[jbi_out_index - 2] & 0xff; + prev[2] = jbi_aca_out_buffer[jbi_out_index - 1] & 0xff; + } + } + } + + /* restore the state before the previous packet */ + jbi_in_index = tmp_in_index; + jbi_out_index = tmp_out_index; + jbi_bits_avail = tmp_bits_avail; +} + +/****************************************************************************/ +/* */ + +void jbi_uncompress_page +( + int variable_id, + int page, + int version +) + +/* */ +/* Description: Uncompress requested page of variable data. Stores */ +/* uncompressed data in jbi_aca_out_buffer[]. */ +/* */ +/* Returns: TRUE if successful, otherwise FALSE if: */ +/* 1) variable is not a compressed array */ +/* 2) compressed data is illegal or corrupted */ +/* 3) requested page is beyond the end of the array */ +/* 4) internal error in the code */ +/* */ +/****************************************************************************/ +{ + unsigned long symbol_table; + unsigned long data_section; + unsigned long offset; + unsigned long value; + int delta = version * 2; + + if (variable_id != jbi_current_variable_id) + { + /* initialize to uncompress the desired variable */ + symbol_table = GET_DWORD(16 + (version * 8)); + data_section = GET_DWORD(20 + (version * 8)); + offset = symbol_table + ((11 + delta) * variable_id); + value = GET_DWORD(offset + 3 + delta); + jbi_current_variable_id = variable_id; + jbi_current_page = -1; + jbi_bits_avail = CHAR_BITS; + jbi_in_length = GET_DWORD(offset + 7 + delta); + jbi_out_length = + (((unsigned long) GET_BYTE(data_section + value)) | + (((unsigned long) GET_BYTE(data_section + value + 1)) << 8) | + (((unsigned long) GET_BYTE(data_section + value + 2)) << 16) | + (((unsigned long) GET_BYTE(data_section + value + 3)) << 24)); + jbi_in_index = 4; /* skip over length field */ + jbi_out_index = 0; + jbi_aca_in_offset = data_section + value; + } + + /* to look back at an earlier page, start over at the beginning */ + if (page < jbi_current_page) + { + jbi_current_page = -1; + jbi_in_index = 4; /* skip over length field */ + jbi_bits_avail = CHAR_BITS; + } + + /* uncompress sequentially up to the desired page */ + while (page > jbi_current_page) + { + jbi_uncompress_next_page(version); + } +} + +#else + +/****************************************************************************/ +/* */ + +unsigned long jbi_uncompress +( + unsigned char *in, + unsigned long in_length, + unsigned char *out, + unsigned long out_length, + int version +) + +/* */ +/* Description: Uncompress data in "in" and write result to "out". */ +/* */ +/* Returns: Length of uncompressed data. -1 if: */ +/* 1) out_length is too small */ +/* 2) Internal error in the code */ +/* 3) in doesn't contain ACA compressed data. */ +/* */ +/****************************************************************************/ +{ +#ifdef CONFIG_64BIT + unsigned int data_length = 0; +#else + unsigned long data_length = 0L; +#endif + unsigned long i, j; + unsigned int offset, length; + unsigned int match_data_length = MATCH_DATA_LENGTH; + + if (version > 0) --match_data_length; + + jbi_in_length = in_length; + jbi_bits_avail = CHAR_BITS; + jbi_in_index = 0L; + for (i = 0; i < out_length; ++i) out[i] = 0; + + /* Read number of bytes in data. */ +#ifdef CONFIG_64BIT + for (i = 0; i < sizeof(unsigned int); ++i) + { + data_length = data_length | ((unsigned int) + jbi_read_packed(in, CHAR_BITS) << (i * CHAR_BITS)); + } +#else + for (i = 0; i < sizeof (in_length); ++i) + { + data_length = data_length | ((unsigned long) + jbi_read_packed(in, CHAR_BITS) << (i * CHAR_BITS)); + } +#endif + + if (data_length > out_length) + { +#ifdef CONFIG_64BIT + jbi_dbg(DEBUG_ERR, "data_length(0x%x,0x%lx)\n", + data_length, out_length); + data_length = 0; +#else + jbi_dbg(DEBUG_ERR, "data_length(0x%lx,0x%lx)\n", + data_length, out_length); + data_length = 0L; +#endif + } + else + { + i = 0; + while (i < data_length) + { + /* A 0 bit indicates literal data. */ + if (jbi_read_packed(in, 1) == 0) + { + for (j = 0; j < DATA_BLOB_LENGTH; ++j) + { + if (i < data_length) + { + out[i] = (unsigned char) jbi_read_packed(in, CHAR_BITS); + i++; + } + } + } + else + { + /* A 1 bit indicates offset/length to follow. */ + offset = jbi_read_packed(in, jbi_bits_required((short) (i > match_data_length ? match_data_length : i))); + length = jbi_read_packed(in, CHAR_BITS); + + for (j = 0; j < length; ++j) + { + if (i < data_length) + { + out[i] = out[i - offset]; + i++; + } + } + } + } + } + + return (data_length); +} + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h new file mode 100644 index 000000000000..4dacdcd5d773 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h @@ -0,0 +1,37 @@ +/****************************************************************************/ +/* */ +/* Module: jbicomp.h */ +/* */ +/* Copyright (C) Altera Corporation 1997-2001 */ +/* */ +/* Description: Contains the function prototypes for compressing */ +/* and uncompressing Boolean array data. */ +/* */ +/****************************************************************************/ + +#ifndef INC_JBICOMP_H +#define INC_JBICOMP_H + +#if PORT==DOS + +void jbi_uncompress_page +( + int variable_id, + int page, + int version +); + +#else + +unsigned long jbi_uncompress +( + unsigned char *in, + unsigned long in_length, + unsigned char *out, + unsigned long out_length, + int version +); + +#endif /* PORT==DOS */ + +#endif /* INC_JBICOMP_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h new file mode 100644 index 000000000000..ef4699dd6db3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h @@ -0,0 +1,224 @@ +/****************************************************************************/ +/* */ +/* Module: jbiexprt.h */ +/* */ +/* Copyright (C) Altera Corporation 1998-2001 */ +/* */ +/* Description: Jam STAPL ByteCode Player Export Header File */ +/* */ +/* Revisions: */ +/* */ +/****************************************************************************/ + +#ifndef INC_JBIEXPRT_H +#define INC_JBIEXPRT_H + +/****************************************************************************/ +/* */ +/* Return codes from most JBI functions */ +/* */ +/****************************************************************************/ + +#define JBI_RETURN_TYPE int + +#define JBIC_SUCCESS 0 +#define JBIC_OUT_OF_MEMORY 1 +#define JBIC_IO_ERROR 2 +/* #define JAMC_SYNTAX_ERROR 3 */ +#define JBIC_UNEXPECTED_END 4 +#define JBIC_UNDEFINED_SYMBOL 5 +/* #define JAMC_REDEFINED_SYMBOL 6 */ +#define JBIC_INTEGER_OVERFLOW 7 +#define JBIC_DIVIDE_BY_ZERO 8 +#define JBIC_CRC_ERROR 9 +#define JBIC_INTERNAL_ERROR 10 +#define JBIC_BOUNDS_ERROR 11 +/* #define JAMC_TYPE_MISMATCH 12 */ +/* #define JAMC_ASSIGN_TO_CONST 13 */ +/* #define JAMC_NEXT_UNEXPECTED 14 */ +/* #define JAMC_POP_UNEXPECTED 15 */ +/* #define JAMC_RETURN_UNEXPECTED 16 */ +/* #define JAMC_ILLEGAL_SYMBOL 17 */ +#define JBIC_VECTOR_MAP_FAILED 18 +#define JBIC_USER_ABORT 19 +#define JBIC_STACK_OVERFLOW 20 +#define JBIC_ILLEGAL_OPCODE 21 +/* #define JAMC_PHASE_ERROR 22 */ +/* #define JAMC_SCOPE_ERROR 23 */ +#define JBIC_ACTION_NOT_FOUND 24 + +/****************************************************************************/ +/* */ +/* Macro Definitions */ +/* */ +/****************************************************************************/ + +/* +* For DOS port, program data is stored in a set of 16K pages, accessed +* through a pointer table. For 32-bit version, the buffer is continuous. +* The macro GET_BYTE gets a single byte for either case. +*/ +#if PORT==DOS +#define PROGRAM_PTR unsigned char ** +#else +#define PROGRAM_PTR unsigned char * +#endif + +#if PORT==DOS +#define GET_BYTE(x) (jbi_program[(x) >> 14L][(x) & 0x3fffL]) +#else +#define GET_BYTE(x) (program[x]) +#endif + +#define GET_WORD(x) \ + (((((unsigned short) GET_BYTE(x)) << 8) & 0xFF00) | \ + (((unsigned short) GET_BYTE((x)+1)) & 0x00FF)) + +#define GET_DWORD(x) \ + (((((unsigned long) GET_BYTE(x)) << 24L) & 0xFF000000L) | \ + ((((unsigned long) GET_BYTE((x)+1)) << 16L) & 0x00FF0000L) | \ + ((((unsigned long) GET_BYTE((x)+2)) << 8L) & 0x0000FF00L) | \ + (((unsigned long) GET_BYTE((x)+3)) & 0x000000FFL)) + +/****************************************************************************/ +/* */ +/* Structured Types */ +/* */ +/****************************************************************************/ + +typedef struct JBI_PROCINFO_STRUCT +{ + char *name; + unsigned char attributes; + struct JBI_PROCINFO_STRUCT *next; +} +JBI_PROCINFO; + +/****************************************************************************/ +/* */ +/* Global Data Prototypes */ +/* */ +/****************************************************************************/ + +#if PORT==DOS +extern unsigned char jbi_aca_out_buffer[8192 + 1024]; +#endif + +extern PROGRAM_PTR jbi_program; + +extern char *jbi_workspace; + +extern long jbi_workspace_size; + +/****************************************************************************/ +/* */ +/* Function Prototypes */ +/* */ +/****************************************************************************/ + +JBI_RETURN_TYPE jbi_execute +( + PROGRAM_PTR program, + long program_size, + char *workspace, + long workspace_size, + char *action, + char **init_list, + int reset_jtag, + long *error_address, + int *exit_code, + int *format_version +); + +JBI_RETURN_TYPE jbi_get_note +( + PROGRAM_PTR program, + long program_size, + long *offset, + char *key, + char *value, + int length +); + +JBI_RETURN_TYPE jbi_check_crc +( + PROGRAM_PTR program, + long program_size, + unsigned short *expected_crc, + unsigned short *actual_crc +); + +JBI_RETURN_TYPE jbi_get_file_info +( + PROGRAM_PTR program, + long program_size, + int *format_version, + int *action_count, + int *procedure_count +); + +JBI_RETURN_TYPE jbi_get_action_info +( + PROGRAM_PTR program, + long program_size, + int index, + char **name, + char **description, + JBI_PROCINFO **procedure_list +); + +int jbi_jtag_io +( + int tms, + int tdi, + int read_tdo +); + +void jbi_message +( + char *message_text +); + +void jbi_export_integer +( + char *key, + long value +); + +void jbi_export_boolean_array +( + char *key, + unsigned char *data, + long count +); + +void jbi_delay +( + long microseconds +); + +int jbi_vector_map +( + int signal_count, + char **signals +); + +int jbi_vector_io +( + int signal_count, + long *dir_vect, + long *data_vect, + long *capture_vect +); + +void *jbi_malloc +( + unsigned int size +); + +void jbi_free +( + void *ptr +); + +#endif /* INC_JBIEXPRT_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c new file mode 100644 index 000000000000..f013100eecb8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c @@ -0,0 +1,1679 @@ +/****************************************************************************/ +/* */ +/* Module: jbijtag.c */ +/* */ +/* Copyright (C) Altera Corporation 1998-2001 */ +/* */ +/* Description: Contains JTAG interface functions */ +/* */ +/* Revisions: 2.2 updated state transition paths */ +/* 2.0 added multi-page scan code for 16-bit PORT */ +/* */ +/****************************************************************************/ + +#include "jbiport.h" +#include "jbiexprt.h" +#include "jbicomp.h" +#include "jbijtag.h" + +#define NULL 0 + +char *jbi_workspace = NULL; +long jbi_workspace_size = 0L; + +/****************************************************************************/ +/* */ +/* Enumerated Types */ +/* */ +/****************************************************************************/ + +/* maximum JTAG IR and DR lengths (in bits) */ +#define JBIC_MAX_JTAG_IR_PREAMBLE 256 +#define JBIC_MAX_JTAG_IR_POSTAMBLE 256 +#define JBIC_MAX_JTAG_IR_LENGTH 512 +#define JBIC_MAX_JTAG_DR_PREAMBLE 1024 +#define JBIC_MAX_JTAG_DR_POSTAMBLE 1024 +#define JBIC_MAX_JTAG_DR_LENGTH 2048 + +/* +* Global variable to store the current JTAG state +*/ +JBIE_JTAG_STATE jbi_jtag_state = JBI_ILLEGAL_JTAG_STATE; + +/* +* Store current stop-state for DR and IR scan commands +*/ +JBIE_JTAG_STATE jbi_drstop_state = IDLE; +JBIE_JTAG_STATE jbi_irstop_state = IDLE; + +/* +* Store current padding values +*/ +unsigned int jbi_dr_preamble = 0; +unsigned int jbi_dr_postamble = 0; +unsigned int jbi_ir_preamble = 0; +unsigned int jbi_ir_postamble = 0; +unsigned int jbi_dr_length = 0; +unsigned int jbi_ir_length = 0; +unsigned char *jbi_dr_preamble_data = NULL; +unsigned char *jbi_dr_postamble_data = NULL; +unsigned char *jbi_ir_preamble_data = NULL; +unsigned char *jbi_ir_postamble_data = NULL; +unsigned char *jbi_dr_buffer = NULL; +unsigned char *jbi_ir_buffer = NULL; + +/* +* This structure shows, for each JTAG state, which state is reached after +* a single TCK clock cycle with TMS high or TMS low, respectively. This +* describes all possible state transitions in the JTAG state machine. +*/ +struct JBIS_JTAG_MACHINE +{ + JBIE_JTAG_STATE tms_high; + JBIE_JTAG_STATE tms_low; +} jbi_jtag_state_transitions[] = +{ +/* RESET */ { RESET, IDLE }, +/* IDLE */ { DRSELECT, IDLE }, +/* DRSELECT */ { IRSELECT, DRCAPTURE }, +/* DRCAPTURE */ { DREXIT1, DRSHIFT }, +/* DRSHIFT */ { DREXIT1, DRSHIFT }, +/* DREXIT1 */ { DRUPDATE, DRPAUSE }, +/* DRPAUSE */ { DREXIT2, DRPAUSE }, +/* DREXIT2 */ { DRUPDATE, DRSHIFT }, +/* DRUPDATE */ { DRSELECT, IDLE }, +/* IRSELECT */ { RESET, IRCAPTURE }, +/* IRCAPTURE */ { IREXIT1, IRSHIFT }, +/* IRSHIFT */ { IREXIT1, IRSHIFT }, +/* IREXIT1 */ { IRUPDATE, IRPAUSE }, +/* IRPAUSE */ { IREXIT2, IRPAUSE }, +/* IREXIT2 */ { IRUPDATE, IRSHIFT }, +/* IRUPDATE */ { DRSELECT, IDLE } +}; + +/* +* This table contains the TMS value to be used to take the NEXT STEP on +* the path to the desired state. The array index is the current state, +* and the bit position is the desired endstate. To find out which state +* is used as the intermediate state, look up the TMS value in the +* jbi_jtag_state_transitions[] table. +*/ +unsigned short jbi_jtag_path_map[16] = +{ +/* RST RTI SDRS CDR SDR E1DR PDR E2DR */ + 0x0001, 0xFFFD, 0xFE01, 0xFFE7, 0xFFEF, 0xFF0F, 0xFFBF, 0xFFFF, +/* UDR SIRS CIR SIR E1IR PIR E2IR UIR */ + 0xFEFD, 0x0001, 0xF3FF, 0xF7FF, 0x87FF, 0xDFFF, 0xFFFF, 0x7FFD +}; + +/* +* Flag bits for jbi_jtag_io() function +*/ +#define TMS_HIGH 1 +#define TMS_LOW 0 +#define TDI_HIGH 1 +#define TDI_LOW 0 +#define READ_TDO 1 +#define IGNORE_TDO 0 + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_init_jtag() + +/* */ +/****************************************************************************/ +{ + /* initial JTAG state is unknown */ + jbi_jtag_state = JBI_ILLEGAL_JTAG_STATE; + + /* initialize global variables to default state */ + jbi_drstop_state = IDLE; + jbi_irstop_state = IDLE; + jbi_dr_preamble = 0; + jbi_dr_postamble = 0; + jbi_ir_preamble = 0; + jbi_ir_postamble = 0; + jbi_dr_length = 0; + jbi_ir_length = 0; + + if (jbi_workspace != NULL) + { + jbi_dr_preamble_data = (unsigned char *) jbi_workspace; + jbi_dr_postamble_data = &jbi_dr_preamble_data[JBIC_MAX_JTAG_DR_PREAMBLE / 8]; + jbi_ir_preamble_data = &jbi_dr_postamble_data[JBIC_MAX_JTAG_DR_POSTAMBLE / 8]; + jbi_ir_postamble_data = &jbi_ir_preamble_data[JBIC_MAX_JTAG_IR_PREAMBLE / 8]; + jbi_dr_buffer = &jbi_ir_postamble_data[JBIC_MAX_JTAG_IR_POSTAMBLE / 8]; + jbi_ir_buffer = &jbi_dr_buffer[JBIC_MAX_JTAG_DR_LENGTH / 8]; + } + else + { + jbi_dr_preamble_data = NULL; + jbi_dr_postamble_data = NULL; + jbi_ir_preamble_data = NULL; + jbi_ir_postamble_data = NULL; + jbi_dr_buffer = NULL; + jbi_ir_buffer = NULL; + } + + return (JBIC_SUCCESS); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_set_drstop_state +( + JBIE_JTAG_STATE state +) + +/* */ +/****************************************************************************/ +{ + jbi_drstop_state = state; + + return (JBIC_SUCCESS); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_set_irstop_state +( + JBIE_JTAG_STATE state +) + +/* */ +/****************************************************************************/ +{ + jbi_irstop_state = state; + + return (JBIC_SUCCESS); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_set_dr_preamble +( + unsigned int count, + unsigned int start_index, + unsigned char *preamble_data +) + +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned int i; + unsigned int j; + + if (jbi_workspace != NULL) + { + if (count > JBIC_MAX_JTAG_DR_PREAMBLE) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_dr_preamble = count; + } + } + else + { + if (count > jbi_dr_preamble) + { + jbi_free(jbi_dr_preamble_data); + jbi_dr_preamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); + + if (jbi_dr_preamble_data == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_dr_preamble = count; + } + } + else + { + jbi_dr_preamble = count; + } + } + + if (status == JBIC_SUCCESS) + { + for (i = 0; i < count; ++i) + { + j = i + start_index; + + if (preamble_data == NULL) + { + jbi_dr_preamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + if (preamble_data[j >> 3] & (1 << (j & 7))) + { + jbi_dr_preamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + jbi_dr_preamble_data[i >> 3] &= + ~(unsigned int) (1 << (i & 7)); + } + } + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_set_ir_preamble +( + unsigned int count, + unsigned int start_index, + unsigned char *preamble_data +) + +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned int i; + unsigned int j; + + if (jbi_workspace != NULL) + { + if (count > JBIC_MAX_JTAG_IR_PREAMBLE) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_ir_preamble = count; + } + } + else + { + if (count > jbi_ir_preamble) + { + jbi_free(jbi_ir_preamble_data); + jbi_ir_preamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); + + if (jbi_ir_preamble_data == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_ir_preamble = count; + } + } + else + { + jbi_ir_preamble = count; + } + } + + if (status == JBIC_SUCCESS) + { + for (i = 0; i < count; ++i) + { + j = i + start_index; + + if (preamble_data == NULL) + { + jbi_ir_preamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + if (preamble_data[j >> 3] & (1 << (j & 7))) + { + jbi_ir_preamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + jbi_ir_preamble_data[i >> 3] &= + ~(unsigned int) (1 << (i & 7)); + } + } + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_set_dr_postamble +( + unsigned int count, + unsigned int start_index, + unsigned char *postamble_data +) + +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned int i; + unsigned int j; + + if (jbi_workspace != NULL) + { + if (count > JBIC_MAX_JTAG_DR_POSTAMBLE) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_dr_postamble = count; + } + } + else + { + if (count > jbi_dr_postamble) + { + jbi_free(jbi_dr_postamble_data); + jbi_dr_postamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); + + if (jbi_dr_postamble_data == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_dr_postamble = count; + } + } + else + { + jbi_dr_postamble = count; + } + } + + if (status == JBIC_SUCCESS) + { + for (i = 0; i < count; ++i) + { + j = i + start_index; + + if (postamble_data == NULL) + { + jbi_dr_postamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + if (postamble_data[j >> 3] & (1 << (j & 7))) + { + jbi_dr_postamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + jbi_dr_postamble_data[i >> 3] &= + ~(unsigned int) (1 << (i & 7)); + } + } + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_set_ir_postamble +( + unsigned int count, + unsigned int start_index, + unsigned char *postamble_data +) + +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned int i; + unsigned int j; + + if (jbi_workspace != NULL) + { + if (count > JBIC_MAX_JTAG_IR_POSTAMBLE) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_ir_postamble = count; + } + } + else + { + if (count > jbi_ir_postamble) + { + jbi_free(jbi_ir_postamble_data); + jbi_ir_postamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); + + if (jbi_ir_postamble_data == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_ir_postamble = count; + } + } + else + { + jbi_ir_postamble = count; + } + } + + if (status == JBIC_SUCCESS) + { + for (i = 0; i < count; ++i) + { + j = i + start_index; + + if (postamble_data == NULL) + { + jbi_ir_postamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + if (postamble_data[j >> 3] & (1 << (j & 7))) + { + jbi_ir_postamble_data[i >> 3] |= (1 << (i & 7)); + } + else + { + jbi_ir_postamble_data[i >> 3] &= + ~(unsigned int) (1 << (i & 7)); + } + } + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +void jbi_jtag_reset_idle(void) + +/* */ +/****************************************************************************/ +{ + int i; + + /* + * Go to Test Logic Reset (no matter what the starting state may be) + */ + for (i = 0; i < 5; ++i) + { + jbi_jtag_io(TMS_HIGH, TDI_LOW, IGNORE_TDO); + } + + /* + * Now step to Run Test / Idle + */ + jbi_jtag_io(TMS_LOW, TDI_LOW, IGNORE_TDO); + + jbi_jtag_state = IDLE; +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_goto_jtag_state +( + JBIE_JTAG_STATE state +) + +/* */ +/****************************************************************************/ +{ + int tms; + int count = 0; + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned int tmp_state; + + if (jbi_jtag_state == JBI_ILLEGAL_JTAG_STATE) + { + /* initialize JTAG chain to known state */ + jbi_jtag_reset_idle(); + } + + if (jbi_jtag_state == state) + { + /* + * We are already in the desired state. If it is a stable state, + * loop here. Otherwise do nothing (no clock cycles). + */ + if ((state == IDLE) || + (state == DRSHIFT) || + (state == DRPAUSE) || + (state == IRSHIFT) || + (state == IRPAUSE)) + { + jbi_jtag_io(TMS_LOW, TDI_LOW, IGNORE_TDO); + } + else if (state == RESET) + { + jbi_jtag_io(TMS_HIGH, TDI_LOW, IGNORE_TDO); + } + } + else + { + while ((jbi_jtag_state != state) && (count < 9)) + { + /* + * Get TMS value to take a step toward desired state + */ + if (state < 0) { + tmp_state = 0; + } else { + tmp_state = state; + } + tms = (jbi_jtag_path_map[jbi_jtag_state] & (1 << tmp_state)) ? + TMS_HIGH : TMS_LOW; + + /* + * Take a step + */ + jbi_jtag_io(tms, TDI_LOW, IGNORE_TDO); + + if (tms) + { + jbi_jtag_state = + jbi_jtag_state_transitions[jbi_jtag_state].tms_high; + } + else + { + jbi_jtag_state = + jbi_jtag_state_transitions[jbi_jtag_state].tms_low; + } + + ++count; + } + } + + if (jbi_jtag_state != state) + { + status = JBIC_INTERNAL_ERROR; + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_do_wait_cycles +( + long cycles, + JBIE_JTAG_STATE wait_state +) + +/* */ +/* Description: Causes JTAG hardware to loop in the specified stable */ +/* state for the specified number of TCK clock cycles. */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + int tms; + long count; + JBI_RETURN_TYPE status = JBIC_SUCCESS; + + if (jbi_jtag_state != wait_state) + { + status = jbi_goto_jtag_state(wait_state); + } + + if (status == JBIC_SUCCESS) + { + /* + * Set TMS high to loop in RESET state + * Set TMS low to loop in any other stable state + */ + tms = (wait_state == RESET) ? TMS_HIGH : TMS_LOW; + + for (count = 0L; count < cycles; count++) + { + jbi_jtag_io(tms, TDI_LOW, IGNORE_TDO); + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_do_wait_microseconds +( + long microseconds, + JBIE_JTAG_STATE wait_state +) + +/* */ +/* Description: Causes JTAG hardware to sit in the specified stable */ +/* state for the specified duration of real time. If */ +/* no JTAG operations have been performed yet, then only */ +/* a delay is performed. This permits the WAIT USECS */ +/* statement to be used in VECTOR programs without causing */ +/* any JTAG operations. */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + + if ((jbi_jtag_state != JBI_ILLEGAL_JTAG_STATE) && + (jbi_jtag_state != wait_state)) + { + status = jbi_goto_jtag_state(wait_state); + } + + if (status == JBIC_SUCCESS) + { + /* + * Wait for specified time interval + */ + jbi_delay(microseconds); + } + + return (status); +} + +/****************************************************************************/ +/* */ + +void jbi_jtag_concatenate_data +( + unsigned char *buffer, + unsigned char *preamble_data, + unsigned int preamble_count, + unsigned char *target_data, + unsigned long start_index, + unsigned int target_count, + unsigned char *postamble_data, + unsigned int postamble_count +) + +/* */ +/* Description: Copies preamble data, target data, and postamble data */ +/* into one buffer for IR or DR scans. */ +/* */ +/* Returns: nothing */ +/* */ +/****************************************************************************/ +{ + unsigned long i; + unsigned long j; + unsigned long k; + + for (i = 0L; i < preamble_count; ++i) + { + if (preamble_data[i >> 3L] & (1L << (i & 7L))) + { + buffer[i >> 3L] |= (1L << (i & 7L)); + } + else + { + buffer[i >> 3L] &= ~(unsigned int) (1L << (i & 7L)); + } + } + + j = start_index; + k = preamble_count + target_count; + for (; i < k; ++i, ++j) + { + if (target_data[j >> 3L] & (1L << (j & 7L))) + { + buffer[i >> 3L] |= (1L << (i & 7L)); + } + else + { + buffer[i >> 3L] &= ~(unsigned int) (1L << (i & 7L)); + } + } + + j = 0L; + k = preamble_count + target_count + postamble_count; + for (; i < k; ++i, ++j) + { + if (postamble_data[j >> 3L] & (1L << (j & 7L))) + { + buffer[i >> 3L] |= (1L << (i & 7L)); + } + else + { + buffer[i >> 3L] &= ~(unsigned int) (1L << (i & 7L)); + } + } +} + +int jbi_jtag_drscan +( + int start_state, + int count, + unsigned char *tdi, + unsigned char *tdo +) +{ + int i = 0; + int tdo_bit = 0; + int status = 1; + + /* + * First go to DRSHIFT state + */ + switch (start_state) + { + case 0: /* IDLE */ + jbi_jtag_io(1, 0, 0); /* DRSELECT */ + jbi_jtag_io(0, 0, 0); /* DRCAPTURE */ + jbi_jtag_io(0, 0, 0); /* DRSHIFT */ + break; + + case 1: /* DRPAUSE */ + jbi_jtag_io(1, 0, 0); /* DREXIT2 */ + jbi_jtag_io(1, 0, 0); /* DRUPDATE */ + jbi_jtag_io(1, 0, 0); /* DRSELECT */ + jbi_jtag_io(0, 0, 0); /* DRCAPTURE */ + jbi_jtag_io(0, 0, 0); /* DRSHIFT */ + break; + + case 2: /* IRPAUSE */ + jbi_jtag_io(1, 0, 0); /* IREXIT2 */ + jbi_jtag_io(1, 0, 0); /* IRUPDATE */ + jbi_jtag_io(1, 0, 0); /* DRSELECT */ + jbi_jtag_io(0, 0, 0); /* DRCAPTURE */ + jbi_jtag_io(0, 0, 0); /* DRSHIFT */ + break; + + default: + status = 0; + } + + if (status) + { + /* loop in the SHIFT-DR state */ + for (i = 0; i < count; i++) + { + tdo_bit = jbi_jtag_io( + (i == count - 1), + tdi[i >> 3] & (1 << (i & 7)), + (tdo != NULL)); + + if (tdo != NULL) + { + if (tdo_bit) + { + tdo[i >> 3] |= (1 << (i & 7)); + } + else + { + tdo[i >> 3] &= ~(unsigned int) (1 << (i & 7)); + } + } + } + + jbi_jtag_io(0, 0, 0); /* DRPAUSE */ + } + + return (status); +} + +int jbi_jtag_irscan +( + int start_state, + int count, + unsigned char *tdi, + unsigned char *tdo +) +{ + int i = 0; + int tdo_bit = 0; + int status = 1; + + /* + * First go to IRSHIFT state + */ + switch (start_state) + { + case 0: /* IDLE */ + jbi_jtag_io(1, 0, 0); /* DRSELECT */ + jbi_jtag_io(1, 0, 0); /* IRSELECT */ + jbi_jtag_io(0, 0, 0); /* IRCAPTURE */ + jbi_jtag_io(0, 0, 0); /* IRSHIFT */ + break; + + case 1: /* DRPAUSE */ + jbi_jtag_io(1, 0, 0); /* DREXIT2 */ + jbi_jtag_io(1, 0, 0); /* DRUPDATE */ + jbi_jtag_io(1, 0, 0); /* DRSELECT */ + jbi_jtag_io(1, 0, 0); /* IRSELECT */ + jbi_jtag_io(0, 0, 0); /* IRCAPTURE */ + jbi_jtag_io(0, 0, 0); /* IRSHIFT */ + break; + + case 2: /* IRPAUSE */ + jbi_jtag_io(1, 0, 0); /* IREXIT2 */ + jbi_jtag_io(1, 0, 0); /* IRUPDATE */ + jbi_jtag_io(1, 0, 0); /* DRSELECT */ + jbi_jtag_io(1, 0, 0); /* IRSELECT */ + jbi_jtag_io(0, 0, 0); /* IRCAPTURE */ + jbi_jtag_io(0, 0, 0); /* IRSHIFT */ + break; + + default: + status = 0; + } + + if (status) + { + /* loop in the SHIFT-IR state */ + for (i = 0; i < count; i++) + { + tdo_bit = jbi_jtag_io( + (i == count - 1), + tdi[i >> 3] & (1 << (i & 7)), + (tdo != NULL)); + + if (tdo != NULL) + { + if (tdo_bit) + { + tdo[i >> 3] |= (1 << (i & 7)); + } + else + { + tdo[i >> 3] &= ~(unsigned int) (1 << (i & 7)); + } + } + } + + jbi_jtag_io(0, 0, 0); /* IRPAUSE */ + } + + return (status); +} + +/****************************************************************************/ +/* */ + +void jbi_jtag_extract_target_data +( + unsigned char *buffer, + unsigned char *target_data, + unsigned int start_index, + unsigned int preamble_count, + unsigned int target_count +) + +/* */ +/* Description: Copies target data from scan buffer, filtering out */ +/* preamble and postamble data. */ +/* */ +/* Returns: nothing */ +/* */ +/****************************************************************************/ +{ + unsigned int i; + unsigned int j; + unsigned int k; + + j = preamble_count; + k = start_index + target_count; + for (i = start_index; i < k; ++i, ++j) + { + if (buffer[j >> 3] & (1 << (j & 7))) + { + target_data[i >> 3] |= (1 << (i & 7)); + } + else + { + target_data[i >> 3] &= ~(unsigned int) (1 << (i & 7)); + } + } +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_do_irscan +( + unsigned int count, + unsigned char *tdi_data, + unsigned int start_index +) + +/* */ +/* Description: Shifts data into instruction register */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + int start_code = 0; + unsigned int alloc_chars = 0; + unsigned int shift_count = jbi_ir_preamble + count + jbi_ir_postamble; + JBI_RETURN_TYPE status = JBIC_SUCCESS; + JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; + + switch (jbi_jtag_state) + { + case JBI_ILLEGAL_JTAG_STATE: + case RESET: + case IDLE: + start_code = 0; + start_state = IDLE; + break; + + case DRSELECT: + case DRCAPTURE: + case DRSHIFT: + case DREXIT1: + case DRPAUSE: + case DREXIT2: + case DRUPDATE: + start_code = 1; + start_state = DRPAUSE; + break; + + case IRSELECT: + case IRCAPTURE: + case IRSHIFT: + case IREXIT1: + case IRPAUSE: + case IREXIT2: + case IRUPDATE: + start_code = 2; + start_state = IRPAUSE; + break; + + default: + status = JBIC_INTERNAL_ERROR; + break; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_jtag_state != start_state) + { + status = jbi_goto_jtag_state(start_state); + } + } + + if (status == JBIC_SUCCESS) + { + if (jbi_workspace != NULL) + { + if (shift_count > JBIC_MAX_JTAG_IR_LENGTH) + { + status = JBIC_OUT_OF_MEMORY; + } + } + else if (shift_count > jbi_ir_length) + { + alloc_chars = (shift_count + 7) >> 3; + jbi_free(jbi_ir_buffer); + jbi_ir_buffer = (unsigned char *) jbi_malloc(alloc_chars); + + if (jbi_ir_buffer == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_ir_length = alloc_chars * 8; + } + } + } + + if (status == JBIC_SUCCESS) + { + /* + * Copy preamble data, IR data, and postamble data into a buffer + */ + jbi_jtag_concatenate_data + ( + jbi_ir_buffer, + jbi_ir_preamble_data, + jbi_ir_preamble, + tdi_data, + start_index, + count, + jbi_ir_postamble_data, + jbi_ir_postamble + ); + + /* + * Do the IRSCAN + */ + jbi_jtag_irscan + ( + start_code, + shift_count, + jbi_ir_buffer, + NULL + ); + + /* jbi_jtag_irscan() always ends in IRPAUSE state */ + jbi_jtag_state = IRPAUSE; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_irstop_state != IRPAUSE) + { + status = jbi_goto_jtag_state(jbi_irstop_state); + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_swap_ir +( + unsigned int count, + unsigned char *in_data, + unsigned int in_index, + unsigned char *out_data, + unsigned int out_index +) + +/* */ +/* Description: Shifts data into instruction register, capturing output */ +/* data */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + int start_code = 0; + unsigned int alloc_chars = 0; + unsigned int shift_count = jbi_ir_preamble + count + jbi_ir_postamble; + JBI_RETURN_TYPE status = JBIC_SUCCESS; + JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; + + switch (jbi_jtag_state) + { + case JBI_ILLEGAL_JTAG_STATE: + case RESET: + case IDLE: + start_code = 0; + start_state = IDLE; + break; + + case DRSELECT: + case DRCAPTURE: + case DRSHIFT: + case DREXIT1: + case DRPAUSE: + case DREXIT2: + case DRUPDATE: + start_code = 1; + start_state = DRPAUSE; + break; + + case IRSELECT: + case IRCAPTURE: + case IRSHIFT: + case IREXIT1: + case IRPAUSE: + case IREXIT2: + case IRUPDATE: + start_code = 2; + start_state = IRPAUSE; + break; + + default: + status = JBIC_INTERNAL_ERROR; + break; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_jtag_state != start_state) + { + status = jbi_goto_jtag_state(start_state); + } + } + + if (status == JBIC_SUCCESS) + { + if (jbi_workspace != NULL) + { + if (shift_count > JBIC_MAX_JTAG_IR_LENGTH) + { + status = JBIC_OUT_OF_MEMORY; + } + } + else if (shift_count > jbi_ir_length) + { + alloc_chars = (shift_count + 7) >> 3; + jbi_free(jbi_ir_buffer); + jbi_ir_buffer = (unsigned char *) jbi_malloc(alloc_chars); + + if (jbi_ir_buffer == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_ir_length = alloc_chars * 8; + } + } + } + + if (status == JBIC_SUCCESS) + { + /* + * Copy preamble data, IR data, and postamble data into a buffer + */ + jbi_jtag_concatenate_data + ( + jbi_ir_buffer, + jbi_ir_preamble_data, + jbi_ir_preamble, + in_data, + in_index, + count, + jbi_ir_postamble_data, + jbi_ir_postamble + ); + + /* + * Do the IRSCAN + */ + jbi_jtag_irscan + ( + start_code, + shift_count, + jbi_ir_buffer, + jbi_ir_buffer + ); + + /* jbi_jtag_irscan() always ends in IRPAUSE state */ + jbi_jtag_state = IRPAUSE; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_irstop_state != IRPAUSE) + { + status = jbi_goto_jtag_state(jbi_irstop_state); + } + } + + if (status == JBIC_SUCCESS) + { + /* + * Now extract the returned data from the buffer + */ + jbi_jtag_extract_target_data + ( + jbi_ir_buffer, + out_data, + out_index, + jbi_ir_preamble, + count + ); + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_do_drscan +( + unsigned int count, + unsigned char *tdi_data, + unsigned long start_index +) + +/* */ +/* Description: Shifts data into data register (ignoring output data) */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + int start_code = 0; + unsigned int alloc_chars = 0; + unsigned int shift_count = jbi_dr_preamble + count + jbi_dr_postamble; + JBI_RETURN_TYPE status = JBIC_SUCCESS; + JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; + + switch (jbi_jtag_state) + { + case JBI_ILLEGAL_JTAG_STATE: + case RESET: + case IDLE: + start_code = 0; + start_state = IDLE; + break; + + case DRSELECT: + case DRCAPTURE: + case DRSHIFT: + case DREXIT1: + case DRPAUSE: + case DREXIT2: + case DRUPDATE: + start_code = 1; + start_state = DRPAUSE; + break; + + case IRSELECT: + case IRCAPTURE: + case IRSHIFT: + case IREXIT1: + case IRPAUSE: + case IREXIT2: + case IRUPDATE: + start_code = 2; + start_state = IRPAUSE; + break; + + default: + status = JBIC_INTERNAL_ERROR; + break; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_jtag_state != start_state) + { + status = jbi_goto_jtag_state(start_state); + } + } + + if (status == JBIC_SUCCESS) + { + if (jbi_workspace != NULL) + { + if (shift_count > JBIC_MAX_JTAG_DR_LENGTH) + { + status = JBIC_OUT_OF_MEMORY; + } + } + else if (shift_count > jbi_dr_length) + { + alloc_chars = (shift_count + 7) >> 3; + jbi_free(jbi_dr_buffer); + jbi_dr_buffer = (unsigned char *) jbi_malloc(alloc_chars); + + if (jbi_dr_buffer == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_dr_length = alloc_chars * 8; + } + } + } + + if (status == JBIC_SUCCESS) + { + /* + * Copy preamble data, DR data, and postamble data into a buffer + */ + jbi_jtag_concatenate_data + ( + jbi_dr_buffer, + jbi_dr_preamble_data, + jbi_dr_preamble, + tdi_data, + start_index, + count, + jbi_dr_postamble_data, + jbi_dr_postamble + ); + + /* + * Do the DRSCAN + */ + jbi_jtag_drscan + ( + start_code, + shift_count, + jbi_dr_buffer, + NULL + ); + + /* jbi_jtag_drscan() always ends in DRPAUSE state */ + jbi_jtag_state = DRPAUSE; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_drstop_state != DRPAUSE) + { + status = jbi_goto_jtag_state(jbi_drstop_state); + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_swap_dr +( + unsigned int count, + unsigned char *in_data, + unsigned long in_index, + unsigned char *out_data, + unsigned int out_index +) + +/* */ +/* Description: Shifts data into data register, capturing output data */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + int start_code = 0; + unsigned int alloc_chars = 0; + unsigned int shift_count = jbi_dr_preamble + count + jbi_dr_postamble; + JBI_RETURN_TYPE status = JBIC_SUCCESS; + JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; + + switch (jbi_jtag_state) + { + case JBI_ILLEGAL_JTAG_STATE: + case RESET: + case IDLE: + start_code = 0; + start_state = IDLE; + break; + + case DRSELECT: + case DRCAPTURE: + case DRSHIFT: + case DREXIT1: + case DRPAUSE: + case DREXIT2: + case DRUPDATE: + start_code = 1; + start_state = DRPAUSE; + break; + + case IRSELECT: + case IRCAPTURE: + case IRSHIFT: + case IREXIT1: + case IRPAUSE: + case IREXIT2: + case IRUPDATE: + start_code = 2; + start_state = IRPAUSE; + break; + + default: + status = JBIC_INTERNAL_ERROR; + break; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_jtag_state != start_state) + { + status = jbi_goto_jtag_state(start_state); + } + } + + if (status == JBIC_SUCCESS) + { + if (jbi_workspace != NULL) + { + if (shift_count > JBIC_MAX_JTAG_DR_LENGTH) + { + status = JBIC_OUT_OF_MEMORY; + } + } + else if (shift_count > jbi_dr_length) + { + alloc_chars = (shift_count + 7) >> 3; + jbi_free(jbi_dr_buffer); + jbi_dr_buffer = (unsigned char *) jbi_malloc(alloc_chars); + + if (jbi_dr_buffer == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + jbi_dr_length = alloc_chars * 8; + } + } + } + + if (status == JBIC_SUCCESS) + { + /* + * Copy preamble data, DR data, and postamble data into a buffer + */ + jbi_jtag_concatenate_data + ( + jbi_dr_buffer, + jbi_dr_preamble_data, + jbi_dr_preamble, + in_data, + in_index, + count, + jbi_dr_postamble_data, + jbi_dr_postamble + ); + + /* + * Do the DRSCAN + */ + jbi_jtag_drscan + ( + start_code, + shift_count, + jbi_dr_buffer, + jbi_dr_buffer + ); + + /* jbi_jtag_drscan() always ends in DRPAUSE state */ + jbi_jtag_state = DRPAUSE; + } + + if (status == JBIC_SUCCESS) + { + if (jbi_drstop_state != DRPAUSE) + { + status = jbi_goto_jtag_state(jbi_drstop_state); + } + } + + if (status == JBIC_SUCCESS) + { + /* + * Now extract the returned data from the buffer + */ + jbi_jtag_extract_target_data + ( + jbi_dr_buffer, + out_data, + out_index, + jbi_dr_preamble, + count + ); + } + + return (status); +} + +/****************************************************************************/ +/* */ + +void jbi_free_jtag_padding_buffers(int reset_jtag) + +/* */ +/* Description: Frees memory allocated for JTAG IR and DR buffers */ +/* */ +/* Returns: nothing */ +/* */ +/****************************************************************************/ +{ + /* + * If the JTAG interface was used, reset it to TLR + */ + if (reset_jtag && (jbi_jtag_state != JBI_ILLEGAL_JTAG_STATE)) + { + jbi_jtag_reset_idle(); + } + + if (jbi_workspace == NULL) + { + if (jbi_dr_preamble_data != NULL) + { + jbi_free(jbi_dr_preamble_data); + jbi_dr_preamble_data = NULL; + } + + if (jbi_dr_postamble_data != NULL) + { + jbi_free(jbi_dr_postamble_data); + jbi_dr_postamble_data = NULL; + } + + if (jbi_dr_buffer != NULL) + { + jbi_free(jbi_dr_buffer); + jbi_dr_buffer = NULL; + } + + if (jbi_ir_preamble_data != NULL) + { + jbi_free(jbi_ir_preamble_data); + jbi_ir_preamble_data = NULL; + } + + if (jbi_ir_postamble_data != NULL) + { + jbi_free(jbi_ir_postamble_data); + jbi_ir_postamble_data = NULL; + } + + if (jbi_ir_buffer != NULL) + { + jbi_free(jbi_ir_buffer); + jbi_ir_buffer = NULL; + } + } +} + +#if PORT==DOS + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_do_drscan_multi_page +( + unsigned int variable_id, + unsigned long count, + unsigned long start_index, + int version +) + +/* */ +/* Description: Shifts data into data register (ignoring output data) */ +/* Scan data comes from compressed Boolean array. */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned long shift_count = jbi_dr_preamble + count + jbi_dr_postamble; + unsigned long i; + unsigned long j; + unsigned long k; + unsigned int bi; + + if (status == JBIC_SUCCESS) + { + status = jbi_goto_jtag_state(DRSHIFT); + } + + if (status == JBIC_SUCCESS) + { + /* + * Get preamble data, DR data, and postamble data one bit at a time + * and immediately scan it into the JTAG chain + */ + + for (i = 0L; i < jbi_dr_preamble; ++i) + { + jbi_jtag_io((i == shift_count - 1), + (int) (jbi_dr_preamble_data[i >> 3L] & (1L << (i & 7L))), 0); + } + + j = start_index; + k = jbi_dr_preamble + count; + + jbi_uncompress_page(variable_id, (unsigned int) (j >> 16L), version); + + for (; i < k; ++i, ++j) + { + bi = (unsigned int) (j & 0x0000ffffL); + + /* check for page boundary - load next page if necessary */ + if (bi == 0) + { + jbi_uncompress_page(variable_id, (unsigned int) (j >> 16L), version); + } + + jbi_jtag_io((i == shift_count - 1), + (int) (jbi_aca_out_buffer[bi >> 3] & (1 << (bi & 7))), 0); + } + + j = 0L; + k = jbi_dr_preamble + count + jbi_dr_postamble; + for (; i < k; ++i, ++j) + { + jbi_jtag_io((i == shift_count - 1), + (int) (jbi_dr_postamble_data[j >> 3L] & (1L << (j & 7L))), 0); + } + + jbi_jtag_io(0, 0, 0); /* DRPAUSE */ + + /* jbi_jtag_drscan() always ends in DRPAUSE state */ + jbi_jtag_state = DRPAUSE; + + if (jbi_drstop_state != DRPAUSE) + { + status = jbi_goto_jtag_state(jbi_drstop_state); + } + } + + return (status); +} + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h new file mode 100644 index 000000000000..fab2dac0266a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h @@ -0,0 +1,146 @@ +/****************************************************************************/ +/* */ +/* Module: jbijtag.h */ +/* */ +/* Copyright (C) Altera Corporation 1998-2001 */ +/* */ +/* Description: Definitions of JTAG constants, types, and functions */ +/* */ +/****************************************************************************/ + +#ifndef INC_JBIJTAG_H +#define INC_JBIJTAG_H + +/****************************************************************************/ +/* */ +/* Function Prototypes */ +/* */ +/****************************************************************************/ +typedef enum +{ + JBI_ILLEGAL_JTAG_STATE = -1, + RESET = 0, + IDLE = 1, + DRSELECT = 2, + DRCAPTURE = 3, + DRSHIFT = 4, + DREXIT1 = 5, + DRPAUSE = 6, + DREXIT2 = 7, + DRUPDATE = 8, + IRSELECT = 9, + IRCAPTURE = 10, + IRSHIFT = 11, + IREXIT1 = 12, + IRPAUSE = 13, + IREXIT2 = 14, + IRUPDATE = 15 + +} JBIE_JTAG_STATE; + +JBI_RETURN_TYPE jbi_init_jtag +( + void +); + +JBI_RETURN_TYPE jbi_set_drstop_state +( + JBIE_JTAG_STATE state +); + +JBI_RETURN_TYPE jbi_set_irstop_state +( + JBIE_JTAG_STATE state +); + +JBI_RETURN_TYPE jbi_set_dr_preamble +( + unsigned int count, + unsigned int start_index, + unsigned char *preamble_data +); + +JBI_RETURN_TYPE jbi_set_ir_preamble +( + unsigned int count, + unsigned int start_index, + unsigned char *preamble_data +); + +JBI_RETURN_TYPE jbi_set_dr_postamble +( + unsigned int count, + unsigned int start_index, + unsigned char *postamble_data +); + +JBI_RETURN_TYPE jbi_set_ir_postamble +( + unsigned int count, + unsigned int start_index, + unsigned char *postamble_data +); + +JBI_RETURN_TYPE jbi_goto_jtag_state +( + JBIE_JTAG_STATE state +); + +JBI_RETURN_TYPE jbi_do_wait_cycles +( + long cycles, + JBIE_JTAG_STATE wait_state +); + +JBI_RETURN_TYPE jbi_do_wait_microseconds +( + long microseconds, + JBIE_JTAG_STATE wait_state +); + +JBI_RETURN_TYPE jbi_do_irscan +( + unsigned int count, + unsigned char *tdi_data, + unsigned int start_index +); + +JBI_RETURN_TYPE jbi_swap_ir +( + unsigned int count, + unsigned char *in_data, + unsigned int in_index, + unsigned char *out_data, + unsigned int out_index +); + +JBI_RETURN_TYPE jbi_do_drscan +( + unsigned int count, + unsigned char *tdi_data, + unsigned long start_index +); + +JBI_RETURN_TYPE jbi_swap_dr +( + unsigned int count, + unsigned char *in_data, + unsigned long in_index, + unsigned char *out_data, + unsigned int out_index +); + +void jbi_free_jtag_padding_buffers +( + int reset_jtag +); + +JBI_RETURN_TYPE jbi_do_drscan_multi_page +( + unsigned int variable_id, + unsigned long long_count, + unsigned long long_index, + int version +); + +#endif /* INC_JBIJTAG_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c new file mode 100644 index 000000000000..b8cab4857074 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c @@ -0,0 +1,3362 @@ +/****************************************************************************/ +/* */ +/* Module: jbimain.c */ +/* */ +/* Copyright (C) Altera Corporation 1998-2001 */ +/* */ +/* Description: Jam STAPL ByteCode Player (Interpreter) */ +/* */ +/* Revisions: 2.2 fixed /W4 warnings */ +/* 2.0 added support for STAPL ByteCode format */ +/* */ +/****************************************************************************/ + +#include "jbiport.h" +#include "jbiexprt.h" +#include "jbijtag.h" +#include "jbicomp.h" +#include "jbistub.h" + +/****************************************************************************/ +/* */ +/* MACROS */ +/* */ +/****************************************************************************/ + +#ifndef NULL +#define NULL 0 +#endif + +#define JBI_STACK_SIZE 128 + +#define JBIC_MESSAGE_LENGTH 1024 + +/* +* This macro checks if enough parameters are available on the stack. The +* argument is the number of parameters needed. +*/ +#define IF_CHECK_STACK(x) \ + if (stack_ptr < (int) (x)) \ + { \ + status = JBIC_STACK_OVERFLOW; \ + } \ + else + +/* +* This macro checks if a code address is inside the code section +*/ +#define CHECK_PC \ + if ((pc < code_section) || (pc >= debug_section)) \ + { \ + status = JBIC_BOUNDS_ERROR; \ + } + +/****************************************************************************/ +/* */ +/* GLOBAL VARIABLES */ +/* */ +/****************************************************************************/ + +#if PORT==DOS +/* +* jbi_program is a global pointer used by macros GET_BYTE, GET_WORD, and +* GET_DWORD to read data from the JBC file +*/ +PROGRAM_PTR jbi_program; +#endif + +/****************************************************************************/ +/* */ +/* UTILITY FUNCTIONS */ +/* */ +/****************************************************************************/ + +int jbi_strlen(char *string) +{ + int len = 0; + + while (string[len] != '\0') ++len; + + return (len); +} + +long jbi_atol(char *buffer) +{ + long result = 0L; + int index = 0; + + while ((buffer[index] >= '0') && (buffer[index] <= '9')) + { + result = (result * 10) + (buffer[index] - '0'); + ++index; + } + + return (result); +} + +void jbi_ltoa(char *buffer, long number) +{ + int index = 0; + int rev_index = 0; + char reverse[32]; + + if (number < 0L) + { + buffer[index++] = '-'; + number = 0 - number; + } + else if (number == 0) + { + buffer[index++] = '0'; + } + + while (number != 0) + { + reverse[rev_index++] = (char) ((number % 10) + '0'); + number /= 10; + } + + while (rev_index > 0) + { + buffer[index++] = reverse[--rev_index]; + } + + buffer[index] = '\0'; +} + +char jbi_toupper(char ch) +{ + return ((char) (((ch >= 'a') && (ch <= 'z')) ? (ch + 'A' - 'a') : ch)); +} + +int jbi_stricmp(char *left, char *right) +{ + int result = 0; + char l, r; + + do + { + l = jbi_toupper(*left); + r = jbi_toupper(*right); + result = l - r; + ++left; + ++right; + } + while ((result == 0) && (l != '\0') && (r != '\0')); + + return (result); +} + +void jbi_strncpy(char *left, char *right, int count) +{ + char ch; + + do + { + *left = *right; + ch = *right; + ++left; + ++right; + --count; + } + while ((ch != '\0') && (count != 0)); +} + +void jbi_make_dword(unsigned char *buf, unsigned long num) +{ + buf[0] = (unsigned char) num; + buf[1] = (unsigned char) (num >> 8L); + buf[2] = (unsigned char) (num >> 16L); + buf[3] = (unsigned char) (num >> 24L); +} + +unsigned long jbi_get_dword(unsigned char *buf) +{ + return + (((unsigned long) buf[0]) | + (((unsigned long) buf[1]) << 8L) | + (((unsigned long) buf[2]) << 16L) | + (((unsigned long) buf[3]) << 24L)); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_execute +( + PROGRAM_PTR program, + long program_size, + char *workspace, + long workspace_size, + char *action, + char **init_list, + int reset_jtag, + long *error_address, + int *exit_code, + int *format_version +) + +/* */ +/* Description: */ +/* */ +/* Returns: */ +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned long first_word = 0L; + unsigned long action_table = 0L; + unsigned long proc_table = 0L; + unsigned long string_table = 0L; + unsigned long symbol_table = 0L; + unsigned long data_section = 0L; + unsigned long code_section = 0L; + unsigned long debug_section = 0L; + unsigned long action_count = 0L; + unsigned long proc_count = 0L; + unsigned long symbol_count = 0L; + /*char message_buffer[JBIC_MESSAGE_LENGTH + 1];*/ + char *message_buffer; + addr_t *variables = NULL; + long *variable_size = NULL; + char *attributes = NULL; + unsigned char *proc_attributes = NULL; + unsigned long pc; + unsigned long opcode_address; + unsigned long args[3]; + unsigned int opcode; + unsigned long name_id; + addr_t stack[JBI_STACK_SIZE] = {0}; + unsigned char charbuf[4]; + long long_temp; + unsigned int variable_id; + unsigned char *charptr_temp; + unsigned char *charptr_temp2; + long *longptr_temp; + int version = 0; + int delta = 0; + int stack_ptr = 0; + unsigned int arg_count; + int done = 0; + int bad_opcode = 0; + unsigned int count; + unsigned int index; + unsigned int index2; + long long_count; + long long_index; + long long_index2; + unsigned int i; + unsigned int j; + unsigned long uncompressed_size, uncompressed_result; + unsigned int offset; + unsigned long value; + int current_proc = 0; + char *equal_ptr; + int length; + int reverse; + + unsigned long debug_cnt = 0; + +#if PORT==DOS + char name[33]; +#else + char *name; +#endif + + jbi_workspace = workspace; + jbi_workspace_size = workspace_size; + +#if PORT==DOS + jbi_program = program; +#endif + + /* Resolve compilation warnings: the frame size of 1664 bytes is larger than 1024 bytes */ + message_buffer = (char *) kzalloc(JBIC_MESSAGE_LENGTH + 1, GFP_KERNEL); + if (message_buffer == NULL) { + jbi_dbg(DEBUG_DETAIL, "Memory not enough jbi_execute \n"); + return JBIC_OUT_OF_MEMORY; + } + + /* + * Read header information + */ + if (program_size > 52L) + { + first_word = GET_DWORD(0); + version = (int) (first_word & 1L); + *format_version = version + 1; + delta = version * 8; + + action_table = GET_DWORD(4); + proc_table = GET_DWORD(8); + string_table = GET_DWORD(4 + delta); + symbol_table = GET_DWORD(16 + delta); + data_section = GET_DWORD(20 + delta); + code_section = GET_DWORD(24 + delta); + debug_section = GET_DWORD(28 + delta); + action_count = GET_DWORD(40 + delta); + proc_count = GET_DWORD(44 + delta); + symbol_count = GET_DWORD(48 + (2 * delta)); + + jbi_dbg(DEBUG_DETAIL, "version: %d\n", version); + jbi_dbg(DEBUG_DETAIL, "delta: %d\n", delta); + jbi_dbg(DEBUG_DETAIL, "action_table: 0x%08lx\n", action_table); + jbi_dbg(DEBUG_DETAIL, "proc_table: 0x%08lx\n", proc_table); + jbi_dbg(DEBUG_DETAIL, "string_table: 0x%08lx\n", string_table); + jbi_dbg(DEBUG_DETAIL, "symbol_table: 0x%08lx\n", symbol_table); + jbi_dbg(DEBUG_DETAIL, "data_section: 0x%08lx\n", data_section); + jbi_dbg(DEBUG_DETAIL, "code_section: 0x%08lx\n", code_section); + jbi_dbg(DEBUG_DETAIL, "debug_section: 0x%08lx\n", debug_section); + jbi_dbg(DEBUG_DETAIL, "action_count: 0x%08lx\n", action_count); + jbi_dbg(DEBUG_DETAIL, "proc_count: 0x%08lx\n", proc_count); + jbi_dbg(DEBUG_DETAIL, "symbol_count: 0x%08lx\n", symbol_count); + jbi_dbg(DEBUG_DETAIL, "\n"); + } + + if ((first_word != 0x4A414D00L) && (first_word != 0x4A414D01L)) + { + jbi_dbg(DEBUG_ERR, "first_word 0x%lx\n", first_word); + done = 1; + status = JBIC_IO_ERROR; + } + + if ((status == JBIC_SUCCESS) && (symbol_count > 0)) + { + variables = (addr_t *) jbi_malloc( + (unsigned int) symbol_count * sizeof(long)); + + if (variables == NULL) status = JBIC_OUT_OF_MEMORY; + + if (status == JBIC_SUCCESS) + { + variable_size = (long *) jbi_malloc( + (unsigned int) symbol_count * sizeof(long)); + + if (variable_size == NULL) status = JBIC_OUT_OF_MEMORY; + } + + if (status == JBIC_SUCCESS) + { + attributes = (char *) jbi_malloc((unsigned int) symbol_count); + + if (attributes == NULL) status = JBIC_OUT_OF_MEMORY; + } + + if ((status == JBIC_SUCCESS) && (version > 0)) + { + proc_attributes = (unsigned char *) jbi_malloc((unsigned int) proc_count); + + if (proc_attributes == NULL) status = JBIC_OUT_OF_MEMORY; + } + + if (status == JBIC_SUCCESS) + { + delta = version * 2; + + for (i = 0; i < (unsigned int) symbol_count; ++i) + { + offset = (unsigned int) (symbol_table + ((11 + delta) * i)); + + value = GET_DWORD(offset + 3 + delta); + + attributes[i] = GET_BYTE(offset); + + /* use bit 7 of attribute byte to indicate that this buffer */ + /* was dynamically allocated and should be freed later */ + attributes[i] &= 0x7f; + + variable_size[i] = GET_DWORD(offset + 7 + delta); + + jbi_dbg(DEBUG_NOISY, "symbol %03d: 0x%02x,0x%08lx,0x%08lx\n", + i, attributes[i], value, variable_size[i]); + + /* + * Attribute bits: + * bit 0: 0 = read-only, 1 = read-write + * bit 1: 0 = not compressed, 1 = compressed + * bit 2: 0 = not initialized, 1 = initialized + * bit 3: 0 = scalar, 1 = array + * bit 4: 0 = Boolean, 1 = integer + * bit 5: 0 = declared variable, + * 1 = compiler created temporary variable + */ + + if ((attributes[i] & 0x0c) == 0x04) + { + /* initialized scalar variable */ + variables[i] = value; + } + else if ((attributes[i] & 0x1e) == 0x0e) + { + /* initialized compressed Boolean array */ +#if PORT==DOS + /* for DOS port, get the size but do not uncompress */ + long_index = data_section + value; + uncompressed_size = + (((unsigned long) GET_BYTE(long_index)) | + (((unsigned long) GET_BYTE(long_index + 1L)) << 8L) | + (((unsigned long) GET_BYTE(long_index + 2L)) << 16L) | + (((unsigned long) GET_BYTE(long_index + 3L)) << 24L)); + variable_size[i] = uncompressed_size; +#else + uncompressed_size = jbi_get_dword( + &program[data_section + value]); + + /* allocate a buffer for the uncompressed data */ + variables[i] = (addr_t) jbi_malloc(uncompressed_size); + + if (variables[i] == (addr_t) 0L) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + /* set flag so buffer will be freed later */ + attributes[i] |= 0x80; + + /* uncompress the data */ + uncompressed_result = + jbi_uncompress( + &program[data_section + value], + variable_size[i], + (unsigned char *) variables[i], + uncompressed_size, + version); + if (uncompressed_result != uncompressed_size) + { + /* decompression failed */ + jbi_dbg(DEBUG_ERR, "uncompress fail(0x%lx,0x%lx,0x%lx)(0x%lx)\n", + variable_size[i], uncompressed_result, uncompressed_size, value); + status = JBIC_IO_ERROR; + } + else + { + variable_size[i] = uncompressed_size * 8L; + } + } +#endif + } + else if ((attributes[i] & 0x1e) == 0x0c) + { + /* initialized Boolean array */ +#if PORT==DOS + /* flag attributes so that memory is freed */ + attributes[i] |= 0x80; + + if (variable_size[i] > 0) + { + unsigned int size = (unsigned int) + ((variable_size[i] + 7L) / 8L); + + variables[i] = (long) jbi_malloc(size); + + if (variables[i] == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + unsigned char *p = (unsigned char *) variables[i]; + /* copy array values into buffer */ + for (j = 0; j < size; ++j) + { + p[j] = GET_BYTE(data_section + value + j); + } + } + } + else + { + variables[i] = 0; + } +#else + variables[i] = value + data_section + (addr_t) program; +#endif + } + else if ((attributes[i] & 0x1c) == 0x1c) + { + /* initialized integer array */ + variables[i] = value + data_section; + } + else if ((attributes[i] & 0x0c) == 0x08) + { + /* uninitialized array */ + + /* flag attributes so that memory is freed */ + attributes[i] |= 0x80; + + if (variable_size[i] > 0) + { + unsigned int size; + + if (attributes[i] & 0x10) + { + /* integer array */ + size = (unsigned int) + (variable_size[i] * sizeof(long)); + } + else + { + /* Boolean array */ + size = (unsigned int) + ((variable_size[i] + 7L) / 8L); + } + + variables[i] = (addr_t) jbi_malloc(size); + + if (variables[i] == (addr_t) NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + /* zero out memory */ + for (j = 0; j < size; ++j) + { + ((unsigned char *)(variables[i]))[j] = 0; + } + } + } + else + { + variables[i] = 0; + } + } + else + { + variables[i] = 0; + } + + jbi_dbg(DEBUG_NOISY, " variables: 0x%08lx,0x%016llx\n", + variable_size[i], (long long) variables[i]); + } + } + + jbi_dbg(DEBUG_NOISY, "\n"); + } + + /* + * Initialize variables listed in init_list + */ + if ((status == JBIC_SUCCESS) && (init_list != NULL) && (version == 0)) + { + delta = version * 2; + count = 0; + while (init_list[count] != NULL) + { + equal_ptr = init_list[count]; + length = 0; + while ((*equal_ptr != '=') && (*equal_ptr != '\0')) + { + ++equal_ptr; + ++length; + } + if (*equal_ptr == '=') + { + ++equal_ptr; + value = jbi_atol(equal_ptr); + jbi_strncpy(message_buffer, init_list[count], length); + message_buffer[length] = '\0'; + for (i = 0; i < (unsigned int) symbol_count; ++i) + { + offset = (unsigned int) (symbol_table + ((11 + delta) * i)); + name_id = (version == 0) ? GET_WORD(offset + 1) : + GET_DWORD(offset + 1); +#if PORT==DOS + for (j = 0; j < 32; ++j) + { + name[j] = GET_BYTE(string_table + name_id + j); + } + name[32] = '\0'; +#else + name = (char *) &program[string_table + name_id]; +#endif + + if (jbi_stricmp(message_buffer, name) == 0) + { + variables[i] = value; + } + + jbi_dbg(DEBUG_NOISY, "init_list %03d: 0x%08lx,%s,0x%016llx\n", + i, name_id, name, (long long) variables[i]); + } + } + + ++count; + } + + jbi_dbg(DEBUG_NOISY, "\n"); + } + + if (status != JBIC_SUCCESS) done = 1; + + jbi_init_jtag(); + + pc = code_section; + message_buffer[0] = '\0'; + + /* + * For JBC version 2, we will execute the procedures corresponding to + * the selected ACTION + */ + if (version > 0) + { + if (action == NULL) + { + status = JBIC_ACTION_NOT_FOUND; + done = 1; + } + else + { + int action_found = 0; + + for (i = 0; (i < action_count) && !action_found; ++i) + { + name_id = GET_DWORD(action_table + (12 * i)); + +#if PORT==DOS + for (j = 0; j < 32; ++j) + { + name[j] = GET_BYTE(string_table + name_id + j); + } + name[32] = '\0'; +#else + name = (char *) &program[string_table + name_id]; +#endif + + if (jbi_stricmp(action, name) == 0) + { + action_found = 1; + current_proc = (int) GET_DWORD(action_table + (12 * i) + 8); + } + + jbi_dbg(DEBUG_NOISY, "action %03d: 0x%08lx,%s, %d,%d\n", + i, name_id, name, action_found, current_proc); + } + + if (!action_found) + { + status = JBIC_ACTION_NOT_FOUND; + done = 1; + } + } + + if (status == JBIC_SUCCESS) + { + int first_time = 1; + i = current_proc; + while ((i != 0) || first_time) + { + first_time = 0; + /* check procedure attribute byte */ + proc_attributes[i] = (unsigned char) + (GET_BYTE(proc_table + (13 * i) + 8) & 0x03); + + jbi_dbg(DEBUG_NOISY, " proc_attributes %03d: 0x%02x\n", + i, proc_attributes[i]); + + if (proc_attributes[i] != 0) + { + /* + * BIT0 - OPTIONAL + * BIT1 - RECOMMENDED + * BIT6 - FORCED OFF + * BIT7 - FORCED ON + */ + if (init_list != NULL) + { + name_id = GET_DWORD(proc_table + (13 * i)); +#if PORT==DOS + for (j = 0; j < 32; ++j) + { + name[j] = GET_BYTE(string_table + name_id + j); + } + name[32] = '\0'; +#else + name = (char *) &program[string_table + name_id]; +#endif + + jbi_dbg(DEBUG_NOISY, " init_list %03d: 0x%08lx,%s\n", + i, name_id, name); + + count = 0; + while (init_list[count] != NULL) + { + equal_ptr = init_list[count]; + length = 0; + while ((*equal_ptr != '=') && (*equal_ptr != '\0')) + { + ++equal_ptr; + ++length; + } + if (*equal_ptr == '=') + { + ++equal_ptr; + jbi_strncpy(message_buffer, init_list[count], length); + message_buffer[length] = '\0'; + + if (jbi_stricmp(message_buffer, name) == 0) + { + if (jbi_atol(equal_ptr) == 0) + { + proc_attributes[i] |= 0x40; + } + else + { + proc_attributes[i] |= 0x80; + } + } + } + + jbi_dbg(DEBUG_NOISY, " proc_attributes %03d: 0x%02x\n", + i, proc_attributes[i]); + + ++count; + } + } + } + + i = (unsigned int) GET_DWORD(proc_table + (13 * i) + 4); + } + + /* + * Set current_proc to the first procedure to be executed + */ + i = current_proc; + while ((i != 0) && + ((proc_attributes[i] == 1) || + ((proc_attributes[i] & 0xc0) == 0x40))) + { + i = (unsigned int) GET_DWORD(proc_table + (13 * i) + 4); + } + + if ((i != 0) || ((i == 0) && (current_proc == 0) && + ((proc_attributes[0] != 1) && + ((proc_attributes[0] & 0xc0) != 0x40)))) + { + current_proc = i; + pc = code_section + GET_DWORD(proc_table + (13 * i) + 9); + CHECK_PC; + } + else + { + /* there are no procedures to execute! */ + done = 1; + } + } + + jbi_dbg(DEBUG_NOISY, "\n"); + } + + message_buffer[0] = '\0'; + + jbi_dbg(DEBUG_NOISY, "excute pc: 0x%lx,%d\n", pc, current_proc); + while (!done) + { + opcode = (unsigned int) (GET_BYTE(pc) & 0xff); + debug_cnt++; + jbi_dbg(DEBUG_NOISY, "op: 0x%02x(%03d:0x%08lx,%08lx)", + opcode, stack_ptr, pc, debug_cnt); + opcode_address = pc; + ++pc; + + arg_count = (opcode >> 6) & 3; + jbi_dbg(DEBUG_NOISY, " - %u:", arg_count); + for (i = 0; i < arg_count; ++i) + { + args[i] = GET_DWORD(pc); + jbi_dbg(DEBUG_NOISY, " 0x%08lx", args[i]); + pc += 4; + } + jbi_dbg(DEBUG_NOISY, "\n"); + + switch (opcode) + { + case 0x00: /* NOP */ + /* do nothing */ + break; + + case 0x01: /* DUP */ + IF_CHECK_STACK(1) + { + stack[stack_ptr] = stack[stack_ptr - 1]; + ++stack_ptr; + } + break; + + case 0x02: /* SWP */ + IF_CHECK_STACK(2) + { + long_temp = stack[stack_ptr - 2]; + stack[stack_ptr - 2] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + break; + + case 0x03: /* ADD */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] += stack[stack_ptr]; + } + break; + + case 0x04: /* SUB */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] -= stack[stack_ptr]; + } + break; + + case 0x05: /* MULT */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] *= stack[stack_ptr]; + } + break; + + case 0x06: /* DIV */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] /= stack[stack_ptr]; + } + break; + + case 0x07: /* MOD */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] %= stack[stack_ptr]; + } + break; + + case 0x08: /* SHL */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] <<= stack[stack_ptr]; + } + break; + + case 0x09: /* SHR */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] >>= stack[stack_ptr]; + } + break; + + case 0x0A: /* NOT */ + IF_CHECK_STACK(1) + { + stack[stack_ptr - 1] ^= (-1L); + } + break; + + case 0x0B: /* AND */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] &= stack[stack_ptr]; + } + break; + + case 0x0C: /* OR */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] |= stack[stack_ptr]; + } + break; + + case 0x0D: /* XOR */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] ^= stack[stack_ptr]; + } + break; + + case 0x0E: /* INV */ + IF_CHECK_STACK(1) + { + stack[stack_ptr - 1] = stack[stack_ptr - 1] ? 0L : 1L; + } + break; + + case 0x0F: /* GT */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] = + (stack[stack_ptr - 1] > stack[stack_ptr]) ? 1L : 0L; + } + break; + + case 0x10: /* LT */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] = + (stack[stack_ptr - 1] < stack[stack_ptr]) ? 1L : 0L; + } + break; + + case 0x11: /* RET */ + if ((version > 0) && (stack_ptr == 0)) + { + /* + * We completed one of the main procedures of an ACTION. + * Find the next procedure to be executed and jump to it. + * If there are no more procedures, then EXIT. + */ + i = (unsigned int) GET_DWORD(proc_table + (13 * current_proc) + 4); + while ((i != 0) && + ((proc_attributes[i] == 1) || + ((proc_attributes[i] & 0xc0) == 0x40))) + { + i = (unsigned int) GET_DWORD(proc_table + (13 * i) + 4); + } + + if (i == 0) + { + /* there are no procedures to execute! */ + done = 1; + *exit_code = 0; /* success */ + } + else + { + current_proc = i; + pc = code_section + GET_DWORD(proc_table + (13 * i) + 9); + CHECK_PC; + } + } + else IF_CHECK_STACK(1) + { + pc = stack[--stack_ptr] + code_section; + CHECK_PC; + if (pc == code_section) + { + status = JBIC_BOUNDS_ERROR; + } + } + break; + + case 0x12: /* CMPS */ + /* + * Array short compare + * ...stack 0 is source 1 value + * ...stack 1 is source 2 value + * ...stack 2 is mask value + * ...stack 3 is count + */ + IF_CHECK_STACK(4) + { + long a = stack[--stack_ptr]; + long b = stack[--stack_ptr]; + long_temp = stack[--stack_ptr]; + count = (unsigned int) stack[stack_ptr - 1]; + + if ((count < 1) || (count > 32)) + { + status = JBIC_BOUNDS_ERROR; + } + else + { + long_temp &= ((-1L) >> (32 - count)); + + stack[stack_ptr - 1] = + ((a & long_temp) == (b & long_temp)) ? 1L : 0L; + } + } + break; + + case 0x13: /* PINT */ + /* + * PRINT add integer + * ...stack 0 is integer value + */ + IF_CHECK_STACK(1) + { + jbi_ltoa(&message_buffer[jbi_strlen(message_buffer)], + stack[--stack_ptr]); + } + break; + + case 0x14: /* PRNT */ + /* + * PRINT finish + */ + jbi_message(message_buffer); + message_buffer[0] = '\0'; + break; + + case 0x15: /* DSS */ + /* + * DRSCAN short + * ...stack 0 is scan data + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + long_temp = stack[--stack_ptr]; + count = (unsigned int) stack[--stack_ptr]; + jbi_make_dword(charbuf, long_temp); + status = jbi_do_drscan(count, charbuf, 0); + } + break; + + case 0x16: /* DSSC */ + /* + * DRSCAN short with capture + * ...stack 0 is scan data + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + long_temp = stack[--stack_ptr]; + count = (unsigned int) stack[stack_ptr - 1]; + jbi_make_dword(charbuf, long_temp); + status = jbi_swap_dr(count, charbuf, 0, charbuf, 0); + stack[stack_ptr - 1] = jbi_get_dword(charbuf); + } + break; + + case 0x17: /* ISS */ + /* + * IRSCAN short + * ...stack 0 is scan data + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + long_temp = stack[--stack_ptr]; + count = (unsigned int) stack[--stack_ptr]; + jbi_make_dword(charbuf, long_temp); + status = jbi_do_irscan(count, charbuf, 0); + } + break; + + case 0x18: /* ISSC */ + /* + * IRSCAN short with capture + * ...stack 0 is scan data + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + long_temp = stack[--stack_ptr]; + count = (unsigned int) stack[stack_ptr - 1]; + jbi_make_dword(charbuf, long_temp); + status = jbi_swap_ir(count, charbuf, 0, charbuf, 0); + stack[stack_ptr - 1] = jbi_get_dword(charbuf); + } + break; + + case 0x19: /* VSS */ + /* + * VECTOR short + * ...stack 0 is scan data + * ...stack 1 is count + */ + bad_opcode = 1; + break; + + case 0x1A: /* VSSC */ + /* + * VECTOR short with capture + * ...stack 0 is scan data + * ...stack 1 is count + */ + bad_opcode = 1; + break; + + case 0x1B: /* VMPF */ + /* + * VMAP finish + */ + bad_opcode = 1; + break; + + case 0x1C: /* DPR */ + IF_CHECK_STACK(1) + { + count = (unsigned int) stack[--stack_ptr]; + status = jbi_set_dr_preamble(count, 0, NULL); + } + break; + + case 0x1D: /* DPRL */ + /* + * DRPRE with literal data + * ...stack 0 is count + * ...stack 1 is literal data + */ + IF_CHECK_STACK(2) + { + count = (unsigned int) stack[--stack_ptr]; + long_temp = stack[--stack_ptr]; + jbi_make_dword(charbuf, long_temp); + status = jbi_set_dr_preamble(count, 0, charbuf); + } + break; + + case 0x1E: /* DPO */ + /* + * DRPOST + * ...stack 0 is count + */ + IF_CHECK_STACK(1) + { + count = (unsigned int) stack[--stack_ptr]; + status = jbi_set_dr_postamble(count, 0, NULL); + } + break; + + case 0x1F: /* DPOL */ + /* + * DRPOST with literal data + * ...stack 0 is count + * ...stack 1 is literal data + */ + IF_CHECK_STACK(2) + { + count = (unsigned int) stack[--stack_ptr]; + long_temp = stack[--stack_ptr]; + jbi_make_dword(charbuf, long_temp); + status = jbi_set_dr_postamble(count, 0, charbuf); + } + break; + + case 0x20: /* IPR */ + IF_CHECK_STACK(1) + { + count = (unsigned int) stack[--stack_ptr]; + status = jbi_set_ir_preamble(count, 0, NULL); + } + break; + + case 0x21: /* IPRL */ + /* + * IRPRE with literal data + * ...stack 0 is count + * ...stack 1 is literal data + */ + IF_CHECK_STACK(2) + { + count = (unsigned int) stack[--stack_ptr]; + long_temp = stack[--stack_ptr]; + jbi_make_dword(charbuf, long_temp); + status = jbi_set_ir_preamble(count, 0, charbuf); + } + break; + + case 0x22: /* IPO */ + /* + * IRPOST + * ...stack 0 is count + */ + IF_CHECK_STACK(1) + { + count = (unsigned int) stack[--stack_ptr]; + status = jbi_set_ir_postamble(count, 0, NULL); + } + break; + + case 0x23: /* IPOL */ + /* + * IRPOST with literal data + * ...stack 0 is count + * ...stack 1 is literal data + */ + IF_CHECK_STACK(2) + { + count = (unsigned int) stack[--stack_ptr]; + long_temp = stack[--stack_ptr]; + jbi_make_dword(charbuf, long_temp); + status = jbi_set_ir_postamble(count, 0, charbuf); + } + break; + + case 0x24: /* PCHR */ + IF_CHECK_STACK(1) + { + unsigned char ch; + count = jbi_strlen(message_buffer); + ch = (char) stack[--stack_ptr]; + if ((ch < 1) || (ch > 127)) + { + /* character code out of range */ + /* instead of flagging an error, force the value to 127 */ + ch = 127; + } + message_buffer[count] = ch; + message_buffer[count + 1] = '\0'; + } + break; + + case 0x25: /* EXIT */ + IF_CHECK_STACK(1) + { + *exit_code = (int) stack[--stack_ptr]; + } + done = 1; + break; + + case 0x26: /* EQU */ + IF_CHECK_STACK(2) + { + --stack_ptr; + stack[stack_ptr - 1] = + (stack[stack_ptr - 1] == stack[stack_ptr]) ? 1L : 0L; + } + break; + + case 0x27: /* POPT */ + IF_CHECK_STACK(1) + { + --stack_ptr; + } + break; + + case 0x28: /* TRST */ + bad_opcode = 1; + break; + + case 0x29: /* FRQ */ + bad_opcode = 1; + break; + + case 0x2A: /* FRQU */ + bad_opcode = 1; + break; + + case 0x2B: /* PD32 */ + bad_opcode = 1; + break; + + case 0x2C: /* ABS */ + IF_CHECK_STACK(1) + { + if (stack[stack_ptr - 1] < 0) + { + stack[stack_ptr - 1] = 0 - stack[stack_ptr - 1]; + } + } + break; + + case 0x2D: /* BCH0 */ + /* + * Batch operation 0 + * SWP + * SWPN 7 + * SWP + * SWPN 6 + * DUPN 8 + * SWPN 2 + * SWP + * DUPN 6 + * DUPN 6 + */ + + /* SWP */ + IF_CHECK_STACK(2) + { + long_temp = stack[stack_ptr - 2]; + stack[stack_ptr - 2] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + + /* SWPN 7 */ + index = 7 + 1; + IF_CHECK_STACK(index) + { + long_temp = stack[stack_ptr - index]; + stack[stack_ptr - index] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + + /* SWP */ + IF_CHECK_STACK(2) + { + long_temp = stack[stack_ptr - 2]; + stack[stack_ptr - 2] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + + /* SWPN 6 */ + index = 6 + 1; + IF_CHECK_STACK(index) + { + long_temp = stack[stack_ptr - index]; + stack[stack_ptr - index] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + + /* DUPN 8 */ + index = 8 + 1; + IF_CHECK_STACK(index) + { + stack[stack_ptr] = stack[stack_ptr - index]; + ++stack_ptr; + } + + /* SWPN 2 */ + index = 2 + 1; + IF_CHECK_STACK(index) + { + long_temp = stack[stack_ptr - index]; + stack[stack_ptr - index] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + + /* SWP */ + IF_CHECK_STACK(2) + { + long_temp = stack[stack_ptr - 2]; + stack[stack_ptr - 2] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + + /* DUPN 6 */ + index = 6 + 1; + IF_CHECK_STACK(index) + { + stack[stack_ptr] = stack[stack_ptr - index]; + ++stack_ptr; + } + + /* DUPN 6 */ + index = 6 + 1; + IF_CHECK_STACK(index) + { + stack[stack_ptr] = stack[stack_ptr - index]; + ++stack_ptr; + } + break; + + case 0x2E: /* BCH1 */ + /* + * Batch operation 1 + * SWPN 8 + * SWP + * SWPN 9 + * SWPN 3 + * SWP + * SWPN 2 + * SWP + * SWPN 7 + * SWP + * SWPN 6 + * DUPN 5 + * DUPN 5 + */ + bad_opcode = 1; + break; + + case 0x2F: /* PSH0 */ + stack[stack_ptr++] = 0; + break; + + case 0x40: /* PSHL */ + stack[stack_ptr++] = (long) args[0]; + break; + + case 0x41: /* PSHV */ + stack[stack_ptr++] = variables[args[0]]; + break; + + case 0x42: /* JMP */ + pc = args[0] + code_section; + CHECK_PC; + break; + + case 0x43: /* CALL */ + stack[stack_ptr++] = pc; + pc = args[0] + code_section; + CHECK_PC; + break; + + case 0x44: /* NEXT */ + /* + * Process FOR / NEXT loop + * ...argument 0 is variable ID + * ...stack 0 is step value + * ...stack 1 is end value + * ...stack 2 is top address + */ + IF_CHECK_STACK(3) + { + long step = stack[stack_ptr - 1]; + long end = stack[stack_ptr - 2]; + long top = stack[stack_ptr - 3]; + long iterator = variables[args[0]]; + int break_out = 0; + + if (step < 0) + { + if (iterator <= end) break_out = 1; + } + else + { + if (iterator >= end) break_out = 1; + } + + if (break_out) + { + stack_ptr -= 3; + } + else + { + variables[args[0]] = iterator + step; + pc = top + code_section; + CHECK_PC; + } + } + break; + + case 0x45: /* PSTR */ + /* + * PRINT add string + * ...argument 0 is string ID + */ +#if PORT==DOS + long_index = string_table + args[0]; + index2 = jbi_strlen(message_buffer); + + do + { + i = GET_BYTE(long_index); + message_buffer[index2] = (char) i; + ++long_index; + ++index2; + } + while ((i != '\0') && (index2 < JBIC_MESSAGE_LENGTH)); +#else + count = jbi_strlen(message_buffer); + jbi_strncpy(&message_buffer[count], + (char *) &program[string_table + args[0]], + JBIC_MESSAGE_LENGTH - count); +#endif + message_buffer[JBIC_MESSAGE_LENGTH] = '\0'; + break; + + case 0x46: /* VMAP */ + /* + * VMAP add signal name + * ...argument 0 is string ID + */ + bad_opcode = 1; + break; + + case 0x47: /* SINT */ + /* + * STATE intermediate state + * ...argument 0 is state code + */ + status = jbi_goto_jtag_state((int) args[0]); + break; + + case 0x48: /* ST */ + /* + * STATE final state + * ...argument 0 is state code + */ + status = jbi_goto_jtag_state((int) args[0]); + break; + + case 0x49: /* ISTP */ + /* + * IRSTOP state + * ...argument 0 is state code + */ + status = jbi_set_irstop_state((int) args[0]); + break; + + case 0x4A: /* DSTP */ + /* + * DRSTOP state + * ...argument 0 is state code + */ + status = jbi_set_drstop_state((int) args[0]); + break; + + case 0x4B: /* SWPN */ + /* + * Exchange top with Nth stack value + * ...argument 0 is 0-based stack entry to swap with top element + */ + index = ((int) args[0]) + 1; + IF_CHECK_STACK(index) + { + long_temp = stack[stack_ptr - index]; + stack[stack_ptr - index] = stack[stack_ptr - 1]; + stack[stack_ptr - 1] = long_temp; + } + break; + + case 0x4C: /* DUPN */ + /* + * Duplicate Nth stack value + * ...argument 0 is 0-based stack entry to duplicate + */ + index = ((int) args[0]) + 1; + IF_CHECK_STACK(index) + { + stack[stack_ptr] = stack[stack_ptr - index]; + ++stack_ptr; + } + break; + + case 0x4D: /* POPV */ + /* + * Pop stack into scalar variable + * ...argument 0 is variable ID + * ...stack 0 is value + */ + IF_CHECK_STACK(1) + { + variables[args[0]] = stack[--stack_ptr]; + } + break; + + case 0x4E: /* POPE */ + /* + * Pop stack into integer array element + * ...argument 0 is variable ID + * ...stack 0 is array index + * ...stack 1 is value + */ + IF_CHECK_STACK(2) + { + variable_id = (unsigned int) args[0]; + + /* + * If variable is read-only, convert to writable array + */ + if ((version > 0) && + ((attributes[variable_id] & 0x9c) == 0x1c)) + { + /* + * Allocate a writable buffer for this array + */ + count = (unsigned int) variable_size[variable_id]; + long_temp = variables[variable_id]; + longptr_temp = (long *) jbi_malloc(count * sizeof(long)); + variables[variable_id] = (addr_t) longptr_temp; + + if (variables[variable_id] == (addr_t) NULL) + { + status = JBIC_OUT_OF_MEMORY; + break; + } + else + { + /* copy previous contents into buffer */ + for (i = 0; i < count; ++i) + { + longptr_temp[i] = GET_DWORD(long_temp); + long_temp += 4L; + } + + /* set bit 7 - buffer was dynamically allocated */ + attributes[variable_id] |= 0x80; + + /* clear bit 2 - variable is writable */ + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } + } + +#if PORT==DOS + /* for 16-bit version, allow writing in allocated buffers */ + if ((version > 0) && + ((attributes[variable_id] & 0x9c) == 0x9c)) + { + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } +#endif + + /* check that variable is a writable integer array */ + if ((attributes[variable_id] & 0x1c) != 0x18) + { + status = JBIC_BOUNDS_ERROR; + } + else + { + longptr_temp = (long *) variables[variable_id]; + + /* pop the array index */ + index = (unsigned int) stack[--stack_ptr]; + + /* pop the value and store it into the array */ + longptr_temp[index] = stack[--stack_ptr]; + } + } + break; + + case 0x4F: /* POPA */ + /* + * Pop stack into Boolean array + * ...argument 0 is variable ID + * ...stack 0 is count + * ...stack 1 is array index + * ...stack 2 is value + */ + IF_CHECK_STACK(3) + { + variable_id = (unsigned int) args[0]; + + /* + * If variable is read-only, convert to writable array + */ + if ((version > 0) && + ((attributes[variable_id] & 0x9c) == 0x0c)) + { + /* + * Allocate a writable buffer for this array + */ + long_temp = (variable_size[variable_id] + 7L) >> 3L; + charptr_temp2 = (unsigned char *) variables[variable_id]; + charptr_temp = jbi_malloc((unsigned int) long_temp); + variables[variable_id] = (addr_t) charptr_temp; + + if (variables[variable_id] == (addr_t) NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + /* zero the buffer */ + for (long_index = 0L; + long_index < long_temp; + ++long_index) + { + charptr_temp[long_index] = 0; + } + + /* copy previous contents into buffer */ + for (long_index = 0L; + long_index < variable_size[variable_id]; + ++long_index) + { +#if PORT==DOS + if ((attributes[variable_id] & 0x02) && + ((long_index & 0x0000FFFF) == 0L)) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (long_index >> 16), version); + charptr_temp = jbi_aca_out_buffer; + long_index2 = long_index & 0xFFFF; + } +#else + long_index2 = long_index; +#endif + + if (charptr_temp2[long_index2 >> 3] & + (1 << (long_index2 & 7))) + { + charptr_temp[long_index >> 3] |= + (1 << (long_index & 7)); + } + } + + /* set bit 7 - buffer was dynamically allocated */ + attributes[variable_id] |= 0x80; + + /* clear bit 2 - variable is writable */ + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } + } + +#if PORT==DOS + /* for 16-bit version, allow writing in allocated buffers */ + if ((version > 0) && + ((attributes[variable_id] & 0x9c) == 0x8c)) + { + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } +#endif + + /* check that variable is a writable Boolean array */ + if ((attributes[variable_id] & 0x1c) != 0x08) + { + status = JBIC_BOUNDS_ERROR; + } + else + { + charptr_temp = (unsigned char *) variables[variable_id]; + + /* pop the count (number of bits to copy) */ + long_count = stack[--stack_ptr]; + + /* pop the array index */ + long_index = stack[--stack_ptr]; + + reverse = 0; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + + if (long_index > long_count) + { + reverse = 1; + long_temp = long_count; + long_count = 1 + long_index - long_count; + long_index = long_temp; + + /* reverse POPA is not supported */ + status = JBIC_BOUNDS_ERROR; + break; + } + else + { + long_count = 1 + long_count - long_index; + } + } + + /* pop the data */ + long_temp = stack[--stack_ptr]; + + if (long_count < 1) + { + status = JBIC_BOUNDS_ERROR; + } + else + { + for (i = 0; i < (unsigned int) long_count; ++i) + { + if (long_temp & (1L << (long) i)) + { + charptr_temp[long_index >> 3L] |= + (1L << (long_index & 7L)); + } + else + { + charptr_temp[long_index >> 3L] &= + ~ (unsigned int) (1L << (long_index & 7L)); + } + ++long_index; + } + } + } + } + break; + + case 0x50: /* JMPZ */ + /* + * Pop stack and branch if zero + * ...argument 0 is address + * ...stack 0 is condition value + */ + IF_CHECK_STACK(1) + { + if (stack[--stack_ptr] == 0) + { + pc = args[0] + code_section; + CHECK_PC; + } + } + break; + + case 0x51: /* DS */ + case 0x52: /* IS */ + /* + * DRSCAN + * IRSCAN + * ...argument 0 is scan data variable ID + * ...stack 0 is array index + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + long_index = stack[--stack_ptr]; + long_count = stack[--stack_ptr]; + + reverse = 0; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + /* stack 2 = count */ + long_temp = long_count; + long_count = stack[--stack_ptr]; + + if (long_index > long_temp) + { + reverse = 1; + long_index = long_temp; + } + } + +#if PORT==DOS + if (((long_index & 0xFFFF0000) == 0) && + ((long_count & 0xFFFF0000) == 0)) + { + variable_id = (unsigned int) args[0]; + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (long_index >> 16), version); + long_index &= 0x0000ffff; + charptr_temp = jbi_aca_out_buffer; + } + else + { + charptr_temp = (unsigned char *) variables[variable_id]; + } + + if (reverse) + { + /* allocate a buffer and reverse the data order */ + charptr_temp2 = charptr_temp; + charptr_temp = jbi_malloc((unsigned int) + ((long_count >> 3L) + 1L)); + + if (charptr_temp == NULL) + { + status = JBIC_OUT_OF_MEMORY; + break; + } + else + { + long_temp = long_index + long_count - 1; + long_index2 = 0; + while (long_index2 < long_count) + { + if (charptr_temp2[long_temp >> 3] & + (1 << (long_temp & 7))) + { + charptr_temp[long_index2 >> 3] |= + (1 << (long_index2 & 7)); + } + else + { + charptr_temp[long_index2 >> 3] &= + ~(1 << (long_index2 & 7)); + } + + --long_temp; + ++long_index2; + } + } + } + + if (opcode == 0x51) /* DS */ + { + status = jbi_do_drscan((unsigned int) long_count, + charptr_temp, (unsigned long) long_index); + } + else /* IS */ + { + status = jbi_do_irscan((unsigned int) long_count, + charptr_temp, (unsigned int) long_index); + } + + if (reverse) jbi_free(charptr_temp); + } + else if ((opcode == 0x51) && !reverse) + { + status = jbi_do_drscan_multi_page( + (unsigned int) args[0], + (unsigned long) long_count, + (unsigned long) long_index, version); + } + else + { + /* reverse multi-page scans are not supported */ + /* multi-page IR scans are not supported */ + status = JBIC_BOUNDS_ERROR; + } +#else + charptr_temp = (unsigned char *) variables[args[0]]; + + if (reverse) + { + /* allocate a buffer and reverse the data order */ + charptr_temp2 = charptr_temp; + charptr_temp = jbi_malloc((long_count >> 3) + 1); + if (charptr_temp == NULL) + { + status = JBIC_OUT_OF_MEMORY; + break; + } + else + { + long_temp = long_index + long_count - 1; + long_index2 = 0; + while (long_index2 < long_count) + { + if (charptr_temp2[long_temp >> 3] & + (1 << (long_temp & 7))) + { + charptr_temp[long_index2 >> 3] |= + (1 << (long_index2 & 7)); + } + else + { + charptr_temp[long_index2 >> 3] &= + ~(1 << (long_index2 & 7)); + } + + --long_temp; + ++long_index2; + } + } + } + + if (opcode == 0x51) /* DS */ + { + status = jbi_do_drscan((unsigned int) long_count, + charptr_temp, (unsigned long) long_index); + } + else /* IS */ + { + status = jbi_do_irscan((unsigned int) long_count, + charptr_temp, (unsigned int) long_index); + } +#endif + + if (reverse && (charptr_temp != NULL)) + { + jbi_free(charptr_temp); + } + } + break; + + case 0x53: /* DPRA */ + /* + * DRPRE with array data + * ...argument 0 is variable ID + * ...stack 0 is array index + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + index = (unsigned int) stack[--stack_ptr]; + count = (unsigned int) stack[--stack_ptr]; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + count = 1 + count - index; + } + + charptr_temp = (unsigned char *) variables[args[0]]; + status = jbi_set_dr_preamble(count, index, charptr_temp); + } + break; + + case 0x54: /* DPOA */ + /* + * DRPOST with array data + * ...argument 0 is variable ID + * ...stack 0 is array index + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + index = (unsigned int) stack[--stack_ptr]; + count = (unsigned int) stack[--stack_ptr]; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + count = 1 + count - index; + } + + charptr_temp = (unsigned char *) variables[args[0]]; + status = jbi_set_dr_postamble(count, index, charptr_temp); + } + break; + + case 0x55: /* IPRA */ + /* + * IRPRE with array data + * ...argument 0 is variable ID + * ...stack 0 is array index + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + index = (unsigned int) stack[--stack_ptr]; + count = (unsigned int) stack[--stack_ptr]; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + count = 1 + count - index; + } + + charptr_temp = (unsigned char *) variables[args[0]]; + status = jbi_set_ir_preamble(count, index, charptr_temp); + } + break; + + case 0x56: /* IPOA */ + /* + * IRPOST with array data + * ...argument 0 is variable ID + * ...stack 0 is array index + * ...stack 1 is count + */ + IF_CHECK_STACK(2) + { + index = (unsigned int) stack[--stack_ptr]; + count = (unsigned int) stack[--stack_ptr]; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + count = 1 + count - index; + } + + charptr_temp = (unsigned char *) variables[args[0]]; + status = jbi_set_ir_postamble(count, index, charptr_temp); + } + break; + + case 0x57: /* EXPT */ + /* + * EXPORT + * ...argument 0 is string ID + * ...stack 0 is integer expression + */ + IF_CHECK_STACK(1) + { +#if PORT==DOS + name_id = args[0]; + for (j = 0; j < 32; ++j) + { + name[j] = GET_BYTE(string_table + name_id + j); + } + name[32] = '\0'; +#else + name = (char *) &program[string_table + args[0]]; +#endif + long_temp = stack[--stack_ptr]; + jbi_export_integer(name, long_temp); + } + break; + + case 0x58: /* PSHE */ + /* + * Push integer array element + * ...argument 0 is variable ID + * ...stack 0 is array index + */ + IF_CHECK_STACK(1) + { + variable_id = (unsigned int) args[0]; + index = (unsigned int) stack[stack_ptr - 1]; + + /* check variable type */ + if ((attributes[variable_id] & 0x1f) == 0x19) + { + /* writable integer array */ + longptr_temp = (long *) variables[variable_id]; + stack[stack_ptr - 1] = longptr_temp[index]; + } + else if ((attributes[variable_id] & 0x1f) == 0x1c) + { + /* read-only integer array */ + long_temp = variables[variable_id] + (4L * index); + stack[stack_ptr - 1] = GET_DWORD(long_temp); + } + else + { + status = JBIC_BOUNDS_ERROR; + } + } + break; + + case 0x59: /* PSHA */ + /* + * Push Boolean array + * ...argument 0 is variable ID + * ...stack 0 is count + * ...stack 1 is array index + */ + IF_CHECK_STACK(2) + { + variable_id = (unsigned int) args[0]; + + /* check that variable is a Boolean array */ + if ((attributes[variable_id] & 0x18) != 0x08) + { + status = JBIC_BOUNDS_ERROR; + } + else + { + charptr_temp = (unsigned char *) variables[variable_id]; + + /* pop the count (number of bits to copy) */ + count = (unsigned int) stack[--stack_ptr]; + + /* pop the array index */ + index = (unsigned int) stack[stack_ptr - 1]; + + if (version > 0) + { + /* stack 0 = array right index */ + /* stack 1 = array left index */ + count = 1 + count - index; + } + + if ((count < 1) || (count > 32)) + { + status = JBIC_BOUNDS_ERROR; + } + else + { +#if PORT==DOS + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (stack[stack_ptr - 1] >> 16), version); + charptr_temp = jbi_aca_out_buffer; + } +#endif + long_temp = 0L; + + for (i = 0; i < count; ++i) + { + if (charptr_temp[(i + index) >> 3] & + (1 << ((i + index) & 7))) + { + long_temp |= (1L << i); + } + } + + stack[stack_ptr - 1] = long_temp; + } + } + } + break; + + case 0x5A: /* DYNA */ + /* + * Dynamically change size of array + * ...argument 0 is variable ID + * ...stack 0 is new size + */ + IF_CHECK_STACK(1) + { + variable_id = (unsigned int) args[0]; + long_temp = stack[--stack_ptr]; + + if (long_temp > variable_size[variable_id]) + { + variable_size[variable_id] = long_temp; + + if (attributes[variable_id] & 0x10) + { + /* allocate integer array */ + long_temp *= 4; + } + else + { + /* allocate Boolean array */ + long_temp = (long_temp + 7) >> 3; + } + + /* + * If the buffer was previously allocated, free it + */ + if ((attributes[variable_id] & 0x80) && + (variables[variable_id] != (addr_t) NULL)) + { + jbi_free((void *) variables[variable_id]); + variables[variable_id] = (addr_t) NULL; + } + + /* + * Allocate a new buffer of the requested size + */ + variables[variable_id] = (addr_t) + jbi_malloc((unsigned int) long_temp); + + if (variables[variable_id] == (addr_t) NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + /* + * Set the attribute bit to indicate that this buffer + * was dynamically allocated and should be freed later + */ + attributes[variable_id] |= 0x80; + + /* zero out memory */ + count = (unsigned int) + ((variable_size[variable_id] + 7L) / 8L); + charptr_temp = (unsigned char *) + (variables[variable_id]); + for (index = 0; index < count; ++index) + { + charptr_temp[index] = 0; + } + } + } + } + break; + + case 0x5B: /* EXPR */ + bad_opcode = 1; + break; + + case 0x5C: /* EXPV */ + /* + * Export Boolean array + * ...argument 0 is string ID + * ...stack 0 is variable ID + * ...stack 1 is array right index + * ...stack 2 is array left index + */ + IF_CHECK_STACK(3) + { + if (version == 0) + { + /* EXPV is not supported in JBC 1.0 */ + bad_opcode = 1; + break; + } +#if PORT==DOS + name_id = args[0]; + for (j = 0; j < 32; ++j) + { + name[j] = GET_BYTE(string_table + name_id + j); + } + name[32] = '\0'; +#else + name = (char *) &program[string_table + args[0]]; +#endif + variable_id = (unsigned int) stack[--stack_ptr]; + long_index = stack[--stack_ptr]; /* right index */ + long_index2 = stack[--stack_ptr]; /* left index */ + + if (long_index > long_index2) + { + /* reverse indices not supported */ + status = JBIC_BOUNDS_ERROR; + break; + } + + long_count = 1 + long_index2 - long_index; + + charptr_temp = (unsigned char *) variables[variable_id]; + charptr_temp2 = NULL; + +#if PORT==DOS + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (long_index >> 16), version); + charptr_temp = jbi_aca_out_buffer; + long_index &= 0x0000FFFF; + } +#endif + + if ((long_index & 7L) != 0) + { + charptr_temp2 = jbi_malloc((unsigned int) + ((long_count + 7L) / 8L)); + if (charptr_temp2 == NULL) + { + status = JBIC_OUT_OF_MEMORY; + break; + } + else + { + long k = long_index; + for (i = 0; i < (unsigned int) long_count; ++i) + { + if (charptr_temp[k >> 3] & (1 << (k & 7))) + { + charptr_temp2[i >> 3] |= (1 << (i & 7)); + } + else + { + charptr_temp2[i >> 3] &= ~(1 << (i & 7)); + } + + ++k; + } + charptr_temp = charptr_temp2; + } + } + else if (long_index != 0) + { + charptr_temp = &charptr_temp[long_index >> 3]; + } + + jbi_export_boolean_array(name, charptr_temp, long_count); + + /* free allocated buffer */ + if (((long_index & 7L) != 0) && (charptr_temp2 != NULL)) + { + jbi_free(charptr_temp2); + } + } + break; + + case 0x80: /* COPY */ + /* + * Array copy + * ...argument 0 is dest ID + * ...argument 1 is source ID + * ...stack 0 is count + * ...stack 1 is dest index + * ...stack 2 is source index + */ + IF_CHECK_STACK(3) + { + long copy_count = stack[--stack_ptr]; + long copy_index = stack[--stack_ptr]; + long copy_index2 = stack[--stack_ptr]; + long destleft; + long src_count; + long dest_count; + int src_reverse = 0; + int dest_reverse = 0; + + reverse = 0; + + if (version > 0) + { + /* stack 0 = source right index */ + /* stack 1 = source left index */ + /* stack 2 = destination right index */ + /* stack 3 = destination left index */ + destleft = stack[--stack_ptr]; + + if (copy_count > copy_index) + { + src_reverse = 1; + reverse = 1; + src_count = 1 + copy_count - copy_index; + /* copy_index = source start index */ + } + else + { + src_count = 1 + copy_index - copy_count; + copy_index = copy_count; /* source start index */ + } + + if (copy_index2 > destleft) + { + dest_reverse = 1; + reverse = !reverse; + dest_count = 1 + copy_index2 - destleft; + copy_index2 = destleft; /* destination start index */ + } + else + { + dest_count = 1 + destleft - copy_index2; + /* copy_index2 = destination start index */ + } + + copy_count = (src_count < dest_count) ? src_count : dest_count; + + if ((src_reverse || dest_reverse) && + (src_count != dest_count)) + { + /* If either the source or destination is reversed, */ + /* we can't tolerate a length mismatch, because we */ + /* "left justify" the arrays when copying. This */ + /* won't work correctly with reversed arrays. */ + status = JBIC_BOUNDS_ERROR; + } + } + + count = (unsigned int) copy_count; + index = (unsigned int) copy_index; + index2 = (unsigned int) copy_index2; + + /* + * If destination is a read-only array, allocate a buffer + * and convert it to a writable array + */ + variable_id = (unsigned int) args[1]; + if ((version > 0) && ((attributes[variable_id] & 0x9c) == 0x0c)) + { + /* + * Allocate a writable buffer for this array + */ + long_temp = (variable_size[variable_id] + 7L) >> 3L; + charptr_temp2 = (unsigned char *) variables[variable_id]; + charptr_temp = jbi_malloc((unsigned int) long_temp); + variables[variable_id] = (addr_t) charptr_temp; + + if (variables[variable_id] == (addr_t) NULL) + { + status = JBIC_OUT_OF_MEMORY; + break; + } + else + { + /* zero the buffer */ + for (long_index = 0L; + long_index < long_temp; + ++long_index) + { + charptr_temp[long_index] = 0; + } + + /* copy previous contents into buffer */ + for (long_index = 0L; + long_index < variable_size[variable_id]; + ++long_index) + { +#if PORT==DOS + if ((attributes[variable_id] & 0x02) && + ((long_index & 0x0000FFFF) == 0L)) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (long_index >> 16), version); + charptr_temp = jbi_aca_out_buffer; + long_index2 = long_index & 0xFFFF; + } +#else + long_index2 = long_index; +#endif + + if (charptr_temp2[long_index2 >> 3] & + (1 << (long_index2 & 7))) + { + charptr_temp[long_index >> 3] |= + (1 << (long_index & 7)); + } + } + + /* set bit 7 - buffer was dynamically allocated */ + attributes[variable_id] |= 0x80; + + /* clear bit 2 - variable is writable */ + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } + } + +#if PORT==DOS + /* for 16-bit version, allow writing in allocated buffers */ + if ((version > 0) && + ((attributes[variable_id] & 0x9c) == 0x8c)) + { + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } +#endif + + charptr_temp = (unsigned char *) variables[args[1]]; + charptr_temp2 = (unsigned char *) variables[args[0]]; + +#if PORT==DOS + variable_id = (unsigned int) args[0]; + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (copy_index >> 16), version); + charptr_temp2 = jbi_aca_out_buffer; + } +#endif + + /* check that destination is a writable Boolean array */ + if ((attributes[args[1]] & 0x1c) != 0x08) + { + status = JBIC_BOUNDS_ERROR; + break; + } + + if (count < 1) + { + status = JBIC_BOUNDS_ERROR; + } + else + { + if (reverse) + { + index2 += (count - 1); + } + + for (i = 0; i < count; ++i) + { + if (charptr_temp2[index >> 3] & (1 << (index & 7))) + { + charptr_temp[index2 >> 3] |= (1 << (index2 & 7)); + } + else + { + charptr_temp[index2 >> 3] &= + ~(unsigned int) (1 << (index2 & 7)); + } + ++index; + if (reverse) --index2; else ++index2; + } + } + } + break; + + case 0x81: /* REVA */ + /* + * ARRAY COPY reversing bit order + * ...argument 0 is dest ID + * ...argument 1 is source ID + * ...stack 0 is dest index + * ...stack 1 is source index + * ...stack 2 is count + */ + bad_opcode = 1; + break; + + case 0x82: /* DSC */ + case 0x83: /* ISC */ + /* + * DRSCAN with capture + * IRSCAN with capture + * ...argument 0 is scan data variable ID + * ...argument 1 is capture variable ID + * ...stack 0 is capture index + * ...stack 1 is scan data index + * ...stack 2 is count + */ + IF_CHECK_STACK(3) + { + long scan_right, scan_left; + long capture_count = 0; + long scan_count = 0; + long capture_index = stack[--stack_ptr]; + long scan_index = stack[--stack_ptr]; + if (version > 0) + { + /* stack 0 = capture right index */ + /* stack 1 = capture left index */ + /* stack 2 = scan right index */ + /* stack 3 = scan left index */ + /* stack 4 = count */ + scan_right = stack[--stack_ptr]; + scan_left = stack[--stack_ptr]; + capture_count = 1 + scan_index - capture_index; + scan_count = 1 + scan_left - scan_right; + scan_index = scan_right; + } + long_count = stack[--stack_ptr]; + + /* + * If capture array is read-only, allocate a buffer + * and convert it to a writable array + */ + variable_id = (unsigned int) args[1]; + if ((version > 0) && ((attributes[variable_id] & 0x9c) == 0x0c)) + { + /* + * Allocate a writable buffer for this array + */ + long_temp = (variable_size[variable_id] + 7L) >> 3L; + charptr_temp2 = (unsigned char *) variables[variable_id]; + charptr_temp = jbi_malloc((unsigned int) long_temp); + variables[variable_id] = (addr_t) charptr_temp; + + if (variables[variable_id] == (addr_t) NULL) + { + status = JBIC_OUT_OF_MEMORY; + break; + } + else + { + /* zero the buffer */ + for (long_index = 0L; + long_index < long_temp; + ++long_index) + { + charptr_temp[long_index] = 0; + } + + /* copy previous contents into buffer */ + for (long_index = 0L; + long_index < variable_size[variable_id]; + ++long_index) + { +#if PORT==DOS + if ((attributes[variable_id] & 0x02) && + ((long_index & 0x0000FFFF) == 0L)) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (long_index >> 16), version); + charptr_temp = jbi_aca_out_buffer; + long_index2 = long_index & 0xFFFF; + } +#else + long_index2 = long_index; +#endif + + if (charptr_temp2[long_index2 >> 3] & + (1 << (long_index2 & 7))) + { + charptr_temp[long_index >> 3] |= + (1 << (long_index & 7)); + } + } + + /* set bit 7 - buffer was dynamically allocated */ + attributes[variable_id] |= 0x80; + + /* clear bit 2 - variable is writable */ + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } + } + +#if PORT==DOS + /* for 16-bit version, allow writing in allocated buffers */ + if ((version > 0) && + ((attributes[variable_id] & 0x9c) == 0x8c)) + { + attributes[variable_id] &= ~0x04; + attributes[variable_id] |= 0x01; + } +#endif + + charptr_temp = (unsigned char *) variables[args[0]]; + charptr_temp2 = (unsigned char *) variables[args[1]]; + +#if PORT==DOS + variable_id = (unsigned int) args[0]; + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + /* initialized compressed Boolean array */ + jbi_uncompress_page(variable_id, + (int) (scan_index >> 16), version); + scan_index &= 0x0000ffff; + charptr_temp = jbi_aca_out_buffer; + } +#endif + + if ((version > 0) && + ((long_count > capture_count) || (long_count > scan_count))) + { + status = JBIC_BOUNDS_ERROR; + } + + /* check that capture array is a writable Boolean array */ + if ((attributes[args[1]] & 0x1c) != 0x08) + { + status = JBIC_BOUNDS_ERROR; + } + + if (status == JBIC_SUCCESS) + { + if (opcode == 0x82) /* DSC */ + { + status = jbi_swap_dr((unsigned int) long_count, + charptr_temp, (unsigned long) scan_index, + charptr_temp2, (unsigned int) capture_index); + } + else /* ISC */ + { + status = jbi_swap_ir((unsigned int) long_count, + charptr_temp, (unsigned int) scan_index, + charptr_temp2, (unsigned int) capture_index); + } + } + } + break; + + case 0x84: /* WAIT */ + /* + * WAIT + * ...argument 0 is wait state + * ...argument 1 is end state + * ...stack 0 is cycles + * ...stack 1 is microseconds + */ + IF_CHECK_STACK(2) + { + long_temp = stack[--stack_ptr]; + + if (long_temp != 0L) + { + status = jbi_do_wait_cycles(long_temp, (unsigned int) args[0]); + } + + long_temp = stack[--stack_ptr]; + + if ((status == JBIC_SUCCESS) && (long_temp != 0L)) + { + status = jbi_do_wait_microseconds(long_temp, (unsigned int) args[0]); + } + + if ((status == JBIC_SUCCESS) && (args[1] != args[0])) + { + status = jbi_goto_jtag_state((unsigned int) args[1]); + } + + if (version > 0) + { + --stack_ptr; /* throw away MAX cycles */ + --stack_ptr; /* throw away MAX microseconds */ + } + } + break; + + case 0x85: /* VS */ + /* + * VECTOR + * ...argument 0 is dir data variable ID + * ...argument 1 is scan data variable ID + * ...stack 0 is dir array index + * ...stack 1 is scan array index + * ...stack 2 is count + */ + bad_opcode = 1; + break; + + case 0xC0: /* CMPA */ + /* + * Array compare + * ...argument 0 is source 1 ID + * ...argument 1 is source 2 ID + * ...argument 2 is mask ID + * ...stack 0 is source 1 index + * ...stack 1 is source 2 index + * ...stack 2 is mask index + * ...stack 3 is count + */ + IF_CHECK_STACK(4) + { + long a, b; + unsigned char *source1 = (unsigned char *) variables[args[0]]; + unsigned char *source2 = (unsigned char *) variables[args[1]]; + unsigned char *mask = (unsigned char *) variables[args[2]]; + unsigned long index1 = stack[--stack_ptr]; + unsigned long index2 = stack[--stack_ptr]; + unsigned long mask_index = stack[--stack_ptr]; + long_count = stack[--stack_ptr]; + + if (version > 0) + { + /* stack 0 = source 1 right index */ + /* stack 1 = source 1 left index */ + /* stack 2 = source 2 right index */ + /* stack 3 = source 2 left index */ + /* stack 4 = mask right index */ + /* stack 5 = mask left index */ + long mask_right = stack[--stack_ptr]; + long mask_left = stack[--stack_ptr]; + a = 1 + index2 - index1; /* source 1 count */ + b = 1 + long_count - mask_index; /* source 2 count */ + a = (a < b) ? a : b; + b = 1 + mask_left - mask_right; /* mask count */ + a = (a < b) ? a : b; + index2 = mask_index; /* source 2 start index */ + mask_index = mask_right; /* mask start index */ + long_count = a; + } + + long_temp = 1L; + + if (long_count < 1) + { + status = JBIC_BOUNDS_ERROR; + } + else + { +#if PORT==DOS + variable_id = (unsigned int) args[0]; + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + jbi_uncompress_page(variable_id, + (int) (index1 >> 16), version); + index1 &= 0x0000ffff; + source1 = jbi_aca_out_buffer; + } + + variable_id = (unsigned int) args[1]; + if ((attributes[variable_id] & 0x1e) == 0x0e) + { + jbi_uncompress_page(variable_id, + (int) (index2 >> 16), version); + index2 &= 0x0000ffff; + source2 = jbi_aca_out_buffer; + } +#endif + count = (unsigned int) long_count; + + for (i = 0; i < count; ++i) + { + if (mask[mask_index >> 3] & (1 << (mask_index & 7))) + { + a = source1[index1 >> 3] & (1 << (index1 & 7)) + ? 1 : 0; + b = source2[index2 >> 3] & (1 << (index2 & 7)) + ? 1 : 0; + + if (a != b) long_temp = 0L; /* failure */ + } + ++index1; + ++index2; + ++mask_index; + } + } + + stack[stack_ptr++] = long_temp; + } + break; + + case 0xC1: /* VSC */ + /* + * VECTOR with capture + * ...argument 0 is dir data variable ID + * ...argument 1 is scan data variable ID + * ...argument 2 is capture variable ID + * ...stack 0 is capture index + * ...stack 1 is scan data index + * ...stack 2 is dir data index + * ...stack 3 is count + */ + bad_opcode = 1; + break; + + default: + /* + * Unrecognized opcode -- ERROR! + */ + bad_opcode = 1; + break; + } + + if (bad_opcode) + { + status = JBIC_ILLEGAL_OPCODE; + } + + if ((stack_ptr < 0) || (stack_ptr >= JBI_STACK_SIZE)) + { + status = JBIC_STACK_OVERFLOW; + } + + if (status != JBIC_SUCCESS) + { + done = 1; + *error_address = (long) (opcode_address - code_section); + } + } + jbi_dbg(DEBUG_DETAIL, "debug_cnt(total): 0x%lx\n", debug_cnt); + + jbi_dbg(DEBUG_NOISY, "jbi_free_jtag_padding_buffers\n"); + jbi_free_jtag_padding_buffers(reset_jtag); + + /* + * Free all dynamically allocated arrays + */ + jbi_dbg(DEBUG_NOISY, "jbi_free_attributes\n"); + if ((attributes != NULL) && (variables != NULL)) + { + for (i = 0; i < (unsigned int) symbol_count; ++i) + { + if ((attributes[i] & 0x80) && (variables[i] != (addr_t) NULL) + && (variables[i] != (addr_t) 1)) + { + jbi_free((void *) variables[i]); + } + } + } + + if (variables != NULL) jbi_free(variables); + + if (variable_size != NULL) jbi_free(variable_size); + + if (attributes != NULL) jbi_free(attributes); + + if (proc_attributes != NULL) jbi_free(proc_attributes); + + jbi_dbg(DEBUG_NOISY, "return status %d\n", status); + kfree(message_buffer); + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_get_note +( + PROGRAM_PTR program, + long program_size, + long *offset, + char *key, + char *value, + int length +) + +/* */ +/* Description: Gets key and value of NOTE fields in the JBC file. */ +/* Can be called in two modes: if offset pointer is NULL, */ +/* then the function searches for note fields which match */ +/* the key string provided. If offset is not NULL, then */ +/* the function finds the next note field of any key, */ +/* starting at the offset specified by the offset pointer. */ +/* */ +/* Returns: JBIC_SUCCESS for success, else appropriate error code */ +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_UNEXPECTED_END; + unsigned long note_strings = 0L; + unsigned long note_table = 0L; + unsigned long note_count = 0L; + unsigned long first_word = 0L; + int version = 0; + int delta = 0; + char *key_ptr; + char *value_ptr; + int i; + +#if PORT==DOS + int count = 0; + int done = 0; + long long_index = 0; + char key_buffer[256]; + char value_buffer[256]; + + jbi_program = program; +#endif + + /* + * Read header information + */ + if (program_size > 52L) + { + first_word = GET_DWORD(0); + version = (int) (first_word & 1L); + delta = version * 8; + + note_strings = GET_DWORD(8 + delta); + note_table = GET_DWORD(12 + delta); + note_count = GET_DWORD(44 + (2 * delta)); + } + + if ((first_word != 0x4A414D00L) && (first_word != 0x4A414D01L)) + { + status = JBIC_IO_ERROR; + } + else if (note_count > 0L) + { + if (offset == NULL) + { + /* + * We will search for the first note with a specific key, and + * return only the value + */ + for (i = 0; (i < (int) note_count) && (status != JBIC_SUCCESS); ++i) + { +#if PORT==DOS + done = 0; + count = 0; + long_index = note_strings + GET_DWORD(note_table + (8 * i)); + while ((count < 255) && !done) + { + key_buffer[count] = GET_BYTE(long_index); + if (key_buffer[count] == '\0') done = 1; + ++long_index; + ++count; + } + key_buffer[255] = '\0'; + key_ptr = key_buffer; +#else + key_ptr = (char *) &program[note_strings + + GET_DWORD(note_table + (8 * i))]; +#endif + if ((key != NULL) && (jbi_stricmp(key, key_ptr) == 0)) + { + status = JBIC_SUCCESS; + +#if PORT==DOS + done = 0; + count = 0; + long_index = note_strings + GET_DWORD(note_table + (8 * i) + 4); + while ((count < 255) && !done) + { + value_buffer[count] = GET_BYTE(long_index); + if (value_buffer[count] == '\0') done = 1; + ++long_index; + ++count; + } + value_buffer[255] = '\0'; + value_ptr = value_buffer; +#else + value_ptr = (char *) &program[note_strings + + GET_DWORD(note_table + (8 * i) + 4)]; +#endif + + if (value != NULL) + { + jbi_strncpy(value, value_ptr, length); + } + } + } + } + else + { + /* + * We will search for the next note, regardless of the key, and + * return both the value and the key + */ + + i = (int) *offset; + + if ((i >= 0) && (i < (int) note_count)) + { + status = JBIC_SUCCESS; + + if (key != NULL) + { +#if PORT==DOS + done = 0; + count = 0; + long_index = note_strings + + GET_DWORD(note_table + (8 * i)); + + while ((count < length) && !done) + { + key[count] = GET_BYTE(long_index); + if (key[count] == '\0') done = 1; + ++long_index; + ++count; + } +#else + jbi_strncpy(key, (char *) &program[note_strings + + GET_DWORD(note_table + (8 * i))], length); +#endif + } + + if (value != NULL) + { +#if PORT==DOS + done = 0; + count = 0; + long_index = note_strings + + GET_DWORD(note_table + (8 * i) + 4); + + while ((count < length) && !done) + { + value[count] = GET_BYTE(long_index); + if (value[count] == '\0') done = 1; + ++long_index; + ++count; + } +#else + jbi_strncpy(value, (char *) &program[note_strings + + GET_DWORD(note_table + (8 * i) + 4)], length); +#endif + } + + *offset = i + 1; + } + } + } + + return (status); +} + +/****************************************************************************/ +/* */ + +JBI_RETURN_TYPE jbi_check_crc +( + PROGRAM_PTR program, + long program_size, + unsigned short *expected_crc, + unsigned short *actual_crc +) + +/* */ +/* Description: This function reads the entire input file and computes */ +/* the CRC of everything up to the CRC field. */ +/* */ +/* Returns: JBIC_SUCCESS for success, JBIC_CRC_ERROR for failure */ +/* */ +/****************************************************************************/ +{ + JBI_RETURN_TYPE status = JBIC_SUCCESS; + unsigned short local_expected, local_actual, shift_reg = 0xffff; + int bit, feedback; + unsigned char databyte; + unsigned long i; + unsigned long crc_section = 0L; + unsigned long first_word = 0L; + int version = 0; + int delta = 0; + +#if PORT==DOS + jbi_program = program; +#endif + + if (program_size > 52L) + { + first_word = GET_DWORD(0); + version = (int) (first_word & 1L); + delta = version * 8; + + crc_section = GET_DWORD(32 + delta); + } + + if ((first_word != 0x4A414D00L) && (first_word != 0x4A414D01L)) + { + status = JBIC_IO_ERROR; + } + + if (crc_section >= (unsigned long) program_size) + { + status = JBIC_IO_ERROR; + } + + if (status == JBIC_SUCCESS) + { + local_expected = (unsigned short) GET_WORD(crc_section); + if (expected_crc != NULL) *expected_crc = local_expected; + + for (i = 0; i < crc_section; ++i) + { + databyte = GET_BYTE(i); + for (bit = 0; bit < 8; bit++) /* compute for each bit */ + { + feedback = (databyte ^ shift_reg) & 0x01; + shift_reg >>= 1; /* shift the shift register */ + if (feedback) shift_reg ^= 0x8408; /* invert selected bits */ + databyte >>= 1; /* get the next bit of input_byte */ + } + } + + local_actual = (unsigned short) ~shift_reg; + if (actual_crc != NULL) *actual_crc = local_actual; + + if (local_expected != local_actual) + { + status = JBIC_CRC_ERROR; + } + } + + return (status); +} + +JBI_RETURN_TYPE jbi_get_file_info +( + PROGRAM_PTR program, + long program_size, + int *format_version, + int *action_count, + int *procedure_count +) +{ + JBI_RETURN_TYPE status = JBIC_IO_ERROR; + unsigned long first_word = 0; + int version = 0; + +#if PORT==DOS + jbi_program = program; +#endif + + /* + * Read header information + */ + if (program_size > 52L) + { + first_word = GET_DWORD(0); + + if ((first_word == 0x4A414D00L) || (first_word == 0x4A414D01L)) + { + status = JBIC_SUCCESS; + + version = (int) (first_word & 1L); + *format_version = version + 1; + + if (version > 0) + { + *action_count = (int) GET_DWORD(48); + *procedure_count = (int) GET_DWORD(52); + } + } + + } + + return (status); +} + +JBI_RETURN_TYPE jbi_get_action_info +( + PROGRAM_PTR program, + long program_size, + int index, + char **name, + char **description, + JBI_PROCINFO **procedure_list +) +{ + JBI_RETURN_TYPE status = JBIC_IO_ERROR; + JBI_PROCINFO *procptr = NULL; + JBI_PROCINFO *tmpptr = NULL; + unsigned long first_word = 0L; + unsigned long action_table = 0L; + unsigned long proc_table = 0L; + unsigned long string_table = 0L; + unsigned long note_strings = 0L; + unsigned long action_count = 0L; + unsigned long proc_count = 0L; + unsigned long act_name_id = 0L; + unsigned long act_desc_id = 0L; + unsigned long act_proc_id = 0L; + unsigned long act_proc_name = 0L; + unsigned char act_proc_attribute = 0; + +#if PORT==DOS + int i, length; + jbi_program = program; +#endif + + /* + * Read header information + */ + if (program_size > 52L) + { + first_word = GET_DWORD(0); + + if (first_word == 0x4A414D01L) + { + action_table = GET_DWORD(4); + proc_table = GET_DWORD(8); + string_table = GET_DWORD(12); + note_strings = GET_DWORD(16); + action_count = GET_DWORD(48); + proc_count = GET_DWORD(52); + + if (index < (int) action_count) + { + act_name_id = GET_DWORD(action_table + (12 * index)); + act_desc_id = GET_DWORD(action_table + (12 * index) + 4); + act_proc_id = GET_DWORD(action_table + (12 * index) + 8); + +#if PORT==DOS + length = 0; + while (GET_BYTE(string_table + act_name_id + length) != 0) ++length; + *name = jbi_malloc(length + 1); + if (*name == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + for (i = 0; i < length; ++i) + { + (*name)[i] = GET_BYTE(string_table + act_name_id + i); + } + (*name)[length] = '\0'; + } +#else + *name = (char *) &program[string_table + act_name_id]; +#endif + + if (act_desc_id < (note_strings - string_table)) + { +#if PORT==DOS + length = 0; + while (GET_BYTE(string_table + act_desc_id + length) != 0) ++length; + *description = jbi_malloc(length + 1); + if (*description == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + for (i = 0; i < length; ++i) + { + (*description)[i] = GET_BYTE(string_table + act_desc_id + i); + } + (*description)[length] = '\0'; + } +#else + *description = (char *) &program[string_table + act_desc_id]; +#endif + } + + do + { + act_proc_name = GET_DWORD(proc_table + (13 * act_proc_id)); + act_proc_attribute = (unsigned char) + (GET_BYTE(proc_table + (13 * act_proc_id) + 8) & 0x03); + + procptr = (JBI_PROCINFO *) jbi_malloc(sizeof(JBI_PROCINFO)); + + if (procptr == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { +#if PORT==DOS + length = 0; + while (GET_BYTE(string_table + act_proc_name + length) != 0) ++length; + procptr->name = jbi_malloc(length + 1); + if (procptr->name == NULL) + { + status = JBIC_OUT_OF_MEMORY; + } + else + { + for (i = 0; i < length; ++i) + { + procptr->name[i] = + GET_BYTE(string_table + act_proc_name + i); + } + procptr->name[length] = '\0'; + } +#else + procptr->name = (char *) + &program[string_table + act_proc_name]; +#endif + procptr->attributes = act_proc_attribute; + procptr->next = NULL; + + /* add record to end of linked list */ + if (*procedure_list == NULL) + { + *procedure_list = procptr; + } + else + { + tmpptr = *procedure_list; + while (tmpptr->next != NULL) tmpptr = tmpptr->next; + tmpptr->next = procptr; + } + } + + act_proc_id = + GET_DWORD(proc_table + (13 * act_proc_id) + 4); + } + while ((act_proc_id != 0) && (act_proc_id < proc_count)); + } + } + + } + + return (status); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h new file mode 100644 index 000000000000..28669dc81ff6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h @@ -0,0 +1,45 @@ +/****************************************************************************/ +/* */ +/* Module: jbiport.h */ +/* */ +/* Copyright (C) Altera Corporation 2000-2001 */ +/* */ +/* Description: Defines porting macros */ +/* */ +/****************************************************************************/ + +#ifndef INC_JBIPORT_H +#define INC_JBIPORT_H + +/* +* PORT defines the target platform: DOS, WINDOWS, UNIX, or EMBEDDED +* +* PORT = DOS means a 16-bit DOS console-mode application +* +* PORT = WINDOWS means a 32-bit WIN32 console-mode application for +* Windows 95, 98, 2000, ME or NT. On NT this will use the +* DeviceIoControl() API to access the Parallel Port. +* +* PORT = UNIX means any UNIX system. BitBlaster access is support via +* the standard ANSI system calls open(), read(), write(). +* The ByteBlaster is not supported. +* +* PORT = EMBEDDED means all DOS, WINDOWS, and UNIX code is excluded. +* Remaining code supports 16 and 32-bit compilers. +* Additional porting steps may be necessary. See readme +* file for more details. +*/ + +#define DOS 2 +#define WINDOWS 3 +#define UNIX 4 +#define EMBEDDED 5 + +#define PORT EMBEDDED + +#ifndef PORT +/* change this line to build a different port */ +#define PORT WINDOWS +#endif + +#endif /* INC_JBIPORT_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c new file mode 100644 index 000000000000..396c92caca2b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c @@ -0,0 +1,2518 @@ +/****************************************************************************/ +/* */ +/* Module: jbistub.c */ +/* */ +/* Copyright (C) Altera Corporation 1997-2001 */ +/* */ +/* Description: Jam STAPL ByteCode Player main source file */ +/* */ +/* Supports Altera ByteBlaster hardware download cable */ +/* on Windows 95 and Windows NT operating systems. */ +/* (A device driver is required for Windows NT.) */ +/* */ +/* Also supports BitBlaster hardware download cable on */ +/* Windows 95, Windows NT, and UNIX platforms. */ +/* */ +/* Revisions: 1.1 fixed control port initialization for ByteBlaster */ +/* 2.0 added support for STAPL bytecode format, added code */ +/* to get printer port address from Windows registry */ +/* 2.1 improved messages, fixed delay-calibration bug in */ +/* 16-bit DOS port, added support for "alternative */ +/* cable X", added option to control whether to reset */ +/* the TAP after execution, moved porting macros into */ +/* jbiport.h */ +/* 2.2 added support for static memory */ +/* fixed /W4 warnings */ +/* */ +/****************************************************************************/ + +#ifndef NO_ALTERA_STDIO +#define NO_ALTERA_STDIO +#endif + +#if 0 +#if ( _MSC_VER >= 800 ) +#pragma warning(disable:4115) +#pragma warning(disable:4201) +#pragma warning(disable:4214) +#pragma warning(disable:4514) +#endif +#endif + +#include "jbiport.h" + +#if PORT == WINDOWS +#include +#else +typedef int BOOL; +typedef unsigned char BYTE; +typedef unsigned short WORD; +#if PORT == EMBEDDED +typedef unsigned int DWORD; +#else +typedef unsigned long DWORD; +#endif +#define TRUE 1 +#define FALSE 0 +#endif + +#if PORT != EMBEDDED +#include +#include +#include +#include +#include +#include +#endif + +#include + +#include "jbiexprt.h" +#include "jbistub.h" + +#if defined(USE_STATIC_MEMORY) + #define N_STATIC_MEMORY_KBYTES ((unsigned int) USE_STATIC_MEMORY) + #define N_STATIC_MEMORY_BYTES (N_STATIC_MEMORY_KBYTES * 1024) + #define POINTER_ALIGNMENT sizeof(DWORD) +#else /* USE_STATIC_MEMORY */ + /* #include */ + #define POINTER_ALIGNMENT sizeof(BYTE) +#endif /* USE_STATIC_MEMORY */ + +#if PORT != EMBEDDED +#include +#include +#include +#include +#include +#endif + +#if PORT == DOS +#include +#endif + +int jbi_debug_level = DEBUG_NONE; +static long jbi_delay_us = 0, jbi_delay_count = 0, jbi_peak_us = 0; + +void __jbi_jtag_udelay(unsigned long us) +{ + udelay(us); +} +void jbi_jtag_udelay(unsigned long us) __attribute__((weak, alias("__jbi_jtag_udelay"))); + +#if PORT == WINDOWS +#define PGDC_IOCTL_GET_DEVICE_INFO_PP 0x00166A00L +#define PGDC_IOCTL_READ_PORT_PP 0x00166A04L +#define PGDC_IOCTL_WRITE_PORT_PP 0x0016AA08L +#define PGDC_IOCTL_PROCESS_LIST_PP 0x0016AA1CL +#define PGDC_READ_INFO 0x0a80 +#define PGDC_READ_PORT 0x0a81 +#define PGDC_WRITE_PORT 0x0a82 +#define PGDC_PROCESS_LIST 0x0a87 +#define PGDC_HDLC_NTDRIVER_VERSION 2 +#define PORT_IO_BUFFER_SIZE 256 +#endif + +#if PORT == WINDOWS +#ifdef __BORLANDC__ +/* create dummy inp() and outp() functions for Borland 32-bit compile */ +WORD inp(WORD address) { address = address; return(0); } +void outp(WORD address, WORD data) { address = address; data = data; } +#else +#pragma intrinsic (inp, outp) +#endif +#endif + +/* +* For Borland C compiler (16-bit), set the stack size +*/ +#if PORT == DOS +#ifdef __BORLANDC__ +extern unsigned int _stklen = 50000; +#endif +#endif + +/************************************************************************ +* +* Global variables +*/ + +/* file buffer for Jam STAPL ByteCode input file */ +#if PORT == DOS +unsigned char **file_buffer = NULL; +#else +unsigned char *file_buffer = NULL; +#endif +long file_pointer = 0L; +long file_length = 0L; + +/* delay count for one millisecond delay */ +long one_ms_delay = 0L; + +/* serial port interface available on all platforms */ +BOOL jtag_hardware_initialized = FALSE; +char *serial_port_name = NULL; +BOOL specified_com_port = FALSE; +int com_port = -1; +void initialize_jtag_hardware(void); +void close_jtag_hardware(void); + +#if defined(USE_STATIC_MEMORY) + unsigned char static_memory_heap[N_STATIC_MEMORY_BYTES] = { 0 }; +#endif /* USE_STATIC_MEMORY */ + +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + unsigned int n_bytes_allocated = 0; +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + +#if defined(MEM_TRACKER) + unsigned int peak_memory_usage = 0; + unsigned int peak_allocations = 0; + unsigned int n_allocations = 0; +#if defined(USE_STATIC_MEMORY) + unsigned int n_bytes_not_recovered = 0; +#endif /* USE_STATIC_MEMORY */ + const DWORD BEGIN_GUARD = 0x01234567; + const DWORD END_GUARD = 0x76543210; +#endif /* MEM_TRACKER */ + +#if PORT == WINDOWS || PORT == DOS +/* parallel port interface available on PC only */ +BOOL specified_lpt_port = FALSE; +BOOL specified_lpt_addr = FALSE; +int lpt_port = 1; +int initial_lpt_ctrl = 0; +WORD lpt_addr = 0x3bc; +WORD lpt_addr_table[3] = { 0x3bc, 0x378, 0x278 }; +BOOL alternative_cable_l = FALSE; +BOOL alternative_cable_x = FALSE; +void write_byteblaster(int port, int data); +int read_byteblaster(int port); +#endif + +#if PORT==WINDOWS +#ifndef __BORLANDC__ +WORD lpt_addresses_from_registry[4] = { 0 }; +#endif +#endif + +#if PORT == WINDOWS +/* variables to manage cached I/O under Windows NT */ +BOOL windows_nt = FALSE; +int port_io_count = 0; +HANDLE nt_device_handle = INVALID_HANDLE_VALUE; +struct PORT_IO_LIST_STRUCT +{ + USHORT command; + USHORT data; +} port_io_buffer[PORT_IO_BUFFER_SIZE]; +extern void flush_ports(void); +BOOL initialize_nt_driver(void); +#endif + +/* function prototypes to allow forward reference */ +extern void delay_loop(long count); + +/* +* This structure stores information about each available vector signal +*/ +struct VECTOR_LIST_STRUCT +{ + char *signal_name; + int hardware_bit; + int vector_index; +}; + +struct VECTOR_LIST_STRUCT vector_list[] = +{ + /* add a record here for each vector signal */ + { "", 0, -1 } +}; + +#define VECTOR_SIGNAL_COUNT ((int)(sizeof(vector_list)/sizeof(vector_list[0]))) + +BOOL verbose = FALSE; + +/************************************************************************ +* +* Customized interface functions for Jam STAPL ByteCode Player I/O: +* +* jbi_jtag_io() +* jbi_message() +* jbi_delay() +*/ + +int jbi_jtag_io(int tms, int tdi, int read_tdo) +{ +#if PORT == WINDOWS || PORT == DOS + int data = 0; +#endif + int tdo = 0; + int i = 0; + int result = 0; + char ch_data = 0; + + if (!jtag_hardware_initialized) + { + initialize_jtag_hardware(); + jtag_hardware_initialized = TRUE; + } + + if (specified_com_port) + { + ch_data = (char) + ((tdi ? 0x01 : 0) | (tms ? 0x02 : 0) | 0x60); + + write(com_port, &ch_data, 1); + + if (read_tdo) + { + ch_data = 0x7e; + write(com_port, &ch_data, 1); + for (i = 0; (i < 100) && (result != 1); ++i) + { + result = read(com_port, &ch_data, 1); + } + if (result == 1) + { + tdo = ch_data & 0x01; + } + else + { + fprintf(stderr, "Error: BitBlaster not responding\n"); + } + } + + ch_data = (char) + ((tdi ? 0x01 : 0) | (tms ? 0x02 : 0) | 0x64); + + write(com_port, &ch_data, 1); + } + else + { +#if PORT == WINDOWS || PORT == DOS + data = (alternative_cable_l ? ((tdi ? 0x01 : 0) | (tms ? 0x04 : 0)) : + (alternative_cable_x ? ((tdi ? 0x01 : 0) | (tms ? 0x04 : 0) | 0x10) : + ((tdi ? 0x40 : 0) | (tms ? 0x02 : 0)))); + + write_byteblaster(0, data); + + if (read_tdo) + { + tdo = read_byteblaster(1); + tdo = (alternative_cable_l ? ((tdo & 0x40) ? 1 : 0) : + (alternative_cable_x ? ((tdo & 0x10) ? 1 : 0) : + ((tdo & 0x80) ? 0 : 1))); + } + + write_byteblaster(0, data | (alternative_cable_l ? 0x02 : (alternative_cable_x ? 0x02: 0x01))); + + write_byteblaster(0, data); +#elif PORT == EMBEDDED + /* Output variables TDI, TMS to the corresponding pin; As read_tdo, return the corresponding pin to the variable tdo */ + tdo = jbi_jtag_io_(tms, tdi, read_tdo); +#else + /* parallel port interface not available */ + tdo = 0; +#endif + } + + return (tdo); +} + +void jbi_message(char *message_text) +{ + puts(message_text); + puts("\n"); + fflush(stdout); +} + +void jbi_export_integer(char *key, long value) +{ + if (verbose) + { + printf("Export: key = \"%s\", value = %ld\n", key, value); + fflush(stdout); + } +} + +#define HEX_LINE_CHARS 72 +#define HEX_LINE_BITS (HEX_LINE_CHARS * 4) + +char conv_to_hex(unsigned long value) +{ + char c; + + if (value > 9) + { + c = (char) (value + ('A' - 10)); + } + else + { + c = (char) (value + '0'); + } + + return (c); +} + +void jbi_export_boolean_array(char *key, unsigned char *data, long count) +{ + char string[HEX_LINE_CHARS + 1]; + long i, offset; + unsigned long size, line, lines, linebits, value, j, k; + + if (verbose) + { + if (count > HEX_LINE_BITS) + { + printf("Export: key = \"%s\", %ld bits, value = HEX\n", key, count); + lines = (count + (HEX_LINE_BITS - 1)) / HEX_LINE_BITS; + + for (line = 0; line < lines; ++line) + { + if (line < (lines - 1)) + { + linebits = HEX_LINE_BITS; + size = HEX_LINE_CHARS; + offset = count - ((line + 1) * HEX_LINE_BITS); + } + else + { + linebits = count - ((lines - 1) * HEX_LINE_BITS); + size = (linebits + 3) / 4; + offset = 0L; + } + + string[size] = '\0'; + j = size - 1; + value = 0; + + for (k = 0; k < linebits; ++k) + { + i = k + offset; + if (data[i >> 3] & (1 << (i & 7))) value |= (1 << (i & 3)); + if ((i & 3) == 3) + { + string[j] = conv_to_hex(value); + value = 0; + --j; + } + } + if ((k & 3) > 0) string[j] = conv_to_hex(value); + + printf("%s\n", string); + } + + fflush(stdout); + } + else + { + size = (count + 3) / 4; + string[size] = '\0'; + j = size - 1; + value = 0; + + for (i = 0; i < count; ++i) + { + if (data[i >> 3] & (1 << (i & 7))) value |= (1 << (i & 3)); + if ((i & 3) == 3) + { + string[j] = conv_to_hex(value); + value = 0; + --j; + } + } + if ((i & 3) > 0) string[j] = conv_to_hex(value); + + printf("Export: key = \"%s\", %ld bits, value = HEX %s\n", + key, count, string); + fflush(stdout); + } + } +} + +void jbi_delay(long microseconds) +{ + if (jbi_peak_us < microseconds) { + jbi_peak_us = microseconds; + } + jbi_delay_us += microseconds; + jbi_delay_count++; + +#if PORT == WINDOWS + /* if Windows NT, flush I/O cache buffer before delay loop */ + if (windows_nt && (port_io_count > 0)) flush_ports(); +#endif + +#if PORT == EMBEDDED + udelay(microseconds); +#else + delay_loop(microseconds * + ((one_ms_delay / 1000L) + ((one_ms_delay % 1000L) ? 1 : 0))); +#endif +} + +int jbi_vector_map +( + int signal_count, + char **signals +) +{ + int signal, vector, ch_index, diff; + int matched_count = 0; + char l, r; + + for (vector = 0; (vector < VECTOR_SIGNAL_COUNT); ++vector) + { + vector_list[vector].vector_index = -1; + } + + for (signal = 0; signal < signal_count; ++signal) + { + diff = 1; + for (vector = 0; (diff != 0) && (vector < VECTOR_SIGNAL_COUNT); + ++vector) + { + if (vector_list[vector].vector_index == -1) + { + ch_index = 0; + do + { + l = signals[signal][ch_index]; + r = vector_list[vector].signal_name[ch_index]; + diff = (((l >= 'a') && (l <= 'z')) ? (l - ('a' - 'A')) : l) + - (((r >= 'a') && (r <= 'z')) ? (r - ('a' - 'A')) : r); + ++ch_index; + } + while ((diff == 0) && (l != '\0') && (r != '\0')); + + if (diff == 0) + { + vector_list[vector].vector_index = signal; + ++matched_count; + } + } + } + } + + return (matched_count); +} + +int jbi_vector_io +( + int signal_count, + long *dir_vect, + long *data_vect, + long *capture_vect +) +{ + int signal, vector, bit; + int matched_count = 0; + int data = 0; + int mask = 0; + int dir = 0; + int i = 0; + int result = 0; + char ch_data = 0; + + if (!jtag_hardware_initialized) + { + initialize_jtag_hardware(); + jtag_hardware_initialized = TRUE; + } + + /* + * Collect information about output signals + */ + for (vector = 0; vector < VECTOR_SIGNAL_COUNT; ++vector) + { + signal = vector_list[vector].vector_index; + + if ((signal >= 0) && (signal < signal_count)) + { + bit = (1 << vector_list[vector].hardware_bit); + + mask |= bit; + if (data_vect[signal >> 5] & (1L << (signal & 0x1f))) data |= bit; + if (dir_vect[signal >> 5] & (1L << (signal & 0x1f))) dir |= bit; + + ++matched_count; + } + } + + /* + * Write outputs to hardware interface, if any + */ + if (dir != 0) + { + if (specified_com_port) + { + ch_data = (char) (((data >> 6) & 0x01) | (data & 0x02) | + ((data << 2) & 0x04) | ((data << 3) & 0x08) | 0x60); + write(com_port, &ch_data, 1); + } + else + { +#if PORT == WINDOWS || PORT == DOS + + write_byteblaster(0, data); + +#endif + } + } + + /* + * Read the input signals and save information in capture_vect[] + */ + if ((dir != mask) && (capture_vect != NULL)) + { + if (specified_com_port) + { + ch_data = 0x7e; + write(com_port, &ch_data, 1); + for (i = 0; (i < 100) && (result != 1); ++i) + { + result = read(com_port, &ch_data, 1); + } + if (result == 1) + { + data = ((ch_data << 7) & 0x80) | ((ch_data << 3) & 0x10); + } + else + { + fprintf(stderr, "Error: BitBlaster not responding\n"); + } + } + else + { +#if PORT == WINDOWS || PORT == DOS + + data = read_byteblaster(1) ^ 0x80; /* parallel port inverts bit 7 */ + +#endif + } + + for (vector = 0; vector < VECTOR_SIGNAL_COUNT; ++vector) + { + signal = vector_list[vector].vector_index; + + if ((signal >= 0) && (signal < signal_count)) + { + bit = (1 << vector_list[vector].hardware_bit); + + if ((dir & bit) == 0) /* if it is an input signal... */ + { + if (data & bit) + { + capture_vect[signal >> 5] |= (1L << (signal & 0x1f)); + } + else + { + capture_vect[signal >> 5] &= ~(unsigned long) + (1L << (signal & 0x1f)); + } + } + } + } + } + + return (matched_count); +} + +void *jbi_malloc(unsigned int size) +{ + unsigned int n_bytes_to_allocate = +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + sizeof(unsigned int) + +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ +#if defined(MEM_TRACKER) + (2 * sizeof(DWORD)) + +#endif /* MEM_TRACKER */ + (POINTER_ALIGNMENT * ((size + POINTER_ALIGNMENT - 1) / POINTER_ALIGNMENT)); + + unsigned char *ptr = 0; + +#if defined(MEM_TRACKER) + if ((n_bytes_allocated + n_bytes_to_allocate) > peak_memory_usage) + { + peak_memory_usage = n_bytes_allocated + n_bytes_to_allocate; + } + if ((n_allocations + 1) > peak_allocations) + { + peak_allocations = n_allocations + 1; + } +#endif /* MEM_TRACKER */ + +#if defined(USE_STATIC_MEMORY) + if ((n_bytes_allocated + n_bytes_to_allocate) <= N_STATIC_MEMORY_BYTES) + { + ptr = (&(static_memory_heap[n_bytes_allocated])); + } +#else /* USE_STATIC_MEMORY */ + ptr = (unsigned char *) malloc(n_bytes_to_allocate); +#endif /* USE_STATIC_MEMORY */ + +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + if (ptr != 0) + { + unsigned int i = 0; + +#if defined(MEM_TRACKER) + for (i = 0; i < sizeof(DWORD); ++i) + { + *ptr = (unsigned char) (BEGIN_GUARD >> (8 * i)); + ++ptr; + } +#endif /* MEM_TRACKER */ + + for (i = 0; i < sizeof(unsigned int); ++i) + { + *ptr = (unsigned char) (size >> (8 * i)); + ++ptr; + } + +#if defined(MEM_TRACKER) + for (i = 0; i < sizeof(DWORD); ++i) + { + *(ptr + size + i) = (unsigned char) (END_GUARD >> (8 * i)); + /* don't increment ptr */ + } + + ++n_allocations; +#endif /* MEM_TRACKER */ + + n_bytes_allocated += n_bytes_to_allocate; + } +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + + jbi_dbg(DEBUG_MM, "malloc 0x%p(%d,%d)\n", ptr, size, n_bytes_to_allocate); + + return ptr; +} + +void jbi_free(void *ptr) +{ + jbi_dbg(DEBUG_MM, "free 0x%p\n", ptr); + + if + ( +#if defined(MEM_TRACKER) + (n_allocations > 0) && +#endif /* MEM_TRACKER */ + (ptr != 0) + ) + { + unsigned char *tmp_ptr = (unsigned char *) ptr; + +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + unsigned int n_bytes_to_free = 0; + unsigned int i = 0; + unsigned int size = 0; +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ +#if defined(MEM_TRACKER) + DWORD begin_guard = 0; + DWORD end_guard = 0; + + tmp_ptr -= sizeof(DWORD); +#endif /* MEM_TRACKER */ +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + tmp_ptr -= sizeof(unsigned int); +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + ptr = tmp_ptr; + +#if defined(MEM_TRACKER) + for (i = 0; i < sizeof(DWORD); ++i) + { + begin_guard |= (((DWORD)(*tmp_ptr)) << (8 * i)); + ++tmp_ptr; + } +#endif /* MEM_TRACKER */ + +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + for (i = 0; i < sizeof(unsigned int); ++i) + { + size |= (((unsigned int)(*tmp_ptr)) << (8 * i)); + ++tmp_ptr; + } +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + +#if defined(MEM_TRACKER) + tmp_ptr += size; + + for (i = 0; i < sizeof(DWORD); ++i) + { + end_guard |= (((DWORD)(*tmp_ptr)) << (8 * i)); + ++tmp_ptr; + } + + if ((begin_guard != BEGIN_GUARD) || (end_guard != END_GUARD)) + { + fprintf(stderr, "Error: memory corruption detected for allocation #%d... bad %s guard\n", + n_allocations, (begin_guard != BEGIN_GUARD) ? "begin" : "end"); + } + + --n_allocations; +#endif /* MEM_TRACKER */ + +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + n_bytes_to_free = +#if defined(MEM_TRACKER) + (2 * sizeof(DWORD)) + +#endif /* MEM_TRACKER */ + sizeof(unsigned int) + + (POINTER_ALIGNMENT * ((size + POINTER_ALIGNMENT - 1) / POINTER_ALIGNMENT)); +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + +#if defined(USE_STATIC_MEMORY) + if ((((unsigned long) ptr - (unsigned long) static_memory_heap) + n_bytes_to_free) == (unsigned long) n_bytes_allocated) + { + n_bytes_allocated -= n_bytes_to_free; + } +#if defined(MEM_TRACKER) + else + { + n_bytes_not_recovered += n_bytes_to_free; + } +#endif /* MEM_TRACKER */ +#else /* USE_STATIC_MEMORY */ +#if defined(MEM_TRACKER) + n_bytes_allocated -= n_bytes_to_free; +#endif /* MEM_TRACKER */ + free(ptr); +#endif /* USE_STATIC_MEMORY */ + } +#if defined(MEM_TRACKER) + else + { + if (ptr != 0) + { + fprintf(stderr, "Error: attempt to free unallocated memory\n"); + } + } +#endif /* MEM_TRACKER */ +} + +#if PORT == WINDOWS || PORT == DOS +/************************************************************************ +* +* get_tick_count() -- Get system tick count in milliseconds +* +* for DOS, use BIOS function _bios_timeofday() +* for WINDOWS use GetTickCount() function +* for UNIX use clock() system function +*/ +DWORD get_tick_count(void) +{ + DWORD tick_count = 0L; + +#if PORT == WINDOWS + tick_count = GetTickCount(); +#elif PORT == DOS + _bios_timeofday(_TIME_GETCLOCK, (long *)&tick_count); + tick_count *= 55L; /* convert to milliseconds */ +#else + /* assume clock() function returns microseconds */ + tick_count = (DWORD) (clock() / 1000L); +#endif + + return (tick_count); +} +#endif + +#define DELAY_SAMPLES 10 +#define DELAY_CHECK_LOOPS 10000 + +void calibrate_delay(void) +{ +#if PORT == WINDOWS || PORT == DOS + int sample = 0; + int count = 0; + DWORD tick_count1 = 0L; + DWORD tick_count2 = 0L; +#endif + + one_ms_delay = 0L; + +#if PORT == WINDOWS || PORT == DOS + for (sample = 0; sample < DELAY_SAMPLES; ++sample) + { + count = 0; + tick_count1 = get_tick_count(); + while ((tick_count2 = get_tick_count()) == tick_count1) {}; + do { delay_loop(DELAY_CHECK_LOOPS); count++; } while + ((tick_count1 = get_tick_count()) == tick_count2); + one_ms_delay += ((DELAY_CHECK_LOOPS * (DWORD)count) / + (tick_count1 - tick_count2)); + } + + one_ms_delay /= DELAY_SAMPLES; +#else + /* This is system-dependent! Update this number for target system */ + one_ms_delay = 1000L; +#endif +} + +char *error_text[] = +{ +/* JBIC_SUCCESS 0 */ "success", +/* JBIC_OUT_OF_MEMORY 1 */ "out of memory", +/* JBIC_IO_ERROR 2 */ "file access error", +/* JAMC_SYNTAX_ERROR 3 */ "syntax error", +/* JBIC_UNEXPECTED_END 4 */ "unexpected end of file", +/* JBIC_UNDEFINED_SYMBOL 5 */ "undefined symbol", +/* JAMC_REDEFINED_SYMBOL 6 */ "redefined symbol", +/* JBIC_INTEGER_OVERFLOW 7 */ "integer overflow", +/* JBIC_DIVIDE_BY_ZERO 8 */ "divide by zero", +/* JBIC_CRC_ERROR 9 */ "CRC mismatch", +/* JBIC_INTERNAL_ERROR 10 */ "internal error", +/* JBIC_BOUNDS_ERROR 11 */ "bounds error", +/* JAMC_TYPE_MISMATCH 12 */ "type mismatch", +/* JAMC_ASSIGN_TO_CONST 13 */ "assignment to constant", +/* JAMC_NEXT_UNEXPECTED 14 */ "NEXT unexpected", +/* JAMC_POP_UNEXPECTED 15 */ "POP unexpected", +/* JAMC_RETURN_UNEXPECTED 16 */ "RETURN unexpected", +/* JAMC_ILLEGAL_SYMBOL 17 */ "illegal symbol name", +/* JBIC_VECTOR_MAP_FAILED 18 */ "vector signal name not found", +/* JBIC_USER_ABORT 19 */ "execution cancelled", +/* JBIC_STACK_OVERFLOW 20 */ "stack overflow", +/* JBIC_ILLEGAL_OPCODE 21 */ "illegal instruction code", +/* JAMC_PHASE_ERROR 22 */ "phase error", +/* JAMC_SCOPE_ERROR 23 */ "scope error", +/* JBIC_ACTION_NOT_FOUND 24 */ "action not found", +}; + +#define MAX_ERROR_CODE (int)(sizeof(error_text)/sizeof(error_text[0])) + +/************************************************************************/ + +#if 0 +int main(int argc, char **argv) +{ + BOOL help = FALSE; + BOOL error = FALSE; + char *filename = NULL; + long offset = 0L; + long error_address = 0L; + JBI_RETURN_TYPE crc_result = JBIC_SUCCESS; + JBI_RETURN_TYPE exec_result = JBIC_SUCCESS; + unsigned short expected_crc = 0; + unsigned short actual_crc = 0; + char key[33] = {0}; + char value[257] = {0}; + int exit_status = 0; + int arg = 0; + int exit_code = 0; + int format_version = 0; + time_t start_time = 0; + time_t end_time = 0; + int time_delta = 0; + char *workspace = NULL; + char *action = NULL; + char *init_list[10]; + int init_count = 0; + FILE *fp = NULL; + struct stat sbuf; + long workspace_size = 0; + char *exit_string = NULL; + int reset_jtag = 1; + int execute_program = 1; + int action_count = 0; + int procedure_count = 0; + int index = 0; + char *action_name = NULL; + char *description = NULL; + JBI_PROCINFO *procedure_list = NULL; + JBI_PROCINFO *procptr = NULL; + + verbose = FALSE; + + init_list[0] = NULL; + + /* print out the version string and copyright message */ + fprintf(stderr, "Jam STAPL ByteCode Player Version 2.2\nCopyright (C) 1998-2001 Altera Corporation\n\n"); + + for (arg = 1; arg < argc; arg++) + { +#if PORT == UNIX + if (argv[arg][0] == '-') +#else + if ((argv[arg][0] == '-') || (argv[arg][0] == '/')) +#endif + { + switch(toupper(argv[arg][1])) + { + case 'A': /* set action name */ + if (action == NULL) + { + action = &argv[arg][2]; + } + else + { + error = TRUE; + } + break; + +#if PORT == WINDOWS || PORT == DOS + case 'C': /* Use alternative ISP download cable */ + if(toupper(argv[arg][2]) == 'L') + alternative_cable_l = TRUE; + else if(toupper(argv[arg][2]) == 'X') + alternative_cable_x = TRUE; + break; +#endif + + case 'D': /* initialization list */ + if (argv[arg][2] == '"') + { + init_list[init_count] = &argv[arg][3]; + } + else + { + init_list[init_count] = &argv[arg][2]; + } + init_list[++init_count] = NULL; + break; + +#if PORT == WINDOWS || PORT == DOS + case 'P': /* set LPT port address */ + specified_lpt_port = TRUE; + if (sscanf(&argv[arg][2], "%d", &lpt_port) != 1) error = TRUE; + if ((lpt_port < 1) || (lpt_port > 3)) error = TRUE; + if (error) + { + if (sscanf(&argv[arg][2], "%x", &lpt_port) == 1) + { + if ((lpt_port == 0x3bc) || + (lpt_port == 0x378) || + (lpt_port == 0x278)) + { + error = FALSE; + specified_lpt_addr = TRUE; + lpt_addr = (WORD) lpt_port; + lpt_port = 1; + } + } + } + break; +#endif + + case 'R': /* don't reset the JTAG chain after use */ + reset_jtag = 0; + break; + + case 'S': /* set serial port address */ + serial_port_name = &argv[arg][2]; + specified_com_port = TRUE; + break; + + case 'M': /* set memory size */ + if (sscanf(&argv[arg][2], "%ld", &workspace_size) != 1) + error = TRUE; + if (workspace_size == 0) error = TRUE; + break; + + case 'H': /* help */ + help = TRUE; + break; + + case 'V': /* verbose */ + verbose = TRUE; + break; + + case 'I': /* show info only, do not execute */ + verbose = TRUE; + execute_program = 0; + break; + + default: + error = TRUE; + break; + } + } + else + { + /* it's a filename */ + if (filename == NULL) + { + filename = argv[arg]; + } + else + { + /* error -- we already found a filename */ + error = TRUE; + } + } + + if (error) + { + fprintf(stderr, "Illegal argument: \"%s\"\n", argv[arg]); + help = TRUE; + error = FALSE; + } + } + +#if PORT == WINDOWS || PORT == DOS + if (specified_lpt_port && specified_com_port) + { + fprintf(stderr, "Error: -s and -p options may not be used together\n\n"); + help = TRUE; + } +#endif + + if (help || (filename == NULL)) + { + fprintf(stderr, "Usage: jbi [options] \n"); + fprintf(stderr, "\nAvailable options:\n"); + fprintf(stderr, " -h : show help message\n"); + fprintf(stderr, " -v : show verbose messages\n"); + fprintf(stderr, " -i : show file info only - does not execute any action\n"); + fprintf(stderr, " -a : specify an action name (Jam STAPL)\n"); + fprintf(stderr, " -d : initialize variable to specified value (Jam 1.1)\n"); + fprintf(stderr, " -d : enable optional procedure (Jam STAPL)\n"); + fprintf(stderr, " -d : disable recommended procedure (Jam STAPL)\n"); +#if PORT == WINDOWS || PORT == DOS + fprintf(stderr, " -p : parallel port number or address (for ByteBlaster)\n"); + fprintf(stderr, " -c : alternative download cable compatibility: -cl or -cx\n"); +#endif + fprintf(stderr, " -s : serial port name (for BitBlaster)\n"); + fprintf(stderr, " -r : don't reset JTAG TAP after use\n"); + exit_status = 1; + } + else if ((workspace_size > 0) && + ((workspace = (char *) jbi_malloc((size_t) workspace_size)) == NULL)) + { + fprintf(stderr, "Error: can't allocate memory (%d Kbytes)\n", + (int) (workspace_size / 1024L)); + exit_status = 1; + } + else if (access(filename, 0) != 0) + { + fprintf(stderr, "Error: can't access file \"%s\"\n", filename); + exit_status = 1; + } + else + { + /* get length of file */ + if (stat(filename, &sbuf) == 0) file_length = sbuf.st_size; + + if ((fp = fopen(filename, "rb")) == NULL) + { + fprintf(stderr, "Error: can't open file \"%s\"\n", filename); + exit_status = 1; + } + else + { + /* + * Read entire file into a buffer + */ +#if PORT == DOS + int pages = 1 + (int) (file_length >> 14L); + int page; + file_buffer = (unsigned char **) jbi_malloc( + (size_t) (pages * sizeof(char *))); + + for (page = 0; page < pages; ++page) + { + /* allocate enough 16K blocks to store the file */ + file_buffer[page] = (unsigned char *) jbi_malloc (0x4000); + if (file_buffer[page] == NULL) + { + /* flag error and break out of loop */ + file_buffer = NULL; + page = pages; + } + } +#else + file_buffer = (unsigned char *) jbi_malloc((size_t) file_length); +#endif + + if (file_buffer == NULL) + { + fprintf(stderr, "Error: can't allocate memory (%d Kbytes)\n", + (int) (file_length / 1024L)); + exit_status = 1; + } + else + { +#if PORT == DOS + int pages = 1 + (int) (file_length >> 14L); + int page; + size_t page_size = 0x4000; + for (page = 0; (page < pages) && (exit_status == 0); ++page) + { + if (page == (pages - 1)) + { + /* last page may not be full 16K bytes */ + page_size = (size_t) (file_length & 0x3fffL); + } + if (fread(file_buffer[page], 1, page_size, fp) != page_size) + { + fprintf(stderr, "Error reading file \"%s\"\n", filename); + exit_status = 1; + } + } +#else + if (fread(file_buffer, 1, (size_t) file_length, fp) != + (size_t) file_length) + { + fprintf(stderr, "Error reading file \"%s\"\n", filename); + exit_status = 1; + } +#endif + } + + fclose(fp); + } + + if (exit_status == 0) + { + /* + * Get Operating System type + */ +#if PORT == WINDOWS + windows_nt = !(GetVersion() & 0x80000000); +#endif + + /* + * Calibrate the delay loop function + */ + calibrate_delay(); + + /* + * Check CRC + */ + crc_result = jbi_check_crc(file_buffer, file_length, + &expected_crc, &actual_crc); + + if (verbose || (crc_result == JBIC_CRC_ERROR)) + { + switch (crc_result) + { + case JBIC_SUCCESS: + printf("CRC matched: CRC value = %04X\n", actual_crc); + break; + + case JBIC_CRC_ERROR: + printf("CRC mismatch: expected %04X, actual %04X\n", + expected_crc, actual_crc); + break; + + case JBIC_UNEXPECTED_END: + printf("Expected CRC not found, actual CRC value = %04X\n", + actual_crc); + break; + + case JBIC_IO_ERROR: + printf("Error: File format is not recognized.\n"); + exit(1); + break; + + default: + printf("CRC function returned error code %d\n", crc_result); + break; + } + } + + if (verbose) + { + /* + * Display file format version + */ + jbi_get_file_info(file_buffer, file_length, + &format_version, &action_count, &procedure_count); + + printf("File format is %s ByteCode format\n", + (format_version == 2) ? "Jam STAPL" : "pre-standardized Jam 1.1"); + + /* + * Dump out NOTE fields + */ + while (jbi_get_note(file_buffer, file_length, + &offset, key, value, 256) == 0) + { + printf("NOTE \"%s\" = \"%s\"\n", key, value); + } + + /* + * Dump the action table + */ + if ((format_version == 2) && (action_count > 0)) + { + printf("\nActions available in this file:\n"); + + for (index = 0; index < action_count; ++index) + { + jbi_get_action_info(file_buffer, file_length, + index, &action_name, &description, &procedure_list); + + if (description == NULL) + { + printf("%s\n", action_name); + } + else + { + printf("%s \"%s\"\n", action_name, description); + } + +#if PORT == DOS + if (action_name != NULL) jbi_free(action_name); + if (description != NULL) jbi_free(description); +#endif + + procptr = procedure_list; + while (procptr != NULL) + { + if (procptr->attributes != 0) + { + printf(" %s (%s)\n", procptr->name, + (procptr->attributes == 1) ? + "optional" : "recommended"); + } + +#if PORT == DOS + if (procptr->name != NULL) jbi_free(procptr->name); +#endif + + procedure_list = procptr->next; + jbi_free(procptr); + procptr = procedure_list; + } + } + + /* add a blank line before execution messages */ + if (execute_program) printf("\n"); + } + } + + if (execute_program) + { + /* + * Execute the Jam STAPL ByteCode program + */ + time(&start_time); + exec_result = jbi_execute(file_buffer, file_length, workspace, + workspace_size, action, init_list, reset_jtag, + &error_address, &exit_code, &format_version); + time(&end_time); + + if (exec_result == JBIC_SUCCESS) + { + if (format_version == 2) + { + switch (exit_code) + { + case 0: exit_string = "Success"; break; + case 1: exit_string = "Checking chain failure"; break; + case 2: exit_string = "Reading IDCODE failure"; break; + case 3: exit_string = "Reading USERCODE failure"; break; + case 4: exit_string = "Reading UESCODE failure"; break; + case 5: exit_string = "Entering ISP failure"; break; + case 6: exit_string = "Unrecognized device"; break; + case 7: exit_string = "Device revision is not supported"; break; + case 8: exit_string = "Erase failure"; break; + case 9: exit_string = "Device is not blank"; break; + case 10: exit_string = "Device programming failure"; break; + case 11: exit_string = "Device verify failure"; break; + case 12: exit_string = "Read failure"; break; + case 13: exit_string = "Calculating checksum failure"; break; + case 14: exit_string = "Setting security bit failure"; break; + case 15: exit_string = "Querying security bit failure"; break; + case 16: exit_string = "Exiting ISP failure"; break; + case 17: exit_string = "Performing system test failure"; break; + default: exit_string = "Unknown exit code"; break; + } + } + else + { + switch (exit_code) + { + case 0: exit_string = "Success"; break; + case 1: exit_string = "Illegal initialization values"; break; + case 2: exit_string = "Unrecognized device"; break; + case 3: exit_string = "Device revision is not supported"; break; + case 4: exit_string = "Device programming failure"; break; + case 5: exit_string = "Device is not blank"; break; + case 6: exit_string = "Device verify failure"; break; + case 7: exit_string = "SRAM configuration failure"; break; + default: exit_string = "Unknown exit code"; break; + } + } + + printf("Exit code = %d... %s\n", exit_code, exit_string); + } + else if ((format_version == 2) && + (exec_result == JBIC_ACTION_NOT_FOUND)) + { + if ((action == NULL) || (*action == '\0')) + { + printf("Error: no action specified for Jam STAPL file.\nProgram terminated.\n"); + } + else + { + printf("Error: action \"%s\" is not supported for this Jam STAPL file.\nProgram terminated.\n", action); + } + } + else if (exec_result < MAX_ERROR_CODE) + { + printf("Error at address %ld: %s.\nProgram terminated.\n", + error_address, error_text[exec_result]); + } + else + { + printf("Unknown error code %ld\n", exec_result); + } + + /* + * Print out elapsed time + */ + if (verbose) + { + time_delta = (int) (end_time - start_time); + printf("Elapsed time = %02u:%02u:%02u\n", + time_delta / 3600, /* hours */ + (time_delta % 3600) / 60, /* minutes */ + time_delta % 60); /* seconds */ + } + } + } + } + + if (jtag_hardware_initialized) close_jtag_hardware(); + + if (workspace != NULL) jbi_free(workspace); + if (file_buffer != NULL) jbi_free(file_buffer); + +#if defined(MEM_TRACKER) + if (verbose) + { +#if defined(USE_STATIC_MEMORY) + fprintf(stdout, "Memory Usage Info: static memory size = %ud (%dKB)\n", N_STATIC_MEMORY_BYTES, N_STATIC_MEMORY_KBYTES); +#endif /* USE_STATIC_MEMORY */ + fprintf(stdout, "Memory Usage Info: peak memory usage = %ud (%dKB)\n", peak_memory_usage, (peak_memory_usage + 1023) / 1024); + fprintf(stdout, "Memory Usage Info: peak allocations = %d\n", peak_allocations); +#if defined(USE_STATIC_MEMORY) + if ((n_bytes_allocated - n_bytes_not_recovered) != 0) + { + fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", (n_bytes_allocated - n_bytes_not_recovered), ((n_bytes_allocated - n_bytes_not_recovered) + 1023) / 1024); + } +#else /* USE_STATIC_MEMORY */ + if (n_bytes_allocated != 0) + { + fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", n_bytes_allocated, (n_bytes_allocated + 1023) / 1024); + } +#endif /* USE_STATIC_MEMORY */ + if (n_allocations != 0) + { + fprintf(stdout, "Memory Usage Info: allocations not freed = %d\n", n_allocations); + } + } +#endif /* MEM_TRACKER */ + + return (exit_status); +} +#endif + +#if PORT==WINDOWS +#ifndef __BORLANDC__ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* SEARCH_DYN_DATA +* +* Searches recursively in Windows 95/98 Registry for parallel port info +* under HKEY_DYN_DATA registry key. Called by search_local_machine(). +*/ +void search_dyn_data +( + char *dd_path, + char *hardware_key, + int lpt +) +{ + DWORD index; + DWORD size; + DWORD type; + LONG result; + HKEY key; + int length; + WORD address; + char buffer[1024]; + FILETIME last_write = {0}; + WORD *word_ptr; + int i; + + length = strlen(dd_path); + + if (RegOpenKeyEx( + HKEY_DYN_DATA, + dd_path, + 0L, + KEY_READ, + &key) + == ERROR_SUCCESS) + { + size = 1023; + + if (RegQueryValueEx( + key, + "HardWareKey", + NULL, + &type, + (unsigned char *) buffer, + &size) + == ERROR_SUCCESS) + { + if ((type == REG_SZ) && (stricmp(buffer, hardware_key) == 0)) + { + size = 1023; + + if (RegQueryValueEx( + key, + "Allocation", + NULL, + &type, + (unsigned char *) buffer, + &size) + == ERROR_SUCCESS) + { + /* + * By "inspection", I have found five cases: size 32, 48, + * 56, 60, and 80 bytes. The port address seems to be + * located at different offsets in the buffer for these + * five cases, as shown below. If a valid port address + * is not found, or the size is not one of these known + * sizes, then I search through the entire buffer and + * look for a value which is a valid port address. + */ + + word_ptr = (WORD *) buffer; + + if ((type == REG_BINARY) && (size == 32)) + { + address = word_ptr[10]; + } + else if ((type == REG_BINARY) && (size == 48)) + { + address = word_ptr[18]; + } + else if ((type == REG_BINARY) && (size == 56)) + { + address = word_ptr[22]; + } + else if ((type == REG_BINARY) && (size == 60)) + { + address = word_ptr[24]; + } + else if ((type == REG_BINARY) && (size == 80)) + { + address = word_ptr[24]; + } + else address = 0; + + /* if not found, search through entire buffer */ + i = 0; + while ((i < (int) (size / 2)) && + (address != 0x278) && + (address != 0x27C) && + (address != 0x378) && + (address != 0x37C) && + (address != 0x3B8) && + (address != 0x3BC)) + { + if ((word_ptr[i] == 0x278) || + (word_ptr[i] == 0x27C) || + (word_ptr[i] == 0x378) || + (word_ptr[i] == 0x37C) || + (word_ptr[i] == 0x3B8) || + (word_ptr[i] == 0x3BC)) + { + address = word_ptr[i]; + } + ++i; + } + + if ((address == 0x278) || + (address == 0x27C) || + (address == 0x378) || + (address == 0x37C) || + (address == 0x3B8) || + (address == 0x3BC)) + { + lpt_addresses_from_registry[lpt] = address; + } + } + } + } + + index = 0; + + do + { + size = 1023; + + result = RegEnumKeyEx( + key, + index++, + buffer, + &size, + NULL, + NULL, + NULL, + &last_write); + + if (result == ERROR_SUCCESS) + { + dd_path[length] = '\\'; + dd_path[length + 1] = '\0'; + strcpy(&dd_path[length + 1], buffer); + + search_dyn_data(dd_path, hardware_key, lpt); + + dd_path[length] = '\0'; + } + } + while (result == ERROR_SUCCESS); + + RegCloseKey(key); + } +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* SEARCH_LOCAL_MACHINE +* +* Searches recursively in Windows 95/98 Registry for parallel port info +* under HKEY_LOCAL_MACHINE\Enum. When parallel port is found, calls +* search_dyn_data() to get the port address. +*/ +void search_local_machine +( + char *lm_path, + char *dd_path +) +{ + DWORD index; + DWORD size; + DWORD type; + LONG result; + HKEY key; + int length; + char buffer[1024]; + FILETIME last_write = {0}; + + length = strlen(lm_path); + + if (RegOpenKeyEx( + HKEY_LOCAL_MACHINE, + lm_path, + 0L, + KEY_READ, + &key) + == ERROR_SUCCESS) + { + size = 1023; + + if (RegQueryValueEx( + key, + "PortName", + NULL, + &type, + (unsigned char *) buffer, + &size) + == ERROR_SUCCESS) + { + if ((type == REG_SZ) && + (size == 5) && + (buffer[0] == 'L') && + (buffer[1] == 'P') && + (buffer[2] == 'T') && + (buffer[3] >= '1') && + (buffer[3] <= '4') && + (buffer[4] == '\0')) + { + /* we found the entry in HKEY_LOCAL_MACHINE, now we need to */ + /* find the corresponding entry under HKEY_DYN_DATA. */ + /* add 5 to lm_path to skip over "Enum" and backslash */ + search_dyn_data(dd_path, &lm_path[5], (buffer[3] - '1')); + } + } + + index = 0; + + do + { + size = 1023; + + result = RegEnumKeyEx( + key, + index++, + buffer, + &size, + NULL, + NULL, + NULL, + &last_write); + + if (result == ERROR_SUCCESS) + { + lm_path[length] = '\\'; + lm_path[length + 1] = '\0'; + strcpy(&lm_path[length + 1], buffer); + + search_local_machine(lm_path, dd_path); + + lm_path[length] = '\0'; + } + } + while (result == ERROR_SUCCESS); + + RegCloseKey(key); + } +} + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* GET_LPT_ADDRESSES_FROM_REGISTRY +* +* Searches Win95/98 registry recursively to get I/O port addresses for +* parallel ports. +*/ +void get_lpt_addresses_from_registry() +{ + char lm_path[1024]; + char dd_path[1024]; + + strcpy(lm_path, "Enum"); + strcpy(dd_path, "Config Manager"); + search_local_machine(lm_path, dd_path); +} +#endif +#endif + +void initialize_jtag_hardware() +{ + if (specified_com_port) + { + com_port = open(serial_port_name, O_RDWR); + if (com_port == -1) + { + fprintf(stderr, "Error: can't open serial port \"%s\"\n", + serial_port_name); + } + else + { + int i = 0, result = 0; + char data = 0; + + data = 0x7e; + write(com_port, &data, 1); + + for (i = 0; (i < 100) && (result != 1); ++i) + { + result = read(com_port, &data, 1); + } + + if (result == 1) + { + data = 0x70; write(com_port, &data, 1); /* TDO echo off */ + data = 0x72; write(com_port, &data, 1); /* auto LEDs off */ + data = 0x74; write(com_port, &data, 1); /* ERROR LED off */ + data = 0x76; write(com_port, &data, 1); /* DONE LED off */ + data = 0x60; write(com_port, &data, 1); /* signals low */ + } + else + { + fprintf(stderr, "Error: BitBlaster is not responding on %s\n", + serial_port_name); + close(com_port); + com_port = -1; + } + } + } + else + { +#if PORT == WINDOWS || PORT == DOS + +#if PORT == WINDOWS + if (windows_nt) + { + initialize_nt_driver(); + } + else + { +#ifdef __BORLANDC__ + fprintf(stderr, "Error: parallel port access is not available\n"); +#else + if (!specified_lpt_addr) + { + get_lpt_addresses_from_registry(); + + lpt_addr = 0; + + if (specified_lpt_port) + { + lpt_addr = lpt_addresses_from_registry[lpt_port - 1]; + } + + if (lpt_addr == 0) + { + if (lpt_addresses_from_registry[3] != 0) + lpt_addr = lpt_addresses_from_registry[3]; + if (lpt_addresses_from_registry[2] != 0) + lpt_addr = lpt_addresses_from_registry[2]; + if (lpt_addresses_from_registry[1] != 0) + lpt_addr = lpt_addresses_from_registry[1]; + if (lpt_addresses_from_registry[0] != 0) + lpt_addr = lpt_addresses_from_registry[0]; + } + + if (lpt_addr == 0) + { + if (specified_lpt_port) + { + lpt_addr = lpt_addr_table[lpt_port - 1]; + } + else + { + lpt_addr = lpt_addr_table[0]; + } + } + } + initial_lpt_ctrl = windows_nt ? 0x0c : read_byteblaster(2); +#endif + } +#endif + +#if PORT == DOS + /* + * Read word at specific memory address to get the LPT port address + */ + WORD *bios_address = (WORD *) 0x00400008; + + if (!specified_lpt_addr) + { + lpt_addr = bios_address[lpt_port - 1]; + + if ((lpt_addr != 0x278) && + (lpt_addr != 0x27c) && + (lpt_addr != 0x378) && + (lpt_addr != 0x37c) && + (lpt_addr != 0x3b8) && + (lpt_addr != 0x3bc)) + { + lpt_addr = lpt_addr_table[lpt_port - 1]; + } + } + initial_lpt_ctrl = read_byteblaster(2); +#endif + + /* set AUTO-FEED low to enable ByteBlaster (value to port inverted) */ + /* set DIRECTION low for data output from parallel port */ + write_byteblaster(2, (initial_lpt_ctrl | 0x02) & 0xDF); +#endif + } +} + +void close_jtag_hardware() +{ + if (specified_com_port) + { + if (com_port != -1) close(com_port); + } + else + { +#if PORT == WINDOWS || PORT == DOS + /* set AUTO-FEED high to disable ByteBlaster */ + write_byteblaster(2, initial_lpt_ctrl & 0xfd); + +#if PORT == WINDOWS + if (windows_nt && (nt_device_handle != INVALID_HANDLE_VALUE)) + { + if (port_io_count > 0) flush_ports(); + + CloseHandle(nt_device_handle); + } +#endif +#endif + } +} + +#if PORT == WINDOWS +/**************************************************************************/ +/* */ + +BOOL initialize_nt_driver() + +/* */ +/* Uses CreateFile() to open a connection to the Windows NT device */ +/* driver. */ +/* */ +/**************************************************************************/ +{ + BOOL status = FALSE; + + ULONG buffer[1]; + ULONG returned_length = 0; + char nt_lpt_str[] = { '\\', '\\', '.', '\\', + 'A', 'L', 'T', 'L', 'P', 'T', '1', '\0' }; + + nt_lpt_str[10] = (char) ('1' + (lpt_port - 1)); + + nt_device_handle = CreateFile( + nt_lpt_str, + GENERIC_READ | GENERIC_WRITE, + 0, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL); + + if (nt_device_handle == INVALID_HANDLE_VALUE) + { + fprintf(stderr, + "I/O error: cannot open device %s\nCheck port number and device driver installation", + nt_lpt_str); + } + else + { + if (DeviceIoControl( + nt_device_handle, /* Handle to device */ + PGDC_IOCTL_GET_DEVICE_INFO_PP, /* IO Control code */ + (ULONG *)NULL, /* Buffer to driver. */ + 0, /* Length of buffer in bytes. */ + &buffer, /* Buffer from driver. */ + sizeof(ULONG), /* Length of buffer in bytes. */ + &returned_length, /* Bytes placed in data_buffer. */ + NULL)) /* Wait for operation to complete */ + { + if (returned_length == sizeof(ULONG)) + { + if (buffer[0] == PGDC_HDLC_NTDRIVER_VERSION) + { + status = TRUE; + } + else + { + fprintf(stderr, + "I/O error: device driver %s is not compatible\n(Driver version is %lu, expected version %lu.\n", + nt_lpt_str, + (unsigned long) buffer[0], + (unsigned long) PGDC_HDLC_NTDRIVER_VERSION); + } + } + else + { + fprintf(stderr, "I/O error: device driver %s is not compatible.\n", + nt_lpt_str); + } + } + + if (!status) + { + CloseHandle(nt_device_handle); + nt_device_handle = INVALID_HANDLE_VALUE; + } + } + + if (!status) + { + /* error message already given */ + exit(1); + } + + return (status); +} +#endif + +#if PORT == WINDOWS || PORT == DOS +/**************************************************************************/ +/* */ + +void write_byteblaster +( + int port, + int data +) + +/* */ +/**************************************************************************/ +{ +#if PORT == WINDOWS + BOOL status = FALSE; + + int returned_length = 0; + int buffer[2]; + + if (windows_nt) + { + /* + * On Windows NT, access hardware through device driver + */ + if (port == 0) + { + port_io_buffer[port_io_count].data = (USHORT) data; + port_io_buffer[port_io_count].command = PGDC_WRITE_PORT; + ++port_io_count; + + if (port_io_count >= PORT_IO_BUFFER_SIZE) flush_ports(); + } + else + { + if (port_io_count > 0) flush_ports(); + + buffer[0] = port; + buffer[1] = data; + + status = DeviceIoControl( + nt_device_handle, /* Handle to device */ + PGDC_IOCTL_WRITE_PORT_PP, /* IO Control code for write */ + (ULONG *)&buffer, /* Buffer to driver. */ + 2 * sizeof(int), /* Length of buffer in bytes. */ + (ULONG *)NULL, /* Buffer from driver. Not used. */ + 0, /* Length of buffer in bytes. */ + (ULONG *)&returned_length, /* Bytes returned. Should be zero. */ + NULL); /* Wait for operation to complete */ + + if ((!status) || (returned_length != 0)) + { + fprintf(stderr, "I/O error: Cannot access ByteBlaster hardware\n"); + CloseHandle(nt_device_handle); + exit(1); + } + } + } + else +#endif + { + /* + * On Windows 95, access hardware directly + */ + outp((WORD)(port + lpt_addr), (WORD)data); + } +} + +/**************************************************************************/ +/* */ + +int read_byteblaster +( + int port +) + +/* */ +/**************************************************************************/ +{ + int data = 0; + +#if PORT == WINDOWS + + BOOL status = FALSE; + + int returned_length = 0; + + if (windows_nt) + { + /* flush output cache buffer before reading from device */ + if (port_io_count > 0) flush_ports(); + + /* + * On Windows NT, access hardware through device driver + */ + status = DeviceIoControl( + nt_device_handle, /* Handle to device */ + PGDC_IOCTL_READ_PORT_PP, /* IO Control code for Read */ + (ULONG *)&port, /* Buffer to driver. */ + sizeof(int), /* Length of buffer in bytes. */ + (ULONG *)&data, /* Buffer from driver. */ + sizeof(int), /* Length of buffer in bytes. */ + (ULONG *)&returned_length, /* Bytes placed in data_buffer. */ + NULL); /* Wait for operation to complete */ + + if ((!status) || (returned_length != sizeof(int))) + { + fprintf(stderr, "I/O error: Cannot access ByteBlaster hardware\n"); + CloseHandle(nt_device_handle); + exit(1); + } + } + else +#endif + { + /* + * On Windows 95, access hardware directly + */ + data = inp((WORD)(port + lpt_addr)); + } + + return (data & 0xff); +} + +#if PORT == WINDOWS +void flush_ports(void) +{ + ULONG n_writes = 0L; + BOOL status; + + status = DeviceIoControl( + nt_device_handle, /* handle to device */ + PGDC_IOCTL_PROCESS_LIST_PP, /* IO control code */ + (LPVOID)port_io_buffer, /* IN buffer (list buffer) */ + port_io_count * sizeof(struct PORT_IO_LIST_STRUCT),/* length of IN buffer in bytes */ + (LPVOID)port_io_buffer, /* OUT buffer (list buffer) */ + port_io_count * sizeof(struct PORT_IO_LIST_STRUCT),/* length of OUT buffer in bytes */ + &n_writes, /* number of writes performed */ + 0); /* wait for operation to complete */ + + if ((!status) || ((port_io_count * sizeof(struct PORT_IO_LIST_STRUCT)) != n_writes)) + { + fprintf(stderr, "I/O error: Cannot access ByteBlaster hardware\n"); + CloseHandle(nt_device_handle); + exit(1); + } + + port_io_count = 0; +} +#endif /* PORT == WINDOWS */ +#endif /* PORT == WINDOWS || PORT == DOS */ + +#if 0 +#if !defined (DEBUG) +#pragma optimize ("ceglt", off) +#endif +#endif + +void delay_loop(long count) +{ + while (count != 0L) count--; +} + +#if PORT == EMBEDDED + +static void jbi_init_mm(void) +{ +#if defined(USE_STATIC_MEMORY) + int i; +#endif /* USE_STATIC_MEMORY */ + +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + n_bytes_allocated = 0; +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + +#if defined(MEM_TRACKER) + peak_memory_usage = 0; + peak_allocations = 0; + n_allocations = 0; +#if defined(USE_STATIC_MEMORY) + n_bytes_not_recovered = 0; +#endif /* USE_STATIC_MEMORY */ +#endif /* MEM_TRACKER */ + +#if defined(USE_STATIC_MEMORY) + jbi_dbg(DEBUG_DETAIL, "static_memory_heap: 0x%p(0x%x)\n", + static_memory_heap, N_STATIC_MEMORY_BYTES); + for (i = 0; i < N_STATIC_MEMORY_BYTES; i++) { + static_memory_heap[i] = 0; + } +#endif /* USE_STATIC_MEMORY */ + + jbi_delay_us = 0; + jbi_delay_count = 0; + jbi_peak_us = 0; +} + +static void jbi_exit_mm(void) +{ +#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) + jbi_dbg(DEBUG_DETAIL, "n_bytes_allocated: %u\n", n_bytes_allocated); + n_bytes_allocated = 0; +#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ + +#if defined(MEM_TRACKER) + jbi_dbg(DEBUG_DETAIL, "peak_memory_usage: %u\n", peak_memory_usage); + jbi_dbg(DEBUG_DETAIL, "peak_allocations: %u\n", peak_allocations); + jbi_dbg(DEBUG_DETAIL, "n_allocations: %u\n", n_allocations); + peak_memory_usage = 0; + peak_allocations = 0; + n_allocations = 0; +#if defined(USE_STATIC_MEMORY) + jbi_dbg(DEBUG_DETAIL, "n_bytes_not_recovered: %u\n", n_bytes_not_recovered); + n_bytes_not_recovered = 0; +#endif /* USE_STATIC_MEMORY */ +#endif /* MEM_TRACKER */ + + jbi_dbg(DEBUG_DETAIL, "jbi_delay: %ld us, %ld count, peak %ld us\n", + jbi_delay_us, jbi_delay_count, jbi_peak_us); +} + +static char *get_exit_string(int format_version, int exit_code) +{ + char *exit_string = NULL; + + if (format_version == 2){ + switch (exit_code) { + case 0: + exit_string = "Success"; + break; + case 1: + exit_string = "Checking chain failure"; + break; + case 2: + exit_string = "Reading IDCODE failure"; + break; + case 3: + exit_string = "Reading USERCODE failure"; + break; + case 4: + exit_string = "Reading UESCODE failure"; + break; + case 5: + exit_string = "Entering ISP failure"; + break; + case 6: + exit_string = "Unrecognized device"; + break; + case 7: + exit_string = "Device revision is not supported"; + break; + case 8: + exit_string = "Erase failure"; + break; + case 9: + exit_string = "Device is not blank"; + break; + case 10: + exit_string = "Device programming failure"; + break; + case 11: + exit_string = "Device verify failure"; + break; + case 12: + exit_string = "Read failure"; break; + case 13: + exit_string = "Calculating checksum failure"; + break; + case 14: + exit_string = "Setting security bit failure"; + break; + case 15: + exit_string = "Querying security bit failure"; + break; + case 16: + exit_string = "Exiting ISP failure"; + break; + case 17: + exit_string = "Performing system test failure"; + break; + default: + exit_string = "Unknown exit code"; + break; + } + } else { + switch (exit_code) { + case 0: + exit_string = "Success"; + break; + case 1: + exit_string = "Illegal initialization values"; + break; + case 2: + exit_string = "Unrecognized device"; + break; + case 3: + exit_string = "Device revision is not supported"; + break; + case 4: + exit_string = "Device programming failure"; + break; + case 5: + exit_string = "Device is not blank"; + break; + case 6: + exit_string = "Device verify failure"; + break; + case 7: + exit_string = "SRAM configuration failure"; + break; + default: + exit_string = "Unknown exit code"; + break; + } + } + + return exit_string; +} + +static void jbi_help(void) +{ + fprintf(stderr, "Usage: jbi [options]\n"); + fprintf(stderr, "\nAvailable options:\n"); + fprintf(stderr, " -h : show help message\n"); + fprintf(stderr, " -v : show verbose messages\n"); + fprintf(stderr, " -i : show file info only - does not execute any action\n"); + fprintf(stderr, " -a : specify an action name (Jam STAPL)\n"); + fprintf(stderr, " -d : initialize variable to specified value (Jam 1.1)\n"); + fprintf(stderr, " -d : enable optional procedure (Jam STAPL)\n"); + fprintf(stderr, " -d : disable recommended procedure (Jam STAPL)\n"); + fprintf(stderr, " -r : don't reset JTAG TAP after use\n"); +} + +int jbi_debug(int level) +{ + jbi_debug_level = level; + + return 0; +} + +int jbi_main(unsigned char *addr, unsigned long size, int argc, char * const argv[]) +{ + BOOL help = FALSE; + BOOL error = FALSE; + long offset = 0L; + long error_address = 0L; + JBI_RETURN_TYPE crc_result = JBIC_SUCCESS; + JBI_RETURN_TYPE exec_result = JBIC_SUCCESS; + unsigned short expected_crc = 0; + unsigned short actual_crc = 0; + char key[33] = {0}; + char value[257] = {0}; + int exit_status = 0; + int arg = 0; + int exit_code = 0; + int format_version = 0; + char *workspace = NULL; + char *action = NULL; + char *init_list[10]; + int init_count = 0; + long workspace_size = 0; + char *exit_string = NULL; + int reset_jtag = 1; + int execute_program = 1; + int action_count = 0; + int procedure_count = 0; + int index = 0; + char *action_name = NULL; + char *description = NULL; + JBI_PROCINFO *procedure_list = NULL; + JBI_PROCINFO *procptr = NULL; + char *endp = NULL; + + verbose = FALSE; + + init_list[0] = NULL; + + /* print out the version string and copyright message */ + printf("Jam STAPL ByteCode Player Version 2.2\n"); + printf("Copyright (C) 1998-2001 Altera Corporation\n\n"); + + for (arg = 0; arg < argc; arg++) { + if (argv[arg][0] == '-') { + switch (toupper(argv[arg][1])) { + case 'A': /* set action name */ + if (action == NULL) { + action = &argv[arg][2]; + } else { + error = TRUE; + } + break; + case 'D': /* initialization list */ + if (argv[arg][2] == '"') { + init_list[init_count] = &argv[arg][3]; + } else { + init_list[init_count] = &argv[arg][2]; + } + init_list[++init_count] = NULL; + break; + case 'R': /* don't reset the JTAG chain after use */ + reset_jtag = 0; + break; + case 'M': /* set memory size */ + workspace = (char *) simple_strtoul(&argv[arg][2], &endp, 16); + if (workspace == NULL) { + printf("Error workspace\n"); + error = TRUE; + } else { + if (*endp == '.') { + workspace_size = simple_strtoul(endp + 1, &endp, 16); + if (*endp != '\0') { + printf("Error workspace size end\n"); + error = TRUE; + } + } else { + printf("No workspace size\n"); + error = TRUE; + } + } + break; + case 'H': /* help */ + help = TRUE; + break; + case 'V': /* verbose */ + verbose = TRUE; + break; + case 'I': /* show info only, do not execute */ + verbose = TRUE; + execute_program = 0; + break; + default: + error = TRUE; + break; + } + } else { + error = TRUE; + } + + if (error) { + fprintf(stderr, "Illegal argument: \"%s\"\n", argv[arg]); + help = TRUE; + error = FALSE; + } + } + + if (help) { + jbi_help(); + return 0; + } + + /* Calibrate the delay loop function */ + calibrate_delay(); + + jbi_init_mm(); + + /* Check CRC */ + crc_result = jbi_check_crc(addr, size, &expected_crc, &actual_crc); + if (verbose || (crc_result == JBIC_CRC_ERROR)) { + switch (crc_result) { + case JBIC_SUCCESS: + printf("CRC matched: CRC value = %04X\n", actual_crc); + break; + case JBIC_CRC_ERROR: + printf("CRC mismatch: expected %04X, actual %04X\n", expected_crc, actual_crc); + return -1; + case JBIC_UNEXPECTED_END: + printf("Expected CRC not found, actual CRC value = %04X\n", actual_crc); + return -1; + case JBIC_IO_ERROR: + printf("Error: File format is not recognized.\n"); + return -1; + default: + printf("CRC function returned error code %d\n", crc_result); + return -1; + } + } + + if (verbose) { + /* Display file format version */ + jbi_get_file_info(addr, size, &format_version, + &action_count, &procedure_count); + + printf("File format is %s ByteCode format\n", + (format_version == 2) ? "Jam STAPL" : "pre-standardized Jam 1.1"); + + /* Dump out NOTE fields */ + while (jbi_get_note(addr, size, &offset, key, value, 256) == 0) { + printf("NOTE \"%s\" = \"%s\"\n", key, value); + } + + /* Dump the action table */ + if ((format_version == 2) && (action_count > 0)) { + printf("\nActions available in this file:\n"); + + for (index = 0; index < action_count; ++index) { + jbi_get_action_info(addr, size, + index, &action_name, &description, &procedure_list); + + if (description == NULL) { + printf("%s\n", action_name); + } else { + printf("%s \"%s\"\n", action_name, description); + } + + procptr = procedure_list; + while (procptr != NULL) { + if (procptr->attributes != 0) { + printf(" %s (%s)\n", procptr->name, + (procptr->attributes == 1) ? "optional" : "recommended"); + } + + procedure_list = procptr->next; + jbi_free(procptr); + procptr = procedure_list; + } + } + + /* add a blank line before execution messages */ + if (execute_program) + printf("\n"); + } + } + + if (execute_program) { + /* Execute the Jam STAPL ByteCode program */ + exec_result = jbi_execute(addr, size, workspace, + workspace_size, action, init_list, reset_jtag, + &error_address, &exit_code, &format_version); + if (exec_result == JBIC_SUCCESS) { + exit_string = get_exit_string(format_version, exit_code); + printf("Exit code = %d... %s\n", exit_code, exit_string); + } else if ((format_version == 2) && (exec_result == JBIC_ACTION_NOT_FOUND)) { + if ((action == NULL) || (*action == '\0')) { + printf("Error: no action specified for Jam STAPL file.\n" + "Program terminated.\n"); + } else { + printf("Error: action \"%s\" is not supported for this Jam STAPL file.\n" + "Program terminated.\n", action); + } + } else if (exec_result < MAX_ERROR_CODE) { + printf("Error at address %ld: %s.\nProgram terminated.\n", + error_address, error_text[exec_result]); + } else { + printf("Unknown error code %d\n", exec_result); + } + } + + if (jtag_hardware_initialized) { + close_jtag_hardware(); + jtag_hardware_initialized = FALSE; + } + +#if defined(MEM_TRACKER) + if (verbose) { +#if defined(USE_STATIC_MEMORY) + fprintf(stdout, "Memory Usage Info: static memory size = %uBytes (%dKB)\n", + N_STATIC_MEMORY_BYTES, N_STATIC_MEMORY_KBYTES); +#endif /* USE_STATIC_MEMORY */ + fprintf(stdout, "Memory Usage Info: peak memory usage = %uBytes (%dKB)\n", + peak_memory_usage, (peak_memory_usage + 1023) / 1024); + fprintf(stdout, "Memory Usage Info: peak allocations = %u\n", + peak_allocations); +#if defined(USE_STATIC_MEMORY) + if ((n_bytes_allocated - n_bytes_not_recovered) != 0) { + fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", + (n_bytes_allocated - n_bytes_not_recovered), + ((n_bytes_allocated - n_bytes_not_recovered) + 1023) / 1024); + } +#else /* USE_STATIC_MEMORY */ + if (n_bytes_allocated != 0) { + fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", + n_bytes_allocated, (n_bytes_allocated + 1023) / 1024); + } +#endif /* USE_STATIC_MEMORY */ + if (n_allocations != 0) { + fprintf(stdout, "Memory Usage Info: allocations not freed = %d\n", n_allocations); + } + } +#endif /* MEM_TRACKER */ + + jbi_exit_mm(); + + if (exec_result != JBIC_SUCCESS) { + return (-exec_result); + } + + if (exit_code != 0) { + return (exit_code); + } + + return (exit_status); +} + +#endif /* PORT == EMBEDDED */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h new file mode 100644 index 000000000000..5e5c5332f385 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h @@ -0,0 +1,95 @@ +#ifndef __JBISTUB_H__ +#define __JBISTUB_H__ + +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_64BIT +typedef s64 addr_t; +#else +typedef s32 addr_t; +#endif +/* typedef long addr_t; */ + +/* #define USE_STATIC_MEMORY 100 */ +/* #define MEM_TRACKER */ + +/* #define O_RDWR 1 */ + +#define stdout (1) +#define stderr (2) + +#define puts printk +#define printf printk + +#define fprintf(std, fmt, arg...) \ + do { \ + printf(fmt, ##arg); \ + } while (0) + +#define DEBUG_NONE 0 +#define DEBUG_ERR 1 +#define DEBUG_DETAIL 2 +#define DEBUG_NOISY 3 +#define DEBUG_MM 4 + +#define jbi_dbg(level, fmt, arg...) \ + do { \ + if (level <= jbi_debug_level) { \ + printf(fmt, ##arg); \ + } \ + } while (0) + +extern int jbi_debug_level; + +static inline int open(char *path, int flag) +{ + return 0; +} + +static inline int close(int fd) +{ + return 0; +} + +static inline int read(int fd, char *buf, int count) +{ + return 0; +} + +static inline int write(int fd, char *buf, int count) +{ + return 0; +} + +static inline int fflush(int fd) +{ + return 0; +} + +static inline int clock(void) +{ + return 0; +} + +static inline int atoi(const char *nptr) +{ + return (int) simple_strtol(nptr, (char **) NULL, 10); +} + +static inline void *malloc(size_t size) +{ + return kmalloc(size, GFP_KERNEL); +} + +static inline void free(void *ptr) +{ + kfree(ptr); +} + +#endif /* __JBISTUB_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile new file mode 100644 index 000000000000..caad44948030 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile @@ -0,0 +1,22 @@ +#include $(top_srcdir)/debian/rules +#KERNELDIR := ${KBUILD_OUTPUT} + +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) +FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../include) +EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) +EXTRA_CFLAGS+= -Wall + +firmware_driver_ispvme-objs := firmware_ispvme.o +firmware_driver_ispvme-objs += firmware_cpld_ispvme.o firmware_cpld_upgrade_ispvme.o + +#ifndef CONFIG_FRM_PRODUCT_FILE + +$(warning $(firmware_driver_ispvme-objs)) +obj-m := firmware_driver_ispvme.o +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(common_module_dir) ]; then mkdir -p $(common_module_dir) ;fi + cp -p $(PWD)/*.ko $(common_module_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c new file mode 100644 index 000000000000..9841782290c1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c @@ -0,0 +1,450 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int firmware_cpld_open(struct inode *inode, struct file *file) +{ + firmware_device_t *frm_dev; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Open cpld device.\n"); + frm_dev = firmware_get_device_by_minor(MINOR(inode->i_rdev)); + if (frm_dev == NULL) { + return -ENXIO; + } + file->private_data = frm_dev; + + return FIRMWARE_SUCCESS; +} + +static ssize_t firmware_cpld_read (struct file *file, char __user *buf, size_t count, + loff_t *offset) +{ + return 0; +} + +static ssize_t firmware_cpld_write (struct file *file, const char __user *buf, size_t count, + loff_t *offset) +{ + return 0; +} + +static loff_t firmware_cpld_llseek(struct file *file, loff_t offset, int origin) +{ + return 0; +} + +/* + * firmware_cpld_ioctl + * function: ispvme driver ioctl command parsing function + * @file: param[in] device file name + * @cmd: param[in] command + * @arg: param[in] the parameters in the command + * return value: success-FIRMWARE_SUCCESS; fail:other value + */ +static long firmware_cpld_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + int ret; + void __user *argp; + firmware_device_t *frm_dev; + firmware_cpld_t *cpld_info; + char value; + + /* Get device private data */ + frm_dev = (firmware_device_t *)file->private_data; + cpld_info = NULL; + if (frm_dev != NULL) { + if (frm_dev->priv != NULL) { + cpld_info = (firmware_cpld_t *)frm_dev->priv; + } + } + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to frm_dev->priv sysfs info.\n"); + return FIRMWARE_FAILED; + } + argp = (void __user *)arg; + + switch (cmd) { + case FIRMWARE_JTAG_TDI: + /* Set the TDI signal */ + if (copy_from_user(&value, argp, sizeof(value))) { + return -EFAULT; + } + if (fwm_cpld_tdi_op(value) < 0 ) { + return -EFAULT; + } + break; + case FIRMWARE_JTAG_TCK: + /* Set the TCK signal */ + if (copy_from_user(&value, argp, sizeof(value))) { + return -EFAULT; + } + if (fwm_cpld_tck_op(value) < 0) { + return -EFAULT; + } + break; + case FIRMWARE_JTAG_TMS: + /* Set the TMS signal */ + if (copy_from_user(&value, argp, sizeof(value))) { + return -EFAULT; + } + if (fwm_cpld_tms_op(value) < 0) { + return -EFAULT; + } + break; + case FIRMWARE_JTAG_TDO: + /* Read the TDO signal */ + value = fwm_cpld_tdo_op(); + if (copy_to_user(argp, &value, sizeof(value))) { + return -EFAULT; + } + break; + case FIRMWARE_JTAG_INIT: + /* The VME upgrade mode initializes the operation */ + ret=firmware_init_vme(cpld_info); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to init upgrade.(chain = %d)\n", + frm_dev != NULL ? frm_dev->chain : -1); + return FIRMWARE_FAILED; + } + break; + case FIRMWARE_JTAG_FINISH: + /* The VME upgrade mode completes the operation */ + ret=firmware_finish_vme(cpld_info); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to release upgrade.(chain = %d)\n", + frm_dev != NULL ? frm_dev->chain : -1); + return FIRMWARE_FAILED; + } + break; + default: + FIRMWARE_DRIVER_DEBUG_ERROR("not find cmd: %d\r\n", cmd); + return -ENOTTY; + } /* End of switch */ + + return FIRMWARE_SUCCESS; +} + +static int firmware_cpld_release(struct inode *inode, struct file *file) +{ + return 0; +} + +static const struct file_operations cpld_dev_fops = { + .owner = THIS_MODULE, + .llseek = firmware_cpld_llseek, + .read = firmware_cpld_read, + .write = firmware_cpld_write, + .unlocked_ioctl = firmware_cpld_ioctl, + .open = firmware_cpld_open, + .release = firmware_cpld_release, +}; + +static int of_firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) +{ + int ret; + char *name; + int i; + char buf[64]; + firmware_logic_dev_en_t *firmware_logic_dev_en_point; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); + return -1; + } + + mem_clear(cpld_info, sizeof(firmware_cpld_t)); + ret = 0; + ret += of_property_read_string(dev->of_node, "type", (const char **)&name); + ret += of_property_read_u32(dev->of_node, "tdi", &cpld_info->tdi); + ret += of_property_read_u32(dev->of_node, "tck", &cpld_info->tck); + ret += of_property_read_u32(dev->of_node, "tms", &cpld_info->tms); + ret += of_property_read_u32(dev->of_node, "tdo", &cpld_info->tdo); + + ret += of_property_read_u32(dev->of_node, "chain", &cpld_info->chain); + ret += of_property_read_u32(dev->of_node, "chip_index", &cpld_info->chip_index); + + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config error, ret:%d.\n", ret); + return -ENXIO; + } + + strncpy(cpld_info->type, name, sizeof(cpld_info->type) - 1); + + ret = of_property_read_u32(dev->of_node, "tck_delay", &cpld_info->tck_delay); + if(ret != 0) { + cpld_info->tck_delay = 60; + } + + cpld_info->gpio_en_info_num = 0; + /* Enable through GPIO */ + for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_gpio_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_gpio); + if(ret != 0) { + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_level_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_level); + if(ret != 0) { + break; + } + cpld_info->gpio_en_info_num++; + } + + cpld_info->logic_dev_en_num = 0; + /* Enable through register */ + for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { + firmware_logic_dev_en_point = &cpld_info->logic_dev_en_info[i]; + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_dev_%d", i); + ret = 0; + ret += of_property_read_string(dev->of_node, buf, (const char **)&name); + if(ret != 0) { + /* Failure to resolve to EN_LOGIC_DEV means no logical device is enabled. No failure is returned */ + ret = 0; + break; + } + strncpy(firmware_logic_dev_en_point->dev_name, name, FIRMWARE_DEV_NAME_LEN - 1); + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_addr_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->addr); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_addr_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_mask_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->mask); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_mask_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_en_val_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->en_val); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_en_val_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_dis_val_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->dis_val); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_dis_val_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_width_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->width); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_width_%d ret =%d.\n", i, ret); + break; + } + + cpld_info->logic_dev_en_num++; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, gpio_en_info_num:%u logic_dev_en_num:%u\n", + cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num, cpld_info->logic_dev_en_num); + FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", + cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); + + return 0; +} + +static int firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) +{ + int i; + + firmware_logic_dev_en_t *firmware_logic_dev_en_point; + firmware_upgrade_device_t *firmware_upgrade_device; + firmware_jtag_device_t jtag_upg_device; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); + return -1; + } + + if (dev->platform_data == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("platform data config error.\n"); + return -1; + } + firmware_upgrade_device = dev->platform_data; + jtag_upg_device = firmware_upgrade_device->upg_type.jtag; + + mem_clear(cpld_info, sizeof(firmware_cpld_t)); + strncpy(cpld_info->type, firmware_upgrade_device->type, sizeof(cpld_info->type) - 1); + cpld_info->tdi = jtag_upg_device.tdi; + cpld_info->tck = jtag_upg_device.tck; + cpld_info->tms = jtag_upg_device.tms; + cpld_info->tdo = jtag_upg_device.tdo; + cpld_info->chain = firmware_upgrade_device->chain; + cpld_info->chip_index = firmware_upgrade_device->chip_index; + + if (jtag_upg_device.tck_delay == 0) { + cpld_info->tck_delay = 60; + FIRMWARE_DRIVER_DEBUG_VERBOSE("no config tck_delay, use default value:%u\n", cpld_info->tck_delay); + } else { + cpld_info->tck_delay = jtag_upg_device.tck_delay; + } + + if (firmware_upgrade_device->en_gpio_num > FIRMWARE_EN_INFO_MAX) { + FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_gpio_num:%u configurations exceeds the maximum limit:%u.\n", + firmware_upgrade_device->en_gpio_num, FIRMWARE_EN_INFO_MAX); + return -ENXIO; + } + cpld_info->gpio_en_info_num = firmware_upgrade_device->en_gpio_num; + /* Enable through GPIO */ + for (i = 0; i < cpld_info->gpio_en_info_num; i++) { + cpld_info->gpio_en_info[i].en_gpio = firmware_upgrade_device->en_gpio[i]; + cpld_info->gpio_en_info[i].en_level = firmware_upgrade_device->en_level[i]; + } + + if (firmware_upgrade_device->en_logic_num > FIRMWARE_EN_INFO_MAX) { + FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_logic_num:%u configurations exceeds the maximum limit:%u.\n", + firmware_upgrade_device->en_logic_num, FIRMWARE_EN_INFO_MAX); + return -ENXIO; + } + cpld_info->logic_dev_en_num = firmware_upgrade_device->en_logic_num; + /* Enable through register */ + for (i = 0; i < cpld_info->logic_dev_en_num; i++) { + firmware_logic_dev_en_point = &cpld_info->logic_dev_en_info[i]; + strncpy(firmware_logic_dev_en_point->dev_name, firmware_upgrade_device->en_logic_dev[i], + FIRMWARE_DEV_NAME_LEN - 1); + firmware_logic_dev_en_point->addr = firmware_upgrade_device->en_logic_addr[i]; + firmware_logic_dev_en_point->mask = firmware_upgrade_device->en_logic_mask[i]; + firmware_logic_dev_en_point->en_val = firmware_upgrade_device->en_logic_en_val[i]; + firmware_logic_dev_en_point->dis_val = firmware_upgrade_device->en_logic_dis_val[i]; + firmware_logic_dev_en_point->width = firmware_upgrade_device->en_logic_width[i]; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, gpio_en_info_num:%u logic_dev_en_num:%u\n", + cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num, cpld_info->logic_dev_en_num); + FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", + cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); + + return 0; +} + +static int firmware_cpld_probe(struct platform_device *pdev) +{ + int ret; + firmware_cpld_t *cpld_info; + firmware_device_t *frm_dev; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_cpld_probe\r\n"); + /* Gets the information in the device tree */ + cpld_info = devm_kzalloc(&pdev->dev, sizeof(firmware_cpld_t), GFP_KERNEL); + if (cpld_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc cpld device tree.\n"); + return -EPERM; + } + + if (pdev->dev.of_node) { + ret = of_firmware_upgrade_config_init(&pdev->dev, cpld_info); + } else { + ret = firmware_upgrade_config_init(&pdev->dev, cpld_info); + } + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("get config init from dts error.\n"); + return -EPERM; + } + + frm_dev = devm_kzalloc(&pdev->dev, sizeof(firmware_device_t), GFP_KERNEL); + if (frm_dev == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc firmware device.\n"); + return -EPERM; + } + + /* Based on the link number, determine the name of the device file */ + frm_dev->chain = cpld_info->chain; + snprintf(frm_dev->name, FIRMWARE_NAME_LEN - 1, "firmware_cpld_ispvme%d", frm_dev->chain); + strncpy(cpld_info->devname, frm_dev->name, strlen(frm_dev->name) + 1); + + INIT_LIST_HEAD(&frm_dev->list); + frm_dev->dev.minor = MISC_DYNAMIC_MINOR; + frm_dev->dev.name = frm_dev->name; + frm_dev->dev.fops = &cpld_dev_fops; + frm_dev->priv = cpld_info; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Register cpld firmware chain:%d, name:%s.\n", frm_dev->chain, frm_dev->name); + + ret = firmware_device_register(frm_dev); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to register firmware device.\n"); + return -EPERM; + } + + platform_set_drvdata(pdev, frm_dev); + return 0; +} + +static int __exit firmware_cpld_remove(struct platform_device *pdev) +{ + firmware_device_t *frm_dev; + + frm_dev = (firmware_device_t *)platform_get_drvdata(pdev); + firmware_device_unregister(frm_dev); + platform_set_drvdata(pdev, NULL); + + return 0; +} + +static struct of_device_id cpld_match[] = { + { + .compatible = "firmware_cpld_ispvme", + }, + {}, +}; + +static struct platform_driver cpld_driver = { + .driver = { + .name = "firmware_cpld_ispvme", + .owner = THIS_MODULE, + .of_match_table = cpld_match, + }, + .probe = firmware_cpld_probe, + .remove = firmware_cpld_remove, +}; + +static firmware_driver_t fmw_drv_cpld = { + .name = "firmware_cpld_ispvme", + .drv = &cpld_driver, +}; + +int firmware_cpld_init(void) +{ + int ret; + + INIT_LIST_HEAD(&fmw_drv_cpld.list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("ispvme upgrade driver register \n"); + ret = firmware_driver_register(&fmw_drv_cpld); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("ispvme upgrade driver register failed\n"); + return ret; + } + return 0; +} + +void firmware_cpld_exit(void) +{ + firmware_driver_unregister(&fmw_drv_cpld); + INIT_LIST_HEAD(&fmw_drv_cpld.list); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c new file mode 100644 index 000000000000..b8896ed75f38 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c @@ -0,0 +1,691 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* TCK clock MAX 16MHz */ +#define TCK_DELAY (current_fmw_cpld->tck_delay) + +#if 0 +static firmware_cpld_t default_fmw_cpld; +#endif + +static firmware_cpld_t *current_fmw_cpld; + +static int TDI_PULL_UP(void); +static int TDI_PULL_DOWN(void); +static int TMS_PULL_UP(void); +static int TMS_PULL_DOWN(void); +static int TCK_PULL_UP(void); +static int TCK_PULL_DOWN(void); + +/* + * set_currrent_cpld_info + * function: Save the current device information + * @info: param[in] Information about the device to be updated + */ +static void set_currrent_cpld_info(firmware_cpld_t *info) +{ + current_fmw_cpld = info; +} + +static int firmware_file_read(const char *path, uint32_t addr, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + FIRMWARE_DRIVER_DEBUG_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + pos = (loff_t)addr; + ret = kernel_read(filp, val, size, &pos); + if (ret != size) { + FIRMWARE_DRIVER_DEBUG_ERROR("read kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); + goto exit; + } + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int firmware_file_write(const char *path, uint32_t addr, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + FIRMWARE_DRIVER_DEBUG_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + pos = (loff_t)addr; + ret = kernel_write(filp, (void*)val, size, &pos); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("write kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); + goto exit; + } + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +/* + * firmware_file_do_work + * function: Sets logical register values + * @path:param[in] Logic device descriptor + * @addr:param[in] Logic device address + * @value:param[in] the register value needs to be set + * @mask:param[in] register mask + * @width:param[in] register bit width + * return: 0:success, <0:failed + */ +static int firmware_file_do_work(char *path, uint32_t addr, uint32_t value, uint32_t mask, + int32_t width) +{ + int ret; + uint8_t read_value[4], write_value[4]; + uint8_t tmp_read8, tmp_write8, tmp_mask8; + uint32_t tmp_read32, tmp_write32; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("path=%s, addr=0x%x, value=0x%x mask=0x%x\r\n", path, addr, value, mask); + if ((width > 4) || (width < 0)) { + FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); + return -1; + } + ret = 0; + mem_clear(read_value, sizeof(read_value)); + mem_clear(write_value, sizeof(write_value)); + ret = firmware_file_read(path, addr, read_value, width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware sysfs read.\r\n"); + return -1; + } + + switch (width) { + case 1: + tmp_read8 = read_value[0]; + tmp_mask8 = (uint8_t)(mask) & 0xFF; + tmp_write8 = (uint8_t)value & 0xFF; + write_value[0] = (tmp_read8 & tmp_mask8) | tmp_write8; + FIRMWARE_DRIVER_DEBUG_VERBOSE("1 byte write val[0]:0x%x", write_value[0]); + break; + case 2: + FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); + return -1; + case 4: + memcpy((uint8_t *)&tmp_read32, read_value, 4); + tmp_write32 = (tmp_read32 & mask) | value; + memcpy(write_value, (uint8_t *)&tmp_write32, 4); + FIRMWARE_DRIVER_DEBUG_VERBOSE("4 byte write val[0]:0x%x, val[1]:0x%x, val[2]:0x%x, val[3]:0x%x", + write_value[0], write_value[1], write_value[2], write_value[3]); + break; + default: + FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); + return -1; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("write logic dev[%s] addr[0x%x].\r\n", path, addr); + ret = firmware_file_write(path, addr, write_value, width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware_file_write %s addr 0x%x failed, ret=%d.\r\n", path, addr, ret); + return -1; + } + + return 0; +} + +/* + * firmware_upgrade_en + * function: Upgrade access enabling switch + * @flag: !0:enable 0:disable + */ +static int firmware_upgrade_en(int flag) +{ + int i; + firmware_logic_dev_en_t *firmware_logic_dev_en_info; + int ret, rv; + char *dev_name; + + ret = 0; + FIRMWARE_DRIVER_DEBUG_VERBOSE("%s en switch: gpio en num %d, logic reg en num %d.\n", + flag ? "Open" : "Close", current_fmw_cpld->gpio_en_info_num, current_fmw_cpld->logic_dev_en_num); + for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { + if (flag) { + ret = gpio_request(current_fmw_cpld->gpio_en_info[i].en_gpio, "cpld_ispvme_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade EN[%d] GPIO[%d] failed!\n", + i, current_fmw_cpld->gpio_en_info[i].en_gpio); + goto free_gpio; + } + gpio_direction_output(current_fmw_cpld->gpio_en_info[i].en_gpio, current_fmw_cpld->gpio_en_info[i].en_level); + current_fmw_cpld->gpio_en_info[i].flag = 1; + } else { + gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); + gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); + current_fmw_cpld->gpio_en_info[i].flag = 0; + } + } + + for (i = 0; i < current_fmw_cpld->logic_dev_en_num; i++) { + firmware_logic_dev_en_info = ¤t_fmw_cpld->logic_dev_en_info[i]; + dev_name = firmware_logic_dev_en_info->dev_name; + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware sysfs [%d] dev_name[%s] addr[0x%x] mask[0x%x]" + " en_val[0x%x] dis_val[0x%x] width[%d]\n", + i , firmware_logic_dev_en_info->dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->mask, firmware_logic_dev_en_info->en_val, + firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->width); + if (flag) { + ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->en_val, firmware_logic_dev_en_info->mask, + firmware_logic_dev_en_info->width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Open logic register [%d] EN failed, ret %d.\n", i, ret); + goto free_logic_dev; + } else { + firmware_logic_dev_en_info->flag = 1; + } + } else { + rv = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, + firmware_logic_dev_en_info->width); + if (rv < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, rv); + ret = -1; + } + firmware_logic_dev_en_info->flag = 0; + } + } + + return ret; +free_logic_dev: + for (i = 0; i < current_fmw_cpld->logic_dev_en_num; i++) { + firmware_logic_dev_en_info = ¤t_fmw_cpld->logic_dev_en_info[i]; + dev_name = firmware_logic_dev_en_info->dev_name; + if (firmware_logic_dev_en_info->flag == 1) { + ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, + firmware_logic_dev_en_info->width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, ret); + } + firmware_logic_dev_en_info->flag = 0; + } else { + break; + } + } +free_gpio: + for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { + if (current_fmw_cpld->gpio_en_info[i].flag == 1) { + gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); + gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); + current_fmw_cpld->gpio_en_info[i].flag = 0; + } else { + break; + } + } + + return -1; +} + +/* + * init_cpld + * function:Initialize CPLD + * return value: 0 success ; -1 fail + */ +static int init_cpld(void) +{ + int ret; + if (current_fmw_cpld == NULL) { + return -1; + } + mdelay(10); + ret = 0; + ret = gpio_request(current_fmw_cpld->tdi, "cpld_ispvme_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TDI GPIO failed!\n"); + return ret; + } + ret = gpio_request(current_fmw_cpld->tck, "cpld_ispvme_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TCK GPIO failed!\n"); + goto free_tdi; + } + ret = gpio_request(current_fmw_cpld->tms, "cpld_ispvme_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TMS GPIO failed!\n"); + goto free_tck; + } + ret = gpio_request(current_fmw_cpld->tdo, "cpld_ispvme_upgrade"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TDO GPIO failed!\n"); + goto free_tms; + } + + gpio_direction_output(current_fmw_cpld->tdi, 1); + gpio_direction_output(current_fmw_cpld->tck, 1); + gpio_direction_output(current_fmw_cpld->tms, 1); + + gpio_direction_input(current_fmw_cpld->tdo); + ret = firmware_upgrade_en(1); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: open firmware upgrade en failed, ret %d.\n", ret); + goto free_tdo; + } +#if 0 + /* test GPIO */ + if (TDI_PULL_UP() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_UP failed.\n"); + goto free_tdo; + } + if (TDI_PULL_DOWN() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_DOWN failed.\n"); + goto free_tdo; + } + if (TMS_PULL_UP() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_UP failed.\n"); + goto free_tdo; + } + if (TMS_PULL_DOWN() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_DOWN failed.\n"); + goto free_tdo; + } + if (TCK_PULL_UP() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_UP failed.\n"); + goto free_tdo; + } + if (TCK_PULL_DOWN() < 0 ) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_DOWN failed.\n"); + goto free_tdo; + } +#endif + mdelay(10); + return 0; + +free_tdo: + gpio_free(current_fmw_cpld->tdo); +free_tms: + gpio_free(current_fmw_cpld->tms); +free_tck: + gpio_free(current_fmw_cpld->tck); +free_tdi: + gpio_free(current_fmw_cpld->tdi); + return ret; +} + +/* + * finish_cpld + * function: finish CPLD upgrade operation + * return value: 0 success ; -1 fail + */ +static int finish_cpld(void) +{ + int ret; + + if (current_fmw_cpld == NULL) { + return -1; + } + mdelay(10); + ret = firmware_upgrade_en(0); + if (ret < 0){ + FIRMWARE_DRIVER_DEBUG_ERROR("Error: close firmware upgrade en failed, ret %d.\r\n", ret); + } + + gpio_free(current_fmw_cpld->tdi); + gpio_free(current_fmw_cpld->tck); + gpio_free(current_fmw_cpld->tms); + gpio_free(current_fmw_cpld->tdo); + mdelay(10); + return 0; +} + +/* Loop waiting for */ +static int pull_wait(int gpio, int value) { + int i, j; + /* Timeout time is two seconds */ + for (i = 0; i < 20; i++) { + for (j = 0; j < 100; j++) { + if (!!gpio_get_value(gpio) == !!value ) { + return 0; + } + /* The first loop does not delay, normally the first loop can immediately return the result */ + if (i) { + mdelay(1); + } + } + /* The CPU is released every 100ms */ + schedule(); + } + /* timeout */ + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Wait gpio %d pull to %d failed.\n", gpio, value); + return -1; +} + +/* TDI pull-up */ +static int pull_tdi_up(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tdi, 1); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tdi, 1); +} + +/* TDI pull-down */ +static int pull_tdi_down(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tdi, 0); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tdi, 0); +} + +/* TCK pull-up */ +static int pull_tck_up(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tck, 1); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tck, 1); +} + +/* TCK pull-down */ +static int pull_tck_down(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tck, 0); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tck, 0); +} + +/* TMS pull-up */ +static int pull_tms_up(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tms, 1); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tms, 1); +} + +/* TMS pull-down */ +static int pull_tms_down(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + gpio_set_value(current_fmw_cpld->tms, 0); + + /* Wait for the GPIO value to be set successfully */ + return pull_wait(current_fmw_cpld->tms, 0); +} + +/* Read TDO */ +static int read_tdo(void) +{ + if (current_fmw_cpld == NULL) { + return -1; + } + return gpio_get_value(current_fmw_cpld->tdo); +} + +static firmware_cpld_function_t function_fmw_cpld = { + .pull_tdi_up = pull_tdi_up, + .pull_tdi_down = pull_tdi_down, + .pull_tck_up = pull_tck_up, + .pull_tck_down = pull_tck_down, + .pull_tms_up = pull_tms_up, + .pull_tms_down = pull_tms_down, + .read_tdo = read_tdo, + .init_cpld = init_cpld, + .finish_cpld = finish_cpld, +}; + +/* + * TDI_PULL_DOWN + * function: Lower TDI + */ +static int TDI_PULL_DOWN(void) +{ + if ( function_fmw_cpld.pull_tdi_down != NULL) { + return function_fmw_cpld.pull_tdi_down(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_DOWN.\n"); + return -1; + } +} + +/* + * TDI_PULL_UP + * function: High TDI + */ +static int TDI_PULL_UP(void) +{ + if (function_fmw_cpld.pull_tdi_up != NULL) { + return function_fmw_cpld.pull_tdi_up(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_UP.\n"); + return -1; + } +} + +/* + * TCK_PULL_DOWN + * function: Lower TCK + */ +static int TCK_PULL_DOWN(void) +{ + if (function_fmw_cpld.pull_tck_down != NULL) { + return function_fmw_cpld.pull_tck_down(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_DOWN.\n"); + return -1; + } +} + +/* + * TCK_PULL_UP + * function: High TCK + */ +static int TCK_PULL_UP(void) +{ + if (function_fmw_cpld.pull_tck_up != NULL) { + return function_fmw_cpld.pull_tck_up(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_UP.\n"); + return -1; + } +} + +/* + * TMS_PULL_DOWN + * function: Lower TMS + */ +static int TMS_PULL_DOWN(void) +{ + if (function_fmw_cpld.pull_tms_down != NULL) { + return function_fmw_cpld.pull_tms_down(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_DOWN.\n"); + return -1; + } +} + +/* + * TMS_PULL_UP + * function: High TMS + */ +static int TMS_PULL_UP(void) +{ + if (function_fmw_cpld.pull_tms_up != NULL) { + return function_fmw_cpld.pull_tms_up(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_UP.\n"); + return -1; + } +} + +/* + * TDO_READ + * function:Read the TDO level + */ +static int TDO_READ(void) +{ + if (function_fmw_cpld.read_tdo != NULL) { + return function_fmw_cpld.read_tdo(); + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDO_READ.\n"); + return -1; + } +} + +/* + * cpld_upgrade_init + * function:Initialize GPIO and CPLD + * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int cpld_upgrade_init(void) +{ + int ret; + + if (function_fmw_cpld.init_cpld != NULL) { + ret = function_fmw_cpld.init_cpld(); + if (ret != FIRMWARE_SUCCESS) { + return ret; + } + } + + return FIRMWARE_SUCCESS; +} + +/* + * cpld_upgrade_finish + * function:Release GPIO and CPLD + * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int cpld_upgrade_finish(void) +{ + int ret; + + if (function_fmw_cpld.finish_cpld != NULL) { + ret = function_fmw_cpld.finish_cpld(); + if (ret != FIRMWARE_SUCCESS) { + return ret; + } + } + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_init_vme + * function: Initialize GPIO, + * @cpld_info: param[in] Information about the device to be written to + */ +int firmware_init_vme(firmware_cpld_t *cpld_info){ + int ret; + set_currrent_cpld_info(cpld_info); + /* Initialize GPIO and CPLD */ + ret = cpld_upgrade_init(); + return ret; +} + +/** + * firmware_finish_vme + * function: Release GPIO + * @cpld_info: param[in] Information about the device to be written to + */ +int firmware_finish_vme(firmware_cpld_t *cpld_info){ + int ret; + set_currrent_cpld_info(cpld_info); + ret = cpld_upgrade_finish(); + return ret; +} + +/** + * fwm_cpld_tdi_op + * function: Operate TDI + * @value: param[in] TDI level */ +int fwm_cpld_tdi_op(int value) +{ + if (value) { + return TDI_PULL_UP(); + } else { + return TDI_PULL_DOWN(); + } +} + +/** + * fwm_cpld_tck_op + * function: Operate TCK + * @value: param[in] TCK level */ +int fwm_cpld_tck_op(int value) +{ + if (value) { + return TCK_PULL_UP(); + } else { + return TCK_PULL_DOWN(); + } +} + +/** + * fwm_cpld_tms_op + * function: Operate TMS + * value: param[in] TMS level */ +int fwm_cpld_tms_op(int value) +{ + if (value) { + return TMS_PULL_UP(); + } else { + return TMS_PULL_DOWN(); + } +} + +/** + * fwm_cpld_tdo_op + * function: Read TDO + */ +int fwm_cpld_tdo_op() +{ + return TDO_READ(); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c new file mode 100644 index 000000000000..e8f75844ae34 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c @@ -0,0 +1,140 @@ +#include +#include +#include + +int g_firmware_driver_debug = 0; +module_param(g_firmware_driver_debug, int, S_IRUGO | S_IWUSR); + +static LIST_HEAD(drv_list); +static LIST_HEAD(dev_list); + +/** + * firmware_driver_register + * function:Registered Device Driver + * @fw_drv:param[in] Driver information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_driver_register(firmware_driver_t *fw_drv) +{ + int ret; + + if (fw_drv == NULL) { + return FIRMWARE_FAILED; + } + + ret = platform_driver_register(fw_drv->drv); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: failed to register firmware upgrade driver \n"); + return FIRMWARE_FAILED; + } + + /* Adds driver information to the driver list */ + list_add(&fw_drv->list, &drv_list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware upgrade driver register sucess \n"); + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_driver_unregister + * function:unregister Device Driver + * @fw_drv:param[in] Driver information + */ +void firmware_driver_unregister(firmware_driver_t *fw_drv) +{ + list_del_init(&fw_drv->list); + platform_driver_unregister(fw_drv->drv); +} + +/* + * firmware_get_device_by_minor + * function: Get device information based on minor + */ +firmware_device_t *firmware_get_device_by_minor(int minor) +{ + firmware_device_t *tmp; + + list_for_each_entry(tmp, &dev_list, list) { + if (tmp->dev.minor == minor) { + return tmp; + } + } + + return NULL; +} + +/** + * firmware_device_register + * function:Registered Driver Device + * @fw_dev: param[in] Driver information + * return value:success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_device_register(firmware_device_t *fw_dev) +{ + int ret; + firmware_device_t *tmp; + + if (fw_dev == NULL) { + return FIRMWARE_FAILED; + } + /* Check whether the device file name already exists in the device linked list */ + list_for_each_entry(tmp, &dev_list, list) { + if (strcmp(tmp->name, fw_dev->name) == 0) { + return FIRMWARE_FAILED; + } + } + + /* Registere device */ + ret = misc_register(&fw_dev->dev); + if (ret < 0) { + return FIRMWARE_FAILED; + } + + /* Adds a device to the device list */ + list_add(&fw_dev->list, &dev_list); + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_device_unregister + * function: unregister Driver Device + */ +void firmware_device_unregister(firmware_device_t *fw_dev) +{ + list_del(&fw_dev->list); + misc_deregister(&fw_dev->dev); +} + +static int __init firmware_driver_init(void) +{ + int ret; + + INIT_LIST_HEAD(&drv_list); + INIT_LIST_HEAD(&dev_list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver ispvme init.\n"); + ret = firmware_cpld_init(); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware driver ispvme init failed.\n"); + return FIRMWARE_FAILED; + } + + return FIRMWARE_SUCCESS; +} + +static void __exit firmware_driver_exit(void) +{ + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver ispvme exit.\n"); + firmware_cpld_exit(); + INIT_LIST_HEAD(&drv_list); + INIT_LIST_HEAD(&dev_list); + return; +} + +module_init(firmware_driver_init); +module_exit(firmware_driver_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Firmware upgrade ispvme driver"); +MODULE_LICENSE("GPL"); +MODULE_VERSION("1.0"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h new file mode 100644 index 000000000000..eb737d3a56ed --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h @@ -0,0 +1,70 @@ +#ifndef __FIRMWARE_CPLD_H__ +#define __FIRMWARE_CPLD_H__ + +#define FIRMWARE_DEV_NAME_LEN 32 +#define FIRMWARE_MAX_CPLD_NUM 16 +#define FIRMWARE_TYPE_LEN 10 +#define FIRMWARE_EN_INFO_MAX 16 +#define FIRMWARE_EN_INFO_BUF 128 + +typedef struct firmware_gpio_jtag_en_s { + uint32_t en_gpio; /* GPIO enable pin */ + uint32_t en_level; /* GPIO enable level */ + int flag; /* init flag; 1-init 0-not init */ +} firmware_gpio_jtag_en_t; + +typedef struct firmware_logic_dev_en_s { + char dev_name[FIRMWARE_DEV_NAME_LEN]; /* Logical device name */ + uint32_t addr; /* Enable register address */ + uint32_t mask; /* mask */ + uint32_t en_val; /* Enable value */ + uint32_t dis_val; /* Disable value*/ + uint32_t width; /* width */ + int flag; /* init flag; 1-init 0-not init */ +} firmware_logic_dev_en_t; + +typedef struct firmware_cpld_s { + char devname[FIRMWARE_DEV_NAME_LEN]; /* Device name */ + char type[FIRMWARE_TYPE_LEN]; /* interface type */ + uint32_t tdi; /* TDI signal corresponding to GPIO pin information */ + uint32_t tck; /* TCK signal corresponding to GPIO pin information */ + uint32_t tms; /* TMS signal corresponding to GPIO pin information */ + uint32_t tdo; /* TDO signal corresponding to GPIO pin information */ + uint32_t chain; /* chain num */ + uint32_t chip_index; /* chip index */ + uint32_t tck_delay; /* Delay time */ + uint32_t gpio_en_info_num; /* GPIO Enable Number */ + firmware_gpio_jtag_en_t gpio_en_info[FIRMWARE_EN_INFO_MAX]; /* GPIO Enable Information */ + uint32_t logic_dev_en_num; /* Register Enable Number */ + firmware_logic_dev_en_t logic_dev_en_info[FIRMWARE_EN_INFO_MAX]; /* Register Enable Information */ +} firmware_cpld_t; + +typedef struct firmware_cpld_function_s{ + int (*pull_tdi_up)(void); /* TDI pull-up */ + int (*pull_tdi_down)(void); /* TDI pull-down */ + int (*pull_tck_up)(void); /* TCK pull-up */ + int (*pull_tck_down)(void); /* TCK pull-down */ + int (*pull_tms_up)(void); /* TMS pull-up */ + int (*pull_tms_down)(void); /* TCK pull-down */ + int (*read_tdo)(void); /* Read TDO */ + int (*init_cpld)(void); /* CPLD upgrade initializes the operation */ + int (*init_chip)(int chain); /* chip initializes the operation */ + int (*finish_chip)(int chain); /* chip completes the operation*/ + int (*finish_cpld)(void); /* CPLD upgrade completes the operation */ + int (*get_version)(int chain, char *ver, int len); /* get version */ +}firmware_cpld_function_t; + +/* operate TDI */ +extern int fwm_cpld_tdi_op(int value); +/* operate TCK */ +extern int fwm_cpld_tck_op(int value); +/* operate TMS */ +extern int fwm_cpld_tms_op(int value); +/* operate TDO */ +extern int fwm_cpld_tdo_op(void); +/* VME upgrade mode completes the operation*/ +extern int firmware_finish_vme(firmware_cpld_t *cpld_info); +/* VME upgrade mode initializes the operation*/ +extern int firmware_init_vme(firmware_cpld_t *cpld_info); + +#endif /* __FIRMWARE_CPLD_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h new file mode 100644 index 000000000000..39baf3f30717 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h @@ -0,0 +1,86 @@ +#ifndef __FIRMWARE_H__ +#define __FIRMWARE_H__ + +#include +#include + +#include + +/* Debug switch level */ +typedef enum { + FIRWMARE_VERBOSE, + FIRWMARE_WARN, + FIRWMARE_ERROR, + FIRWMARE_END, +} firmware_debug_level_t; + +#define FIRMWARE_DRIVER_DEBUG_VERBOSE(fmt, args...) do { \ + if ((g_firmware_driver_debug) & (1U << FIRWMARE_VERBOSE)) { \ + printk(KERN_INFO "[FIRMWARW_DRIVER_ISPVME][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FIRMWARE_DRIVER_DEBUG_ERROR(fmt, args...) do { \ + if ((g_firmware_driver_debug) & (1U << FIRWMARE_ERROR)) { \ + printk(KERN_ERR "[FIRMWARW_DRIVER_ISPVME][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FIRMWARE_NAME_LEN 48 + +#define FIRMWARE_FAILED (-1) +#define FIRMWARE_SUCCESS 0 + +/* ioctl publi command, the same as "firmware_upgrade\include\firmware_app.h" */ +#define FIRMWARE_COMMON_TYPE 'C' +#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ +#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ + +/* firmware cpld ispvme driver ioctl command, the same as "firmware_upgrade\include\firmware_app.h" */ +#define FIRMWARE_VME_TYPE 'V' +#define FIRMWARE_JTAG_TDI _IOR(FIRMWARE_VME_TYPE, 0, char) +#define FIRMWARE_JTAG_TDO _IOR(FIRMWARE_VME_TYPE, 1, char) +#define FIRMWARE_JTAG_TCK _IOR(FIRMWARE_VME_TYPE, 2, char) +#define FIRMWARE_JTAG_TMS _IOR(FIRMWARE_VME_TYPE, 3, char) +#define FIRMWARE_JTAG_EN _IOR(FIRMWARE_VME_TYPE, 4, char) +#define FIRMWARE_JTAG_INIT _IOR(FIRMWARE_VME_TYPE, 7, char) /* enable upgrade access */ +#define FIRMWARE_JTAG_FINISH _IOR(FIRMWARE_VME_TYPE, 8, char) /* disable upgrade access */ + +typedef struct cmd_info_s { + uint32_t size; + void __user *data; +} cmd_info_t; + +typedef struct firmware_device_s { + struct list_head list; /* device list */ + uint32_t chain; /* chain number */ + char name[FIRMWARE_NAME_LEN]; /* name */ + struct miscdevice dev; /* device */ + void *priv; /* private data */ +} firmware_device_t; + +typedef struct firmware_driver_s { + struct list_head list; /* list */ + char name[FIRMWARE_NAME_LEN]; /* name */ + struct platform_driver *drv; /* driver */ + void *priv; /* private data */ +} firmware_driver_t; + +extern int g_firmware_driver_debug; + +/* Get device information based on minor */ +extern firmware_device_t *firmware_get_device_by_minor(int minor); +/* Registere device */ +extern int firmware_device_register(firmware_device_t *fw_dev); +/* Unregister device */ +extern void firmware_device_unregister(firmware_device_t *fw_dev); +/* Registere driver */ +extern int firmware_driver_register(firmware_driver_t *fw_drv); +/* Unregister driver */ +extern void firmware_driver_unregister(firmware_driver_t *fw_drv); +/* CPLD upgrade initialized */ +extern int firmware_cpld_init(void); +/* CPLD unload function */ +extern void firmware_cpld_exit(void); + +#endif /* end of __FIRMWARE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile new file mode 100644 index 000000000000..a1d6d2e2ef68 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile @@ -0,0 +1,22 @@ +#include $(top_srcdir)/debian/rules +#KERNELDIR := ${KBUILD_OUTPUT} + +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) +FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../include) +EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) +EXTRA_CFLAGS+= -Wall + +firmware_driver_sysfs-objs := firmware.o +firmware_driver_sysfs-objs += firmware_sysfs.o firmware_sysfs_upgrade.o + +#ifndef CONFIG_FRM_PRODUCT_FILE + +$(warning $(firmware_driver_sysfs-objs)) +obj-m := firmware_driver_sysfs.o +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(common_module_dir) ]; then mkdir -p $(common_module_dir) ;fi + cp -p $(PWD)/*.ko $(common_module_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c new file mode 100644 index 000000000000..fec51d6238a6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c @@ -0,0 +1,143 @@ +#include +#include +#include + +int g_firmware_driver_debug = 0; +module_param(g_firmware_driver_debug, int, S_IRUGO | S_IWUSR); + +static LIST_HEAD(drv_list); +static LIST_HEAD(dev_list); + +/** + * firmware_driver_register + * function:Registered Device Driver + * @fw_drv:param[in] Driver information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_driver_register(firmware_driver_t *fw_drv) +{ + int ret; + + if (fw_drv == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); + return FIRMWARE_FAILED; + } + + ret = platform_driver_register(fw_drv->drv); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: failed to register firmware upgrade driver \n"); + return FIRMWARE_FAILED; + } + + /* Adds driver information to the driver list */ + list_add(&fw_drv->list, &drv_list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware upgrade driver register sucess \n"); + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_driver_unregister + * function:unregister Device Driver + * @fw_drv:param[in] Driver information + */ +void firmware_driver_unregister(firmware_driver_t *fw_drv) +{ + list_del_init(&fw_drv->list); + platform_driver_unregister(fw_drv->drv); +} + +/* + * firmware_get_device_by_minor + * function: Get device information based on minor + */ +firmware_device_t *firmware_get_device_by_minor(int minor) +{ + firmware_device_t *tmp; + + list_for_each_entry(tmp, &dev_list, list) { + if (tmp->dev.minor == minor) { + return tmp; + } + } + + return NULL; +} + +/** + * firmware_device_register + * function:Registered Driver Device + * @fw_dev: param[in] Driver information + * return value:success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_device_register(firmware_device_t *fw_dev) +{ + int ret; + firmware_device_t *tmp; + + if (fw_dev == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); + return FIRMWARE_FAILED; + } + /* Check whether the device file name already exists in the device linked list */ + list_for_each_entry(tmp, &dev_list, list) { + if (strcmp(tmp->name, fw_dev->name) == 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("devie %s already exists.\n", fw_dev->name); + return FIRMWARE_FAILED; + } + } + + ret = misc_register(&fw_dev->dev); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("register misc error, ret=%d.\n", ret); + return FIRMWARE_FAILED; + } + + /* Adds driver information to the driver list */ + list_add(&fw_dev->list, &dev_list); + + return FIRMWARE_SUCCESS; +} + +/** + * firmware_device_unregister + * function: unregister Driver Device + */ +void firmware_device_unregister(firmware_device_t *fw_dev) +{ + list_del(&fw_dev->list); + misc_deregister(&fw_dev->dev); +} + +static int __init firmware_driver_init(void) +{ + int ret; + + INIT_LIST_HEAD(&drv_list); + INIT_LIST_HEAD(&dev_list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver sysfs init.\n"); + ret = firmware_sysfs_init(); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware driver sysfs init failed.\n"); + return FIRMWARE_FAILED; + } + + return FIRMWARE_SUCCESS; +} + +static void __exit firmware_driver_exit(void) +{ + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver sysfs exit.\n"); + firmware_sysfs_exit(); + INIT_LIST_HEAD(&drv_list); + INIT_LIST_HEAD(&dev_list); + return; +} + +module_init(firmware_driver_init); +module_exit(firmware_driver_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Firmware upgrade driver"); +MODULE_LICENSE("GPL"); +MODULE_VERSION("1.0"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c new file mode 100644 index 000000000000..fef5b43c9db8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c @@ -0,0 +1,495 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int firmware_sysfs_open(struct inode *inode, struct file *file) +{ + firmware_device_t *frm_dev; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Open device.\n"); + frm_dev = firmware_get_device_by_minor(MINOR(inode->i_rdev)); + if (frm_dev == NULL) { + return -ENXIO; + } + file->private_data = frm_dev; + + return FIRMWARE_SUCCESS; +} + +static ssize_t firmware_sysfs_read (struct file *file, char __user *buf, size_t count, + loff_t *offset) +{ + return 0; +} + +static ssize_t firmware_sysfs_write (struct file *file, const char __user *buf, size_t count, + loff_t *offset) +{ + return 0; +} + +static loff_t firmware_sysfs_llseek(struct file *file, loff_t offset, int origin) +{ + return 0; +} + +/* firmware_sysfs_ioctl +* function:ioctl command parsing function +* @file: param[in] device file name +* @cmd: param[in] command +* @arg: param[in] the parameters in the command +* return value: success-FIRMWARE_SUCCESS; fail:other value +*/ +static long firmware_sysfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + void __user *argp; + firmware_device_t *frm_dev; + firmware_sysfs_t *sysfs_info; + int ret; + + /* Get device private data */ + frm_dev = (firmware_device_t *)file->private_data; + sysfs_info = NULL; + if (frm_dev != NULL) { + if (frm_dev->priv != NULL) { + sysfs_info = (firmware_sysfs_t *)frm_dev->priv; + } + } + if (sysfs_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to frm_dev->priv sysfs info.\n"); + return FIRMWARE_FAILED; + } + argp = (void __user *)arg; + + switch (cmd) { + case FIRMWARE_SYSFS_INIT: + /* enable upgrade access */ + ret = firmware_init_dev_loc(sysfs_info); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to init upgrade.(chain = %d)\n", + frm_dev != NULL ? frm_dev->chain : -1); + return FIRMWARE_FAILED; + } + break; + case FIRMWARE_SYSFS_FINISH: + /* disable upgrade access */ + ret = firmware_finish_dev_loc(sysfs_info); + if (ret != FIRMWARE_SUCCESS) { + FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to release upgrade.(chain = %d)\n", + frm_dev != NULL ? frm_dev->chain : -1); + return FIRMWARE_FAILED; + } + break; + case FIRMWARE_SYSFS_SPI_INFO: + /* Get SPI logic device information */ + if (copy_to_user(argp, &sysfs_info->info.spi_logic_info, sizeof(firmware_spi_logic_info_t))) { + return -EFAULT; + } + break; + case FIRMWARE_SYSFS_DEV_FILE_INFO: + /*Get logic device information */ + if (copy_to_user(argp, &sysfs_info->info.dev_file_info, sizeof(firmware_dev_file_info_t))) { + return -EFAULT; + } + break; + case FIRMWARE_SYSFS_MTD_INFO: + /*Get logic device information */ + if (copy_to_user(argp, &sysfs_info->info.mtd_info, sizeof(firmware_mtd_info_t))) { + return -EFAULT; + } + break; + default: + FIRMWARE_DRIVER_DEBUG_ERROR("not find cmd: %d\r\n", cmd); + return -ENOTTY; + } /* End of switch */ + + return FIRMWARE_SUCCESS; +} + +static int firmware_sysfs_release(struct inode *inode, struct file *file) +{ + return 0; +} + +static const struct file_operations sysfs_dev_fops = { + .owner = THIS_MODULE, + .llseek = firmware_sysfs_llseek, + .read = firmware_sysfs_read, + .write = firmware_sysfs_write, + .unlocked_ioctl = firmware_sysfs_ioctl, + .open = firmware_sysfs_open, + .release = firmware_sysfs_release, +}; + +/* Gets the information in the device tree */ +static int of_firmware_upgrade_config_init(struct device *dev, firmware_sysfs_t *sysfs_info) +{ + int ret; + char *name; + int8_t buf[64]; + int i; + firmware_logic_dev_en_t *firmware_logic_dev_en_point; + uint32_t test_base, test_size; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_dev_loc_config_init\r\n"); + if (sysfs_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); + return -1; + } + + mem_clear(sysfs_info, sizeof(firmware_sysfs_t)); + ret = 0; + ret += of_property_read_string(dev->of_node, "type", (const char **)&name); + + ret += of_property_read_u32(dev->of_node, "chain", &sysfs_info->chain); + ret += of_property_read_u32(dev->of_node, "chip_index", &sysfs_info->chip_index); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config error, ret:%d.\n", ret); + return -ENXIO; + } + strncpy(sysfs_info->type, name, sizeof(sysfs_info->type) - 1); + + ret = of_property_read_u32(dev->of_node, "test_base", &test_base); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config test_base, ret:%d.\n", ret); + test_base = 0; + } + + ret = of_property_read_u32(dev->of_node, "test_size", &test_size); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config test_size, ret:%d.\n", ret); + test_size = 0; + } + + if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SPI_LOGIC) == 0) { + ret = of_property_read_string(dev->of_node, "dev_name", (const char **)&name); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config dev_name error, ret:%d.\n", ret); + return -ENXIO; + } + strncpy(sysfs_info->info.spi_logic_info.dev_name, name, FIRMWARE_DEV_NAME_LEN - 1); + + ret = of_property_read_u32(dev->of_node, "flash_base", &sysfs_info->info.spi_logic_info.flash_base); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config flash_base error, ret:%d.\n", ret); + return -ENXIO; + } + + ret = of_property_read_u32(dev->of_node, "ctrl_base", &sysfs_info->info.spi_logic_info.ctrl_base); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config ctrl_base error, ret:%d.\n", ret); + return -ENXIO; + } + sysfs_info->info.spi_logic_info.test_base = test_base; + sysfs_info->info.spi_logic_info.test_size = test_size; + } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SYSFS) == 0) { + ret = of_property_read_string(dev->of_node, "sysfs_name", (const char **)&name); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config sysfs_name error, ret:%d.\n", ret); + return -ENXIO; + } + strncpy(sysfs_info->info.dev_file_info.sysfs_name, name, FIRMWARE_DEV_NAME_LEN - 1); + + ret = of_property_read_u32(dev->of_node, "dev_base", &sysfs_info->info.dev_file_info.dev_base); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_VERBOSE("dts don't config dev_base, dev_base is 0.\n"); + sysfs_info->info.dev_file_info.dev_base = 0; + } + + ret = of_property_read_u32(dev->of_node, "per_len", &sysfs_info->info.dev_file_info.per_len); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_VERBOSE("dts don't config per_len, per_len is 0.\n"); + sysfs_info->info.dev_file_info.per_len = 0; + } + sysfs_info->info.dev_file_info.test_base = test_base; + sysfs_info->info.dev_file_info.test_size = test_size; + } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_MTD) == 0) { + ret = of_property_read_string(dev->of_node, "mtd_name", (const char **)&name); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config mtd_name error, ret:%d.\n", ret); + return -ENXIO; + } + strncpy(sysfs_info->info.mtd_info.mtd_name, name, FIRMWARE_DEV_NAME_LEN - 1); + + ret = of_property_read_u32(dev->of_node, "flash_base", &sysfs_info->info.mtd_info.flash_base); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config flash_base error, ret:%d.\n", ret); + return -ENXIO; + } + sysfs_info->info.mtd_info.test_base = test_base; + sysfs_info->info.mtd_info.test_size = test_size; + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("dts config sysfs type[%s] is not support, ret:%d.\n", sysfs_info->type, ret); + return -ENXIO; + } + + sysfs_info->gpio_en_info_num = 0; + /* Enable through GPIO */ + for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_gpio_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &sysfs_info->gpio_en_info[i].en_gpio); + if(ret != 0) { + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_level_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &sysfs_info->gpio_en_info[i].en_level); + if(ret != 0) { + break; + } + sysfs_info->gpio_en_info_num++; + } + + sysfs_info->logic_dev_en_num = 0; + /* Enable through register */ + for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { + firmware_logic_dev_en_point = &sysfs_info->logic_dev_en_info[i]; + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_dev_%d", i); + ret = 0; + ret += of_property_read_string(dev->of_node, buf, (const char **)&name); + if(ret != 0) { + /* Failure to resolve to EN_LOGIC_DEV means no logical device is enabled. No failure is returned */ + ret = 0; + break; + } + strncpy(firmware_logic_dev_en_point->dev_name, name, FIRMWARE_DEV_NAME_LEN - 1); + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_addr_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->addr); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_addr_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_mask_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->mask); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_mask_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_en_val_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->en_val); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_en_val_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_dis_val_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->dis_val); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_dis_val_%d ret =%d.\n", i, ret); + break; + } + + mem_clear(buf, sizeof(buf)); + snprintf(buf, sizeof(buf) - 1, "en_logic_width_%d", i); + ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->width); + if (ret != 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_width_%d ret =%d.\n", i, ret); + break; + } + + sysfs_info->logic_dev_en_num++; + } + + return ret; +} + +static int firmware_upgrade_config_init(struct device *dev, firmware_sysfs_t *sysfs_info) +{ + int i; + firmware_logic_dev_en_t *firmware_logic_dev_en_point; + firmware_upgrade_device_t *firmware_upgrade_device; + firmware_sysfs_device_t sysfs_upg_device; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_dev_loc_config_init\r\n"); + if (sysfs_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); + return -1; + } + + if (dev->platform_data == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("platform data config error.\n"); + return -1; + } + firmware_upgrade_device = dev->platform_data; + sysfs_upg_device = firmware_upgrade_device->upg_type.sysfs; + + mem_clear(sysfs_info, sizeof(firmware_sysfs_t)); + strncpy(sysfs_info->type, firmware_upgrade_device->type, sizeof(sysfs_info->type) - 1); + sysfs_info->chain = firmware_upgrade_device->chain; + sysfs_info->chip_index = firmware_upgrade_device->chip_index; + + if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SPI_LOGIC) == 0) { + strncpy(sysfs_info->info.spi_logic_info.dev_name, sysfs_upg_device.dev_name, FIRMWARE_DEV_NAME_LEN - 1); + sysfs_info->info.spi_logic_info.flash_base = sysfs_upg_device.flash_base; + sysfs_info->info.spi_logic_info.ctrl_base = sysfs_upg_device.ctrl_base; + sysfs_info->info.spi_logic_info.test_base = sysfs_upg_device.test_base; + sysfs_info->info.spi_logic_info.test_size = sysfs_upg_device.test_size; + } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SYSFS) == 0) { + strncpy(sysfs_info->info.dev_file_info.sysfs_name, sysfs_upg_device.sysfs_name, FIRMWARE_DEV_NAME_LEN - 1); + sysfs_info->info.dev_file_info.dev_base = sysfs_upg_device.dev_base; + sysfs_info->info.dev_file_info.per_len = sysfs_upg_device.per_len; + sysfs_info->info.dev_file_info.test_base = sysfs_upg_device.test_base; + sysfs_info->info.dev_file_info.test_size = sysfs_upg_device.test_size; + } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_MTD) == 0) { + strncpy(sysfs_info->info.mtd_info.mtd_name, sysfs_upg_device.mtd_name, FIRMWARE_DEV_NAME_LEN - 1); + sysfs_info->info.mtd_info.flash_base = sysfs_upg_device.flash_base; + sysfs_info->info.mtd_info.test_base = sysfs_upg_device.test_base; + sysfs_info->info.mtd_info.test_size = sysfs_upg_device.test_size; + } else { + FIRMWARE_DRIVER_DEBUG_ERROR("config sysfs type[%s] is not support.\n", sysfs_info->type); + return -ENXIO; + } + + if (firmware_upgrade_device->en_gpio_num > FIRMWARE_EN_INFO_MAX) { + FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_gpio_num:%u configurations exceeds the maximum limit:%u.\n", + firmware_upgrade_device->en_gpio_num, FIRMWARE_EN_INFO_MAX); + return -ENXIO; + } + sysfs_info->gpio_en_info_num = firmware_upgrade_device->en_gpio_num; + /* Enable through GPIO */ + for (i = 0; i < sysfs_info->gpio_en_info_num; i++) { + sysfs_info->gpio_en_info[i].en_gpio = firmware_upgrade_device->en_gpio[i]; + sysfs_info->gpio_en_info[i].en_level = firmware_upgrade_device->en_level[i]; + } + + if (firmware_upgrade_device->en_logic_num > FIRMWARE_EN_INFO_MAX) { + FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_logic_num:%u configurations exceeds the maximum limit:%u.\n", + firmware_upgrade_device->en_logic_num, FIRMWARE_EN_INFO_MAX); + return -ENXIO; + } + sysfs_info->logic_dev_en_num = firmware_upgrade_device->en_logic_num; + /* Enable through register */ + for (i = 0; i < sysfs_info->logic_dev_en_num; i++) { + firmware_logic_dev_en_point = &sysfs_info->logic_dev_en_info[i]; + strncpy(firmware_logic_dev_en_point->dev_name, firmware_upgrade_device->en_logic_dev[i], FIRMWARE_DEV_NAME_LEN - 1); + firmware_logic_dev_en_point->addr = firmware_upgrade_device->en_logic_addr[i]; + firmware_logic_dev_en_point->mask = firmware_upgrade_device->en_logic_mask[i]; + firmware_logic_dev_en_point->en_val = firmware_upgrade_device->en_logic_en_val[i]; + firmware_logic_dev_en_point->dis_val = firmware_upgrade_device->en_logic_dis_val[i]; + firmware_logic_dev_en_point->width = firmware_upgrade_device->en_logic_width[i]; + } + + return 0; +} + +static int firmware_sysfs_probe(struct platform_device *pdev) +{ + int ret; + firmware_sysfs_t *sysfs_info; + firmware_device_t *frm_dev; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_sysfs_probe\r\n"); + sysfs_info = devm_kzalloc(&pdev->dev, sizeof(firmware_sysfs_t), GFP_KERNEL); + if (sysfs_info == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc device tree.\n"); + return -EPERM; + } + + if (pdev->dev.of_node) { + ret = of_firmware_upgrade_config_init(&pdev->dev, sysfs_info); + } else { + ret = firmware_upgrade_config_init(&pdev->dev, sysfs_info); + } + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("get config init from dts error.\n"); + return -EPERM; + } + + frm_dev = devm_kzalloc(&pdev->dev, sizeof(firmware_device_t), GFP_KERNEL); + if (frm_dev == NULL) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc firmware device.\n"); + return -EPERM; + } + + /* Based on the link number, determine the name of the device file */ + frm_dev->chain = sysfs_info->chain; + snprintf(frm_dev->name, FIRMWARE_NAME_LEN - 1, "firmware_sysfs%d", frm_dev->chain); + strncpy(sysfs_info->devname, frm_dev->name, strlen(frm_dev->name) + 1); + + INIT_LIST_HEAD(&frm_dev->list); + frm_dev->dev.minor = MISC_DYNAMIC_MINOR; + frm_dev->dev.name = frm_dev->name; + frm_dev->dev.fops = &sysfs_dev_fops; + frm_dev->priv = sysfs_info; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("Register sysfs firmware chain:%d, name:%s.\n", frm_dev->chain, frm_dev->name); + + ret = firmware_device_register(frm_dev); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Failed to register firmware device.\n"); + return -EPERM; + } + + platform_set_drvdata(pdev, frm_dev); + return 0; +} + +static int __exit firmware_sysfs_remove(struct platform_device *pdev) +{ + firmware_device_t *frm_dev; + + frm_dev = (firmware_device_t *)platform_get_drvdata(pdev); + firmware_device_unregister(frm_dev); + platform_set_drvdata(pdev, NULL); + + return 0; +} + +static struct of_device_id sysfs_match[] = { + { + .compatible = "firmware_sysfs", + }, + {}, +}; + +static struct platform_driver sysfs_driver = { + .driver = { + .name = "firmware_sysfs", + .owner = THIS_MODULE, + .of_match_table = sysfs_match, + }, + .probe = firmware_sysfs_probe, + .remove = firmware_sysfs_remove, +}; + +static firmware_driver_t fmw_drv_sysfs = { + .name = "firmware_sysfs", + .drv = &sysfs_driver, +}; + +int firmware_sysfs_init(void) +{ + int ret; + + INIT_LIST_HEAD(&fmw_drv_sysfs.list); + FIRMWARE_DRIVER_DEBUG_VERBOSE("sysfs upgrade driver register \n"); + ret = firmware_driver_register(&fmw_drv_sysfs); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("sysfs upgrade driver register failed\n"); + return ret; + } + return 0; +} + +void firmware_sysfs_exit(void) +{ + firmware_driver_unregister(&fmw_drv_sysfs); + INIT_LIST_HEAD(&fmw_drv_sysfs.list); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c new file mode 100644 index 000000000000..8b883006de53 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c @@ -0,0 +1,258 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int firmware_file_read(const char *path, uint32_t addr, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + FIRMWARE_DRIVER_DEBUG_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + pos = (loff_t)addr; + ret = kernel_read(filp, val, size, &pos); + if (ret != size) { + FIRMWARE_DRIVER_DEBUG_ERROR("read kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); + goto exit; + } + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int firmware_file_write(const char *path, uint32_t addr, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + FIRMWARE_DRIVER_DEBUG_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + pos = (loff_t)addr; + ret = kernel_write(filp, (void*)val, size, &pos); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("write kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); + goto exit; + } + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +/* + * firmware_file_do_work + * function: Sets logical register values + * @path:param[in] Logic device descriptor + * @addr:param[in] Logic device address + * @value:param[in] the register value needs to be set + * @mask:param[in] register mask + * @width:param[in] register bit width + * return: 0:success, <0:failed + */ +static int firmware_file_do_work(char *path, uint32_t addr, uint32_t value, uint32_t mask, + int32_t width) +{ + int ret; + uint8_t read_value[4], write_value[4]; + uint8_t tmp_read8, tmp_write8, tmp_mask8; + uint32_t tmp_read32, tmp_write32; + + FIRMWARE_DRIVER_DEBUG_VERBOSE("path=%s, addr=0x%x, value=0x%x mask=0x%x\r\n", path, addr, value, mask); + if ((width > 4) || (width < 0)) { + FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); + return -1; + } + ret = 0; + mem_clear(read_value, sizeof(read_value)); + mem_clear(write_value, sizeof(write_value)); + ret = firmware_file_read(path, addr, read_value, width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware sysfs read.\r\n"); + return -1; + } + + switch (width) { + case 1: + tmp_read8 = read_value[0]; + tmp_mask8 = (uint8_t)(mask) & 0xFF; + tmp_write8 = (uint8_t)value & 0xFF; + write_value[0] = (tmp_read8 & tmp_mask8) | tmp_write8; + FIRMWARE_DRIVER_DEBUG_VERBOSE("1 byte write val[0]:0x%x", write_value[0]); + break; + case 2: + FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); + return -1; + case 4: + memcpy((uint8_t *)&tmp_read32, read_value, 4); + tmp_write32 = (tmp_read32 & mask) | value; + memcpy(write_value, (uint8_t *)&tmp_write32, 4); + FIRMWARE_DRIVER_DEBUG_VERBOSE("4 byte write val[0]:0x%x, val[1]:0x%x, val[2]:0x%x, val[3]:0x%x", + write_value[0], write_value[1], write_value[2], write_value[3]); + break; + default: + FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); + return -1; + } + + FIRMWARE_DRIVER_DEBUG_VERBOSE("write logic dev[%s] addr[0x%x].\r\n", path, addr); + ret = firmware_file_write(path, addr, write_value, width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("firmware_file_write %s addr 0x%x failed, ret=%d.\r\n", path, addr, ret); + return -1; + } + + return 0; +} + +/* + * firmware_upgrade_en + * function:param[in] Upgrade access enabling switch + * @flag:param[in] !0:enable 0:disable + * return: 0:success, <0:failed + */ +static int firmware_upgrade_en(firmware_sysfs_t *sysfs_info, int flag) +{ + int i; + firmware_logic_dev_en_t *firmware_logic_dev_en_info; + int ret, rv; + char *dev_name; + + ret = 0; + FIRMWARE_DRIVER_DEBUG_VERBOSE("%s en switch: gpio en num %d, logic reg en num %d.\n", + flag ? "Open" : "Close", sysfs_info->gpio_en_info_num, sysfs_info->logic_dev_en_num); + for (i = 0; i < sysfs_info->gpio_en_info_num; i++) { + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware sysfs [%d] gpio[%d] en_level[%d]\n", + i, sysfs_info->gpio_en_info[i].en_gpio, sysfs_info->gpio_en_info[i].en_level); + if (flag) { + ret = gpio_request(sysfs_info->gpio_en_info[i].en_gpio, "sysfs_upgrade_gpio_en"); + if (ret) { + FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade EN[%d] GPIO[%d] failed!\n", + i, sysfs_info->gpio_en_info[i].en_gpio); + goto free_gpio; + } + gpio_direction_output(sysfs_info->gpio_en_info[i].en_gpio, sysfs_info->gpio_en_info[i].en_level); + sysfs_info->gpio_en_info[i].flag = 1; + } else { + gpio_set_value(sysfs_info->gpio_en_info[i].en_gpio, !sysfs_info->gpio_en_info[i].en_level); + gpio_free(sysfs_info->gpio_en_info[i].en_gpio); + sysfs_info->gpio_en_info[i].flag = 0; + } + } + + for (i = 0; i < sysfs_info->logic_dev_en_num; i++) { + firmware_logic_dev_en_info = &sysfs_info->logic_dev_en_info[i]; + dev_name = firmware_logic_dev_en_info->dev_name; + FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware sysfs [%d] dev_name[%s] addr[0x%x] mask[0x%x]" + " en_val[0x%x] dis_val[0x%x] width[%d]\n", + i , firmware_logic_dev_en_info->dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->mask, firmware_logic_dev_en_info->en_val, + firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->width); + if (flag) { + ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->en_val, firmware_logic_dev_en_info->mask, + firmware_logic_dev_en_info->width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Open logic register [%d] EN failed, ret %d.\n", i, ret); + goto free_logic_dev; + } else { + firmware_logic_dev_en_info->flag = 1; + } + } else { + rv = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, + firmware_logic_dev_en_info->width); + if (rv < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, rv); + ret = -1; + } + firmware_logic_dev_en_info->flag = 0; + } + } + + return ret; +free_logic_dev: + for (i = 0; i < sysfs_info->logic_dev_en_num; i++) { + firmware_logic_dev_en_info = &sysfs_info->logic_dev_en_info[i]; + dev_name = firmware_logic_dev_en_info->dev_name; + if (firmware_logic_dev_en_info->flag == 1) { + ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, + firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, + firmware_logic_dev_en_info->width); + if (ret < 0) { + FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, ret); + } + firmware_logic_dev_en_info->flag = 0; + } else { + break; + } + } +free_gpio: + for (i = 0; i < sysfs_info->gpio_en_info_num; i++) { + if (sysfs_info->gpio_en_info[i].flag == 1) { + gpio_set_value(sysfs_info->gpio_en_info[i].en_gpio, !sysfs_info->gpio_en_info[i].en_level); + gpio_free(sysfs_info->gpio_en_info[i].en_gpio); + sysfs_info->gpio_en_info[i].flag = 0; + } else { + break; + } + } + + return -1; +} + +/* + * firmware_init_dev_loc + * function: init logic device, enable upgrade access + * return: 0:success, <0:failed + */ +int firmware_init_dev_loc(firmware_sysfs_t *sysfs_info) +{ + int ret; + + ret = firmware_upgrade_en(sysfs_info, 1); + return ret; +} + +/* + * firmware_finish_dev_loc + * function: finish logic device, disable upgrade access + * return: 0:success, <0:failed + */ +int firmware_finish_dev_loc(firmware_sysfs_t *sysfs_info){ + int ret; + ret = firmware_upgrade_en(sysfs_info, 0); + return ret; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h new file mode 100644 index 000000000000..9da2303c7c00 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h @@ -0,0 +1,88 @@ +#ifndef __FIRMWARE_SYSFS_H__ +#define __FIRMWARE_SYSFS_H__ + +#include +#include + +#include + +/* Debug switch level */ +typedef enum { + FIRWMARE_VERBOSE, + FIRWMARE_WARN, + FIRWMARE_ERROR, + FIRWMARE_END, +} firmware_debug_level_t; + +#define FIRMWARE_DRIVER_DEBUG_VERBOSE(fmt, args...) do { \ + if ((g_firmware_driver_debug) & (1U << FIRWMARE_VERBOSE)) { \ + printk(KERN_INFO "[FIRMWARW_DRIVER_SYSFS][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FIRMWARE_DRIVER_DEBUG_ERROR(fmt, args...) do { \ + if ((g_firmware_driver_debug) & (1U << FIRWMARE_ERROR)) { \ + printk(KERN_ERR "[FIRMWARW_DRIVER_SYSFS][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FIRMWARE_NAME_LEN 48 + +#define FIRMWARE_FAILED (-1) +#define FIRMWARE_SUCCESS 0 + +/* ioctl publi command, the same as "firmware_upgrade\include\firmware_app.h" */ +#define FIRMWARE_COMMON_TYPE 'C' +#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ +#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ + +/* firmware sysfs driver ioctl command, the same as "firmware_upgrade\include\firmware_app.h" */ +#define FIRMWARE_SYSFS_TYPE 'S' +#define FIRMWARE_SYSFS_INIT _IOR(FIRMWARE_SYSFS_TYPE, 0, char) /* enable upgrade access */ +#define FIRMWARE_SYSFS_FINISH _IOR(FIRMWARE_SYSFS_TYPE, 1, char) /* disable upgrade access */ +#define FIRMWARE_SYSFS_SPI_INFO _IOR(FIRMWARE_SYSFS_TYPE, 2, char) /* spi flash upgrade */ +#define FIRMWARE_SYSFS_DEV_FILE_INFO _IOR(FIRMWARE_SYSFS_TYPE, 3, char) /* sysfs upgrade */ +#define FIRMWARE_SYSFS_MTD_INFO _IOR(FIRMWARE_SYSFS_TYPE, 4, char) /* sysfs mtd upgrade */ + +#define FIRMWARE_SYSFS_TYPE_SPI_LOGIC "SPI_LOGIC" +#define FIRMWARE_SYSFS_TYPE_SYSFS "SYSFS" +#define FIRMWARE_SYSFS_TYPE_MTD "MTD_DEV" + +typedef struct cmd_info_s { + uint32_t size; + void __user *data; +} cmd_info_t; + +typedef struct firmware_device_s { + struct list_head list; /* device list */ + uint32_t chain; /* chain number */ + char name[FIRMWARE_NAME_LEN]; /* name */ + struct miscdevice dev; /* device */ + void *priv; /* private data */ +} firmware_device_t; + +typedef struct firmware_driver_s { + struct list_head list; /* list */ + char name[FIRMWARE_NAME_LEN]; /* name */ + struct platform_driver *drv; /* driver */ + void *priv; /* private data */ +} firmware_driver_t; + +extern int g_firmware_driver_debug; + +/* Get device information based on minor */ +extern firmware_device_t *firmware_get_device_by_minor(int minor); +/* Registere device */ +extern int firmware_device_register(firmware_device_t *fw_dev); +/* Unregister device */ +extern void firmware_device_unregister(firmware_device_t *fw_dev); +/* Registere driver */ +extern int firmware_driver_register(firmware_driver_t *fw_drv); +/* Unregister driver */ +extern void firmware_driver_unregister(firmware_driver_t *fw_drv); +/* SYSFS upgrade initialized */ +extern int firmware_sysfs_init(void); +/* SYSFS unload function */ +extern void firmware_sysfs_exit(void); + +#endif /* end of __FIRMWARE_SYSFS_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h new file mode 100644 index 000000000000..9c6b970274b1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h @@ -0,0 +1,72 @@ +#ifndef __FIRMWARE_SYSFS_UPGRADE_H__ +#define __FIRMWARE_SYSFS_UPGRADE_H__ + +#define FIRMWARE_DEV_NAME_LEN 64 /* the macro definition needs to same as app space define */ +#define FIRMWARE_TYPE_LEN 10 +#define FIRMWARE_EN_INFO_MAX 16 + +typedef struct firmware_spi_logic_info_s { + char dev_name[FIRMWARE_DEV_NAME_LEN]; /* Logical device name */ + uint32_t flash_base; /* Flash Upgrade Address */ + uint32_t ctrl_base; /* SPI upgrade control register base address */ + uint32_t test_base; /* Test flash address */ + uint32_t test_size; /* Test flash size */ +} firmware_spi_logic_info_t; + +typedef struct firmware_dev_file_info_s { + char sysfs_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ + uint32_t dev_base; /* device upgrade base address */ + uint32_t per_len; /* The length of bytes per operation */ + uint32_t test_base; /* Test flash address */ + uint32_t test_size; /* Test flash size */ +} firmware_dev_file_info_t; + +typedef struct firmware_mtd_info_s { + char mtd_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ + uint32_t flash_base; /* Flash Upgrade Address */ + uint32_t test_base; /* Test flash address */ + uint32_t test_size; /* Test flash size */ +} firmware_mtd_info_t; + +typedef struct firmware_gpio_jtag_en_s { + uint32_t en_gpio; /* GPIO enable pin */ + uint32_t en_level; /* GPIO enable level */ + int flag; /* init flag; 1-init 0-not init */ +} firmware_gpio_jtag_en_t; + +typedef struct firmware_logic_dev_en_s { + char dev_name[FIRMWARE_DEV_NAME_LEN]; /* Logical device name */ + uint32_t addr; /* Enable register address */ + uint32_t mask; /* mask */ + uint32_t en_val; /* Enable value */ + uint32_t dis_val; /* Disable value*/ + uint32_t width; /* width */ + int flag; /* init flag; 1-init 0-not init */ +} firmware_logic_dev_en_t; + +typedef struct firmware_sysfs_s { + char devname[FIRMWARE_DEV_NAME_LEN]; /* Device name */ + char type[FIRMWARE_TYPE_LEN]; /* interface type */ + uint32_t chain; /* chain num */ + uint32_t chip_index; /* chip index */ + union { + firmware_spi_logic_info_t spi_logic_info; /* SPI logic Information */ + firmware_dev_file_info_t dev_file_info; /* device file Information */ + firmware_mtd_info_t mtd_info; /* mtd device Information */ + } info; + uint32_t gpio_en_info_num; /* GPIO Enable Number */ + firmware_gpio_jtag_en_t gpio_en_info[FIRMWARE_EN_INFO_MAX]; /* GPIO Enable Information */ + uint32_t logic_dev_en_num; /* Register Enable Number */ + firmware_logic_dev_en_t logic_dev_en_info[FIRMWARE_EN_INFO_MAX]; /* Register Enable Information */ +} firmware_sysfs_t; + +typedef struct firmware_sysfs_function_s{ + int (*init_dev)(void); /* upgrade initializes the operation */ + int (*finish_dev)(void); /* upgrade completes the operation */ +}firmware_sysfs_function_t; + +extern void firmware_set_sysfs_info(firmware_sysfs_t *sysfs_info); +extern int firmware_init_dev_loc(firmware_sysfs_t *sysfs_info); +extern int firmware_finish_dev_loc(firmware_sysfs_t *sysfs_info); + +#endif /* __FIRMWARE_SYSFS_UPGRADE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h new file mode 100644 index 000000000000..600c69646b1b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h @@ -0,0 +1,57 @@ +#ifndef __FIRMWARE_UPGRADE_H__ +#define __FIRMWARE_UPGRADE_H__ + +#include + +#define TYPE_LEN (10) +#define DEV_NAME_LEN (64) +#define ENABLE_NUM (16) + +#define mem_clear(data, size) memset((data), 0, (size)) + +typedef struct firmware_jtag_device_s { + uint32_t tdi; + uint32_t tck; + uint32_t tms; + uint32_t tdo; + uint32_t tck_delay; +} firmware_jtag_device_t; + +typedef struct firmware_sysfs_device_s { + uint32_t test_base; + uint32_t test_size; + char dev_name[DEV_NAME_LEN]; + uint32_t flash_base; + uint32_t ctrl_base; + char sysfs_name[DEV_NAME_LEN]; + uint32_t dev_base; + uint32_t per_len; + char mtd_name[DEV_NAME_LEN]; +} firmware_sysfs_device_t; + +typedef struct firmware_upgrade_device_s { + char type[TYPE_LEN]; + uint32_t chain; + uint32_t chip_index; + + uint32_t en_gpio_num; /* the number of en_gpio */ + uint32_t en_gpio[ENABLE_NUM]; + uint32_t en_level[ENABLE_NUM]; + + uint32_t en_logic_num; /* the number of en_logic */ + char en_logic_dev[ENABLE_NUM][DEV_NAME_LEN]; + uint32_t en_logic_addr[ENABLE_NUM]; + uint32_t en_logic_mask[ENABLE_NUM]; + uint32_t en_logic_en_val[ENABLE_NUM]; + uint32_t en_logic_dis_val[ENABLE_NUM]; + uint32_t en_logic_width[ENABLE_NUM]; + + int device_flag; + union { + firmware_jtag_device_t jtag; + firmware_sysfs_device_t sysfs; + } upg_type; + +} firmware_upgrade_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile new file mode 100644 index 000000000000..176d44d2abd9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile @@ -0,0 +1,33 @@ +include $(top_srcdir)/Rules.mk + +#OBJ = firmware_app.o debug.o hardware.o ispvm_ui.o ivm_core.o crc32.o +PWD = $(shell pwd) +SRC := +SRC += $(shell find $(PWD) -name '*.c') + +OBJ := $(SRC:%.c=%.o) +LIB += $(BUILD_CFALGS) $(BUILD_LDFLAGS) -lpthread -lreadline -lncurses +INCLUDE = -Iinclude +INCLUDE+= -Wall +APP = firmware_upgrade +ELF_FILE = $(APP) +MAP_FILE = $(APP).map.sym + +.PHONY: build +build:$(OBJ) + $(CC) $^ -o $(ELF_FILE) $(LINKFLAGS) $(LIB) + $(NM) $(ELF_FILE) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' \ + | sort > $(MAP_FILE) + cp -p $(ELF_FILE) $(common_out_put_dir) + +%.o:%.c + $(CC) -c $(CFLAGS) $(INCLUDE) $< -o $@ + +.PHONY: install +install: + echo "firmware_upgrade install success." + cp -p $(ELF_FILE) $(common_out_put_dir) + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c new file mode 100644 index 000000000000..5b60b40ad1ba --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c @@ -0,0 +1,216 @@ +/* + * This file is derived from crc32.c from the zlib-1.1.3 distribution + * by Jean-loup Gailly and Mark Adler. + */ + +/* crc32.c -- compute the CRC-32 of a data stream + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ +/* xxxx: by chihl for compile error */ +#if 1 + +#ifndef FAR +#define FAR +#endif + +typedef unsigned char Byte; /* 8 bits */ +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +typedef Byte FAR Bytef; +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifndef OF /* function prototypes */ +#ifdef STDC +#define OF(args) args +#else +#define OF(args) () +#endif +#endif + +#endif + +#define local static +#define ZEXPORT /* empty */ +unsigned long crc32 (unsigned long, const unsigned char *, unsigned int); + +#define DYNAMIC_CRC_TABLE + +#ifdef DYNAMIC_CRC_TABLE + +local int crc_table_empty = 1; +local uLongf crc_table[256]; +local void make_crc_table OF((void)); + +/* + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. +*/ +local void make_crc_table() +{ + uLong c; + int n, k; + uLong poly; /* polynomial exclusive-or pattern */ + /* terms of polynomial defining this crc (except x^32): */ + static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + + /* make exclusive-or pattern from polynomial (0xedb88320L) */ + poly = 0L; + for (n = 0; n < sizeof(p)/sizeof(Byte); n++) + poly |= 1L << (31 - p[n]); + + for (n = 0; n < 256; n++) + { + c = (uLong)n; + for (k = 0; k < 8; k++) + c = c & 1 ? poly ^ (c >> 1) : c >> 1; + crc_table[n] = c; + } + crc_table_empty = 0; +} +#else +/* ======================================================================== + * Table of CRC-32's of all single-byte values (made by make_crc_table) + */ +local const uLongf crc_table[256] = { + 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, + 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, + 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, + 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL, + 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L, + 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L, + 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, + 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL, + 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L, + 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL, + 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, + 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L, + 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L, + 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL, + 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, + 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L, + 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL, + 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L, + 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, + 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L, + 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL, + 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, + 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, + 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, + 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, + 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L, + 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, + 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, + 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, + 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, + 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, + 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L, + 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L, + 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL, + 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL, + 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L, + 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL, + 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L, + 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, + 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L, + 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL, + 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L, + 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, + 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL, + 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L, + 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L, + 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, + 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L, + 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L, + 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L, + 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, + 0x2d02ef8dL +}; +#endif + +#if 0 +/* ========================================================================= + * This function can be used by asm versions of crc32() + */ +const uLongf * ZEXPORT get_crc_table() +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) make_crc_table(); +#endif + return (const uLongf *)crc_table; +} +#endif + +/* ========================================================================= */ +#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8); +#define DO2(buf) DO1(buf); DO1(buf); +#define DO4(buf) DO2(buf); DO2(buf); +#define DO8(buf) DO4(buf); DO4(buf); + +/* ========================================================================= */ +uLong ZEXPORT crc32(uLong crc, const Bytef *buf, uInt len) +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif + crc = crc ^ 0xffffffffL; + while (len >= 8) + { + DO8(buf); + len -= 8; + } + if (len) do { + DO1(buf); + } while (--len); + return crc ^ 0xffffffffL; +} + +#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) + +/* No ones complement version. JFFS2 (and other things ?) + * don't use ones compliment in their CRC calculations. + */ +uLong ZEXPORT crc32_no_comp(uLong crc, const Bytef *buf, uInt len) +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif + while (len >= 8) + { + DO8(buf); + len -= 8; + } + if (len) do { + DO1(buf); + } while (--len); + + return crc; +} + +#endif /* CFG_CMD_JFFS2 */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c new file mode 100644 index 000000000000..dc1b1ccfc70a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c @@ -0,0 +1,60 @@ +/* + * debug.c + * firmware upgrade debug switch control + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int is_debug_on = DEBUG_IGNORE; + +/* + * firmware_upgrade_debug + * function: Debug switch + * Parses the file "/var/tmp/.firmware_upgrade_debug" and returns the corresponding debug level + * return:off--DEBUG_OFF, app debug on---DEBUG_APP_ON, kernel debug on--DEBUG_KERN_ON, + * all debug on--DEBUG_ALL_ON, other--DEBUG_IGNORE + */ +int firmware_upgrade_debug(void) +{ + int size; + FILE *fp; + char debug_info[DEBUG_INFO_LEN]; + + fp = fopen(DEBUG_FILE, "r"); + if (fp == NULL) { + return DEBUG_IGNORE; + } + + mem_clear(debug_info, DEBUG_INFO_LEN); + size = fread(debug_info, DEBUG_INFO_LEN - 1, 1, fp); + if (size < 0) { + fclose(fp); + return DEBUG_IGNORE; + } + + if (strncmp(debug_info, DEBUG_ON_INFO, 1) == 0) { + fclose(fp); + return DEBUG_APP_ON; + } + + if (strncmp(debug_info, DEBUG_ON_ALL, 1) == 0) { + fclose(fp); + return DEBUG_ALL_ON; + } + + if (strncmp(debug_info, DEBUG_OFF_INFO, 1) == 0) { + fclose(fp); + return DEBUG_OFF; + } + + fclose(fp); + return DEBUG_IGNORE; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c new file mode 100644 index 000000000000..ecdc37ef350f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c @@ -0,0 +1,985 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int header_offset; + +static firmware_file_name_t firmware_file_str[] = { + {"VME", FIRMWARE_VME}, + {"ISC", FIRMWARE_ISC}, + {"JBI", FIRMWARE_JBI}, + {"SPI-LOGIC-DEV", FIRMWARE_SPI_LOGIC_DEV}, + {"SYSFS", FIRMWARE_SYSFS_DEV}, + {"MTD", FIRMWARE_MTD}, +}; + +/** + * firmware_error_type + * function:set error code + * @action: param[in] The stage where the error occurs + * @info: param[in] Upgrade file information + * return value: error code + */ +int firmware_error_type(int action, name_info_t *info) +{ + if (info == NULL) { + return ERR_FW_UPGRADE; + } + + if((info->type <= FIRMWARE_UNDEF_TYPE) || (info->type > FIRMWARE_OTHER)) { + return ERR_FW_UPGRADE; + } + + if (info->type == FIRMWARE_CPLD) { + switch (action) { + case FIRMWARE_ACTION_CHECK: + return ERR_FW_CHECK_CPLD_UPGRADE; + case FIRMWARE_ACTION_MATCH: + return ERR_FW_MATCH_CPLD_UPGRADE; + case FIRMWARE_ACTION_VERCHECK: + return ERR_FW_SAMEVER_CPLD_UPGRADE; + case FIRMWARE_ACTION_UPGRADE: + return ERR_FW_DO_CPLD_UPGRADE; + case FIRMWARE_ACTION_SUPPORT: + return ERR_FW_DO_UPGRADE_NOT_SUPPORT; + default: + return ERR_FW_UPGRADE; + } + } else if (info->type == FIRMWARE_FPGA) { + switch (action) { + case FIRMWARE_ACTION_CHECK: + return ERR_FW_CHECK_FPGA_UPGRADE; + case FIRMWARE_ACTION_MATCH: + return ERR_FW_MATCH_FPGA_UPGRADE; + case FIRMWARE_ACTION_VERCHECK: + return ERR_FW_SAMEVER_FPGA_UPGRADE; + case FIRMWARE_ACTION_UPGRADE: + return ERR_FW_DO_FPGA_UPGRADE; + case FIRMWARE_ACTION_SUPPORT: + return ERR_FW_DO_UPGRADE_NOT_SUPPORT; + default: + return ERR_FW_UPGRADE; + } + } else { + switch (action) { + case FIRMWARE_ACTION_CHECK: + return ERR_FW_CHECK_UPGRADE; + case FIRMWARE_ACTION_MATCH: + return ERR_FW_MATCH_UPGRADE; + case FIRMWARE_ACTION_VERCHECK: + return ERR_FW_SAMEVER_UPGRADE; + case FIRMWARE_ACTION_UPGRADE: + return ERR_FW_DO_UPGRADE; + case FIRMWARE_ACTION_SUPPORT: + return ERR_FW_DO_UPGRADE_NOT_SUPPORT; + default: + return ERR_FW_UPGRADE; + } + } + +} + +/* + * firmware_check_file_info + * function:Check the file information to determine that the file is available for use on the device + * @info: param[in] Upgrade file information + * @main_type : param[in] main type + * @sub_type : param[in] sub type + * @slot : param[in] 0--main, sub slot starts at 1 + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +static int firmware_check_file_info(name_info_t *info, int main_type, int sub_type, int slot) +{ + int i; + + dbg_print(is_debug_on, "Check file info.\n"); + /* Check the mainboard type */ + for (i = 0; i < MAX_DEV_NUM; i++) { + if (main_type == info->card_type[i]) { + dbg_print(is_debug_on, "main type is 0x%x \n", main_type); + break; + } + } + if (i == MAX_DEV_NUM) { + dbg_print(is_debug_on, "Error: The main type[0x%x] is not matched \n", main_type); + return firmware_error_type(FIRMWARE_ACTION_MATCH, info); + } + + /* Check the sub board type, if firwmare upgrade sub board, then sub_type must be 0 */ + for (i = 0; i < MAX_DEV_NUM; i++) { + if (sub_type == info->sub_type[i]) { + dbg_print(is_debug_on, "sub type is 0x%x \n", sub_type); + break; + } + } + if (i == MAX_DEV_NUM) { + dbg_print(is_debug_on, "Error: The sub type[0x%x] is not matched \n", sub_type); + return firmware_error_type(FIRMWARE_ACTION_MATCH, info); + } + + /* if firwmare upgrade main board, then sub_type must be 0 and slot must be 0 + * if firwmare upgrade sub board, then sub_type must not be 0 and slot must not be 0 */ + if (((sub_type != 0) && (slot < 1)) || ((sub_type == 0) && (slot != 0))) { + dbg_print(is_debug_on, "Error: The sub type[0x%x] is not match slot %d error.\n", sub_type, slot); + return firmware_error_type(FIRMWARE_ACTION_MATCH, info); + } + + dbg_print(is_debug_on, "Success check file info.\n"); + + return FIRMWARE_SUCCESS; +} + +/* + * firmware_get_dev_file_name + * function:Gets the name of the device file + * @info: param[in] Upgrade file information + * @len: param[in] Device file name length + * @file_name: param[out] Device file name + */ +static int firmware_get_dev_file_name(name_info_t *info, char *file_name, int len) +{ + int ret; + + ret = FIRMWARE_SUCCESS; + switch(info->file_type) { + case FIRMWARE_VME: + snprintf(file_name, len, "/dev/firmware_cpld_ispvme%d", info->chain); + break; + case FIRMWARE_ISC: + case FIRMWARE_JBI: + snprintf(file_name, len, "/dev/firmware_cpld%d", info->chain); + break; + case FIRMWARE_SPI_LOGIC_DEV: + case FIRMWARE_SYSFS_DEV: + case FIRMWARE_MTD: + snprintf(file_name, len, "/dev/firmware_sysfs%d", info->chain); + break; + default: + ret = FIRMWARE_FAILED; + break; + } + + return ret; + } + +/** + * firmware_check_chip_verison + * function: Check chip version + * @fd: param[in] Device file descriptor + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +int firmware_check_chip_verison(int fd, name_info_t *info) +{ + int ret; + cmd_info_t cmd_info; + char version[FIRMWARE_NAME_LEN + 1]; + + dbg_print(is_debug_on, "Check chip version.\n"); + mem_clear(version, FIRMWARE_NAME_LEN); + cmd_info.size = FIRMWARE_NAME_LEN; + cmd_info.data = (void *) version; + + /* Ignore version checking */ + if (strncmp("v", info->version, 1) == 0) { + dbg_print(is_debug_on, "Skip check chip version.\n"); + return FIRMWARE_SUCCESS; + } + + /* Get the program version from the device file */ + ret = ioctl(fd, FIRMWARE_GET_VERSION, &cmd_info); + if (ret < 0) { + dbg_print(is_debug_on, "Error: Failed to get version(chain %d, version %s).\n", + info->chain, info->version); + return firmware_error_type(FIRMWARE_ACTION_CHECK, NULL); + } + dbg_print(is_debug_on, "Chip verion: %s, file chip verion: %s.\n", version, info->version); + + /* The device version is the same and does not upgrade */ + if (strcmp(version, info->version) == 0) { + dbg_print(is_debug_on, "the file program version is same as the firmware version %s \n", + info->version); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + dbg_print(is_debug_on, "Check version pass.\n"); + + return FIRMWARE_SUCCESS; +} + +/* + * firmware_get_file_size + * function: Gets the upgrade file size + * @file_name: param[in] Upgrade file name + * @size: param[out] Upgrade file size + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int firmware_get_file_size(char *file_name, uint32_t *size) +{ + int ret; + struct stat buf; + + ret = stat(file_name, &buf); + if (ret < 0) { + return FIRMWARE_FAILED; + } + + if (buf.st_size < 0 || buf.st_size - header_offset < 0) { + return FIRMWARE_FAILED; + } + /* Remove the upgrade file header information to actually upgrade the content size */ + *size = buf.st_size - header_offset; + + return FIRMWARE_SUCCESS; +} + +/* + * firmware_get_file_info + * function: Gets the contents of the upgrade file + * @file_name: param[in] Upgrade file name + * @size: param[in] Upgrade file size + * @buf: param[out] Upgrade the file content + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int firmware_get_file_info(char *file_name, uint8_t *buf, uint32_t size) +{ + FILE *fp; + int len; + int ret; + + fp = fopen(file_name, "r"); + if (fp == NULL) { + return FIRMWARE_FAILED; + } + /* Removes the contents of the upgrade file header information */ + ret = fseek(fp, header_offset, SEEK_SET); + if (ret < 0) { + fclose(fp); + return FIRMWARE_FAILED; + } + + len = fread(buf, size, 1, fp); + if (len < 0) { + fclose(fp); + return FIRMWARE_FAILED; + } + fclose(fp); + + return FIRMWARE_SUCCESS; +} + +/* +* firmware_upgrade +* function: firmware upgrade +* @file_name: param[in] Upgrade file name +* @info: param[in] Upgrade file information +* return value : success--FIRMWARE_SUCCESS, other fail return error code +*/ +static int firmware_upgrade(char *file_name, name_info_t *info) +{ + int ret; + int fd; + uint32_t upg_size; + uint8_t *upg_buf; + char dev_file_name[FIRMWARE_NAME_LEN]; + unsigned long crc; + + dbg_print(is_debug_on, "Upgrade firmware: %s.\n", file_name); + mem_clear(dev_file_name, FIRMWARE_NAME_LEN); + ret = firmware_get_dev_file_name(info, dev_file_name, FIRMWARE_NAME_LEN - 1); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to get dev file name.\n"); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + fd = open(dev_file_name, O_RDWR); + if (fd < 0) { + dbg_print(is_debug_on, "Error: Failed to open %s.\n", dev_file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + +#if 0 + /* check chip name */ + ret = firmware_check_chip_name(fd, info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to check chip name: %s.\n", dev_file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } +#endif + + /* Check chip version */ + ret = firmware_check_chip_verison(fd, info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to check chip version: %s.\n", dev_file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + /* Gets the upgrade file size */ + ret = firmware_get_file_size(file_name, &upg_size); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to get file size: %s.\n", file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + if (upg_size == 0) { + dbg_print(is_debug_on, "Error: The upgrade file is empty \n"); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + upg_buf = (uint8_t *) malloc(upg_size + 1); + if (upg_buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for upgrade file info: %s.\n", + dev_file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + /* Gets the contents of the upgrade file */ + mem_clear(upg_buf, upg_size + 1); + ret = firmware_get_file_info(file_name, upg_buf, upg_size); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to read file info: %s.\n", file_name); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + /* file crc32 check */ + crc = crc32(0, (const unsigned char *)upg_buf, (unsigned int)upg_size); + if (crc != info->crc32) { + dbg_print(is_debug_on, "Error: Failed to check file crc: %s.\n", file_name); + dbg_print(is_debug_on, "the crc value is : %#08x.\n", (unsigned int)crc); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + dbg_print(is_debug_on, "Start upgrading firmware, wait...\n"); + + /* Start firmware upgrade */ + switch (info->file_type) { + case FIRMWARE_VME: + dbg_print(is_debug_on, "start to ispvme upgrade: %s.\n", file_name); + ret = firmware_upgrade_ispvme(fd, file_name, info); + break; + case FIRMWARE_ISC: + case FIRMWARE_JBI: + dbg_print(is_debug_on, "start to upgrade: %s.\n", file_name); + ret = firmware_upgrade_jtag(fd, upg_buf, upg_size, info); + break; + case FIRMWARE_SPI_LOGIC_DEV: + dbg_print(is_debug_on, "start to spi logic dev upgrade: %s.\n", file_name); + ret = firmware_upgrade_spi_logic_dev(fd, upg_buf, upg_size, info); + break; + case FIRMWARE_SYSFS_DEV: + dbg_print(is_debug_on, "start to sysfs upgrade: %s.\n", file_name); + ret = firmware_upgrade_sysfs(fd, upg_buf, upg_size, info); + break; + case FIRMWARE_MTD: + dbg_print(is_debug_on, "start to mtd device upgrade: %s.\n", file_name); + ret = firmware_upgrade_mtd(fd, upg_buf, upg_size, info); + break; + default: + dbg_print(is_debug_on, "Error: file type is not support: %s.\n", file_name); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); + } + + dbg_print(is_debug_on, "Completed.\n"); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to upgrade: %s.\n", dev_file_name); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); + } + + free(upg_buf); + close(fd); + + return FIRMWARE_SUCCESS; +} + +/* +* firmware_upgrade_test +* function: firmware upgrade test +* @file_name: param[in] Upgrade file name +* @info: param[in] Upgrade file information +* return value : success--FIRMWARE_SUCCESS, other fail return error code +*/ +static int firmware_upgrade_test(char *file_name, name_info_t *info) +{ + int ret; + int fd; + uint32_t upg_size; + uint8_t *upg_buf; + char dev_file_name[FIRMWARE_NAME_LEN]; + unsigned long crc; + + dbg_print(is_debug_on, "Upgrade firmware test: %s.\n", file_name); + mem_clear(dev_file_name, FIRMWARE_NAME_LEN); + ret = firmware_get_dev_file_name(info, dev_file_name, FIRMWARE_NAME_LEN - 1); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to get dev file name.\n"); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + fd = open(dev_file_name, O_RDWR); + if (fd < 0) { + dbg_print(is_debug_on, "Error: Failed to open %s.\n", dev_file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + +#if 0 + /* check chip name */ + ret = firmware_check_chip_name(fd, info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to check chip name: %s.\n", dev_file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } +#endif + + /* Check chip version */ + ret = firmware_check_chip_verison(fd, info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to check chip version: %s.\n", dev_file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + /* Gets the upgrade file size */ + ret = firmware_get_file_size(file_name, &upg_size); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to get file size: %s.\n", file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + upg_buf = (uint8_t *) malloc(upg_size + 1); + if (upg_buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for upgrade file info: %s.\n", + dev_file_name); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + /* Gets the contents of the upgrade file */ + mem_clear(upg_buf, upg_size + 1); + ret = firmware_get_file_info(file_name, upg_buf, upg_size); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to read file info: %s.\n", file_name); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + /* file crc32 check */ + crc = crc32(0, (const unsigned char *)upg_buf, (unsigned int)upg_size); + if (crc != info->crc32) { + dbg_print(is_debug_on, "Error: Failed to check file crc: %s.\n", file_name); + dbg_print(is_debug_on, "the crc value is : %#08x.\n", (unsigned int)crc); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + dbg_print(is_debug_on, "Start upgrading firmware test, wait...\n"); + + /* Start firmware upgrade */ + switch (info->file_type) { + case FIRMWARE_VME: + dbg_print(is_debug_on, "start to ispvme upgrade test: %s.\n", file_name); + /* WME upgrade link testing is the same as upgrading, using vme test file. */ + ret = firmware_upgrade_ispvme(fd, file_name, info); + break; + case FIRMWARE_ISC: + case FIRMWARE_JBI: + dbg_print(is_debug_on, "start to upgrade test: %s.\n", file_name); + ret = firmware_upgrade_jtag_test(fd, upg_buf, upg_size, info); + break; + case FIRMWARE_SPI_LOGIC_DEV: + dbg_print(is_debug_on, "start to spi logic dev upgrade test: %s.\n", file_name); + ret = firmware_upgrade_spi_logic_dev_test(fd,info); + break; + case FIRMWARE_SYSFS_DEV: + dbg_print(is_debug_on, "start to sysfs upgrade test: %s.\n", file_name); + ret = firmware_upgrade_sysfs_test(fd, info); + break; + case FIRMWARE_MTD: + dbg_print(is_debug_on, "start to mtd device upgrade test: %s.\n", file_name); + ret = firmware_upgrade_mtd_test(fd, info); + break; + default: + dbg_print(is_debug_on, "Error: test file type is not support: %s.\n", file_name); + free(upg_buf); + close(fd); + return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); + } + + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to upgrade test: %s ret=%d.\n", dev_file_name, ret); + free(upg_buf); + close(fd); + if (ret == FIRMWARE_NOT_SUPPORT) { + return firmware_error_type(FIRMWARE_ACTION_SUPPORT, info); + } else { + return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); + } + } + + free(upg_buf); + close(fd); + + return FIRMWARE_SUCCESS; +} + +/* + * firmware_upgrade_file_type_map + * function:Gets the corresponding upgrade file type from the upgrade file type list + * @value : param[in] file type name + * return value : file type, firmware_file_type_t + */ +static firmware_file_type_t firmware_upgrade_file_type_map(char *type_str) +{ + int type_num; + int i; + + type_num = (sizeof(firmware_file_str) /sizeof(firmware_file_str[0])); + for (i = 0; i < type_num; i++) { + if (!strncmp(firmware_file_str[i].firmware_file_name_str, type_str, + strlen(firmware_file_str[i].firmware_file_name_str))) { + return firmware_file_str[i].firmware_file_type; + } + } + + dbg_print(is_debug_on, "firmware file type unknown\n"); + return FIRMWARE_NONE; +} + +/* + * firmware_upgrade_parse_kv + * function:Parses the header information of the upgrade file based on the key and value + * @key: param[in] key + * @value : param[in] value + * @info : param[out] Upgrade file information + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +static int firmware_upgrade_parse_kv(const char *key, const char *value, name_info_t *info) +{ + int i; + if (key == NULL || value == NULL) { + dbg_print(is_debug_on, "Error: failed to get ther key or value.\n"); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } else if (strcmp(key, FILEHEADER_DEVTYPE) == 0) { + /* main board type */ + for (i = 0; i < MAX_DEV_NUM && info->card_type[i]; i++); + if (i == MAX_DEV_NUM) { + dbg_print(is_debug_on, "Error: card type is full for %s. \n", value); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + info->card_type[i] = strtoul(value, NULL, 0); + } else if (strcmp(key, FILEHEADER_SUBTYPE) == 0) { + /* sub board type */ + for (i = 0; i < MAX_DEV_NUM && info->sub_type[i]; i++); + if (i == MAX_DEV_NUM) { + dbg_print(is_debug_on, "Error: sub type is full for %s. \n", value); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + info->sub_type[i] = strtoul(value, NULL, 0); + } else if (strcmp(key, FILEHEADER_TYPE) == 0) { + /* Device type */ + if (strcmp(value, FIRMWARE_CPLD_NAME) == 0) { + info->type = FIRMWARE_CPLD; + } else if (strcmp(value, FIRMWARE_FPGA_NAME) == 0) { + info->type = FIRMWARE_FPGA; + } else { + info->type = FIRMWARE_OTHER; + } + } else if (strcmp(key, FILEHEADER_CHAIN) == 0) { + /* link num */ + info->chain = strtoul(value, NULL, 10); + } else if (strcmp(key, FILEHEADER_CHIPNAME) == 0) { + /* chip name */ + if (strlen(value) >= FIRMWARE_NAME_LEN) { + dbg_print(is_debug_on, "Error: '%s' is too long for a chipname.\n", value); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + mem_clear(info->chip_name, sizeof(info->chip_name)); + snprintf(info->chip_name, sizeof(info->chip_name) - 1, "%s", value); + } else if (strcmp(key, FILEHEADER_VERSION) == 0) { + /* version */ + if (strlen(value) >= FIRMWARE_NAME_LEN) { + dbg_print(is_debug_on, "Error: '%s' is too long for a version.\n", value); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + mem_clear(info->version, sizeof(info->version)); + snprintf(info->version, sizeof(info->version) - 1, "%s", value); + } else if (strcmp(key, FILEHEADER_FILETYPE) == 0) { + /* file type */ + info->file_type = firmware_upgrade_file_type_map((char *)value); + } else if (strcmp(key, FILEHEADER_CRC) == 0) { + /* file crc32 */ + info->crc32 = strtoul(value, NULL, 0); + } else { + dbg_print(is_debug_on, "Warning: key '%s' is unknown. Continue anyway.\n", key); + return FIRMWARE_SUCCESS; + } + dbg_print(is_debug_on, "key %s is matched.\n", key); + return FIRMWARE_SUCCESS; + } + +/* + * firmware_upgrade_parse_check + * function:Check the results of header parsing + * @file_name: Upgrade file name + * @info : Upgrade file information + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +static int firmware_upgrade_parse_check(char *file_name, name_info_t *info) +{ + int i; + if (info->card_type[0] == 0) { + dbg_print(is_debug_on, "Error: %s card type is missing.\n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + if ((info->type <= FIRMWARE_UNDEF_TYPE) || (info->type > FIRMWARE_OTHER)) { + dbg_print(is_debug_on, "Error: %s type is unknown.\n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + if (strlen(info->chip_name) == 0) { + dbg_print(is_debug_on, "Error: %s chip_name is empty.\n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + if (strlen(info->version) == 0) { + dbg_print(is_debug_on, "Error: %s version is empty.\n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + if ((info->file_type <= FIRMWARE_UNDEF_FILE_TYPE) || (info->file_type > FIRMWARE_NONE)) { + dbg_print(is_debug_on, "Error: %s file type is unknown.\n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + dbg_print(is_debug_on, "The file header parse:(%s) \n" , file_name); + dbg_print(is_debug_on, " card type: "); + for (i = 0; i < MAX_DEV_NUM && info->card_type[i]; i++){ + dbg_print(is_debug_on, "0x%x, ", info->card_type[i]); + } + dbg_print(is_debug_on, "\n" + " sub type : "); + for (i = 0; i < MAX_DEV_NUM && info->sub_type[i]; i++){ + dbg_print(is_debug_on, "0x%x, ", info->sub_type[i]); + } + dbg_print(is_debug_on, "\n" + " type : %d, \n" + " chain : %d, \n" + " chip name: %s \n" + " version : %s \n" + " file type: %d \n" + " the crc32 value: %#x \n", + info->type, info->chain, info->chip_name, info->version, info->file_type, info->crc32); + return FIRMWARE_SUCCESS; +} + +/* + * firmware_upgrade_read_header + * function:Read the header information of the upgrade file + * @file_name: param[in] Upgrade file name + * @info : param[out] Upgrade file information + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +static int firmware_upgrade_read_header( char *file_name, name_info_t *info) +{ + FILE *fp; + char *charp; + char *charn; + char header_buffer[MAX_HEADER_SIZE]; + char header_key[MAX_HEADER_KV_SIZE]; + char header_var[MAX_HEADER_KV_SIZE]; + int ret; + int len; + + fp = fopen(file_name, "r"); + if (fp == NULL) { + dbg_print(is_debug_on, "Error: Failed to open file: %s. \n", file_name); + perror("fopen"); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + mem_clear(header_buffer, sizeof(header_buffer)); + len = fread(header_buffer, MAX_HEADER_SIZE - 1, 1, fp); + fclose(fp); + if (len < 0) { + dbg_print(is_debug_on, "Error: Failed to read header : %s. \n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + header_buffer[MAX_HEADER_SIZE - 1] = 0; + + charp = strstr(header_buffer, "FILEHEADER(\n"); + if (charp == NULL) { + dbg_print(is_debug_on, "Error: The file format %s is wrong. \n", file_name); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + charp += strlen("FILEHEADER(\n"); + + dbg_print(is_debug_on, "File parse start.\n"); + mem_clear(info, sizeof(name_info_t)); + ret = 0; + charn = charp; + mem_clear(header_key, sizeof(header_key)); + while (*charn != ')') { + charn = strpbrk(charp, "=,)\n"); + if (charn == NULL) { + dbg_print(is_debug_on, "Error: The parser can't find mark.\n"); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + if (charn - charp >= MAX_HEADER_KV_SIZE) { + dbg_print(is_debug_on, "Error: The parser find a overflow mark.\n"); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + switch (*charn) { + case '=': + mem_clear(header_key, sizeof(header_key)); + memcpy(header_key, charp, charn - charp); + break; + case '\n': + case ',': + mem_clear(header_var, sizeof(header_var)); + memcpy(header_var, charp, charn - charp); + dbg_print(is_debug_on, "Parser: %s = %s .\n", header_key, header_var); + firmware_upgrade_parse_kv(header_key, header_var, info); + break; + case ')': + break; + default: + dbg_print(is_debug_on, "Error: The parser get unexpected mark '%c(0x%02X)'.\n", *charn, *charn); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + charp = (charn + 1); + } + + ret = firmware_upgrade_parse_check(file_name, info); + if (ret != FIRMWARE_SUCCESS) { + return FIRMWARE_FAILED; + } + + header_offset = charp + 1 - header_buffer; /* charp at '\n' */ + dbg_print(is_debug_on,"the header offset is %d \n", header_offset); + return FIRMWARE_SUCCESS; +} + +/* + * firmware_upgrade_one_file + * function: upgrade file + * @file_name: Upgrade file name + * @main_type: main board type + * @sub_type: sub board type + * @slot: 0--main, sub slot starts at 1 + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +static int firmware_upgrade_one_file(char *file_name, int main_type, int sub_type, int slot) +{ + int ret; + name_info_t info; + + if ((slot < 0) || (file_name == NULL)) { + dbg_print(is_debug_on, "Failed firmware_upgrade_one_file parameter err.\n"); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "firmware upgrade %s 0x%x 0x%x %d\n", file_name, main_type, sub_type, slot); + /* Read the header information of the upgrade file */ + ret = firmware_upgrade_read_header(file_name, &info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Failed to get file header: %s\n", file_name); + return ret; + } + + /* Check the file information to determine that the file is available for use on the device */ + ret = firmware_check_file_info(&info, main_type, sub_type, slot); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "File is not match with the device: %s.\n", file_name); + return ret; + } + + /* The link number corresponding to the upgrade file is calculated based on the slot number. + 16 links are reserved for each slot. main boade slot is 0. */ + info.chain += slot * FIRMWARE_SLOT_MAX_NUM; + ret = firmware_upgrade(file_name, &info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Failed to upgrade: %s.\n", file_name); + return ret; + } + + return FIRMWARE_SUCCESS; +} + +/* + * firmware_upgrade_file_test + * function: upgrade file + * @file_name: Upgrade file name + * @main_type: main board type + * @sub_type: sub board type + * @slot: 0--main, sub slot starts at 1 + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +static int firmware_upgrade_file_test(char *file_name, int main_type, int sub_type, int slot) +{ + int ret; + name_info_t info; + + if ((slot < 0) || (file_name == NULL)) { + dbg_print(is_debug_on, "Failed firmware_upgrade_one_file parameter err.\n"); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "firmware upgrade %s 0x%x 0x%x %d\n", file_name, main_type, sub_type, slot); + /* Read the header information of the upgrade file */ + ret = firmware_upgrade_read_header(file_name, &info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Failed to get file header: %s, ret=%d\n", file_name, ret); + return ret; + } + + /* Check the file information to determine that the file is available for use on the device */ + ret = firmware_check_file_info(&info, main_type, sub_type, slot); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "File is not match with the device: %s, ret=%d.\n", file_name, ret); + return ret; + } + + /* The link number corresponding to the upgrade file is calculated based on the slot number. + 16 links are reserved for each slot. main boade slot is 0. */ + info.chain += slot * FIRMWARE_SLOT_MAX_NUM; + ret = firmware_upgrade_test(file_name, &info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Failed to upgrade: %s, ret=%d\n", file_name, ret); + return ret; + } + + return FIRMWARE_SUCCESS; +} + +static int firmware_upgrade_data_dump(char *argv[]) +{ + int ret; + uint32_t offset, len; + + /* dump by type */ + if (strcmp(argv[2], "spi_logic_dev") == 0) { + /* usag: firmware_upgrade dump spi_logic_dev dev_path offset size print/record_file_path */ + offset = strtoul(argv[4], NULL, 0); + len = strtoul(argv[5], NULL, 0); + /* offset needs align by 256 bytes */ + if ((offset & 0xff) || (len == 0)) { + dbg_print(is_debug_on,"only support offset align by 256 bytes.\n"); + return FIRMWARE_FAILED; + } + dbg_print(is_debug_on, "start to dump %s data. offset:0x%x, len:0x%x\n", argv[2], offset, len); + ret = firmware_upgrade_spi_logic_dev_dump(argv[3], offset, len, argv[6]); + } else { + dbg_print(is_debug_on, "Error: %s not support dump data.\n", argv[2]); + return FIRMWARE_FAILED; + } + + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Failed to dump %s data. ret:%d\n", argv[3], ret); + return FIRMWARE_FAILED; + } + + return FIRMWARE_SUCCESS; +} + +int main(int argc, char *argv[]) +{ + int ret; + int main_type, sub_type, slot; + + is_debug_on = firmware_upgrade_debug(); + + signal(SIGTERM, SIG_IGN); /* ignore kill signal */ + signal(SIGINT, SIG_IGN); /* ignore ctrl+c signal */ + signal(SIGTSTP, SIG_IGN); /* ignore ctrl+z signal */ + + if ((argc != 5) && (argc != 6) && (argc != 7)) { + printf("Use:\n"); + printf(" upgrade file : firmware_upgrade file main_type sub_type slot\n"); + printf(" upgrade test : firmware_upgrade test file main_type sub_type slot\n"); + printf(" spi_logic_dev dump : firmware_upgrade dump spi_logic_dev dev_path offset size print/record_file_path\n"); + dbg_print(is_debug_on, "Failed to upgrade the number of argv: %d.\n", argc); + return ERR_FW_UPGRADE; + } + + if (argc == 5) { + main_type = strtoul(argv[2], NULL, 16); + sub_type = strtoul(argv[3], NULL, 16); + slot = strtoul(argv[4], NULL, 10); + printf("+================================+\n"); + printf("|Begin to upgrade, please wait...|\n"); + ret = firmware_upgrade_one_file(argv[1], main_type, sub_type, slot); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Failed to upgrade a firmware file: %s. (%d)\n", argv[1], ret); + printf("| Upgrade failed! |\n"); + printf("+================================+\n"); + return ret; + } + + printf("| Upgrade succeeded! |\n"); + printf("+================================+\n"); + dbg_print(is_debug_on, "Sucess to upgrade a firmware file: %s.\n", argv[1]); + return FIRMWARE_SUCCESS; + } else if ((argc == 6) && (strcmp(argv[1], "test") == 0)) { + main_type = strtoul(argv[3], NULL, 16); + sub_type = strtoul(argv[4], NULL, 16); + slot = strtoul(argv[5], NULL, 10); + printf("+=====================================+\n"); + printf("|Begin to upgrade test, please wait...|\n"); + ret = firmware_upgrade_file_test(argv[2], main_type, sub_type, slot); + if (ret == FIRMWARE_SUCCESS) { + printf("| Upgrade test succeeded! |\n"); + printf("+=====================================+\n"); + dbg_print(is_debug_on, "Sucess to upgrade test a firmware file: %s.\n", argv[2]); + return FIRMWARE_SUCCESS; + } else if (ret == ERR_FW_DO_UPGRADE_NOT_SUPPORT) { + dbg_print(is_debug_on, "do not support to upgrade test a firmware file: %s. (%d)\n", argv[2], ret); + printf("| Not support to upgrade test! |\n"); + printf("+=====================================+\n"); + return ret; + } else { + dbg_print(is_debug_on, "Failed to upgrade test a firmware file: %s. (%d)\n", argv[2], ret); + printf("| Upgrade test failed! |\n"); + printf("+=====================================+\n"); + return ret; + } + } else if (strcmp(argv[1], "dump") == 0) { + /* print device data */ + ret = firmware_upgrade_data_dump(argv); + if (ret == FIRMWARE_SUCCESS) { + printf("dump data succeeded.\n"); + return FIRMWARE_SUCCESS; + } else { + printf("dump data failed. ret:%d\n", ret); + return ret; + } + } + + printf("+=================+\n"); + printf("| UPGRADE FAIL! |\n"); + printf("+=================+\n"); + + return ERR_FW_UPGRADE; + } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c new file mode 100644 index 000000000000..c43c9095fda6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c @@ -0,0 +1,263 @@ +/********************************************************************************* +* Lattice Semiconductor Corp. Copyright 2000-2008 +* +* This is the hardware.c of ispVME V12.1 for JTAG programmable devices. +* All the functions requiring customization are organized into this file for +* the convinience of porting. +*********************************************************************************/ +/********************************************************************************* +* Revision History: +* +* 09/11/07 NN Type cast mismatch variables +* 09/24/07 NN Added calibration function. +* Calibration will help to determine the system clock frequency +* and the count value for one micro-second delay of the target +* specific hardware. +* Modified the ispVMDelay function +* Removed Delay Percent support +* Moved the sclock() function from ivm_core.c to hardware.c +*********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/******************************************************************************** +* Declaration of global variables +* +*********************************************************************************/ + +unsigned char g_siIspPins = 0x00; /*Keeper of JTAG pin state*/ +unsigned short g_usInPort = 0x379; /*Address of the TDO pin*/ +unsigned short g_usOutPort = 0x378; /*Address of TDI, TMS, TCK pin*/ +unsigned short g_usCpu_Frequency = 1000; /*Enter your CPU frequency here, unit in MHz.*/ + +/********************************************************************************* +* This is the definition of the bit locations of each respective +* signal in the global variable g_siIspPins. +* +* NOTE: Users must add their own implementation here to define +* the bit location of the signal to target their hardware. +* The example below is for the Lattice download cable on +* on the parallel port. +* +*********************************************************************************/ + +#if 0 +const unsigned char g_ucPinTDI = JTAG_TDI; /* Bit address of TDI */ +const unsigned char g_ucPinTCK = JTAG_TCK; /* Bit address of TCK */ +const unsigned char g_ucPinTMS = JTAG_TMS; /* Bit address of TMS */ +const unsigned char g_ucPinENABLE = JTAG_ENABLE; /* Bit address of ENABLE */ +const unsigned char g_ucPinTRST = JTAG_TRST; /* Bit address of TRST */ +const unsigned char g_ucPinTDO = JTAG_TDO; /* Bit address of TDO*/ +#endif +int g_file_fd = -1; +/*************************************************************** +* +* Functions declared in hardware.c module. +* +***************************************************************/ +void writePort(unsigned char a_ucPins, unsigned char a_ucValue); +unsigned char readPort(); +void sclock(); +void ispVMDelay(unsigned short a_usTimeDelay); +void calibration(void); + +/******************************************************************************** +* writePort +* To apply the specified value to the pins indicated. This routine will +* be modified for specific systems. +* As an example, this code uses the IBM-PC standard Parallel port, along with the +* schematic shown in Lattice documentation, to apply the signals to the +* JTAG pins. +* +* PC Parallel port pin Signal name Port bit address +* 2 g_ucPinTDI 1 +* 3 g_ucPinTCK 2 +* 4 g_ucPinTMS 4 +* 5 g_ucPinENABLE 8 +* 6 g_ucPinTRST 16 +* 10 g_ucPinTDO 64 +* +* Parameters: +* - a_ucPins, which is actually a set of bit flags (defined above) +* that correspond to the bits of the data port. Each of the I/O port +* bits that drives an isp programming pin is assigned a flag +* (through a #define) corresponding to the signal it drives. To +* change the value of more than one pin at once, the flags are added +* together, much like file access flags are. +* +* The bit flags are only set if the pin is to be changed. Bits that +* do not have their flags set do not have their levels changed. The +* state of the port is always manintained in the static global +* variable g_siIspPins, so that each pin can be addressed individually +* without disturbing the others. +* +* - a_ucValue, which is either HIGH (0x01 ) or LOW (0x00 ). Only these two +* values are valid. Any non-zero number sets the pin(s) high. +* +*********************************************************************************/ + +void writePort(unsigned char a_ucPins, unsigned char a_ucValue) +{ + switch (a_ucPins) { + case JTAG_TCK: + ioctl(g_file_fd, FIRMWARE_JTAG_TCK, &a_ucValue); + break; + case JTAG_TDI: + ioctl(g_file_fd, FIRMWARE_JTAG_TDI, &a_ucValue); + break; + case JTAG_TMS: + ioctl(g_file_fd, FIRMWARE_JTAG_TMS, &a_ucValue); + break; + case JTAG_ENABLE: + ioctl(g_file_fd, FIRMWARE_JTAG_EN, &a_ucValue); + break; + case JTAG_TRST: + //ioctl(g_file_fd, FIRMWARE_JTAG_TRST, &a_ucValue); + break; + default: + break; + } +} + +/********************************************************************************* +* +* readPort +* +* Returns the value of the TDO from the device. +* +**********************************************************************************/ +unsigned char readPort() +{ + unsigned char ucRet = 0; + + ioctl(g_file_fd, FIRMWARE_JTAG_TDO, &ucRet); + return (ucRet); +} + +/********************************************************************************* +* sclock +* +* Apply a pulse to TCK. +* +* This function is located here so that users can modify to slow down TCK if +* it is too fast (> 25MHZ). Users can change the IdleTime assignment from 0 to +* 1, 2... to effectively slowing down TCK by half, quarter... +* +*********************************************************************************/ +void sclock() +{ + unsigned short IdleTime = 0; //change to > 0 if need to slow down TCK + unsigned short usIdleIndex = 0; + IdleTime++; + for (usIdleIndex = 0; usIdleIndex < IdleTime; usIdleIndex++) { + writePort(JTAG_TCK, 0x01); + } + for (usIdleIndex = 0; usIdleIndex < IdleTime; usIdleIndex++) { + writePort(JTAG_TCK, 0x00); + } +} +/******************************************************************************** +* +* ispVMDelay +* +* +* Users must implement a delay to observe a_usTimeDelay, where +* bit 15 of the a_usTimeDelay defines the unit. +* 1 = milliseconds +* 0 = microseconds +* Example: +* a_usTimeDelay = 0x0001 = 1 microsecond delay. +* a_usTimeDelay = 0x8001 = 1 millisecond delay. +* +* This subroutine is called upon to provide a delay from 1 millisecond to a few +* hundreds milliseconds each time. +* It is understood that due to a_usTimeDelay is defined as unsigned short, a 16 bits +* integer, this function is restricted to produce a delay to 64000 micro-seconds +* or 32000 milli-second maximum. The VME file will never pass on to this function +* a delay time > those maximum number. If it needs more than those maximum, the VME +* file will launch the delay function several times to realize a larger delay time +* cummulatively. +* It is perfectly alright to provide a longer delay than required. It is not +* acceptable if the delay is shorter. +* +* Delay function example--using the machine clock signal of the native CPU------ +* When porting ispVME to a native CPU environment, the speed of CPU or +* the system clock that drives the CPU is usually known. +* The speed or the time it takes for the native CPU to execute one for loop +* then can be calculated as follows: +* The for loop usually is compiled into the ASSEMBLY code as shown below: +* LOOP: DEC RA; +* JNZ LOOP; +* If each line of assembly code needs 4 machine cycles to execute, +* the total number of machine cycles to execute the loop is 2 x 4 = 8. +* Usually system clock = machine clock (the internal CPU clock). +* Note: Some CPU has a clock multiplier to double the system clock for + the machine clock. +* +* Let the machine clock frequency of the CPU be F, or 1 machine cycle = 1/F. +* The time it takes to execute one for loop = (1/F ) x 8. +* Or one micro-second = F(MHz)/8; +* +* Example: The CPU internal clock is set to 100Mhz, then one micro-second = 100/8 = 12 +* +* The C code shown below can be used to create the milli-second accuracy. +* Users only need to enter the speed of the cpu. +* +**********************************************************************************/ +void ispVMDelay(unsigned short a_usTimeDelay) +{ + struct timespec ts; + + if (a_usTimeDelay & 0x8000) { + /* milliseconds */ + a_usTimeDelay &= 0x7FFF; + ts.tv_sec = (long int) (a_usTimeDelay / 1000); + ts.tv_nsec = (long int) (a_usTimeDelay % 1000) * 1000000ul; + } else { + /* microseconds */ + ts.tv_sec = 0; + ts.tv_nsec = (long int) a_usTimeDelay * 1000ul; + } + + nanosleep(&ts, NULL); +} + +/********************************************************************************* +* +* calibration +* +* It is important to confirm if the delay function is indeed providing +* the accuracy required. Also one other important parameter needed +* checking is the clock frequency. +* Calibration will help to determine the system clock frequency +* and the loop_per_micro value for one micro-second delay of the target +* specific hardware. +* +**********************************************************************************/ +void calibration(void) +{ + /*Apply 2 pulses to TCK.*/ + writePort(JTAG_TCK, 0x00); + writePort(JTAG_TCK, 0x01); + writePort(JTAG_TCK, 0x00); + writePort(JTAG_TCK, 0x01); + writePort(JTAG_TCK, 0x00); + + /*Delay for 1 millisecond. Pass on 1000 or 0x8001 both = 1ms delay.*/ + ispVMDelay(0x8001); + + /*Apply 2 pulses to TCK*/ + writePort(JTAG_TCK, 0x01); + writePort(JTAG_TCK, 0x00); + writePort(JTAG_TCK, 0x01); + writePort(JTAG_TCK, 0x00); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c new file mode 100644 index 000000000000..69a8e53852b5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c @@ -0,0 +1,837 @@ +/************************************************************** +* +* Lattice Semiconductor Corp. Copyright 2008 +* +* ispVME Embedded allows programming of Lattice's suite of FPGA +* devices on embedded systems through the JTAG port. The software +* is distributed in source code form and is open to re - distribution +* and modification where applicable. +* +* ispVME Embedded C Source comprised with 3 modules: +* ispvm_ui.c is the module provides input and output support. +* ivm_core.c is the module interpret the VME file(s). +* hardware.c is the module access the JTAG port of the device(s). +* +* The optional module cable.c is for supporting Lattice's parallel +* port ispDOWNLOAD cable on DOS and Windows 95/98 O/S. It can be +* requested from Lattice's ispVMSupport. +* +***************************************************************/ + +/************************************************************** +* +* Revision History of ispvm_ui.c +* +* 3/6/07 ht Added functions vme_out_char(),vme_out_hex(), +* vme_out_string() to provide output resources. +* Consolidate all printf() calls into the added output +* functions. +* +* 09/11/07 NN Added Global variables initialization +* 09/24/07 NN Added a switch allowing users to do calibration. +* Calibration will help to determine the system clock frequency +* and the count value for one micro-second delay of the target +* specific hardware. +* Removed Delay Percent support +* 11/15/07 NN moved the checking of the File CRC to the end of processing +* 08/28/08 NN Added Calculate checksum support. +***************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +/*************************************************************** +* +* File pointer to the VME file. +* +***************************************************************/ + +FILE *g_pVMEFile = NULL; + +/*************************************************************** +* +* Functions declared in this ispvm_ui.c module +* +***************************************************************/ +unsigned char GetByte(void); +void vme_out_char(unsigned char charOut); +void vme_out_hex(unsigned char hexOut); +void vme_out_string(char *stringOut); +void ispVMMemManager(signed char cTarget, unsigned short usSize); +void ispVMFreeMem(void); +void error_handler(short a_siRetCode, char *pszMessage); +signed char ispVM(const char *a_pszFilename); + +/*************************************************************** +* +* Global variables. +* +***************************************************************/ +unsigned short g_usPreviousSize = 0; +unsigned short g_usExpectedCRC = 0; + +/*************************************************************** +* +* External variables and functions declared in ivm_core.c module. +* +***************************************************************/ +extern signed char ispVMCode(); +extern void ispVMCalculateCRC32(unsigned char a_ucData); +extern void ispVMStart(); +extern void ispVMEnd(); +extern unsigned short g_usCalculatedCRC; +extern unsigned short g_usDataType; +extern unsigned char *g_pucOutMaskData, +*g_pucInData, +*g_pucOutData, +*g_pucHIRData, +*g_pucTIRData, +*g_pucHDRData, +*g_pucTDRData, +*g_pucOutDMaskData, +*g_pucIntelBuffer; +extern unsigned char *g_pucHeapMemory; +extern unsigned short g_iHeapCounter; +extern unsigned short g_iHEAPSize; +extern unsigned short g_usIntelDataIndex; +extern unsigned short g_usIntelBufferSize; +extern LVDSPair *g_pLVDSList; +//08/28/08 NN Added Calculate checksum support. +extern unsigned long g_usChecksum; +extern unsigned int g_uiChecksumIndex; + +/* Added reinit for call ispvme more than once */ +extern void ivm_core_reinit(); +/*************************************************************** +* +* External variables and functions declared in hardware.c module. +* +***************************************************************/ +extern void calibration(void); +extern unsigned short g_usCpu_Frequency; +extern int g_file_fd; + +/*************************************************************** +* +* Supported VME versions. +* +***************************************************************/ + +const char *const g_szSupportedVersions[] = { "__VME2.0", "__VME3.0", "____12.0", "____12.1", 0 }; + +/*************************************************************** +* +* GetByte +* +* Returns a byte to the caller. The returned byte depends on the +* g_usDataType register. If the HEAP_IN bit is set, then the byte +* is returned from the HEAP. If the LHEAP_IN bit is set, then +* the byte is returned from the intelligent buffer. Otherwise, +* the byte is returned directly from the VME file. +* +***************************************************************/ + +char* strlwr(char *str) +{ + char *orig = str; +// process the string + for (; *str != '\0'; str++) + *str = tolower(*str); + return orig; +} + +unsigned char GetByte() +{ + unsigned char ucData = 0; + + if (g_usDataType & HEAP_IN) { + + /*************************************************************** + * + * Get data from repeat buffer. + * + ***************************************************************/ + + if (g_iHeapCounter > g_iHEAPSize) { + + /*************************************************************** + * + * Data over-run. + * + ***************************************************************/ + + return 0xFF; + } + + ucData = g_pucHeapMemory[g_iHeapCounter++]; + } + else if ( g_usDataType & LHEAP_IN ) { + + /*************************************************************** + * + * Get data from intel buffer. + * + ***************************************************************/ + + if (g_usIntelDataIndex >= g_usIntelBufferSize) { + + /*************************************************************** + * + * Data over-run. + * + ***************************************************************/ + + return 0xFF; + } + + ucData = g_pucIntelBuffer[g_usIntelDataIndex++]; + } + else { + + /*************************************************************** + * + * Get data from file. + * + ***************************************************************/ + + ucData = (unsigned char)fgetc(g_pVMEFile); + + if (feof(g_pVMEFile)) { + + /*************************************************************** + * + * Reached EOF. + * + ***************************************************************/ + + return 0xFF; + } + /*************************************************************** + * + * Calculate the 32-bit CRC if the expected CRC exist. + * + ***************************************************************/ + if( g_usExpectedCRC != 0) + { + ispVMCalculateCRC32(ucData); + } + } + + return (ucData); +} + +/*************************************************************** +* +* vme_out_char +* +* Send a character out to the output resource if available. +* The monitor is the default output resource. +* +* +***************************************************************/ +void vme_out_char(unsigned char charOut) +{ + dbg_print(is_debug_on, "%c", charOut); +} +/*************************************************************** +* +* vme_out_hex +* +* Send a character out as in hex format to the output resource +* if available. The monitor is the default output resource. +* +* +***************************************************************/ +void vme_out_hex(unsigned char hexOut) +{ + dbg_print(is_debug_on, "%.2X", hexOut); +} +/*************************************************************** +* +* vme_out_string +* +* Send a text string out to the output resource if available. +* The monitor is the default output resource. +* +* +***************************************************************/ +void vme_out_string(char *stringOut) +{ + dbg_print(is_debug_on,"%s",stringOut); +} +/*************************************************************** +* +* ispVMMemManager +* +* Allocate memory based on cTarget. The memory size is specified +* by usSize. +* +***************************************************************/ + +void ispVMMemManager(signed char cTarget, unsigned short usSize) +{ + switch (cTarget) { + case XTDI: + case TDI: + if (g_pucInData != NULL) { + if (g_usPreviousSize == usSize) { /*memory exist*/ + break; + } + else { + free(g_pucInData); + g_pucInData = NULL; + } + } + g_pucInData = (unsigned char *)malloc(usSize / 8 + 2); + g_usPreviousSize = usSize; + case XTDO: + case TDO: + if (g_pucOutData != NULL) { + if (g_usPreviousSize == usSize) { /*already exist*/ + break; + } + else { + free(g_pucOutData); + g_pucOutData = NULL; + } + } + g_pucOutData = (unsigned char *)malloc(usSize / 8 + 2); + g_usPreviousSize = usSize; + break; + case MASK: + if (g_pucOutMaskData != NULL) { + if (g_usPreviousSize == usSize) { /*already allocated*/ + break; + } + else { + free(g_pucOutMaskData); + g_pucOutMaskData = NULL; + } + } + g_pucOutMaskData = (unsigned char *)malloc(usSize / 8 + 2); + g_usPreviousSize = usSize; + break; + case HIR: + if (g_pucHIRData != NULL) { + free(g_pucHIRData); + g_pucHIRData = NULL; + } + g_pucHIRData = (unsigned char *)malloc(usSize / 8 + 2); + break; + case TIR: + if (g_pucTIRData != NULL) { + free(g_pucTIRData); + g_pucTIRData = NULL; + } + g_pucTIRData = (unsigned char *)malloc(usSize / 8 + 2); + break; + case HDR: + if (g_pucHDRData != NULL) { + free(g_pucHDRData); + g_pucHDRData = NULL; + } + g_pucHDRData = (unsigned char *)malloc(usSize / 8 + 2); + break; + case TDR: + if (g_pucTDRData != NULL) { + free(g_pucTDRData); + g_pucTDRData = NULL; + } + g_pucTDRData = (unsigned char *)malloc(usSize / 8 + 2); + break; + case HEAP: + if (g_pucHeapMemory != NULL) { + free(g_pucHeapMemory); + g_pucHeapMemory = NULL; + } + g_pucHeapMemory = (unsigned char *)malloc(usSize + 2); + break; + case DMASK: + if (g_pucOutDMaskData != NULL) { + if (g_usPreviousSize == usSize) { /*already allocated*/ + break; + } + else { + free(g_pucOutDMaskData); + g_pucOutDMaskData = NULL; + } + } + g_pucOutDMaskData = (unsigned char *)malloc(usSize / 8 + 2); + g_usPreviousSize = usSize; + break; + case LHEAP: + if (g_pucIntelBuffer != NULL) { + free(g_pucIntelBuffer); + g_pucIntelBuffer = NULL; + } + g_pucIntelBuffer = (unsigned char *)malloc(usSize + 2); + break; + case LVDS: + if (g_pLVDSList != NULL) { + free(g_pLVDSList); + g_pLVDSList = NULL; + } + g_pLVDSList = (LVDSPair * )calloc(usSize, sizeof(LVDSPair)); + break; + default: + return; + } +} + +/*************************************************************** +* +* ispVMFreeMem +* +* Free memory that were dynamically allocated. +* +***************************************************************/ + +void ispVMFreeMem() +{ + if (g_pucHeapMemory != NULL) { + free(g_pucHeapMemory); + g_pucHeapMemory = NULL; + } + + if (g_pucOutMaskData != NULL) { + free(g_pucOutMaskData); + g_pucOutMaskData = NULL; + } + + if (g_pucInData != NULL) { + free(g_pucInData); + g_pucInData = NULL; + } + + if (g_pucOutData != NULL) { + free(g_pucOutData); + g_pucOutData = NULL; + } + + if (g_pucHIRData != NULL) { + free(g_pucHIRData); + g_pucHIRData = NULL; + } + + if (g_pucTIRData != NULL) { + free(g_pucTIRData); + g_pucTIRData = NULL; + } + + if (g_pucHDRData != NULL) { + free(g_pucHDRData); + g_pucHDRData = NULL; + } + + if (g_pucTDRData != NULL) { + free(g_pucTDRData); + g_pucTDRData = NULL; + } + + if (g_pucOutDMaskData != NULL) { + free(g_pucOutDMaskData); + g_pucOutDMaskData = NULL; + } + + if (g_pucIntelBuffer != NULL) { + free(g_pucIntelBuffer); + g_pucIntelBuffer = NULL; + } + + if (g_pLVDSList != NULL) { + free(g_pLVDSList); + g_pLVDSList = NULL; + } +} + +/*************************************************************** +* +* error_handler +* +* Reports the error message. +* +***************************************************************/ + +void error_handler(short a_siRetCode, char *pszMessage) +{ + const char *pszErrorMessage[] = { "pass", + "verification fail", + "can't find the file", + "wrong file type", + "file error", + "option error", + "crc verification error" }; + + strcpy(pszMessage, pszErrorMessage[-a_siRetCode]); +} +/*************************************************************** +* +* ispVM +* +* The entry point of the ispVM embedded. If the version and CRC +* are verified, then the VME will be processed. +* +***************************************************************/ +signed char ispVM(const char *a_pszFilename) +{ + char szFileVersion[9] = { 0 }; + signed char cRetCode = 0; + signed char cIndex = 0; + signed char cVersionIndex = 0; + unsigned char ucReadByte = 0; + int ret; + /*************************************************************** + * + * Global variables initialization. + * + * 09/11/07 NN Added + ***************************************************************/ + g_pucHeapMemory = NULL; + g_iHeapCounter = 0; + g_iHEAPSize = 0; + g_usIntelDataIndex = 0; + g_usIntelBufferSize = 0; + g_usPreviousSize = 0; + + /*************************************************************** + * + * Open a file pointer to the VME file. + * + ***************************************************************/ + + if ((g_pVMEFile = fopen(a_pszFilename, "rb")) == NULL) { + return VME_FILE_READ_FAILURE; + } + /* Skip the contents of the file header */ + ret=fseek(g_pVMEFile, header_offset, SEEK_SET); + if (ret < 0) { + vme_out_string("Failed to skip header.\n"); + fclose(g_pVMEFile); + g_pVMEFile = NULL; + return VME_ARGUMENT_FAILURE; + } + + g_usCalculatedCRC = 0; + g_usExpectedCRC = 0; + ucReadByte = GetByte(); + switch (ucReadByte) { + case FILE_CRC: + + /*************************************************************** + * + * Read and store the expected CRC to do the comparison at the end. + * Only versions 3.0 and higher support CRC protection. + * + ***************************************************************/ + + g_usExpectedCRC = (unsigned char)fgetc(g_pVMEFile); + g_usExpectedCRC <<= 8; + g_usExpectedCRC |= fgetc(g_pVMEFile); + + /*************************************************************** + * + * Read and store the version of the VME file. + * + ***************************************************************/ + + for (cIndex = 0; cIndex < 8; cIndex++) { + szFileVersion[cIndex] = GetByte(); + } + break; + default: + + /*************************************************************** + * + * Read and store the version of the VME file. Must be version 2.0. + * + ***************************************************************/ + + szFileVersion[0] = (signed char)ucReadByte; + for (cIndex = 1; cIndex < 8; cIndex++) { + szFileVersion[cIndex] = GetByte(); + } + + break; + } + + /*************************************************************** + * + * Compare the VME file version against the supported version. + * + ***************************************************************/ + for (cVersionIndex = 0; g_szSupportedVersions[cVersionIndex] != 0; cVersionIndex++) { + for (cIndex = 0; cIndex < 8; cIndex++) { + if (szFileVersion[cIndex] != g_szSupportedVersions[cVersionIndex][cIndex]) { + cRetCode = VME_VERSION_FAILURE; + break; + } + cRetCode = 0; + } + + if (cRetCode == 0) { + + /*************************************************************** + * + * Found matching version, break. + * + ***************************************************************/ + + break; + } + } + + if (cRetCode < 0) { + + /*************************************************************** + * + * VME file version failed to match the supported versions. + * + ***************************************************************/ + + fclose(g_pVMEFile); + g_pVMEFile = NULL; + return VME_VERSION_FAILURE; + } + + /*************************************************************** + * + * Enable the JTAG port to communicate with the device. + * Set the JTAG state machine to the Test-Logic/Reset State. + * + ***************************************************************/ + ispVMStart(); + + /*************************************************************** + * + * Process the VME file. + * + ***************************************************************/ + + cRetCode = ispVMCode(); + + /*************************************************************** + * + * Set the JTAG State Machine to Test-Logic/Reset state then disable + * the communication with the JTAG port. + * + ***************************************************************/ + + ispVMEnd(); + + fclose(g_pVMEFile); + g_pVMEFile = NULL; + + ispVMFreeMem(); + + /*************************************************************** + * + * Compare the expected CRC versus the calculated CRC. + * + ***************************************************************/ + + if (cRetCode == 0 && g_usExpectedCRC != 0 && (g_usExpectedCRC != g_usCalculatedCRC)) { + printf("Expected CRC: 0x%.4X\n", g_usExpectedCRC); + printf("Calculated CRC: 0x%.4X\n", g_usCalculatedCRC); + return VME_CRC_FAILURE; + } + + return (cRetCode); +} + +/*************************************************************** +* +* ispvme_reinit +* +* Reinit ispvm_ui variables. +* +***************************************************************/ +static void ispvm_ui_reinit() +{ + g_pVMEFile = NULL; + g_usPreviousSize = 0; + g_usExpectedCRC = 0; +} + +/*************************************************************** +* +* main +* +***************************************************************/ + +int ispvme_main(int argc, char *argv[], int file_fd, name_info_t *info) +{ + unsigned short iCommandLineIndex = 0; + short siRetCode = 0; + char szExtension[5] = { 0 }; + char szCommandLineArg[300] = { 0 }; + short sicalibrate = 0; + + ispvm_ui_reinit(); + ivm_core_reinit(); + + //08/28/08 NN Added Calculate checksum support. + g_usChecksum = 0; + g_uiChecksumIndex = 0; + + if (file_fd < 0) { + dbg_print(is_debug_on, "Error:firmware upgrade ispvme dev parameters failed.\r\n"); + return -1; + } else { + g_file_fd = file_fd; + } + +#if 0 + ret = firmware_check_chip_name(g_file_fd, info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to check chip name: %s.\n", file_name); + close(g_file_fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } + + ret = firmware_check_chip_verison(g_file_fd, info); + if (ret != FIRMWARE_SUCCESS) { + dbg_print(is_debug_on, "Error: Failed to check chip version: %s.\n", file_name); + close(g_file_fd); + return firmware_error_type(FIRMWARE_ACTION_CHECK, info); + } +#endif + + vme_out_string(" Lattice Semiconductor Corp.\n"); + vme_out_string("\n ispVME(tm) V"); + vme_out_string(VME_VERSION_NUMBER); + vme_out_string(" Copyright 1998-2011.\n"); + vme_out_string("\nFor daisy chain programming of all in-system programmable devices\n\n"); + + if (argc < 2) { + vme_out_string("\nUsage: vme [option] vme_file [vme_file]\n"); + vme_out_string("Example: vme vme_file1.vme vme_file2.vme\n"); + vme_out_string("option -c: do the calibration.\n"); + vme_out_string("Example: vme -c\n"); + vme_out_string("Example: vme -c vme_file1.vme vme_file2.vme\n"); + vme_out_string("\n\n"); + g_file_fd = -1; + /* Change return to determine whether the upgrade was successful */ + return -1; + } + for (iCommandLineIndex = 1; iCommandLineIndex < argc; iCommandLineIndex++) { + strncpy(szCommandLineArg, argv[iCommandLineIndex], sizeof(szCommandLineArg) - 1); + if (!strcmp(strlwr(szCommandLineArg), "-c") && (iCommandLineIndex == 1)) { + sicalibrate = 1; + } else if (!strcmp(strlwr(szCommandLineArg), "-c") && (iCommandLineIndex != 1)) { + vme_out_string("Error: calibrate option -c must be the first argument\n\n"); + g_file_fd = -1; + /* Change return to determine whether the upgrade was successful */ + return -1; + //exit(1); + } else { + strcpy(szExtension, &szCommandLineArg[strlen(szCommandLineArg) - 4]); + strlwr(szExtension); + if (strcmp(szExtension, ".vme")) { + vme_out_string("Error: VME files must end with the extension *.vme\n\n"); + g_file_fd = -1; + /* Change return to determine whether the upgrade was successful */ + return -1; + //exit(1); + } + } + } + siRetCode = 0; + + if (sicalibrate) { + calibration(); + } + for (iCommandLineIndex = 1; iCommandLineIndex < argc; iCommandLineIndex++) { /* Process all VME files sequentially */ + strcpy(szCommandLineArg, argv[iCommandLineIndex]); + if (!strcmp(strlwr(szCommandLineArg), "-c") && (iCommandLineIndex == 1)) { + + } else if (!strcmp(strlwr(szCommandLineArg), "-checksum")) { + + } else { + vme_out_string("Processing virtual machine file ("); + vme_out_string(szCommandLineArg); + vme_out_string(")......\n\n"); + siRetCode = ispVM(argv[iCommandLineIndex]); + if (siRetCode < 0) { + break; + } + } + } + + if (siRetCode < 0) { + error_handler(siRetCode, szCommandLineArg); + vme_out_string("Failed due to "); + vme_out_string(szCommandLineArg); + vme_out_string("\n\n"); + vme_out_string("+=======+\n"); + vme_out_string("| FAIL! |\n"); + vme_out_string("+=======+\n\n"); + } else { + vme_out_string("+=======+\n"); + vme_out_string("| PASS! |\n"); + vme_out_string("+=======+\n\n"); + //08/28/08 NN Added Calculate checksum support. + if (g_usChecksum != 0) { + g_usChecksum &= 0xFFFF; + printf("Data Checksum: %.4X\n\n", (unsigned int)g_usChecksum); + g_usChecksum = 0; + } + } + g_file_fd = -1; + /* Change return to determine whether the upgrade was successful */ + return siRetCode; + //exit(siRetCode); +} + +/* + * firmware_upgrade_ispvme + * function: ispvme firmware upgrade + * @file_fd: param[in] Upgrade devices fd + * @upgrade_file_name: param[in] Upgrade file name + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS, other fail return error code + */ +int firmware_upgrade_ispvme(int file_fd, char *upgrade_file_name, name_info_t *info) +{ + char *argv[2]; + int ret, rv, i, retry; + + argv[1] = upgrade_file_name; + + /* Initialize and enable */ + rv = ioctl(file_fd, FIRMWARE_JTAG_INIT,NULL); + if (rv < 0) { + vme_out_string("Failed to init GPIO.\n"); + return VME_ARGUMENT_FAILURE; + } + + i = 0; + retry = FIRMWARE_UPGRADE_RETRY_CNT; + + ret = 0; + while(i < retry) { + ret = ispvme_main(2, argv, file_fd, info); + if (ret < 0) { + i++; + dbg_print(is_debug_on, "%d times ispvme upgrade failed. ret %d.\n", i, ret); + continue; + } else { + dbg_print(is_debug_on, "ispvme upgrade success.\n"); + break; + } + } + + /* Upgrade completed, release */ + rv = ioctl(file_fd, FIRMWARE_JTAG_FINISH, NULL); + if (rv < 0) { + vme_out_string("Failed to release GPIO.\n"); + return VME_ARGUMENT_FAILURE; + } + + return ret; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c new file mode 100644 index 000000000000..540be481d35e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c @@ -0,0 +1,3097 @@ +/*************************************************************** +* +* Lattice Semiconductor Corp. Copyright 2009 +* +* ispVME Embedded allows programming of Lattice's suite of FPGA +* devices on embedded systems through the JTAG port. The software +* is distributed in source code form and is open to re - distribution +* and modification where applicable. +* +* Revision History of ivm_core.c module: +* 4/25/06 ht Change some variables from unsigned short or int +* to long int to make the code compiler independent. +* 5/24/06 ht Support using RESET (TRST) pin as a special purpose +* control pin such as triggering the loading of known +* state exit. +* 3/6/07 ht added functions to support output to terminals +* +* 09/24/07 NN Type cast mismatch variables +* Moved the sclock() function to hardware.c +* 08/28/08 NN Added Calculate checksum support. +* 4/1/09 Nguyen replaced the recursive function call codes on +* the ispVMLCOUNT function +* +***************************************************************/ + +#include +#include +#include +#include + +/*************************************************************** +* +* Global variables used to specify the flow control and data type. +* +* g_usFlowControl: flow control register. Each bit in the +* register can potentially change the +* personality of the embedded engine. +* g_usDataType: holds the data type of the current row. +* +***************************************************************/ + +unsigned short g_usFlowControl = 0x0000; +unsigned short g_usDataType = 0x0000; + +/*************************************************************** +* +* Global variables used to specify the ENDDR and ENDIR. +* +* g_ucEndDR: the state that the device goes to after SDR. +* g_ucEndIR: the state that the device goes to after SIR. +* +***************************************************************/ + +unsigned char g_ucEndDR = DRPAUSE; +unsigned char g_ucEndIR = IRPAUSE; + +/*************************************************************** +* +* Global variables used to support header/trailer. +* +* g_usHeadDR: the number of lead devices in bypass. +* g_usHeadIR: the sum of IR length of lead devices. +* g_usTailDR: the number of tail devices in bypass. +* g_usTailIR: the sum of IR length of tail devices. +* +***************************************************************/ + +unsigned short g_usHeadDR = 0; +unsigned short g_usHeadIR = 0; +unsigned short g_usTailDR = 0; +unsigned short g_usTailIR = 0; + +/*************************************************************** +* +* Global variable to store the number of bits of data or instruction +* to be shifted into or out from the device. +* +***************************************************************/ + +unsigned short g_usiDataSize = 0; + +/*************************************************************** +* +* Stores the frequency. Default to 1 MHz. +* +***************************************************************/ + +int g_iFrequency = 1000; + +/*************************************************************** +* +* Stores the maximum amount of ram needed to hold a row of data. +* +***************************************************************/ + +unsigned short g_usMaxSize = 0; + +/*************************************************************** +* +* Stores the LSH or RSH value. +* +***************************************************************/ + +unsigned short g_usShiftValue = 0; + +/*************************************************************** +* +* Stores the current repeat loop value. +* +***************************************************************/ + +unsigned short g_usRepeatLoops = 0; + +/*************************************************************** +* +* Stores the current vendor. +* +***************************************************************/ + +signed char g_cVendor = LATTICE; + +/*************************************************************** +* +* Stores the VME file CRC. +* +***************************************************************/ + +unsigned short g_usCalculatedCRC = 0; + +/*************************************************************** +* +* Stores the Device Checksum. +* +***************************************************************/ +//08/28/08 NN Added Calculate checksum support. +unsigned long g_usChecksum = 0; +unsigned int g_uiChecksumIndex = 0; + +/*************************************************************** +* +* Stores the current state of the JTAG state machine. +* +***************************************************************/ + +signed char g_cCurrentJTAGState = 0; + +/*************************************************************** +* +* Global variables used to support looping. +* +* g_pucHeapMemory: holds the entire repeat loop. +* g_iHeapCounter: points to the current byte in the repeat loop. +* g_iHEAPSize: the current size of the repeat in bytes. +* +***************************************************************/ + +unsigned char *g_pucHeapMemory = NULL; +unsigned short g_iHeapCounter = 0; +unsigned short g_iHEAPSize = 0; + +/*************************************************************** +* +* Global variables used to support intelligent programming. +* +* g_usIntelDataIndex: points to the current byte of the +* intelligent buffer. +* g_usIntelBufferSize: holds the size of the intelligent +* buffer. +* +***************************************************************/ + +unsigned short g_usIntelDataIndex = 0; +unsigned short g_usIntelBufferSize = 0; + +/**************************************************************************** +* +* Holds the maximum size of each respective buffer. These variables are used +* to write the HEX files when converting VME to HEX. +* +*****************************************************************************/ + +unsigned short g_usTDOSize = 0; +unsigned short g_usMASKSize = 0; +unsigned short g_usTDISize = 0; +unsigned short g_usDMASKSize = 0; +unsigned short g_usLCOUNTSize = 0; +unsigned short g_usHDRSize = 0; +unsigned short g_usTDRSize = 0; +unsigned short g_usHIRSize = 0; +unsigned short g_usTIRSize = 0; +unsigned short g_usHeapSize = 0; + +/*************************************************************** +* +* Global variables used to store data. +* +* g_pucOutMaskData: local RAM to hold one row of MASK data. +* g_pucInData: local RAM to hold one row of TDI data. +* g_pucOutData: local RAM to hold one row of TDO data. +* g_pucHIRData: local RAM to hold the current SIR header. +* g_pucTIRData: local RAM to hold the current SIR trailer. +* g_pucHDRData: local RAM to hold the current SDR header. +* g_pucTDRData: local RAM to hold the current SDR trailer. +* g_pucIntelBuffer: local RAM to hold the current intelligent buffer. +* g_pucOutDMaskData: local RAM to hold one row of DMASK data. +* +***************************************************************/ + +unsigned char *g_pucOutMaskData = NULL, +*g_pucInData = NULL, +*g_pucOutData = NULL, +*g_pucHIRData = NULL, +*g_pucTIRData = NULL, +*g_pucHDRData = NULL, +*g_pucTDRData = NULL, +*g_pucIntelBuffer = NULL, +*g_pucOutDMaskData = NULL; + +/*************************************************************** +* +* JTAG state machine transition table. +* +***************************************************************/ + +struct { + unsigned char CurState; /* From this state */ + unsigned char NextState; /* Step to this state */ + unsigned char Pattern; /* The tragetory of TMS */ + unsigned char Pulses; /* The number of steps */ +} g_JTAGTransistions[25] = { + { RESET, RESET, 0xFC, 6 }, /* Transitions from RESET */ + { RESET, IDLE, 0x00, 1 }, + { RESET, DRPAUSE, 0x50, 5 }, + { RESET, IRPAUSE, 0x68, 6 }, + { IDLE, RESET, 0xE0, 3 }, /* Transitions from IDLE */ + { IDLE, DRPAUSE, 0xA0, 4 }, + { IDLE, IRPAUSE, 0xD0, 5 }, + { DRPAUSE, RESET, 0xF8, 5 }, /* Transitions from DRPAUSE */ + { DRPAUSE, IDLE, 0xC0, 3 }, + { DRPAUSE, IRPAUSE, 0xF4, 7 }, + { DRPAUSE, DRPAUSE, 0xE8, 6 }, /* 06/14/06 Support POLING STATUS LOOP*/ + { IRPAUSE, RESET, 0xF8, 5 }, /* Transitions from IRPAUSE */ + { IRPAUSE, IDLE, 0xC0, 3 }, + { IRPAUSE, DRPAUSE, 0xE8, 6 }, + { DRPAUSE, SHIFTDR, 0x80, 2 }, /* Extra transitions using SHIFTDR */ + { IRPAUSE, SHIFTDR, 0xE0, 5 }, + { SHIFTDR, DRPAUSE, 0x80, 2 }, + { SHIFTDR, IDLE, 0xC0, 3 }, + { IRPAUSE, SHIFTIR, 0x80, 2 }, /* Extra transitions using SHIFTIR */ + { SHIFTIR, IRPAUSE, 0x80, 2 }, + { SHIFTIR, IDLE, 0xC0, 3 }, + { DRPAUSE, DRCAPTURE, 0xE0, 4 }, /* 11/15/05 Support DRCAPTURE*/ + { DRCAPTURE, DRPAUSE, 0x80, 2 }, + { IDLE, DRCAPTURE, 0x80, 2 }, + { IRPAUSE, DRCAPTURE, 0xE0, 4 } +}; + +/*************************************************************** +* +* List to hold all LVDS pairs. +* +***************************************************************/ + +LVDSPair *g_pLVDSList = NULL; +unsigned short g_usLVDSPairCount = 0; + +/*************************************************************** +* +* Function prototypes. +* +***************************************************************/ + +signed char ispVMCode(); +signed char ispVMDataCode(); +long int ispVMDataSize(); +void ispVMData(unsigned char *Data); +signed char ispVMShift(signed char Code); +signed char ispVMAmble(signed char Code); +signed char ispVMLoop(unsigned short a_usLoopCount); +signed char ispVMBitShift(signed char mode, unsigned short bits); +void ispVMComment(unsigned short a_usCommentSize); +void ispVMHeader(unsigned short a_usHeaderSize); +signed char ispVMLCOUNT(unsigned short a_usCountSize); +void ispVMClocks(unsigned short Clocks); +void ispVMBypass(signed char ScanType, unsigned short Bits); +void ispVMStateMachine(signed char NextState); +void ispVMStart(); +void ispVMEnd(); +signed char ispVMSend(unsigned short int); +signed char ispVMRead(unsigned short int); +signed char ispVMReadandSave(unsigned short int); +signed char ispVMProcessLVDS(unsigned short a_usLVDSCount); + +/*************************************************************** +* +* External variables and functions in ispvm_ui.c module +* +***************************************************************/ +extern void vme_out_char(unsigned char charOut); +extern void vme_out_hex(unsigned char hexOut); +extern void vme_out_string(char *stringOut); +extern unsigned char GetByte(); +extern void ispVMMemManager(signed char types, unsigned short size); + +/*************************************************************** +* +* External variables and functions in hardware.c module +* +***************************************************************/ +extern void ispVMDelay(unsigned short int a_usMicroSecondDelay); +extern unsigned char readPort(); +extern void writePort(unsigned char pins, unsigned char value); +extern void sclock(); +extern signed char g_cCurrentJTAGState; +#ifdef VME_DEBUG + +/*************************************************************** +* +* GetState +* +* Returns the state as a string based on the opcode. Only used +* for debugging purposes. +* +***************************************************************/ + +const char* GetState(unsigned char a_ucState) +{ + switch (a_ucState) { + case RESET: + return ("RESET"); + case IDLE: + return ("IDLE"); + case IRPAUSE: + return ("IRPAUSE"); + case DRPAUSE: + return ("DRPAUSE"); + case SHIFTIR: + return ("SHIFTIR"); + case SHIFTDR: + return ("SHIFTDR"); + case DRCAPTURE: /* 11/15/05 support DRCAPTURE*/ + return ("DRCAPTURE"); + default: + break; + } + + return 0; +} + +/*************************************************************** +* +* PrintData +* +* Prints the data. Only used for debugging purposes. +* +***************************************************************/ + +void PrintData(unsigned short a_iDataSize, unsigned char *a_pucData) +{ + //09/11/07 NN added local variables initialization + unsigned short usByteSize = 0; + unsigned short usBitIndex = 0; + signed short usByteIndex = 0; + unsigned char ucByte = 0; + unsigned char ucFlipByte = 0; + + if (a_iDataSize % 8) { + //09/11/07 NN Type cast mismatch variables + usByteSize = (unsigned short)(a_iDataSize / 8 + 1); + } else { + //09/11/07 NN Type cast mismatch variables + usByteSize = (unsigned short)(a_iDataSize / 8);// 4 + } + printf("("); + //09/11/07 NN Type cast mismatch variables + for (usByteIndex = (signed short)(usByteSize - 1); usByteIndex >= 0; usByteIndex--) { + ucByte = a_pucData[usByteIndex]; + ucFlipByte = 0x00; + + /*************************************************************** + * + * Flip each byte. + * + ***************************************************************/ + + for (usBitIndex = 0; usBitIndex < 8; usBitIndex++) { + ucFlipByte <<= 1; + if (ucByte & 0x1) { + ucFlipByte |= 0x1; + } + + ucByte >>= 1; + } + + /*************************************************************** + * + * Print the flipped byte. + * + ***************************************************************/ + + printf("%.02X", ucFlipByte); + if ((usByteSize - usByteIndex) % 40 == 39) { + printf("\n\t\t"); + } + if (usByteIndex < 0) + break; + } + printf(")"); +} +#endif //VME_DEBUG + +/*************************************************************** +* +* ispVMDataSize +* +* Returns a VME-encoded number, usually used to indicate the +* bit length of an SIR/SDR command. +* +***************************************************************/ + +long int ispVMDataSize() +{ + //09/11/07 NN added local variables initialization + long int iSize = 0; + signed char cCurrentByte = 0; + signed char cIndex = 0; + cIndex = 0; + + while ((cCurrentByte = GetByte()) & 0x80) { + iSize |= ((long int)(cCurrentByte & 0x7F)) << cIndex; + cIndex += 7; + } + iSize |= ((long int)(cCurrentByte & 0x7F)) << cIndex; + + return iSize; +} + +/*************************************************************** +* +* ispVMCode +* +* This is the heart of the embedded engine. All the high-level opcodes +* are extracted here. Once they have been identified, then it +* will call other functions to handle the processing. +* +***************************************************************/ + +signed char ispVMCode() +{ + //09/11/07 NN added local variables initialization + unsigned short iRepeatSize = 0; + signed char cOpcode = 0; + signed char cRetCode = 0; + unsigned char ucState = 0; + unsigned short usDelay = 0; + unsigned short usToggle = 0; + unsigned char usByte = 0; + + /*************************************************************** + * + * Check the compression flag only if this is the first time + * this function is entered. Do not check the compression flag if + * it is being called recursively from other functions within + * the embedded engine. + * + ***************************************************************/ + + if (!(g_usDataType & LHEAP_IN) && !(g_usDataType & HEAP_IN)) { + usByte = GetByte(); + if (usByte == 0xf1) { + g_usDataType |= COMPRESS; + } else if (usByte == 0xf2) { + g_usDataType &= ~COMPRESS; + } else { + return VME_INVALID_FILE; + } + } + + /*************************************************************** + * + * Begin looping through all the VME opcodes. + * + ***************************************************************/ + while ((cOpcode = GetByte()) >= 0) { + switch (cOpcode) { + case STATE: + + /*************************************************************** + * + * Step the JTAG state machine. + * + ***************************************************************/ + + ucState = GetByte(); + /*************************************************************** + * + * Step the JTAG state machine to DRCAPTURE to support Looping. + * + ***************************************************************/ + + if ((g_usDataType & LHEAP_IN) && + (ucState == DRPAUSE) && + (g_cCurrentJTAGState == ucState)) { + ispVMStateMachine(DRCAPTURE); + } + + ispVMStateMachine(ucState); + +#ifdef VME_DEBUG + if (g_usDataType & LHEAP_IN) { + printf("LDELAY %s ", GetState(ucState)); + } else { + printf("STATE %s;\n", GetState(ucState)); + } +#endif //VME_DEBUG + break; + case SIR: + case SDR: + case XSDR: + +#ifdef VME_DEBUG + switch (cOpcode) { + case SIR: + printf("SIR "); + break; + case SDR: + case XSDR: + if (g_usDataType & LHEAP_IN) { + printf("LSDR "); + } else { + printf("SDR "); + } + break; + } +#endif //VME_DEBUG + /*************************************************************** + * + * Shift in data into the device. + * + ***************************************************************/ + cRetCode = ispVMShift(cOpcode); + if (cRetCode != 0) { + return (cRetCode); + } + break; + case WAIT: + + /*************************************************************** + * + * Observe delay. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + usDelay = (unsigned short)ispVMDataSize(); + ispVMDelay(usDelay); + +#ifdef VME_DEBUG + if (usDelay & 0x8000) { + + /*************************************************************** + * + * Since MSB is set, the delay time must be decoded to + * millisecond. The SVF2VME encodes the MSB to represent + * millisecond. + * + ***************************************************************/ + + usDelay &= ~0x8000; + if (g_usDataType & LHEAP_IN) { + printf("%.2E SEC;\n", (float)usDelay / 1000); + } else { + printf("RUNTEST %.2E SEC;\n", (float)usDelay / 1000); + } + } else { + + /*************************************************************** + * + * Since MSB is not set, the delay time is given as microseconds. + * + ***************************************************************/ + + if (g_usDataType & LHEAP_IN) { + printf("%.2E SEC;\n", (float)usDelay / 1000000); + } else { + printf("RUNTEST %.2E SEC;\n", (float)usDelay / 1000000); + } + } +#endif //VME_DEBUG + break; + case TCK: + + /*************************************************************** + * + * Issue clock toggles. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + usToggle = (unsigned short)ispVMDataSize(); + ispVMClocks(usToggle); + +#ifdef VME_DEBUG + printf("RUNTEST %d TCK;\n", usToggle); +#endif //VME_DEBUG + break; + case ENDDR: + + /*************************************************************** + * + * Set the ENDDR. + * + ***************************************************************/ + + g_ucEndDR = GetByte(); + +#ifdef VME_DEBUG + printf("ENDDR %s;\n", GetState(g_ucEndDR)); +#endif //VME_DEBUG + break; + case ENDIR: + + /*************************************************************** + * + * Set the ENDIR. + * + ***************************************************************/ + + g_ucEndIR = GetByte(); + +#ifdef VME_DEBUG + printf("ENDIR %s;\n", GetState(g_ucEndIR)); +#endif //VME_DEBUG + break; + case HIR: + case TIR: + case HDR: + case TDR: + +#ifdef VME_DEBUG + switch (cOpcode) { + case HIR: + printf("HIR "); + break; + case TIR: + printf("TIR "); + break; + case HDR: + printf("HDR "); + break; + case TDR: + printf("TDR "); + break; + } +#endif //VME_DEBUG + + /*************************************************************** + * + * Set the header/trailer of the device in order to bypass + * successfully. + * + ***************************************************************/ + + cRetCode = ispVMAmble(cOpcode); + if (cRetCode != 0) { + return (cRetCode); + } + +#ifdef VME_DEBUG + printf(";\n"); +#endif //VME_DEBUG + break; + case MEM: + + /*************************************************************** + * + * The maximum RAM required to support processing one row of the + * VME file. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + g_usMaxSize = (unsigned short)ispVMDataSize(); + +#ifdef VME_DEBUG + printf("// MEMSIZE %d\n", g_usMaxSize); +#endif //VME_DEBUG + break; + case VENDOR: + + /*************************************************************** + * + * Set the VENDOR type. + * + ***************************************************************/ + + cOpcode = GetByte(); + switch (cOpcode) { + case LATTICE: +#ifdef VME_DEBUG + printf("// VENDOR LATTICE\n"); +#endif //VME_DEBUG + g_cVendor = LATTICE; + break; + case ALTERA: +#ifdef VME_DEBUG + printf("// VENDOR ALTERA\n"); +#endif //VME_DEBUG + g_cVendor = ALTERA; + break; + case XILINX: +#ifdef VME_DEBUG + printf("// VENDOR XILINX\n"); +#endif //VME_DEBUG + g_cVendor = XILINX; + break; + default: + break; + } + break; + case SETFLOW: + + /*************************************************************** + * + * Set the flow control. Flow control determines the personality + * of the embedded engine. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + g_usFlowControl |= (unsigned short)ispVMDataSize(); + break; + case RESETFLOW: + + /*************************************************************** + * + * Unset the flow control. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + g_usFlowControl &= (unsigned short)~(ispVMDataSize()); + break; + case HEAP: + + /*************************************************************** + * + * Allocate heap size to store loops. + * + ***************************************************************/ + + cRetCode = GetByte(); + if (cRetCode != SECUREHEAP) { + return VME_INVALID_FILE; + } + //09/11/07 NN Type cast mismatch variables + g_iHEAPSize = (unsigned short)ispVMDataSize(); + + /**************************************************************************** + * + * Store the maximum size of the HEAP buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_iHEAPSize > g_usHeapSize) { + g_usHeapSize = g_iHEAPSize; + } + + ispVMMemManager(HEAP, (unsigned short)g_iHEAPSize); + break; + case REPEAT: + + /*************************************************************** + * + * Execute loops. + * + ***************************************************************/ + + g_usRepeatLoops = 0; + + //09/11/07 NN Type cast mismatch variables + iRepeatSize = (unsigned short)ispVMDataSize(); + + cRetCode = ispVMLoop((unsigned short)iRepeatSize); + if (cRetCode != 0) { + return (cRetCode); + } + break; + case ENDLOOP: + + /*************************************************************** + * + * Exit point from processing loops. + * + ***************************************************************/ + + return (cRetCode); + case ENDVME: + + /*************************************************************** + * + * The only valid exit point that indicates end of programming. + * + ***************************************************************/ + + return (cRetCode); + case SHR: + + /*************************************************************** + * + * Right-shift address. + * + ***************************************************************/ + + g_usFlowControl |= SHIFTRIGHT; + + //09/11/07 NN Type cast mismatch variables + g_usShiftValue = (unsigned short)(g_usRepeatLoops * (unsigned short)GetByte()); + break; + case SHL: + + /*************************************************************** + * + * Left-shift address. + * + ***************************************************************/ + + g_usFlowControl |= SHIFTLEFT; + + //09/11/07 NN Type cast mismatch variables + g_usShiftValue = (unsigned short)(g_usRepeatLoops * (unsigned short)GetByte()); + break; + case FREQUENCY: + + /*************************************************************** + * + * Set the frequency. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + g_iFrequency = (int)(ispVMDataSize()); + //10/23/08 NN changed to check if the frequency smaller than 1000 + if (g_iFrequency >= 1000) { + g_iFrequency = g_iFrequency / 1000; + if (g_iFrequency == 1) + g_iFrequency = 1000; +#ifdef VME_DEBUG + printf("FREQUENCY %.2E HZ;\n", (float)g_iFrequency * 1000); +#endif //VME_DEBUG + } else { + if (g_iFrequency == 0) + g_iFrequency = 1000; +#ifdef VME_DEBUG + printf("FREQUENCY %.2E HZ;\n", (float)g_iFrequency); +#endif //VME_DEBUG + } + break; + case LCOUNT: + + /*************************************************************** + * + * Process LCOUNT command. + * + ***************************************************************/ + + cRetCode = ispVMLCOUNT((unsigned short)ispVMDataSize()); + if (cRetCode != 0) { + return (cRetCode); + } + break; + case VUES: + + /*************************************************************** + * + * Set the flow control to verify USERCODE. + * + ***************************************************************/ + + g_usFlowControl |= VERIFYUES; + break; + case COMMENT: + + /*************************************************************** + * + * Display comment. + * + ***************************************************************/ + + ispVMComment((unsigned short)ispVMDataSize()); + break; + case LVDS: + + /*************************************************************** + * + * Process LVDS command. + * + ***************************************************************/ + + ispVMProcessLVDS((unsigned short)ispVMDataSize()); + break; + case HEADER: + + /*************************************************************** + * + * Discard header. + * + ***************************************************************/ + + ispVMHeader((unsigned short)ispVMDataSize()); + break; + /* 03/14/06 Support Toggle ispENABLE signal*/ + case ispEN: + ucState = GetByte(); + if ((ucState == ON) || (ucState == 0x01)) + writePort(JTAG_ENABLE, 0x01); + else + writePort(JTAG_ENABLE, 0x00); + ispVMDelay(1); + break; + /* 05/24/06 support Toggle TRST pin*/ + case TRST: + ucState = GetByte(); + if (ucState == 0x01) + writePort(JTAG_TRST, 0x01); + else + writePort(JTAG_TRST, 0x00); + ispVMDelay(1); + break; + default: + + /*************************************************************** + * + * Invalid opcode encountered. + * + ***************************************************************/ + +#ifdef VME_DEBUG + printf("\nINVALID OPCODE: 0x%.2X\n", cOpcode); +#endif //VME_DEBUG + + return VME_INVALID_FILE; + } + } + + /*************************************************************** + * + * Invalid exit point. Processing the token 'ENDVME' is the only + * valid way to exit the embedded engine. + * + ***************************************************************/ + + return (VME_INVALID_FILE); +} + +/*************************************************************** +* +* ispVMDataCode +* +* Processes the TDI/TDO/MASK/DMASK etc of an SIR/SDR command. +* +***************************************************************/ + +signed char ispVMDataCode() +{ + //09/11/07 NN added local variables initialization + signed char cDataByte = 0; + signed char siDataSource = 0; /*source of data from file by default*/ + + if (g_usDataType & HEAP_IN) { + siDataSource = 1; /*the source of data from memory*/ + } + + /**************************************************************************** + * + * Clear the data type register. + * + *****************************************************************************/ + + g_usDataType &= ~(MASK_DATA + TDI_DATA + TDO_DATA + DMASK_DATA + CMASK_DATA); + + /**************************************************************************** + * + * Iterate through SIR/SDR command and look for TDI, TDO, MASK, etc. + * + *****************************************************************************/ + + while ((cDataByte = GetByte()) >= 0) { + + ispVMMemManager(cDataByte, g_usMaxSize); + switch (cDataByte) { + case TDI: + + /**************************************************************************** + * + * Store the maximum size of the TDI buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usTDISize) { + g_usTDISize = g_usiDataSize; + } + /**************************************************************************** + * + * Updated data type register to indicate that TDI data is currently being + * used. Process the data in the VME file into the TDI buffer. + * + *****************************************************************************/ + + g_usDataType |= TDI_DATA; + ispVMData(g_pucInData); + break; + case XTDO: + + /**************************************************************************** + * + * Store the maximum size of the TDO buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usTDOSize) { + g_usTDOSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Updated data type register to indicate that TDO data is currently being + * used. + * + *****************************************************************************/ + + g_usDataType |= TDO_DATA; + break; + case TDO: + + /**************************************************************************** + * + * Store the maximum size of the TDO buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usTDOSize) { + g_usTDOSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Updated data type register to indicate that TDO data is currently being + * used. Process the data in the VME file into the TDO buffer. + * + *****************************************************************************/ + + g_usDataType |= TDO_DATA; + ispVMData(g_pucOutData); + break; + case MASK: + + /**************************************************************************** + * + * Store the maximum size of the MASK buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usMASKSize) { + g_usMASKSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Updated data type register to indicate that MASK data is currently being + * used. Process the data in the VME file into the MASK buffer. + * + *****************************************************************************/ + + g_usDataType |= MASK_DATA; + ispVMData(g_pucOutMaskData); + break; + case DMASK: + + /**************************************************************************** + * + * Store the maximum size of the DMASK buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usDMASKSize) { + g_usDMASKSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Updated data type register to indicate that DMASK data is currently being + * used. Process the data in the VME file into the DMASK buffer. + * + *****************************************************************************/ + + g_usDataType |= DMASK_DATA; + ispVMData(g_pucOutDMaskData); + break; + case CMASK: + + /**************************************************************************** + * + * Updated data type register to indicate that CMASK data is currently being + * used. Process the data in the VME file into the CMASK buffer. + * + *****************************************************************************/ + + g_usDataType |= CMASK_DATA; + ispVMData(g_pucOutMaskData); + break; + case CONTINUE: + return (0); + default: + + /**************************************************************************** + * + * Encountered invalid opcode. + * + *****************************************************************************/ + + return (VME_INVALID_FILE); + } + + switch (cDataByte) { + case TDI: + + /**************************************************************************** + * + * Left bit shift. Used when performing algorithm looping. + * + *****************************************************************************/ + + if (g_usFlowControl & SHIFTLEFT) { + ispVMBitShift(SHL, g_usShiftValue); + g_usFlowControl &= ~SHIFTLEFT; + } + + /**************************************************************************** + * + * Right bit shift. Used when performing algorithm looping. + * + *****************************************************************************/ + + if (g_usFlowControl & SHIFTRIGHT) { + ispVMBitShift(SHR, g_usShiftValue); + g_usFlowControl &= ~SHIFTRIGHT; + } + default: + break; + } + + if (siDataSource) { + g_usDataType |= HEAP_IN; /*restore data from memory*/ + } + } + + if (siDataSource) { /*fetch data from heap memory upon return*/ + g_usDataType |= HEAP_IN; + } + + if (cDataByte < 0) { + + /**************************************************************************** + * + * Encountered invalid opcode. + * + *****************************************************************************/ + + return (VME_INVALID_FILE); + } else { + return (0); + } +} + +/*************************************************************** +* +* ispVMData +* Extract one row of data operand from the current data type opcode. Perform +* the decompression if necessary. Extra RAM is not required for the +* decompression process. The decompression scheme employed in this module +* is on row by row basis. The format of the data stream: +* [compression code][compressed data stream] +* 0x00 --No compression +* 0x01 --Compress by 0x00. +* Example: +* Original stream: 0x000000000000000000000001 +* Compressed stream: 0x01000901 +* Detail: 0x01 is the code, 0x00 is the key, +* 0x09 is the count of 0x00 bytes, +* 0x01 is the uncompressed byte. +* 0x02 --Compress by 0xFF. +* Example: +* Original stream: 0xFFFFFFFFFFFFFFFFFFFFFF01 +* Compressed stream: 0x02FF0901 +* Detail: 0x02 is the code, 0xFF is the key, +* 0x09 is the count of 0xFF bytes, +* 0x01 is the uncompressed byte. +* 0x03 +* : : +* 0xFE -- Compress by nibble blocks. +* Example: +* Original stream: 0x84210842108421084210 +* Compressed stream: 0x0584210 +* Detail: 0x05 is the code, means 5 nibbles block. +* 0x84210 is the 5 nibble blocks. +* The whole row is 80 bits given by g_usiDataSize. +* The number of times the block repeat itself +* is found by g_usiDataSize/(4*0x05) which is 4. +* 0xFF -- Compress by the most frequently happen byte. +* Example: +* Original stream: 0x04020401030904040404 +* Compressed stream: 0xFF04(0,1,0x02,0,1,0x01,1,0x03,1,0x09,0,0,0) +* or: 0xFF044090181C240 +* Detail: 0xFF is the code, 0x04 is the key. +* a bit of 0 represent the key shall be put into +* the current bit position and a bit of 1 +* represent copying the next of 8 bits of data +* in. +* +***************************************************************/ + +void ispVMData(unsigned char *ByteData) +{ + //09/11/07 NN added local variables initialization + unsigned short size = 0; + unsigned short i, j, m, getData = 0; + unsigned char cDataByte = 0; + unsigned char compress = 0; + unsigned short FFcount = 0; + unsigned char compr_char = 0xFF; + unsigned short index = 0; + signed char compression = 0; + + /*convert number in bits to bytes*/ + if (g_usiDataSize % 8 > 0) { + //09/11/07 NN Type cast mismatch variables + size = (unsigned short)(g_usiDataSize / 8 + 1); + } else { + //09/11/07 NN Type cast mismatch variables + size = (unsigned short)(g_usiDataSize / 8); + } + + /* If there is compression, then check if compress by key of 0x00 or 0xFF + or by other keys or by nibble blocks*/ + + if (g_usDataType & COMPRESS) { + compression = 1; + if (((compress = GetByte()) == VAR) && (g_usDataType & HEAP_IN)) { + getData = 1; + g_usDataType &= ~(HEAP_IN); + compress = GetByte(); + } + + switch (compress) { + case 0x00: + /* No compression */ + compression = 0; + break; + case 0x01: + /* Compress by byte 0x00 */ + compr_char = 0x00; + break; + case 0x02: + /* Compress by byte 0xFF */ + compr_char = 0xFF; + break; + case 0xFF: + /* Huffman encoding */ + compr_char = GetByte(); + i = 8; + for (index = 0; index < size; index++) { + ByteData[index] = 0x00; + if (i > 7) { + cDataByte = GetByte(); + i = 0; + } + if ((cDataByte << i++) & 0x80) + m = 8; + else { + ByteData[index] = compr_char; + m = 0; + } + + for (j = 0; j < m; j++) { + if (i > 7) { + cDataByte = GetByte(); + i = 0; + } + ByteData[index] |= ((cDataByte << i++) & 0x80) >> j; + } + } + size = 0; + break; + default: + for (index = 0; index < size; index++) + ByteData[index] = 0x00; + for (index = 0; index < compress; index++) { + if (index % 2 == 0) + cDataByte = GetByte(); + for (i = 0; i < size * 2 / compress; i++) { + //09/11/07 NN Type cast mismatch variables + j = (unsigned short)(index + (i * (unsigned short)compress)); + /*clear the nibble to zero first*/ + if (j % 2) { + if (index % 2) + ByteData[j / 2] |= cDataByte & 0x0F; + else + ByteData[j / 2] |= cDataByte >> 4; + } else { + if (index % 2) + ByteData[j / 2] |= cDataByte << 4; + else + ByteData[j / 2] |= cDataByte & 0xF0; + } + } + } + size = 0; + break; + } + } + + FFcount = 0; + + /* Decompress by byte 0x00 or 0xFF */ + for (index = 0; index < size; index++) { + if (FFcount <= 0) { + cDataByte = GetByte(); + if ((cDataByte == VAR) && (g_usDataType & HEAP_IN) && !getData && !(g_usDataType & COMPRESS)) { + getData = 1; + g_usDataType &= ~(HEAP_IN); + cDataByte = GetByte(); + } + ByteData[index] = cDataByte; + if ((compression) && (cDataByte == compr_char)) /*decompression is on*/ + //09/11/07 NN Type cast mismatch variables + FFcount = (unsigned short)ispVMDataSize(); /*The number of 0xFF or 0x00 bytes*/ + } else { + FFcount--; /*Use up the 0xFF chain first*/ + ByteData[index] = compr_char; + } + } + + if (getData) { + g_usDataType |= HEAP_IN; + getData = 0; + } +} + +/*************************************************************** +* +* ispVMShift +* +* Processes the SDR/XSDR/SIR commands. +* +***************************************************************/ + +signed char ispVMShift(signed char a_cCode) +{ + //09/11/07 NN added local variables initialization + unsigned short iDataIndex = 0; + unsigned short iReadLoop = 0; + signed char cRetCode = 0; + + cRetCode = 0; + //09/11/07 NN Type cast mismatch variables + g_usiDataSize = (unsigned short)ispVMDataSize(); + + g_usDataType &= ~(SIR_DATA + EXPRESS + SDR_DATA); /*clear the flags first*/ + + switch (a_cCode) { + case SIR: + g_usDataType |= SIR_DATA; + /* 1/15/04 If performing cascading, then go directly to SHIFTIR. Else, + go to IRPAUSE before going to SHIFTIR */ + if (g_usFlowControl & CASCADE) { + ispVMStateMachine(SHIFTIR); + } else { + ispVMStateMachine(IRPAUSE); + ispVMStateMachine(SHIFTIR); + if (g_usHeadIR > 0) { + ispVMBypass(HIR, g_usHeadIR); + sclock(); + } + } + break; + case XSDR: + g_usDataType |= EXPRESS; /*mark simultaneous in and out*/ + case SDR: + g_usDataType |= SDR_DATA; + /* 1/15/04 If already in SHIFTDR, then do not move state or shift in header. + This would imply that the previously shifted frame was a cascaded frame. */ + if (g_cCurrentJTAGState != SHIFTDR) { + /* 1/15/04 If performing cascading, then go directly to SHIFTDR. Else, + go to DRPAUSE before going to SHIFTDR */ + if (g_usFlowControl & CASCADE) { + if (g_cCurrentJTAGState == DRPAUSE) { + ispVMStateMachine(SHIFTDR); + /* 1/15/04 If cascade flag has been set and the current state is + DRPAUSE, this implies that the first cascaded frame is about to + be shifted in. The header must be shifted prior to shifting + the first cascaded frame. */ + if (g_usHeadDR > 0) { + ispVMBypass(HDR, g_usHeadDR); + sclock(); + } + } else { + ispVMStateMachine(SHIFTDR); + } + } else { + ispVMStateMachine(DRPAUSE); + ispVMStateMachine(SHIFTDR); + if (g_usHeadDR > 0) { + ispVMBypass(HDR, g_usHeadDR); + sclock(); + } + } + } + break; + default: + return (VME_INVALID_FILE); + } + + cRetCode = ispVMDataCode(); + if (cRetCode != 0) { + return (VME_INVALID_FILE); + } + +#ifdef VME_DEBUG + if (g_usDataType & TDI_DATA) { + printf("\n\t\tTDI "); + PrintData(g_usiDataSize, g_pucInData); + } + + if (g_usDataType & TDO_DATA) { + printf("\n\t\tTDO "); + PrintData(g_usiDataSize, g_pucOutData); + } + + if (g_usDataType & MASK_DATA) { + printf("\n\t\tMASK "); + PrintData(g_usiDataSize, g_pucOutMaskData); + } + + if (g_usDataType & DMASK_DATA) { + printf("\n\t\tDMASK "); + PrintData(g_usiDataSize, g_pucOutDMaskData); + } + + printf(";\n"); +#endif //VME_DEBUG + if (g_usDataType & TDO_DATA || g_usDataType & DMASK_DATA) { + if (g_usDataType & DMASK_DATA) { + + cRetCode = ispVMReadandSave(g_usiDataSize); + + if (!cRetCode) { + if (g_usTailDR > 0) { + sclock(); + ispVMBypass(TDR, g_usTailDR); + } + ispVMStateMachine(DRPAUSE); + ispVMStateMachine(SHIFTDR); + if (g_usHeadDR > 0) { + ispVMBypass(HDR, g_usHeadDR); + sclock(); + } + for (iDataIndex = 0; iDataIndex < g_usiDataSize / 8 + 1; iDataIndex++) + g_pucInData[iDataIndex] = g_pucOutData[iDataIndex]; + g_usDataType &= ~(TDO_DATA + DMASK_DATA); + cRetCode = ispVMSend(g_usiDataSize); + } + } else { + + cRetCode = ispVMRead(g_usiDataSize); + if (cRetCode == -1 && g_cVendor == XILINX) { + for (iReadLoop = 0; iReadLoop < 30; iReadLoop++) { + cRetCode = ispVMRead(g_usiDataSize); + if (!cRetCode) { + break; + } else { + ispVMStateMachine(DRPAUSE); /*Always DRPAUSE*/ + /*Bypass other devices when appropriate*/ + ispVMBypass(TDR, g_usTailDR); + ispVMStateMachine(g_ucEndDR); + ispVMStateMachine(IDLE); + ispVMDelay(1000); + } + } + } + } + } else { /*TDI only*/ + cRetCode = ispVMSend(g_usiDataSize); + + } + + /*transfer the input data to the output buffer for the next verify*/ + if ((g_usDataType & EXPRESS) || (a_cCode == SDR)) { + if (g_pucOutData) { + for (iDataIndex = 0; iDataIndex < g_usiDataSize / 8 + 1; iDataIndex++) + g_pucOutData[iDataIndex] = g_pucInData[iDataIndex]; + } + } + + switch (a_cCode) { + case SIR: + /* 1/15/04 If not performing cascading, then shift ENDIR */ + if (!(g_usFlowControl & CASCADE)) { + if (g_usTailIR > 0) { + sclock(); + ispVMBypass(TIR, g_usTailIR); + } + ispVMStateMachine(g_ucEndIR); + } + break; + case XSDR: + case SDR: + /* 1/15/04 If not performing cascading, then shift ENDDR */ + if (!(g_usFlowControl & CASCADE)) { + if (g_usTailDR > 0) { + sclock(); + ispVMBypass(TDR, g_usTailDR); + } + ispVMStateMachine(g_ucEndDR); + } + break; + default: + break; + } + + return (cRetCode); +} + +/*************************************************************** +* +* ispVMAmble +* +* This routine is to extract Header and Trailer parameter for SIR and +* SDR operations. +* +* The Header and Trailer parameter are the pre-amble and post-amble bit +* stream need to be shifted into TDI or out of TDO of the devices. Mostly +* is for the purpose of bypassing the leading or trailing devices. ispVM +* supports only shifting data into TDI to bypass the devices. +* +* For a single device, the header and trailer parameters are all set to 0 +* as default by ispVM. If it is for multiple devices, the header and trailer +* value will change as specified by the VME file. +* +***************************************************************/ + +signed char ispVMAmble(signed char Code) +{ + signed char compress = 0; + //09/11/07 NN Type cast mismatch variables + g_usiDataSize = (unsigned short)ispVMDataSize(); + +#ifdef VME_DEBUG + printf("%d", g_usiDataSize); +#endif //VME_DEBUG + + if (g_usiDataSize) { + + /**************************************************************************** + * + * Discard the TDI byte and set the compression bit in the data type register + * to false if compression is set because TDI data after HIR/HDR/TIR/TDR is not + * compressed. + * + *****************************************************************************/ + + GetByte(); + if (g_usDataType & COMPRESS) { + g_usDataType &= ~(COMPRESS); + compress = 1; + } + } + + switch (Code) { + case HIR: + + /**************************************************************************** + * + * Store the maximum size of the HIR buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usHIRSize) { + g_usHIRSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Assign the HIR value and allocate memory. + * + *****************************************************************************/ + + g_usHeadIR = g_usiDataSize; + if (g_usHeadIR) { + ispVMMemManager(HIR, g_usHeadIR); + ispVMData(g_pucHIRData); + +#ifdef VME_DEBUG + printf(" TDI "); + PrintData(g_usHeadIR, g_pucHIRData); +#endif //VME_DEBUG + } + break; + case TIR: + + /**************************************************************************** + * + * Store the maximum size of the TIR buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usTIRSize) { + g_usTIRSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Assign the TIR value and allocate memory. + * + *****************************************************************************/ + + g_usTailIR = g_usiDataSize; + if (g_usTailIR) { + ispVMMemManager(TIR, g_usTailIR); + ispVMData(g_pucTIRData); + +#ifdef VME_DEBUG + printf(" TDI "); + PrintData(g_usTailIR, g_pucTIRData); +#endif //VME_DEBUG + } + break; + case HDR: + + /**************************************************************************** + * + * Store the maximum size of the HDR buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usHDRSize) { + g_usHDRSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Assign the HDR value and allocate memory. + * + *****************************************************************************/ + + g_usHeadDR = g_usiDataSize; + if (g_usHeadDR) { + ispVMMemManager(HDR, g_usHeadDR); + ispVMData(g_pucHDRData); + +#ifdef VME_DEBUG + printf(" TDI "); + PrintData(g_usHeadDR, g_pucHDRData); +#endif //VME_DEBUG + } + break; + case TDR: + + /**************************************************************************** + * + * Store the maximum size of the TDR buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usiDataSize > g_usTDRSize) { + g_usTDRSize = g_usiDataSize; + } + + /**************************************************************************** + * + * Assign the TDR value and allocate memory. + * + *****************************************************************************/ + + g_usTailDR = g_usiDataSize; + if (g_usTailDR) { + ispVMMemManager(TDR, g_usTailDR); + ispVMData(g_pucTDRData); + +#ifdef VME_DEBUG + printf(" TDI "); + PrintData(g_usTailDR, g_pucTDRData); +#endif //VME_DEBUG + } + break; + default: + break; + } + + /**************************************************************************** + * + * Re-enable compression if it was previously set. + * + *****************************************************************************/ + + if (compress) { + g_usDataType |= COMPRESS; + } + + if (g_usiDataSize) { + Code = GetByte(); + if (Code == CONTINUE) { + return 0; + } else { + + /**************************************************************************** + * + * Encountered invalid opcode. + * + *****************************************************************************/ + + return VME_INVALID_FILE; + } + } + + return 0; +} + +/*************************************************************** +* +* ispVMLoop +* +* Perform the function call upon by the REPEAT opcode. +* Memory is to be allocated to store the entire loop from REPEAT to ENDLOOP. +* After the loop is stored then execution begin. The REPEATLOOP flag is set +* on the g_usFlowControl register to indicate the repeat loop is in session +* and therefore fetch opcode from the memory instead of from the file. +* +***************************************************************/ + +signed char ispVMLoop(unsigned short a_usLoopCount) +{ + //09/11/07 NN added local variables initialization + signed char cRetCode = 0; + unsigned short iHeapIndex = 0; + unsigned short iLoopIndex = 0; + + g_usShiftValue = 0; + for (iHeapIndex = 0; iHeapIndex < g_iHEAPSize; iHeapIndex++) { + g_pucHeapMemory[iHeapIndex] = GetByte(); + } + + if (g_pucHeapMemory[iHeapIndex - 1] != ENDLOOP) { + return (VME_INVALID_FILE); + } + + g_usFlowControl |= REPEATLOOP; + g_usDataType |= HEAP_IN; + + for (iLoopIndex = 0; iLoopIndex < a_usLoopCount; iLoopIndex++) { + g_iHeapCounter = 0; + cRetCode = ispVMCode(); + g_usRepeatLoops++; + if (cRetCode < 0) { + break; + } + } + + g_usDataType &= ~(HEAP_IN); + g_usFlowControl &= ~(REPEATLOOP); + return (cRetCode); +} + +/*************************************************************** +* +* ispVMBitShift +* +* Shift the TDI stream left or right by the number of bits. The data in +* *g_pucInData is of the VME format, so the actual shifting is the reverse of +* IEEE 1532 or SVF format. +* +***************************************************************/ + +signed char ispVMBitShift(signed char mode, unsigned short bits) +{ + //09/11/07 NN added local variables initialization + unsigned short i = 0; + unsigned short size = 0; + unsigned short tmpbits = 0; + + if (g_usiDataSize % 8 > 0) { + //09/11/07 NN Type cast mismatch variables + size = (unsigned short)(g_usiDataSize / 8 + 1); + } else { + //09/11/07 NN Type cast mismatch variables + size = (unsigned short)(g_usiDataSize / 8); + } + + switch (mode) { + case SHR: + for (i = 0; i < size; i++) { + if (g_pucInData[i] != 0) { + tmpbits = bits; + while (tmpbits > 0) { + g_pucInData[i] <<= 1; + if (g_pucInData[i] == 0) { + i--; + g_pucInData[i] = 1; + } + tmpbits--; + } + } + } + break; + case SHL: + for (i = 0; i < size; i++) { + if (g_pucInData[i] != 0) { + tmpbits = bits; + while (tmpbits > 0) { + g_pucInData[i] >>= 1; + if (g_pucInData[i] == 0) { + i--; + g_pucInData[i] = 8; + } + tmpbits--; + } + } + } + break; + default: + return (VME_INVALID_FILE); + } + + return (0); +} + +/*************************************************************** +* +* ispVMComment +* +* Displays the SVF comments. +* +***************************************************************/ + +void ispVMComment(unsigned short a_usCommentSize) +{ + char cCurByte = 0; + for (; a_usCommentSize > 0; a_usCommentSize--) { + /**************************************************************************** + * + * Print character to the terminal. + * + *****************************************************************************/ + cCurByte = GetByte(); + vme_out_char(cCurByte); + } + cCurByte = '\n'; + vme_out_char(cCurByte); +} + +/*************************************************************** +* +* ispVMHeader +* +* Iterate the length of the header and discard it. +* +***************************************************************/ + +void ispVMHeader(unsigned short a_usHeaderSize) +{ + for (; a_usHeaderSize > 0; a_usHeaderSize--) { + GetByte(); + } +} + +/*************************************************************** +* +* ispVMCalculateCRC32 +* +* Calculate the 32-bit CRC. +* +***************************************************************/ + +void ispVMCalculateCRC32(unsigned char a_ucData) +{ + //09/11/07 NN added local variables initialization + unsigned char ucIndex = 0; + unsigned char ucFlipData = 0; + unsigned short usCRCTableEntry = 0; + unsigned int crc_table[16] = { + 0x0000, 0xCC01, 0xD801, + 0x1400, 0xF001, 0x3C00, + 0x2800, 0xE401, 0xA001, + 0x6C00, 0x7800, 0xB401, + 0x5000, 0x9C01, 0x8801, + 0x4400 + }; + + for (ucIndex = 0; ucIndex < 8; ucIndex++) { + ucFlipData <<= 1; + if (a_ucData & 0x01) { + ucFlipData |= 0x01; + } + a_ucData >>= 1; + } + + //09/11/07 NN Type cast mismatch variables + usCRCTableEntry = (unsigned short)(crc_table[g_usCalculatedCRC & 0xF]); + g_usCalculatedCRC = (unsigned short)((g_usCalculatedCRC >> 4) & 0x0FFF); + g_usCalculatedCRC = (unsigned short)(g_usCalculatedCRC ^ usCRCTableEntry ^ crc_table[ucFlipData & 0xF]); + usCRCTableEntry = (unsigned short)(crc_table[g_usCalculatedCRC & 0xF]); + g_usCalculatedCRC = (unsigned short)((g_usCalculatedCRC >> 4) & 0x0FFF); + g_usCalculatedCRC = (unsigned short)(g_usCalculatedCRC ^ usCRCTableEntry ^ crc_table[(ucFlipData >> 4) & 0xF]); +} + +/*************************************************************** +* +* ispVMLCOUNT +* +* Process the intelligent programming loops. +* +***************************************************************/ + +signed char ispVMLCOUNT(unsigned short a_usCountSize) +{ + unsigned short usContinue = 1; + unsigned short usIntelBufferIndex = 0; + unsigned short usCountIndex = 0; + signed char cRetCode = 0; + signed char cRepeatHeap = 0; + signed char cOpcode = 0; + unsigned char ucState = 0; + unsigned short usDelay = 0; + unsigned short usToggle = 0; + + g_usIntelBufferSize = (unsigned short)ispVMDataSize(); + + /**************************************************************************** + * + * Allocate memory for intel buffer. + * + *****************************************************************************/ + + ispVMMemManager(LHEAP, g_usIntelBufferSize); + + /**************************************************************************** + * + * Store the maximum size of the intelligent buffer. Used to convert VME to HEX. + * + *****************************************************************************/ + + if (g_usIntelBufferSize > g_usLCOUNTSize) { + g_usLCOUNTSize = g_usIntelBufferSize; + } + + /**************************************************************************** + * + * Copy intel data to the buffer. + * + *****************************************************************************/ + + for (usIntelBufferIndex = 0; usIntelBufferIndex < g_usIntelBufferSize; usIntelBufferIndex++) { + g_pucIntelBuffer[usIntelBufferIndex] = GetByte(); + } + + /**************************************************************************** + * + * Set the data type register to get data from the intelligent data buffer. + * + *****************************************************************************/ + + g_usDataType |= LHEAP_IN; + + /**************************************************************************** + * + * If the HEAP_IN flag is set, temporarily unset the flag so data will be + * retrieved from the status buffer. + * + *****************************************************************************/ + + if (g_usDataType & HEAP_IN) { + g_usDataType &= ~HEAP_IN; + cRepeatHeap = 1; + } + +#ifdef VME_DEBUG + printf("LCOUNT %d;\n", a_usCountSize); +#endif //VME_DEBUG + + /**************************************************************************** + * + * Iterate through the intelligent programming command. + * + *****************************************************************************/ + + for (usCountIndex = 0; usCountIndex < a_usCountSize; usCountIndex++) { + + /**************************************************************************** + * + * Initialize the intel data index to 0 before each iteration. + * + *****************************************************************************/ + + g_usIntelDataIndex = 0; + cOpcode = 0; + ucState = 0; + usDelay = 0; + usToggle = 0; + usContinue = 1; + + /*************************************************************** + * + * Begin looping through all the VME opcodes. + * + ***************************************************************/ + /*************************************************************** + * 4/1/09 Nguyen replaced the recursive function call codes on + * the ispVMLCOUNT function + * + ***************************************************************/ + while (usContinue) { + cOpcode = GetByte(); + switch (cOpcode) { + case HIR: + case TIR: + case HDR: + case TDR: + /*************************************************************** + * + * Set the header/trailer of the device in order to bypass + * successfully. + * + ***************************************************************/ + + ispVMAmble(cOpcode); + break; + case STATE: + + /*************************************************************** + * + * Step the JTAG state machine. + * + ***************************************************************/ + + ucState = GetByte(); + /*************************************************************** + * + * Step the JTAG state machine to DRCAPTURE to support Looping. + * + ***************************************************************/ + + if ((g_usDataType & LHEAP_IN) && + (ucState == DRPAUSE) && + (g_cCurrentJTAGState == ucState)) { + ispVMStateMachine(DRCAPTURE); + } + ispVMStateMachine(ucState); +#ifdef VME_DEBUG + printf("LDELAY %s ", GetState(ucState)); +#endif //VME_DEBUG + break; + case SIR: +#ifdef VME_DEBUG + printf("SIR "); +#endif //VME_DEBUG + /*************************************************************** + * + * Shift in data into the device. + * + ***************************************************************/ + + cRetCode = ispVMShift(cOpcode); + break; + case SDR: + +#ifdef VME_DEBUG + printf("LSDR "); +#endif //VME_DEBUG + /*************************************************************** + * + * Shift in data into the device. + * + ***************************************************************/ + + cRetCode = ispVMShift(cOpcode); + break; + case WAIT: + + /*************************************************************** + * + * Observe delay. + * + ***************************************************************/ + + usDelay = (unsigned short)ispVMDataSize(); + ispVMDelay(usDelay); + +#ifdef VME_DEBUG + if (usDelay & 0x8000) { + + /*************************************************************** + * + * Since MSB is set, the delay time must be decoded to + * millisecond. The SVF2VME encodes the MSB to represent + * millisecond. + * + ***************************************************************/ + + usDelay &= ~0x8000; + printf("%.2E SEC;\n", (float)usDelay / 1000); + } else { + + /*************************************************************** + * + * Since MSB is not set, the delay time is given as microseconds. + * + ***************************************************************/ + + printf("%.2E SEC;\n", (float)usDelay / 1000000); + } +#endif //VME_DEBUG + break; + case TCK: + + /*************************************************************** + * + * Issue clock toggles. + * + ***************************************************************/ + + usToggle = (unsigned short)ispVMDataSize(); + ispVMClocks(usToggle); + +#ifdef VME_DEBUG + printf("RUNTEST %d TCK;\n", usToggle); +#endif //VME_DEBUG + break; + case ENDLOOP: + + /*************************************************************** + * + * Exit point from processing loops. + * + ***************************************************************/ + usContinue = 0; + break; + + case COMMENT: + + /*************************************************************** + * + * Display comment. + * + ***************************************************************/ + + ispVMComment((unsigned short)ispVMDataSize()); + break; + case ispEN: + ucState = GetByte(); + if ((ucState == ON) || (ucState == 0x01)) + writePort(JTAG_ENABLE, 0x01); + else + writePort(JTAG_ENABLE, 0x00); + ispVMDelay(1); + break; + case TRST: + if (GetByte() == 0x01) + writePort(JTAG_TRST, 0x01); + else + writePort(JTAG_TRST, 0x00); + ispVMDelay(1); + break; + default: + + /*************************************************************** + * + * Invalid opcode encountered. + * + ***************************************************************/ + +#ifdef VME_DEBUG + printf("\nINVALID OPCODE: 0x%.2X\n", cOpcode); +#endif //VME_DEBUG + + return VME_INVALID_FILE; + } + } + if (cRetCode >= 0) { + /**************************************************************************** + * + * Break if intelligent programming is successful. + * + *****************************************************************************/ + + break; + } + + } + /**************************************************************************** + * + * If HEAP_IN flag was temporarily disabled, re-enable it before exiting. + * + *****************************************************************************/ + + if (cRepeatHeap) { + g_usDataType |= HEAP_IN; + } + + /**************************************************************************** + * + * Set the data type register to not get data from the intelligent data buffer. + * + *****************************************************************************/ + + g_usDataType &= ~LHEAP_IN; + return cRetCode; +} + +/*************************************************************** +* +* ispVMClocks +* +* Applies the specified number of pulses to TCK. +* +***************************************************************/ + +void ispVMClocks(unsigned short Clocks) +{ + unsigned short iClockIndex = 0; + for (iClockIndex = 0; iClockIndex < Clocks; iClockIndex++) { + sclock(); + } +} + +/*************************************************************** +* +* ispVMBypass +* +* This procedure takes care of the HIR, HDR, TIR, TDR for the +* purpose of putting the other devices into Bypass mode. The +* current state is checked to find out if it is at DRPAUSE or +* IRPAUSE. If it is at DRPAUSE, perform bypass register scan. +* If it is at IRPAUSE, scan into instruction registers the bypass +* instruction. +* +***************************************************************/ + +void ispVMBypass(signed char ScanType, unsigned short Bits) +{ + //09/11/07 NN added local variables initialization + unsigned short iIndex = 0; + unsigned short iSourceIndex = 0; + unsigned char cBitState = 0; + unsigned char cCurByte = 0; + unsigned char *pcSource = NULL; + + if (Bits <= 0) { + return; + } + + switch (ScanType) { + case HIR: + pcSource = g_pucHIRData; + break; + case TIR: + pcSource = g_pucTIRData; + break; + case HDR: + pcSource = g_pucHDRData; + break; + case TDR: + pcSource = g_pucTDRData; + break; + default: + break; + } + if (pcSource) { + iSourceIndex = 0; + cBitState = 0; + for (iIndex = 0; iIndex < Bits - 1; iIndex++) { + /* Scan instruction or bypass register */ + if (iIndex % 8 == 0) { + cCurByte = pcSource[iSourceIndex++]; + } + cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); + writePort(JTAG_TDI, cBitState); + sclock(); + } + + if (iIndex % 8 == 0) { + cCurByte = pcSource[iSourceIndex++]; + } + + cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); + writePort(JTAG_TDI, cBitState); + } +} + +/*************************************************************** +* +* ispVMStateMachine +* +* This procedure steps all devices in the daisy chain from a given +* JTAG state to the next desirable state. If the next state is TLR, +* the JTAG state machine is brute forced into TLR by driving TMS +* high and pulse TCK 6 times. +* +***************************************************************/ + +void ispVMStateMachine(signed char cNextJTAGState) +{ + //09/11/07 NN added local variables initialization + signed char cPathIndex = 0; + signed char cStateIndex = 0; + short int found = 0; + + if ((g_cCurrentJTAGState == cNextJTAGState) && (cNextJTAGState != RESET)) { + return; + } + + for (cStateIndex = 0; cStateIndex < 25; cStateIndex++) { + if ((g_cCurrentJTAGState == g_JTAGTransistions[cStateIndex].CurState) && (cNextJTAGState == g_JTAGTransistions[cStateIndex].NextState)) { + found = 1; + break; + } + } + if (found) { + g_cCurrentJTAGState = cNextJTAGState; + for (cPathIndex = 0; cPathIndex < g_JTAGTransistions[cStateIndex].Pulses; cPathIndex++) { + if ((g_JTAGTransistions[cStateIndex].Pattern << cPathIndex) & 0x80) { + writePort(JTAG_TMS, (unsigned char)0x01); + } else { + writePort(JTAG_TMS, (unsigned char)0x00); + } + sclock(); + } + + writePort(JTAG_TDI, 0x00); + writePort(JTAG_TMS, 0x00); + } +} + +/*************************************************************** +* +* ispVMStart +* +* Enable the port to the device and set the state to RESET (TLR). +* +***************************************************************/ + +void ispVMStart() +{ +#ifdef VME_DEBUG + printf("// ISPVM EMBEDDED ADDED\n"); + printf("STATE RESET;\n"); +#endif + + ispVMStateMachine(RESET); /*step devices to RESET state*/ + +} + +/*************************************************************** +* +* ispVMEnd +* +* Set the state of devices to RESET to enable the devices and disable +* the port. +* +***************************************************************/ + +void ispVMEnd() +{ +#ifdef VME_DEBUG + printf("// ISPVM EMBEDDED ADDED\n"); + printf("STATE RESET;\n"); + printf("RUNTEST 1.00E-001 SEC;\n"); +#endif + + ispVMStateMachine(RESET); /*step devices to RESET state */ + ispVMDelay(1000); /*wake up devices*/ +} + +/*************************************************************** +* +* ispVMSend +* +* Send the TDI data stream to devices. The data stream can be +* instructions or data. +* +***************************************************************/ + +signed char ispVMSend(unsigned short a_usiDataSize) +{ + //09/11/07 NN added local variables initialization + unsigned short iIndex = 0; + unsigned short iInDataIndex = 0; + unsigned char cCurByte = 0; + unsigned char cBitState = 0; + + for (iIndex = 0; iIndex < a_usiDataSize - 1; iIndex++) { + if (iIndex % 8 == 0) { + cCurByte = g_pucInData[iInDataIndex++]; + } + cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); + writePort(JTAG_TDI, cBitState); + sclock(); + } + + if (iIndex % 8 == 0) { + /* Take care of the last bit */ + cCurByte = g_pucInData[iInDataIndex]; + } + + cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); + + writePort(JTAG_TDI, cBitState); + if (g_usFlowControl & CASCADE) { + /* 1/15/04 Clock in last bit for the first n-1 cascaded frames */ + sclock(); + } + + return 0; +} + +/*************************************************************** +* +* ispVMRead +* +* Read the data stream from devices and verify. +* +***************************************************************/ + +signed char ispVMRead(unsigned short a_usiDataSize) //32 +{ + //09/11/07 NN added local variables initialization + unsigned short usDataSizeIndex = 0; + unsigned short usErrorCount = 0; + unsigned short usLastBitIndex = 0; + unsigned char cDataByte = 0; + unsigned char cMaskByte = 0; + unsigned char cInDataByte = 0; + unsigned char cCurBit = 0; + unsigned char cByteIndex = 0; + unsigned short usBufferIndex = 0; + unsigned char ucDisplayByte = 0x00; + unsigned char ucDisplayFlag = 0x01; + char StrChecksum[256] = { 0 }; + unsigned char g_usCalculateChecksum = 0x00; + + //09/11/07 NN Type cast mismatch variables + usLastBitIndex = (unsigned short)(a_usiDataSize - 1); + + /**************************************************************************** + * + * If mask is not all zeros, then set the display flag to 0x00, otherwise + * it shall be set to 0x01 to indicate that data read from the device shall + * be displayed. If VME_DEBUG is defined, always display data. + * + *****************************************************************************/ + + for (usDataSizeIndex = 0; usDataSizeIndex < (a_usiDataSize + 7) / 8; usDataSizeIndex++) { + + if (g_usDataType & MASK_DATA) { + if (g_pucOutMaskData[usDataSizeIndex] != 0x00) { + ucDisplayFlag = 0x00; + break; + } + } else if (g_usDataType & CMASK_DATA) { + g_usCalculateChecksum = 0x01; + ucDisplayFlag = 0x00; + break; + } else { + ucDisplayFlag = 0x00; + break; + } + } + + /**************************************************************************** + * + * Begin shifting data in and out of the device. + * + *****************************************************************************/ + for (usDataSizeIndex = 0; usDataSizeIndex < a_usiDataSize; usDataSizeIndex++) { + if (cByteIndex == 0) { + + /*************************************************************** + * + * Grab byte from TDO buffer. + * + ***************************************************************/ + + if (g_usDataType & TDO_DATA) { + cDataByte = g_pucOutData[usBufferIndex]; + } + + /*************************************************************** + * + * Grab byte from MASK buffer. + * + ***************************************************************/ + + if (g_usDataType & MASK_DATA) { + cMaskByte = g_pucOutMaskData[usBufferIndex]; + } else { + cMaskByte = 0xFF; + } + + /*************************************************************** + * + * Grab byte from CMASK buffer. + * + ***************************************************************/ + + if (g_usDataType & CMASK_DATA) { + cMaskByte = 0x00; + g_usCalculateChecksum = 0x01; + } + + /*************************************************************** + * + * Grab byte from TDI buffer. + * + ***************************************************************/ + + if (g_usDataType & TDI_DATA) { + cInDataByte = g_pucInData[usBufferIndex]; + } + + usBufferIndex++; + } + + cCurBit = readPort(); + + if (ucDisplayFlag) { + ucDisplayByte <<= 1; + ucDisplayByte |= cCurBit; + } + + /**************************************************************************** + * + * Check if data read from port matches with expected TDO. + * + *****************************************************************************/ + + if (g_usDataType & TDO_DATA) { + //08/28/08 NN Added Calculate checksum support. + if (g_usCalculateChecksum) { + if (cCurBit == 0x01) + g_usChecksum += (1 << (g_uiChecksumIndex % 8)); + g_uiChecksumIndex++; + } else { + if ((((cMaskByte << cByteIndex) & 0x80) ? 0x01 : 0x00)) { + if (cCurBit != (unsigned char)(((cDataByte << cByteIndex) & 0x80) ? 0x01 : 0x00)) { + usErrorCount++; + } + } + } + } + + /**************************************************************************** + * + * Write TDI data to the port. + * + *****************************************************************************/ + + writePort(JTAG_TDI, (unsigned char)(((cInDataByte << cByteIndex) & 0x80) ? 0x01 : 0x00)); + + if (usDataSizeIndex < usLastBitIndex) { + + /**************************************************************************** + * + * Clock data out from the data shift register. + * + *****************************************************************************/ + + sclock(); + } else if (g_usFlowControl & CASCADE) { + + /**************************************************************************** + * + * Clock in last bit for the first N - 1 cascaded frames. + * + *****************************************************************************/ + + sclock(); + } + + /*************************************************************** + * + * Increment the byte index. If it exceeds 7, then reset it back + * to zero. + * + ***************************************************************/ + + cByteIndex++; + if (cByteIndex >= 8) { + if (ucDisplayFlag) { + + /*************************************************************** + * + * Store displayed data in the TDO buffer. By reusing the TDO + * buffer to store displayed data, there is no need to allocate + * a buffer simply to hold display data. This will not cause any + * false verification errors because the true TDO byte has already + * been consumed. + * + ***************************************************************/ + + g_pucOutData[usBufferIndex - 1] = ucDisplayByte; + ucDisplayByte = 0; + } + + cByteIndex = 0; + } + //09/12/07 Nguyen changed to display the 1 bit expected data + else if (a_usiDataSize == 1) { + if (ucDisplayFlag) { + + /*************************************************************** + * + * Store displayed data in the TDO buffer. By reusing the TDO + * buffer to store displayed data, there is no need to allocate + * a buffer simply to hold display data. This will not cause any + * false verification errors because the true TDO byte has already + * been consumed. + * + ***************************************************************/ + + /**************************************************************************** + * + * Flip ucDisplayByte and store it in cDataByte. + * + *****************************************************************************/ + cDataByte = 0x00; + for (usBufferIndex = 0; usBufferIndex < 8; usBufferIndex++) { + cDataByte <<= 1; + if (ucDisplayByte & 0x01) { + cDataByte |= 0x01; + } + ucDisplayByte >>= 1; + } + g_pucOutData[0] = cDataByte; + ucDisplayByte = 0; + } + + cByteIndex = 0; + } + } + if (ucDisplayFlag) { + + /**************************************************************************** + * + * Display data read from the device. + * + *****************************************************************************/ + +#ifdef VME_DEBUG + printf("RECIEVED TDO ("); +#else + vme_out_string("Display Data: 0x"); +#endif //VME_DEBUG + + //09/11/07 NN Type cast mismatch variables + for (usDataSizeIndex = (unsigned short)((a_usiDataSize + 7) / 8); usDataSizeIndex > 0; usDataSizeIndex--) { + cMaskByte = g_pucOutData[usDataSizeIndex - 1]; + cDataByte = 0x00; + + /**************************************************************************** + * + * Flip cMaskByte and store it in cDataByte. + * + *****************************************************************************/ + + for (usBufferIndex = 0; usBufferIndex < 8; usBufferIndex++) { + cDataByte <<= 1; + if (cMaskByte & 0x01) { + cDataByte |= 0x01; + } + cMaskByte >>= 1; + } +#ifdef VME_DEBUG + printf("%.2X", cDataByte); + if ((((a_usiDataSize + 7) / 8) - usDataSizeIndex) % 40 == 39) { + printf("\n\t\t"); + } +#else + vme_out_hex(cDataByte); +#endif //VME_DEBUG + } + +#ifdef VME_DEBUG + printf(")\n\n"); +#else + vme_out_string("\n\n"); +#endif //VME_DEBUG + //09/02/08 Nguyen changed to display the data Checksum + vme_out_string("g_usChecksum:"); + sprintf(StrChecksum, "%.4X\n\n", (unsigned int)g_usChecksum); + vme_out_string(StrChecksum); + vme_out_string("\n\n"); + if (g_usChecksum != 0) { + g_usChecksum &= 0xFFFF; + sprintf(StrChecksum, "Data Checksum: %.4X\n\n", (unsigned int)g_usChecksum); + vme_out_string(StrChecksum); + g_usChecksum = 0; + } + } + + if (usErrorCount > 0) { + + if (g_usFlowControl & VERIFYUES) { + vme_out_string("USERCODE verification failed. Continue programming......\n\n"); + g_usFlowControl &= ~(VERIFYUES); + return 0; + } else { + +#ifdef VME_DEBUG + printf("TOTAL ERRORS: %d\n", usErrorCount); +#endif //VME_DEBUG + + return VME_VERIFICATION_FAILURE; + } + } else { + if (g_usFlowControl & VERIFYUES) { + vme_out_string("USERCODE verification passed. Programming aborted. \n\n"); + g_usFlowControl &= ~(VERIFYUES); + return 1; + } else { + return 0; + } + } +} + +/*************************************************************** +* +* ispVMReadandSave +* +* Support dynamic I/O. +* +***************************************************************/ + +signed char ispVMReadandSave(unsigned short int a_usiDataSize) +{ + //09/11/07 NN added local variables initialization + unsigned short int usDataSizeIndex = 0; + unsigned short int usLastBitIndex = 0; + unsigned short int usBufferIndex = 0; + unsigned short int usOutBitIndex = 0; + unsigned short int usLVDSIndex = 0; + unsigned char cDataByte = 0; + unsigned char cDMASKByte = 0; + unsigned char cInDataByte = 0; + unsigned char cCurBit = 0; + unsigned char cByteIndex = 0; + signed char cLVDSByteIndex = 0; + + //09/11/07 NN Type cast mismatch variables + usLastBitIndex = (unsigned short)(a_usiDataSize - 1); + + /*************************************************************** + * + * Iterate through the data bits. + * + ***************************************************************/ + + for (usDataSizeIndex = 0; usDataSizeIndex < a_usiDataSize; usDataSizeIndex++) { + if (cByteIndex == 0) { + + /*************************************************************** + * + * Grab byte from DMASK buffer. + * + ***************************************************************/ + + if (g_usDataType & DMASK_DATA) { + cDMASKByte = g_pucOutDMaskData[usBufferIndex]; + } else { + cDMASKByte = 0x00; + } + + /*************************************************************** + * + * Grab byte from TDI buffer. + * + ***************************************************************/ + + if (g_usDataType & TDI_DATA) { + cInDataByte = g_pucInData[usBufferIndex]; + } + + usBufferIndex++; + } + + cCurBit = readPort(); + cDataByte = (unsigned char)(((cInDataByte << cByteIndex) & 0x80) ? 0x01 : 0x00); + + /*************************************************************** + * + * Initialize the byte to be zero. + * + ***************************************************************/ + + if (usOutBitIndex % 8 == 0) { + g_pucOutData[usOutBitIndex / 8] = 0x00; + } + + /*************************************************************** + * + * Use TDI, DMASK, and device TDO to create new TDI (actually + * stored in g_pucOutData). + * + ***************************************************************/ + + if ((((cDMASKByte << cByteIndex) & 0x80) ? 0x01 : 0x00)) { + + if (g_pLVDSList) { + for (usLVDSIndex = 0; usLVDSIndex < g_usLVDSPairCount; usLVDSIndex++) { + if (g_pLVDSList[usLVDSIndex].usNegativeIndex == usDataSizeIndex) { + g_pLVDSList[usLVDSIndex].ucUpdate = 0x01; + break; + } + } + } + + /*************************************************************** + * + * DMASK bit is 1, use TDI. + * + ***************************************************************/ + + g_pucOutData[usOutBitIndex / 8] |= (unsigned char)(((cDataByte & 0x1) ? 0x01 : 0x00) << (7 - usOutBitIndex % 8)); + } else { + + /*************************************************************** + * + * DMASK bit is 0, use device TDO. + * + ***************************************************************/ + + g_pucOutData[usOutBitIndex / 8] |= (unsigned char)(((cCurBit & 0x1) ? 0x01 : 0x00) << (7 - usOutBitIndex % 8)); + } + + /*************************************************************** + * + * Shift in TDI in order to get TDO out. + * + ***************************************************************/ + + usOutBitIndex++; + writePort(JTAG_TDI, cDataByte); + if (usDataSizeIndex < usLastBitIndex) { + sclock(); + } + + /*************************************************************** + * + * Increment the byte index. If it exceeds 7, then reset it back + * to zero. + * + ***************************************************************/ + + cByteIndex++; + if (cByteIndex >= 8) { + cByteIndex = 0; + } + } + + /*************************************************************** + * + * If g_pLVDSList exists and pairs need updating, then update + * the negative-pair to receive the flipped positive-pair value. + * + ***************************************************************/ + + if (g_pLVDSList) { + for (usLVDSIndex = 0; usLVDSIndex < g_usLVDSPairCount; usLVDSIndex++) { + if (g_pLVDSList[usLVDSIndex].ucUpdate) { + + /*************************************************************** + * + * Read the positive value and flip it. + * + ***************************************************************/ + + cDataByte = (unsigned char)(((g_pucOutData[g_pLVDSList[usLVDSIndex].usPositiveIndex / 8] << (g_pLVDSList[usLVDSIndex].usPositiveIndex % 8)) & 0x80) ? 0x01 : 0x00); + //09/11/07 NN Type cast mismatch variables + cDataByte = (unsigned char)(!cDataByte); + + /*************************************************************** + * + * Get the byte that needs modification. + * + ***************************************************************/ + + cInDataByte = g_pucOutData[g_pLVDSList[usLVDSIndex].usNegativeIndex / 8]; + + if (cDataByte) { + + /*************************************************************** + * + * Copy over the current byte and set the negative bit to 1. + * + ***************************************************************/ + + cDataByte = 0x00; + for (cLVDSByteIndex = 7; cLVDSByteIndex >= 0; cLVDSByteIndex--) { + cDataByte <<= 1; + if (7 - (g_pLVDSList[usLVDSIndex].usNegativeIndex % 8) == cLVDSByteIndex) { + + /*************************************************************** + * + * Set negative bit to 1. + * + ***************************************************************/ + + cDataByte |= 0x01; + } else if (cInDataByte & 0x80) { + cDataByte |= 0x01; + } + + cInDataByte <<= 1; + } + + /*************************************************************** + * + * Store the modified byte. + * + ***************************************************************/ + + g_pucOutData[g_pLVDSList[usLVDSIndex].usNegativeIndex / 8] = cDataByte; + } else { + + /*************************************************************** + * + * Copy over the current byte and set the negative bit to 0. + * + ***************************************************************/ + + cDataByte = 0x00; + for (cLVDSByteIndex = 7; cLVDSByteIndex >= 0; cLVDSByteIndex--) { + cDataByte <<= 1; + if (7 - (g_pLVDSList[usLVDSIndex].usNegativeIndex % 8) == cLVDSByteIndex) { + + /*************************************************************** + * + * Set negative bit to 0. + * + ***************************************************************/ + + cDataByte |= 0x00; + } else if (cInDataByte & 0x80) { + cDataByte |= 0x01; + } + + cInDataByte <<= 1; + } + + /*************************************************************** + * + * Store the modified byte. + * + ***************************************************************/ + + g_pucOutData[g_pLVDSList[usLVDSIndex].usNegativeIndex / 8] = cDataByte; + } + + break; + } + } + } + + return (0); +} + +signed char ispVMProcessLVDS(unsigned short a_usLVDSCount) +{ + unsigned short usLVDSIndex = 0; + + /*************************************************************** + * + * Allocate memory to hold LVDS pairs. + * + ***************************************************************/ + + ispVMMemManager(LVDS, a_usLVDSCount); + g_usLVDSPairCount = a_usLVDSCount; + +#ifdef VME_DEBUG + printf("LVDS %d (", a_usLVDSCount); +#endif //VME_DEBUG + + /*************************************************************** + * + * Iterate through each given LVDS pair. + * + ***************************************************************/ + + for (usLVDSIndex = 0; usLVDSIndex < g_usLVDSPairCount; usLVDSIndex++) { + + /*************************************************************** + * + * Assign the positive and negative indices of the LVDS pair. + * + ***************************************************************/ + + //09/11/07 NN Type cast mismatch variables + g_pLVDSList[usLVDSIndex].usPositiveIndex = (unsigned short)ispVMDataSize(); + //09/11/07 NN Type cast mismatch variables + g_pLVDSList[usLVDSIndex].usNegativeIndex = (unsigned short)ispVMDataSize(); + +#ifdef VME_DEBUG + if (usLVDSIndex < g_usLVDSPairCount - 1) { + printf("%d:%d, ", g_pLVDSList[usLVDSIndex].usPositiveIndex, g_pLVDSList[usLVDSIndex].usNegativeIndex); + } else { + printf("%d:%d", g_pLVDSList[usLVDSIndex].usPositiveIndex, g_pLVDSList[usLVDSIndex].usNegativeIndex); + } +#endif //VME_DEBUG + + } + +#ifdef VME_DEBUG + printf(") -- %d;\n", a_usLVDSCount); +#endif //VME_DEBUG + + return (0); +} + +/*************************************************************** +* +* ivm_core_reinit +* +* Reinit ivm_core variables. +* +***************************************************************/ +void ivm_core_reinit() +{ + g_usFlowControl = 0x0000; + g_usDataType = 0x0000; + + g_ucEndDR = DRPAUSE; + g_ucEndIR = IRPAUSE; + + g_usHeadDR = 0; + g_usHeadIR = 0; + g_usTailDR = 0; + g_usTailIR = 0; + + g_usiDataSize = 0; + + g_iFrequency = 1000; + + g_usMaxSize = 0; + + g_usShiftValue = 0; + + g_usRepeatLoops = 0; + + g_cVendor = LATTICE; + + g_usCalculatedCRC = 0; + + g_usChecksum = 0; + g_uiChecksumIndex = 0; + + g_cCurrentJTAGState = 0; + + g_pucHeapMemory = NULL; + g_iHeapCounter = 0; + g_iHEAPSize = 0; + + g_usIntelDataIndex = 0; + g_usIntelBufferSize = 0; + + g_usTDOSize = 0; + g_usMASKSize = 0; + g_usTDISize = 0; + g_usDMASKSize = 0; + g_usLCOUNTSize = 0; + g_usHDRSize = 0; + g_usTDRSize = 0; + g_usHIRSize = 0; + g_usTIRSize = 0; + g_usHeapSize = 0; + + g_pucOutMaskData = NULL; + g_pucInData = NULL; + g_pucOutData = NULL; + g_pucHIRData = NULL; + g_pucTIRData = NULL; + g_pucHDRData = NULL; + g_pucTDRData = NULL; + g_pucIntelBuffer = NULL; + g_pucOutDMaskData = NULL; + + g_pLVDSList = NULL; + g_usLVDSPairCount = 0; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c new file mode 100644 index 000000000000..c252dfde7c57 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c @@ -0,0 +1,68 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * firmware_upgrade_jtag + * function: Determine whether to upgrade ISC or JBI + * @fd: param[in] Device file descriptor + * @buf: param[in] Upgrade the file content + * @size: param[in] Upgrade file size + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_upgrade_jtag(int fd, uint8_t *buf, uint32_t size, name_info_t *info) +{ + int ret; + cmd_info_t cmd_info; + + cmd_info.size = size; + cmd_info.data = buf; + ret = 0; + + if (info->type == FIRMWARE_CPLD) { + /* 0x4A,0x41,0x4D,0x01 is JBI file */ + if (buf[0] == 0x4A && buf[1] == 0x41 && buf[2] == 0x4D && buf[3] == 0x01) { + dbg_print(is_debug_on, "Use jbi file.\n"); + ret = ioctl(fd, FIRMWARE_PROGRAM_JBI, &cmd_info); + } else { + dbg_print(is_debug_on, "Use isc file.\n"); + ret = ioctl(fd, FIRMWARE_PROGRAM, &cmd_info); + } + } + + if (info->type == FIRMWARE_FPGA) { + ret = ioctl(fd, FIRMWARE_PROGRAM, &cmd_info); + } + + if (ret < 0) { + return FIRMWARE_FAILED; + } + + return FIRMWARE_SUCCESS; +} + +/* + * firmware_upgrade_jtag_test + * function: Determine whether to upgrade ISC or JBI + * @fd: param[in] Device file descriptor + * @buf: param[in] Upgrade the file content + * @size: param[in] Upgrade file size + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_upgrade_jtag_test(int fd, uint8_t *buf, uint32_t size, name_info_t *info) +{ + return FIRMWARE_SUCCESS; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c new file mode 100644 index 000000000000..0a7659f0e428 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c @@ -0,0 +1,446 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "firmware_upgrade_mtd.h" +#include "mtd-abi.h" + +static int get_mtdnum_from_name(char *name, int *mtdnum) +{ + FILE *fp; + int ret; + char buf[PATH_LEN]; + char *start; + char *end; + char *key_w = "mtd"; + + if (name == NULL || mtdnum == NULL) { + dbg_print(is_debug_on, "Input invalid error.\n"); + return -EINVAL; + } + ret = 0; + *mtdnum = -1; + fp = fopen("/proc/mtd", "r"); + if (fp == NULL) { + dbg_print(is_debug_on, "Not find mtd device.\n"); + return -FIRWMARE_MTD_PART_INFO_ERR; + } + + mem_clear(buf, sizeof(buf)); + while(fgets(buf, sizeof(buf), fp)) { + if (strstr(buf, name) != NULL) { + start = strstr(buf, key_w); + if (start == NULL) { + dbg_print(is_debug_on, "/proc/mtd don't find %s.\n", key_w); + ret = -FIRWMARE_MTD_PART_INFO_ERR; + goto exit; + } + start += strlen(key_w); + end = strchr(start, ':'); + if (end == NULL) { + dbg_print(is_debug_on, "/proc/mtd don't find %c.\n", ':'); + ret = -FIRWMARE_MTD_PART_INFO_ERR; + goto exit; + } + + *end = '\0'; + *mtdnum = atoi(start); + if (*mtdnum < 0) { + dbg_print(is_debug_on, "Not get mtd num.\n"); + ret = -FIRWMARE_MTD_PART_INFO_ERR; + goto exit; + } + } + } + + if (*mtdnum == -1) { + ret = -FIRWMARE_MTD_PART_INFO_ERR; + goto exit; + } +exit: + if (fp != NULL) { + fclose(fp); + } + + return ret; +} + +static int firmware_sysfs_get_dev_info(int fd, firmware_mtd_info_t *dev_info) +{ + int ret; + + ret = ioctl(fd, FIRMWARE_SYSFS_MTD_INFO, dev_info); + if (ret < 0) { + dbg_print(is_debug_on, "Failed to get upg device file info.\n"); + return ret; + } + + dbg_print(is_debug_on, "mtd_name=%s flash_base=0x%x test_base=0x%x test_size=%d.\n", + dev_info->mtd_name, dev_info->flash_base, dev_info->test_base, dev_info->test_size); + return 0; +} + +/* + * MEMGETINFO + */ +static int getmeminfo(int fd, struct mtd_info_user *mtd) +{ + return ioctl(fd, MEMGETINFO, mtd); +} + +/* + * MEMERASE + */ +static int memerase(int fd, struct erase_info_user *erase) +{ + return ioctl(fd, MEMERASE, erase); +} + +static int erase_flash(int fd, uint32_t offset, uint32_t bytes) +{ + int err; + struct erase_info_user erase; + erase.start = offset; + erase.length = bytes; + err = memerase(fd, &erase); + if (err < 0) { + dbg_print(is_debug_on, "Error: memerase failed, err=%d\n", err); + return -FIRWMARE_MTD_MEMERASE; + } + dbg_print(is_debug_on, "Erased %d bytes from address 0x%.8x in flash\n", bytes, offset); + return 0; +} + +/* + * firmware_upgrade_mtd_block + * function: upgrade mtd device block + * @dev_info: param[in] Device file descriptor + * @buf: param[in] Upgrade the file content + * @size: param[in] Upgrade file size + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int firmware_upgrade_mtd_block(int mtd_fd, uint32_t offset, + uint8_t *buf, uint32_t size, uint32_t erasesize) +{ + int ret; + int i; + uint8_t *reread_buf; + uint32_t cmp_retry, reread_len, write_len; + + /* Read back data */ + reread_buf = (uint8_t *) malloc(size); + if (reread_buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for read back data buf, size=%d.\n", size); + return FIRMWARE_FAILED; + } + + for (cmp_retry = 0; cmp_retry < FW_SYSFS_RETRY_TIME; cmp_retry++) { + for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { + if (offset != lseek(mtd_fd, offset, SEEK_SET)) { + dbg_print(is_debug_on, "Error:lseek mtd offset=%x retrytimes=%d failed.\n", offset, i); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + + dbg_print(is_debug_on, "erase mtd offset=0x%x erasesize=%d retrytimes=%d.\n", + offset, erasesize, i); + ret = erase_flash(mtd_fd, offset, erasesize); + if (ret < 0) { + dbg_print(is_debug_on, "Error:erase mtd offset=%x size=%d retrytimes=%d failed, ret=%d\n", + offset, size, i, ret); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + + dbg_print(is_debug_on, "write mtd offset=0x%x size=%d retrytimes=%d.\n", + offset, size, i); + write_len = write(mtd_fd, buf, size); + if (write_len != size) { + dbg_print(is_debug_on, "Error:write mtd offset=0x%x size=%d write_len=%d retrytimes=%d.\n", + offset, size, write_len, i); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == FW_SYSFS_RETRY_TIME) { + dbg_print(is_debug_on, "Error: upgrade mtd fail, offset = 0x%x, size = %d\n", offset, size); + free(reread_buf); + return FIRMWARE_FAILED; + } + + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + dbg_print(is_debug_on, "Reread mtd offset=0x%x size=%d\n", offset, size); + for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { + if (offset != lseek(mtd_fd, offset, SEEK_SET)) { + dbg_print(is_debug_on, "Error:lseek mtd offset=%x retrytimes=%d failed.\n", offset, i); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + + reread_len = read(mtd_fd, reread_buf, size); + if (reread_len != size) { + dbg_print(is_debug_on, "Error:reread mtd offset=0x%x size=%d reread_len=%d retrytimes=%d.\n", + offset, size, reread_len, i); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == FW_SYSFS_RETRY_TIME) { + dbg_print(is_debug_on, "Error: reread mtd fail, offset = 0x%x size = %d\n", offset, size); + free(reread_buf); + return FIRMWARE_FAILED; + } + + /* Check data */ + if (memcmp(reread_buf, buf, size) != 0) { + dbg_print(is_debug_on, "memcmp mtd fail,offset = 0x%x retrytimes = %d\n", offset, cmp_retry); + } else { + break; + } + } + if (cmp_retry >= FW_SYSFS_RETRY_TIME) { + dbg_print(is_debug_on, "upgrade mtd fail, offset = 0x%x.\n", offset); + dbg_print(is_debug_on, "want to write buf :\n"); + for (i = 0; i < size; i++) { + dbg_print(is_debug_on, "0x%x ", buf[i]); + if (((i + 1) % 16) == 0) { + dbg_print(is_debug_on, "\n"); + } + } + dbg_print(is_debug_on, "\n"); + + dbg_print(is_debug_on, "actually reread buf :\n"); + for (i = 0; i < size; i++) { + dbg_print(is_debug_on, "0x%x ", reread_buf[i]); + if (((i + 1) % 16) == 0) { + dbg_print(is_debug_on, "\n"); + } + } + dbg_print(is_debug_on, "\n"); + + free(reread_buf); + return FIRMWARE_FAILED; + } + + free(reread_buf); + dbg_print(is_debug_on, "firmware upgrade mtd block offset[0x%.8x] success.\n", offset); + return FIRMWARE_SUCCESS; +} + +/* + * firmware_upgrade_mtd_program + * function: upgrade mtd device + * @dev_info: param[in] Device file descriptor + * @flash_base: param[in] Upgrade the flash start address + * @buf: param[in] Upgrade the file content + * @size: param[in] Upgrade file size + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +static int firmware_upgrade_mtd_program(firmware_mtd_info_t *dev_info, + int flash_base, uint8_t *buf, uint32_t size) +{ + int ret; + int mtdnum; + char dev_mtd[PATH_LEN]; + int mtd_fd; + uint32_t offset, len, block_size; + struct mtd_info_user mtd_info; + uint8_t *data_point; + + ret = get_mtdnum_from_name(dev_info->mtd_name, &mtdnum); + if (ret < 0) { + dbg_print(is_debug_on, "Error:not find %s mtd num.\n", dev_info->mtd_name); + return FIRMWARE_FAILED; + } + + mem_clear(dev_mtd, sizeof(dev_mtd)); + snprintf(dev_mtd, sizeof(dev_mtd) - 1, "/dev/mtd%d", mtdnum); + + mtd_fd = open(dev_mtd, O_SYNC | O_RDWR); + if (mtd_fd < 0) { + dbg_print(is_debug_on, "Error:open %s failed.\n", dev_mtd); + goto err; + } + + ret = getmeminfo(mtd_fd, &mtd_info); + if (ret < 0) { + dbg_print(is_debug_on, "Error:get mtd info failed, ret=%d.\n", ret); + goto failed; + } + + offset = flash_base; + if (offset >= mtd_info.size) { + dbg_print(is_debug_on, "Error: offset[0x%.8x] over size[0x%.8x]\n", offset, size); + goto failed; + } + + len = size; + data_point = buf; + while ((offset < mtd_info.size) && (len > 0)) { + if (len > mtd_info.erasesize) { + block_size = mtd_info.erasesize; + } else { + block_size = len; + } + dbg_print(is_debug_on, "upgrade mtd[%s] block offset[0x%.8x] size[%d] relen[%d].\n", dev_mtd, offset, size, len); + ret = firmware_upgrade_mtd_block(mtd_fd, offset, data_point, block_size, mtd_info.erasesize); + if (ret < 0) { + dbg_print(is_debug_on, "Error: mt block offset[0x%.8x] size[0x%.8x] failed.\n", offset, block_size); + goto failed; + } + len -= block_size; + data_point += block_size; + offset += block_size; + usleep(FW_MTD_BLOCK_SLEEP_TIME); + } + + if (close(mtd_fd) < 0) { + dbg_print(is_debug_on, "Error:close %s failed.\n", dev_mtd); + } + dbg_print(is_debug_on, "firmware upgrade mtd device success.\n"); + return FIRMWARE_SUCCESS; + +failed: + if (close(mtd_fd) < 0) { + dbg_print(is_debug_on, "Error:close %s failed.\n", dev_mtd); + } + +err: + dbg_print(is_debug_on, "firmware upgrade mtd device fail.\n"); + return FIRMWARE_FAILED; +} + +/* + * firmware_upgrade_mtd + * function: Determine whether to upgrade ISC or JBI + * @fd: param[in] Device file descriptor + * @buf: param[in] Upgrade the file content + * @size: param[in] Upgrade file size + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_upgrade_mtd(int fd, uint8_t *buf, uint32_t size, name_info_t *info) +{ + int ret; + firmware_mtd_info_t dev_info; + + if ((buf == NULL) || (info == NULL)) { + dbg_print(is_debug_on, "Input invalid error.\n"); + return FIRMWARE_FAILED; + } + + /* get sysfs information*/ + ret = firmware_sysfs_get_dev_info(fd, &dev_info); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + /* enable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "init dev logic faile\n"); + return FIRMWARE_FAILED; + } + + ret = firmware_upgrade_mtd_program(&dev_info, dev_info.flash_base, buf, size); + if (ret < 0) { + dbg_print(is_debug_on, "Error:mtd device program failed, ret=%d.\n", ret); + goto failed; + } + + /* disable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "close dev logic en failed.\n"); + } + + return FIRMWARE_SUCCESS; + +failed: + /* disable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_FINISH,NULL); + if (ret < 0) { + dbg_print(is_debug_on, "close dev logic en failed.\n"); + } + + return FIRMWARE_FAILED; +} + +/* + * firmware_upgrade_mtd_test + * function: Determine whether to upgrade ISC or JBI + * @fd: param[in] Device file descriptor + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_upgrade_mtd_test(int fd, name_info_t *info) +{ + int ret, rv; + firmware_mtd_info_t dev_info; + uint8_t *data_buf; + uint8_t num; + int j; + + if (info == NULL) { + dbg_print(is_debug_on, "Input invalid error.\n"); + return FIRMWARE_FAILED; + } + + /* get sysfs information*/ + ret = firmware_sysfs_get_dev_info(fd, &dev_info); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + if (dev_info.test_size == 0) { + dbg_print(is_debug_on, "Error: get flash size:%d, not support.\n", dev_info.test_size); + return FIRMWARE_NOT_SUPPORT; + } + + data_buf = (uint8_t *) malloc(dev_info.test_size); + if (data_buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for test data buf, size=%d.\n", dev_info.test_size); + return FIRMWARE_FAILED; + } + + /* Get random data */ + for (j = 0; j < dev_info.test_size; j++) { + num = (uint8_t) rand() % 256; + data_buf[j] = num & 0xff; + } + + /* enable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "init dev logic faile\n"); + free(data_buf); + return FIRMWARE_FAILED; + } + + ret = firmware_upgrade_mtd_program(&dev_info, dev_info.test_base, data_buf, dev_info.test_size); + /* disable upgrade access */ + rv = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); + if (rv < 0) { + dbg_print(is_debug_on, "close dev logic en failed.\n"); + } + free(data_buf); + if (ret < 0) { + dbg_print(is_debug_on, "Error:mtd device program failed, ret=%d.\n", ret); + return FIRMWARE_FAILED; + } + return FIRMWARE_SUCCESS; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h new file mode 100644 index 000000000000..06e36b3149d5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h @@ -0,0 +1,32 @@ +#ifndef __FIRMWARE_UPGRADE_MTD_H__ +#define __FIRMWARE_UPGRADE_MTD_H__ + +#include + +#define FIRMWARE_DEV_NAME_LEN 64 /* the macro definition needs to same as FIRMWARE_DEV_NAME_LEN in firmware_sysfs_upgrade.h */ +#define PATH_LEN (256) +#define FW_MTD_BLOCK_SLEEP_TIME (10000) /* 10ms */ +#define FW_SYSFS_RETRY_SLEEP_TIME (10000) /* 10ms */ +#define FW_SYSFS_RETRY_TIME (5) /* retry 5 times, 50ms = FW_SYSFS_RETRY_TIME *FW_SYSFS_RETRY_SLEEP_TIME; */ + +/* Debug switch level */ +typedef enum { + FIRWMARE_MTD_SUCCESS = 0, + FIRWMARE_MTD_PART_INFO_ERR, + FIRWMARE_MTD_MEMERASE, + FIRWMARE_MTD_MEMGETINFO, + FIRWMARE_END, +} firmware_debug_level_t; + +#define debug(fmt, argv...) do { \ + dbg_print(is_debug_on, ""fmt , ##argv);\ + } while(0) + +typedef struct firmware_mtd_info_s { + char mtd_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ + uint32_t flash_base; /* Flash Upgrade Address */ + uint32_t test_base; /* Test flash address */ + uint32_t test_size; /* Test flash size */ +} firmware_mtd_info_t; + +#endif /* End of __FIRMWARE_UPGRADE_MTD_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h new file mode 100644 index 000000000000..f326d23e732e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h @@ -0,0 +1,259 @@ + +#ifndef __MTD_ABI_H__ +#define __MTD_ABI_H__ + +#include + +struct erase_info_user { + __u32 start; + __u32 length; +}; + +struct erase_info_user64 { + __u64 start; + __u64 length; +}; + +struct mtd_oob_buf { + __u32 start; + __u32 length; + unsigned char *ptr; +}; + +struct mtd_oob_buf64 { + __u64 start; + __u32 pad; + __u32 length; + __u64 usr_ptr; +}; + +/** + * MTD operation modes + * + * @MTD_OPS_PLACE_OOB: OOB data are placed at the given offset (default) + * @MTD_OPS_AUTO_OOB: OOB data are automatically placed at the free areas + * which are defined by the internal ecclayout + * @MTD_OPS_RAW: data are transferred as-is, with no error correction; + * this mode implies %MTD_OPS_PLACE_OOB + * + * These modes can be passed to ioctl(MEMWRITE) and are also used internally. + * See notes on "MTD file modes" for discussion on %MTD_OPS_RAW vs. + * %MTD_FILE_MODE_RAW. + */ +enum { + MTD_OPS_PLACE_OOB = 0, + MTD_OPS_AUTO_OOB = 1, + MTD_OPS_RAW = 2, +}; + +/** + * struct mtd_write_req - data structure for requesting a write operation + * + * @start: start address + * @len: length of data buffer + * @ooblen: length of OOB buffer + * @usr_data: user-provided data buffer + * @usr_oob: user-provided OOB buffer + * @mode: MTD mode (see "MTD operation modes") + * @padding: reserved, must be set to 0 + * + * This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB + * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to + * write data-only, set @usr_oob == NULL. However, setting both @usr_data and + * @usr_oob to NULL is not allowed. + */ +struct mtd_write_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; +}; + +#define MTD_ABSENT 0 +#define MTD_RAM 1 +#define MTD_ROM 2 +#define MTD_NORFLASH 3 +#define MTD_NANDFLASH 4 +#define MTD_DATAFLASH 6 +#define MTD_UBIVOLUME 7 +#define MTD_MLCNANDFLASH 8 + +#define MTD_WRITEABLE 0x400 /* Device is writeable */ +#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */ +#define MTD_NO_ERASE 0x1000 /* No erase necessary */ +#define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */ + +/* Some common devices / combinations of capabilities */ +#define MTD_CAP_ROM 0 +#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE) +#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE) +#define MTD_CAP_NANDFLASH (MTD_WRITEABLE) + +/* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */ +#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended) +#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode) +#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme +#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read) +#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default + +/* OTP mode selection */ +#define MTD_OTP_OFF 0 +#define MTD_OTP_FACTORY 1 +#define MTD_OTP_USER 2 + +typedef struct mtd_info_user { + __u8 type; + __u32 flags; + __u32 size; /* Total size of the MTD */ + __u32 erasesize; + __u32 writesize; + __u32 oobsize; /* Amount of OOB data per block (e.g. 16) */ + __u64 padding; /* Old obsolete field; do not use */ +} mtd_info_user_t; + +struct region_info_user { + __u32 offset; /* At which this region starts, + * from the beginning of the MTD */ + __u32 erasesize; /* For this region */ + __u32 numblocks; /* Number of blocks in this region */ + __u32 regionindex; +}; + +struct otp_info { + __u32 start; + __u32 length; + __u32 locked; +}; + +/* + * Note, the following ioctl existed in the past and was removed: + * #define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo) + * Try to avoid adding a new ioctl with the same ioctl number. + */ + +/* Get basic MTD characteristics info (better to use sysfs) */ +#define MEMGETINFO _IOR('M', 1, struct mtd_info_user) +/* Erase segment of MTD */ +#define MEMERASE _IOW('M', 2, struct erase_info_user) +/* Write out-of-band data from MTD */ +#define MEMWRITEOOB _IOWR('M', 3, struct mtd_oob_buf) +/* Read out-of-band data from MTD */ +#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf) +/* Lock a chip (for MTD that supports it) */ +#define MEMLOCK _IOW('M', 5, struct erase_info_user) +/* Unlock a chip (for MTD that supports it) */ +#define MEMUNLOCK _IOW('M', 6, struct erase_info_user) +/* Get the number of different erase regions */ +#define MEMGETREGIONCOUNT _IOR('M', 7, int) +/* Get information about the erase region for a specific index */ +#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user) +/* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */ +#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo) +/* Check if an eraseblock is bad */ +#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t) +/* Mark an eraseblock as bad */ +#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t) +/* Set OTP (One-Time Programmable) mode (factory vs. user) */ +#define OTPSELECT _IOR('M', 13, int) +/* Get number of OTP (One-Time Programmable) regions */ +#define OTPGETREGIONCOUNT _IOW('M', 14, int) +/* Get all OTP (One-Time Programmable) info about MTD */ +#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info) +/* Lock a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */ +#define OTPLOCK _IOR('M', 16, struct otp_info) +/* Get ECC layout (deprecated) */ +#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout_user) +/* Get statistics about corrected/uncorrected errors */ +#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats) +/* Set MTD mode on a per-file-descriptor basis (see "MTD file modes") */ +#define MTDFILEMODE _IO('M', 19) +/* Erase segment of MTD (supports 64-bit address) */ +#define MEMERASE64 _IOW('M', 20, struct erase_info_user64) +/* Write data to OOB (64-bit version) */ +#define MEMWRITEOOB64 _IOWR('M', 21, struct mtd_oob_buf64) +/* Read data from OOB (64-bit version) */ +#define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64) +/* Check if chip is locked (for MTD that supports it) */ +#define MEMISLOCKED _IOR('M', 23, struct erase_info_user) +/* + * Most generic write interface; can write in-band and/or out-of-band in various + * modes (see "struct mtd_write_req") + */ +#define MEMWRITE _IOWR('M', 24, struct mtd_write_req) + +/* + * Obsolete legacy interface. Keep it in order not to break userspace + * interfaces + */ +struct nand_oobinfo { + __u32 useecc; + __u32 eccbytes; + __u32 oobfree[8][2]; + __u32 eccpos[32]; +}; + +struct nand_oobfree { + __u32 offset; + __u32 length; +}; + +#define MTD_MAX_OOBFREE_ENTRIES 8 +#define MTD_MAX_ECCPOS_ENTRIES 64 +/* + * OBSOLETE: ECC layout control structure. Exported to user-space via ioctl + * ECCGETLAYOUT for backwards compatbility and should not be mistaken as a + * complete set of ECC information. The ioctl truncates the larger internal + * structure to retain binary compatibility with the static declaration of the + * ioctl. Note that the "MTD_MAX_..._ENTRIES" macros represent the max size of + * the user struct, not the MAX size of the internal struct nand_ecclayout. + */ +struct nand_ecclayout_user { + __u32 eccbytes; + __u32 eccpos[MTD_MAX_ECCPOS_ENTRIES]; + __u32 oobavail; + struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; +}; + +/** + * struct mtd_ecc_stats - error correction stats + * + * @corrected: number of corrected bits + * @failed: number of uncorrectable errors + * @badblocks: number of bad blocks in this partition + * @bbtblocks: number of blocks reserved for bad block tables + */ +struct mtd_ecc_stats { + __u32 corrected; + __u32 failed; + __u32 badblocks; + __u32 bbtblocks; +}; + +/* + * MTD file modes - for read/write access to MTD + * + * @MTD_FILE_MODE_NORMAL: OTP disabled, ECC enabled + * @MTD_FILE_MODE_OTP_FACTORY: OTP enabled in factory mode + * @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode + * @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled + * + * These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained + * separately for each open file descriptor. + * + * Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW - + * raw access to the flash, without error correction or autoplacement schemes. + * Wherever possible, the MTD_OPS_* mode will override the MTD_FILE_MODE_* mode + * (e.g., when using ioctl(MEMWRITE)), but in some cases, the MTD_FILE_MODE is + * used out of necessity (e.g., `write()', ioctl(MEMWRITEOOB64)). + */ +enum mtd_file_modes { + MTD_FILE_MODE_NORMAL = MTD_OTP_OFF, + MTD_FILE_MODE_OTP_FACTORY = MTD_OTP_FACTORY, + MTD_FILE_MODE_OTP_USER = MTD_OTP_USER, + MTD_FILE_MODE_RAW, +}; + +#endif /* __MTD_ABI_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c new file mode 100644 index 000000000000..10a429d93bde --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c @@ -0,0 +1,285 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "firmware_upgrade_sysfs.h" + +static int firmware_sysfs_get_dev_info(int fd, firmware_dev_file_info_t *dev_info) +{ + int ret; + + ret = ioctl(fd, FIRMWARE_SYSFS_DEV_FILE_INFO, dev_info); + if (ret < 0) { + dbg_print(is_debug_on, "Failed to get upg flash dev info.\n"); + return ret; + } + + dbg_print(is_debug_on, "sysfs_name=%s per_len=%u.\n", dev_info->sysfs_name, dev_info->per_len); + return 0; +} + +/* sysfs upgrade program function */ +int firmware_upgrade_sysfs_program(firmware_dev_file_info_t *dev_info, uint32_t dev_base, + uint8_t *buf, uint32_t size) +{ + int ret = 0; + uint32_t offset_addr, buf_offset, len; + uint32_t write_len, cmp_retry, reread_len; + int sysfs_fd; + uint8_t *reread_buf; + int i; + + if (dev_info->per_len > 0) { + if (size % dev_info->per_len) { + dbg_print(is_debug_on, "firmware sysfs upgrade size[%u] is width[%u] mismatch, ret %d.\n", + size, dev_info->per_len, ret); + return FIRMWARE_FAILED; + } + len = dev_info->per_len; + } else { + /* Write to the maximum buffer if the length of each write is not configured */ + len = size; + } + + /* Read back data */ + reread_buf = (uint8_t *) malloc(len); + if (reread_buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for read back data buf, len=%u.\n", len); + return FIRMWARE_FAILED; + } + + sysfs_fd = open(dev_info->sysfs_name, O_RDWR | O_SYNC); + if (sysfs_fd < 0) { + dbg_print(is_debug_on, "open file[%s] fail.\n", dev_info->sysfs_name); + free(reread_buf); + return FIRMWARE_FAILED; + } + + offset_addr = dev_base; + buf_offset = 0; + cmp_retry = 0; + while (buf_offset < size) { + /* Calibrate upgrade data length */ + if (buf_offset + len > size) { + len = size - buf_offset; + } + + for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { + ret = lseek(sysfs_fd, offset_addr, SEEK_SET); + if (ret < 0) { + dbg_print(is_debug_on, "lseek file[%s offset=%u] fail.\n", dev_info->sysfs_name, offset_addr); + close(sysfs_fd); + free(reread_buf); + return FIRMWARE_FAILED; + } + write_len = write(sysfs_fd, buf + buf_offset, len); + if (write_len != len) { + dbg_print(is_debug_on, "write file[%s] fail,offset = 0x%x retrytimes = %u len = %u, write_len =%u\n", + dev_info->sysfs_name, offset_addr, i ,len, write_len); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + break; + } + + if (i == FW_SYSFS_RETRY_TIME) { + dbg_print(is_debug_on, "write file[%s] fail, offset = 0x%x, len = %u, write_len =%u\n", + dev_info->sysfs_name, offset_addr, len, write_len); + close(sysfs_fd); + free(reread_buf); + return FIRMWARE_FAILED; + } + + mem_clear(reread_buf, len); + ret = lseek(sysfs_fd, offset_addr, SEEK_SET); + if (ret < 0) { + dbg_print(is_debug_on, "reread lseek file[%s offset=%u] fail.\n", dev_info->sysfs_name, offset_addr); + close(sysfs_fd); + free(reread_buf); + return FIRMWARE_FAILED; + } + + for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { + reread_len = read(sysfs_fd, reread_buf, len); + if (reread_len != len) { + dbg_print(is_debug_on, "reread file[%s] fail,offset = 0x%x retrytimes = %u reread_len = %u, len =%u\n", + dev_info->sysfs_name, offset_addr, i ,reread_len, len); + usleep(FW_SYSFS_RETRY_SLEEP_TIME); + continue; + } + break; + } + if (i == FW_SYSFS_RETRY_TIME) { + dbg_print(is_debug_on, "reread file[%s] fail, offset = 0x%x, reread_len = %u, len = %u\n", + dev_info->sysfs_name, offset_addr, reread_len, len); + close(sysfs_fd); + free(reread_buf); + return FIRMWARE_FAILED; + } + + /* Check data */ + if (memcmp(reread_buf, buf + buf_offset, len) != 0) { + if (cmp_retry < FW_SYSFS_RETRY_TIME) { + dbg_print(is_debug_on, "memcmp file[%s] fail,offset = 0x%x retrytimes = %u\n", + dev_info->sysfs_name, offset_addr, cmp_retry); + cmp_retry++; + continue; + } + + dbg_print(is_debug_on, "upgrade file[%s] fail, offset = 0x%x.\n", dev_info->sysfs_name, offset_addr); + dbg_print(is_debug_on, "want to write buf :\n"); + for (i = 0; i < len; i++) { + dbg_print(is_debug_on, "0x%x ", buf[buf_offset + i]); + if (((i + 1) % 16) == 0) { + dbg_print(is_debug_on, "\n"); + } + } + dbg_print(is_debug_on, "\n"); + + dbg_print(is_debug_on, "actually reread buf :\n"); + for (i = 0; i < len; i++) { + dbg_print(is_debug_on, "0x%x ", reread_buf[i]); + if (((i + 1) % 16) == 0) { + dbg_print(is_debug_on, "\n"); + } + } + dbg_print(is_debug_on, "\n"); + + close(sysfs_fd); + free(reread_buf); + return FIRMWARE_FAILED; + } + offset_addr += len; + buf_offset += len; + usleep(5000); + } + free(reread_buf); + + dbg_print(is_debug_on, "firmware upgrade sysfs success.\n"); + close(sysfs_fd); + return FIRMWARE_SUCCESS; +} + +/* sysfs upgrade function */ +int firmware_upgrade_sysfs(int fd, uint8_t *buf, uint32_t size, name_info_t *info) +{ + int ret = 0; + firmware_dev_file_info_t dev_info; + + if ((buf == NULL) || (info == NULL)) { + dbg_print(is_debug_on, "Input invalid error.\n"); + goto exit; + } + + /* get sysfs information*/ + ret = firmware_sysfs_get_dev_info(fd, &dev_info); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); + goto exit; + } + + /* enable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "init dev logic faile\n"); + goto exit; + } + + ret = firmware_upgrade_sysfs_program(&dev_info, dev_info.dev_base, buf, size); + if (ret < 0) { + dbg_print(is_debug_on, "init dev logic faile\n"); + goto fail; + } + + dbg_print(is_debug_on, "firmware upgrade sysfs success.\n"); + /* disable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_FINISH,NULL); + if (ret < 0) { + dbg_print(is_debug_on, "close dev logic en failed.\n"); + } + return FIRMWARE_SUCCESS; + +fail: + /* disable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "close dev logic en failed.\n"); + } +exit: + dbg_print(is_debug_on, "firmware upgrade sysfs fail.\n"); + return FIRMWARE_FAILED; +} + +/* sysfs upgrade test function */ +int firmware_upgrade_sysfs_test(int fd, name_info_t *info) +{ + int ret, rv; + firmware_dev_file_info_t dev_info; + uint8_t *data_buf; + uint8_t num; + int j; + + if (info == NULL) { + dbg_print(is_debug_on, "Input invalid error.\n"); + return FIRMWARE_FAILED; + } + + /* get sysfs information*/ + ret = firmware_sysfs_get_dev_info(fd, &dev_info); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + if (dev_info.test_size == 0) { + dbg_print(is_debug_on, "Error: get sysfs test size:%d, not support.\n", dev_info.test_size); + return FIRMWARE_NOT_SUPPORT; + } + + data_buf = (uint8_t *) malloc(dev_info.test_size); + if (data_buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for test data buf, size=%d.\n", dev_info.test_size); + return FIRMWARE_FAILED; + } + + /* Get random data */ + for (j = 0; j < dev_info.test_size; j++) { + num = (uint8_t) rand() % 256; + data_buf[j] = num & 0xff; + } + + /* enable upgrade access */ + ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "init dev logic faile\n"); + free(data_buf); + return FIRMWARE_FAILED; + } + + ret = firmware_upgrade_sysfs_program(&dev_info, dev_info.test_base, data_buf, dev_info.test_size); + /* disable upgrade access */ + rv = ioctl(fd, FIRMWARE_SYSFS_FINISH,NULL); + if (rv < 0) { + dbg_print(is_debug_on, "close dev logic en failed.\n"); + } + free(data_buf); + + if (ret < 0) { + dbg_print(is_debug_on, "init dev logic faile\n"); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "firmware upgrade sysfs success.\n"); + return FIRMWARE_SUCCESS; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h new file mode 100644 index 000000000000..b69080ea642e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h @@ -0,0 +1,16 @@ +#ifndef __FIRMWARE_UPGRADE_SYSFS_H__ +#define __FIRMWARE_UPGRADE_SYSFS_H__ + +#define FIRMWARE_DEV_NAME_LEN (64) /* the macro definition needs to same as FIRMWARE_DEV_NAME_LEN in firmware_sysfs_upgrade.h */ +#define FW_SYSFS_RETRY_SLEEP_TIME (10000) /* 10ms */ +#define FW_SYSFS_RETRY_TIME (5) /* retry 5 times, 50ms = FW_SYSFS_RETRY_TIME *FW_SYSFS_RETRY_SLEEP_TIME; */ + +typedef struct firmware_dev_file_info_s { + char sysfs_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ + uint32_t dev_base; /* device upgrade base address */ + uint32_t per_len; /* The length of bytes per operation */ + uint32_t test_base; /* Test device address */ + uint32_t test_size; /* Test flash size */ +} firmware_dev_file_info_t; + +#endif /* End of __FIRMWARE_UPGRADE_SYSFS_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c new file mode 100644 index 000000000000..7db3c1b7b6ec --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c @@ -0,0 +1,1181 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "fw_upg_spi_logic_dev.h" + +#define be32_to_cpus(p) __be32_to_cpus(p) +#define le32_to_cpus(p) __le32_to_cpus(p) +#define cpu_to_be32s(p) __cpu_to_be32s(p) +#define cpu_to_le32s(p) __cpu_to_le32s(p) + +static void firmware_upgrade_printf_reg(uint8_t *buf, int buf_len, uint32_t offset_addr) +{ + int i, j, tmp; + + j = offset_addr % 16; + tmp = j; + offset_addr -= j; + printf("\n "); + + for (i = 0; i < 16; i++) { + printf("%2x ", i); + } + + for (i = 0; i < buf_len + j; i++) { + if ((i % 16) == 0) { + printf("\n0x%08x ", offset_addr); + offset_addr = offset_addr + 16; + } + if (tmp) { + printf(" "); + tmp--; + } else { + printf("%02x ", buf[i-j]); + } + } + + printf("\n"); + return; +} + +static int firmware_upgrade_get_spi_logic_info(int fd, firmware_spi_logic_upg_t *current_upg_priv) +{ + int ret; + firmware_spi_logic_info_t syfs_info; + + if (fd < 0) { + dbg_print(is_debug_on, "Error: get spi logic info fd %d.\n", fd); + return fd; + } + + ret = 0; + ret = ioctl(fd, FIRMWARE_SYSFS_SPI_INFO, &syfs_info); + if (ret < 0) { + dbg_print(is_debug_on, "Failed to get upg flash dev info, ret=%d\n", ret); + return -FW_SPI_FLASH_GET_INFO_ERR; + } + + current_upg_priv->flash_base = syfs_info.flash_base; + current_upg_priv->ctrl_base = syfs_info.ctrl_base; + memcpy(current_upg_priv->dev_path, syfs_info.logic_dev_name, FIRMWARE_LOGIC_DEV_NAME_LEN - 1); + current_upg_priv->status_reg = syfs_info.ctrl_base + FPGA_UPG_STATUS_REG; + current_upg_priv->spi_ctrl_reg = syfs_info.ctrl_base + FPGA_UPG_SPI_CTRL_REG; + current_upg_priv->wr_flash_status_reg = syfs_info.ctrl_base + FPGA_UPG_WR_FLASH_STATUS_REG; + current_upg_priv->rd_flash_status_reg = syfs_info.ctrl_base + FPGA_UPG_RD_FLASH_STATUS_REG; + current_upg_priv->instruction_reg = syfs_info.ctrl_base + FPGA_UPG_INSTRUCTION_REG; + current_upg_priv->addr_reg = syfs_info.ctrl_base + FPGA_UPG_ADDR_REG; + current_upg_priv->length_reg = syfs_info.ctrl_base + FPGA_UPG_LENGTH_REG; + current_upg_priv->device_id_reg = syfs_info.ctrl_base + FPGA_UPG_DEVICE_ID_REG; + current_upg_priv->drop_reg_num_reg = syfs_info.ctrl_base + FPGA_UPG_DROP_REQ_NUM_REG; + current_upg_priv->test_base = syfs_info.test_base; + current_upg_priv->test_size = syfs_info.test_size; + + return 0; +} + +static int firmware_upgrade_spi_logic_init(int fd) +{ + int ret; + + ret = 0; + ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "Failed to init spi logic, ret=%d\n", ret); + return -1; + } + + return 0; +} + +static int firmware_upgrade_spi_logic_finish(int fd) +{ + int ret; + + if (fd < 0) { + dbg_print(is_debug_on, "Error: get spi logic info fd %d.\n", fd); + return -1; + } + + ret = 0; + ret = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); + if (ret < 0) { + dbg_print(is_debug_on, "Failed to release spi logic, ret=%d\n", ret); + return -1; + } + + return 0; +} + +/** + * firmware_fpga_file_read - + * function:Provide FPGA read-register interface (address must be 4-byte aligned) + * @dev_name: Device file descriptor + * @offset: device offset + * @buf: Read Data Buffer + * @rd_len: Read Data Length + * return: 0--success; other--fail + */ +int firmware_fpga_file_read(char *dev_name, uint32_t offset, uint8_t *buf, uint32_t rd_len) +{ + int ret, fd; + + if ((dev_name == NULL) || (buf == NULL)) { + dbg_print(is_debug_on, "upg_priv or read buf is null.\n"); + return -1; + } + + if ((fd = open(dev_name, O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO)) < 0) { + dbg_print(is_debug_on, "Error: Could not open file %s. Errno=%d\n", dev_name, errno); + return -1; + } + + ret = lseek(fd, offset, SEEK_SET); + if (ret < 0) { + dbg_print(is_debug_on, "read llseek failed, errno: %s\n", strerror(errno)); + close(fd); + return -1; + } + + ret = read(fd, buf, rd_len); + if (ret < 0) { + dbg_print(is_debug_on, "read failed, err: %s\n", strerror(errno)); + close(fd); + return -1; + } + + close(fd); + return 0; +} + +static int firmware_fpga_read_word(char *dev_name, uint32_t addr, uint32_t *val) +{ + int ret; + uint32_t retry; + + if (sizeof(int) < FIRMWARE_FPGA_WORD_LEN) { + dbg_print(is_debug_on, "Error:dfd_fpga_read_word buf len %ld support len %d.\n", + sizeof(int), FIRMWARE_FPGA_WORD_LEN); + return -1; + } + + retry = 0; + *val = 0; + while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { + ret = firmware_fpga_file_read(dev_name, addr, (uint8_t *)val, FIRMWARE_FPGA_WORD_LEN); + if (ret) { + retry++; + dbg_print(is_debug_on, "firmware_fpga_file_read addr 0x%x retry %u failed ret %d.\n", + addr, retry, ret); + continue; + } else { + le32_to_cpus(val); + return 0; + } + } + + dbg_print(is_debug_on, "dfd_fpga_read_word addr 0x%x retry %u failed ret %d.\n", addr, retry, ret); + return -1; +} + +static int firmware_fpga_read_buf(char *dev_name, uint32_t addr, uint8_t *buf, uint32_t rd_len) +{ + int ret; + uint32_t retry; + + retry = 0; + while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { + ret = firmware_fpga_file_read(dev_name, addr, buf, rd_len); + if (ret) { + retry++; + dbg_print(is_debug_on, "firmware_fpga_file_read addr 0x%x rd_len %u i %d failed ret %d.\n", + addr, rd_len, retry, ret); + continue; + } else { + return 0; + } + } + + dbg_print(is_debug_on, "firmware_fpga_file_read addr 0x%x rd_len %u retry %u failed ret %d.\n", + addr, rd_len, retry, ret); + return -1; +} + +/** + * firmware_fpga_file_write - + * function:Provide FPGA write-register interface (address must be 4-byte aligned) + * @dev_name: Device file descriptor + * @offset: device offset + * @buf: Write Data Buffer + * @wr_len: Write Data Length + * return: 0--success; other--fail + */ +int firmware_fpga_file_write(char *dev_name, uint32_t offset, uint8_t *buf, uint32_t wr_len) +{ + int ret, fd; + + if ((dev_name == NULL) || (buf == NULL)) { + dbg_print(is_debug_on, "dev_name or write buf is null.\n"); + return -1; + } + + if ((fd = open(dev_name, O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO)) < 0) { + dbg_print(is_debug_on, "Error: Could not open file %s. Errno=%d\n", dev_name, errno); + return -1; + } + + ret = lseek(fd, offset, SEEK_SET); + if (ret < 0) { + dbg_print(is_debug_on, "write llseek failed, err: %s\n", strerror(errno)); + close(fd); + return -1; + } + + ret = write(fd, buf, wr_len); + if (ret < 0 ) { + dbg_print(is_debug_on, "write failed, err: %s\n", strerror(errno)); + close(fd); + return -1; + } + + close(fd); + return 0; +} + +static int firmware_fpga_write_word(char *dev_name, uint32_t addr, uint32_t val) +{ + int ret; + uint32_t retry, tmp; + + retry = 0; + tmp = val; + cpu_to_le32s(&tmp); + while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { + ret = firmware_fpga_file_write(dev_name, addr, (uint8_t *)&tmp, FIRMWARE_FPGA_WORD_LEN); + if (ret) { + retry++; + dbg_print(is_debug_on, "firmware_fpga_file_write addr 0x%x val 0x%x retry %u failed ret %d.\n", + addr, val, retry, ret); + continue; + } else { + return 0; + } + } + + dbg_print(is_debug_on, "firmware_fpga_file_write addr 0x%x val 0x%x retry %u failed ret %d.\n", + addr, val, retry, ret); + return -1; +} + +static int firmware_fpga_write_buf(char *dev_name, uint32_t addr, uint8_t *buf, uint32_t wr_len) +{ + int ret; + uint32_t retry; + + retry = 0; + while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { + ret = firmware_fpga_file_write(dev_name, addr, buf, wr_len); + if (ret) { + retry++; + dbg_print(is_debug_on, "firmware_fpga_file_write addr 0x%x wr_len 0x%x retry %u failed ret %d.\n", + addr, wr_len, retry, ret); + continue; + } else { + return 0; + } + } + + dbg_print(is_debug_on, "dfd_fpga_buf_write addr 0x%x wr_len 0x%x retry %u failed ret %d.\n", + addr, wr_len, retry, ret); + + return -1; +} + +/* Whether the SPI port is idle, 0--idle, 1--busy */ +static int firmware_fpga_get_status(firmware_spi_logic_upg_t *upg_priv, char *status) +{ + int ret; + uint32_t addr, val; + + addr = upg_priv->status_reg; + ret = firmware_fpga_read_word(upg_priv->dev_path, addr, &val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_get_status addr 0x%x failed ret %d.\n", addr, ret); + return -1; + } + + *status = val & FPGA_UPG_STATUS_MASK; + + return 0; +} + +/* Wait for the SPI port to become free again */ +static int firmware_fpga_wait_ready(firmware_spi_logic_upg_t *upg_priv) +{ + int timeout; + char status; + int ret; + + timeout = FIRMWARE_UPG_RETRY_TIME_CNT; + while (timeout--) { + usleep(FIRMWARE_UPG_RETRY_SLEEP_TIME); + ret = firmware_fpga_get_status(upg_priv, &status); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_get_status failed ret %d.\n", ret); + continue; + } + + /* Determine if it's idle */ + if (!status) { + return 0; + } + } + + return -1; +} + +/* Configure access */ +static int firmware_fpga_set_access(firmware_spi_logic_upg_t *upg_priv, uint32_t cmd) +{ + int ret; + uint32_t addr, val; + + addr = upg_priv->instruction_reg; + val = cmd; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", addr, val, ret); + return -1; + } + + addr = upg_priv->spi_ctrl_reg; + val = FPGA_UPG_ACCESS_ENABLE; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", addr, val, ret); + return -1; + } + + /* Wait for the SPI port on the FPGA to become free again*/ + ret = firmware_fpga_wait_ready(upg_priv); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_wait_ready failed ret %d.\n", ret); + return -FW_SPI_FLASH_BUSY; + } + + return 0; +} + +/* Get SPI STATUS register */ +static int firmware_fpga_get_spi_status(firmware_spi_logic_upg_t *upg_priv, char *status) +{ + int ret; + uint32_t val, addr, cmd; + + cmd = FPGA_UPG_INSTRUTION_RDSR; + ret = firmware_fpga_set_access(upg_priv, cmd); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_access cmd 0x%x failed ret %d.\n", cmd, ret); + return -1; + } + + addr = upg_priv->rd_flash_status_reg; + ret = firmware_fpga_read_word(upg_priv->dev_path, addr, &val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_read_word addr 0x%x failed ret %d.\n", addr, ret); + return -1; + } + + *status = val & FPGA_UPG_SPI_STATUS_MASK; + + return 0; +} + +/* Wait for the SPI chip operation to complete */ +static int firmware_fpga_wait_spi_ready(firmware_spi_logic_upg_t *upg_priv, + uint32_t timeout, uint32_t usleep_time) +{ + char status; + int ret; + + while (timeout--) { + usleep(usleep_time); + ret = firmware_fpga_get_spi_status(upg_priv, &status); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_get_spi_status failed ret %d.\n", ret); + continue; + } + /* Determine if it's idle */ + if (!status) { + return 0; + } + } + + return -FW_SPI_FLASH_SPI_BUSY; +} + +/* Configure FPGA upgrade write enable */ +static int firmware_fpga_set_wr_enable(firmware_spi_logic_upg_t *upg_priv) +{ + int ret; + uint32_t cmd; + + cmd = FPGA_UPG_INSTRUTION_WREN; + ret = firmware_fpga_set_access(upg_priv, cmd); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); + return -1; + } + + return 0; +} + +#if 0 +/* erase all flash */ +static int firmware_fpga_upg_set_erase_all(firmware_spi_logic_upg_t *upg_priv) +{ + int ret; + int cmd; + + /* Wait for the SPI port on the FPGA to become free */ + ret = firmware_fpga_wait_ready(upg_priv); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_wait_ready failed ret %d.\n", ret); + return -1; + } + + /* Configure FPGA upgrade write enable */ + ret = firmware_fpga_set_wr_enable(upg_priv); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_wr_enable failed ret %d.\n", ret); + return -1; + } + + cmd = FPGA_UPG_INSTRUTION_BE; + ret = firmware_fpga_set_access(upg_priv, cmd); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); + return -1; + } + + /* Hardware requirements, delay of 1s */ + sleep(1); + + /* Wait for the SPI chip operation to complete, 1s check status once, max delay 300s */ + ret = firmware_fpga_wait_spi_ready(upg_priv, 300, (1 * 1000 * 1000)); + if (ret) { + dbg_print(is_debug_on, "dfd_fpga_wait_spi_ready failed ret %d.\n", ret); + return -1; + } + + dbg_print(is_debug_on, "Success.\n"); + return 0; +} +#endif + +/* Erase sectors (256 pages, 64K total) */ +static int firmware_fpga_erase_sector(firmware_spi_logic_upg_t *upg_priv, uint32_t spi_addr) +{ + int ret; + uint32_t val, addr, cmd; + + /* Wait for the SPI port on the FPGA to become free again */ + ret = firmware_fpga_wait_ready(upg_priv); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_fpga_wait_ready failed ret %d.\n", ret); + return -FW_SPI_FLASH_BUSY; + } + + /* Enable write */ + ret = firmware_fpga_set_wr_enable(upg_priv); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_fpga_set_wr_enable failed ret %d.\n", ret); + return -FW_SPI_FLASH_WR_ENABLE_ERR; + } + + /* Write erase address */ + val = spi_addr; + addr = upg_priv->addr_reg; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", addr, val, ret); + return -FW_SPI_FLASH_ERASE_ADDR_ERR; + } + + /* Enable sector erasure */ + cmd = FPGA_UPG_INSTRUTION_SE; + ret = firmware_fpga_set_access(upg_priv, cmd); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); + return -FW_SPI_FLASH_ERASE_SECTOR_ERR; + } + + /* Hardware requirements, delay of 0.25s */ + usleep(250 * 1000); + + /* Wait for the SPI chip operation to complete, 1s check status once, max delay 10s */ + ret = firmware_fpga_wait_spi_ready(upg_priv, FPGA_UPG_WAIT_SPI_RETRY_CNT, (100 * 1000)); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_wait_spi_ready failed ret %d.\n", ret); + return -FW_SPI_FLASH_SPI_BUSY; + } + + return 0; +} + +#if 0 +int firmware_fpga_erase64_sector(firmware_spi_logic_upg_t *upg_priv, int offset) +{ + int ret; + ret = -1; + + if ((offset % FIRMWARE_SPI_LOGIC_SECTOR_SIZE) == 0) { + dbg_print(is_debug_on, "erase 64k area, offset 0x%x.\n", offset); + ret = firmware_fpga_erase_sector(upg_priv, offset); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_erase_sector offset 0x%x failed ret %d.\n", offset, ret); + return ret; + } + } else { + dbg_print(is_debug_on, "Input para invalid, offset 0x%x.\n", offset); + } + + return ret; +} +#endif + +static int firmware_fpga_upg_program(firmware_spi_logic_upg_t *upg_priv, + uint32_t spi_addr, uint8_t *buf, uint32_t len) +{ + int ret; + uint32_t addr, val, cmd, wr_len; + + /* Write data to the Upgrade Content Register */ + addr = upg_priv->ctrl_base; + wr_len = len; + ret = firmware_fpga_write_buf(upg_priv->dev_path, addr, (uint8_t*)buf, wr_len); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_write_buf addr 0x%x wr_len %d failed ret %d.\n", + addr, len, ret); + return -FW_SPI_FLASH_WR_ERR; + } + + /* Write length register, FPGA is fixed 256 lengths */ + val = FFPGA_UPG_DATA_SIZE; + addr = upg_priv->length_reg; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", + addr, val, ret); + return -FW_SPI_FLASH_WR_LENGTH_ERR; + } + + /* Write address register */ + val = spi_addr; + addr = upg_priv->addr_reg; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", + addr, val, ret); + return -FW_SPI_FLASH_WR_ADDR_ERR; + } + + /* Start writing upgrade data to SPI */ + cmd = FPGA_UPG_INSTRUTION_PP; + ret = firmware_fpga_set_access(upg_priv, cmd); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); + return -FW_SPI_FLASH_SET_ACCESS_ERR; + } + + /* min write wait 0.33ms */ + usleep(330); + + /* Wait for the SPI chip operation to complete, 100us check status once, max delay 10ms */ + ret = firmware_fpga_wait_spi_ready(upg_priv, FPGA_UPG_WAIT_SPI_RETRY_CNT, (100)); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_wait_spi_ready failed ret %d.\n", ret); + return -FW_SPI_FLASH_BUSY; + } + + return 0; +} + +/** + * firmware_fpga_upg_write + * function: write interface provided to the upgrade module + * @upg_priv: Device information + * @addr: upgrade addr + * @buf: Write Data Buffer + * @len: Write Data Length + * return: 0--success; other--fail + */ +static int firmware_fpga_upg_write(firmware_spi_logic_upg_t *upg_priv, + uint32_t addr, uint8_t *buf, uint32_t len) +{ + int ret; + + /* address must be 256 bytes aligned */ + if ((upg_priv == NULL) || (buf == NULL) || (addr & 0xff) || (len > 256)) { + dbg_print(is_debug_on,"Input para invalid upg_priv %p buf %p addr 0x%x len %u.\n", + upg_priv, buf, addr, len); + return -FW_SPI_FLASH_PARAM_ERR; + } + + /* Wait for the SPI port on the FPGA to become free again*/ + ret = firmware_fpga_wait_ready(upg_priv); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_wait_ready failed ret %d.\n", ret); + return -FW_SPI_FLASH_BUSY; + } + + /* Configure write enable */ + ret = firmware_fpga_set_wr_enable(upg_priv); + if (ret) { + dbg_print(is_debug_on,"firmware_fpga_set_wr_enable failed ret %d.\n", ret); + return -FW_SPI_FLASH_WR_ENABLE_ERR; + } + + /* Write upgrade data */ + ret = firmware_fpga_upg_program(upg_priv, addr, buf, len); + if (ret) { + dbg_print(is_debug_on,"dfd_fpga_upg_program addr 0x%x len %u failed ret %d.\n", addr, len, ret); + return -FW_SPI_FLASH_UPG_ERR; + } + + return 0; +} + +static int firmware_fpga_fast_read(firmware_spi_logic_upg_t *upg_priv, + uint32_t spi_addr, uint8_t *buf, uint32_t len) +{ + int ret; + uint32_t val, addr, cmd; + + /* Clear register value */ + addr = upg_priv->ctrl_base; + ret = firmware_fpga_write_buf(upg_priv->dev_path, addr, buf, len); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_write_buf addr 0x%x len %d failed ret %d.\n", addr, len, ret); + return -FW_SPI_FLASH_WR_ERR; + } + /* Write length register */ + val = FFPGA_UPG_DATA_SIZE; + addr = upg_priv->length_reg; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", + addr, val, ret); + return -FW_SPI_FLASH_WR_LENGTH_ERR; + } + + /* Write address register */ + val = spi_addr; + addr = upg_priv->addr_reg; + ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", + addr, val, ret); + return -FW_SPI_FLASH_WR_ADDR_ERR; + } + + /* Start reading SPI data */ + cmd = FPGA_UPG_INSTRUTION_FR; + ret = firmware_fpga_set_access(upg_priv, cmd); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); + return -FW_SPI_FLASH_SET_ACCESS_ERR; + } + + /* Read the upgraded content register to the buffer, + * FPGA only supports 4 bytes of read and write */ + addr = upg_priv->ctrl_base; + ret = firmware_fpga_read_buf(upg_priv->dev_path, addr, (uint8_t*)buf, len); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_read_buf addr 0x%x len %d failed ret %d.\n", addr, len, ret); + return -FW_SPI_FLASH_RD_ERR; + } + + return 0; +} + +/** + * firmware_fpga_upg_read + * function: read interface provided to the upgrade module + * @upg_priv: Device information + * @addr: upgrade addr + * @buf: Read Data Buffer + * @len: Read Data Length + * return: 0--success; other--fail + */ +static int firmware_fpga_upg_read(firmware_spi_logic_upg_t *upg_priv, + uint32_t addr, uint8_t *buf, uint32_t len) +{ + int ret; + + /* address must be 256 bytes aligned */ + if ((upg_priv == NULL) || (buf == NULL) || (addr & 0xff) || (len > 256)) { + dbg_print(is_debug_on, "Input para invalid upg_priv %p buf %p addr 0x%x len %u.\n", + upg_priv, buf, addr, len); + return -FW_SPI_FLASH_PARAM_ERR; + } + + /* Wait for the SPI port on the FPGA to become free again */ + ret = firmware_fpga_wait_ready(upg_priv); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_wait_ready failed ret %d.\n", ret); + return -FW_SPI_FLASH_BUSY; + } + + /* Configure write enable */ + ret = firmware_fpga_set_wr_enable(upg_priv); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_set_wr_enable failed ret %d.\n", ret); + return -FW_SPI_FLASH_WR_ENABLE_ERR; + } + + /* Read upgrade data */ + ret = firmware_fpga_fast_read(upg_priv, addr, buf, len); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_fast_read addr 0x%x len %u failed ret %d.\n", addr, len, ret); + return -FW_SPI_FLASH_RD_ERR; + } + + return 0; + +} + +static int firmware_upgreade_fpga_onetime(firmware_spi_logic_upg_t *upg_priv, + uint32_t flash_base, uint8_t *buf, uint32_t size) +{ + uint32_t offset, len, flash_addr, retry; + int ret, res; + uint8_t rbuf[FFPGA_UPG_DATA_SIZE]; + + offset = 0; + while(offset < size) { + flash_addr = flash_base + offset; + /* Erases a sector */ + if ((flash_addr % FIRMWARE_SPI_LOGIC_SECTOR_SIZE) == 0) { + ret = firmware_fpga_erase_sector(upg_priv, flash_addr); + if (ret < 0) { + dbg_print(is_debug_on, "firmware_fpga_erase_sector flash_addr 0x%x failed ret %d.\n", + flash_addr, ret); + goto exit; + } + } + + if (size > FFPGA_UPG_DATA_SIZE) { + len = FFPGA_UPG_DATA_SIZE; + } else { + len = size; + } + + /* first, Write data */ + ret = firmware_fpga_upg_write(upg_priv, flash_addr, buf + offset, len); + if (ret) { + dbg_print(is_debug_on, "firmware_fpga_upg_write addr 0x%x len 0x%x failed ret %d.\n", + flash_addr, len, ret); + ret = -FW_SPI_FLASH_UPG_ERR; + goto exit; + } + + /* Read back the data and compare the correctness of the data */ + for (retry = 0; retry < FPGA_UPG_RETRY_TIMES; retry++) { /*retry 3 times*/ + mem_clear(rbuf, len); + ret = firmware_fpga_upg_read(upg_priv, flash_addr, rbuf, len); + res = memcmp(rbuf, buf + offset, len); + if (ret || res) { + usleep(1000); + continue; + } + break; + } + + if (ret) { + dbg_print(is_debug_on, "firmware fpga read offset 0x%x len 0x%x failed ret %d.\n", flash_addr, len, ret); + ret = -FW_SPI_FLASH_RD_ERR; + goto exit; + } + + if (res) { + dbg_print(is_debug_on, "firmware fpga rbuf wbuf not equal, len 0x%x, check failed.\n", len); + ret = -FW_SPI_FLASH_DATA_CMP_ERR; + goto exit; + } + offset += len; + } + + dbg_print(is_debug_on, "Update success.\n"); + return FIRMWARE_SUCCESS; +exit: + dbg_print(is_debug_on, "Update failed.\n"); + return FIRMWARE_FAILED; +} + +static int firmware_upgrade_do_spi_logic(firmware_spi_logic_upg_t *current_upg_priv, + unsigned char *buf, uint32_t size) +{ + int i, ret; + uint32_t retry; + + i = 0; + retry = FIRMWARE_SPI_LOGIC_UPG_RETRY_CNT; + + ret = 0; + while(i < retry) { + ret = firmware_upgreade_fpga_onetime(current_upg_priv, current_upg_priv->flash_base, buf, size); + if (ret) { + i++; + dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime size 0x%x failed ret %d.\n", size, ret); + continue; + } else { + dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime success.\n"); + return 0; + } + } + + return ret; +} + +/* + * firmware_upgrade_spi_logic_dev + * function: FPGA SPI FLASH Firmware upgrade handler function + * @fd: param[in] sysfs device descriptor + * @buf: param[in] Update data + * @size: param[in] Update data size + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_upgrade_spi_logic_dev(int fd, uint8_t *buf, uint32_t size, name_info_t *info) +{ + int ret; + firmware_spi_logic_upg_t current_upg_priv; + + if ((fd < 0) || (buf == NULL) || (info == NULL)) { + dbg_print(is_debug_on, "Error:firmware upgrade spi logic dev parameters failed.\n"); + return FIRMWARE_FAILED; + } + + /* Gets the current logical device information */ + mem_clear(¤t_upg_priv, sizeof(firmware_spi_logic_upg_t)); + ret = firmware_upgrade_get_spi_logic_info(fd, ¤t_upg_priv); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_get_spi_logic_info failed ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "current_upg_priv dev_path[%s] flash_base[0x%0x] ctrl_base[0x%0x]\n", + current_upg_priv.dev_path, current_upg_priv.flash_base, + current_upg_priv.ctrl_base); + + /* Enable upgrade access */ + ret = firmware_upgrade_spi_logic_init(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_init failed ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + /* Upgrade logic device */ + ret = firmware_upgrade_do_spi_logic(¤t_upg_priv, buf, size); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_do_spi_logic failed ret %d.\n", ret); + goto fail; + } + + /* disable upgrade access */ + ret = firmware_upgrade_spi_logic_finish(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); + } + + return FIRMWARE_SUCCESS; +fail: + /* disable upgrade access */ + ret = firmware_upgrade_spi_logic_finish(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); + } + + return FIRMWARE_FAILED; +} + +int firmware_fpga_upgrade_test(firmware_spi_logic_upg_t *current_upg_priv) +{ + int ret, i, j, num; + uint8_t *wbuf; + uint32_t retry; + + ret = FW_SPI_FLASH_RV_OK; + wbuf = (uint8_t *) malloc(current_upg_priv->test_size); + if (wbuf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory for test data buf, size=0x%x.\n", current_upg_priv->test_size); + ret = -FW_SPI_FLASH_NOT_SUPPORT_TEST; + goto exit; + } + mem_clear(wbuf, current_upg_priv->test_size); + /* Get random data */ + for (j = 0; j < current_upg_priv->test_size; j++) { + num = rand() % 256; + wbuf[j] = num & 0xff; + } + + i = 0; + retry = FIRMWARE_SPI_LOGIC_UPG_RETRY_CNT; + + ret = 0; + while(i < retry) { + ret = firmware_upgreade_fpga_onetime(current_upg_priv, current_upg_priv->test_base, wbuf, current_upg_priv->test_size); + if (ret) { + i++; + dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime test size 0x%x failed ret %d.\n", + current_upg_priv->test_size, ret); + continue; + } else { + dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime test success.\n"); + break; + } + } + free(wbuf); +exit: + return ret; +} + +/* + * firmware_upgrade_spi_logic_dev_test + * function: FPGA SPI FLASH Firmware upgrade test handler function + * @fd: param[in] sysfs device descriptor + * @buf: param[in] Update data + * @size: param[in] Update data size + * @info: param[in] Upgrade file information + * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED + */ +int firmware_upgrade_spi_logic_dev_test(int fd, name_info_t *info) +{ + int ret; + firmware_spi_logic_upg_t current_upg_priv; + + if ((fd < 0) || (info == NULL)) { + dbg_print(is_debug_on, "Error:firmware upgrade spi logic dev parameters failed.\n"); + return FIRMWARE_FAILED; + } + + /* Gets the current logical device information */ + mem_clear(¤t_upg_priv, sizeof(firmware_spi_logic_upg_t)); + ret = firmware_upgrade_get_spi_logic_info(fd, ¤t_upg_priv); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_get_spi_logic_info failed ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "current_upg_priv dev_path[%s] test_base[0x%0x] test_size[0x%x]\n", + current_upg_priv.dev_path, current_upg_priv.test_base, current_upg_priv.test_size); + if (current_upg_priv.test_size <= 0) { + dbg_print(is_debug_on, "Error: don't support flast test.\n"); + return FIRMWARE_NOT_SUPPORT; + } + + /* Enable upgrade access */ + ret = firmware_upgrade_spi_logic_init(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_init failed ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + /* Upgrade logic device */ + ret = firmware_fpga_upgrade_test(¤t_upg_priv); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_do_spi_logic failed ret %d.\n", ret); + goto fail; + } + + /* disable upgrade access */ + ret = firmware_upgrade_spi_logic_finish(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); + } + + return FIRMWARE_SUCCESS; +fail: + /* disable upgrade access */ + ret = firmware_upgrade_spi_logic_finish(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); + } + + return FIRMWARE_FAILED; +} + +static int firmware_upgreade_spi_logic_dump(firmware_spi_logic_upg_t *upg_priv, + uint32_t offset, uint8_t *buf, uint32_t size) +{ + int ret, i; + uint32_t addr, buf_page, retry, cnt, rd_len; + + buf_page = FFPGA_UPG_DATA_SIZE; /* read data by BUF SIZE each time */ + + cnt = size / FFPGA_UPG_DATA_SIZE; + if (size % FFPGA_UPG_DATA_SIZE) { + cnt++; + } + dbg_print(is_debug_on, "need read number of times:%d.\n", cnt); + + for (i = 0; i < cnt; i++) { + addr = offset + i * FFPGA_UPG_DATA_SIZE; + if (i == (cnt - 1)) { + /* last time read remain size */ + rd_len = size - buf_page * i; + } else { + /* each time read buf page size */ + rd_len = buf_page; + } + + for (retry = 0; retry < FPGA_UPG_RETRY_TIMES; retry++) { + ret = firmware_fpga_upg_read(upg_priv, addr, buf, rd_len); + if (ret < 0) { + dbg_print(is_debug_on, "addr:0x%x read %d time failed. ret %d\n", addr, retry, ret); + continue; + } + break; + } + + if (ret < 0) { + dbg_print(is_debug_on, "finally addr:0x%x read failed ret %d\n", addr, ret); + return FIRMWARE_FAILED; + } + + buf += rd_len; /* buf pointer offset rd_len */ + } + + return FIRMWARE_SUCCESS; +} + +static int firmware_fpga_dump_read(int fd, uint32_t offset, uint8_t *buf, uint32_t len) +{ + int ret; + firmware_spi_logic_upg_t current_upg_priv; + + if ((fd < 0) || (buf == NULL)) { + dbg_print(is_debug_on, "Error:firmware upgrade spi logic dev parameters failed.\n"); + return FIRMWARE_FAILED; + } + + /* Gets the current logical device information */ + mem_clear(¤t_upg_priv, sizeof(firmware_spi_logic_upg_t)); + ret = firmware_upgrade_get_spi_logic_info(fd, ¤t_upg_priv); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_get_spi_logic_info failed ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "current_upg_priv dev_path[%s] flash_base[0x%0x] ctrl_base[0x%0x]\n", + current_upg_priv.dev_path, current_upg_priv.flash_base, + current_upg_priv.ctrl_base); + + /* Enable upgrade access */ + ret = firmware_upgrade_spi_logic_init(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_init failed ret %d.\n", ret); + return FIRMWARE_FAILED; + } + + /* read logic device */ + ret = firmware_upgreade_spi_logic_dump(¤t_upg_priv, offset, buf, len); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_do_spi_logic failed ret %d.\n", ret); + goto fail; + } + + /* disable upgrade access */ + ret = firmware_upgrade_spi_logic_finish(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); + } + + return FIRMWARE_SUCCESS; + +fail: + /* disable upgrade access */ + ret = firmware_upgrade_spi_logic_finish(fd); + if (ret < 0) { + dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); + } + + return FIRMWARE_FAILED; +} + +int firmware_upgrade_spi_logic_dev_dump(char *dev_name, uint32_t offset, + uint32_t len, char *record_file) +{ + int ret, dev_fd, file_fd; + char save_file[FIRMWARE_LOGIC_DEV_NAME_LEN]; + uint8_t *buf; + + dev_fd = open(dev_name, O_RDWR); + if (dev_fd < 0) { + dbg_print(is_debug_on, "Error: Failed to open %s, errno:%d.\n", dev_name, errno); + return FIRMWARE_FAILED; + } + + dbg_print(is_debug_on, "open dev file %s succeeded.\n", dev_name); + + buf = (uint8_t *) malloc(len); + if (buf == NULL) { + dbg_print(is_debug_on, "Error: Failed to malloc memory read %s data.\n", dev_name); + ret = FIRMWARE_FAILED; + goto free_dev_fd; + } + + mem_clear(buf, len); + ret = firmware_fpga_dump_read(dev_fd, offset, buf, len); + if (ret < 0) { + dbg_print(is_debug_on, "addr 0x%x read 0x%x failed ret:%d\n", offset, len, ret); + goto free_data; + } + + dbg_print(is_debug_on, "dump data succeeded. offset:0x%x, len:0x%x\n", offset, len); + + if (strcmp(record_file, "print") != 0) { /* record dump data on 'record_file' */ + mem_clear(save_file, FIRMWARE_LOGIC_DEV_NAME_LEN); + strncpy(save_file, record_file, FIRMWARE_LOGIC_DEV_NAME_LEN - 1); + file_fd = open(save_file, O_RDWR|O_CREAT|O_TRUNC, S_IRWXG|S_IRWXU|S_IRWXO); + if (file_fd < 0) { + dbg_print(is_debug_on, "open file %s fail, errno:%d.\n", save_file, errno); + ret = -ENOENT; + goto free_data; + } + + dbg_print(is_debug_on, "open save file %s succeeded.\n", save_file); + + ret = write(file_fd, buf, len); + if (ret < 0) { + dbg_print(is_debug_on, "write failed (errno: %d).\n", errno); + goto free_file_fd; + } + dbg_print(is_debug_on, "write save file %s succeeded.\n", save_file); + ret = FIRMWARE_SUCCESS; + } else { /* print reg on terminal by format */ + firmware_upgrade_printf_reg((uint8_t*)buf, len, offset); + ret = FIRMWARE_SUCCESS; + goto free_data; + } + +free_file_fd: + close(file_fd); +free_data: + free(buf); +free_dev_fd: + close(dev_fd); + + return ret; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h new file mode 100644 index 000000000000..32f820161e86 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h @@ -0,0 +1,90 @@ +#ifndef __FW_UPG_SPI_LOGIC_DEV_H__ +#define __FW_UPG_SPI_LOGIC_DEV_H__ + +#define FIRMWARE_FPGA_WORD_LEN (4) + +#define FIRMWARE_LOGIC_DEV_NAME_LEN (64) /* the macro definition needs to same as FIRMWARE_DEV_NAME_LEN in firmware_sysfs_upgrade.h */ +#define FIRMWARE_SPI_LOGIC_UPG_RETRY_CNT (10) +#define FIRMWARE_SPI_LOGIC_UPG_BUFF_SIZE (256) +#define FIRMWARE_SPI_LOGIC_SECTOR_SIZE (0x10000) /* One sector is 64Kk */ + +#define FIRMWARE_UPG_RETRY_SLEEP_TIME (10) /* 10us */ +#define FIRMWARE_UPG_RETRY_TIME_CNT (1000) +#define FPGA_UPG_WAIT_SPI_RETRY_CNT (100) +#define FPGA_UPG_WAIT_SPI_RETRY_SLEEP_TIME (1000 * 10) /* 10ms */ + +#define FIRMWARE_FPGA_UPG_RETRY_CNT (100) + +/* FPGA upgrades related instruction definitions */ +#define FPGA_UPG_INSTRUTION_SE (0xD8) +#define FPGA_UPG_INSTRUTION_RDSR (0x05) +#define FPGA_UPG_INSTRUTION_WREN (0x06) +#define FPGA_UPG_INSTRUTION_PP (0x02) +#define FPGA_UPG_INSTRUTION_FR (0x0B) +#define FPGA_UPG_INSTRUTION_BE (0xC7) +#define FPGA_UPG_STATUS_MASK (0x1) +#define FPGA_UPG_ACCESS_ENABLE (0x3) +#define FPGA_UPG_SPI_STATUS_MASK (0x1) +#define FFPGA_UPG_DATA_SIZE (256) + +#define FPGA_UPG_RETRY_TIMES (3) + +/* FPGA upgrades the offset of the associated register */ +#define FPGA_UPG_STATUS_REG (0x180) +#define FPGA_UPG_SPI_CTRL_REG (0x184) +#define FPGA_UPG_WR_FLASH_STATUS_REG (0x188) +#define FPGA_UPG_RD_FLASH_STATUS_REG (0x18C) +#define FPGA_UPG_INSTRUCTION_REG (0x190) +#define FPGA_UPG_ADDR_REG (0x194) +#define FPGA_UPG_LENGTH_REG (0x198) +#define FPGA_UPG_DEVICE_ID_REG (0x19C) +#define FPGA_UPG_DROP_REQ_NUM_REG (0x1A8) + +typedef struct firmware_spi_logic_info_s { + char logic_dev_name[FIRMWARE_LOGIC_DEV_NAME_LEN]; /* Logical device name */ + uint32_t flash_base; /* Flash Upgrade Address */ + uint32_t ctrl_base; /* SPI upgrade control register base address */ + uint32_t test_base; /* Test flash address */ + uint32_t test_size; /* Test flash size */ +} firmware_spi_logic_info_t; + +typedef struct firmware_spi_logic_upg_s { + char dev_path[FIRMWARE_LOGIC_DEV_NAME_LEN]; + uint32_t flash_base; /* Flash Upgrade Address */ + uint32_t ctrl_base; /* SPI upgrade control register base address */ + uint32_t status_reg; + uint32_t spi_ctrl_reg; + uint32_t wr_flash_status_reg; + uint32_t rd_flash_status_reg; + uint32_t instruction_reg; + uint32_t addr_reg; + uint32_t length_reg; + uint32_t device_id_reg; + uint32_t drop_reg_num_reg; + uint32_t test_base; /* Test flash address */ + uint32_t test_size; /* Test flash size */ +}firmware_spi_logic_upg_t; + +typedef enum firmware_spi_flash_rv_s { + FW_SPI_FLASH_RV_OK = 0, + FW_SPI_FLASH_STATUS_ERR, + FW_SPI_FLASH_BUSY, + FW_SPI_FLASH_SPI_BUSY, + FW_SPI_FLASH_WR_ENABLE_ERR, + FW_SPI_FLASH_ERASE_ADDR_ERR, + FW_SPI_FLASH_ERASE_SECTOR_ERR, + FW_SPI_FLASH_WR_ERR, + FW_SPI_FLASH_RD_ERR, + FW_SPI_FLASH_PARAM_ERR, + FW_SPI_FLASH_UPG_ERR, + FW_SPI_FLASH_WR_LENGTH_ERR, + FW_SPI_FLASH_WR_ADDR_ERR, + FW_SPI_FLASH_SET_ACCESS_ERR, + FW_SPI_FLASH_DATA_CMP_ERR, + FW_SPI_FLASH_GET_INFO_ERR, + FW_SPI_FLASH_NOT_SUPPORT_TEST, +} firmware_spi_flash_rv_t; + +int fpga_test_spi_logic_flash(int argc, char *argv[]); + +#endif /* End of __FW_UPG_SPI_LOGIC_DEV_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h new file mode 100644 index 000000000000..17dd42c3ef77 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h @@ -0,0 +1,34 @@ +/* + * + * debug.h + * firmware upgrade debug switch control + */ + +#ifndef __FIRMWARE_UPGRADE_DEBUG_H__ +#define __FIRMWARE_UPGRADE_DEBUG_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +#define DEBUG_INFO_LEN 20 +#define DEBUG_FILE "/tmp/.firmware_upgrade_debug" +#define DEBUG_ON_ALL "3" +#define DEBUG_ON_INFO "1" +#define DEBUG_OFF_INFO "0" + +enum debug_s { + DEBUG_OFF = 0, /* off debug */ + DEBUG_APP_ON, /* open app debug */ + DEBUG_ALL_ON, /* open all debug */ + DEBUG_IGNORE, /* ignore debug */ +}; + +#define dbg_print(debug, fmt, arg...) \ + if (debug == DEBUG_APP_ON || debug == DEBUG_ALL_ON) \ + { do{printf(fmt,##arg);} while(0); } + +/* firmware upgrade debug switch */ +extern int firmware_upgrade_debug(void); +extern int is_debug_on; + +#endif /* End of __FIRMWARE_UPGRADE_DEBUG_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h new file mode 100644 index 000000000000..581b2e969ec9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h @@ -0,0 +1,172 @@ +#ifndef __FIRMWARE_APP_H__ +#define __FIRMWARE_APP_H__ + +#include +#include +#include +#include +#include +#include + +#define ERR_FW_CHECK_CPLD_UPGRADE (-601) /* File validation error */ +#define ERR_FW_CHECK_FPGA_UPGRADE (-602) +#define ERR_FW_MATCH_CPLD_UPGRADE (-603) /* No matching upgrade file found */ +#define ERR_FW_MATCH_FPGA_UPGRADE (-604) +#define ERR_FW_SAMEVER_CPLD_UPGRADE (-605) /* the same version */ +#define ERR_FW_SAMEVER_FPGA_UPGRADE (-606) +#define ERR_FW_DO_CPLD_UPGRADE (-607) /* upgrade fail */ +#define ERR_FW_DO_FPGA_UPGRADE (-608) +#define ERR_FW_UPGRADE (-609) /* other fail */ +#define ERR_FW_CHECK_UPGRADE (-610) /* File validation error */ +#define ERR_FW_MATCH_UPGRADE (-611) /* No matching upgrade file found */ +#define ERR_FW_SAMEVER_UPGRADE (-612) /* the same version */ +#define ERR_FW_DO_UPGRADE (-613) /* upgrade fail */ +#define ERR_FW_DO_UPGRADE_NOT_SUPPORT (-614) /* upgrade fail */ + +#define FIRMWARE_NOT_SUPPORT (-2) +#define FIRMWARE_FAILED (-1) +#define FIRMWARE_SUCCESS (0) + +#define FIRMWARE_ACTION_CHECK 0 +#define FIRMWARE_ACTION_MATCH 1 +#define FIRMWARE_ACTION_VERCHECK 2 +#define FIRMWARE_ACTION_UPGRADE 3 +#define FIRMWARE_ACTION_SUPPORT 4 + +#define FIRMWARE_UPGRADE_RETRY_CNT (10) +#define FIRMWARE_NAME_LEN (48) +#define FIRMWARE_SLOT_MAX_NUM (16) /* Maximum number of links supported by board cards */ + +/* Upgrade file headers */ +#define MAX_DEV_NUM 10 /* Maximum number of devices to which the upgrade file is applicable */ +#define INSMOD_DRIVER 1 /* insmod driver */ +#define RMMOD_DRIVER 0 /* rmmod driver */ +#define MAX_HEADER_SIZE 1000 /* Upgrade the maximum length of file header information */ +#define MAX_HEADER_KV_SIZE 64 /* Upgrade the maximum length of the file header key value */ + +/* Upgrade file header key values */ +#define FILEHEADER_DEVTYPE "DEVTYPE" +#define FILEHEADER_SUBTYPE "SUBTYPE" +#define FILEHEADER_TYPE "TYPE" +#define FILEHEADER_CHAIN "CHAIN" +#define FILEHEADER_CHIPNAME "CHIPNAME" +#define FILEHEADER_VERSION "VERSION" +#define FILEHEADER_FILETYPE "FILETYPE" +#define FILEHEADER_CRC "CRC" + +#define FIRMWARE_CPLD_NAME "cpld" +#define FIRMWARE_FPGA_NAME "fpga" + +/* ioctl publi command, the same as driver */ +#define FIRMWARE_COMMON_TYPE 'C' +#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ +#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ +#define FIRMWARE_SET_DEBUG_ON _IOW(FIRMWARE_COMMON_TYPE, 3, int) /* debug on */ +#define FIRMWARE_SET_DEBUG_OFF _IOW(FIRMWARE_COMMON_TYPE, 4, int) /* debug off */ + +/* firmware cpld driver ioctl command, the same as "firmware_driver\firmware_driver\include\firmware.h" */ +#define FIRMWARE_TYPE 'J' +#define FIRMWARE_PROGRAM _IOW(FIRMWARE_TYPE, 1, char) /* firmware upgrade ISC */ +#define FIRMWARE_READ_CHIP _IOR(FIRMWARE_TYPE, 5, int) /* read the contents of the chip */ +#define FIRMWARE_PROGRAM_JBI _IOW(FIRMWARE_TYPE, 6, char) /* firmware upgrade JBI */ + +/* firmware cpld ispvme driver ioctl command, the same as "firmware_driver\firmware_driver_ispvme\include\firmware_ispvme.h" */ +#define FIRMWARE_VME_TYPE 'V' +#define FIRMWARE_JTAG_TDI _IOR(FIRMWARE_VME_TYPE, 0, char) +#define FIRMWARE_JTAG_TDO _IOR(FIRMWARE_VME_TYPE, 1, char) +#define FIRMWARE_JTAG_TCK _IOR(FIRMWARE_VME_TYPE, 2, char) +#define FIRMWARE_JTAG_TMS _IOR(FIRMWARE_VME_TYPE, 3, char) +#define FIRMWARE_JTAG_EN _IOR(FIRMWARE_VME_TYPE, 4, char) +#define FIRMWARE_JTAG_INIT _IOR(FIRMWARE_VME_TYPE, 7, char) /* enable upgrade access */ +#define FIRMWARE_JTAG_FINISH _IOR(FIRMWARE_VME_TYPE, 8, char) /* disable upgrade access */ + +/* firmware sysfs driver ioctl command, the same as "firmware_driver\firmware_driver_sysfs\include\firmware_sysfs.h" */ +#define FIRMWARE_SYSFS_TYPE 'S' +#define FIRMWARE_SYSFS_INIT _IOR(FIRMWARE_SYSFS_TYPE, 0, char) /* enable upgrade access */ +#define FIRMWARE_SYSFS_FINISH _IOR(FIRMWARE_SYSFS_TYPE, 1, char) /* disable upgrade access */ +#define FIRMWARE_SYSFS_SPI_INFO _IOR(FIRMWARE_SYSFS_TYPE, 2, char) /* spi flash upgrade */ +#define FIRMWARE_SYSFS_DEV_FILE_INFO _IOR(FIRMWARE_SYSFS_TYPE, 3, char) /* sysfs upgrade */ +#define FIRMWARE_SYSFS_MTD_INFO _IOR(FIRMWARE_SYSFS_TYPE, 4, char) /* sysfs mtd upgrade */ + +/* VME file, used to distinguish the JTAG signal that needs to operate */ +#define JTAG_TDO 1 +#define JTAG_TCK 2 +#define JTAG_TDI 3 +#define JTAG_TMS 4 +#define JTAG_ENABLE 5 +#define JTAG_TRST 6 + +typedef struct name_info_s { + int card_type[MAX_DEV_NUM]; /* main board type */ + int sub_type[MAX_DEV_NUM]; /* sub board type */ + int type; /* device type */ + int chain; /* chain num */ + char chip_name[FIRMWARE_NAME_LEN]; /* chip name */ + char version[FIRMWARE_NAME_LEN]; /* version */ + int file_type; /* file type */ + unsigned int crc32; /* 4 byte CRC values */ +} name_info_t; + +typedef struct cmd_info_s { + uint32_t size; + void *data; +} cmd_info_t; + +enum firmware_type_s { + FIRMWARE_UNDEF_TYPE = 0, + FIRMWARE_CPLD, + FIRMWARE_FPGA, + FIRMWARE_SYSFS, + FIRMWARE_OTHER, +}; + +typedef enum firmware_file_type_s { + FIRMWARE_UNDEF_FILE_TYPE = 0, + FIRMWARE_VME, /* ispvme cpld, GPIO simulates JTAG */ + FIRMWARE_ISC, /* cpld, GPIO simulates JTAG */ + FIRMWARE_JBI, + FIRMWARE_SPI_LOGIC_DEV, /* FPGA SPI upgrde register upgrade flash */ + FIRMWARE_SYSFS_DEV, /* write file upgrade eeprom */ + FIRMWARE_MTD, /* upgrade mtd device */ + FIRMWARE_NONE, +} firmware_file_type_t; + +typedef struct firmware_file_name_s { + char firmware_file_name_str[MAX_HEADER_KV_SIZE]; + int firmware_file_type; +} firmware_file_name_t; + +extern int header_offset; + +/* CRC32 calculation */ +extern unsigned long crc32(unsigned long crc, const unsigned char *buf, unsigned int len); +/* VME file upgrade */ +extern int firmware_upgrade_ispvme(int file_fd, char *upgrade_file_name, name_info_t *info); +extern void writePort(unsigned char a_ucPins, unsigned char a_ucValue); +extern unsigned char readPort(); +extern void sclock(); +extern void ispVMStateMachine(signed char NextState); + +/* spi flash upgrade */ +extern int firmware_upgrade_spi_logic_dev(int fd, uint8_t *buf, uint32_t size, name_info_t *info); +/* spi flash upgrade test*/ +extern int firmware_upgrade_spi_logic_dev_test(int fd, name_info_t *info); +/* spi flash data print*/ +extern int firmware_upgrade_spi_logic_dev_dump(char *dev_name, uint32_t offset, uint32_t size, char *record_file); + +/* sysfs upgrade */ +extern int firmware_upgrade_sysfs(int fd, uint8_t *buf, uint32_t size, name_info_t *info); +/* sysfs upgrade test*/ +extern int firmware_upgrade_sysfs_test(int fd, name_info_t *info); + +/* isc upgrade */ +extern int firmware_upgrade_jtag(int fd, uint8_t *buf, uint32_t size, name_info_t *info); +/* isc upgrade test */ +extern int firmware_upgrade_jtag_test(int fd, uint8_t *buf, uint32_t size, name_info_t *info); + +/* mtd upgrade */ +extern int firmware_upgrade_mtd(int fd, uint8_t *buf, uint32_t size, name_info_t *info); +/* mtd upgrade test */ +extern int firmware_upgrade_mtd_test(int fd, name_info_t *info); + +#endif /* End of __FIRMWARE_APP_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h new file mode 100644 index 000000000000..ae9d713ff86c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h @@ -0,0 +1,192 @@ +/*************************************************************** +* +* This is the include file for Lattice Semiconductor's ispVM +* Embedded software application. +* +***************************************************************/ + +/*************************************************************** +* +* VME version. +* +* History: +* +***************************************************************/ + +#define VME_VERSION_NUMBER "12.2" + +/*************************************************************** +* +* Maximum declarations. +* +***************************************************************/ + +#define VMEHEXMAX 60000L /* The hex file is split 60K per file. */ +#define SCANMAX 64000L /* The maximum SDR/SIR burst. */ + +/*************************************************************** +* +* Supported JTAG state transitions. +* +***************************************************************/ + +#define RESET 0x00 +#define IDLE 0x01 +#define IRPAUSE 0x02 +#define DRPAUSE 0x03 +#define SHIFTIR 0x04 +#define SHIFTDR 0x05 +#define DRCAPTURE 0x06 + +/*************************************************************** +* +* Flow control register bit definitions. A set bit indicates +* that the register currently exhibits the corresponding mode. +* +***************************************************************/ + +#define INTEL_PRGM 0x0001 /* Intelligent programming is in effect. */ +#define CASCADE 0x0002 /* Currently splitting large SDR. */ +#define REPEATLOOP 0x0008 /* Currently executing a repeat loop. */ +#define SHIFTRIGHT 0x0080 /* The next data stream needs a right shift. */ +#define SHIFTLEFT 0x0100 /* The next data stream needs a left shift. */ +#define VERIFYUES 0x0200 /* Continue if fail is in effect. */ + +/*************************************************************** +* +* DataType register bit definitions. A set bit indicates +* that the register currently holds the corresponding type of data. +* +***************************************************************/ + +#define EXPRESS 0x0001 /* Simultaneous program and verify. */ +#define SIR_DATA 0x0002 /* SIR is the active SVF command. */ +#define SDR_DATA 0x0004 /* SDR is the active SVF command. */ +#define COMPRESS 0x0008 /* Data is compressed. */ +#define TDI_DATA 0x0010 /* TDI data is present. */ +#define TDO_DATA 0x0020 /* TDO data is present. */ +#define MASK_DATA 0x0040 /* MASK data is present. */ +#define HEAP_IN 0x0080 /* Data is from the heap. */ +#define LHEAP_IN 0x0200 /* Data is from intel data buffer. */ +#define VARIABLE 0x0400 /* Data is from a declared variable. */ +#define CRC_DATA 0x0800 /* CRC data is pressent. */ +#define CMASK_DATA 0x1000 /* CMASK data is pressent. */ +#define RMASK_DATA 0x2000 /* RMASK data is pressent. */ +#define READ_DATA 0x4000 /* READ data is pressent. */ +#define DMASK_DATA 0x8000 /* DMASK data is pressent. */ + +/*************************************************************** +* +* Pin opcodes. +* +***************************************************************/ + +#define signalENABLE 0x1C /* ispENABLE pin. */ +#define signalTMS 0x1D /* TMS pin. */ +#define signalTCK 0x1E /* TCK pin. */ +#define signalTDI 0x1F /* TDI pin. */ +#define signalTRST 0x20 /* TRST pin. */ + +/*************************************************************** +* +* Supported vendors. +* +***************************************************************/ + +#define VENDOR 0x56 +#define LATTICE 0x01 +#define ALTERA 0x02 +#define XILINX 0x03 + +/*************************************************************** +* +* Opcode definitions. +* +* Note: opcodes must be unique. +* +***************************************************************/ + +#define ENDDATA 0x00 /* The end of the current SDR data stream. */ +#define RUNTEST 0x01 /* The duration to stay at the stable state. */ +#define ENDDR 0x02 /* The stable state after SDR. */ +#define ENDIR 0x03 /* The stable state after SIR. */ +#define ENDSTATE 0x04 /* The stable state after RUNTEST. */ +#define TRST 0x05 /* Assert the TRST pin. */ +#define HIR 0x06 /* The sum of the IR bits of the leading devices. */ +#define TIR 0x07 /* The sum of the IR bits of the trailing devices. */ +#define HDR 0x08 /* The number of leading devices. */ +#define TDR 0x09 /* The number of trailing devices. */ +#define ispEN 0x0A /* Assert the ispEN pin. */ +#define FREQUENCY 0x0B /* The maximum clock rate to run the JTAG state machine. */ +#define STATE 0x10 /* Move to the next stable state. */ +#define SIR 0x11 /* The instruction stream follows. */ +#define SDR 0x12 /* The data stream follows. */ +#define TDI 0x13 /* The following data stream feeds into the device. */ +#define TDO 0x14 /* The following data stream is compared against the device. */ +#define MASK 0x15 /* The following data stream is used as mask. */ +#define XSDR 0x16 /* The following data stream is for simultaneous program and verify. */ +#define XTDI 0x17 /* The following data stream is for shift in only. It must be stored for the next XSDR. */ +#define XTDO 0x18 /* There is not data stream. The data stream was stored from the previous XTDI. */ +#define MEM 0x19 /* The maximum memory needed to allocate in order hold one row of data. */ +#define WAIT 0x1A /* The duration of delay to observe. */ +#define TCK 0x1B /* The number of TCK pulses. */ +#define SHR 0x23 /* Set the flow control register for right shift. */ +#define SHL 0x24 /* Set the flow control register for left shift. */ +#define HEAP 0x32 /* The memory size needed to hold one loop. */ +#define REPEAT 0x33 /* The beginning of the loop. */ +#define LEFTPAREN 0x35 /* The beginning of data following the loop. */ +#define VAR 0x55 /* Plac holder for loop data. */ +#define SEC 0x1C /* The delay time in seconds that must be observed. */ +#define SMASK 0x1D /* The mask for TDI data. */ +#define MAX 0x1E /* The absolute maximum wait time. */ +#define ON 0x1F /* Assert the targeted pin. */ +#define OFF 0x20 /* Dis-assert the targeted pin. */ +#define SETFLOW 0x30 /* Change the flow control register. */ +#define RESETFLOW 0x31 /* Clear the flow control register. */ +#define CRC 0x47 /* The following data stream is used for CRC calculation. */ +#define CMASK 0x48 /* The following data stream is used as mask for CRC calculation. */ +#define RMASK 0x49 /* The following data stream is used as mask for read and save. */ +#define READ 0x50 /* The following data stream is used for read and save. */ +#define ENDLOOP 0x59 /* The end of the repeat loop. */ +#define SECUREHEAP 0x60 /* Used to secure the HEAP opcode. */ +#define VUES 0x61 /* Support continue if fail. */ +#define DMASK 0x62 /* The following data stream is used for dynamic I/O. */ +#define COMMENT 0x63 /* Support SVF comments in the VME file. */ +#define HEADER 0x64 /* Support header in VME file. */ +#define FILE_CRC 0x65 /* Support crc-protected VME file. */ +#define LCOUNT 0x66 /* Support intelligent programming. */ +#define LDELAY 0x67 /* Support intelligent programming. */ +#define LSDR 0x68 /* Support intelligent programming. */ +#define LHEAP 0x69 /* Memory needed to hold intelligent data buffer */ +#define CONTINUE 0x70 /* Allow continuation. */ +#define LVDS 0x71 /* Support LVDS. */ +#define ENDVME 0x7F /* End of the VME file. */ +#define HIGH 0x80 /* Assert the targeted pin. */ +#define LOW 0x81 /* Dis-assert the targeted pin. */ +#define ENDFILE 0xFF /* End of file. */ + +/*************************************************************** +* +* ispVM Embedded Return Codes. +* +***************************************************************/ + +#define VME_VERIFICATION_FAILURE -1 +#define VME_FILE_READ_FAILURE -2 +#define VME_VERSION_FAILURE -3 +#define VME_INVALID_FILE -4 +#define VME_ARGUMENT_FAILURE -5 +#define VME_CRC_FAILURE -6 + +/*************************************************************** +* +* Type definitions. +* +***************************************************************/ + +/* Support LVDS */ +typedef struct { + unsigned short usPositiveIndex; + unsigned short usNegativeIndex; + unsigned char ucUpdate; +} LVDSPair; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Makefile new file mode 100644 index 000000000000..1701b5f62114 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Makefile @@ -0,0 +1,18 @@ +top_srcdir:=$(shell pwd) +include $(top_srcdir)/Rules.mk + +firmware-y:= +firmware-y += fw_upgrade + +.PHONY: all +all: build + +.PHONY: build +build: $(firmware-y) +$(foreach dir,$(firmware-y),$(eval $(call compile_dirs,$(dir)))) + +.PHONY: rpmpkg +rpmpkg: +ifeq ("$(CONFIG_CPLD_UPGRADE_ISPVME)", "y") + #$(RPMPKG) $(install_cpld_dir) firmware-cpld-ispvme.spec git +endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Rules.mk b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Rules.mk new file mode 100644 index 000000000000..5fb5a09d34fd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/Rules.mk @@ -0,0 +1,42 @@ +CC ?= $(CROSS)gcc +AR ?= $(CROSS)ar +AS ?= $(CROSS)as +LD ?= $(CROSS)ld +STRIP ?= $(CROSS)strip + +install_root:=${top_srcdir}/images + +install_header_dir:=${install_root}/header +install_adir:=$(install_root)/lib +install_symbol_dir:=$(install_root)/symbol +symbol_files:=$(shell find $(EXPORT_SYMBOL) -name 'Module.symvers') +# +# symbol_files += $(shell find $(install_symbol_dir) -name 'Module.symvers') +# KBUILD_EXTRA_SYMBOLS += $(symbol_files) +# export KBUILD_EXTRA_SYMBOLS + +# top root: install_rootfs_dir +install_rootfs_dir:=$(install_root)/rootfs + +install_sodir:=$(install_rootfs_dir)/$(INSTALL_SODIR) + +install_usr_bin_dir:=$(install_rootfs_dir)/usr/bin +install_sbin_dir:=$(install_rootfs_dir)/sbin +install_etc_dir:=$(install_rootfs_dir)/etc + +export INSTALL_MOD_PATH:=$(ROOT) + +BUILD_CFLAGS:=$(CFLAGS) -I$(install_header_dir) +BUILD_LDFLAGS:=$(LDFLAGS) -L/$(install_sodir) -L/$(install_adir) + +define compile_dirs +.PHONY: $(1) +$(1): + @echo;echo "building $(1)..." + @$(MAKE) -C ${1} +endef + +compile.c = $(CC) $(BUILD_CFLAGS) -d -c -o $@ $< +%.o: %.c + $(compile.c) + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/Makefile new file mode 100644 index 000000000000..8b4bca739087 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/Makefile @@ -0,0 +1,39 @@ +include ../Rules.mk + +OBJ = fw_upgrade.o fw_upgrade_debug.o + +LIB += $(BUILD_CFALGS) $(BUILD_LDFLAGS) -lpthread +ifdef ENABLE_GCOV +ifeq ($(ENABLE_GCOV), y) +LIB += -fprofile-arcs +endif +endif # ENABLE_GCOV + +APP = fw_upgrade +BUILD_DIR = tmp +ELF_FILE = $(BUILD_DIR)/$(APP) +MAP_FILE = $(BUILD_DIR)/$(APP).map.sym +INCLUDE = -Iinclude +CFLAGS+=-Wall -W -g + +.PHONY: build +build:make-dir $(addprefix $(BUILD_DIR)/,$(OBJ)) + $(CC) -o $(ELF_FILE) $(addprefix $(BUILD_DIR)/,$(OBJ)) $(LINKFLAGS) $(LIB) + + cp -p $(ELF_FILE) $(common_out_put_dir) + +.PHONY: make-dir +make-dir: + @mkdir -p $(BUILD_DIR) + +$(BUILD_DIR)/%.o:%.c + $(CC) -c $(CFLAGS) $(INCLUDE) $< -o $@ + +.PHONY: install +install: + echo "fw_upgrade install success." + cp -p $(ELF_FILE) $(common_out_put_dir) + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade.c b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade.c new file mode 100644 index 000000000000..2045608d5c3b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade.c @@ -0,0 +1,1632 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "fw_upgrade.h" + +static flash_info_t flash_info[] = { + { + .flash_name = "M25L6433F", + .flash_size = M32, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = MX25L6433F, + .block_size = STEP_64, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "S25FL512S", + .flash_size = M64, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = S25FL512S, + .block_size = STEP_256, + .full_erase = 0, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "MX25l512", + .flash_size = M64, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = MX25l512, + .block_size = STEP_64, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "STM25P64", + .flash_size = M12, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = STM25P64, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "STM25P128", + .flash_size = M16, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = STM25P128, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "N25Q256", + .flash_size = M16, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = N25Q256, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "N25Q512", + .flash_size = M16, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = N25Q512, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "W25X16", + .flash_size = M3, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = W25X16, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "W25X64", + .flash_size = M12, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = W25X64, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "W25Q64BV", + .flash_size = M12, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = W25Q64BV, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "W25Q128BV", + .flash_size = M16, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = W25Q128BV, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "W25Q256FV", + .flash_size = M16, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = W25Q256FV, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "MX25L1605D", + .flash_size = M32, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = MX25L1605D, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "MX25L12805D", + .flash_size = M32, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = MX25L12805D, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "MX66L1G45G", + .flash_size = M128, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = MX66L1G45G, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, + { + .flash_name = "GD25Q256", + .flash_size = M16, + .flash_type = SPI, + .page_size = BYTE_256, + .flash_id = GD25Q256, + .block_size = STEP_256, + .full_erase = 1, + .erase_block_command = BLOCK_ERASE_64, + .page_program = COMMON_PAGE_PROGRAM, + }, +}; + +static int debug_on; + +static void help(void) +{ + printf("------------------------------BMC Upgrade Tool--------------------------------\n"); + printf("Program Flash:\n"); + printf("\tfw_upgrade upgrade [file name] [chip select: 0 | 1 | 2] "); + printf("[erase type: full | block]\n"); + printf("\t[file name] if file is not located at /home/admin, path should be added\n"); + printf("\t[chip select] 0:master, 1:slave, 2:both\n"); + printf("\t[erase type] choose a way to erase chip, full erase would be faster\n"); + printf("Read BMC Reg:\n"); + printf("\tfw_upgrade rd [address] [length]\n"); + printf("\t[address(Hexadecimal)] register address of BMC\n"); + printf("\t[length(decimal)] length of read data, should be times of 4\n"); + + return; +} + +static int set_ioport_rw_access(void) +{ + + if ( iopl(3) < 0) { + printf("Can't get access to /dev/port \n"); + return -1; + } + + return 0; +} + +static int get_file_size(char *file_name) +{ + FILE * pFile; + int size; + + pFile = fopen(file_name,"rb"); + if (pFile == NULL) { + printf("Error opening file\n"); + return -1; + } + fseek (pFile, 0, SEEK_END); + size = ftell(pFile); + fclose (pFile); + return size; +} + +static uint8_t _read(uint16_t addr) +{ + return inb(addr); +} + +static void _write(uint16_t addr, uint8_t val) +{ + outb(val, addr); + + return; +} + +static void write_addr_port(uint8_t addr_val, uint16_t addr_port) +{ + _write(addr_port, addr_val); + + return; +} + +static void write_data_port(uint8_t val, uint16_t data_port) +{ + _write(data_port, val); + + return; +} + +static uint8_t read_data_port(uint16_t data_port) +{ + return _read(data_port); +} + +static void write_ilpc2ahb_addr(uint32_t addr) +{ + int i; + + for (i = 0; i < 4; i++) { + write_addr_port(SUPERIO_REG0 + i, LPC_ADDR_PORT); + write_data_port((addr >> (8 * (3 - i))) & MASK, LPC_DATA_PORT); + } + + return; +} + +static void write_ilpc2ahb_data(uint32_t data) +{ + int i; + + for (i = 0; i < 4; i++) { + write_addr_port(SUPERIO_REG4 + i, LPC_ADDR_PORT); + write_data_port((data >> (8 * (3 - i))) & MASK, LPC_DATA_PORT); + } + + return; +} + +static uint32_t read_ilpc2ahb_data(void) +{ + int i, tmp; + uint32_t res; + + res = 0; + for (i = 0; i < 4; i++) { + write_addr_port(SUPERIO_REG4 + i, LPC_ADDR_PORT); + tmp = read_data_port(LPC_DATA_PORT); + res |= (tmp << (8 * (3 - i))); + } + + return res; +} + +static void trigger_ilpc2ahb_read(void) +{ + write_addr_port(SUPERIO_FE, LPC_ADDR_PORT); + read_data_port(LPC_DATA_PORT); + + return; +} + +static void trigger_ilpc2ahb_write(void) +{ + write_addr_port(SUPERIO_FE, LPC_ADDR_PORT); + write_data_port(TOGGLE_WRITE, LPC_DATA_PORT); + + return; +} + +static uint32_t read_bmc_reg(uint32_t addr) +{ + uint32_t res; + + write_ilpc2ahb_addr(addr); + trigger_ilpc2ahb_read(); + res = read_ilpc2ahb_data(); + + return res; +} + +static void write_bmc_reg(uint32_t addr, uint32_t val) +{ + write_ilpc2ahb_addr(addr); + write_ilpc2ahb_data(val); + trigger_ilpc2ahb_write(); + + return; +} + +static uint32_t read_bmc_flash_data(void) +{ + uint32_t res; + + trigger_ilpc2ahb_read(); + res = read_ilpc2ahb_data(); + + return res; +} + +static void write_bmc_flash_data(uint32_t data) +{ + write_ilpc2ahb_data(data); + trigger_ilpc2ahb_write(); + + return; +} + +static void write_bmc_flash_addr(uint32_t addr) +{ + int i; + + for (i = 0; i < 4; i++) { + write_addr_port(SUPERIO_REG4 + i, LPC_ADDR_PORT); + write_data_port((addr >> (8 * i)) & MASK, LPC_DATA_PORT); + } + + trigger_ilpc2ahb_write(); + + return; +} + +static void enable_bytes(int byte) +{ + write_addr_port(SUPERIO_REG8, LPC_ADDR_PORT); + switch (byte) { + case BYTE1: + write_data_port(SUPERIO_A0 + BYTE1_VAL, LPC_DATA_PORT); + break; + case BYTE2: + write_data_port(SUPERIO_A0 + BYTE2_VAL, LPC_DATA_PORT); + break; + case BYTE4: + write_data_port(SUPERIO_A0 + BYTE4_VAL, LPC_DATA_PORT); + break; + default: + write_data_port(SUPERIO_A0 + BYTE_RESERVED, LPC_DATA_PORT); + break; + } + + return; +} + +static void pull_ce_down(flash_info_t* info) +{ + write_bmc_reg(info->ce_control_reg, USER_MODE_PULL_CE_DOWN); + + return; +} + +static void pull_ce_up(flash_info_t* info) +{ + write_bmc_reg(info->ce_control_reg, USER_MODE_PULL_CE_UP); + + return; +} + +static void send_cmd(uint32_t flash_base_addr, int cmd) +{ + write_ilpc2ahb_addr(flash_base_addr); + enable_bytes(1); + write_addr_port(SUPERIO_REG7, LPC_ADDR_PORT); + write_data_port(cmd & MASK, LPC_DATA_PORT); + trigger_ilpc2ahb_write(); + enable_bytes(4); + + return; +} + +static void send_cmd_to_flash(flash_info_t* info, int cmd) +{ + pull_ce_down(info); + send_cmd(info->flash_base_addr, cmd); + pull_ce_up(info); + + return; +} + +static void check_data_length(void) +{ + uint8_t tmp; + /* Data length check, 4 bytes */ + write_addr_port(SUPERIO_REG8, LPC_ADDR_PORT); + tmp = read_data_port(LPC_DATA_PORT); + if (tmp != SUPERIO_A2) { + write_data_port(SUPERIO_A2, LPC_DATA_PORT); + } + + return; +} + +static void enable_ilpc2ahb(void) +{ + /* Write 0xAA then write 0xA5 twice to enable super IO*/ + write_addr_port(DISABLE_LPC, LPC_ADDR_PORT); + write_addr_port(ENABLE_LPC, LPC_ADDR_PORT); + write_addr_port(ENABLE_LPC, LPC_ADDR_PORT); + + /* Enable iLPC2AHB */ + write_addr_port(SUPERIO_07, LPC_ADDR_PORT); + write_data_port(LPC_TO_AHB, LPC_DATA_PORT); + write_addr_port(SUPERIO_30, LPC_ADDR_PORT); + write_data_port(ENABLE_LPC_TO_AHB, LPC_DATA_PORT); + + /* Data length */ + check_data_length(); + + return; +} + +static void disable_ilpc2ahb(void) +{ + /* disable ilpc2ahb */ + write_addr_port(SUPERIO_30, LPC_ADDR_PORT); + write_data_port(DISABLE_LPC_TO_AHB, LPC_DATA_PORT); + /* disable super IO */ + write_addr_port(DISABLE_LPC, LPC_ADDR_PORT); + + return; +} + +/* Enable CPU */ +static void enable_cpu(void) +{ + /* unlock SCU register */ + write_bmc_reg(SCU_ADDR, UNLOCK_SCU_KEY); + /* enable ARM */ + write_bmc_reg(REBOOT_CPU_REGISTER, SET_BMC_CPU_BOOT); + /* lock SCU register */ + write_bmc_reg(SCU_ADDR, LOCK_SCU_KEY); + + return; +} + +/* diasble CPU */ +static void disable_cpu(void) +{ + uint32_t scu_hw_strap_val; + + /* unlock SCU register */ + write_bmc_reg(SCU_ADDR, UNLOCK_SCU_KEY); + /* disable ARM */ + scu_hw_strap_val = read_bmc_reg(HARDWARE_STRAP_REGISTER); + write_bmc_reg(HARDWARE_STRAP_REGISTER, scu_hw_strap_val |0x01); + /* lock SCU register */ + write_bmc_reg(SCU_ADDR, LOCK_SCU_KEY); + + return; +} + +static void enable_upgrade(void) +{ + + enable_ilpc2ahb(); + /* diasble CPU */ + disable_cpu(); + /* init CE control register */ + write_bmc_reg(CE0_CONTROL_REGISTER, 0); + write_bmc_reg(CE1_CONTROL_REGISTER, 0); + /* disable WDT2 */ + write_bmc_reg(WATCHDOG2_CONTROL, DISABLE_WATCHDOG); + + return; +} + +static void disable_upgrade(void) +{ + enable_cpu(); + dbg_print(debug_on, "DEBUG 0x%x\n", read_bmc_reg(HARDWARE_STRAP_REGISTER)); + disable_ilpc2ahb(); + + return; +} + +static void watchdog_status_debug(void) +{ + uint32_t watchdog_reg; + + /* Watchdog Control Register */ + watchdog_reg = read_bmc_reg(WATCHDOG2_CONTROL); + dbg_print(debug_on,"Watchdog Control Register: 0x%x\n", watchdog_reg); + dbg_print(debug_on,"Watchdog Enable Signal: 0x%x\n", watchdog_reg & BIT1); + dbg_print(debug_on,"Watchdog Reset SyS En: 0x%x\n", (watchdog_reg & BIT2) >> 1); + dbg_print(debug_on,"Watchdog Reset Mode: 0x%x\n", (watchdog_reg & (BIT6 | BIT7)) >> 5); + switch (watchdog_reg & (BIT6 | BIT7)) { + case SOC_SYS: + dbg_print(debug_on,"\tReset Mode En: SoC System\n"); + break; + case FULL_CHIP: + dbg_print(debug_on,"\tReset Mode En: Full Chip\n"); + break; + case ARM_CPU: + dbg_print(debug_on,"\tReset Mode En: ARM Cpu\n"); + break; + default: + break; + } + + /* Watchdog Timeout Status Register */ + watchdog_reg = read_bmc_reg(WATCHDOG2_TSR); + dbg_print(debug_on,"Watchdog Timeout Occur: 0x%x\n", watchdog_reg & BIT1); + dbg_print(debug_on,"Watchdog Boot from: CD%d\n", watchdog_reg & BIT2); + dbg_print(debug_on,"Watchdog Interrupt Occur: 0x%x\n", watchdog_reg & BIT3); + + return; +} + +/* CE Type Setting Register */ +static void ce_type_setting_debug(void) +{ + uint32_t fmc_reg; + + fmc_reg = read_bmc_reg(FMC_CE_TYPE_SETTING_REG); + if ((fmc_reg & CE0_SPI_TYPE) == SPI) { + dbg_print(debug_on,"CE0 Type Seeting: 0x%x, Type: SPI\n", fmc_reg & CE0_SPI_TYPE); + } else { + dbg_print(debug_on,"CE0 Type Seeting: 0x%x, Type: Unknown\n", fmc_reg & CE0_SPI_TYPE); + } + if (((fmc_reg & CE1_SPI_TYPE) >> BIT2) == SPI) { + dbg_print(debug_on,"CE1 Type Seeting: 0x%x, Type: SPI\n", (fmc_reg & CE1_SPI_TYPE) >> BIT2); + } else { + dbg_print(debug_on,"CE1 Type Seeting: 0x%x, Type: Unknown\n", (fmc_reg & CE1_SPI_TYPE) >> BIT2); + } + + return; +} +/* CE Control Register */ +static void ce_control_debug(void) +{ + uint32_t fmc_reg; + + fmc_reg = read_bmc_reg(CE_CONTROL_REGISTER); + dbg_print(debug_on,"CE0 Address Mode: 0x%x, Mode: %d Bytes\n", + fmc_reg & BIT1, (fmc_reg & BIT1) + 3); + dbg_print(debug_on,"CE1 Address Mode: 0x%x, Mode: %d Bytes\n", + (fmc_reg & BIT2) >> 1, ((fmc_reg & BIT2) >> 1) + 3); + + return; +} + +/* Interrupt Control & Status Register */ +static void irq_control_status_debug(void) +{ + uint32_t fmc_reg; + + fmc_reg = read_bmc_reg(INR_STATUS_CONTROL_REGISTER); + dbg_print(debug_on,"SPI Write Address Protected Interrupt EN: 0x%x\n", fmc_reg & BIT2); + dbg_print(debug_on,"SPI Command Abort Interrupt EN: 0x%x\n", fmc_reg & BIT3); + dbg_print(debug_on,"SPI Write Address Protected Status: 0x%x, Status: %s\n", + RIGHT_SHIFT_8(fmc_reg) & BIT2, (RIGHT_SHIFT_8(fmc_reg) & BIT2) == BIT2 ? "Occur" : "Normal"); + dbg_print(debug_on,"SPI Command Abort Status: 0x%x, Status: %s\n", + RIGHT_SHIFT_8(fmc_reg) & BIT3, (RIGHT_SHIFT_8(fmc_reg) & BIT3) == BIT3 ? "Occur" : "Normal"); + /*Clear Abnormal Status*/ + if ((RIGHT_SHIFT_8(fmc_reg) & BIT3) || (RIGHT_SHIFT_8(fmc_reg) & BIT2)) { + write_bmc_reg(INR_STATUS_CONTROL_REGISTER, CLEAR_INR_STATUS_CONTROL); + } + + return; +} + +/* Command Control Register */ +static void command_control_debug(void) +{ + uint32_t fmc_reg; + + fmc_reg = read_bmc_reg(COMMAND_CONTROL_REGISTER); + dbg_print(debug_on,"Data Byte Line 0: %s\n", ((fmc_reg & BIT4) != 0) ? "Disable" : "Enable"); + dbg_print(debug_on,"Data Byte Line 1: %s\n", ((fmc_reg & BIT3) != 0) ? "Disable" : "Enable"); + dbg_print(debug_on,"Data Byte Line 2: %s\n", ((fmc_reg & BIT2) != 0) ? "Disable" : "Enable"); + dbg_print(debug_on,"Data Byte Line 3: %s\n", ((fmc_reg & BIT1) != 0) ? "Disable" : "Enable"); + + dbg_print(debug_on,"Address Byte Line 0: %s\n", ((fmc_reg & BIT8) != 0) ? "Disable" : "Enable"); + dbg_print(debug_on,"Address Byte Line 1: %s\n", ((fmc_reg & BIT7) != 0) ? "Disable" : "Enable"); + dbg_print(debug_on,"Address Byte Line 2: %s\n", ((fmc_reg & BIT6) != 0) ? "Disable" : "Enable"); + dbg_print(debug_on,"Address Byte Line 3: %s\n", ((fmc_reg & BIT5) != 0) ? "Disable" : "Enable"); + + return; +} + +static void ce_control_reg_debug(void) +{ + uint32_t fmc_reg; + + /* CE0 Control Register */ + fmc_reg = read_bmc_reg(CE0_CONTROL_REGISTER); + switch (fmc_reg & (BIT1 | BIT2)){ + case NORMAL_READ: + dbg_print(debug_on,"CE0 Command Mode: Normal Read\n"); + break; + case READ_MODE: + dbg_print(debug_on,"CE0 Command Mode: Read Command\n"); + break; + case WRITE_MODE: + dbg_print(debug_on,"CE0 Command Mode: Write Command\n"); + break; + case USER_MODE: + dbg_print(debug_on,"CE0 Command Mode: User Mode\n"); + break; + default: + break; + } + switch((RIGHT_SHIFT_24(fmc_reg) & (BIT5 | BIT6 | BIT7))){ + case 0: + dbg_print(debug_on,"CE0 IO Mode: Single Mode\n"); + break; + case 2: + case 3: + dbg_print(debug_on,"CE0 IO Mode: Dual Mode\n"); + break; + default: + break; + } + + dbg_print(debug_on,"CE0 Inactive Pulse Width: %d HCLK\n", + DEFAULT_WIDTH - (RIGHT_SHIFT_24(fmc_reg) & (BIT1 | BIT2 | BIT3 | BIT4))); + dbg_print(debug_on,"CE0 Data Input Mode: %s Mode\n", (fmc_reg & BIT4) == 0 ? "Single" : "Dual"); + dbg_print(debug_on,"CE0 MSB | LSB: %s First\n", (fmc_reg & BIT6) == 0 ? "MSB" : "LSB"); + + /* CE1 Control Register */ + fmc_reg = read_bmc_reg(CE1_CONTROL_REGISTER); + switch (fmc_reg & (BIT1 | BIT2)){ + case NORMAL_READ: + dbg_print(debug_on,"CE1 Command Mode: Normal Read\n"); + break; + case READ_MODE: + dbg_print(debug_on,"CE1 Command Mode: Read Command\n"); + break; + case WRITE_MODE: + dbg_print(debug_on,"CE1 Command Mode: Write Command\n"); + break; + case USER_MODE: + dbg_print(debug_on,"CE1 Command Mode: User Mode\n"); + break; + default: + break; + } + switch((RIGHT_SHIFT_24(fmc_reg) & (BIT5 | BIT6 | BIT7))){ + case 0: + dbg_print(debug_on,"CE1 IO Mode: Single Mode\n"); + break; + case 2: + case 3: + dbg_print(debug_on,"CE1 IO Mode: Dual Mode\n"); + break; + default: + break; + } + + dbg_print(debug_on,"CE1 Inactive Pulse Width: %d HCLK\n", + DEFAULT_WIDTH - (RIGHT_SHIFT_24(fmc_reg) & (BIT1 | BIT2 | BIT3 | BIT4))); + dbg_print(debug_on,"CE1 Data Input Mode: %s Mode\n", (fmc_reg & BIT4) == 0 ? "Single" : "Dual"); + dbg_print(debug_on,"CE1 MSB | LSB: %s First\n", (fmc_reg & BIT6) == 0 ? "MSB" : "LSB"); + + return; +} + +static void fmc_debug(void) +{ + ce_type_setting_debug(); + ce_control_debug(); + irq_control_status_debug(); + command_control_debug(); + ce_control_reg_debug(); + + return; +} + +/* Enable WatchDog to reset BMC*/ +static void enable_watchdog(int cs) +{ + uint32_t enable_watch_cmd; + + enable_watch_cmd = (cs == CE0) ? ENABLE_WATCHDOG : ENABLE_WATCHDOG | BOOT_DEFAULT_MASK; + write_bmc_reg(WATCHDOG2_CLEAR_STATUS, CLEAR_WATCHDOG_STATUS); + write_bmc_reg(WATCHDOG2_RESET_FUN_MASK, WATCHDOG_GATEMASK); + write_bmc_reg(WATCHDOG2_RELOAD_VALUE, WATCHDOG_NEW_COUNT); + write_bmc_reg(WATCHDOG2_COUNTER_RST, WATCHDOG_RELOAD_COUNTER); + write_bmc_reg(WATCHDOG2_CONTROL, enable_watch_cmd); + + return; +} + +static void bmc_reboot(int cs) +{ + enable_watchdog(cs); + watchdog_status_debug(); + disable_upgrade(); + printf("Upgrade-Complete, BMC rebooting...\n"); + + return; +} + +static int get_current_bmc(void) +{ + return (read_bmc_reg(WATCHDOG2_TSR) & 0x02) >> 1; +} + +static void get_flash_base_and_ce_ctrl(int current_bmc, int cs, uint32_t *flash_base_addr, uint32_t *ce_ctrl_addr) +{ + uint32_t ce0_addr_range_reg_val, ce0_decode_addr; + uint32_t ce1_addr_range_reg_val, ce1_decode_addr; + + ce0_addr_range_reg_val = read_bmc_reg(CE0_ADDRESS_RANGE_REGISTER); + ce0_decode_addr = SEGMENT_ADDR_START(ce0_addr_range_reg_val); + ce1_addr_range_reg_val = read_bmc_reg(CE1_ADDRESS_RANGE_REGISTER); + ce1_decode_addr = SEGMENT_ADDR_START(ce1_addr_range_reg_val); + dbg_print(debug_on,"CE0 addr decode range reg value:0x%08x, decode addr:0x%08x.\n", + ce0_addr_range_reg_val, ce0_decode_addr); + dbg_print(debug_on,"CE1 addr decode range reg value:0x%08x, decode addr:0x%08x.\n", + ce1_addr_range_reg_val, ce1_decode_addr); + + if (((current_bmc == CURRENT_MASTER) && (cs ==CE0)) || ((current_bmc == CURRENT_SLAVE) && (cs ==CE1))) { + *ce_ctrl_addr = CE0_CONTROL_REGISTER; + *flash_base_addr = ce0_decode_addr; + } else { + *ce_ctrl_addr = CE1_CONTROL_REGISTER; + *flash_base_addr = ce1_decode_addr; + } + + return; +} + +static int get_flash_id(uint32_t flash_base_addr, uint32_t ce_ctrl_addr) +{ + uint32_t origin_flash_id, flash_id; + + write_bmc_reg(ce_ctrl_addr, USER_MODE_PULL_CE_DOWN); + send_cmd(flash_base_addr, READID); + origin_flash_id = read_bmc_flash_data(); + write_bmc_reg(ce_ctrl_addr, USER_MODE_PULL_CE_UP); + flash_id = origin_flash_id & 0xFFFFFF; + dbg_print(debug_on,"origin flash id:0x%x, flash id:0x%x\n", origin_flash_id, flash_id); + + return flash_id; +} + +static uint8_t get_flash_status(flash_info_t* info) +{ + uint8_t flash_status; + + pull_ce_down(info); + + send_cmd(info->flash_base_addr, READ_FLASH_STATUS); + + flash_status = read_bmc_flash_data() & MASK; + pull_ce_up(info); + + dbg_print(debug_on,"get_flash_status:0x%x\n", flash_status); + return flash_status; +} + +static int check_flash_write_enable(flash_info_t* info) +{ + uint8_t flash_status; + int i, count; + + count = FLASH_WEL_TIMEOUT / FLASH_WEL_SLEEP_TIME; + for (i = 0; i <= count; i++) { + flash_status = get_flash_status(info); + if ((flash_status & FLASH_WRITE_ENABLE_MASK) != FLASH_WRITE_ENABLE_MASK) { + usleep(FLASH_WEL_SLEEP_TIME); + } else { + dbg_print(debug_on,"Check flash WEL success, RDSR:0x%x\n", flash_status); + return 0; + } + } + printf("Check flash WEL timeout, RDSR:0x%x\n", flash_status); + return -1; +} + +static int check_flash_write_process(flash_info_t* info, int timeout, int sleep_time) +{ + int i, count; + uint8_t flash_status; + + count = timeout / sleep_time; + for (i = 0; i <= count; i++) { + flash_status = get_flash_status(info); + if ((flash_status & FLASH_WIP_MASK) != 0) { + usleep(sleep_time); + } else { + dbg_print(debug_on,"Check flash WIP success, RDSR:0x%x\n", flash_status); + return 0; + } + } + printf("Check flash WIP timeout, RDSR:0x%x.\n", flash_status); + return -1; +} + +static int flash_write_enable(flash_info_t* info) +{ + int ret; + + send_cmd_to_flash(info, WRITE_ENABLE_FLASH); + ret = check_flash_write_enable(info); + if (ret < 0) { + return -1; + } + return 0; +} + +static void send_block_erase_cmd(flash_info_t* info, uint32_t block_addr) +{ + pull_ce_down(info); + send_cmd(info->flash_base_addr, info->erase_block_command); + write_bmc_flash_addr(block_addr); /* Erase Block addr */ + pull_ce_up(info); + + return; +} + +static void send_chip_erase_cmd(flash_info_t* info) +{ + send_cmd_to_flash(info, CHIP_ERASE_FLASH); + + return; +} + +static int write_bmc_flash_page(flash_info_t* info, uint32_t page_addr, uint8_t *p, int len) +{ + int pos; + + if (len % 4) { + printf("Page size %d invalid.\n", len); + return -1; + } + + pos = 0; + pull_ce_down(info); + send_cmd(info->flash_base_addr, info->page_program); + write_bmc_flash_addr(page_addr); /* page address */ + while (len) { + write_bmc_flash_data((*(uint32_t *)(p + pos))); + pos += 4; + len -= 4; + } + pull_ce_up(info); + + return 0; +} + +static int erase_chip_full(flash_info_t* info) +{ + time_t timep; + int ret; + + if (info->full_erase == 0) { + printf("Flash not support full erase function.\n"); + return -1; + } + + ret = flash_write_enable(info); + if(ret < 0) { + printf("Chip erase, enable flash write error.\n"); + return -1; + } + + time(&timep); + printf("Full chip erasing, please wait...\n"); + dbg_print(debug_on,"Erase Start-%s\n",asctime(gmtime(&timep))); + send_chip_erase_cmd(info); + ret = check_flash_write_process(info, CHIP_ERASE_TIMEOUT, CHIP_ERASE_SLEEP_TIME); + if (ret < 0) { + printf("Chip erase timeout.\n"); + return -1; + } + time(&timep); + dbg_print(debug_on,"Erase Finish-%s\n",asctime(gmtime(&timep))); + printf("Erase Finish\n"); + printf("=========================================\n"); + return 0; +} + +static int erase_chip_block(flash_info_t* info) +{ + uint32_t block_addr, end_addr; + time_t timep; + int ret; + + printf("Block erasing...\n"); + time (&timep); + dbg_print(debug_on,"Erase-Start-%s\n", asctime(gmtime(&timep))); + end_addr = info->flash_base_addr + info->flash_size; + block_addr = info->flash_base_addr; + while (1) { + /* Enable write */ + ret = flash_write_enable(info); + if(ret < 0) { + printf("Block erase, enable flash write error, block addr:0x%x\n", block_addr); + return -1; + } + + send_block_erase_cmd(info, block_addr); + /* Erase Block(64KB) MAX time 650ms*/ + ret = check_flash_write_process(info, BLOCK_ERASE_TIMEOUT, BLOCK_ERASE_SLEEP_TIME); + if (ret < 0) { + printf("Block erase, check write status error, block addr:0x%x\n", block_addr); + return -1; + } + printf("\r0x%x", block_addr); + fflush(stdout); + if (block_addr >= end_addr) { + time(&timep); + printf("\r\nErase Finish\n"); + printf("=========================================\n"); + dbg_print(debug_on,"\nEnd-Earse-%s\n",asctime(gmtime(&timep))); + break; + } + block_addr += info->block_size; + } + return 0; +} + +static int program_chip(uint32_t file_size, uint8_t *p, flash_info_t* info) +{ + time_t timep; + uint32_t page_addr, end_addr; + int ret, page_size; + + page_addr = info->flash_base_addr; + page_size = info->page_size; + end_addr = file_size + info->flash_base_addr; + time (&timep); + printf("Programming...\n"); + dbg_print(debug_on,"Program Start-%s\n",asctime(gmtime(&timep))); + /* Debug info */ + fmc_debug(); + while (1) { + /* Write enable */ + ret = flash_write_enable(info); + if(ret < 0) { + printf("Page program, enable flash write error, page addr:0x%x\n", page_addr); + return -1; + } + ret = write_bmc_flash_page(info, page_addr, p, page_size); + if (ret < 0) { + printf("Page program, write bmc flash page error, page addr:0x%x\n", page_addr); + return -1; + } + /* page program MAX time 1.5ms */ + ret = check_flash_write_process(info, PAGE_PROGRAM_TIMEOUT, PAGE_PROGRAM_SLEEP_TIME); + if (ret < 0) { + printf("Page program, check write status error, page addr:0x%x\n", page_addr); + return -1; + } + page_addr += page_size; + p += page_size; + if ((page_addr % 0x10000) == 0) { + printf("\r0x%x", page_addr); + fflush(stdout); + } + + if (page_addr >= end_addr) { + printf("\nProgram Finish\n"); + printf("=========================================\n"); + time(&timep); + dbg_print(debug_on,"\nProgram-End-%s\n",asctime(gmtime(&timep))); + break; + } + } /* End of while (1) */ + return 0; +} + +static int check_chip(uint32_t file_size, uint8_t *p, flash_info_t* info) +{ + time_t timep; + uint32_t offset_addr, rd_val, end_addr; + int pos; + + offset_addr = info->flash_base_addr; + end_addr = file_size + info->flash_base_addr; + pos=0; + /* Checking */ + time(&timep); + printf("Checking...\n"); + dbg_print(debug_on,"Checking-Start-%s\n",asctime(gmtime(&timep))); + + pull_ce_down(info); + send_cmd(info->flash_base_addr, COMMON_FLASH_READ); + write_bmc_flash_addr(info->flash_base_addr); + while (1) { + if (offset_addr >= end_addr) { + break; + } + rd_val = read_bmc_flash_data(); + if (rd_val != (*(uint32_t *)(p + pos))) { + printf("Check Error at 0x%08x\n", offset_addr); + printf("READ:0x%08x VALUE:0x%08x\n", rd_val, (*(uint32_t *)(p + pos))); + pull_ce_up(info); + return -1; + } + if ((offset_addr % 0x10000) == 0) { + printf("\r0x%x ", offset_addr); + fflush(stdout); + } + offset_addr += 4; + pos += 4; + } + pull_ce_up(info); + printf("\r\nFlash Checked\n"); + printf("=========================================\n"); + time(&timep); + dbg_print(debug_on,"Checking-End-%s\n",asctime(gmtime(&timep))); + return 0; +} + +flash_info_t* get_flash_info(int current_bmc, int cs) +{ + int i, size; + uint32_t flash_base_addr, ce_ctrl_addr, flash_id; + + get_flash_base_and_ce_ctrl(current_bmc, cs, &flash_base_addr, &ce_ctrl_addr); + + size = (sizeof(flash_info) / sizeof((flash_info)[0])); + + flash_id = get_flash_id(flash_base_addr, ce_ctrl_addr); + for (i = 0; i < size; i++) { + if (flash_info[i].flash_id == flash_id) { + flash_info[i].flash_base_addr = flash_base_addr; + flash_info[i].ce_control_reg = ce_ctrl_addr; + flash_info[i].cs = cs; + return &flash_info[i]; + } + } + printf("Cannot get flash info, cs:%d, flash base addr:0x%x, ce control addr:0x%x, flash_id:0x%x.\n", + cs, flash_base_addr, ce_ctrl_addr, flash_id); + return NULL; +} + +static void init_flash(flash_info_t* info) +{ + send_cmd_to_flash(info, RSTEN); + send_cmd_to_flash(info, RST); + send_cmd_to_flash(info, EXIT_OTP); + send_cmd_to_flash(info, ENABLE_BYTE4); + + return; +} + +static int upgrade_bmc_core(char *file_name, int erase_type, flash_info_t* info) +{ + int file_size, fp, ret; + uint8_t *p; + + file_size = get_file_size(file_name); + if (file_size < 0) { + printf("file size %d Error\n", file_size); + return -1; + } + + fp = open(file_name, O_RDWR); + if (fp < 0) { + printf("Cannot open %s.\n", file_name); + return -1; + } + + p = mmap(NULL, file_size, PROT_READ, MAP_SHARED, fp, 0); + if (p == MAP_FAILED) { + printf("Could not mmap %s, error(%s).\n", file_name, strerror(errno)); + close(fp); + return -1; + } + + printf("* CE%d FLASH TYPE: SPI FLASH\n", info->cs); + printf("* FLASH NAME: %s\n", info->flash_name); + printf("* File Size:%d, 0x%x\n", file_size, file_size); + printf("=========================================\n"); + + /* Select erase type */ + switch (erase_type) { + case FULL_ERASE: + ret = erase_chip_full(info); + break; + case BLOCK_ERASE: + ret = erase_chip_block(info); + break; + default: + printf("Unsupport earse type:%d\n", erase_type); + goto exit; + break; + } + + if (ret < 0) { + printf("Erase Chip Error\n"); + goto exit; + } + + /* Program the flash */ + ret = program_chip(file_size, p, info); + if(ret < 0) { + printf("Program Chip Error\n"); + goto exit; + } + /* Check */ + ret = check_chip(file_size, p, info); + if(ret < 0) { + printf("Check Chip Error\n"); + goto exit; + } + + munmap(p, file_size); + close(fp); + return 0; +exit: + munmap(p, file_size); + close(fp); + return -1; +} + +static int upgrade_bmc_flash(char *filename, int current_bmc, int cs, int erase_type) +{ + int ret; + flash_info_t* info; + + info = get_flash_info(current_bmc, cs); + if(info == NULL) { + return -1; + } + + init_flash(info); + + ret = upgrade_bmc_core(filename, erase_type, info); + + return ret; +} + +static int upgrade_both_flash(char *filename, int erase_type) +{ + int ret, current_bmc; + + enable_upgrade(); + + current_bmc = get_current_bmc(); + if (current_bmc == CURRENT_MASTER) { + printf("* Current Bmc Default Boot: CE0\n"); + } else { + printf("* Current Bmc Default Boot: CE1\n"); + } + + ret = upgrade_bmc_flash(filename, current_bmc, CE0, erase_type); + if (ret < 0) { + printf("Upgrade master bmc flash failed, stop upgrade.\n"); + goto err; + } + printf("Upgrade master bmc flash success.\n"); + + ret = upgrade_bmc_flash(filename, current_bmc, CE1, erase_type); + if (ret < 0) { + printf("Upgrade slave bmc flash failed.\n"); + goto err; + } + printf("Upgrade slave bmc flash success.\n"); + + bmc_reboot(CE0); + return 0; +err: + disable_upgrade(); + return -1; +} + +static int upgrade_single_flash(char *filename, int cs, int erase_type) +{ + int ret, current_bmc; + + enable_upgrade(); + + current_bmc = get_current_bmc(); + if (current_bmc == CURRENT_MASTER) { + printf("* Current Bmc Default Boot: CE0\n"); + } else { + printf("* Current Bmc Default Boot: CE1\n"); + } + + ret = upgrade_bmc_flash(filename, current_bmc, cs, erase_type); + if (ret < 0) { + printf("Upgrade %s bmc flash failed.\n", cs == 0 ? "master":"slave"); + goto err; + } + printf("Upgrade %s bmc flash success.\n", cs == 0 ? "master":"slave"); + + bmc_reboot(cs); + return 0; +err: + disable_upgrade(); + return -1; +} + +static int upgrade_bmc(char *filename, int cs, int erase_type) +{ + int ret; + + if (access(filename, F_OK) < 0) { + printf("Can't find file\n"); + help(); + return -1; + } + + ret = set_ioport_rw_access(); + if (ret < 0) { + printf("IO ERROR\n"); + return -1; + } + + switch(cs) { + /* Single */ + case CE0: + case CE1: + ret = upgrade_single_flash(filename, cs, erase_type); + break; + /* Both */ + case BOTHFLASH: + ret = upgrade_both_flash(filename, erase_type); + break; + default: + ret = -1; + printf("Unsupport cs:%d\n", cs); + break; + } + + return ret; +} + +static int read_single_bmc_flash(flash_info_t* info, uint32_t start_addr, int read_size, int is_print) +{ + uint32_t res, flash_start_addr, flash_end_addr; + char filename[MAX_FILENAME_LENGTH]; + int fd, ret; + + flash_start_addr = info->flash_base_addr + start_addr; + flash_end_addr = flash_start_addr + read_size; + ret = 0; + fd = 0; + if (!is_print) { + mem_clear(filename, MAX_FILENAME_LENGTH); + snprintf(filename, MAX_FILENAME_LENGTH, "/tmp/image-bmc%d", info->cs); + fd = open(filename, O_RDWR | O_CREAT | O_TRUNC, S_IRWXG|S_IRWXU|S_IRWXO); + if (fd < 0) { + printf("open file %s fail(err:%d)!\r\n", filename, errno); + return -1; + } + } + + printf("* CE%d FLASH TYPE: SPI FLASH\n", info->cs); + printf("* FLASH NAME: %s\n", info->flash_name); + printf("* Read flash addr:0x%x, size:0x%x\n", flash_start_addr, read_size); + printf("=========================================\n"); + printf("Reading...\n"); + + pull_ce_down(info); + send_cmd(info->flash_base_addr, COMMON_FLASH_READ); + write_bmc_flash_addr(flash_start_addr); + while (1) { + if (flash_start_addr >= flash_end_addr) { + break; + } + res = read_bmc_flash_data(); + if (is_print) { + printf("addr:0x%08x, val:0x%08x\n", flash_start_addr, res); + } else { + ret = write(fd, &res, sizeof(res)); + if (ret < 0) { + printf("write failed (errno: %d).\n", errno); + ret = -1; + goto exit; + } + } + if (((flash_start_addr % 0x10000) == 0) && (!is_print)) { + printf("\r0x%x ", flash_start_addr); + fflush(stdout); + } + flash_start_addr += 4; + } + printf("\r\nRead Finish\n"); + printf("=========================================\n"); +exit: + pull_ce_up(info); + if (fd > 0) { + close(fd); + } + return ret; +} + +static int read_bmc_flash(int cs, uint32_t start_addr, int read_size, int is_print) +{ + int ret, current_bmc; + flash_info_t* info; + + ret = set_ioport_rw_access(); + if (ret < 0) { + printf("IO ERROR\n"); + return -1; + } + + enable_upgrade(); + + current_bmc = get_current_bmc(); + if (current_bmc == CURRENT_MASTER) { + printf("* Current Bmc Default Boot: CE0\n"); + } else { + printf("* Current Bmc Default Boot: CE1\n"); + } + + info = get_flash_info(current_bmc, cs); + if(info == NULL) { + goto err; + } + + if (start_addr >= info->flash_size) { + printf("start_addr 0x%x out of range.\n", start_addr); + goto err; + } + + if ((start_addr + read_size) > info->flash_size) { + printf("read size %d exceed flash size.\n", read_size); + read_size = info->flash_size - start_addr; + } + + init_flash(info); + + ret = read_single_bmc_flash(info, start_addr, read_size, is_print); + if (ret < 0) { + printf("Read %s bmc flash failed.\n", cs == 0 ? "master" : "slave"); + goto err; + } + disable_upgrade(); + return 0; +err: + disable_upgrade(); + return -1; +} + +static int read_bmc_reg_main(int argc, char* argv[]) +{ + uint32_t start_addr, read_val; + int read_size, ret; + char *stopstring; + + if (argc != 4) { + printf("Input invalid.\n"); + help(); + return -1; + } + + start_addr = strtoul(argv[2], &stopstring, 16); + read_size = strtol(argv[3], &stopstring, 10); + + if (read_size <= 0) { + printf("read length %d invalid\n", read_size); + return -1; + } + + if (((start_addr % 4) != 0) || ((read_size % 4) != 0)) { + printf("Params invalid, start_addr:0x%08x, read_size:%d\n", start_addr, read_size); + printf("Please input address/length times of 4\n"); + return -1; + } + + ret = set_ioport_rw_access(); + if (ret < 0) { + printf("IO ERROR\n"); + return -1; + } + + enable_ilpc2ahb(); + + printf("read bcm reg, start_addr:0x%08x, read length:%d\n", start_addr, read_size); + printf("===Addr=== | ===Cont===\n"); + while (read_size) { + read_val = read_bmc_reg(start_addr); + printf("0x%08x | 0x%08x\n", start_addr, read_val); + start_addr += 4; + read_size -= 4; + } + + disable_ilpc2ahb(); + return 0; +} + +static int write_bmc_reg_main(int argc, char* argv[]) +{ + uint32_t addr, wr_val; + int ret; + char *stopstring; + + if (argc != 4) { + printf("Input invalid.\n"); + help(); + return -1; + } + + addr = strtoul(argv[2], &stopstring, 16); + wr_val = strtoul(argv[3], &stopstring, 16); + + if (((addr & MASK_BYTE) != REGISTER_HEAD) || ((addr % 4) != 0)) { + printf("Address[0x%08x] invalid, address should be register address and times of 4.\n", addr); + return -1; + } + + ret = set_ioport_rw_access(); + if (ret < 0) { + printf("IO ERROR\n"); + return -1; + } + + printf("write bcm reg, addr:0x%08x, val:0x%08x\n", addr, wr_val); + + enable_ilpc2ahb(); + write_bmc_reg(addr, wr_val); + disable_ilpc2ahb(); + + return 0; +} + +static int get_fmc_info_main(void) +{ + int ret; + + ret = set_ioport_rw_access(); + if (ret < 0) { + printf("IO ERROR\n"); + return -1; + } + + enable_ilpc2ahb(); + + debug_on = 3; + fmc_debug(); + debug_on = 0; + + disable_ilpc2ahb(); + return 0; +} + +static int program_flash_main(int argc, char* argv[]) +{ + int cs, erase_way, ret; + char *stopstring; + char tmp[128]; + + if (argc != 5) { + printf("Input invalid.\n"); + help(); + return -1; + } + + cs = strtol(argv[3], &stopstring, 10); + if ((strlen(stopstring) != 0) || cs < 0 || cs > 2) { + snprintf(tmp, sizeof(tmp), "%s", argv[3]); + printf("Incorrect chip select %s\n", tmp); + help(); + return -1; + } + + if (strcmp(argv[4], "full") == 0) { + erase_way = FULL_ERASE; + } else if (strcmp(argv[4], "block") == 0) { + erase_way = BLOCK_ERASE; + } else { + snprintf(tmp, sizeof(tmp), "%s", argv[4]); + printf("Incorrect erase type %s\n", tmp); + help(); + return -1; + } + + printf("============BMC Upgrade Tool=============\n"); + ret = upgrade_bmc(argv[2], cs, erase_way); + return ret; +} + +static int read_bmc_flash_main(int argc, char* argv[]) +{ + int cs, ret, read_size, is_print; + uint32_t start_addr; + char *stopstring; + char tmp[128]; + + if (argc != 6) { + printf("Input invalid.\n"); + help(); + return -1; + } + + cs = strtol(argv[2], &stopstring, 10); + if ((strlen(stopstring) != 0) || cs < 0 || cs > 1) { + snprintf(tmp, sizeof(tmp), "%s", argv[2]); + printf("Incorrect chip select %s\n", tmp); + help(); + return -1; + } + + start_addr = strtoul(argv[3], &stopstring, 16); + read_size = strtol(argv[4], &stopstring, 10); + + if (read_size <= 0) { + printf("read length %d invalid\n", read_size); + return -1; + } + + if (((start_addr % 4) != 0) || ((read_size % 4) != 0)) { + printf("Params invalid, start_addr:0x%08x, read_size:%d\n", start_addr, read_size); + printf("Please input address/length times of 4\n"); + return -1; + } + + if (strcmp(argv[5], "print") == 0) { + is_print = 1; + } else { + is_print = 0; + } + + printf("============READ BMC FLASH=============\n"); + ret = read_bmc_flash(cs, start_addr, read_size, is_print); + return ret; +} + +int main(int argc, char *argv[]) +{ + int ret; + + debug_on = fw_upgrade_debug(); + + if (argc < 2) { + help(); + return -1; + } + + if (argc == 2) { + if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) { + help(); + return 0; + } + } + + if (strcmp(argv[1], "rd") == 0) { + ret = read_bmc_reg_main(argc, argv); + if (ret < 0) { + printf("Read Failed\n"); + } + return ret; + } + + if (strcmp(argv[1], "wr") == 0 && debug_on == 3) { + ret = write_bmc_reg_main(argc, argv); + if (ret < 0) { + printf("Write Failed\n"); + } + return ret; + } + + if (strcmp(argv[1], "info") == 0) { + ret = get_fmc_info_main(); + if (ret < 0) { + printf("Get fmc info Failed\n"); + } + return ret; + } + + if (strcmp(argv[1], "upgrade") == 0) { + ret = program_flash_main(argc, argv); + if (ret < 0) { + printf("Upgrade BMC failed.\n"); + } + return ret; + } + + if (strcmp(argv[1], "read_bmc_flash") == 0) { + ret = read_bmc_flash_main(argc, argv); + if (ret < 0) { + printf("Read BMC flash failed.\n"); + } + return ret; + } + + printf("Input invalid.\n"); + help(); + + return -1; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade_debug.c b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade_debug.c new file mode 100644 index 000000000000..a7a78d011011 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/fw_upgrade_debug.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "fw_upgrade_debug.h" + +int fw_upgrade_debug(void) +{ + int size; + FILE *fp; + char debug_info[DEBUG_INFO_LEN]; + + fp = fopen(DEBUG_FILE, "r"); + if (fp == NULL) { + return DEBUG_IGNORE; + } + + mem_clear(debug_info, DEBUG_INFO_LEN); + size = fread(debug_info, DEBUG_INFO_LEN - 1, 1, fp); + if (size < 0) { + fclose(fp); + return DEBUG_IGNORE; + } + + if (strncmp(debug_info, DEBUG_ON_INFO, 1) == 0) { + fclose(fp); + return DEBUG_APP_ON; + } + + if (strncmp(debug_info, DEBUG_ON_KERN, 1) == 0) { + fclose(fp); + return DEBUG_KERN_ON; + } + + if (strncmp(debug_info, DEBUG_ON_ALL, 1) == 0) { + fclose(fp); + return DEBUG_ALL_ON; + } + + if (strncmp(debug_info, DEBUG_OFF_INFO, 1) == 0) { + fclose(fp); + return DEBUG_OFF; + } + + fclose(fp); + return DEBUG_IGNORE; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade.h b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade.h new file mode 100644 index 000000000000..bd806a94b154 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade.h @@ -0,0 +1,230 @@ +#ifndef _FW_UPGRADE_H_ +#define _FW_UPGRADE_H_ + +#include "fw_upgrade_debug.h" + +#define dbg_print(debug, fmt, arg...) \ + if (debug == DEBUG_APP_ON || debug == DEBUG_ALL_ON) \ + { do{printf(fmt,##arg);} while(0); } + +/* LPC Interface */ +#define LPC_ADDR_PORT (0x4E) +#define LPC_DATA_PORT (0x4F) + +/* FMC REGISTER ADDR */ +#define FMC_BASE_ADDR (0x1E620000) +#define FMC_CE_TYPE_SETTING_REG (FMC_BASE_ADDR + 0x00) +#define CE_CONTROL_REGISTER (FMC_BASE_ADDR + 0x04) +#define INR_STATUS_CONTROL_REGISTER (FMC_BASE_ADDR + 0x08) +#define COMMAND_CONTROL_REGISTER (FMC_BASE_ADDR + 0x0C) +#define CE0_CONTROL_REGISTER (FMC_BASE_ADDR + 0x10) +#define CE1_CONTROL_REGISTER (FMC_BASE_ADDR + 0x14) +#define CE0_ADDRESS_RANGE_REGISTER (FMC_BASE_ADDR + 0x30) +#define CE1_ADDRESS_RANGE_REGISTER (FMC_BASE_ADDR + 0x34) + +/* SCU REGISTER ADDR */ +#define SCU_ADDR (0x1E6E2000) +#define HARDWARE_STRAP_REGISTER (SCU_ADDR + 0x70) +#define REBOOT_CPU_REGISTER (SCU_ADDR + 0x7C) + +/* SCU KEY */ +#define UNLOCK_SCU_KEY (0x1688A8A8) +#define LOCK_SCU_KEY (0x11111111) + +/* WATCHDOG REGISTER ADDR */ +#define WATCHDOG_ADDR (0x1E785000) +#define WATCHDOG1_RELOAD_VALUE (WATCHDOG_ADDR + 0x04) +#define WATCHDOG1_COUNTER_RST (WATCHDOG_ADDR + 0x08) +#define WATCHDOG1_CONTROL (WATCHDOG_ADDR + 0x0C) +#define WATCHDOG1_TSR (WATCHDOG_ADDR + 0x10) +#define WATCHDOG1_CLEAR_STATUS (WATCHDOG_ADDR + 0x14) +#define WATCHDOG1_RESET_FUN_MASK (WATCHDOG_ADDR + 0x1C) + +#define WATCHDOG2_RELOAD_VALUE (WATCHDOG_ADDR + 0x24) +#define WATCHDOG2_COUNTER_RST (WATCHDOG_ADDR + 0x28) +#define WATCHDOG2_CONTROL (WATCHDOG_ADDR + 0x2C) +#define WATCHDOG2_TSR (WATCHDOG_ADDR + 0x30) +#define WATCHDOG2_CLEAR_STATUS (WATCHDOG_ADDR + 0x34) +#define WATCHDOG2_RESET_FUN_MASK (WATCHDOG_ADDR + 0x3C) + +/* User Mode Command */ +#define WRITE_STATUS (0x01) +#define COMMON_PAGE_PROGRAM (0x02) +#define COMMON_FLASH_READ (0x03) +#define WRITE_DISABLE_FLASH (0x04) +#define READ_FLASH_STATUS (0x05) +#define WRITE_ENABLE_FLASH (0x06) +#define PAGE_PROGRAM_FLASH (0x12) +#define SECTOR_ERASE (0x20) +#define CLEAR_FLAG (0x50) +#define SUBBLOCK_ERASE (0x52) +#define CHIP_ERASE_FLASH (0x60) +#define BLOCK_ERASE_64 (0xD8) +#define READID (0x9F) +#define ENABLE_BYTE4 (0xB7) +#define EXIT_OTP (0xC1) +#define RSTEN (0x66) +#define RST (0x99) + +#define BIT1 (0x01) +#define BIT2 (0x02) +#define BIT3 (0x04) +#define BIT4 (0x08) +#define BIT5 (0x10) +#define BIT6 (0x20) +#define BIT7 (0x40) +#define BIT8 (0x80) +#define RIGHT_SHIFT_8(reg) (reg >> 8) +#define RIGHT_SHIFT_16(reg) (reg >> 16) +#define RIGHT_SHIFT_24(reg) (reg >> 24) +#define MASK (0xFF) +#define FLASH_TYPE_MASK (BIT1 | BIT2) +#define BOOT_DEFAULT_MASK (BIT8) +#define HEAD_MASK (0x00FFFF00) +#define MASK_BYTE (0xFF000000) +#define BYTE1 (1) +#define BYTE2 (2) +#define BYTE4 (4) +#define BYTE1_VAL (0) +#define BYTE2_VAL (1) +#define BYTE4_VAL (2) +#define BYTE_RESERVED (3) + +/* SuperIO */ +#define SUPERIO_07 (0x07) +#define SUPERIO_30 (0x30) +#define SUPERIO_A0 (0xA0) +#define SUPERIO_A2 (0xA2) +#define SUPERIO_REG0 (0xF0) +#define SUPERIO_REG1 (0xF1) +#define SUPERIO_REG2 (0xF2) +#define SUPERIO_REG3 (0xF3) +#define SUPERIO_REG4 (0xF4) +#define SUPERIO_REG5 (0xF5) +#define SUPERIO_REG6 (0xF6) +#define SUPERIO_REG7 (0xF7) +#define SUPERIO_REG8 (0xF8) +#define SUPERIO_FE (0xFE) + +/* SPI Command */ +#define HIGH_CLOCK (0x00000000) +#define NORMAL_READ (0x00000000) +#define READ_MODE (0x00000001) +#define WRITE_MODE (0x00000002) +#define USER_MODE (0x00000003) +#define PULL_DOWN (0x00000000) +#define PULL_UP (0x00000004) + +#define CHIP_ERASE_TIME (60) +#define CHIP_ERASE_TIMEOUT (300 * 1000 * 1000) +#define CHIP_ERASE_SLEEP_TIME (5 * 1000 * 1000) +#define BLOCK_ERASE_TIMEOUT (10 * 1000 * 1000) +#define BLOCK_ERASE_SLEEP_TIME (100 * 1000) +#define PAGE_PROGRAM_TIMEOUT (100 * 1000) +#define PAGE_PROGRAM_SLEEP_TIME (1000) +#define FLASH_WEL_TIMEOUT (100 * 1000) +#define FLASH_WEL_SLEEP_TIME (1000) +#define FLASH_WIP_MASK (0x00000001) +#define FLASH_WRITE_ENABLE_MASK (0x00000002) + +#define DATA_LENGTH_MASK (0xA2) +#define TOGGLE_WRITE (0xCF) +#define DISABLE_LPC (0xAA) +#define ENABLE_LPC (0xA5) +#define LPC_TO_AHB (0x0D) +#define ENABLE_LPC_TO_AHB (0x01) +#define DISABLE_LPC_TO_AHB (0x00) +#define ENABLE_BMC_CPU_BOOT (0xF10BD286) +#define DISABLE_BMC_CPU_BOOT (0xF10BD287) +#define SET_BMC_CPU_BOOT (0x01) +#define CLEAR_WATCHDOG_STATUS (0x01) +#define DISABLE_WATCHDOG (0x00000030) +#define ENABLE_WATCHDOG (0x00000033) +#define WATCHDOG_GATEMASK (0x033FFFF3) +#define WATCHDOG_NEW_COUNT (0x00050000) +#define WATCHDOG_RELOAD_COUNTER (0x4755) + +#define CE0_SPI_TYPE (0x00000002) +#define CE1_SPI_TYPE (0x00000008) +#define ERROR_COMMAND (0x00000400) +#define ADDRESS_PROTECT (0x00000200) +#define CLEAR_INR_STATUS_CONTROL (ERROR_COMMAND | ADDRESS_PROTECT) +#define USER_MODE_PULL_CE_DOWN (HIGH_CLOCK | USER_MODE | PULL_DOWN) +#define USER_MODE_PULL_CE_UP (HIGH_CLOCK | USER_MODE | PULL_UP) + +#define STEP_64 (64 * 1024) +#define STEP_256 (256 * 1024) +#define BYTE_256 (256) + +#define CE0 (0) +#define CE1 (1) +#define BOTHFLASH (2) +#define SOC_SYS (0) +#define FULL_CHIP (1) +#define ARM_CPU (2) +#define FULL_ERASE (0) +#define BLOCK_ERASE (1) +#define READ_ALL (2) +#define CURRENT_SLAVE (1) +#define CURRENT_MASTER (0) +#define REGISTER_HEAD (0x1e000000) +#define DEFAULT_WIDTH (16) +#define MAX_FILENAME_LENGTH (64) +#define SEGMENT_ADDR_START(_r) ((((_r) >> 16) & 0xFF) << 23) + +typedef struct flash_info { + uint32_t flash_size; + int cs; + int flash_type; + uint32_t flash_id; + int page_size; + char flash_name[64]; + int erase_block_command; + int page_program; + int block_size; + int full_erase; + uint32_t ce_control_reg; + uint32_t flash_base_addr; +} flash_info_t; + +typedef enum flash_id { + MX25L6433F = 0x1920c2, + S25FL512S = 0x200201, + MX25l512 = 0x1a20c2, + STM25P64 = 0x172020, + STM25P128 = 0x182020, + N25Q256 = 0x19ba20, + N25Q512 = 0x20ba20, + W25X16 = 0x1530ef, + W25X64 = 0x1730ef, + W25Q64BV = 0x1740ef, + W25Q128BV = 0x1840ef, + W25Q256FV = 0x1940ef, + MX25L1605D = 0x1520C2, + MX25L12805D = 0x1820C2, + MX66L1G45G = 0x1B20C2, + SST25VF016B = 0x4125bf, + SST25VF064C = 0x4b25bf, + SST25VF040B = 0x8d25bf, + AT25DF161 = 0x02461F, + AT25DF321 = 0x01471F, + GD25Q256 = 0X1940c8, +} flash_id_t; + +typedef enum flash_type { + NOR = 0, + SPI = 2, +} flash_type_t; + +typedef enum flash_size { + M1 = 0x00080000, + M3 = 0x00200000, /* 3M */ + M6 = 0x00400000, /* 6M */ + M12 = 0x00800000, /* 12M */ + M16 = 0x01000000, /* 16M */ + M32 = 0x02000000, /* 32M */ + M64 = 0x04000000, /* 64M */ + M128 = 0x08000000, /* 128M */ +} flash_size_t; + +#endif /*_FW_UPGRADE_H_*/ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade_debug.h b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade_debug.h new file mode 100644 index 000000000000..05911da62a7e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/app/fw_upgrade/fw_upgrade/include/fw_upgrade_debug.h @@ -0,0 +1,25 @@ +#ifndef __FW_UPGRADE_DEBUG_H__ +#define __FW_UPGRADE_DEBUG_H__ + +#include + +#define DEBUG_INFO_LEN 20 +#define DEBUG_FILE "/tmp/.fw_upgrade_debug" +#define DEBUG_ON_ALL "3" +#define DEBUG_ON_KERN "2" +#define DEBUG_ON_INFO "1" +#define DEBUG_OFF_INFO "0" + +#define mem_clear(data, size) memset((data), 0, (size)) + +enum debug_s { + DEBUG_OFF = 0, + DEBUG_APP_ON, + DEBUG_KERN_ON, + DEBUG_ALL_ON, + DEBUG_IGNORE, +}; + +extern int fw_upgrade_debug(void); + +#endif /* End of __FW_UPGRADE_DEBUG_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/__init__.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/hysteresis.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/hysteresis.py new file mode 100644 index 000000000000..81fd596e7fee --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/hysteresis.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 +import os +import syslog +import copy + +from plat_hal.baseutil import baseutil + +HYST_DEBUG_FILE = "/etc/.hysteresis_debug_flag" + +HYSTERROR = 1 +HYSTDEBUG = 2 + +debuglevel = 0 + + +def hyst_debug(s): + if HYSTDEBUG & debuglevel: + syslog.openlog("FANCONTROL-HYST", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def hyst_error(s): + if HYSTERROR & debuglevel: + syslog.openlog("FANCONTROL-HYST", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +class hysteresis(object): + __config = None + __hyst_config = None + + def __init__(self): + self.__config = baseutil.get_monitor_config() + self.__hyst_config = copy.deepcopy(self.__config.get("hyst", {})) + # init check + errcnt = 0 + errmsg = "" + self.debug_init() + for temp_hyst_conf in self.__hyst_config.values(): + if temp_hyst_conf["flag"] == 0: + continue + for i in range(temp_hyst_conf["temp_min"], temp_hyst_conf["temp_max"] + 1): + if i not in temp_hyst_conf["rising"]: + errcnt -= 1 + msg = "%s hyst config error, temp value %d not in rising curve;" % (temp_hyst_conf["name"], i) + hyst_error(msg) + errmsg += msg + if i not in temp_hyst_conf["descending"]: + errcnt -= 1 + msg = "%s hyst config error, temp value %d not in descending curve;" % (temp_hyst_conf["name"], i) + hyst_error(msg) + errmsg += msg + if errcnt < 0: + raise KeyError(errmsg) + + def debug_init(self): + global debuglevel + if os.path.exists(HYST_DEBUG_FILE): + debuglevel = debuglevel | HYSTDEBUG | HYSTERROR + else: + debuglevel = debuglevel & ~(HYSTDEBUG | HYSTERROR) + + def get_temp_hyst_conf(self, temp_name): + temp_hyst_conf = self.__hyst_config.get(temp_name) + return temp_hyst_conf + + def get_temp_update(self, hyst_para, current_temp): + temp = hyst_para["value"] + if temp is None: + return None + temp.append(current_temp) + del temp[0] + return temp + + def duty_to_pwm(self, duty): + pwm = int(round(float(duty) * 255 / 100)) + return pwm + + def pwm_to_duty(self, pwm): + duty = int(round(float(pwm) * 100 / 255)) + return duty + + def calc_hyst_val(self, temp_name, temp_list): + + temp_hyst_conf = self.get_temp_hyst_conf(temp_name) + hyst_min = temp_hyst_conf["hyst_min"] + hyst_max = temp_hyst_conf["hyst_max"] + temp_min = temp_hyst_conf["temp_min"] + temp_max = temp_hyst_conf["temp_max"] + rising = temp_hyst_conf["rising"] + descending = temp_hyst_conf["descending"] + last_hyst_value = temp_hyst_conf["last_hyst_value"] + current_temp = temp_list[1] + last_temp = temp_list[0] + + hyst_debug("calc_hyst_val, temp_name: %s, current_temp: %s, last_temp: %s, last_hyst_value: %s" % + (temp_name, current_temp, last_temp, last_hyst_value)) + + if current_temp < temp_min: + hyst_debug("%s current_temp %s less than temp_min %s, set min hyst value: %s" % + (temp_name, current_temp, temp_min, hyst_min)) + return hyst_min + + if current_temp > temp_max: + hyst_debug("%s current_temp %s more than temp_max %s, set max hyst value: %s" % + (temp_name, current_temp, temp_max, hyst_max)) + return hyst_max + + if last_temp is None: # first time + hyst_value = rising[current_temp] + hyst_debug("last_temp is None, it's first hysteresis, using rising hyst value: %s" % hyst_value) + return hyst_value + + if current_temp == last_temp: # temp unchanging + hyst_debug("current_temp equal last_temp, keep last hyst value: %s" % last_hyst_value) + return last_hyst_value + + if current_temp > last_temp: + calc_hyst_value = rising[current_temp] + if calc_hyst_value < last_hyst_value: + hyst_value = last_hyst_value + else: + hyst_value = calc_hyst_value + hyst_debug("temp rising, last_hyst_value: %s, calc_hyst_value: %s, set hyst value: %s" % + (last_hyst_value, calc_hyst_value, hyst_value)) + return hyst_value + + calc_hyst_value = descending[current_temp] + if calc_hyst_value > last_hyst_value: + hyst_value = last_hyst_value + else: + hyst_value = calc_hyst_value + hyst_debug("temp descending, last_hyst_value: %s, calc_hyst_value: %s, set hyst value: %s" % + (last_hyst_value, calc_hyst_value, hyst_value)) + return hyst_value + + def cacl(self, temp_name, current_temp): + self.debug_init() + try: + temp_hyst_conf = self.get_temp_hyst_conf(temp_name) + if temp_hyst_conf is None: + hyst_debug("get %s hysteresis config failed" % temp_name) + return None + + flag = temp_hyst_conf["flag"] + if flag != 1: + hyst_debug("%s hysteresis flag == 0, skip" % temp_name) + return None + + temp = self.get_temp_update(temp_hyst_conf, current_temp) + if temp is None: + hyst_debug("get %s update failed" % temp_name) + return None + + value = self.calc_hyst_val(temp_name, temp) + + temp_hyst_conf["last_hyst_value"] = value + + speed_type = temp_hyst_conf["type"] + if speed_type == "duty": + pwm = self.duty_to_pwm(value) + else: + pwm = value + + hyst_debug("temp_name: %s, current_temp: %s, set pwm 0x%x" % (temp_name, current_temp, pwm)) + return pwm + except Exception as e: + hyst_error("temp_name: %s calc hysteresis pwm error, msg: %s" % (temp_name, str(e))) + return None diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py new file mode 100644 index 000000000000..6ff731fa7eb2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +import os +import syslog + +from plat_hal.baseutil import baseutil + +OPENLOOP_DEBUG_FILE = "/etc/.openloop_debug_flag" + +OPENLOOPERROR = 1 +OPENLOOPDEBUG = 2 + +debuglevel = 0 + + +def openloop_debug(s): + if OPENLOOPDEBUG & debuglevel: + syslog.openlog("FANCONTROL-OPENLOOP", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def openloop_error(s): + if OPENLOOPERROR & debuglevel: + syslog.openlog("FANCONTROL-OPENLOOP", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +class openloop(object): + __config = None + __openloop_config = None + + def __init__(self): + self.__config = baseutil.get_monitor_config() + self.__openloop_config = self.__config["openloop"] + + def debug_init(self): + global debuglevel + if os.path.exists(OPENLOOP_DEBUG_FILE): + debuglevel = debuglevel | OPENLOOPDEBUG | OPENLOOPERROR + else: + debuglevel = debuglevel & ~(OPENLOOPDEBUG | OPENLOOPERROR) + + def get_para(self, t): + para = self.__openloop_config.get(t) + return para + + def linear_cacl(self, temp): + self.debug_init() + openloop_para = self.get_para("linear") + if openloop_para is None: + openloop_debug("linear openloop: get para failed") + return None + + K = openloop_para["K"] + tin_min = openloop_para["tin_min"] + pwm_min = openloop_para["pwm_min"] + pwm_max = openloop_para["pwm_max"] + flag = openloop_para["flag"] + + if flag != 1: + openloop_debug("linear openloop: flag == 0") + return None + + if temp <= tin_min: + openloop_debug("linear openloop: temp = %d less than tin_min[%d]" % (temp, tin_min)) + return pwm_min + + pwm = int(pwm_min + (temp - tin_min) * K) + openloop_debug("linear openloop: cacl_pwm = 0x%x" % pwm) + + pwm = min(pwm, pwm_max) + pwm = max(pwm, pwm_min) + openloop_debug("linear openloop: temp = %d, pwm = 0x%x" % (temp, pwm)) + return pwm + + def curve_cacl(self, temp): + self.debug_init() + openloop_para = self.get_para("curve") + if openloop_para is None: + openloop_debug("curve openloop: get para failed") + return None + + a = openloop_para["a"] + b = openloop_para["b"] + c = openloop_para["c"] + tin_min = openloop_para["tin_min"] + pwm_min = openloop_para["pwm_min"] + pwm_max = openloop_para["pwm_max"] + flag = openloop_para["flag"] + + if flag != 1: + openloop_debug("curve openloop: flag == 0") + return None + + if temp <= tin_min: + openloop_debug("curve openloop: temp = %d less than tin_min[%d]" % (temp, tin_min)) + return pwm_min + + pwm = int(a * temp * temp + b * temp + c) + openloop_debug("curve openloop: cacl_pwm = 0x%x" % pwm) + + pwm = min(pwm, pwm_max) + pwm = max(pwm, pwm_min) + openloop_debug("curve openloop: temp = %d, pwm = 0x%x" % (temp, pwm)) + return pwm diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py new file mode 100644 index 000000000000..c33c1df33b4e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +import os +import syslog +import copy + +from plat_hal.baseutil import baseutil + +PID_DEBUG_FILE = "/etc/.pid_debug_flag" + +PIDERROR = 1 +PIDDEBUG = 2 + +debuglevel = 0 + + +def pid_debug(s): + if PIDDEBUG & debuglevel: + syslog.openlog("FANCONTROL-PID", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def pid_error(s): + if PIDERROR & debuglevel: + syslog.openlog("FANCONTROL-PID", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +class pid(object): + __config = None + __pid_config = None + + def __init__(self): + self.__config = baseutil.get_monitor_config() + self.__pid_config = copy.deepcopy(self.__config["pid"]) + + def debug_init(self): + global debuglevel + if os.path.exists(PID_DEBUG_FILE): + debuglevel = debuglevel | PIDDEBUG | PIDERROR + else: + debuglevel = debuglevel & ~(PIDDEBUG | PIDERROR) + + def get_para(self, name): + para = self.__pid_config.get(name) + return para + + def get_temp_update(self, pid_para, current_temp): + temp = pid_para["value"] + if temp is None: + return None + temp.append(current_temp) + del temp[0] + return temp + + def cacl(self, last_pwm, name, current_temp): + delta_pwm = 0 + self.debug_init() + pid_debug("last_pwm = %d" % last_pwm) + + pid_para = self.get_para(name) + if pid_para is None: + pid_debug("get %s pid para failed" % name) + return None + + temp = self.get_temp_update(pid_para, current_temp) + if temp is None: + pid_debug("get %s update failed" % name) + return None + + speed_type = pid_para["type"] + Kp = pid_para["Kp"] + Ki = pid_para["Ki"] + Kd = pid_para["Kd"] + target = pid_para["target"] + pwm_min = pid_para["pwm_min"] + pwm_max = pid_para["pwm_max"] + flag = pid_para["flag"] + + if flag != 1: + pid_debug("%s pid flag == 0" % name) + return None + + if speed_type == "duty": + current_pwm = round(last_pwm * 100 / 255) + else: + current_pwm = last_pwm + + if temp[2] is None: + tmp_pwm = current_pwm + elif ((temp[0] is None) or (temp[1] is None)): + delta_pwm = Ki * (temp[2] - target) + tmp_pwm = current_pwm + delta_pwm + else: + delta_pwm = Kp * (temp[2] - temp[1]) + Ki * (temp[2] - target) + Kd * (temp[2] - 2 * temp[1] + temp[0]) + tmp_pwm = current_pwm + delta_pwm + + pid_debug("delta_pwm = %d" % delta_pwm) + if speed_type == "duty": + pwm = round(tmp_pwm * 255 / 100) + else: + pwm = int(tmp_pwm) + + pwm = min(pwm, pwm_max) + pwm = max(pwm, pwm_min) + pid_debug("last_pwm = 0x%x, pwm = 0x%x" % (last_pwm, pwm)) + return pwm diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/__init__.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fantlv.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fantlv.py new file mode 100644 index 000000000000..4be78e7fdc03 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fantlv.py @@ -0,0 +1,192 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +class FantlvException(Exception): + def __init__(self, message='fantlverror', code=-100): + err = 'errcode: {0} message:{1}'.format(code, message) + Exception.__init__(self, err) + self.code = code + self.message = message + + +class fan_tlv(): + HEAD_INFO = "\x01\x7e\x01\xf1" + VERSION = 0x01 + FLAG = 0x7E + HW_VER = 0X01 + TYPE = 0xf1 + TLV_LEN = 00 + _FAN_TLV_HDR_LEN = 6 + _FAN_TLV_CRC_LEN = 2 + + _FAN_TLV_TYPE_NAME = 0x02 + _FAN_TLV_TYPE_SN = 0x03 + _FAN_TLV_TYPE_HW_INFO = 0x05 + _FAN_TLV_TYPE_DEV_TYPE = 0x06 + + @property + def dstatus(self): + return self._dstatus + + @property + def typename(self): + return self._typename + + @property + def typesn(self): + return self._typesn + + @property + def typehwinfo(self): + return self._typehwinfo + + @property + def typedevtype(self): + return self._typedevtype + + def __init__(self): + self._typename = "" + self._typesn = "" + self._typehwinfo = "" + self._typedevtype = "" + self._dstatus = 0 + + def strtoarr(self, val): + s = [] + if not isinstance(val, str): + return s + for index in val: + s.append(index) + return s + + def hex_to_str(self, s): + len_t = len(s) + if len_t % 2 != 0: + return 0 + ret = "" + for t in range(0, len_t / 2): + ret += chr(int(s[2 * t:2 * t + 2], 16)) + return ret + + def generate_fan_value(self): + bin_buffer = [chr(0xff)] * 256 + bin_buffer[0] = chr(self.VERSION) + bin_buffer[1] = chr(self.FLAG) + bin_buffer[2] = chr(self.HW_VER) + bin_buffer[3] = chr(self.TYPE) + + temp_t = "%08x" % self.typedevtype + typedevtype_t = self.hex_to_str(temp_t) + total_len = len(self.typename) + len(self.typesn) + \ + len(self.typehwinfo) + len(typedevtype_t) + 8 + + bin_buffer[4] = chr(total_len >> 8) + bin_buffer[5] = chr(total_len & 0x00FF) + + index_start = 6 + bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_NAME) + bin_buffer[index_start + 1] = chr(len(self.typename)) + bin_buffer[index_start + 2: index_start + 2 + + len(self.typename)] = self.strtoarr(self.typename) + index_start = index_start + 2 + len(self.typename) + + bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_SN) + bin_buffer[index_start + 1] = chr(len(self.typesn)) + bin_buffer[index_start + 2:index_start + 2 + + len(self.typesn)] = self.strtoarr(self.typesn) + index_start = index_start + 2 + len(self.typesn) + + bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_HW_INFO) + bin_buffer[index_start + 1] = chr(len(self.typehwinfo)) + bin_buffer[index_start + 2:index_start + 2 + + len(self.typehwinfo)] = self.strtoarr(self.typehwinfo) + index_start = index_start + 2 + len(self.typehwinfo) + + bin_buffer[index_start] = chr(self._FAN_TLV_TYPE_DEV_TYPE) + bin_buffer[index_start + 1] = chr(len(typedevtype_t)) + bin_buffer[index_start + 2:index_start + 2 + + len(typedevtype_t)] = self.strtoarr(typedevtype_t) + index_start = index_start + 2 + len(typedevtype_t) + + crcs = fan_tlv.fancrc(''.join(bin_buffer[0:index_start])) + bin_buffer[index_start] = chr(crcs >> 8) + bin_buffer[index_start + 1] = chr(crcs & 0x00ff) + return bin_buffer + + def decode(self, e2): + if e2[0:4] != self.HEAD_INFO: + raise FantlvException("Fan tlv head info error,not fan tlv type", -10) + ret = [] + self.VERSION = ord(e2[0]) + self.FLAG = ord(e2[1]) + self.HW_VER = ord(e2[2]) + self.TYPE = ord(e2[3]) + self.TLV_LEN = (ord(e2[4]) << 8) | ord(e2[5]) + + tlv_index = self._FAN_TLV_HDR_LEN + tlv_end = self._FAN_TLV_HDR_LEN + self.TLV_LEN + + if len(e2) < self._FAN_TLV_HDR_LEN + self.TLV_LEN + 2: + raise FantlvException("Fan tlv eeprom len error!", -2) + sumcrc = fan_tlv.fancrc(e2[0:self._FAN_TLV_HDR_LEN + self.TLV_LEN]) + readcrc = ord(e2[self._FAN_TLV_HDR_LEN + self.TLV_LEN] + ) << 8 | ord(e2[self._FAN_TLV_HDR_LEN + self.TLV_LEN + 1]) + if sumcrc != readcrc: + raise FantlvException("Fan tlv eeprom checksum error!", -1) + self._dstatus = 0 + while (tlv_index + 2) < len(e2) and tlv_index < tlv_end: + s = self.decoder( + e2[tlv_index:tlv_index + 2 + ord(e2[tlv_index + 1])]) + tlv_index += ord(e2[tlv_index + 1]) + 2 + ret.append(s) + + return ret + + @staticmethod + def fancrc(t): + crc = 0 + for item in t: + crc += ord(item) + return crc + + def decoder(self, t): + try: + name = "" + value = "" + _len = 0 + if ord(t[0]) == self._FAN_TLV_TYPE_NAME: + name = "Product Name" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._typename = value + elif ord(t[0]) == self._FAN_TLV_TYPE_SN: + name = "serial Number" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._typesn = value + elif ord(t[0]) == self._FAN_TLV_TYPE_HW_INFO: + name = "hardware info" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._typehwinfo = value + elif ord(t[0]) == self._FAN_TLV_TYPE_DEV_TYPE: + name = "dev type" + _len = ord(t[1]) + value = "0x" + for c in t[2:2 + ord(t[1])]: + value += "%02X" % (ord(c),) + self._typedevtype = int(value, 16) + except Exception as e: + print(e) + return {"name": name, "code": ord(t[0]), "value": value, "lens": _len} + + def __str__(self): + formatstr = "VERSION : 0x%02x \n" \ + " FLAG : 0x%02x \n" \ + " HW_VER : 0x%02x \n" \ + " TYPE : 0x%02x \n" \ + "typename : %s \n" \ + "typesn : %s \n" \ + "typehwinfo : %s \n" + return formatstr % (self.VERSION, self.FLAG, self.HW_VER, self.TYPE, + self.typename, self.typesn, self.typehwinfo) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fru.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fru.py new file mode 100644 index 000000000000..f95164e03601 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/fru.py @@ -0,0 +1,961 @@ +#!/usr/bin/python3 +import collections +from datetime import datetime, timedelta +from bitarray import bitarray + + +__DEBUG__ = "N" + + +class FruException(Exception): + def __init__(self, message='fruerror', code=-100): + err = 'errcode: {0} message:{1}'.format(code, message) + Exception.__init__(self, err) + self.code = code + self.message = message + + +def e_print(err): + print("ERROR: " + err) + + +def d_print(debug_info): + if __DEBUG__ == "Y": + print(debug_info) + + +class FruUtil(): + @staticmethod + def decodeLength(value): + a = bitarray(8) + a.setall(True) + a[0:1] = 0 + a[1:2] = 0 + x = ord(a.tobytes()) + return x & ord(value) + + @staticmethod + def minToData(): + starttime = datetime(1996, 1, 1, 0, 0, 0) + endtime = datetime.now() + seconds = (endtime - starttime).total_seconds() + mins = seconds // 60 + m = int(round(mins)) + return m + + @staticmethod + def getTimeFormat(): + return datetime.now().strftime('%Y-%m-%d') + + @staticmethod + def getTypeLength(value): + if value is None or len(value) == 0: + return 0 + a = bitarray(8) + a.setall(False) + a[0:1] = 1 + a[1:2] = 1 + x = ord(a.tobytes()) + return x | len(value) + + @staticmethod + def checksum(b): + result = 0 + for item in b: + result += ord(item) + return (0x100 - (result & 0xff)) & 0xff + + +class BaseArea(object): + SUGGESTED_SIZE_COMMON_HEADER = 8 + SUGGESTED_SIZE_INTERNAL_USE_AREA = 72 + SUGGESTED_SIZE_CHASSIS_INFO_AREA = 32 + SUGGESTED_SIZE_BOARD_INFO_AREA = 80 + SUGGESTED_SIZE_PRODUCT_INFO_AREA = 80 + + INITVALUE = b'\x00' + resultvalue = INITVALUE * 256 + COMMON_HEAD_VERSION = b'\x01' + __childList = None + + def __init__(self, name="", size=0, offset=0): + self.__childList = [] + self._offset = offset + self.name = name + self._size = size + self._isPresent = False + self._data = b'\x00' * size + + @property + def childList(self): + return self.__childList + + @childList.setter + def childList(self, value): + self.__childList = value + + @property + def offset(self): + return self._offset + + @offset.setter + def offset(self, value): + self._offset = value + + @property + def size(self): + return self._size + + @size.setter + def size(self, value): + self._size = value + + @property + def data(self): + return self._data + + @data.setter + def data(self, value): + self._data = value + + @property + def isPresent(self): + return self._isPresent + + @isPresent.setter + def isPresent(self, value): + self._isPresent = value + + +class InternalUseArea(BaseArea): + pass + + +class ChassisInfoArea(BaseArea): + pass + + +class BoardInfoArea(BaseArea): + _boardTime = None + _fields = None + _mfg_date = None + areaversion = None + _boardversion = None + _language = None + + def __str__(self): + formatstr = "version : %x\n" \ + "length : %d \n" \ + "language : %x \n" \ + "mfg_date : %s \n" \ + "boardManufacturer : %s \n" \ + "boardProductName : %s \n" \ + "boardSerialNumber : %s \n" \ + "boardPartNumber : %s \n" \ + "fruFileId : %s \n" + + tmpstr = formatstr % (ord(self.boardversion), self.size, + self.language, self.getMfgRealData(), + self.boardManufacturer, self.boardProductName, + self.boardSerialNumber, self.boardPartNumber, + self.fruFileId) + for i in range(1, 11): + valtmp = "boardextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + tmpstr += "boardextra%d : %s \n" % (i, valtmpval) + else: + break + + return tmpstr + + def todict(self): + dic = collections.OrderedDict() + dic["boardversion"] = ord(self.boardversion) + dic["boardlength"] = self.size + dic["boardlanguage"] = self.language + dic["boardmfg_date"] = self.getMfgRealData() + dic["boardManufacturer"] = self.boardManufacturer + dic["boardProductName"] = self.boardProductName + dic["boardSerialNumber"] = self.boardSerialNumber + dic["boardPartNumber"] = self.boardPartNumber + dic["boardfruFileId"] = self.fruFileId + for i in range(1, 11): + valtmp = "boardextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + dic[valtmp] = valtmpval + else: + break + return dic + + def decodedata(self): + index = 0 + self.areaversion = self.data[index] + index += 1 + d_print("decode length :%d class size:%d" % + ((ord(self.data[index]) * 8), self.size)) + index += 2 + + timetmp = self.data[index: index + 3] + self.mfg_date = ord(timetmp[0]) | ( + ord(timetmp[1]) << 8) | (ord(timetmp[2]) << 16) + d_print("decode getMfgRealData :%s" % self.getMfgRealData()) + index += 3 + + templen = FruUtil.decodeLength(self.data[index]) + self.boardManufacturer = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardManufacturer:%s" % self.boardManufacturer) + + templen = FruUtil.decodeLength(self.data[index]) + self.boardProductName = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardProductName:%s" % self.boardProductName) + + templen = FruUtil.decodeLength(self.data[index]) + self.boardSerialNumber = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardSerialNumber:%s" % self.boardSerialNumber) + + templen = FruUtil.decodeLength(self.data[index]) + self.boardPartNumber = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode boardPartNumber:%s" % self.boardPartNumber) + + templen = FruUtil.decodeLength(self.data[index]) + self.fruFileId = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode fruFileId:%s" % self.fruFileId) + + for i in range(1, 11): + valtmp = "boardextra%d" % i + if self.data[index] != chr(0xc1): + templen = FruUtil.decodeLength(self.data[index]) + tmpval = self.data[index + 1: index + templen + 1] + setattr(self, valtmp, tmpval) + index += templen + 1 + d_print("decode boardextra%d:%s" % (i, tmpval)) + else: + break + + def fruSetValue(self, field, value): + tmp_field = getattr(self, field, None) + if tmp_field is not None: + setattr(self, field, value) + + def recalcute(self): + d_print("boardInfoArea version:%x" % ord(self.boardversion)) + d_print("boardInfoArea length:%d" % self.size) + d_print("boardInfoArea language:%x" % self.language) + self.mfg_date = FruUtil.minToData() + d_print("boardInfoArea mfg_date:%x" % self.mfg_date) + + self.data = chr(ord(self.boardversion)) + \ + chr(self.size // 8) + chr(self.language) + + self.data += chr(self.mfg_date & 0xFF) + self.data += chr((self.mfg_date >> 8) & 0xFF) + self.data += chr((self.mfg_date >> 16) & 0xFF) + + d_print("boardInfoArea boardManufacturer:%s" % self.boardManufacturer) + typelength = FruUtil.getTypeLength(self.boardManufacturer) + self.data += chr(typelength) + self.data += self.boardManufacturer + + d_print("boardInfoArea boardProductName:%s" % self.boardProductName) + self.data += chr(FruUtil.getTypeLength(self.boardProductName)) + self.data += self.boardProductName + + d_print("boardInfoArea boardSerialNumber:%s" % self.boardSerialNumber) + self.data += chr(FruUtil.getTypeLength(self.boardSerialNumber)) + self.data += self.boardSerialNumber + + d_print("boardInfoArea boardPartNumber:%s" % self.boardPartNumber) + self.data += chr(FruUtil.getTypeLength(self.boardPartNumber)) + self.data += self.boardPartNumber + + d_print("boardInfoArea fruFileId:%s" % self.fruFileId) + self.data += chr(FruUtil.getTypeLength(self.fruFileId)) + self.data += self.fruFileId + + for i in range(1, 11): + valtmp = "boardextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + d_print("boardInfoArea boardextra%d:%s" % (i, valtmpval)) + self.data += chr(FruUtil.getTypeLength(valtmpval)) + if valtmpval is not None: + self.data += valtmpval + else: + break + + self.data += chr(0xc1) + + if len(self.data) > (self.size - 1): + incr = (len(self.data) - self.size) // 8 + 1 + self.size += incr * 8 + + self.data = self.data[0:1] + chr(self.size // 8) + self.data[2:] + d_print("self data:%d" % len(self.data)) + d_print("self size:%d" % self.size) + d_print("adjust size:%d" % (self.size - len(self.data) - 1)) + self.data = self.data.ljust((self.size - 1), chr(self.INITVALUE[0])) + + # checksum + checksum = FruUtil.checksum(self.data) + d_print("board info checksum:%x" % checksum) + self.data += chr(checksum) + + def getMfgRealData(self): + starttime = datetime(1996, 1, 1, 0, 0, 0) + mactime = starttime + timedelta(minutes=self.mfg_date) + return mactime + + @property + def language(self): + self._language = 25 + return self._language + + @property + def mfg_date(self): + return self._mfg_date + + @mfg_date.setter + def mfg_date(self, val): + self._mfg_date = val + + @property + def boardversion(self): + self._boardversion = self.COMMON_HEAD_VERSION + return self._boardversion + + @property + def fruFileId(self): + return self._FRUFileID + + @fruFileId.setter + def fruFileId(self, val): + self._FRUFileID = val + + @property + def boardPartNumber(self): + return self._boardPartNumber + + @boardPartNumber.setter + def boardPartNumber(self, val): + self._boardPartNumber = val + + @property + def boardSerialNumber(self): + return self._boardSerialNumber + + @boardSerialNumber.setter + def boardSerialNumber(self, val): + self._boardSerialNumber = val + + @property + def boardProductName(self): + return self._boradProductName + + @boardProductName.setter + def boardProductName(self, val): + self._boradProductName = val + + @property + def boardManufacturer(self): + return self._boardManufacturer + + @boardManufacturer.setter + def boardManufacturer(self, val): + self._boardManufacturer = val + + @property + def boardTime(self): + return self._boardTime + + @boardTime.setter + def boardTime(self, val): + self._boardTime = val + + @property + def fields(self): + return self._fields + + @fields.setter + def fields(self, val): + self._fields = val + + +class ProductInfoArea(BaseArea): + _productManufacturer = None + _productAssetTag = None + _FRUFileID = None + _language = None + + def __str__(self): + formatstr = "version : %x\n" \ + "length : %d \n" \ + "language : %x \n" \ + "productManufacturer : %s \n" \ + "productName : %s \n" \ + "productPartModelName: %s \n" \ + "productVersion : %s \n" \ + "productSerialNumber : %s \n" \ + "productAssetTag : %s \n" \ + "fruFileId : %s \n" + + tmpstr = formatstr % (ord(self.areaversion), self.size, + self.language, self.productManufacturer, + self.productName, self.productPartModelName, + self.productVersion, self.productSerialNumber, + self.productAssetTag, self.fruFileId) + + for i in range(1, 11): + valtmp = "productextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + tmpstr += "productextra%d : %s \n" % (i, valtmpval) + else: + break + + return tmpstr + + def todict(self): + dic = collections.OrderedDict() + dic["productversion"] = ord(self.areaversion) + dic["productlength"] = self.size + dic["productlanguage"] = self.language + dic["productManufacturer"] = self.productManufacturer + dic["productName"] = self.productName + dic["productPartModelName"] = self.productPartModelName + dic["productVersion"] = int(self.productVersion, 16) + dic["productSerialNumber"] = self.productSerialNumber + dic["productAssetTag"] = self.productAssetTag + dic["productfruFileId"] = self.fruFileId + for i in range(1, 11): + valtmp = "productextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + dic[valtmp] = valtmpval + else: + break + return dic + + def decodedata(self): + index = 0 + self.areaversion = self.data[index] # 0 + index += 1 + d_print("decode length %d" % (ord(self.data[index]) * 8)) + d_print("class size %d" % self.size) + index += 2 + + templen = FruUtil.decodeLength(self.data[index]) + self.productManufacturer = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productManufacturer:%s" % self.productManufacturer) + + templen = FruUtil.decodeLength(self.data[index]) + self.productName = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productName:%s" % self.productName) + + templen = FruUtil.decodeLength(self.data[index]) + self.productPartModelName = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productPartModelName:%s" % self.productPartModelName) + + templen = FruUtil.decodeLength(self.data[index]) + self.productVersion = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productVersion:%s" % self.productVersion) + + templen = FruUtil.decodeLength(self.data[index]) + self.productSerialNumber = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productSerialNumber:%s" % self.productSerialNumber) + + templen = FruUtil.decodeLength(self.data[index]) + self.productAssetTag = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode productAssetTag:%s" % self.productAssetTag) + + templen = FruUtil.decodeLength(self.data[index]) + self.fruFileId = self.data[index + 1: index + templen + 1] + index += templen + 1 + d_print("decode fruFileId:%s" % self.fruFileId) + + for i in range(1, 11): + valtmp = "productextra%d" % i + if self.data[index] != chr(0xc1) and index < self.size - 1: + templen = FruUtil.decodeLength(self.data[index]) + if templen == 0: + break + tmpval = self.data[index + 1: index + templen + 1] + d_print("decode boardextra%d:%s" % (i, tmpval)) + setattr(self, valtmp, tmpval) + index += templen + 1 + else: + break + + @property + def productVersion(self): + return self._productVersion + + @productVersion.setter + def productVersion(self, name): + self._productVersion = name + + @property + def areaversion(self): + self._areaversion = self.COMMON_HEAD_VERSION + return self._areaversion + + @areaversion.setter + def areaversion(self, name): + self._areaversion = name + + @property + def language(self): + self._language = 25 + return self._language + + @property + def productManufacturer(self): + return self._productManufacturer + + @productManufacturer.setter + def productManufacturer(self, name): + self._productManufacturer = name + + @property + def productName(self): + return self._productName + + @productName.setter + def productName(self, name): + self._productName = name + + @property + def productPartModelName(self): + return self._productPartModelName + + @productPartModelName.setter + def productPartModelName(self, name): + self._productPartModelName = name + + @property + def productSerialNumber(self): + return self._productSerialNumber + + @productSerialNumber.setter + def productSerialNumber(self, name): + self._productSerialNumber = name + + @property + def productAssetTag(self): + return self._productAssetTag + + @productAssetTag.setter + def productAssetTag(self, name): + self._productAssetTag = name + + @property + def fruFileId(self): + return self._FRUFileID + + @fruFileId.setter + def fruFileId(self, name): + self._FRUFileID = name + + def fruSetValue(self, field, value): + tmp_field = getattr(self, field, None) + if tmp_field is not None: + setattr(self, field, value) + + def recalcute(self): + d_print("product version:%x" % ord(self.areaversion)) + d_print("product length:%d" % self.size) + d_print("product language:%x" % self.language) + self.data = chr(ord(self.areaversion)) + \ + chr(self.size // 8) + chr(self.language) + + typelength = FruUtil.getTypeLength(self.productManufacturer) + self.data += chr(typelength) + self.data += self.productManufacturer + + self.data += chr(FruUtil.getTypeLength(self.productName)) + self.data += self.productName + + self.data += chr(FruUtil.getTypeLength(self.productPartModelName)) + self.data += self.productPartModelName + + self.data += chr(FruUtil.getTypeLength(self.productVersion)) + self.data += self.productVersion + + self.data += chr(FruUtil.getTypeLength(self.productSerialNumber)) + self.data += self.productSerialNumber + + self.data += chr(FruUtil.getTypeLength(self.productAssetTag)) + if self.productAssetTag is not None: + self.data += self.productAssetTag + + self.data += chr(FruUtil.getTypeLength(self.fruFileId)) + self.data += self.fruFileId + + for i in range(1, 11): + valtmp = "productextra%d" % i + if hasattr(self, valtmp): + valtmpval = getattr(self, valtmp) + d_print("boardInfoArea productextra%d:%s" % (i, valtmpval)) + self.data += chr(FruUtil.getTypeLength(valtmpval)) + if valtmpval is not None: + self.data += valtmpval + else: + break + + self.data += chr(0xc1) + if len(self.data) > (self.size - 1): + incr = (len(self.data) - self.size) // 8 + 1 + self.size += incr * 8 + d_print("self.data:%d" % len(self.data)) + d_print("self.size:%d" % self.size) + + self.data = self.data[0:1] + chr(self.size // 8) + self.data[2:] + self.data = self.data.ljust((self.size - 1), chr(self.INITVALUE[0])) + checksum = FruUtil.checksum(self.data) + d_print("board info checksum:%x" % checksum) + self.data += chr(checksum) + + +class MultiRecordArea(BaseArea): + pass + + +class Field(object): + + def __init__(self, fieldType="ASCII", fieldData=""): + self.fieldData = fieldData + self.fieldType = fieldType + + @property + def fieldType(self): + return self.fieldType + + @property + def fieldData(self): + return self.fieldData + + +class ipmifru(BaseArea): + _BoardInfoArea = None + _ProductInfoArea = None + _InternalUseArea = None + _ChassisInfoArea = None + _multiRecordArea = None + _productinfoAreaOffset = BaseArea.INITVALUE + _boardInfoAreaOffset = BaseArea.INITVALUE + _internalUserAreaOffset = BaseArea.INITVALUE + _chassicInfoAreaOffset = BaseArea.INITVALUE + _multiRecordAreaOffset = BaseArea.INITVALUE + _bindata = None + _bodybin = None + _version = BaseArea.COMMON_HEAD_VERSION + _zeroCheckSum = None + _frusize = 256 + + def __str__(self): + tmpstr = "" + if self.boardInfoArea.isPresent: + tmpstr += "\nboardinfoarea: \n" + tmpstr += self.boardInfoArea.__str__() + if self.productInfoArea.isPresent: + tmpstr += "\nproductinfoarea: \n" + tmpstr += self.productInfoArea.__str__() + return tmpstr + + def decodeBin(self, eeprom): + commonHead = eeprom[0:8] + d_print("decode version %x" % ord(commonHead[0])) + if ord(self.COMMON_HEAD_VERSION) != ord(commonHead[0]): + raise FruException("HEAD VERSION error,not Fru format!", -10) + if FruUtil.checksum(commonHead[0:7]) != ord(commonHead[7]): + strtemp = "check header checksum error [cal:%02x data:%02x]" % ( + FruUtil.checksum(commonHead[0:7]), ord(commonHead[7])) + raise FruException(strtemp, -3) + if ord(commonHead[1]) != ord(self.INITVALUE): + d_print("Internal Use Area is present") + self.internalUseArea = InternalUseArea( + name="Internal Use Area", size=self.SUGGESTED_SIZE_INTERNAL_USE_AREA) + self.internalUseArea.isPresent = True + self.internalUserAreaOffset = ord(commonHead[1]) + self.internalUseArea.data = eeprom[self.internalUserAreaOffset * 8: ( + self.internalUserAreaOffset * 8 + self.internalUseArea.size)] + if ord(commonHead[2]) != ord(self.INITVALUE): + d_print("Chassis Info Area is present") + self.chassisInfoArea = ChassisInfoArea( + name="Chassis Info Area", size=self.SUGGESTED_SIZE_CHASSIS_INFO_AREA) + self.chassisInfoArea.isPresent = True + self.chassicInfoAreaOffset = ord(commonHead[2]) + self.chassisInfoArea.data = eeprom[self.chassicInfoAreaOffset * 8: ( + self.chassicInfoAreaOffset * 8 + self.chassisInfoArea.size)] + if ord(commonHead[3]) != ord(self.INITVALUE): + self.boardInfoArea = BoardInfoArea( + name="Board Info Area", size=self.SUGGESTED_SIZE_BOARD_INFO_AREA) + self.boardInfoArea.isPresent = True + self.boardInfoAreaOffset = ord(commonHead[3]) + self.boardInfoArea.size = ord( + eeprom[self.boardInfoAreaOffset * 8 + 1]) * 8 + d_print("Board Info Area is present size:%d" % + (self.boardInfoArea.size)) + self.boardInfoArea.data = eeprom[self.boardInfoAreaOffset * 8: ( + self.boardInfoAreaOffset * 8 + self.boardInfoArea.size)] + if FruUtil.checksum(self.boardInfoArea.data[:-1]) != ord(self.boardInfoArea.data[-1:]): + strtmp = "check boardInfoArea checksum error[cal:%02x data:%02x]" % \ + (FruUtil.checksum( + self.boardInfoArea.data[:-1]), ord(self.boardInfoArea.data[-1:])) + raise FruException(strtmp, -3) + self.boardInfoArea.decodedata() + if ord(commonHead[4]) != ord(self.INITVALUE): + d_print("Product Info Area is present") + self.productInfoArea = ProductInfoArea( + name="Product Info Area ", size=self.SUGGESTED_SIZE_PRODUCT_INFO_AREA) + self.productInfoArea.isPresent = True + self.productinfoAreaOffset = ord(commonHead[4]) + d_print("length offset value: %02x" % + ord(eeprom[self.productinfoAreaOffset * 8 + 1])) + self.productInfoArea.size = ord( + eeprom[self.productinfoAreaOffset * 8 + 1]) * 8 + d_print("Product Info Area is present size:%d" % + (self.productInfoArea.size)) + + self.productInfoArea.data = eeprom[self.productinfoAreaOffset * 8: ( + self.productinfoAreaOffset * 8 + self.productInfoArea.size)] + if FruUtil.checksum(self.productInfoArea.data[:-1]) != ord(self.productInfoArea.data[-1:]): + strtmp = "check productInfoArea checksum error [cal:%02x data:%02x]" % ( + FruUtil.checksum(self.productInfoArea.data[:-1]), ord(self.productInfoArea.data[-1:])) + raise FruException(strtmp, -3) + self.productInfoArea.decodedata() + if ord(commonHead[5]) != ord(self.INITVALUE): + self.multiRecordArea = MultiRecordArea( + name="MultiRecord record Area ") + d_print("MultiRecord record present") + self.multiRecordArea.isPresent = True + self.multiRecordAreaOffset = ord(commonHead[5]) + self.multiRecordArea.data = eeprom[self.multiRecordAreaOffset * 8: ( + self.multiRecordAreaOffset * 8 + self.multiRecordArea.size)] + + def initDefault(self): + self.version = self.COMMON_HEAD_VERSION + self.internalUserAreaOffset = self.INITVALUE + self.chassicInfoAreaOffset = self.INITVALUE + self.boardInfoAreaOffset = self.INITVALUE + self.productinfoAreaOffset = self.INITVALUE + self.multiRecordAreaOffset = self.INITVALUE + self.zeroCheckSum = self.INITVALUE + self.offset = self.SUGGESTED_SIZE_COMMON_HEADER + self.productInfoArea = None + self.internalUseArea = None + self.boardInfoArea = None + self.chassisInfoArea = None + self.multiRecordArea = None + # self.recalcute() + + @property + def version(self): + return self._version + + @version.setter + def version(self, name): + self._version = name + + @property + def internalUserAreaOffset(self): + return self._internalUserAreaOffset + + @internalUserAreaOffset.setter + def internalUserAreaOffset(self, obj): + self._internalUserAreaOffset = obj + + @property + def chassicInfoAreaOffset(self): + return self._chassicInfoAreaOffset + + @chassicInfoAreaOffset.setter + def chassicInfoAreaOffset(self, obj): + self._chassicInfoAreaOffset = obj + + @property + def productinfoAreaOffset(self): + return self._productinfoAreaOffset + + @productinfoAreaOffset.setter + def productinfoAreaOffset(self, obj): + self._productinfoAreaOffset = obj + + @property + def boardInfoAreaOffset(self): + return self._boardInfoAreaOffset + + @boardInfoAreaOffset.setter + def boardInfoAreaOffset(self, obj): + self._boardInfoAreaOffset = obj + + @property + def multiRecordAreaOffset(self): + return self._multiRecordAreaOffset + + @multiRecordAreaOffset.setter + def multiRecordAreaOffset(self, obj): + self._multiRecordAreaOffset = obj + + @property + def zeroCheckSum(self): + return self._zeroCheckSum + + @zeroCheckSum.setter + def zeroCheckSum(self, obj): + self._zeroCheckSum = obj + + @property + def productInfoArea(self): + return self._ProductInfoArea + + @productInfoArea.setter + def productInfoArea(self, obj): + self._ProductInfoArea = obj + + @property + def internalUseArea(self): + return self._InternalUseArea + + @internalUseArea.setter + def internalUseArea(self, obj): + self.internalUseArea = obj + + @property + def boardInfoArea(self): + return self._BoardInfoArea + + @boardInfoArea.setter + def boardInfoArea(self, obj): + self._BoardInfoArea = obj + + @property + def chassisInfoArea(self): + return self._ChassisInfoArea + + @chassisInfoArea.setter + def chassisInfoArea(self, obj): + self._ChassisInfoArea = obj + + @property + def multiRecordArea(self): + return self._multiRecordArea + + @multiRecordArea.setter + def multiRecordArea(self, obj): + self._multiRecordArea = obj + + @property + def bindata(self): + return self._bindata + + @bindata.setter + def bindata(self, obj): + self._bindata = obj + + @property + def bodybin(self): + return self._bodybin + + @bodybin.setter + def bodybin(self, obj): + self._bodybin = obj + + def recalcuteCommonHead(self): + self.bindata = "" + self.offset = self.SUGGESTED_SIZE_COMMON_HEADER + d_print("common Header %d" % self.offset) + d_print("fru eeprom size %d" % self._frusize) + if self.internalUseArea is not None and self.internalUseArea.isPresent: + self.internalUserAreaOffset = self.offset // 8 + self.offset += self.internalUseArea.size + d_print("internalUseArea is present offset:%d" % self.offset) + + if self.chassisInfoArea is not None and self.chassisInfoArea.isPresent: + self.chassicInfoAreaOffset = self.offset // 8 + self.offset += self.chassisInfoArea.size + d_print("chassisInfoArea is present offset:%d" % self.offset) + + if self.boardInfoArea is not None and self.boardInfoArea.isPresent: + self.boardInfoAreaOffset = self.offset // 8 + self.offset += self.boardInfoArea.size + d_print("boardInfoArea is present offset:%d" % self.offset) + d_print("boardInfoArea is present size:%d" % + self.boardInfoArea.size) + + if self.productInfoArea is not None and self.productInfoArea.isPresent: + self.productinfoAreaOffset = self.offset // 8 + self.offset += self.productInfoArea.size + d_print("productInfoArea is present offset:%d" % self.offset) + + if self.multiRecordArea is not None and self.multiRecordArea.isPresent: + self.multiRecordAreaOffset = self.offset // 8 + d_print("multiRecordArea is present offset:%d" % self.offset) + + if self.internalUserAreaOffset == self.INITVALUE: + self.internalUserAreaOffset = 0 + if self.productinfoAreaOffset == self.INITVALUE: + self.productinfoAreaOffset = 0 + if self.chassicInfoAreaOffset == self.INITVALUE: + self.chassicInfoAreaOffset = 0 + if self.boardInfoAreaOffset == self.INITVALUE: + self.boardInfoAreaOffset = 0 + if self.multiRecordAreaOffset == self.INITVALUE: + self.multiRecordAreaOffset = 0 + + self.zeroCheckSum = (0x100 - ord(self.version) - self.internalUserAreaOffset - self.chassicInfoAreaOffset - self.productinfoAreaOffset + - self.boardInfoAreaOffset - self.multiRecordAreaOffset) & 0xff + d_print("zerochecksum:%x" % self.zeroCheckSum) + self.data = "" + self.data += chr(self.version[0]) + chr(self.internalUserAreaOffset) + chr(self.chassicInfoAreaOffset) + chr( + self.boardInfoAreaOffset) + chr(self.productinfoAreaOffset) + chr(self.multiRecordAreaOffset) + chr(self.INITVALUE[0]) + chr(self.zeroCheckSum) + + self.bindata = self.data + self.bodybin + totallen = len(self.bindata) + d_print("totallen %d" % totallen) + if totallen < self._frusize: + self.bindata = self.bindata.ljust(self._frusize, chr(self.INITVALUE[0])) + else: + raise FruException('bin data more than %d' % self._frusize, -2) + + def recalcutebin(self): + self.bodybin = "" + if self.internalUseArea is not None and self.internalUseArea.isPresent: + d_print("internalUseArea present") + self.bodybin += self.internalUseArea.data + if self.chassisInfoArea is not None and self.chassisInfoArea.isPresent: + d_print("chassisInfoArea present") + self.bodybin += self.chassisInfoArea.data + if self.boardInfoArea is not None and self.boardInfoArea.isPresent: + d_print("boardInfoArea present") + self.boardInfoArea.recalcute() + self.bodybin += self.boardInfoArea.data + if self.productInfoArea is not None and self.productInfoArea.isPresent: + d_print("productInfoAreapresent") + self.productInfoArea.recalcute() + self.bodybin += self.productInfoArea.data + if self.multiRecordArea is not None and self.multiRecordArea.isPresent: + d_print("multiRecordArea present") + self.bodybin += self.productInfoArea.data + + def recalcute(self, fru_eeprom_size=256): + self._frusize = fru_eeprom_size + self.recalcutebin() + self.recalcuteCommonHead() + + def setValue(self, area, field, value): + tmp_area = getattr(self, area, None) + if tmp_area is not None: + tmp_area.fruSetValue(field, value) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/onietlv.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/onietlv.py new file mode 100644 index 000000000000..a90f8f8453c8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/onietlv.py @@ -0,0 +1,441 @@ +#!/usr/bin/python3 +import binascii + + +class OnietlvException(Exception): + def __init__(self, message='onietlverror', code=-100): + err = 'errcode: {0} message:{1}'.format(code, message) + Exception.__init__(self, err) + self.code = code + self.message = message + + +class onie_tlv(object): + TLV_INFO_ID_STRING = "TlvInfo\x00" + TLV_INFO_INIA_ID = "\x00\x00\x13\x11" + TLV_INFO_VERSION = 0x01 + TLV_INFO_LENGTH = 0x00 + TLV_INFO_LENGTH_VALUE = 0xba + + TLV_CODE_PRODUCT_NAME = 0x21 + TLV_CODE_PART_NUMBER = 0x22 + TLV_CODE_SERIAL_NUMBER = 0x23 + TLV_CODE_MAC_BASE = 0x24 + TLV_CODE_MANUF_DATE = 0x25 + TLV_CODE_DEVICE_VERSION = 0x26 + TLV_CODE_LABEL_REVISION = 0x27 + TLV_CODE_PLATFORM_NAME = 0x28 + TLV_CODE_ONIE_VERSION = 0x29 + TLV_CODE_MAC_SIZE = 0x2A + TLV_CODE_MANUF_NAME = 0x2B + TLV_CODE_MANUF_COUNTRY = 0x2C + TLV_CODE_VENDOR_NAME = 0x2D + TLV_CODE_DIAG_VERSION = 0x2E + TLV_CODE_SERVICE_TAG = 0x2F + TLV_CODE_VENDOR_EXT = 0xFD + TLV_CODE_CRC_32 = 0xFE + _TLV_DISPLAY_VENDOR_EXT = 1 + TLV_CODE_WB_CARID = 0x01 + _TLV_INFO_HDR_LEN = 11 + TLV_CODE_PRODUCT_ID = 0x40 + TLV_CODE_HW_VERSION = 0x41 + TLV_CODE_MAIN_FILENAME = 0x42 + TLV_CODE_DTS_FINENAME = 0x43 + TLV_CODE_SY_SERIAL0 = 0x44 + TLV_CODE_SY_SERIAL1 = 0x45 + TLV_CODE_SY_SERIAL2 = 0x46 + TLV_CODE_SY_SERIAL3 = 0x47 + TLV_CODE_PROJECT_ID = 0x48 + TLV_CODE_SETMAC_VERSION = 0x49 + TLV_CODE_EEPROM_TYPE = 0x4A + + @property + def dstatus(self): + return self._dstatus + + @property + def cardid(self): + return self._cardid + + @property + def productname(self): + return self._productname + + @property + def partnum(self): + return self._partnum + + @property + def serialnum(self): + return self._serialnum + + @property + def macbase(self): + return self._macbase + + @property + def manufdate(self): + return self._manufdate + + @property + def deviceversion(self): + return self._deviceversion + + @property + def labelrevision(self): + return self._labelrevision + + @property + def platformname(self): + return self._platformname + + @property + def onieversion(self): + return self._onieversion + + @property + def macsize(self): + return self._macsize + + @property + def manufname(self): + return self._manufname + + @property + def manufcountry(self): + return self._manufcountry + + @property + def vendorname(self): + return self._vendorname + + @property + def diagname(self): + return self._diagname + + @property + def servicetag(self): + return self._servicetag + + @property + def vendorext(self): + return self._vendorext + + def __init__(self): + self._cardid = "" + self._productname = "" + self._partnum = "" + self._serialnum = "" + self._macbase = "" + self._manufdate = "" + self._deviceversion = "" + self._labelrevision = "" + self._platformname = "" + self._onieversion = "" + self._macsize = "" + self._manufname = "" + self._manufcountry = "" + self._vendorname = "" + self._diagname = "" + self._servicetag = "" + self._vendorext = "" + self._productid = "" + self._hwversion = "" + self._mainfilename = "" + self._dtsfilename = "" + self._syserial0 = "" + self._syserial1 = "" + self._syserial2 = "" + self._syserial3 = "" + self._projectid = "" + self._setmacversion = "" + self._eepromtype = "" + self._crc32 = "" + self._dstatus = 0 + + def oniecrc32(self, v): + data_array = bytearray() + for x in v: + data_array.append(ord(x)) + return '0x%08x' % (binascii.crc32(bytes(data_array)) & 0xffffffff) + + def getTLV_BODY(self, tlv_type, value): + x = [] + temp_t = "" + if tlv_type == self.TLV_CODE_MAC_BASE: + arr = value.split(':') + for tt in arr: + temp_t += chr(int(tt, 16)) + elif tlv_type == self.TLV_CODE_DEVICE_VERSION: + temp_t = chr(value) + elif tlv_type == self.TLV_CODE_MAC_SIZE: + temp_t = chr(value >> 8) + chr(value & 0x00ff) + else: + temp_t = value + x.append(chr(tlv_type)) + x.append(chr(len(temp_t))) + for i in temp_t: + x.append(i) + return x + + def generate_ext(self, cardid): + s = "%08x" % cardid + ret = "" + for t in range(0, 4): + ret += chr(int(s[2 * t:2 * t + 2], 16)) + ret = chr(0x01) + chr(len(ret)) + ret + return ret + + def generate_value(self, _t): + ret = [] + for i in self.TLV_INFO_ID_STRING: + ret.append(i) + ret.append(chr(self.TLV_INFO_VERSION)) + ret.append(chr(self.TLV_INFO_LENGTH)) + ret.append(chr(self.TLV_INFO_LENGTH_VALUE)) + + total_len = 0 + for key in _t: + x = self.getTLV_BODY(key, _t[key]) + ret += x + total_len += len(x) + ret[10] = chr(total_len + 6) + + ret.append(chr(0xFE)) + ret.append(chr(0x04)) + s = self.oniecrc32(''.join(ret)) + for t in range(0, 4): + ret.append(chr(int(s[2 * t + 2:2 * t + 4], 16))) + totallen = len(ret) + if totallen < 256: + for left_t in range(0, 256 - totallen): + ret.append(chr(0x00)) + return (ret, True) + + def decode_tlv(self, e): + tlv_index = 0 + tlv_end = len(e) + ret = [] + while tlv_index < tlv_end and (tlv_index + 2 + ord(e[tlv_index + 1])) <= len(e): + rt = self.decoder(e[tlv_index:tlv_index + 2 + ord(e[tlv_index + 1])]) + ret.append(rt) + if ord(e[tlv_index]) == self.TLV_CODE_CRC_32: + break + tlv_index += ord(e[tlv_index + 1]) + 2 + return ret + + def decode(self, e): + if e[0:8] != self.TLV_INFO_ID_STRING: + raise OnietlvException("ONIE tlv head info error,not onie tlv type", -1) + total_len = (ord(e[9]) << 8) | ord(e[10]) + tlv_index = self._TLV_INFO_HDR_LEN + tlv_end = self._TLV_INFO_HDR_LEN + total_len + if tlv_end > len(e): + raise OnietlvException("ONIE tlv length error", -2) + ret = [] + ret = self.decode_tlv(e[tlv_index:tlv_end]) + for item in ret: + if item['code'] == self.TLV_CODE_VENDOR_EXT: + if item["value"][0:4] == self.TLV_INFO_INIA_ID: + rt = self.decode_tlv(item["value"][4:]) + else: + rt = self.decode_tlv(item["value"][0:]) + ret.extend(rt) + return ret + + def decoder(self, t): + if ord(t[0]) == self.TLV_CODE_PRODUCT_NAME: + name = "Product Name" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._productname = value + elif ord(t[0]) == self.TLV_CODE_PART_NUMBER: + name = "Part Number" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._partnum = value + elif ord(t[0]) == self.TLV_CODE_SERIAL_NUMBER: + name = "Serial Number" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._serialnum = value + elif ord(t[0]) == self.TLV_CODE_MAC_BASE: + name = "Base MAC Address" + _len = ord(t[1]) + value = ":".join(['%02X' % ord(T) for T in t[2:8]]).upper() + self._macbase = value + elif ord(t[0]) == self.TLV_CODE_MANUF_DATE: + name = "Manufacture Date" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._manufdate = value + elif ord(t[0]) == self.TLV_CODE_DEVICE_VERSION: + name = "Device Version" + _len = ord(t[1]) + value = ord(t[2]) + self._deviceversion = value + elif ord(t[0]) == self.TLV_CODE_LABEL_REVISION: + name = "Label Revision" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._labelrevision = value + elif ord(t[0]) == self.TLV_CODE_PLATFORM_NAME: + name = "Platform Name" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._platformname = value + elif ord(t[0]) == self.TLV_CODE_ONIE_VERSION: + name = "ONIE Version" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._onieversion = value + elif ord(t[0]) == self.TLV_CODE_MAC_SIZE: + name = "MAC Addresses" + _len = ord(t[1]) + value = str((ord(t[2]) << 8) | ord(t[3])) + self._macsize = value + elif ord(t[0]) == self.TLV_CODE_MANUF_NAME: + name = "Manufacturer" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._manufname = value + elif ord(t[0]) == self.TLV_CODE_MANUF_COUNTRY: + name = "Manufacture Country" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._manufcountry = value + elif ord(t[0]) == self.TLV_CODE_VENDOR_NAME: + name = "Vendor Name" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._vendorname = value + elif ord(t[0]) == self.TLV_CODE_DIAG_VERSION: + name = "Diag Version" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._diagname = value + elif ord(t[0]) == self.TLV_CODE_SERVICE_TAG: + name = "Service Tag" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._servicetag = value + elif ord(t[0]) == self.TLV_CODE_VENDOR_EXT: + name = "Vendor Extension" + _len = ord(t[1]) + value = "" + if self._TLV_DISPLAY_VENDOR_EXT: + value = t[2:2 + ord(t[1])] + self._vendorext = value + elif ord(t[0]) == self.TLV_CODE_CRC_32 and len(t) == 6: + name = "CRC-32" + _len = ord(t[1]) + value = "0x%08X" % (((ord(t[2]) << 24) | ( + ord(t[3]) << 16) | (ord(t[4]) << 8) | ord(t[5])),) + self._crc32 = value + elif ord(t[0]) == self.TLV_CODE_WB_CARID: + name = "Card id" + _len = ord(t[1]) + value = "" + for c in t[2:2 + ord(t[1])]: + value += "%02X" % (ord(c),) + self._cardid = value + elif ord(t[0]) == self.TLV_CODE_PRODUCT_ID: + name = "Product id" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._productid = value + elif ord(t[0]) == self.TLV_CODE_HW_VERSION: + name = "Hardware Version" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._hwversion = value + elif ord(t[0]) == self.TLV_CODE_MAIN_FILENAME: + name = "Main File Name" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._mainfilename = value + elif ord(t[0]) == self.TLV_CODE_DTS_FINENAME: + name = "DTS File Name" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._dtsfilename = value + elif ord(t[0]) == self.TLV_CODE_SY_SERIAL0: + name = "SY Serial 0" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._syserial0 = value + elif ord(t[0]) == self.TLV_CODE_SY_SERIAL1: + name = "SY Serial 1" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._syserial1 = value + elif ord(t[0]) == self.TLV_CODE_SY_SERIAL2: + name = "SY Serial 2" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._syserial2 = value + elif ord(t[0]) == self.TLV_CODE_SY_SERIAL3: + name = "SY Serial 3" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._syserial3 = value + elif ord(t[0]) == self.TLV_CODE_PROJECT_ID: + name = "Project id" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._projectid = value + elif ord(t[0]) == self.TLV_CODE_SETMAC_VERSION: + name = "Setmac Version" + _len = ord(t[1]) + value = t[2:2 + ord(t[1])] + self._setmacversion = value + elif ord(t[0]) == self.TLV_CODE_EEPROM_TYPE: + name = "EEPROM Type" + _len = ord(t[1]) + value = "" + for c in t[2:2 + ord(t[1])]: + value += "%02X" % (ord(c),) + self._eepromtype = value + else: + name = "Unknown" + _len = ord(t[1]) + value = "" + for c in t[2:2 + ord(t[1])]: + value += "0x%02X " % (ord(c),) + return {"name": name, "code": ord(t[0]), "value": value, "lens": _len} + + def __str__(self): + formatstr = "Card id : %s \n" \ + "Product Name : %s \n" \ + "Part Number : %s \n" \ + "Serial Number : %s \n" \ + "Base MAC Address : %s \n" \ + "Manufacture Date : %s \n" \ + "Device Version : %s \n" \ + "Label Revision : %s \n" \ + "Platform Name : %s \n" \ + "ONIE Version : %s \n" \ + "MAC Addresses : %s \n" \ + "Manufacturer : %s \n" \ + "Manufacture Country : %s \n" \ + "Vendor Name : %s \n" \ + "Diag Version : %s \n" \ + "Service Tag : %s \n" \ + "CRC-32 : %s \n" + return formatstr % (self._cardid, + self._productname, + self._partnum, + self._serialnum, + self._macbase, + self._manufdate, + self._deviceversion, + self._labelrevision, + self._platformname, + self._onieversion, + self._macsize, + self._manufname, + self._manufcountry, + self._vendorname, + self._diagname, + self._servicetag, + self._crc32) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/__init__.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/baseutil.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/baseutil.py new file mode 100644 index 000000000000..5260107c91be --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/baseutil.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python3 +####################################################### +# +# baseutil.py +# Python implementation of the Class baseutil +# +####################################################### +import importlib.machinery +import os +import syslog +import json +from plat_hal.osutil import osutil + +SYSLOG_IDENTIFIER = "HAL" + +CONFIG_DB_PATH = "/etc/sonic/config_db.json" +BOARD_ID_PATH = "/sys/module/platform_common/parameters/dfd_my_type" +BOARD_AIRFLOW_PATH = "/etc/sonic/.airflow" + + +def getonieplatform(path): + if not os.path.isfile(path): + return "" + machine_vars = {} + with open(path) as machine_file: + for line in machine_file: + tokens = line.split('=') + if len(tokens) < 2: + continue + machine_vars[tokens[0]] = tokens[1].strip() + return machine_vars.get("onie_platform") + + +def getboardid(): + if not os.path.exists(BOARD_ID_PATH): + return "NA" + with open(BOARD_ID_PATH) as fd: + id_str = fd.read().strip() + return "0x%x" % (int(id_str, 10)) + + +def getboardairflow(): + if not os.path.exists(BOARD_AIRFLOW_PATH): + return "NA" + with open(BOARD_AIRFLOW_PATH) as fd: + airflow_str = fd.read().strip() + data = json.loads(airflow_str) + airflow = data.get("board", "NA") + return airflow + + +def getplatform_config_db(): + if not os.path.isfile(CONFIG_DB_PATH): + return "" + val = os.popen("sonic-cfggen -j %s -v DEVICE_METADATA.localhost.platform" % CONFIG_DB_PATH).read().strip() + if len(val) <= 0: + return "" + return val + + +def getplatform_name(): + if os.path.isfile('/host/machine.conf'): + return getonieplatform('/host/machine.conf') + if os.path.isfile('/etc/sonic/machine.conf'): + return getonieplatform('/etc/sonic/machine.conf') + return getplatform_config_db() + + +platform = (getplatform_name()).replace("-", "_") +boardid = getboardid() +boardairflow = getboardairflow() + + +CONFIG_FILE_PATH_LIST = [ + "/usr/local/bin/", + "/usr/lib/python3/dist-packages/", + "/usr/local/lib/python3.7/dist-packages/hal-config/", + "/usr/local/lib/python3.9/dist-packages/hal-config/" +] + + +DEVICE_CONFIG_FILE_LIST = [ + platform + "_" + boardid + "_" + boardairflow + "_device.py", + platform + "_" + boardid + "_device.py", + platform + "_" + boardairflow + "_device.py", + platform + "_device.py" +] + + +MONITOR_CONFIG_FILE_LIST = [ + platform + "_" + boardid + "_" + boardairflow + "_monitor.py", + platform + "_" + boardid + "_monitor.py", + platform + "_" + boardairflow + "_monitor.py", + platform + "_monitor.py" +] + + +class baseutil: + + CONFIG_NAME = 'devices' + MONITOR_CONFIG_NAME = 'monitor' + UBOOT_ENV_URL = '/etc/device/uboot_env' + + @staticmethod + def get_config(): + real_path = None + for configfile_path in CONFIG_FILE_PATH_LIST: + for config_file in DEVICE_CONFIG_FILE_LIST: + file = configfile_path + config_file + if os.path.exists(file): + real_path = file + break + if real_path is not None: + break + + if real_path is None: + raise Exception("get hal device config error") + devices = importlib.machinery.SourceFileLoader(baseutil.CONFIG_NAME, real_path).load_module() + return devices.devices + + @staticmethod + def get_monitor_config(): + real_path = None + for configfile_path in CONFIG_FILE_PATH_LIST: + for config_file in MONITOR_CONFIG_FILE_LIST: + file = configfile_path + config_file + if os.path.exists(file): + real_path = file + break + if real_path is not None: + break + + if real_path is None: + raise Exception("get hal monitor config error") + monitor = importlib.machinery.SourceFileLoader(baseutil.MONITOR_CONFIG_NAME, real_path).load_module() + return monitor.monitor + + @staticmethod + def get_productname(): + ret, val = osutil.command("cat %s |grep productname | awk -F\"=\" '{print $2;}'" % baseutil.UBOOT_ENV_URL) + tmp = val.lower().replace('-', '_') + if ret != 0 or len(val) <= 0: + raise Exception("get productname error") + return tmp + + @staticmethod + def get_platform(): + ret, val = osutil.command("cat %s |grep conffitname | awk -F\"=\" '{print $2;}'" % baseutil.UBOOT_ENV_URL) + if ret != 0 or len(val) <= 0: + raise Exception("get platform error") + return val + + @staticmethod + def get_product_fullname(): + ret, val = osutil.command("cat %s |grep productname | awk -F\"=\" '{print $2;}'" % baseutil.UBOOT_ENV_URL) + if ret != 0 or len(val) <= 0: + raise Exception("get productname error") + return val + + @staticmethod + def logger_debug(msg): + syslog.openlog(SYSLOG_IDENTIFIER) + syslog.syslog(syslog.LOG_DEBUG, msg) + syslog.closelog() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/chassisbase.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/chassisbase.py new file mode 100644 index 000000000000..767d6da34ba9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/chassisbase.py @@ -0,0 +1,318 @@ +#!/usr/bin/env python3 +####################################################### +# +# chassisbase.py +# Python implementation of the Class chassisbase +# +####################################################### +from plat_hal.dcdc import dcdc +from plat_hal.onie_e2 import onie_e2 +from plat_hal.psu import psu +from plat_hal.led import led +from plat_hal.temp import temp +from plat_hal.fan import fan +from plat_hal.cpld import cpld +from plat_hal.component import component +from plat_hal.cpu import cpu +from plat_hal.baseutil import baseutil + + +class chassisbase(object): + __onie_e2_list = [] + __psu_list = [] + __led_list = [] + __temp_list = [] + __fan_list = [] + __card_list = [] + __sensor_list = [] + __dcdc_list = [] + __cpld_list = [] + __comp_list = [] + __bios_list = [] + __bmc_list = [] + __cpu = None + + def __init__(self, conftype=0, conf=None): + # type: (object, object, object) -> object + """ + init chassisbase as order + + type = 0 use default conf, maybe auto find by platform + type = 1 use given conf, conf is not None + + BITMAP + bit 16 + bit 0 PSU + bit 1 LED + bit 2 TEMP + bit 3 fan + bit 4 card + bit 5 sensor + """ + __confTemp = None + + if conftype == 0: + # user + __confTemp = baseutil.get_config() + elif conftype == 1: + __confTemp = conf + + # onie_e2 + onie_e2temp = [] + onie_e2config = __confTemp.get('onie_e2', []) + for item in onie_e2config: + onie_e2_1 = onie_e2(item) + onie_e2temp.append(onie_e2_1) + self.onie_e2_list = onie_e2temp + + # psu + psutemp = [] + psuconfig = __confTemp.get('psus', []) + for item in psuconfig: + psu1 = psu(item) + psutemp.append(psu1) + self.psu_list = psutemp + + # led + ledtemp = [] + ledconfig = __confTemp.get('leds', []) + for item in ledconfig: + led1 = led(item) + ledtemp.append(led1) + self.led_list = ledtemp + + # temp + temptemp = [] + tempconfig = __confTemp.get('temps', []) + for item in tempconfig: + temp1 = temp(item) + temptemp.append(temp1) + self.temp_list = temptemp + + # fan + fantemp = [] + fanconfig = __confTemp.get('fans', []) + for item in fanconfig: + fan1 = fan(item) + fantemp.append(fan1) + self.fan_list = fantemp + + # dcdc + dcdctemp = [] + dcdcconfig = __confTemp.get('dcdc', []) + for item in dcdcconfig: + dcdc1 = dcdc(item) + dcdctemp.append(dcdc1) + self.dcdc_list = dcdctemp + + # cpld + cpldtemp = [] + cpldconfig = __confTemp.get('cplds', []) + for item in cpldconfig: + cpld1 = cpld(item) + cpldtemp.append(cpld1) + self.cpld_list = cpldtemp + + # compoment: cpld/fpga/bios + comptemp = [] + compconfig = __confTemp.get('comp_cpld', []) + for item in compconfig: + comp1 = component(item) + comptemp.append(comp1) + self.comp_list = comptemp + + compconfig = __confTemp.get('comp_fpga', []) + for item in compconfig: + comp1 = component(item) + self.comp_list.append(comp1) + + compconfig = __confTemp.get('comp_bios', []) + for item in compconfig: + comp1 = component(item) + self.comp_list.append(comp1) + + # cpu + cpuconfig = __confTemp.get('cpu', []) + if len(cpuconfig): + self.cpu = cpu(cpuconfig[0]) + + # dcdc + @property + def dcdc_list(self): + return self.__dcdc_list + + @dcdc_list.setter + def dcdc_list(self, val): + self.__dcdc_list = val + + # sensor + @property + def sensor_list(self): + return self.__sensor_list + + @sensor_list.setter + def sensor_list(self, val): + self.__sensor_list = val + + def get_sensor_byname(self, name): + tmp = self.sensor_list + for item in tmp: + if name == item.name: + return item + return None + + # onie_e2 + @property + def onie_e2_list(self): + return self.__onie_e2_list + + @onie_e2_list.setter + def onie_e2_list(self, val): + self.__onie_e2_list = val + + def get_onie_e2_byname(self, name): + tmp = self.onie_e2_list + for item in tmp: + if name == item.name: + return item + return None + + # psu + @property + def psu_list(self): + return self.__psu_list + + @psu_list.setter + def psu_list(self, val): + self.__psu_list = val + + def get_psu_byname(self, name): + tmp = self.psu_list + for item in tmp: + if name == item.name: + return item + return None + + # fan + @property + def fan_list(self): + return self.__fan_list + + @fan_list.setter + def fan_list(self, val): + self.__fan_list = val + + def get_fan_byname(self, name): + tmp = self.fan_list + for item in tmp: + if name == item.name: + return item + return None + + # led + + @property + def led_list(self): + return self.__led_list + + @led_list.setter + def led_list(self, val): + self.__led_list = val + + def get_led_byname(self, name): + tmp = self.led_list + for item in tmp: + if name == item.name: + return item + return None + + # temp + @property + def temp_list(self): + return self.__temp_list + + @temp_list.setter + def temp_list(self, val): + self.__temp_list = val + + def get_temp_byname(self, name): + tmp = self.temp_list + for item in tmp: + if name == item.name: + return item + return None + + # cpld + @property + def cpld_list(self): + return self.__cpld_list + + @cpld_list.setter + def cpld_list(self, val): + self.__cpld_list = val + + def get_cpld_byname(self, name): + tmp = self.cpld_list + for item in tmp: + if name == item.name: + return item + return None + + @property + def comp_list(self): + return self.__comp_list + + @comp_list.setter + def comp_list(self, val): + self.__comp_list = val + + def get_comp_byname(self, name): + tmp = self.comp_list + for item in tmp: + if name == item.name: + return item + return None + + # bios + @property + def bios_list(self): + return self.__bios_list + + @bios_list.setter + def bios_list(self, val): + self.__bios_list = val + + def get_bios_byname(self, name): + tmp = self.bios_list + for item in tmp: + if name == item.name: + return item + return None + + # bmc + @property + def bmc_list(self): + return self.__bmc_list + + @bmc_list.setter + def bmc_list(self, val): + self.__bmc_list = val + + def get_bmc_byname(self, name): + tmp = self.bmc_list + for item in tmp: + if name == item.name: + return item + return None + + # cpu + @property + def cpu(self): + return self.__cpu + + @cpu.setter + def cpu(self, val): + self.__cpu = val + + def get_cpu_byname(self, name): + return self.cpu diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/component.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/component.py new file mode 100644 index 000000000000..0f2ad2167485 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/component.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 +####################################################### +# +# component.py +# Python implementation of the Class fan +# +####################################################### +from plat_hal.devicebase import devicebase +from plat_hal.osutil import osutil + + +class component(devicebase): + __user_reg = None + + def __init__(self, conf=None): + if conf is not None: + self.name = conf.get('name', None) + self.version_file = conf.get('VersionFile', None) + self.comp_id = conf.get("comp_id", None) + self.desc = conf.get("desc", None) + self.slot = conf.get("slot", None) + + def get_version(self): + version = "NA" + try: + ret, version = self.get_value(self.version_file) + if ret is False: + return version + pattern = self.version_file.get('pattern', None) + version = osutil.std_match(version, pattern) + except Exception: + return version + return version diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpld.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpld.py new file mode 100644 index 000000000000..09eed5f975ee --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpld.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +####################################################### +# +# fan.py +# Python implementation of the Class fan +# +####################################################### +from plat_hal.devicebase import devicebase + + +class cpld(devicebase): + __user_reg = None + + def __init__(self, conf=None): + if conf is not None: + self.name = conf.get('name', None) + self.user_reg = conf.get('UserReg', None) + self.console_reg = conf.get('ConsoleReg', None) + self.console_reg_attrs = conf.get('ConsoleRegAttrs', None) + self.version_file = conf.get('VersionFile', None) + self.cpld_id = conf.get("cpld_id", None) + self.desc = conf.get("desc", None) + self.slot = conf.get("slot", None) + self.format = conf.get("format", "big_endian") + self.warm = conf.get("warm", None) + self.type = conf.get("type", None) + + def get_user_reg(self): + if self.user_reg is None: + return False + ret, val = self.get_value(self.user_reg) + return val + + def set_user_reg(self, value): + if self.user_reg is None: + return False + byte = value & 0xFF + ret, val = self.set_value(self.user_reg, byte) + return ret + + def set_console_owner(self, owner): + ret = False + + if self.console_reg is None: + return False + tmpattr = self.console_reg_attrs.get(owner, None) + if tmpattr is not None: + ret, val = self.set_value(self.console_reg, tmpattr) + return ret + + def get_version(self): + ret, val = self.get_value(self.version_file) + if ret is False: + val = "N/A" + return val + if self.type == "str": + return val.strip('\n') + val = val.strip('\n').split(" ") + if len(val) < 4: + val = "N/A" + return val + if self.format == "little_endian": + cpld_version = "%s%s%s%s" % (val[3], val[2], val[1], val[0]) + else: + cpld_version = "%s%s%s%s" % (val[0], val[1], val[2], val[3]) + return cpld_version diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpu.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpu.py new file mode 100644 index 000000000000..c6bec1abd1c2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/cpu.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +############################################################################### +# +# Hardware Abstraction Layer APIs -- CPU APIs. +# +############################################################################### +from plat_hal.devicebase import devicebase + + +class cpu(devicebase): + + def __init__(self, conf=None): + if conf is not None: + self.name = conf.get('name', None) + self.cpu_reset_cnt_reg = conf.get('CpuResetCntReg', None) + self.reboot_cause_path = conf.get('reboot_cause_path', "/etc/sonic/.reboot/.previous-reboot-cause.txt") + + def get_cpu_reset_num(self): + """ + get cpu reset num. + @return cpu reset number, -1 for failure + """ + ret = -1 + if self.cpu_reset_cnt_reg is None: + self.logger_debug("ERR: no support get cpu reset num") + return ret + ret, reset_num = self.get_value(self.cpu_reset_cnt_reg) + if ret is False or reset_num is None: + self.logger_debug("ERR: i2c read cpu_reset_cnt_reg,result:%s" % reset_num) + else: + if isinstance(reset_num, str): + ret = int(reset_num, 16) + else: + ret = reset_num + return ret + + def get_cpu_reboot_cause(self): + """ + get_cpu_reboot_cause + @return cpu reset number, -1 for failure + """ + try: + with open(self.reboot_cause_path) as fd: + reboot_cause = fd.read().strip() + return reboot_cause + except Exception: + return "Unknown reboot cause" + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/dcdc.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/dcdc.py new file mode 100644 index 000000000000..ba604995043d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/dcdc.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 +from plat_hal.devicebase import devicebase +from plat_hal.sensor import sensor + + +class dcdc(devicebase): + def __init__(self, conf=None): + if conf is not None: + self.name = conf.get('name', None) + self.dcdc_id = conf.get("dcdc_id", None) + self.sensor = sensor(conf) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py new file mode 100644 index 000000000000..2b8f85c663db --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py @@ -0,0 +1,348 @@ +#!/usr/bin/env python3 +####################################################### +# +# devicebase.py +# Python implementation of the Class devicebase +# +####################################################### +import subprocess +import shlex +import ast +from plat_hal.osutil import osutil +from plat_hal.baseutil import baseutil + +class CodeVisitor(ast.NodeVisitor): + + def __init__(self): + self.value = None + + def get_value(self): + return self.value + + def get_op_value(self, node): + if isinstance(node, ast.Call): # node is func call + value = self.visit_Call(node) + elif isinstance(node, ast.BinOp): # node is BinOp + value = self.visit_BinOp(node) + elif isinstance(node, ast.UnaryOp): # node is UnaryOp + value = self.visit_UnaryOp(node) + elif isinstance(node, ast.Num): # node is Num Constant + value = node.n + elif isinstance(node, ast.Str): # node is Str Constant + value = node.s + else: + raise NotImplementedError("Unsupport operand type: %s" % type(node)) + return value + + def visit_UnaryOp(self, node): + ''' + node.op: operand type, only support ast.UAdd/ast.USub + node.operand: only support ast.Call/ast.Constant(ast.Num/ast.Str)/ast.BinOp/ast.UnaryOp + ''' + + operand_value = self.get_op_value(node.operand) + if isinstance(node.op, ast.UAdd): + self.value = operand_value + elif isinstance(node.op, ast.USub): + self.value = 0 - operand_value + else: + raise NotImplementedError("Unsupport arithmetic methods %s" % type(node.op)) + return self.value + + def visit_BinOp(self, node): + ''' + node.left: left operand, only support ast.Call/ast.Constant(ast.Num)/ast.BinOp + node.op: operand type, only support ast.Add/ast.Sub/ast.Mult/ast.Div + node.right: right operan, only support ast.Call/ast.Constant(ast.Num/ast.Str)/ast.BinOp + ''' + left_value = self.get_op_value(node.left) + right_value = self.get_op_value(node.right) + + if isinstance(node.op, ast.Add): + self.value = left_value + right_value + elif isinstance(node.op, ast.Sub): + self.value = left_value - right_value + elif isinstance(node.op, ast.Mult): + self.value = left_value * right_value + elif isinstance(node.op, ast.Div): + self.value = left_value / right_value + else: + raise NotImplementedError("Unsupport arithmetic methods %s" % type(node.op)) + return self.value + + def visit_Call(self, node): + ''' + node.func.id: func name, only support 'float', 'int', 'str' + node.args: func args list,only support ast.Constant(ast.Num/ast.Str)/ast.BinOp/ast.Call + str/float only support one parameter, eg: float(XXX), str(xxx) + int support one or two parameters, eg: int(xxx) or int(xxx, 16) + xxx can be ast.Call/ast.Constant(ast.Num/ast.Str)/ast.BinOp + ''' + calc_tuple = ("float", "int", "str") + + if node.func.id not in calc_tuple: + raise NotImplementedError("Unsupport function call type: %s" % node.func.id) + + args_val_list = [] + for item in node.args: + ret = self.get_op_value(item) + args_val_list.append(ret) + + if node.func.id == "str": + if len(args_val_list) != 1: + raise TypeError("str() takes 1 positional argument but %s were given" % len(args_val_list)) + value = str(args_val_list[0]) + self.value = value + return value + + if node.func.id == "float": + if len(args_val_list) != 1: + raise TypeError("float() takes 1 positional argument but %s were given" % len(args_val_list)) + value = float(args_val_list[0]) + self.value = value + return value + # int + if len(args_val_list) == 1: + value = int(args_val_list[0]) + self.value = value + return value + if len(args_val_list) == 2: + value = int(args_val_list[0], args_val_list[1]) + self.value = value + return value + raise TypeError("int() takes 1 or 2 arguments (%s given)" % len(args_val_list)) + + +class devicebase(object): + _name = None + __error_ret = -99999 + + @property + def name(self): + return self._name + + @name.setter + def name(self, val): + self._name = val + + def dumpValueByI2c(self, bus, loc): + value = "" + for i in range(256): + ret, val = self.get_i2c(bus, loc, i) + value += chr(val) + return value + + def byteTostr(self, val): + strtmp = '' + for value in val: + strtmp += chr(value) + return strtmp + + def get_eeprom_info(self, conf): + eeprom = "" + if conf.get('way') == 'sysfs': + ret, eeprom = self.get_value(conf) + if ret is False: + return None + elif conf.get('way') == 'devfile': + ret, eeprom_list = self.get_value(conf) + if ret is False: + return None + for item in eeprom_list: + eeprom += chr(item) + else: + eeprom = self.dumpValueByI2c(conf.get('bus'), conf.get('addr')) + return eeprom + + def exec_os_cmd(self, cmd): + status, output = subprocess.getstatusoutput(cmd) + return status, output + + def get_value(self, config): + ''' + get value by config way + way i2c/sysfs/lpc + ''' + way = config.get("way") + if way == 'sysfs': + return self.get_sysfs(config.get("loc"), config.get("flock_path")) + if way == "i2c": + bus = config.get("bus") + addr = config.get("addr") + offset = config.get("offset") + return self.get_i2c(bus, addr, offset) + if way == "io": + io_addr = config.get('io_addr') + read_len = config.get('read_len', 1) + return self.get_io(io_addr, read_len) + if way == "i2cword": + bus = config.get("bus") + addr = config.get("addr") + offset = config.get("offset") + return self.get_i2cword(bus, addr, offset) + if way == "devmem": + addr = config.get("addr") + digit = config.get("digit") + mask = config.get("mask", None) + return self.get_devmem(addr, digit, mask) + if way == "sdk": + get_type = config.get("type") + if get_type == "bcm_temp": + return self.getbcmtemp() + if get_type == "bcm_reg": + reg = config.get("reg") + return self.getbcmreg(reg) + raise Exception("cannot found sdk type deal") + if way == "devfile": + loc = config.get("loc") + offset = config.get("offset") + length = config.get("len") + ret, val_list = self.devfile_read(loc, offset, length) + if ret is True: + if length == 1: + val = val_list[0] + return True, val + return True, val_list + return False, ("devfile read failed. path:%s, offset:0x%x, read_len:%d" % (loc, offset, length)) + if way == "devfile_ascii": + loc = config.get("loc") + offset = config.get("offset") + length = config.get("len") + return self.devfile_read_ascii(loc, offset, length) + if way == 'cmd': + cmd = config.get("cmd") + ret, log = self.exec_os_cmd(cmd) + if ret: + return False, ("cmd write exec %s failed, log: %s" % (cmd, log)) + return True, log + raise Exception("cannot found way deal") + + def devfile_read(self, loc, offset, length): + return osutil.readdevfile(loc, offset, length) + + def devfile_read_ascii(self, loc, offset, length): + return osutil.readdevfile_ascii(loc, offset, length) + + def get_sysfs(self, loc, flock_path=None): + return self.getsysfs(loc, flock_path) + + def getsysfs(self, loc, flock_path=None): + ret, val = osutil.readsysfs(loc, flock_path) + return ret, val + + def get_devmem(self, addr, digit, mask): + return osutil.getdevmem(addr, digit, mask) + + def get_i2cword(self, bus, addr, offset): + return self.geti2cword(bus, addr, offset) + + def geti2cword(self, bus, addr, offset): + ret, val = osutil.geti2cword(bus, addr, offset) + return ret, val + + def get_io(self, reg_addr, read_len): + return self.getio(reg_addr, read_len) + + def getio(self, reg_addr, read_len): + ret, val = osutil.io_rd(reg_addr, read_len) + return ret, val + + def get_i2c(self, bus, addr, offset): + return self.geti2c(bus, addr, offset) + + def geti2c(self, bus, addr, offset): + ret, val = osutil.wbi2cget(bus, addr, offset) + return ret, val + + def set_value(self, config, val): + ''' + get value by config way + way i2c/sysfs/lpc + ''' + way = config.get("way") + if way == 'sysfs': + return self.set_sysfs(config.get("loc"), "0x%02x" % val) + if way == "i2c": + bus = config.get("bus") + addr = config.get("addr") + offset = config.get("offset") + return self.set_i2c(bus, addr, offset, val) + if way == "i2cpec": + bus = config.get("bus") + addr = config.get("addr") + offset = config.get("offset") + return self.seti2c_byte_pec(bus, addr, offset, val) + if way == 'i2cword': + bus = config.get("bus") + addr = config.get("addr") + offset = config.get("offset") + return self.set_i2cword(bus, addr, offset, val) + if way == "i2cwordpec": + bus = config.get("bus") + addr = config.get("addr") + offset = config.get("offset") + return self.set_i2cwordpec(bus, addr, offset, val) + if way == "devfile": + loc = config.get("loc") + offset = config.get("offset") + return self.devfile_write(loc, offset, val) + return False, "unsupport way: %s" % way + + def set_sysfs(self, loc, value): + return self.setsysfs(loc, value) + + def setsysfs(self, loc, value): + return osutil.writesysfs(loc, value) + + def set_i2cword(self, bus, addr, offset, byte): + return self.seti2cword(bus, addr, offset, byte) + + def seti2cword(self, bus, addr, offset, byte): + return osutil.seti2cword(bus, addr, offset, byte) + + def set_i2cwordpec(self, bus, addr, offset, val): + return osutil.seti2cwordpec(bus, addr, offset, val) + + def seti2c_byte_pec(self, bus, addr, offset, val): + return osutil.seti2c_byte_pec(bus, addr, offset, val) + + def set_i2c(self, bus, addr, offset, byte): + return self.seti2c(bus, addr, offset, byte) + + def seti2c(self, bus, addr, offset, byte): + ret, val = osutil.wbi2cset(bus, addr, offset, byte) + return ret, val + + def devfile_write(self, loc, offset, val): + ret, val = osutil.writedevfile(loc, offset, val) + return ret, val + + def getbcmtemp(self): + try: + sta, ret = osutil.getmactemp() + if sta is True: + mac_aver = float(ret.get("average", self.__error_ret)) + mac_aver = mac_aver * 1000 + else: + return False, ret + except AttributeError as e: + return False, str(e) + return True, mac_aver + + def getbcmreg(self, reg): + ret, val = osutil.getsdkreg(reg) + return ret, val + + def logger_debug(self, msg): + baseutil.logger_debug(msg) + + def command(self, cmd): + ret, output = osutil.command(cmd) + return ret, output + + def get_format_value(self, format_str): + ast_obj = ast.parse(format_str, mode='eval') + visitor = CodeVisitor() + visitor.visit(ast_obj) + ret = visitor.get_value() + return ret diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py new file mode 100644 index 000000000000..1424c14a4a94 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py @@ -0,0 +1,417 @@ +#!/usr/bin/env python3 +####################################################### +# +# fan.py +# Python implementation of the Class fan +# +####################################################### +from eepromutil.fru import ipmifru +from eepromutil.fantlv import fan_tlv +from plat_hal.devicebase import devicebase +from plat_hal.rotor import rotor + + +class fan(devicebase): + __rotor_list = [] + __pn = None + __raweeprom = None + __sn = None + __hw_version = None + __e2loc = None + __rotors = None + __AirFlow = None + __SpeedMin = None + __SpeedMax = None + __PowerMax = None + __productName = None + __productSerialNumber = None + __WatchdogStatus = None + __led_attrs_config = None + __led_config = None + __WatchdogStatus_config = None + __AirFlowconifg = None + __EnableWatchdogConf = None + __Rotor_config = None + __fan_display_name = None # 'N/A' + __fan_display_name_conifg = None + + def __init__(self, conf=None): + if conf is not None: + self.name = conf.get('name', None) + self.sn = conf.get('sn', None) + self.present = conf.get('present', None) + self.e2loc = conf.get('e2loc', None) + self.e2_type = conf.get('e2_type', "fru") + self.SpeedMin = conf.get('SpeedMin', None) + self.SpeedMax = conf.get('SpeedMax', None) + self.PowerMax = conf.get('PowerMax', None) + self.AirFlowconifg = conf.get("airflow", None) + self.WatchdogStatus_config = conf.get('WatchdogStatus', None) + self.EnableWatchdogConf = conf.get('EnableWatchdogConf', None) + self.led_attrs_config = conf.get('led_attrs', None) + self.led_config = conf.get('led', None) + self.Rotor_config = conf.get('Rotor', None) + self.fan_display_name_conifg = conf.get("fan_display_name", None) + rotor_tmp = [] + for value in self.Rotor_config.values(): + rotor_tmp.append(rotor(value)) + rotor_tmp.sort(key=lambda x: x.name, reverse=False) + self.rotor_list = rotor_tmp + self.rotors = len(self.rotor_list) + + @property + def EnableWatchdogConf(self): + return self.__EnableWatchdogConf + + @EnableWatchdogConf.setter + def EnableWatchdogConf(self, val): + self.__EnableWatchdogConf = val + + @property + def rotor_list(self): + return self.__rotor_list + + @rotor_list.setter + def rotor_list(self, val): + self.__rotor_list = val + + @property + def Rotor_config(self): + return self.__Rotor_config + + @Rotor_config.setter + def Rotor_config(self, val): + self.__Rotor_config = val + + @property + def productName(self): + return self.__productName + + @productName.setter + def productName(self, val): + self.__productName = val + + @property + def productSerialNumber(self): + return self.__productSerialNumber + + @productSerialNumber.setter + def productSerialNumber(self, val): + self.__productSerialNumber = val + + @property + def hw_version(self): + return self.__hw_version + + @hw_version.setter + def hw_version(self, val): + self.__hw_version = val + + @property + def sn(self): + return self.__sn + + @sn.setter + def sn(self, val): + self.__sn = val + + @property + def pn(self): + return self.__pn + + @pn.setter + def pn(self, val): + self.__pn = val + + @property + def raweeprom(self): + return self.__raweeprom + + @raweeprom.setter + def raweeprom(self, val): + self.__raweeprom = val + + @property + def SpeedMax(self): + return self.__SpeedMax + + @SpeedMax.setter + def SpeedMax(self, val): + self.__SpeedMax = val + + @property + def SpeedMin(self): + return self.__SpeedMin + + @SpeedMin.setter + def SpeedMin(self, val): + self.__SpeedMin = val + + @property + def PowerMax(self): + return self.__PowerMax + + @PowerMax.setter + def PowerMax(self, val): + self.__PowerMax = val + + @property + def rotors(self): + return self.__rotors + + @property + def AirFlow(self): + return self.__AirFlow + + @AirFlow.setter + def AirFlow(self, val): + self.__AirFlow = val + + @rotors.setter + def rotors(self, val): + self.__rotors = val + + @property + def fan_display_name_conifg(self): + return self.__fan_display_name_conifg + + @fan_display_name_conifg.setter + def fan_display_name_conifg(self, val): + self.__fan_display_name_conifg = val + + @property + def fan_display_name(self): + return self.__fan_display_name + + @fan_display_name.setter + def fan_display_name(self, val): + self.__fan_display_name = val + + def getspeed(self, conf): + tmp = None + if conf is None: + return -1 + ret, val = self.get_value(conf) + if ret is True: + tmp = int(str(val), 10) + else: + val = None + if val is not None: + return int(15000000 / tmp) + return -1 + + def get_speed(self, rotor_index): + rotor_item = self.get_rotor_index(rotor_index) + if rotor_item is None: + return None + speed = rotor_item.rotor_Speed.Value + if speed is None: + return None + return int(speed) + + def set_led(self, color): + status = self.led_attrs_config.get(color, None) + if status is None: + return False + + mask = self.led_attrs_config.get('mask', 0xff) + ret, value = self.get_value(self.led_config) + if ret is False or value is None: + return False + setval = (int(value) & ~mask) | (status) + ret, val = self.set_value(self.led_config, setval) + return ret + + def get_led(self): + mask = self.led_attrs_config.get('mask', 0xff) + ret, value = self.get_value(self.led_config) + if ret is False or value is None: + return False, 'N/A' + ledval = int(value) & mask + for key, val in self.led_attrs_config.items(): + if (ledval == val) and (key != "mask"): + return True, key + return False, 'N/A' + + def set_speed(self, rotor_index, level): + if level > 255 or level < 0: + return False + rotor_item = self.get_rotor_index(rotor_index) + if rotor_item is None: + return False + ret, val = self.set_value(rotor_item.Speedconfig, int(level)) + return ret + + def get_rotor_index(self, rotor_index): + if rotor_index > len(self.rotor_list): + return None + rotor_item = self.rotor_list[rotor_index - 1] + return rotor_item + + def get_rotor_byname(self, rotor_index): + for rotor_item in self.rotor_list: + if rotor_item.name == rotor_index: + return rotor_item + return None + + def get_presence(self): + ret, val = self.get_value(self.present) + if ret is False or val is None: + return -1 + if isinstance(val, str): + value = int(val, 16) + else: + value = val + mask = self.present.get("mask") + flag = value & mask + okval = self.present.get("okval", 0) + if flag == okval: + return True + return False + + def get_speed_pwm(self, rotor_index): + rotor_item = self.get_rotor_index(rotor_index) + if rotor_item is None: + return False + if rotor_item.i2c_speed is None: + return False + val = round(rotor_item.i2c_speed * 100 / 255) + return val + + def feed_watchdog(self): + ret = False + for rotor_item in self.rotor_list: + ret, val = rotor_item.feed_watchdog() + if ret is False: + return ret + return ret + + def get_fru_info(self): + try: + if self.get_presence() is False: + raise Exception("%s: not present" % self.name) + eeprom = self.get_eeprom_info(self.e2loc) + if eeprom is None: + raise Exception("%s: value is none" % self.name) + fru = ipmifru() + if isinstance(eeprom, bytes): + eeprom = self.byteTostr(eeprom) + fru.decodeBin(eeprom) + self.productName = fru.productInfoArea.productName.strip() # PN + self.productSerialNumber = fru.productInfoArea.productSerialNumber.strip() # SN + self.hw_version = fru.productInfoArea.productVersion.strip() # HW + except Exception: + self.productName = None + self.productSerialNumber = None + self.hw_version = None + return False + return True + + def get_tlv_info(self): + try: + if self.get_presence() is False: + raise Exception("%s: not present" % self.name) + eeprom = self.get_eeprom_info(self.e2loc) + if eeprom is None: + raise Exception("%s: value is none" % self.name) + tlv = fan_tlv() + rets = tlv.decode(eeprom) + for item in rets: + if item["name"] == "Product Name": + self.productName = item["value"].replace("\x00", "").strip() + elif item["name"] == "serial Number": + self.productSerialNumber = item["value"].replace("\x00", "").strip() + elif item["name"] == "hardware info": + self.hw_version = item["value"].replace("\x00", "").strip() + except Exception: + self.productName = None + self.productSerialNumber = None + self.hw_version = None + return False + return True + + def decode_eeprom_info(self): + '''get fan name, hw version, sn''' + if self.e2_type == "fru": + return self.get_fru_info() + + if self.e2_type == "fantlv": + return self.get_tlv_info() + + return False + + def get_AirFlow(self): + if self.productName is None: + ret = self.decode_eeprom_info() + if ret is False: + self.AirFlow = None + return False + if self.AirFlowconifg is None: + self.AirFlow = None + return False + for i in self.AirFlowconifg: + if self.productName in self.AirFlowconifg[i]: + self.AirFlow = i + return True + self.AirFlow = None + return False + + def enable_watchdog(self, enable): + ret = False + if enable is True: + byte = self.EnableWatchdogConf.get("enable_byte", None) + ret, val = self.set_value(self.EnableWatchdogConf, byte) + elif enable is False: + byte = self.EnableWatchdogConf.get("disable_byte", None) + ret, val = self.set_value(self.EnableWatchdogConf, byte) + return ret + + def get_watchdog_status(self): + dic = {"support": None, "open": None, "work_full": None, "work_allow_set": None} + if self.WatchdogStatus_config is None: + return None + ret, val = self.get_value(self.WatchdogStatus_config) + if ret is False or val is None: + return None + support_watchdog_off = self.WatchdogStatus_config.get("support_watchdog_off", None) + is_open_off = self.WatchdogStatus_config.get("is_open_off", None) + full_running_off = self.WatchdogStatus_config.get("full_running_off", None) + running_setting_off = self.WatchdogStatus_config.get("running_setting_off", None) + if support_watchdog_off is not None: + if support_watchdog_off & val == self.WatchdogStatus_config.get("support_watchdog_mask", None): + dic["support"] = True + else: + dic["support"] = False + return dic + if is_open_off is not None: + if is_open_off & val == self.WatchdogStatus_config.get("is_open_mask", None): + dic["open"] = True + else: + dic["open"] = False + if full_running_off is not None: + if full_running_off & val == self.WatchdogStatus_config.get("full_running_mask", None): + dic["work_full"] = True + else: + dic["work_full"] = False + if running_setting_off is not None: + if running_setting_off & val == self.WatchdogStatus_config.get("running_setting_mask", None): + dic["work_allow_set"] = True + else: + dic["work_allow_set"] = False + return dic + + def get_fan_display_name(self): + if self.productName is None: + ret = self.decode_eeprom_info() + if ret is False: + self.fan_display_name = None + return False + if self.fan_display_name_conifg is None: + self.fan_display_name = self.productName + return False + for i in self.fan_display_name_conifg: + if self.productName in self.fan_display_name_conifg[i]: + self.fan_display_name = i + return True + self.fan_display_name = self.productName + return False diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py new file mode 100644 index 000000000000..d283a50200be --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py @@ -0,0 +1,1327 @@ +#!/usr/bin/env python3 +####################################################### +# +# interface.py +# Python implementation of the Class interface +# +####################################################### +import collections +from plat_hal.chassisbase import chassisbase +from plat_hal.baseutil import baseutil +from plat_hal.osutil import osutil + + +def Singleton(cls): + _instance = {} + + def _singleton(*args, **kargs): + if cls not in _instance: + _instance[cls] = cls(*args, **kargs) + return _instance[cls] + + return _singleton + + +@Singleton +class interface(object): + __chas = None + __error_ret = None + + def __init__(self): + self.chas = chassisbase() + self.__error_ret = -99999 + self.__na_ret = 'N/A' + + @property + def na_ret(self): + return self.__na_ret + + @na_ret.setter + def na_ret(self, val): + self.__na_ret = val + + @property + def error_ret(self): + return self.__error_ret + + @error_ret.setter + def error_ret(self, val): + self.__error_ret = val + + @property + def chas(self): + return self.__chas + + @chas.setter + def chas(self, val): + self.__chas = val + + # onie_e2 + def get_onie_e2(self): + onie_e2_list = self.chas.onie_e2_list + return onie_e2_list + + def get_onie_e2_path(self, name): + onie_e2 = self.chas.get_onie_e2_byname(name) + if onie_e2 is None: + return None + return onie_e2.e2_path + + def get_device_airflow(self, name): + onie_e2 = self.chas.get_onie_e2_byname(name) + if onie_e2 is None: + return None + return onie_e2.airflow + + def get_onie_e2_obj(self, name): + onie_e2 = self.chas.get_onie_e2_byname(name) + if onie_e2 is None: + return None + onie_e2.get_onie_e2_info() + return onie_e2 + + # temp + def get_temps(self): + templist = self.chas.temp_list + return templist + + def get_temp_total_number(self): + templist = self.chas.temp_list + return len(templist) + + def check_temp_id_exist(self, temp_id): + templist = self.chas.temp_list + for temp in templist: + if temp.temp_id == temp_id: + return True + return False + + def get_temp_id_number(self): + templist = self.chas.temp_list + temp_num = 0 + for i in range(len(templist)): + temp_id = "TEMP" + str(i + 1) + ret = self.check_temp_id_exist(temp_id) + if ret is True: + temp_num = temp_num + 1 + else: + return temp_num + return temp_num + + def get_temp_location(self, temp_name): + temp = self.chas.get_temp_byname(temp_name) + return temp.get_location() + + def set_temp_location(self, temp_name, location): + temp = self.chas.get_temp_byname(temp_name) + return temp.set_location(location) + + def set_temp_name(self, temp_name, name): + temp = self.chas.get_temp_byname(temp_name) + return temp.set_name(name) + + def get_appoint_temp(self, temp_name): + temp = self.chas.get_led_byname(temp_name) + return temp.get_temp() + + def set_appoint_temp(self, temp_name, val): + temp = self.chas.get_temp_byname(temp_name) + return temp.set_temp(val) + + def get_temp_mintemp(self, temp_name): + temp = self.chas.get_temp_byname(temp_name) + return temp.get_mintemp() + + def set_temp_mintemp(self, temp_name, val): + temp = self.chas.get_temp_byname(temp_name) + return temp.set_mintemp(val) + + # led + def get_leds(self): + ledlist = self.chas.led_list + return ledlist + + def get_led_total_number(self): + ledlist = self.chas.led_list + return len(ledlist) + + def get_led_color(self, led_name): + led = self.chas.get_led_byname(led_name) + if led is None: + return -1 + return led.get_color() + + def get_led_color_by_type(self, led_type): + ledlist = self.chas.led_list + ledtmp = None + for temp in ledlist: + if temp.led_type == led_type: + ledtmp = temp + break + if ledtmp is None: + return -1 + return ledtmp.get_color() + + def set_led_color(self, led_name, color): + led = self.chas.get_led_byname(led_name) + if led is None: + return -1 + return led.set_color(color) + + # psu + def get_psu_total_number(self): + psulist = self.chas.psu_list + if psulist is None: + return -1 + return len(psulist) + + def get_psus(self): + psulist = self.chas.psu_list + return psulist + + def get_psu_presence(self, psu_name): + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + return psu.present + + def get_psu_fru_info(self, psu_name): + ''' + { + "Name": "PSU1", + "SN": "serial_number_example", # 'N/A' + "PN": "part_number_example", # 'N/A' + "AirFlow": "B2F" # 'N/A' + } + ''' + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + psu.get_fru_info() + psu.get_AirFlow() + psu.get_psu_display_name() + + dic = collections.OrderedDict() + dic["Name"] = psu.name + dic["SN"] = psu.productSerialNumber if (psu.productSerialNumber is not None) else self.na_ret + dic["PN"] = psu.productPartModelName if (psu.productPartModelName is not None) else self.na_ret + dic["DisplayName"] = psu.psu_display_name if (psu.psu_display_name is not None) else self.na_ret + dic["VENDOR"] = psu.productManufacturer if (psu.productManufacturer is not None) else self.na_ret + dic["HW"] = psu.productVersion if (psu.productVersion is not None) else self.na_ret + dic["AirFlow"] = psu.AirFlow if (psu.AirFlow is not None) else self.na_ret + return dic + + def get_psu_input_output_status(self, psu_name): + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + psu.InputsCurrent.Value # just for clear faults + if (psu.InputStatus is True) and (psu.OutputStatus is True): + return True + return False + + def get_psu_status(self, psu_name): + """ + Get status of a specific PSU + @return dict of the specific PSU's status, None for failure + Example return value(all keys are mandatory) + { + "Name": "PSU1", + "InputType": "DC", # "AC" or 'N/A' + "InputStatus": True, # H/W status bit + "OutputStatus": True # H/W status bit + "FanSpeed": { + "Value": 4000, # -99999 + "Min": 2000, # -99999 + "Max": 10000 # -99999 + }, + "Temperature": { + "Value": 40.0, # -99999.0 + "Min": -30.0, # -99999.0 + "Max": 50.0 # -99999.0 + } + } + """ + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + + dic = collections.OrderedDict() + # psu.get_Temperature() + temp_dict = collections.OrderedDict() + temp_dict['Min'] = psu.Temperature.Min + temp_dict['Max'] = psu.Temperature.Max + temp_dict['Value'] = psu.Temperature.Value + temp_dict['Unit'] = psu.Temperature.Unit + dic["Temperature"] = temp_dict + + # psu.get_FanSpeed() + fan_speed_dict = collections.OrderedDict() + fan_speed_dict['Min'] = psu.FanSpeed.Min + fan_speed_dict['Max'] = psu.FanSpeed.Max + fan_speed_dict['Tolerance'] = psu.FanSpeedTolerance + fan_speed_dict['Value'] = psu.FanSpeed.Value + fan_speed_dict['Unit'] = psu.FanSpeed.Unit + dic["FanSpeed"] = fan_speed_dict + + dic["Name"] = psu.name + dic["InputType"] = psu.InputsType + dic["InputStatus"] = psu.InputStatus + dic["OutputStatus"] = psu.OutputStatus + dic["TempStatus"] = psu.TempStatus + dic["FanStatus"] = psu.FanStatus + return dic + + def get_psu_power_status(self, psu_name): + """ + Get power status of a specific PSU + @return dict of the specific PSU's power status, None for failure + Example return value + { + "Name": "PSU1", + "Inputs": { + "Status": True, # H/W status bit + "Type": "DC", # or "AC" or "N/A" + "Voltage": { + "Value": 220, # -1 + "LowAlarm": 200, # -1 + "HighAlarm": 240, # -1 + "Unit": "V" + }, + "Current": { + "Value": 6.0, # -99999.0 + "LowAlarm": 0.2, # -99999.0 + "HighAlarm": 7.0, # -99999.0 + "Unit": "A" + }, + "Power": { + "Value": 1000, # -99999 + "LowAlarm": -1, # -99999 + "HighAlarm": 1400, # -99999 + "Unit": "W" + } + }, + "Outputs": { + "Status": True, + "Voltage": { + "Value": 220, + "LowAlarm": 200, + "HighAlarm": 240, + "Unit": "V" + }, + "Current": { + "Value": 6.0, + "LowAlarm": 0.2, + "HighAlarm": 7.0, + "Unit": "A" + }, + "Power": { + "Value": 1000, + "LowAlarm": -1, # Don't care + "HighAlarm": 1400, + "Unit": "W" + } + } + } + """ + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + + dic = collections.OrderedDict() + inputdic = collections.OrderedDict() + Outputsdic = collections.OrderedDict() + dic["Name"] = psu.name + inputdic["Status"] = psu.InputStatus + inputdic["Type"] = psu.InputsType + + # psu.get_InputsVoltage() + inputdic_voltage = collections.OrderedDict() + + inputdic_voltage["Value"] = psu.InputsVoltage.Value + inputdic_voltage["LowAlarm"] = psu.InputsVoltage.Min + inputdic_voltage["HighAlarm"] = psu.InputsVoltage.Max + inputdic_voltage["Unit"] = psu.InputsVoltage.Unit + + inputdic["Voltage"] = inputdic_voltage + inputdic_current = collections.OrderedDict() + inputdic_current["Value"] = psu.InputsCurrent.Value + inputdic_current["LowAlarm"] = psu.InputsCurrent.Min + inputdic_current["HighAlarm"] = psu.InputsCurrent.Max + inputdic_current["Unit"] = psu.InputsCurrent.Unit + inputdic["Current"] = inputdic_current + + inputdic_power = collections.OrderedDict() + inputdic_power["Value"] = psu.InputsPower.Value + inputdic_power["LowAlarm"] = psu.InputsPower.Min + inputdic_power["HighAlarm"] = psu.InputsPower.Max + inputdic_power["Unit"] = psu.InputsPower.Unit + inputdic["Power"] = inputdic_power + Outputsdic["Status"] = psu.InputStatus + + outputdic_voltage = collections.OrderedDict() + outputdic_current = collections.OrderedDict() + outputdic_power = collections.OrderedDict() + + outputdic_voltage["Value"] = psu.OutputsVoltage.Value + outputdic_voltage["LowAlarm"] = psu.OutputsVoltage.Min + outputdic_voltage["HighAlarm"] = psu.OutputsVoltage.Max + outputdic_voltage["Unit"] = psu.OutputsVoltage.Unit + + outputdic_current["Value"] = psu.OutputsCurrent.Value + outputdic_current["LowAlarm"] = psu.OutputsCurrent.Min + outputdic_current["HighAlarm"] = psu.OutputsCurrent.Max + outputdic_current["Unit"] = psu.OutputsCurrent.Unit + + outputdic_power["Value"] = psu.OutputsPower.Value + outputdic_power["LowAlarm"] = psu.OutputsPower.Min + outputdic_power["HighAlarm"] = psu.OutputsPower.Max + outputdic_power["Unit"] = psu.OutputsPower.Unit + + Outputsdic["Voltage"] = outputdic_voltage + Outputsdic["Current"] = outputdic_current + Outputsdic["Power"] = outputdic_power + + dic["Inputs"] = inputdic + dic["Outputs"] = Outputsdic + + return dic + + def set_psu_fan_speed_pwm(self, psu_name, pwm): + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + return psu.set_fan_speed_pwm(pwm) + + def get_psu_fan_speed_pwm(self, psu_name): + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + return psu.get_fan_speed_pwm() + + def get_psu_info_all(self): + """ + { + "Number": 2, + "PSU1": { + "SN": "serial_number_example", # 'N/A' + "PN": "part_number_example", # 'N/A' + "AirFlow": "intake", # 'N/A' + + "FanSpeed": { + "Value": 4000, + "Min": 2000, + "Max": 30000 + }, + "Temperature": { + "Value": 35.0, + "Min": -20.0, + "Max": 45.0 + }, + "Inputs": { + "Status": True, # H/W status bit + "Type": "DC", # or "AC" + "Voltage": { + "Value": 220, + "LowAlarm": 200, + "HighAlarm": 240, + "Unit": "V" + }, + "Current": { + "Value": 6.0, + "LowAlarm": 0.2, + "HighAlarm": 7.0, + "Unit": "A" + }, + "Power": { + "Value": 1000, + "LowAlarm": -1, + "HighAlarm": 1400, + "Unit": "W" + } + }, + "Outputs": { + "Status": True, + "Voltage": { + "Value": 220, + "LowAlarm": 200, + "HighAlarm": 240, + "Unit": "V" + }, + "Current": { + "Value": 6.0, + "LowAlarm": 0.2, + "HighAlarm": 7.0, + "Unit": "A" + }, + "Power": { + "Value": 1000, + "LowAlarm": -1, # Don't care + "HighAlarm": 1400, + "Unit": "W" + } + } + } + } + """ + + psus = self.get_psus() + psu_dict = collections.OrderedDict() + psu_dict['Number'] = len(psus) + for psu in psus: + dicttmp = self.get_psu_fru_info(psu.name) + dicttmp.update(self.get_psu_status(psu.name)) + dicttmp.update(self.get_psu_power_status(psu.name)) + if self.get_psu_presence(psu.name) is True: + dicttmp['Present'] = 'yes' + else: + dicttmp['Present'] = 'no' + psu_dict[psu.name] = dicttmp + return psu_dict + + def get_fans(self): + fanlist = self.chas.fan_list + return fanlist + + # fan + def get_fan_total_number(self): + fanlist = self.chas.fan_list + if fanlist is None: + return -1 + return len(fanlist) + + def get_fan_rotor_number(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + ret = fan.rotors + if ret is None: + return -1 + return ret + + def get_fan_speed(self, fan_name, rotor_index): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + ret = fan.get_speed(rotor_index) + if ret is None: + return -1 + return ret + + def fan_speed_set_level(self, fan_name, rotor_index, level): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + ret = fan.set_speed(rotor_index, level) + if ret is True: + return 0 + return -1 + + def get_fan_speed_pwm(self, fan_name, rotor_index): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + val = fan.get_speed_pwm(rotor_index) + if val is False: + return -1 + return val + + def set_fan_speed_pwm(self, fan_name, rotor_index, pwm): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + if isinstance(pwm, str): + rate = float(pwm.strip('%s')) + speed = round(rate * 255 / 100) + elif isinstance(pwm, int): + speed = round(pwm * 255 / 100) + elif isinstance(pwm, float): + speed = round(pwm * 255 / 100) + else: + return -1 + ret = self.fan_speed_set_level(fan.name, rotor_index, speed) + if ret == 0: + return 0 + return -1 + + def get_fan_watchdog_status(self): + fan = self.chas.fan_list[0] + dic = fan.get_watchdog_status() + if dic is None or dic["support"] is False: + return self.na_ret + if dic["open"] is False or dic["work_allow_set"] is True: + return "Normal" + if dic["work_full"] is True: + return "Abnormal" + return "Abnormal" + + def enable_fan_watchdog(self, enable=True): + fan = self.chas.fan_list[0] + ret = fan.enable_watchdog(enable) + if ret is True: + return 0 + return -1 + + def feed_fan_watchdog(self): + fan_list = self.chas.fan_list + if fan_list is None: + return -1 + for fan in fan_list: + ret = fan.feed_watchdog() + if ret is False: + return -1 + return 0 + + def set_fan_led(self, fan_name, color): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + ret = fan.set_led(color) + if ret is True: + return 0 + return -1 + + def get_fan_led(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return False, 'N/A' + return fan.get_led() + + def get_fan_presence(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + return fan.get_presence() + + def get_fan_fru_info(self, fan_name): + """ + Get specific fan's information + # Properties + "Name": "FAN1", + "SN": "serial_number_example", # 'N/A' + "PN": "part_number_exampple", # 'N/A' + "Rotors": 2, # -1 + "AirFlow": "intake", # 'N/A' + "SpeedMin": 2000, # -1 + "SpeedMax": 30000 # -1 + """ + fan = self.chas.get_fan_byname(fan_name) + fan.decode_eeprom_info() + fan.get_AirFlow() + fan.get_fan_display_name() + + dic = collections.OrderedDict() + dic["Name"] = fan.name + dic["SN"] = fan.productSerialNumber + if dic["SN"] is None: + dic["SN"] = self.na_ret + dic["PN"] = fan.productName + if dic["PN"] is None: + dic["PN"] = self.na_ret + dic["DisplayName"] = fan.fan_display_name + if dic["DisplayName"] is None: + dic["DisplayName"] = self.na_ret + + dic["Rotors"] = fan.rotors + dic["AirFlow"] = fan.AirFlow + if dic["AirFlow"] is None: + dic["AirFlow"] = self.na_ret + dic["SpeedMin"] = fan.SpeedMin + dic["SpeedMax"] = fan.SpeedMax + return dic + + def get_fan_eeprom_info(self, fan_name): + """ + Get specific fan's information + # Properties + "Name": "M6510-FAN-F", # 'N/A' + "SN": "serial_number_example", # 'N/A' + "HW": "hw_version_exampple", # 'N/A' + """ + fan = self.chas.get_fan_byname(fan_name) + fan.decode_eeprom_info() + fan.get_fan_display_name() + dic = collections.OrderedDict() + dic["NAME"] = fan.productName + if dic["NAME"] is None: + dic["NAME"] = self.na_ret + dic["SN"] = fan.productSerialNumber + if dic["SN"] is None: + dic["SN"] = self.na_ret + dic["HW"] = fan.hw_version + if dic["HW"] is None: + dic["HW"] = self.na_ret + dic["DisplayName"] = fan.fan_display_name + if dic["DisplayName"] is None: + dic["DisplayName"] = self.na_ret + return dic + + def get_product_fullname(self): + return baseutil.get_product_fullname() + + def get_fan_status(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + rotorlist = fan.rotor_list + dic = collections.OrderedDict() + for rotor in rotorlist: + dic_val = collections.OrderedDict() + if rotor.rotor_Running is True: + dic_val['Running'] = 'yes' + else: + dic_val['Running'] = 'no' + if rotor.rotor_HwAlarm is True: + dic_val['HwAlarm'] = 'yes' + else: + dic_val['HwAlarm'] = 'no' + dic_val['Speed'] = int(rotor.rotor_Speed.Value) + dic[rotor.name] = dic_val + return dic + + def get_fan_rotor_status(self, fan_name, rotor_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + rotorlist = fan.rotor_list + for rotor in rotorlist: + if rotor_name == rotor.name: + if rotor.rotor_Running is True: + return True + return False + return -1 + + def get_fan_roll_status(self, fan_name, rotor_index): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + rotor = fan.get_rotor_index(rotor_index) + if rotor is None: + return -1 + if rotor.rotor_Running is True: + return True + return False + + def get_fan_info_fru(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + fan.get_fru_info() + fan.get_AirFlow() + dic = collections.OrderedDict() + dic["Name"] = fan.name + dic["SN"] = fan.productSerialNumber + if dic["SN"] is None: + dic["SN"] = self.na_ret + dic["PN"] = fan.productPartModelName + if dic["PN"] is None: + dic["PN"] = self.na_ret + flag = self.get_fan_presence(fan_name) + if flag is True: + dic["Present"] = "yes" + elif flag is False: + dic["Present"] = "no" + else: + dic["Present"] = self.na_ret + dic["Rotors"] = fan.rotors + dic["AirFlow"] = fan.AirFlow + if dic["AirFlow"] is None: + dic["AirFlow"] = self.na_ret + return dic + + # support TLV and FRU FAN E2 + def get_fan_info(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return None + fan.get_AirFlow() + dic = self.get_fan_eeprom_info(fan_name) + flag = self.get_fan_presence(fan_name) + if flag is True: + dic["Present"] = "yes" + elif flag is False: + dic["Present"] = "no" + else: + dic["Present"] = self.na_ret + dic["Rotors"] = fan.rotors + dic["AirFlow"] = fan.AirFlow + if dic["AirFlow"] is None: + dic["AirFlow"] = self.na_ret + dic["PowerMax"] = fan.PowerMax + if dic["PowerMax"] is None: + dic["PowerMax"] = self.na_ret + return dic + + def get_fan_info_rotor(self, fan_name): + fan = self.chas.get_fan_byname(fan_name) + if fan is None: + return -1 + rotorlist = fan.rotor_list + dic = collections.OrderedDict() + for rotor in rotorlist: + dic_val = collections.OrderedDict() + if rotor.rotor_Running is True: + dic_val['Running'] = 'yes' + else: + dic_val['Running'] = 'no' + if rotor.rotor_HwAlarm is True: + dic_val['HwAlarm'] = 'yes' + else: + dic_val['HwAlarm'] = 'no' + speed_value = rotor.rotor_Speed.Value + if speed_value is None: + dic_val['Speed'] = self.error_ret + else: + dic_val['Speed'] = int(speed_value) + if rotor.SpeedMin is None: + dic_val['SpeedMin'] = self.error_ret + else: + dic_val['SpeedMin'] = rotor.SpeedMin + if rotor.SpeedMax is None: + dic_val['SpeedMax'] = self.error_ret + else: + dic_val['SpeedMax'] = rotor.SpeedMax + if rotor.Tolerance is None: + dic_val['Tolerance'] = self.error_ret + else: + dic_val['Tolerance'] = rotor.Tolerance + + dic[rotor.name] = dic_val + return dic + + def get_fan_info_all(self): + fanlist = self.chas.fan_list + dic = collections.OrderedDict() + dic['Number'] = len(fanlist) + dic['WatchdogStatus'] = self.get_fan_watchdog_status() + for fan in fanlist: + dic[fan.name] = self.get_fan_info(fan.name) + dic[fan.name].update(self.get_fan_info_rotor(fan.name)) + return dic + + def temp_test(self): + templist = self.chas.temp_list + dicret = collections.OrderedDict() + + for temp in templist: + dic = collections.OrderedDict() + temp_value = temp.Value + dic["Value"] = temp_value if (temp_value is not None) else self.error_ret + dic["LowAlarm"] = temp.Min + dic["HighAlarm"] = temp.Max + dicret[temp.name] = dic + return dicret + + # dcdc + def get_dcdc_total_number(self): + dcdclist = self.chas.dcdc_list + if dcdclist is None: + return -1 + return len(dcdclist) + + def get_dcdc_by_id(self, dcdc_id): + dcdclist = self.chas.dcdc_list + dcdctmp = None + for dcdc in dcdclist: + if dcdc.dcdc_id == dcdc_id: + dcdctmp = dcdc + dic = collections.OrderedDict() + if dcdctmp is None: + dic["Name"] = self.error_ret + dic["Min"] = self.error_ret + dic["Max"] = self.error_ret + dic["Low"] = self.error_ret + dic["High"] = self.error_ret + dic["Value"] = self.error_ret + dic["Unit"] = self.error_ret + else: + dic["Name"] = dcdctmp.name + dic["Min"] = dcdctmp.sensor.Min + dic["Max"] = dcdctmp.sensor.Max + dic["Low"] = dcdctmp.sensor.Low + dic["High"] = dcdctmp.sensor.High + tmp = dcdctmp.sensor.Value + if tmp is not None: + dic['Value'] = tmp + else: + dic['Value'] = self.error_ret + dic["Unit"] = dcdctmp.sensor.Unit + return dic + + def get_dcdc_all_info(self): + val_list = collections.OrderedDict() + dcdclist = self.chas.dcdc_list + for dcdc in dcdclist: + dicttmp = {} + sensorname = "%s" % (dcdc.name) + dicttmp['Min'] = dcdc.sensor.Min + dicttmp['Max'] = dcdc.sensor.Max + tmp = dcdc.sensor.Value + if tmp is not None: + dicttmp['Value'] = tmp + else: + dicttmp['Value'] = self.error_ret + dicttmp['Unit'] = dcdc.sensor.Unit + val_list[sensorname] = dicttmp + return val_list + + # sensors + def get_monitor_temp(self, name): + templist = self.chas.temp_list + temptmp = None + for temp in templist: + if temp.name == name: + temptmp = temp + + dic = collections.OrderedDict() + if temptmp is None: + dic["Min"] = self.error_ret + dic["Max"] = self.error_ret + dic["Value"] = self.error_ret + dic["Unit"] = self.error_ret + else: + dic["Min"] = temptmp.Min + dic["Max"] = temptmp.Max + temp_value = temptmp.Value + dic["Value"] = temp_value if (temp_value is not None) else self.error_ret + dic["Unit"] = temptmp.Unit + return dic + + def get_monitor_temp_by_id(self, temp_id): + templist = self.chas.temp_list + temptmp = None + for temp in templist: + if temp.temp_id == temp_id: + temptmp = temp + + dic = collections.OrderedDict() + if temptmp is None: + dic["Name"] = self.error_ret + dic["Api_name"] = self.error_ret + dic["Min"] = self.error_ret + dic["Max"] = self.error_ret + dic["Low"] = self.error_ret + dic["High"] = self.error_ret + dic["Value"] = self.error_ret + dic["Unit"] = self.error_ret + else: + dic["Name"] = temptmp.name + dic["Api_name"] = temptmp.api_name + dic["Min"] = temptmp.Min + dic["Max"] = temptmp.Max + dic["Low"] = temptmp.Low + dic["High"] = temptmp.High + temp_value = temptmp.Value + dic["Value"] = temp_value if (temp_value is not None) else self.error_ret + dic["Unit"] = temptmp.Unit + return dic + + def get_temp_info(self): + val_list = collections.OrderedDict() + # temp + templist = self.chas.temp_list + for temp in templist: + dic = collections.OrderedDict() + dic["Min"] = temp.Min + dic["Max"] = temp.Max + dic["Low"] = temp.Low + dic["High"] = temp.High + temp_value = temp.Value + dic["Value"] = temp_value if (temp_value is not None) else self.error_ret + dic["Unit"] = temp.Unit + val_list[temp.name] = dic + return val_list + + def get_sensor_info(self): + val_list = collections.OrderedDict() + # temp + templist = self.chas.temp_list + for temp in templist: + dic = collections.OrderedDict() + dic["Min"] = temp.Min + dic["Max"] = temp.Max + dic["Low"] = temp.Low + dic["High"] = temp.High + temp_value = temp.Value + dic["Value"] = temp_value if (temp_value is not None) else self.error_ret + dic["Unit"] = temp.Unit + val_list[temp.name] = dic + # fan + fanlist = self.chas.fan_list + for fan in fanlist: + for rotor in fan.rotor_list: + sensorname = "%s%s" % (fan.name, rotor.name) + speed = collections.OrderedDict() + speed['Min'] = rotor.rotor_Speed.Min + speed['Max'] = rotor.rotor_Speed.Max + rotor_speed_Value = rotor.rotor_Speed.Value + speed['Value'] = rotor_speed_Value if (rotor_speed_Value is not None) else self.error_ret + speed['Unit'] = rotor.rotor_Speed.Unit + val_list[sensorname] = speed + + val_list.update(self.get_dcdc_all_info()) + + # psu + psulist = self.chas.psu_list + for psu in psulist: + inputdic_voltage = collections.OrderedDict() + inputdic_current = collections.OrderedDict() + inputdic_power = collections.OrderedDict() + outputdic_voltage = collections.OrderedDict() + outputdic_current = collections.OrderedDict() + outputdic_power = collections.OrderedDict() + temperature = collections.OrderedDict() + fanspeed = collections.OrderedDict() + + psu_temp_value = psu.Temperature.Value + temperature["Value"] = psu_temp_value if (psu_temp_value is not None) else self.error_ret + temperature["Min"] = psu.Temperature.Min + temperature["Max"] = psu.Temperature.Max + temperature["Unit"] = psu.Temperature.Unit + + fanspeed["Value"] = psu.FanSpeed.Value + fanspeed["Min"] = psu.FanSpeed.Min + fanspeed["Max"] = psu.FanSpeed.Max + fanspeed["Unit"] = psu.FanSpeed.Unit + + psu_inputvoltage_value = psu.InputsVoltage.Value + inputdic_voltage["Value"] = psu_inputvoltage_value if ( + psu_inputvoltage_value is not None) else self.error_ret + inputdic_voltage["Min"] = psu.InputsVoltage.Min + inputdic_voltage["Max"] = psu.InputsVoltage.Max + inputdic_voltage["Unit"] = psu.InputsVoltage.Unit + + psu_inputcurrent_value = psu.InputsCurrent.Value + inputdic_current["Value"] = psu_inputcurrent_value if ( + psu_inputcurrent_value is not None) else self.error_ret + inputdic_current["Min"] = psu.InputsCurrent.Min + inputdic_current["Max"] = psu.InputsCurrent.Max + inputdic_current["Unit"] = psu.InputsCurrent.Unit + + psu_inputpower_value = psu.InputsPower.Value + inputdic_power["Value"] = psu_inputpower_value if (psu_inputpower_value is not None) else self.error_ret + inputdic_power["Min"] = psu.InputsPower.Min + inputdic_power["Max"] = psu.InputsPower.Max + inputdic_power["Unit"] = psu.InputsPower.Unit + + psu_outputvoltage_value = psu.OutputsVoltage.Value + outputdic_voltage["Value"] = psu_outputvoltage_value if ( + psu_outputvoltage_value is not None) else self.error_ret + outputdic_voltage["Min"] = psu.OutputsVoltage.Min + outputdic_voltage["Max"] = psu.OutputsVoltage.Max + outputdic_voltage["Unit"] = psu.OutputsVoltage.Unit + + psu_outputcurrent_value = psu.OutputsCurrent.Value + outputdic_current["Value"] = psu_outputcurrent_value if ( + psu_outputcurrent_value is not None) else self.error_ret + outputdic_current["Min"] = psu.OutputsCurrent.Min + outputdic_current["Max"] = psu.OutputsCurrent.Max + outputdic_current["Unit"] = psu.OutputsCurrent.Unit + + psu_outputpower_value = psu.OutputsPower.Value + outputdic_power["Value"] = psu_outputpower_value if ( + psu_outputpower_value is not None) else self.error_ret + outputdic_power["Min"] = psu.OutputsPower.Min + outputdic_power["Max"] = psu.OutputsPower.Max + outputdic_power["Unit"] = psu.OutputsPower.Unit + + val_list["%s%s" % (psu.name, "Vol_I")] = inputdic_voltage + val_list["%s%s" % (psu.name, "Curr_I")] = inputdic_current + val_list["%s%s" % (psu.name, "Power_I")] = inputdic_power + val_list["%s%s" % (psu.name, "Vol_O")] = outputdic_voltage + val_list["%s%s" % (psu.name, "Curr_O")] = outputdic_current + val_list["%s%s" % (psu.name, "Power_O")] = outputdic_power + val_list["%s%s" % (psu.name, "Fan")] = fanspeed + val_list["%s%s" % (psu.name, "Temp")] = temperature + + return val_list + + # cpld + def get_cpld_total_number(self): + cpldlist = self.chas.cpld_list + return len(cpldlist) + + def get_cpld_user_reg(self): + cpld = self.chas.get_cpld_byname("BASE_CPLD") + if cpld is None: + return None + return cpld.get_user_reg() + + def set_cpld_user_reg(self, value): + if isinstance(value, int) is False: + baseutil.logger_debug("value must int %s" % type(value)) + return -1 + if (int(value) < 0 or int(value) > 255): + baseutil.logger_debug("value must [0 - 255]") + return -1 + cpld = self.chas.get_cpld_byname("BASE_CPLD") + if cpld is None: + baseutil.logger_debug("name BASE_CPLD not find") + return -1 + if cpld.set_user_reg(value) is True: + return 0 + return -1 + + def set_cpld_console_owner(self, owner): + """ + Set console I/O owner + + @param owner I/O owner of the console, either "cpu" or "bmc" + + @return 0 for success, -1 for failure + """ + if owner is None: + baseutil.logger_debug("owner is None") + return -1 + owner_tuple = ("cpu", "bmc") + if owner not in owner_tuple: + baseutil.logger_debug("owner is %s, must cpu or bmc" % owner) + return -1 + cpld = self.chas.get_cpld_byname("BASE_CPLD") + if cpld is None: + baseutil.logger_debug("name BASE_CPLD not find") + return -1 + if cpld.set_console_owner(owner) is True: + return 0 + return -1 + + def get_cpld_version_by_id(self, cpld_id): + cpldlist = self.chas.cpld_list + cpldtmp = None + for cpld in cpldlist: + if cpld.cpld_id == cpld_id: + cpldtmp = cpld + + dic = collections.OrderedDict() + if cpldtmp is None: + dic["Name"] = self.na_ret + dic["Version"] = self.na_ret + dic["Desc"] = self.na_ret + dic["Slot"] = None + dic["Warm"] = None + else: + dic["Name"] = cpldtmp.name + dic["Version"] = cpldtmp.get_version() + dic["Desc"] = cpldtmp.desc + dic["Slot"] = cpldtmp.slot + dic["Warm"] = cpldtmp.warm + return dic + + def get_cpld_all_version(self): + """ + Get version of all CPLDs' that can be read from BMC + + @return dict of CPLDs' version or None for failure. + example outputs: + { + "BASE_CPLD": "0.1", # or "N/A" for read failure + "FAN_CPLD": "0.2" + } + """ + cpld_version = { + "BASE_CPLD": "N/A", + "FAN_CPLD": "N/A" + } + for cpld_name in cpld_version: + cpld = self.chas.get_cpld_byname(cpld_name) + if cpld is None: + baseutil.logger_debug("name %s not find" % cpld_name) + continue + cpld_version[cpld_name] = cpld.get_version() + return cpld_version + + # comp + def get_comp_total_number(self): + complist = self.chas.comp_list + return len(complist) + + def get_comp_list(self): + return self.chas.comp_list + + def get_comp_id(self, comp): + return comp.comp_id + + def get_comp_version_by_id(self, comp_id): + comp_list = self.chas.comp_list + comptmp = None + for comp in comp_list: + if comp.comp_id == comp_id: + comptmp = comp + break + + dic = collections.OrderedDict() + if comptmp is None: + dic["Name"] = self.na_ret + dic["Version"] = self.na_ret + dic["Desc"] = self.na_ret + dic["Slot"] = None + else: + dic["Name"] = comptmp.name + dic["Version"] = comptmp.get_version() + dic["Desc"] = comptmp.desc + dic["Slot"] = comptmp.slot + return dic + + def get_bmc_productname(self): + """ + Get product name + + @return product name string, e.g. $(device name)-F-$(VENDOR_NAME), if error return "N/A" + """ + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + baseutil.logger_debug("name bmc(master) not find") + return self.na_ret + return bmc.get_productname() + + def call_bmc_diagcmd(self, cmdstr): + """ + Call BMC diag comman func + + @return ret: 0 sucess , -1 fail + outmsg: if success is out msg, or fail is err msg + """ + if (cmdstr is None or cmdstr == ""): + outmsg = "cmdstr is empty" + baseutil.logger_debug(outmsg) + return -1, outmsg + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + outmsg = "name bmc(master) not find" + baseutil.logger_debug(outmsg) + return -1, outmsg + baseutil.logger_debug("call cmdstr %s" % cmdstr) + return bmc.call_diagcmd(cmdstr) + + def write_bios_version(self, flash, version): + bios = self.chas.get_bios_byname("master") + if bios is None: + baseutil.logger_debug("name bios(master) not find") + return -1 + return bios.set_bios_version(flash, version) + + def get_bios_version(self): + bios = self.chas.get_bios_byname("master") + if bios is None: + baseutil.logger_debug("name bios(master) not find") + return -1 + return bios.get_bios_version() + + def get_bios_status(self): + bios = self.chas.get_bios_byname("master") + if bios is None: + baseutil.logger_debug("name bios(master) not find") + return -1 + return bios.get_bios_boot_status() + + def get_bmc_mac_rov(self): + """ + Get BMC mac rov + + @return ret: 0 sucess , -1 fail + outmsg: if success is out msg, or fail is err msg + """ + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + msg = "name master not find" + baseutil.logger_debug(msg) + return -1, msg + return bmc.get_mac_rov() + + def get_bmc_next_boot(self): + """ + Get next booting flash of BMC + + @return 'master'/'slave' on success, "N/A" for failure + """ + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + baseutil.logger_debug("name master not find") + return self.na_ret + return bmc.get_next_boot() + + def set_bmc_next_boot(self, flash): + """ + Set flash from which next BMC boot + + @param flash Booting flash of BMC, "master" or "slave" + + @return 0 on success, -1 for failure + """ + flash_status = ("master", "slave") + if flash is None or flash not in flash_status: + baseutil.logger_debug("parameter flash illegal, should be [master|slave]") + return -1 + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + baseutil.logger_debug("name master not find") + return -1 + return bmc.set_next_boot(flash) + + def reboot_bmc(self): + """ + Reboot running BMC + """ + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + baseutil.logger_debug("name master not find") + return -1 + return bmc.reboot() + + def get_bmc_info(self): + """ + Get BMC info + + @return dict of BMC info or None for failure + "Version": "1.1.1", # "N/A" + "Flash": "master", # "N/A" + "Next": "master" # "N/A" + """ + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + baseutil.logger_debug("name master not find") + return self.na_ret + return bmc.get_info() + + def get_bmc_version_all(self): + """ + @return dict of BMCs + { + "MasterVersion": "1.1.1", # "N/A" + "SlaveVersion": "1.1.1" # "N/A" + } + """ + bmc = self.chas.get_bmc_byname("master") + if bmc is None: + baseutil.logger_debug("name master not find") + return self.na_ret + return bmc.get_version_all() + + def bmc_execute_command(self, cmd_str): + ret, output = osutil.command(cmd_str) + if ret: + baseutil.logger_debug("execute %s command failed" % (cmd_str)) + return ret, output + + def get_cpu_reset_num(self): + """ + Get CPU reset num + @return CPU reset num on success, -1 for failure + """ + cpu = self.chas.get_cpu_byname("cpu") + if cpu is None: + msg = "name cpu not find" + baseutil.logger_debug(msg) + return -1 + return cpu.get_cpu_reset_num() + + def get_cpu_reboot_cause(self): + """ + Get CPU reboot cause + @return string of cpu reboot reason + """ + cpu = self.chas.get_cpu_byname("cpu") + if cpu is None: + msg = "name cpu not find" + baseutil.logger_debug(msg) + return "Unknown reboot cause" + return cpu.get_cpu_reboot_cause() + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/led.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/led.py new file mode 100644 index 000000000000..7fb869c74d7f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/led.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +####################################################### +# +# led.py +# Python implementation of the Class led +# +####################################################### +from plat_hal.devicebase import devicebase + + +class led(devicebase): + def __init__(self, conf=None): + if conf is not None: + self.name = conf.get('name', None) + self.led_type = conf.get('led_type', None) + self.led_attrs_config = conf.get('led_attrs', None) + self.led_config = conf.get('led', None) + + def set_color(self, color): + status = self.led_attrs_config.get(color, None) + if status is None: + return False + + mask = self.led_attrs_config.get('mask', 0xff) + + if isinstance(self.led_config, list): + for led_config_index in self.led_config: + ret, value = self.get_value(led_config_index) + if (ret is False) or (value is None): + return False + setval = (int(value) & ~mask) | (status) + ret, val = self.set_value(led_config_index, setval) + if ret is False: + return ret + else: + ret, value = self.get_value(self.led_config) + if (ret is False) or (value is None): + return False + setval = (int(value) & ~mask) | (status) + ret, val = self.set_value(self.led_config, setval) + return ret + + def get_color(self): + mask = self.led_attrs_config.get('mask', 0xff) + ret, value = self.get_value(self.led_config) + if ret is False or value is None: + return False, 'N/A' + ledval = int(value) & mask + for key, val in self.led_attrs_config.items(): + if (ledval == val) and (key != "mask"): + return True, key + return False, 'N/A' diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/onie_e2.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/onie_e2.py new file mode 100644 index 000000000000..9ac32cace263 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/onie_e2.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python3 +####################################################### +# +# onie_e2.py +# Python implementation of the Class onie_e2 +# +####################################################### +from plat_hal.devicebase import devicebase +from eepromutil.onietlv import onie_tlv + + +class onie_e2(devicebase): + + def __init__(self, conf=None): + self._cardid = "" + self._productname = "" + self._partnum = "" + self._serialnum = "" + self._macbase = "" + self._manufdate = "" + self._deviceversion = "" + self._labelrevision = "" + self._platformname = "" + self._onieversion = "" + self._macsize = "" + self._manufname = "" + self._manufcountry = "" + self._vendorname = "" + self._diagname = "" + self._servicetag = "" + + if conf is not None: + self.name = conf.get('name', None) + self.e2loc = conf.get('e2loc', None) + self.e2_path = self.e2loc.get('loc', None) + self.airflow = conf.get('airflow', "intake") + + @property + def cardid(self): + return self._cardid + + @property + def productname(self): + return self._productname + + @property + def partnum(self): + return self._partnum + + @property + def serialnum(self): + return self._serialnum + + @property + def macbase(self): + return self._macbase + + @property + def manufdate(self): + return self._manufdate + + @property + def deviceversion(self): + return self._deviceversion + + @property + def labelrevision(self): + return self._labelrevision + + @property + def platformname(self): + return self._platformname + + @property + def onieversion(self): + return self._onieversion + + @property + def macsize(self): + return self._macsize + + @property + def manufname(self): + return self._manufname + + @property + def manufcountry(self): + return self._manufcountry + + @property + def vendorname(self): + return self._vendorname + + @property + def diagname(self): + return self._diagname + + @property + def servicetag(self): + return self._servicetag + + def get_onie_e2_info(self): + try: + eeprom = self.get_eeprom_info(self.e2loc) + if eeprom is None: + raise Exception("%s: value is none" % self.name) + onietlv = onie_tlv() + onietlv.decode(eeprom) + self._cardid = onietlv.cardid + self._productname = onietlv.productname + self._partnum = onietlv.partnum + self._serialnum = onietlv.serialnum + self._macbase = onietlv.macbase + self._manufdate = onietlv.manufdate + self._deviceversion = onietlv.deviceversion + self._labelrevision = onietlv.labelrevision + self._platformname = onietlv.platformname + self._onieversion = onietlv.onieversion + self._macsize = onietlv.macsize + self._manufname = onietlv.manufname + self._manufcountry = onietlv.manufcountry + self._vendorname = onietlv.vendorname + self._diagname = onietlv.diagname + self._servicetag = onietlv.servicetag + except Exception: + return False + return True diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/osutil.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/osutil.py new file mode 100644 index 000000000000..684e26bb9ecd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/osutil.py @@ -0,0 +1,440 @@ +#!/usr/bin/env python3 +####################################################### +# +# osutil.py +# Python implementation of the Class osutil +# +####################################################### + +import os +import glob +import re +import time +import subprocess +import fcntl +import syslog +from functools import wraps +from wbutil.smbus import SMBus + + +PLATFORM_HAL_DEBUG_FILE = "/etc/.platform_hal_debug_flag" + + +def platform_hal_debug(s): + if os.path.exists(PLATFORM_HAL_DEBUG_FILE): + syslog.openlog("PLATFORM_HAL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def retry(maxretry=6, delay=0.01): + ''' + maxretry: max retry times + delay : interval after last retry + ''' + def decorator(f): + @wraps(f) + def wrapper(*args, **kwargs): + time_retry = maxretry + time_delay = delay + result_msg = "" + while time_retry: + try: + val, result_msg = f(*args, **kwargs) + if val is True: + return val, result_msg + time_retry -= 1 + time.sleep(time_delay) + except Exception as e: + time_retry -= 1 + result_msg = str(e) + time.sleep(time_delay) + return False, "max time retry last errmsg is {}".format(result_msg) + return wrapper + return decorator + + +pidfile = None + + +def file_rw_lock(file_path): + global pidfile + pidfile = open(file_path, "r") + try: + fcntl.flock(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB) + platform_hal_debug("file_rw_lock success") + return True + except Exception: + if pidfile is not None: + pidfile.close() + pidfile = None + return False + + +def file_rw_unlock(): + try: + global pidfile + + if pidfile is not None: + fcntl.flock(pidfile, fcntl.LOCK_UN) + pidfile.close() + pidfile = None + platform_hal_debug("file_rw_unlock success") + else: + platform_hal_debug("pidfile is invalid, do nothing") + return True + except Exception as e: + platform_hal_debug("file_rw_unlock err, msg: %s" % (str(e))) + return False + + +def take_file_rw_lock(file_path): + loop = 1000 + ret = False + for i in range(0, loop): + ret = file_rw_lock(file_path) + if ret is True: + break + time.sleep(0.001) + return ret + + +class osutil(object): + """ + osutil + """ + + @staticmethod + @retry(maxretry=6) + def wbi2cget_python(bus, addr, reg): + with SMBus(bus) as y: + val, ind = y.read_byte_data(addr, reg, True) + return val, ind + + @staticmethod + @retry(maxretry=6) + def wbi2cset_python(bus, addr, reg, value): + with SMBus(bus) as y: + val, ind = y.write_byte_data(addr, reg, value, True) + return val, ind + + @staticmethod + @retry(maxretry=6) + def wbi2cgetword_python(bus, addr, reg): + with SMBus(bus) as y: + val, ind = y.read_word_data(addr, reg, True) + return val, ind + + @staticmethod + @retry(maxretry=6) + def wbi2csetword_python(bus, addr, reg, value): + with SMBus(bus) as y: + val, ind = y.write_word_data(addr, reg, value, True) + return val, ind + + @staticmethod + @retry(maxretry=6) + def wbi2csetwordpec_python(bus, addr, reg, value): + with SMBus(bus) as y: + val, ind = y.write_word_data_pec(addr, reg, value, True) + return val, ind + + @staticmethod + @retry(maxretry=6) + def wbi2cset_byte_pec_python(bus, addr, reg, value): + with SMBus(bus) as y: + val, ind = y.write_byte_data_pec(addr, reg, value, True) + return val, ind + + @staticmethod + def command(cmdstr): + retcode, output = subprocess.getstatusoutput(cmdstr) + return retcode, output + + @staticmethod + def geti2cword_i2ctool(bus, addr, offset): + command_line = "i2cget -f -y %d 0x%02x 0x%02x wp" % (bus, addr, offset) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = osutil.command(command_line) + if ret == 0: + return True, int(ret_t, 16) + time.sleep(0.1) + return False, ret_t + + @staticmethod + def seti2cword_i2ctool(bus, addr, offset, val): + command_line = "i2cset -f -y %d 0x%02x 0x%0x 0x%04x wp" % (bus, addr, offset, val) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = osutil.command(command_line) + if ret == 0: + return True, ret_t + time.sleep(0.1) + return False, ret_t + + @staticmethod + def wbi2cget_i2ctool(bus, devno, address): + command_line = "i2cget -f -y %d 0x%02x 0x%02x " % (bus, devno, address) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = osutil.command(command_line) + if ret == 0: + return True, int(ret_t, 16) + time.sleep(0.1) + return False, ret_t + + @staticmethod + def wbi2cset_i2ctool(bus, devno, address, byte): + command_line = "i2cset -f -y %d 0x%02x 0x%02x 0x%02x" % ( + bus, devno, address, byte) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = osutil.command(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + @staticmethod + def geti2cword(bus, addr, offset): + return osutil.wbi2cgetword_python(bus, addr, offset) + + @staticmethod + def seti2cword(bus, addr, offset, val): + return osutil.wbi2csetword_python(bus, addr, offset, val) + + @staticmethod + def seti2cwordpec(bus, addr, offset, val): + return osutil.wbi2csetwordpec_python(bus, addr, offset, val) + + @staticmethod + def seti2c_byte_pec(bus, addr, offset, val): + return osutil.wbi2cset_byte_pec_python(bus, addr, offset, val) + + @staticmethod + def wbi2cget(bus, devno, address): + return osutil.wbi2cget_python(bus, devno, address) + + @staticmethod + def wbi2cset(bus, devno, address, byte): + return osutil.wbi2cset_python(bus, devno, address, byte) + + @staticmethod + def byteTostr(val): + strtmp = '' + for value in val: + strtmp += chr(value) + return strtmp + + @staticmethod + def io_rd(reg_addr, read_len=1): + try: + regaddr = 0 + if isinstance(reg_addr, int): + regaddr = reg_addr + else: + regaddr = int(reg_addr, 16) + devfile = "/dev/port" + fd = os.open(devfile, os.O_RDWR | os.O_CREAT) + os.lseek(fd, regaddr, os.SEEK_SET) + val = os.read(fd, read_len) + return True, "".join(["%02x" % item for item in val]) + except ValueError as e: + return False, str(e) + except Exception as e: + return False, str(e) + finally: + os.close(fd) + + @staticmethod + def readsysfs(location, flock_path=None): + flock_path_tmp = None + platform_hal_debug("readsysfs, location:%s, flock_path:%s" % (location, flock_path)) + try: + if flock_path is not None: + flock_paths = glob.glob(flock_path) + if len(flock_paths) != 0: + flock_path_tmp = flock_paths[0] + platform_hal_debug("try to get file lock, path:%s" % flock_path_tmp) + ret = take_file_rw_lock(flock_path_tmp) + if ret is False: + platform_hal_debug("take file lock timeout, path:%s" % flock_path_tmp) + return False, ("take file rw lock timeout, path:%s" % flock_path_tmp) + else: + platform_hal_debug("config error, can't find flock_path:%s" % flock_path) + + locations = glob.glob(location) + with open(locations[0], 'rb') as fd1: + retval = fd1.read() + retval = osutil.byteTostr(retval) + if flock_path_tmp is not None: + file_rw_unlock() + + retval = retval.rstrip('\r\n') + retval = retval.lstrip(" ") + except Exception as e: + if flock_path_tmp is not None: + file_rw_unlock() + platform_hal_debug("readsysfs error, msg:%s" % str(e)) + return False, (str(e) + " location[%s]" % location) + return True, retval + + @staticmethod + def writesysfs(location, value): + try: + if not os.path.isfile(location): + print(location, 'not found !') + return False, ("location[%s] not found !" % location) + with open(location, 'w') as fd1: + fd1.write(value) + except Exception as e: + return False, (str(e) + " location[%s]" % location) + return True, ("set location[%s] %s success !" % (location, value)) + + @staticmethod + def getdevmem(addr, digit, mask): + command_line = "devmem 0x%02x %d" % (addr, digit) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = osutil.command(command_line) + if ret == 0: + if mask is not None: + ret_t = str(int(ret_t, 16) & mask) + return True, ret_t + return False, ret_t + + @staticmethod + def readdevfile_ascii(path, offset, length): + msg = "" + ret = "" + joinstr = '' + fd = -1 + + if not os.path.exists(path): + msg = path + " not found !" + return False, msg + + try: + fd = os.open(path, os.O_RDONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.read(fd, length) + for item in ret: + joinstr += '%02x ' % item # like sysfs, display in hex + except Exception as e: + msg = str(e) + return False, msg + finally: + if fd > 0: + os.close(fd) + return True, joinstr + + @staticmethod + def readdevfile(path, offset, length): + msg = "" + ret = "" + fd = -1 + val_list = [] + + if not os.path.exists(path): + msg = path + " not found !" + return False, msg + + try: + fd = os.open(path, os.O_RDONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.read(fd, length) + for item in ret: + val_list.append(item) + except Exception as e: + msg = str(e) + return False, msg + finally: + if fd > 0: + os.close(fd) + return True, val_list + + @staticmethod + def writedevfile(path, offset, buf): + msg = "" + fd = -1 + + if not os.path.exists(path): + msg = path + " not found !" + return False, msg + + if isinstance(buf, list): + if len(buf) == 0: + msg = "buf:%s is NONE !" % buf + return False, msg + elif isinstance(buf, int): + buf = [buf] + else: + msg = "buf:%s is not list type or not int type !" % buf + return False, msg + + try: + fd = os.open(path, os.O_WRONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.write(fd, bytes(buf)) + except Exception as e: + msg = str(e) + return False, msg + finally: + if fd > 0: + os.close(fd) + + return True, ret + + @staticmethod + def wb_os_system(cmd): + status, output = subprocess.getstatusoutput(cmd) + return status, output + + @staticmethod + def getsdkreg(reg): + try: + cmd = "bcmcmd -t 1 'getr %s ' < /dev/null" % reg + ret, result = osutil.wb_os_system(cmd) + result_t = result.strip().replace("\r", "").replace("\n", "") + if ret != 0 or "Error:" in result_t: + return False, result + patt = r"%s.(.*):(.*)>drivshell" % reg + rt = re.findall(patt, result_t, re.S) + test = re.findall("=(.*)", rt[0][0])[0] + except Exception as e: + return False, 'get sdk register error, msg: %s' % str(e) + return True, test + + @staticmethod + def getmactemp(): + try: + result = {} + # need to exec twice + osutil.wb_os_system("bcmcmd -t 1 \"show temp\" < /dev/null") + ret, log = osutil.wb_os_system("bcmcmd -t 1 \"show temp\" < /dev/null") + if ret: + return False, result + logs = log.splitlines() + for line in logs: + if "average" in line: + b = re.findall(r'\d+.\d+', line) + result["average"] = b[0] + elif "maximum" in line: + b = re.findall(r'\d+.\d+', line) + result["maximum"] = b[0] + except Exception as e: + return False, str(e) + return True, result + + @staticmethod + def std_match(stdout, pattern): + if pattern is None: + return stdout.strip() + for line in stdout.splitlines(): + if re.match(pattern, line): + return line.strip() + return None diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py new file mode 100644 index 000000000000..e7db0cdcca8b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py @@ -0,0 +1,607 @@ +#!/usr/bin/env python3 +####################################################### +# +# psu.py +# Python implementation of the Class psu +# +####################################################### +from eepromutil.fru import ipmifru +from plat_hal.devicebase import devicebase +from plat_hal.sensor import sensor + + +class psu(devicebase): + __pmbus = None + __e2loc = None + __productManufacturer = None # : ARTESYN + __productName = None # : CRPS550W + __productPartModelName = None # : CSU550AP-3-300 + __productVersion = None # : AB + __productSerialNumber = None # : M623UZ00JYABL + __AirFlow = None # 'N/A' + __AirFlowconifg = None + __psu_display_name = None # 'N/A' + __psu_display_name_conifg = None + __psu_not_present_pwm = None + __InputStatus_config = None + __OutputStatus_config = None + __FanSpeed_config = None + __Temperature_config = None + __InputStatus = None + __OutputStatus = None + __FanSpeed = None + __Temperature = None + __FanSpeedMin = None + __FanSpeedMax = None + __FanSpeedTolerance = None + __InputsVoltage_config = None + __InputsCurrent_config = None + __InputsPower_config = None + __OutputsVoltage_config = None + __OutputsCurrent_config = None + __OutputsPower_config = None + __InputsVoltage = {} + __InputsCurrent = None + __InputsPower = None + __OutputsVoltage = None + __OutputsCurrent = None + __OutputsPower = None + __InputsType_config = None + __InputsType = None + __psu_sn_config = None + __psu_hw_config = None + __psu_pn_config = None + __psu_vendor_config = None + __TempStatus_config = None + __FanStatus_config = None + __TempStatus = None + __FanStatus = None + + def __init__(self, conf=None): + self.pmbus = conf.get("pmbusloc", None) + self.e2loc = conf.get("e2loc", None) + self.__presentconfig = conf.get("present", None) + self.name = conf.get("name", None) + self.AirFlowconifg = conf.get("airflow", None) + self.psu_display_name_conifg = conf.get("psu_display_name", None) + self.psu_not_present_pwm = conf.get("psu_not_present_pwm", 100) + self.Temperature_config = conf.get("Temperature", None) + self.Temperature = sensor(self.Temperature_config) + + self.FanSpeedTolerance = conf.get('psu_fan_tolerance', 30) + self.FanSpeed_config = conf.get("FanSpeed", None) + self.FanSpeed = sensor(self.FanSpeed_config) + + self.__InputsVoltage_config = conf.get("InputsVoltage", None) + self.generate_psu_input_vol(self.__InputsVoltage_config) + self.__InputsCurrent_config = conf.get("InputsCurrent", None) + self.InputsCurrent = sensor(self.__InputsCurrent_config) + self.__InputsPower_config = conf.get("InputsPower", None) + self.InputsPower = sensor(self.__InputsPower_config) + self.__OutputsVoltage_config = conf.get("OutputsVoltage", None) + self.OutputsVoltage = sensor(self.__OutputsVoltage_config) + self.__OutputsCurrent_config = conf.get("OutputsCurrent", None) + self.OutputsCurrent = sensor(self.__OutputsCurrent_config) + self.__OutputsPower_config = conf.get("OutputsPower", None) + self.OutputsPower = sensor(self.__OutputsPower_config) + + self.__InputStatus_config = conf.get("InputsStatus", None) + self.__OutputStatus_config = conf.get("OutputsStatus", None) + self.__InputsType_config = conf.get('InputsType', None) + self.__psu_sn_config = conf.get('psu_sn', None) + self.__psu_hw_config = conf.get('psu_hw', None) + self.__psu_pn_config = conf.get('psu_pn', None) + self.__psu_vendor_config = conf.get('psu_vendor', None) + self.__TempStatus_config = conf.get("TempStatus", None) + self.__FanStatus_config = conf.get("FanStatus", None) + + def generate_psu_input_vol(self, config): + tmp = {} + for (key, item) in config.items(): + tmp.setdefault(key, sensor(item)) + self.__InputsVoltage = tmp + + def get_psu_sensor_by_name(self, psutype): + return self.__InputsVoltage.get(psutype) or self.__InputsVoltage.get('other') + + @property + def InputsVoltage(self): + psutype = self.InputsType + input_sensor = self.get_psu_sensor_by_name(psutype) + if input_sensor is None: + return None + return input_sensor + + @InputsVoltage.setter + def InputsVoltage(self, val): + self.__InputsVoltage = val + + @property + def InputsCurrent(self): + return self.__InputsCurrent + + @InputsCurrent.setter + def InputsCurrent(self, val): + self.__InputsCurrent = val + + @property + def InputsPower(self): + return self.__InputsPower + + @InputsPower.setter + def InputsPower(self, val): + self.__InputsPower = val + + @property + def OutputsVoltage(self): + return self.__OutputsVoltage + + @OutputsVoltage.setter + def OutputsVoltage(self, val): + self.__OutputsVoltage = val + + @property + def OutputsCurrent(self): + return self.__OutputsCurrent + + @OutputsCurrent.setter + def OutputsCurrent(self, val): + self.__OutputsCurrent = val + + @property + def OutputsPower(self): + return self.__OutputsPower + + @OutputsPower.setter + def OutputsPower(self, val): + self.__OutputsPower = val + + @property + def InputStatus(self): + if self.present is False: + self.__InputStatus = False + else: + ret, val = self.get_value(self.__InputStatus_config) + mask = self.__InputStatus_config.get("mask") + if ret is True: + ttt = val & mask + if ttt == 0: + self.__InputStatus = True + else: + self.__InputStatus = False + else: + self.__InputStatus = False + return self.__InputStatus + + @InputStatus.setter + def InputStatus(self, val): + self.__InputStatus = val + + @property + def TempStatus(self): + if self.__TempStatus_config is None: + return None + if self.present is False: + self.__TempStatus = False + else: + ret, val = self.get_value(self.__TempStatus_config) + mask = self.__TempStatus_config.get("mask") + if ret is True: + ttt = val & mask + if ttt == 0: + self.__TempStatus = True + else: + self.__TempStatus = False + else: + self.__TempStatus = False + return self.__TempStatus + + @TempStatus.setter + def TempStatus(self, val): + self.__TempStatus = val + + @property + def FanStatus(self): + if self.__FanStatus_config is None: + return None + if self.present is False: + self.__FanStatus = False + else: + ret, val = self.get_value(self.__FanStatus_config) + mask = self.__FanStatus_config.get("mask") + if ret is True: + ttt = val & mask + if ttt == 0: + self.__FanStatus = True + else: + self.__FanStatus = False + else: + self.__FanStatus = False + return self.__FanStatus + + @FanStatus.setter + def FanStatus(self, val): + self.__FanStatus = val + + @property + def InputsType(self): + psutypedecode = self.__InputsType_config.get('psutypedecode', None) + if self.present is False: + self.__InputsType = psutypedecode.get(0x00) + else: + ret, val = self.get_value(self.__InputsType_config) + self.__InputsType = self.__InputsType_config.get(val, None) + if self.__InputsType is not None: + return self.__InputsType + if ret is True and val in psutypedecode: + self.__InputsType = psutypedecode.get(val) + else: + self.__InputsType = psutypedecode.get(0x00) + return self.__InputsType + + @InputsType.setter + def InputsType(self, val): + self.__InputsType = val + + @property + def FanSpeedMin(self): + return self.__FanSpeedMin + + @FanSpeedMin.setter + def FanSpeedMin(self, val): + self.__FanSpeedMin = val + + @property + def FanSpeedMax(self): + return self.__FanSpeedMax + + @FanSpeedMax.setter + def FanSpeedMax(self, val): + self.__FanSpeedMax = val + + @property + def FanSpeedTolerance(self): + return self.__FanSpeedTolerance + + @FanSpeedTolerance.setter + def FanSpeedTolerance(self, val): + self.__FanSpeedTolerance = val + + @property + def OutputStatus(self): + if self.present is False: + self.__OutputStatus = False + else: + ret, val = self.get_value(self.__OutputStatus_config) + mask = self.__OutputStatus_config.get("mask") + if ret is True: + ttt = val & mask + if ttt == 0: + self.__OutputStatus = True + else: + self.__OutputStatus = False + else: + self.__OutputStatus = False + return self.__OutputStatus + + @OutputStatus.setter + def OutputStatus(self, val): + self.__OutputStatus = val + + @property + def FanSpeed(self): + return self.__FanSpeed + + @FanSpeed.setter + def FanSpeed(self, val): + self.__FanSpeed = val + + @property + def Temperature(self): + return self.__Temperature + + @Temperature.setter + def Temperature(self, val): + self.__Temperature = val + + @property + def Temperature_config(self): + return self.__Temperature_config + + @Temperature_config.setter + def Temperature_config(self, val): + self.__Temperature_config = val + + @property + def AirFlowconifg(self): + return self.__AirFlowconifg + + @AirFlowconifg.setter + def AirFlowconifg(self, val): + self.__AirFlowconifg = val + + @property + def psu_display_name_conifg(self): + return self.__psu_display_name_conifg + + @psu_display_name_conifg.setter + def psu_display_name_conifg(self, val): + self.__psu_display_name_conifg = val + + @property + def pmbus(self): + return self.__pmbus + + @pmbus.setter + def pmbus(self, val): + self.__pmbus = val + + @property + def e2loc(self): + return self.__e2loc + + @e2loc.setter + def e2loc(self, val): + self.__e2loc = val + + @property + def AirFlow(self): + return self.__AirFlow + + @AirFlow.setter + def AirFlow(self, val): + self.__AirFlow = val + + @property + def psu_display_name(self): + return self.__psu_display_name + + @psu_display_name.setter + def psu_display_name(self, val): + self.__psu_display_name = val + + @property + def psu_not_present_pwm(self): + return self.__psu_not_present_pwm + + @psu_not_present_pwm.setter + def psu_not_present_pwm(self, val): + self.__psu_not_present_pwm = val + + @property + def present(self): + ret, val = self.get_value(self.__presentconfig) + if ret is False or val is None: + return False + mask = self.__presentconfig.get("mask") + if isinstance(val, str): + value = int(val, 16) + else: + value = val + ttt = value & mask + okval = self.__presentconfig.get("okval", 0) + if ttt == okval: + return True + return False + + @property + def productManufacturer(self): + return self.__productManufacturer + + @productManufacturer.setter + def productManufacturer(self, val): + self.__productManufacturer = val + + @property + def productName(self): + return self.__productName + + @productName.setter + def productName(self, val): + self.__productName = val + + @property + def productPartModelName(self): + return self.__productPartModelName + + @productPartModelName.setter + def productPartModelName(self, val): + self.__productPartModelName = val + + @property + def productVersion(self): + return self.__productVersion + + @productVersion.setter + def productVersion(self, val): + self.__productVersion = val + + @property + def productSerialNumber(self): + return self.__productSerialNumber + + @productSerialNumber.setter + def productSerialNumber(self, val): + self.__productSerialNumber = val + + @property + def psu_sn_sysfs(self): + if self.__psu_sn_config is None: + return None + ret, val = self.get_value(self.__psu_sn_config) + if ret is False or val is None: + return None + return val + + @property + def psu_hw_sysfs(self): + if self.__psu_hw_config is None: + return None + ret, val = self.get_value(self.__psu_hw_config) + if ret is False or val is None: + return None + return val + + @property + def psu_pn_sysfs(self): + if self.__psu_pn_config is None: + return None + ret, val = self.get_value(self.__psu_pn_config) + if ret is False or val is None: + return None + return val + + @property + def psu_vendor_sysfs(self): + if self.__psu_vendor_config is None: + return None + ret, val = self.get_value(self.__psu_vendor_config) + if ret is False or val is None: + return None + return val + + def __str__(self): + formatstr = \ + "name : %s \n" \ + "productManufacturer : %s \n" \ + "productName : %s \n" \ + "productPartModelName: %s \n" \ + "productVersion : %s \n" \ + "productSerialNumber : %s \n" \ + "AirFlow : %s \n" \ + + tmpstr = formatstr % (self.name, self.productManufacturer, + self.productName, self.productPartModelName, + self.productVersion, self.productSerialNumber, self.AirFlow) + return tmpstr + + def get_fan_speed_pwm(self): + if self.present is False: + return self.psu_not_present_pwm + selfconfig = {} + selfconfig['bus'] = self.pmbus['bus'] + selfconfig['addr'] = self.pmbus['addr'] + selfconfig['way'] = 'i2cword' + selfconfig['offset'] = 0x3b + ret, val = self.get_value(selfconfig) + if ret is True: + return val + return None + + def set_fan_speed_pwm(self, pwm): + ''' + pmbus + if duty: + i2cset -f -y 0x3b 0x0064 wp + ''' + if self.present is False: + return None + if 0 <= pwm <= 100: + # enable duty first + selfconfig = {} + + selfconfig['bus'] = self.pmbus['bus'] + selfconfig['addr'] = self.pmbus['addr'] + selfconfig['way'] = 'i2cpec' + selfconfig['offset'] = 0x3a + self.set_value(selfconfig, 0x80) + + selfconfig['way'] = 'i2cwordpec' + selfconfig['offset'] = 0x3b + bytetmp = pwm + ret, val = self.set_value(selfconfig, int(bytetmp)) + if ret is True: + return True + return None + raise Exception("pwm not in range [0,100]") + + def get_fru_info_by_sysfs(self): + try: + psu_sn = self.psu_sn_sysfs + psu_hw = self.psu_hw_sysfs + psu_pn = self.psu_pn_sysfs + psu_vendor = self.psu_vendor_sysfs + if psu_sn is None or psu_hw is None or psu_pn is None or psu_vendor is None: + return False + self.productSerialNumber = psu_sn.strip().replace(chr(0), "") + self.productVersion = psu_hw.strip() + self.productPartModelName = psu_pn.strip() + self.productManufacturer = psu_vendor.strip().replace(chr(0), "") + except Exception: + self.productSerialNumber = None + self.productVersion = None + self.productPartModelName = None + self.productManufacturer = None + return False + return True + + def get_fru_info_by_decode(self): + try: + eeprom = self.get_eeprom_info(self.e2loc) + if eeprom is None: + raise Exception("%s:value is none" % self.name) + fru = ipmifru() + if isinstance(eeprom, bytes): + eeprom = self.byteTostr(eeprom) + fru.decodeBin(eeprom) + if fru.productInfoArea is not None: + self.productManufacturer = fru.productInfoArea.productManufacturer.strip() + self.productName = fru.productInfoArea.productName.strip() + self.productPartModelName = fru.productInfoArea.productPartModelName.strip() + self.productVersion = fru.productInfoArea.productVersion.strip() + self.productSerialNumber = fru.productInfoArea.productSerialNumber.strip().replace(chr(0), "") + except Exception: + self.productManufacturer = None + self.productName = None + self.productPartModelName = None + self.productVersion = None + self.productSerialNumber = None + return False + return True + + def get_fru_info(self): + try: + if self.present is not True: + raise Exception("%s: not present" % self.name) + if self.get_fru_info_by_sysfs() is True: + return True + return self.get_fru_info_by_decode() + except Exception: + self.productManufacturer = None + self.productName = None + self.productPartModelName = None + self.productVersion = None + self.productSerialNumber = None + return False + + def get_AirFlow(self): + if self.productPartModelName is None: + ret = self.get_fru_info() + if ret is False: + self.AirFlow = None + return False + if self.AirFlowconifg is None: + self.AirFlow = None + return False + for i in self.AirFlowconifg: + if self.productPartModelName in self.AirFlowconifg[i]: + self.AirFlow = i + return True + self.AirFlow = None + return False + + def get_psu_display_name(self): + if self.productPartModelName is None: + ret = self.get_fru_info() + if ret is False: + self.psu_display_name = None + return False + if self.psu_display_name_conifg is None: + self.psu_display_name = self.productPartModelName + return False + for i in self.psu_display_name_conifg: + if self.productPartModelName in self.psu_display_name_conifg[i]: + self.psu_display_name = i + return True + self.psu_display_name = self.productPartModelName + return False diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py new file mode 100644 index 000000000000..2b4e4ffd5f0e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +####################################################### +# +# rotor.py +# Python implementation of the Class rotor +# +####################################################### +from plat_hal.devicebase import devicebase +from plat_hal.sensor import sensor + + +class rotor(devicebase): + __rotor_Running = None + __rotor_HwAlarm_conf = None + __rotor_Speed = None + __rotor_run_conf = None + __Speedconfig = None + __i2c_speed = None + __SpeedMin = None + __SpeedMax = None + __SpeedTolerance = None + + def __init__(self, conf=None): + self.name = conf.get('name', None) + self.rotor_HwAlarm_conf = conf.get('HwAlarm', None) + self.rotor_run_conf = conf.get('Running', None) + self.SpeedMin = conf.get('SpeedMin', None) + self.SpeedMax = conf.get('SpeedMax', None) + self.Tolerance = conf.get('tolerance', 30) + self.rotor_Speed = sensor(conf.get('Speed', None)) + self.Speedconfig = conf.get('Set_speed', None) + + def getRunning(self): + ret, val = self.get_value(self.rotor_run_conf) + if ret is False or val is None: + return False + if isinstance(val, str): + value = int(val, 16) + else: + value = val + mask = self.rotor_run_conf.get("mask") + is_runing_value = self.rotor_run_conf.get("is_runing") + flag = value & mask + if flag == is_runing_value: + return True + return False + + @property + def SpeedMin(self): + return self.__SpeedMin + + @SpeedMin.setter + def SpeedMin(self, val): + self.__SpeedMin = val + + @property + def SpeedMax(self): + return self.__SpeedMax + + @SpeedMax.setter + def SpeedMax(self, val): + self.__SpeedMax = val + + @property + def Tolerance(self): + return self.__SpeedTolerance + + @Tolerance.setter + def Tolerance(self, val): + self.__SpeedTolerance = val + + @property + def i2c_speed(self): + ret, val = self.get_value(self.Speedconfig) + if ret is False: + return None + if val is not None: + self.__i2c_speed = val + return self.__i2c_speed + + def feed_watchdog(self): + ret, val = self.get_value(self.Speedconfig) + if ret is False: + return False, None + if val is not None: + ret, val = self.set_value(self.Speedconfig, val) + return ret, val + return False, None + + @i2c_speed.setter + def i2c_speed(self, val): + self.__i2c_speed = val + + @property + def Speedconfig(self): + return self.__Speedconfig + + @Speedconfig.setter + def Speedconfig(self, val): + self.__Speedconfig = val + + @property + def rotor_run_conf(self): + return self.__rotor_run_conf + + @rotor_run_conf.setter + def rotor_run_conf(self, val): + self.__rotor_run_conf = val + + @property + def rotor_Speed(self): + return self.__rotor_Speed + + @rotor_Speed.setter + def rotor_Speed(self, val): + self.__rotor_Speed = val + + @property + def rotor_HwAlarm(self): + ret, val = self.get_value(self.rotor_HwAlarm_conf) + mask = self.rotor_HwAlarm_conf.get("mask") + no_alarm_value = self.rotor_HwAlarm_conf.get("no_alarm") + if ret is False or val is None: + return False + if isinstance(val, str): + value = int(val, 16) + else: + value = val + flag = value & mask + if flag == no_alarm_value: + return False + return True + + @property + def rotor_HwAlarm_conf(self): + return self.__rotor_HwAlarm_conf + + @rotor_HwAlarm_conf.setter + def rotor_HwAlarm_conf(self, val): + self.__rotor_HwAlarm_conf = val + + @property + def rotor_Running(self): + self.__rotor_Running = self.getRunning() + return self.__rotor_Running + + @rotor_Running.setter + def rotor_Running(self, val): + self.__rotor_Running = val diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py new file mode 100644 index 000000000000..2b4e05e00e43 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python3 +####################################################### +# +# sensor.py +# Python implementation of the Class sensor +# +####################################################### +import time +from plat_hal.devicebase import devicebase + + +class sensor(devicebase): + + __Value = None + __Min = None + __Max = None + __Low = None + __High = None + __ValueConfig = None + __Flag = None + __Unit = None + __format = None + __read_times = None + + __Min_config = None + __Max_config = None + __Low_config = None + __High_config = None + + @property + def Min_config(self): + return self.__Min_config + + @Min_config.setter + def Min_config(self, val): + self.__Min_config = val + + @property + def Max_config(self): + return self.__Max_config + + @Max_config.setter + def Max_config(self, val): + self.__Max_config = val + + @property + def Low_config(self): + return self.__Low_config + + @Low_config.setter + def Low_config(self, val): + self.__Low_config = val + + @property + def High_config(self): + return self.__High_config + + @High_config.setter + def High_config(self, val): + self.__High_config = val + + @property + def Unit(self): + return self.__Unit + + @Unit.setter + def Unit(self, val): + self.__Unit = val + + @property + def format(self): + return self.__format + + @format.setter + def format(self, val): + self.__format = val + + @property + def read_times(self): + return self.__read_times + + @read_times.setter + def read_times(self, val): + self.__read_times = val + + @property + def ValueConfig(self): + return self.__ValueConfig + + @ValueConfig.setter + def ValueConfig(self, val): + self.__ValueConfig = val + + @property + def Flag(self): + return self.__Flag + + @Flag.setter + def Flag(self, val): + self.__Flag = val + + def get_median(self, value_config, read_times): + val_list = [] + for i in range(0, read_times): + ret, real_value = self.get_value(value_config) + if i != (read_times - 1): + time.sleep(0.01) + if ret is False or real_value is None: + continue + val_list.append(real_value) + val_list.sort() + if val_list: + return True, val_list[int((len(val_list) - 1) / 2)] + return False, None + + @property + def Value(self): + try: + ret, val = self.get_median(self.ValueConfig, self.read_times) + if ret is False or val is None: + return None + if self.format is None: + self.__Value = int(val) + else: + self.__Value = self.get_format_value(self.format % val) + self.__Value = round(float(self.__Value), 3) + except Exception: + return None + return self.__Value + + @Value.setter + def Value(self, val): + self.__Value = val + + @property + def Min(self): + try: + if self.format is None: + self.__Min = self.Min_config + else: + self.__Min = self.get_format_value(self.format % self.Min_config) + self.__Min = round(float(self.__Min), 3) + except Exception: + return None + return self.__Min + + @Min.setter + def Min(self, val): + self.__Min = val + + @property + def Max(self): + try: + if self.format is None: + self.__Max = self.Max_config + else: + self.__Max = self.get_format_value(self.format % self.Max_config) + self.__Max = round(float(self.__Max), 3) + except Exception: + return None + return self.__Max + + @Max.setter + def Max(self, val): + self.__Max = val + + @property + def Low(self): + try: + if self.format is None: + self.__Low = self.Low_config + else: + self.__Low = self.get_format_value(self.format % self.Low_config) + except Exception: + return None + return self.__Low + + @Low.setter + def Low(self, val): + self.__Low = val + + @property + def High(self): + try: + if self.format is None: + self.__High = self.High_config + else: + self.__High = self.get_format_value(self.format % self.High_config) + except Exception: + return None + return self.__High + + @High.setter + def High(self, val): + self.__High = val + + def __init__(self, conf=None): + self.ValueConfig = conf.get("value", None) + self.Flag = conf.get("flag", None) + self.Min_config = conf.get("Min", None) + self.Max_config = conf.get("Max", None) + self.Low_config = conf.get("Low", None) + self.High_config = conf.get("High", None) + self.Unit = conf.get('Unit', None) + self.format = conf.get('format', None) + self.read_times = conf.get('read_times', 1) + + def __str__(self): + formatstr = \ + "ValueConfig: : %s \n" \ + "Min : %s \n" \ + "Max : %s \n" \ + "Unit : %s \n" \ + "format: : %s \n" + + tmpstr = formatstr % (self.ValueConfig, self.Min, + self.Max, self.Unit, + self.format) + return tmpstr diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/temp.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/temp.py new file mode 100644 index 000000000000..a202c20339c9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/temp.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +####################################################### +# +# temp.py +# Python implementation of the Class temp +# +####################################################### +import os +import syslog +from plat_hal.sensor import sensor + + +PLATFORM_HAL_TEMP_DEBUG_FILE = "/etc/.platform_hal_temp_debug_flag" + + +def platform_hal_temp_debug(s): + if os.path.exists(PLATFORM_HAL_TEMP_DEBUG_FILE): + syslog.openlog("PLATFORM_HAL_TEPM", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +class temp(sensor): + def __init__(self, conf=None): + super(temp, self).__init__(conf.get('Temperature', None)) + self.name = conf.get("name", None) + self.temp_id = conf.get("temp_id", None) + self.api_name = conf.get("api_name", self.name) + self.fix_value = conf.get("fix_value", None) + self.temp_invalid = conf.get("invalid", None) + self.temp_error = conf.get("error", None) + + def temp_cali_by_fan_pwm(self, param, origin_value): + fan_pwm_conf = param.get("fan_pwm") + temp_fix_list = param.get("temp_fix_list") + + ret, val = self.get_value(fan_pwm_conf) + if ret is False or val is None: + platform_hal_temp_debug("temp calibration get fan pwm failed, msg: %s, return None" % (val)) + return None + + fan_pwm = int(val) + for item in temp_fix_list: + if item["min"] <= fan_pwm <= item["max"]: + fix_value = origin_value + item["fix"] + platform_hal_temp_debug("temp calibration by fan pwm, origin_value: %s, pwm: %s, fix_value: %s" % + (origin_value, fan_pwm, fix_value)) + return fix_value + platform_hal_temp_debug("temp calibration by fan pwm, origin_value: %s, pwm: %s, not match return None" % + (origin_value, fan_pwm)) + return None + + def fix_temp_value(self, origin_value): + try: + fix_type = self.fix_value.get("fix_type") + + if fix_type == "func": + func_name = self.fix_value.get("func_name") + func_param = self.fix_value.get("func_param") + func = getattr(self, func_name) + if func is None: + platform_hal_temp_debug("function %s, not defined" % func_name) + return None + value = func(func_param, origin_value) + return value + + if fix_type == "config": + coefficient = self.fix_value.get("coefficient", 1) + addend = self.fix_value.get("addend", 0) + value = (origin_value + addend) * coefficient + platform_hal_temp_debug("temp calibration by config, coefficient: %s, addend: %s, origin_value: %s, fix_value: %s" % + (coefficient, addend, origin_value, value)) + return value + + platform_hal_temp_debug("unsupport fix type: %s, return origin value: %s" % (fix_type, origin_value)) + return origin_value + except Exception as e: + platform_hal_temp_debug("fix_temp_value raise exception, msg: %s" % (str(e))) + return None + + def get_max_value(self, conf): + try: + ret, val = self.get_value(conf) + if ret is False or val is None: + return None + return val + except Exception: + return None + + def check_flag(self): + try: + okbit = self.Flag.get('okbit') + okval = self.Flag.get('okval') + ret, val = self.get_value(self.Flag) + if (ret is False) or (val is None): + return False + val_t = (int(val) & (1 << okbit)) >> okbit + if val_t != okval: + return False + except Exception: + return False + return True + + @property + def Value(self): + try: + if self.Flag is not None: + if self.check_flag() is False: + return None + if isinstance(self.ValueConfig, list): + max_val = None + for i in self.ValueConfig: + tmp = self.get_max_value(i) + if tmp is None: + continue + if max_val is None or max_val < tmp: + max_val = tmp + if max_val is None: + return None + if self.format is None: + self.__Value = int(max_val) + else: + self.__Value = self.get_format_value(self.format % max_val) + else: + ret, val = self.get_value(self.ValueConfig) + if ret is False or val is None: + return None + if self.format is None: + self.__Value = int(val) + else: + self.__Value = self.get_format_value(self.format % val) + except Exception: + return None + if self.fix_value is not None and self.__Value != self.temp_invalid and self.__Value != self.temp_error: + self.__Value = self.fix_temp_value(self.__Value) + return self.__Value + + @Value.setter + def Value(self, val): + self.__Value = val diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/__init__.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/baseutil.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/baseutil.py new file mode 100644 index 000000000000..340a1f7a733f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/baseutil.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +import os + + +def get_machine_info(): + if not os.path.isfile('/host/machine.conf'): + return None + machine_vars = {} + with open('/host/machine.conf') as machine_file: + for line in machine_file: + tokens = line.split('=') + if len(tokens) < 2: + continue + machine_vars[tokens[0]] = tokens[1].strip() + return machine_vars + + +def get_platform_info(machine_info): + if machine_info is not None: + if 'onie_platform' in machine_info: + return machine_info['onie_platform'] + if 'aboot_platform' in machine_info: + return machine_info['aboot_platform'] + return None + + +def get_board_id(machine_info): + if machine_info is not None: + if 'onie_board_id' in machine_info: + return machine_info['onie_board_id'].lower() + return "NA" + + +def get_onie_machine(machine_info): + if machine_info is not None: + if 'onie_machine' in machine_info: + return machine_info['onie_machine'] + return None diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/smbus.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/smbus.py new file mode 100644 index 000000000000..5f1659b3bbf0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/wbutil/smbus.py @@ -0,0 +1,772 @@ +#!/usr/bin/env python3 +# smbus2 - A drop-in replacement for smbus-cffi/smbus-python +# The MIT License (MIT) +# Copyright (c) 2017 Karl-Petter Lindegaard +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import os +import sys +from fcntl import ioctl +from ctypes import c_uint32, c_uint8, c_uint16, c_char, POINTER, Structure, Array, Union, create_string_buffer, string_at + + +# Commands from uapi/linux/i2c-dev.h +I2C_SLAVE = 0x0703 # Use this slave address +I2C_SLAVE_FORCE = 0x0706 # Use this slave address, even if it is already in use by a driver! +I2C_FUNCS = 0x0705 # Get the adapter functionality mask +I2C_RDWR = 0x0707 # Combined R/W transfer (one STOP only) +I2C_SMBUS = 0x0720 # SMBus transfer. Takes pointer to i2c_smbus_ioctl_data +I2C_PEC = 0x0708 + +# SMBus transfer read or write markers from uapi/linux/i2c.h +I2C_SMBUS_WRITE = 0 +I2C_SMBUS_READ = 1 + +# Size identifiers uapi/linux/i2c.h +I2C_SMBUS_QUICK = 0 +I2C_SMBUS_BYTE = 1 +I2C_SMBUS_BYTE_DATA = 2 +I2C_SMBUS_WORD_DATA = 3 +I2C_SMBUS_PROC_CALL = 4 +# This isn't supported by Pure-I2C drivers with SMBUS emulation, like those in RaspberryPi, OrangePi, etc :( +I2C_SMBUS_BLOCK_DATA = 5 +I2C_SMBUS_BLOCK_PROC_CALL = 7 # Like I2C_SMBUS_BLOCK_DATA, it isn't supported by Pure-I2C drivers either. +I2C_SMBUS_I2C_BLOCK_DATA = 8 +I2C_SMBUS_BLOCK_MAX = 32 + +# To determine what functionality is present (uapi/linux/i2c.h) +try: + from enum import IntFlag +except ImportError: + IntFlag = int + + +class I2cFunc(IntFlag): + """ + These flags identify the operations supported by an I2C/SMBus device. + + You can test these flags on your `smbus.funcs` + + On newer python versions, I2cFunc is an IntFlag enum, but it + falls back to class with a bunch of int constants on older releases. + """ + I2C = 0x00000001 + ADDR_10BIT = 0x00000002 + PROTOCOL_MANGLING = 0x00000004 # I2C_M_IGNORE_NAK etc. + SMBUS_PEC = 0x00000008 + NOSTART = 0x00000010 # I2C_M_NOSTART + SLAVE = 0x00000020 + SMBUS_BLOCK_PROC_CALL = 0x00008000 # SMBus 2.0 + SMBUS_QUICK = 0x00010000 + SMBUS_READ_BYTE = 0x00020000 + SMBUS_WRITE_BYTE = 0x00040000 + SMBUS_READ_BYTE_DATA = 0x00080000 + SMBUS_WRITE_BYTE_DATA = 0x00100000 + SMBUS_READ_WORD_DATA = 0x00200000 + SMBUS_WRITE_WORD_DATA = 0x00400000 + SMBUS_PROC_CALL = 0x00800000 + SMBUS_READ_BLOCK_DATA = 0x01000000 + SMBUS_WRITE_BLOCK_DATA = 0x02000000 + SMBUS_READ_I2C_BLOCK = 0x04000000 # I2C-like block xfer + SMBUS_WRITE_I2C_BLOCK = 0x08000000 # w/ 1-byte reg. addr. + SMBUS_HOST_NOTIFY = 0x10000000 + + SMBUS_BYTE = 0x00060000 + SMBUS_BYTE_DATA = 0x00180000 + SMBUS_WORD_DATA = 0x00600000 + SMBUS_BLOCK_DATA = 0x03000000 + SMBUS_I2C_BLOCK = 0x0c000000 + SMBUS_EMUL = 0x0eff0008 + + +# i2c_msg flags from uapi/linux/i2c.h +I2C_M_RD = 0x0001 + +# Pointer definitions +LP_c_uint8 = POINTER(c_uint8) +LP_c_uint16 = POINTER(c_uint16) +LP_c_uint32 = POINTER(c_uint32) + + +############################################################# +# Type definitions as in i2c.h + + +class i2c_smbus_data(Array): + """ + Adaptation of the i2c_smbus_data union in ``i2c.h``. + + Data for SMBus messages. + """ + _length_ = I2C_SMBUS_BLOCK_MAX + 2 + _type_ = c_uint8 + + +class union_i2c_smbus_data(Union): + _fields_ = [ + ("byte", c_uint8), + ("word", c_uint16), + ("block", i2c_smbus_data) + ] + + +union_pointer_type = POINTER(union_i2c_smbus_data) + + +class i2c_smbus_ioctl_data(Structure): + """ + As defined in ``i2c-dev.h``. + """ + _fields_ = [ + ('read_write', c_uint8), + ('command', c_uint8), + ('size', c_uint32), + ('data', union_pointer_type)] + __slots__ = [name for name, type in _fields_] + + @staticmethod + def create(read_write=I2C_SMBUS_READ, command=0, size=I2C_SMBUS_BYTE_DATA): + u = union_i2c_smbus_data() + return i2c_smbus_ioctl_data( + read_write=read_write, command=command, size=size, + data=union_pointer_type(u)) + + +############################################################# +# Type definitions for i2c_rdwr combined transactions + + +class i2c_msg(Structure): + """ + As defined in ``i2c.h``. + """ + _fields_ = [ + ('addr', c_uint16), + ('flags', c_uint16), + ('len', c_uint16), + ('buf', POINTER(c_char))] + + def __iter__(self): + """ Iterator / Generator + + :return: iterates over :py:attr:`buf` + :rtype: :py:class:`generator` which returns int values + """ + idx = 0 + while idx < self.len: + yield ord(self.buf[idx]) + idx += 1 + + def __len__(self): + return self.len + + def __bytes__(self): + return string_at(self.buf, self.len) + + def __repr__(self): + return 'i2c_msg(%d,%d,%r)' % (self.addr, self.flags, self.__bytes__()) + + def __str__(self): + s = self.__bytes__() + if sys.version_info.major >= 3: + s = ''.join(map(chr, s)) + return s + + @staticmethod + def read(address, length): + """ + Prepares an i2c read transaction. + + :param address: Slave address. + :type: address: int + :param length: Number of bytes to read. + :type: length: int + :return: New :py:class:`i2c_msg` instance for read operation. + :rtype: :py:class:`i2c_msg` + """ + arr = create_string_buffer(length) + return i2c_msg( + addr=address, flags=I2C_M_RD, len=length, + buf=arr) + + @staticmethod + def write(address, buf): + """ + Prepares an i2c write transaction. + + :param address: Slave address. + :type address: int + :param buf: Bytes to write. Either list of values or str. + :type buf: list + :return: New :py:class:`i2c_msg` instance for write operation. + :rtype: :py:class:`i2c_msg` + """ + if sys.version_info.major >= 3: + if isinstance(buf, str): + buf = bytes(map(ord, buf)) + else: + buf = bytes(buf) + else: + if not isinstance(buf, str): + buf = ''.join([chr(x) for x in buf]) + arr = create_string_buffer(buf, len(buf)) + return i2c_msg( + addr=address, flags=0, len=len(arr), + buf=arr) + + +class i2c_rdwr_ioctl_data(Structure): + """ + As defined in ``i2c-dev.h``. + """ + _fields_ = [ + ('msgs', POINTER(i2c_msg)), + ('nmsgs', c_uint32) + ] + __slots__ = [name for name, type in _fields_] + + @staticmethod + def create(*i2c_msg_instances): + """ + Factory method for creating a i2c_rdwr_ioctl_data struct that can + be called with ``ioctl(fd, I2C_RDWR, data)``. + + :param i2c_msg_instances: Up to 42 i2c_msg instances + :rtype: i2c_rdwr_ioctl_data + """ + n_msg = len(i2c_msg_instances) + msg_array = (i2c_msg * n_msg)(*i2c_msg_instances) + return i2c_rdwr_ioctl_data( + msgs=msg_array, + nmsgs=n_msg + ) + + +############################################################# + + +class SMBus(object): + + def __init__(self, bus=None, force=False): + """ + Initialize and (optionally) open an i2c bus connection. + + :param bus: i2c bus number (e.g. 0 or 1) + or an absolute file path (e.g. `/dev/i2c-42`). + If not given, a subsequent call to ``open()`` is required. + :type bus: int or str + :param force: force using the slave address even when driver is + already using it. + :type force: boolean + """ + self.fd = None + self.funcs = I2cFunc(0) + if bus is not None: + self.open(bus) + self.address = None + self.force = force + self._force_last = None + + def __enter__(self): + """Enter handler.""" + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + """Exit handler.""" + self.close() + + def open(self, bus): + """ + Open a given i2c bus. + + :param bus: i2c bus number (e.g. 0 or 1) + or an absolute file path (e.g. '/dev/i2c-42'). + :type bus: int or str + :raise TypeError: if type(bus) is not in (int, str) + """ + if isinstance(bus, int): + filepath = "/dev/i2c-{}".format(bus) + elif isinstance(bus, str): + filepath = bus + else: + raise TypeError("Unexpected type(bus)={}".format(type(bus))) + + self.fd = os.open(filepath, os.O_RDWR) + self.funcs = self._get_funcs() + + def close(self): + """ + Close the i2c connection. + """ + if self.fd: + os.close(self.fd) + self.fd = None + + def _set_address(self, address, force=None): + """ + Set i2c slave address to use for subsequent calls. + + :param address: + :type address: int + :param force: + :type force: Boolean + """ + force = force if force is not None else self.force + if self.address != address or self._force_last != force: + if force is True: + ioctl(self.fd, I2C_SLAVE_FORCE, address) + else: + ioctl(self.fd, I2C_SLAVE, address) + self.address = address + self._force_last = force + + def _get_funcs(self): + """ + Returns a 32-bit value stating supported I2C functions. + + :rtype: int + """ + f = c_uint32() + ioctl(self.fd, I2C_FUNCS, f) + return f.value + + def write_quick(self, i2c_addr, force=None): + """ + Perform quick transaction. Throws IOError if unsuccessful. + :param i2c_addr: i2c address + :type i2c_addr: int + :param force: + :type force: Boolean + """ + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=0, size=I2C_SMBUS_QUICK) + ioctl(self.fd, I2C_SMBUS, msg) + + def read_byte(self, i2c_addr, force=None): + """ + Read a single byte from a device. + + :rtype: int + :param i2c_addr: i2c address + :type i2c_addr: int + :param force: + :type force: Boolean + :return: Read byte value + """ + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_READ, command=0, size=I2C_SMBUS_BYTE + ) + ioctl(self.fd, I2C_SMBUS, msg) + return msg.data.contents.byte + + def write_byte(self, i2c_addr, value, force=None): + """ + Write a single byte to a device. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param value: value to write + :type value: int + :param force: + :type force: Boolean + """ + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=value, size=I2C_SMBUS_BYTE + ) + ioctl(self.fd, I2C_SMBUS, msg) + + def read_byte_data(self, i2c_addr, register, force=None): + """ + Read a single byte from a designated register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to read + :type register: int + :param force: + :type force: Boolean + :return: Read byte value + :rtype: int + """ + val_t = -1 + returnmsg = "" + try: + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_READ, command=register, size=I2C_SMBUS_BYTE_DATA + ) + val_t = ioctl(self.fd, I2C_SMBUS, msg) + except Exception as e: + self.close() + returnmsg = str(e) + if val_t < 0: + return False, returnmsg + return True, msg.data.contents.byte + + def write_byte_data(self, i2c_addr, register, value, force=None): + """ + Write a byte to a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to write to + :type register: int + :param value: Byte value to transmit + :type value: int + :param force: + :type force: Boolean + :rtype: None + """ + val_t = -1 + returnmsg = "" + try: + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_BYTE_DATA + ) + msg.data.contents.byte = value + val_t = ioctl(self.fd, I2C_SMBUS, msg) + except Exception as e: + returnmsg = str(e) + self.close() + if val_t < 0: + return False, returnmsg or "" + return True, "" + + def write_byte_data_pec(self, i2c_addr, register, value, force=None): + """ + Write a byte to a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to write to + :type register: int + :param value: Byte value to transmit + :type value: int + :param force: + :type force: Boolean + :rtype: None + """ + val_t = -1 + returnmsg = "" + try: + val_t = ioctl(self.fd, I2C_PEC, 1) + if val_t < 0: + raise Exception("set pec mod error") + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_BYTE_DATA + ) + msg.data.contents.byte = value + val_t = ioctl(self.fd, I2C_SMBUS, msg) + except Exception as e: + returnmsg = str(e) + self.close() + if val_t < 0: + return False, returnmsg or "" + return True, "" + + def read_word_data(self, i2c_addr, register, force=None): + """ + Read a single word (2 bytes) from a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to read + :type register: int + :param force: + :type force: Boolean + :return: 2-byte word + :rtype: int + """ + val_t = -1 + returnmsg = "" + try: + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_READ, command=register, size=I2C_SMBUS_WORD_DATA + ) + val_t = ioctl(self.fd, I2C_SMBUS, msg) + except Exception as e: + returnmsg = str(e) + self.close() + if val_t < 0: + return False, returnmsg or "" + return True, msg.data.contents.word + + def write_word_data_pec(self, i2c_addr, register, value, force=None): + """ + Write a byte to a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to write to + :type register: int + :param value: Word value to transmit + :type value: int + :param force: + :type force: Boolean + :rtype: None + """ + val_t = -1 + returnmsg = "" + try: + val_t = ioctl(self.fd, I2C_PEC, 1) + if val_t < 0: + raise Exception("set pec mod error") + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_WORD_DATA + ) + msg.data.contents.word = value + val_t = ioctl(self.fd, I2C_SMBUS, msg) + except Exception as e: + returnmsg = str(e) + self.close() + if val_t < 0: + return False, returnmsg or "" + return True, "" + + def write_word_data(self, i2c_addr, register, value, force=None): + """ + Write a byte to a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to write to + :type register: int + :param value: Word value to transmit + :type value: int + :param force: + :type force: Boolean + :rtype: None + """ + val_t = -1 + returnmsg = "" + try: + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_WORD_DATA + ) + msg.data.contents.word = value + val_t = ioctl(self.fd, I2C_SMBUS, msg) + except Exception as e: + returnmsg = str(e) + self.close() + if val_t < 0: + return False, returnmsg or "" + return True, "" + + def process_call(self, i2c_addr, register, value, force=None): + """ + Executes a SMBus Process Call, sending a 16-bit value and receiving a 16-bit response + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to read/write to + :type register: int + :param value: Word value to transmit + :type value: int + :param force: + :type force: Boolean + :rtype: int + """ + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_PROC_CALL + ) + msg.data.contents.word = value + ioctl(self.fd, I2C_SMBUS, msg) + return msg.data.contents.word + + def read_block_data(self, i2c_addr, register, force=None): + """ + Read a block of up to 32-bytes from a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Start register + :type register: int + :param force: + :type force: Boolean + :return: List of bytes + :rtype: list + """ + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_READ, command=register, size=I2C_SMBUS_BLOCK_DATA + ) + ioctl(self.fd, I2C_SMBUS, msg) + length = msg.data.contents.block[0] + return msg.data.contents.block[1:length + 1] + + def write_block_data(self, i2c_addr, register, data, force=None): + """ + Write a block of byte data to a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Start register + :type register: int + :param data: List of bytes + :type data: list + :param force: + :type force: Boolean + :rtype: None + """ + length = len(data) + if length > I2C_SMBUS_BLOCK_MAX: + raise ValueError("Data length cannot exceed %d bytes" % I2C_SMBUS_BLOCK_MAX) + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_BLOCK_DATA + ) + msg.data.contents.block[0] = length + msg.data.contents.block[1:length + 1] = data + ioctl(self.fd, I2C_SMBUS, msg) + + def block_process_call(self, i2c_addr, register, data, force=None): + """ + Executes a SMBus Block Process Call, sending a variable-size data + block and receiving another variable-size response + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Register to read/write to + :type register: int + :param data: List of bytes + :type data: list + :param force: + :type force: Boolean + :return: List of bytes + :rtype: list + """ + length = len(data) + if length > I2C_SMBUS_BLOCK_MAX: + raise ValueError("Data length cannot exceed %d bytes" % I2C_SMBUS_BLOCK_MAX) + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_BLOCK_PROC_CALL + ) + msg.data.contents.block[0] = length + msg.data.contents.block[1:length + 1] = data + ioctl(self.fd, I2C_SMBUS, msg) + length = msg.data.contents.block[0] + return msg.data.contents.block[1:length + 1] + + def read_i2c_block_data(self, i2c_addr, register, length, force=None): + """ + Read a block of byte data from a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Start register + :type register: int + :param length: Desired block length + :type length: int + :param force: + :type force: Boolean + :return: List of bytes + :rtype: list + """ + if length > I2C_SMBUS_BLOCK_MAX: + raise ValueError("Desired block length over %d bytes" % I2C_SMBUS_BLOCK_MAX) + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_READ, command=register, size=I2C_SMBUS_I2C_BLOCK_DATA + ) + msg.data.contents.byte = length + ioctl(self.fd, I2C_SMBUS, msg) + return msg.data.contents.block[1:length + 1] + + def write_i2c_block_data(self, i2c_addr, register, data, force=None): + """ + Write a block of byte data to a given register. + + :param i2c_addr: i2c address + :type i2c_addr: int + :param register: Start register + :type register: int + :param data: List of bytes + :type data: list + :param force: + :type force: Boolean + :rtype: None + """ + length = len(data) + if length > I2C_SMBUS_BLOCK_MAX: + raise ValueError("Data length cannot exceed %d bytes" % I2C_SMBUS_BLOCK_MAX) + self._set_address(i2c_addr, force=force) + msg = i2c_smbus_ioctl_data.create( + read_write=I2C_SMBUS_WRITE, command=register, size=I2C_SMBUS_I2C_BLOCK_DATA + ) + msg.data.contents.block[0] = length + msg.data.contents.block[1:length + 1] = data + ioctl(self.fd, I2C_SMBUS, msg) + + def i2c_rdwr(self, *i2c_msgs): + """ + Combine a series of i2c read and write operations in a single + transaction (with repeated start bits but no stop bits in between). + + This method takes i2c_msg instances as input, which must be created + first with :py:meth:`i2c_msg.read` or :py:meth:`i2c_msg.write`. + + :param i2c_msgs: One or more i2c_msg class instances. + :type i2c_msgs: i2c_msg + :rtype: None + """ + ioctl_data = i2c_rdwr_ioctl_data.create(*i2c_msgs) + ioctl(self.fd, I2C_RDWR, ioctl_data) + + +class SMBusWrapper: + """ + Wrapper class around the SMBus. + Deprecated as of version 0.3.0. Please replace with :py:class:`SMBus`. + + Enables the user to wrap access to the :py:class:`SMBus` class in a + "with" statement. If auto_cleanup is True (default), the + :py:class:`SMBus` handle will be automatically closed + upon exit of the ``with`` block. + """ + + def __init__(self, bus_number=0, auto_cleanup=True, force=False): + """ + :param auto_cleanup: Close bus when leaving scope. + :type auto_cleanup: Boolean + :param force: Force using the slave address even when driver is already using it. + :type force: Boolean + """ + self.bus_number = bus_number + self.auto_cleanup = auto_cleanup + self.force = force + self.bus = None + + def __enter__(self): + self.bus = SMBus(bus=self.bus_number, force=self.force) + return self.bus + + def __exit__(self, exc_type, exc_val, exc_tb): + if self.auto_cleanup: + self.bus.close() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf b/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf new file mode 100644 index 000000000000..5e861802d915 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf @@ -0,0 +1,5 @@ +blacklist wb_fpga_pcie +blacklist wb_i2c_i801 +blacklist wb_spi_gpio +blacklist intel_spi +blacklist intel_spi_platform diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile new file mode 100644 index 000000000000..042feac8443b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile @@ -0,0 +1,58 @@ +PWD = $(shell pwd) +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +KVERSION ?= $(shell uname -r) +KERNEL_SRC ?= /lib/modules/$(KVERSION) + +module_out_put_dir := $(PWD)/build +export module_out_put_dir + +KERNEL_MODULES_SRC = $(PWD)/linux-5.10 + +PLAT_SYSFS_DIR = $(PWD)/plat_sysfs +INTEL_SPI = $(PWD)/intel_spi +PHY = $(PWD)/phy + +export PLAT_SYSFS_DIR + +platform_common-objs := platform_common_module.o dfd_tlveeprom.o +obj-m += platform_common.o +obj-m += wb_mac_bsc.o +obj-m += wb_fpga_pcie.o +obj-m += wb_pcie_dev.o +obj-m += wb_fpga_i2c_bus_drv.o +obj-m += wb_fpga_pca954x_drv.o +obj-m += wb_lpc_drv.o +obj-m += wb_i2c_dev.o +obj-m += wb_platform_i2c_dev.o +obj-m += wb_io_dev.o +obj-m += wb_eeprom_93xx46.o +obj-m += wb_spi_93xx46.o +obj-m += wb_gpio_d1500.o +obj-m += wb_gpio_device.o +obj-m += wb_i2c_ocores.o +obj-m += wb_spi_ocores.o +obj-m += wb_spi_dev.o +obj-m += wb_wdt.o +obj-m += wb_optoe.o +obj-m += wb_spi_gpio.o +obj-m += wb_spi_gpio_device.o +obj-m += wb_spi_nor_device.o +obj-m += wb_xdpe132g5c.o +obj-m += wb_uio_irq.o +obj-m += hw_test.o + +all : + $(MAKE) -C $(KERNEL_MODULES_SRC) + $(MAKE) -C $(PLAT_SYSFS_DIR) + $(MAKE) -C $(INTEL_SPI) + $(MAKE) -C $(PHY) + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + cp -p $(PWD)/*.ko $(module_out_put_dir) + +clean : + rm -rf $(module_out_put_dir) + rm -f ${PWD}/*.o ${PWD}/*.ko ${PWD}/*.mod.c ${PWD}/.*.cmd ${PWD}/.*.o.d ${PWD}/*.mod + rm -f ${PWD}/Module.markers ${PWD}/Module.symvers ${PWD}/modules.order + rm -rf ${PWD}/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.c new file mode 100644 index 000000000000..0d6f38ecc551 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.c @@ -0,0 +1,516 @@ +/* + * Copyright (C) 2003-2014 FreeIPMI Core Team + * + * 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 . + * + */ +/*****************************************************************************\ + * Copyright (C) 2007-2014 Lawrence Livermore National Security, LLC. + * Copyright (C) 2007 The Regents of the University of California. + * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). + * Written by Albert Chu + * UCRL-CODE-232183 + * + * This file is part of Ipmi-fru, a tool used for retrieving + * motherboard field replaceable unit (FRU) information. For details, + * see http://www.llnl.gov/linux/. + * + * Ipmi-fru 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. + * + * Ipmi-fru 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 Ipmi-fru. If not, see . +\*****************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "platform_common.h" +#include "dfd_tlveeprom.h" + +/* using in is_valid_tlvinfo_header */ +static u_int32_t eeprom_size; + +/* + * List of TLV codes and names. + */ +static const struct tlv_code_desc tlv_code_list[] = { + { TLV_CODE_PRODUCT_NAME , "Product Name"}, + { TLV_CODE_PART_NUMBER , "Part Number"}, + { TLV_CODE_SERIAL_NUMBER , "Serial Number"}, + { TLV_CODE_MAC_BASE , "Base MAC Address"}, + { TLV_CODE_MANUF_DATE , "Manufacture Date"}, + { TLV_CODE_DEVICE_VERSION , "Device Version"}, + { TLV_CODE_LABEL_REVISION , "Label Revision"}, + { TLV_CODE_PLATFORM_NAME , "Platform Name"}, + { TLV_CODE_ONIE_VERSION , "ONIE Version"}, + { TLV_CODE_MAC_SIZE , "MAC Addresses"}, + { TLV_CODE_MANUF_NAME , "Manufacturer"}, + { TLV_CODE_MANUF_COUNTRY , "Country Code"}, + { TLV_CODE_VENDOR_NAME , "Vendor Name"}, + { TLV_CODE_DIAG_VERSION , "Diag Version"}, + { TLV_CODE_SERVICE_TAG , "Service Tag"}, + { TLV_CODE_VENDOR_EXT , "Vendor Extension"}, + { TLV_CODE_CRC_32 , "CRC-32"}, +}; + +#if 0 +#define OPENBMC_VPD_KEY_INVAIL_VAL 0 + +static const tlv_code_map_t tlv_code_map[] = { + { TLV_CODE_PRODUCT_NAME , OPENBMC_VPD_KEY_PRODUCT_NAME}, + { TLV_CODE_PART_NUMBER , OPENBMC_VPD_KEY_PRODUCT_PART_MODEL_NUM}, + { TLV_CODE_SERIAL_NUMBER , OPENBMC_VPD_KEY_PRODUCT_SERIAL_NUM}, + { TLV_CODE_MAC_BASE , OPENBMC_VPD_KEY_INVAIL_VAL}, + { TLV_CODE_MANUF_DATE , OPENBMC_VPD_KEY_BOARD_MFG_DATE}, + { TLV_CODE_DEVICE_VERSION , OPENBMC_VPD_KEY_PRODUCT_VER}, + { TLV_CODE_LABEL_REVISION , OPENBMC_VPD_KEY_PRODUCT_CUSTOM7}, + { TLV_CODE_PLATFORM_NAME , OPENBMC_VPD_KEY_PRODUCT_CUSTOM1}, + { TLV_CODE_ONIE_VERSION , OPENBMC_VPD_KEY_PRODUCT_CUSTOM2}, + { TLV_CODE_MAC_SIZE , OPENBMC_VPD_KEY_INVAIL_VAL}, + { TLV_CODE_MANUF_NAME , OPENBMC_VPD_KEY_PRODUCT_MFR}, + { TLV_CODE_MANUF_COUNTRY , OPENBMC_VPD_KEY_PRODUCT_CUSTOM3}, + { TLV_CODE_VENDOR_NAME , OPENBMC_VPD_KEY_PRODUCT_CUSTOM4}, + { TLV_CODE_DIAG_VERSION , OPENBMC_VPD_KEY_PRODUCT_CUSTOM8}, + { TLV_CODE_SERVICE_TAG , OPENBMC_VPD_KEY_PRODUCT_CUSTOM5}, + { TLV_CODE_VENDOR_EXT , OPENBMC_VPD_KEY_PRODUCT_CUSTOM6}, + { TLV_CODE_CRC_32 , OPENBMC_VPD_KEY_INVAIL_VAL}, +}; +#endif + +#define TLV_CODE_NUM (sizeof(tlv_code_list) / sizeof(tlv_code_list[0])) + +#if 0 +#define TLV_CODE_MAP_NUM (sizeof(tlv_code_map) / sizeof(tlv_code_map[0])) +#endif + +const unsigned long crc_table[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, + 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, + 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, + 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, + 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, + 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, + 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, + 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, + 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, + 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, + 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, + 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, + 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, + 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, + 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, + 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, + 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, + 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, +}; + +static unsigned long crc32(unsigned long crc, const unsigned char *buf, unsigned len) +{ + unsigned i; + if (len < 1) + return 0xffffffff; + + for (i = 0; i != len; ++i) + { + crc = crc_table[(crc ^ buf[i]) & 0xff] ^ (crc >> 8); + } + + crc = crc ^ 0xffffffff; + + return crc; +} + +/* + * is_valid_tlv + * + * Perform basic sanity checks on a TLV field. The TLV is pointed to + * by the parameter provided. + * 1. The type code is not reserved (0x00 or 0xFF) + */ +static inline bool is_valid_tlv(tlvinfo_tlv_t *tlv) +{ + return ((tlv->type != 0x00) && (tlv->type != 0xFF)); +} + +/* + * is_valid_tlvinfo_header + * + * Perform sanity checks on the first 11 bytes of the TlvInfo EEPROM + * data pointed to by the parameter: + * 1. First 8 bytes contain null-terminated ASCII string "TlvInfo" + * 2. Version byte is 1 + * 3. Total length bytes contain value which is less than or equal + * to the allowed maximum (2048-11) + * + */ +static inline bool is_valid_tlvinfo_header(tlvinfo_header_t *hdr) +{ + int max_size = eeprom_size; + return((strcmp(hdr->signature, TLV_INFO_ID_STRING) == 0) && + (hdr->version == TLV_INFO_VERSION) && + (be16_to_cpu(hdr->totallen) <= max_size) ); +} + +/* + * decode_tlv_value + * + * Decode a single TLV value into a string. + + * The validity of EEPROM contents and the TLV field have been verified + * prior to calling this function. + */ +static void decode_tlv_value(tlvinfo_tlv_t *tlv, tlv_decode_value_t *decode_value) +{ + int i; + char *value; + u_int32_t length; + + value = (char *)decode_value->value; + + switch (tlv->type) { + case TLV_CODE_PRODUCT_NAME: + case TLV_CODE_PART_NUMBER: + case TLV_CODE_SERIAL_NUMBER: + case TLV_CODE_MANUF_DATE: + case TLV_CODE_LABEL_REVISION: + case TLV_CODE_PLATFORM_NAME: + case TLV_CODE_ONIE_VERSION: + case TLV_CODE_MANUF_NAME: + case TLV_CODE_MANUF_COUNTRY: + case TLV_CODE_VENDOR_NAME: + case TLV_CODE_DIAG_VERSION: + case TLV_CODE_SERVICE_TAG: + case TLV_CODE_VENDOR_EXT: + memcpy(value, tlv->value, tlv->length); + value[tlv->length] = 0; + length = tlv->length; + break; + case TLV_CODE_MAC_BASE: + length = sprintf(value, "%02X:%02X:%02X:%02X:%02X:%02X", + tlv->value[0], tlv->value[1], tlv->value[2], + tlv->value[3], tlv->value[4], tlv->value[5]); + break; + case TLV_CODE_DEVICE_VERSION: + length = sprintf(value, "%u", tlv->value[0]); + break; + case TLV_CODE_MAC_SIZE: + length = sprintf(value, "%u", (tlv->value[0] << 8) | tlv->value[1]); + break; + #if 0 + case TLV_CODE_VENDOR_EXT: + value[0] = 0; + length = 0; + for (i = 0; (i < (TLV_DECODE_VALUE_MAX_LEN/5)) && (i < tlv->length); i++) { + length += sprintf(value, "%s 0x%02X", value, tlv->value[i]); + } + break; + #endif + case TLV_CODE_CRC_32: + length = sprintf(value, "0x%02X%02X%02X%02X", tlv->value[0], + tlv->value[1], tlv->value[2], tlv->value[3]); + break; + default: + value[0] = 0; + length = 0; + for (i = 0; (i < (TLV_DECODE_VALUE_MAX_LEN/5)) && (i < tlv->length); i++) { + length += sprintf(value, "%s 0x%02X", value, tlv->value[i]); + } + break; + } + + decode_value->length = length; +} + +/* + * is_checksum_valid + * + * Validate the checksum in the provided TlvInfo EEPROM data. First, + * verify that the TlvInfo header is valid, then make sure the last + * TLV is a CRC-32 TLV. Then calculate the CRC over the EEPROM data + * and compare it to the value stored in the EEPROM CRC-32 TLV. + */ +static bool is_checksum_valid(u_int8_t *eeprom) +{ + tlvinfo_header_t *eeprom_hdr; + tlvinfo_tlv_t *eeprom_crc; + unsigned int calc_crc; + unsigned int stored_crc; + + eeprom_hdr = (tlvinfo_header_t *) eeprom; + + // Is the eeprom header valid? + if (!is_valid_tlvinfo_header(eeprom_hdr)) { + return false; + } + + // Is the last TLV a CRC? + eeprom_crc = (tlvinfo_tlv_t *) &eeprom[sizeof(tlvinfo_header_t) + + be16_to_cpu(eeprom_hdr->totallen) - (sizeof(tlvinfo_tlv_t) + 4)]; + if ((eeprom_crc->type != TLV_CODE_CRC_32) || (eeprom_crc->length != 4)) { + return false; + } + + // Calculate the checksum + calc_crc = crc32(0xffffffffL, (const unsigned char *)eeprom, sizeof(tlvinfo_header_t) + + be16_to_cpu(eeprom_hdr->totallen) - 4); + stored_crc = ((eeprom_crc->value[0] << 24) | (eeprom_crc->value[1] << 16) | + (eeprom_crc->value[2] << 8) | eeprom_crc->value[3]); + + return (calc_crc == stored_crc); +} + +/* + * tlvinfo_find_tlv + * + * This function finds the TLV with the supplied code in the EERPOM. + * An offset from the beginning of the EEPROM is returned in the + * eeprom_index parameter if the TLV is found. + */ +static bool tlvinfo_find_tlv(u_int8_t *eeprom, u_int8_t tcode, int *eeprom_index) +{ + tlvinfo_header_t *eeprom_hdr; + tlvinfo_tlv_t *eeprom_tlv; + int eeprom_end; + + eeprom_hdr = (tlvinfo_header_t *) eeprom; + + // Search through the TLVs, looking for the first one which matches the + // supplied type code. + *eeprom_index = sizeof(tlvinfo_header_t); + eeprom_end = sizeof(tlvinfo_header_t) + be16_to_cpu(eeprom_hdr->totallen); + while (*eeprom_index < eeprom_end) { + eeprom_tlv = (tlvinfo_tlv_t *) &eeprom[*eeprom_index]; + if (!is_valid_tlv(eeprom_tlv)) { + return false; + } + + if (eeprom_tlv->type == tcode) { + return true; + } + + *eeprom_index += sizeof(tlvinfo_tlv_t) + eeprom_tlv->length; + } + + return false; +} + +/* + * tlvinfo_decode_tlv + * + * This function finds the TLV with the supplied code in the EERPOM + * and decodes the value into the buffer provided. + */ +static bool tlvinfo_decode_tlv(u_int8_t *eeprom, u_int8_t tcode, tlv_decode_value_t *decode_value) +{ + int eeprom_index; + tlvinfo_tlv_t *eeprom_tlv; + + // Find the TLV and then decode it + if (tlvinfo_find_tlv(eeprom, tcode, &eeprom_index)) { + eeprom_tlv = (tlvinfo_tlv_t *) &eeprom[eeprom_index]; + decode_tlv_value(eeprom_tlv, decode_value); + return true; + } + + return false; +} + +/* + * parse_tlv_eeprom + * + * parse the EEPROM into memory, if it hasn't already been read. + */ +int parse_tlv_eeprom(u_int8_t *eeprom, u_int32_t size) +{ + unsigned int i; + bool ret; + tlvinfo_header_t *eeprom_hdr; + //tlv_info_vec_t tlv_info; + tlv_decode_value_t decode_value; + int j; + + eeprom_hdr = (tlvinfo_header_t *) eeprom; + eeprom_size = size; /* eeprom real size */ + + if (!is_valid_tlvinfo_header(eeprom_hdr)) { + DBG_ERROR("Failed to check tlv header.\n"); + return -1; + } + + if (!is_checksum_valid(eeprom)) { + DBG_ERROR("Failed to check tlv crc.\n"); + return -1; + } + + for (i = 0; i < TLV_CODE_NUM; i++) { + mem_clear((void *)&decode_value, sizeof(tlv_decode_value_t)); + ret = tlvinfo_decode_tlv(eeprom, tlv_code_list[i].m_code, &decode_value); + if (!ret) { + DBG_ERROR("No found type: %s\n", tlv_code_list[i].m_name); + continue; + } + + DBG_DEBUG("i: %d,Found type: %s tlv[%d]:%s\n", i, tlv_code_list[i].m_name, tlv_code_list[i].m_code, + decode_value.value); + for (j = 0; j < decode_value.length; j++) { + if ((j % 16) == 0) { + DBG_DEBUG("\n"); + } + DBG_DEBUG("%02x ", decode_value.value[j]); + } + DBG_DEBUG("\n\n"); + } + return 0; +} +static int dfd_parse_tlv_eeprom(u_int8_t *eeprom, u_int32_t size, u_int8_t main_type, tlv_decode_value_t *decode_value) +{ + bool ret; + tlvinfo_header_t *eeprom_hdr; + //tlv_info_vec_t tlv_info; + int j; + + eeprom_hdr = (tlvinfo_header_t *) eeprom; + eeprom_size = size; /* eeprom real size */ + + if (!is_valid_tlvinfo_header(eeprom_hdr)) { + DBG_ERROR("Failed to check tlv header.\n"); + return -1; + } + + if (!is_checksum_valid(eeprom)) { + DBG_ERROR("Failed to check tlv crc.\n"); + return -1; + } + + ret = tlvinfo_decode_tlv(eeprom, main_type, decode_value); + if (!ret) { + DBG_ERROR("No found type: %d\n", main_type); + return -1; + } + + DBG_DEBUG("Found type: %d, value: %s\n", main_type,decode_value->value); + for (j = 0; j < decode_value->length; j++) { + if ((j % 16) == 0) { + DBG_DEBUG("\n"); + } + DBG_DEBUG("%02x ", decode_value->value[j]); + } + DBG_DEBUG("\n\n"); + + return 0; +} + +static int tlvinfo_find_wb_ext_tlv(tlv_decode_value_t *ext_tlv_value, u_int8_t ext_type, + u_int8_t *buf, u_int8_t *buf_len) +{ + tlvinfo_tlv_t *eeprom_tlv; + int eeprom_end, eeprom_index; + + // Search through the TLVs, looking for the first one which matches the + // supplied type code. + DBG_DEBUG("ext_tlv_value->length: %d.\n", ext_tlv_value->length); + for (eeprom_index = 0; eeprom_index < ext_tlv_value->length; eeprom_index++) { + if ((eeprom_index % 16) == 0) { + DBG_DEBUG("\n"); + } + DBG_DEBUG("%02x ", ext_tlv_value->value[eeprom_index]); + } + + DBG_DEBUG("\n"); + + eeprom_index = 0; + eeprom_end = ext_tlv_value->length; + while (eeprom_index < eeprom_end) { + eeprom_tlv = (tlvinfo_tlv_t *) &(ext_tlv_value->value[eeprom_index]); + if (!is_valid_tlv(eeprom_tlv)) { + DBG_ERROR("tlv is not valid, eeprom_tlv->type 0x%x.\n", eeprom_tlv->type); + return -1; + } + + DBG_DEBUG("eeprom_tlv->length %d.\n", eeprom_tlv->length); + if (eeprom_tlv->type == ext_type) { + if (*buf_len >= eeprom_tlv->length) { + memcpy(buf, eeprom_tlv->value, eeprom_tlv->length); + DBG_DEBUG("eeprom_tlv->length %d.\n", eeprom_tlv->length); + *buf_len = eeprom_tlv->length; + return 0; + } + DBG_ERROR("buf_len %d small than info_len %d.\n", *buf_len, eeprom_tlv->length); + return -1; + } + + eeprom_index += sizeof(tlvinfo_tlv_t) + eeprom_tlv->length; + } + + DBG_ERROR("ext_type %d: tlv is not found.\n", ext_type); + return -1; +} + +int dfd_tlvinfo_get_e2prom_info(u_int8_t *eeprom, u_int32_t size, dfd_tlv_type_t *tlv_type, u_int8_t* buf, u_int8_t *buf_len) +{ + tlv_decode_value_t decode_value; + int ret; + + if (eeprom == NULL || tlv_type == NULL || buf == NULL) { + DBG_ERROR("Input para invalid.\n"); + return -1; + } + + mem_clear((void *)&decode_value, sizeof(tlv_decode_value_t)); + ret = dfd_parse_tlv_eeprom(eeprom, size, tlv_type->main_type, &decode_value); + if (ret) { + DBG_ERROR("dfd_parse_tlv_eeprom failed ret %d.\n", ret); + return ret; + } + + if (tlv_type->main_type != TLV_CODE_VENDOR_EXT) { + if (*buf_len >= decode_value.length) { + memcpy(buf, decode_value.value, decode_value.length); + *buf_len = decode_value.length; + return 0; + } + DBG_ERROR("buf_len %d small than info_len %d.\n", *buf_len, decode_value.length); + return -1; + } + DBG_DEBUG("info_len %d.\n", decode_value.length); + + return tlvinfo_find_wb_ext_tlv(&decode_value, tlv_type->ext_type, buf, buf_len); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.h new file mode 100644 index 000000000000..6eaac5848223 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/dfd_tlveeprom.h @@ -0,0 +1,121 @@ +#ifndef DFD_OPENBMC_TLVEEPROM_H +#define DFD_OPENBMC_TLVEEPROM_H + +#ifndef u_int8_t +#define u_int8_t unsigned char +#endif + +#ifndef u_int16_t +#define u_int16_t unsigned short +#endif + +#ifndef u_int32_t +#define u_int32_t unsigned int +#endif + +#ifndef be16_to_cpu +#define be16_to_cpu(x) ntohs(x) +#endif + +#ifndef cpu_to_be16 +#define cpu_to_be16(x) htons(x) +#endif + +/** + * The TLV Types. + * + * Keep these in sync with tlv_code_list in cmd_sys_eeprom.c + */ +#define TLV_CODE_PRODUCT_NAME 0x21 +#define TLV_CODE_PART_NUMBER 0x22 +#define TLV_CODE_SERIAL_NUMBER 0x23 +#define TLV_CODE_MAC_BASE 0x24 +#define TLV_CODE_MANUF_DATE 0x25 +#define TLV_CODE_DEVICE_VERSION 0x26 +#define TLV_CODE_LABEL_REVISION 0x27 +#define TLV_CODE_PLATFORM_NAME 0x28 +#define TLV_CODE_ONIE_VERSION 0x29 +#define TLV_CODE_MAC_SIZE 0x2A +#define TLV_CODE_MANUF_NAME 0x2B +#define TLV_CODE_MANUF_COUNTRY 0x2C +#define TLV_CODE_VENDOR_NAME 0x2D +#define TLV_CODE_DIAG_VERSION 0x2E +#define TLV_CODE_SERVICE_TAG 0x2F +#define TLV_CODE_VENDOR_EXT 0xFD +#define TLV_CODE_CRC_32 0xFE + +#define TLV_CODE_NAME_LEN 64 +/* + * Struct for displaying the TLV codes and names. + */ +struct tlv_code_desc { + u_int8_t m_code; + char m_name[TLV_CODE_NAME_LEN]; +}; + +typedef struct dfd_tlv_type_s { + u_int8_t main_type; + u_int8_t ext_type; +} dfd_tlv_type_t; + +// Header Field Constants +#define TLV_INFO_ID_STRING "TlvInfo" +#define TLV_INFO_VERSION 0x01 +/*#define TLV_TOTAL_LEN_MAX (XXXXXXXX - sizeof(tlvinfo_header_t))*/ + +struct __attribute__ ((__packed__)) tlvinfo_header_s { + char signature[8]; /* 0x00 - 0x07 EEPROM Tag "TlvInfo" */ + u_int8_t version; /* 0x08 Structure version */ + u_int16_t totallen; /* 0x09 - 0x0A Length of all data which follows */ +}; +typedef struct tlvinfo_header_s tlvinfo_header_t; + +/* + * TlvInfo TLV: Layout of a TLV field + */ +struct __attribute__ ((__packed__)) tlvinfo_tlv_s { + u_int8_t type; + u_int8_t length; + u_int8_t value[0]; +}; +typedef struct tlvinfo_tlv_s tlvinfo_tlv_t; + +#define TLV_VALUE_MAX_LEN 255 +/* + * The max decode value is currently for the 'raw' type or the 'vendor + * extension' type, both of which have the same decode format. The + * max decode string size is computed as follows: + * + * strlen(" 0xFF") * TLV_VALUE_MAX_LEN + 1 + * + */ +#define TLV_DECODE_VALUE_MAX_LEN ((5 * TLV_VALUE_MAX_LEN) + 1) + +typedef struct tlv_decode_value_s { + u_int8_t value[TLV_DECODE_VALUE_MAX_LEN]; + u_int32_t length; +} tlv_decode_value_t; + +typedef enum dfd_tlvinfo_ext_tlv_type_e { + DFD_TLVINFO_EXT_TLV_TYPE_DEV_TYPE = 1, +} dfd_tlvinfo_ext_tlv_type_t; + +#if 0 +#define TLV_TIME_LEN 64 + +int ipmi_tlv_validate_fru_area(const uint8_t fruid, const char *fru_file_name, + sd_bus *bus_type, const bool bmc_fru); + +extern const char *get_vpd_key_names(int key_id); +extern std::string getService(sdbusplus::bus::bus& bus, + const std::string& intf, + const std::string& path); +extern std::string getFRUValue(const std::string& section, + const std::string& key, + const std::string& delimiter, + IPMIFruInfo& fruData); +#endif + +int dfd_tlvinfo_get_e2prom_info(u_int8_t *eeprom, u_int32_t size, dfd_tlv_type_t *tlv_type, u_int8_t* buf, u_int8_t *buf_len); + +#endif /* endif DFD_OPENBMC_TLVEEPROM_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/fpga_i2c.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/fpga_i2c.h new file mode 100644 index 000000000000..649a8452debe --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/fpga_i2c.h @@ -0,0 +1,133 @@ +#ifndef _FPGA_I2C_H +#define _FPGA_I2C_H + +#include +#include +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +#if 0 + +#define FPGA_I2C_EXT_9548_ADDR (0x00) +#define FPGA_I2C_EXT_9548_CHAN (0x04) +#define FPGA_I2C_DEV_SLAVE_ADDR (0x08) +#define FPGA_I2C_DEV_REG_ADDR (0x0C) +#define FPGA_I2C_DEV_RDWR_LEN (0x10) +#define FPGA_I2C_CTRL_REG (0x14) +#define FPGA_I2C_STATUS_REG (0x18) +#define FPGA_I2C_SCALE_REG (0x1C) +#define FPGA_I2C_FILTER_REG (0x20) +#define FPGA_I2C_STRETCH_REG (0x24) +#define FPGA_I2C_EXT_9548_EXITS_FLAG (0x28) +#define FPGA_I2C_INTERNAL_9548_CHAN (0x2C) +#define FPGA_I2C_RDWR_DATA_BUF (0x80) +#endif +#define FPGA_I2C_RDWR_MAX_LEN_DEFAULT (128) +#define I2C_REG_MAX_WIDTH (16) + +#define DEV_NAME_MAX_LEN (64) + +#define FPGA_I2C_MAX_TIMES (10) +#define FPGA_I2C_XFER_TIME_OUT (100000) +#define FPGA_I2C_SLEEP_TIME (40) + +typedef struct fpga_i2c_reg_s { + uint32_t i2c_scale; + uint32_t i2c_filter; + uint32_t i2c_stretch; + uint32_t i2c_ext_9548_exits_flag; + uint32_t i2c_ext_9548_addr; + uint32_t i2c_ext_9548_chan; + uint32_t i2c_in_9548_chan; + uint32_t i2c_slave; + uint32_t i2c_reg; + uint32_t i2c_reg_len; + uint32_t i2c_data_len; + uint32_t i2c_ctrl; + uint32_t i2c_status; + uint32_t i2c_err_vec; + uint32_t i2c_data_buf; + uint32_t i2c_data_buf_len; +} fpga_i2c_reg_t; + +typedef struct fpga_i2c_reset_cfg_s { + uint32_t i2c_adap_reset_flag; + uint32_t reset_addr; + uint32_t reset_on; + uint32_t reset_off; + uint32_t reset_delay_b; + uint32_t reset_delay; + uint32_t reset_delay_a; +} fpga_i2c_reset_cfg_t; + +typedef struct fpga_i2c_reg_addr_s { + uint8_t reg_addr_len; + uint8_t read_reg_addr[I2C_REG_MAX_WIDTH]; +} fpga_i2c_reg_addr_t; + +typedef struct fpga_i2c_dev_s { + fpga_i2c_reg_t reg; + fpga_i2c_reset_cfg_t reset_cfg; + fpga_i2c_reg_addr_t i2c_addr_desc; + const char *dev_name; + uint32_t i2c_scale_value; + uint32_t i2c_filter_value; + uint32_t i2c_stretch_value; + uint32_t i2c_timeout; + uint32_t i2c_func_mode; + wait_queue_head_t queue; + struct i2c_adapter adap; + int adap_nr; + struct device *dev; + bool i2c_params_check; +} fpga_i2c_dev_t; + +typedef struct fpga_i2c_bus_device_s { + int i2c_timeout; + int i2c_scale; + int i2c_filter; + int i2c_stretch; + int i2c_ext_9548_exits_flag; + int i2c_ext_9548_addr; + int i2c_ext_9548_chan; + int i2c_in_9548_chan; + int i2c_slave; + int i2c_reg; + int i2c_reg_len; + int i2c_data_len; + int i2c_ctrl; + int i2c_status; + int i2c_err_vec; + int i2c_data_buf; + int i2c_data_buf_len; + char dev_name[DEV_NAME_MAX_LEN]; + int adap_nr; + int i2c_scale_value; + int i2c_filter_value; + int i2c_stretch_value; + int i2c_func_mode; + int i2c_adap_reset_flag; + int i2c_reset_addr; + int i2c_reset_on; + int i2c_reset_off; + int i2c_rst_delay_b; /* delay time before reset(us) */ + int i2c_rst_delay; /* reset time(us) */ + int i2c_rst_delay_a; /* delay time after reset(us) */ + int device_flag; + bool i2c_params_check; + int i2c_data_buf_len_reg; + int i2c_offset_reg; +} fpga_i2c_bus_device_t; + +typedef struct fpga_pca954x_device_s { + struct i2c_client *client; + uint32_t i2c_bus; + uint32_t i2c_addr; + uint32_t fpga_9548_flag; + uint32_t fpga_9548_reset_flag; + uint32_t pca9548_base_nr; +} fpga_pca954x_device_t; + +#endif /* _FPGA_I2C_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.c new file mode 100644 index 000000000000..e74f4e800582 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.c @@ -0,0 +1,608 @@ +/* + * hw_test.c + * Original Author : support, 2020-10-15 + * + * History + * v1.0 support 2020-10-15 Initial version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hw_test.h" + +extern struct bus_type mdio_bus_type; + +struct board_mdio_dev { + struct list_head list; + struct mii_bus *mdio_bus; + int mdio_index; +}; + +struct board_phy_dev { + struct list_head list; + struct phy_device *phydev; + int phy_index; +}; + +static LIST_HEAD(mdio_dev_list); +static LIST_HEAD(phydev_list); +static struct class *class_mdio_bus = NULL; + +#define PRINT_BUF_SIZE (256) +#define INVALID_PHY_ADDR (0xFF) +#define MAX_MDIO_DEVICE_NUMS (1000) +#define MAX_PHY_DEVICE_NUMS (1000) + +#define dram_debug(fmt, ...) \ + printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) + +static ssize_t dram_dev_read (struct file *file, char __user *buf, size_t count, + loff_t *offset) +{ + u8 value8; + u16 value16; + u32 value32; + + if (file->private_data != NULL) { + return -EINVAL; + } + + file->private_data = ioremap(file->f_pos, count); + + if (!file->private_data) { + pr_notice("%s, %d\n", __FUNCTION__, __LINE__); + return -ENODEV; + } + + rmb(); + switch (count) { + case 1: + value8 = readb(file->private_data); + if (copy_to_user(buf, &value8, sizeof(u8))) { + return -EFAULT; + } + break; + case 2: + value16 = readw(file->private_data); + if (copy_to_user(buf, &value16, sizeof(u16))) { + return -EFAULT; + } + break; + case 4: + value32 = readl(file->private_data); + if (copy_to_user(buf, &value32, sizeof(u32))) { + return -EFAULT; + } + break; + default: + return -EINVAL; + } + + iounmap(file->private_data); + file->private_data = NULL; + return count; + +} + +static ssize_t dram_dev_write (struct file *file, const char __user *buf, size_t count, + loff_t *offset) +{ + u8 value8; + u16 value16; + u32 value32; + + if (file->private_data != NULL) { + return -EINVAL; + } + + file->private_data = ioremap(file->f_pos, count); + + if (!file->private_data) { + pr_err("%s, %d\n", __FUNCTION__, __LINE__); + return -ENODEV; + } + + switch (count) { + case 1: + if (copy_from_user(&value8, buf, sizeof(u8))) { + return -EFAULT; + } + writeb(value8, file->private_data); + break; + case 2: + if (copy_from_user(&value16, buf, sizeof(u16))) { + return -EFAULT; + } + writew(value16, file->private_data); + break; + case 4: + if (copy_from_user(&value32, buf, sizeof(u32))) { + return -EFAULT; + } + writel(value32, file->private_data); + break; + default: + return -EINVAL; + } + + wmb(); + iounmap(file->private_data); + file->private_data = NULL; + return count; +} + +static loff_t dram_dev_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t ret; + + switch (origin) { + case 0: + file->f_pos = offset; + ret = file->f_pos; + break; + case 1: + file->f_pos += offset; + ret = file->f_pos; + break; + default: + ret = -EINVAL; + } + return ret; +} + +static int temp_mdiobus_read(struct mii_bus *bus, int phy_addr, int regnum) +{ + return 0; +} + +static int temp_mdiobus_write(struct mii_bus *bus, int phy_addr, int regnum, u16 value) +{ + return 0; +} + +static int init_class_mdio_bus(void) +{ + struct mii_bus *bus; + int err = 0; + + bus = mdiobus_alloc(); + + bus->name = "temp_mdio_bus"; + snprintf(bus->id, MII_BUS_ID_SIZE, "temp_mdio_bus0"); + bus->read = temp_mdiobus_read; + bus->write = temp_mdiobus_write; + + err = mdiobus_register(bus); + if (err) { + printk(KERN_ERR "temp mdio bus register fail\n"); + return -1; + } + + class_mdio_bus = bus->dev.class; + mdiobus_unregister(bus); + + return 0; +} + +static int mdio_match_success(struct device *dev, const void * data) +{ + + return 1; +} + +static int add_all_mdio_devices_to_list(void) +{ + struct device *dev, *dev_start = NULL; + struct board_mdio_dev *mdio_dev = NULL; + int i = 0; + struct class *bus_class = class_mdio_bus; + + for (i = 0; i < MAX_MDIO_DEVICE_NUMS; i++) { + dev = class_find_device(bus_class, dev_start, NULL, mdio_match_success); + if (dev != NULL) { + mdio_dev = kzalloc(sizeof(struct board_mdio_dev), GFP_KERNEL); + if (mdio_dev == NULL) { + printk(KERN_ERR "%s: alloc fail\n", __func__); + return -EFAULT; + } + + mdio_dev->mdio_index = i; + mdio_dev->mdio_bus = to_mii_bus(dev); + list_add_tail(&mdio_dev->list, &mdio_dev_list); + + dev_start = dev; + } else { + break; + } + } + + printk(KERN_INFO "mdio dev numbers = %d\n", i); + + return 0; +} + +static void delete_all_mdio_devices_from_list(void) +{ + struct list_head *n, *pos; + struct board_mdio_dev *mdio_dev; + + list_for_each_safe(pos, n, &mdio_dev_list) { + list_del(pos); + mdio_dev = list_entry(pos, struct board_mdio_dev, list); + kfree(mdio_dev); + } + + return; +} + +void list_all_mdio_devices_info(void) +{ + struct board_mdio_dev *mdio_dev; + unsigned char phyaddr[PHY_MAX_ADDR]; + int i = 0, j = 0; + int phydev_num = 0; + char buf[PRINT_BUF_SIZE]; + int len = 0; + + printk(KERN_INFO "all the mdio devs info:\n"); + printk(KERN_INFO "index busid name phy_num phyaddr \n"); + list_for_each_entry(mdio_dev, &mdio_dev_list, list) { + i = 0; + j = 0; + phydev_num = 0; + mem_clear(phyaddr, INVALID_PHY_ADDR, sizeof(phyaddr)); + mem_clear(buf, 0, sizeof(buf)); + + for (i = 0; i < PHY_MAX_ADDR; i++) { + if (mdio_dev->mdio_bus->mdio_map[i]) { + phydev_num++; + phyaddr[j] = (unsigned char)i; + j++; + } + } + + len = snprintf(buf, sizeof(buf), " %-10d %-20s %-20s %-10d ", mdio_dev->mdio_index, + mdio_dev->mdio_bus->id, mdio_dev->mdio_bus->name, phydev_num); + + for (i = 0; i < PHY_MAX_ADDR; i++) { + if (phyaddr[i] == INVALID_PHY_ADDR) { + break; + } + + len += snprintf(&buf[len], sizeof(buf) - len, " %#x", phyaddr[i]); + } + + printk(KERN_INFO "%s\n", buf); + } + + return; +} + +static struct mii_bus *get_mdio_dev_according_to_index(int mdio_index) +{ + struct board_mdio_dev *mdio_dev; + list_for_each_entry(mdio_dev, &mdio_dev_list, list) { + if (mdio_dev->mdio_index == mdio_index) { + return mdio_dev->mdio_bus; + } + } + + printk(KERN_ERR "no exist the mdio dev it's mdio_index = %d, please exec cmd [hw_test.bin mdiodev_list] to view mdiodev info\n", + mdio_index); + + return NULL; +} + +int board_mdio_read(int mdio_index, int phyaddr, u32 regnum) +{ + struct mii_bus *bus; + int reg_val; + + bus = get_mdio_dev_according_to_index(mdio_index); + if (bus == NULL) { + return -1; + } + + reg_val = mdiobus_read(bus, phyaddr, regnum); + + return reg_val; +} + +int board_mdio_write(int mdio_index, int phyaddr, u32 regnum, u16 val) +{ + struct mii_bus *bus; + int ret; + + bus = get_mdio_dev_according_to_index(mdio_index); + if (bus == NULL) { + return -1; + } + + ret = mdiobus_write(bus, phyaddr, regnum, val); + + return ret; +} + +static int phy_match_success(struct device *dev, const void * data) +{ + + return 1; +} + +static int add_all_phydevs_to_list(void) +{ + struct device *dev, *dev_start = NULL; + struct board_phy_dev *board_phydev = NULL; + int i = 0; + + for (i = 0; i < MAX_PHY_DEVICE_NUMS; i++) { + dev = bus_find_device(&mdio_bus_type, dev_start, NULL, phy_match_success); + if (dev != NULL) { + board_phydev = kzalloc(sizeof(struct board_phy_dev), GFP_KERNEL); + if (board_phydev == NULL) { + printk(KERN_ERR "%s: alloc fail\n", __func__); + return -EFAULT; + } + + board_phydev->phy_index = i; + board_phydev->phydev = to_phy_device(dev); + list_add_tail(&board_phydev->list, &phydev_list); + + dev_start = dev; + } else { + break; + } + } + + printk(KERN_INFO "phydev num = %d\n", i); + + return 0; +} + +static void delete_all_phydevs_from_list(void) +{ + struct list_head *n, *pos; + struct board_phy_dev *board_phydev; + + list_for_each_safe(pos, n, &phydev_list) { + list_del(pos); + board_phydev = list_entry(pos, struct board_phy_dev, list); + kfree(board_phydev); + } + + return; +} + +void list_all_phydevs_info(void) +{ + struct board_phy_dev *board_phydev; + + printk(KERN_INFO "all the phydevs info:\n"); + printk(KERN_INFO "index phyaddr phyId phydev_name\n"); + list_for_each_entry(board_phydev, &phydev_list, list) { + printk(KERN_INFO " %-10d %#-10x %#-10x %-20s\n", board_phydev->phy_index, board_phydev->phydev->mdio.addr,\ + board_phydev->phydev->phy_id, dev_name(&board_phydev->phydev->mdio.dev)); + } + + return; +} + +static struct phy_device *get_phy_dev_according_to_index(int phy_index) +{ + struct board_phy_dev *board_phydev; + list_for_each_entry(board_phydev, &phydev_list, list) { + if (board_phydev->phy_index == phy_index) { + return board_phydev->phydev; + } + } + + printk(KERN_ERR "no exist the phydev it's phy_index = %d, please exec cmd [hw_test.bin phydev_list] to view phydev info\n", phy_index); + + return NULL; +} + +int board_phy_read(int phy_index, u32 regnum) +{ + struct phy_device *phydev; + int reg_val; + + phydev = get_phy_dev_according_to_index(phy_index); + if (phydev == NULL) { + return -1; + } + + reg_val = phy_read(phydev, regnum); + + return reg_val; +} + +int board_phy_write(int phy_index, u32 regnum, u16 val) +{ + struct phy_device *phydev; + int ret; + + phydev = get_phy_dev_according_to_index(phy_index); + if (phydev == NULL) { + return -1; + } + + ret = phy_write(phydev, regnum, val); + + return ret; +} + +static long dram_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + void __user *argp = (void __user *)arg; + int ret = 0; + struct phydev_user_info phy_user_info; + struct mdio_dev_user_info mdio_user_info; + + switch (cmd) { + case CMD_PHY_LIST: + list_all_phydevs_info(); + break; + + case CMD_PHY_READ: + if (copy_from_user(&phy_user_info, argp, sizeof(struct phydev_user_info))) + return -EFAULT; + + ret = board_phy_read(phy_user_info.phy_index, phy_user_info.regnum); + if (ret < 0) { + return -EFAULT; + } + + phy_user_info.regval = (u32)ret; + + if (copy_to_user(argp, &phy_user_info, sizeof(struct phydev_user_info))) + return -EFAULT; + + break; + + case CMD_PHY_WRITE: + if (copy_from_user(&phy_user_info, argp, sizeof(struct phydev_user_info))) + return -EFAULT; + + ret = board_phy_write(phy_user_info.phy_index, phy_user_info.regnum, (u16)phy_user_info.regval); + if (ret < 0) { + return -EFAULT; + } + + break; + + case CMD_MDIO_LIST: + list_all_mdio_devices_info(); + break; + + case CMD_MDIO_READ: + if (copy_from_user(&mdio_user_info, argp, sizeof(struct mdio_dev_user_info))) + return -EFAULT; + + ret = board_mdio_read(mdio_user_info.mdio_index, mdio_user_info.phyaddr, mdio_user_info.regnum); + if (ret < 0) { + return -EFAULT; + } + + mdio_user_info.regval = (u32)ret; + + if (copy_to_user(argp, &mdio_user_info, sizeof(struct mdio_dev_user_info))) + return -EFAULT; + + break; + + case CMD_MDIO_WRITE: + if (copy_from_user(&mdio_user_info, argp, sizeof(struct mdio_dev_user_info))) + return -EFAULT; + + ret = board_mdio_write(mdio_user_info.mdio_index, mdio_user_info.phyaddr, mdio_user_info.regnum, (u16)mdio_user_info.regval); + if (ret < 0) { + return -EFAULT; + } + + break; + + default: + printk("unknown ioctl cmd\n"); + break; + } + + return 0; +} + +static int dram_dev_open(struct inode *inode, struct file *file) +{ + file->private_data = NULL; + file->f_pos = 0; + return 0; + +} + +static int dram_dev_release(struct inode *inode, struct file *file) +{ + if (file->private_data) { + iounmap(file->private_data); + } + return 0; +} + +static const struct file_operations dram_dev_fops = { + .owner = THIS_MODULE, + .llseek = dram_dev_llseek, + .read = dram_dev_read, + .write = dram_dev_write, + .unlocked_ioctl = dram_dev_ioctl, + .open = dram_dev_open, + .release = dram_dev_release, +}; + +static struct miscdevice dram_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = "dram_test", + .fops = &dram_dev_fops, +}; + +static int __init dram_init(void) +{ + if (add_all_phydevs_to_list() != 0) { + printk(KERN_ERR "add all phydev to list fail\n"); + delete_all_phydevs_from_list(); + return -ENXIO; + } + + if (init_class_mdio_bus() == 0) { + if (add_all_mdio_devices_to_list() == -EFAULT) { + printk(KERN_ERR "add all mdiodev to list fail\n"); + delete_all_mdio_devices_from_list(); + delete_all_phydevs_from_list(); + return -ENXIO; + } + } + + if (misc_register(&dram_dev) != 0) { + pr_notice("Register %s failed.\n", dram_dev.name); + delete_all_mdio_devices_from_list(); + delete_all_phydevs_from_list(); + return -ENXIO; + } + + return 0; +} + +static void __exit dram_exit(void) +{ + misc_deregister(&dram_dev); + + delete_all_mdio_devices_from_list(); + delete_all_phydevs_from_list(); +} + +module_init(dram_init); +module_exit(dram_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h new file mode 100644 index 000000000000..049629ff83e7 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h @@ -0,0 +1,32 @@ + + +#ifndef _LINUX_DRAM_DRIVER_H +#define _LINUX_DRAM_DRIVER_H + +#include +#include + +#define mem_clear(data, val, size) memset((data), val, (size)) + +struct phydev_user_info { + int phy_index; + u32 regnum; + u32 regval; +}; + +#define CMD_PHY_LIST _IOR('P', 0, struct phydev_user_info) +#define CMD_PHY_READ _IOR('P', 1, struct phydev_user_info) +#define CMD_PHY_WRITE _IOR('P', 2, struct phydev_user_info) + +struct mdio_dev_user_info { + int mdio_index; + int phyaddr; + u32 regnum; + u32 regval; +}; + +#define CMD_MDIO_LIST _IOR('M', 0, struct mdio_dev_user_info) +#define CMD_MDIO_READ _IOR('M', 1, struct mdio_dev_user_info) +#define CMD_MDIO_WRITE _IOR('M', 2, struct mdio_dev_user_info) + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile new file mode 100644 index 000000000000..269e95019cba --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile @@ -0,0 +1,21 @@ +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +#ifdef ENABLE_GCOV +#ifeq ($(ENABLE_GCOV), y) +#EXTRA_CFLAGS+= -fprofile-arcs -ftest-coverage -lgcov +#endif +#endif # ENABLE_GCOV + +obj-m := intel_spi.o +obj-m += intel_spi_platform.o + +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + cp -p $(PWD)/*.ko $(module_out_put_dir) +clean: + rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd + rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order + rm -rf $(PWD)/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h new file mode 100644 index 000000000000..d0a570b1f3b0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Intel PCH/PCU SPI flash driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + */ + +#ifndef INTEL_SPI_H +#define INTEL_SPI_H + +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +struct intel_spi; +struct resource; + +struct intel_spi *intel_spi_probe(struct device *dev, + struct resource *mem, const struct intel_spi_boardinfo *info); +int intel_spi_remove(struct intel_spi *ispi); + +#endif /* INTEL_SPI_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c new file mode 100644 index 000000000000..98de90f0c0b2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c @@ -0,0 +1,969 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Intel PCH/PCU SPI flash driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "intel_spi.h" + +/* Offsets are from @ispi->base */ +#define BFPREG 0x00 + +#define HSFSTS_CTL 0x04 +#define HSFSTS_CTL_FSMIE BIT(31) +#define HSFSTS_CTL_FDBC_SHIFT 24 +#define HSFSTS_CTL_FDBC_MASK (0x3f << HSFSTS_CTL_FDBC_SHIFT) + +#define HSFSTS_CTL_FCYCLE_SHIFT 17 +#define HSFSTS_CTL_FCYCLE_MASK (0x0f << HSFSTS_CTL_FCYCLE_SHIFT) +/* HW sequencer opcodes */ +#define HSFSTS_CTL_FCYCLE_READ (0x00 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_WRITE (0x02 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_ERASE (0x03 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_ERASE_64K (0x04 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_RDID (0x06 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_WRSR (0x07 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_RDSR (0x08 << HSFSTS_CTL_FCYCLE_SHIFT) + +#define HSFSTS_CTL_FGO BIT(16) +#define HSFSTS_CTL_FLOCKDN BIT(15) +#define HSFSTS_CTL_FDV BIT(14) +#define HSFSTS_CTL_SCIP BIT(5) +#define HSFSTS_CTL_AEL BIT(2) +#define HSFSTS_CTL_FCERR BIT(1) +#define HSFSTS_CTL_FDONE BIT(0) + +#define FADDR 0x08 +#define DLOCK 0x0c +#define FDATA(n) (0x10 + ((n) * 4)) + +#define FRACC 0x50 + +#define FREG(n) (0x54 + ((n) * 4)) +#define FREG_BASE_MASK 0x3fff +#define FREG_LIMIT_SHIFT 16 +#define FREG_LIMIT_MASK (0x03fff << FREG_LIMIT_SHIFT) + +/* Offset is from @ispi->pregs */ +#define PR(n) ((n) * 4) +#define PR_WPE BIT(31) +#define PR_LIMIT_SHIFT 16 +#define PR_LIMIT_MASK (0x3fff << PR_LIMIT_SHIFT) +#define PR_RPE BIT(15) +#define PR_BASE_MASK 0x3fff + +/* Offsets are from @ispi->sregs */ +#define SSFSTS_CTL 0x00 +#define SSFSTS_CTL_FSMIE BIT(23) +#define SSFSTS_CTL_DS BIT(22) +#define SSFSTS_CTL_DBC_SHIFT 16 +#define SSFSTS_CTL_SPOP BIT(11) +#define SSFSTS_CTL_ACS BIT(10) +#define SSFSTS_CTL_SCGO BIT(9) +#define SSFSTS_CTL_COP_SHIFT 12 +#define SSFSTS_CTL_FRS BIT(7) +#define SSFSTS_CTL_DOFRS BIT(6) +#define SSFSTS_CTL_AEL BIT(4) +#define SSFSTS_CTL_FCERR BIT(3) +#define SSFSTS_CTL_FDONE BIT(2) +#define SSFSTS_CTL_SCIP BIT(0) + +#define PREOP_OPTYPE 0x04 +#define OPMENU0 0x08 +#define OPMENU1 0x0c + +#define OPTYPE_READ_NO_ADDR 0 +#define OPTYPE_WRITE_NO_ADDR 1 +#define OPTYPE_READ_WITH_ADDR 2 +#define OPTYPE_WRITE_WITH_ADDR 3 + +/* CPU specifics */ +#define BYT_PR 0x74 +#define BYT_SSFSTS_CTL 0x90 +#define BYT_BCR 0xfc +#define BYT_BCR_WPD BIT(0) +#define BYT_FREG_NUM 5 +#define BYT_PR_NUM 5 + +#define LPT_PR 0x74 +#define LPT_SSFSTS_CTL 0x90 +#define LPT_FREG_NUM 5 +#define LPT_PR_NUM 5 + +#define BXT_PR 0x84 +#define BXT_SSFSTS_CTL 0xa0 +#define BXT_FREG_NUM 12 +#define BXT_PR_NUM 6 + +#define CNL_PR 0x84 +#define CNL_FREG_NUM 6 +#define CNL_PR_NUM 5 + +#define LVSCC 0xc4 +#define UVSCC 0xc8 +#define ERASE_OPCODE_SHIFT 8 +#define ERASE_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) +#define ERASE_64K_OPCODE_SHIFT 16 +#define ERASE_64K_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) + +#define INTEL_SPI_TIMEOUT 5000 /* ms */ +#define INTEL_SPI_FIFO_SZ 64 + +/** + * struct intel_spi - Driver private data + * @dev: Device pointer + * @info: Pointer to board specific info + * @nor: SPI NOR layer structure + * @base: Beginning of MMIO space + * @pregs: Start of protection registers + * @sregs: Start of software sequencer registers + * @nregions: Maximum number of regions + * @pr_num: Maximum number of protected range registers + * @writeable: Is the chip writeable + * @locked: Is SPI setting locked + * @swseq_reg: Use SW sequencer in register reads/writes + * @swseq_erase: Use SW sequencer in erase operation + * @erase_64k: 64k erase supported + * @atomic_preopcode: Holds preopcode when atomic sequence is requested + * @opcodes: Opcodes which are supported. This are programmed by BIOS + * before it locks down the controller. + */ +struct intel_spi { + struct device *dev; + const struct intel_spi_boardinfo *info; + struct spi_nor nor; + void __iomem *base; + void __iomem *pregs; + void __iomem *sregs; + size_t nregions; + size_t pr_num; + bool writeable; + bool locked; + bool swseq_reg; + bool swseq_erase; + bool erase_64k; + u8 atomic_preopcode; + u8 opcodes[8]; +}; + +static bool writeable; +module_param(writeable, bool, 0); +MODULE_PARM_DESC(writeable, "Enable write access to SPI flash chip (default=0)"); + +static void intel_spi_dump_regs(struct intel_spi *ispi) +{ + u32 value; + int i; + + dev_dbg(ispi->dev, "BFPREG=0x%08x\n", readl(ispi->base + BFPREG)); + + value = readl(ispi->base + HSFSTS_CTL); + dev_dbg(ispi->dev, "HSFSTS_CTL=0x%08x\n", value); + if (value & HSFSTS_CTL_FLOCKDN) + dev_dbg(ispi->dev, "-> Locked\n"); + + dev_dbg(ispi->dev, "FADDR=0x%08x\n", readl(ispi->base + FADDR)); + dev_dbg(ispi->dev, "DLOCK=0x%08x\n", readl(ispi->base + DLOCK)); + + for (i = 0; i < 16; i++) + dev_dbg(ispi->dev, "FDATA(%d)=0x%08x\n", + i, readl(ispi->base + FDATA(i))); + + dev_dbg(ispi->dev, "FRACC=0x%08x\n", readl(ispi->base + FRACC)); + + for (i = 0; i < ispi->nregions; i++) + dev_dbg(ispi->dev, "FREG(%d)=0x%08x\n", i, + readl(ispi->base + FREG(i))); + for (i = 0; i < ispi->pr_num; i++) + dev_dbg(ispi->dev, "PR(%d)=0x%08x\n", i, + readl(ispi->pregs + PR(i))); + + if (ispi->sregs) { + value = readl(ispi->sregs + SSFSTS_CTL); + dev_dbg(ispi->dev, "SSFSTS_CTL=0x%08x\n", value); + dev_dbg(ispi->dev, "PREOP_OPTYPE=0x%08x\n", + readl(ispi->sregs + PREOP_OPTYPE)); + dev_dbg(ispi->dev, "OPMENU0=0x%08x\n", + readl(ispi->sregs + OPMENU0)); + dev_dbg(ispi->dev, "OPMENU1=0x%08x\n", + readl(ispi->sregs + OPMENU1)); + } + + if (ispi->info->type == INTEL_SPI_BYT) + dev_dbg(ispi->dev, "BCR=0x%08x\n", readl(ispi->base + BYT_BCR)); + + dev_dbg(ispi->dev, "LVSCC=0x%08x\n", readl(ispi->base + LVSCC)); + dev_dbg(ispi->dev, "UVSCC=0x%08x\n", readl(ispi->base + UVSCC)); + + dev_dbg(ispi->dev, "Protected regions:\n"); + for (i = 0; i < ispi->pr_num; i++) { + u32 base, limit; + + value = readl(ispi->pregs + PR(i)); + if (!(value & (PR_WPE | PR_RPE))) + continue; + + limit = (value & PR_LIMIT_MASK) >> PR_LIMIT_SHIFT; + base = value & PR_BASE_MASK; + + dev_dbg(ispi->dev, " %02d base: 0x%08x limit: 0x%08x [%c%c]\n", + i, base << 12, (limit << 12) | 0xfff, + value & PR_WPE ? 'W' : '.', + value & PR_RPE ? 'R' : '.'); + } + + dev_dbg(ispi->dev, "Flash regions:\n"); + for (i = 0; i < ispi->nregions; i++) { + u32 region, base, limit; + + region = readl(ispi->base + FREG(i)); + base = region & FREG_BASE_MASK; + limit = (region & FREG_LIMIT_MASK) >> FREG_LIMIT_SHIFT; + + if (base >= limit || (i > 0 && limit == 0)) + dev_dbg(ispi->dev, " %02d disabled\n", i); + else + dev_dbg(ispi->dev, " %02d base: 0x%08x limit: 0x%08x\n", + i, base << 12, (limit << 12) | 0xfff); + } + + dev_dbg(ispi->dev, "Using %cW sequencer for register access\n", + ispi->swseq_reg ? 'S' : 'H'); + dev_dbg(ispi->dev, "Using %cW sequencer for erase operation\n", + ispi->swseq_erase ? 'S' : 'H'); +} + +/* Reads max INTEL_SPI_FIFO_SZ bytes from the device fifo */ +static int intel_spi_read_block(struct intel_spi *ispi, void *buf, size_t size) +{ + size_t bytes; + int i = 0; + + if (size > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + while (size > 0) { + bytes = min_t(size_t, size, 4); + memcpy_fromio(buf, ispi->base + FDATA(i), bytes); + size -= bytes; + buf += bytes; + i++; + } + + return 0; +} + +/* Writes max INTEL_SPI_FIFO_SZ bytes to the device fifo */ +static int intel_spi_write_block(struct intel_spi *ispi, const void *buf, + size_t size) +{ + size_t bytes; + int i = 0; + + if (size > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + while (size > 0) { + bytes = min_t(size_t, size, 4); + memcpy_toio(ispi->base + FDATA(i), buf, bytes); + size -= bytes; + buf += bytes; + i++; + } + + return 0; +} + +static int intel_spi_wait_hw_busy(struct intel_spi *ispi) +{ + u32 val; + + return readl_poll_timeout(ispi->base + HSFSTS_CTL, val, + !(val & HSFSTS_CTL_SCIP), 0, + INTEL_SPI_TIMEOUT * 1000); +} + +static int intel_spi_wait_sw_busy(struct intel_spi *ispi) +{ + u32 val; + + return readl_poll_timeout(ispi->sregs + SSFSTS_CTL, val, + !(val & SSFSTS_CTL_SCIP), 0, + INTEL_SPI_TIMEOUT * 1000); +} + +static int intel_spi_init(struct intel_spi *ispi) +{ + u32 opmenu0, opmenu1, lvscc, uvscc, val; + int i; + + switch (ispi->info->type) { + case INTEL_SPI_BYT: + ispi->sregs = ispi->base + BYT_SSFSTS_CTL; + ispi->pregs = ispi->base + BYT_PR; + ispi->nregions = BYT_FREG_NUM; + ispi->pr_num = BYT_PR_NUM; + ispi->swseq_reg = true; + + if (writeable) { + /* Disable write protection */ + val = readl(ispi->base + BYT_BCR); + if (!(val & BYT_BCR_WPD)) { + val |= BYT_BCR_WPD; + writel(val, ispi->base + BYT_BCR); + val = readl(ispi->base + BYT_BCR); + } + + ispi->writeable = !!(val & BYT_BCR_WPD); + } + + break; + + case INTEL_SPI_LPT: + ispi->sregs = ispi->base + LPT_SSFSTS_CTL; + ispi->pregs = ispi->base + LPT_PR; + ispi->nregions = LPT_FREG_NUM; + ispi->pr_num = LPT_PR_NUM; + ispi->swseq_reg = true; + break; + + case INTEL_SPI_BXT: + ispi->sregs = ispi->base + BXT_SSFSTS_CTL; + ispi->pregs = ispi->base + BXT_PR; + ispi->nregions = BXT_FREG_NUM; + ispi->pr_num = BXT_PR_NUM; + ispi->erase_64k = true; + break; + + case INTEL_SPI_CNL: + ispi->sregs = NULL; + ispi->pregs = ispi->base + CNL_PR; + ispi->nregions = CNL_FREG_NUM; + ispi->pr_num = CNL_PR_NUM; + break; + + default: + return -EINVAL; + } + + /* Disable #SMI generation from HW sequencer */ + val = readl(ispi->base + HSFSTS_CTL); + val &= ~HSFSTS_CTL_FSMIE; + writel(val, ispi->base + HSFSTS_CTL); + + /* + * Determine whether erase operation should use HW or SW sequencer. + * + * The HW sequencer has a predefined list of opcodes, with only the + * erase opcode being programmable in LVSCC and UVSCC registers. + * If these registers don't contain a valid erase opcode, erase + * cannot be done using HW sequencer. + */ + lvscc = readl(ispi->base + LVSCC); + uvscc = readl(ispi->base + UVSCC); + if (!(lvscc & ERASE_OPCODE_MASK) || !(uvscc & ERASE_OPCODE_MASK)) + ispi->swseq_erase = true; + /* SPI controller on Intel BXT supports 64K erase opcode */ + if (ispi->info->type == INTEL_SPI_BXT && !ispi->swseq_erase) + if (!(lvscc & ERASE_64K_OPCODE_MASK) || + !(uvscc & ERASE_64K_OPCODE_MASK)) + ispi->erase_64k = false; + + if (ispi->sregs == NULL && (ispi->swseq_reg || ispi->swseq_erase)) { + dev_err(ispi->dev, "software sequencer not supported, but required\n"); + return -EINVAL; + } + + /* + * Some controllers can only do basic operations using hardware + * sequencer. All other operations are supposed to be carried out + * using software sequencer. + */ + if (ispi->swseq_reg) { + /* Disable #SMI generation from SW sequencer */ + val = readl(ispi->sregs + SSFSTS_CTL); + val &= ~SSFSTS_CTL_FSMIE; + writel(val, ispi->sregs + SSFSTS_CTL); + } + + /* Check controller's lock status */ + val = readl(ispi->base + HSFSTS_CTL); + ispi->locked = !!(val & HSFSTS_CTL_FLOCKDN); + + if (ispi->locked && ispi->sregs) { + /* + * BIOS programs allowed opcodes and then locks down the + * register. So read back what opcodes it decided to support. + * That's the set we are going to support as well. + */ + opmenu0 = readl(ispi->sregs + OPMENU0); + opmenu1 = readl(ispi->sregs + OPMENU1); + + if (opmenu0 && opmenu1) { + for (i = 0; i < ARRAY_SIZE(ispi->opcodes) / 2; i++) { + ispi->opcodes[i] = opmenu0 >> i * 8; + ispi->opcodes[i + 4] = opmenu1 >> i * 8; + } + } + } + + intel_spi_dump_regs(ispi); + + return 0; +} + +static int intel_spi_opcode_index(struct intel_spi *ispi, u8 opcode, int optype) +{ + int i; + int preop; + + if (ispi->locked) { + for (i = 0; i < ARRAY_SIZE(ispi->opcodes); i++) + if (ispi->opcodes[i] == opcode) + return i; + + return -EINVAL; + } + + /* The lock is off, so just use index 0 */ + writel(opcode, ispi->sregs + OPMENU0); + preop = readw(ispi->sregs + PREOP_OPTYPE); + writel(optype << 16 | preop, ispi->sregs + PREOP_OPTYPE); + + return 0; +} + +static int intel_spi_hw_cycle(struct intel_spi *ispi, u8 opcode, size_t len) +{ + u32 val, status; + int ret; + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FCYCLE_MASK | HSFSTS_CTL_FDBC_MASK); + + switch (opcode) { + case SPINOR_OP_RDID: + val |= HSFSTS_CTL_FCYCLE_RDID; + break; + case SPINOR_OP_WRSR: + val |= HSFSTS_CTL_FCYCLE_WRSR; + break; + case SPINOR_OP_RDSR: + val |= HSFSTS_CTL_FCYCLE_RDSR; + break; + default: + return -EINVAL; + } + + if (len > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + val |= (len - 1) << HSFSTS_CTL_FDBC_SHIFT; + val |= HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + return -EIO; + else if (status & HSFSTS_CTL_AEL) + return -EACCES; + + return 0; +} + +static int intel_spi_sw_cycle(struct intel_spi *ispi, u8 opcode, size_t len, + int optype) +{ + u32 val = 0, status; + u8 atomic_preopcode; + int ret; + + ret = intel_spi_opcode_index(ispi, opcode, optype); + if (ret < 0) + return ret; + + if (len > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + /* + * Always clear it after each SW sequencer operation regardless + * of whether it is successful or not. + */ + atomic_preopcode = ispi->atomic_preopcode; + ispi->atomic_preopcode = 0; + + /* Only mark 'Data Cycle' bit when there is data to be transferred */ + if (len > 0) + val = ((len - 1) << SSFSTS_CTL_DBC_SHIFT) | SSFSTS_CTL_DS; + val |= ret << SSFSTS_CTL_COP_SHIFT; + val |= SSFSTS_CTL_FCERR | SSFSTS_CTL_FDONE; + val |= SSFSTS_CTL_SCGO; + if (atomic_preopcode) { + u16 preop; + + switch (optype) { + case OPTYPE_WRITE_NO_ADDR: + case OPTYPE_WRITE_WITH_ADDR: + /* Pick matching preopcode for the atomic sequence */ + preop = readw(ispi->sregs + PREOP_OPTYPE); + if ((preop & 0xff) == atomic_preopcode) + ; /* Do nothing */ + else if ((preop >> 8) == atomic_preopcode) + val |= SSFSTS_CTL_SPOP; + else + return -EINVAL; + + /* Enable atomic sequence */ + val |= SSFSTS_CTL_ACS; + break; + + default: + return -EINVAL; + } + + } + writel(val, ispi->sregs + SSFSTS_CTL); + + ret = intel_spi_wait_sw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->sregs + SSFSTS_CTL); + if (status & SSFSTS_CTL_FCERR) + return -EIO; + else if (status & SSFSTS_CTL_AEL) + return -EACCES; + + return 0; +} + +static int intel_spi_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, + size_t len) +{ + struct intel_spi *ispi = nor->priv; + int ret; + + /* Address of the first chip */ + writel(0, ispi->base + FADDR); + + if (ispi->swseq_reg) + ret = intel_spi_sw_cycle(ispi, opcode, len, + OPTYPE_READ_NO_ADDR); + else + ret = intel_spi_hw_cycle(ispi, opcode, len); + + if (ret) + return ret; + + return intel_spi_read_block(ispi, buf, len); +} + +static int intel_spi_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, + size_t len) +{ + struct intel_spi *ispi = nor->priv; + int ret; + + /* + * This is handled with atomic operation and preop code in Intel + * controller so we only verify that it is available. If the + * controller is not locked, program the opcode to the PREOP + * register for later use. + * + * When hardware sequencer is used there is no need to program + * any opcodes (it handles them automatically as part of a command). + */ + if (opcode == SPINOR_OP_WREN) { + u16 preop; + + if (!ispi->swseq_reg) + return 0; + + preop = readw(ispi->sregs + PREOP_OPTYPE); + if ((preop & 0xff) != opcode && (preop >> 8) != opcode) { + if (ispi->locked) + return -EINVAL; + writel(opcode, ispi->sregs + PREOP_OPTYPE); + } + + /* + * This enables atomic sequence on next SW sycle. Will + * be cleared after next operation. + */ + ispi->atomic_preopcode = opcode; + return 0; + } + + /* + * We hope that HW sequencer will do the right thing automatically and + * with the SW sequencer we cannot use preopcode anyway, so just ignore + * the Write Disable operation and pretend it was completed + * successfully. + */ + if (opcode == SPINOR_OP_WRDI) + return 0; + + writel(0, ispi->base + FADDR); + + /* Write the value beforehand */ + ret = intel_spi_write_block(ispi, buf, len); + if (ret) + return ret; + + if (ispi->swseq_reg) + return intel_spi_sw_cycle(ispi, opcode, len, + OPTYPE_WRITE_NO_ADDR); + return intel_spi_hw_cycle(ispi, opcode, len); +} + +static ssize_t intel_spi_read(struct spi_nor *nor, loff_t from, size_t len, + u_char *read_buf) +{ + struct intel_spi *ispi = nor->priv; + size_t block_size, retlen = 0; + u32 val, status; + ssize_t ret; + + /* + * Atomic sequence is not expected with HW sequencer reads. Make + * sure it is cleared regardless. + */ + if (WARN_ON_ONCE(ispi->atomic_preopcode)) + ispi->atomic_preopcode = 0; + + switch (nor->read_opcode) { + case SPINOR_OP_READ: + case SPINOR_OP_READ_FAST: + case SPINOR_OP_READ_4B: + case SPINOR_OP_READ_FAST_4B: + break; + default: + return -EINVAL; + } + + while (len > 0) { + block_size = min_t(size_t, len, INTEL_SPI_FIFO_SZ); + + /* Read cannot cross 4K boundary */ + block_size = min_t(loff_t, from + block_size, + round_up(from + 1, SZ_4K)) - from; + + writel(from, ispi->base + FADDR); + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); + val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= (block_size - 1) << HSFSTS_CTL_FDBC_SHIFT; + val |= HSFSTS_CTL_FCYCLE_READ; + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + ret = -EIO; + else if (status & HSFSTS_CTL_AEL) + ret = -EACCES; + + if (ret < 0) { + dev_err(ispi->dev, "read error: %llx: %#x\n", from, + status); + return ret; + } + + ret = intel_spi_read_block(ispi, read_buf, block_size); + if (ret) + return ret; + + len -= block_size; + from += block_size; + retlen += block_size; + read_buf += block_size; + } + + return retlen; +} + +static ssize_t intel_spi_write(struct spi_nor *nor, loff_t to, size_t len, + const u_char *write_buf) +{ + struct intel_spi *ispi = nor->priv; + size_t block_size, retlen = 0; + u32 val, status; + ssize_t ret; + + /* Not needed with HW sequencer write, make sure it is cleared */ + ispi->atomic_preopcode = 0; + + while (len > 0) { + block_size = min_t(size_t, len, INTEL_SPI_FIFO_SZ); + + /* Write cannot cross 4K boundary */ + block_size = min_t(loff_t, to + block_size, + round_up(to + 1, SZ_4K)) - to; + + writel(to, ispi->base + FADDR); + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); + val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= (block_size - 1) << HSFSTS_CTL_FDBC_SHIFT; + val |= HSFSTS_CTL_FCYCLE_WRITE; + + ret = intel_spi_write_block(ispi, write_buf, block_size); + if (ret) { + dev_err(ispi->dev, "failed to write block\n"); + return ret; + } + + /* Start the write now */ + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) { + dev_err(ispi->dev, "timeout\n"); + return ret; + } + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + ret = -EIO; + else if (status & HSFSTS_CTL_AEL) + ret = -EACCES; + + if (ret < 0) { + dev_err(ispi->dev, "write error: %llx: %#x\n", to, + status); + return ret; + } + + len -= block_size; + to += block_size; + retlen += block_size; + write_buf += block_size; + } + + return retlen; +} + +static int intel_spi_erase(struct spi_nor *nor, loff_t offs) +{ + size_t erase_size, len = nor->mtd.erasesize; + struct intel_spi *ispi = nor->priv; + u32 val, status, cmd; + int ret; + + /* If the hardware can do 64k erase use that when possible */ + if (len >= SZ_64K && ispi->erase_64k) { + cmd = HSFSTS_CTL_FCYCLE_ERASE_64K; + erase_size = SZ_64K; + } else { + cmd = HSFSTS_CTL_FCYCLE_ERASE; + erase_size = SZ_4K; + } + + if (ispi->swseq_erase) { + while (len > 0) { + writel(offs, ispi->base + FADDR); + + ret = intel_spi_sw_cycle(ispi, nor->erase_opcode, + 0, OPTYPE_WRITE_WITH_ADDR); + if (ret) + return ret; + + offs += erase_size; + len -= erase_size; + } + + return 0; + } + + /* Not needed with HW sequencer erase, make sure it is cleared */ + ispi->atomic_preopcode = 0; + + while (len > 0) { + writel(offs, ispi->base + FADDR); + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); + val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= cmd; + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + return -EIO; + else if (status & HSFSTS_CTL_AEL) + return -EACCES; + + offs += erase_size; + len -= erase_size; + } + + return 0; +} + +static bool intel_spi_is_protected(const struct intel_spi *ispi, + unsigned int base, unsigned int limit) +{ + int i; + + for (i = 0; i < ispi->pr_num; i++) { + u32 pr_base, pr_limit, pr_value; + + pr_value = readl(ispi->pregs + PR(i)); + if (!(pr_value & (PR_WPE | PR_RPE))) + continue; + + pr_limit = (pr_value & PR_LIMIT_MASK) >> PR_LIMIT_SHIFT; + pr_base = pr_value & PR_BASE_MASK; + + if (pr_base >= base && pr_limit <= limit) + return true; + } + + return false; +} + +/* + * There will be a single partition holding all enabled flash regions. We + * call this "BIOS". + */ +static void intel_spi_fill_partition(struct intel_spi *ispi, + struct mtd_partition *part) +{ + u64 end; + int i; + + mem_clear(part, sizeof(*part)); + + /* Start from the mandatory descriptor region */ + part->size = 4096; + part->name = "BIOS"; + + /* + * Now try to find where this partition ends based on the flash + * region registers. + */ + for (i = 1; i < ispi->nregions; i++) { + u32 region, base, limit; + + region = readl(ispi->base + FREG(i)); + base = region & FREG_BASE_MASK; + limit = (region & FREG_LIMIT_MASK) >> FREG_LIMIT_SHIFT; + + if (base >= limit || limit == 0) + continue; + + /* + * If any of the regions have protection bits set, make the + * whole partition read-only to be on the safe side. + */ + if (intel_spi_is_protected(ispi, base, limit)) + ispi->writeable = false; + + end = (limit << 12) + 4096; + if (end > part->size) + part->size = end; + } +} + +static const struct spi_nor_controller_ops intel_spi_controller_ops = { + .read_reg = intel_spi_read_reg, + .write_reg = intel_spi_write_reg, + .read = intel_spi_read, + .write = intel_spi_write, + .erase = intel_spi_erase, +}; + +struct intel_spi *intel_spi_probe(struct device *dev, + struct resource *mem, const struct intel_spi_boardinfo *info) +{ + const struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_READ | + SNOR_HWCAPS_READ_FAST | + SNOR_HWCAPS_PP, + }; + struct mtd_partition part; + struct intel_spi *ispi; + int ret; + + if (!info || !mem) + return ERR_PTR(-EINVAL); + + ispi = devm_kzalloc(dev, sizeof(*ispi), GFP_KERNEL); + if (!ispi) + return ERR_PTR(-ENOMEM); + + ispi->base = devm_ioremap_resource(dev, mem); + if (IS_ERR(ispi->base)) + return ERR_CAST(ispi->base); + + ispi->dev = dev; + ispi->info = info; + ispi->writeable = info->writeable; + + ret = intel_spi_init(ispi); + if (ret) + return ERR_PTR(ret); + + ispi->nor.dev = ispi->dev; + ispi->nor.priv = ispi; + ispi->nor.controller_ops = &intel_spi_controller_ops; + + ret = spi_nor_scan(&ispi->nor, NULL, &hwcaps); + if (ret) { + dev_info(dev, "failed to locate the chip\n"); + return ERR_PTR(ret); + } + + intel_spi_fill_partition(ispi, &part); + + /* Prevent writes if not explicitly enabled */ + if (!ispi->writeable || !writeable) + ispi->nor.mtd.flags &= ~MTD_WRITEABLE; + + ret = mtd_device_register(&ispi->nor.mtd, &part, 1); + if (ret) + return ERR_PTR(ret); + + return ispi; +} +EXPORT_SYMBOL_GPL(intel_spi_probe); + +int intel_spi_remove(struct intel_spi *ispi) +{ + return mtd_device_unregister(&ispi->nor.mtd); +} +EXPORT_SYMBOL_GPL(intel_spi_remove); + +MODULE_DESCRIPTION("Intel PCH/PCU SPI flash core driver"); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL v2"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c new file mode 100644 index 000000000000..b9f294860ce4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c @@ -0,0 +1,167 @@ +/* + * Intel PCH/PCU SPI flash platform driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include + +#include "intel_spi.h" + +#define PCI_VENDOR_ID_D1527_LPC (0x8c54) + +#define BIOS_CNTL (0xdc) +#define BIOS_CNTL_SRC_SHIFT 2 +#define BIOS_CNTL_WN BIT(0) +#define BIOS_CNTL_BLE BIT(1) +#define BIOS_CNTL_SMM_BMP BIT(5) + +#define RCBABASE 0xf0 + +int intel_spi_platform_debug = 0; +module_param(intel_spi_platform_debug, int, S_IRUGO | S_IWUSR); +int intel_spi_platform_error = 0; +module_param(intel_spi_platform_error, int, S_IRUGO | S_IWUSR); + +static bool writeable; +module_param(writeable, bool, 0); +MODULE_PARM_DESC(writeable, "Enable write access to BIOS (default=0)"); + +#define INTEL_SPI_PLATFORM_VERBOSE(fmt, args...) do { \ + if (intel_spi_platform_debug) { \ + printk(KERN_INFO "[INTEL_SPI_PLATFORM][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ + } while (0) + +#define INTEL_SPI_PLATFORM_ERROR(fmt, args...) do { \ + if (intel_spi_platform_error) { \ + printk(KERN_ERR "[INTEL_SPI_PLATFORM][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ + } while (0) + +static void intel_spi_enable_bios_write(struct pci_dev *pci_dev, struct intel_spi_boardinfo *info) +{ + u8 bios_cntl, value, want, new; + + if (writeable) { + pci_read_config_byte(pci_dev, BIOS_CNTL, &bios_cntl); + want = bios_cntl; + value = (bios_cntl >> BIOS_CNTL_SRC_SHIFT) & 0x3 ; + if (value == 0x3) { + INTEL_SPI_PLATFORM_VERBOSE("invalid prefetching/caching settings, "); + } else { + INTEL_SPI_PLATFORM_VERBOSE("prefetching %sabled, caching %sabled, ", + (value & 0x2) ? "en" : "dis", + (value & 0x1) ? "dis" : "en"); + } + + /* writeable regardless */ + want &= ~BIOS_CNTL_SMM_BMP; + /* write enable */ + want |= BIOS_CNTL_WN; + /* BIOS lock disabled */ + want &= ~BIOS_CNTL_BLE; + INTEL_SPI_PLATFORM_VERBOSE("bios cntl is:0x%x, want is:0x%x\n", bios_cntl, want); + pci_write_config_byte(pci_dev, BIOS_CNTL, want); + pci_read_config_byte(pci_dev, BIOS_CNTL, &new); + INTEL_SPI_PLATFORM_VERBOSE("\nBIOS_CNTL = 0x%02x: ", new); + INTEL_SPI_PLATFORM_VERBOSE("BIOS Lock Enable: %sabled, ", (new & BIOS_CNTL_BLE) ? "en" : "dis"); + INTEL_SPI_PLATFORM_VERBOSE("BIOS Write Enable: %sabled\n", (new & BIOS_CNTL_WN) ? "en" : "dis"); + + if (new & BIOS_CNTL_SMM_BMP) { + INTEL_SPI_PLATFORM_VERBOSE("BIOS region SMM protection is enabled!\n"); + } + + if (new != want) { + INTEL_SPI_PLATFORM_VERBOSE("Warning: Setting Bios Control at 0x%x from 0x%02x to 0x%02x failed.\n" + "New value is 0x%02x.\n", BIOS_CNTL, value, want, new); + } else { + info->writeable = !!(new & BIOS_CNTL_WN); + } + INTEL_SPI_PLATFORM_VERBOSE("Bios Control is 0x%x\n", new); + } else { + INTEL_SPI_PLATFORM_VERBOSE("Bios don't write\n"); + } + + return ; +} + +static int intel_spi_platform_probe(struct platform_device *pdev) +{ + struct intel_spi_boardinfo *info; + struct intel_spi *ispi; + struct resource *mem; + struct pci_dev *pci_dev = NULL; + u32 rcba; + + info = dev_get_platdata(&pdev->dev); + if (!info) + return -EINVAL; + + pci_dev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_VENDOR_ID_D1527_LPC, pci_dev); + if (!pci_dev) { + INTEL_SPI_PLATFORM_ERROR("pci_get_device(0x8086, 0x8c54) failed!\n"); + return -1; + } + + switch (info->type) { + case INTEL_SPI_LPT: + pci_read_config_dword(pci_dev, RCBABASE, &rcba); + if (rcba & 1) { + intel_spi_enable_bios_write(pci_dev, info); + } + break; + default: + INTEL_SPI_PLATFORM_ERROR("info type[%d] not need set writeable.\n",info->type); + break; + } + INTEL_SPI_PLATFORM_VERBOSE("intel spi boardinfo writeable is %sabled\n", + info->writeable ? "en" : "dis"); + + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + ispi = intel_spi_probe(&pdev->dev, mem, info); + if (IS_ERR(ispi)) + return PTR_ERR(ispi); + + platform_set_drvdata(pdev, ispi); + return 0; +} + +static int intel_spi_platform_remove(struct platform_device *pdev) +{ + struct intel_spi *ispi = platform_get_drvdata(pdev); + + return intel_spi_remove(ispi); +} + +static struct of_device_id intel_spi_match[] = { + { + .compatible = "spi-c224", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, intel_spi_match); + +static struct platform_driver intel_spi_platform_driver = { + .probe = intel_spi_platform_probe, + .remove = intel_spi_platform_remove, + .driver = { + .name = "intel-spi", + .of_match_table = intel_spi_match, + }, +}; + +module_platform_driver(intel_spi_platform_driver); + +MODULE_DESCRIPTION("Intel PCH/PCU SPI flash platform driver"); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:intel-spi"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile new file mode 100644 index 000000000000..a0d8a7bc146b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile @@ -0,0 +1,35 @@ +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +#ifdef ENABLE_GCOV +#ifeq ($(ENABLE_GCOV), y) +#EXTRA_CFLAGS+= -fprofile-arcs -ftest-coverage -lgcov +#endif +#endif # ENABLE_GCOV + +obj-m := wb_lm75.o +obj-m += wb_tmp401.o +obj-m += wb_i2c_mux_pca9641.o +obj-m += wb_i2c_mux_pca954x.o +obj-m += wb_i2c_i801.o +obj-m += wb_i2c_algo_bit.o +obj-m += wb_i2c_gpio.o +obj-m += wb_i2c_gpio_device.o +obj-m += wb_at24.o +obj-m += wb_pmbus_core.o +obj-m += wb_csu550.o +obj-m += wb_ina3221.o +obj-m += wb_isl68137.o +obj-m += wb_tps53622.o +obj-m += wb_ucd9000.o +obj-m += wb_xdpe12284.o + +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + cp -p $(PWD)/*.ko $(module_out_put_dir) +clean: + rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd $(PWD)/*.mod + rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order + rm -rf $(PWD)/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c new file mode 100644 index 000000000000..1075e6ef18de --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c @@ -0,0 +1,861 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * at24.c - handle most I2C EEPROMs + * + * Copyright (C) 2005-2007 David Brownell + * Copyright (C) 2008 Wolfram Sang, Pengutronix + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Address pointer is 16 bit. */ +#define AT24_FLAG_ADDR16 BIT(7) +/* sysfs-entry will be read-only. */ +#define AT24_FLAG_READONLY BIT(6) +/* sysfs-entry will be world-readable. */ +#define AT24_FLAG_IRUGO BIT(5) +/* Take always 8 addresses (24c00). */ +#define AT24_FLAG_TAKE8ADDR BIT(4) +/* Factory-programmed serial number. */ +#define AT24_FLAG_SERIAL BIT(3) +/* Factory-programmed mac address. */ +#define AT24_FLAG_MAC BIT(2) +/* Does not auto-rollover reads to the next slave address. */ +#define AT24_FLAG_NO_RDROL BIT(1) + +/* + * I2C EEPROMs from most vendors are inexpensive and mostly interchangeable. + * Differences between different vendor product lines (like Atmel AT24C or + * MicroChip 24LC, etc) won't much matter for typical read/write access. + * There are also I2C RAM chips, likewise interchangeable. One example + * would be the PCF8570, which acts like a 24c02 EEPROM (256 bytes). + * + * However, misconfiguration can lose data. "Set 16-bit memory address" + * to a part with 8-bit addressing will overwrite data. Writing with too + * big a page size also loses data. And it's not safe to assume that the + * conventional addresses 0x50..0x57 only hold eeproms; a PCF8563 RTC + * uses 0x51, for just one example. + * + * Accordingly, explicit board-specific configuration data should be used + * in almost all cases. (One partial exception is an SMBus used to access + * "SPD" data for DRAM sticks. Those only use 24c02 EEPROMs.) + * + * So this driver uses "new style" I2C driver binding, expecting to be + * told what devices exist. That may be in arch/X/mach-Y/board-Z.c or + * similar kernel-resident tables; or, configuration data coming from + * a bootloader. + * + * Other than binding model, current differences from "eeprom" driver are + * that this one handles write access and isn't restricted to 24c02 devices. + * It also handles larger devices (32 kbit and up) with two-byte addresses, + * which won't work on pure SMBus systems. + */ + +struct at24_client { + struct i2c_client *client; + struct regmap *regmap; +}; + +struct at24_data { + /* + * Lock protects against activities from other Linux tasks, + * but not from changes by other I2C masters. + */ + struct mutex lock; + + unsigned int write_max; + unsigned int num_addresses; + unsigned int offset_adj; + + u32 byte_len; + u16 page_size; + u8 flags; + + struct nvmem_device *nvmem; + struct regulator *vcc_reg; + void (*read_post)(unsigned int off, char *buf, size_t count); + + /* + * Some chips tie up multiple I2C addresses; dummy devices reserve + * them for us, and we'll use them with SMBus calls. + */ + struct at24_client client[]; +}; + +/* + * 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 int at24_io_limit = 128; +module_param_named(io_limit, at24_io_limit, uint, 0); +MODULE_PARM_DESC(at24_io_limit, "Maximum bytes per I/O (default 128)"); + +/* + * Specs often allow 5 msec for a page write, sometimes 20 msec; + * it's important to recover from write timeouts. + */ +static unsigned int at24_write_timeout = 25; +module_param_named(write_timeout, at24_write_timeout, uint, 0); +MODULE_PARM_DESC(at24_write_timeout, "Time (in ms) to try writes (default 25)"); + +struct at24_chip_data { + u32 byte_len; + u8 flags; + void (*read_post)(unsigned int off, char *buf, size_t count); +}; + +#define AT24_CHIP_DATA(_name, _len, _flags) \ + static const struct at24_chip_data _name = { \ + .byte_len = _len, .flags = _flags, \ + } + +#define AT24_CHIP_DATA_CB(_name, _len, _flags, _read_post) \ + static const struct at24_chip_data _name = { \ + .byte_len = _len, .flags = _flags, \ + .read_post = _read_post, \ + } + +static void at24_read_post_vaio(unsigned int off, char *buf, size_t count) +{ + int i; + + if (capable(CAP_SYS_ADMIN)) + return; + + /* + * Hide VAIO private settings to regular users: + * - BIOS passwords: bytes 0x00 to 0x0f + * - UUID: bytes 0x10 to 0x1f + * - Serial number: 0xc0 to 0xdf + */ + for (i = 0; i < count; i++) { + if ((off + i <= 0x1f) || + (off + i >= 0xc0 && off + i <= 0xdf)) + buf[i] = 0; + } +} + +/* needs 8 addresses as A0-A2 are ignored */ +AT24_CHIP_DATA(at24_data_24c00, 128 / 8, AT24_FLAG_TAKE8ADDR); +/* old variants can't be handled with this generic entry! */ +AT24_CHIP_DATA(at24_data_24c01, 1024 / 8, 0); +AT24_CHIP_DATA(at24_data_24cs01, 16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24c02, 2048 / 8, AT24_FLAG_IRUGO); +AT24_CHIP_DATA(at24_data_24cs02, 16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24mac402, 48 / 8, + AT24_FLAG_MAC | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24mac602, 64 / 8, + AT24_FLAG_MAC | AT24_FLAG_READONLY); +/* spd is a 24c02 in memory DIMMs */ +AT24_CHIP_DATA(at24_data_spd, 2048 / 8, + AT24_FLAG_READONLY | AT24_FLAG_IRUGO); +/* 24c02_vaio is a 24c02 on some Sony laptops */ +AT24_CHIP_DATA_CB(at24_data_24c02_vaio, 2048 / 8, + AT24_FLAG_READONLY | AT24_FLAG_IRUGO, + at24_read_post_vaio); +AT24_CHIP_DATA(at24_data_24c04, 4096 / 8, 0); +AT24_CHIP_DATA(at24_data_24cs04, 16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +/* 24rf08 quirk is handled at i2c-core */ +AT24_CHIP_DATA(at24_data_24c08, 8192 / 8, 0); +AT24_CHIP_DATA(at24_data_24cs08, 16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24c16, 16384 / 8, 0); +AT24_CHIP_DATA(at24_data_24cs16, 16, + AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24c32, 32768 / 8, AT24_FLAG_ADDR16); +AT24_CHIP_DATA(at24_data_24cs32, 16, + AT24_FLAG_ADDR16 | AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24c64, 65536 / 8, AT24_FLAG_ADDR16 | AT24_FLAG_IRUGO); +AT24_CHIP_DATA(at24_data_24cs64, 16, + AT24_FLAG_ADDR16 | AT24_FLAG_SERIAL | AT24_FLAG_READONLY); +AT24_CHIP_DATA(at24_data_24c128, 131072 / 8, AT24_FLAG_ADDR16); +AT24_CHIP_DATA(at24_data_24c256, 262144 / 8, AT24_FLAG_ADDR16); +AT24_CHIP_DATA(at24_data_24c512, 524288 / 8, AT24_FLAG_ADDR16); +AT24_CHIP_DATA(at24_data_24c1024, 1048576 / 8, AT24_FLAG_ADDR16); +AT24_CHIP_DATA(at24_data_24c2048, 2097152 / 8, AT24_FLAG_ADDR16); +/* identical to 24c08 ? */ +AT24_CHIP_DATA(at24_data_INT3499, 8192 / 8, 0); + +static const struct i2c_device_id at24_ids[] = { + { "wb_24c00", (kernel_ulong_t)&at24_data_24c00 }, + { "wb_24c01", (kernel_ulong_t)&at24_data_24c01 }, + { "wb_24cs01", (kernel_ulong_t)&at24_data_24cs01 }, + { "wb_24c02", (kernel_ulong_t)&at24_data_24c02 }, + { "wb_24cs02", (kernel_ulong_t)&at24_data_24cs02 }, + { "wb_24mac402", (kernel_ulong_t)&at24_data_24mac402 }, + { "wb_24mac602", (kernel_ulong_t)&at24_data_24mac602 }, + { "wb_spd", (kernel_ulong_t)&at24_data_spd }, + { "wb_24c02-vaio", (kernel_ulong_t)&at24_data_24c02_vaio }, + { "wb_24c04", (kernel_ulong_t)&at24_data_24c04 }, + { "wb_24cs04", (kernel_ulong_t)&at24_data_24cs04 }, + { "wb_24c08", (kernel_ulong_t)&at24_data_24c08 }, + { "wb_24cs08", (kernel_ulong_t)&at24_data_24cs08 }, + { "wb_24c16", (kernel_ulong_t)&at24_data_24c16 }, + { "wb_24cs16", (kernel_ulong_t)&at24_data_24cs16 }, + { "wb_24c32", (kernel_ulong_t)&at24_data_24c32 }, + { "wb_24cs32", (kernel_ulong_t)&at24_data_24cs32 }, + { "wb_24c64", (kernel_ulong_t)&at24_data_24c64 }, + { "wb_24cs64", (kernel_ulong_t)&at24_data_24cs64 }, + { "wb_24c128", (kernel_ulong_t)&at24_data_24c128 }, + { "wb_24c256", (kernel_ulong_t)&at24_data_24c256 }, + { "wb_24c512", (kernel_ulong_t)&at24_data_24c512 }, + { "wb_24c1024", (kernel_ulong_t)&at24_data_24c1024 }, + { "wb_24c2048", (kernel_ulong_t)&at24_data_24c2048 }, + { "wb_at24", 0 }, + { /* END OF LIST */ } +}; +MODULE_DEVICE_TABLE(i2c, at24_ids); + +static const struct of_device_id at24_of_match[] = { + { .compatible = "atmel,24c00", .data = &at24_data_24c00 }, + { .compatible = "atmel,24c01", .data = &at24_data_24c01 }, + { .compatible = "atmel,24cs01", .data = &at24_data_24cs01 }, + { .compatible = "atmel,24c02", .data = &at24_data_24c02 }, + { .compatible = "atmel,24cs02", .data = &at24_data_24cs02 }, + { .compatible = "atmel,24mac402", .data = &at24_data_24mac402 }, + { .compatible = "atmel,24mac602", .data = &at24_data_24mac602 }, + { .compatible = "atmel,spd", .data = &at24_data_spd }, + { .compatible = "atmel,24c04", .data = &at24_data_24c04 }, + { .compatible = "atmel,24cs04", .data = &at24_data_24cs04 }, + { .compatible = "atmel,24c08", .data = &at24_data_24c08 }, + { .compatible = "atmel,24cs08", .data = &at24_data_24cs08 }, + { .compatible = "atmel,24c16", .data = &at24_data_24c16 }, + { .compatible = "atmel,24cs16", .data = &at24_data_24cs16 }, + { .compatible = "atmel,24c32", .data = &at24_data_24c32 }, + { .compatible = "atmel,24cs32", .data = &at24_data_24cs32 }, + { .compatible = "atmel,24c64", .data = &at24_data_24c64 }, + { .compatible = "atmel,24cs64", .data = &at24_data_24cs64 }, + { .compatible = "atmel,24c128", .data = &at24_data_24c128 }, + { .compatible = "atmel,24c256", .data = &at24_data_24c256 }, + { .compatible = "atmel,24c512", .data = &at24_data_24c512 }, + { .compatible = "atmel,24c1024", .data = &at24_data_24c1024 }, + { .compatible = "atmel,24c2048", .data = &at24_data_24c2048 }, + { /* END OF LIST */ }, +}; +MODULE_DEVICE_TABLE(of, at24_of_match); + +static const struct acpi_device_id __maybe_unused at24_acpi_ids[] = { + { "INT3499", (kernel_ulong_t)&at24_data_INT3499 }, + { "TPF0001", (kernel_ulong_t)&at24_data_24c1024 }, + { /* END OF LIST */ } +}; +MODULE_DEVICE_TABLE(acpi, at24_acpi_ids); + +/* + * This routine supports chips which consume multiple I2C addresses. It + * computes the addressing information to be used for a given r/w request. + * Assumes that sanity checks for offset happened at sysfs-layer. + * + * Slave address and byte offset derive from the offset. Always + * set the byte address; on a multi-master board, another master + * may have changed the chip's "current" address pointer. + */ +static struct at24_client *at24_translate_offset(struct at24_data *at24, + unsigned int *offset) +{ + unsigned int i; + + if (at24->flags & AT24_FLAG_ADDR16) { + i = *offset >> 16; + *offset &= 0xffff; + } else { + i = *offset >> 8; + *offset &= 0xff; + } + + return &at24->client[i]; +} + +static struct device *at24_base_client_dev(struct at24_data *at24) +{ + return &at24->client[0].client->dev; +} + +static size_t at24_adjust_read_count(struct at24_data *at24, + unsigned int offset, size_t count) +{ + unsigned int bits; + size_t remainder; + + /* + * In case of multi-address chips that don't rollover reads to + * the next slave address: truncate the count to the slave boundary, + * so that the read never straddles slaves. + */ + if (at24->flags & AT24_FLAG_NO_RDROL) { + bits = (at24->flags & AT24_FLAG_ADDR16) ? 16 : 8; + remainder = BIT(bits) - offset; + if (count > remainder) + count = remainder; + } + + if (count > at24_io_limit) + count = at24_io_limit; + + return count; +} + +static ssize_t at24_regmap_read(struct at24_data *at24, char *buf, + unsigned int offset, size_t count) +{ + unsigned long timeout, read_time; + struct at24_client *at24_client; + struct i2c_client *client; + struct regmap *regmap; + int ret; + + at24_client = at24_translate_offset(at24, &offset); + regmap = at24_client->regmap; + client = at24_client->client; + count = at24_adjust_read_count(at24, offset, count); + + /* adjust offset for mac and serial read ops */ + offset += at24->offset_adj; + + timeout = jiffies + msecs_to_jiffies(at24_write_timeout); + do { + /* + * The timestamp shall be taken before the actual operation + * to avoid a premature timeout in case of high CPU load. + */ + read_time = jiffies; + + ret = regmap_bulk_read(regmap, offset, buf, count); + dev_dbg(&client->dev, "read %zu@%d --> %d (%ld)\n", + count, offset, ret, jiffies); + if (!ret) + return count; + + usleep_range(1000, 1500); + } while (time_before(read_time, timeout)); + + return -ETIMEDOUT; +} + +/* + * Note that if the hardware write-protect pin is pulled high, the whole + * chip is normally write protected. But there are plenty of product + * variants here, including OTP fuses and partial chip protect. + * + * We only use page mode writes; the alternative is sloooow. These routines + * write at most one page. + */ + +static size_t at24_adjust_write_count(struct at24_data *at24, + unsigned int offset, size_t count) +{ + unsigned int next_page; + + /* write_max is at most a page */ + if (count > at24->write_max) + count = at24->write_max; + + /* Never roll over backwards, to the start of this page */ + next_page = roundup(offset + 1, at24->page_size); + if (offset + count > next_page) + count = next_page - offset; + + return count; +} + +static ssize_t at24_regmap_write(struct at24_data *at24, const char *buf, + unsigned int offset, size_t count) +{ + unsigned long timeout, write_time; + struct at24_client *at24_client; + struct i2c_client *client; + struct regmap *regmap; + int ret; + + at24_client = at24_translate_offset(at24, &offset); + regmap = at24_client->regmap; + client = at24_client->client; + count = at24_adjust_write_count(at24, offset, count); + timeout = jiffies + msecs_to_jiffies(at24_write_timeout); + + do { + /* + * The timestamp shall be taken before the actual operation + * to avoid a premature timeout in case of high CPU load. + */ + write_time = jiffies; + + ret = regmap_bulk_write(regmap, offset, buf, count); + dev_dbg(&client->dev, "write %zu@%d --> %d (%ld)\n", + count, offset, ret, jiffies); + if (!ret) + return count; + + usleep_range(1000, 1500); + } while (time_before(write_time, timeout)); + + return -ETIMEDOUT; +} + +static int at24_read(void *priv, unsigned int off, void *val, size_t count) +{ + struct at24_data *at24; + struct device *dev; + char *buf = val; + int i, ret; + + at24 = priv; + dev = at24_base_client_dev(at24); + + if (unlikely(!count)) + return count; + + if (off + count > at24->byte_len) + return -EINVAL; + + ret = pm_runtime_get_sync(dev); + if (ret < 0) { + pm_runtime_put_noidle(dev); + return ret; + } + + /* + * Read data from chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&at24->lock); + + for (i = 0; count; i += ret, count -= ret) { + ret = at24_regmap_read(at24, buf + i, off + i, count); + if (ret < 0) { + mutex_unlock(&at24->lock); + pm_runtime_put(dev); + return ret; + } + } + + mutex_unlock(&at24->lock); + + pm_runtime_put(dev); + + if (unlikely(at24->read_post)) + at24->read_post(off, buf, i); + + return 0; +} + +static int at24_write(void *priv, unsigned int off, void *val, size_t count) +{ + struct at24_data *at24; + struct device *dev; + char *buf = val; + int ret; + + at24 = priv; + dev = at24_base_client_dev(at24); + + if (unlikely(!count)) + return -EINVAL; + + if (off + count > at24->byte_len) + return -EINVAL; + + ret = pm_runtime_get_sync(dev); + if (ret < 0) { + pm_runtime_put_noidle(dev); + return ret; + } + + /* + * Write data to chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&at24->lock); + + while (count) { + ret = at24_regmap_write(at24, buf, off, count); + if (ret < 0) { + mutex_unlock(&at24->lock); + pm_runtime_put(dev); + return ret; + } + buf += ret; + off += ret; + count -= ret; + } + + mutex_unlock(&at24->lock); + + pm_runtime_put(dev); + + return 0; +} + +static const struct at24_chip_data *at24_get_chip_data(struct device *dev) +{ + struct device_node *of_node = dev->of_node; + const struct at24_chip_data *cdata; + const struct i2c_device_id *id; + + id = i2c_match_id(at24_ids, to_i2c_client(dev)); + + /* + * The I2C core allows OF nodes compatibles to match against the + * I2C device ID table as a fallback, so check not only if an OF + * node is present but also if it matches an OF device ID entry. + */ + if (of_node && of_match_device(at24_of_match, dev)) + cdata = of_device_get_match_data(dev); + else if (id) + cdata = (void *)id->driver_data; + else + cdata = acpi_device_get_match_data(dev); + + if (!cdata) + return ERR_PTR(-ENODEV); + + return cdata; +} + +static int at24_make_dummy_client(struct at24_data *at24, unsigned int index, + struct regmap_config *regmap_config) +{ + struct i2c_client *base_client, *dummy_client; + struct regmap *regmap; + struct device *dev; + + base_client = at24->client[0].client; + dev = &base_client->dev; + + dummy_client = devm_i2c_new_dummy_device(dev, base_client->adapter, + base_client->addr + index); + if (IS_ERR(dummy_client)) + return PTR_ERR(dummy_client); + + regmap = devm_regmap_init_i2c(dummy_client, regmap_config); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); + + at24->client[index].client = dummy_client; + at24->client[index].regmap = regmap; + + return 0; +} + +static unsigned int at24_get_offset_adj(u8 flags, unsigned int byte_len) +{ + if (flags & AT24_FLAG_MAC) { + /* EUI-48 starts from 0x9a, EUI-64 from 0x98 */ + return 0xa0 - byte_len; + } else if (flags & AT24_FLAG_SERIAL && flags & AT24_FLAG_ADDR16) { + /* + * For 16 bit address pointers, the word address must contain + * a '10' sequence in bits 11 and 10 regardless of the + * intended position of the address pointer. + */ + return 0x0800; + } else if (flags & AT24_FLAG_SERIAL) { + /* + * Otherwise the word address must begin with a '10' sequence, + * regardless of the intended address. + */ + return 0x0080; + } else { + return 0; + } +} + +static int at24_probe(struct i2c_client *client) +{ + struct regmap_config regmap_config = { }; + struct nvmem_config nvmem_config = { }; + u32 byte_len, page_size, flags, addrw; + const struct at24_chip_data *cdata; + struct device *dev = &client->dev; + bool i2c_fn_i2c, i2c_fn_block; + unsigned int i, num_addresses; + struct at24_data *at24; + struct regmap *regmap; + bool writable; + u8 test_byte; + int err; + + i2c_fn_i2c = i2c_check_functionality(client->adapter, I2C_FUNC_I2C); + i2c_fn_block = i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_WRITE_I2C_BLOCK); + + cdata = at24_get_chip_data(dev); + if (IS_ERR(cdata)) + return PTR_ERR(cdata); + + err = device_property_read_u32(dev, "pagesize", &page_size); + if (err) + /* + * This is slow, but we can't know all eeproms, so we better + * play safe. Specifying custom eeprom-types via device tree + * or properties is recommended anyhow. + */ + page_size = 1; + + flags = cdata->flags; + if (device_property_present(dev, "read-only")) + flags |= AT24_FLAG_READONLY; + if (device_property_present(dev, "no-read-rollover")) + flags |= AT24_FLAG_NO_RDROL; + + err = device_property_read_u32(dev, "address-width", &addrw); + if (!err) { + switch (addrw) { + case 8: + if (flags & AT24_FLAG_ADDR16) + dev_warn(dev, + "Override address width to be 8, while default is 16\n"); + flags &= ~AT24_FLAG_ADDR16; + break; + case 16: + flags |= AT24_FLAG_ADDR16; + break; + default: + dev_warn(dev, "Bad \"address-width\" property: %u\n", + addrw); + } + } + + err = device_property_read_u32(dev, "size", &byte_len); + if (err) + byte_len = cdata->byte_len; + + if (!i2c_fn_i2c && !i2c_fn_block) + page_size = 1; + + if (!page_size) { + dev_err(dev, "page_size must not be 0!\n"); + return -EINVAL; + } + + if (!is_power_of_2(page_size)) + dev_warn(dev, "page_size looks suspicious (no power of 2)!\n"); + + err = device_property_read_u32(dev, "num-addresses", &num_addresses); + if (err) { + if (flags & AT24_FLAG_TAKE8ADDR) + num_addresses = 8; + else + num_addresses = DIV_ROUND_UP(byte_len, + (flags & AT24_FLAG_ADDR16) ? 65536 : 256); + } + + if ((flags & AT24_FLAG_SERIAL) && (flags & AT24_FLAG_MAC)) { + dev_err(dev, + "invalid device data - cannot have both AT24_FLAG_SERIAL & AT24_FLAG_MAC."); + return -EINVAL; + } + + regmap_config.val_bits = 8; + regmap_config.reg_bits = (flags & AT24_FLAG_ADDR16) ? 16 : 8; + regmap_config.disable_locking = true; + + regmap = devm_regmap_init_i2c(client, ®map_config); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); + + at24 = devm_kzalloc(dev, struct_size(at24, client, num_addresses), + GFP_KERNEL); + if (!at24) + return -ENOMEM; + + mutex_init(&at24->lock); + at24->byte_len = byte_len; + at24->page_size = page_size; + at24->flags = flags; + at24->read_post = cdata->read_post; + at24->num_addresses = num_addresses; + at24->offset_adj = at24_get_offset_adj(flags, byte_len); + at24->client[0].client = client; + at24->client[0].regmap = regmap; + + at24->vcc_reg = devm_regulator_get(dev, "vcc"); + if (IS_ERR(at24->vcc_reg)) + return PTR_ERR(at24->vcc_reg); + + writable = !(flags & AT24_FLAG_READONLY); + if (writable) { + at24->write_max = min_t(unsigned int, + page_size, at24_io_limit); + if (!i2c_fn_i2c && at24->write_max > I2C_SMBUS_BLOCK_MAX) + at24->write_max = I2C_SMBUS_BLOCK_MAX; + } + + /* use dummy devices for multiple-address chips */ + for (i = 1; i < num_addresses; i++) { + err = at24_make_dummy_client(at24, i, ®map_config); + if (err) + return err; + } + + /* + * If the 'label' property is not present for the AT24 EEPROM, + * then nvmem_config.id is initialised to NVMEM_DEVID_AUTO, + * and this will append the 'devid' to the name of the NVMEM + * device. This is purely legacy and the AT24 driver has always + * defaulted to this. However, if the 'label' property is + * present then this means that the name is specified by the + * firmware and this name should be used verbatim and so it is + * not necessary to append the 'devid'. + */ + if (device_property_present(dev, "label")) { + nvmem_config.id = NVMEM_DEVID_NONE; + err = device_property_read_string(dev, "label", + &nvmem_config.name); + if (err) + return err; + } else { + nvmem_config.id = NVMEM_DEVID_AUTO; + nvmem_config.name = dev_name(dev); + } + + nvmem_config.type = NVMEM_TYPE_EEPROM; + nvmem_config.dev = dev; + nvmem_config.read_only = !writable; + nvmem_config.root_only = !(flags & AT24_FLAG_IRUGO); + nvmem_config.owner = THIS_MODULE; + nvmem_config.compat = true; + nvmem_config.base_dev = dev; + nvmem_config.reg_read = at24_read; + nvmem_config.reg_write = at24_write; + nvmem_config.priv = at24; + nvmem_config.stride = 1; + nvmem_config.word_size = 1; + nvmem_config.size = byte_len; + + i2c_set_clientdata(client, at24); + + err = regulator_enable(at24->vcc_reg); + if (err) { + dev_err(dev, "Failed to enable vcc regulator\n"); + return err; + } + + /* enable runtime pm */ + pm_runtime_set_active(dev); + pm_runtime_enable(dev); + + at24->nvmem = devm_nvmem_register(dev, &nvmem_config); + if (IS_ERR(at24->nvmem)) { + pm_runtime_disable(dev); + if (!pm_runtime_status_suspended(dev)) + regulator_disable(at24->vcc_reg); + return PTR_ERR(at24->nvmem); + } + + /* + * Perform a one-byte test read to verify that the + * chip is functional. + */ + err = at24_read(at24, 0, &test_byte, 1); + if (err) { + pm_runtime_disable(dev); + if (!pm_runtime_status_suspended(dev)) + regulator_disable(at24->vcc_reg); + return -ENODEV; + } + + pm_runtime_idle(dev); + + if (writable) + dev_info(dev, "%u byte %s EEPROM, writable, %u bytes/write\n", + byte_len, client->name, at24->write_max); + else + dev_info(dev, "%u byte %s EEPROM, read-only\n", + byte_len, client->name); + + return 0; +} + +static int at24_remove(struct i2c_client *client) +{ + struct at24_data *at24 = i2c_get_clientdata(client); + + pm_runtime_disable(&client->dev); + if (!pm_runtime_status_suspended(&client->dev)) + regulator_disable(at24->vcc_reg); + pm_runtime_set_suspended(&client->dev); + + return 0; +} + +static int __maybe_unused at24_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct at24_data *at24 = i2c_get_clientdata(client); + + return regulator_disable(at24->vcc_reg); +} + +static int __maybe_unused at24_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct at24_data *at24 = i2c_get_clientdata(client); + + return regulator_enable(at24->vcc_reg); +} + +static const struct dev_pm_ops at24_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) + SET_RUNTIME_PM_OPS(at24_suspend, at24_resume, NULL) +}; + +static struct i2c_driver at24_driver = { + .driver = { + .name = "wb_at24", + .pm = &at24_pm_ops, + .of_match_table = at24_of_match, + .acpi_match_table = ACPI_PTR(at24_acpi_ids), + }, + .probe_new = at24_probe, + .remove = at24_remove, + .id_table = at24_ids, +}; + +static int __init at24_init(void) +{ + if (!at24_io_limit) { + pr_err("at24: at24_io_limit must not be 0!\n"); + return -EINVAL; + } + + at24_io_limit = rounddown_pow_of_two(at24_io_limit); + return i2c_add_driver(&at24_driver); +} +module_init(at24_init); + +static void __exit at24_exit(void) +{ + i2c_del_driver(&at24_driver); +} +module_exit(at24_exit); + +MODULE_DESCRIPTION("Driver for most I2C EEPROMs"); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_csu550.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_csu550.c new file mode 100644 index 000000000000..36d07f071a71 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_csu550.c @@ -0,0 +1,236 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Hardware monitoring driver for PMBus devices + * + * Copyright (c) 2010, 2011 Ericsson AB. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "wb_pmbus.h" + +struct pmbus_device_info { + int pages; + u32 flags; +}; + +static const struct i2c_device_id pmbus_id[]; + +/* + * Find sensor groups and status registers on each page. + */ +static void pmbus_find_sensor_groups(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + int page; + + /* Sensors detected on page 0 only */ + if (wb_pmbus_check_word_register(client, 0, PMBUS_READ_VIN)) + info->func[0] |= PMBUS_HAVE_VIN; + if (wb_pmbus_check_word_register(client, 0, PMBUS_READ_IIN)) + info->func[0] |= PMBUS_HAVE_IIN; + if (wb_pmbus_check_word_register(client, 0, PMBUS_READ_PIN)) + info->func[0] |= PMBUS_HAVE_PIN; + if (info->func[0] + && wb_pmbus_check_byte_register(client, 0, PMBUS_STATUS_INPUT)) + info->func[0] |= PMBUS_HAVE_STATUS_INPUT; + if (wb_pmbus_check_byte_register(client, 0, PMBUS_FAN_CONFIG_12) && + wb_pmbus_check_word_register(client, 0, PMBUS_READ_FAN_SPEED_1)) { + info->func[0] |= PMBUS_HAVE_FAN12; + if (wb_pmbus_check_byte_register(client, 0, PMBUS_STATUS_FAN_12)) + info->func[0] |= PMBUS_HAVE_STATUS_FAN12; + } + if (wb_pmbus_check_byte_register(client, 0, PMBUS_FAN_CONFIG_34) && + wb_pmbus_check_word_register(client, 0, PMBUS_READ_FAN_SPEED_3)) { + info->func[0] |= PMBUS_HAVE_FAN34; + if (wb_pmbus_check_byte_register(client, 0, PMBUS_STATUS_FAN_34)) + info->func[0] |= PMBUS_HAVE_STATUS_FAN34; + } + if (wb_pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_1)) + info->func[0] |= PMBUS_HAVE_TEMP; + if (wb_pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_2)) + info->func[0] |= PMBUS_HAVE_TEMP2; + if (wb_pmbus_check_word_register(client, 0, PMBUS_READ_TEMPERATURE_3)) + info->func[0] |= PMBUS_HAVE_TEMP3; + if (info->func[0] & (PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP2 + | PMBUS_HAVE_TEMP3) + && wb_pmbus_check_byte_register(client, 0, + PMBUS_STATUS_TEMPERATURE)) + info->func[0] |= PMBUS_HAVE_STATUS_TEMP; + + /* Sensors detected on all pages */ + for (page = 0; page < info->pages; page++) { + if (wb_pmbus_check_word_register(client, page, PMBUS_READ_VOUT)) { + info->func[page] |= PMBUS_HAVE_VOUT; + if (wb_pmbus_check_byte_register(client, page, + PMBUS_STATUS_VOUT)) + info->func[page] |= PMBUS_HAVE_STATUS_VOUT; + } + if (wb_pmbus_check_word_register(client, page, PMBUS_READ_IOUT)) { + info->func[page] |= PMBUS_HAVE_IOUT; + if (wb_pmbus_check_byte_register(client, 0, + PMBUS_STATUS_IOUT)) + info->func[page] |= PMBUS_HAVE_STATUS_IOUT; + } + if (wb_pmbus_check_word_register(client, page, PMBUS_READ_POUT)) + info->func[page] |= PMBUS_HAVE_POUT; + } +} + +/* + * Identify chip parameters. + */ +static int pmbus_identify(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + int ret = 0; + + if (!info->pages) { + /* + * Check if the PAGE command is supported. If it is, + * keep setting the page number until it fails or until the + * maximum number of pages has been reached. Assume that + * this is the number of pages supported by the chip. + */ + if (wb_pmbus_check_byte_register(client, 0, PMBUS_PAGE)) { + int page; + + for (page = 1; page < PMBUS_PAGES; page++) { + if (wb_pmbus_set_page(client, page, 0xff) < 0) + break; + } + wb_pmbus_set_page(client, 0, 0xff); + info->pages = page; + } else { + info->pages = 1; + } + + wb_pmbus_clear_faults(client); + } + + if (wb_pmbus_check_byte_register(client, 0, PMBUS_VOUT_MODE)) { + int vout_mode, i; + + vout_mode = wb_pmbus_read_byte_data(client, 0, PMBUS_VOUT_MODE); + if (vout_mode >= 0 && vout_mode != 0xff) { + switch (vout_mode >> 5) { + case 0: + break; + case 1: + info->format[PSC_VOLTAGE_OUT] = vid; + for (i = 0; i < info->pages; i++) + info->vrm_version[i] = vr11; + break; + case 2: + info->format[PSC_VOLTAGE_OUT] = direct; + break; + default: + ret = -ENODEV; + goto abort; + } + } + } + + /* + * We should check if the COEFFICIENTS register is supported. + * If it is, and the chip is configured for direct mode, we can read + * the coefficients from the chip, one set per group of sensor + * registers. + * + * To do this, we will need access to a chip which actually supports the + * COEFFICIENTS command, since the command is too complex to implement + * without testing it. Until then, abort if a chip configured for direct + * mode was detected. + */ + if (info->format[PSC_VOLTAGE_OUT] == direct) { + ret = -ENODEV; + goto abort; + } + + /* Try to find sensor groups */ + pmbus_find_sensor_groups(client, info); +abort: + return ret; +} + +static int pmbus_probe(struct i2c_client *client) +{ + struct pmbus_driver_info *info; + struct pmbus_platform_data *pdata = NULL; + struct device *dev = &client->dev; + struct pmbus_device_info *device_info; + + info = devm_kzalloc(dev, sizeof(struct pmbus_driver_info), GFP_KERNEL); + if (!info) + return -ENOMEM; + + device_info = (struct pmbus_device_info *)i2c_match_id(pmbus_id, client)->driver_data; + if (device_info->flags & PMBUS_SKIP_STATUS_CHECK) { + pdata = devm_kzalloc(dev, sizeof(struct pmbus_platform_data), + GFP_KERNEL); + if (!pdata) + return -ENOMEM; + + pdata->flags = PMBUS_SKIP_STATUS_CHECK; + } + + info->pages = device_info->pages; + info->identify = pmbus_identify; + dev->platform_data = pdata; + + return wb_pmbus_do_probe(client, info); +} + +static const struct pmbus_device_info pmbus_info_one = { + .pages = 1, + .flags = 0 +}; + +static const struct pmbus_device_info pmbus_info_zero = { + .pages = 0, + .flags = 0 +}; + +static const struct pmbus_device_info pmbus_info_one_skip = { + .pages = 1, + .flags = PMBUS_SKIP_STATUS_CHECK +}; + +static const struct pmbus_device_info pmbus_info_zero_skip = { + .pages = 0, + .flags = PMBUS_SKIP_STATUS_CHECK +}; +/* + * Use driver_data to set the number of pages supported by the chip. + */ +static const struct i2c_device_id pmbus_id[] = { + {"wb_csu550", (kernel_ulong_t)&pmbus_info_zero_skip}, + {"wb_csu800", (kernel_ulong_t)&pmbus_info_one_skip}, + {"wb_fsp1200", (kernel_ulong_t)&pmbus_info_one_skip}, + {"wb_dps550", (kernel_ulong_t)&pmbus_info_one_skip}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, pmbus_id); + +/* This is the driver that will be inserted */ +static struct i2c_driver pmbus_driver = { + .driver = { + .name = "wb_pmbus", + }, + .probe_new = pmbus_probe, + .remove = wb_pmbus_do_remove, + .id_table = pmbus_id, +}; + +module_i2c_driver(pmbus_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Generic PMBus driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_algo_bit.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_algo_bit.c new file mode 100644 index 000000000000..c98ac7a1c5b6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_algo_bit.c @@ -0,0 +1,725 @@ +/* ------------------------------------------------------------------------- + * i2c-algo-bit.c i2c driver algorithms for bit-shift adapters + * ------------------------------------------------------------------------- + * Copyright (C) 1995-2000 Simon G. Vogl + + 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. + * ------------------------------------------------------------------------- */ + +#include +#include +#include +#include +#include +#include +#include + +static int g_i2c_algo_bit_debug = 0; +static int g_i2c_algo_bit_error = 0; + +module_param(g_i2c_algo_bit_debug, int, S_IRUGO | S_IWUSR); +module_param(g_i2c_algo_bit_error, int, S_IRUGO | S_IWUSR); + +#define I2C_ALGO_BIT_DEBUG(fmt, args...) do { \ + if (g_i2c_algo_bit_debug) { \ + printk(KERN_INFO "[I2C_ALGO_BIT][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define I2C_ALGO_BIT_ERROR(fmt, args...) do { \ + if (g_i2c_algo_bit_error) { \ + printk(KERN_ERR "[I2C_ALGO_BIT][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +/* ----- global defines ----------------------------------------------- */ + +#ifdef DEBUG +#define bit_dbg(level, dev, format, args...) \ + do { \ + if (i2c_debug >= level) \ + dev_dbg(dev, format, ##args); \ + } while (0) +#else +#define bit_dbg(level, dev, format, args...) \ + do {} while (0) +#endif /* DEBUG */ + +/* ----- global variables --------------------------------------------- */ + +static int bit_test; /* see if the line-setting functions work */ +module_param(bit_test, int, S_IRUGO); +MODULE_PARM_DESC(bit_test, "lines testing - 0 off; 1 report; 2 fail if stuck"); + +#ifdef DEBUG +static int i2c_debug = 1; +module_param(i2c_debug, int, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(i2c_debug, + "debug level - 0 off; 1 normal; 2 verbose; 3 very verbose"); +#endif + +/* --- setting states on the bus with the right timing: --------------- */ + +#define setsda(adap, val) adap->setsda(adap->data, val) +#define setscl(adap, val) adap->setscl(adap->data, val) +#define getsda(adap) adap->getsda(adap->data) +#define getscl(adap) adap->getscl(adap->data) + +static inline void sdalo(struct i2c_algo_bit_data *adap) +{ + setsda(adap, 0); + udelay((adap->udelay + 1) / 2); +} + +static inline void sdahi(struct i2c_algo_bit_data *adap) +{ + setsda(adap, 1); + udelay((adap->udelay + 1) / 2); +} + +static inline void scllo(struct i2c_algo_bit_data *adap) +{ + setscl(adap, 0); + udelay(adap->udelay / 2); +} + +/* + * Raise scl line, and do checking for delays. This is necessary for slower + * devices. + */ +static int sclhi(struct i2c_algo_bit_data *adap) +{ + unsigned long start; + + setscl(adap, 1); + + /* Not all adapters have scl sense line... */ + if (!adap->getscl) + goto done; + + start = jiffies; + while (!getscl(adap)) { + /* This hw knows how to read the clock line, so we wait + * until it actually gets high. This is safer as some + * chips may hold it low ("clock stretching") while they + * are processing data internally. + */ + if (time_after(jiffies, start + adap->timeout)) { + /* Test one last time, as we may have been preempted + * between last check and timeout test. + */ + if (getscl(adap)) + break; + return -ETIMEDOUT; + } + cpu_relax(); + } +#ifdef DEBUG + if (jiffies != start && i2c_debug >= 3) + pr_debug("i2c-algo-bit: needed %ld jiffies for SCL to go " + "high\n", jiffies - start); +#endif + +done: + udelay(adap->udelay); + return 0; +} + +/* --- other auxiliary functions -------------------------------------- */ +static void i2c_start(struct i2c_algo_bit_data *adap) +{ + /* assert: scl, sda are high */ + setsda(adap, 0); + udelay(adap->udelay); + scllo(adap); +} + +static void i2c_repstart(struct i2c_algo_bit_data *adap) +{ + /* assert: scl is low */ + sdahi(adap); + sclhi(adap); + setsda(adap, 0); + udelay(adap->udelay); + scllo(adap); +} + +static void i2c_stop(struct i2c_algo_bit_data *adap) +{ + /* assert: scl is low */ + sdalo(adap); + sclhi(adap); + setsda(adap, 1); + udelay(adap->udelay); +} + +/* send a byte without start cond., look for arbitration, + check ackn. from slave */ +/* returns: + * 1 if the device acknowledged + * 0 if the device did not ack + * -ETIMEDOUT if an error occurred (while raising the scl line) + */ +static int i2c_outb(struct i2c_adapter *i2c_adap, unsigned char c) +{ + int i; + int sb; + int ack; + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + + /* assert: scl is low */ + for (i = 7; i >= 0; i--) { + sb = (c >> i) & 1; + setsda(adap, sb); + udelay((adap->udelay + 1) / 2); + if (sclhi(adap) < 0) { /* timed out */ + bit_dbg(1, &i2c_adap->dev, "i2c_outb: 0x%02x, " + "timeout at bit #%d\n", (int)c, i); + return -ETIMEDOUT; + } + /* FIXME do arbitration here: + * if (sb && !getsda(adap)) -> ouch! Get out of here. + * + * Report a unique code, so higher level code can retry + * the whole (combined) message and *NOT* issue STOP. + */ + scllo(adap); + } + sdahi(adap); + if (sclhi(adap) < 0) { /* timeout */ + bit_dbg(1, &i2c_adap->dev, "i2c_outb: 0x%02x, " + "timeout at ack\n", (int)c); + return -ETIMEDOUT; + } + + /* read ack: SDA should be pulled down by slave, or it may + * NAK (usually to report problems with the data we wrote). + */ + ack = !getsda(adap); /* ack: sda is pulled low -> success */ + bit_dbg(2, &i2c_adap->dev, "i2c_outb: 0x%02x %s\n", (int)c, + ack ? "A" : "NA"); + + scllo(adap); + return ack; + /* assert: scl is low (sda undef) */ +} + +static int i2c_inb(struct i2c_adapter *i2c_adap) +{ + /* read byte via i2c port, without start/stop sequence */ + /* acknowledge is sent in i2c_read. */ + int i; + unsigned char indata = 0; + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + + /* assert: scl is low */ + sdahi(adap); + for (i = 0; i < 8; i++) { + if (sclhi(adap) < 0) { /* timeout */ + bit_dbg(1, &i2c_adap->dev, "i2c_inb: timeout at bit " + "#%d\n", 7 - i); + return -ETIMEDOUT; + } + indata *= 2; + if (getsda(adap)) + indata |= 0x01; + setscl(adap, 0); + udelay(i == 7 ? adap->udelay / 2 : adap->udelay); + } + /* assert: scl is low */ + return indata; +} + +/* + * Sanity check for the adapter hardware - check the reaction of + * the bus lines only if it seems to be idle. + */ +static int test_bus(struct i2c_adapter *i2c_adap) +{ + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + const char *name = i2c_adap->name; + int scl, sda, ret; + + if (adap->pre_xfer) { + ret = adap->pre_xfer(i2c_adap); + if (ret < 0) + return -ENODEV; + } + + if (adap->getscl == NULL) + pr_info("%s: Testing SDA only, SCL is not readable\n", name); + + sda = getsda(adap); + scl = (adap->getscl == NULL) ? 1 : getscl(adap); + if (!scl || !sda) { + printk(KERN_WARNING + "%s: bus seems to be busy (scl=%d, sda=%d)\n", + name, scl, sda); + goto bailout; + } + + sdalo(adap); + sda = getsda(adap); + scl = (adap->getscl == NULL) ? 1 : getscl(adap); + if (sda) { + printk(KERN_WARNING "%s: SDA stuck high!\n", name); + goto bailout; + } + if (!scl) { + printk(KERN_WARNING "%s: SCL unexpected low " + "while pulling SDA low!\n", name); + goto bailout; + } + + sdahi(adap); + sda = getsda(adap); + scl = (adap->getscl == NULL) ? 1 : getscl(adap); + if (!sda) { + printk(KERN_WARNING "%s: SDA stuck low!\n", name); + goto bailout; + } + if (!scl) { + printk(KERN_WARNING "%s: SCL unexpected low " + "while pulling SDA high!\n", name); + goto bailout; + } + + scllo(adap); + sda = getsda(adap); + scl = (adap->getscl == NULL) ? 0 : getscl(adap); + if (scl) { + printk(KERN_WARNING "%s: SCL stuck high!\n", name); + goto bailout; + } + if (!sda) { + printk(KERN_WARNING "%s: SDA unexpected low " + "while pulling SCL low!\n", name); + goto bailout; + } + + sclhi(adap); + sda = getsda(adap); + scl = (adap->getscl == NULL) ? 1 : getscl(adap); + if (!scl) { + printk(KERN_WARNING "%s: SCL stuck low!\n", name); + goto bailout; + } + if (!sda) { + printk(KERN_WARNING "%s: SDA unexpected low " + "while pulling SCL high!\n", name); + goto bailout; + } + + if (adap->post_xfer) + adap->post_xfer(i2c_adap); + + pr_info("%s: Test OK\n", name); + return 0; +bailout: + sdahi(adap); + sclhi(adap); + + if (adap->post_xfer) + adap->post_xfer(i2c_adap); + + return -ENODEV; +} + +/* ----- Utility functions + */ + +/* try_address tries to contact a chip for a number of + * times before it gives up. + * return values: + * 1 chip answered + * 0 chip did not answer + * -x transmission error + */ +static int try_address(struct i2c_adapter *i2c_adap, + unsigned char addr, int retries) +{ + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + int i, ret = 0; + + for (i = 0; i <= retries; i++) { + ret = i2c_outb(i2c_adap, addr); + if (ret == 1 || i == retries) + break; + bit_dbg(3, &i2c_adap->dev, "emitting stop condition\n"); + i2c_stop(adap); + udelay(adap->udelay); + yield(); + bit_dbg(3, &i2c_adap->dev, "emitting start condition\n"); + i2c_start(adap); + } + if (i && ret) + bit_dbg(1, &i2c_adap->dev, "Used %d tries to %s client at " + "0x%02x: %s\n", i + 1, + addr & 1 ? "read from" : "write to", addr >> 1, + ret == 1 ? "success" : "failed, timeout?"); + return ret; +} + +static int sendbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msg) +{ + const unsigned char *temp = msg->buf; + int count = msg->len; + unsigned short nak_ok = msg->flags & I2C_M_IGNORE_NAK; + int retval; + int wrcount = 0; + + while (count > 0) { + retval = i2c_outb(i2c_adap, *temp); + + /* OK/ACK; or ignored NAK */ + if ((retval > 0) || (nak_ok && (retval == 0))) { + count--; + temp++; + wrcount++; + + /* A slave NAKing the master means the slave didn't like + * something about the data it saw. For example, maybe + * the SMBus PEC was wrong. + */ + } else if (retval == 0) { + dev_err(&i2c_adap->dev, "sendbytes: NAK bailout.\n"); + return -EIO; + + /* Timeout; or (someday) lost arbitration + * + * FIXME Lost ARB implies retrying the transaction from + * the first message, after the "winning" master issues + * its STOP. As a rule, upper layer code has no reason + * to know or care about this ... it is *NOT* an error. + */ + } else { + dev_err(&i2c_adap->dev, "sendbytes: error %d\n", + retval); + return retval; + } + } + return wrcount; +} + +static int acknak(struct i2c_adapter *i2c_adap, int is_ack) +{ + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + + /* assert: sda is high */ + if (is_ack) /* send ack */ + setsda(adap, 0); + udelay((adap->udelay + 1) / 2); + if (sclhi(adap) < 0) { /* timeout */ + dev_err(&i2c_adap->dev, "readbytes: ack/nak timeout\n"); + return -ETIMEDOUT; + } + scllo(adap); + return 0; +} + +static int readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msg) +{ + int inval; + int rdcount = 0; /* counts bytes read */ + unsigned char *temp = msg->buf; + int count = msg->len; + const unsigned flags = msg->flags; + + while (count > 0) { + inval = i2c_inb(i2c_adap); + if (inval >= 0) { + *temp = inval; + rdcount++; + } else { /* read timed out */ + break; + } + + temp++; + count--; + + /* Some SMBus transactions require that we receive the + transaction length as the first read byte. */ + if (rdcount == 1 && (flags & I2C_M_RECV_LEN)) { + if (inval <= 0 || inval > I2C_SMBUS_BLOCK_MAX) { + if (!(flags & I2C_M_NO_RD_ACK)) + acknak(i2c_adap, 0); + dev_err(&i2c_adap->dev, "readbytes: invalid " + "block length (%d)\n", inval); + return -EPROTO; + } + /* The original count value accounts for the extra + bytes, that is, either 1 for a regular transaction, + or 2 for a PEC transaction. */ + count += inval; + msg->len += inval; + } + + bit_dbg(2, &i2c_adap->dev, "readbytes: 0x%02x %s\n", + inval, + (flags & I2C_M_NO_RD_ACK) + ? "(no ack/nak)" + : (count ? "A" : "NA")); + + if (!(flags & I2C_M_NO_RD_ACK)) { + inval = acknak(i2c_adap, count); + if (inval < 0) + return inval; + } + } + return rdcount; +} + +/* doAddress initiates the transfer by generating the start condition (in + * try_address) and transmits the address in the necessary format to handle + * reads, writes as well as 10bit-addresses. + * returns: + * 0 everything went okay, the chip ack'ed, or IGNORE_NAK flag was set + * -x an error occurred (like: -ENXIO if the device did not answer, or + * -ETIMEDOUT, for example if the lines are stuck...) + */ +static int bit_doAddress(struct i2c_adapter *i2c_adap, struct i2c_msg *msg) +{ + unsigned short flags = msg->flags; + unsigned short nak_ok = msg->flags & I2C_M_IGNORE_NAK; + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + + unsigned char addr; + int ret, retries; + + retries = nak_ok ? 0 : i2c_adap->retries; + + if (flags & I2C_M_TEN) { + /* a ten bit address */ + addr = 0xf0 | ((msg->addr >> 7) & 0x06); + bit_dbg(2, &i2c_adap->dev, "addr0: %d\n", addr); + /* try extended address code...*/ + ret = try_address(i2c_adap, addr, retries); + if ((ret != 1) && !nak_ok) { + dev_err(&i2c_adap->dev, + "died at extended address code\n"); + return -ENXIO; + } + /* the remaining 8 bit address */ + ret = i2c_outb(i2c_adap, msg->addr & 0xff); + if ((ret != 1) && !nak_ok) { + /* the chip did not ack / xmission error occurred */ + dev_err(&i2c_adap->dev, "died at 2nd address code\n"); + return -ENXIO; + } + if (flags & I2C_M_RD) { + bit_dbg(3, &i2c_adap->dev, "emitting repeated " + "start condition\n"); + i2c_repstart(adap); + /* okay, now switch into reading mode */ + addr |= 0x01; + ret = try_address(i2c_adap, addr, retries); + if ((ret != 1) && !nak_ok) { + dev_err(&i2c_adap->dev, + "died at repeated address code\n"); + return -EIO; + } + } + } else { /* normal 7bit address */ + addr = msg->addr << 1; + if (flags & I2C_M_RD) + addr |= 1; + if (flags & I2C_M_REV_DIR_ADDR) + addr ^= 1; + ret = try_address(i2c_adap, addr, retries); + if ((ret != 1) && !nak_ok) + return -ENXIO; + } + + return 0; +} + +static void bit_i2c_unblock(struct i2c_adapter *i2c_adap) +{ + int i; + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + + for (i = 0; i < 9; i++) { + setscl(adap, 0); + udelay(5); + setscl(adap, 1); + udelay(5); + } + setscl(adap, 0); + setsda(adap, 0); + udelay(5); + setscl(adap, 1); + udelay(5); + setsda(adap, 1); +} + +static int check_bit_i2c_unblock(struct i2c_adapter *i2c_adap) +{ + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + int sda, scl; + + sda = getsda(adap); + scl = getscl(adap); + if ((sda == 0) && scl) { + I2C_ALGO_BIT_ERROR("SCL is high and SDA is low, send 9 clock to device.\n"); + bit_i2c_unblock(i2c_adap); + } + + sda = getsda(adap); + scl = getscl(adap); + if (sda && scl) { + I2C_ALGO_BIT_DEBUG("SCL and SDA are both high, i2c level check ok.\n"); + return 0; + } + dev_warn(&i2c_adap->dev, "Check i2c level failed, SCL %s, SDA %s.\n", scl ? "high" : "low", sda ? "high" : "low"); + return -EIO; +} + +static int bit_xfer(struct i2c_adapter *i2c_adap, + struct i2c_msg msgs[], int num) +{ + struct i2c_msg *pmsg; + struct i2c_algo_bit_data *adap = i2c_adap->algo_data; + int i, ret; + unsigned short nak_ok; + + if (adap->pre_xfer) { + ret = adap->pre_xfer(i2c_adap); + if (ret < 0) + return ret; + } + + if (check_bit_i2c_unblock(i2c_adap) < 0) { + I2C_ALGO_BIT_ERROR("check i2c is block.\n"); + return -EIO; + } + + bit_dbg(3, &i2c_adap->dev, "emitting start condition\n"); + i2c_start(adap); + for (i = 0; i < num; i++) { + pmsg = &msgs[i]; + nak_ok = pmsg->flags & I2C_M_IGNORE_NAK; + if (!(pmsg->flags & I2C_M_NOSTART)) { + if (i) { + bit_dbg(3, &i2c_adap->dev, "emitting " + "repeated start condition\n"); + i2c_repstart(adap); + } + ret = bit_doAddress(i2c_adap, pmsg); + if ((ret != 0) && !nak_ok) { + bit_dbg(1, &i2c_adap->dev, "NAK from " + "device addr 0x%02x msg #%d\n", + msgs[i].addr, i); + goto bailout; + } + } + if (pmsg->flags & I2C_M_RD) { + /* read bytes into buffer*/ + ret = readbytes(i2c_adap, pmsg); + if (ret >= 1) + bit_dbg(2, &i2c_adap->dev, "read %d byte%s\n", + ret, ret == 1 ? "" : "s"); + if (ret < pmsg->len) { + if (ret >= 0) + ret = -EIO; + goto bailout; + } + } else { + /* write bytes from buffer */ + ret = sendbytes(i2c_adap, pmsg); + if (ret >= 1) + bit_dbg(2, &i2c_adap->dev, "wrote %d byte%s\n", + ret, ret == 1 ? "" : "s"); + if (ret < pmsg->len) { + if (ret >= 0) + ret = -EIO; + goto bailout; + } + } + } + ret = i; + +bailout: + bit_dbg(3, &i2c_adap->dev, "emitting stop condition\n"); + i2c_stop(adap); + + if (adap->post_xfer) + adap->post_xfer(i2c_adap); + return ret; +} + +static u32 bit_func(struct i2c_adapter *adap) +{ + return I2C_FUNC_I2C | I2C_FUNC_NOSTART | I2C_FUNC_SMBUS_EMUL | + I2C_FUNC_SMBUS_READ_BLOCK_DATA | + I2C_FUNC_SMBUS_BLOCK_PROC_CALL | + I2C_FUNC_10BIT_ADDR | I2C_FUNC_PROTOCOL_MANGLING; +} + +/* -----exported algorithm data: ------------------------------------- */ + +const struct i2c_algorithm wb_i2c_bit_algo = { + .master_xfer = bit_xfer, + .functionality = bit_func, +}; +EXPORT_SYMBOL(wb_i2c_bit_algo); + +static const struct i2c_adapter_quirks i2c_bit_quirk_no_clk_stretch = { + .flags = I2C_AQ_NO_CLK_STRETCH, +}; + +/* + * registering functions to load algorithms at runtime + */ +static int __i2c_bit_add_bus(struct i2c_adapter *adap, + int (*add_adapter)(struct i2c_adapter *)) +{ + struct i2c_algo_bit_data *bit_adap = adap->algo_data; + int ret; + + if (bit_test) { + ret = test_bus(adap); + if (bit_test >= 2 && ret < 0) + return -ENODEV; + } + + /* register new adapter to i2c module... */ + adap->algo = &wb_i2c_bit_algo; + adap->retries = 3; + if (bit_adap->getscl == NULL) + adap->quirks = &i2c_bit_quirk_no_clk_stretch; + + ret = add_adapter(adap); + if (ret < 0) + return ret; + + /* Complain if SCL can't be read */ + if (bit_adap->getscl == NULL) { + dev_warn(&adap->dev, "Not I2C compliant: can't read SCL\n"); + dev_warn(&adap->dev, "Bus may be unreliable\n"); + } + return 0; +} + +int wb_i2c_bit_add_bus(struct i2c_adapter *adap) +{ + return __i2c_bit_add_bus(adap, i2c_add_adapter); +} +EXPORT_SYMBOL(wb_i2c_bit_add_bus); + +int wb_i2c_bit_add_numbered_bus(struct i2c_adapter *adap) +{ + return __i2c_bit_add_bus(adap, i2c_add_numbered_adapter); +} +EXPORT_SYMBOL(wb_i2c_bit_add_numbered_bus); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("I2C-Bus bit-banging algorithm"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio.c new file mode 100644 index 000000000000..0362e905fddb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio.c @@ -0,0 +1,431 @@ +/* + * Bitbanging I2C bus driver using the GPIO API + * + * Copyright (C) 2007 Atmel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern int wb_i2c_bit_add_numbered_bus(struct i2c_adapter *adap); + +struct i2c_gpio_private_data { + struct gpio_desc *sda; + struct gpio_desc *scl; + struct i2c_adapter adap; + struct i2c_algo_bit_data bit_data; + struct i2c_gpio_platform_data pdata; +#ifdef CONFIG_I2C_GPIO_FAULT_INJECTOR + struct dentry *debug_dir; +#endif +}; + +/* + * Toggle SDA by changing the output value of the pin. This is only + * valid for pins configured as open drain (i.e. setting the value + * high effectively turns off the output driver.) + */ +static void i2c_gpio_setsda_val(void *data, int state) +{ + struct i2c_gpio_private_data *priv = data; + + gpiod_set_value_cansleep(priv->sda, state); +} + +/* + * Toggle SCL by changing the output value of the pin. This is used + * for pins that are configured as open drain and for output-only + * pins. The latter case will break the i2c protocol, but it will + * often work in practice. + */ +static void i2c_gpio_setscl_val(void *data, int state) +{ + struct i2c_gpio_private_data *priv = data; + + gpiod_set_value_cansleep(priv->scl, state); +} + +static int i2c_gpio_getsda(void *data) +{ + struct i2c_gpio_private_data *priv = data; + + return gpiod_get_value_cansleep(priv->sda); +} + +static int i2c_gpio_getscl(void *data) +{ + struct i2c_gpio_private_data *priv = data; + + return gpiod_get_value_cansleep(priv->scl); +} + +#ifdef CONFIG_I2C_GPIO_FAULT_INJECTOR +static struct dentry *i2c_gpio_debug_dir; + +#define setsda(bd, val) ((bd)->setsda((bd)->data, val)) +#define setscl(bd, val) ((bd)->setscl((bd)->data, val)) +#define getsda(bd) ((bd)->getsda((bd)->data)) +#define getscl(bd) ((bd)->getscl((bd)->data)) + +#define WIRE_ATTRIBUTE(wire) \ +static int fops_##wire##_get(void *data, u64 *val) \ +{ \ + struct i2c_gpio_private_data *priv = data; \ + \ + i2c_lock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER); \ + *val = get##wire(&priv->bit_data); \ + i2c_unlock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER); \ + return 0; \ +} \ +static int fops_##wire##_set(void *data, u64 val) \ +{ \ + struct i2c_gpio_private_data *priv = data; \ + \ + i2c_lock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER); \ + set##wire(&priv->bit_data, val); \ + i2c_unlock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER); \ + return 0; \ +} \ +DEFINE_DEBUGFS_ATTRIBUTE(fops_##wire, fops_##wire##_get, fops_##wire##_set, "%llu\n") + +WIRE_ATTRIBUTE(scl); +WIRE_ATTRIBUTE(sda); + +static void i2c_gpio_incomplete_transfer(struct i2c_gpio_private_data *priv, + u32 pattern, u8 pattern_size) +{ + struct i2c_algo_bit_data *bit_data = &priv->bit_data; + int i; + + i2c_lock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER); + + /* START condition */ + setsda(bit_data, 0); + udelay(bit_data->udelay); + + /* Send pattern, request ACK, don't send STOP */ + for (i = pattern_size - 1; i >= 0; i--) { + setscl(bit_data, 0); + udelay(bit_data->udelay / 2); + setsda(bit_data, (pattern >> i) & 1); + udelay((bit_data->udelay + 1) / 2); + setscl(bit_data, 1); + udelay(bit_data->udelay); + } + + i2c_unlock_bus(&priv->adap, I2C_LOCK_ROOT_ADAPTER); +} + +static int fops_incomplete_addr_phase_set(void *data, u64 addr) +{ + struct i2c_gpio_private_data *priv = data; + u32 pattern; + + if (addr > 0x7f) + return -EINVAL; + + /* ADDR (7 bit) + RD (1 bit) + Client ACK, keep SDA hi (1 bit) */ + pattern = (addr << 2) | 3; + + i2c_gpio_incomplete_transfer(priv, pattern, 9); + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(fops_incomplete_addr_phase, NULL, fops_incomplete_addr_phase_set, "%llu\n"); + +static int fops_incomplete_write_byte_set(void *data, u64 addr) +{ + struct i2c_gpio_private_data *priv = data; + u32 pattern; + + if (addr > 0x7f) + return -EINVAL; + + /* ADDR (7 bit) + WR (1 bit) + Client ACK (1 bit) */ + pattern = (addr << 2) | 1; + /* 0x00 (8 bit) + Client ACK, keep SDA hi (1 bit) */ + pattern = (pattern << 9) | 1; + + i2c_gpio_incomplete_transfer(priv, pattern, 18); + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(fops_incomplete_write_byte, NULL, fops_incomplete_write_byte_set, "%llu\n"); + +static void i2c_gpio_fault_injector_init(struct platform_device *pdev) +{ + struct i2c_gpio_private_data *priv = platform_get_drvdata(pdev); + + /* + * If there will be a debugfs-dir per i2c adapter somewhen, put the + * 'fault-injector' dir there. Until then, we have a global dir with + * all adapters as subdirs. + */ + if (!i2c_gpio_debug_dir) { + i2c_gpio_debug_dir = debugfs_create_dir("i2c-fault-injector", NULL); + if (!i2c_gpio_debug_dir) + return; + } + + priv->debug_dir = debugfs_create_dir(pdev->name, i2c_gpio_debug_dir); + if (!priv->debug_dir) + return; + + debugfs_create_file_unsafe("scl", 0600, priv->debug_dir, priv, &fops_scl); + debugfs_create_file_unsafe("sda", 0600, priv->debug_dir, priv, &fops_sda); + debugfs_create_file_unsafe("incomplete_address_phase", 0200, priv->debug_dir, + priv, &fops_incomplete_addr_phase); + debugfs_create_file_unsafe("incomplete_write_byte", 0200, priv->debug_dir, + priv, &fops_incomplete_write_byte); +} + +static void i2c_gpio_fault_injector_exit(struct platform_device *pdev) +{ + struct i2c_gpio_private_data *priv = platform_get_drvdata(pdev); + + debugfs_remove_recursive(priv->debug_dir); +} +#else +static inline void i2c_gpio_fault_injector_init(struct platform_device *pdev) {} +static inline void i2c_gpio_fault_injector_exit(struct platform_device *pdev) {} +#endif /* CONFIG_I2C_GPIO_FAULT_INJECTOR*/ + +static void of_i2c_gpio_get_props(struct device_node *np, + struct i2c_gpio_platform_data *pdata) +{ + u32 reg; + + of_property_read_u32(np, "i2c-gpio,delay-us", &pdata->udelay); + + if (!of_property_read_u32(np, "i2c-gpio,timeout-ms", ®)) + pdata->timeout = msecs_to_jiffies(reg); + + pdata->sda_is_open_drain = + of_property_read_bool(np, "i2c-gpio,sda-open-drain"); + pdata->scl_is_open_drain = + of_property_read_bool(np, "i2c-gpio,scl-open-drain"); + pdata->scl_is_output_only = + of_property_read_bool(np, "i2c-gpio,scl-output-only"); +} + +static struct gpio_desc *i2c_gpio_get_desc(struct device *dev, + const char *con_id, + unsigned int index, + enum gpiod_flags gflags) +{ + struct gpio_desc *retdesc; + int ret; + + retdesc = devm_gpiod_get(dev, con_id, gflags); + if (!IS_ERR(retdesc)) { + dev_dbg(dev, "got GPIO from name %s\n", con_id); + return retdesc; + } + + retdesc = devm_gpiod_get_index(dev, NULL, index, gflags); + if (!IS_ERR(retdesc)) { + dev_dbg(dev, "got GPIO from index %u\n", index); + return retdesc; + } + + ret = PTR_ERR(retdesc); + + /* FIXME: hack in the old code, is this really necessary? */ + if (ret == -EINVAL) + retdesc = ERR_PTR(-EPROBE_DEFER); + + /* This happens if the GPIO driver is not yet probed, let's defer */ + if (ret == -ENOENT) + retdesc = ERR_PTR(-EPROBE_DEFER); + + if (PTR_ERR(retdesc) != -EPROBE_DEFER) + dev_err(dev, "error trying to get descriptor: %d\n", ret); + + return retdesc; +} + +static int i2c_gpio_probe(struct platform_device *pdev) +{ + struct i2c_gpio_private_data *priv; + struct i2c_gpio_platform_data *pdata; + struct i2c_algo_bit_data *bit_data; + struct i2c_adapter *adap; + struct device *dev = &pdev->dev; + struct device_node *np = dev->of_node; + enum gpiod_flags gflags; + int ret; + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + adap = &priv->adap; + bit_data = &priv->bit_data; + pdata = &priv->pdata; + + if (np) { + of_i2c_gpio_get_props(np, pdata); + } else { + /* + * If all platform data settings are zero it is OK + * to not provide any platform data from the board. + */ + if (dev_get_platdata(dev)) + memcpy(pdata, dev_get_platdata(dev), sizeof(*pdata)); + } + + /* + * First get the GPIO pins; if it fails, we'll defer the probe. + * If the SDA line is marked from platform data or device tree as + * "open drain" it means something outside of our control is making + * this line being handled as open drain, and we should just handle + * it as any other output. Else we enforce open drain as this is + * required for an I2C bus. + */ + if (pdata->sda_is_open_drain) + gflags = GPIOD_OUT_HIGH; + else + gflags = GPIOD_OUT_HIGH_OPEN_DRAIN; + priv->sda = i2c_gpio_get_desc(dev, "sda", 0, gflags); + if (IS_ERR(priv->sda)) + return PTR_ERR(priv->sda); + + /* + * If the SCL line is marked from platform data or device tree as + * "open drain" it means something outside of our control is making + * this line being handled as open drain, and we should just handle + * it as any other output. Else we enforce open drain as this is + * required for an I2C bus. + */ + if (pdata->scl_is_open_drain) + gflags = GPIOD_OUT_HIGH; + else + gflags = GPIOD_OUT_HIGH_OPEN_DRAIN; + priv->scl = i2c_gpio_get_desc(dev, "scl", 1, gflags); + if (IS_ERR(priv->scl)) + return PTR_ERR(priv->scl); + + if (gpiod_cansleep(priv->sda) || gpiod_cansleep(priv->scl)) + dev_warn(dev, "Slow GPIO pins might wreak havoc into I2C/SMBus bus timing"); + + bit_data->setsda = i2c_gpio_setsda_val; + bit_data->setscl = i2c_gpio_setscl_val; + + if (!pdata->scl_is_output_only) + bit_data->getscl = i2c_gpio_getscl; + bit_data->getsda = i2c_gpio_getsda; + + if (pdata->udelay) + bit_data->udelay = pdata->udelay; + else if (pdata->scl_is_output_only) + bit_data->udelay = 50; /* 10 kHz */ + else + bit_data->udelay = 5; /* 100 kHz */ + + if (pdata->timeout) + bit_data->timeout = pdata->timeout; + else + bit_data->timeout = HZ / 10; /* 100 ms */ + + bit_data->data = priv; + + adap->owner = THIS_MODULE; + if (np) + strlcpy(adap->name, dev_name(dev), sizeof(adap->name)); + else + snprintf(adap->name, sizeof(adap->name), "i2c-gpio%d", pdev->id); + + adap->algo_data = bit_data; + adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; + adap->dev.parent = dev; + adap->dev.of_node = np; + + adap->nr = pdev->id; + ret = wb_i2c_bit_add_numbered_bus(adap); + if (ret) + return ret; + + platform_set_drvdata(pdev, priv); + + /* + * FIXME: using global GPIO numbers is not helpful. If/when we + * get accessors to get the actual name of the GPIO line, + * from the descriptor, then provide that instead. + */ + dev_info(dev, "using lines %u (SDA) and %u (SCL%s)\n", + desc_to_gpio(priv->sda), desc_to_gpio(priv->scl), + pdata->scl_is_output_only + ? ", no clock stretching" : ""); + + i2c_gpio_fault_injector_init(pdev); + + return 0; +} + +static int i2c_gpio_remove(struct platform_device *pdev) +{ + struct i2c_gpio_private_data *priv; + struct i2c_adapter *adap; + + i2c_gpio_fault_injector_exit(pdev); + + priv = platform_get_drvdata(pdev); + adap = &priv->adap; + + i2c_del_adapter(adap); + + return 0; +} + +#if defined(CONFIG_OF) +static const struct of_device_id i2c_gpio_dt_ids[] = { + { .compatible = "wb-i2c-gpio", }, + { /* sentinel */ } +}; + +MODULE_DEVICE_TABLE(of, i2c_gpio_dt_ids); +#endif + +static struct platform_driver i2c_gpio_driver = { + .driver = { + .name = "wb-i2c-gpio", + .of_match_table = of_match_ptr(i2c_gpio_dt_ids), + }, + .probe = i2c_gpio_probe, + .remove = i2c_gpio_remove, +}; + +static int __init i2c_gpio_init(void) +{ + int ret; + + ret = platform_driver_register(&i2c_gpio_driver); + if (ret) + printk(KERN_ERR "i2c-gpio: probe failed: %d\n", ret); + + return ret; +} +subsys_initcall(i2c_gpio_init); + +static void __exit i2c_gpio_exit(void) +{ + platform_driver_unregister(&i2c_gpio_driver); +} +module_exit(i2c_gpio_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Platform-independent bitbanging I2C driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:i2c-gpio"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio_device.c new file mode 100644 index 000000000000..1e1d815eedf1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_gpio_device.c @@ -0,0 +1,133 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define I2C_GPIO_DEV_NAME_LEN (16) +static char i2c_gpio_dev_name[I2C_GPIO_DEV_NAME_LEN] = {0}; + +static int gpio_sda = 17; +module_param(gpio_sda, int, S_IRUGO | S_IWUSR); + +static int gpio_scl = 1; +module_param(gpio_scl, int, S_IRUGO | S_IWUSR); + +static int gpio_udelay = 2; +module_param(gpio_udelay, int, S_IRUGO | S_IWUSR); + +static int bus_num = -1; +module_param(bus_num, int, S_IRUGO | S_IWUSR); + +static char *gpio_chip_name = NULL; +module_param(gpio_chip_name, charp, 0644); +MODULE_PARM_DESC(str_var, "A string variable for GPIO controller"); + +static int g_wb_i2c_gpio_device_debug = 0; +static int g_wb_i2c_gpio_device_error = 0; + +module_param(g_wb_i2c_gpio_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_i2c_gpio_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_I2C_GPIO_DEVICE_VERBOSE(fmt, args...) do { \ + if (g_wb_i2c_gpio_device_debug) { \ + printk(KERN_INFO "[WB_I2C_GPIO_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_I2C_GPIO_DEVICE_ERROR(fmt, args...) do { \ + if (g_wb_i2c_gpio_device_error) { \ + printk(KERN_ERR "[WB_I2C_GPIO_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +/****************** i2c adapter with gpio ***********************/ +static struct i2c_gpio_platform_data i2c_pdata = { + .udelay = 2, + .scl_is_output_only = 0, + .sda_is_open_drain = 0, + .scl_is_open_drain = 0, +}; + +static void i2c_gpio_release(struct device *dev) +{ + return; +} + +static struct platform_device wb_i2c_gpio_device = { + .name = "wb-i2c-gpio", + .id = -1, + .num_resources = 0, + .resource = NULL, + .dev = { + .platform_data = &i2c_pdata, + .release = i2c_gpio_release, + }, +}; + +/* + * i2c + */ +static struct gpiod_lookup_table wb_i2c_gpio_table = { + .dev_id = "wb-i2c-gpio", + .table = { + GPIO_LOOKUP("wb_gpio_d1500", 17, "sda", + GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), + GPIO_LOOKUP("wb_gpio_d1500", 1, "scl", + GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN), + { }, + }, +}; + +static int __init wb_i2c_gpio_device_init(void) +{ + int err; + + WB_I2C_GPIO_DEVICE_VERBOSE("wb_i2c_gpio_device_init enter!\n"); + wb_i2c_gpio_table.table[0].chip_hwnum = gpio_sda; + wb_i2c_gpio_table.table[1].chip_hwnum = gpio_scl; + i2c_pdata.udelay = gpio_udelay; + + if (gpio_chip_name) { + wb_i2c_gpio_table.table[0].key = gpio_chip_name; + wb_i2c_gpio_table.table[1].key = gpio_chip_name; + } + + if (bus_num >= 0) { + wb_i2c_gpio_device.id = bus_num; + snprintf(i2c_gpio_dev_name, I2C_GPIO_DEV_NAME_LEN, "wb-i2c-gpio.%d", bus_num); + wb_i2c_gpio_table.dev_id = i2c_gpio_dev_name; + } + + gpiod_add_lookup_table(&wb_i2c_gpio_table); + + err = platform_device_register(&wb_i2c_gpio_device); + if (err < 0) { + printk(KERN_ERR "register i2c gpio device fail(%d). \n", err); + gpiod_remove_lookup_table(&wb_i2c_gpio_table); + return -1; + } + return 0; +} + +static void __exit wb_i2c_gpio_device_exit(void) +{ + WB_I2C_GPIO_DEVICE_VERBOSE("wb_i2c_gpio_device_exit enter!\n"); + platform_device_unregister(&wb_i2c_gpio_device); + gpiod_remove_lookup_table(&wb_i2c_gpio_table); +} + +module_init(wb_i2c_gpio_device_init); +module_exit(wb_i2c_gpio_device_exit); +MODULE_DESCRIPTION("I2C GPIO Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_i801.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_i801.c new file mode 100644 index 000000000000..a733c115487e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_i801.c @@ -0,0 +1,2114 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + Copyright (c) 1998 - 2002 Frodo Looijaard , + Philip Edelbrock , and Mark D. Studebaker + + Copyright (C) 2007 - 2014 Jean Delvare + Copyright (C) 2010 Intel Corporation, + David Woodhouse + +*/ + +/* + * Supports the following Intel I/O Controller Hubs (ICH): + * + * I/O Block I2C + * region SMBus Block proc. block + * Chip name PCI ID size PEC buffer call read + * --------------------------------------------------------------------------- + * 82801AA (ICH) 0x2413 16 no no no no + * 82801AB (ICH0) 0x2423 16 no no no no + * 82801BA (ICH2) 0x2443 16 no no no no + * 82801CA (ICH3) 0x2483 32 soft no no no + * 82801DB (ICH4) 0x24c3 32 hard yes no no + * 82801E (ICH5) 0x24d3 32 hard yes yes yes + * 6300ESB 0x25a4 32 hard yes yes yes + * 82801F (ICH6) 0x266a 32 hard yes yes yes + * 6310ESB/6320ESB 0x269b 32 hard yes yes yes + * 82801G (ICH7) 0x27da 32 hard yes yes yes + * 82801H (ICH8) 0x283e 32 hard yes yes yes + * 82801I (ICH9) 0x2930 32 hard yes yes yes + * EP80579 (Tolapai) 0x5032 32 hard yes yes yes + * ICH10 0x3a30 32 hard yes yes yes + * ICH10 0x3a60 32 hard yes yes yes + * 5/3400 Series (PCH) 0x3b30 32 hard yes yes yes + * 6 Series (PCH) 0x1c22 32 hard yes yes yes + * Patsburg (PCH) 0x1d22 32 hard yes yes yes + * Patsburg (PCH) IDF 0x1d70 32 hard yes yes yes + * Patsburg (PCH) IDF 0x1d71 32 hard yes yes yes + * Patsburg (PCH) IDF 0x1d72 32 hard yes yes yes + * DH89xxCC (PCH) 0x2330 32 hard yes yes yes + * Panther Point (PCH) 0x1e22 32 hard yes yes yes + * Lynx Point (PCH) 0x8c22 32 hard yes yes yes + * Lynx Point-LP (PCH) 0x9c22 32 hard yes yes yes + * Avoton (SOC) 0x1f3c 32 hard yes yes yes + * Wellsburg (PCH) 0x8d22 32 hard yes yes yes + * Wellsburg (PCH) MS 0x8d7d 32 hard yes yes yes + * Wellsburg (PCH) MS 0x8d7e 32 hard yes yes yes + * Wellsburg (PCH) MS 0x8d7f 32 hard yes yes yes + * Coleto Creek (PCH) 0x23b0 32 hard yes yes yes + * Wildcat Point (PCH) 0x8ca2 32 hard yes yes yes + * Wildcat Point-LP (PCH) 0x9ca2 32 hard yes yes yes + * BayTrail (SOC) 0x0f12 32 hard yes yes yes + * Braswell (SOC) 0x2292 32 hard yes yes yes + * Sunrise Point-H (PCH) 0xa123 32 hard yes yes yes + * Sunrise Point-LP (PCH) 0x9d23 32 hard yes yes yes + * DNV (SOC) 0x19df 32 hard yes yes yes + * Emmitsburg (PCH) 0x1bc9 32 hard yes yes yes + * Broxton (SOC) 0x5ad4 32 hard yes yes yes + * Lewisburg (PCH) 0xa1a3 32 hard yes yes yes + * Lewisburg Supersku (PCH) 0xa223 32 hard yes yes yes + * Kaby Lake PCH-H (PCH) 0xa2a3 32 hard yes yes yes + * Gemini Lake (SOC) 0x31d4 32 hard yes yes yes + * Cannon Lake-H (PCH) 0xa323 32 hard yes yes yes + * Cannon Lake-LP (PCH) 0x9da3 32 hard yes yes yes + * Cedar Fork (PCH) 0x18df 32 hard yes yes yes + * Ice Lake-LP (PCH) 0x34a3 32 hard yes yes yes + * Comet Lake (PCH) 0x02a3 32 hard yes yes yes + * Comet Lake-H (PCH) 0x06a3 32 hard yes yes yes + * Elkhart Lake (PCH) 0x4b23 32 hard yes yes yes + * Tiger Lake-LP (PCH) 0xa0a3 32 hard yes yes yes + * Tiger Lake-H (PCH) 0x43a3 32 hard yes yes yes + * Jasper Lake (SOC) 0x4da3 32 hard yes yes yes + * Comet Lake-V (PCH) 0xa3a3 32 hard yes yes yes + * Alder Lake-S (PCH) 0x7aa3 32 hard yes yes yes + * + * Features supported by this driver: + * Software PEC no + * Hardware PEC yes + * Block buffer yes + * Block process call transaction yes + * I2C block read transaction yes (doesn't use the block buffer) + * Slave mode no + * SMBus Host Notify yes + * Interrupt processing yes + * + * See the file Documentation/i2c/busses/i2c-i801.rst for details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if IS_ENABLED(CONFIG_I2C_MUX_GPIO) && defined CONFIG_DMI +#include +#include +#endif + +#define mem_clear(data, size) memset((data), 0, (size)) + +/* I801 SMBus address offsets */ +#define SMBHSTSTS(p) (0 + (p)->smba) +#define SMBHSTCNT(p) (2 + (p)->smba) +#define SMBHSTCMD(p) (3 + (p)->smba) +#define SMBHSTADD(p) (4 + (p)->smba) +#define SMBHSTDAT0(p) (5 + (p)->smba) +#define SMBHSTDAT1(p) (6 + (p)->smba) +#define SMBBLKDAT(p) (7 + (p)->smba) +#define SMBPEC(p) (8 + (p)->smba) /* ICH3 and later */ +#define SMBAUXSTS(p) (12 + (p)->smba) /* ICH4 and later */ +#define SMBAUXCTL(p) (13 + (p)->smba) /* ICH4 and later */ +#define SMBSLVSTS(p) (16 + (p)->smba) /* ICH3 and later */ +#define SMBSLVCMD(p) (17 + (p)->smba) /* ICH3 and later */ +#define SMBNTFDADD(p) (20 + (p)->smba) /* ICH3 and later */ +#define SMBPINCTL(p) (15 + (p)->smba) /* SMBus Pin Control Register */ + +/* PCI Address Constants */ +#define SMBBAR 4 +#define SMBPCICTL 0x004 +#define SMBPCISTS 0x006 +#define SMBHSTCFG 0x040 +#define TCOBASE 0x050 +#define TCOCTL 0x054 + +#define SBREG_BAR 0x10 +#define SBREG_SMBCTRL 0xc6000c +#define SBREG_SMBCTRL_DNV 0xcf000c + +/* Host status bits for SMBPCISTS */ +#define SMBPCISTS_INTS BIT(3) + +/* Control bits for SMBPCICTL */ +#define SMBPCICTL_INTDIS BIT(10) + +/* Host configuration bits for SMBHSTCFG */ +#define SMBHSTCFG_HST_EN BIT(0) +#define SMBHSTCFG_SMB_SMI_EN BIT(1) +#define SMBHSTCFG_I2C_EN BIT(2) +#define SMBHSTCFG_SSRESET BIT(3) +#define SSRESET_SLEEP_TIME 1 /* 1us */ +#define SSRESET_RETRY_TIME (1000 / SSRESET_SLEEP_TIME) + +/* Pin status for SMBPINCTL */ +#define SMBPINCTL_CLK_STS 1 /* bit0 SMBCLK_CUR_STS*/ +#define SMBPINCTL_SDA_STS 2 /* bit1 SMBDATA_CUR_STS*/ +#define SMBPINCTL_CLK_CTL 4 /* bit2 SMBCLK_CTL */ + +#define SMBHSTCFG_SPD_WD BIT(4) + +/* TCO configuration bits for TCOCTL */ +#define TCOCTL_EN BIT(8) + +/* Auxiliary status register bits, ICH4+ only */ +#define SMBAUXSTS_CRCE BIT(0) +#define SMBAUXSTS_STCO BIT(1) + +/* Auxiliary control register bits, ICH4+ only */ +#define SMBAUXCTL_CRC BIT(0) +#define SMBAUXCTL_E32B BIT(1) + +/* Other settings */ +#define MAX_RETRIES 400 + +/* I801 command constants */ +#define I801_QUICK 0x00 +#define I801_BYTE 0x04 +#define I801_BYTE_DATA 0x08 +#define I801_WORD_DATA 0x0C +#define I801_PROC_CALL 0x10 /* unimplemented */ +#define I801_BLOCK_DATA 0x14 +#define I801_I2C_BLOCK_DATA 0x18 /* ICH5 and later */ +#define I801_BLOCK_PROC_CALL 0x1C + +/* I801 Host Control register bits */ +#define SMBHSTCNT_INTREN BIT(0) +#define SMBHSTCNT_KILL BIT(1) +#define SMBHSTCNT_LAST_BYTE BIT(5) +#define SMBHSTCNT_START BIT(6) +#define SMBHSTCNT_PEC_EN BIT(7) /* ICH3 and later */ + +/* I801 Hosts Status register bits */ +#define SMBHSTSTS_BYTE_DONE BIT(7) +#define SMBHSTSTS_INUSE_STS BIT(6) +#define SMBHSTSTS_SMBALERT_STS BIT(5) +#define SMBHSTSTS_FAILED BIT(4) +#define SMBHSTSTS_BUS_ERR BIT(3) +#define SMBHSTSTS_DEV_ERR BIT(2) +#define SMBHSTSTS_INTR BIT(1) +#define SMBHSTSTS_HOST_BUSY BIT(0) + +/* Host Notify Status register bits */ +#define SMBSLVSTS_HST_NTFY_STS BIT(0) + +/* Host Notify Command register bits */ +#define SMBSLVCMD_HST_NTFY_INTREN BIT(0) + +#define STATUS_ERROR_FLAGS (SMBHSTSTS_FAILED | SMBHSTSTS_BUS_ERR | \ + SMBHSTSTS_DEV_ERR) + +#define STATUS_FLAGS (SMBHSTSTS_BYTE_DONE | SMBHSTSTS_INTR | \ + STATUS_ERROR_FLAGS) + +/* Older devices have their ID defined in */ +#define PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS 0x02a3 +#define PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS 0x06a3 +#define PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS 0x0f12 +#define PCI_DEVICE_ID_INTEL_CDF_SMBUS 0x18df +#define PCI_DEVICE_ID_INTEL_DNV_SMBUS 0x19df +#define PCI_DEVICE_ID_INTEL_EBG_SMBUS 0x1bc9 +#define PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS 0x1c22 +#define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS 0x1d22 +/* Patsburg also has three 'Integrated Device Function' SMBus controllers */ +#define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0 0x1d70 +#define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1 0x1d71 +#define PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2 0x1d72 +#define PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS 0x1e22 +#define PCI_DEVICE_ID_INTEL_AVOTON_SMBUS 0x1f3c +#define PCI_DEVICE_ID_INTEL_BRASWELL_SMBUS 0x2292 +#define PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS 0x2330 +#define PCI_DEVICE_ID_INTEL_COLETOCREEK_SMBUS 0x23b0 +#define PCI_DEVICE_ID_INTEL_GEMINILAKE_SMBUS 0x31d4 +#define PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS 0x34a3 +#define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 +#define PCI_DEVICE_ID_INTEL_TIGERLAKE_H_SMBUS 0x43a3 +#define PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS 0x4b23 +#define PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS 0x4da3 +#define PCI_DEVICE_ID_INTEL_BROXTON_SMBUS 0x5ad4 +#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_S_SMBUS 0x7aa3 +#define PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS 0x8c22 +#define PCI_DEVICE_ID_INTEL_WILDCATPOINT_SMBUS 0x8ca2 +#define PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS 0x8d22 +#define PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS0 0x8d7d +#define PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS1 0x8d7e +#define PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS2 0x8d7f +#define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_SMBUS 0x9c22 +#define PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_SMBUS 0x9ca2 +#define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS 0x9d23 +#define PCI_DEVICE_ID_INTEL_CANNONLAKE_LP_SMBUS 0x9da3 +#define PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS 0xa0a3 +#define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_SMBUS 0xa123 +#define PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS 0xa1a3 +#define PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS 0xa223 +#define PCI_DEVICE_ID_INTEL_KABYLAKE_PCH_H_SMBUS 0xa2a3 +#define PCI_DEVICE_ID_INTEL_CANNONLAKE_H_SMBUS 0xa323 +#define PCI_DEVICE_ID_INTEL_COMETLAKE_V_SMBUS 0xa3a3 + +struct i801_mux_config { + char *gpio_chip; + unsigned values[3]; + int n_values; + unsigned classes[3]; + unsigned gpios[2]; /* Relative to gpio_chip->base */ + int n_gpios; +}; + +struct i801_priv { + struct i2c_adapter adapter; + unsigned long smba; + unsigned char original_hstcfg; + unsigned char original_slvcmd; + struct pci_dev *pci_dev; + unsigned int features; + + /* isr processing */ + wait_queue_head_t waitq; + u8 status; + + /* Command state used by isr for byte-by-byte block transactions */ + u8 cmd; + bool is_read; + int count; + int len; + u8 *data; + +#if IS_ENABLED(CONFIG_I2C_MUX_GPIO) && defined CONFIG_DMI + const struct i801_mux_config *mux_drvdata; + struct platform_device *mux_pdev; + struct gpiod_lookup_table *lookup; +#endif + struct platform_device *tco_pdev; + + /* + * If set to true the host controller registers are reserved for + * ACPI AML use. Protected by acpi_lock. + */ + bool acpi_reserved; + struct mutex acpi_lock; +}; + +#define FEATURE_SMBUS_PEC BIT(0) +#define FEATURE_BLOCK_BUFFER BIT(1) +#define FEATURE_BLOCK_PROC BIT(2) +#define FEATURE_I2C_BLOCK_READ BIT(3) +#define FEATURE_IRQ BIT(4) +#define FEATURE_HOST_NOTIFY BIT(5) +/* Not really a feature, but it's convenient to handle it as such */ +#define FEATURE_IDF BIT(15) +#define FEATURE_TCO_SPT BIT(16) +#define FEATURE_TCO_CNL BIT(17) + +static const char *i801_feature_names[] = { + "SMBus PEC", + "Block buffer", + "Block process call", + "I2C block read", + "Interrupt", + "SMBus Host Notify", +}; + +static unsigned int disable_features; +module_param(disable_features, uint, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(disable_features, "Disable selected driver features:\n" + "\t\t 0x01 disable SMBus PEC\n" + "\t\t 0x02 disable the block buffer\n" + "\t\t 0x08 disable the I2C block read functionality\n" + "\t\t 0x10 don't use interrupts\n" + "\t\t 0x20 disable SMBus Host Notify "); + +static void i801_setscl(struct i801_priv *priv, unsigned int level) +{ + int pin_status; + pin_status = inb_p(SMBPINCTL(priv)); + if (level == 0) { + pin_status &= (~SMBPINCTL_CLK_CTL); + } + else { + pin_status |= SMBPINCTL_CLK_CTL; + } + outb_p(pin_status, SMBPINCTL(priv)); + return; +} + +static void i801_i2c_unblock(struct i801_priv *priv) +{ + int i; + for (i = 0; i < 10; i++) { + i801_setscl(priv, 0); + udelay(5); + i801_setscl(priv, 1); + udelay(5); + } + return; +} + +static int i801_check_i2c_unblock(struct i801_priv *priv) +{ + int pin_status; + + pin_status = inb_p(SMBPINCTL(priv)); + if ( (!(pin_status & SMBPINCTL_SDA_STS) ) && (pin_status & SMBPINCTL_CLK_STS) ) { + dev_dbg(&priv->pci_dev->dev, "SDA is low, send 9 clock to device!\n"); + i801_i2c_unblock(priv); + } + return 0; +} + +static void i801_do_reset(struct i801_priv *priv) +{ + unsigned char tmp; + unsigned int retry_count = 0; + + pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &tmp); + tmp |= SMBHSTCFG_SSRESET; + pci_write_config_byte(priv->pci_dev, SMBHSTCFG, tmp); + pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &tmp); + + while( ((tmp & SMBHSTCFG_SSRESET) != 0) && (retry_count < SSRESET_RETRY_TIME)) { + usleep_range(SSRESET_SLEEP_TIME, SSRESET_SLEEP_TIME + 1); + retry_count++; + pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &tmp); + } + + return ; +} + +static int i801_check_i2c_scl(struct i801_priv *priv) +{ + int pin_status; + + pin_status = inb_p(SMBPINCTL(priv)); + if ( (pin_status & SMBPINCTL_SDA_STS) && (pin_status & SMBPINCTL_CLK_STS) ) { + return 0; + } + + dev_dbg(&priv->pci_dev->dev, "SDA or SCL is low, begin to reset SMBus adapter, pin_status: 0x%x\n",pin_status); + i801_do_reset(priv); + pin_status = inb_p(SMBPINCTL(priv)); + if ( (pin_status & SMBPINCTL_SDA_STS) && (pin_status & SMBPINCTL_CLK_STS) ) { + return 0; + } + dev_warn(&priv->pci_dev->dev, "SDA or SCL is low.pin_status:0x%x\n",pin_status); + return -1; +} + +/* Make sure the SMBus host is ready to start transmitting. + Return 0 if it is, -EBUSY if it is not. */ +static int i801_check_pre(struct i801_priv *priv) +{ + int status; + + i801_check_i2c_unblock(priv); + + if (i801_check_i2c_scl(priv)) { + return -EIO; + } + + status = inb_p(SMBHSTSTS(priv)); + if (status & SMBHSTSTS_HOST_BUSY) { + dev_dbg(&priv->pci_dev->dev, "SMBus is busy, begin to reset SMBus adapter!\n"); + + i801_do_reset(priv); + + status = inb_p(SMBHSTSTS(priv)); + if (status & SMBHSTSTS_HOST_BUSY) { + dev_err(&priv->pci_dev->dev, "SMBus is busy, can't use it!\n"); + return -EBUSY; + } + } + + status &= STATUS_FLAGS; + if (status) { + dev_dbg(&priv->pci_dev->dev, "Clearing status flags (%02x)\n", + status); + outb_p(status, SMBHSTSTS(priv)); + status = inb_p(SMBHSTSTS(priv)) & STATUS_FLAGS; + if (status) { + dev_err(&priv->pci_dev->dev, + "Failed clearing status flags (%02x)\n", + status); + return -EBUSY; + } + } + + /* + * Clear CRC status if needed. + * During normal operation, i801_check_post() takes care + * of it after every operation. We do it here only in case + * the hardware was already in this state when the driver + * started. + */ + if (priv->features & FEATURE_SMBUS_PEC) { + status = inb_p(SMBAUXSTS(priv)) & SMBAUXSTS_CRCE; + if (status) { + dev_dbg(&priv->pci_dev->dev, + "Clearing aux status flags (%02x)\n", status); + outb_p(status, SMBAUXSTS(priv)); + status = inb_p(SMBAUXSTS(priv)) & SMBAUXSTS_CRCE; + if (status) { + dev_err(&priv->pci_dev->dev, + "Failed clearing aux status flags (%02x)\n", + status); + return -EBUSY; + } + } + } + + return 0; +} + +/* + * Convert the status register to an error code, and clear it. + * Note that status only contains the bits we want to clear, not the + * actual register value. + */ +static int i801_check_post(struct i801_priv *priv, int status) +{ + int result = 0; + + /* + * If the SMBus is still busy, we give up + * Note: This timeout condition only happens when using polling + * transactions. For interrupt operation, NAK/timeout is indicated by + * DEV_ERR. + */ + if (unlikely(status < 0)) { + dev_err(&priv->pci_dev->dev, "Transaction timeout\n"); + /* try to stop the current command */ + dev_dbg(&priv->pci_dev->dev, "Terminating the current operation\n"); + outb_p(SMBHSTCNT_KILL, SMBHSTCNT(priv)); + usleep_range(1000, 2000); + outb_p(0, SMBHSTCNT(priv)); + + /* Check if it worked */ + status = inb_p(SMBHSTSTS(priv)); + if ((status & SMBHSTSTS_HOST_BUSY) || + !(status & SMBHSTSTS_FAILED)) + dev_err(&priv->pci_dev->dev, + "Failed terminating the transaction\n"); + outb_p(STATUS_FLAGS, SMBHSTSTS(priv)); + return -ETIMEDOUT; + } + + if (status & SMBHSTSTS_FAILED) { + result = -EIO; + dev_err(&priv->pci_dev->dev, "Transaction failed\n"); + } + if (status & SMBHSTSTS_DEV_ERR) { + /* + * This may be a PEC error, check and clear it. + * + * AUXSTS is handled differently from HSTSTS. + * For HSTSTS, i801_isr() or i801_wait_intr() + * has already cleared the error bits in hardware, + * and we are passed a copy of the original value + * in "status". + * For AUXSTS, the hardware register is left + * for us to handle here. + * This is asymmetric, slightly iffy, but safe, + * since all this code is serialized and the CRCE + * bit is harmless as long as it's cleared before + * the next operation. + */ + if ((priv->features & FEATURE_SMBUS_PEC) && + (inb_p(SMBAUXSTS(priv)) & SMBAUXSTS_CRCE)) { + outb_p(SMBAUXSTS_CRCE, SMBAUXSTS(priv)); + result = -EBADMSG; + dev_dbg(&priv->pci_dev->dev, "PEC error\n"); + } else { + result = -ENXIO; + dev_dbg(&priv->pci_dev->dev, "No response\n"); + } + } + if (status & SMBHSTSTS_BUS_ERR) { + result = -EAGAIN; + dev_dbg(&priv->pci_dev->dev, "Lost arbitration\n"); + } + + /* Clear status flags except BYTE_DONE, to be cleared by caller */ + outb_p(status, SMBHSTSTS(priv)); + + return result; +} + +/* Wait for BUSY being cleared and either INTR or an error flag being set */ +static int i801_wait_intr(struct i801_priv *priv) +{ + int timeout = 0; + int status; + + /* We will always wait for a fraction of a second! */ + do { + usleep_range(250, 500); + status = inb_p(SMBHSTSTS(priv)); + } while (((status & SMBHSTSTS_HOST_BUSY) || + !(status & (STATUS_ERROR_FLAGS | SMBHSTSTS_INTR))) && + (timeout++ < MAX_RETRIES)); + + if (timeout > MAX_RETRIES) { + dev_dbg(&priv->pci_dev->dev, "INTR Timeout!\n"); + return -ETIMEDOUT; + } + return status & (STATUS_ERROR_FLAGS | SMBHSTSTS_INTR); +} + +/* Wait for either BYTE_DONE or an error flag being set */ +static int i801_wait_byte_done(struct i801_priv *priv) +{ + int timeout = 0; + int status; + + /* We will always wait for a fraction of a second! */ + do { + usleep_range(250, 500); + status = inb_p(SMBHSTSTS(priv)); + } while (!(status & (STATUS_ERROR_FLAGS | SMBHSTSTS_BYTE_DONE)) && + (timeout++ < MAX_RETRIES)); + + if (timeout > MAX_RETRIES) { + dev_dbg(&priv->pci_dev->dev, "BYTE_DONE Timeout!\n"); + return -ETIMEDOUT; + } + return status & STATUS_ERROR_FLAGS; +} + +static int i801_transaction(struct i801_priv *priv, int xact) +{ + int status; + int result; + const struct i2c_adapter *adap = &priv->adapter; + + result = i801_check_pre(priv); + if (result < 0) + return result; + + if (priv->features & FEATURE_IRQ) { + outb_p(xact | SMBHSTCNT_INTREN | SMBHSTCNT_START, + SMBHSTCNT(priv)); + result = wait_event_timeout(priv->waitq, + (status = priv->status), + adap->timeout); + if (!result) { + status = -ETIMEDOUT; + dev_warn(&priv->pci_dev->dev, + "Timeout waiting for interrupt!\n"); + } + priv->status = 0; + return i801_check_post(priv, status); + } + + /* the current contents of SMBHSTCNT can be overwritten, since PEC, + * SMBSCMD are passed in xact */ + outb_p(xact | SMBHSTCNT_START, SMBHSTCNT(priv)); + + status = i801_wait_intr(priv); + return i801_check_post(priv, status); +} + +static int i801_block_transaction_by_block(struct i801_priv *priv, + union i2c_smbus_data *data, + char read_write, int command, + int hwpec) +{ + int i, len; + int status; + int xact = hwpec ? SMBHSTCNT_PEC_EN : 0; + + switch (command) { + case I2C_SMBUS_BLOCK_PROC_CALL: + xact |= I801_BLOCK_PROC_CALL; + break; + case I2C_SMBUS_BLOCK_DATA: + xact |= I801_BLOCK_DATA; + break; + default: + return -EOPNOTSUPP; + } + + inb_p(SMBHSTCNT(priv)); /* reset the data buffer index */ + + /* Use 32-byte buffer to process this transaction */ + if (read_write == I2C_SMBUS_WRITE) { + len = data->block[0]; + outb_p(len, SMBHSTDAT0(priv)); + for (i = 0; i < len; i++) + outb_p(data->block[i+1], SMBBLKDAT(priv)); + } + + status = i801_transaction(priv, xact); + if (status) + return status; + + if (read_write == I2C_SMBUS_READ || + command == I2C_SMBUS_BLOCK_PROC_CALL) { + len = inb_p(SMBHSTDAT0(priv)); + if (len < 1 || len > I2C_SMBUS_BLOCK_MAX) + return -EPROTO; + + data->block[0] = len; + for (i = 0; i < len; i++) + data->block[i + 1] = inb_p(SMBBLKDAT(priv)); + } + return 0; +} + +static void i801_isr_byte_done(struct i801_priv *priv) +{ + if (priv->is_read) { + /* For SMBus block reads, length is received with first byte */ + if (((priv->cmd & 0x1c) == I801_BLOCK_DATA) && + (priv->count == 0)) { + priv->len = inb_p(SMBHSTDAT0(priv)); + if (priv->len < 1 || priv->len > I2C_SMBUS_BLOCK_MAX) { + dev_err(&priv->pci_dev->dev, + "Illegal SMBus block read size %d\n", + priv->len); + /* FIXME: Recover */ + priv->len = I2C_SMBUS_BLOCK_MAX; + } else { + dev_dbg(&priv->pci_dev->dev, + "SMBus block read size is %d\n", + priv->len); + } + priv->data[-1] = priv->len; + } + + /* Read next byte */ + if (priv->count < priv->len) + priv->data[priv->count++] = inb(SMBBLKDAT(priv)); + else + dev_dbg(&priv->pci_dev->dev, + "Discarding extra byte on block read\n"); + + /* Set LAST_BYTE for last byte of read transaction */ + if (priv->count == priv->len - 1) + outb_p(priv->cmd | SMBHSTCNT_LAST_BYTE, + SMBHSTCNT(priv)); + } else if (priv->count < priv->len - 1) { + /* Write next byte, except for IRQ after last byte */ + outb_p(priv->data[++priv->count], SMBBLKDAT(priv)); + } + + /* Clear BYTE_DONE to continue with next byte */ + outb_p(SMBHSTSTS_BYTE_DONE, SMBHSTSTS(priv)); +} + +static irqreturn_t i801_host_notify_isr(struct i801_priv *priv) +{ + unsigned short addr; + + addr = inb_p(SMBNTFDADD(priv)) >> 1; + + /* + * With the tested platforms, reading SMBNTFDDAT (22 + (p)->smba) + * always returns 0. Our current implementation doesn't provide + * data, so we just ignore it. + */ + i2c_handle_smbus_host_notify(&priv->adapter, addr); + + /* clear Host Notify bit and return */ + outb_p(SMBSLVSTS_HST_NTFY_STS, SMBSLVSTS(priv)); + return IRQ_HANDLED; +} + +/* + * There are three kinds of interrupts: + * + * 1) i801 signals transaction completion with one of these interrupts: + * INTR - Success + * DEV_ERR - Invalid command, NAK or communication timeout + * BUS_ERR - SMI# transaction collision + * FAILED - transaction was canceled due to a KILL request + * When any of these occur, update ->status and wake up the waitq. + * ->status must be cleared before kicking off the next transaction. + * + * 2) For byte-by-byte (I2C read/write) transactions, one BYTE_DONE interrupt + * occurs for each byte of a byte-by-byte to prepare the next byte. + * + * 3) Host Notify interrupts + */ +static irqreturn_t i801_isr(int irq, void *dev_id) +{ + struct i801_priv *priv = dev_id; + u16 pcists; + u8 status; + + /* Confirm this is our interrupt */ + pci_read_config_word(priv->pci_dev, SMBPCISTS, &pcists); + if (!(pcists & SMBPCISTS_INTS)) + return IRQ_NONE; + + if (priv->features & FEATURE_HOST_NOTIFY) { + status = inb_p(SMBSLVSTS(priv)); + if (status & SMBSLVSTS_HST_NTFY_STS) + return i801_host_notify_isr(priv); + } + + status = inb_p(SMBHSTSTS(priv)); + if (status & SMBHSTSTS_BYTE_DONE) + i801_isr_byte_done(priv); + + /* + * Clear irq sources and report transaction result. + * ->status must be cleared before the next transaction is started. + */ + status &= SMBHSTSTS_INTR | STATUS_ERROR_FLAGS; + if (status) { + outb_p(status, SMBHSTSTS(priv)); + priv->status = status; + wake_up(&priv->waitq); + } + + return IRQ_HANDLED; +} + +/* + * For "byte-by-byte" block transactions: + * I2C write uses cmd=I801_BLOCK_DATA, I2C_EN=1 + * I2C read uses cmd=I801_I2C_BLOCK_DATA + */ +static int i801_block_transaction_byte_by_byte(struct i801_priv *priv, + union i2c_smbus_data *data, + char read_write, int command, + int hwpec) +{ + int i, len; + int smbcmd; + int status; + int result; + const struct i2c_adapter *adap = &priv->adapter; + + if (command == I2C_SMBUS_BLOCK_PROC_CALL) + return -EOPNOTSUPP; + + result = i801_check_pre(priv); + if (result < 0) + return result; + + len = data->block[0]; + + if (read_write == I2C_SMBUS_WRITE) { + outb_p(len, SMBHSTDAT0(priv)); + outb_p(data->block[1], SMBBLKDAT(priv)); + } + + if (command == I2C_SMBUS_I2C_BLOCK_DATA && + read_write == I2C_SMBUS_READ) + smbcmd = I801_I2C_BLOCK_DATA; + else + smbcmd = I801_BLOCK_DATA; + + if (priv->features & FEATURE_IRQ) { + priv->is_read = (read_write == I2C_SMBUS_READ); + if (len == 1 && priv->is_read) + smbcmd |= SMBHSTCNT_LAST_BYTE; + priv->cmd = smbcmd | SMBHSTCNT_INTREN; + priv->len = len; + priv->count = 0; + priv->data = &data->block[1]; + + outb_p(priv->cmd | SMBHSTCNT_START, SMBHSTCNT(priv)); + result = wait_event_timeout(priv->waitq, + (status = priv->status), + adap->timeout); + if (!result) { + status = -ETIMEDOUT; + dev_warn(&priv->pci_dev->dev, + "Timeout waiting for interrupt!\n"); + } + priv->status = 0; + return i801_check_post(priv, status); + } + + for (i = 1; i <= len; i++) { + if (i == len && read_write == I2C_SMBUS_READ) + smbcmd |= SMBHSTCNT_LAST_BYTE; + outb_p(smbcmd, SMBHSTCNT(priv)); + + if (i == 1) + outb_p(inb(SMBHSTCNT(priv)) | SMBHSTCNT_START, + SMBHSTCNT(priv)); + + status = i801_wait_byte_done(priv); + if (status) + goto exit; + + if (i == 1 && read_write == I2C_SMBUS_READ + && command != I2C_SMBUS_I2C_BLOCK_DATA) { + len = inb_p(SMBHSTDAT0(priv)); + if (len < 1 || len > I2C_SMBUS_BLOCK_MAX) { + dev_err(&priv->pci_dev->dev, + "Illegal SMBus block read size %d\n", + len); + /* Recover */ + while (inb_p(SMBHSTSTS(priv)) & + SMBHSTSTS_HOST_BUSY) + outb_p(SMBHSTSTS_BYTE_DONE, + SMBHSTSTS(priv)); + outb_p(SMBHSTSTS_INTR, SMBHSTSTS(priv)); + return -EPROTO; + } + data->block[0] = len; + } + + /* Retrieve/store value in SMBBLKDAT */ + if (read_write == I2C_SMBUS_READ) + data->block[i] = inb_p(SMBBLKDAT(priv)); + if (read_write == I2C_SMBUS_WRITE && i+1 <= len) + outb_p(data->block[i+1], SMBBLKDAT(priv)); + + /* signals SMBBLKDAT ready */ + outb_p(SMBHSTSTS_BYTE_DONE, SMBHSTSTS(priv)); + } + + status = i801_wait_intr(priv); +exit: + return i801_check_post(priv, status); +} + +static int i801_set_block_buffer_mode(struct i801_priv *priv) +{ + outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_E32B, SMBAUXCTL(priv)); + if ((inb_p(SMBAUXCTL(priv)) & SMBAUXCTL_E32B) == 0) + return -EIO; + return 0; +} + +/* Block transaction function */ +static int i801_block_transaction(struct i801_priv *priv, + union i2c_smbus_data *data, char read_write, + int command, int hwpec) +{ + int result = 0; + unsigned char hostc; + + if (command == I2C_SMBUS_I2C_BLOCK_DATA) { + if (read_write == I2C_SMBUS_WRITE) { + /* set I2C_EN bit in configuration register */ + pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &hostc); + pci_write_config_byte(priv->pci_dev, SMBHSTCFG, + hostc | SMBHSTCFG_I2C_EN); + } else if (!(priv->features & FEATURE_I2C_BLOCK_READ)) { + dev_err(&priv->pci_dev->dev, + "I2C block read is unsupported!\n"); + return -EOPNOTSUPP; + } + } + + if (read_write == I2C_SMBUS_WRITE + || command == I2C_SMBUS_I2C_BLOCK_DATA) { + if (data->block[0] < 1) + data->block[0] = 1; + if (data->block[0] > I2C_SMBUS_BLOCK_MAX) + data->block[0] = I2C_SMBUS_BLOCK_MAX; + } else { + data->block[0] = 32; /* max for SMBus block reads */ + } + + /* Experience has shown that the block buffer can only be used for + SMBus (not I2C) block transactions, even though the datasheet + doesn't mention this limitation. */ + if ((priv->features & FEATURE_BLOCK_BUFFER) + && command != I2C_SMBUS_I2C_BLOCK_DATA + && i801_set_block_buffer_mode(priv) == 0) + result = i801_block_transaction_by_block(priv, data, + read_write, + command, hwpec); + else + result = i801_block_transaction_byte_by_byte(priv, data, + read_write, + command, hwpec); + + if (command == I2C_SMBUS_I2C_BLOCK_DATA + && read_write == I2C_SMBUS_WRITE) { + /* restore saved configuration register value */ + pci_write_config_byte(priv->pci_dev, SMBHSTCFG, hostc); + } + return result; +} + +/* Return negative errno on error. */ +static s32 i801_access(struct i2c_adapter *adap, u16 addr, + unsigned short flags, char read_write, u8 command, + int size, union i2c_smbus_data *data) +{ + int hwpec; + int block = 0; + int ret = 0, xact = 0; + struct i801_priv *priv = i2c_get_adapdata(adap); + + mutex_lock(&priv->acpi_lock); + if (priv->acpi_reserved) { + mutex_unlock(&priv->acpi_lock); + return -EBUSY; + } + + pm_runtime_get_sync(&priv->pci_dev->dev); + + hwpec = (priv->features & FEATURE_SMBUS_PEC) && (flags & I2C_CLIENT_PEC) + && size != I2C_SMBUS_QUICK + && size != I2C_SMBUS_I2C_BLOCK_DATA; + + switch (size) { + case I2C_SMBUS_QUICK: + outb_p(((addr & 0x7f) << 1) | (read_write & 0x01), + SMBHSTADD(priv)); + xact = I801_QUICK; + break; + case I2C_SMBUS_BYTE: + outb_p(((addr & 0x7f) << 1) | (read_write & 0x01), + SMBHSTADD(priv)); + if (read_write == I2C_SMBUS_WRITE) + outb_p(command, SMBHSTCMD(priv)); + xact = I801_BYTE; + break; + case I2C_SMBUS_BYTE_DATA: + outb_p(((addr & 0x7f) << 1) | (read_write & 0x01), + SMBHSTADD(priv)); + outb_p(command, SMBHSTCMD(priv)); + if (read_write == I2C_SMBUS_WRITE) + outb_p(data->byte, SMBHSTDAT0(priv)); + xact = I801_BYTE_DATA; + break; + case I2C_SMBUS_WORD_DATA: + outb_p(((addr & 0x7f) << 1) | (read_write & 0x01), + SMBHSTADD(priv)); + outb_p(command, SMBHSTCMD(priv)); + if (read_write == I2C_SMBUS_WRITE) { + outb_p(data->word & 0xff, SMBHSTDAT0(priv)); + outb_p((data->word & 0xff00) >> 8, SMBHSTDAT1(priv)); + } + xact = I801_WORD_DATA; + break; + case I2C_SMBUS_BLOCK_DATA: + outb_p(((addr & 0x7f) << 1) | (read_write & 0x01), + SMBHSTADD(priv)); + outb_p(command, SMBHSTCMD(priv)); + block = 1; + break; + case I2C_SMBUS_I2C_BLOCK_DATA: + /* + * NB: page 240 of ICH5 datasheet shows that the R/#W + * bit should be cleared here, even when reading. + * However if SPD Write Disable is set (Lynx Point and later), + * the read will fail if we don't set the R/#W bit. + */ + outb_p(((addr & 0x7f) << 1) | + ((priv->original_hstcfg & SMBHSTCFG_SPD_WD) ? + (read_write & 0x01) : 0), + SMBHSTADD(priv)); + if (read_write == I2C_SMBUS_READ) { + /* NB: page 240 of ICH5 datasheet also shows + * that DATA1 is the cmd field when reading */ + outb_p(command, SMBHSTDAT1(priv)); + } else + outb_p(command, SMBHSTCMD(priv)); + block = 1; + break; + case I2C_SMBUS_BLOCK_PROC_CALL: + /* + * Bit 0 of the slave address register always indicate a write + * command. + */ + outb_p((addr & 0x7f) << 1, SMBHSTADD(priv)); + outb_p(command, SMBHSTCMD(priv)); + block = 1; + break; + default: + dev_err(&priv->pci_dev->dev, "Unsupported transaction %d\n", + size); + ret = -EOPNOTSUPP; + goto out; + } + + if (hwpec) /* enable/disable hardware PEC */ + outb_p(inb_p(SMBAUXCTL(priv)) | SMBAUXCTL_CRC, SMBAUXCTL(priv)); + else + outb_p(inb_p(SMBAUXCTL(priv)) & (~SMBAUXCTL_CRC), + SMBAUXCTL(priv)); + + if (block) + ret = i801_block_transaction(priv, data, read_write, size, + hwpec); + else + ret = i801_transaction(priv, xact); + + /* Some BIOSes don't like it when PEC is enabled at reboot or resume + time, so we forcibly disable it after every transaction. Turn off + E32B for the same reason. */ + if (hwpec || block) + outb_p(inb_p(SMBAUXCTL(priv)) & + ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), SMBAUXCTL(priv)); + + if (block) + goto out; + if (ret) + goto out; + if ((read_write == I2C_SMBUS_WRITE) || (xact == I801_QUICK)) + goto out; + + switch (xact & 0x7f) { + case I801_BYTE: /* Result put in SMBHSTDAT0 */ + case I801_BYTE_DATA: + data->byte = inb_p(SMBHSTDAT0(priv)); + break; + case I801_WORD_DATA: + data->word = inb_p(SMBHSTDAT0(priv)) + + (inb_p(SMBHSTDAT1(priv)) << 8); + break; + } + +out: + pm_runtime_mark_last_busy(&priv->pci_dev->dev); + pm_runtime_put_autosuspend(&priv->pci_dev->dev); + mutex_unlock(&priv->acpi_lock); + return ret; +} + +static u32 i801_func(struct i2c_adapter *adapter) +{ + struct i801_priv *priv = i2c_get_adapdata(adapter); + + return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | + I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | + I2C_FUNC_SMBUS_BLOCK_DATA | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK | + ((priv->features & FEATURE_SMBUS_PEC) ? I2C_FUNC_SMBUS_PEC : 0) | + ((priv->features & FEATURE_BLOCK_PROC) ? + I2C_FUNC_SMBUS_BLOCK_PROC_CALL : 0) | + ((priv->features & FEATURE_I2C_BLOCK_READ) ? + I2C_FUNC_SMBUS_READ_I2C_BLOCK : 0) | + ((priv->features & FEATURE_HOST_NOTIFY) ? + I2C_FUNC_SMBUS_HOST_NOTIFY : 0); +} + +static void i801_enable_host_notify(struct i2c_adapter *adapter) +{ + struct i801_priv *priv = i2c_get_adapdata(adapter); + + if (!(priv->features & FEATURE_HOST_NOTIFY)) + return; + + if (!(SMBSLVCMD_HST_NTFY_INTREN & priv->original_slvcmd)) + outb_p(SMBSLVCMD_HST_NTFY_INTREN | priv->original_slvcmd, + SMBSLVCMD(priv)); + + /* clear Host Notify bit to allow a new notification */ + outb_p(SMBSLVSTS_HST_NTFY_STS, SMBSLVSTS(priv)); +} + +static void i801_disable_host_notify(struct i801_priv *priv) +{ + if (!(priv->features & FEATURE_HOST_NOTIFY)) + return; + + outb_p(priv->original_slvcmd, SMBSLVCMD(priv)); +} + +static const struct i2c_algorithm smbus_algorithm = { + .smbus_xfer = i801_access, + .functionality = i801_func, +}; + +static const struct pci_device_id i801_ids[] = { + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_3) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_3) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_2) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_3) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_3) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_3) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_4) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_16) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_17) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_17) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_5) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH9_6) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EP80579_1) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_4) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH10_5) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COUGARPOINT_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DH89XXCC_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PANTHERPOINT_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_AVOTON_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS0) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS1) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS2) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COLETOCREEK_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_GEMINILAKE_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WILDCATPOINT_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BAYTRAIL_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BRASWELL_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CDF_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DNV_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EBG_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BROXTON_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_KABYLAKE_PCH_H_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CANNONLAKE_H_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CANNONLAKE_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_V_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TIGERLAKE_H_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ALDER_LAKE_S_SMBUS) }, + { 0, } +}; + +MODULE_DEVICE_TABLE(pci, i801_ids); + +#if defined CONFIG_X86 && defined CONFIG_DMI +static unsigned char apanel_addr; + +/* Scan the system ROM for the signature "FJKEYINF" */ +static __init const void __iomem *bios_signature(const void __iomem *bios) +{ + ssize_t offset; + const unsigned char signature[] = "FJKEYINF"; + + for (offset = 0; offset < 0x10000; offset += 0x10) { + if (check_signature(bios + offset, signature, + sizeof(signature)-1)) + return bios + offset; + } + return NULL; +} + +static void __init input_apanel_init(void) +{ + void __iomem *bios; + const void __iomem *p; + + bios = ioremap(0xF0000, 0x10000); /* Can't fail */ + p = bios_signature(bios); + if (p) { + /* just use the first address */ + apanel_addr = readb(p + 8 + 3) >> 1; + } + iounmap(bios); +} + +struct dmi_onboard_device_info { + const char *name; + u8 type; + unsigned short i2c_addr; + const char *i2c_type; +}; + +static const struct dmi_onboard_device_info dmi_devices[] = { + { "Syleus", DMI_DEV_TYPE_OTHER, 0x73, "fscsyl" }, + { "Hermes", DMI_DEV_TYPE_OTHER, 0x73, "fscher" }, + { "Hades", DMI_DEV_TYPE_OTHER, 0x73, "fschds" }, +}; + +static void dmi_check_onboard_device(u8 type, const char *name, + struct i2c_adapter *adap) +{ + int i; + struct i2c_board_info info; + + for (i = 0; i < ARRAY_SIZE(dmi_devices); i++) { + /* & ~0x80, ignore enabled/disabled bit */ + if ((type & ~0x80) != dmi_devices[i].type) + continue; + if (strcasecmp(name, dmi_devices[i].name)) + continue; + + mem_clear(&info, sizeof(struct i2c_board_info)); + info.addr = dmi_devices[i].i2c_addr; + strlcpy(info.type, dmi_devices[i].i2c_type, I2C_NAME_SIZE); + i2c_new_client_device(adap, &info); + break; + } +} + +/* We use our own function to check for onboard devices instead of + dmi_find_device() as some buggy BIOS's have the devices we are interested + in marked as disabled */ +static void dmi_check_onboard_devices(const struct dmi_header *dm, void *adap) +{ + int i, count; + + if (dm->type != 10) + return; + + count = (dm->length - sizeof(struct dmi_header)) / 2; + for (i = 0; i < count; i++) { + const u8 *d = (char *)(dm + 1) + (i * 2); + const char *name = ((char *) dm) + dm->length; + u8 type = d[0]; + u8 s = d[1]; + + if (!s) + continue; + s--; + while (s > 0 && name[0]) { + name += strlen(name) + 1; + s--; + } + if (name[0] == 0) /* Bogus string reference */ + continue; + + dmi_check_onboard_device(type, name, adap); + } +} + +/* NOTE: Keep this list in sync with drivers/platform/x86/dell-smo8800.c */ +static const char *const acpi_smo8800_ids[] = { + "SMO8800", + "SMO8801", + "SMO8810", + "SMO8811", + "SMO8820", + "SMO8821", + "SMO8830", + "SMO8831", +}; + +static acpi_status check_acpi_smo88xx_device(acpi_handle obj_handle, + u32 nesting_level, + void *context, + void **return_value) +{ + struct acpi_device_info *info; + acpi_status status; + char *hid; + int i; + + status = acpi_get_object_info(obj_handle, &info); + if (ACPI_FAILURE(status)) + return AE_OK; + + if (!(info->valid & ACPI_VALID_HID)) + goto smo88xx_not_found; + + hid = info->hardware_id.string; + if (!hid) + goto smo88xx_not_found; + + i = match_string(acpi_smo8800_ids, ARRAY_SIZE(acpi_smo8800_ids), hid); + if (i < 0) + goto smo88xx_not_found; + + kfree(info); + + *((bool *)return_value) = true; + return AE_CTRL_TERMINATE; + +smo88xx_not_found: + kfree(info); + return AE_OK; +} + +static bool is_dell_system_with_lis3lv02d(void) +{ + bool found; + const char *vendor; + + vendor = dmi_get_system_info(DMI_SYS_VENDOR); + if (!vendor || strcmp(vendor, "Dell Inc.")) + return false; + + /* + * Check that ACPI device SMO88xx is present and is functioning. + * Function acpi_get_devices() already filters all ACPI devices + * which are not present or are not functioning. + * ACPI device SMO88xx represents our ST microelectronics lis3lv02d + * accelerometer but unfortunately ACPI does not provide any other + * information (like I2C address). + */ + found = false; + acpi_get_devices(NULL, check_acpi_smo88xx_device, NULL, + (void **)&found); + + return found; +} + +/* + * Accelerometer's I2C address is not specified in DMI nor ACPI, + * so it is needed to define mapping table based on DMI product names. + */ +static const struct { + const char *dmi_product_name; + unsigned short i2c_addr; +} dell_lis3lv02d_devices[] = { + /* + * Dell platform team told us that these Latitude devices have + * ST microelectronics accelerometer at I2C address 0x29. + */ + { "Latitude E5250", 0x29 }, + { "Latitude E5450", 0x29 }, + { "Latitude E5550", 0x29 }, + { "Latitude E6440", 0x29 }, + { "Latitude E6440 ATG", 0x29 }, + { "Latitude E6540", 0x29 }, + /* + * Additional individual entries were added after verification. + */ + { "Latitude 5480", 0x29 }, + { "Vostro V131", 0x1d }, +}; + +static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv) +{ + struct i2c_board_info info; + const char *dmi_product_name; + int i; + + dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME); + for (i = 0; i < ARRAY_SIZE(dell_lis3lv02d_devices); ++i) { + if (strcmp(dmi_product_name, + dell_lis3lv02d_devices[i].dmi_product_name) == 0) + break; + } + + if (i == ARRAY_SIZE(dell_lis3lv02d_devices)) { + dev_warn(&priv->pci_dev->dev, + "Accelerometer lis3lv02d is present on SMBus but its" + " address is unknown, skipping registration\n"); + return; + } + + mem_clear(&info, sizeof(struct i2c_board_info)); + info.addr = dell_lis3lv02d_devices[i].i2c_addr; + strlcpy(info.type, "lis3lv02d", I2C_NAME_SIZE); + i2c_new_client_device(&priv->adapter, &info); +} + +/* Register optional slaves */ +static void i801_probe_optional_slaves(struct i801_priv *priv) +{ + /* Only register slaves on main SMBus channel */ + if (priv->features & FEATURE_IDF) + return; + + if (apanel_addr) { + struct i2c_board_info info; + + mem_clear(&info, sizeof(struct i2c_board_info)); + info.addr = apanel_addr; + strlcpy(info.type, "fujitsu_apanel", I2C_NAME_SIZE); + i2c_new_client_device(&priv->adapter, &info); + } + + if (dmi_name_in_vendors("FUJITSU")) + dmi_walk(dmi_check_onboard_devices, &priv->adapter); + + if (is_dell_system_with_lis3lv02d()) + register_dell_lis3lv02d_i2c_device(priv); + + /* Instantiate SPD EEPROMs unless the SMBus is multiplexed */ +#if IS_ENABLED(CONFIG_I2C_MUX_GPIO) + if (!priv->mux_drvdata) +#endif + i2c_register_spd(&priv->adapter); +} +#else +static void __init input_apanel_init(void) {} +static void i801_probe_optional_slaves(struct i801_priv *priv) {} +#endif /* CONFIG_X86 && CONFIG_DMI */ + +#if IS_ENABLED(CONFIG_I2C_MUX_GPIO) && defined CONFIG_DMI +static struct i801_mux_config i801_mux_config_asus_z8_d12 = { + .gpio_chip = "gpio_ich", + .values = { 0x02, 0x03 }, + .n_values = 2, + .classes = { I2C_CLASS_SPD, I2C_CLASS_SPD }, + .gpios = { 52, 53 }, + .n_gpios = 2, +}; + +static struct i801_mux_config i801_mux_config_asus_z8_d18 = { + .gpio_chip = "gpio_ich", + .values = { 0x02, 0x03, 0x01 }, + .n_values = 3, + .classes = { I2C_CLASS_SPD, I2C_CLASS_SPD, I2C_CLASS_SPD }, + .gpios = { 52, 53 }, + .n_gpios = 2, +}; + +static const struct dmi_system_id mux_dmi_table[] = { + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8NA-D6(C)"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8P(N)E-D12(X)"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8NH-D12"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8PH-D12/IFB"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8NR-D12"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8P(N)H-D12"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8PG-D18"), + }, + .driver_data = &i801_mux_config_asus_z8_d18, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8PE-D18"), + }, + .driver_data = &i801_mux_config_asus_z8_d18, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "Z8PS-D12"), + }, + .driver_data = &i801_mux_config_asus_z8_d12, + }, + { } +}; + +/* Setup multiplexing if needed */ +static int i801_add_mux(struct i801_priv *priv) +{ + struct device *dev = &priv->adapter.dev; + const struct i801_mux_config *mux_config; + struct i2c_mux_gpio_platform_data gpio_data; + struct gpiod_lookup_table *lookup; + int err, i; + + if (!priv->mux_drvdata) + return 0; + mux_config = priv->mux_drvdata; + + /* Prepare the platform data */ + mem_clear(&gpio_data, sizeof(struct i2c_mux_gpio_platform_data)); + gpio_data.parent = priv->adapter.nr; + gpio_data.values = mux_config->values; + gpio_data.n_values = mux_config->n_values; + gpio_data.classes = mux_config->classes; + gpio_data.idle = I2C_MUX_GPIO_NO_IDLE; + + /* Register GPIO descriptor lookup table */ + lookup = devm_kzalloc(dev, + struct_size(lookup, table, mux_config->n_gpios + 1), + GFP_KERNEL); + if (!lookup) + return -ENOMEM; + lookup->dev_id = "i2c-mux-gpio"; + for (i = 0; i < mux_config->n_gpios; i++) { + lookup->table[i] = (struct gpiod_lookup) + GPIO_LOOKUP(mux_config->gpio_chip, + mux_config->gpios[i], "mux", 0); + } + gpiod_add_lookup_table(lookup); + priv->lookup = lookup; + + /* + * Register the mux device, we use PLATFORM_DEVID_NONE here + * because since we are referring to the GPIO chip by name we are + * anyways in deep trouble if there is more than one of these + * devices, and there should likely only be one platform controller + * hub. + */ + priv->mux_pdev = platform_device_register_data(dev, "i2c-mux-gpio", + PLATFORM_DEVID_NONE, &gpio_data, + sizeof(struct i2c_mux_gpio_platform_data)); + if (IS_ERR(priv->mux_pdev)) { + err = PTR_ERR(priv->mux_pdev); + gpiod_remove_lookup_table(lookup); + priv->mux_pdev = NULL; + dev_err(dev, "Failed to register i2c-mux-gpio device\n"); + return err; + } + + return 0; +} + +static void i801_del_mux(struct i801_priv *priv) +{ + if (priv->mux_pdev) + platform_device_unregister(priv->mux_pdev); + if (priv->lookup) + gpiod_remove_lookup_table(priv->lookup); +} + +static unsigned int i801_get_adapter_class(struct i801_priv *priv) +{ + const struct dmi_system_id *id; + const struct i801_mux_config *mux_config; + unsigned int class = I2C_CLASS_HWMON | I2C_CLASS_SPD; + int i; + + id = dmi_first_match(mux_dmi_table); + if (id) { + /* Remove branch classes from trunk */ + mux_config = id->driver_data; + for (i = 0; i < mux_config->n_values; i++) + class &= ~mux_config->classes[i]; + + /* Remember for later */ + priv->mux_drvdata = mux_config; + } + + return class; +} +#else +static inline int i801_add_mux(struct i801_priv *priv) { return 0; } +static inline void i801_del_mux(struct i801_priv *priv) { } + +static inline unsigned int i801_get_adapter_class(struct i801_priv *priv) +{ + return I2C_CLASS_HWMON | I2C_CLASS_SPD; +} +#endif + +static const struct itco_wdt_platform_data spt_tco_platform_data = { + .name = "Intel PCH", + .version = 4, +}; + +static DEFINE_SPINLOCK(p2sb_spinlock); + +static struct platform_device * +i801_add_tco_spt(struct i801_priv *priv, struct pci_dev *pci_dev, + struct resource *tco_res) +{ + struct resource *res; + unsigned int devfn; + u64 base64_addr; + u32 base_addr; + u8 hidden; + + /* + * We must access the NO_REBOOT bit over the Primary to Sideband + * bridge (P2SB). The BIOS prevents the P2SB device from being + * enumerated by the PCI subsystem, so we need to unhide/hide it + * to lookup the P2SB BAR. + */ + spin_lock(&p2sb_spinlock); + + devfn = PCI_DEVFN(PCI_SLOT(pci_dev->devfn), 1); + + /* Unhide the P2SB device, if it is hidden */ + pci_bus_read_config_byte(pci_dev->bus, devfn, 0xe1, &hidden); + if (hidden) + pci_bus_write_config_byte(pci_dev->bus, devfn, 0xe1, 0x0); + + pci_bus_read_config_dword(pci_dev->bus, devfn, SBREG_BAR, &base_addr); + base64_addr = base_addr & 0xfffffff0; + + pci_bus_read_config_dword(pci_dev->bus, devfn, SBREG_BAR + 0x4, &base_addr); + base64_addr |= (u64)base_addr << 32; + + /* Hide the P2SB device, if it was hidden before */ + if (hidden) + pci_bus_write_config_byte(pci_dev->bus, devfn, 0xe1, hidden); + spin_unlock(&p2sb_spinlock); + + res = &tco_res[1]; + if (pci_dev->device == PCI_DEVICE_ID_INTEL_DNV_SMBUS) + res->start = (resource_size_t)base64_addr + SBREG_SMBCTRL_DNV; + else + res->start = (resource_size_t)base64_addr + SBREG_SMBCTRL; + + res->end = res->start + 3; + res->flags = IORESOURCE_MEM; + + return platform_device_register_resndata(&pci_dev->dev, "iTCO_wdt", -1, + tco_res, 2, &spt_tco_platform_data, + sizeof(spt_tco_platform_data)); +} + +static const struct itco_wdt_platform_data cnl_tco_platform_data = { + .name = "Intel PCH", + .version = 6, +}; + +static struct platform_device * +i801_add_tco_cnl(struct i801_priv *priv, struct pci_dev *pci_dev, + struct resource *tco_res) +{ + return platform_device_register_resndata(&pci_dev->dev, + "iTCO_wdt", -1, tco_res, 1, &cnl_tco_platform_data, + sizeof(cnl_tco_platform_data)); +} + +static void i801_add_tco(struct i801_priv *priv) +{ + struct pci_dev *pci_dev = priv->pci_dev; + struct resource tco_res[2], *res; + u32 tco_base, tco_ctl; + + /* If we have ACPI based watchdog use that instead */ + if (acpi_has_watchdog()) + return; + + if (!(priv->features & (FEATURE_TCO_SPT | FEATURE_TCO_CNL))) + return; + + pci_read_config_dword(pci_dev, TCOBASE, &tco_base); + pci_read_config_dword(pci_dev, TCOCTL, &tco_ctl); + if (!(tco_ctl & TCOCTL_EN)) + return; + + mem_clear(tco_res, sizeof(tco_res)); + /* + * Always populate the main iTCO IO resource here. The second entry + * for NO_REBOOT MMIO is filled by the SPT specific function. + */ + res = &tco_res[0]; + res->start = tco_base & ~1; + res->end = res->start + 32 - 1; + res->flags = IORESOURCE_IO; + + if (priv->features & FEATURE_TCO_CNL) + priv->tco_pdev = i801_add_tco_cnl(priv, pci_dev, tco_res); + else + priv->tco_pdev = i801_add_tco_spt(priv, pci_dev, tco_res); + + if (IS_ERR(priv->tco_pdev)) + dev_warn(&pci_dev->dev, "failed to create iTCO device\n"); +} + +#ifdef CONFIG_ACPI +static bool i801_acpi_is_smbus_ioport(const struct i801_priv *priv, + acpi_physical_address address) +{ + return address >= priv->smba && + address <= pci_resource_end(priv->pci_dev, SMBBAR); +} + +static acpi_status +i801_acpi_io_handler(u32 function, acpi_physical_address address, u32 bits, + u64 *value, void *handler_context, void *region_context) +{ + struct i801_priv *priv = handler_context; + struct pci_dev *pdev = priv->pci_dev; + acpi_status status; + + /* + * Once BIOS AML code touches the OpRegion we warn and inhibit any + * further access from the driver itself. This device is now owned + * by the system firmware. + */ + mutex_lock(&priv->acpi_lock); + + if (!priv->acpi_reserved && i801_acpi_is_smbus_ioport(priv, address)) { + priv->acpi_reserved = true; + + dev_warn(&pdev->dev, "BIOS is accessing SMBus registers\n"); + dev_warn(&pdev->dev, "Driver SMBus register access inhibited\n"); + + /* + * BIOS is accessing the host controller so prevent it from + * suspending automatically from now on. + */ + pm_runtime_get_sync(&pdev->dev); + } + + if ((function & ACPI_IO_MASK) == ACPI_READ) + status = acpi_os_read_port(address, (u32 *)value, bits); + else + status = acpi_os_write_port(address, (u32)*value, bits); + + mutex_unlock(&priv->acpi_lock); + + return status; +} + +static int i801_acpi_probe(struct i801_priv *priv) +{ + struct acpi_device *adev; + acpi_status status; + + adev = ACPI_COMPANION(&priv->pci_dev->dev); + if (adev) { + status = acpi_install_address_space_handler(adev->handle, + ACPI_ADR_SPACE_SYSTEM_IO, i801_acpi_io_handler, + NULL, priv); + if (ACPI_SUCCESS(status)) + return 0; + } + + return acpi_check_resource_conflict(&priv->pci_dev->resource[SMBBAR]); +} + +static void i801_acpi_remove(struct i801_priv *priv) +{ + struct acpi_device *adev; + + adev = ACPI_COMPANION(&priv->pci_dev->dev); + if (!adev) + return; + + acpi_remove_address_space_handler(adev->handle, + ACPI_ADR_SPACE_SYSTEM_IO, i801_acpi_io_handler); + + mutex_lock(&priv->acpi_lock); + if (priv->acpi_reserved) + pm_runtime_put(&priv->pci_dev->dev); + mutex_unlock(&priv->acpi_lock); +} +#else +static inline int i801_acpi_probe(struct i801_priv *priv) { return 0; } +static inline void i801_acpi_remove(struct i801_priv *priv) { } +#endif + +static unsigned char i801_setup_hstcfg(struct i801_priv *priv) +{ + unsigned char hstcfg = priv->original_hstcfg; + + hstcfg &= ~SMBHSTCFG_I2C_EN; /* SMBus timing */ + hstcfg |= SMBHSTCFG_HST_EN; + pci_write_config_byte(priv->pci_dev, SMBHSTCFG, hstcfg); + return hstcfg; +} + +static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) +{ + unsigned char temp; + int err, i; + struct i801_priv *priv; + + priv = devm_kzalloc(&dev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + i2c_set_adapdata(&priv->adapter, priv); + priv->adapter.owner = THIS_MODULE; + priv->adapter.class = i801_get_adapter_class(priv); + priv->adapter.algo = &smbus_algorithm; + priv->adapter.dev.parent = &dev->dev; + ACPI_COMPANION_SET(&priv->adapter.dev, ACPI_COMPANION(&dev->dev)); + priv->adapter.retries = 3; + mutex_init(&priv->acpi_lock); + + priv->pci_dev = dev; + switch (dev->device) { + case PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_SMBUS: + case PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS: + case PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS: + case PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS: + case PCI_DEVICE_ID_INTEL_DNV_SMBUS: + case PCI_DEVICE_ID_INTEL_KABYLAKE_PCH_H_SMBUS: + case PCI_DEVICE_ID_INTEL_COMETLAKE_V_SMBUS: + priv->features |= FEATURE_BLOCK_PROC; + priv->features |= FEATURE_I2C_BLOCK_READ; + priv->features |= FEATURE_IRQ; + priv->features |= FEATURE_SMBUS_PEC; + priv->features |= FEATURE_BLOCK_BUFFER; + priv->features |= FEATURE_TCO_SPT; + priv->features |= FEATURE_HOST_NOTIFY; + break; + + case PCI_DEVICE_ID_INTEL_CANNONLAKE_H_SMBUS: + case PCI_DEVICE_ID_INTEL_CANNONLAKE_LP_SMBUS: + case PCI_DEVICE_ID_INTEL_CDF_SMBUS: + case PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS: + case PCI_DEVICE_ID_INTEL_COMETLAKE_SMBUS: + case PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS: + case PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS: + case PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS: + case PCI_DEVICE_ID_INTEL_TIGERLAKE_H_SMBUS: + case PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS: + case PCI_DEVICE_ID_INTEL_EBG_SMBUS: + case PCI_DEVICE_ID_INTEL_ALDER_LAKE_S_SMBUS: + priv->features |= FEATURE_BLOCK_PROC; + priv->features |= FEATURE_I2C_BLOCK_READ; + priv->features |= FEATURE_IRQ; + priv->features |= FEATURE_SMBUS_PEC; + priv->features |= FEATURE_BLOCK_BUFFER; + priv->features |= FEATURE_TCO_CNL; + priv->features |= FEATURE_HOST_NOTIFY; + break; + + case PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF0: + case PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF1: + case PCI_DEVICE_ID_INTEL_PATSBURG_SMBUS_IDF2: + case PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS0: + case PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS1: + case PCI_DEVICE_ID_INTEL_WELLSBURG_SMBUS_MS2: + priv->features |= FEATURE_IDF; + fallthrough; + default: + priv->features |= FEATURE_BLOCK_PROC; + priv->features |= FEATURE_I2C_BLOCK_READ; + priv->features |= FEATURE_IRQ; + fallthrough; + case PCI_DEVICE_ID_INTEL_82801DB_3: + priv->features |= FEATURE_SMBUS_PEC; + priv->features |= FEATURE_BLOCK_BUFFER; + fallthrough; + case PCI_DEVICE_ID_INTEL_82801CA_3: + priv->features |= FEATURE_HOST_NOTIFY; + fallthrough; + case PCI_DEVICE_ID_INTEL_82801BA_2: + case PCI_DEVICE_ID_INTEL_82801AB_3: + case PCI_DEVICE_ID_INTEL_82801AA_3: + break; + } + + /* Disable features on user request */ + for (i = 0; i < ARRAY_SIZE(i801_feature_names); i++) { + if (priv->features & disable_features & (1 << i)) + dev_notice(&dev->dev, "%s disabled by user\n", + i801_feature_names[i]); + } + priv->features &= ~disable_features; + + err = pcim_enable_device(dev); + if (err) { + dev_err(&dev->dev, "Failed to enable SMBus PCI device (%d)\n", + err); + return err; + } + pcim_pin_device(dev); + + /* Determine the address of the SMBus area */ + priv->smba = pci_resource_start(dev, SMBBAR); + if (!priv->smba) { + dev_err(&dev->dev, + "SMBus base address uninitialized, upgrade BIOS\n"); + return -ENODEV; + } + + if (i801_acpi_probe(priv)) + return -ENODEV; + + err = pcim_iomap_regions(dev, 1 << SMBBAR, + dev_driver_string(&dev->dev)); + if (err) { + dev_err(&dev->dev, + "Failed to request SMBus region 0x%lx-0x%Lx\n", + priv->smba, + (unsigned long long)pci_resource_end(dev, SMBBAR)); + i801_acpi_remove(priv); + return err; + } + + pci_read_config_byte(priv->pci_dev, SMBHSTCFG, &priv->original_hstcfg); + temp = i801_setup_hstcfg(priv); + if (!(priv->original_hstcfg & SMBHSTCFG_HST_EN)) + dev_info(&dev->dev, "Enabling SMBus device\n"); + + if (temp & SMBHSTCFG_SMB_SMI_EN) { + dev_dbg(&dev->dev, "SMBus using interrupt SMI#\n"); + /* Disable SMBus interrupt feature if SMBus using SMI# */ + priv->features &= ~FEATURE_IRQ; + } + if (temp & SMBHSTCFG_SPD_WD) + dev_info(&dev->dev, "SPD Write Disable is set\n"); + + /* Clear special mode bits */ + if (priv->features & (FEATURE_SMBUS_PEC | FEATURE_BLOCK_BUFFER)) + outb_p(inb_p(SMBAUXCTL(priv)) & + ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), SMBAUXCTL(priv)); + + /* Remember original Host Notify setting */ + if (priv->features & FEATURE_HOST_NOTIFY) + priv->original_slvcmd = inb_p(SMBSLVCMD(priv)); + + /* Default timeout in interrupt mode: 200 ms */ + priv->adapter.timeout = HZ / 5; + + if (dev->irq == IRQ_NOTCONNECTED) + priv->features &= ~FEATURE_IRQ; + + if (priv->features & FEATURE_IRQ) { + u16 pcictl, pcists; + + /* Complain if an interrupt is already pending */ + pci_read_config_word(priv->pci_dev, SMBPCISTS, &pcists); + if (pcists & SMBPCISTS_INTS) + dev_warn(&dev->dev, "An interrupt is pending!\n"); + + /* Check if interrupts have been disabled */ + pci_read_config_word(priv->pci_dev, SMBPCICTL, &pcictl); + if (pcictl & SMBPCICTL_INTDIS) { + dev_info(&dev->dev, "Interrupts are disabled\n"); + priv->features &= ~FEATURE_IRQ; + } + } + + if (priv->features & FEATURE_IRQ) { + init_waitqueue_head(&priv->waitq); + + err = devm_request_irq(&dev->dev, dev->irq, i801_isr, + IRQF_SHARED, + dev_driver_string(&dev->dev), priv); + if (err) { + dev_err(&dev->dev, "Failed to allocate irq %d: %d\n", + dev->irq, err); + priv->features &= ~FEATURE_IRQ; + } + } + dev_info(&dev->dev, "SMBus using %s\n", + priv->features & FEATURE_IRQ ? "PCI interrupt" : "polling"); + + i801_add_tco(priv); + + snprintf(priv->adapter.name, sizeof(priv->adapter.name), + "SMBus I801 adapter at %04lx", priv->smba); + err = i2c_add_adapter(&priv->adapter); + if (err) { + i801_acpi_remove(priv); + return err; + } + + i801_enable_host_notify(&priv->adapter); + + i801_probe_optional_slaves(priv); + /* We ignore errors - multiplexing is optional */ + i801_add_mux(priv); + + pci_set_drvdata(dev, priv); + + dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NO_DIRECT_COMPLETE); + pm_runtime_set_autosuspend_delay(&dev->dev, 1000); + pm_runtime_use_autosuspend(&dev->dev); + pm_runtime_put_autosuspend(&dev->dev); + pm_runtime_allow(&dev->dev); + dev_info(&dev->dev, "wb-i2c-i801 probe ok.\n"); + + return 0; +} + +static void i801_remove(struct pci_dev *dev) +{ + struct i801_priv *priv = pci_get_drvdata(dev); + + pm_runtime_forbid(&dev->dev); + pm_runtime_get_noresume(&dev->dev); + + i801_disable_host_notify(priv); + i801_del_mux(priv); + i2c_del_adapter(&priv->adapter); + i801_acpi_remove(priv); + pci_write_config_byte(dev, SMBHSTCFG, priv->original_hstcfg); + + platform_device_unregister(priv->tco_pdev); + + /* + * do not call pci_disable_device(dev) since it can cause hard hangs on + * some systems during power-off (eg. Fujitsu-Siemens Lifebook E8010) + */ +} + +static void i801_shutdown(struct pci_dev *dev) +{ + struct i801_priv *priv = pci_get_drvdata(dev); + + /* Restore config registers to avoid hard hang on some systems */ + i801_disable_host_notify(priv); + pci_write_config_byte(dev, SMBHSTCFG, priv->original_hstcfg); +} + +#ifdef CONFIG_PM_SLEEP +static int i801_suspend(struct device *dev) +{ + struct i801_priv *priv = dev_get_drvdata(dev); + + pci_write_config_byte(priv->pci_dev, SMBHSTCFG, priv->original_hstcfg); + return 0; +} + +static int i801_resume(struct device *dev) +{ + struct i801_priv *priv = dev_get_drvdata(dev); + + i801_setup_hstcfg(priv); + i801_enable_host_notify(&priv->adapter); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(i801_pm_ops, i801_suspend, i801_resume); + +static struct pci_driver i801_driver = { + .name = "wb_i801_smbus", + .id_table = i801_ids, + .probe = i801_probe, + .remove = i801_remove, + .shutdown = i801_shutdown, + .driver = { + .pm = &i801_pm_ops, + }, +}; + +static int __init i2c_i801_init(void) +{ + if (dmi_name_in_vendors("FUJITSU")) + input_apanel_init(); + return pci_register_driver(&i801_driver); +} + +static void __exit i2c_i801_exit(void) +{ + pci_unregister_driver(&i801_driver); +} + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("I801 SMBus driver"); +MODULE_LICENSE("GPL"); + +module_init(i2c_i801_init); +module_exit(i2c_i801_exit); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c new file mode 100644 index 000000000000..f318234ae90f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c @@ -0,0 +1,1332 @@ +/* + * I2C multiplexer + * + * Copyright (c) 2008-2009 Rodolfo Giometti + * Copyright (c) 2008-2009 Eurotech S.p.A. + * + * This module supports the PCA954x series of I2C multiplexer/switch chips + * made by Philips Semiconductors. + * This includes the: + * PCA9540, PCA9542, PCA9543, PCA9544, PCA9545, PCA9546, PCA9547 + * and PCA9548. + * + * These chips are all controlled via the I2C bus itself, and all have a + * single 8-bit register. The upstream "parent" bus fans out to two, + * four, or eight downstream busses or channels; which of these + * are selected is determined by the chip type and register contents. A + * mux can select only one sub-bus at a time; a switch can select any + * combination simultaneously. + * + * Based on: + * pca954x.c from Kumar Gala + * Copyright (C) 2006 + * + * Based on: + * pca954x.c from Ken Harrenstien + * Copyright (C) 2004 Google, Inc. (Ken Harrenstien) + * + * Based on: + * i2c-virtual_cb.c from Brian Kuschak + * and + * pca9540.c from Jean Delvare . + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_i2c_mux_pca954x.h" + +#define PCA954X_MAX_NCHANS 8 +#define PCA954X_IRQ_OFFSET 4 + +#define I2C_RETRY_TIMES 5 +#define I2C_RETRY_WAIT_TIMES 10 /*delay 10ms*/ + +typedef struct pca9548_cfg_info_s { + uint32_t pca9548_base_nr; + uint32_t pca9548_reset_type; + uint32_t rst_delay_b; /* delay time before reset(us) */ + uint32_t rst_delay; /* reset time(us) */ + uint32_t rst_delay_a; /* delay time after reset(us) */ + union { + i2c_attr_t i2c_attr; + gpio_attr_t gpio_attr; + io_attr_t io_attr; + file_attr_t file_attr; + } attr; + bool select_chan_check; + bool close_chan_force_reset; +} pca9548_cfg_info_t; + +int g_pca954x_debug = 0; +int g_pca954x_error = 0; + +module_param(g_pca954x_debug, int, S_IRUGO | S_IWUSR); +module_param(g_pca954x_error, int, S_IRUGO | S_IWUSR); + +#define PCA954X_DEBUG(fmt, args...) do { \ + if (g_pca954x_debug) { \ + printk(KERN_INFO "[PCA95x][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define PCA954X_ERROR(fmt, args...) do { \ + if (g_pca954x_error) { \ + printk(KERN_ERR "[PCA95x][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +extern int pca9641_setmuxflag(int nr, int flag); +enum pca_type { + pca_9540, + pca_9542, + pca_9543, + pca_9544, + pca_9545, + pca_9546, + pca_9547, + pca_9548, +}; + +struct chip_desc { + u8 nchans; + u8 enable; /* used for muxes only */ + u8 has_irq; + enum muxtype { + pca954x_ismux = 0, + pca954x_isswi + } muxtype; +}; + +struct pca954x { + const struct chip_desc *chip; + u8 last_chan; /* last register value */ + u8 deselect; + struct i2c_client *client; + struct irq_domain *irq; + unsigned int irq_mask; + raw_spinlock_t lock; + pca9548_cfg_info_t pca9548_cfg_info; /* pca9548 reset cfg */ +}; + +/* Provide specs for the PCA954x types we know about */ +static const struct chip_desc chips[] = { + [pca_9540] = { + .nchans = 2, + .enable = 0x4, + .muxtype = pca954x_ismux, + }, + [pca_9542] = { + .nchans = 2, + .enable = 0x4, + .has_irq = 1, + .muxtype = pca954x_ismux, + }, + [pca_9543] = { + .nchans = 2, + .has_irq = 1, + .muxtype = pca954x_isswi, + }, + [pca_9544] = { + .nchans = 4, + .enable = 0x4, + .has_irq = 1, + .muxtype = pca954x_ismux, + }, + [pca_9545] = { + .nchans = 4, + .has_irq = 1, + .muxtype = pca954x_isswi, + }, + [pca_9546] = { + .nchans = 4, + .muxtype = pca954x_isswi, + }, + [pca_9547] = { + .nchans = 8, + .enable = 0x8, + .muxtype = pca954x_ismux, + }, + [pca_9548] = { + .nchans = 8, + .muxtype = pca954x_isswi, + }, +}; + +static const struct i2c_device_id pca954x_id[] = { + { "wb_pca9540", pca_9540 }, + { "wb_pca9542", pca_9542 }, + { "wb_pca9543", pca_9543 }, + { "wb_pca9544", pca_9544 }, + { "wb_pca9545", pca_9545 }, + { "wb_pca9546", pca_9546 }, + { "wb_pca9547", pca_9547 }, + { "wb_pca9548", pca_9548 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, pca954x_id); + +#ifdef CONFIG_OF +static const struct of_device_id pca954x_of_match[] = { + { .compatible = "nxp,wb_pca9540", .data = &chips[pca_9540] }, + { .compatible = "nxp,wb_pca9542", .data = &chips[pca_9542] }, + { .compatible = "nxp,wb_pca9543", .data = &chips[pca_9543] }, + { .compatible = "nxp,wb_pca9544", .data = &chips[pca_9544] }, + { .compatible = "nxp,wb_pca9545", .data = &chips[pca_9545] }, + { .compatible = "nxp,wb_pca9546", .data = &chips[pca_9546] }, + { .compatible = "nxp,wb_pca9547", .data = &chips[pca_9547] }, + { .compatible = "nxp,wb_pca9548", .data = &chips[pca_9548] }, + {} +}; +MODULE_DEVICE_TABLE(of, pca954x_of_match); +#endif + +/* Write to mux register. Don't use i2c_transfer()/i2c_smbus_xfer() + for this as they will try to lock adapter a second time */ +static int pca954x_reg_write(struct i2c_adapter *adap, + struct i2c_client *client, u8 val) +{ + int ret = -ENODEV; + + if (adap->algo->master_xfer) { + struct i2c_msg msg; + char buf[1]; + + msg.addr = client->addr; + msg.flags = 0; + msg.len = 1; + buf[0] = val; + msg.buf = buf; + ret = __i2c_transfer(adap, &msg, 1); + + if (ret >= 0 && ret != 1) + ret = -EREMOTEIO; + } else { + union i2c_smbus_data data; + ret = adap->algo->smbus_xfer(adap, client->addr, + client->flags, + I2C_SMBUS_WRITE, + val, I2C_SMBUS_BYTE, &data); + } + return ret; +} + +static int pca954x_reg_read(struct i2c_adapter *adap, + struct i2c_client *client, u8 *val) +{ + int ret = -ENODEV; + u8 tmp_val; + + if (adap->algo->master_xfer) { + struct i2c_msg msg; + + msg.addr = client->addr; + msg.flags = I2C_M_RD; + msg.len = 1; + msg.buf = &tmp_val; + ret = __i2c_transfer(adap, &msg, 1); + + if (ret >= 0 && ret != 1) { + ret = -EREMOTEIO; + } else { + *val = tmp_val; + } + } else { + union i2c_smbus_data data; + ret = adap->algo->smbus_xfer(adap, client->addr, + client->flags, + I2C_SMBUS_READ, + 0, I2C_SMBUS_BYTE, &data); + + if (!ret) { + tmp_val = data.byte; + *val = tmp_val; + } + } + + return ret; +} + +static int pca954x_setmuxflag(struct i2c_client *client, int flag) +{ + int ret; + struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent); + + ret = pca9641_setmuxflag(adap->nr, flag); + return ret; +} + +static int pca9548_gpio_init(gpio_attr_t *gpio_attr) +{ + int err; + + if (gpio_attr->gpio_init) { + PCA954X_DEBUG("gpio%d already init, do nothing.\n", gpio_attr->gpio); + return 0; + } + + PCA954X_DEBUG("gpio%d init.\n", gpio_attr->gpio); + err = gpio_request(gpio_attr->gpio, "pca9548_reset"); + if (err) { + goto error; + } + err = gpio_direction_output(gpio_attr->gpio, gpio_attr->reset_off); + if (err) { + gpio_free(gpio_attr->gpio); + goto error; + } + gpio_attr->gpio_init = 1; + return 0; +error: + PCA954X_ERROR("pca9548_gpio_init failed, ret:%d.\n", err); + return err; +} + +static void pca9548_gpio_free(gpio_attr_t *gpio_attr) +{ + if (gpio_attr->gpio_init == 1) { + PCA954X_DEBUG("gpio%d release.\n", gpio_attr->gpio); + gpio_free(gpio_attr->gpio); + gpio_attr->gpio_init = 0; + } +} + +static int pca954x_reset_file_read(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + PCA954X_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_read(filp, val, size, &tmp_pos); + if (ret < 0) { + PCA954X_ERROR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int pca954x_reset_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + PCA954X_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + PCA954X_ERROR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int pca954x_reset_i2c_read(uint32_t bus, uint32_t addr, uint32_t offset_addr, + unsigned char *buf, uint32_t size) +{ + struct file *fp; + struct i2c_client client; + char i2c_path[32]; + int i ,j ; + int rv; + + rv = 0; + mem_clear(i2c_path, sizeof(i2c_path)); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", bus); + fp = filp_open(i2c_path, O_RDWR, S_IRUSR | S_IWUSR); + if (IS_ERR(fp)) { + PCA954X_ERROR("i2c open fail.\n"); + return -1; + } + memcpy(&client, fp->private_data, sizeof(struct i2c_client)); + client.addr = addr; + for (j = 0 ;j < size ;j++) { + for (i = 0; i < I2C_RETRY_TIMES; i++) { + rv = i2c_smbus_read_byte_data(&client, (offset_addr + j)); + if (rv < 0) { + PCA954X_ERROR("i2c read failed, try again.\n"); + msleep(I2C_RETRY_WAIT_TIMES); + if (i >= (I2C_RETRY_TIMES - 1)) { + goto out; + } + continue; + } + *(buf + j) = (unsigned char)rv; + break; + } + } +out: + filp_close(fp, NULL); + return rv; +} + +static int pca954x_reset_i2c_write(uint32_t bus, uint32_t dev_addr, uint32_t offset_addr, + uint8_t write_buf) +{ + struct file *fp; + struct i2c_client client; + char i2c_path[32]; + int i; + int rv; + + rv = 0; + mem_clear(i2c_path, sizeof(i2c_path)); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", bus); + fp = filp_open(i2c_path, O_RDWR, S_IRUSR | S_IWUSR); + if (IS_ERR(fp)) { + PCA954X_ERROR("i2c open fail.\n"); + return -1; + } + memcpy(&client, fp->private_data, sizeof(struct i2c_client)); + client.addr = dev_addr; + for (i = 0; i < I2C_RETRY_TIMES; i++) { + rv = i2c_smbus_write_byte_data(&client, offset_addr, write_buf); + if (rv < 0) { + PCA954X_ERROR("i2c write failed, try again.\n"); + msleep(I2C_RETRY_WAIT_TIMES); + if (i >= (I2C_RETRY_TIMES - 1)) { + goto out; + } + continue; + } + break; + } +out: + filp_close(fp, NULL); + return rv; +} + +static int pca954x_do_file_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout, err; + struct pca954x *data; + pca9548_cfg_info_t *reset_cfg; + file_attr_t *file_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9548_cfg_info; + file_attr = &reset_cfg->attr.file_attr; + ret = -1; + + PCA954X_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", + reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); + PCA954X_DEBUG("dev_name:%s, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + file_attr->dev_name, file_attr->offset, file_attr->mask, + file_attr->reset_on, file_attr->reset_off); + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + err = pca954x_reset_file_read(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + val &= ~(file_attr->mask); + val |= file_attr->reset_on; + err = pca954x_reset_file_write(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + val &= ~(file_attr->mask); + val |= file_attr->reset_off; + err = pca954x_reset_file_write(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + err = pca954x_reset_file_read(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + val &= (file_attr->mask); + if (val == file_attr->reset_off) { + ret = 0; + PCA954X_DEBUG("pca954x_do_file_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + if (ret < 0) { + PCA954X_ERROR("pca954x_do_file_reset timeout.\n"); + } +out: + if (err < 0) { + PCA954X_ERROR("pca954x_do_file_reset file rd/wr failed, ret:%d.\n", err); + } + + return ret; +} + +static int pca954x_do_io_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout; + struct pca954x *data; + pca9548_cfg_info_t *reset_cfg; + io_attr_t *io_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9548_cfg_info; + io_attr = &reset_cfg->attr.io_attr; + + PCA954X_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", + reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); + PCA954X_DEBUG("io_addr:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + io_attr->io_addr, io_attr->mask, io_attr->reset_on, io_attr->reset_off); + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + val = inb(io_attr->io_addr); + val &= ~(io_attr->mask); + val |= io_attr->reset_on; + outb(val, io_attr->io_addr); + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + val &= ~(io_attr->mask); + val |= io_attr->reset_off; + outb(val, io_attr->io_addr); + + ret = -1; + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + val = inb(io_attr->io_addr); + val &= (io_attr->mask); + if (val == io_attr->reset_off) { + ret = 0; + PCA954X_DEBUG("pca954x_do_io_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + + if (ret < 0) { + PCA954X_ERROR("pca954x_do_io_reset timeout.\n"); + } + + return ret; +} + +static int pca954x_do_gpio_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout; + struct pca954x *data; + pca9548_cfg_info_t *reset_cfg; + gpio_attr_t *gpio_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9548_cfg_info; + gpio_attr = &reset_cfg->attr.gpio_attr; + + ret = pca9548_gpio_init(gpio_attr); + if (ret) { + return -1; + } + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + /* reset on */ + __gpio_set_value(gpio_attr->gpio, gpio_attr->reset_on); + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + /* reset off */ + __gpio_set_value(gpio_attr->gpio, gpio_attr->reset_off); + ret = -1; + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + val = __gpio_get_value(gpio_attr->gpio); + if (val == gpio_attr->reset_off) { + ret = 0; + PCA954X_DEBUG("pca954x_do_gpio_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + + if (ret < 0) { + PCA954X_ERROR("pca954x_do_gpio_reset timeout.\n"); + } + + pca9548_gpio_free(gpio_attr); + return ret; +} + +static int pca954x_do_i2c_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout, err; + struct pca954x *data; + pca9548_cfg_info_t *reset_cfg; + i2c_attr_t *i2c_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9548_cfg_info; + i2c_attr = &reset_cfg->attr.i2c_attr; + ret = -1; + + PCA954X_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", + reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); + PCA954X_DEBUG("bus:0x%x, addr:0x%x, reg:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + i2c_attr->i2c_bus, i2c_attr->i2c_addr, i2c_attr->reg_offset, + i2c_attr->mask, i2c_attr->reset_on, i2c_attr->reset_off); + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + err = pca954x_reset_i2c_read(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + val &= ~(i2c_attr->mask); + val |= i2c_attr->reset_on; + err = pca954x_reset_i2c_write(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, val); + if (err < 0) { + goto out; + } + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + val &= ~(i2c_attr->mask); + val |= i2c_attr->reset_off; + err = pca954x_reset_i2c_write(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, val); + if (err < 0) { + goto out; + } + + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + err = pca954x_reset_i2c_read(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + val &= (i2c_attr->mask); + if (val == i2c_attr->reset_off) { + ret = 0; + PCA954X_DEBUG("pca954x_do_i2c_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + if (ret < 0) { + PCA954X_ERROR("pca954x_do_i2c_reset timeout.\n"); + } +out: + if (err < 0) { + PCA954X_ERROR("pca954x_do_i2c_reset i2c op failed, ret:%d.\n", err); + } + return ret; +} + +static int pca954x_do_reset(struct i2c_mux_core *muxc) +{ + int ret; + struct pca954x *data; + + data = i2c_mux_priv(muxc); + if (data->pca9548_cfg_info.pca9548_reset_type == PCA9548_RESET_NONE) { + ret = -1; + PCA954X_DEBUG("Don't need to reset.\n"); + } else if (data->pca9548_cfg_info.pca9548_reset_type == PCA9548_RESET_I2C) { + ret = pca954x_do_i2c_reset(muxc); + } else if (data->pca9548_cfg_info.pca9548_reset_type == PCA9548_RESET_GPIO) { + ret = pca954x_do_gpio_reset(muxc); + } else if (data->pca9548_cfg_info.pca9548_reset_type == PCA9548_RESET_IO) { + ret = pca954x_do_io_reset(muxc); + } else if (data->pca9548_cfg_info.pca9548_reset_type == PCA9548_RESET_FILE) { + ret = pca954x_do_file_reset(muxc); + } else { + ret = -1; + PCA954X_ERROR("Unsupport reset type:0x%x.\n", + data->pca9548_cfg_info.pca9548_reset_type); + } + + if (ret < 0) { + PCA954X_ERROR("pca9548_reset_ctrl failed, reset type:%u, ret:%d.\n", + data->pca9548_cfg_info.pca9548_reset_type, ret); + } + return ret; +} + +static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca954x *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + const struct chip_desc *chip = data->chip; + u8 regval; + int ret = 0; + u8 read_val = 0; + int rv; + + /* we make switches look like muxes, not sure how to be smarter */ + if (chip->muxtype == pca954x_ismux) + regval = chan | chip->enable; + else + regval = 1 << chan; + + /* Only select the channel if its different from the last channel */ + if (data->last_chan != regval) { + pca954x_setmuxflag(client, 0); + ret = pca954x_reg_write(muxc->parent, client, regval); + data->last_chan = ret < 0 ? 0 : regval; + } + + if (data->pca9548_cfg_info.select_chan_check) { /* check chan */ + ret = pca954x_reg_read(muxc->parent, client, &read_val); + /* read failed or chan not open, reset pca9548 */ + if ((ret < 0) || (read_val != data->last_chan)) { + dev_warn(&client->dev, "pca954x open channle %u failed, do reset.\n", chan); + PCA954X_DEBUG("ret = %d, read_val = %d, last_chan = %d.\n", ret, read_val, data->last_chan); + rv = pca954x_do_reset(muxc); + if (rv >= 0) { + PCA954X_DEBUG("pca954x_do_reset success, rv = %d.\n", rv); + } else { + PCA954X_DEBUG("pca954x_do_reset failed, rv = %d.\n", rv); + } + if (ret >= 0) { + ret = -EIO; /* chan not match, return IO error */ + } + } + } + + return ret; +} + +static int pca954x_deselect_mux(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca954x *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + int ret, rv; + + /* Deselect active channel */ + data->last_chan = 0; + if (data->pca9548_cfg_info.close_chan_force_reset) { + ret = pca954x_do_reset(muxc); + } else { + ret = pca954x_reg_write(muxc->parent, client, data->last_chan); + if (ret < 0 ) { + dev_warn(&client->dev, "pca954x close channel %u failed, do reset.\n", chan); + rv = pca954x_do_reset(muxc); + if (rv == 0) { + ret = 0; + } + } + } + + rv = pca954x_setmuxflag(client, 1); + if (rv == 0) { + PCA954X_DEBUG("match 9641, close 9548 channel to deselect 9641.\n"); + (void)pca954x_reg_write(muxc->parent, client, data->last_chan); + } else { + PCA954X_DEBUG("dismatch 9641, do nothing.\n"); + } + + return ret; + +} + +static irqreturn_t pca954x_irq_handler(int irq, void *dev_id) +{ + struct pca954x *data = dev_id; + unsigned int child_irq; + int ret, i, handled = 0; + + ret = i2c_smbus_read_byte(data->client); + if (ret < 0) + return IRQ_NONE; + + for (i = 0; i < data->chip->nchans; i++) { + if (ret & BIT(PCA954X_IRQ_OFFSET + i)) { + child_irq = irq_linear_revmap(data->irq, i); + handle_nested_irq(child_irq); + handled++; + } + } + return handled ? IRQ_HANDLED : IRQ_NONE; +} + +static void pca954x_irq_mask(struct irq_data *idata) +{ + struct pca954x *data = irq_data_get_irq_chip_data(idata); + unsigned int pos = idata->hwirq; + unsigned long flags; + + raw_spin_lock_irqsave(&data->lock, flags); + + data->irq_mask &= ~BIT(pos); + if (!data->irq_mask) + disable_irq(data->client->irq); + + raw_spin_unlock_irqrestore(&data->lock, flags); +} + +static void pca954x_irq_unmask(struct irq_data *idata) +{ + struct pca954x *data = irq_data_get_irq_chip_data(idata); + unsigned int pos = idata->hwirq; + unsigned long flags; + + raw_spin_lock_irqsave(&data->lock, flags); + + if (!data->irq_mask) + enable_irq(data->client->irq); + data->irq_mask |= BIT(pos); + + raw_spin_unlock_irqrestore(&data->lock, flags); +} + +static int pca954x_irq_set_type(struct irq_data *idata, unsigned int type) +{ + if ((type & IRQ_TYPE_SENSE_MASK) != IRQ_TYPE_LEVEL_LOW) + return -EINVAL; + return 0; +} + +static struct irq_chip pca954x_irq_chip = { + .name = "i2c-mux-pca954x", + .irq_mask = pca954x_irq_mask, + .irq_unmask = pca954x_irq_unmask, + .irq_set_type = pca954x_irq_set_type, +}; + +static int of_pca954x_irq_setup(struct i2c_mux_core *muxc) +{ + struct pca954x *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + int c, err, irq; + + if (!data->chip->has_irq || client->irq <= 0) + return 0; + + raw_spin_lock_init(&data->lock); + + data->irq = irq_domain_add_linear(client->dev.of_node, + data->chip->nchans, + &irq_domain_simple_ops, data); + if (!data->irq) + return -ENODEV; + + for (c = 0; c < data->chip->nchans; c++) { + irq = irq_create_mapping(data->irq, c); + irq_set_chip_data(irq, data); + irq_set_chip_and_handler(irq, &pca954x_irq_chip, + handle_simple_irq); + } + + err = devm_request_threaded_irq(&client->dev, data->client->irq, NULL, + pca954x_irq_handler, + IRQF_ONESHOT | IRQF_SHARED, + "pca954x", data); + if (err) + goto err_req_irq; + + disable_irq(data->client->irq); + + return 0; +err_req_irq: + for (c = 0; c < data->chip->nchans; c++) { + irq = irq_find_mapping(data->irq, c); + irq_dispose_mapping(irq); + } + irq_domain_remove(data->irq); + + return err; +} + +static int pca954x_irq_setup(struct i2c_mux_core *muxc) +{ + return 0; +} + +static int of_pca954x_reset_data_init(struct pca954x *data) +{ + int err; + struct device *dev = &data->client->dev; + pca9548_cfg_info_t *reset_cfg; + + reset_cfg = &data->pca9548_cfg_info; + if (dev == NULL || dev->of_node == NULL) { + PCA954X_DEBUG("dev or dev->of_node is NUll, no reset.\n"); + reset_cfg->pca9548_reset_type = PCA9548_RESET_NONE; + return 0; + } + + reset_cfg->select_chan_check = of_property_read_bool(dev->of_node, "select_chan_check"); + reset_cfg->close_chan_force_reset = of_property_read_bool(dev->of_node, "close_chan_force_reset"); + PCA954X_DEBUG("select_chan_check:%d, close_chan_force_reset:%d.\n", reset_cfg->select_chan_check, + reset_cfg->close_chan_force_reset); + + if (of_property_read_u32(dev->of_node, "pca9548_reset_type", &reset_cfg->pca9548_reset_type)) { + + PCA954X_DEBUG("pca9548_reset_type not found, no reset.\n"); + reset_cfg->pca9548_reset_type = PCA9548_RESET_NONE; + return 0; + } + err = of_property_read_u32(dev->of_node, "rst_delay_b", &reset_cfg->rst_delay_b); + err |= of_property_read_u32(dev->of_node, "rst_delay", &reset_cfg->rst_delay); + err |= of_property_read_u32(dev->of_node, "rst_delay_a", &reset_cfg->rst_delay_a); + + if (err) { + goto dts_config_err; + } + PCA954X_DEBUG("reset_type:0x%x, rst_delay_b:0x%x, rst_delay:0x%x, rst_delay_a:0x%x.\n", + reset_cfg->pca9548_reset_type, reset_cfg->rst_delay_b, + reset_cfg->rst_delay, reset_cfg->rst_delay_a); + + if (reset_cfg->pca9548_reset_type == PCA9548_RESET_I2C) { + + PCA954X_DEBUG("reset by i2c.\n"); + err = of_property_read_u32(dev->of_node, "i2c_bus", &reset_cfg->attr.i2c_attr.i2c_bus); + err |=of_property_read_u32(dev->of_node, "i2c_addr", &reset_cfg->attr.i2c_attr.i2c_addr); + err |=of_property_read_u32(dev->of_node, "reg_offset", &reset_cfg->attr.i2c_attr.reg_offset); + err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.i2c_attr.mask); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.i2c_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.i2c_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA954X_DEBUG("bus:%u, addr:0x%x, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + reset_cfg->attr.i2c_attr.i2c_bus, reset_cfg->attr.i2c_attr.i2c_addr, + reset_cfg->attr.i2c_attr.reg_offset, reset_cfg->attr.i2c_attr.mask, + reset_cfg->attr.i2c_attr.reset_on, reset_cfg->attr.i2c_attr.reset_off); + } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_GPIO) { + + PCA954X_DEBUG("reset by gpio.\n"); + err = of_property_read_u32(dev->of_node, "gpio", &reset_cfg->attr.gpio_attr.gpio); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.gpio_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.gpio_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA954X_DEBUG("gpio number:%u, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.gpio_attr.gpio, reset_cfg->attr.gpio_attr.reset_on, + reset_cfg->attr.gpio_attr.reset_off); + reset_cfg->attr.gpio_attr.gpio_init = 0; + } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_IO) { + + PCA954X_DEBUG("reset by io.\n"); + err = of_property_read_u32(dev->of_node, "io_addr", &reset_cfg->attr.io_attr.io_addr); + err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.io_attr.mask); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.io_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.io_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA954X_DEBUG("io_addr:0x%x, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.io_attr.io_addr, reset_cfg->attr.io_attr.mask, + reset_cfg->attr.io_attr.reset_on, reset_cfg->attr.io_attr.reset_off); + } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_FILE) { + + PCA954X_DEBUG("reset by file.\n"); + err = of_property_read_string(dev->of_node, "dev_name", &reset_cfg->attr.file_attr.dev_name); + err |=of_property_read_u32(dev->of_node, "offset", &reset_cfg->attr.file_attr.offset); + err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.file_attr.mask); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.file_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.file_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA954X_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.file_attr.dev_name, reset_cfg->attr.file_attr.mask, + reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off); + } else { + PCA954X_ERROR("Unsupport reset type:%d.\n", reset_cfg->pca9548_reset_type); + goto dts_config_err; + } + return 0; +dts_config_err: + PCA954X_ERROR("dts config error, ret:%d.\n", err); + return -EINVAL; +} + +static int pca954x_reset_data_init(struct pca954x *data) +{ + pca9548_cfg_info_t *reset_cfg; + i2c_mux_pca954x_device_t *i2c_mux_pca954x_device; + + if (data->client->dev.platform_data == NULL) { + PCA954X_DEBUG("pca954x has no reset platform data config.\n"); + return 0; + } + reset_cfg = &data->pca9548_cfg_info; + i2c_mux_pca954x_device = data->client->dev.platform_data; + reset_cfg->select_chan_check = i2c_mux_pca954x_device->select_chan_check; + reset_cfg->close_chan_force_reset = i2c_mux_pca954x_device->close_chan_force_reset; + PCA954X_DEBUG("select_chan_check:%d, close_chan_force_reset:%d.\n", reset_cfg->select_chan_check, + reset_cfg->close_chan_force_reset); + + reset_cfg->pca9548_reset_type = i2c_mux_pca954x_device->pca9548_reset_type; + if (reset_cfg->pca9548_reset_type == PCA9548_RESET_NONE) { + PCA954X_DEBUG("pca9548_reset_type not found, no reset.\n"); + return 0; + } + + reset_cfg->rst_delay_b = i2c_mux_pca954x_device->rst_delay_b; + reset_cfg->rst_delay = i2c_mux_pca954x_device->rst_delay; + reset_cfg->rst_delay_a = i2c_mux_pca954x_device->rst_delay_a; + PCA954X_DEBUG("reset_type:0x%x, rst_delay_b:0x%x, rst_delay:0x%x, rst_delay_a:0x%x.\n", + reset_cfg->pca9548_reset_type, reset_cfg->rst_delay_b, + reset_cfg->rst_delay, reset_cfg->rst_delay_a); + + if (reset_cfg->pca9548_reset_type == PCA9548_RESET_I2C) { + + PCA954X_DEBUG("reset by i2c.\n"); + reset_cfg->attr.i2c_attr.i2c_bus = i2c_mux_pca954x_device->attr.i2c_attr.i2c_bus; + reset_cfg->attr.i2c_attr.i2c_addr = i2c_mux_pca954x_device->attr.i2c_attr.i2c_addr; + reset_cfg->attr.i2c_attr.reg_offset = i2c_mux_pca954x_device->attr.i2c_attr.reg_offset; + reset_cfg->attr.i2c_attr.mask = i2c_mux_pca954x_device->attr.i2c_attr.mask; + reset_cfg->attr.i2c_attr.reset_on = i2c_mux_pca954x_device->attr.i2c_attr.reset_on; + reset_cfg->attr.i2c_attr.reset_off = i2c_mux_pca954x_device->attr.i2c_attr.reset_off; + PCA954X_DEBUG("bus:%u, addr:0x%x, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + reset_cfg->attr.i2c_attr.i2c_bus, reset_cfg->attr.i2c_attr.i2c_addr, + reset_cfg->attr.i2c_attr.reg_offset, reset_cfg->attr.i2c_attr.mask, + reset_cfg->attr.i2c_attr.reset_on, reset_cfg->attr.i2c_attr.reset_off); + } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_GPIO) { + + PCA954X_DEBUG("reset by gpio.\n"); + reset_cfg->attr.gpio_attr.gpio = i2c_mux_pca954x_device->attr.gpio_attr.gpio; + reset_cfg->attr.gpio_attr.reset_on = i2c_mux_pca954x_device->attr.gpio_attr.reset_on; + reset_cfg->attr.gpio_attr.reset_off = i2c_mux_pca954x_device->attr.gpio_attr.reset_off; + PCA954X_DEBUG("gpio number:%u, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.gpio_attr.gpio, reset_cfg->attr.gpio_attr.reset_on, + reset_cfg->attr.gpio_attr.reset_off); + reset_cfg->attr.gpio_attr.gpio_init = 0; + } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_IO) { + + PCA954X_DEBUG("reset by io.\n"); + reset_cfg->attr.io_attr.io_addr = i2c_mux_pca954x_device->attr.io_attr.io_addr; + reset_cfg->attr.io_attr.mask = i2c_mux_pca954x_device->attr.io_attr.mask; + reset_cfg->attr.io_attr.reset_on = i2c_mux_pca954x_device->attr.io_attr.reset_on; + reset_cfg->attr.io_attr.reset_off = i2c_mux_pca954x_device->attr.io_attr.reset_off; + PCA954X_DEBUG("io_addr:0x%x, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.io_attr.io_addr, reset_cfg->attr.io_attr.mask, + reset_cfg->attr.io_attr.reset_on, reset_cfg->attr.io_attr.reset_off); + } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_FILE) { + + reset_cfg->attr.file_attr.dev_name = i2c_mux_pca954x_device->attr.file_attr.dev_name; + reset_cfg->attr.file_attr.offset = i2c_mux_pca954x_device->attr.file_attr.offset; + reset_cfg->attr.file_attr.mask = i2c_mux_pca954x_device->attr.file_attr.mask; + reset_cfg->attr.file_attr.reset_on = i2c_mux_pca954x_device->attr.file_attr.reset_on; + reset_cfg->attr.file_attr.reset_off = i2c_mux_pca954x_device->attr.file_attr.reset_off; + PCA954X_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.file_attr.dev_name, reset_cfg->attr.file_attr.mask, + reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off); + } else { + PCA954X_ERROR("Unsupport reset type:%d.\n", reset_cfg->pca9548_reset_type); + return -EINVAL; + } + return 0; +} + +/* + * I2C init/probing/exit functions + */ +static int pca954x_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent); + struct device_node *of_node = client->dev.of_node; + bool idle_disconnect_dt; + struct gpio_desc *gpio; + int num, force, class; + struct i2c_mux_core *muxc; + struct pca954x *data; + const struct of_device_id *match; + unsigned int probe_disable; + int ret, dynamic_nr; + i2c_mux_pca954x_device_t *i2c_mux_pca954x_device; + + PCA954X_DEBUG("pca954x_probe, parent bus: %d, 9548 addr:0x%x.\n", adap->nr, client->addr); + + if (!i2c_check_functionality(adap, I2C_FUNC_SMBUS_BYTE)) + return -ENODEV; + + muxc = i2c_mux_alloc(adap, &client->dev, + PCA954X_MAX_NCHANS, sizeof(*data), 0, + pca954x_select_chan, pca954x_deselect_mux); + if (!muxc) + return -ENOMEM; + data = i2c_mux_priv(muxc); + + i2c_set_clientdata(client, muxc); + data->client = client; + + /* Get the mux out of reset if a reset GPIO is specified. */ + gpio = devm_gpiod_get_optional(&client->dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(gpio)) + return PTR_ERR(gpio); + + /* check device connection status */ + + if (client->dev.of_node == NULL) { + if (client->dev.platform_data == NULL) { + probe_disable = 1; + PCA954X_DEBUG("has no platform data config, set probe_disable = 1.\n"); + } else { + i2c_mux_pca954x_device = client->dev.platform_data; + probe_disable = i2c_mux_pca954x_device->probe_disable; + } + } else { + probe_disable = of_property_read_bool(of_node, "probe_disable"); + } + + /* Write the mux register at addr to verify + * that the mux is in fact present. This also + * initializes the mux to disconnected state. + */ + if (!probe_disable && (i2c_smbus_write_byte(client, 0) < 0)) { + dev_warn(&client->dev, "probe failed\n"); + return -ENODEV; + } + + match = of_match_device(of_match_ptr(pca954x_of_match), &client->dev); + if (match) + data->chip = of_device_get_match_data(&client->dev); + else + data->chip = &chips[id->driver_data]; + + data->last_chan = 0; /* force the first selection */ + + if (client->dev.of_node == NULL) { + idle_disconnect_dt = false; + } else { + idle_disconnect_dt = of_node && + of_property_read_bool(of_node, "i2c-mux-idle-disconnect"); + } + + if (client->dev.of_node) { + ret= of_pca954x_reset_data_init(data); + } else { + ret= pca954x_reset_data_init(data); + } + if (ret < 0) { + dev_err(&client->dev, "pca954x reset config err, ret:%d.\n", ret); + return ret; + } + + if (client->dev.of_node) { + ret = of_pca954x_irq_setup(muxc); + } else { + ret = pca954x_irq_setup(muxc); + } + if (ret) { + goto fail_del_adapters; + } + + if (client->dev.of_node == NULL) { + if (client->dev.platform_data == NULL) { + dynamic_nr = 1; + PCA954X_DEBUG("platform data is NULL, use dynamic adap number.\n"); + } else { + i2c_mux_pca954x_device = client->dev.platform_data; + data->pca9548_cfg_info.pca9548_base_nr = i2c_mux_pca954x_device->pca9548_base_nr; + if (data->pca9548_cfg_info.pca9548_base_nr == 0) { + dynamic_nr = 1; + PCA954X_DEBUG("pca9548_base_nr = 0, use dynamic adap number.\n"); + } else { + dynamic_nr = 0; + PCA954X_DEBUG("pca9548_base_nr:%u.\n", data->pca9548_cfg_info.pca9548_base_nr); + } + } + } else { + if (of_property_read_u32(of_node, "pca9548_base_nr", &data->pca9548_cfg_info.pca9548_base_nr)) { + + dynamic_nr = 1; + PCA954X_DEBUG("pca9548_base_nr not found, use dynamic adap number"); + } else { + dynamic_nr = 0; + PCA954X_DEBUG("pca9548_base_nr:%u.\n", data->pca9548_cfg_info.pca9548_base_nr); + } + } + + /* Now create an adapter for each channel */ + for (num = 0; num < data->chip->nchans; num++) { + bool idle_disconnect_pd = false; + if (dynamic_nr == 1) { + force = 0; /* dynamic adap number */ + } else { + force = data->pca9548_cfg_info.pca9548_base_nr + num; + } + + class = 0; /* no class by default */ + data->deselect |= (idle_disconnect_pd || + idle_disconnect_dt) << num; + + ret = i2c_mux_add_adapter(muxc, force, num, class); + if (ret) + goto fail_del_adapters; + } + + dev_info(&client->dev, + "registered %d multiplexed busses for I2C %s %s\n", + num, data->chip->muxtype == pca954x_ismux + ? "mux" : "switch", client->name); + + return 0; + +fail_del_adapters: + i2c_mux_del_adapters(muxc); + return ret; +} + +static int pca954x_remove(struct i2c_client *client) +{ + struct i2c_mux_core *muxc = i2c_get_clientdata(client); + struct pca954x *data = i2c_mux_priv(muxc); + int c, irq; + + if (data->irq) { + for (c = 0; c < data->chip->nchans; c++) { + irq = irq_find_mapping(data->irq, c); + irq_dispose_mapping(irq); + } + irq_domain_remove(data->irq); + } + + i2c_mux_del_adapters(muxc); + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int pca954x_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct i2c_mux_core *muxc = i2c_get_clientdata(client); + struct pca954x *data = i2c_mux_priv(muxc); + + data->last_chan = 0; + return i2c_smbus_write_byte(client, 0); +} +#endif + +static SIMPLE_DEV_PM_OPS(pca954x_pm, NULL, pca954x_resume); + +static struct i2c_driver pca954x_driver = { + .driver = { + .name = "wb_pca954x", + .pm = &pca954x_pm, + .of_match_table = of_match_ptr(pca954x_of_match), + }, + .probe = pca954x_probe, + .remove = pca954x_remove, + .id_table = pca954x_id, +}; + +module_i2c_driver(pca954x_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PCA954x I2C mux/switch driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h new file mode 100644 index 000000000000..9cbe162782c5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h @@ -0,0 +1,67 @@ +#ifndef __WB_I2C_MUX_PCA954X_H__ +#define __WB_I2C_MUX_PCA954X_H__ + +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +typedef enum pca9548_reset_type_s { + PCA9548_RESET_NONE = 0, + PCA9548_RESET_I2C = 1, + PCA9548_RESET_GPIO = 2, + PCA9548_RESET_IO = 3, + PCA9548_RESET_FILE = 4, +} pca9548_reset_type_t; + +typedef struct i2c_attr_s { + uint32_t i2c_bus; + uint32_t i2c_addr; + uint32_t reg_offset; + uint32_t mask; + uint32_t reset_on; + uint32_t reset_off; +} i2c_attr_t; + +typedef struct io_attr_s { + uint32_t io_addr; + uint32_t mask; + uint32_t reset_on; + uint32_t reset_off; +} io_attr_t; + +typedef struct file_attr_s { + const char *dev_name; + uint32_t offset; + uint32_t mask; + uint32_t reset_on; + uint32_t reset_off; +} file_attr_t; + +typedef struct gpio_attr_s { + int gpio_init; + uint32_t gpio; + uint32_t reset_on; + uint32_t reset_off; +} gpio_attr_t; + +typedef struct i2c_mux_pca954x_device_s { + struct i2c_client *client; + uint32_t i2c_bus; + uint32_t i2c_addr; + uint32_t pca9548_base_nr; + uint32_t pca9548_reset_type; + uint32_t rst_delay_b; /* delay time before reset(us) */ + uint32_t rst_delay; /* reset time(us) */ + uint32_t rst_delay_a; /* delay time after reset(us) */ + bool probe_disable; + bool select_chan_check; + bool close_chan_force_reset; + union { + i2c_attr_t i2c_attr; + gpio_attr_t gpio_attr; + io_attr_t io_attr; + file_attr_t file_attr; + } attr; +} i2c_mux_pca954x_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c new file mode 100644 index 000000000000..519762f0c159 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c @@ -0,0 +1,1395 @@ +/* + * I2C multiplexer driver for PCA9541 bus master selector + * + * Copyright (c) 2010 Ericsson AB. + * + * Author: Guenter Roeck + * + * Derived from: + * pca954x.c + * + * Copyright (c) 2008-2009 Rodolfo Giometti + * Copyright (c) 2008-2009 Eurotech S.p.A. + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_i2c_mux_pca9641.h" + +/* + * The PCA9541 is a bus master selector. It supports two I2C masters connected + * to a single slave bus. + * + * Before each bus transaction, a master has to acquire bus ownership. After the + * transaction is complete, bus ownership has to be released. This fits well + * into the I2C multiplexer framework, which provides select and release + * functions for this purpose. For this reason, this driver is modeled as + * single-channel I2C bus multiplexer. + * + * This driver assumes that the two bus masters are controlled by two different + * hosts. If a single host controls both masters, platform code has to ensure + * that only one of the masters is instantiated at any given time. + */ + +#define PCA9541_CONTROL 0x01 +#define PCA9541_ISTAT 0x02 + +#define PCA9541_CTL_MYBUS (1 << 0) +#define PCA9541_CTL_NMYBUS (1 << 1) +#define PCA9541_CTL_BUSON (1 << 2) +#define PCA9541_CTL_NBUSON (1 << 3) +#define PCA9541_CTL_BUSINIT (1 << 4) +#define PCA9541_CTL_TESTON (1 << 6) +#define PCA9541_CTL_NTESTON (1 << 7) +#define PCA9541_ISTAT_INTIN (1 << 0) +#define PCA9541_ISTAT_BUSINIT (1 << 1) +#define PCA9541_ISTAT_BUSOK (1 << 2) +#define PCA9541_ISTAT_BUSLOST (1 << 3) +#define PCA9541_ISTAT_MYTEST (1 << 6) +#define PCA9541_ISTAT_NMYTEST (1 << 7) +#define PCA9641_ID 0x00 +#define PCA9641_ID_MAGIC 0x38 +#define PCA9641_CONTROL 0x01 +#define PCA9641_STATUS 0x02 +#define PCA9641_TIME 0x03 +#define PCA9641_CTL_LOCK_REQ BIT(0) +#define PCA9641_CTL_LOCK_GRANT BIT(1) +#define PCA9641_CTL_BUS_CONNECT BIT(2) +#define PCA9641_CTL_BUS_INIT BIT(3) +#define PCA9641_CTL_SMBUS_SWRST BIT(4) +#define PCA9641_CTL_IDLE_TIMER_DIS BIT(5) +#define PCA9641_CTL_SMBUS_DIS BIT(6) +#define PCA9641_CTL_PRIORITY BIT(7) +#define PCA9641_STS_OTHER_LOCK BIT(0) +#define PCA9641_STS_BUS_INIT_FAIL BIT(1) +#define PCA9641_STS_BUS_HUNG BIT(2) +#define PCA9641_STS_MBOX_EMPTY BIT(3) +#define PCA9641_STS_MBOX_FULL BIT(4) +#define PCA9641_STS_TEST_INT BIT(5) +#define PCA9641_STS_SCL_IO BIT(6) +#define PCA9641_STS_SDA_IO BIT(7) +#define PCA9641_RES_TIME 0x03 +#define BUSON (PCA9541_CTL_BUSON | PCA9541_CTL_NBUSON) +#define MYBUS (PCA9541_CTL_MYBUS | PCA9541_CTL_NMYBUS) +#define mybus(x) (!((x) & MYBUS) || ((x) & MYBUS) == MYBUS) +#define busoff(x) (!((x) & BUSON) || ((x) & BUSON) == BUSON) +#define BUSOFF(x, y) (!((x) & PCA9641_CTL_LOCK_GRANT) && \ + !((y) & PCA9641_STS_OTHER_LOCK)) +#define other_lock(x) ((x) & PCA9641_STS_OTHER_LOCK) +#define lock_grant(x) ((x) & PCA9641_CTL_LOCK_GRANT) + +#define PCA9641_RETRY_TIME (8) +#define PCA9641_RESET_DELAY (150) + +typedef struct i2c_muxs_struct_flag +{ + int nr; + char name[48]; + struct mutex update_lock; + int flag; +}i2c_mux_flag; + +i2c_mux_flag pca_flag = { + .flag = -1, +}; + +int pca9641_setmuxflag(int nr, int flag) +{ + if (pca_flag.nr == nr) { + pca_flag.flag = flag; + return 0; + } + return -1; +} +EXPORT_SYMBOL(pca9641_setmuxflag); + +static int g_debug_info = 0; +static int g_debug_err = 0; + +module_param(g_debug_info, int, S_IRUGO | S_IWUSR); +module_param(g_debug_err, int, S_IRUGO | S_IWUSR); + +#define PCA_DEBUG(fmt, args...) do { \ + if (g_debug_info) { \ + printk(KERN_INFO "[pca9641][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define PCA_DEBUG_ERR(fmt, args...) do { \ + if (g_debug_err) { \ + printk(KERN_ERR "[pca9641][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +/* arbitration timeouts, in jiffies */ +#define ARB_TIMEOUT (HZ / 8) /* 125 ms until forcing bus ownership */ +#define ARB2_TIMEOUT (HZ / 4) /* 250 ms until acquisition failure */ + +/* arbitration retry delays, in us */ +#define SELECT_DELAY_SHORT 50 +#define SELECT_DELAY_LONG 1000 +#define I2C_RETRY_TIMES (5) +#define I2C_RETRY_WAIT_TIMES (10) /*delay 10ms*/ + +typedef struct pca9641_cfg_info_s { + uint32_t pca9641_reset_type; + uint32_t rst_delay_b; /* delay time before reset(us) */ + uint32_t rst_delay; /* reset time(us) */ + uint32_t rst_delay_a; /* delay time after reset(us) */ + union { + i2c_attr_t i2c_attr; + gpio_attr_t gpio_attr; + io_attr_t io_attr; + file_attr_t file_attr; + } attr; +} pca9641_cfg_info_t; + +struct pca9541 { + struct i2c_client *client; + unsigned long select_timeout; + unsigned long arb_timeout; + uint32_t pca9641_nr; + pca9641_cfg_info_t pca9641_cfg_info; /* pca9641 reset cfg */ +}; + +static const struct i2c_device_id pca9541_id[] = { + {"wb_pca9541", 0}, + {"wb_pca9641", 1}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, pca9541_id); + +#ifdef CONFIG_OF +static const struct of_device_id pca9541_of_match[] = { + { .compatible = "nxp,wb_pca9541" }, + { .compatible = "nxp,wb_pca9641" }, + {} +}; +MODULE_DEVICE_TABLE(of, pca9541_of_match); +#endif + +static int pca9641_gpio_init(gpio_attr_t *gpio_attr) +{ + int err; + + if (gpio_attr->gpio_init) { + PCA_DEBUG("gpio%d already init, do nothing.\n", gpio_attr->gpio); + return 0; + } + + PCA_DEBUG("gpio%d init.\n", gpio_attr->gpio); + err = gpio_request(gpio_attr->gpio, "pca9641_reset"); + if (err) { + goto error; + } + err = gpio_direction_output(gpio_attr->gpio, gpio_attr->reset_off); + if (err) { + gpio_free(gpio_attr->gpio); + goto error; + } + gpio_attr->gpio_init = 1; + return 0; +error: + PCA_DEBUG_ERR("pca9641_gpio_init failed, ret:%d.\n", err); + return err; +} + +static void pca9641_gpio_free(gpio_attr_t *gpio_attr) +{ + if (gpio_attr->gpio_init == 1) { + PCA_DEBUG("gpio%d release.\n", gpio_attr->gpio); + gpio_free(gpio_attr->gpio); + gpio_attr->gpio_init = 0; + } + return; +} + +static int pca9641_reset_file_read(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + PCA_DEBUG_ERR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_read(filp, val, size, &tmp_pos); + if (ret < 0) { + PCA_DEBUG_ERR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int pca9641_reset_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + PCA_DEBUG_ERR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + PCA_DEBUG_ERR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int pca9641_reset_i2c_read(uint32_t bus, uint32_t addr, uint32_t offset_addr, + unsigned char *buf, uint32_t size) +{ + struct file *fp; + struct i2c_client client; + char i2c_path[32]; + int i, j; + int rv; + + rv = 0; + mem_clear(i2c_path, sizeof(i2c_path)); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", bus); + fp = filp_open(i2c_path, O_RDWR, S_IRUSR | S_IWUSR); + if (IS_ERR(fp)) { + PCA_DEBUG_ERR("i2c open fail.\n"); + return -1; + } + memcpy(&client, fp->private_data, sizeof(struct i2c_client)); + client.addr = addr; + for (j = 0; j < size; j++) { + for (i = 0; i < I2C_RETRY_TIMES; i++) { + rv = i2c_smbus_read_byte_data(&client, (offset_addr + j)); + if (rv < 0) { + PCA_DEBUG_ERR("i2c read failed, try again.\n"); + msleep(I2C_RETRY_WAIT_TIMES); + if (i >= (I2C_RETRY_TIMES - 1)) { + goto out; + } + continue; + } + *(buf + j) = (unsigned char)rv; + break; + } + } +out: + filp_close(fp, NULL); + return rv; +} + +static int pca9641_reset_i2c_write(uint32_t bus, uint32_t dev_addr, uint32_t offset_addr, + uint8_t write_buf) +{ + struct file *fp; + struct i2c_client client; + char i2c_path[32]; + int i; + int rv; + + rv = 0; + mem_clear(i2c_path, sizeof(i2c_path)); + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", bus); + fp = filp_open(i2c_path, O_RDWR, S_IRUSR | S_IWUSR); + if (IS_ERR(fp)) { + PCA_DEBUG_ERR("i2c open fail.\n"); + return -1; + } + memcpy(&client, fp->private_data, sizeof(struct i2c_client)); + client.addr = dev_addr; + for (i = 0; i < I2C_RETRY_TIMES; i++) { + rv = i2c_smbus_write_byte_data(&client, offset_addr, write_buf); + if (rv < 0) { + PCA_DEBUG_ERR("i2c write failed, try again.\n"); + msleep(I2C_RETRY_WAIT_TIMES); + if (i >= (I2C_RETRY_TIMES - 1)) { + goto out; + } + continue; + } + break; + } +out: + filp_close(fp, NULL); + return rv; +} + +static int pca9641_do_file_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout, err; + struct pca9541 *data; + pca9641_cfg_info_t *reset_cfg; + file_attr_t *file_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9641_cfg_info; + file_attr = &reset_cfg->attr.file_attr; + ret = -1; + + PCA_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", + reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); + PCA_DEBUG("dev_name:%s, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + file_attr->dev_name, file_attr->offset, file_attr->mask, + file_attr->reset_on, file_attr->reset_off); + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + err = pca9641_reset_file_read(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + + val &= ~(file_attr->mask); + val |= file_attr->reset_on; + err = pca9641_reset_file_write(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + val &= ~(file_attr->mask); + val |= file_attr->reset_off; + err = pca9641_reset_file_write(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + err = pca9641_reset_file_read(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + val &= (file_attr->mask); + if (val == file_attr->reset_off) { + ret = 0; + PCA_DEBUG("pca9641_do_file_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + if (ret < 0) { + PCA_DEBUG_ERR("pca9641_do_file_reset timeout.\n"); + } +out: + if (err < 0) { + PCA_DEBUG_ERR("pca9641_do_file_reset file rd/wr failed, ret:%d.\n", err); + } + + return ret; +} + +static int pca9641_do_io_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout; + struct pca9541 *data; + pca9641_cfg_info_t *reset_cfg; + io_attr_t *io_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9641_cfg_info; + io_attr = &reset_cfg->attr.io_attr; + + PCA_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", + reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); + PCA_DEBUG("io_addr:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + io_attr->io_addr, io_attr->mask, io_attr->reset_on, io_attr->reset_off); + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + val = inb(io_attr->io_addr); + val &= ~(io_attr->mask); + val |= io_attr->reset_on; + outb(val, io_attr->io_addr); + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + val &= ~(io_attr->mask); + val |= io_attr->reset_off; + outb(val, io_attr->io_addr); + + ret = -1; + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + val = inb(io_attr->io_addr); + val &= (io_attr->mask); + if (val == io_attr->reset_off) { + ret = 0; + PCA_DEBUG("pca9641_do_io_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + + if (ret < 0) { + PCA_DEBUG_ERR("pca9641_do_io_reset timeout.\n"); + } + + return ret; +} + +static int pca9641_do_gpio_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout; + struct pca9541 *data; + pca9641_cfg_info_t *reset_cfg; + gpio_attr_t *gpio_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9641_cfg_info; + gpio_attr = &reset_cfg->attr.gpio_attr; + + ret = pca9641_gpio_init(gpio_attr); + if (ret) { + return -1; + } + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + __gpio_set_value(gpio_attr->gpio, gpio_attr->reset_on); + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + __gpio_set_value(gpio_attr->gpio, gpio_attr->reset_off); + ret = -1; + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + val = __gpio_get_value(gpio_attr->gpio); + if (val == gpio_attr->reset_off) { + ret = 0; + PCA_DEBUG("pca9641_do_gpio_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + + if (ret < 0) { + PCA_DEBUG_ERR("pca9641_do_gpio_reset timeout.\n"); + } + + pca9641_gpio_free(gpio_attr); + return ret; +} + +static int pca9641_do_i2c_reset(struct i2c_mux_core *muxc) +{ + int ret, timeout, err; + struct pca9541 *data; + pca9641_cfg_info_t *reset_cfg; + i2c_attr_t *i2c_attr; + u8 val; + int udelay_cnt; + + data = i2c_mux_priv(muxc); + reset_cfg = &data->pca9641_cfg_info; + i2c_attr = &reset_cfg->attr.i2c_attr; + ret = -1; + + PCA_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", + reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); + PCA_DEBUG("bus:0x%x, addr:0x%x, reg:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + i2c_attr->i2c_bus, i2c_attr->i2c_addr, i2c_attr->reg_offset, + i2c_attr->mask, i2c_attr->reset_on, i2c_attr->reset_off); + + if (reset_cfg->rst_delay_b) { + usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); + } + + err = pca9641_reset_i2c_read(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + + val &= ~(i2c_attr->mask); + val |= i2c_attr->reset_on; + err = pca9641_reset_i2c_write(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, val); + if (err < 0) { + goto out; + } + + if (reset_cfg->rst_delay) { + usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); + } + + val &= ~(i2c_attr->mask); + val |= i2c_attr->reset_off; + err = pca9641_reset_i2c_write(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, val); + if (err < 0) { + goto out; + } + + udelay_cnt = 0; + timeout = reset_cfg->rst_delay_a; + while (timeout > 0) { + usleep_range(1, 2); + err = pca9641_reset_i2c_read(i2c_attr->i2c_bus, i2c_attr->i2c_addr, + i2c_attr->reg_offset, &val, sizeof(val)); + if (err < 0) { + goto out; + } + val &= (i2c_attr->mask); + if (val == i2c_attr->reset_off) { + ret = 0; + PCA_DEBUG("pca9641_do_i2c_reset success.\n"); + break; + } + udelay_cnt++; + if ((udelay_cnt % 1000) == 0) { + /* 1MS schedule*/ + schedule(); + } + timeout--; + } + if (ret < 0) { + PCA_DEBUG_ERR("pca9641_do_i2c_reset timeout.\n"); + } +out: + if (err < 0) { + PCA_DEBUG_ERR("pca9641_do_i2c_reset i2c op failed, ret:%d.\n", err); + } + return ret; +} + +static int pca9641_do_reset(struct i2c_mux_core *muxc) +{ + int ret; + struct pca9541 *data; + + data = i2c_mux_priv(muxc); + if (data->pca9641_cfg_info.pca9641_reset_type == PCA9641_RESET_NONE) { + ret = -1; + PCA_DEBUG("Don't need to reset.\n"); + } else if (data->pca9641_cfg_info.pca9641_reset_type == PCA9641_RESET_I2C) { + ret = pca9641_do_i2c_reset(muxc); + } else if (data->pca9641_cfg_info.pca9641_reset_type == PCA9641_RESET_GPIO) { + ret = pca9641_do_gpio_reset(muxc); + } else if (data->pca9641_cfg_info.pca9641_reset_type == PCA9641_RESET_IO) { + ret = pca9641_do_io_reset(muxc); + } else if (data->pca9641_cfg_info.pca9641_reset_type == PCA9641_RESET_FILE) { + ret = pca9641_do_file_reset(muxc); + } else { + ret = -1; + PCA_DEBUG_ERR("Unsupport reset type:0x%x.\n", + data->pca9641_cfg_info.pca9641_reset_type); + } + + if (ret < 0) { + PCA_DEBUG_ERR("pca9641_reset_ctrl failed, reset type:%u, ret:%d.\n", + data->pca9641_cfg_info.pca9641_reset_type, ret); + } else { + usleep_range(PCA9641_RESET_DELAY, PCA9641_RESET_DELAY + 1); + } + return ret; +} + +/* + * Write to chip register. Don't use i2c_transfer()/i2c_smbus_xfer() + * as they will try to lock the adapter a second time. + */ +static int pca9541_reg_write(struct i2c_client *client, u8 command, u8 val) +{ + struct i2c_adapter *adap = client->adapter; + int ret; + + if (adap->algo->master_xfer) { + struct i2c_msg msg; + char buf[2]; + + msg.addr = client->addr; + msg.flags = 0; + msg.len = 2; + buf[0] = command; + buf[1] = val; + msg.buf = buf; + ret = __i2c_transfer(adap, &msg, 1); + } else { + union i2c_smbus_data data; + + data.byte = val; + ret = adap->algo->smbus_xfer(adap, client->addr, + client->flags, + I2C_SMBUS_WRITE, + command, + I2C_SMBUS_BYTE_DATA, &data); + } + + return ret; +} + +/* + * Read from chip register. Don't use i2c_transfer()/i2c_smbus_xfer() + * as they will try to lock adapter a second time. + */ +static int pca9541_reg_read(struct i2c_client *client, u8 command) +{ + struct i2c_adapter *adap = client->adapter; + int ret; + u8 val; + + if (adap->algo->master_xfer) { + struct i2c_msg msg[2] = { + { + .addr = client->addr, + .flags = 0, + .len = 1, + .buf = &command + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = 1, + .buf = &val + } + }; + ret = __i2c_transfer(adap, msg, 2); + if (ret == 2) + ret = val; + else if (ret >= 0) + ret = -EIO; + } else { + union i2c_smbus_data data; + + ret = adap->algo->smbus_xfer(adap, client->addr, + client->flags, + I2C_SMBUS_READ, + command, + I2C_SMBUS_BYTE_DATA, &data); + if (!ret) + ret = data.byte; + } + return ret; +} + +/* + * Arbitration management functions + */ + +/* Release bus. Also reset NTESTON and BUSINIT if it was set. */ +static void pca9541_release_bus(struct i2c_client *client) +{ + int reg; + + reg = pca9541_reg_read(client, PCA9541_CONTROL); + if (reg >= 0 && !busoff(reg) && mybus(reg)) + pca9541_reg_write(client, PCA9541_CONTROL, + (reg & PCA9541_CTL_NBUSON) >> 1); +} + +/* + * Arbitration is defined as a two-step process. A bus master can only activate + * the slave bus if it owns it; otherwise it has to request ownership first. + * This multi-step process ensures that access contention is resolved + * gracefully. + * + * Bus Ownership Other master Action + * state requested access + * ---------------------------------------------------- + * off - yes wait for arbitration timeout or + * for other master to drop request + * off no no take ownership + * off yes no turn on bus + * on yes - done + * on no - wait for arbitration timeout or + * for other master to release bus + * + * The main contention point occurs if the slave bus is off and both masters + * request ownership at the same time. In this case, one master will turn on + * the slave bus, believing that it owns it. The other master will request + * bus ownership. Result is that the bus is turned on, and master which did + * _not_ own the slave bus before ends up owning it. + */ + +/* Control commands per PCA9541 datasheet */ +static const u8 pca9541_control[16] = { + 4, 0, 1, 5, 4, 4, 5, 5, 0, 0, 1, 1, 0, 4, 5, 1 +}; + +/* + * Channel arbitration + * + * Return values: + * <0: error + * 0 : bus not acquired + * 1 : bus acquired + */ +static int pca9541_arbitrate(struct i2c_client *client) +{ + struct i2c_mux_core *muxc = i2c_get_clientdata(client); + struct pca9541 *data = i2c_mux_priv(muxc); + int reg; + + reg = pca9541_reg_read(client, PCA9541_CONTROL); + if (reg < 0) + return reg; + + if (busoff(reg)) { + int istat; + /* + * Bus is off. Request ownership or turn it on unless + * other master requested ownership. + */ + istat = pca9541_reg_read(client, PCA9541_ISTAT); + if (!(istat & PCA9541_ISTAT_NMYTEST) + || time_is_before_eq_jiffies(data->arb_timeout)) { + /* + * Other master did not request ownership, + * or arbitration timeout expired. Take the bus. + */ + pca9541_reg_write(client, + PCA9541_CONTROL, + pca9541_control[reg & 0x0f] + | PCA9541_CTL_NTESTON); + data->select_timeout = SELECT_DELAY_SHORT; + } else { + /* + * Other master requested ownership. + * Set extra long timeout to give it time to acquire it. + */ + data->select_timeout = SELECT_DELAY_LONG * 2; + } + } else if (mybus(reg)) { + /* + * Bus is on, and we own it. We are done with acquisition. + * Reset NTESTON and BUSINIT, then return success. + */ + if (reg & (PCA9541_CTL_NTESTON | PCA9541_CTL_BUSINIT)) + pca9541_reg_write(client, + PCA9541_CONTROL, + reg & ~(PCA9541_CTL_NTESTON + | PCA9541_CTL_BUSINIT)); + return 1; + } else { + /* + * Other master owns the bus. + * If arbitration timeout has expired, force ownership. + * Otherwise request it. + */ + data->select_timeout = SELECT_DELAY_LONG; + if (time_is_before_eq_jiffies(data->arb_timeout)) { + /* Time is up, take the bus and reset it. */ + pca9541_reg_write(client, + PCA9541_CONTROL, + pca9541_control[reg & 0x0f] + | PCA9541_CTL_BUSINIT + | PCA9541_CTL_NTESTON); + } else { + /* Request bus ownership if needed */ + if (!(reg & PCA9541_CTL_NTESTON)) + pca9541_reg_write(client, + PCA9541_CONTROL, + reg | PCA9541_CTL_NTESTON); + } + } + return 0; +} + +static int pca9541_select_chan(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca9541 *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + int ret; + unsigned long timeout = jiffies + ARB2_TIMEOUT; + /* give up after this time */ + + data->arb_timeout = jiffies + ARB_TIMEOUT; + /* force bus ownership after this time */ + + do { + ret = pca9541_arbitrate(client); + if (ret) + return ret < 0 ? ret : 0; + + if (data->select_timeout == SELECT_DELAY_SHORT) + udelay(data->select_timeout); + else + msleep(data->select_timeout / 1000); + } while (time_is_after_eq_jiffies(timeout)); + + dev_warn(&client->dev, "pca9541 select channel timeout.\n"); + return -ETIMEDOUT; +} + +static int pca9541_release_chan(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca9541 *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + pca9541_release_bus(client); + return 0; +} + +/* +* Arbitration management functions +*/ +static void pca9641_release_bus(struct i2c_client *client) +{ + pca9541_reg_write(client, PCA9641_CONTROL, 0x80); //master 0x80 +} + +/* +* Channel arbitration +* +* Return values: +* <0: error +* 0 : bus not acquired +* 1 : bus acquired +*/ +static int pca9641_arbitrate(struct i2c_client *client) +{ + struct i2c_mux_core *muxc = i2c_get_clientdata(client); + struct pca9541 *data = i2c_mux_priv(muxc); + int reg_ctl, reg_sts; + + reg_ctl = pca9541_reg_read(client, PCA9641_CONTROL); + if (reg_ctl < 0) { + PCA_DEBUG_ERR("pca9641 read control register failed, ret:%d.\n", reg_ctl); + return reg_ctl; + } + + reg_sts = pca9541_reg_read(client, PCA9641_STATUS); + if (reg_sts < 0) { + PCA_DEBUG_ERR("pca9641 read status register failed, ret:%d.\n", reg_sts); + return reg_sts; + } + + if (BUSOFF(reg_ctl, reg_sts)) { + /* + * Bus is off. Request ownership or turn it on unless + * other master requested ownership. + */ + reg_ctl |= PCA9641_CTL_LOCK_REQ; + pca9541_reg_write(client, PCA9641_CONTROL, reg_ctl); + reg_ctl = pca9541_reg_read(client, PCA9641_CONTROL); + if (reg_ctl < 0) { + PCA_DEBUG_ERR("Bus is off, but read control register failed, ret:%d.\n", reg_ctl); + return reg_ctl; + } + + if (lock_grant(reg_ctl)) { + /* + * Other master did not request ownership, + * or arbitration timeout expired. Take the bus. + */ + PCA_DEBUG("Bus is off, get pca9641 arbitration success.\n"); + reg_ctl |= PCA9641_CTL_BUS_CONNECT | PCA9641_CTL_LOCK_REQ; + pca9541_reg_write(client, PCA9641_CONTROL, reg_ctl); + return 1; + } else { + /* + * Other master requested ownership. + * Set extra long timeout to give it time to acquire it. + */ + PCA_DEBUG("Bus is off, but get pca9641 arbitration failed.\n"); + data->select_timeout = SELECT_DELAY_LONG * 2; + } + } else if (lock_grant(reg_ctl)) { + /* + * Bus is on, and we own it. We are done with acquisition. + */ + PCA_DEBUG("Bus is on, get pca9641 arbitration success.\n"); + reg_ctl |= PCA9641_CTL_BUS_CONNECT | PCA9641_CTL_LOCK_REQ; + pca9541_reg_write(client, PCA9641_CONTROL, reg_ctl); + return 1; + } else if (other_lock(reg_sts)) { + /* + * Other master owns the bus. + * If arbitration timeout has expired, force ownership. + * Otherwise request it. + */ + PCA_DEBUG("Other master owns the bus, try to request it.\n"); + data->select_timeout = SELECT_DELAY_LONG; + reg_ctl |= PCA9641_CTL_LOCK_REQ; + pca9541_reg_write(client, PCA9641_CONTROL, reg_ctl); + } + return 0; +} + +int pca9641_select_chan_single(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca9541 *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + int ret; + int result; + unsigned long msleep_time; + unsigned long timeout = jiffies + ARB2_TIMEOUT; + /* give up after this time */ + data->arb_timeout = jiffies + ARB_TIMEOUT; + /* force bus ownership after this time */ + for (result = 0 ; result < PCA9641_RETRY_TIME ; result ++) { + do { + ret = pca9641_arbitrate(client); + if (ret) { + return ret < 0 ? -EIO : 0; + } + msleep_time = data->select_timeout / 1000; + if (msleep_time < 1) { + msleep(1); + } else { + msleep(msleep_time); + } + } while (time_is_after_eq_jiffies(timeout)); + timeout = jiffies + ARB2_TIMEOUT; + } + dev_warn(&client->dev, "pca9641 select channel timeout.\n"); + return -ETIMEDOUT; +} + +static int pca9641_select_chan(struct i2c_mux_core *muxc, u32 chan) +{ + int ret, rv; + + ret = pca9641_select_chan_single(muxc, chan); + if (ret < 0) { + PCA_DEBUG_ERR("pca9641 select channel failed, ret:%d, try to reset pca9641.\n", ret); + rv = pca9641_do_reset(muxc); + + if (rv < 0) { + PCA_DEBUG_ERR("pca9641 reset failed, rv:%d.\n", rv); + return ret; + } + + ret = pca9641_select_chan_single(muxc, chan); + if (ret < 0) { + PCA_DEBUG_ERR("after pca9641 reset, select channel still failed, ret:%d.\n", ret); + } + } + return ret; +} + +static int pca9641_release_chan(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca9541 *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + if (pca_flag.flag) { + pca9641_release_bus(client); + } + return 0; +} + +static int pca9641_detect_id(struct i2c_client *client) +{ +#if 0 + int reg; + + reg = pca9541_reg_read(client, PCA9641_ID); + if (reg == PCA9641_ID_MAGIC) + return 1; + else + return 0; +#endif + /* only support pca9641 */ + return 1; +} + +static int pca9641_recordflag(struct i2c_adapter *adap) { + if (pca_flag.flag != -1) { + pr_err(" %s %d has init already!!!", __func__, __LINE__); + return -1 ; + } + pca_flag.nr = adap->nr; + PCA_DEBUG(" adap->nr:%d\n", adap->nr); + snprintf(pca_flag.name, sizeof(pca_flag.name),adap->name); + return 0; +} + +static int of_pca9641_reset_data_init(struct pca9541 *data) +{ + int err; + struct device *dev = &data->client->dev; + pca9641_cfg_info_t *reset_cfg; + + reset_cfg = &data->pca9641_cfg_info; + if (dev == NULL || dev->of_node == NULL) { + PCA_DEBUG("dev or dev->of_node is NUll, no reset.\n"); + reset_cfg->pca9641_reset_type = PCA9641_RESET_NONE; + return 0; + } + + if (of_property_read_u32(dev->of_node, "pca9641_reset_type", &reset_cfg->pca9641_reset_type)) { + + PCA_DEBUG("pca9641_reset_type not found, no reset.\n"); + reset_cfg->pca9641_reset_type = PCA9641_RESET_NONE; + return 0; + } + err = of_property_read_u32(dev->of_node, "rst_delay_b", &reset_cfg->rst_delay_b); + err |= of_property_read_u32(dev->of_node, "rst_delay", &reset_cfg->rst_delay); + err |= of_property_read_u32(dev->of_node, "rst_delay_a", &reset_cfg->rst_delay_a); + + if (err) { + goto dts_config_err; + } + PCA_DEBUG("reset_type:0x%x, rst_delay_b:0x%x, rst_delay:0x%x, rst_delay_a:0x%x.\n", + reset_cfg->pca9641_reset_type, reset_cfg->rst_delay_b, + reset_cfg->rst_delay, reset_cfg->rst_delay_a); + + if (reset_cfg->pca9641_reset_type == PCA9641_RESET_I2C) { + + PCA_DEBUG("reset by i2c.\n"); + err = of_property_read_u32(dev->of_node, "i2c_bus", &reset_cfg->attr.i2c_attr.i2c_bus); + err |=of_property_read_u32(dev->of_node, "i2c_addr", &reset_cfg->attr.i2c_attr.i2c_addr); + err |=of_property_read_u32(dev->of_node, "reg_offset", &reset_cfg->attr.i2c_attr.reg_offset); + err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.i2c_attr.mask); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.i2c_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.i2c_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA_DEBUG("bus:%u, addr:0x%x, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + reset_cfg->attr.i2c_attr.i2c_bus, reset_cfg->attr.i2c_attr.i2c_addr, + reset_cfg->attr.i2c_attr.reg_offset, reset_cfg->attr.i2c_attr.mask, + reset_cfg->attr.i2c_attr.reset_on, reset_cfg->attr.i2c_attr.reset_off); + } else if (reset_cfg->pca9641_reset_type == PCA9641_RESET_GPIO) { + + PCA_DEBUG("reset by gpio.\n"); + err = of_property_read_u32(dev->of_node, "gpio", &reset_cfg->attr.gpio_attr.gpio); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.gpio_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.gpio_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA_DEBUG("gpio number:%u, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.gpio_attr.gpio, reset_cfg->attr.gpio_attr.reset_on, + reset_cfg->attr.gpio_attr.reset_off); + reset_cfg->attr.gpio_attr.gpio_init = 0; + } else if (reset_cfg->pca9641_reset_type == PCA9641_RESET_IO) { + + PCA_DEBUG("reset by io.\n"); + err = of_property_read_u32(dev->of_node, "io_addr", &reset_cfg->attr.io_attr.io_addr); + err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.io_attr.mask); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.io_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.io_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA_DEBUG("io_addr:0x%x, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.io_attr.io_addr, reset_cfg->attr.io_attr.mask, + reset_cfg->attr.io_attr.reset_on, reset_cfg->attr.io_attr.reset_off); + } else if (reset_cfg->pca9641_reset_type == PCA9641_RESET_FILE) { + + PCA_DEBUG("reset by file.\n"); + err = of_property_read_string(dev->of_node, "dev_name", &reset_cfg->attr.file_attr.dev_name); + err |=of_property_read_u32(dev->of_node, "offset", &reset_cfg->attr.file_attr.offset); + err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.file_attr.mask); + err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.file_attr.reset_on); + err |=of_property_read_u32(dev->of_node, "reset_off", &reset_cfg->attr.file_attr.reset_off); + if (err) { + goto dts_config_err; + } + PCA_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.file_attr.dev_name, reset_cfg->attr.file_attr.mask, + reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off); + } else { + PCA_DEBUG_ERR("Unsupport reset type:%d.\n", reset_cfg->pca9641_reset_type); + goto dts_config_err; + } + return 0; +dts_config_err: + PCA_DEBUG_ERR("dts config error, ret:%d.\n", err); + return -EINVAL; +} + +static int pca9641_reset_data_init(struct pca9541 *data) +{ + pca9641_cfg_info_t *reset_cfg; + i2c_mux_pca9641_device_t *i2c_mux_pca9641_device; + + if (data->client->dev.platform_data == NULL) { + PCA_DEBUG("pca9641 has no reset platform data config.\n"); + return 0; + } + reset_cfg = &data->pca9641_cfg_info; + i2c_mux_pca9641_device = data->client->dev.platform_data; + reset_cfg->pca9641_reset_type = i2c_mux_pca9641_device->pca9641_reset_type; + if (reset_cfg->pca9641_reset_type == PCA9641_RESET_NONE) { + PCA_DEBUG("pca9641 has no reset function.\n"); + return 0; + } + + reset_cfg->rst_delay_b = i2c_mux_pca9641_device->rst_delay_b; + reset_cfg->rst_delay = i2c_mux_pca9641_device->rst_delay; + reset_cfg->rst_delay_a = i2c_mux_pca9641_device->rst_delay_a; + PCA_DEBUG("reset_type:0x%x, rst_delay_b:0x%x, rst_delay:0x%x, rst_delay_a:0x%x.\n", + reset_cfg->pca9641_reset_type, reset_cfg->rst_delay_b, + reset_cfg->rst_delay, reset_cfg->rst_delay_a); + + if (reset_cfg->pca9641_reset_type == PCA9641_RESET_I2C) { + + PCA_DEBUG("reset by i2c.\n"); + reset_cfg->attr.i2c_attr.i2c_bus = i2c_mux_pca9641_device->attr.i2c_attr.i2c_bus; + reset_cfg->attr.i2c_attr.i2c_addr = i2c_mux_pca9641_device->attr.i2c_attr.i2c_addr; + reset_cfg->attr.i2c_attr.reg_offset = i2c_mux_pca9641_device->attr.i2c_attr.reg_offset; + reset_cfg->attr.i2c_attr.mask = i2c_mux_pca9641_device->attr.i2c_attr.mask; + reset_cfg->attr.i2c_attr.reset_on = i2c_mux_pca9641_device->attr.i2c_attr.reset_on; + reset_cfg->attr.i2c_attr.reset_off = i2c_mux_pca9641_device->attr.i2c_attr.reset_off; + PCA_DEBUG("bus:%u, addr:0x%x, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + reset_cfg->attr.i2c_attr.i2c_bus, reset_cfg->attr.i2c_attr.i2c_addr, + reset_cfg->attr.i2c_attr.reg_offset, reset_cfg->attr.i2c_attr.mask, + reset_cfg->attr.i2c_attr.reset_on, reset_cfg->attr.i2c_attr.reset_off); + } else if (reset_cfg->pca9641_reset_type == PCA9641_RESET_GPIO) { + + PCA_DEBUG("reset by gpio.\n"); + reset_cfg->attr.gpio_attr.gpio = i2c_mux_pca9641_device->attr.gpio_attr.gpio; + reset_cfg->attr.gpio_attr.reset_on = i2c_mux_pca9641_device->attr.gpio_attr.reset_on; + reset_cfg->attr.gpio_attr.reset_off = i2c_mux_pca9641_device->attr.gpio_attr.reset_off; + PCA_DEBUG("gpio number:%u, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.gpio_attr.gpio, reset_cfg->attr.gpio_attr.reset_on, + reset_cfg->attr.gpio_attr.reset_off); + reset_cfg->attr.gpio_attr.gpio_init = 0; + } else if (reset_cfg->pca9641_reset_type == PCA9641_RESET_IO) { + + PCA_DEBUG("reset by io.\n"); + reset_cfg->attr.io_attr.io_addr = i2c_mux_pca9641_device->attr.io_attr.io_addr; + reset_cfg->attr.io_attr.mask = i2c_mux_pca9641_device->attr.io_attr.mask; + reset_cfg->attr.io_attr.reset_on = i2c_mux_pca9641_device->attr.io_attr.reset_on; + reset_cfg->attr.io_attr.reset_off = i2c_mux_pca9641_device->attr.io_attr.reset_off; + PCA_DEBUG("io_addr:0x%x, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.io_attr.io_addr, reset_cfg->attr.io_attr.mask, + reset_cfg->attr.io_attr.reset_on, reset_cfg->attr.io_attr.reset_off); + } else if (reset_cfg->pca9641_reset_type == PCA9641_RESET_FILE) { + + PCA_DEBUG("reset by file.\n"); + reset_cfg->attr.file_attr.dev_name = i2c_mux_pca9641_device->attr.file_attr.dev_name; + reset_cfg->attr.file_attr.offset = i2c_mux_pca9641_device->attr.file_attr.offset; + reset_cfg->attr.file_attr.mask = i2c_mux_pca9641_device->attr.file_attr.mask; + reset_cfg->attr.file_attr.reset_on = i2c_mux_pca9641_device->attr.file_attr.reset_on; + reset_cfg->attr.file_attr.reset_off = i2c_mux_pca9641_device->attr.file_attr.reset_off; + PCA_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.file_attr.dev_name, reset_cfg->attr.file_attr.mask, + reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off); + } else { + PCA_DEBUG_ERR("Unsupport reset type:%d.\n", reset_cfg->pca9641_reset_type); + return -EINVAL; + } + return 0; +} + +/* + * I2C init/probing/exit functions + */ +static int pca9541_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct i2c_adapter *adap = client->adapter; + struct i2c_mux_core *muxc; + struct pca9541 *data; + int force; + int ret = -ENODEV; + int detect_id; + i2c_mux_pca9641_device_t *i2c_mux_pca9641_device; + + if (!i2c_check_functionality(adap, I2C_FUNC_SMBUS_BYTE_DATA)) + return -ENODEV; + + detect_id = pca9641_detect_id(client); + + /* + * I2C accesses are unprotected here. + * We have to lock the adapter before releasing the bus. + */ + if (detect_id == 0) { + i2c_lock_bus(adap, I2C_LOCK_ROOT_ADAPTER); + pca9541_release_bus(client); + i2c_unlock_bus(adap, I2C_LOCK_ROOT_ADAPTER); + } else { + i2c_lock_bus(adap, I2C_LOCK_ROOT_ADAPTER); + pca9641_release_bus(client); + i2c_unlock_bus(adap, I2C_LOCK_ROOT_ADAPTER); + } + + if (detect_id == 0) { /* pca9541 */ + muxc = i2c_mux_alloc(adap, &client->dev, 1, sizeof(*data), + I2C_MUX_ARBITRATOR, + pca9541_select_chan, pca9541_release_chan); + if (!muxc) + return -ENOMEM; + + data = i2c_mux_priv(muxc); + data->client = client; + + i2c_set_clientdata(client, muxc); + /* Create mux adapter */ + if (of_property_read_u32(client->dev.of_node, "pca9641_nr", &data->pca9641_nr)) { + + force = 0; + PCA_DEBUG("pca9641_nr not found, use dynamic adap number.\n"); + } else { + force = data->pca9641_nr; + PCA_DEBUG("pca9641_nr: %d.\n", force); + } + + ret = i2c_mux_add_adapter(muxc, force, 0, 0); + if (ret) + return ret; + } else { + muxc = i2c_mux_alloc(adap, &client->dev, 1, sizeof(*data), I2C_MUX_ARBITRATOR, + pca9641_select_chan, pca9641_release_chan); + if (!muxc) { + dev_err(&client->dev, "i2c_mux_alloc failed, out of memory.\n"); + return -ENOMEM; + } + + data = i2c_mux_priv(muxc); + data->client = client; + + i2c_set_clientdata(client, muxc); + + if (client->dev.of_node) { + ret= of_pca9641_reset_data_init(data); + } else { + ret= pca9641_reset_data_init(data); + } + if (ret < 0) { + dev_err(&client->dev, "pca9641 reset config err, ret:%d.\n", ret); + return ret; + } + + if (client->dev.of_node == NULL) { + if (client->dev.platform_data == NULL) { + force = 0; + PCA_DEBUG("platform data is NULL, use dynamic adap number.\n"); + } else { + i2c_mux_pca9641_device = client->dev.platform_data; + data->pca9641_nr = i2c_mux_pca9641_device->pca9641_nr; + if (data->pca9641_nr == 0) { + force = 0; + PCA_DEBUG("pca9641_nr = 0, use dynamic adap number.\n"); + } else { + force = data->pca9641_nr; + PCA_DEBUG("pca9641_nr: %d.\n", force); + } + } + } else { + /* Create mux adapter */ + if (of_property_read_u32(client->dev.of_node, "pca9641_nr", &data->pca9641_nr)) { + + force = 0; + PCA_DEBUG("pca9641_nr not found, use dynamic adap number.\n"); + } else { + force = data->pca9641_nr; + PCA_DEBUG("pca9641_nr: %d.\n", force); + } + } + + ret = i2c_mux_add_adapter(muxc, force, 0, 0); + if (ret) { + dev_err(&client->dev, "Failed to register master selector.\n"); + return ret; + } + } + pca9641_recordflag(muxc->adapter[0]); + + dev_info(&client->dev, "registered master selector for I2C %s\n", client->name); + + return 0; +} + +static int pca9541_remove(struct i2c_client *client) +{ + struct i2c_mux_core *muxc = i2c_get_clientdata(client); + + i2c_mux_del_adapters(muxc); + return 0; +} + +static struct i2c_driver pca9641_driver = { + .driver = { + .name = "wb_pca9641", + .of_match_table = of_match_ptr(pca9541_of_match), + }, + .probe = pca9541_probe, + .remove = pca9541_remove, + .id_table = pca9541_id, +}; + +module_i2c_driver(pca9641_driver); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PCA9541 I2C master selector driver"); +MODULE_LICENSE("GPL v2"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.h new file mode 100644 index 000000000000..b87f7585567b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.h @@ -0,0 +1,64 @@ +#ifndef __WB_I2C_MUX_PCA9641_H__ +#define __WB_I2C_MUX_PCA9641_H__ + +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +typedef enum pca9641_reset_type_s { + PCA9641_RESET_NONE = 0, + PCA9641_RESET_I2C = 1, + PCA9641_RESET_GPIO = 2, + PCA9641_RESET_IO = 3, + PCA9641_RESET_FILE = 4, +} pca9641_reset_type_t; + +typedef struct i2c_attr_s { + uint32_t i2c_bus; + uint32_t i2c_addr; + uint32_t reg_offset; + uint32_t mask; + uint32_t reset_on; + uint32_t reset_off; +} i2c_attr_t; + +typedef struct io_attr_s { + uint32_t io_addr; + uint32_t mask; + uint32_t reset_on; + uint32_t reset_off; +} io_attr_t; + +typedef struct file_attr_s { + const char *dev_name; + uint32_t offset; + uint32_t mask; + uint32_t reset_on; + uint32_t reset_off; +} file_attr_t; + +typedef struct gpio_attr_s { + int gpio_init; + uint32_t gpio; + uint32_t reset_on; + uint32_t reset_off; +} gpio_attr_t; + +typedef struct i2c_mux_pca9641_device_s { + struct i2c_client *client; + uint32_t i2c_bus; + uint32_t i2c_addr; + uint32_t pca9641_nr; + uint32_t pca9641_reset_type; + uint32_t rst_delay_b; /* delay time before reset(us) */ + uint32_t rst_delay; /* reset time(us) */ + uint32_t rst_delay_a; /* delay time after reset(us) */ + union { + i2c_attr_t i2c_attr; + gpio_attr_t gpio_attr; + io_attr_t io_attr; + file_attr_t file_attr; + } attr; +} i2c_mux_pca9641_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c new file mode 100644 index 000000000000..fba2c4e3a68e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c @@ -0,0 +1,1031 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * INA3221 Triple Current/Voltage Monitor + * + * Copyright (C) 2016 Texas Instruments Incorporated - https://www.ti.com/ + * Andrew F. Davis + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define INA3221_DRIVER_NAME "wb_ina3221" + +#define INA3221_CONFIG 0x00 +#define INA3221_SHUNT1 0x01 +#define INA3221_BUS1 0x02 +#define INA3221_SHUNT2 0x03 +#define INA3221_BUS2 0x04 +#define INA3221_SHUNT3 0x05 +#define INA3221_BUS3 0x06 +#define INA3221_CRIT1 0x07 +#define INA3221_WARN1 0x08 +#define INA3221_CRIT2 0x09 +#define INA3221_WARN2 0x0a +#define INA3221_CRIT3 0x0b +#define INA3221_WARN3 0x0c +#define INA3221_SHUNT_SUM 0x0d +#define INA3221_CRIT_SUM 0x0e +#define INA3221_MASK_ENABLE 0x0f + +#define INA3221_CONFIG_MODE_MASK GENMASK(2, 0) +#define INA3221_CONFIG_MODE_POWERDOWN 0 +#define INA3221_CONFIG_MODE_SHUNT BIT(0) +#define INA3221_CONFIG_MODE_BUS BIT(1) +#define INA3221_CONFIG_MODE_CONTINUOUS BIT(2) +#define INA3221_CONFIG_VSH_CT_SHIFT 3 +#define INA3221_CONFIG_VSH_CT_MASK GENMASK(5, 3) +#define INA3221_CONFIG_VSH_CT(x) (((x) & GENMASK(5, 3)) >> 3) +#define INA3221_CONFIG_VBUS_CT_SHIFT 6 +#define INA3221_CONFIG_VBUS_CT_MASK GENMASK(8, 6) +#define INA3221_CONFIG_VBUS_CT(x) (((x) & GENMASK(8, 6)) >> 6) +#define INA3221_CONFIG_AVG_SHIFT 9 +#define INA3221_CONFIG_AVG_MASK GENMASK(11, 9) +#define INA3221_CONFIG_AVG(x) (((x) & GENMASK(11, 9)) >> 9) +#define INA3221_CONFIG_CHs_EN_MASK GENMASK(14, 12) +#define INA3221_CONFIG_CHx_EN(x) BIT(14 - (x)) + +#define INA3221_MASK_ENABLE_SCC_MASK GENMASK(14, 12) + +#define INA3221_CONFIG_DEFAULT 0x7127 +#define INA3221_RSHUNT_DEFAULT 10000 + +enum ina3221_fields { + /* Configuration */ + F_RST, + + /* Status Flags */ + F_CVRF, + + /* Warning Flags */ + F_WF3, F_WF2, F_WF1, + + /* Alert Flags: SF is the summation-alert flag */ + F_SF, F_CF3, F_CF2, F_CF1, + + /* sentinel */ + F_MAX_FIELDS +}; + +static const struct reg_field ina3221_reg_fields[] = { + [F_RST] = REG_FIELD(INA3221_CONFIG, 15, 15), + + [F_CVRF] = REG_FIELD(INA3221_MASK_ENABLE, 0, 0), + [F_WF3] = REG_FIELD(INA3221_MASK_ENABLE, 3, 3), + [F_WF2] = REG_FIELD(INA3221_MASK_ENABLE, 4, 4), + [F_WF1] = REG_FIELD(INA3221_MASK_ENABLE, 5, 5), + [F_SF] = REG_FIELD(INA3221_MASK_ENABLE, 6, 6), + [F_CF3] = REG_FIELD(INA3221_MASK_ENABLE, 7, 7), + [F_CF2] = REG_FIELD(INA3221_MASK_ENABLE, 8, 8), + [F_CF1] = REG_FIELD(INA3221_MASK_ENABLE, 9, 9), +}; + +enum ina3221_channels { + INA3221_CHANNEL1, + INA3221_CHANNEL2, + INA3221_CHANNEL3, + INA3221_NUM_CHANNELS +}; + +/** + * struct ina3221_input - channel input source specific information + * @label: label of channel input source + * @shunt_resistor: shunt resistor value of channel input source + * @disconnected: connection status of channel input source + */ +struct ina3221_input { + const char *label; + int shunt_resistor; + bool disconnected; +}; + +/** + * struct ina3221_data - device specific information + * @pm_dev: Device pointer for pm runtime + * @regmap: Register map of the device + * @fields: Register fields of the device + * @inputs: Array of channel input source specific structures + * @lock: mutex lock to serialize sysfs attribute accesses + * @reg_config: Register value of INA3221_CONFIG + * @summation_shunt_resistor: equivalent shunt resistor value for summation + * @single_shot: running in single-shot operating mode + */ +struct ina3221_data { + struct device *pm_dev; + struct regmap *regmap; + struct regmap_field *fields[F_MAX_FIELDS]; + struct ina3221_input inputs[INA3221_NUM_CHANNELS]; + struct mutex lock; + u32 reg_config; + int summation_shunt_resistor; + + bool single_shot; +}; + +static inline bool ina3221_is_enabled(struct ina3221_data *ina, int channel) +{ + /* Summation channel checks shunt resistor values */ + if (channel > INA3221_CHANNEL3) + return ina->summation_shunt_resistor != 0; + + return pm_runtime_active(ina->pm_dev) && + (ina->reg_config & INA3221_CONFIG_CHx_EN(channel)); +} + +/** + * Helper function to return the resistor value for current summation. + * + * There is a condition to calculate current summation -- all the shunt + * resistor values should be the same, so as to simply fit the formula: + * current summation = shunt voltage summation / shunt resistor + * + * Returns the equivalent shunt resistor value on success or 0 on failure + */ +static inline int ina3221_summation_shunt_resistor(struct ina3221_data *ina) +{ + struct ina3221_input *input = ina->inputs; + int i, shunt_resistor = 0; + + for (i = 0; i < INA3221_NUM_CHANNELS; i++) { + if (input[i].disconnected || !input[i].shunt_resistor) + continue; + if (!shunt_resistor) { + /* Found the reference shunt resistor value */ + shunt_resistor = input[i].shunt_resistor; + } else { + /* No summation if resistor values are different */ + if (shunt_resistor != input[i].shunt_resistor) + return 0; + } + } + + return shunt_resistor; +} + +/* Lookup table for Bus and Shunt conversion times in usec */ +static const u16 ina3221_conv_time[] = { + 140, 204, 332, 588, 1100, 2116, 4156, 8244, +}; + +/* Lookup table for number of samples using in averaging mode */ +static const int ina3221_avg_samples[] = { + 1, 4, 16, 64, 128, 256, 512, 1024, +}; + +/* Converting update_interval in msec to conversion time in usec */ +static inline u32 ina3221_interval_ms_to_conv_time(u16 config, int interval) +{ + u32 channels = hweight16(config & INA3221_CONFIG_CHs_EN_MASK); + u32 samples_idx = INA3221_CONFIG_AVG(config); + u32 samples = ina3221_avg_samples[samples_idx]; + + /* Bisect the result to Bus and Shunt conversion times */ + return DIV_ROUND_CLOSEST(interval * 1000 / 2, channels * samples); +} + +/* Converting CONFIG register value to update_interval in usec */ +static inline u32 ina3221_reg_to_interval_us(u16 config) +{ + u32 channels = hweight16(config & INA3221_CONFIG_CHs_EN_MASK); + u32 vbus_ct_idx = INA3221_CONFIG_VBUS_CT(config); + u32 vsh_ct_idx = INA3221_CONFIG_VSH_CT(config); + u32 samples_idx = INA3221_CONFIG_AVG(config); + u32 samples = ina3221_avg_samples[samples_idx]; + u32 vbus_ct = ina3221_conv_time[vbus_ct_idx]; + u32 vsh_ct = ina3221_conv_time[vsh_ct_idx]; + + /* Calculate total conversion time */ + return channels * (vbus_ct + vsh_ct) * samples; +} + +static inline int ina3221_wait_for_data(struct ina3221_data *ina) +{ + u32 wait, cvrf; + + wait = ina3221_reg_to_interval_us(ina->reg_config); + + /* Polling the CVRF bit to make sure read data is ready */ + return regmap_field_read_poll_timeout(ina->fields[F_CVRF], + cvrf, cvrf, wait, wait * 2); +} + +static int ina3221_read_value(struct ina3221_data *ina, unsigned int reg, + int *val) +{ + unsigned int regval; + int ret; + + ret = regmap_read(ina->regmap, reg, ®val); + if (ret) + return ret; + + /* + * Shunt Voltage Sum register has 14-bit value with 1-bit shift + * Other Shunt Voltage registers have 12 bits with 3-bit shift + */ + if (reg == INA3221_SHUNT_SUM) + *val = sign_extend32(regval >> 1, 14); + else + *val = sign_extend32(regval >> 3, 12); + + return 0; +} + +static const u8 ina3221_in_reg[] = { + INA3221_BUS1, + INA3221_BUS2, + INA3221_BUS3, + INA3221_SHUNT1, + INA3221_SHUNT2, + INA3221_SHUNT3, + INA3221_SHUNT_SUM, +}; + +static int ina3221_read_chip(struct device *dev, u32 attr, long *val) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int regval; + + switch (attr) { + case hwmon_chip_samples: + regval = INA3221_CONFIG_AVG(ina->reg_config); + *val = ina3221_avg_samples[regval]; + return 0; + case hwmon_chip_update_interval: + /* Return in msec */ + *val = ina3221_reg_to_interval_us(ina->reg_config); + *val = DIV_ROUND_CLOSEST(*val, 1000); + return 0; + default: + return -EOPNOTSUPP; + } +} + +static int ina3221_read_in(struct device *dev, u32 attr, int channel, long *val) +{ + const bool is_shunt = channel > INA3221_CHANNEL3; + struct ina3221_data *ina = dev_get_drvdata(dev); + u8 reg = ina3221_in_reg[channel]; + int regval, ret; + + /* + * Translate shunt channel index to sensor channel index except + * the 7th channel (6 since being 0-aligned) is for summation. + */ + if (channel != 6) + channel %= INA3221_NUM_CHANNELS; + + switch (attr) { + case hwmon_in_input: + if (!ina3221_is_enabled(ina, channel)) + return -ENODATA; + + /* Write CONFIG register to trigger a single-shot measurement */ + if (ina->single_shot) + regmap_write(ina->regmap, INA3221_CONFIG, + ina->reg_config); + + ret = ina3221_wait_for_data(ina); + if (ret) + return ret; + + ret = ina3221_read_value(ina, reg, ®val); + if (ret) + return ret; + + /* + * Scale of shunt voltage (uV): LSB is 40uV + * Scale of bus voltage (mV): LSB is 8mV + */ + *val = regval * (is_shunt ? 40 : 8); + return 0; + case hwmon_in_enable: + *val = ina3221_is_enabled(ina, channel); + return 0; + default: + return -EOPNOTSUPP; + } +} + +static const u8 ina3221_curr_reg[][INA3221_NUM_CHANNELS + 1] = { + [hwmon_curr_input] = { INA3221_SHUNT1, INA3221_SHUNT2, + INA3221_SHUNT3, INA3221_SHUNT_SUM }, + [hwmon_curr_max] = { INA3221_WARN1, INA3221_WARN2, INA3221_WARN3, 0 }, + [hwmon_curr_crit] = { INA3221_CRIT1, INA3221_CRIT2, + INA3221_CRIT3, INA3221_CRIT_SUM }, + [hwmon_curr_max_alarm] = { F_WF1, F_WF2, F_WF3, 0 }, + [hwmon_curr_crit_alarm] = { F_CF1, F_CF2, F_CF3, F_SF }, +}; + +static int ina3221_read_curr(struct device *dev, u32 attr, + int channel, long *val) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + struct ina3221_input *input = ina->inputs; + u8 reg = ina3221_curr_reg[attr][channel]; + int resistance_uo, voltage_nv; + int regval, ret; + + if (channel > INA3221_CHANNEL3) + resistance_uo = ina->summation_shunt_resistor; + else + resistance_uo = input[channel].shunt_resistor; + + switch (attr) { + case hwmon_curr_input: + if (!ina3221_is_enabled(ina, channel)) + return -ENODATA; + + /* Write CONFIG register to trigger a single-shot measurement */ + if (ina->single_shot) + regmap_write(ina->regmap, INA3221_CONFIG, + ina->reg_config); + + ret = ina3221_wait_for_data(ina); + if (ret) + return ret; + + fallthrough; + case hwmon_curr_crit: + case hwmon_curr_max: + if (!resistance_uo) + return -ENODATA; + + ret = ina3221_read_value(ina, reg, ®val); + if (ret) + return ret; + + /* Scale of shunt voltage: LSB is 40uV (40000nV) */ + voltage_nv = regval * 40000; + /* Return current in mA */ + *val = DIV_ROUND_CLOSEST(voltage_nv, resistance_uo); + return 0; + case hwmon_curr_crit_alarm: + case hwmon_curr_max_alarm: + /* No actual register read if channel is disabled */ + if (!ina3221_is_enabled(ina, channel)) { + /* Return 0 for alert flags */ + *val = 0; + return 0; + } + ret = regmap_field_read(ina->fields[reg], ®val); + if (ret) + return ret; + *val = regval; + return 0; + default: + return -EOPNOTSUPP; + } +} + +static int ina3221_write_chip(struct device *dev, u32 attr, long val) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int ret, idx; + u32 tmp; + + switch (attr) { + case hwmon_chip_samples: + idx = find_closest(val, ina3221_avg_samples, + ARRAY_SIZE(ina3221_avg_samples)); + + tmp = (ina->reg_config & ~INA3221_CONFIG_AVG_MASK) | + (idx << INA3221_CONFIG_AVG_SHIFT); + ret = regmap_write(ina->regmap, INA3221_CONFIG, tmp); + if (ret) + return ret; + + /* Update reg_config accordingly */ + ina->reg_config = tmp; + return 0; + case hwmon_chip_update_interval: + tmp = ina3221_interval_ms_to_conv_time(ina->reg_config, val); + idx = find_closest(tmp, ina3221_conv_time, + ARRAY_SIZE(ina3221_conv_time)); + + /* Update Bus and Shunt voltage conversion times */ + tmp = INA3221_CONFIG_VBUS_CT_MASK | INA3221_CONFIG_VSH_CT_MASK; + tmp = (ina->reg_config & ~tmp) | + (idx << INA3221_CONFIG_VBUS_CT_SHIFT) | + (idx << INA3221_CONFIG_VSH_CT_SHIFT); + ret = regmap_write(ina->regmap, INA3221_CONFIG, tmp); + if (ret) + return ret; + + /* Update reg_config accordingly */ + ina->reg_config = tmp; + return 0; + default: + return -EOPNOTSUPP; + } +} + +static int ina3221_write_curr(struct device *dev, u32 attr, + int channel, long val) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + struct ina3221_input *input = ina->inputs; + u8 reg = ina3221_curr_reg[attr][channel]; + int resistance_uo, current_ma, voltage_uv; + int regval; + + if (channel > INA3221_CHANNEL3) + resistance_uo = ina->summation_shunt_resistor; + else + resistance_uo = input[channel].shunt_resistor; + + if (!resistance_uo) + return -EOPNOTSUPP; + + /* clamp current */ + current_ma = clamp_val(val, + INT_MIN / resistance_uo, + INT_MAX / resistance_uo); + + voltage_uv = DIV_ROUND_CLOSEST(current_ma * resistance_uo, 1000); + + /* clamp voltage */ + voltage_uv = clamp_val(voltage_uv, -163800, 163800); + + /* + * Formula to convert voltage_uv to register value: + * regval = (voltage_uv / scale) << shift + * Note: + * The scale is 40uV for all shunt voltage registers + * Shunt Voltage Sum register left-shifts 1 bit + * All other Shunt Voltage registers shift 3 bits + * Results: + * SHUNT_SUM: (1 / 40uV) << 1 = 1 / 20uV + * SHUNT[1-3]: (1 / 40uV) << 3 = 1 / 5uV + */ + if (reg == INA3221_SHUNT_SUM) + regval = DIV_ROUND_CLOSEST(voltage_uv, 20) & 0xfffe; + else + regval = DIV_ROUND_CLOSEST(voltage_uv, 5) & 0xfff8; + + return regmap_write(ina->regmap, reg, regval); +} + +static int ina3221_write_enable(struct device *dev, int channel, bool enable) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + u16 config, mask = INA3221_CONFIG_CHx_EN(channel); + u16 config_old = ina->reg_config & mask; + u32 tmp; + int ret; + + config = enable ? mask : 0; + + /* Bypass if enable status is not being changed */ + if (config_old == config) + return 0; + + /* For enabling routine, increase refcount and resume() at first */ + if (enable) { + ret = pm_runtime_resume_and_get(ina->pm_dev); + if (ret < 0) { + dev_err(dev, "Failed to get PM runtime\n"); + return ret; + } + } + + /* Enable or disable the channel */ + tmp = (ina->reg_config & ~mask) | (config & mask); + ret = regmap_write(ina->regmap, INA3221_CONFIG, tmp); + if (ret) + goto fail; + + /* Cache the latest config register value */ + ina->reg_config = tmp; + + /* For disabling routine, decrease refcount or suspend() at last */ + if (!enable) + pm_runtime_put_sync(ina->pm_dev); + + return 0; + +fail: + if (enable) { + dev_err(dev, "Failed to enable channel %d: error %d\n", + channel, ret); + pm_runtime_put_sync(ina->pm_dev); + } + + return ret; +} + +static int ina3221_read(struct device *dev, enum hwmon_sensor_types type, + u32 attr, int channel, long *val) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int ret; + + mutex_lock(&ina->lock); + + switch (type) { + case hwmon_chip: + ret = ina3221_read_chip(dev, attr, val); + break; + case hwmon_in: + /* 0-align channel ID */ + ret = ina3221_read_in(dev, attr, channel - 1, val); + break; + case hwmon_curr: + ret = ina3221_read_curr(dev, attr, channel, val); + break; + default: + ret = -EOPNOTSUPP; + break; + } + + mutex_unlock(&ina->lock); + + return ret; +} + +static int ina3221_write(struct device *dev, enum hwmon_sensor_types type, + u32 attr, int channel, long val) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int ret; + + mutex_lock(&ina->lock); + + switch (type) { + case hwmon_chip: + ret = ina3221_write_chip(dev, attr, val); + break; + case hwmon_in: + /* 0-align channel ID */ + ret = ina3221_write_enable(dev, channel - 1, val); + break; + case hwmon_curr: + ret = ina3221_write_curr(dev, attr, channel, val); + break; + default: + ret = -EOPNOTSUPP; + break; + } + + mutex_unlock(&ina->lock); + + return ret; +} + +static int ina3221_read_string(struct device *dev, enum hwmon_sensor_types type, + u32 attr, int channel, const char **str) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int index = channel - 1; + + if (channel == 7) + *str = "sum of shunt voltages"; + else + *str = ina->inputs[index].label; + + return 0; +} + +static umode_t ina3221_is_visible(const void *drvdata, + enum hwmon_sensor_types type, + u32 attr, int channel) +{ + const struct ina3221_data *ina = drvdata; + const struct ina3221_input *input = NULL; + + switch (type) { + case hwmon_chip: + switch (attr) { + case hwmon_chip_samples: + case hwmon_chip_update_interval: + return 0644; + default: + return 0; + } + case hwmon_in: + /* Ignore in0_ */ + if (channel == 0) + return 0; + + switch (attr) { + case hwmon_in_label: + if (channel - 1 <= INA3221_CHANNEL3) + input = &ina->inputs[channel - 1]; + else if (channel == 7) + return 0444; + /* Hide label node if label is not provided */ + return (input && input->label) ? 0444 : 0; + case hwmon_in_input: + return 0444; + case hwmon_in_enable: + return 0644; + default: + return 0; + } + case hwmon_curr: + switch (attr) { + case hwmon_curr_input: + case hwmon_curr_crit_alarm: + case hwmon_curr_max_alarm: + return 0444; + case hwmon_curr_crit: + case hwmon_curr_max: + return 0644; + default: + return 0; + } + default: + return 0; + } +} + +#define INA3221_HWMON_CURR_CONFIG (HWMON_C_INPUT | \ + HWMON_C_CRIT | HWMON_C_CRIT_ALARM | \ + HWMON_C_MAX | HWMON_C_MAX_ALARM) + +static const struct hwmon_channel_info *ina3221_info[] = { + HWMON_CHANNEL_INFO(chip, + HWMON_C_SAMPLES, + HWMON_C_UPDATE_INTERVAL), + HWMON_CHANNEL_INFO(in, + /* 0: dummy, skipped in is_visible */ + HWMON_I_INPUT, + /* 1-3: input voltage Channels */ + HWMON_I_INPUT | HWMON_I_ENABLE | HWMON_I_LABEL, + HWMON_I_INPUT | HWMON_I_ENABLE | HWMON_I_LABEL, + HWMON_I_INPUT | HWMON_I_ENABLE | HWMON_I_LABEL, + /* 4-6: shunt voltage Channels */ + HWMON_I_INPUT, + HWMON_I_INPUT, + HWMON_I_INPUT, + /* 7: summation of shunt voltage channels */ + HWMON_I_INPUT | HWMON_I_LABEL), + HWMON_CHANNEL_INFO(curr, + /* 1-3: current channels*/ + INA3221_HWMON_CURR_CONFIG, + INA3221_HWMON_CURR_CONFIG, + INA3221_HWMON_CURR_CONFIG, + /* 4: summation of current channels */ + HWMON_C_INPUT | HWMON_C_CRIT | HWMON_C_CRIT_ALARM), + NULL +}; + +static const struct hwmon_ops ina3221_hwmon_ops = { + .is_visible = ina3221_is_visible, + .read_string = ina3221_read_string, + .read = ina3221_read, + .write = ina3221_write, +}; + +static const struct hwmon_chip_info ina3221_chip_info = { + .ops = &ina3221_hwmon_ops, + .info = ina3221_info, +}; + +/* Extra attribute groups */ +static ssize_t ina3221_shunt_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct sensor_device_attribute *sd_attr = to_sensor_dev_attr(attr); + struct ina3221_data *ina = dev_get_drvdata(dev); + unsigned int channel = sd_attr->index; + struct ina3221_input *input = &ina->inputs[channel]; + + return snprintf(buf, PAGE_SIZE, "%d\n", input->shunt_resistor); +} + +static ssize_t ina3221_shunt_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct sensor_device_attribute *sd_attr = to_sensor_dev_attr(attr); + struct ina3221_data *ina = dev_get_drvdata(dev); + unsigned int channel = sd_attr->index; + struct ina3221_input *input = &ina->inputs[channel]; + int val; + int ret; + + ret = kstrtoint(buf, 0, &val); + if (ret) + return ret; + + val = clamp_val(val, 1, INT_MAX); + + input->shunt_resistor = val; + + /* Update summation_shunt_resistor for summation channel */ + ina->summation_shunt_resistor = ina3221_summation_shunt_resistor(ina); + + return count; +} + +/* shunt resistance */ +static SENSOR_DEVICE_ATTR_RW(shunt1_resistor, ina3221_shunt, INA3221_CHANNEL1); +static SENSOR_DEVICE_ATTR_RW(shunt2_resistor, ina3221_shunt, INA3221_CHANNEL2); +static SENSOR_DEVICE_ATTR_RW(shunt3_resistor, ina3221_shunt, INA3221_CHANNEL3); + +static struct attribute *ina3221_attrs[] = { + &sensor_dev_attr_shunt1_resistor.dev_attr.attr, + &sensor_dev_attr_shunt2_resistor.dev_attr.attr, + &sensor_dev_attr_shunt3_resistor.dev_attr.attr, + NULL, +}; +ATTRIBUTE_GROUPS(ina3221); + +static const struct regmap_range ina3221_yes_ranges[] = { + regmap_reg_range(INA3221_CONFIG, INA3221_BUS3), + regmap_reg_range(INA3221_SHUNT_SUM, INA3221_SHUNT_SUM), + regmap_reg_range(INA3221_MASK_ENABLE, INA3221_MASK_ENABLE), +}; + +static const struct regmap_access_table ina3221_volatile_table = { + .yes_ranges = ina3221_yes_ranges, + .n_yes_ranges = ARRAY_SIZE(ina3221_yes_ranges), +}; + +static const struct regmap_config ina3221_regmap_config = { + .reg_bits = 8, + .val_bits = 16, + + .cache_type = REGCACHE_RBTREE, + .volatile_table = &ina3221_volatile_table, +}; + +static int ina3221_probe_child_from_dt(struct device *dev, + struct device_node *child, + struct ina3221_data *ina) +{ + struct ina3221_input *input; + u32 val; + int ret; + + ret = of_property_read_u32(child, "reg", &val); + if (ret) { + dev_err(dev, "missing reg property of %pOFn\n", child); + return ret; + } else if (val > INA3221_CHANNEL3) { + dev_err(dev, "invalid reg %d of %pOFn\n", val, child); + return ret; + } + + input = &ina->inputs[val]; + + /* Log the disconnected channel input */ + if (!of_device_is_available(child)) { + input->disconnected = true; + return 0; + } + + /* Save the connected input label if available */ + of_property_read_string(child, "label", &input->label); + + /* Overwrite default shunt resistor value optionally */ + if (!of_property_read_u32(child, "shunt-resistor-micro-ohms", &val)) { + if (val < 1 || val > INT_MAX) { + dev_err(dev, "invalid shunt resistor value %u of %pOFn\n", + val, child); + return -EINVAL; + } + input->shunt_resistor = val; + } + + return 0; +} + +static int ina3221_probe_from_dt(struct device *dev, struct ina3221_data *ina) +{ + const struct device_node *np = dev->of_node; + struct device_node *child; + int ret; + + /* Compatible with non-DT platforms */ + if (!np) + return 0; + + ina->single_shot = of_property_read_bool(np, "ti,single-shot"); + + for_each_child_of_node(np, child) { + ret = ina3221_probe_child_from_dt(dev, child, ina); + if (ret) { + of_node_put(child); + return ret; + } + } + + return 0; +} + +static int ina3221_probe(struct i2c_client *client) +{ + struct device *dev = &client->dev; + struct ina3221_data *ina; + struct device *hwmon_dev; + int i, ret; + + ina = devm_kzalloc(dev, sizeof(*ina), GFP_KERNEL); + if (!ina) + return -ENOMEM; + + ina->regmap = devm_regmap_init_i2c(client, &ina3221_regmap_config); + if (IS_ERR(ina->regmap)) { + dev_err(dev, "Unable to allocate register map\n"); + return PTR_ERR(ina->regmap); + } + + for (i = 0; i < F_MAX_FIELDS; i++) { + ina->fields[i] = devm_regmap_field_alloc(dev, + ina->regmap, + ina3221_reg_fields[i]); + if (IS_ERR(ina->fields[i])) { + dev_err(dev, "Unable to allocate regmap fields\n"); + return PTR_ERR(ina->fields[i]); + } + } + + for (i = 0; i < INA3221_NUM_CHANNELS; i++) + ina->inputs[i].shunt_resistor = INA3221_RSHUNT_DEFAULT; + + ret = ina3221_probe_from_dt(dev, ina); + if (ret) { + dev_err(dev, "Unable to probe from device tree\n"); + return ret; + } + + /* The driver will be reset, so use reset value */ + ina->reg_config = INA3221_CONFIG_DEFAULT; + + /* Clear continuous bit to use single-shot mode */ + if (ina->single_shot) + ina->reg_config &= ~INA3221_CONFIG_MODE_CONTINUOUS; + + /* Disable channels if their inputs are disconnected */ + for (i = 0; i < INA3221_NUM_CHANNELS; i++) { + if (ina->inputs[i].disconnected) + ina->reg_config &= ~INA3221_CONFIG_CHx_EN(i); + } + + /* Initialize summation_shunt_resistor for summation channel control */ + ina->summation_shunt_resistor = ina3221_summation_shunt_resistor(ina); + + ina->pm_dev = dev; + mutex_init(&ina->lock); + dev_set_drvdata(dev, ina); + + /* Enable PM runtime -- status is suspended by default */ + pm_runtime_enable(ina->pm_dev); + + /* Initialize (resume) the device */ + for (i = 0; i < INA3221_NUM_CHANNELS; i++) { + if (ina->inputs[i].disconnected) + continue; + /* Match the refcount with number of enabled channels */ + ret = pm_runtime_get_sync(ina->pm_dev); + if (ret < 0) + goto fail; + } + + hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name, ina, + &ina3221_chip_info, + ina3221_groups); + if (IS_ERR(hwmon_dev)) { + dev_err(dev, "Unable to register hwmon device\n"); + ret = PTR_ERR(hwmon_dev); + goto fail; + } + + return 0; + +fail: + pm_runtime_disable(ina->pm_dev); + pm_runtime_set_suspended(ina->pm_dev); + /* pm_runtime_put_noidle() will decrease the PM refcount until 0 */ + for (i = 0; i < INA3221_NUM_CHANNELS; i++) + pm_runtime_put_noidle(ina->pm_dev); + mutex_destroy(&ina->lock); + + return ret; +} + +static int ina3221_remove(struct i2c_client *client) +{ + struct ina3221_data *ina = dev_get_drvdata(&client->dev); + int i; + + pm_runtime_disable(ina->pm_dev); + pm_runtime_set_suspended(ina->pm_dev); + + /* pm_runtime_put_noidle() will decrease the PM refcount until 0 */ + for (i = 0; i < INA3221_NUM_CHANNELS; i++) + pm_runtime_put_noidle(ina->pm_dev); + + mutex_destroy(&ina->lock); + + return 0; +} + +static int __maybe_unused ina3221_suspend(struct device *dev) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int ret; + + /* Save config register value and enable cache-only */ + ret = regmap_read(ina->regmap, INA3221_CONFIG, &ina->reg_config); + if (ret) + return ret; + + /* Set to power-down mode for power saving */ + ret = regmap_update_bits(ina->regmap, INA3221_CONFIG, + INA3221_CONFIG_MODE_MASK, + INA3221_CONFIG_MODE_POWERDOWN); + if (ret) + return ret; + + regcache_cache_only(ina->regmap, true); + regcache_mark_dirty(ina->regmap); + + return 0; +} + +static int __maybe_unused ina3221_resume(struct device *dev) +{ + struct ina3221_data *ina = dev_get_drvdata(dev); + int ret; + + regcache_cache_only(ina->regmap, false); + + /* Software reset the chip */ + ret = regmap_field_write(ina->fields[F_RST], true); + if (ret) { + dev_err(dev, "Unable to reset device\n"); + return ret; + } + + /* Restore cached register values to hardware */ + ret = regcache_sync(ina->regmap); + if (ret) + return ret; + + /* Restore config register value to hardware */ + ret = regmap_write(ina->regmap, INA3221_CONFIG, ina->reg_config); + if (ret) + return ret; + + /* Initialize summation channel control */ + if (ina->summation_shunt_resistor) { + /* + * Take all three channels into summation by default + * Shunt measurements of disconnected channels should + * be 0, so it does not matter for summation. + */ + ret = regmap_update_bits(ina->regmap, INA3221_MASK_ENABLE, + INA3221_MASK_ENABLE_SCC_MASK, + INA3221_MASK_ENABLE_SCC_MASK); + if (ret) { + dev_err(dev, "Unable to control summation channel\n"); + return ret; + } + } + + return 0; +} + +static const struct dev_pm_ops ina3221_pm = { + SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, + pm_runtime_force_resume) + SET_RUNTIME_PM_OPS(ina3221_suspend, ina3221_resume, NULL) +}; + +static const struct of_device_id ina3221_of_match_table[] = { + { .compatible = "ti,wb_ina3221", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, ina3221_of_match_table); + +static const struct i2c_device_id ina3221_ids[] = { + { "wb_ina3221", 0 }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(i2c, ina3221_ids); + +static struct i2c_driver ina3221_i2c_driver = { + .probe_new = ina3221_probe, + .remove = ina3221_remove, + .driver = { + .name = INA3221_DRIVER_NAME, + .of_match_table = ina3221_of_match_table, + .pm = &ina3221_pm, + }, + .id_table = ina3221_ids, +}; +module_i2c_driver(ina3221_i2c_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Texas Instruments INA3221 HWMon Driver"); +MODULE_LICENSE("GPL v2"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c new file mode 100644 index 000000000000..2797a831bd66 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c @@ -0,0 +1,572 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Hardware monitoring driver for Renesas Digital Multiphase Voltage Regulators + * + * Copyright (c) 2017 Google Inc + * Copyright (c) 2020 Renesas Electronics America + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_pmbus.h" + +#define ISL68137_VOUT_AVS (0x30) +#define RAA_DMPVR2_READ_VMON (0xc8) +#define WRITE_PROTECT_CLOSE (0x00) +#define WRITE_PROTECT_OPEN (0x40) + +static int g_wb_isl68137_debug = 0; +static int g_wb_isl68137_error = 0; + +module_param(g_wb_isl68137_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_isl68137_error, int, S_IRUGO | S_IWUSR); + +#define WB_ISL68137_VERBOSE(fmt, args...) do { \ + if (g_wb_isl68137_debug) { \ + printk(KERN_INFO "[WB_ISL68137][VER][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_ISL68137_ERROR(fmt, args...) do { \ + if (g_wb_isl68137_error) { \ + printk(KERN_ERR "[WB_ISL68137][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +enum chips { + isl68137, + isl68220, + isl68221, + isl68222, + isl68223, + isl68224, + isl68225, + isl68226, + isl68227, + isl68229, + isl68233, + isl68239, + isl69222, + isl69223, + isl69224, + isl69225, + isl69227, + isl69228, + isl69234, + isl69236, + isl69239, + isl69242, + isl69243, + isl69247, + isl69248, + isl69254, + isl69255, + isl69256, + isl69259, + isl69260, + isl69268, + isl69269, + isl69298, + raa228000, + raa228004, + raa228006, + raa228228, + raa229001, + raa229004, +}; + +enum variants { + raa_dmpvr1_2rail, + raa_dmpvr2_1rail, + raa_dmpvr2_2rail, + raa_dmpvr2_2rail_nontc, + raa_dmpvr2_3rail, + raa_dmpvr2_hv, +}; + +static const struct i2c_device_id raa_dmpvr_id[]; + +static ssize_t isl68137_avs_enable_show_page(struct i2c_client *client, + int page, + char *buf) +{ + int val = wb_pmbus_read_byte_data(client, page, PMBUS_OPERATION); + + return sprintf(buf, "%d\n", + (val & ISL68137_VOUT_AVS) == ISL68137_VOUT_AVS ? 1 : 0); +} + +static ssize_t isl68137_avs_enable_store_page(struct i2c_client *client, + int page, + const char *buf, size_t count) +{ + int rc, op_val; + bool result; + + rc = kstrtobool(buf, &result); + if (rc) + return rc; + + op_val = result ? ISL68137_VOUT_AVS : 0; + + /* + * Writes to VOUT setpoint over AVSBus will persist after the VRM is + * switched to PMBus control. Switching back to AVSBus control + * restores this persisted setpoint rather than re-initializing to + * PMBus VOUT_COMMAND. Writing VOUT_COMMAND first over PMBus before + * enabling AVS control is the workaround. + */ + if (op_val == ISL68137_VOUT_AVS) { + rc = wb_pmbus_read_word_data(client, page, 0xff, + PMBUS_VOUT_COMMAND); + if (rc < 0) + return rc; + + rc = wb_pmbus_write_word_data(client, page, PMBUS_VOUT_COMMAND, + rc); + if (rc < 0) + return rc; + } + + rc = wb_pmbus_update_byte_data(client, page, PMBUS_OPERATION, + ISL68137_VOUT_AVS, op_val); + + return (rc < 0) ? rc : count; +} + +static ssize_t isl68137_avs_enable_show(struct device *dev, + struct device_attribute *devattr, + char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + + return isl68137_avs_enable_show_page(client, attr->index, buf); +} + +static ssize_t isl68137_avs_enable_store(struct device *dev, + struct device_attribute *devattr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + + return isl68137_avs_enable_store_page(client, attr->index, buf, count); +} + +static ssize_t isl68137_avs_vout_show(struct device *dev, struct device_attribute *devattr, + char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_cmd, vout; + + mutex_lock(&data->update_lock); + vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (vout_cmd < 0) { + WB_ISL68137_ERROR("%d-%04x: read page%d vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, ret); + mutex_unlock(&data->update_lock); + return vout_cmd; + } + vout = vout_cmd * 1000; + WB_ISL68137_VERBOSE("%d-%04x: page%d, vout: %d, vout_cmd: 0x%x\n", client->adapter->nr, + client->addr, attr->index, vout, vout_cmd); + mutex_unlock(&data->update_lock); + return snprintf(buf, PAGE_SIZE, "%d\n", vout); +} + +static ssize_t isl68137_avs_vout_store(struct device *dev, struct device_attribute *devattr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int vout, vout_max, vout_min; + int ret, vout_cmd, vout_cmd_set; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_ISL68137_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout); + if (ret) { + WB_ISL68137_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + vout_max = data->vout_max[attr->index]; + vout_min = data->vout_min[attr->index]; + if ((vout > vout_max) || (vout < vout_min)) { + WB_ISL68137_ERROR("%d-%04x: vout value: %d, out of range [%d, %d] \n", client->adapter->nr, + client->addr, vout, vout_min, vout_max); + return -EINVAL; + } + + /* calc VOUT_COMMAND set value */ + vout_cmd_set = vout / 1000; + if (vout_cmd_set > 0xffff) { + WB_ISL68137_ERROR("%d-%04x: invalid value, vout %d, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, vout, vout_cmd_set); + return -EINVAL; + } + + mutex_lock(&data->update_lock); + + /* close write protect */ + ret = wb_pmbus_write_byte_data(client, attr->index, PMBUS_WRITE_PROTECT, WRITE_PROTECT_CLOSE); + if (ret < 0) { + WB_ISL68137_ERROR("%d-%04x: close page%d write protect failed, ret: %d\n", client->adapter->nr, + client->addr, attr->index, ret); + mutex_unlock(&data->update_lock); + return ret; + } + + /* set VOUT_COMMAND */ + ret = wb_pmbus_write_word_data(client, attr->index, PMBUS_VOUT_COMMAND, vout_cmd_set); + if (ret < 0) { + WB_ISL68137_ERROR("%d-%04x: set page%d vout cmd reg: 0x%x, value: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd_set, ret); + goto error; + } + + /* read back VOUT_COMMAND */ + vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (vout_cmd < 0) { + ret = vout_cmd; + WB_ISL68137_ERROR("%d-%04x: read page%d vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, ret); + goto error; + } + + /* compare vout_cmd and vout_cmd_set */ + if (vout_cmd != vout_cmd_set) { + ret = -EIO; + WB_ISL68137_ERROR("%d-%04x: vout cmd value check error, vout cmd read: 0x%x, vout cmd set: 0x%x\n", + client->adapter->nr, client->addr, vout_cmd, vout_cmd_set); + goto error; + } + + /* open write protect */ + wb_pmbus_write_byte_data(client, attr->index, PMBUS_WRITE_PROTECT, WRITE_PROTECT_OPEN); + mutex_unlock(&data->update_lock); + WB_ISL68137_VERBOSE("%d-%04x: set page%d vout cmd success, vout %d, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, attr->index, vout, vout_cmd_set); + return count; +error: + wb_pmbus_write_byte_data(client, attr->index, PMBUS_WRITE_PROTECT, WRITE_PROTECT_OPEN); + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t isl68137_avs_vout_max_store(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_threshold; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_ISL68137_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout_threshold); + if (ret) { + WB_ISL68137_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + WB_ISL68137_VERBOSE("%d-%04x: vout%d max threshold: %d", client->adapter->nr, client->addr, + attr->index, vout_threshold); + + data->vout_max[attr->index] = vout_threshold; + return count; +} + +static ssize_t isl68137_avs_vout_max_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_ISL68137_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + return snprintf(buf, PAGE_SIZE, "%d\n", data->vout_max[attr->index]); +} + +static ssize_t isl68137_avs_vout_min_store(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_threshold; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_ISL68137_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout_threshold); + if (ret) { + WB_ISL68137_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + WB_ISL68137_VERBOSE("%d-%04x: vout%d min threshold: %d", client->adapter->nr, client->addr, + attr->index, vout_threshold); + + data->vout_min[attr->index] = vout_threshold; + return count; +} + +static ssize_t isl68137_avs_vout_min_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_ISL68137_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + return snprintf(buf, PAGE_SIZE, "%d\n", data->vout_min[attr->index]); +} + +static SENSOR_DEVICE_ATTR_RW(avs0_enable, isl68137_avs_enable, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_enable, isl68137_avs_enable, 1); + +static SENSOR_DEVICE_ATTR_RW(avs0_vout, isl68137_avs_vout, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_vout, isl68137_avs_vout, 1); +static SENSOR_DEVICE_ATTR_RW(avs0_vout_max, isl68137_avs_vout_max, 0); +static SENSOR_DEVICE_ATTR_RW(avs0_vout_min, isl68137_avs_vout_min, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_vout_max, isl68137_avs_vout_max, 1); +static SENSOR_DEVICE_ATTR_RW(avs1_vout_min, isl68137_avs_vout_min, 1); + +static struct attribute *enable_attrs[] = { + &sensor_dev_attr_avs0_enable.dev_attr.attr, + &sensor_dev_attr_avs1_enable.dev_attr.attr, + NULL, +}; + +static struct attribute *avs_ctrl_attrs[] = { + &sensor_dev_attr_avs0_vout.dev_attr.attr, + &sensor_dev_attr_avs1_vout.dev_attr.attr, + &sensor_dev_attr_avs0_vout_max.dev_attr.attr, + &sensor_dev_attr_avs0_vout_min.dev_attr.attr, + &sensor_dev_attr_avs1_vout_max.dev_attr.attr, + &sensor_dev_attr_avs1_vout_min.dev_attr.attr, + NULL, +}; + +static const struct attribute_group enable_group = { + .attrs = enable_attrs, +}; + +static const struct attribute_group avs_ctrl_group = { + .attrs = avs_ctrl_attrs, +}; + +static const struct attribute_group *isl68137_attribute_groups[] = { + &enable_group, + &avs_ctrl_group, + NULL, +}; + +static int raa_dmpvr2_read_word_data(struct i2c_client *client, int page, + int phase, int reg) +{ + int ret; + + switch (reg) { + case PMBUS_VIRT_READ_VMON: + ret = wb_pmbus_read_word_data(client, page, phase, + RAA_DMPVR2_READ_VMON); + break; + default: + ret = -ENODATA; + break; + } + + return ret; +} + +static struct pmbus_driver_info raa_dmpvr_info = { + .pages = 3, + .format[PSC_VOLTAGE_IN] = direct, + .format[PSC_VOLTAGE_OUT] = direct, + .format[PSC_CURRENT_IN] = direct, + .format[PSC_CURRENT_OUT] = direct, + .format[PSC_POWER] = direct, + .format[PSC_TEMPERATURE] = direct, + .m[PSC_VOLTAGE_IN] = 1, + .b[PSC_VOLTAGE_IN] = 0, + .R[PSC_VOLTAGE_IN] = 2, + .m[PSC_VOLTAGE_OUT] = 1, + .b[PSC_VOLTAGE_OUT] = 0, + .R[PSC_VOLTAGE_OUT] = 3, + .m[PSC_CURRENT_IN] = 1, + .b[PSC_CURRENT_IN] = 0, + .R[PSC_CURRENT_IN] = 2, + .m[PSC_CURRENT_OUT] = 1, + .b[PSC_CURRENT_OUT] = 0, + .R[PSC_CURRENT_OUT] = 1, + .m[PSC_POWER] = 1, + .b[PSC_POWER] = 0, + .R[PSC_POWER] = 0, + .m[PSC_TEMPERATURE] = 1, + .b[PSC_TEMPERATURE] = 0, + .R[PSC_TEMPERATURE] = 0, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_PIN + | PMBUS_HAVE_STATUS_INPUT | PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP2 + | PMBUS_HAVE_TEMP3 | PMBUS_HAVE_STATUS_TEMP + | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT + | PMBUS_HAVE_VMON, + .func[1] = PMBUS_HAVE_IIN | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT + | PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP3 | PMBUS_HAVE_STATUS_TEMP + | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_IOUT + | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT, + .func[2] = PMBUS_HAVE_IIN | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT + | PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP3 | PMBUS_HAVE_STATUS_TEMP + | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_IOUT + | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT, +}; + +static int isl68137_probe(struct i2c_client *client) +{ + struct pmbus_driver_info *info; + + info = devm_kzalloc(&client->dev, sizeof(*info), GFP_KERNEL); + if (!info) + return -ENOMEM; + memcpy(info, &raa_dmpvr_info, sizeof(*info)); + + switch (i2c_match_id(raa_dmpvr_id, client)->driver_data) { + case raa_dmpvr1_2rail: + info->pages = 2; + info->R[PSC_VOLTAGE_IN] = 3; + info->func[0] &= ~PMBUS_HAVE_VMON; + info->func[1] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT + | PMBUS_HAVE_POUT; + info->groups = isl68137_attribute_groups; + break; + case raa_dmpvr2_1rail: + info->pages = 1; + info->read_word_data = raa_dmpvr2_read_word_data; + break; + case raa_dmpvr2_2rail_nontc: + info->func[0] &= ~PMBUS_HAVE_TEMP3; + info->func[1] &= ~PMBUS_HAVE_TEMP3; + fallthrough; + case raa_dmpvr2_2rail: + info->pages = 2; + info->read_word_data = raa_dmpvr2_read_word_data; + break; + case raa_dmpvr2_3rail: + info->read_word_data = raa_dmpvr2_read_word_data; + break; + case raa_dmpvr2_hv: + info->pages = 1; + info->R[PSC_VOLTAGE_IN] = 1; + info->m[PSC_VOLTAGE_OUT] = 2; + info->R[PSC_VOLTAGE_OUT] = 2; + info->m[PSC_CURRENT_IN] = 2; + info->m[PSC_POWER] = 2; + info->R[PSC_POWER] = -1; + info->read_word_data = raa_dmpvr2_read_word_data; + break; + default: + return -ENODEV; + } + + return wb_pmbus_do_probe(client, info); +} + +static const struct i2c_device_id raa_dmpvr_id[] = { + {"wb_isl68127", raa_dmpvr1_2rail}, + {"wb_isl68137", raa_dmpvr1_2rail}, + {"wb_isl68220", raa_dmpvr2_2rail}, + {"wb_isl68221", raa_dmpvr2_3rail}, + {"wb_isl68222", raa_dmpvr2_2rail}, + {"wb_isl68223", raa_dmpvr2_2rail}, + {"wb_isl68224", raa_dmpvr2_3rail}, + {"wb_isl68225", raa_dmpvr2_2rail}, + {"wb_isl68226", raa_dmpvr2_3rail}, + {"wb_isl68227", raa_dmpvr2_1rail}, + {"wb_isl68229", raa_dmpvr2_3rail}, + {"wb_isl68233", raa_dmpvr2_2rail}, + {"wb_isl68239", raa_dmpvr2_3rail}, + + {"wb_isl69222", raa_dmpvr2_2rail}, + {"wb_isl69223", raa_dmpvr2_3rail}, + {"wb_isl69224", raa_dmpvr2_2rail}, + {"wb_isl69225", raa_dmpvr2_2rail}, + {"wb_isl69227", raa_dmpvr2_3rail}, + {"wb_isl69228", raa_dmpvr2_3rail}, + {"wb_isl69234", raa_dmpvr2_2rail}, + {"wb_isl69236", raa_dmpvr2_2rail}, + {"wb_isl69239", raa_dmpvr2_3rail}, + {"wb_isl69242", raa_dmpvr2_2rail}, + {"wb_isl69243", raa_dmpvr2_1rail}, + {"wb_isl69247", raa_dmpvr2_2rail}, + {"wb_isl69248", raa_dmpvr2_2rail}, + {"wb_isl69254", raa_dmpvr2_2rail}, + {"wb_isl69255", raa_dmpvr2_2rail}, + {"wb_isl69256", raa_dmpvr2_2rail}, + {"wb_isl69259", raa_dmpvr2_2rail}, + {"wb_isl69260", raa_dmpvr2_2rail}, + {"wb_isl69268", raa_dmpvr2_2rail}, + {"wb_isl69269", raa_dmpvr2_3rail}, + {"wb_isl69298", raa_dmpvr2_2rail}, + + {"wb_raa228000", raa_dmpvr2_hv}, + {"wb_raa228004", raa_dmpvr2_hv}, + {"wb_raa228006", raa_dmpvr2_hv}, + {"wb_raa228228", raa_dmpvr2_2rail_nontc}, + {"wb_raa229001", raa_dmpvr2_2rail}, + {"wb_raa229004", raa_dmpvr2_2rail}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, raa_dmpvr_id); + +/* This is the driver that will be inserted */ +static struct i2c_driver isl68137_driver = { + .driver = { + .name = "wb_isl68137", + }, + .probe_new = isl68137_probe, + .remove = wb_pmbus_do_remove, + .id_table = raa_dmpvr_id, +}; + +module_i2c_driver(isl68137_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PMBus driver for Renesas digital multiphase voltage regulators"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c new file mode 100644 index 000000000000..b8291c553688 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c @@ -0,0 +1,987 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * lm75.c - Part of lm_sensors, Linux kernel modules for hardware + * monitoring + * Copyright (c) 1998, 1999 Frodo Looijaard + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "wb_lm75.h" + +/* + * This driver handles the LM75 and compatible digital temperature sensors. + */ + +enum lm75_type { /* keep sorted in alphabetical order */ + adt75, + ds1775, + ds75, + ds7505, + g751, + lm75, + lm75a, + lm75b, + max6625, + max6626, + max31725, + mcp980x, + pct2075, + stds75, + stlm75, + tcn75, + tmp100, + tmp101, + tmp105, + tmp112, + tmp175, + tmp275, + tmp75, + tmp75b, + tmp75c, +}; + +/** + * struct lm75_params - lm75 configuration parameters. + * @set_mask: Bits to set in configuration register when configuring + * the chip. + * @clr_mask: Bits to clear in configuration register when configuring + * the chip. + * @default_resolution: Default number of bits to represent the temperature + * value. + * @resolution_limits: Limit register resolution. Optional. Should be set if + * the resolution of limit registers does not match the + * resolution of the temperature register. + * @resolutions: List of resolutions associated with sample times. + * Optional. Should be set if num_sample_times is larger + * than 1, and if the resolution changes with sample times. + * If set, number of entries must match num_sample_times. + * @default_sample_time:Sample time to be set by default. + * @num_sample_times: Number of possible sample times to be set. Optional. + * Should be set if the number of sample times is larger + * than one. + * @sample_times: All the possible sample times to be set. Mandatory if + * num_sample_times is larger than 1. If set, number of + * entries must match num_sample_times. + */ + +struct lm75_params { + u8 set_mask; + u8 clr_mask; + u8 default_resolution; + u8 resolution_limits; + const u8 *resolutions; + unsigned int default_sample_time; + u8 num_sample_times; + const unsigned int *sample_times; +}; +#if 0 +/* Addresses scanned */ +static const unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4b, 0x4c, + 0x4d, 0x4e, 0x4f, I2C_CLIENT_END }; +#endif +/* The LM75 registers */ +#define LM75_REG_TEMP 0x00 +#define LM75_REG_CONF 0x01 +#define LM75_REG_HYST 0x02 +#define LM75_REG_MAX 0x03 +#define PCT2075_REG_IDLE 0x04 +#define LM75_TEMP_INVALID_RETRY_TIMES (3) + +/* Each client has this additional data */ +struct lm75_data { + struct i2c_client *client; + struct regmap *regmap; + struct regulator *vs; + u8 orig_conf; + u8 current_conf; + u8 resolution; /* In bits, 9 to 16 */ + unsigned int sample_time; /* In ms */ + enum lm75_type kind; + const struct lm75_params *params; +}; + +/*-----------------------------------------------------------------------*/ + +static const u8 lm75_sample_set_masks[] = { 0 << 5, 1 << 5, 2 << 5, 3 << 5 }; + +#define LM75_SAMPLE_CLEAR_MASK (3 << 5) + +/* The structure below stores the configuration values of the supported devices. + * In case of being supported multiple configurations, the default one must + * always be the first element of the array + */ +static const struct lm75_params device_params[] = { + [adt75] = { + .clr_mask = 1 << 5, /* not one-shot mode */ + .default_resolution = 12, + .default_sample_time = MSEC_PER_SEC / 10, + }, + [ds1775] = { + .clr_mask = 3 << 5, + .set_mask = 2 << 5, /* 11-bit mode */ + .default_resolution = 11, + .default_sample_time = 500, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 125, 250, 500, 1000 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [ds75] = { + .clr_mask = 3 << 5, + .set_mask = 2 << 5, /* 11-bit mode */ + .default_resolution = 11, + .default_sample_time = 600, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 150, 300, 600, 1200 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [stds75] = { + .clr_mask = 3 << 5, + .set_mask = 2 << 5, /* 11-bit mode */ + .default_resolution = 11, + .default_sample_time = 600, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 150, 300, 600, 1200 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [stlm75] = { + .default_resolution = 9, + .default_sample_time = MSEC_PER_SEC / 6, + }, + [ds7505] = { + .set_mask = 3 << 5, /* 12-bit mode*/ + .default_resolution = 12, + .default_sample_time = 200, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 25, 50, 100, 200 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [g751] = { + .default_resolution = 9, + .default_sample_time = MSEC_PER_SEC / 10, + }, + [lm75] = { + .default_resolution = 9, + .default_sample_time = MSEC_PER_SEC / 10, + }, + [lm75a] = { + .default_resolution = 9, + .default_sample_time = MSEC_PER_SEC / 10, + }, + [lm75b] = { + .default_resolution = 11, + .default_sample_time = MSEC_PER_SEC / 10, + }, + [max6625] = { + .default_resolution = 9, + .default_sample_time = MSEC_PER_SEC / 7, + }, + [max6626] = { + .default_resolution = 12, + .default_sample_time = MSEC_PER_SEC / 7, + .resolution_limits = 9, + }, + [max31725] = { + .default_resolution = 16, + .default_sample_time = MSEC_PER_SEC / 20, + }, + [tcn75] = { + .default_resolution = 9, + .default_sample_time = MSEC_PER_SEC / 18, + }, + [pct2075] = { + .default_resolution = 11, + .default_sample_time = MSEC_PER_SEC / 10, + .num_sample_times = 31, + .sample_times = (unsigned int []){ 100, 200, 300, 400, 500, 600, + 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, + 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, + 2800, 2900, 3000, 3100 }, + }, + [mcp980x] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode */ + .default_resolution = 12, + .resolution_limits = 9, + .default_sample_time = 240, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 30, 60, 120, 240 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp100] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode */ + .default_resolution = 12, + .default_sample_time = 320, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 40, 80, 160, 320 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp101] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode */ + .default_resolution = 12, + .default_sample_time = 320, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 40, 80, 160, 320 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp105] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode*/ + .default_resolution = 12, + .default_sample_time = 220, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 28, 55, 110, 220 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp112] = { + .set_mask = 3 << 5, /* 8 samples / second */ + .clr_mask = 1 << 7, /* no one-shot mode*/ + .default_resolution = 12, + .default_sample_time = 125, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 125, 250, 1000, 4000 }, + }, + [tmp175] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode*/ + .default_resolution = 12, + .default_sample_time = 220, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 28, 55, 110, 220 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp275] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode*/ + .default_resolution = 12, + .default_sample_time = 220, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 28, 55, 110, 220 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp75] = { + .set_mask = 3 << 5, /* 12-bit mode */ + .clr_mask = 1 << 7, /* not one-shot mode*/ + .default_resolution = 12, + .default_sample_time = 220, + .num_sample_times = 4, + .sample_times = (unsigned int []){ 28, 55, 110, 220 }, + .resolutions = (u8 []) {9, 10, 11, 12 }, + }, + [tmp75b] = { /* not one-shot mode, Conversion rate 37Hz */ + .clr_mask = 1 << 7 | 3 << 5, + .default_resolution = 12, + .default_sample_time = MSEC_PER_SEC / 37, + .sample_times = (unsigned int []){ MSEC_PER_SEC / 37, + MSEC_PER_SEC / 18, + MSEC_PER_SEC / 9, MSEC_PER_SEC / 4 }, + .num_sample_times = 4, + }, + [tmp75c] = { + .clr_mask = 1 << 5, /*not one-shot mode*/ + .default_resolution = 12, + .default_sample_time = MSEC_PER_SEC / 12, + } +}; + +/* input temp threshold check */ +typedef struct lm75_temp_threshold_s { + int chip_type; + int temp_max; + int temp_min; +} lm75_temp_threshold_t; + +static lm75_temp_threshold_t g_lm75_temp_threshold_info[] = { + { + .chip_type = lm75, + .temp_max = 125000, + .temp_min = -55000, + }, +}; + +/*-----------------------------------------------------------------------*/ +static int lm75_input_temp_check(struct lm75_data *data, int input_val) +{ + int i, size; + + size = ARRAY_SIZE(g_lm75_temp_threshold_info); + + for (i = 0; i < size; i++) { + if (g_lm75_temp_threshold_info[i].chip_type == data->kind) { + if ((input_val > g_lm75_temp_threshold_info[i].temp_max) + || (input_val < g_lm75_temp_threshold_info[i].temp_min)) { + dev_dbg(&data->client->dev, "input temp: %d not in range[%d, %d]\n", + input_val, g_lm75_temp_threshold_info[i].temp_min, + g_lm75_temp_threshold_info[i].temp_max); + return -EINVAL; + } + dev_dbg(&data->client->dev, "input temp: %d in range[%d, %d]", input_val, + g_lm75_temp_threshold_info[i].temp_min, g_lm75_temp_threshold_info[i].temp_max); + return 0; + } + } + return 0; +} + +static inline long lm75_reg_to_mc(s16 temp, u8 resolution) +{ + return ((temp >> (16 - resolution)) * 1000) >> (resolution - 8); +} + +static int lm75_write_config(struct lm75_data *data, u8 set_mask, + u8 clr_mask) +{ + u8 value; + + clr_mask |= LM75_SHUTDOWN; + value = data->current_conf & ~clr_mask; + value |= set_mask; + + if (data->current_conf != value) { + s32 err; + + err = i2c_smbus_write_byte_data(data->client, LM75_REG_CONF, + value); + if (err) + return err; + data->current_conf = value; + } + return 0; +} + +static int lm75_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel, + long *val) +{ + struct lm75_data *data = dev_get_drvdata(dev); + unsigned int regval; + int err, reg, i, ret; + + switch (type) { + case hwmon_chip: + switch (attr) { + case hwmon_chip_update_interval: + *val = data->sample_time; + break; + default: + return -EINVAL; + } + break; + case hwmon_temp: + switch (attr) { + case hwmon_temp_input: + reg = LM75_REG_TEMP; + break; + case hwmon_temp_max: + reg = LM75_REG_MAX; + break; + case hwmon_temp_max_hyst: + reg = LM75_REG_HYST; + break; + default: + return -EINVAL; + } + for (i = 0; i < LM75_TEMP_INVALID_RETRY_TIMES; i++) { + err = regmap_read(data->regmap, reg, ®val); + if (err < 0) { + return err; + } + *val = lm75_reg_to_mc(regval, data->resolution); + if (attr != LM75_REG_TEMP) { + return 0; + } + /* do input_temp_check */ + ret = lm75_input_temp_check(data, *val); + if (ret == 0) { /* input temp check ok */ + return 0; + } + if ((i + 1) < LM75_TEMP_INVALID_RETRY_TIMES) { + msleep(data->sample_time); + } + } + dev_info(&data->client->dev, "temp_input value: %ld invalid\n", *val); + return -EINVAL; + default: + return -EINVAL; + } + return 0; +} + +static int lm75_write_temp(struct device *dev, u32 attr, long temp) +{ + struct lm75_data *data = dev_get_drvdata(dev); + u8 resolution; + int reg; + + switch (attr) { + case hwmon_temp_max: + reg = LM75_REG_MAX; + break; + case hwmon_temp_max_hyst: + reg = LM75_REG_HYST; + break; + default: + return -EINVAL; + } + + /* + * Resolution of limit registers is assumed to be the same as the + * temperature input register resolution unless given explicitly. + */ + if (data->params->resolution_limits) + resolution = data->params->resolution_limits; + else + resolution = data->resolution; + + temp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); + temp = DIV_ROUND_CLOSEST(temp << (resolution - 8), + 1000) << (16 - resolution); + + return regmap_write(data->regmap, reg, (u16)temp); +} + +static int lm75_update_interval(struct device *dev, long val) +{ + struct lm75_data *data = dev_get_drvdata(dev); + unsigned int reg; + u8 index; + s32 err; + + index = find_closest(val, data->params->sample_times, + (int)data->params->num_sample_times); + + switch (data->kind) { + default: + err = lm75_write_config(data, lm75_sample_set_masks[index], + LM75_SAMPLE_CLEAR_MASK); + if (err) + return err; + + data->sample_time = data->params->sample_times[index]; + if (data->params->resolutions) + data->resolution = data->params->resolutions[index]; + break; + case tmp112: + err = regmap_read(data->regmap, LM75_REG_CONF, ®); + if (err < 0) + return err; + reg &= ~0x00c0; + reg |= (3 - index) << 6; + err = regmap_write(data->regmap, LM75_REG_CONF, reg); + if (err < 0) + return err; + data->sample_time = data->params->sample_times[index]; + break; + case pct2075: + err = i2c_smbus_write_byte_data(data->client, PCT2075_REG_IDLE, + index + 1); + if (err) + return err; + data->sample_time = data->params->sample_times[index]; + break; + } + return 0; +} + +static int lm75_write_chip(struct device *dev, u32 attr, long val) +{ + switch (attr) { + case hwmon_chip_update_interval: + return lm75_update_interval(dev, val); + default: + return -EINVAL; + } + return 0; +} + +static int lm75_write(struct device *dev, enum hwmon_sensor_types type, + u32 attr, int channel, long val) +{ + switch (type) { + case hwmon_chip: + return lm75_write_chip(dev, attr, val); + case hwmon_temp: + return lm75_write_temp(dev, attr, val); + default: + return -EINVAL; + } + return 0; +} + +static umode_t lm75_is_visible(const void *data, enum hwmon_sensor_types type, + u32 attr, int channel) +{ + const struct lm75_data *config_data = data; + + switch (type) { + case hwmon_chip: + switch (attr) { + case hwmon_chip_update_interval: + if (config_data->params->num_sample_times > 1) + return 0644; + return 0444; + } + break; + case hwmon_temp: + switch (attr) { + case hwmon_temp_input: + return 0444; + case hwmon_temp_max: + case hwmon_temp_max_hyst: + return 0644; + } + break; + default: + break; + } + return 0; +} + +static const struct hwmon_channel_info *lm75_info[] = { + HWMON_CHANNEL_INFO(chip, + HWMON_C_REGISTER_TZ | HWMON_C_UPDATE_INTERVAL), + HWMON_CHANNEL_INFO(temp, + HWMON_T_INPUT | HWMON_T_MAX | HWMON_T_MAX_HYST), + NULL +}; + +static const struct hwmon_ops lm75_hwmon_ops = { + .is_visible = lm75_is_visible, + .read = lm75_read, + .write = lm75_write, +}; + +static const struct hwmon_chip_info lm75_chip_info = { + .ops = &lm75_hwmon_ops, + .info = lm75_info, +}; + +static bool lm75_is_writeable_reg(struct device *dev, unsigned int reg) +{ + return reg != LM75_REG_TEMP; +} + +static bool lm75_is_volatile_reg(struct device *dev, unsigned int reg) +{ + return reg == LM75_REG_TEMP || reg == LM75_REG_CONF; +} + +static const struct regmap_config lm75_regmap_config = { + .reg_bits = 8, + .val_bits = 16, + .max_register = PCT2075_REG_IDLE, + .writeable_reg = lm75_is_writeable_reg, + .volatile_reg = lm75_is_volatile_reg, + .val_format_endian = REGMAP_ENDIAN_BIG, + .cache_type = REGCACHE_RBTREE, + .use_single_read = true, + .use_single_write = true, +}; + +static void lm75_disable_regulator(void *data) +{ + struct lm75_data *lm75 = data; + + regulator_disable(lm75->vs); +} + +static void lm75_remove(void *data) +{ + struct lm75_data *lm75 = data; + struct i2c_client *client = lm75->client; + + i2c_smbus_write_byte_data(client, LM75_REG_CONF, lm75->orig_conf); +} + +static const struct i2c_device_id lm75_ids[]; + +static int lm75_probe(struct i2c_client *client) +{ + struct device *dev = &client->dev; + struct device *hwmon_dev; + struct lm75_data *data; + int status, err; + enum lm75_type kind; + + if (client->dev.of_node) + kind = (enum lm75_type)of_device_get_match_data(&client->dev); + else + kind = i2c_match_id(lm75_ids, client)->driver_data; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA)) + return -EIO; + + data = devm_kzalloc(dev, sizeof(struct lm75_data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->client = client; + data->kind = kind; + + data->vs = devm_regulator_get(dev, "vs"); + if (IS_ERR(data->vs)) + return PTR_ERR(data->vs); + + data->regmap = devm_regmap_init_i2c(client, &lm75_regmap_config); + if (IS_ERR(data->regmap)) + return PTR_ERR(data->regmap); + + /* Set to LM75 resolution (9 bits, 1/2 degree C) and range. + * Then tweak to be more precise when appropriate. + */ + + data->params = &device_params[data->kind]; + + /* Save default sample time and resolution*/ + data->sample_time = data->params->default_sample_time; + data->resolution = data->params->default_resolution; + + /* Enable the power */ + err = regulator_enable(data->vs); + if (err) { + dev_err(dev, "failed to enable regulator: %d\n", err); + return err; + } + + err = devm_add_action_or_reset(dev, lm75_disable_regulator, data); + if (err) + return err; + + /* Cache original configuration */ + status = i2c_smbus_read_byte_data(client, LM75_REG_CONF); + if (status < 0) { + dev_dbg(dev, "Can't read config? %d\n", status); + return status; + } + data->orig_conf = status; + data->current_conf = status; + + err = lm75_write_config(data, data->params->set_mask, + data->params->clr_mask); + if (err) + return err; + + err = devm_add_action_or_reset(dev, lm75_remove, data); + if (err) + return err; + + hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name, + data, &lm75_chip_info, + NULL); + if (IS_ERR(hwmon_dev)) + return PTR_ERR(hwmon_dev); + + dev_info(dev, "%s: sensor '%s'\n", dev_name(hwmon_dev), client->name); + + return 0; +} + +static const struct i2c_device_id lm75_ids[] = { + { "wb_adt75", adt75, }, + { "wb_ds1775", ds1775, }, + { "wb_ds75", ds75, }, + { "wb_ds7505", ds7505, }, + { "wb_g751", g751, }, + { "wb_lm75", lm75, }, + { "wb_lm75a", lm75a, }, + { "wb_lm75b", lm75b, }, + { "wb_max6625", max6625, }, + { "wb_max6626", max6626, }, + { "wb_max31725", max31725, }, + { "wb_max31726", max31725, }, + { "wb_mcp980x", mcp980x, }, + { "wb_pct2075", pct2075, }, + { "wb_stds75", stds75, }, + { "wb_stlm75", stlm75, }, + { "wb_tcn75", tcn75, }, + { "wb_tmp100", tmp100, }, + { "wb_tmp101", tmp101, }, + { "wb_tmp105", tmp105, }, + { "wb_tmp112", tmp112, }, + { "wb_tmp175", tmp175, }, + { "wb_tmp275", tmp275, }, + { "wb_tmp75", tmp75, }, + { "wb_tmp75b", tmp75b, }, + { "wb_tmp75c", tmp75c, }, + { /* LIST END */ } +}; +MODULE_DEVICE_TABLE(i2c, lm75_ids); + +static const struct of_device_id __maybe_unused lm75_of_match[] = { + { + .compatible = "adi,adt75", + .data = (void *)adt75 + }, + { + .compatible = "dallas,ds1775", + .data = (void *)ds1775 + }, + { + .compatible = "dallas,ds75", + .data = (void *)ds75 + }, + { + .compatible = "dallas,ds7505", + .data = (void *)ds7505 + }, + { + .compatible = "gmt,g751", + .data = (void *)g751 + }, + { + .compatible = "national,lm75", + .data = (void *)lm75 + }, + { + .compatible = "national,lm75a", + .data = (void *)lm75a + }, + { + .compatible = "national,lm75b", + .data = (void *)lm75b + }, + { + .compatible = "maxim,max6625", + .data = (void *)max6625 + }, + { + .compatible = "maxim,max6626", + .data = (void *)max6626 + }, + { + .compatible = "maxim,max31725", + .data = (void *)max31725 + }, + { + .compatible = "maxim,max31726", + .data = (void *)max31725 + }, + { + .compatible = "maxim,mcp980x", + .data = (void *)mcp980x + }, + { + .compatible = "nxp,pct2075", + .data = (void *)pct2075 + }, + { + .compatible = "st,stds75", + .data = (void *)stds75 + }, + { + .compatible = "st,stlm75", + .data = (void *)stlm75 + }, + { + .compatible = "microchip,tcn75", + .data = (void *)tcn75 + }, + { + .compatible = "ti,tmp100", + .data = (void *)tmp100 + }, + { + .compatible = "ti,tmp101", + .data = (void *)tmp101 + }, + { + .compatible = "ti,tmp105", + .data = (void *)tmp105 + }, + { + .compatible = "ti,tmp112", + .data = (void *)tmp112 + }, + { + .compatible = "ti,tmp175", + .data = (void *)tmp175 + }, + { + .compatible = "ti,tmp275", + .data = (void *)tmp275 + }, + { + .compatible = "ti,tmp75", + .data = (void *)tmp75 + }, + { + .compatible = "ti,tmp75b", + .data = (void *)tmp75b + }, + { + .compatible = "ti,tmp75c", + .data = (void *)tmp75c + }, + { }, +}; +MODULE_DEVICE_TABLE(of, lm75_of_match); + +#define LM75A_ID 0xA1 +#if 0 +/* Return 0 if detection is successful, -ENODEV otherwise */ +static int lm75_detect(struct i2c_client *new_client, + struct i2c_board_info *info) +{ + struct i2c_adapter *adapter = new_client->adapter; + int i; + int conf, hyst, os; + bool is_lm75a = 0; + + if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA | + I2C_FUNC_SMBUS_WORD_DATA)) + return -ENODEV; + + /* + * Now, we do the remaining detection. There is no identification- + * dedicated register so we have to rely on several tricks: + * unused bits, registers cycling over 8-address boundaries, + * addresses 0x04-0x07 returning the last read value. + * The cycling+unused addresses combination is not tested, + * since it would significantly slow the detection down and would + * hardly add any value. + * + * The National Semiconductor LM75A is different than earlier + * LM75s. It has an ID byte of 0xaX (where X is the chip + * revision, with 1 being the only revision in existence) in + * register 7, and unused registers return 0xff rather than the + * last read value. + * + * Note that this function only detects the original National + * Semiconductor LM75 and the LM75A. Clones from other vendors + * aren't detected, on purpose, because they are typically never + * found on PC hardware. They are found on embedded designs where + * they can be instantiated explicitly so detection is not needed. + * The absence of identification registers on all these clones + * would make their exhaustive detection very difficult and weak, + * and odds are that the driver would bind to unsupported devices. + */ + + /* Unused bits */ + conf = i2c_smbus_read_byte_data(new_client, 1); + if (conf & 0xe0) + return -ENODEV; + + /* First check for LM75A */ + if (i2c_smbus_read_byte_data(new_client, 7) == LM75A_ID) { + /* + * LM75A returns 0xff on unused registers so + * just to be sure we check for that too. + */ + if (i2c_smbus_read_byte_data(new_client, 4) != 0xff + || i2c_smbus_read_byte_data(new_client, 5) != 0xff + || i2c_smbus_read_byte_data(new_client, 6) != 0xff) + return -ENODEV; + is_lm75a = 1; + hyst = i2c_smbus_read_byte_data(new_client, 2); + os = i2c_smbus_read_byte_data(new_client, 3); + } else { /* Traditional style LM75 detection */ + /* Unused addresses */ + hyst = i2c_smbus_read_byte_data(new_client, 2); + if (i2c_smbus_read_byte_data(new_client, 4) != hyst + || i2c_smbus_read_byte_data(new_client, 5) != hyst + || i2c_smbus_read_byte_data(new_client, 6) != hyst + || i2c_smbus_read_byte_data(new_client, 7) != hyst) + return -ENODEV; + os = i2c_smbus_read_byte_data(new_client, 3); + if (i2c_smbus_read_byte_data(new_client, 4) != os + || i2c_smbus_read_byte_data(new_client, 5) != os + || i2c_smbus_read_byte_data(new_client, 6) != os + || i2c_smbus_read_byte_data(new_client, 7) != os) + return -ENODEV; + } + /* + * It is very unlikely that this is a LM75 if both + * hysteresis and temperature limit registers are 0. + */ + if (hyst == 0 && os == 0) + return -ENODEV; + + /* Addresses cycling */ + for (i = 8; i <= 248; i += 40) { + if (i2c_smbus_read_byte_data(new_client, i + 1) != conf + || i2c_smbus_read_byte_data(new_client, i + 2) != hyst + || i2c_smbus_read_byte_data(new_client, i + 3) != os) + return -ENODEV; + if (is_lm75a && i2c_smbus_read_byte_data(new_client, i + 7) + != LM75A_ID) + return -ENODEV; + } + + strlcpy(info->type, is_lm75a ? "lm75a" : "lm75", I2C_NAME_SIZE); + + return 0; +} +#endif + +#ifdef CONFIG_PM +static int lm75_suspend(struct device *dev) +{ + int status; + struct i2c_client *client = to_i2c_client(dev); + + status = i2c_smbus_read_byte_data(client, LM75_REG_CONF); + if (status < 0) { + dev_dbg(&client->dev, "Can't read config? %d\n", status); + return status; + } + status = status | LM75_SHUTDOWN; + i2c_smbus_write_byte_data(client, LM75_REG_CONF, status); + return 0; +} + +static int lm75_resume(struct device *dev) +{ + int status; + struct i2c_client *client = to_i2c_client(dev); + + status = i2c_smbus_read_byte_data(client, LM75_REG_CONF); + if (status < 0) { + dev_dbg(&client->dev, "Can't read config? %d\n", status); + return status; + } + status = status & ~LM75_SHUTDOWN; + i2c_smbus_write_byte_data(client, LM75_REG_CONF, status); + return 0; +} + +static const struct dev_pm_ops lm75_dev_pm_ops = { + .suspend = lm75_suspend, + .resume = lm75_resume, +}; +#define LM75_DEV_PM_OPS (&lm75_dev_pm_ops) +#else +#define LM75_DEV_PM_OPS NULL +#endif /* CONFIG_PM */ + +static struct i2c_driver lm75_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = "wb_lm75", + .of_match_table = of_match_ptr(lm75_of_match), + .pm = LM75_DEV_PM_OPS, + }, + .probe_new = lm75_probe, + .id_table = lm75_ids, + /* .detect = lm75_detect, */ + /* .address_list = normal_i2c, */ +}; + +module_i2c_driver(lm75_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("LM75 driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.h new file mode 100644 index 000000000000..a398171162a8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.h @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * lm75.h - Part of lm_sensors, Linux kernel modules for hardware monitoring + * Copyright (c) 2003 Mark M. Hoffman + */ + +/* + * This file contains common code for encoding/decoding LM75 type + * temperature readings, which are emulated by many of the chips + * we support. As the user is unlikely to load more than one driver + * which contains this code, we don't worry about the wasted space. + */ + +#include + +/* straight from the datasheet */ +#define LM75_TEMP_MIN (-55000) +#define LM75_TEMP_MAX 125000 +#define LM75_SHUTDOWN 0x01 + +/* + * TEMP: 0.001C/bit (-55C to +125C) + * REG: (0.5C/bit, two's complement) << 7 + */ +static inline u16 LM75_TEMP_TO_REG(long temp) +{ + int ntemp = clamp_val(temp, LM75_TEMP_MIN, LM75_TEMP_MAX); + + ntemp += (ntemp < 0 ? -250 : 250); + return (u16)((ntemp / 500) << 7); +} + +static inline int LM75_TEMP_FROM_REG(u16 reg) +{ + /* + * use integer division instead of equivalent right shift to + * guarantee arithmetic shift and preserve the sign + */ + return ((s16)reg / 128) * 500; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h new file mode 100644 index 000000000000..9fb2c9017ae6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h @@ -0,0 +1,535 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * wb_pmbus.h - Common defines and structures for PMBus devices + * + * Copyright (c) 2010, 2011 Ericsson AB. + * Copyright (c) 2012 Guenter Roeck + */ + +#ifndef WB_PMBUS_H +#define WB_PMBUS_H + +#include +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +/* + * Registers + */ +enum pmbus_regs { + PMBUS_PAGE = 0x00, + PMBUS_OPERATION = 0x01, + PMBUS_ON_OFF_CONFIG = 0x02, + PMBUS_CLEAR_FAULTS = 0x03, + PMBUS_PHASE = 0x04, + + PMBUS_WRITE_PROTECT = 0x10, + + PMBUS_CAPABILITY = 0x19, + PMBUS_QUERY = 0x1A, + + PMBUS_VOUT_MODE = 0x20, + PMBUS_VOUT_COMMAND = 0x21, + PMBUS_VOUT_TRIM = 0x22, + PMBUS_VOUT_CAL_OFFSET = 0x23, + PMBUS_VOUT_MAX = 0x24, + PMBUS_VOUT_MARGIN_HIGH = 0x25, + PMBUS_VOUT_MARGIN_LOW = 0x26, + PMBUS_VOUT_TRANSITION_RATE = 0x27, + PMBUS_VOUT_DROOP = 0x28, + PMBUS_VOUT_SCALE_LOOP = 0x29, + PMBUS_VOUT_SCALE_MONITOR = 0x2A, + + PMBUS_COEFFICIENTS = 0x30, + PMBUS_POUT_MAX = 0x31, + + PMBUS_FAN_CONFIG_12 = 0x3A, + PMBUS_FAN_COMMAND_1 = 0x3B, + PMBUS_FAN_COMMAND_2 = 0x3C, + PMBUS_FAN_CONFIG_34 = 0x3D, + PMBUS_FAN_COMMAND_3 = 0x3E, + PMBUS_FAN_COMMAND_4 = 0x3F, + + PMBUS_VOUT_OV_FAULT_LIMIT = 0x40, + PMBUS_VOUT_OV_FAULT_RESPONSE = 0x41, + PMBUS_VOUT_OV_WARN_LIMIT = 0x42, + PMBUS_VOUT_UV_WARN_LIMIT = 0x43, + PMBUS_VOUT_UV_FAULT_LIMIT = 0x44, + PMBUS_VOUT_UV_FAULT_RESPONSE = 0x45, + PMBUS_IOUT_OC_FAULT_LIMIT = 0x46, + PMBUS_IOUT_OC_FAULT_RESPONSE = 0x47, + PMBUS_IOUT_OC_LV_FAULT_LIMIT = 0x48, + PMBUS_IOUT_OC_LV_FAULT_RESPONSE = 0x49, + PMBUS_IOUT_OC_WARN_LIMIT = 0x4A, + PMBUS_IOUT_UC_FAULT_LIMIT = 0x4B, + PMBUS_IOUT_UC_FAULT_RESPONSE = 0x4C, + + PMBUS_OT_FAULT_LIMIT = 0x4F, + PMBUS_OT_FAULT_RESPONSE = 0x50, + PMBUS_OT_WARN_LIMIT = 0x51, + PMBUS_UT_WARN_LIMIT = 0x52, + PMBUS_UT_FAULT_LIMIT = 0x53, + PMBUS_UT_FAULT_RESPONSE = 0x54, + PMBUS_VIN_OV_FAULT_LIMIT = 0x55, + PMBUS_VIN_OV_FAULT_RESPONSE = 0x56, + PMBUS_VIN_OV_WARN_LIMIT = 0x57, + PMBUS_VIN_UV_WARN_LIMIT = 0x58, + PMBUS_VIN_UV_FAULT_LIMIT = 0x59, + + PMBUS_IIN_OC_FAULT_LIMIT = 0x5B, + PMBUS_IIN_OC_WARN_LIMIT = 0x5D, + + PMBUS_POUT_OP_FAULT_LIMIT = 0x68, + PMBUS_POUT_OP_WARN_LIMIT = 0x6A, + PMBUS_PIN_OP_WARN_LIMIT = 0x6B, + + PMBUS_STATUS_BYTE = 0x78, + PMBUS_STATUS_WORD = 0x79, + PMBUS_STATUS_VOUT = 0x7A, + PMBUS_STATUS_IOUT = 0x7B, + PMBUS_STATUS_INPUT = 0x7C, + PMBUS_STATUS_TEMPERATURE = 0x7D, + PMBUS_STATUS_CML = 0x7E, + PMBUS_STATUS_OTHER = 0x7F, + PMBUS_STATUS_MFR_SPECIFIC = 0x80, + PMBUS_STATUS_FAN_12 = 0x81, + PMBUS_STATUS_FAN_34 = 0x82, + + PMBUS_READ_VIN = 0x88, + PMBUS_READ_IIN = 0x89, + PMBUS_READ_VCAP = 0x8A, + PMBUS_READ_VOUT = 0x8B, + PMBUS_READ_IOUT = 0x8C, + PMBUS_READ_TEMPERATURE_1 = 0x8D, + PMBUS_READ_TEMPERATURE_2 = 0x8E, + PMBUS_READ_TEMPERATURE_3 = 0x8F, + PMBUS_READ_FAN_SPEED_1 = 0x90, + PMBUS_READ_FAN_SPEED_2 = 0x91, + PMBUS_READ_FAN_SPEED_3 = 0x92, + PMBUS_READ_FAN_SPEED_4 = 0x93, + PMBUS_READ_DUTY_CYCLE = 0x94, + PMBUS_READ_FREQUENCY = 0x95, + PMBUS_READ_POUT = 0x96, + PMBUS_READ_PIN = 0x97, + + PMBUS_REVISION = 0x98, + PMBUS_MFR_ID = 0x99, + PMBUS_MFR_MODEL = 0x9A, + PMBUS_MFR_REVISION = 0x9B, + PMBUS_MFR_LOCATION = 0x9C, + PMBUS_MFR_DATE = 0x9D, + PMBUS_MFR_SERIAL = 0x9E, + + PMBUS_MFR_VIN_MIN = 0xA0, + PMBUS_MFR_VIN_MAX = 0xA1, + PMBUS_MFR_IIN_MAX = 0xA2, + PMBUS_MFR_PIN_MAX = 0xA3, + PMBUS_MFR_VOUT_MIN = 0xA4, + PMBUS_MFR_VOUT_MAX = 0xA5, + PMBUS_MFR_IOUT_MAX = 0xA6, + PMBUS_MFR_POUT_MAX = 0xA7, + + PMBUS_IC_DEVICE_ID = 0xAD, + PMBUS_IC_DEVICE_REV = 0xAE, + + PMBUS_MFR_MAX_TEMP_1 = 0xC0, + PMBUS_MFR_MAX_TEMP_2 = 0xC1, + PMBUS_MFR_MAX_TEMP_3 = 0xC2, + +/* + * Virtual registers. + * Useful to support attributes which are not supported by standard PMBus + * registers but exist as manufacturer specific registers on individual chips. + * Must be mapped to real registers in device specific code. + * + * Semantics: + * Virtual registers are all word size. + * READ registers are read-only; writes are either ignored or return an error. + * RESET registers are read/write. Reading reset registers returns zero + * (used for detection), writing any value causes the associated history to be + * reset. + * Virtual registers have to be handled in device specific driver code. Chip + * driver code returns non-negative register values if a virtual register is + * supported, or a negative error code if not. The chip driver may return + * -ENODATA or any other error code in this case, though an error code other + * than -ENODATA is handled more efficiently and thus preferred. Either case, + * the calling PMBus core code will abort if the chip driver returns an error + * code when reading or writing virtual registers. + */ + PMBUS_VIRT_BASE = 0x100, + PMBUS_VIRT_READ_TEMP_AVG, + PMBUS_VIRT_READ_TEMP_MIN, + PMBUS_VIRT_READ_TEMP_MAX, + PMBUS_VIRT_RESET_TEMP_HISTORY, + PMBUS_VIRT_READ_VIN_AVG, + PMBUS_VIRT_READ_VIN_MIN, + PMBUS_VIRT_READ_VIN_MAX, + PMBUS_VIRT_RESET_VIN_HISTORY, + PMBUS_VIRT_READ_IIN_AVG, + PMBUS_VIRT_READ_IIN_MIN, + PMBUS_VIRT_READ_IIN_MAX, + PMBUS_VIRT_RESET_IIN_HISTORY, + PMBUS_VIRT_READ_PIN_AVG, + PMBUS_VIRT_READ_PIN_MIN, + PMBUS_VIRT_READ_PIN_MAX, + PMBUS_VIRT_RESET_PIN_HISTORY, + PMBUS_VIRT_READ_POUT_AVG, + PMBUS_VIRT_READ_POUT_MIN, + PMBUS_VIRT_READ_POUT_MAX, + PMBUS_VIRT_RESET_POUT_HISTORY, + PMBUS_VIRT_READ_VOUT_AVG, + PMBUS_VIRT_READ_VOUT_MIN, + PMBUS_VIRT_READ_VOUT_MAX, + PMBUS_VIRT_RESET_VOUT_HISTORY, + PMBUS_VIRT_READ_IOUT_AVG, + PMBUS_VIRT_READ_IOUT_MIN, + PMBUS_VIRT_READ_IOUT_MAX, + PMBUS_VIRT_RESET_IOUT_HISTORY, + PMBUS_VIRT_READ_TEMP2_AVG, + PMBUS_VIRT_READ_TEMP2_MIN, + PMBUS_VIRT_READ_TEMP2_MAX, + PMBUS_VIRT_RESET_TEMP2_HISTORY, + + PMBUS_VIRT_READ_VMON, + PMBUS_VIRT_VMON_UV_WARN_LIMIT, + PMBUS_VIRT_VMON_OV_WARN_LIMIT, + PMBUS_VIRT_VMON_UV_FAULT_LIMIT, + PMBUS_VIRT_VMON_OV_FAULT_LIMIT, + PMBUS_VIRT_STATUS_VMON, + + /* + * RPM and PWM Fan control + * + * Drivers wanting to expose PWM control must define the behaviour of + * PMBUS_VIRT_PWM_[1-4] and PMBUS_VIRT_PWM_ENABLE_[1-4] in the + * {read,write}_word_data callback. + * + * pmbus core provides a default implementation for + * PMBUS_VIRT_FAN_TARGET_[1-4]. + * + * TARGET, PWM and PWM_ENABLE members must be defined sequentially; + * pmbus core uses the difference between the provided register and + * it's _1 counterpart to calculate the FAN/PWM ID. + */ + PMBUS_VIRT_FAN_TARGET_1, + PMBUS_VIRT_FAN_TARGET_2, + PMBUS_VIRT_FAN_TARGET_3, + PMBUS_VIRT_FAN_TARGET_4, + PMBUS_VIRT_PWM_1, + PMBUS_VIRT_PWM_2, + PMBUS_VIRT_PWM_3, + PMBUS_VIRT_PWM_4, + PMBUS_VIRT_PWM_ENABLE_1, + PMBUS_VIRT_PWM_ENABLE_2, + PMBUS_VIRT_PWM_ENABLE_3, + PMBUS_VIRT_PWM_ENABLE_4, + + /* Samples for average + * + * Drivers wanting to expose functionality for changing the number of + * samples used for average values should implement support in + * {read,write}_word_data callback for either PMBUS_VIRT_SAMPLES if it + * applies to all types of measurements, or any number of specific + * PMBUS_VIRT_*_SAMPLES registers to allow for individual control. + */ + PMBUS_VIRT_SAMPLES, + PMBUS_VIRT_IN_SAMPLES, + PMBUS_VIRT_CURR_SAMPLES, + PMBUS_VIRT_POWER_SAMPLES, + PMBUS_VIRT_TEMP_SAMPLES, +}; + +/* + * OPERATION + */ +#define PB_OPERATION_CONTROL_ON BIT(7) + +/* + * WRITE_PROTECT + */ +#define PB_WP_ALL BIT(7) /* all but WRITE_PROTECT */ +#define PB_WP_OP BIT(6) /* all but WP, OPERATION, PAGE */ +#define PB_WP_VOUT BIT(5) /* all but WP, OPERATION, PAGE, VOUT, ON_OFF */ + +#define PB_WP_ANY (PB_WP_ALL | PB_WP_OP | PB_WP_VOUT) + +/* + * CAPABILITY + */ +#define PB_CAPABILITY_SMBALERT BIT(4) +#define PB_CAPABILITY_ERROR_CHECK BIT(7) + +/* + * VOUT_MODE + */ +#define PB_VOUT_MODE_MODE_MASK 0xe0 +#define PB_VOUT_MODE_PARAM_MASK 0x1f + +#define PB_VOUT_MODE_LINEAR 0x00 +#define PB_VOUT_MODE_VID 0x20 +#define PB_VOUT_MODE_DIRECT 0x40 + +/* + * Fan configuration + */ +#define PB_FAN_2_PULSE_MASK (BIT(0) | BIT(1)) +#define PB_FAN_2_RPM BIT(2) +#define PB_FAN_2_INSTALLED BIT(3) +#define PB_FAN_1_PULSE_MASK (BIT(4) | BIT(5)) +#define PB_FAN_1_RPM BIT(6) +#define PB_FAN_1_INSTALLED BIT(7) + +enum pmbus_fan_mode { percent = 0, rpm }; + +/* + * STATUS_BYTE, STATUS_WORD (lower) + */ +#define PB_STATUS_NONE_ABOVE BIT(0) +#define PB_STATUS_CML BIT(1) +#define PB_STATUS_TEMPERATURE BIT(2) +#define PB_STATUS_VIN_UV BIT(3) +#define PB_STATUS_IOUT_OC BIT(4) +#define PB_STATUS_VOUT_OV BIT(5) +#define PB_STATUS_OFF BIT(6) +#define PB_STATUS_BUSY BIT(7) + +/* + * STATUS_WORD (upper) + */ +#define PB_STATUS_UNKNOWN BIT(8) +#define PB_STATUS_OTHER BIT(9) +#define PB_STATUS_FANS BIT(10) +#define PB_STATUS_POWER_GOOD_N BIT(11) +#define PB_STATUS_WORD_MFR BIT(12) +#define PB_STATUS_INPUT BIT(13) +#define PB_STATUS_IOUT_POUT BIT(14) +#define PB_STATUS_VOUT BIT(15) + +/* + * STATUS_IOUT + */ +#define PB_POUT_OP_WARNING BIT(0) +#define PB_POUT_OP_FAULT BIT(1) +#define PB_POWER_LIMITING BIT(2) +#define PB_CURRENT_SHARE_FAULT BIT(3) +#define PB_IOUT_UC_FAULT BIT(4) +#define PB_IOUT_OC_WARNING BIT(5) +#define PB_IOUT_OC_LV_FAULT BIT(6) +#define PB_IOUT_OC_FAULT BIT(7) + +/* + * STATUS_VOUT, STATUS_INPUT + */ +#define PB_VOLTAGE_UV_FAULT BIT(4) +#define PB_VOLTAGE_UV_WARNING BIT(5) +#define PB_VOLTAGE_OV_WARNING BIT(6) +#define PB_VOLTAGE_OV_FAULT BIT(7) + +/* + * STATUS_INPUT + */ +#define PB_PIN_OP_WARNING BIT(0) +#define PB_IIN_OC_WARNING BIT(1) +#define PB_IIN_OC_FAULT BIT(2) + +/* + * STATUS_TEMPERATURE + */ +#define PB_TEMP_UT_FAULT BIT(4) +#define PB_TEMP_UT_WARNING BIT(5) +#define PB_TEMP_OT_WARNING BIT(6) +#define PB_TEMP_OT_FAULT BIT(7) + +/* + * STATUS_FAN + */ +#define PB_FAN_AIRFLOW_WARNING BIT(0) +#define PB_FAN_AIRFLOW_FAULT BIT(1) +#define PB_FAN_FAN2_SPEED_OVERRIDE BIT(2) +#define PB_FAN_FAN1_SPEED_OVERRIDE BIT(3) +#define PB_FAN_FAN2_WARNING BIT(4) +#define PB_FAN_FAN1_WARNING BIT(5) +#define PB_FAN_FAN2_FAULT BIT(6) +#define PB_FAN_FAN1_FAULT BIT(7) + +/* + * CML_FAULT_STATUS + */ +#define PB_CML_FAULT_OTHER_MEM_LOGIC BIT(0) +#define PB_CML_FAULT_OTHER_COMM BIT(1) +#define PB_CML_FAULT_PROCESSOR BIT(3) +#define PB_CML_FAULT_MEMORY BIT(4) +#define PB_CML_FAULT_PACKET_ERROR BIT(5) +#define PB_CML_FAULT_INVALID_DATA BIT(6) +#define PB_CML_FAULT_INVALID_COMMAND BIT(7) + +enum pmbus_sensor_classes { + PSC_VOLTAGE_IN = 0, + PSC_VOLTAGE_OUT, + PSC_CURRENT_IN, + PSC_CURRENT_OUT, + PSC_POWER, + PSC_TEMPERATURE, + PSC_FAN, + PSC_PWM, + PSC_NUM_CLASSES /* Number of power sensor classes */ +}; + +#define PMBUS_PAGES 32 /* Per PMBus specification */ +#define PMBUS_PHASES 8 /* Maximum number of phases per page */ + +/* Functionality bit mask */ +#define PMBUS_HAVE_VIN BIT(0) +#define PMBUS_HAVE_VCAP BIT(1) +#define PMBUS_HAVE_VOUT BIT(2) +#define PMBUS_HAVE_IIN BIT(3) +#define PMBUS_HAVE_IOUT BIT(4) +#define PMBUS_HAVE_PIN BIT(5) +#define PMBUS_HAVE_POUT BIT(6) +#define PMBUS_HAVE_FAN12 BIT(7) +#define PMBUS_HAVE_FAN34 BIT(8) +#define PMBUS_HAVE_TEMP BIT(9) +#define PMBUS_HAVE_TEMP2 BIT(10) +#define PMBUS_HAVE_TEMP3 BIT(11) +#define PMBUS_HAVE_STATUS_VOUT BIT(12) +#define PMBUS_HAVE_STATUS_IOUT BIT(13) +#define PMBUS_HAVE_STATUS_INPUT BIT(14) +#define PMBUS_HAVE_STATUS_TEMP BIT(15) +#define PMBUS_HAVE_STATUS_FAN12 BIT(16) +#define PMBUS_HAVE_STATUS_FAN34 BIT(17) +#define PMBUS_HAVE_VMON BIT(18) +#define PMBUS_HAVE_STATUS_VMON BIT(19) +#define PMBUS_HAVE_PWM12 BIT(20) +#define PMBUS_HAVE_PWM34 BIT(21) +#define PMBUS_HAVE_SAMPLES BIT(22) + +#define PMBUS_PHASE_VIRTUAL BIT(30) /* Phases on this page are virtual */ +#define PMBUS_PAGE_VIRTUAL BIT(31) /* Page is virtual */ + +enum pmbus_data_format { linear = 0, direct, vid }; +enum vrm_version { vr11 = 0, vr12, vr13, imvp9, amd625mv }; + +struct pmbus_driver_info { + int pages; /* Total number of pages */ + u8 phases[PMBUS_PAGES]; /* Number of phases per page */ + enum pmbus_data_format format[PSC_NUM_CLASSES]; + enum vrm_version vrm_version[PMBUS_PAGES]; /* vrm version per page */ + /* + * Support one set of coefficients for each sensor type + * Used for chips providing data in direct mode. + */ + int m[PSC_NUM_CLASSES]; /* mantissa for direct data format */ + int b[PSC_NUM_CLASSES]; /* offset */ + int R[PSC_NUM_CLASSES]; /* exponent */ + + u32 func[PMBUS_PAGES]; /* Functionality, per page */ + u32 pfunc[PMBUS_PHASES];/* Functionality, per phase */ + /* + * The following functions map manufacturing specific register values + * to PMBus standard register values. Specify only if mapping is + * necessary. + * Functions return the register value (read) or zero (write) if + * successful. A return value of -ENODATA indicates that there is no + * manufacturer specific register, but that a standard PMBus register + * may exist. Any other negative return value indicates that the + * register does not exist, and that no attempt should be made to read + * the standard register. + */ + int (*read_byte_data)(struct i2c_client *client, int page, int reg); + int (*read_word_data)(struct i2c_client *client, int page, int phase, + int reg); + int (*write_word_data)(struct i2c_client *client, int page, int reg, + u16 word); + int (*write_byte)(struct i2c_client *client, int page, u8 value); + /* + * The identify function determines supported PMBus functionality. + * This function is only necessary if a chip driver supports multiple + * chips, and the chip functionality is not pre-determined. + */ + int (*identify)(struct i2c_client *client, + struct pmbus_driver_info *info); + + /* Regulator functionality, if supported by this chip driver. */ + int num_regulators; + const struct regulator_desc *reg_desc; + + /* custom attributes */ + const struct attribute_group **groups; +}; + +/* Regulator ops */ + +extern const struct regulator_ops wb_pmbus_regulator_ops; + +/* Macro for filling in array of struct regulator_desc */ +#define PMBUS_REGULATOR(_name, _id) \ + [_id] = { \ + .name = (_name # _id), \ + .id = (_id), \ + .of_match = of_match_ptr(_name # _id), \ + .regulators_node = of_match_ptr("regulators"), \ + .ops = &wb_pmbus_regulator_ops, \ + .type = REGULATOR_VOLTAGE, \ + .owner = THIS_MODULE, \ + } + +struct pmbus_data { + struct device *dev; + struct device *hwmon_dev; + + u32 flags; /* from platform data */ + + int exponent[PMBUS_PAGES]; /* linear mode: exponent for output voltages */ + + const struct pmbus_driver_info *info; + + int max_attributes; + int num_attributes; + struct attribute_group group; + const struct attribute_group **groups; + struct dentry *debugfs; /* debugfs device directory */ + + struct pmbus_sensor *sensors; + + struct mutex update_lock; + + bool has_status_word; /* device uses STATUS_WORD register */ + int (*read_status)(struct i2c_client *client, int page); + + s16 currpage; /* current page, -1 for unknown/unset */ + s16 currphase; /* current phase, 0xff for all, -1 for unknown/unset */ + int vout_max[PMBUS_PAGES]; /* pmbus maximum output voltage */ + int vout_min[PMBUS_PAGES]; /* pmbus minimum output voltage */ +}; + +/* Function declarations */ +void wb_pmbus_clear_cache(struct i2c_client *client); +int wb_pmbus_set_page(struct i2c_client *client, int page, int phase); +int wb_pmbus_read_word_data(struct i2c_client *client, int page, int phase, + u8 reg); +int wb_pmbus_write_word_data(struct i2c_client *client, int page, u8 reg, + u16 word); +int wb_pmbus_read_byte_data(struct i2c_client *client, int page, u8 reg); +int wb_pmbus_write_byte(struct i2c_client *client, int page, u8 value); +int wb_pmbus_write_byte_data(struct i2c_client *client, int page, u8 reg, + u8 value); +int wb_pmbus_update_byte_data(struct i2c_client *client, int page, u8 reg, + u8 mask, u8 value); +void wb_pmbus_clear_faults(struct i2c_client *client); +bool wb_pmbus_check_byte_register(struct i2c_client *client, int page, int reg); +bool wb_pmbus_check_word_register(struct i2c_client *client, int page, int reg); +int wb_pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info); +int wb_pmbus_do_remove(struct i2c_client *client); +const struct pmbus_driver_info *wb_pmbus_get_driver_info(struct i2c_client + *client); +int wb_pmbus_get_fan_rate_device(struct i2c_client *client, int page, int id, + enum pmbus_fan_mode mode); +int wb_pmbus_get_fan_rate_cached(struct i2c_client *client, int page, int id, + enum pmbus_fan_mode mode); +int wb_pmbus_update_fan(struct i2c_client *client, int page, int id, + u8 config, u8 mask, u16 command); +struct dentry *wb_pmbus_get_debugfs_dir(struct i2c_client *client); + +#endif /* WB_PMBUS_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c new file mode 100644 index 000000000000..bba6ca39cd3c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c @@ -0,0 +1,2780 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Hardware monitoring driver for PMBus devices + * + * Copyright (c) 2010, 2011 Ericsson AB. + * Copyright (c) 2012 Guenter Roeck + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "wb_pmbus.h" + +/* + * Number of additional attribute pointers to allocate + * with each call to krealloc + */ +#define PMBUS_ATTR_ALLOC_SIZE (32) +#define PMBUS_NAME_SIZE (24) +#define PMBUS_RETRY_SLEEP_TIME (10000) /* 10ms */ +#define PMBUS_RETRY_TIME (3) + +struct pmbus_sensor { + struct pmbus_sensor *next; + char name[PMBUS_NAME_SIZE]; /* sysfs sensor name */ + struct device_attribute attribute; + u8 page; /* page number */ + u8 phase; /* phase number, 0xff for all phases */ + u16 reg; /* register */ + enum pmbus_sensor_classes class; /* sensor class */ + bool update; /* runtime sensor update needed */ + bool convert; /* Whether or not to apply linear/vid/direct */ + int data; /* Sensor data. + Negative if there was a read error */ +}; +#define to_pmbus_sensor(_attr) \ + container_of(_attr, struct pmbus_sensor, attribute) + +struct pmbus_boolean { + char name[PMBUS_NAME_SIZE]; /* sysfs boolean name */ + struct sensor_device_attribute attribute; + struct pmbus_sensor *s1; + struct pmbus_sensor *s2; +}; +#define to_pmbus_boolean(_attr) \ + container_of(_attr, struct pmbus_boolean, attribute) + +struct pmbus_label { + char name[PMBUS_NAME_SIZE]; /* sysfs label name */ + struct device_attribute attribute; + char label[PMBUS_NAME_SIZE]; /* label */ +}; +#define to_pmbus_label(_attr) \ + container_of(_attr, struct pmbus_label, attribute) + +/* Macros for converting between sensor index and register/page/status mask */ + +#define PB_STATUS_MASK 0xffff +#define PB_REG_SHIFT 16 +#define PB_REG_MASK 0x3ff +#define PB_PAGE_SHIFT 26 +#define PB_PAGE_MASK 0x3f + +#define pb_reg_to_index(page, reg, mask) (((page) << PB_PAGE_SHIFT) | \ + ((reg) << PB_REG_SHIFT) | (mask)) + +#define pb_index_to_page(index) (((index) >> PB_PAGE_SHIFT) & PB_PAGE_MASK) +#define pb_index_to_reg(index) (((index) >> PB_REG_SHIFT) & PB_REG_MASK) +#define pb_index_to_mask(index) ((index) & PB_STATUS_MASK) + +struct pmbus_debugfs_entry { + struct i2c_client *client; + u8 page; + u8 reg; +}; + +static const int pmbus_fan_rpm_mask[] = { + PB_FAN_1_RPM, + PB_FAN_2_RPM, + PB_FAN_1_RPM, + PB_FAN_2_RPM, +}; + +static const int pmbus_fan_config_registers[] = { + PMBUS_FAN_CONFIG_12, + PMBUS_FAN_CONFIG_12, + PMBUS_FAN_CONFIG_34, + PMBUS_FAN_CONFIG_34 +}; + +static const int pmbus_fan_command_registers[] = { + PMBUS_FAN_COMMAND_1, + PMBUS_FAN_COMMAND_2, + PMBUS_FAN_COMMAND_3, + PMBUS_FAN_COMMAND_4, +}; + +void wb_pmbus_clear_cache(struct i2c_client *client) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + struct pmbus_sensor *sensor; + + for (sensor = data->sensors; sensor; sensor = sensor->next) + sensor->data = -ENODATA; +} +EXPORT_SYMBOL_GPL(wb_pmbus_clear_cache); + +static int wb_pmbus_set_page_tmp(struct i2c_client *client, int page, int phase) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + int rv; + + if (page < 0) + return 0; + + if (!(data->info->func[page] & PMBUS_PAGE_VIRTUAL) && + data->info->pages > 1 && page != data->currpage) { + rv = i2c_smbus_write_byte_data(client, PMBUS_PAGE, page); + if (rv < 0) + return rv; + + rv = i2c_smbus_read_byte_data(client, PMBUS_PAGE); + if (rv < 0) + return rv; + + if (rv != page) + return -EIO; + } + data->currpage = page; + + if (data->info->phases[page] && data->currphase != phase && + !(data->info->func[page] & PMBUS_PHASE_VIRTUAL)) { + rv = i2c_smbus_write_byte_data(client, PMBUS_PHASE, + phase); + if (rv) + return rv; + } + data->currphase = phase; + + return 0; +} + +int wb_pmbus_set_page(struct i2c_client *client, int page, int phase) +{ + int rv, i; + struct device *dev = &client->dev; + + for (i = 0; i < PMBUS_RETRY_TIME; i++) { + rv = wb_pmbus_set_page_tmp(client, page, phase); + if(rv >= 0){ + return rv; + } + if ((i + 1) < PMBUS_RETRY_TIME) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + } + dev_dbg(dev, "wb_pmbus_set_page failed, page=%d, phase=%d, rv=%d\n", + page, phase, rv); + return rv; +} +EXPORT_SYMBOL_GPL(wb_pmbus_set_page); + +static int wb_pmbus_write_byte_tmp(struct i2c_client *client, int page, u8 value) +{ + int rv; + + rv = wb_pmbus_set_page(client, page, 0xff); + if (rv < 0) + return rv; + + return i2c_smbus_write_byte(client, value); +} + +int wb_pmbus_write_byte(struct i2c_client *client, int page, u8 value) +{ + int rv, i; + struct device *dev = &client->dev; + + for (i = 0; i < PMBUS_RETRY_TIME; i++) { + rv = wb_pmbus_write_byte_tmp(client, page, value); + if(rv >= 0){ + return rv; + } + if ((i + 1) < PMBUS_RETRY_TIME) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + } + dev_dbg(dev, "wb_pmbus_write_byte failed, page=%d, value=0x%x, rv: %d\n", + page, value, rv); + return rv; +} + +EXPORT_SYMBOL_GPL(wb_pmbus_write_byte); + +/* + * _pmbus_write_byte() is similar to pmbus_write_byte(), but checks if + * a device specific mapping function exists and calls it if necessary. + */ +static int _pmbus_write_byte(struct i2c_client *client, int page, u8 value) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + const struct pmbus_driver_info *info = data->info; + int status; + + if (info->write_byte) { + status = info->write_byte(client, page, value); + if (status != -ENODATA) + return status; + } + return wb_pmbus_write_byte(client, page, value); +} + +static int wb_pmbus_write_word_data_tmp(struct i2c_client *client, int page, u8 reg, + u16 word) +{ + int rv; + + rv = wb_pmbus_set_page(client, page, 0xff); + if (rv < 0) + return rv; + + return i2c_smbus_write_word_data(client, reg, word); +} + +int wb_pmbus_write_word_data(struct i2c_client *client, int page, u8 reg, + u16 word) +{ + int rv, i; + struct device *dev = &client->dev; + + for (i = 0; i < PMBUS_RETRY_TIME; i++) { + rv = wb_pmbus_write_word_data_tmp(client, page, reg, word); + if(rv >= 0){ + return rv; + } + if ((i + 1) < PMBUS_RETRY_TIME) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + } + dev_dbg(dev, "wb_pmbus_write_word_data failed, page: %d, reg: 0x%x, value: 0x%x, rv: %d\n", + page, reg, word, rv); + return rv; + +} +EXPORT_SYMBOL_GPL(wb_pmbus_write_word_data); + +static int pmbus_write_virt_reg(struct i2c_client *client, int page, int reg, + u16 word) +{ + int bit; + int id; + int rv; + + switch (reg) { + case PMBUS_VIRT_FAN_TARGET_1 ... PMBUS_VIRT_FAN_TARGET_4: + id = reg - PMBUS_VIRT_FAN_TARGET_1; + bit = pmbus_fan_rpm_mask[id]; + rv = wb_pmbus_update_fan(client, page, id, bit, bit, word); + break; + default: + rv = -ENXIO; + break; + } + + return rv; +} + +/* + * _pmbus_write_word_data() is similar to pmbus_write_word_data(), but checks if + * a device specific mapping function exists and calls it if necessary. + */ +static int _pmbus_write_word_data(struct i2c_client *client, int page, int reg, + u16 word) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + const struct pmbus_driver_info *info = data->info; + int status; + + if (info->write_word_data) { + status = info->write_word_data(client, page, reg, word); + if (status != -ENODATA) + return status; + } + + if (reg >= PMBUS_VIRT_BASE) + return pmbus_write_virt_reg(client, page, reg, word); + + return wb_pmbus_write_word_data(client, page, reg, word); +} + +int wb_pmbus_update_fan(struct i2c_client *client, int page, int id, + u8 config, u8 mask, u16 command) +{ + int from; + int rv; + u8 to; + + from = wb_pmbus_read_byte_data(client, page, + pmbus_fan_config_registers[id]); + if (from < 0) + return from; + + to = (from & ~mask) | (config & mask); + if (to != from) { + rv = wb_pmbus_write_byte_data(client, page, + pmbus_fan_config_registers[id], to); + if (rv < 0) + return rv; + } + + return _pmbus_write_word_data(client, page, + pmbus_fan_command_registers[id], command); +} +EXPORT_SYMBOL_GPL(wb_pmbus_update_fan); + +static int wb_pmbus_read_word_data_tmp(struct i2c_client *client, int page, int phase, u8 reg) +{ + int rv; + + rv = wb_pmbus_set_page(client, page, phase); + if (rv < 0) + return rv; + + return i2c_smbus_read_word_data(client, reg); +} + +int wb_pmbus_read_word_data(struct i2c_client *client, int page, int phase, u8 reg) +{ + int rv, i; + struct device *dev = &client->dev; + + for (i = 0; i < PMBUS_RETRY_TIME; i++) { + rv = wb_pmbus_read_word_data_tmp(client, page, phase, reg); + if(rv >= 0){ + return rv; + } + if ((i + 1) < PMBUS_RETRY_TIME) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + } + dev_dbg(dev, "wb_pmbus_read_word_data failed, page: %d, phase: %d, reg: 0x%x, rv: %d\n", + page, phase, reg, rv); + return rv; +} +EXPORT_SYMBOL_GPL(wb_pmbus_read_word_data); + +static int pmbus_read_virt_reg(struct i2c_client *client, int page, int reg) +{ + int rv; + int id; + + switch (reg) { + case PMBUS_VIRT_FAN_TARGET_1 ... PMBUS_VIRT_FAN_TARGET_4: + id = reg - PMBUS_VIRT_FAN_TARGET_1; + rv = wb_pmbus_get_fan_rate_device(client, page, id, rpm); + break; + default: + rv = -ENXIO; + break; + } + + return rv; +} + +/* + * _pmbus_read_word_data() is similar to wb_pmbus_read_word_data(), but checks if + * a device specific mapping function exists and calls it if necessary. + */ +static int _pmbus_read_word_data(struct i2c_client *client, int page, + int phase, int reg) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + const struct pmbus_driver_info *info = data->info; + int status; + + if (info->read_word_data) { + status = info->read_word_data(client, page, phase, reg); + if (status != -ENODATA) + return status; + } + + if (reg >= PMBUS_VIRT_BASE) + return pmbus_read_virt_reg(client, page, reg); + + return wb_pmbus_read_word_data(client, page, phase, reg); +} + +/* Same as above, but without phase parameter, for use in check functions */ +static int __pmbus_read_word_data(struct i2c_client *client, int page, int reg) +{ + return _pmbus_read_word_data(client, page, 0xff, reg); +} + +static int wb_pmbus_read_byte_data_tmp(struct i2c_client *client, int page, u8 reg) +{ + int rv; + + rv = wb_pmbus_set_page(client, page, 0xff); + if (rv < 0) + return rv; + + return i2c_smbus_read_byte_data(client, reg); +} + +int wb_pmbus_read_byte_data(struct i2c_client *client, int page, u8 reg) +{ + int rv, i; + struct device *dev = &client->dev; + + for (i = 0; i < PMBUS_RETRY_TIME; i++) { + rv = wb_pmbus_read_byte_data_tmp(client, page, reg); + if(rv >= 0){ + return rv; + } + if ((i + 1) < PMBUS_RETRY_TIME) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + } + dev_dbg(dev, "wb_pmbus_read_byte_data failed, page: %d, reg: 0x%x, rv: %d\n", + page, reg, rv); + return rv; +} +EXPORT_SYMBOL_GPL(wb_pmbus_read_byte_data); + +static int wb_pmbus_write_byte_data_tmp(struct i2c_client *client, int page, u8 reg, u8 value) +{ + int rv; + + rv = wb_pmbus_set_page(client, page, 0xff); + if (rv < 0) + return rv; + + return i2c_smbus_write_byte_data(client, reg, value); +} + +int wb_pmbus_write_byte_data(struct i2c_client *client, int page, u8 reg, u8 value) +{ + int rv, i; + struct device *dev = &client->dev; + + for (i = 0; i < PMBUS_RETRY_TIME; i++) { + rv = wb_pmbus_write_byte_data_tmp(client, page, reg, value); + if(rv >= 0){ + return rv; + } + if ((i + 1) < PMBUS_RETRY_TIME) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + } + dev_dbg(dev, "wb_pmbus_write_byte_data failed, page: %d, reg: 0x%x, value: 0x%x, rv: %d\n", + page, reg, value, rv); + return rv; +} +EXPORT_SYMBOL_GPL(wb_pmbus_write_byte_data); + +int wb_pmbus_update_byte_data(struct i2c_client *client, int page, u8 reg, + u8 mask, u8 value) +{ + unsigned int tmp; + int rv; + + rv = wb_pmbus_read_byte_data(client, page, reg); + if (rv < 0) + return rv; + + tmp = (rv & ~mask) | (value & mask); + + if (tmp != rv) + rv = wb_pmbus_write_byte_data(client, page, reg, tmp); + + return rv; +} +EXPORT_SYMBOL_GPL(wb_pmbus_update_byte_data); + +/* + * _pmbus_read_byte_data() is similar to wb_pmbus_read_byte_data(), but checks if + * a device specific mapping function exists and calls it if necessary. + */ +static int _pmbus_read_byte_data(struct i2c_client *client, int page, int reg) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + const struct pmbus_driver_info *info = data->info; + int status; + + if (info->read_byte_data) { + status = info->read_byte_data(client, page, reg); + if (status != -ENODATA) + return status; + } + return wb_pmbus_read_byte_data(client, page, reg); +} + +static struct pmbus_sensor *pmbus_find_sensor(struct pmbus_data *data, int page, + int reg) +{ + struct pmbus_sensor *sensor; + + for (sensor = data->sensors; sensor; sensor = sensor->next) { + if (sensor->page == page && sensor->reg == reg) + return sensor; + } + + return ERR_PTR(-EINVAL); +} + +static int pmbus_get_fan_rate(struct i2c_client *client, int page, int id, + enum pmbus_fan_mode mode, + bool from_cache) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + bool want_rpm, have_rpm; + struct pmbus_sensor *s; + int config; + int reg; + + want_rpm = (mode == rpm); + + if (from_cache) { + reg = want_rpm ? PMBUS_VIRT_FAN_TARGET_1 : PMBUS_VIRT_PWM_1; + s = pmbus_find_sensor(data, page, reg + id); + if (IS_ERR(s)) + return PTR_ERR(s); + + return s->data; + } + + config = wb_pmbus_read_byte_data(client, page, + pmbus_fan_config_registers[id]); + if (config < 0) + return config; + + have_rpm = !!(config & pmbus_fan_rpm_mask[id]); + if (want_rpm == have_rpm) + return wb_pmbus_read_word_data(client, page, 0xff, + pmbus_fan_command_registers[id]); + + /* Can't sensibly map between RPM and PWM, just return zero */ + return 0; +} + +int wb_pmbus_get_fan_rate_device(struct i2c_client *client, int page, int id, + enum pmbus_fan_mode mode) +{ + return pmbus_get_fan_rate(client, page, id, mode, false); +} +EXPORT_SYMBOL_GPL(wb_pmbus_get_fan_rate_device); + +int wb_pmbus_get_fan_rate_cached(struct i2c_client *client, int page, int id, + enum pmbus_fan_mode mode) +{ + return pmbus_get_fan_rate(client, page, id, mode, true); +} +EXPORT_SYMBOL_GPL(wb_pmbus_get_fan_rate_cached); + +static void pmbus_clear_fault_page(struct i2c_client *client, int page) +{ + _pmbus_write_byte(client, page, PMBUS_CLEAR_FAULTS); +} + +void wb_pmbus_clear_faults(struct i2c_client *client) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + int i; + + for (i = 0; i < data->info->pages; i++) + pmbus_clear_fault_page(client, i); +} +EXPORT_SYMBOL_GPL(wb_pmbus_clear_faults); + +static int pmbus_check_status_cml(struct i2c_client *client) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + int status, status2; + + status = data->read_status(client, -1); + if (status < 0 || (status & PB_STATUS_CML)) { + status2 = _pmbus_read_byte_data(client, -1, PMBUS_STATUS_CML); + if (status2 < 0 || (status2 & PB_CML_FAULT_INVALID_COMMAND)) + return -EIO; + } + return 0; +} + +static bool pmbus_check_register(struct i2c_client *client, + int (*func)(struct i2c_client *client, + int page, int reg), + int page, int reg) +{ + int rv; + struct pmbus_data *data = i2c_get_clientdata(client); + + rv = func(client, page, reg); + if (rv >= 0 && !(data->flags & PMBUS_SKIP_STATUS_CHECK)) + rv = pmbus_check_status_cml(client); + pmbus_clear_fault_page(client, -1); + return rv >= 0; +} + +static bool pmbus_check_status_register(struct i2c_client *client, int page) +{ + int status; + struct pmbus_data *data = i2c_get_clientdata(client); + + status = data->read_status(client, page); + if (status >= 0 && !(data->flags & PMBUS_SKIP_STATUS_CHECK) && + (status & PB_STATUS_CML)) { + status = _pmbus_read_byte_data(client, -1, PMBUS_STATUS_CML); + if (status < 0 || (status & PB_CML_FAULT_INVALID_COMMAND)) + status = -EIO; + } + + pmbus_clear_fault_page(client, -1); + return status >= 0; +} + +bool wb_pmbus_check_byte_register(struct i2c_client *client, int page, int reg) +{ + return pmbus_check_register(client, _pmbus_read_byte_data, page, reg); +} +EXPORT_SYMBOL_GPL(wb_pmbus_check_byte_register); + +bool wb_pmbus_check_word_register(struct i2c_client *client, int page, int reg) +{ + return pmbus_check_register(client, __pmbus_read_word_data, page, reg); +} +EXPORT_SYMBOL_GPL(wb_pmbus_check_word_register); + +const struct pmbus_driver_info *wb_pmbus_get_driver_info(struct i2c_client *client) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + + return data->info; +} +EXPORT_SYMBOL_GPL(wb_pmbus_get_driver_info); + +static int pmbus_read_status_byte(struct i2c_client *client, int page) +{ + return _pmbus_read_byte_data(client, page, PMBUS_STATUS_BYTE); +} + +static int pmbus_read_status_word(struct i2c_client *client, int page) +{ + return _pmbus_read_word_data(client, page, 0xff, PMBUS_STATUS_WORD); +} + +static int pmbus_get_status(struct i2c_client *client, int page, int reg) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + int status; + + switch (reg) { + case PMBUS_STATUS_WORD: + status = data->read_status(client, page); + if ((status < 0) || (data->has_status_word && (status == 0xffff)) + || (!data->has_status_word && (status == 0xff))) { + if (data->has_status_word) { + data->read_status = pmbus_read_status_byte; + } else { + data->read_status = pmbus_read_status_word; + } + data->has_status_word = !data->has_status_word; + status = data->read_status(client, page); + } + break; + default: + status = _pmbus_read_byte_data(client, page, reg); + break; + } + if (status < 0) + wb_pmbus_clear_faults(client); + return status; +} + +static void pmbus_update_sensor_data(struct i2c_client *client, struct pmbus_sensor *sensor) +{ + if (sensor->data < 0 || sensor->update) + sensor->data = _pmbus_read_word_data(client, sensor->page, + sensor->phase, sensor->reg); +} + +/* + * Convert linear sensor values to milli- or micro-units + * depending on sensor type. + */ +static s64 pmbus_reg2data_linear(struct pmbus_data *data, + struct pmbus_sensor *sensor) +{ + s16 exponent; + s32 mantissa; + s64 val; + + if (sensor->class == PSC_VOLTAGE_OUT) { /* LINEAR16 */ + exponent = data->exponent[sensor->page]; + mantissa = (u16) sensor->data; + } else { /* LINEAR11 */ + exponent = ((s16)sensor->data) >> 11; + mantissa = ((s16)((sensor->data & 0x7ff) << 5)) >> 5; + } + + val = mantissa; + + /* scale result to milli-units for all sensors except fans */ + if (sensor->class != PSC_FAN) + val = val * 1000LL; + + /* scale result to micro-units for power sensors */ + if (sensor->class == PSC_POWER) + val = val * 1000LL; + + if (exponent >= 0) + val <<= exponent; + else + val >>= -exponent; + + return val; +} + +/* + * Convert direct sensor values to milli- or micro-units + * depending on sensor type. + */ +static s64 pmbus_reg2data_direct(struct pmbus_data *data, + struct pmbus_sensor *sensor) +{ + s64 b, val = (s16)sensor->data; + s32 m, R; + + m = data->info->m[sensor->class]; + b = data->info->b[sensor->class]; + R = data->info->R[sensor->class]; + + if (m == 0) + return 0; + + /* X = 1/m * (Y * 10^-R - b) */ + R = -R; + /* scale result to milli-units for everything but fans */ + if (!(sensor->class == PSC_FAN || sensor->class == PSC_PWM)) { + R += 3; + b *= 1000; + } + + /* scale result to micro-units for power sensors */ + if (sensor->class == PSC_POWER) { + R += 3; + b *= 1000; + } + + while (R > 0) { + val *= 10; + R--; + } + while (R < 0) { + val = div_s64(val + 5LL, 10L); /* round closest */ + R++; + } + + val = div_s64(val - b, m); + return val; +} + +/* + * Convert VID sensor values to milli- or micro-units + * depending on sensor type. + */ +static s64 pmbus_reg2data_vid(struct pmbus_data *data, + struct pmbus_sensor *sensor) +{ + long val = sensor->data; + long rv = 0; + + switch (data->info->vrm_version[sensor->page]) { + case vr11: + if (val >= 0x02 && val <= 0xb2) + rv = DIV_ROUND_CLOSEST(160000 - (val - 2) * 625, 100); + break; + case vr12: + if (val >= 0x01) + rv = 250 + (val - 1) * 5; + break; + case vr13: + if (val >= 0x01) + rv = 500 + (val - 1) * 10; + break; + case imvp9: + if (val >= 0x01) + rv = 200 + (val - 1) * 10; + break; + case amd625mv: + if (val >= 0x0 && val <= 0xd8) + rv = DIV_ROUND_CLOSEST(155000 - val * 625, 100); + break; + } + return rv; +} + +static s64 pmbus_reg2data(struct pmbus_data *data, struct pmbus_sensor *sensor) +{ + s64 val; + + if (!sensor->convert) + return sensor->data; + + switch (data->info->format[sensor->class]) { + case direct: + val = pmbus_reg2data_direct(data, sensor); + break; + case vid: + val = pmbus_reg2data_vid(data, sensor); + break; + case linear: + default: + val = pmbus_reg2data_linear(data, sensor); + break; + } + return val; +} + +#define MAX_MANTISSA (1023 * 1000) +#define MIN_MANTISSA (511 * 1000) + +static u16 pmbus_data2reg_linear(struct pmbus_data *data, + struct pmbus_sensor *sensor, s64 val) +{ + s16 exponent = 0, mantissa; + bool negative = false; + + /* simple case */ + if (val == 0) + return 0; + + if (sensor->class == PSC_VOLTAGE_OUT) { + /* LINEAR16 does not support negative voltages */ + if (val < 0) + return 0; + + /* + * For a static exponents, we don't have a choice + * but to adjust the value to it. + */ + if (data->exponent[sensor->page] < 0) + val <<= -data->exponent[sensor->page]; + else + val >>= data->exponent[sensor->page]; + val = DIV_ROUND_CLOSEST_ULL(val, 1000); + return clamp_val(val, 0, 0xffff); + } + + if (val < 0) { + negative = true; + val = -val; + } + + /* Power is in uW. Convert to mW before converting. */ + if (sensor->class == PSC_POWER) + val = DIV_ROUND_CLOSEST_ULL(val, 1000); + + /* + * For simplicity, convert fan data to milli-units + * before calculating the exponent. + */ + if (sensor->class == PSC_FAN) + val = val * 1000LL; + + /* Reduce large mantissa until it fits into 10 bit */ + while (val >= MAX_MANTISSA && exponent < 15) { + exponent++; + val >>= 1; + } + /* Increase small mantissa to improve precision */ + while (val < MIN_MANTISSA && exponent > -15) { + exponent--; + val <<= 1; + } + + /* Convert mantissa from milli-units to units */ + mantissa = clamp_val(DIV_ROUND_CLOSEST_ULL(val, 1000), 0, 0x3ff); + + /* restore sign */ + if (negative) + mantissa = -mantissa; + + /* Convert to 5 bit exponent, 11 bit mantissa */ + return (mantissa & 0x7ff) | ((exponent << 11) & 0xf800); +} + +static u16 pmbus_data2reg_direct(struct pmbus_data *data, + struct pmbus_sensor *sensor, s64 val) +{ + s64 b; + s32 m, R; + + m = data->info->m[sensor->class]; + b = data->info->b[sensor->class]; + R = data->info->R[sensor->class]; + + /* Power is in uW. Adjust R and b. */ + if (sensor->class == PSC_POWER) { + R -= 3; + b *= 1000; + } + + /* Calculate Y = (m * X + b) * 10^R */ + if (!(sensor->class == PSC_FAN || sensor->class == PSC_PWM)) { + R -= 3; /* Adjust R and b for data in milli-units */ + b *= 1000; + } + val = val * m + b; + + while (R > 0) { + val *= 10; + R--; + } + while (R < 0) { + val = div_s64(val + 5LL, 10L); /* round closest */ + R++; + } + + return (u16)clamp_val(val, S16_MIN, S16_MAX); +} + +static u16 pmbus_data2reg_vid(struct pmbus_data *data, + struct pmbus_sensor *sensor, s64 val) +{ + val = clamp_val(val, 500, 1600); + + return 2 + DIV_ROUND_CLOSEST_ULL((1600LL - val) * 100LL, 625); +} + +static u16 pmbus_data2reg(struct pmbus_data *data, + struct pmbus_sensor *sensor, s64 val) +{ + u16 regval; + + if (!sensor->convert) + return val; + + switch (data->info->format[sensor->class]) { + case direct: + regval = pmbus_data2reg_direct(data, sensor, val); + break; + case vid: + regval = pmbus_data2reg_vid(data, sensor, val); + break; + case linear: + default: + regval = pmbus_data2reg_linear(data, sensor, val); + break; + } + return regval; +} + +/* + * Return boolean calculated from converted data. + * defines a status register index and mask. + * The mask is in the lower 8 bits, the register index is in bits 8..23. + * + * The associated pmbus_boolean structure contains optional pointers to two + * sensor attributes. If specified, those attributes are compared against each + * other to determine if a limit has been exceeded. + * + * If the sensor attribute pointers are NULL, the function returns true if + * (status[reg] & mask) is true. + * + * If sensor attribute pointers are provided, a comparison against a specified + * limit has to be performed to determine the boolean result. + * In this case, the function returns true if v1 >= v2 (where v1 and v2 are + * sensor values referenced by sensor attribute pointers s1 and s2). + * + * To determine if an object exceeds upper limits, specify = . + * To determine if an object exceeds lower limits, specify = . + * + * If a negative value is stored in any of the referenced registers, this value + * reflects an error code which will be returned. + */ +static int pmbus_get_boolean(struct i2c_client *client, struct pmbus_boolean *b, + int index) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + struct pmbus_sensor *s1 = b->s1; + struct pmbus_sensor *s2 = b->s2; + u16 mask = pb_index_to_mask(index); + u8 page = pb_index_to_page(index); + u16 reg = pb_index_to_reg(index); + int ret, status; + u16 regval; + + mutex_lock(&data->update_lock); + status = pmbus_get_status(client, page, reg); + if (status < 0) { + ret = status; + goto unlock; + } + + if (s1) + pmbus_update_sensor_data(client, s1); + if (s2) + pmbus_update_sensor_data(client, s2); + + regval = status & mask; + if (s1 && s2) { + s64 v1, v2; + + if (s1->data < 0) { + ret = s1->data; + goto unlock; + } + if (s2->data < 0) { + ret = s2->data; + goto unlock; + } + + v1 = pmbus_reg2data(data, s1); + v2 = pmbus_reg2data(data, s2); + ret = !!(regval && v1 >= v2); + } else { + ret = !!regval; + } +unlock: + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t pmbus_show_boolean(struct device *dev, + struct device_attribute *da, char *buf) +{ + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct pmbus_boolean *boolean = to_pmbus_boolean(attr); + struct i2c_client *client = to_i2c_client(dev->parent); + int val; + + val = pmbus_get_boolean(client, boolean, attr->index); + if (val < 0) + return val; + return snprintf(buf, PAGE_SIZE, "%d\n", val); +} + +static ssize_t pmbus_show_sensor(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct pmbus_sensor *sensor = to_pmbus_sensor(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + ssize_t ret; + + mutex_lock(&data->update_lock); + pmbus_update_sensor_data(client, sensor); + if (sensor->data < 0) + ret = sensor->data; + else + ret = snprintf(buf, PAGE_SIZE, "%lld\n", pmbus_reg2data(data, sensor)); + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t pmbus_set_sensor(struct device *dev, + struct device_attribute *devattr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct pmbus_data *data = i2c_get_clientdata(client); + struct pmbus_sensor *sensor = to_pmbus_sensor(devattr); + ssize_t rv = count; + s64 val; + int ret; + u16 regval; + + if (kstrtos64(buf, 10, &val) < 0) + return -EINVAL; + + mutex_lock(&data->update_lock); + regval = pmbus_data2reg(data, sensor, val); + ret = _pmbus_write_word_data(client, sensor->page, sensor->reg, regval); + if (ret < 0) + rv = ret; + else + sensor->data = regval; + mutex_unlock(&data->update_lock); + return rv; +} + +static ssize_t pmbus_show_label(struct device *dev, + struct device_attribute *da, char *buf) +{ + struct pmbus_label *label = to_pmbus_label(da); + + return snprintf(buf, PAGE_SIZE, "%s\n", label->label); +} + +static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr) +{ + if (data->num_attributes >= data->max_attributes - 1) { + int new_max_attrs = data->max_attributes + PMBUS_ATTR_ALLOC_SIZE; + void *new_attrs = devm_krealloc(data->dev, data->group.attrs, + new_max_attrs * sizeof(void *), + GFP_KERNEL); + if (!new_attrs) + return -ENOMEM; + data->group.attrs = new_attrs; + data->max_attributes = new_max_attrs; + } + + data->group.attrs[data->num_attributes++] = attr; + data->group.attrs[data->num_attributes] = NULL; + return 0; +} + +static void pmbus_dev_attr_init(struct device_attribute *dev_attr, + const char *name, + umode_t mode, + ssize_t (*show)(struct device *dev, + struct device_attribute *attr, + char *buf), + ssize_t (*store)(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count)) +{ + 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 void pmbus_attr_init(struct sensor_device_attribute *a, + const char *name, + umode_t mode, + ssize_t (*show)(struct device *dev, + struct device_attribute *attr, + char *buf), + ssize_t (*store)(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count), + int idx) +{ + pmbus_dev_attr_init(&a->dev_attr, name, mode, show, store); + a->index = idx; +} + +static int pmbus_add_boolean(struct pmbus_data *data, + const char *name, const char *type, int seq, + struct pmbus_sensor *s1, + struct pmbus_sensor *s2, + u8 page, u16 reg, u16 mask) +{ + struct pmbus_boolean *boolean; + struct sensor_device_attribute *a; + + if (WARN((s1 && !s2) || (!s1 && s2), "Bad s1/s2 parameters\n")) + return -EINVAL; + + boolean = devm_kzalloc(data->dev, sizeof(*boolean), GFP_KERNEL); + if (!boolean) + return -ENOMEM; + + a = &boolean->attribute; + + snprintf(boolean->name, sizeof(boolean->name), "%s%d_%s", + name, seq, type); + boolean->s1 = s1; + boolean->s2 = s2; + pmbus_attr_init(a, boolean->name, 0444, pmbus_show_boolean, NULL, + pb_reg_to_index(page, reg, mask)); + + return pmbus_add_attribute(data, &a->dev_attr.attr); +} + +static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data, + const char *name, const char *type, + int seq, int page, int phase, + int reg, + enum pmbus_sensor_classes class, + bool update, bool readonly, + bool convert) +{ + struct pmbus_sensor *sensor; + struct device_attribute *a; + + sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL); + if (!sensor) + return NULL; + a = &sensor->attribute; + + if (type) + snprintf(sensor->name, sizeof(sensor->name), "%s%d_%s", + name, seq, type); + else + snprintf(sensor->name, sizeof(sensor->name), "%s%d", + name, seq); + + if (data->flags & PMBUS_WRITE_PROTECTED) + readonly = true; + + sensor->page = page; + sensor->phase = phase; + sensor->reg = reg; + sensor->class = class; + sensor->update = update; + sensor->convert = convert; + sensor->data = -ENODATA; + pmbus_dev_attr_init(a, sensor->name, + readonly ? 0444 : 0644, + pmbus_show_sensor, pmbus_set_sensor); + + if (pmbus_add_attribute(data, &a->attr)) + return NULL; + + sensor->next = data->sensors; + data->sensors = sensor; + + return sensor; +} + +static int pmbus_add_label(struct pmbus_data *data, + const char *name, int seq, + const char *lstring, int index, int phase) +{ + struct pmbus_label *label; + struct device_attribute *a; + + label = devm_kzalloc(data->dev, sizeof(*label), GFP_KERNEL); + if (!label) + return -ENOMEM; + + a = &label->attribute; + + snprintf(label->name, sizeof(label->name), "%s%d_label", name, seq); + if (!index) { + if (phase == 0xff) + strncpy(label->label, lstring, + sizeof(label->label) - 1); + else + snprintf(label->label, sizeof(label->label), "%s.%d", + lstring, phase); + } else { + if (phase == 0xff) + snprintf(label->label, sizeof(label->label), "%s%d", + lstring, index); + else + snprintf(label->label, sizeof(label->label), "%s%d.%d", + lstring, index, phase); + } + + pmbus_dev_attr_init(a, label->name, 0444, pmbus_show_label, NULL); + return pmbus_add_attribute(data, &a->attr); +} + +/* + * Search for attributes. Allocate sensors, booleans, and labels as needed. + */ + +/* + * The pmbus_limit_attr structure describes a single limit attribute + * and its associated alarm attribute. + */ +struct pmbus_limit_attr { + u16 reg; /* Limit register */ + u16 sbit; /* Alarm attribute status bit */ + bool update; /* True if register needs updates */ + bool low; /* True if low limit; for limits with compare + functions only */ + const char *attr; /* Attribute name */ + const char *alarm; /* Alarm attribute name */ +}; + +/* + * The pmbus_sensor_attr structure describes one sensor attribute. This + * description includes a reference to the associated limit attributes. + */ +struct pmbus_sensor_attr { + u16 reg; /* sensor register */ + u16 gbit; /* generic status bit */ + u8 nlimit; /* # of limit registers */ + enum pmbus_sensor_classes class;/* sensor class */ + const char *label; /* sensor label */ + bool paged; /* true if paged sensor */ + bool update; /* true if update needed */ + bool compare; /* true if compare function needed */ + u32 func; /* sensor mask */ + u32 sfunc; /* sensor status mask */ + int sreg; /* status register */ + const struct pmbus_limit_attr *limit;/* limit registers */ +}; + +/* + * Add a set of limit attributes and, if supported, the associated + * alarm attributes. + * returns 0 if no alarm register found, 1 if an alarm register was found, + * < 0 on errors. + */ +static int pmbus_add_limit_attrs(struct i2c_client *client, + struct pmbus_data *data, + const struct pmbus_driver_info *info, + const char *name, int index, int page, + struct pmbus_sensor *base, + const struct pmbus_sensor_attr *attr) +{ + const struct pmbus_limit_attr *l = attr->limit; + int nlimit = attr->nlimit; + int have_alarm = 0; + int i, ret; + struct pmbus_sensor *curr; + + for (i = 0; i < nlimit; i++) { + if (wb_pmbus_check_word_register(client, page, l->reg)) { + curr = pmbus_add_sensor(data, name, l->attr, index, + page, 0xff, l->reg, attr->class, + attr->update || l->update, + false, true); + if (!curr) + return -ENOMEM; + if (l->sbit && (info->func[page] & attr->sfunc)) { + ret = pmbus_add_boolean(data, name, + l->alarm, index, + attr->compare ? l->low ? curr : base + : NULL, + attr->compare ? l->low ? base : curr + : NULL, + page, attr->sreg, l->sbit); + if (ret) + return ret; + have_alarm = 1; + } + } + l++; + } + return have_alarm; +} + +static int pmbus_add_sensor_attrs_one(struct i2c_client *client, + struct pmbus_data *data, + const struct pmbus_driver_info *info, + const char *name, + int index, int page, int phase, + const struct pmbus_sensor_attr *attr, + bool paged) +{ + struct pmbus_sensor *base; + bool upper = !!(attr->gbit & 0xff00); /* need to check STATUS_WORD */ + int ret; + + if (attr->label) { + ret = pmbus_add_label(data, name, index, attr->label, + paged ? page + 1 : 0, phase); + if (ret) + return ret; + } + base = pmbus_add_sensor(data, name, "input", index, page, phase, + attr->reg, attr->class, true, true, true); + if (!base) + return -ENOMEM; + /* No limit and alarm attributes for phase specific sensors */ + if (attr->sfunc && phase == 0xff) { + ret = pmbus_add_limit_attrs(client, data, info, name, + index, page, base, attr); + if (ret < 0) + return ret; + /* + * Add generic alarm attribute only if there are no individual + * alarm attributes, if there is a global alarm bit, and if + * the generic status register (word or byte, depending on + * which global bit is set) for this page is accessible. + */ + if (!ret && attr->gbit && + (!upper || (upper && data->has_status_word)) && + pmbus_check_status_register(client, page)) { + ret = pmbus_add_boolean(data, name, "alarm", index, + NULL, NULL, + page, PMBUS_STATUS_WORD, + attr->gbit); + if (ret) + return ret; + } + } + return 0; +} + +static bool pmbus_sensor_is_paged(const struct pmbus_driver_info *info, + const struct pmbus_sensor_attr *attr) +{ + int p; + + if (attr->paged) + return true; + + /* + * Some attributes may be present on more than one page despite + * not being marked with the paged attribute. If that is the case, + * then treat the sensor as being paged and add the page suffix to the + * attribute name. + * We don't just add the paged attribute to all such attributes, in + * order to maintain the un-suffixed labels in the case where the + * attribute is only on page 0. + */ + for (p = 1; p < info->pages; p++) { + if (info->func[p] & attr->func) + return true; + } + return false; +} + +static int pmbus_add_sensor_attrs(struct i2c_client *client, + struct pmbus_data *data, + const char *name, + const struct pmbus_sensor_attr *attrs, + int nattrs) +{ + const struct pmbus_driver_info *info = data->info; + int index, i; + int ret; + + index = 1; + for (i = 0; i < nattrs; i++) { + int page, pages; + bool paged = pmbus_sensor_is_paged(info, attrs); + + pages = paged ? info->pages : 1; + for (page = 0; page < pages; page++) { + if (!(info->func[page] & attrs->func)) + continue; + ret = pmbus_add_sensor_attrs_one(client, data, info, + name, index, page, + 0xff, attrs, paged); + if (ret) + return ret; + index++; + if (info->phases[page]) { + int phase; + + for (phase = 0; phase < info->phases[page]; + phase++) { + if (!(info->pfunc[phase] & attrs->func)) + continue; + ret = pmbus_add_sensor_attrs_one(client, + data, info, name, index, page, + phase, attrs, paged); + if (ret) + return ret; + index++; + } + } + } + attrs++; + } + return 0; +} + +static const struct pmbus_limit_attr vin_limit_attrs[] = { + { + .reg = PMBUS_VIN_UV_WARN_LIMIT, + .attr = "min", + .alarm = "min_alarm", + .sbit = PB_VOLTAGE_UV_WARNING, + }, { + .reg = PMBUS_VIN_UV_FAULT_LIMIT, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_VOLTAGE_UV_FAULT, + }, { + .reg = PMBUS_VIN_OV_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_VOLTAGE_OV_WARNING, + }, { + .reg = PMBUS_VIN_OV_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_VOLTAGE_OV_FAULT, + }, { + .reg = PMBUS_VIRT_READ_VIN_AVG, + .update = true, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_VIN_MIN, + .update = true, + .attr = "lowest", + }, { + .reg = PMBUS_VIRT_READ_VIN_MAX, + .update = true, + .attr = "highest", + }, { + .reg = PMBUS_VIRT_RESET_VIN_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_VIN_MIN, + .attr = "rated_min", + }, { + .reg = PMBUS_MFR_VIN_MAX, + .attr = "rated_max", + }, +}; + +static const struct pmbus_limit_attr vmon_limit_attrs[] = { + { + .reg = PMBUS_VIRT_VMON_UV_WARN_LIMIT, + .attr = "min", + .alarm = "min_alarm", + .sbit = PB_VOLTAGE_UV_WARNING, + }, { + .reg = PMBUS_VIRT_VMON_UV_FAULT_LIMIT, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_VOLTAGE_UV_FAULT, + }, { + .reg = PMBUS_VIRT_VMON_OV_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_VOLTAGE_OV_WARNING, + }, { + .reg = PMBUS_VIRT_VMON_OV_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_VOLTAGE_OV_FAULT, + } +}; + +static const struct pmbus_limit_attr vout_limit_attrs[] = { + { + .reg = PMBUS_VOUT_UV_WARN_LIMIT, + .attr = "min", + .alarm = "min_alarm", + .sbit = PB_VOLTAGE_UV_WARNING, + }, { + .reg = PMBUS_VOUT_UV_FAULT_LIMIT, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_VOLTAGE_UV_FAULT, + }, { + .reg = PMBUS_VOUT_OV_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_VOLTAGE_OV_WARNING, + }, { + .reg = PMBUS_VOUT_OV_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_VOLTAGE_OV_FAULT, + }, { + .reg = PMBUS_VIRT_READ_VOUT_AVG, + .update = true, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_VOUT_MIN, + .update = true, + .attr = "lowest", + }, { + .reg = PMBUS_VIRT_READ_VOUT_MAX, + .update = true, + .attr = "highest", + }, { + .reg = PMBUS_VIRT_RESET_VOUT_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_VOUT_MIN, + .attr = "rated_min", + }, { + .reg = PMBUS_MFR_VOUT_MAX, + .attr = "rated_max", + }, +}; + +static const struct pmbus_sensor_attr voltage_attributes[] = { + { + .reg = PMBUS_READ_VIN, + .class = PSC_VOLTAGE_IN, + .label = "vin", + .func = PMBUS_HAVE_VIN, + .sfunc = PMBUS_HAVE_STATUS_INPUT, + .sreg = PMBUS_STATUS_INPUT, + .gbit = PB_STATUS_VIN_UV, + .limit = vin_limit_attrs, + .nlimit = ARRAY_SIZE(vin_limit_attrs), + }, { + .reg = PMBUS_VIRT_READ_VMON, + .class = PSC_VOLTAGE_IN, + .label = "vmon", + .func = PMBUS_HAVE_VMON, + .sfunc = PMBUS_HAVE_STATUS_VMON, + .sreg = PMBUS_VIRT_STATUS_VMON, + .limit = vmon_limit_attrs, + .nlimit = ARRAY_SIZE(vmon_limit_attrs), + }, { + .reg = PMBUS_READ_VCAP, + .class = PSC_VOLTAGE_IN, + .label = "vcap", + .func = PMBUS_HAVE_VCAP, + }, { + .reg = PMBUS_READ_VOUT, + .class = PSC_VOLTAGE_OUT, + .label = "vout", + .paged = true, + .func = PMBUS_HAVE_VOUT, + .sfunc = PMBUS_HAVE_STATUS_VOUT, + .sreg = PMBUS_STATUS_VOUT, + .gbit = PB_STATUS_VOUT_OV, + .limit = vout_limit_attrs, + .nlimit = ARRAY_SIZE(vout_limit_attrs), + } +}; + +/* Current attributes */ + +static const struct pmbus_limit_attr iin_limit_attrs[] = { + { + .reg = PMBUS_IIN_OC_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_IIN_OC_WARNING, + }, { + .reg = PMBUS_IIN_OC_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_IIN_OC_FAULT, + }, { + .reg = PMBUS_VIRT_READ_IIN_AVG, + .update = true, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_IIN_MIN, + .update = true, + .attr = "lowest", + }, { + .reg = PMBUS_VIRT_READ_IIN_MAX, + .update = true, + .attr = "highest", + }, { + .reg = PMBUS_VIRT_RESET_IIN_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_IIN_MAX, + .attr = "rated_max", + }, +}; + +static const struct pmbus_limit_attr iout_limit_attrs[] = { + { + .reg = PMBUS_IOUT_OC_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_IOUT_OC_WARNING, + }, { + .reg = PMBUS_IOUT_UC_FAULT_LIMIT, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_IOUT_UC_FAULT, + }, { + .reg = PMBUS_IOUT_OC_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_IOUT_OC_FAULT, + }, { + .reg = PMBUS_VIRT_READ_IOUT_AVG, + .update = true, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_IOUT_MIN, + .update = true, + .attr = "lowest", + }, { + .reg = PMBUS_VIRT_READ_IOUT_MAX, + .update = true, + .attr = "highest", + }, { + .reg = PMBUS_VIRT_RESET_IOUT_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_IOUT_MAX, + .attr = "rated_max", + }, +}; + +static const struct pmbus_sensor_attr current_attributes[] = { + { + .reg = PMBUS_READ_IIN, + .class = PSC_CURRENT_IN, + .label = "iin", + .func = PMBUS_HAVE_IIN, + .sfunc = PMBUS_HAVE_STATUS_INPUT, + .sreg = PMBUS_STATUS_INPUT, + .gbit = PB_STATUS_INPUT, + .limit = iin_limit_attrs, + .nlimit = ARRAY_SIZE(iin_limit_attrs), + }, { + .reg = PMBUS_READ_IOUT, + .class = PSC_CURRENT_OUT, + .label = "iout", + .paged = true, + .func = PMBUS_HAVE_IOUT, + .sfunc = PMBUS_HAVE_STATUS_IOUT, + .sreg = PMBUS_STATUS_IOUT, + .gbit = PB_STATUS_IOUT_OC, + .limit = iout_limit_attrs, + .nlimit = ARRAY_SIZE(iout_limit_attrs), + } +}; + +/* Power attributes */ + +static const struct pmbus_limit_attr pin_limit_attrs[] = { + { + .reg = PMBUS_PIN_OP_WARN_LIMIT, + .attr = "max", + .alarm = "alarm", + .sbit = PB_PIN_OP_WARNING, + }, { + .reg = PMBUS_VIRT_READ_PIN_AVG, + .update = true, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_PIN_MIN, + .update = true, + .attr = "input_lowest", + }, { + .reg = PMBUS_VIRT_READ_PIN_MAX, + .update = true, + .attr = "input_highest", + }, { + .reg = PMBUS_VIRT_RESET_PIN_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_PIN_MAX, + .attr = "rated_max", + }, +}; + +static const struct pmbus_limit_attr pout_limit_attrs[] = { + { + .reg = PMBUS_POUT_MAX, + .attr = "cap", + .alarm = "cap_alarm", + .sbit = PB_POWER_LIMITING, + }, { + .reg = PMBUS_POUT_OP_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_POUT_OP_WARNING, + }, { + .reg = PMBUS_POUT_OP_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_POUT_OP_FAULT, + }, { + .reg = PMBUS_VIRT_READ_POUT_AVG, + .update = true, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_POUT_MIN, + .update = true, + .attr = "input_lowest", + }, { + .reg = PMBUS_VIRT_READ_POUT_MAX, + .update = true, + .attr = "input_highest", + }, { + .reg = PMBUS_VIRT_RESET_POUT_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_POUT_MAX, + .attr = "rated_max", + }, +}; + +static const struct pmbus_sensor_attr power_attributes[] = { + { + .reg = PMBUS_READ_PIN, + .class = PSC_POWER, + .label = "pin", + .func = PMBUS_HAVE_PIN, + .sfunc = PMBUS_HAVE_STATUS_INPUT, + .sreg = PMBUS_STATUS_INPUT, + .gbit = PB_STATUS_INPUT, + .limit = pin_limit_attrs, + .nlimit = ARRAY_SIZE(pin_limit_attrs), + }, { + .reg = PMBUS_READ_POUT, + .class = PSC_POWER, + .label = "pout", + .paged = true, + .func = PMBUS_HAVE_POUT, + .sfunc = PMBUS_HAVE_STATUS_IOUT, + .sreg = PMBUS_STATUS_IOUT, + .limit = pout_limit_attrs, + .nlimit = ARRAY_SIZE(pout_limit_attrs), + } +}; + +/* Temperature atributes */ + +static const struct pmbus_limit_attr temp_limit_attrs[] = { + { + .reg = PMBUS_UT_WARN_LIMIT, + .low = true, + .attr = "min", + .alarm = "min_alarm", + .sbit = PB_TEMP_UT_WARNING, + }, { + .reg = PMBUS_UT_FAULT_LIMIT, + .low = true, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_TEMP_UT_FAULT, + }, { + .reg = PMBUS_OT_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_TEMP_OT_WARNING, + }, { + .reg = PMBUS_OT_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_TEMP_OT_FAULT, + }, { + .reg = PMBUS_VIRT_READ_TEMP_MIN, + .attr = "lowest", + }, { + .reg = PMBUS_VIRT_READ_TEMP_AVG, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_TEMP_MAX, + .attr = "highest", + }, { + .reg = PMBUS_VIRT_RESET_TEMP_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_MAX_TEMP_1, + .attr = "rated_max", + }, +}; + +static const struct pmbus_limit_attr temp_limit_attrs2[] = { + { + .reg = PMBUS_UT_WARN_LIMIT, + .low = true, + .attr = "min", + .alarm = "min_alarm", + .sbit = PB_TEMP_UT_WARNING, + }, { + .reg = PMBUS_UT_FAULT_LIMIT, + .low = true, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_TEMP_UT_FAULT, + }, { + .reg = PMBUS_OT_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_TEMP_OT_WARNING, + }, { + .reg = PMBUS_OT_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_TEMP_OT_FAULT, + }, { + .reg = PMBUS_VIRT_READ_TEMP2_MIN, + .attr = "lowest", + }, { + .reg = PMBUS_VIRT_READ_TEMP2_AVG, + .attr = "average", + }, { + .reg = PMBUS_VIRT_READ_TEMP2_MAX, + .attr = "highest", + }, { + .reg = PMBUS_VIRT_RESET_TEMP2_HISTORY, + .attr = "reset_history", + }, { + .reg = PMBUS_MFR_MAX_TEMP_2, + .attr = "rated_max", + }, +}; + +static const struct pmbus_limit_attr temp_limit_attrs3[] = { + { + .reg = PMBUS_UT_WARN_LIMIT, + .low = true, + .attr = "min", + .alarm = "min_alarm", + .sbit = PB_TEMP_UT_WARNING, + }, { + .reg = PMBUS_UT_FAULT_LIMIT, + .low = true, + .attr = "lcrit", + .alarm = "lcrit_alarm", + .sbit = PB_TEMP_UT_FAULT, + }, { + .reg = PMBUS_OT_WARN_LIMIT, + .attr = "max", + .alarm = "max_alarm", + .sbit = PB_TEMP_OT_WARNING, + }, { + .reg = PMBUS_OT_FAULT_LIMIT, + .attr = "crit", + .alarm = "crit_alarm", + .sbit = PB_TEMP_OT_FAULT, + }, { + .reg = PMBUS_MFR_MAX_TEMP_3, + .attr = "rated_max", + }, +}; + +static const struct pmbus_sensor_attr temp_attributes[] = { + { + .reg = PMBUS_READ_TEMPERATURE_1, + .class = PSC_TEMPERATURE, + .paged = true, + .update = true, + .compare = true, + .func = PMBUS_HAVE_TEMP, + .sfunc = PMBUS_HAVE_STATUS_TEMP, + .sreg = PMBUS_STATUS_TEMPERATURE, + .gbit = PB_STATUS_TEMPERATURE, + .limit = temp_limit_attrs, + .nlimit = ARRAY_SIZE(temp_limit_attrs), + }, { + .reg = PMBUS_READ_TEMPERATURE_2, + .class = PSC_TEMPERATURE, + .paged = true, + .update = true, + .compare = true, + .func = PMBUS_HAVE_TEMP2, + .sfunc = PMBUS_HAVE_STATUS_TEMP, + .sreg = PMBUS_STATUS_TEMPERATURE, + .gbit = PB_STATUS_TEMPERATURE, + .limit = temp_limit_attrs2, + .nlimit = ARRAY_SIZE(temp_limit_attrs2), + }, { + .reg = PMBUS_READ_TEMPERATURE_3, + .class = PSC_TEMPERATURE, + .paged = true, + .update = true, + .compare = true, + .func = PMBUS_HAVE_TEMP3, + .sfunc = PMBUS_HAVE_STATUS_TEMP, + .sreg = PMBUS_STATUS_TEMPERATURE, + .gbit = PB_STATUS_TEMPERATURE, + .limit = temp_limit_attrs3, + .nlimit = ARRAY_SIZE(temp_limit_attrs3), + } +}; + +static const int pmbus_fan_registers[] = { + PMBUS_READ_FAN_SPEED_1, + PMBUS_READ_FAN_SPEED_2, + PMBUS_READ_FAN_SPEED_3, + PMBUS_READ_FAN_SPEED_4 +}; + +static const int pmbus_fan_status_registers[] = { + PMBUS_STATUS_FAN_12, + PMBUS_STATUS_FAN_12, + PMBUS_STATUS_FAN_34, + PMBUS_STATUS_FAN_34 +}; + +static const u32 pmbus_fan_flags[] = { + PMBUS_HAVE_FAN12, + PMBUS_HAVE_FAN12, + PMBUS_HAVE_FAN34, + PMBUS_HAVE_FAN34 +}; + +static const u32 pmbus_fan_status_flags[] = { + PMBUS_HAVE_STATUS_FAN12, + PMBUS_HAVE_STATUS_FAN12, + PMBUS_HAVE_STATUS_FAN34, + PMBUS_HAVE_STATUS_FAN34 +}; + +/* Fans */ + +/* Precondition: FAN_CONFIG_x_y and FAN_COMMAND_x must exist for the fan ID */ +static int pmbus_add_fan_ctrl(struct i2c_client *client, + struct pmbus_data *data, int index, int page, int id, + u8 config) +{ + struct pmbus_sensor *sensor; + + sensor = pmbus_add_sensor(data, "fan", "target", index, page, + 0xff, PMBUS_VIRT_FAN_TARGET_1 + id, PSC_FAN, + false, false, true); + + if (!sensor) + return -ENOMEM; + + if (!((data->info->func[page] & PMBUS_HAVE_PWM12) || + (data->info->func[page] & PMBUS_HAVE_PWM34))) + return 0; + + sensor = pmbus_add_sensor(data, "pwm", NULL, index, page, + 0xff, PMBUS_VIRT_PWM_1 + id, PSC_PWM, + false, false, true); + + if (!sensor) + return -ENOMEM; + + sensor = pmbus_add_sensor(data, "pwm", "enable", index, page, + 0xff, PMBUS_VIRT_PWM_ENABLE_1 + id, PSC_PWM, + true, false, false); + + if (!sensor) + return -ENOMEM; + + return 0; +} + +static int pmbus_add_fan_attributes(struct i2c_client *client, + struct pmbus_data *data) +{ + const struct pmbus_driver_info *info = data->info; + int index = 1; + int page; + int ret; + + for (page = 0; page < info->pages; page++) { + int f; + + for (f = 0; f < ARRAY_SIZE(pmbus_fan_registers); f++) { + int regval; + + if (!(info->func[page] & pmbus_fan_flags[f])) + break; + + if (!wb_pmbus_check_word_register(client, page, + pmbus_fan_registers[f])) + break; + + /* + * Skip fan if not installed. + * Each fan configuration register covers multiple fans, + * so we have to do some magic. + */ + regval = _pmbus_read_byte_data(client, page, + pmbus_fan_config_registers[f]); + if (regval < 0 || + (!(regval & (PB_FAN_1_INSTALLED >> ((f & 1) * 4))))) + continue; + + if (pmbus_add_sensor(data, "fan", "input", index, + page, 0xff, pmbus_fan_registers[f], + PSC_FAN, true, true, true) == NULL) + return -ENOMEM; + + /* Fan control */ + if (wb_pmbus_check_word_register(client, page, + pmbus_fan_command_registers[f])) { + ret = pmbus_add_fan_ctrl(client, data, index, + page, f, regval); + if (ret < 0) + return ret; + } + + /* + * Each fan status register covers multiple fans, + * so we have to do some magic. + */ + if ((info->func[page] & pmbus_fan_status_flags[f]) && + wb_pmbus_check_byte_register(client, + page, pmbus_fan_status_registers[f])) { + int reg; + + if (f > 1) /* fan 3, 4 */ + reg = PMBUS_STATUS_FAN_34; + else + reg = PMBUS_STATUS_FAN_12; + ret = pmbus_add_boolean(data, "fan", + "alarm", index, NULL, NULL, page, reg, + PB_FAN_FAN1_WARNING >> (f & 1)); + if (ret) + return ret; + ret = pmbus_add_boolean(data, "fan", + "fault", index, NULL, NULL, page, reg, + PB_FAN_FAN1_FAULT >> (f & 1)); + if (ret) + return ret; + } + index++; + } + } + return 0; +} + +struct pmbus_samples_attr { + int reg; + char *name; +}; + +struct pmbus_samples_reg { + int page; + struct pmbus_samples_attr *attr; + struct device_attribute dev_attr; +}; + +static struct pmbus_samples_attr pmbus_samples_registers[] = { + { + .reg = PMBUS_VIRT_SAMPLES, + .name = "samples", + }, { + .reg = PMBUS_VIRT_IN_SAMPLES, + .name = "in_samples", + }, { + .reg = PMBUS_VIRT_CURR_SAMPLES, + .name = "curr_samples", + }, { + .reg = PMBUS_VIRT_POWER_SAMPLES, + .name = "power_samples", + }, { + .reg = PMBUS_VIRT_TEMP_SAMPLES, + .name = "temp_samples", + } +}; + +#define to_samples_reg(x) container_of(x, struct pmbus_samples_reg, dev_attr) + +static ssize_t pmbus_show_samples(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + int val; + struct i2c_client *client = to_i2c_client(dev->parent); + struct pmbus_samples_reg *reg = to_samples_reg(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + mutex_lock(&data->update_lock); + val = _pmbus_read_word_data(client, reg->page, 0xff, reg->attr->reg); + mutex_unlock(&data->update_lock); + if (val < 0) + return val; + + return snprintf(buf, PAGE_SIZE, "%d\n", val); +} + +static ssize_t pmbus_set_samples(struct device *dev, + struct device_attribute *devattr, + const char *buf, size_t count) +{ + int ret; + long val; + struct i2c_client *client = to_i2c_client(dev->parent); + struct pmbus_samples_reg *reg = to_samples_reg(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if (kstrtol(buf, 0, &val) < 0) + return -EINVAL; + + mutex_lock(&data->update_lock); + ret = _pmbus_write_word_data(client, reg->page, reg->attr->reg, val); + mutex_unlock(&data->update_lock); + + return ret ? : count; +} + +static int pmbus_add_samples_attr(struct pmbus_data *data, int page, + struct pmbus_samples_attr *attr) +{ + struct pmbus_samples_reg *reg; + + reg = devm_kzalloc(data->dev, sizeof(*reg), GFP_KERNEL); + if (!reg) + return -ENOMEM; + + reg->attr = attr; + reg->page = page; + + pmbus_dev_attr_init(®->dev_attr, attr->name, 0644, + pmbus_show_samples, pmbus_set_samples); + + return pmbus_add_attribute(data, ®->dev_attr.attr); +} + +static int pmbus_add_samples_attributes(struct i2c_client *client, + struct pmbus_data *data) +{ + const struct pmbus_driver_info *info = data->info; + int s; + + if (!(info->func[0] & PMBUS_HAVE_SAMPLES)) + return 0; + + for (s = 0; s < ARRAY_SIZE(pmbus_samples_registers); s++) { + struct pmbus_samples_attr *attr; + int ret; + + attr = &pmbus_samples_registers[s]; + if (!wb_pmbus_check_word_register(client, 0, attr->reg)) + continue; + + ret = pmbus_add_samples_attr(data, 0, attr); + if (ret) + return ret; + } + + return 0; +} + +static int pmbus_find_attributes(struct i2c_client *client, + struct pmbus_data *data) +{ + int ret; + + /* Voltage sensors */ + ret = pmbus_add_sensor_attrs(client, data, "in", voltage_attributes, + ARRAY_SIZE(voltage_attributes)); + if (ret) + return ret; + + /* Current sensors */ + ret = pmbus_add_sensor_attrs(client, data, "curr", current_attributes, + ARRAY_SIZE(current_attributes)); + if (ret) + return ret; + + /* Power sensors */ + ret = pmbus_add_sensor_attrs(client, data, "power", power_attributes, + ARRAY_SIZE(power_attributes)); + if (ret) + return ret; + + /* Temperature sensors */ + ret = pmbus_add_sensor_attrs(client, data, "temp", temp_attributes, + ARRAY_SIZE(temp_attributes)); + if (ret) + return ret; + + /* Fans */ + ret = pmbus_add_fan_attributes(client, data); + if (ret) + return ret; + + ret = pmbus_add_samples_attributes(client, data); + return ret; +} + +/* + * Identify chip parameters. + * This function is called for all chips. + */ +static int pmbus_identify_common(struct i2c_client *client, + struct pmbus_data *data, int page) +{ + int vout_mode = -1; + + if (wb_pmbus_check_byte_register(client, page, PMBUS_VOUT_MODE)) + vout_mode = _pmbus_read_byte_data(client, page, + PMBUS_VOUT_MODE); + if (vout_mode >= 0 && vout_mode != 0xff) { + /* + * Not all chips support the VOUT_MODE command, + * so a failure to read it is not an error. + */ + switch (vout_mode >> 5) { + case 0: /* linear mode */ + if (data->info->format[PSC_VOLTAGE_OUT] != linear) + return -ENODEV; + + data->exponent[page] = ((s8)(vout_mode << 3)) >> 3; + break; + case 1: /* VID mode */ + if (data->info->format[PSC_VOLTAGE_OUT] != vid) + return -ENODEV; + break; + case 2: /* direct mode */ + if (data->info->format[PSC_VOLTAGE_OUT] != direct) + return -ENODEV; + break; + default: + return -ENODEV; + } + } + + pmbus_clear_fault_page(client, page); + return 0; +} + +static int pmbus_init_common(struct i2c_client *client, struct pmbus_data *data, + struct pmbus_driver_info *info) +{ + struct device *dev = &client->dev; + int page, ret, i; + + /* + * Some PMBus chips don't support PMBUS_STATUS_WORD, so try + * to use PMBUS_STATUS_BYTE instead if that is the case. + * Bail out if both registers are not supported. + */ + for(i = 0; i < PMBUS_RETRY_TIME; i++) { + data->read_status = pmbus_read_status_word; + ret = i2c_smbus_read_word_data(client, PMBUS_STATUS_WORD); + if (ret < 0 || ret == 0xffff) { + data->read_status = pmbus_read_status_byte; + ret = i2c_smbus_read_byte_data(client, PMBUS_STATUS_BYTE); + if (ret < 0 || ret == 0xff) { + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + continue; + } + } else { + data->has_status_word = true; + } + break; + } + + if(i == PMBUS_RETRY_TIME) { + dev_err(dev, "PMBus status register not found\n"); + return -ENODEV; + } + + /* Enable PEC if the controller supports it */ + for(i = 0; i < PMBUS_RETRY_TIME; i++) { + ret = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY); + if (ret >= 0) { + break; + } + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + + if (ret >= 0 && (ret & PB_CAPABILITY_ERROR_CHECK)) + client->flags |= I2C_CLIENT_PEC; + + /* + * Check if the chip is write protected. If it is, we can not clear + * faults, and we should not try it. Also, in that case, writes into + * limit registers need to be disabled. + */ + for(i = 0; i < PMBUS_RETRY_TIME; i++) { + ret = i2c_smbus_read_byte_data(client, PMBUS_WRITE_PROTECT); + if (ret >= 0) { + break; + } + usleep_range(PMBUS_RETRY_SLEEP_TIME, PMBUS_RETRY_SLEEP_TIME + 1); + } + + if (ret > 0 && (ret & PB_WP_ANY)) + data->flags |= PMBUS_WRITE_PROTECTED | PMBUS_SKIP_STATUS_CHECK; + + if (data->info->pages) + wb_pmbus_clear_faults(client); + else + pmbus_clear_fault_page(client, -1); + + if (info->identify) { + ret = (*info->identify)(client, info); + if (ret < 0) { + dev_err(dev, "Chip identification failed\n"); + return ret; + } + } + + if (info->pages <= 0 || info->pages > PMBUS_PAGES) { + dev_err(dev, "Bad number of PMBus pages: %d\n", info->pages); + return -ENODEV; + } + + for (page = 0; page < info->pages; page++) { + ret = pmbus_identify_common(client, data, page); + if (ret < 0) { + dev_err(dev, "Failed to identify chip capabilities\n"); + return ret; + } + } + return 0; +} + +#if IS_ENABLED(CONFIG_REGULATOR) +static int pmbus_regulator_is_enabled(struct regulator_dev *rdev) +{ + struct device *dev = rdev_get_dev(rdev); + struct i2c_client *client = to_i2c_client(dev->parent); + u8 page = rdev_get_id(rdev); + int ret; + + ret = wb_pmbus_read_byte_data(client, page, PMBUS_OPERATION); + if (ret < 0) + return ret; + + return !!(ret & PB_OPERATION_CONTROL_ON); +} + +static int _pmbus_regulator_on_off(struct regulator_dev *rdev, bool enable) +{ + struct device *dev = rdev_get_dev(rdev); + struct i2c_client *client = to_i2c_client(dev->parent); + u8 page = rdev_get_id(rdev); + + return wb_pmbus_update_byte_data(client, page, PMBUS_OPERATION, + PB_OPERATION_CONTROL_ON, + enable ? PB_OPERATION_CONTROL_ON : 0); +} + +static int pmbus_regulator_enable(struct regulator_dev *rdev) +{ + return _pmbus_regulator_on_off(rdev, 1); +} + +static int pmbus_regulator_disable(struct regulator_dev *rdev) +{ + return _pmbus_regulator_on_off(rdev, 0); +} + +const struct regulator_ops wb_pmbus_regulator_ops = { + .enable = pmbus_regulator_enable, + .disable = pmbus_regulator_disable, + .is_enabled = pmbus_regulator_is_enabled, +}; +EXPORT_SYMBOL_GPL(wb_pmbus_regulator_ops); + +static int pmbus_regulator_register(struct pmbus_data *data) +{ + struct device *dev = data->dev; + const struct pmbus_driver_info *info = data->info; + const struct pmbus_platform_data *pdata = dev_get_platdata(dev); + struct regulator_dev *rdev; + int i; + + for (i = 0; i < info->num_regulators; i++) { + struct regulator_config config = { }; + + config.dev = dev; + config.driver_data = data; + + if (pdata && pdata->reg_init_data) + config.init_data = &pdata->reg_init_data[i]; + + rdev = devm_regulator_register(dev, &info->reg_desc[i], + &config); + if (IS_ERR(rdev)) { + dev_err(dev, "Failed to register %s regulator\n", + info->reg_desc[i].name); + return PTR_ERR(rdev); + } + } + + return 0; +} +#else +static int pmbus_regulator_register(struct pmbus_data *data) +{ + return 0; +} +#endif + +static struct dentry *pmbus_debugfs_dir; /* pmbus debugfs directory */ + +#if IS_ENABLED(CONFIG_DEBUG_FS) +static int pmbus_debugfs_get(void *data, u64 *val) +{ + int rc; + struct pmbus_debugfs_entry *entry = data; + + rc = _pmbus_read_byte_data(entry->client, entry->page, entry->reg); + if (rc < 0) + return rc; + + *val = rc; + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops, pmbus_debugfs_get, NULL, + "0x%02llx\n"); + +static int pmbus_debugfs_get_status(void *data, u64 *val) +{ + int rc; + struct pmbus_debugfs_entry *entry = data; + struct pmbus_data *pdata = i2c_get_clientdata(entry->client); + + rc = pdata->read_status(entry->client, entry->page); + if (rc < 0) + return rc; + + *val = rc; + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_status, pmbus_debugfs_get_status, + NULL, "0x%04llx\n"); + +static int pmbus_debugfs_get_pec(void *data, u64 *val) +{ + struct i2c_client *client = data; + + *val = !!(client->flags & I2C_CLIENT_PEC); + + return 0; +} + +static int pmbus_debugfs_set_pec(void *data, u64 val) +{ + int rc; + struct i2c_client *client = data; + + if (!val) { + client->flags &= ~I2C_CLIENT_PEC; + return 0; + } + + if (val != 1) + return -EINVAL; + + rc = i2c_smbus_read_byte_data(client, PMBUS_CAPABILITY); + if (rc < 0) + return rc; + + if (!(rc & PB_CAPABILITY_ERROR_CHECK)) + return -EOPNOTSUPP; + + client->flags |= I2C_CLIENT_PEC; + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_pec, pmbus_debugfs_get_pec, + pmbus_debugfs_set_pec, "%llu\n"); + +static int pmbus_init_debugfs(struct i2c_client *client, + struct pmbus_data *data) +{ + int i, idx = 0; + char name[PMBUS_NAME_SIZE]; + struct pmbus_debugfs_entry *entries; + + if (!pmbus_debugfs_dir) + return -ENODEV; + + /* + * Create the debugfs directory for this device. Use the hwmon device + * name to avoid conflicts (hwmon numbers are globally unique). + */ + data->debugfs = debugfs_create_dir(dev_name(data->hwmon_dev), + pmbus_debugfs_dir); + if (IS_ERR_OR_NULL(data->debugfs)) { + data->debugfs = NULL; + return -ENODEV; + } + + /* Allocate the max possible entries we need. */ + entries = devm_kcalloc(data->dev, + data->info->pages * 10, sizeof(*entries), + GFP_KERNEL); + if (!entries) + return -ENOMEM; + + debugfs_create_file("pec", 0664, data->debugfs, client, + &pmbus_debugfs_ops_pec); + + for (i = 0; i < data->info->pages; ++i) { + /* Check accessibility of status register if it's not page 0 */ + if (!i || pmbus_check_status_register(client, i)) { + /* No need to set reg as we have special read op. */ + entries[idx].client = client; + entries[idx].page = i; + scnprintf(name, PMBUS_NAME_SIZE, "status%d", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops_status); + } + + if (data->info->func[i] & PMBUS_HAVE_STATUS_VOUT) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_VOUT; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_vout", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (data->info->func[i] & PMBUS_HAVE_STATUS_IOUT) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_IOUT; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_iout", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (data->info->func[i] & PMBUS_HAVE_STATUS_INPUT) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_INPUT; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_input", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (data->info->func[i] & PMBUS_HAVE_STATUS_TEMP) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_TEMPERATURE; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_temp", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (wb_pmbus_check_byte_register(client, i, PMBUS_STATUS_CML)) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_CML; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_cml", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (wb_pmbus_check_byte_register(client, i, PMBUS_STATUS_OTHER)) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_OTHER; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_other", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (wb_pmbus_check_byte_register(client, i, + PMBUS_STATUS_MFR_SPECIFIC)) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_MFR_SPECIFIC; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_mfr", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (data->info->func[i] & PMBUS_HAVE_STATUS_FAN12) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_FAN_12; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_fan12", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + + if (data->info->func[i] & PMBUS_HAVE_STATUS_FAN34) { + entries[idx].client = client; + entries[idx].page = i; + entries[idx].reg = PMBUS_STATUS_FAN_34; + scnprintf(name, PMBUS_NAME_SIZE, "status%d_fan34", i); + debugfs_create_file(name, 0444, data->debugfs, + &entries[idx++], + &pmbus_debugfs_ops); + } + } + + return 0; +} +#else +static int pmbus_init_debugfs(struct i2c_client *client, + struct pmbus_data *data) +{ + return 0; +} +#endif /* IS_ENABLED(CONFIG_DEBUG_FS) */ + +int wb_pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) +{ + struct device *dev = &client->dev; + const struct pmbus_platform_data *pdata = dev_get_platdata(dev); + struct pmbus_data *data; + size_t groups_num = 0; + int ret; + + if (!info) + return -ENODEV; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WRITE_BYTE + | I2C_FUNC_SMBUS_BYTE_DATA + | I2C_FUNC_SMBUS_WORD_DATA)) + return -ENODEV; + + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + if (info->groups) + while (info->groups[groups_num]) + groups_num++; + + data->groups = devm_kcalloc(dev, groups_num + 2, sizeof(void *), + GFP_KERNEL); + if (!data->groups) + return -ENOMEM; + + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + data->dev = dev; + + if (pdata) + data->flags = pdata->flags; + data->info = info; + data->currpage = -1; + data->currphase = -1; + + ret = pmbus_init_common(client, data, info); + if (ret < 0) + return ret; + + ret = pmbus_find_attributes(client, data); + if (ret) + return ret; + + /* + * 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"); + return -ENODEV; + } + + data->groups[0] = &data->group; + memcpy(data->groups + 1, info->groups, sizeof(void *) * groups_num); + data->hwmon_dev = devm_hwmon_device_register_with_groups(dev, + client->name, data, data->groups); + if (IS_ERR(data->hwmon_dev)) { + dev_err(dev, "Failed to register hwmon device\n"); + return PTR_ERR(data->hwmon_dev); + } + + ret = pmbus_regulator_register(data); + if (ret) + return ret; + + ret = pmbus_init_debugfs(client, data); + if (ret) + dev_warn(dev, "Failed to register debugfs\n"); + + return 0; +} +EXPORT_SYMBOL_GPL(wb_pmbus_do_probe); + +int wb_pmbus_do_remove(struct i2c_client *client) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + + debugfs_remove_recursive(data->debugfs); + + return 0; +} +EXPORT_SYMBOL_GPL(wb_pmbus_do_remove); + +struct dentry *wb_pmbus_get_debugfs_dir(struct i2c_client *client) +{ + struct pmbus_data *data = i2c_get_clientdata(client); + + return data->debugfs; +} +EXPORT_SYMBOL_GPL(wb_pmbus_get_debugfs_dir); + +static int __init pmbus_core_init(void) +{ + pmbus_debugfs_dir = debugfs_create_dir("pmbus", NULL); + if (IS_ERR(pmbus_debugfs_dir)) + pmbus_debugfs_dir = NULL; + + return 0; +} + +static void __exit pmbus_core_exit(void) +{ + debugfs_remove_recursive(pmbus_debugfs_dir); +} + +module_init(pmbus_core_init); +module_exit(pmbus_core_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PMBus core driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c new file mode 100644 index 000000000000..4118510b1006 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c @@ -0,0 +1,798 @@ +/* tmp401.c + * + * Copyright (C) 2007,2008 Hans de Goede + * Preliminary tmp411 support by: + * Gabriel Konat, Sander Leget, Wouter Willems + * Copyright (C) 2009 Andre Prendel + * + * Cleanup and support for TMP431 and TMP432 by Guenter Roeck + * Copyright (c) 2013 Guenter Roeck + * + * 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. + */ + +/* + * Driver for the Texas Instruments TMP401 SMBUS temperature sensor IC. + * + * Note this IC is in some aspect similar to the LM90, but it has quite a + * few differences too, for example the local temp has a higher resolution + * and thus has 16 bits registers for its value and limit instead of 8 bits. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Addresses to scan */ +/* static const unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4c, 0x4d, + 0x4e, 0x4f, I2C_CLIENT_END }; */ + +enum chips { tmp401, tmp411, tmp431, tmp432, tmp435, tmp461 }; + +/* + * The TMP401 registers, note some registers have different addresses for + * reading and writing + */ +#define TMP401_STATUS 0x02 +#define TMP401_CONFIG_READ 0x03 +#define TMP401_CONFIG_WRITE 0x09 +#define TMP401_CONVERSION_RATE_READ 0x04 +#define TMP401_CONVERSION_RATE_WRITE 0x0A +#define TMP401_TEMP_CRIT_HYST 0x21 +#define TMP401_MANUFACTURER_ID_REG 0xFE +#define TMP401_DEVICE_ID_REG 0xFF + +static const u8 TMP401_TEMP_MSB_READ[7][2] = { + { 0x00, 0x01 }, /* temp */ + { 0x06, 0x08 }, /* low limit */ + { 0x05, 0x07 }, /* high limit */ + { 0x20, 0x19 }, /* therm (crit) limit */ + { 0x30, 0x34 }, /* lowest */ + { 0x32, 0x36 }, /* highest */ + { 0, 0x11 }, /* offset */ +}; + +static const u8 TMP401_TEMP_MSB_WRITE[7][2] = { + { 0, 0 }, /* temp (unused) */ + { 0x0C, 0x0E }, /* low limit */ + { 0x0B, 0x0D }, /* high limit */ + { 0x20, 0x19 }, /* therm (crit) limit */ + { 0x30, 0x34 }, /* lowest */ + { 0x32, 0x36 }, /* highest */ + { 0, 0x11 }, /* offset */ +}; + +static const u8 TMP401_TEMP_LSB[7][2] = { + { 0x15, 0x10 }, /* temp */ + { 0x17, 0x14 }, /* low limit */ + { 0x16, 0x13 }, /* high limit */ + { 0, 0 }, /* therm (crit) limit (unused) */ + { 0x31, 0x35 }, /* lowest */ + { 0x33, 0x37 }, /* highest */ + { 0, 0x12 }, /* offset */ +}; + +static const u8 TMP432_TEMP_MSB_READ[4][3] = { + { 0x00, 0x01, 0x23 }, /* temp */ + { 0x06, 0x08, 0x16 }, /* low limit */ + { 0x05, 0x07, 0x15 }, /* high limit */ + { 0x20, 0x19, 0x1A }, /* therm (crit) limit */ +}; + +static const u8 TMP432_TEMP_MSB_WRITE[4][3] = { + { 0, 0, 0 }, /* temp - unused */ + { 0x0C, 0x0E, 0x16 }, /* low limit */ + { 0x0B, 0x0D, 0x15 }, /* high limit */ + { 0x20, 0x19, 0x1A }, /* therm (crit) limit */ +}; + +static const u8 TMP432_TEMP_LSB[3][3] = { + { 0x29, 0x10, 0x24 }, /* temp */ + { 0x3E, 0x14, 0x18 }, /* low limit */ + { 0x3D, 0x13, 0x17 }, /* high limit */ +}; + +/* [0] = fault, [1] = low, [2] = high, [3] = therm/crit */ +static const u8 TMP432_STATUS_REG[] = { + 0x1b, 0x36, 0x35, 0x37 }; + +/* Flags */ +#define TMP401_CONFIG_RANGE BIT(2) +#define TMP401_CONFIG_SHUTDOWN BIT(6) +#define TMP401_STATUS_LOCAL_CRIT BIT(0) +#define TMP401_STATUS_REMOTE_CRIT BIT(1) +#define TMP401_STATUS_REMOTE_OPEN BIT(2) +#define TMP401_STATUS_REMOTE_LOW BIT(3) +#define TMP401_STATUS_REMOTE_HIGH BIT(4) +#define TMP401_STATUS_LOCAL_LOW BIT(5) +#define TMP401_STATUS_LOCAL_HIGH BIT(6) + +/* On TMP432, each status has its own register */ +#define TMP432_STATUS_LOCAL BIT(0) +#define TMP432_STATUS_REMOTE1 BIT(1) +#define TMP432_STATUS_REMOTE2 BIT(2) + +/* Manufacturer / Device ID's */ +#define TMP401_MANUFACTURER_ID 0x55 +#define TMP401_DEVICE_ID 0x11 +#define TMP411A_DEVICE_ID 0x12 +#define TMP411B_DEVICE_ID 0x13 +#define TMP411C_DEVICE_ID 0x10 +#define TMP431_DEVICE_ID 0x31 +#define TMP432_DEVICE_ID 0x32 +#define TMP435_DEVICE_ID 0x35 + +/* + * Driver data (common to all clients) + */ + +static const struct i2c_device_id tmp401_id[] = { + { "wb_tmp401", tmp401 }, + { "wb_tmp411", tmp411 }, + { "wb_tmp431", tmp431 }, + { "wb_tmp432", tmp432 }, + { "wb_tmp435", tmp435 }, + { "wb_tmp461", tmp461 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, tmp401_id); + +/* + * Client data (each client gets its own) + */ + +struct tmp401_data { + struct i2c_client *client; + const struct attribute_group *groups[3]; + struct mutex update_lock; + char valid; /* zero until following fields are valid */ + unsigned long last_updated; /* in jiffies */ + enum chips kind; + + unsigned int update_interval; /* in milliseconds */ + + /* register values */ + u8 status[4]; + u8 config; + u16 temp[7][3]; + u8 temp_crit_hyst; +}; + +/* + * Sysfs attr show / store functions + */ + +static int tmp401_register_to_temp(u16 reg, u8 config) +{ + int temp = reg; + + if (config & TMP401_CONFIG_RANGE) + temp -= 64 * 256; + + return DIV_ROUND_CLOSEST(temp * 125, 32); +} + +static u16 tmp401_temp_to_register(long temp, u8 config, int zbits) +{ + if (config & TMP401_CONFIG_RANGE) { + temp = clamp_val(temp, -64000, 191000); + temp += 64000; + } else + temp = clamp_val(temp, 0, 127000); + + return DIV_ROUND_CLOSEST(temp * (1 << (8 - zbits)), 1000) << zbits; +} + +static int tmp401_update_device_reg16(struct i2c_client *client, + struct tmp401_data *data) +{ + int i, j, val; + int num_regs = data->kind == tmp411 ? 6 : 4; + int num_sensors = data->kind == tmp432 ? 3 : 2; + + for (i = 0; i < num_sensors; i++) { /* local / r1 / r2 */ + for (j = 0; j < num_regs; j++) { /* temp / low / ... */ + u8 regaddr; + /* + * High byte must be read first immediately followed + * by the low byte + */ + regaddr = data->kind == tmp432 ? + TMP432_TEMP_MSB_READ[j][i] : + TMP401_TEMP_MSB_READ[j][i]; + val = i2c_smbus_read_byte_data(client, regaddr); + if (val < 0) + return val; + data->temp[j][i] = val << 8; + if (j == 3) /* crit is msb only */ + continue; + regaddr = data->kind == tmp432 ? TMP432_TEMP_LSB[j][i] + : TMP401_TEMP_LSB[j][i]; + val = i2c_smbus_read_byte_data(client, regaddr); + if (val < 0) + return val; + data->temp[j][i] |= val; + } + } + return 0; +} + +static struct tmp401_data *tmp401_update_device(struct device *dev) +{ + struct tmp401_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + struct tmp401_data *ret = data; + int i, val; + unsigned long next_update; + + mutex_lock(&data->update_lock); + + next_update = data->last_updated + + msecs_to_jiffies(data->update_interval); + if (time_after(jiffies, next_update) || !data->valid) { + if (data->kind != tmp432) { + /* + * The driver uses the TMP432 status format internally. + * Convert status to TMP432 format for other chips. + */ + val = i2c_smbus_read_byte_data(client, TMP401_STATUS); + if (val < 0) { + ret = ERR_PTR(val); + goto abort; + } + data->status[0] = + (val & TMP401_STATUS_REMOTE_OPEN) >> 1; + data->status[1] = + ((val & TMP401_STATUS_REMOTE_LOW) >> 2) | + ((val & TMP401_STATUS_LOCAL_LOW) >> 5); + data->status[2] = + ((val & TMP401_STATUS_REMOTE_HIGH) >> 3) | + ((val & TMP401_STATUS_LOCAL_HIGH) >> 6); + data->status[3] = val & (TMP401_STATUS_LOCAL_CRIT + | TMP401_STATUS_REMOTE_CRIT); + } else { + for (i = 0; i < ARRAY_SIZE(data->status); i++) { + val = i2c_smbus_read_byte_data(client, + TMP432_STATUS_REG[i]); + if (val < 0) { + ret = ERR_PTR(val); + goto abort; + } + data->status[i] = val; + } + } + + val = i2c_smbus_read_byte_data(client, TMP401_CONFIG_READ); + if (val < 0) { + ret = ERR_PTR(val); + goto abort; + } + data->config = val; + val = tmp401_update_device_reg16(client, data); + if (val < 0) { + ret = ERR_PTR(val); + goto abort; + } + val = i2c_smbus_read_byte_data(client, TMP401_TEMP_CRIT_HYST); + if (val < 0) { + ret = ERR_PTR(val); + goto abort; + } + data->temp_crit_hyst = val; + + data->last_updated = jiffies; + data->valid = 1; + } + +abort: + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t show_temp(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + int nr = to_sensor_dev_attr_2(devattr)->nr; + int index = to_sensor_dev_attr_2(devattr)->index; + struct tmp401_data *data = tmp401_update_device(dev); + + if (IS_ERR(data)) + return PTR_ERR(data); + + return sprintf(buf, "%d\n", + tmp401_register_to_temp(data->temp[nr][index], data->config)); +} + +static ssize_t show_temp_crit_hyst(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + int temp, index = to_sensor_dev_attr(devattr)->index; + struct tmp401_data *data = tmp401_update_device(dev); + + if (IS_ERR(data)) + return PTR_ERR(data); + + mutex_lock(&data->update_lock); + temp = tmp401_register_to_temp(data->temp[3][index], data->config); + temp -= data->temp_crit_hyst * 1000; + mutex_unlock(&data->update_lock); + + return sprintf(buf, "%d\n", temp); +} + +static ssize_t show_status(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + int nr = to_sensor_dev_attr_2(devattr)->nr; + int mask = to_sensor_dev_attr_2(devattr)->index; + struct tmp401_data *data = tmp401_update_device(dev); + + if (IS_ERR(data)) + return PTR_ERR(data); + + return sprintf(buf, "%d\n", !!(data->status[nr] & mask)); +} + +static ssize_t store_temp(struct device *dev, struct device_attribute *devattr, + const char *buf, size_t count) +{ + int nr = to_sensor_dev_attr_2(devattr)->nr; + int index = to_sensor_dev_attr_2(devattr)->index; + struct tmp401_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + long val; + u16 reg; + u8 regaddr; + + if (kstrtol(buf, 10, &val)) + return -EINVAL; + + reg = tmp401_temp_to_register(val, data->config, nr == 3 ? 8 : 4); + + mutex_lock(&data->update_lock); + + regaddr = data->kind == tmp432 ? TMP432_TEMP_MSB_WRITE[nr][index] + : TMP401_TEMP_MSB_WRITE[nr][index]; + i2c_smbus_write_byte_data(client, regaddr, reg >> 8); + if (nr != 3) { + regaddr = data->kind == tmp432 ? TMP432_TEMP_LSB[nr][index] + : TMP401_TEMP_LSB[nr][index]; + i2c_smbus_write_byte_data(client, regaddr, reg & 0xFF); + } + data->temp[nr][index] = reg; + + mutex_unlock(&data->update_lock); + + return count; +} + +static ssize_t store_temp_crit_hyst(struct device *dev, struct device_attribute + *devattr, const char *buf, size_t count) +{ + int temp, index = to_sensor_dev_attr(devattr)->index; + struct tmp401_data *data = tmp401_update_device(dev); + long val; + u8 reg; + + if (IS_ERR(data)) + return PTR_ERR(data); + + if (kstrtol(buf, 10, &val)) + return -EINVAL; + + if (data->config & TMP401_CONFIG_RANGE) + val = clamp_val(val, -64000, 191000); + else + val = clamp_val(val, 0, 127000); + + mutex_lock(&data->update_lock); + temp = tmp401_register_to_temp(data->temp[3][index], data->config); + val = clamp_val(val, temp - 255000, temp); + reg = ((temp - val) + 500) / 1000; + + i2c_smbus_write_byte_data(data->client, TMP401_TEMP_CRIT_HYST, + reg); + + data->temp_crit_hyst = reg; + + mutex_unlock(&data->update_lock); + + return count; +} + +/* + * Resets the historical measurements of minimum and maximum temperatures. + * This is done by writing any value to any of the minimum/maximum registers + * (0x30-0x37). + */ +static ssize_t reset_temp_history(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct tmp401_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + long val; + + if (kstrtol(buf, 10, &val)) + return -EINVAL; + + if (val != 1) { + dev_err(dev, + "temp_reset_history value %ld not supported. Use 1 to reset the history!\n", + val); + return -EINVAL; + } + mutex_lock(&data->update_lock); + i2c_smbus_write_byte_data(client, TMP401_TEMP_MSB_WRITE[5][0], val); + data->valid = 0; + mutex_unlock(&data->update_lock); + + return count; +} + +static ssize_t show_update_interval(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct tmp401_data *data = dev_get_drvdata(dev); + + return sprintf(buf, "%u\n", data->update_interval); +} + +static ssize_t set_update_interval(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct tmp401_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + unsigned long val; + int err, rate; + + err = kstrtoul(buf, 10, &val); + if (err) + return err; + + /* + * For valid rates, interval can be calculated as + * interval = (1 << (7 - rate)) * 125; + * Rounded rate is therefore + * rate = 7 - __fls(interval * 4 / (125 * 3)); + * Use clamp_val() to avoid overflows, and to ensure valid input + * for __fls. + */ + val = clamp_val(val, 125, 16000); + rate = 7 - __fls(val * 4 / (125 * 3)); + mutex_lock(&data->update_lock); + i2c_smbus_write_byte_data(client, TMP401_CONVERSION_RATE_WRITE, rate); + data->update_interval = (1 << (7 - rate)) * 125; + mutex_unlock(&data->update_lock); + + return count; +} + +static SENSOR_DEVICE_ATTR_2(temp1_input, S_IRUGO, show_temp, NULL, 0, 0); +static SENSOR_DEVICE_ATTR_2(temp1_min, S_IWUSR | S_IRUGO, show_temp, + store_temp, 1, 0); +static SENSOR_DEVICE_ATTR_2(temp1_max, S_IWUSR | S_IRUGO, show_temp, + store_temp, 2, 0); +static SENSOR_DEVICE_ATTR_2(temp1_crit, S_IWUSR | S_IRUGO, show_temp, + store_temp, 3, 0); +static SENSOR_DEVICE_ATTR(temp1_crit_hyst, S_IWUSR | S_IRUGO, + show_temp_crit_hyst, store_temp_crit_hyst, 0); +static SENSOR_DEVICE_ATTR_2(temp1_min_alarm, S_IRUGO, show_status, NULL, + 1, TMP432_STATUS_LOCAL); +static SENSOR_DEVICE_ATTR_2(temp1_max_alarm, S_IRUGO, show_status, NULL, + 2, TMP432_STATUS_LOCAL); +static SENSOR_DEVICE_ATTR_2(temp1_crit_alarm, S_IRUGO, show_status, NULL, + 3, TMP432_STATUS_LOCAL); +static SENSOR_DEVICE_ATTR_2(temp2_input, S_IRUGO, show_temp, NULL, 0, 1); +static SENSOR_DEVICE_ATTR_2(temp2_min, S_IWUSR | S_IRUGO, show_temp, + store_temp, 1, 1); +static SENSOR_DEVICE_ATTR_2(temp2_max, S_IWUSR | S_IRUGO, show_temp, + store_temp, 2, 1); +static SENSOR_DEVICE_ATTR_2(temp2_crit, S_IWUSR | S_IRUGO, show_temp, + store_temp, 3, 1); +static SENSOR_DEVICE_ATTR(temp2_crit_hyst, S_IRUGO, show_temp_crit_hyst, + NULL, 1); +static SENSOR_DEVICE_ATTR_2(temp2_fault, S_IRUGO, show_status, NULL, + 0, TMP432_STATUS_REMOTE1); +static SENSOR_DEVICE_ATTR_2(temp2_min_alarm, S_IRUGO, show_status, NULL, + 1, TMP432_STATUS_REMOTE1); +static SENSOR_DEVICE_ATTR_2(temp2_max_alarm, S_IRUGO, show_status, NULL, + 2, TMP432_STATUS_REMOTE1); +static SENSOR_DEVICE_ATTR_2(temp2_crit_alarm, S_IRUGO, show_status, NULL, + 3, TMP432_STATUS_REMOTE1); + +static DEVICE_ATTR(update_interval, S_IRUGO | S_IWUSR, show_update_interval, + set_update_interval); + +static struct attribute *tmp401_attributes[] = { + &sensor_dev_attr_temp1_input.dev_attr.attr, + &sensor_dev_attr_temp1_min.dev_attr.attr, + &sensor_dev_attr_temp1_max.dev_attr.attr, + &sensor_dev_attr_temp1_crit.dev_attr.attr, + &sensor_dev_attr_temp1_crit_hyst.dev_attr.attr, + &sensor_dev_attr_temp1_max_alarm.dev_attr.attr, + &sensor_dev_attr_temp1_min_alarm.dev_attr.attr, + &sensor_dev_attr_temp1_crit_alarm.dev_attr.attr, + + &sensor_dev_attr_temp2_input.dev_attr.attr, + &sensor_dev_attr_temp2_min.dev_attr.attr, + &sensor_dev_attr_temp2_max.dev_attr.attr, + &sensor_dev_attr_temp2_crit.dev_attr.attr, + &sensor_dev_attr_temp2_crit_hyst.dev_attr.attr, + &sensor_dev_attr_temp2_fault.dev_attr.attr, + &sensor_dev_attr_temp2_max_alarm.dev_attr.attr, + &sensor_dev_attr_temp2_min_alarm.dev_attr.attr, + &sensor_dev_attr_temp2_crit_alarm.dev_attr.attr, + + &dev_attr_update_interval.attr, + + NULL +}; + +static const struct attribute_group tmp401_group = { + .attrs = tmp401_attributes, +}; + +/* + * Additional features of the TMP411 chip. + * The TMP411 stores the minimum and maximum + * temperature measured since power-on, chip-reset, or + * minimum and maximum register reset for both the local + * and remote channels. + */ +static SENSOR_DEVICE_ATTR_2(temp1_lowest, S_IRUGO, show_temp, NULL, 4, 0); +static SENSOR_DEVICE_ATTR_2(temp1_highest, S_IRUGO, show_temp, NULL, 5, 0); +static SENSOR_DEVICE_ATTR_2(temp2_lowest, S_IRUGO, show_temp, NULL, 4, 1); +static SENSOR_DEVICE_ATTR_2(temp2_highest, S_IRUGO, show_temp, NULL, 5, 1); +static SENSOR_DEVICE_ATTR(temp_reset_history, S_IWUSR, NULL, reset_temp_history, + 0); + +static struct attribute *tmp411_attributes[] = { + &sensor_dev_attr_temp1_highest.dev_attr.attr, + &sensor_dev_attr_temp1_lowest.dev_attr.attr, + &sensor_dev_attr_temp2_highest.dev_attr.attr, + &sensor_dev_attr_temp2_lowest.dev_attr.attr, + &sensor_dev_attr_temp_reset_history.dev_attr.attr, + NULL +}; + +static const struct attribute_group tmp411_group = { + .attrs = tmp411_attributes, +}; + +static SENSOR_DEVICE_ATTR_2(temp3_input, S_IRUGO, show_temp, NULL, 0, 2); +static SENSOR_DEVICE_ATTR_2(temp3_min, S_IWUSR | S_IRUGO, show_temp, + store_temp, 1, 2); +static SENSOR_DEVICE_ATTR_2(temp3_max, S_IWUSR | S_IRUGO, show_temp, + store_temp, 2, 2); +static SENSOR_DEVICE_ATTR_2(temp3_crit, S_IWUSR | S_IRUGO, show_temp, + store_temp, 3, 2); +static SENSOR_DEVICE_ATTR(temp3_crit_hyst, S_IRUGO, show_temp_crit_hyst, + NULL, 2); +static SENSOR_DEVICE_ATTR_2(temp3_fault, S_IRUGO, show_status, NULL, + 0, TMP432_STATUS_REMOTE2); +static SENSOR_DEVICE_ATTR_2(temp3_min_alarm, S_IRUGO, show_status, NULL, + 1, TMP432_STATUS_REMOTE2); +static SENSOR_DEVICE_ATTR_2(temp3_max_alarm, S_IRUGO, show_status, NULL, + 2, TMP432_STATUS_REMOTE2); +static SENSOR_DEVICE_ATTR_2(temp3_crit_alarm, S_IRUGO, show_status, NULL, + 3, TMP432_STATUS_REMOTE2); + +static struct attribute *tmp432_attributes[] = { + &sensor_dev_attr_temp3_input.dev_attr.attr, + &sensor_dev_attr_temp3_min.dev_attr.attr, + &sensor_dev_attr_temp3_max.dev_attr.attr, + &sensor_dev_attr_temp3_crit.dev_attr.attr, + &sensor_dev_attr_temp3_crit_hyst.dev_attr.attr, + &sensor_dev_attr_temp3_fault.dev_attr.attr, + &sensor_dev_attr_temp3_max_alarm.dev_attr.attr, + &sensor_dev_attr_temp3_min_alarm.dev_attr.attr, + &sensor_dev_attr_temp3_crit_alarm.dev_attr.attr, + + NULL +}; + +static const struct attribute_group tmp432_group = { + .attrs = tmp432_attributes, +}; + +/* + * Additional features of the TMP461 chip. + * The TMP461 temperature offset for the remote channel. + */ +static SENSOR_DEVICE_ATTR_2(temp2_offset, S_IWUSR | S_IRUGO, show_temp, + store_temp, 6, 1); + +static struct attribute *tmp461_attributes[] = { + &sensor_dev_attr_temp2_offset.dev_attr.attr, + NULL +}; + +static const struct attribute_group tmp461_group = { + .attrs = tmp461_attributes, +}; + +/* + * Begin non sysfs callback code (aka Real code) + */ + +static int tmp401_init_client(struct tmp401_data *data, + struct i2c_client *client) +{ + int config, config_orig, status = 0; + + /* Set the conversion rate to 2 Hz */ + i2c_smbus_write_byte_data(client, TMP401_CONVERSION_RATE_WRITE, 5); + data->update_interval = 500; + + /* Start conversions (disable shutdown if necessary) */ + config = i2c_smbus_read_byte_data(client, TMP401_CONFIG_READ); + if (config < 0) + return config; + + config_orig = config; + config &= ~TMP401_CONFIG_SHUTDOWN; + + if (config != config_orig) + status = i2c_smbus_write_byte_data(client, + TMP401_CONFIG_WRITE, + config); + + return status; +} + +#if 0 +static int tmp401_detect(struct i2c_client *client, + struct i2c_board_info *info) +{ + enum chips kind; + struct i2c_adapter *adapter = client->adapter; + u8 reg; + + if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) + return -ENODEV; + + /* Detect and identify the chip */ + reg = i2c_smbus_read_byte_data(client, TMP401_MANUFACTURER_ID_REG); + if (reg != TMP401_MANUFACTURER_ID) + return -ENODEV; + + reg = i2c_smbus_read_byte_data(client, TMP401_DEVICE_ID_REG); + + switch (reg) { + case TMP401_DEVICE_ID: + if (client->addr != 0x4c) + return -ENODEV; + kind = tmp401; + break; + case TMP411A_DEVICE_ID: + if (client->addr != 0x4c) + return -ENODEV; + kind = tmp411; + break; + case TMP411B_DEVICE_ID: + if (client->addr != 0x4d) + return -ENODEV; + kind = tmp411; + break; + case TMP411C_DEVICE_ID: + if (client->addr != 0x4e) + return -ENODEV; + kind = tmp411; + break; + case TMP431_DEVICE_ID: + if (client->addr != 0x4c && client->addr != 0x4d) + return -ENODEV; + kind = tmp431; + break; + case TMP432_DEVICE_ID: + if (client->addr != 0x4c && client->addr != 0x4d) + return -ENODEV; + kind = tmp432; + break; + case TMP435_DEVICE_ID: + kind = tmp435; + break; + default: + return -ENODEV; + } + + reg = i2c_smbus_read_byte_data(client, TMP401_CONFIG_READ); + if (reg & 0x1b) + return -ENODEV; + + reg = i2c_smbus_read_byte_data(client, TMP401_CONVERSION_RATE_READ); + /* Datasheet says: 0x1-0x6 */ + if (reg > 15) + return -ENODEV; + + strlcpy(info->type, tmp401_id[kind].name, I2C_NAME_SIZE); + + return 0; +} +#endif + +static int tmp401_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + static const char * const names[] = { + "TMP401", "TMP411", "TMP431", "TMP432", "TMP435", "TMP461" + }; + struct device *dev = &client->dev; + struct device *hwmon_dev; + struct tmp401_data *data; + int groups = 0, status; + + data = devm_kzalloc(dev, sizeof(struct tmp401_data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->client = client; + mutex_init(&data->update_lock); + data->kind = id->driver_data; + + /* Initialize the TMP401 chip */ + status = tmp401_init_client(data, client); + if (status < 0) + return status; + + /* Register sysfs hooks */ + data->groups[groups++] = &tmp401_group; + + /* Register additional tmp411 sysfs hooks */ + if (data->kind == tmp411) + data->groups[groups++] = &tmp411_group; + + /* Register additional tmp432 sysfs hooks */ + if (data->kind == tmp432) + data->groups[groups++] = &tmp432_group; + + if (data->kind == tmp461) + data->groups[groups++] = &tmp461_group; + + hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name, + data, data->groups); + if (IS_ERR(hwmon_dev)) + return PTR_ERR(hwmon_dev); + + dev_info(dev, "Detected TI %s chip\n", names[data->kind]); + + return 0; +} + +static struct i2c_driver tmp401_driver = { + .class = I2C_CLASS_HWMON, + .driver = { + .name = "wb_tmp401", + }, + .probe = tmp401_probe, + .id_table = tmp401_id, + /* .detect = tmp401_detect, */ + /* .address_list = normal_i2c, */ +}; + +module_i2c_driver(tmp401_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Texas Instruments TMP401 temperature sensor driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tps53622.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tps53622.c new file mode 100644 index 000000000000..b68196d9f57c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tps53622.c @@ -0,0 +1,265 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Hardware monitoring driver for Texas Instruments TPS53679 + * + * Copyright (c) 2017 Mellanox Technologies. All rights reserved. + * Copyright (c) 2017 Vadim Pasternak + */ + +#include +#include +#include +#include +#include +#include +#include +#include "wb_pmbus.h" + +enum chips { + tps53647, tps53667, tps53679, tps53681, tps53688, tps53622 +}; + +#define TPS53647_PAGE_NUM 1 + +#define TPS53679_PROT_VR12_5MV 0x01 /* VR12.0 mode, 5-mV DAC */ +#define TPS53679_PROT_VR12_5_10MV 0x02 /* VR12.5 mode, 10-mV DAC */ +#define TPS53679_PROT_VR13_10MV 0x04 /* VR13.0 mode, 10-mV DAC */ +#define TPS53679_PROT_IMVP8_5MV 0x05 /* IMVP8 mode, 5-mV DAC */ +#define TPS53679_PROT_VR13_5MV 0x07 /* VR13.0 mode, 5-mV DAC */ +#define TPS53679_PAGE_NUM 2 + +#define TPS53681_DEVICE_ID 0x81 + +#define TPS53681_PMBUS_REVISION 0x33 + +#define TPS53681_MFR_SPECIFIC_20 0xe4 /* Number of phases, per page */ + +static const struct i2c_device_id tps53679_id[]; + +static int tps53679_identify_mode(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + u8 vout_params; + int i, ret; + + for (i = 0; i < info->pages; i++) { + /* Read the register with VOUT scaling value.*/ + ret = wb_pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE); + if (ret < 0) + return ret; + + vout_params = ret & GENMASK(4, 0); + + switch (vout_params) { + case TPS53679_PROT_VR13_10MV: + case TPS53679_PROT_VR12_5_10MV: + info->vrm_version[i] = vr13; + break; + case TPS53679_PROT_VR13_5MV: + case TPS53679_PROT_VR12_5MV: + case TPS53679_PROT_IMVP8_5MV: + info->vrm_version[i] = vr12; + break; + default: + return -EINVAL; + } + } + + return 0; +} + +static int tps53679_identify_phases(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + int ret; + + /* On TPS53681, only channel A provides per-phase output current */ + ret = wb_pmbus_read_byte_data(client, 0, TPS53681_MFR_SPECIFIC_20); + if (ret < 0) + return ret; + info->phases[0] = (ret & 0x07) + 1; + + return 0; +} + +static int tps53679_identify_chip(struct i2c_client *client, + u8 revision, u16 id) +{ + u8 buf[I2C_SMBUS_BLOCK_MAX]; + int ret; + + ret = wb_pmbus_read_byte_data(client, 0, PMBUS_REVISION); + if (ret < 0) + return ret; + if (ret != revision) { + dev_err(&client->dev, "Unexpected PMBus revision 0x%x\n", ret); + return -ENODEV; + } + + ret = i2c_smbus_read_block_data(client, PMBUS_IC_DEVICE_ID, buf); + if (ret < 0) + return ret; + if (ret != 1 || buf[0] != id) { + dev_err(&client->dev, "Unexpected device ID 0x%x\n", buf[0]); + return -ENODEV; + } + return 0; +} + +/* + * Common identification function for chips with multi-phase support. + * Since those chips have special configuration registers, we want to have + * some level of reassurance that we are really talking with the chip + * being probed. Check PMBus revision and chip ID. + */ +static int tps53679_identify_multiphase(struct i2c_client *client, + struct pmbus_driver_info *info, + int pmbus_rev, int device_id) +{ + int ret; + + ret = tps53679_identify_chip(client, pmbus_rev, device_id); + if (ret < 0) + return ret; + + ret = tps53679_identify_mode(client, info); + if (ret < 0) + return ret; + + return tps53679_identify_phases(client, info); +} + +static int tps53679_identify(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + return tps53679_identify_mode(client, info); +} + +static int tps53681_identify(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + return tps53679_identify_multiphase(client, info, + TPS53681_PMBUS_REVISION, + TPS53681_DEVICE_ID); +} + +static int tps53681_read_word_data(struct i2c_client *client, int page, + int phase, int reg) +{ + /* + * For reading the total output current (READ_IOUT) for all phases, + * the chip datasheet is a bit vague. It says "PHASE must be set to + * FFh to access all phases simultaneously. PHASE may also be set to + * 80h readack (!) the total phase current". + * Experiments show that the command does _not_ report the total + * current for all phases if the phase is set to 0xff. Instead, it + * appears to report the current of one of the phases. Override phase + * parameter with 0x80 when reading the total output current on page 0. + */ + if (reg == PMBUS_READ_IOUT && page == 0 && phase == 0xff) + return wb_pmbus_read_word_data(client, page, 0x80, reg); + return -ENODATA; +} + +static struct pmbus_driver_info tps53679_info = { + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_VOLTAGE_OUT] = vid, + .format[PSC_TEMPERATURE] = linear, + .format[PSC_CURRENT_OUT] = linear, + .format[PSC_POWER] = linear, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_PIN | + PMBUS_HAVE_STATUS_INPUT | + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | + PMBUS_HAVE_POUT, + .func[1] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | + PMBUS_HAVE_POUT, + .pfunc[0] = PMBUS_HAVE_IOUT, + .pfunc[1] = PMBUS_HAVE_IOUT, + .pfunc[2] = PMBUS_HAVE_IOUT, + .pfunc[3] = PMBUS_HAVE_IOUT, + .pfunc[4] = PMBUS_HAVE_IOUT, + .pfunc[5] = PMBUS_HAVE_IOUT, +}; + +static int tps53679_probe(struct i2c_client *client) +{ + struct device *dev = &client->dev; + struct pmbus_driver_info *info; + enum chips chip_id; + + if (dev->of_node) + chip_id = (enum chips)of_device_get_match_data(dev); + else + chip_id = i2c_match_id(tps53679_id, client)->driver_data; + + info = devm_kmemdup(dev, &tps53679_info, sizeof(*info), GFP_KERNEL); + if (!info) + return -ENOMEM; + + switch (chip_id) { + case tps53647: + case tps53667: + info->pages = TPS53647_PAGE_NUM; + info->identify = tps53679_identify; + break; + case tps53679: + case tps53688: + case tps53622: + info->pages = TPS53679_PAGE_NUM; + info->identify = tps53679_identify; + break; + case tps53681: + info->pages = TPS53679_PAGE_NUM; + info->phases[0] = 6; + info->identify = tps53681_identify; + info->read_word_data = tps53681_read_word_data; + break; + default: + return -ENODEV; + } + + return wb_pmbus_do_probe(client, info); +} + +static const struct i2c_device_id tps53679_id[] = { + {"wb_tps53647", tps53647}, + {"wb_tps53667", tps53667}, + {"wb_tps53679", tps53679}, + {"wb_tps53681", tps53681}, + {"wb_tps53688", tps53688}, + {"wb_tps53622", tps53622}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, tps53679_id); + +static const struct of_device_id __maybe_unused tps53679_of_match[] = { + {.compatible = "ti,wb_tps53647", .data = (void *)tps53647}, + {.compatible = "ti,wb_tps53667", .data = (void *)tps53667}, + {.compatible = "ti,wb_tps53679", .data = (void *)tps53679}, + {.compatible = "ti,wb_tps53681", .data = (void *)tps53681}, + {.compatible = "ti,wb_tps53688", .data = (void *)tps53688}, + {.compatible = "ti,wb_tps53622", .data = (void *)tps53622}, + {} +}; +MODULE_DEVICE_TABLE(of, tps53679_of_match); + +static struct i2c_driver tps53679_driver = { + .driver = { + .name = "wb_tps53622", + .of_match_table = of_match_ptr(tps53679_of_match), + }, + .probe_new = tps53679_probe, + .remove = wb_pmbus_do_remove, + .id_table = tps53679_id, +}; + +module_i2c_driver(tps53679_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PMBus driver for Texas Instruments TPS53679"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c new file mode 100644 index 000000000000..9b967f141a86 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c @@ -0,0 +1,675 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Hardware monitoring driver for UCD90xxx Sequencer and System Health + * Controller series + * + * Copyright (C) 2011 Ericsson AB. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "wb_pmbus.h" + +enum chips { ucd9000, ucd90120, ucd90124, ucd90160, ucd90320, ucd9090, + ucd90910 }; + +#define UCD9000_MONITOR_CONFIG 0xd5 +#define UCD9000_NUM_PAGES 0xd6 +#define UCD9000_FAN_CONFIG_INDEX 0xe7 +#define UCD9000_FAN_CONFIG 0xe8 +#define UCD9000_MFR_STATUS 0xf3 +#define UCD9000_GPIO_SELECT 0xfa +#define UCD9000_GPIO_CONFIG 0xfb +#define UCD9000_DEVICE_ID 0xfd + +/* GPIO CONFIG bits */ +#define UCD9000_GPIO_CONFIG_ENABLE BIT(0) +#define UCD9000_GPIO_CONFIG_OUT_ENABLE BIT(1) +#define UCD9000_GPIO_CONFIG_OUT_VALUE BIT(2) +#define UCD9000_GPIO_CONFIG_STATUS BIT(3) +#define UCD9000_GPIO_INPUT 0 +#define UCD9000_GPIO_OUTPUT 1 + +#define UCD9000_MON_TYPE(x) (((x) >> 5) & 0x07) +#define UCD9000_MON_PAGE(x) ((x) & 0x1f) + +#define UCD9000_MON_VOLTAGE 1 +#define UCD9000_MON_TEMPERATURE 2 +#define UCD9000_MON_CURRENT 3 +#define UCD9000_MON_VOLTAGE_HW 4 + +#define UCD9000_NUM_FAN 4 + +#define UCD9000_GPIO_NAME_LEN 16 +#define UCD9090_NUM_GPIOS 23 +#define UCD901XX_NUM_GPIOS 26 +#define UCD90320_NUM_GPIOS 84 +#define UCD90910_NUM_GPIOS 26 + +#define UCD9000_DEBUGFS_NAME_LEN 24 +#define UCD9000_GPI_COUNT 8 +#define UCD90320_GPI_COUNT 32 + +#define UCD9000_RETRY_SLEEP_TIME (10000) /* 10ms */ +#define UCD9000_RETRY_TIME (3) +#define WB_DEV_NAME_MAX_LEN (64) + +static int g_wb_ucd9000_debug = 0; +static int g_wb_ucd9000_error = 0; + +module_param(g_wb_ucd9000_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_ucd9000_error, int, S_IRUGO | S_IWUSR); + +#define WB_UDC9000_VERBOSE(fmt, args...) do { \ + if (g_wb_ucd9000_debug) { \ + printk(KERN_INFO "[WB_UCD9000][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_UDC9000_ERROR(fmt, args...) do { \ + if (g_wb_ucd9000_error) { \ + printk(KERN_ERR "[WB_UCD9000][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct ucd9000_data { + u8 fan_data[UCD9000_NUM_FAN][I2C_SMBUS_BLOCK_MAX]; + struct pmbus_driver_info info; +#ifdef CONFIG_GPIOLIB + struct gpio_chip gpio; +#endif + struct dentry *debugfs; +}; +#define to_ucd9000_data(_info) container_of(_info, struct ucd9000_data, info) + +struct ucd9000_debugfs_entry { + struct i2c_client *client; + u8 index; +}; + +static int wb_i2c_smbus_read_block_data(const struct i2c_client *client, u8 command, u8 *values) +{ + int rv, i; + + for(i = 0; i < UCD9000_RETRY_TIME; i++) { + rv = i2c_smbus_read_block_data(client, command, values); + if(rv >= 0){ + return rv; + } + usleep_range(UCD9000_RETRY_SLEEP_TIME, UCD9000_RETRY_SLEEP_TIME + 1); + } + WB_UDC9000_ERROR("read_block_data failed. nr:%d, addr:0x%x, reg:0x%x, rv:%d.", + client->adapter->nr, client->addr, command, rv); + return rv; +} + +static int ucd9000_get_fan_config(struct i2c_client *client, int fan) +{ + int fan_config = 0; + struct ucd9000_data *data + = to_ucd9000_data(wb_pmbus_get_driver_info(client)); + + if (data->fan_data[fan][3] & 1) + fan_config |= PB_FAN_2_INSTALLED; /* Use lower bit position */ + + /* Pulses/revolution */ + fan_config |= (data->fan_data[fan][3] & 0x06) >> 1; + + return fan_config; +} + +static int ucd9000_read_byte_data(struct i2c_client *client, int page, int reg) +{ + int ret = 0; + int fan_config; + + switch (reg) { + case PMBUS_FAN_CONFIG_12: + if (page > 0) + return -ENXIO; + + ret = ucd9000_get_fan_config(client, 0); + if (ret < 0) + return ret; + fan_config = ret << 4; + ret = ucd9000_get_fan_config(client, 1); + if (ret < 0) + return ret; + fan_config |= ret; + ret = fan_config; + break; + case PMBUS_FAN_CONFIG_34: + if (page > 0) + return -ENXIO; + + ret = ucd9000_get_fan_config(client, 2); + if (ret < 0) + return ret; + fan_config = ret << 4; + ret = ucd9000_get_fan_config(client, 3); + if (ret < 0) + return ret; + fan_config |= ret; + ret = fan_config; + break; + default: + ret = -ENODATA; + break; + } + return ret; +} + +static const struct i2c_device_id ucd9000_id[] = { + {"wb_ucd9000", ucd9000}, + {"wb_ucd90120", ucd90120}, + {"wb_ucd90124", ucd90124}, + {"wb_ucd90160", ucd90160}, + {"wb_ucd90320", ucd90320}, + {"wb_ucd9090", ucd9090}, + {"wb_ucd90910", ucd90910}, + {} +}; +MODULE_DEVICE_TABLE(i2c, ucd9000_id); + +static const struct of_device_id __maybe_unused ucd9000_of_match[] = { + { + .compatible = "ti,wb_ucd9000", + .data = (void *)ucd9000 + }, + { + .compatible = "ti,wb_ucd90120", + .data = (void *)ucd90120 + }, + { + .compatible = "ti,wb_ucd90124", + .data = (void *)ucd90124 + }, + { + .compatible = "ti,wb_ucd90160", + .data = (void *)ucd90160 + }, + { + .compatible = "ti,wb_ucd90320", + .data = (void *)ucd90320 + }, + { + .compatible = "ti,wb_ucd9090", + .data = (void *)ucd9090 + }, + { + .compatible = "ti,wb_ucd90910", + .data = (void *)ucd90910 + }, + { }, +}; +MODULE_DEVICE_TABLE(of, ucd9000_of_match); + +#ifdef CONFIG_GPIOLIB +static int ucd9000_gpio_read_config(struct i2c_client *client, + unsigned int offset) +{ + int ret; + + /* No page set required */ + ret = i2c_smbus_write_byte_data(client, UCD9000_GPIO_SELECT, offset); + if (ret < 0) + return ret; + + return i2c_smbus_read_byte_data(client, UCD9000_GPIO_CONFIG); +} + +static int ucd9000_gpio_get(struct gpio_chip *gc, unsigned int offset) +{ + struct i2c_client *client = gpiochip_get_data(gc); + int ret; + + ret = ucd9000_gpio_read_config(client, offset); + if (ret < 0) + return ret; + + return !!(ret & UCD9000_GPIO_CONFIG_STATUS); +} + +static void ucd9000_gpio_set(struct gpio_chip *gc, unsigned int offset, + int value) +{ + struct i2c_client *client = gpiochip_get_data(gc); + int ret; + + ret = ucd9000_gpio_read_config(client, offset); + if (ret < 0) { + dev_dbg(&client->dev, "failed to read GPIO %d config: %d\n", + offset, ret); + return; + } + + if (value) { + if (ret & UCD9000_GPIO_CONFIG_STATUS) + return; + + ret |= UCD9000_GPIO_CONFIG_STATUS; + } else { + if (!(ret & UCD9000_GPIO_CONFIG_STATUS)) + return; + + ret &= ~UCD9000_GPIO_CONFIG_STATUS; + } + + ret |= UCD9000_GPIO_CONFIG_ENABLE; + + /* Page set not required */ + ret = i2c_smbus_write_byte_data(client, UCD9000_GPIO_CONFIG, ret); + if (ret < 0) { + dev_dbg(&client->dev, "Failed to write GPIO %d config: %d\n", + offset, ret); + return; + } + + ret &= ~UCD9000_GPIO_CONFIG_ENABLE; + + ret = i2c_smbus_write_byte_data(client, UCD9000_GPIO_CONFIG, ret); + if (ret < 0) + dev_dbg(&client->dev, "Failed to write GPIO %d config: %d\n", + offset, ret); +} + +static int ucd9000_gpio_get_direction(struct gpio_chip *gc, + unsigned int offset) +{ + struct i2c_client *client = gpiochip_get_data(gc); + int ret; + + ret = ucd9000_gpio_read_config(client, offset); + if (ret < 0) + return ret; + + return !(ret & UCD9000_GPIO_CONFIG_OUT_ENABLE); +} + +static int ucd9000_gpio_set_direction(struct gpio_chip *gc, + unsigned int offset, bool direction_out, + int requested_out) +{ + struct i2c_client *client = gpiochip_get_data(gc); + int ret, config, out_val; + + ret = ucd9000_gpio_read_config(client, offset); + if (ret < 0) + return ret; + + if (direction_out) { + out_val = requested_out ? UCD9000_GPIO_CONFIG_OUT_VALUE : 0; + + if (ret & UCD9000_GPIO_CONFIG_OUT_ENABLE) { + if ((ret & UCD9000_GPIO_CONFIG_OUT_VALUE) == out_val) + return 0; + } else { + ret |= UCD9000_GPIO_CONFIG_OUT_ENABLE; + } + + if (out_val) + ret |= UCD9000_GPIO_CONFIG_OUT_VALUE; + else + ret &= ~UCD9000_GPIO_CONFIG_OUT_VALUE; + + } else { + if (!(ret & UCD9000_GPIO_CONFIG_OUT_ENABLE)) + return 0; + + ret &= ~UCD9000_GPIO_CONFIG_OUT_ENABLE; + } + + ret |= UCD9000_GPIO_CONFIG_ENABLE; + config = ret; + + /* Page set not required */ + ret = i2c_smbus_write_byte_data(client, UCD9000_GPIO_CONFIG, config); + if (ret < 0) + return ret; + + config &= ~UCD9000_GPIO_CONFIG_ENABLE; + + return i2c_smbus_write_byte_data(client, UCD9000_GPIO_CONFIG, config); +} + +static int ucd9000_gpio_direction_input(struct gpio_chip *gc, + unsigned int offset) +{ + return ucd9000_gpio_set_direction(gc, offset, UCD9000_GPIO_INPUT, 0); +} + +static int ucd9000_gpio_direction_output(struct gpio_chip *gc, + unsigned int offset, int val) +{ + return ucd9000_gpio_set_direction(gc, offset, UCD9000_GPIO_OUTPUT, + val); +} + +static void ucd9000_probe_gpio(struct i2c_client *client, + const struct i2c_device_id *mid, + struct ucd9000_data *data) +{ + int rc; + + switch (mid->driver_data) { + case ucd9090: + data->gpio.ngpio = UCD9090_NUM_GPIOS; + break; + case ucd90120: + case ucd90124: + case ucd90160: + data->gpio.ngpio = UCD901XX_NUM_GPIOS; + break; + case ucd90320: + data->gpio.ngpio = UCD90320_NUM_GPIOS; + break; + case ucd90910: + data->gpio.ngpio = UCD90910_NUM_GPIOS; + break; + default: + return; /* GPIO support is optional. */ + } + + /* + * Pinmux support has not been added to the new gpio_chip. + * This support should be added when possible given the mux + * behavior of these IO devices. + */ + data->gpio.label = client->name; + data->gpio.get_direction = ucd9000_gpio_get_direction; + data->gpio.direction_input = ucd9000_gpio_direction_input; + data->gpio.direction_output = ucd9000_gpio_direction_output; + data->gpio.get = ucd9000_gpio_get; + data->gpio.set = ucd9000_gpio_set; + data->gpio.can_sleep = true; + data->gpio.base = -1; + data->gpio.parent = &client->dev; + + rc = devm_gpiochip_add_data(&client->dev, &data->gpio, client); + if (rc) + dev_warn(&client->dev, "Could not add gpiochip: %d\n", rc); +} +#else +static void ucd9000_probe_gpio(struct i2c_client *client, + const struct i2c_device_id *mid, + struct ucd9000_data *data) +{ +} +#endif /* CONFIG_GPIOLIB */ + +#ifdef CONFIG_DEBUG_FS +static int ucd9000_get_mfr_status(struct i2c_client *client, u8 *buffer) +{ + int ret = wb_pmbus_set_page(client, 0, 0xff); + + if (ret < 0) + return ret; + + return wb_i2c_smbus_read_block_data(client, UCD9000_MFR_STATUS, buffer); +} + +static int ucd9000_debugfs_show_mfr_status_bit(void *data, u64 *val) +{ + struct ucd9000_debugfs_entry *entry = data; + struct i2c_client *client = entry->client; + u8 buffer[I2C_SMBUS_BLOCK_MAX]; + int ret, i; + + ret = ucd9000_get_mfr_status(client, buffer); + if (ret < 0) + return ret; + + /* + * GPI fault bits are in sets of 8, two bytes from end of response. + */ + i = ret - 3 - entry->index / 8; + if (i >= 0) + *val = !!(buffer[i] & BIT(entry->index % 8)); + + return 0; +} +DEFINE_DEBUGFS_ATTRIBUTE(ucd9000_debugfs_mfr_status_bit, + ucd9000_debugfs_show_mfr_status_bit, NULL, "%1lld\n"); + +static ssize_t ucd9000_debugfs_read_mfr_status(struct file *file, + char __user *buf, size_t count, + loff_t *ppos) +{ + struct i2c_client *client = file->private_data; + u8 buffer[I2C_SMBUS_BLOCK_MAX]; + char str[(I2C_SMBUS_BLOCK_MAX * 2) + 2]; + char *res; + int rc; + + rc = ucd9000_get_mfr_status(client, buffer); + if (rc < 0) + return rc; + + res = bin2hex(str, buffer, min(rc, I2C_SMBUS_BLOCK_MAX)); + *res++ = '\n'; + *res = 0; + + return simple_read_from_buffer(buf, count, ppos, str, res - str); +} + +static const struct file_operations ucd9000_debugfs_show_mfr_status_fops = { + .llseek = noop_llseek, + .read = ucd9000_debugfs_read_mfr_status, + .open = simple_open, +}; + +static int ucd9000_init_debugfs(struct i2c_client *client, + const struct i2c_device_id *mid, + struct ucd9000_data *data) +{ + struct dentry *debugfs; + struct ucd9000_debugfs_entry *entries; + int i, gpi_count; + char name[UCD9000_DEBUGFS_NAME_LEN]; + + debugfs = wb_pmbus_get_debugfs_dir(client); + if (!debugfs) + return -ENOENT; + + data->debugfs = debugfs_create_dir(client->name, debugfs); + if (!data->debugfs) + return -ENOENT; + + /* + * Of the chips this driver supports, only the UCD9090, UCD90160, + * UCD90320, and UCD90910 report GPI faults in their MFR_STATUS + * register, so only create the GPI fault debugfs attributes for those + * chips. + */ + if (mid->driver_data == ucd9090 || mid->driver_data == ucd90160 || + mid->driver_data == ucd90320 || mid->driver_data == ucd90910) { + gpi_count = mid->driver_data == ucd90320 ? UCD90320_GPI_COUNT + : UCD9000_GPI_COUNT; + entries = devm_kcalloc(&client->dev, + gpi_count, sizeof(*entries), + GFP_KERNEL); + if (!entries) + return -ENOMEM; + + for (i = 0; i < gpi_count; i++) { + entries[i].client = client; + entries[i].index = i; + scnprintf(name, UCD9000_DEBUGFS_NAME_LEN, + "gpi%d_alarm", i + 1); + debugfs_create_file(name, 0444, data->debugfs, + &entries[i], + &ucd9000_debugfs_mfr_status_bit); + } + } + + scnprintf(name, UCD9000_DEBUGFS_NAME_LEN, "mfr_status"); + debugfs_create_file(name, 0444, data->debugfs, client, + &ucd9000_debugfs_show_mfr_status_fops); + + return 0; +} +#else +static int ucd9000_init_debugfs(struct i2c_client *client, + const struct i2c_device_id *mid, + struct ucd9000_data *data) +{ + return 0; +} +#endif /* CONFIG_DEBUG_FS */ + +static int ucd9000_probe(struct i2c_client *client) +{ + u8 block_buffer[I2C_SMBUS_BLOCK_MAX + 1]; + char wb_device_name[WB_DEV_NAME_MAX_LEN]; + struct ucd9000_data *data; + struct pmbus_driver_info *info; + const struct i2c_device_id *mid; + enum chips chip; + int i, ret; + + if (!i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_BYTE_DATA | + I2C_FUNC_SMBUS_BLOCK_DATA)) + return -ENODEV; + + ret = wb_i2c_smbus_read_block_data(client, UCD9000_DEVICE_ID, + block_buffer); + if (ret < 0) { + dev_err(&client->dev, "Failed to read device ID\n"); + return ret; + } + block_buffer[ret] = '\0'; + dev_info(&client->dev, "Device ID %s\n", block_buffer); + + mem_clear(wb_device_name, sizeof(wb_device_name)); + snprintf(wb_device_name, sizeof(wb_device_name), "wb_%s", block_buffer); + + for (mid = ucd9000_id; mid->name[0]; mid++) { + if (!strncasecmp(mid->name, wb_device_name, strlen(mid->name))) + break; + } + if (!mid->name[0]) { + dev_err(&client->dev, "Unsupported device\n"); + return -ENODEV; + } + + if (client->dev.of_node) + chip = (enum chips)of_device_get_match_data(&client->dev); + else + chip = mid->driver_data; + + if (chip != ucd9000 && strcmp(client->name, mid->name) != 0) + dev_notice(&client->dev, + "Device mismatch: Configured %s, detected %s\n", + client->name, mid->name); + + data = devm_kzalloc(&client->dev, sizeof(struct ucd9000_data), + GFP_KERNEL); + if (!data) + return -ENOMEM; + info = &data->info; + + ret = i2c_smbus_read_byte_data(client, UCD9000_NUM_PAGES); + if (ret < 0) { + dev_err(&client->dev, + "Failed to read number of active pages\n"); + return ret; + } + info->pages = ret; + if (!info->pages) { + dev_err(&client->dev, "No pages configured\n"); + return -ENODEV; + } + + /* The internal temperature sensor is always active */ + info->func[0] = PMBUS_HAVE_TEMP; + + /* Everything else is configurable */ + ret = wb_i2c_smbus_read_block_data(client, UCD9000_MONITOR_CONFIG, + block_buffer); + if (ret <= 0) { + dev_err(&client->dev, "Failed to read configuration data\n"); + return -ENODEV; + } + for (i = 0; i < ret; i++) { + int page = UCD9000_MON_PAGE(block_buffer[i]); + + if (page >= info->pages) + continue; + + switch (UCD9000_MON_TYPE(block_buffer[i])) { + case UCD9000_MON_VOLTAGE: + case UCD9000_MON_VOLTAGE_HW: + info->func[page] |= PMBUS_HAVE_VOUT + | PMBUS_HAVE_STATUS_VOUT; + break; + case UCD9000_MON_TEMPERATURE: + info->func[page] |= PMBUS_HAVE_TEMP2 + | PMBUS_HAVE_STATUS_TEMP; + break; + case UCD9000_MON_CURRENT: + info->func[page] |= PMBUS_HAVE_IOUT + | PMBUS_HAVE_STATUS_IOUT; + break; + default: + break; + } + } + + /* Fan configuration */ + if (mid->driver_data == ucd90124) { + for (i = 0; i < UCD9000_NUM_FAN; i++) { + i2c_smbus_write_byte_data(client, + UCD9000_FAN_CONFIG_INDEX, i); + ret = wb_i2c_smbus_read_block_data(client, + UCD9000_FAN_CONFIG, + data->fan_data[i]); + if (ret < 0) + return ret; + } + i2c_smbus_write_byte_data(client, UCD9000_FAN_CONFIG_INDEX, 0); + + info->read_byte_data = ucd9000_read_byte_data; + info->func[0] |= PMBUS_HAVE_FAN12 | PMBUS_HAVE_STATUS_FAN12 + | PMBUS_HAVE_FAN34 | PMBUS_HAVE_STATUS_FAN34; + } + + ucd9000_probe_gpio(client, mid, data); + + ret = wb_pmbus_do_probe(client, info); + if (ret) + return ret; + + ret = ucd9000_init_debugfs(client, mid, data); + if (ret) + dev_warn(&client->dev, "Failed to register debugfs: %d\n", + ret); + + return 0; +} + +/* This is the driver that will be inserted */ +static struct i2c_driver ucd9000_driver = { + .driver = { + .name = "wb_ucd9000", + .of_match_table = of_match_ptr(ucd9000_of_match), + }, + .probe_new = ucd9000_probe, + .remove = wb_pmbus_do_remove, + .id_table = ucd9000_id, +}; + +module_i2c_driver(ucd9000_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PMBus driver for TI UCD90xxx"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c new file mode 100644 index 000000000000..b3bd70920289 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c @@ -0,0 +1,171 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Hardware monitoring driver for Infineon Multi-phase Digital VR Controllers + * + * Copyright (c) 2020 Mellanox Technologies. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include "wb_pmbus.h" + +#define XDPE122_PROT_VR12_5MV 0x01 /* VR12.0 mode, 5-mV DAC */ +#define XDPE122_PROT_VR12_5_10MV 0x02 /* VR12.5 mode, 10-mV DAC */ +#define XDPE122_PROT_IMVP9_10MV 0x03 /* IMVP9 mode, 10-mV DAC */ +#define XDPE122_AMD_625MV 0x10 /* AMD mode 6.25mV */ +#define XDPE122_PAGE_NUM 2 + +static int xdpe122_read_word_data(struct i2c_client *client, int page, + int phase, int reg) +{ + const struct pmbus_driver_info *info = wb_pmbus_get_driver_info(client); + long val; + s16 exponent; + s32 mantissa; + int ret; + + switch (reg) { + case PMBUS_VOUT_OV_FAULT_LIMIT: + case PMBUS_VOUT_UV_FAULT_LIMIT: + ret = wb_pmbus_read_word_data(client, page, phase, reg); + if (ret < 0) + return ret; + + /* Convert register value to LINEAR11 data. */ + exponent = ((s16)ret) >> 11; + mantissa = ((s16)((ret & GENMASK(10, 0)) << 5)) >> 5; + val = mantissa * 1000L; + if (exponent >= 0) + val <<= exponent; + else + val >>= -exponent; + + /* Convert data to VID register. */ + switch (info->vrm_version[page]) { + case vr13: + if (val >= 500) + return 1 + DIV_ROUND_CLOSEST(val - 500, 10); + return 0; + case vr12: + if (val >= 250) + return 1 + DIV_ROUND_CLOSEST(val - 250, 5); + return 0; + case imvp9: + if (val >= 200) + return 1 + DIV_ROUND_CLOSEST(val - 200, 10); + return 0; + case amd625mv: + if (val >= 200 && val <= 1550) + return DIV_ROUND_CLOSEST((1550 - val) * 100, + 625); + return 0; + default: + return -EINVAL; + } + default: + return -ENODATA; + } + + return 0; +} + +static int xdpe122_identify(struct i2c_client *client, + struct pmbus_driver_info *info) +{ + u8 vout_params; + int i, ret; + + for (i = 0; i < XDPE122_PAGE_NUM; i++) { + /* Read the register with VOUT scaling value.*/ + ret = wb_pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE); + if (ret < 0) + return ret; + + vout_params = ret & GENMASK(4, 0); + + switch (vout_params) { + case XDPE122_PROT_VR12_5_10MV: + info->vrm_version[i] = vr13; + break; + case XDPE122_PROT_VR12_5MV: + info->vrm_version[i] = vr12; + break; + case XDPE122_PROT_IMVP9_10MV: + info->vrm_version[i] = imvp9; + break; + case XDPE122_AMD_625MV: + info->vrm_version[i] = amd625mv; + break; + default: + return -EINVAL; + } + } + + return 0; +} + +static struct pmbus_driver_info xdpe122_info = { + .pages = XDPE122_PAGE_NUM, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_VOLTAGE_OUT] = vid, + .format[PSC_TEMPERATURE] = linear, + .format[PSC_CURRENT_IN] = linear, + .format[PSC_CURRENT_OUT] = linear, + .format[PSC_POWER] = linear, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IIN | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | + PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT, + .func[1] = PMBUS_HAVE_VIN | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_IIN | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | + PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT, + .identify = xdpe122_identify, + .read_word_data = xdpe122_read_word_data, +}; + +static int xdpe122_probe(struct i2c_client *client) +{ + struct pmbus_driver_info *info; + + info = devm_kmemdup(&client->dev, &xdpe122_info, sizeof(*info), + GFP_KERNEL); + if (!info) + return -ENOMEM; + + return wb_pmbus_do_probe(client, info); +} + +static const struct i2c_device_id xdpe122_id[] = { + {"wb_xdpe12254", 0}, + {"wb_xdpe12284", 0}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, xdpe122_id); + +static const struct of_device_id __maybe_unused xdpe122_of_match[] = { + {.compatible = "infineon,wb_xdpe12254"}, + {.compatible = "infineon,wb_xdpe12284"}, + {} +}; +MODULE_DEVICE_TABLE(of, xdpe122_of_match); + +static struct i2c_driver xdpe122_driver = { + .driver = { + .name = "wb_xdpe12284", + .of_match_table = of_match_ptr(xdpe122_of_match), + }, + .probe_new = xdpe122_probe, + .remove = wb_pmbus_do_remove, + .id_table = xdpe122_id, +}; + +module_i2c_driver(xdpe122_driver); + +MODULE_AUTHOR("Vadim Pasternak "); +MODULE_DESCRIPTION("PMBus driver for Infineon XDPE122 family"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/Makefile new file mode 100644 index 000000000000..4d5f8d5358d9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/Makefile @@ -0,0 +1,23 @@ +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall + +ifndef CONFIG_MDIO_BITBANG +obj-m += mdio_bitbang.o +endif + +ifndef CONFIG_MDIO_GPIO +obj-m += mdio_gpio.o +endif + +obj-m += wb_mdio_gpio_device.o + +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + cp -p $(PWD)/*.ko $(module_out_put_dir) +clean: + rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd $(PWD)/*.mod + rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order + rm -rf $(PWD)/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c new file mode 100644 index 000000000000..5136275c8e73 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Bitbanged MDIO support. + * + * Author: Scott Wood + * Copyright (c) 2007 Freescale Semiconductor + * + * Based on CPM2 MDIO code which is: + * + * Copyright (c) 2003 Intracom S.A. + * by Pantelis Antoniou + * + * 2005 (c) MontaVista Software, Inc. + * Vitaly Bordug + */ + +#include +#include +#include +#include + +#define MDIO_READ 2 +#define MDIO_WRITE 1 + +#define MDIO_C45 (1<<15) +#define MDIO_C45_ADDR (MDIO_C45 | 0) +#define MDIO_C45_READ (MDIO_C45 | 3) +#define MDIO_C45_WRITE (MDIO_C45 | 1) + +#define MDIO_SETUP_TIME 10 +#define MDIO_HOLD_TIME 10 + +/* Minimum MDC period is 400 ns, plus some margin for error. MDIO_DELAY + * is done twice per period. + */ +#define MDIO_DELAY 250 + +/* The PHY may take up to 300 ns to produce data, plus some margin + * for error. + */ +#define MDIO_READ_DELAY 350 + +/* MDIO must already be configured as output. */ +static void mdiobb_send_bit(struct mdiobb_ctrl *ctrl, int val) +{ + const struct mdiobb_ops *ops = ctrl->ops; + + ops->set_mdio_data(ctrl, val); + ndelay(MDIO_DELAY); + ops->set_mdc(ctrl, 1); + ndelay(MDIO_DELAY); + ops->set_mdc(ctrl, 0); +} + +/* MDIO must already be configured as input. */ +static int mdiobb_get_bit(struct mdiobb_ctrl *ctrl) +{ + const struct mdiobb_ops *ops = ctrl->ops; + + ndelay(MDIO_DELAY); + ops->set_mdc(ctrl, 1); + ndelay(MDIO_READ_DELAY); + ops->set_mdc(ctrl, 0); + + return ops->get_mdio_data(ctrl); +} + +/* MDIO must already be configured as output. */ +static void mdiobb_send_num(struct mdiobb_ctrl *ctrl, u16 val, int bits) +{ + int i; + + for (i = bits - 1; i >= 0; i--) + mdiobb_send_bit(ctrl, (val >> i) & 1); +} + +/* MDIO must already be configured as input. */ +static u16 mdiobb_get_num(struct mdiobb_ctrl *ctrl, int bits) +{ + int i; + u16 ret = 0; + + for (i = bits - 1; i >= 0; i--) { + ret <<= 1; + ret |= mdiobb_get_bit(ctrl); + } + + return ret; +} + +/* Utility to send the preamble, address, and + * register (common to read and write). + */ +static void mdiobb_cmd(struct mdiobb_ctrl *ctrl, int op, u8 phy, u8 reg) +{ + const struct mdiobb_ops *ops = ctrl->ops; + int i; + + ops->set_mdio_dir(ctrl, 1); + + /* + * Send a 32 bit preamble ('1's) with an extra '1' bit for good + * measure. The IEEE spec says this is a PHY optional + * requirement. The AMD 79C874 requires one after power up and + * one after a MII communications error. This means that we are + * doing more preambles than we need, but it is safer and will be + * much more robust. + */ + + for (i = 0; i < 32; i++) + mdiobb_send_bit(ctrl, 1); + + /* send the start bit (01) and the read opcode (10) or write (01). + Clause 45 operation uses 00 for the start and 11, 10 for + read/write */ + mdiobb_send_bit(ctrl, 0); + if (op & MDIO_C45) + mdiobb_send_bit(ctrl, 0); + else + mdiobb_send_bit(ctrl, 1); + mdiobb_send_bit(ctrl, (op >> 1) & 1); + mdiobb_send_bit(ctrl, (op >> 0) & 1); + + mdiobb_send_num(ctrl, phy, 5); + mdiobb_send_num(ctrl, reg, 5); +} + +/* In clause 45 mode all commands are prefixed by MDIO_ADDR to specify the + lower 16 bits of the 21 bit address. This transfer is done identically to a + MDIO_WRITE except for a different code. To enable clause 45 mode or + MII_ADDR_C45 into the address. Theoretically clause 45 and normal devices + can exist on the same bus. Normal devices should ignore the MDIO_ADDR + phase. */ +static int mdiobb_cmd_addr(struct mdiobb_ctrl *ctrl, int phy, u32 addr) +{ + unsigned int dev_addr = (addr >> 16) & 0x1F; + unsigned int reg = addr & 0xFFFF; + mdiobb_cmd(ctrl, MDIO_C45_ADDR, phy, dev_addr); + + /* send the turnaround (10) */ + mdiobb_send_bit(ctrl, 1); + mdiobb_send_bit(ctrl, 0); + + mdiobb_send_num(ctrl, reg, 16); + + ctrl->ops->set_mdio_dir(ctrl, 0); + mdiobb_get_bit(ctrl); + + return dev_addr; +} + +static int mdiobb_read(struct mii_bus *bus, int phy, int reg) +{ + struct mdiobb_ctrl *ctrl = bus->priv; + int ret, i; + + if (reg & MII_ADDR_C45) { + reg = mdiobb_cmd_addr(ctrl, phy, reg); + mdiobb_cmd(ctrl, MDIO_C45_READ, phy, reg); + } else + mdiobb_cmd(ctrl, MDIO_READ, phy, reg); + + ctrl->ops->set_mdio_dir(ctrl, 0); + + /* check the turnaround bit: the PHY should be driving it to zero, if this + * PHY is listed in phy_ignore_ta_mask as having broken TA, skip that + */ + if (mdiobb_get_bit(ctrl) != 0 && + !(bus->phy_ignore_ta_mask & (1 << phy))) { + /* PHY didn't drive TA low -- flush any bits it + * may be trying to send. + */ + for (i = 0; i < 32; i++) + mdiobb_get_bit(ctrl); + + return 0xffff; + } + + ret = mdiobb_get_num(ctrl, 16); + mdiobb_get_bit(ctrl); + return ret; +} + +static int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val) +{ + struct mdiobb_ctrl *ctrl = bus->priv; + + if (reg & MII_ADDR_C45) { + reg = mdiobb_cmd_addr(ctrl, phy, reg); + mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, reg); + } else + mdiobb_cmd(ctrl, MDIO_WRITE, phy, reg); + + /* send the turnaround (10) */ + mdiobb_send_bit(ctrl, 1); + mdiobb_send_bit(ctrl, 0); + + mdiobb_send_num(ctrl, val, 16); + + ctrl->ops->set_mdio_dir(ctrl, 0); + mdiobb_get_bit(ctrl); + return 0; +} + +struct mii_bus *alloc_mdio_bitbang(struct mdiobb_ctrl *ctrl) +{ + struct mii_bus *bus; + + bus = mdiobus_alloc(); + if (!bus) + return NULL; + + __module_get(ctrl->ops->owner); + + bus->read = mdiobb_read; + bus->write = mdiobb_write; + bus->priv = ctrl; + + return bus; +} +EXPORT_SYMBOL(alloc_mdio_bitbang); + +void free_mdio_bitbang(struct mii_bus *bus) +{ + struct mdiobb_ctrl *ctrl = bus->priv; + + module_put(ctrl->ops->owner); + mdiobus_free(bus); +} +EXPORT_SYMBOL(free_mdio_bitbang); + +MODULE_LICENSE("GPL v2"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_gpio.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_gpio.c new file mode 100644 index 000000000000..1b00235d7dc5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_gpio.c @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * GPIO based MDIO bitbang driver. + * Supports OpenFirmware. + * + * Copyright (c) 2008 CSE Semaphore Belgium. + * by Laurent Pinchart + * + * Copyright (C) 2008, Paulius Zaleckas + * + * Based on earlier work by + * + * Copyright (c) 2003 Intracom S.A. + * by Pantelis Antoniou + * + * 2005 (c) MontaVista Software, Inc. + * Vitaly Bordug + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct mdio_gpio_info { + struct mdiobb_ctrl ctrl; + struct gpio_desc *mdc, *mdio, *mdo; +}; + +static int mdio_gpio_get_data(struct device *dev, + struct mdio_gpio_info *bitbang) +{ + bitbang->mdc = devm_gpiod_get_index(dev, NULL, MDIO_GPIO_MDC, + GPIOD_OUT_LOW); + if (IS_ERR(bitbang->mdc)) + return PTR_ERR(bitbang->mdc); + + bitbang->mdio = devm_gpiod_get_index(dev, NULL, MDIO_GPIO_MDIO, + GPIOD_IN); + if (IS_ERR(bitbang->mdio)) + return PTR_ERR(bitbang->mdio); + + bitbang->mdo = devm_gpiod_get_index_optional(dev, NULL, MDIO_GPIO_MDO, + GPIOD_OUT_LOW); + return PTR_ERR_OR_ZERO(bitbang->mdo); +} + +static void mdio_dir(struct mdiobb_ctrl *ctrl, int dir) +{ + struct mdio_gpio_info *bitbang = + container_of(ctrl, struct mdio_gpio_info, ctrl); + + if (bitbang->mdo) { + /* Separate output pin. Always set its value to high + * when changing direction. If direction is input, + * assume the pin serves as pull-up. If direction is + * output, the default value is high. + */ + gpiod_set_value_cansleep(bitbang->mdo, 1); + return; + } + + if (dir) + gpiod_direction_output(bitbang->mdio, 1); + else + gpiod_direction_input(bitbang->mdio); +} + +static int mdio_get(struct mdiobb_ctrl *ctrl) +{ + struct mdio_gpio_info *bitbang = + container_of(ctrl, struct mdio_gpio_info, ctrl); + + return gpiod_get_value_cansleep(bitbang->mdio); +} + +static void mdio_set(struct mdiobb_ctrl *ctrl, int what) +{ + struct mdio_gpio_info *bitbang = + container_of(ctrl, struct mdio_gpio_info, ctrl); + + if (bitbang->mdo) + gpiod_set_value_cansleep(bitbang->mdo, what); + else + gpiod_set_value_cansleep(bitbang->mdio, what); +} + +static void mdc_set(struct mdiobb_ctrl *ctrl, int what) +{ + struct mdio_gpio_info *bitbang = + container_of(ctrl, struct mdio_gpio_info, ctrl); + + gpiod_set_value_cansleep(bitbang->mdc, what); +} + +static const struct mdiobb_ops mdio_gpio_ops = { + .owner = THIS_MODULE, + .set_mdc = mdc_set, + .set_mdio_dir = mdio_dir, + .set_mdio_data = mdio_set, + .get_mdio_data = mdio_get, +}; + +static struct mii_bus *mdio_gpio_bus_init(struct device *dev, + struct mdio_gpio_info *bitbang, + int bus_id) +{ + struct mdio_gpio_platform_data *pdata = dev_get_platdata(dev); + struct mii_bus *new_bus; + + bitbang->ctrl.ops = &mdio_gpio_ops; + + new_bus = alloc_mdio_bitbang(&bitbang->ctrl); + if (!new_bus) + return NULL; + + new_bus->name = "GPIO Bitbanged MDIO"; + new_bus->parent = dev; + + if (bus_id != -1) + snprintf(new_bus->id, MII_BUS_ID_SIZE, "gpio-%x", bus_id); + else + strncpy(new_bus->id, "gpio", MII_BUS_ID_SIZE); + + if (pdata) { + new_bus->phy_mask = pdata->phy_mask; + new_bus->phy_ignore_ta_mask = pdata->phy_ignore_ta_mask; + } + + dev_set_drvdata(dev, new_bus); + + return new_bus; +} + +static void mdio_gpio_bus_deinit(struct device *dev) +{ + struct mii_bus *bus = dev_get_drvdata(dev); + + free_mdio_bitbang(bus); +} + +static void mdio_gpio_bus_destroy(struct device *dev) +{ + struct mii_bus *bus = dev_get_drvdata(dev); + + mdiobus_unregister(bus); + mdio_gpio_bus_deinit(dev); +} + +static int mdio_gpio_probe(struct platform_device *pdev) +{ + struct mdio_gpio_info *bitbang; + struct mii_bus *new_bus; + int ret, bus_id; + + bitbang = devm_kzalloc(&pdev->dev, sizeof(*bitbang), GFP_KERNEL); + if (!bitbang) + return -ENOMEM; + + ret = mdio_gpio_get_data(&pdev->dev, bitbang); + if (ret) + return ret; + + if (pdev->dev.of_node) { + bus_id = of_alias_get_id(pdev->dev.of_node, "mdio-gpio"); + if (bus_id < 0) { + dev_warn(&pdev->dev, "failed to get alias id\n"); + bus_id = 0; + } + } else { + bus_id = pdev->id; + } + + new_bus = mdio_gpio_bus_init(&pdev->dev, bitbang, bus_id); + if (!new_bus) + return -ENODEV; + + ret = of_mdiobus_register(new_bus, pdev->dev.of_node); + if (ret) + mdio_gpio_bus_deinit(&pdev->dev); + + return ret; +} + +static int mdio_gpio_remove(struct platform_device *pdev) +{ + mdio_gpio_bus_destroy(&pdev->dev); + + return 0; +} + +static const struct of_device_id mdio_gpio_of_match[] = { + { .compatible = "virtual,mdio-gpio", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, mdio_gpio_of_match); + +static struct platform_driver mdio_gpio_driver = { + .probe = mdio_gpio_probe, + .remove = mdio_gpio_remove, + .driver = { + .name = "mdio-gpio", + .of_match_table = mdio_gpio_of_match, + }, +}; + +module_platform_driver(mdio_gpio_driver); + +MODULE_ALIAS("platform:mdio-gpio"); +MODULE_AUTHOR("Laurent Pinchart, Paulius Zaleckas"); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Generic driver for MDIO bus emulation using GPIO"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c new file mode 100644 index 000000000000..060cce3f0701 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c @@ -0,0 +1,111 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static int gpio_mdc = 44; +module_param(gpio_mdc, int, S_IRUGO | S_IWUSR); + +static int gpio_mdio = 45; +module_param(gpio_mdio, int, S_IRUGO | S_IWUSR); + +static char *gpio_chip_name = NULL; +module_param(gpio_chip_name, charp, 0644); +MODULE_PARM_DESC(str_var, "A string variable for GPIO controller"); + + +static int g_wb_mdio_gpio_device_debug = 0; +static int g_wb_mdio_gpio_device_error = 0; + +module_param(g_wb_mdio_gpio_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_mdio_gpio_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_MIDO_GPIO_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_mdio_gpio_device_debug) { \ + printk(KERN_INFO "[WB_MDIO_GPIO_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_MIDO_GPIO_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_mdio_gpio_device_error) { \ + printk(KERN_ERR "[WB_MDIO_GPIO_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct mdio_gpio_platform_data mdio_gpio_device_data = { + .phy_mask = 0, + .phy_ignore_ta_mask = 0, +}; + +static void wb_mdio_gpio_device_release(struct device *dev) +{ + return; +} + +static struct platform_device mdio_gpio_device = { + .name = "mdio-gpio", + .num_resources = 0, + .id = -1, + .dev = { + .platform_data = &mdio_gpio_device_data, + .release = wb_mdio_gpio_device_release, + }, +}; + +static struct gpiod_lookup_table wb_mdio_gpio_table = { + .dev_id = "mdio-gpio", + .table = { + GPIO_LOOKUP_IDX("wb_gpio_d1500", 44, NULL, MDIO_GPIO_MDC, + GPIO_ACTIVE_HIGH), + GPIO_LOOKUP_IDX("wb_gpio_d1500", 45, NULL, MDIO_GPIO_MDIO, + GPIO_ACTIVE_HIGH), + { }, + }, +}; + +static int __init wb_mdio_gpio_device_init(void) +{ + int err; + + WB_MIDO_GPIO_DEVICE_DEBUG_VERBOSE("wb_mdio_gpio_device_init enter!\n"); + wb_mdio_gpio_table.table[0].chip_hwnum = gpio_mdc; + wb_mdio_gpio_table.table[1].chip_hwnum = gpio_mdio; + + if (gpio_chip_name) { + wb_mdio_gpio_table.table[0].key = gpio_chip_name; + wb_mdio_gpio_table.table[1].key = gpio_chip_name; + } + + gpiod_add_lookup_table(&wb_mdio_gpio_table); + + err = platform_device_register(&mdio_gpio_device); + if (err < 0) { + printk(KERN_ERR "register mdio gpio device fail(%d). \n", err); + gpiod_remove_lookup_table(&wb_mdio_gpio_table); + return -1; + } + return 0; + +} + +static void __exit wb_mdio_gpio_device_exit(void) +{ + WB_MIDO_GPIO_DEVICE_DEBUG_VERBOSE("wb_mdio_gpio_device_exit enter!\n"); + platform_device_unregister(&mdio_gpio_device); + gpiod_remove_lookup_table(&wb_mdio_gpio_table); +} + +module_init(wb_mdio_gpio_device_init); +module_exit(wb_mdio_gpio_device_exit); +MODULE_DESCRIPTION("WB MDIO GPIO Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/Makefile new file mode 100644 index 000000000000..369b64605dd3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/Makefile @@ -0,0 +1,20 @@ +pes_parent_dir:=$(shell pwd)/$(lastword $(MAKEFILE_LIST)) +pes_parent_dir:=$(shell dirname $(pes_parent_dir)) + +SUBDIRS=$(shell ls -l | grep ^d | awk '{if($$9 != "build") print $$9}') +INC = -I./inc + +all : CHECK $(SUBDIRS) +CHECK : + @echo $(pes_parent_dir) + +$(SUBDIRS):ECHO + #@echo $@ + make -C $@ + +ECHO: + @echo $(SUBDIRS) + +.PHONY : clean +clean : + -rm -rf $(SYSFS_OUT_PUT) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/Makefile new file mode 100644 index 000000000000..e516b70b3d92 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/Makefile @@ -0,0 +1,25 @@ +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +SUBDIR_CFG = cfg +plat_dfd-objs := dfd_module.o dfd_fan_driver.o \ +dfd_slot_driver.o \ +dfd_sensors_driver.o \ +dfd_psu_driver.o \ +dfd_sff_driver.o \ +$(SUBDIR_CFG)/dfd_cfg.o \ +$(SUBDIR_CFG)/dfd_cfg_adapter.o \ +$(SUBDIR_CFG)/dfd_cfg_file.o \ +$(SUBDIR_CFG)/dfd_cfg_info.o \ +$(SUBDIR_CFG)/dfd_cfg_listnode.o \ + +obj-m := plat_dfd.o +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + cp -p $(PWD)/*.ko $(module_out_put_dir) +clean: + rm -f $(PWD)/*.o $(PWD)/$(SUBDIR_CFG)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd $(PWD)/$(SUBDIR_CFG)/.*.cmd $(PWD)/*.mod + rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order + rm -rf $(PWD)/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c new file mode 100644 index 000000000000..b0c9e9f6e723 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c @@ -0,0 +1,812 @@ +#include +#include +#include +#include +#include +#include + +#include "../include/dfd_module.h" +#include "../include/dfd_cfg_file.h" +#include "../include/dfd_cfg_listnode.h" +#include "../include/dfd_cfg_info.h" +#include "../include/dfd_cfg_adapter.h" +#include "../include/dfd_cfg.h" +#include "../../dev_sysfs/include/sysfs_common.h" + +#ifdef DFD_CFG_ITEM +#undef DFD_CFG_ITEM +#endif +#define DFD_CFG_ITEM(_id, _name, _index_min, _index_max) _name, +static char *dfd_cfg_item_name[] = { + DFD_CFG_ITEM_ALL +}; + +#ifdef DFD_CFG_ITEM +#undef DFD_CFG_ITEM +#endif +#define DFD_CFG_ITEM(_id, _name, _index_min, _index_max) {_index_min, _index_max}, +static index_range_t dfd_cfg_item_index_range[] = { + DFD_CFG_ITEM_ALL +}; + +static lnode_root_t dfd_ko_cfg_list_root; + +static void dfd_ko_cfg_del_space_lf_cr(char *str) +{ + int i, j; + int len; + + len = strlen(str); + for (i = 0; i < len; i++) { + if (str[i] == '\r' || str[i] == '\n' || str[i] == ' ') { + for (j = i; j < len - 1; j++) { + str[j] = str[j + 1]; + } + str[j] = '\0'; + len--; + i--; + } + } +} + +static int dfd_ko_cfg_get_value_from_char(char *value_str, int32_t *value, int line_num) +{ + int value_tmp = 0; + + if (strlen(value_str) == 0) { + DBG_DEBUG(DBG_WARN, "line%d: value str is empty\n", line_num); + *value = DFD_CFG_EMPTY_VALUE; + return 0; + } + + if ((strlen(value_str) > 2) && (value_str[0] == '0') + && (value_str[1] == 'x' || value_str[1] == 'X')) { + value_tmp = (int32_t)simple_strtol(value_str, NULL, 16); + } else { + value_tmp = (int32_t)simple_strtol(value_str, NULL, 10); + } + + *value = value_tmp; + return 0; +} + +static int dfd_ko_cfg_analyse_index(char *index_str, int *index1, int *index2, int line_num) +{ + int rv; + char *index1_begin_char, *index2_begin_char; + + if (index_str[0] != '_') { + DBG_DEBUG(DBG_ERROR, "line%d: no '-' between name and index1\n", line_num); + return -1; + } + + index1_begin_char = index_str; + rv = dfd_ko_cfg_get_value_from_char(++index1_begin_char, index1, line_num); + if (rv < 0) { + return -1; + } + + if (index2 == NULL) { + return 0; + } + + index2_begin_char = strchr(index1_begin_char, '_'); + if (index2_begin_char == NULL) { + DBG_DEBUG(DBG_ERROR, "line%d: no '-' between index1 and index2\n", line_num); + return -1; + } else { + rv = dfd_ko_cfg_get_value_from_char(++index2_begin_char, index2, line_num); + if (rv < 0) { + return -1; + } + } + + return 0; +} + +static int dfd_ko_cfg_check_array_index(index_range_t *index_range, int *index1, int *index2, + int line_num) +{ + + if ((*index1 < 0) || (*index1 > index_range->index1_max)) { + DBG_DEBUG(DBG_ERROR, "line%d: index1[%d] invalid, max=%d\n", line_num, *index1, + index_range->index1_max); + return -1; + } + + if (index2 == NULL) { + return 0; + } + + if ((*index2 < 0) || (*index2 > index_range->index2_max)) { + DBG_DEBUG(DBG_ERROR, "line%d: index2[%d] invalid, max=%d\n", line_num, *index2, + index_range->index2_max); + return -1; + } + + return 0; +} + +static int dfd_ko_cfg_get_index(char *index_str, index_range_t *index_range, int *index1, + int *index2, int line_num) +{ + int rv; + + if (index_range->index2_max == INDEX_NOT_EXIST) { + index2 = NULL; + } + + rv = dfd_ko_cfg_analyse_index(index_str, index1, index2, line_num); + if (rv < 0) { + return -1; + } + + rv = dfd_ko_cfg_check_array_index(index_range, index1, index2, line_num); + if (rv < 0) { + return -1; + } + + return 0; +} + +static int dfd_ko_cfg_add_int_item(int key, int value, int line_num) +{ + int rv; + int *int_cfg; + + int_cfg = lnode_find_node(&dfd_ko_cfg_list_root, key); + if (int_cfg == NULL) { + + int_cfg = (int *)kmalloc(sizeof(int), GFP_KERNEL); + if (int_cfg == NULL) { + DBG_DEBUG(DBG_ERROR, "line%d: kmalloc int fail\n", line_num); + return -1; + } + + *int_cfg = value; + rv = lnode_insert_node(&dfd_ko_cfg_list_root, key, int_cfg); + if (rv == 0) { + DBG_DEBUG(DBG_VERBOSE, "line%d: add int item[%d] success, key=0x%08x\n", line_num, value, key); + } else { + kfree(int_cfg); + int_cfg = NULL; + DBG_DEBUG(DBG_ERROR, "line%d: add int item[%d] fail, key=0x%08x rv=%d \n", line_num, value, key, rv); + return -1; + } + } else { + + DBG_DEBUG(DBG_WARN, "line%d: replace int item[%d->%d], key=0x%08x\n", line_num, *int_cfg, value, key); + *int_cfg = value; + } + + return 0; +} + +static int dfd_ko_cfg_analyse_int_item(dfd_cfg_item_id_t cfg_item_id, char *arg_name, char *arg_value, + char *cfg_pre, index_range_t *index_range, int line_num) +{ + int rv; + int index1 = 0, index2 = 0; + int value, key; + char *arg_name_tmp; + + if (index_range->index1_max != INDEX_NOT_EXIST) { + arg_name_tmp = arg_name + strlen(cfg_pre); + rv = dfd_ko_cfg_get_index(arg_name_tmp, index_range, &index1, &index2, line_num); + if (rv < 0) { + return -1; + } + } + + rv = dfd_ko_cfg_get_value_from_char(arg_value, &value, line_num); + if (rv < 0) { + return -1; + } + + key = DFD_CFG_KEY(cfg_item_id, index1, index2); + rv = dfd_ko_cfg_add_int_item(key, value, line_num); + if (rv < 0) { + return -1; + } + + return 0; +} + +static int dfd_ko_cfg_add_str_item(int key, char *str, int line_num) +{ + int rv; + char *str_cfg; + + str_cfg = lnode_find_node(&dfd_ko_cfg_list_root, key); + if (str_cfg == NULL) { + + str_cfg = (char *)kmalloc(DFD_CFG_STR_MAX_LEN, GFP_KERNEL); + if (str_cfg == NULL) { + DBG_DEBUG(DBG_ERROR, "line%d: kmalloc str[%lu] fail\n", line_num, strlen(str)); + return -1; + } + mem_clear(str_cfg, DFD_CFG_STR_MAX_LEN); + strncpy(str_cfg, str, DFD_CFG_STR_MAX_LEN - 1); + + rv = lnode_insert_node(&dfd_ko_cfg_list_root, key, str_cfg); + if (rv == 0) { + DBG_DEBUG(DBG_VERBOSE, "line%d: add string item[%s] success, key=0x%08x\n", line_num, str_cfg, key); + } else { + kfree(str_cfg); + str_cfg = NULL; + DBG_DEBUG(DBG_ERROR, "line%d: add string item[%s] fail, key=0x%08x rv=%d \n", line_num, str_cfg, key, rv); + return -1; + } + } else { + DBG_DEBUG(DBG_WARN, "line%d: replace string item[%s->%s], key=0x%08x\n", line_num, str_cfg, str, key); + mem_clear(str_cfg, DFD_CFG_STR_MAX_LEN); + strncpy(str_cfg, str, DFD_CFG_STR_MAX_LEN - 1); + } + + return 0; +} + +static int dfd_ko_cfg_analyse_str_item(dfd_cfg_item_id_t cfg_item_id, char *arg_name, char *arg_value, + char *cfg_pre, index_range_t *index_range, int line_num) +{ + int rv; + int index1 = 0, index2 = 0; + int btree_key; + char *arg_name_tmp; + + if (index_range->index1_max != INDEX_NOT_EXIST) { + arg_name_tmp = arg_name + strlen(cfg_pre); + rv = dfd_ko_cfg_get_index(arg_name_tmp, index_range, &index1, &index2, line_num); + if (rv < 0) { + return -1; + } + } + + if (strlen(arg_value) >= DFD_CFG_STR_MAX_LEN) { + DBG_DEBUG(DBG_ERROR, "line%d: string item[%s] is too long \n", line_num, arg_value); + return -1; + } + + btree_key = DFD_CFG_KEY(cfg_item_id, index1, index2); + rv = dfd_ko_cfg_add_str_item(btree_key, arg_value, line_num); + if (rv < 0) { + return -1; + } + + return 0; +} + +static int dfd_ko_cfg_get_i2c_dev_member(char *member_str, dfd_i2c_dev_mem_t *member, int line_num) +{ + dfd_i2c_dev_mem_t mem_index; + + for (mem_index = DFD_I2C_DEV_MEM_BUS; mem_index < DFD_I2C_DEV_MEM_END; mem_index++) { + if (memcmp(member_str, g_dfd_i2c_dev_mem_str[mem_index], + strlen(g_dfd_i2c_dev_mem_str[mem_index])) == 0) { + *member = mem_index; + return 0; + } + } + + DBG_DEBUG(DBG_ERROR, "line%d: i2c dev member[%s] invalid\n", line_num, member_str); + return -1; +} + +static void dfd_ko_cfg_set_i2c_dev_mem_value(dfd_i2c_dev_t *i2c_dev, dfd_i2c_dev_mem_t member, + int value) +{ + switch (member) { + case DFD_I2C_DEV_MEM_BUS: + i2c_dev->bus = value; + break; + case DFD_I2C_DEV_MEM_ADDR: + i2c_dev->addr = value; + break; + default: + break; + } +} + +static int dfd_ko_cfg_add_i2c_dev_item(int key, dfd_i2c_dev_mem_t member, int value, int line_num) +{ + int rv; + dfd_i2c_dev_t *i2c_dev_cfg; + + i2c_dev_cfg = lnode_find_node(&dfd_ko_cfg_list_root, key); + if (i2c_dev_cfg == NULL) { + + i2c_dev_cfg = (dfd_i2c_dev_t *)kmalloc(sizeof(dfd_i2c_dev_t), GFP_KERNEL); + if (i2c_dev_cfg == NULL) { + DBG_DEBUG(DBG_ERROR, "line%d: kmalloc i2c_dev fail\n", line_num); + return -1; + } + mem_clear(i2c_dev_cfg, sizeof(dfd_i2c_dev_t)); + + dfd_ko_cfg_set_i2c_dev_mem_value(i2c_dev_cfg, member, value); + rv = lnode_insert_node(&dfd_ko_cfg_list_root, key, i2c_dev_cfg); + if (rv == 0) { + DBG_DEBUG(DBG_VERBOSE, "line%d: add i2c_dev item[%s=%d] success, key=0x%08x\n", line_num, + g_dfd_i2c_dev_mem_str[member], value, key); + } else { + kfree(i2c_dev_cfg); + i2c_dev_cfg = NULL; + DBG_DEBUG(DBG_ERROR, "line%d: add i2c_dev item[%s=%d] fail, key=0x%08x rv=%d\n", line_num, + g_dfd_i2c_dev_mem_str[member], value, key, rv); + return -1; + } + } else { + + DBG_DEBUG(DBG_VERBOSE, "line%d: replace i2c_dev item[%s=%d], key=0x%08x\n", line_num, + g_dfd_i2c_dev_mem_str[member], value, key); + dfd_ko_cfg_set_i2c_dev_mem_value(i2c_dev_cfg, member, value); + } + + return 0; +} + +static int dfd_ko_cfg_analyse_i2c_dev_item(dfd_cfg_item_id_t cfg_item_id, char *arg_name, + char *arg_value, char *cfg_pre, index_range_t *index_range, int line_num) +{ + int rv; + int index1 = 0, index2 = 0; + int value, key; + char *arg_name_tmp; + dfd_i2c_dev_mem_t member; + + arg_name_tmp = arg_name + strlen(cfg_pre); + rv = dfd_ko_cfg_get_i2c_dev_member(arg_name_tmp, &member, line_num); + if (rv < 0) { + return -1; + } + + if (index_range->index1_max != INDEX_NOT_EXIST) { + arg_name_tmp += strlen(g_dfd_i2c_dev_mem_str[member]); + rv = dfd_ko_cfg_get_index(arg_name_tmp, index_range, &index1, &index2, line_num); + if (rv < 0) { + return -1; + } + } + + rv = dfd_ko_cfg_get_value_from_char(arg_value, &value, line_num); + if (rv < 0) { + return -1; + } + + key = DFD_CFG_KEY(cfg_item_id, index1, index2); + rv = dfd_ko_cfg_add_i2c_dev_item(key, member, value, line_num); + if (rv < 0) { + return -1; + } + + return 0; +} + +static int dfd_ko_cfg_get_enum_value_by_str(char *enum_val_str[], int enum_val_end, char *buf) +{ + int i; + int enum_val; + + enum_val = DFD_CFG_INVALID_VALUE; + for (i = 0; i < enum_val_end; i++) { + if (memcmp(buf, enum_val_str[i], strlen(enum_val_str[i])) == 0) { + enum_val = i; + break; + } + } + + return enum_val; +} + +static int dfd_ko_cfg_get_info_ctrl_member(char *member_str, info_ctrl_mem_t *member, int line_num) +{ + info_ctrl_mem_t mem_index; + + for (mem_index = INFO_CTRL_MEM_MODE; mem_index < INFO_CTRL_MEM_END; mem_index++) { + if (memcmp(member_str, g_info_ctrl_mem_str[mem_index], + strlen(g_info_ctrl_mem_str[mem_index])) == 0) { + *member = mem_index; + return 0; + } + } + + DBG_DEBUG(DBG_ERROR, "line%d: info ctrl member[%s] invalid\n", line_num, member_str); + return -1; +} + +static void dfd_ko_cfg_set_info_ctrl_mem_value(info_ctrl_t *info_ctrl, info_ctrl_mem_t member, + char *buf_val, int line_num) +{ + switch (member) { + case INFO_CTRL_MEM_MODE: + info_ctrl->mode = dfd_ko_cfg_get_enum_value_by_str(g_info_ctrl_mode_str, INFO_CTRL_MODE_END, buf_val);; + break; + case INFO_CTRL_MEM_INT_CONS: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->int_cons), line_num); + break; + case INFO_CTRL_MEM_SRC: + info_ctrl->src = dfd_ko_cfg_get_enum_value_by_str(g_info_src_str, INFO_SRC_END, buf_val); + break; + case INFO_CTRL_MEM_FRMT: + info_ctrl->frmt = dfd_ko_cfg_get_enum_value_by_str(g_info_frmt_str, INFO_FRMT_END, buf_val); + break; + case INFO_CTRL_MEM_POLA: + info_ctrl->pola = dfd_ko_cfg_get_enum_value_by_str(g_info_pola_str, INFO_POLA_END, buf_val); + break; + case INFO_CTRL_MEM_FPATH: + mem_clear(info_ctrl->fpath, sizeof(info_ctrl->fpath)); + strncpy(info_ctrl->fpath, buf_val, sizeof(info_ctrl->fpath) - 1); + break; + case INFO_CTRL_MEM_ADDR: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->addr), line_num); + break; + case INFO_CTRL_MEM_LEN: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->len), line_num); + break; + case INFO_CTRL_MEM_BIT_OFFSET: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->bit_offset), line_num); + break; + case INFO_CTRL_MEM_STR_CONS: + mem_clear(info_ctrl->str_cons, sizeof(info_ctrl->str_cons)); + strncpy(info_ctrl->str_cons, buf_val, sizeof(info_ctrl->str_cons) - 1); + break; + case INFO_CTRL_MEM_INT_EXTRA1: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->int_extra1), line_num); + break; + case INFO_CTRL_MEM_INT_EXTRA2: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->int_extra2), line_num); + break; + default: + break; + } +} + +static int dfd_ko_cfg_add_info_ctrl_item(int key, info_ctrl_mem_t member, char *buf_val, + int line_num) +{ + int rv; + info_ctrl_t *info_ctrl_cfg; + + info_ctrl_cfg = lnode_find_node(&dfd_ko_cfg_list_root, key); + if (info_ctrl_cfg == NULL) { + + info_ctrl_cfg = (info_ctrl_t *)kmalloc(sizeof(info_ctrl_t), GFP_KERNEL); + if (info_ctrl_cfg == NULL) { + DBG_DEBUG(DBG_ERROR, "line%d: kmalloc info_ctrl fail\n", line_num); + return -1; + } + mem_clear(info_ctrl_cfg, sizeof(info_ctrl_t)); + + dfd_ko_cfg_set_info_ctrl_mem_value(info_ctrl_cfg, member, buf_val, line_num); + rv = lnode_insert_node(&dfd_ko_cfg_list_root, key, info_ctrl_cfg); + if (rv == 0) { + DBG_DEBUG(DBG_VERBOSE, "line%d: add info_ctrl item[%s=%s] success, key=0x%08x\n", line_num, + g_info_ctrl_mem_str[member], buf_val, key); + } else { + kfree(info_ctrl_cfg); + info_ctrl_cfg = NULL; + DBG_DEBUG(DBG_ERROR, "line%d: add info_ctrl item[%s=%s] fail, key=0x%08x rv=%d\n", line_num, + g_info_ctrl_mem_str[member], buf_val, key, rv); + return -1; + } + } else { + + DBG_DEBUG(DBG_VERBOSE, "line%d: replace info_ctrl item[%s=%s], key=0x%08x\n", line_num, + g_info_ctrl_mem_str[member], buf_val, key); + dfd_ko_cfg_set_info_ctrl_mem_value(info_ctrl_cfg, member, buf_val, line_num); + } + + return 0; +} + +static int dfd_ko_cfg_analyse_info_ctrl_item(dfd_cfg_item_id_t cfg_item_id, char *arg_name, + char *arg_value, char *cfg_pre, index_range_t *index_range, int line_num) +{ + int rv; + int index1 = 0, index2 = 0; + int key; + char *arg_name_tmp; + info_ctrl_mem_t member; + + arg_name_tmp = arg_name + strlen(cfg_pre); + rv = dfd_ko_cfg_get_info_ctrl_member(arg_name_tmp, &member, line_num); + if (rv < 0) { + return -1; + } + + if (index_range->index1_max != INDEX_NOT_EXIST) { + arg_name_tmp += strlen(g_info_ctrl_mem_str[member]); + rv = dfd_ko_cfg_get_index(arg_name_tmp, index_range, &index1, &index2, line_num); + if (rv < 0) { + return -1; + } + } + + key = DFD_CFG_KEY(cfg_item_id, index1, index2); + rv = dfd_ko_cfg_add_info_ctrl_item(key, member, arg_value, line_num); + if (rv < 0) { + return -1; + } + + return 0; +} + +static int dfd_ko_cfg_analyse_config(char *arg_name, char*arg_value, int line_num) +{ + int i, rv = 0; + int cfg_item_num; + + cfg_item_num = sizeof(dfd_cfg_item_name) / sizeof(dfd_cfg_item_name[0]); + for (i = 0; i < cfg_item_num; i++) { + if (memcmp(arg_name, dfd_cfg_item_name[i], strlen(dfd_cfg_item_name[i])) == 0){ + if (DFD_CFG_ITEM_IS_INT(i)) { + rv = dfd_ko_cfg_analyse_int_item(i, arg_name, arg_value, dfd_cfg_item_name[i], + &(dfd_cfg_item_index_range[i]), line_num); + } else if (DFD_CFG_ITEM_IS_STRING(i)) { + rv = dfd_ko_cfg_analyse_str_item(i, arg_name, arg_value, dfd_cfg_item_name[i], + &(dfd_cfg_item_index_range[i]), line_num); + } else if (DFD_CFG_ITEM_IS_I2C_DEV(i)) { + rv = dfd_ko_cfg_analyse_i2c_dev_item(i, arg_name, arg_value, dfd_cfg_item_name[i], + &(dfd_cfg_item_index_range[i]), line_num); + } else if (DFD_CFG_ITEM_IS_INFO_CTRL(i)) { + rv = dfd_ko_cfg_analyse_info_ctrl_item(i, arg_name, arg_value, dfd_cfg_item_name[i], + &(dfd_cfg_item_index_range[i]), line_num); + } else { + rv = -1; + } + break; + } + } + + return rv; +} + +static int dfd_ko_cfg_cut_config_line(char *config_line, char *arg_name, char *arg_value) +{ + int i, j = 0, k = 0; + int len, name_value_flag = 0; + + len = strlen(config_line); + for (i = 0; i < len; i++) { + if (config_line[i] == '=') { + name_value_flag = 1; + continue; + } + + if (name_value_flag == 0) { + arg_name[j++] = config_line[i]; + } else { + arg_value[k++] = config_line[i]; + } + } + + if (name_value_flag == 0) { + return -1; + } else { + return 0; + } +} + +static int dfd_ko_cfg_analyse_config_line(char *config_line, int line_num) +{ + int rv; + char arg_name[DFD_CFG_NAME_MAX_LEN] = {0}; + char arg_value[DFD_CFG_VALUE_MAX_LEN] = {0}; + + dfd_ko_cfg_del_space_lf_cr(config_line); + + if (strlen(config_line) == 0) { + DBG_DEBUG(DBG_VERBOSE, "line%d: space line\n", line_num); + return 0; + } + + if (config_line[0] == '#') { + DBG_DEBUG(DBG_VERBOSE, "line%d: comment line[%s]\n", line_num, config_line); + return 0; + } + + rv = dfd_ko_cfg_cut_config_line(config_line, arg_name, arg_value); + if (rv < 0) { + DBG_DEBUG(DBG_VERBOSE, "line%d: [%s]no '=' between name and value\n", line_num, config_line); + return -1; + } + + DBG_DEBUG(DBG_VERBOSE, "line%d: config_line[%s] name[%s] value[%s]\n", line_num, config_line, arg_name, arg_value); + return dfd_ko_cfg_analyse_config(arg_name, arg_value, line_num); +} + +static int dfd_ko_cfg_analyse_config_file(char *fpath) +{ + int rv; + int line_num = 1; + kfile_ctrl_t kfile_ctrl; + char config_line[DFD_CFG_CMDLINE_MAX_LEN] = {0}; + + rv = kfile_open(fpath, &kfile_ctrl); + if (rv != KFILE_RV_OK) { + DBG_DEBUG(DBG_ERROR, "open config file[%s] fail, rv=%d\n", fpath, rv); + return -1; + } + + while(kfile_gets(config_line, sizeof(config_line), &kfile_ctrl) > 0){ + rv = dfd_ko_cfg_analyse_config_line(config_line, line_num++); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "!!!!file[%s] config line[%d %s] analyse fail\n", fpath, line_num - 1, + config_line); + break; + } + + (void)mem_clear(config_line, sizeof(config_line)); + + } + kfile_close(&kfile_ctrl); + + return rv; +} + +void *dfd_ko_cfg_get_item(int key) +{ + return lnode_find_node(&dfd_ko_cfg_list_root, key); +} + +static void dfd_ko_cfg_print_item(int key, const void *cfg) +{ + int item_id; + dfd_i2c_dev_t *i2c_dev; + info_ctrl_t *info_ctrl; + + if (cfg == NULL) { + DBG_DEBUG(DBG_ERROR, "input arguments error\n"); + return; + } + printk(KERN_INFO "**************************\n"); + printk(KERN_INFO "key=0x%08x\n", key); + + item_id = DFD_CFG_ITEM_ID(key); + if (DFD_CFG_ITEM_IS_INT(item_id)) { + printk(KERN_INFO "int=%d\n", *((int *)cfg)); + } else if (DFD_CFG_ITEM_IS_I2C_DEV(item_id)) { + i2c_dev = (dfd_i2c_dev_t *)cfg; + printk(KERN_INFO ".bus=0x%02x\n", i2c_dev->bus); + printk(KERN_INFO ".addr=0x%02x\n", i2c_dev->addr); + } else if (DFD_CFG_ITEM_IS_INFO_CTRL(item_id)) { + info_ctrl = (info_ctrl_t *)cfg; + printk(KERN_INFO ".mode=%s\n", g_info_ctrl_mode_str[info_ctrl->mode]); + printk(KERN_INFO ".int_cons=%d\n", info_ctrl->int_cons); + printk(KERN_INFO ".src=%s\n", g_info_src_str[info_ctrl->src]); + printk(KERN_INFO ".frmt=%s\n", g_info_frmt_str[info_ctrl->frmt]); + printk(KERN_INFO ".pola=%s\n", g_info_pola_str[info_ctrl->pola]); + printk(KERN_INFO ".fpath=%s\n", info_ctrl->fpath); + printk(KERN_INFO ".addr=0x%02x\n", info_ctrl->addr); + printk(KERN_INFO ".len=%d\n", info_ctrl->len); + printk(KERN_INFO ".bit_offset=%d\n", info_ctrl->bit_offset); + } else { + printk(KERN_INFO "item[%d] error!\n", item_id); + } +} + +void dfd_ko_cfg_show_item(int key) +{ + void *cfg; + + cfg = lnode_find_node(&dfd_ko_cfg_list_root, key); + if (cfg == 0) { + printk(KERN_INFO "item[0x%08x] not exist\n", key); + return; + } + + dfd_ko_cfg_print_item(key, cfg); +} + +static int dfd_get_my_dev_type_by_file(void) +{ + struct file *fp; + loff_t pos; + int card_type; + char buf[DFD_PID_BUF_LEN]; + int ret; + + fp= filp_open(DFD_PUB_CARDTYPE_FILE, O_RDONLY, 0); + if (IS_ERR(fp)) { + DBG_DEBUG(DBG_VERBOSE, "open file fail!\n"); + return -1; + } + mem_clear(buf, DFD_PID_BUF_LEN); + pos = 0; + ret = kernel_read(fp, buf, DFD_PRODUCT_ID_LENGTH + 1, &pos); + if (ret < 0) { + DBG_DEBUG(DBG_VERBOSE, "kernel_read failed, path=%s, addr=0, size=%d, ret=%d\n", + DFD_PUB_CARDTYPE_FILE, DFD_PRODUCT_ID_LENGTH + 1, ret); + filp_close(fp, NULL); + return -1; + } + + card_type = simple_strtoul(buf, NULL, 10); + DBG_DEBUG(DBG_VERBOSE, "card_type 0x%x.\n", card_type); + + filp_close(fp, NULL); + return card_type; +} + +static int drv_get_my_dev_type(void) +{ + static int type = -1; + + if (type > 0) { + return type; + } + type = dfd_get_my_dev_type_by_file(); + DBG_DEBUG(DBG_VERBOSE, "ko board type %d\n", type); + return type; +} + +static int dfd_ko_cfg_init(void) +{ + int rv; + int card_type; + char file_name[32] = {0}; + char fpath[128] = {0}; + kfile_ctrl_t kfile_ctrl; + + rv = lnode_init_root(&dfd_ko_cfg_list_root); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "init list root fail, rv=%d\n", rv); + return -1; + } + + card_type = drv_get_my_dev_type(); + if (card_type > 0) { + snprintf(fpath, sizeof(fpath), "%s0x%x", DFD_KO_CFG_FILE_DIR, card_type); + rv = kfile_open(fpath, &kfile_ctrl); + if (rv != KFILE_RV_OK) { + DBG_DEBUG(DBG_VERBOSE, "open config file[%s] fail, rv=%d, maybe not exist\n", + fpath, rv); + + rv = kfile_open(DFD_KO_CFG_FILE_NAME, &kfile_ctrl); + if (rv != KFILE_RV_OK) { + DBG_DEBUG(DBG_ERROR, "open config file[%s] fail, rv=%d\n", DFD_KO_CFG_FILE_NAME, + rv); + return -1; + } + DBG_DEBUG(DBG_ERROR, "get config file from: %s, success.\n", DFD_KO_CFG_FILE_NAME); + } else { + DBG_DEBUG(DBG_VERBOSE, "get config file from: %s, success.\n", fpath); + } + } else { + DBG_DEBUG(DBG_VERBOSE, "get board id failed, try to get config file from: %s\n", + DFD_KO_CFG_FILE_NAME); + + rv = kfile_open(DFD_KO_CFG_FILE_NAME, &kfile_ctrl); + if (rv != KFILE_RV_OK) { + DBG_DEBUG(DBG_ERROR, "open config file[%s] fail, rv=%d\n", DFD_KO_CFG_FILE_NAME, rv); + return -1; + } + DBG_DEBUG(DBG_ERROR, "get config file from: %s, success.\n", DFD_KO_CFG_FILE_NAME); + } + + while (kfile_gets(file_name, sizeof(file_name), &kfile_ctrl) > 0) { + + dfd_ko_cfg_del_space_lf_cr(file_name); + mem_clear(fpath, sizeof(fpath)); + snprintf(fpath, sizeof(fpath), "%s%s.cfg", DFD_KO_CFG_FILE_DIR, file_name); + DBG_DEBUG(DBG_VERBOSE, ">>>>start parsing config file[%s]\n", fpath); + + rv = dfd_ko_cfg_analyse_config_file(fpath); + if (rv < 0) { + break; + } + } + kfile_close(&kfile_ctrl); + + return 0; +} + +int32_t dfd_dev_cfg_init(void) +{ + return dfd_ko_cfg_init(); +} + +void dfd_dev_cfg_exit(void) +{ + lnode_free_list(&dfd_ko_cfg_list_root); + return; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c new file mode 100644 index 000000000000..1d5ca7072f8f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c @@ -0,0 +1,351 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "../include/dfd_module.h" +#include "../include/dfd_cfg_file.h" +#include "../include/dfd_cfg.h" +#include "../include/dfd_cfg_adapter.h" +#include "../../dev_sysfs/include/sysfs_common.h" + +char *g_dfd_i2c_dev_mem_str[DFD_I2C_DEV_MEM_END] = { + ".bus", + ".addr", +}; + +static dfd_i2c_dev_t* dfd_ko_get_cpld_i2c_dev(int sub_slot, int cpld_id) +{ + int key; + dfd_i2c_dev_t *i2c_dev; + + key = DFD_CFG_KEY(DFD_CFG_ITEM_CPLD_I2C_DEV, sub_slot, cpld_id); + i2c_dev = dfd_ko_cfg_get_item(key); + if (i2c_dev == NULL) { + DBG_DEBUG(DBG_ERROR, "get cpld[%d] i2c dev config fail, key=0x%08x\n", cpld_id, key); + return NULL; + } + + return i2c_dev; +} + +static int32_t dfd_ko_i2c_smbus_transfer(int read_write, int bus, int addr, int offset, uint8_t *buf, uint32_t size) +{ + int rv; + struct i2c_adapter *i2c_adap; + union i2c_smbus_data data; + + i2c_adap = i2c_get_adapter(bus); + if (i2c_adap == NULL) { + DBG_DEBUG(DBG_ERROR, "get i2c bus[%d] adapter fail\n", bus); + return -DFD_RV_DEV_FAIL; + } + + if (read_write == I2C_SMBUS_WRITE) { + data.byte = *buf; + } else { + data.byte = 0; + } + rv = i2c_smbus_xfer(i2c_adap, addr, 0, read_write, offset, I2C_SMBUS_BYTE_DATA, &data); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "i2c dev[bus=%d addr=0x%x offset=0x%x size=%d rw=%d] transfer fail, rv=%d\n", + bus, addr, offset, size, read_write, rv); + rv = -DFD_RV_DEV_FAIL; + } else { + DBG_DEBUG(DBG_VERBOSE, "i2c dev[bus=%d addr=0x%x offset=0x%x size=%d rw=%d] transfer success\n", + bus, addr, offset, size, read_write); + rv = DFD_RV_OK; + } + + if (read_write == I2C_SMBUS_READ) { + if (rv == DFD_RV_OK) { + *buf = data.byte; + } else { + *buf = 0; + } + } + + i2c_put_adapter(i2c_adap); + return rv; +} + +static int32_t dfd_ko_i2c_read_data(int bus, int addr, int offset, uint8_t *buf, uint32_t size) +{ + int i, rv; + for (i = 0; i < DFD_KO_CPLD_I2C_RETRY_TIMES; i++) { + rv = dfd_ko_i2c_smbus_transfer(I2C_SMBUS_READ, bus, addr, offset, buf, size); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "[%d]cpld read[offset=0x%x] fail, rv %d\n", i, addr, rv); + msleep(DFD_KO_CPLD_I2C_RETRY_SLEEP); + } else { + DBG_DEBUG(DBG_VERBOSE, "[%d]cpld read[offset=0x%x] success, value=0x%x\n", + i, addr, *buf); + break; + } + } + return rv; +} + +static int32_t dfd_ko_i2c_write_data(int bus, int addr, int offset, uint8_t data, uint32_t size) +{ + int i, rv; + for (i = 0; i < DFD_KO_CPLD_I2C_RETRY_TIMES; i++) { + rv = dfd_ko_i2c_smbus_transfer(I2C_SMBUS_WRITE, bus, addr, offset, &data, size); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "[%d]cpld write[offset=0x%x] fail, rv=%d\n", i, addr, rv); + msleep(DFD_KO_CPLD_I2C_RETRY_SLEEP); + } else { + DBG_DEBUG(DBG_VERBOSE, "[%d]cpld write[offset=0x%x, data=%d] success\n", i, addr, data); + break; + } + } + + return rv; +} + +static int32_t dfd_ko_cpld_i2c_read(int32_t addr, uint8_t *buf) +{ + int rv; + int sub_slot, cpld_id, cpld_addr; + dfd_i2c_dev_t *i2c_dev; + + if (buf == NULL) { + DBG_DEBUG(DBG_ERROR, "input arguments error\n"); + return -DFD_RV_INDEX_INVALID; + } + + sub_slot = DFD_KO_CPLD_GET_SLOT(addr); + cpld_id = DFD_KO_CPLD_GET_ID(addr); + cpld_addr = DFD_KO_CPLD_GET_INDEX(addr); + + i2c_dev = dfd_ko_get_cpld_i2c_dev(sub_slot, cpld_id); + if (i2c_dev == NULL) { + return -DFD_RV_DEV_NOTSUPPORT; + } + rv = dfd_ko_i2c_read_data(i2c_dev->bus, i2c_dev->addr, cpld_addr, buf, sizeof(uint8_t)); + + return rv; +} + +static int32_t dfd_ko_cpld_i2c_write(int32_t addr, uint8_t data) +{ + int rv; + int sub_slot, cpld_id, cpld_addr; + dfd_i2c_dev_t *i2c_dev; + + sub_slot = DFD_KO_CPLD_GET_SLOT(addr); + cpld_id = DFD_KO_CPLD_GET_ID(addr); + cpld_addr = DFD_KO_CPLD_GET_INDEX(addr); + + i2c_dev = dfd_ko_get_cpld_i2c_dev(sub_slot, cpld_id); + if (i2c_dev == NULL) { + return -DFD_RV_DEV_NOTSUPPORT; + } + + rv = dfd_ko_i2c_write_data(i2c_dev->bus, i2c_dev->addr, cpld_addr, data, sizeof(uint8_t)); + + return rv; +} + +static int32_t dfd_ko_cpld_io_read(int32_t addr, uint8_t *buf) +{ + int cpld_id, sub_slot, offset; + int key; + int *tmp; + uint16_t io_port; + + sub_slot = DFD_KO_CPLD_GET_SLOT(addr); + cpld_id = DFD_KO_CPLD_GET_ID(addr); + offset = DFD_KO_CPLD_GET_INDEX(addr); + + key = DFD_CFG_KEY(DFD_CFG_ITEM_CPLD_LPC_DEV, sub_slot, cpld_id); + tmp = dfd_ko_cfg_get_item(key); + if (tmp == NULL) { + DBG_DEBUG(DBG_ERROR,"get cpld io base config fail, key=0x%08x\n", key); + return -1; + } + + io_port = (u16)(*tmp) + offset; + *buf = inb(io_port); + DBG_DEBUG(DBG_VERBOSE, "read cpld io port addr 0x%x, data 0x%x\n", io_port, *buf); + + return DFD_RV_OK; + +} + +static int32_t dfd_ko_cpld_io_write(int32_t addr, uint8_t data) +{ + int cpld_id, sub_slot, offset; + int key; + int *tmp; + uint16_t io_port; + + sub_slot = DFD_KO_CPLD_GET_SLOT(addr); + cpld_id = DFD_KO_CPLD_GET_ID(addr); + offset = DFD_KO_CPLD_GET_INDEX(addr); + + key = DFD_CFG_KEY(DFD_CFG_ITEM_CPLD_LPC_DEV, sub_slot, cpld_id); + tmp = dfd_ko_cfg_get_item(key); + if (tmp == NULL) { + DBG_DEBUG(DBG_ERROR, "get cpld io base config fail, key=0x%08x\n", key); + return -1; + } + + io_port = (u16)(*tmp) + offset; + DBG_DEBUG(DBG_VERBOSE, "write cpld io port addr 0x%x, data 0x%x\n", io_port, data); + outb(data, (u16)io_port); + + return DFD_RV_OK; +} + +static int dfd_cfg_get_cpld_mode(int sub_slot, int cpld_id, int *mode) +{ + int key; + char *name; + + if (mode == NULL) { + DBG_DEBUG(DBG_ERROR, "input arguments error\n"); + return -DFD_RV_TYPE_ERR; + } + + key = DFD_CFG_KEY(DFD_CFG_ITEM_CPLD_MODE, sub_slot, cpld_id); + name = dfd_ko_cfg_get_item(key); + if (name == NULL) { + DBG_DEBUG(DBG_ERROR, "get cpld[%d] mode info ctrl fail, key=0x%08x\n", cpld_id, key); + return -DFD_RV_NODE_FAIL; + } + + DBG_DEBUG(DBG_VERBOSE, "cpld_id %d mode_name %s.\n", cpld_id, name); + if (!strncmp(name, DFD_KO_CPLD_MODE_I2C_STRING, strlen(DFD_KO_CPLD_MODE_I2C_STRING))) { + *mode = DFD_CPLD_MODE_I2C; + } else if (!strncmp(name, DFD_KO_CPLD_MODE_LPC_STRING, strlen(DFD_KO_CPLD_MODE_LPC_STRING))) { + *mode = DFD_CPLD_MODE_LPC; + } else { + + *mode = DFD_CPLD_MODE_I2C; + } + + DBG_DEBUG(DBG_VERBOSE, "cpld_id %d mode %d.\n", cpld_id, *mode); + return 0; +} + +int32_t dfd_ko_cpld_read(int32_t addr, uint8_t *buf) +{ + int ret; + int sub_slot, cpld_id; + int cpld_mode; + + sub_slot = DFD_KO_CPLD_GET_SLOT(addr); + cpld_id = DFD_KO_CPLD_GET_ID(addr); + + ret = dfd_cfg_get_cpld_mode(sub_slot, cpld_id, &cpld_mode); + if (ret) { + DBG_DEBUG(DBG_WARN, "drv_get_cpld_mode sub_slot %d cpldid %d faile, set default i2c mode.\n", sub_slot, cpld_id); + cpld_mode = DFD_CPLD_MODE_I2C; + } + + if (cpld_mode == DFD_CPLD_MODE_I2C) { + ret = dfd_ko_cpld_i2c_read(addr, buf); + } else if (cpld_mode == DFD_CPLD_MODE_LPC) { + ret = dfd_ko_cpld_io_read(addr, buf); + } else { + DBG_DEBUG(DBG_ERROR, "cpld_mode %d invalid.\n", cpld_mode); + ret = -DFD_RV_DEV_NOTSUPPORT; + } + + DBG_DEBUG(DBG_VERBOSE, "addr 0x%x val 0x%x ret %d\n", addr, *buf, ret); + return ret; +} + +int32_t dfd_ko_cpld_write(int32_t addr, uint8_t val) +{ + int ret; + int sub_slot, cpld_id, cpld_mode; + + sub_slot = DFD_KO_CPLD_GET_SLOT(addr); + cpld_id = DFD_KO_CPLD_GET_ID(addr); + + ret = dfd_cfg_get_cpld_mode(sub_slot, cpld_id, &cpld_mode); + if (ret) { + DBG_DEBUG(DBG_ERROR, "drv_get_cpld_mode sub_slot %d cpldid %d faile, set default local_bus mode.\n", sub_slot, cpld_id); + cpld_mode = DFD_CPLD_MODE_I2C; + } + + if (cpld_mode == DFD_CPLD_MODE_I2C) { + ret = dfd_ko_cpld_i2c_write(addr, val); + } else if (cpld_mode == DFD_CPLD_MODE_LPC) { + ret = dfd_ko_cpld_io_write(addr, val); + } else { + DBG_DEBUG(DBG_ERROR, "cpld_mode %d invalid.\n", cpld_mode); + ret = -DFD_RV_DEV_NOTSUPPORT; + } + + DBG_DEBUG(DBG_VERBOSE, "addr 0x%x val 0x%x ret %d\n", addr, val, ret); + return ret; +} + +int32_t dfd_ko_i2c_read(int bus, int addr, int offset, uint8_t *buf, uint32_t size) +{ + int i, rv; + + for (i = 0; i < size; i++) { + rv = dfd_ko_i2c_read_data(bus, addr, offset, &buf[i], sizeof(uint8_t)); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "dfd_ko_i2c_read[bus=%d addr=0x%x offset=0x%x]fail, rv=%d\n", + bus, addr, offset, rv); + return rv; + } + offset++; + } + + return size; +} + +int32_t dfd_ko_i2c_write(int bus, int addr, int offset, uint8_t *buf, uint32_t size) +{ + int i, rv; + + for (i = 0; i < size; i++) { + rv = dfd_ko_i2c_write_data(bus, addr, offset, buf[i], sizeof(uint8_t)); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "dfd_ko_i2c_write[bus=%d addr=0x%x offset=0x%x]fail, rv=%d\n", + bus, addr, offset, rv); + return rv; + } + offset++; + } + + return size; + +} + +int32_t dfd_ko_read_file(char *fpath, int32_t addr, uint8_t *val, int32_t read_bytes) +{ + int32_t ret; + struct file *filp; + loff_t pos; + + if ((fpath == NULL) || (val == NULL) || (addr < 0) || (read_bytes < 0)) { + DBG_DEBUG(DBG_ERROR, "input arguments error, addr=%d read_bytes=%d\n", addr, read_bytes); + return -DFD_RV_INDEX_INVALID; + } + + filp = filp_open(fpath, O_RDONLY, 0); + if (IS_ERR(filp)){ + DBG_DEBUG(DBG_ERROR, "open file[%s] fail\n", fpath); + return -DFD_RV_DEV_FAIL; + } + + pos = addr; + ret = kernel_read(filp, val, read_bytes, &pos); + if (ret < 0) { + DBG_DEBUG(DBG_ERROR, "kernel_read failed, path=%s, addr=%d, size=%d, ret=%d\n", fpath, addr, read_bytes, ret); + ret = -DFD_RV_DEV_FAIL; + } + + filp_close(filp, NULL); + return ret; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c new file mode 100644 index 000000000000..8d77759ba7e0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c @@ -0,0 +1,236 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../include/dfd_cfg_file.h" +#include "../include/dfd_module.h" +#include "../../dev_sysfs/include/sysfs_common.h" + +struct getdents_callback { + struct dir_context ctx; + const char *obj_name; + char *match_name; + int dir_len; + int found; +}; + +int kfile_open(char *fname, kfile_ctrl_t *kfile_ctrl) +{ + int ret; + struct file *filp; + loff_t pos; + + if ((fname == NULL) || (kfile_ctrl == NULL)) { + return KFILE_RV_INPUT_ERR; + } + + filp = filp_open(fname, O_RDONLY, 0); + if (IS_ERR(filp)){ + return KFILE_RV_OPEN_FAIL; + } + + kfile_ctrl->size = filp->f_inode->i_size; + + kfile_ctrl->buf = kmalloc(kfile_ctrl->size, GFP_KERNEL); + if (kfile_ctrl->buf == NULL) { + ret = KFILE_RV_MALLOC_FAIL; + goto close_fp; + } + mem_clear(kfile_ctrl->buf, kfile_ctrl->size); + + pos = 0; + ret = kernel_read(filp, kfile_ctrl->buf, kfile_ctrl->size, &pos); + if (ret < 0) { + ret = KFILE_RV_RD_FAIL; + goto free_buf; + } + + kfile_ctrl->pos = 0; + + ret = KFILE_RV_OK; + goto close_fp; + +free_buf: + kfree(kfile_ctrl->buf); + kfile_ctrl->buf = NULL; + +close_fp: + filp_close(filp, NULL); + return ret; +} + +void kfile_close(kfile_ctrl_t *kfile_ctrl) +{ + if (kfile_ctrl == NULL) { + return; + } + + kfile_ctrl->size = 0; + kfile_ctrl->pos = 0; + if (kfile_ctrl->buf) { + kfree(kfile_ctrl->buf); + kfile_ctrl->buf = NULL; + } +} + +int kfile_gets(char *buf, int buf_size, kfile_ctrl_t *kfile_ctrl) +{ + int i; + int has_cr = 0; + + if ((buf == NULL) || (buf_size <= 0) || (kfile_ctrl == NULL) || (kfile_ctrl->buf == NULL) + || (kfile_ctrl->size <= 0)) { + return KFILE_RV_INPUT_ERR; + } + + mem_clear(buf, buf_size); + for (i = 0; i < buf_size; i++) { + + if (kfile_ctrl->pos >= kfile_ctrl->size) { + break; + } + + if (has_cr) { + break; + } + + if (IS_CR(kfile_ctrl->buf[kfile_ctrl->pos])) { + has_cr = 1; + } + + buf[i] = kfile_ctrl->buf[kfile_ctrl->pos]; + kfile_ctrl->pos++; + } + + return i; +} + +int kfile_read(int32_t addr, char *buf, int buf_size, kfile_ctrl_t *kfile_ctrl) +{ + int i; + + if ((buf == NULL) || (buf_size <= 0) || (kfile_ctrl == NULL) || (kfile_ctrl->buf == NULL) + || (kfile_ctrl->size <= 0)) { + return KFILE_RV_INPUT_ERR; + } + + if ((addr < 0) || (addr >= kfile_ctrl->size)) { + return KFILE_RV_ADDR_ERR; + } + + mem_clear(buf, buf_size); + + kfile_ctrl->pos = addr; + for (i = 0; i < buf_size; i++) { + + if (kfile_ctrl->pos >= kfile_ctrl->size) { + break; + } + + buf[i] = kfile_ctrl->buf[kfile_ctrl->pos]; + kfile_ctrl->pos++; + } + + return i; +} + +static int kfile_filldir_one(struct dir_context *ctx, const char * name, int len, + loff_t pos, u64 ino, unsigned int d_type) +{ + struct getdents_callback *buf ; + int result; + buf = container_of(ctx, struct getdents_callback, ctx); + result = 0; + if (strncmp(buf->obj_name, name, strlen(buf->obj_name)) == 0) { + if (buf->dir_len < len) { + DBG_DEBUG(DBG_ERROR, "match ok. dir name:%s, but buf_len %d small than dir len %d.\n", + name, buf->dir_len, len); + buf->found = 0; + return -1; + } + mem_clear(buf->match_name, buf->dir_len); + memcpy(buf->match_name, name, len); + buf->found = 1; + result = -1; + } + return result; +} + +int kfile_iterate_dir(const char *dir_path, const char *obj_name, char *match_name, int len) +{ + int ret; + struct file *dir; + struct getdents_callback buffer = { + .ctx.actor = kfile_filldir_one, + }; + + if(!dir_path || !obj_name || !match_name) { + DBG_DEBUG(DBG_ERROR, "params error. \n"); + return KFILE_RV_INPUT_ERR; + } + buffer.obj_name = obj_name; + buffer.match_name = match_name; + buffer.dir_len = len; + buffer.found = 0; + + dir = filp_open(dir_path, O_RDONLY, 0); + if (IS_ERR(dir)) { + DBG_DEBUG(DBG_ERROR, "filp_open error, dir path:%s\n", dir_path); + return KFILE_RV_OPEN_FAIL; + } + ret = iterate_dir(dir, &buffer.ctx); + if (buffer.found) { + DBG_DEBUG(DBG_VERBOSE, "match ok, dir name:%s\n", match_name); + filp_close(dir, NULL); + return DFD_RV_OK; + } + filp_close(dir, NULL); + return -DFD_RV_NODE_FAIL; +} + +#if 0 + +int kfile_write(char *fpath, int32_t addr, char *buf, int buf_size) +{ + int ret = KFILE_RV_OK; + struct file *filp; + mm_segment_t old_fs; + int wlen; + + if ((fpath == NULL) || (buf == NULL) || (buf_size <= 0)) { + return KFILE_RV_INPUT_ERR; + } + + if (addr < 0) { + return KFILE_RV_ADDR_ERR; + } + + filp = filp_open(fpath, O_RDWR, 0); + if (IS_ERR(filp)){ + return KFILE_RV_OPEN_FAIL; + } + + old_fs = get_fs(); + set_fs(KERNEL_DS); + + filp->f_op->llseek(filp,0,0); + filp->f_pos = addr; + + wlen = filp->f_op->write(filp, buf, buf_size, &(filp->f_pos)); + if (wlen < 0) { + ret = KFILE_RV_WR_FAIL; + } + + filp->f_op->llseek(filp,0,0); + set_fs(old_fs); + filp_close(filp, NULL); + + return ret; +} +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c new file mode 100644 index 000000000000..a215bbc76fa5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c @@ -0,0 +1,753 @@ +#include +#include +#include + +#include "../include/dfd_module.h" +#include "../include/dfd_cfg_adapter.h" +#include "../include/dfd_cfg.h" +#include "../include/dfd_cfg_info.h" +#include "../include/dfd_cfg_file.h" +#include "../../dev_sysfs/include/sysfs_common.h" + +#define DFD_HWMON_NAME "hwmon" +#define DFD_GET_CPLD_VOLATGE_CODE_VALUE(value) ((value >> 4)& 0xfff) +/* ((code_val * 16 * 33 * k) / ((65536 - 5000) * 10)) = ((code_val * 33 * k) / 37835) */ +#define DFD_GET_CPLD_VOLATGE_REAL_VALUE(code_val, k) ((code_val * 33 * k) / 37835) + +char *g_info_ctrl_mem_str[INFO_CTRL_MEM_END] = { + ".mode", + ".int_cons", + ".src", + ".frmt", + ".pola", + ".fpath", + ".addr", + ".len", + ".bit_offset", + ".str_cons", + ".int_extra1", + ".int_extra2", +}; + +char *g_info_ctrl_mode_str[INFO_CTRL_MODE_END] = { + "none", + "config", + "constant", + "tlv", + "str_constant", +}; + +char *g_info_src_str[INFO_SRC_END] = { + "none", + "cpld", + "fpga", + "other_i2c", + "file", +}; + +char *g_info_frmt_str[INFO_FRMT_END] = { + "none", + "bit", + "byte", + "num_bytes", + "num_str", + "num_buf", + "buf", +}; + +char *g_info_pola_str[INFO_POLA_END] = { + "none", + "positive", + "negative", +}; + +static int dfd_read_info_from_cpld(int32_t addr, int read_bytes, uint8_t *val) +{ + int i, rv; + + for (i = 0; i < read_bytes; i++) { + rv = dfd_ko_cpld_read(addr, &(val[i])); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "read info[addr=0x%x read_bytes=%d] from cpld fail, reading_byte=%d rv=%d\n", + addr, read_bytes, i, rv); + return rv; + } + addr++; + } + + return read_bytes; +} + +static int dfd_write_info_to_cpld(int32_t addr, int write_bytes, uint8_t *val, uint8_t bit_mask) +{ + int rv; + uint8_t val_tmp; + + if (bit_mask != 0xff) { + rv = dfd_ko_cpld_read(addr, &val_tmp); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "read original info[addr=0x%x] from cpld fail, rv=%d\n", addr, rv); + return -1; + } + + val_tmp = (val_tmp & (~bit_mask)) | (val[0] & bit_mask); + } else { + val_tmp = val[0]; + } + + rv = dfd_ko_cpld_write(addr, val_tmp); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "write info[addr=0x%x val=0x%x] to cpld fail, rv=%d\n", addr, val_tmp, rv); + return -1; + } + + return 0; +} + +static int dfd_read_info(info_src_t src, char *fpath, int32_t addr, int read_bytes, uint8_t *val) +{ + int rv = 0; + + switch (src) { + case INFO_SRC_CPLD: + rv = dfd_read_info_from_cpld(addr, read_bytes, val); + break; + case INFO_SRC_FPGA: + rv = -1; + DBG_DEBUG(DBG_ERROR, "not support read info from fpga\n"); + break; + case INFO_SRC_OTHER_I2C: + rv = -1; + DBG_DEBUG(DBG_ERROR, "not support read info from other i2c\n"); + break; + case INFO_SRC_FILE: + rv = dfd_ko_read_file(fpath, addr, val, read_bytes); + break; + default: + rv = -1; + DBG_DEBUG(DBG_ERROR, "info src[%d] error\n", src); + break; + } + + return rv; +} + +static int dfd_write_info(info_src_t src, char *fpath, int32_t addr, int write_bytes, uint8_t *val, uint8_t bit_mask) +{ + int rv = 0; + + switch (src) { + case INFO_SRC_CPLD: + rv = dfd_write_info_to_cpld(addr, write_bytes, val, bit_mask); + break; + case INFO_SRC_FPGA: + rv = -1; + DBG_DEBUG(DBG_ERROR, "not support write info to fpga\n"); + break; + case INFO_SRC_OTHER_I2C: + rv = -1; + DBG_DEBUG(DBG_ERROR, "not support write info to other i2c\n"); + break; + case INFO_SRC_FILE: + rv = -1; + DBG_DEBUG(DBG_ERROR, "not support write info to file\n"); + break; + default: + rv = -1; + DBG_DEBUG(DBG_ERROR, "info src[%d] error\n", src); + break; + } + + return rv; +} + +static int dfd_get_info_value(info_ctrl_t *info_ctrl, int *ret, info_num_buf_to_value_f pfun) +{ + int i, rv; + int read_bytes, readed_bytes, int_tmp; + uint8_t byte_tmp, val[INFO_INT_MAX_LEN + 1] = {0}; + + if (info_ctrl->mode == INFO_CTRL_MODE_CONS) { + *ret = info_ctrl->int_cons; + return DFD_RV_OK; + } + if (info_ctrl->mode == INFO_CTRL_MODE_TLV) { + return INFO_CTRL_MODE_TLV; + } + + if (IS_INFO_FRMT_BIT(info_ctrl->frmt)) { + if (!INFO_BIT_OFFSET_VALID(info_ctrl->bit_offset)) { + DBG_DEBUG(DBG_ERROR, "info ctrl bit_offsest[%d] invalid\n", + info_ctrl->bit_offset); + return -DFD_RV_TYPE_ERR; + } + read_bytes = 1; + } else if (IS_INFO_FRMT_BYTE(info_ctrl->frmt) || IS_INFO_FRMT_NUM_STR(info_ctrl->frmt) + || IS_INFO_FRMT_NUM_BUF(info_ctrl->frmt)) { + if (!INFO_INT_LEN_VALAID(info_ctrl->len)) { + DBG_DEBUG(DBG_ERROR, "info ctrl len[%d] invalid\n", info_ctrl->len); + return -DFD_RV_TYPE_ERR; + } + read_bytes = info_ctrl->len; + } else { + DBG_DEBUG(DBG_ERROR, "info ctrl info format[%d] error\n", info_ctrl->frmt); + return -DFD_RV_TYPE_ERR; + } + + readed_bytes = dfd_read_info(info_ctrl->src, info_ctrl->fpath, info_ctrl->addr, read_bytes, &(val[0])); + if (readed_bytes <= 0) { + DBG_DEBUG(DBG_ERROR, "read int info[src=%s frmt=%s fpath=%s addr=0x%x read_bytes=%d] fail, rv=%d\n", + g_info_src_str[info_ctrl->src], g_info_frmt_str[info_ctrl->frmt], info_ctrl->fpath, + info_ctrl->addr, read_bytes, readed_bytes); + return -DFD_RV_DEV_FAIL; + } + + if (IS_INFO_FRMT_BIT(info_ctrl->frmt)) { + if (info_ctrl->pola == INFO_POLA_NEGA) { + val[0] = ~val[0]; + } + byte_tmp = (val[0] >> info_ctrl->bit_offset) & (~(0xff << info_ctrl->len)); + if (pfun) { + rv = pfun(&byte_tmp, sizeof(byte_tmp), &int_tmp); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "info ctrl bit process fail, rv=%d\n", rv); + return rv; + } + } else { + int_tmp = (int)byte_tmp; + } + } else if (IS_INFO_FRMT_BYTE(info_ctrl->frmt)) { + int_tmp = 0; + for (i = 0; i < info_ctrl->len; i++) { + if (info_ctrl->pola == INFO_POLA_NEGA) { + int_tmp |= val[info_ctrl->len - i - 1]; + } else { + int_tmp |= val[i]; + } + if (i != (info_ctrl->len - 1)) { + int_tmp <<= 8; + } + } + } else if (IS_INFO_FRMT_NUM_STR(info_ctrl->frmt)) { + val[readed_bytes] = '\0'; + int_tmp = simple_strtol((char *)(&(val[0])), NULL, 10); + } else { + if (pfun == NULL) { + DBG_DEBUG(DBG_ERROR, "info ctrl number buf process function is null\n"); + return -DFD_RV_INDEX_INVALID; + } + rv = pfun(val, readed_bytes, &int_tmp); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "info ctrl number buf process fail, rv=%d\n", rv); + return rv; + } + } + + *ret = int_tmp; + DBG_DEBUG(DBG_VERBOSE, "read int info[src=%s frmt=%s pola=%s fpath=%s addr=0x%x len=%d bit_offset=%d] success, ret=%d\n", + g_info_src_str[info_ctrl->src], g_info_frmt_str[info_ctrl->frmt], g_info_pola_str[info_ctrl->pola], + info_ctrl->fpath, info_ctrl->addr, info_ctrl->len, info_ctrl->bit_offset, *ret); + return DFD_RV_OK; +} + +int dfd_info_get_int(int key, int *ret, info_num_buf_to_value_f pfun) +{ + int rv; + info_ctrl_t *info_ctrl; + + if (!DFD_CFG_ITEM_IS_INFO_CTRL(DFD_CFG_ITEM_ID(key)) || (ret == NULL)) { + DBG_DEBUG(DBG_ERROR, "input arguments error, key=0x%08x\n", key); + return -DFD_RV_INDEX_INVALID; + } + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_WARN, "get info ctrl fail, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + DBG_DEBUG(DBG_VERBOSE, "get info ctrl value, key=0x%08x\n", key); + rv = dfd_get_info_value(info_ctrl, ret, pfun); + return rv; +} + +int dfd_info_get_buf(int key, uint8_t *buf, int buf_len, info_buf_to_buf_f pfun) +{ + int rv; + int read_bytes, buf_real_len; + uint8_t buf_tmp[INFO_BUF_MAX_LEN]; + info_ctrl_t *info_ctrl; + + if (!DFD_CFG_ITEM_IS_INFO_CTRL(DFD_CFG_ITEM_ID(key)) || (buf == NULL)) { + DBG_DEBUG(DBG_ERROR, "input arguments error, key=0x%08x\n", key); + return -DFD_RV_INDEX_INVALID; + } + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_WARN, "get info ctrl fail, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + if (info_ctrl->mode != INFO_CTRL_MODE_CFG) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] mode[%d] invalid\n", key, info_ctrl->mode); + return -DFD_RV_TYPE_ERR; + } + + if (!IS_INFO_FRMT_BUF(info_ctrl->frmt) || !INFO_BUF_LEN_VALAID(info_ctrl->len) + || (buf_len <= info_ctrl->len)) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] format=%d or len=%d invlaid, buf_len=%d\n", + key, info_ctrl->frmt, info_ctrl->len, buf_len); + return -DFD_RV_TYPE_ERR; + } + + read_bytes = dfd_read_info(info_ctrl->src, info_ctrl->fpath, info_ctrl->addr, info_ctrl->len, buf_tmp); + if (read_bytes <= 0) { + DBG_DEBUG(DBG_ERROR, "read buf info[key=0x%08x src=%s frmt=%s fpath=%s addr=0x%x len=%d] fail, rv=%d\n", + key, g_info_src_str[info_ctrl->src], g_info_frmt_str[info_ctrl->frmt], info_ctrl->fpath, + info_ctrl->addr, info_ctrl->len, read_bytes); + return -DFD_RV_DEV_FAIL; + } + + if (pfun) { + buf_real_len = buf_len; + rv = pfun(buf_tmp, read_bytes, buf, &buf_real_len); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] buf process fail, rv=%d\n", key, rv); + return -DFD_RV_DEV_NOTSUPPORT; + } + } else { + buf_real_len = read_bytes; + memcpy(buf, buf_tmp, read_bytes); + } + + return buf_real_len; +} + +static int dfd_2key_info_get_buf(info_ctrl_t *info_ctrl, uint8_t *buf, int buf_len, info_hwmon_buf_f pfun) +{ + int rv; + int read_bytes, buf_real_len; + uint8_t buf_tmp[INFO_BUF_MAX_LEN]; + char temp_fpath[INFO_FPATH_MAX_LEN]; + + if (!IS_INFO_FRMT_BUF(info_ctrl->frmt) || !INFO_BUF_LEN_VALAID(info_ctrl->len) + || (buf_len <= info_ctrl->len)) { + DBG_DEBUG(DBG_ERROR, "key_path info ctrl format=%d or len=%d invlaid, buf_len=%d\n", + info_ctrl->frmt, info_ctrl->len, buf_len); + return -DFD_RV_TYPE_ERR; + } + + mem_clear(buf_tmp, sizeof(buf_tmp)); + rv = kfile_iterate_dir(info_ctrl->fpath, DFD_HWMON_NAME, buf_tmp, INFO_BUF_MAX_LEN); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "dir patch:%s ,can find name %s dir \n", + info_ctrl->fpath, DFD_HWMON_NAME); + return -DFD_RV_NO_NODE; + } + mem_clear(temp_fpath, sizeof(temp_fpath)); + snprintf(temp_fpath, sizeof(temp_fpath), "%s%s/%s", + info_ctrl->fpath, buf_tmp, info_ctrl->str_cons); + DBG_DEBUG(DBG_VERBOSE, "match ok path = %s \n", temp_fpath); + + mem_clear(buf_tmp, sizeof(buf_tmp)); + + read_bytes = dfd_read_info(info_ctrl->src, temp_fpath, info_ctrl->addr, info_ctrl->len, buf_tmp); + if (read_bytes <= 0) { + DBG_DEBUG(DBG_ERROR, "read buf info[src=%s frmt=%s fpath=%s addr=0x%x len=%d] fail, rv=%d\n", + g_info_src_str[info_ctrl->src], g_info_src_str[info_ctrl->frmt], temp_fpath, + info_ctrl->addr, info_ctrl->len, read_bytes); + return -DFD_RV_DEV_FAIL; + } + + if (pfun) { + buf_real_len = buf_len; + rv = pfun(buf_tmp, read_bytes, buf, &buf_real_len, info_ctrl); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "info ctrl buf process fail, rv=%d\n", rv); + return -DFD_RV_DEV_NOTSUPPORT; + } + } else { + buf_real_len = read_bytes; + memcpy(buf, buf_tmp, buf_real_len); + } + return buf_real_len; +} + +int dfd_info_set_int(int key, int val) +{ + int rv; + int write_bytes; + uint8_t byte_tmp, bit_mask; + info_ctrl_t *info_ctrl; + + if (!DFD_CFG_ITEM_IS_INFO_CTRL(DFD_CFG_ITEM_ID(key))) { + DBG_DEBUG(DBG_ERROR, "input arguments error, key=0x%08x\n", key); + return -DFD_RV_INDEX_INVALID; + } + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_WARN, "get info ctrl fail, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + if (info_ctrl->mode != INFO_CTRL_MODE_CFG) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] mode[%d] warnning\n", key, info_ctrl->mode); + return -DFD_RV_TYPE_ERR; + } + + if (IS_INFO_FRMT_BIT(info_ctrl->frmt)) { + + if (!INFO_BIT_OFFSET_VALID(info_ctrl->bit_offset)) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] bit_offsest[%d] invalid\n", + key, info_ctrl->bit_offset); + return -DFD_RV_TYPE_ERR; + } + + write_bytes = 1; + + byte_tmp = (uint8_t)(val & 0xff); + byte_tmp <<= info_ctrl->bit_offset; + if (info_ctrl->pola == INFO_POLA_NEGA) { + byte_tmp = ~byte_tmp; + } + + bit_mask = (~(0xff << info_ctrl->len)) << info_ctrl->bit_offset; + } else if (IS_INFO_FRMT_BYTE(info_ctrl->frmt)) { + + if (!INFO_INT_LEN_VALAID(info_ctrl->len)) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] len[%d] invalid\n", key, info_ctrl->len); + return -DFD_RV_TYPE_ERR; + } + + write_bytes = 1; + + byte_tmp = (uint8_t)(val & 0xff); + + bit_mask = 0xff; + } else if (IS_INFO_FRMT_NUM_STR(info_ctrl->frmt)) { + + DBG_DEBUG(DBG_ERROR, "not support str int set\n"); + return -1; + } else if (IS_INFO_FRMT_NUM_BUF(info_ctrl->frmt)) { + + if (!INFO_INT_LEN_VALAID(info_ctrl->len)) { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] len[%d] invalid\n", key, info_ctrl->len); + return -DFD_RV_TYPE_ERR; + } + + write_bytes = 1; + + byte_tmp = (uint8_t)(val & 0xff); + + bit_mask = 0xff; + } else { + DBG_DEBUG(DBG_ERROR, "info ctrl[key=0x%08x] format[%d] error\n", key, info_ctrl->frmt); + return -DFD_RV_TYPE_ERR; + } + + rv = dfd_write_info(info_ctrl->src, info_ctrl->fpath, info_ctrl->addr, write_bytes, + &byte_tmp, bit_mask); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "write int info[src=%s frmt=%s fpath=%s addr=0x%x len=%d val=%d] fail, rv=%d\n", + g_info_src_str[info_ctrl->src], g_info_frmt_str[info_ctrl->frmt], info_ctrl->fpath, + info_ctrl->addr, info_ctrl->len, val, rv); + return -DFD_RV_DEV_FAIL; + } + + DBG_DEBUG(DBG_VERBOSE, "write int info[src=%s frmt=%s pola=%s fpath=%s addr=0x%x len=%d bit_offset=%d val=%d] success\n", + g_info_src_str[info_ctrl->src], g_info_frmt_str[info_ctrl->frmt], g_info_pola_str[info_ctrl->pola], + info_ctrl->fpath, info_ctrl->addr, info_ctrl->len, info_ctrl->bit_offset, val); + return DFD_RV_OK; +} + +static int dfd_info_reg2data_linear(int key, int data, int *temp_value) +{ + s16 exponent; + s32 mantissa; + int val; + info_ctrl_t *info_ctrl; + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_WARN, "get info ctrl fail, key=%d\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + switch (info_ctrl->int_extra1) { + case LINEAR11: + exponent = ((s16)data) >> 11; + mantissa = ((s16)((data & 0x7ff) << 5)) >> 5; + val = mantissa; + val = val * 1000L; + break; + case LINEAR16: + break; + default: + break; + } + + if (DFD_CFG_ITEM_ID(key) == DFD_CFG_ITEM_HWMON_POWER) { + val = val * 1000L; + } + + if (exponent >= 0) { + val <<= exponent; + } else { + val >>= -exponent; + } + *temp_value = val; + + return DFD_RV_OK; +} + +static int dfd_info_reg2data_tmp464(int data, int *temp_value) +{ + s16 tmp_val; + int val; + + DBG_DEBUG(DBG_VERBOSE, "reg2data_tmp464, data=%d\n", data); + + if (data >= 0) { + val = data*625/80; + } else { + tmp_val = ~(data & 0x7ff) + 1; + val = tmp_val*625/80; + } + *temp_value = val; + + return DFD_RV_OK; +} + +static int dfd_info_reg2data_mac_th5(int data, int *temp_value) +{ + int tmp_val; + int val; + + DBG_DEBUG(DBG_VERBOSE, "reg2data_mac_th5, data=%d\n", data); + + tmp_val = data >> 4; + val = 476359 - (((tmp_val - 2) * 317704) / 2000); + + DBG_DEBUG(DBG_VERBOSE, "reg2data_mac_th5, val=%d\n", val); + *temp_value = val; + + return DFD_RV_OK; +} + +static int dfd_info_reg2data_mac_td3(int data, int *temp_value) +{ + int val; + + if (data == 0) { + DBG_DEBUG(DBG_ERROR,"invalid cpld data=%d\n", data); + *temp_value = -READ_TEMP_FAIL; + return DFD_RV_OK; + } + + DBG_DEBUG(DBG_VERBOSE, "reg2data_mac_td3, data=%d\n", data); + val = 434100 - (12500000 / (data * 100 - 1) *535); + if ((val / 1000 < -70) || (val / 1000 > 200)) { + DBG_DEBUG(DBG_ERROR,"out of range cpld val=%d\n", val); + *temp_value = -READ_TEMP_FAIL; + return DFD_RV_OK; + } + DBG_DEBUG(DBG_VERBOSE, "reg2data_mac_td3, val=%d\n", val); + *temp_value = val; + + return DFD_RV_OK; +} + +static int dfd_info_get_cpld_voltage(int key, uint32_t *value) +{ + int rv; + uint32_t vol_ref_tmp, vol_ref; + uint32_t vol_curr_tmp, vol_curr; + info_ctrl_t *info_ctrl; + info_ctrl_t info_ctrl_tmp; + uint32_t vol_coefficient; + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_WARN, "get info ctrl fail, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + vol_coefficient = (uint32_t)info_ctrl->int_extra2; + + rv = dfd_get_info_value(info_ctrl, &vol_curr_tmp, NULL); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "get cpld current voltage error, addr:0x%x, rv = %d\n", info_ctrl->addr, rv); + return rv; + } + vol_curr_tmp = DFD_GET_CPLD_VOLATGE_CODE_VALUE(vol_curr_tmp); + if (info_ctrl->addr == info_ctrl->int_extra1) { + vol_curr = DFD_GET_CPLD_VOLATGE_REAL_VALUE(vol_curr_tmp, vol_coefficient); + DBG_DEBUG(DBG_VERBOSE, "current voltage is reference voltage, vol_curr_tmp: 0x%x, coefficient: %u, vol_curr: %u\n", + vol_curr_tmp, vol_coefficient, vol_curr); + } else { + memcpy(&info_ctrl_tmp, info_ctrl, sizeof(info_ctrl_t)); + info_ctrl_tmp.addr = info_ctrl->int_extra1; + rv = dfd_get_info_value(&info_ctrl_tmp, &vol_ref_tmp, NULL); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "get cpld reference voltage error, addr: 0x%x, rv: %d\n", info_ctrl_tmp.addr, rv); + return rv; + } + vol_ref = DFD_GET_CPLD_VOLATGE_CODE_VALUE(vol_ref_tmp); + DBG_DEBUG(DBG_VERBOSE, "vol_ref_tmp: 0x%x, vol_ref: 0x%x\n", vol_ref_tmp, vol_ref); + vol_curr = (vol_curr_tmp * vol_coefficient) / vol_ref; + DBG_DEBUG(DBG_VERBOSE, "vol_curr_tmp: 0x%x, vol_ref: 0x%x, coefficient: %u, vol_curr: %u\n", + vol_curr_tmp, vol_ref, vol_coefficient, vol_curr); + } + *value = vol_curr; + return DFD_RV_OK; +} + +static int dfd_info_get_cpld_temperature(int key, int *value) +{ + int rv; + int temp_reg; + int temp_value; + info_ctrl_t *info_ctrl; + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_WARN, "get info ctrl fail, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + rv = dfd_info_get_int(key, &temp_reg, NULL); + if(rv < 0) { + DBG_DEBUG(DBG_ERROR, "get cpld current temperature error, addr:0x%x, rv =%d\n", info_ctrl->addr, rv); + return rv; + } + DBG_DEBUG(DBG_VERBOSE, "get cpld temp:0x%08x, extra1 0x%x\n", temp_reg, info_ctrl->int_extra1); + + switch (info_ctrl->int_extra1) { + case LINEAR11: + rv = dfd_info_reg2data_linear(key, temp_reg, &temp_value); + break; + case TMP464: + rv = dfd_info_reg2data_tmp464(temp_reg, &temp_value); + break; + case MAC_TH5: + rv = dfd_info_reg2data_mac_th5(temp_reg, &temp_value); + break; + case MAC_TD3: + rv = dfd_info_reg2data_mac_td3(temp_reg, &temp_value); + break; + default: + temp_value = temp_reg; + rv = DFD_RV_OK; + break; + } + + DBG_DEBUG(DBG_VERBOSE, "calc temp:%d \n", temp_value); + *value = temp_value; + + return rv; +} + + +static int dfd_info_get_sensor_value(int key, uint8_t *buf, int buf_len, info_hwmon_buf_f pfun) +{ + int rv, buf_real_len; + uint32_t value; + uint8_t buf_tmp[INFO_BUF_MAX_LEN]; + info_ctrl_t *info_ctrl; + + info_ctrl = dfd_ko_cfg_get_item(key); + if (info_ctrl == NULL) { + DBG_DEBUG(DBG_ERROR, "get info ctrl fail, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + + if ( DFD_CFG_ITEM_ID(key) == DFD_CFG_ITEM_HWMON_IN && info_ctrl->src == INFO_SRC_CPLD) { + rv = dfd_info_get_cpld_voltage(key, &value); + if(rv < 0) { + DBG_DEBUG(DBG_ERROR, "get cpld voltage failed.key=0x%08x, rv:%d\n", key, rv); + return -DFD_RV_DEV_NOTSUPPORT; + } + DBG_DEBUG(DBG_VERBOSE, "get cpld voltage ok, value:%u\n", value); + mem_clear(buf_tmp, sizeof(buf_tmp)); + snprintf(buf_tmp, sizeof(buf_tmp), "%u\n", value); + buf_real_len = strlen(buf_tmp); + if(buf_len <= buf_real_len) { + DBG_DEBUG(DBG_ERROR, "length not enough.buf_len:%d,need length:%d\n", buf_len, buf_real_len); + return -DFD_RV_DEV_FAIL; + } + if (pfun) { + buf_real_len = buf_len; + rv = pfun(buf_tmp, strlen(buf_tmp), buf, &buf_real_len, info_ctrl); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "deal date error.org value:%s, buf_len:%d, rv=%d\n", + buf_tmp, buf_len, rv); + return -DFD_RV_DEV_NOTSUPPORT; + } + } else { + memcpy(buf, buf_tmp, buf_real_len); + } + return buf_real_len; + } else if ( DFD_CFG_ITEM_ID(key) == DFD_CFG_ITEM_HWMON_TEMP && info_ctrl->src == INFO_SRC_CPLD ) { + rv = dfd_info_get_cpld_temperature(key, &value); + if(rv < 0) { + DBG_DEBUG(DBG_ERROR, "get cpld temperature failed.key=0x%08x, rv:%d\n", key, rv); + return -DFD_RV_DEV_NOTSUPPORT; + } + DBG_DEBUG(DBG_VERBOSE, "get cpld temperature ok, value:%d buf_len %d\n", value, buf_len); + mem_clear(buf_tmp, sizeof(buf_tmp)); + snprintf(buf_tmp, sizeof(buf_tmp), "%d\n", value); + buf_real_len = strlen(buf_tmp); + if(buf_len <= buf_real_len) { + DBG_DEBUG(DBG_ERROR, "length not enough.buf_len:%d,need length:%d\n", buf_len, buf_real_len); + return -DFD_RV_DEV_FAIL; + } + DBG_DEBUG(DBG_VERBOSE, "buf_real_len %d\n", buf_real_len); + memcpy(buf, buf_tmp, buf_real_len); + return buf_real_len; + } + + DBG_DEBUG(DBG_ERROR, "not support mode. key:0x%08x\n", key); + return -DFD_RV_MODE_NOTSUPPORT; +} + +int dfd_info_get_sensor(uint32_t key, char *buf, int buf_len, info_hwmon_buf_f pfun) +{ + info_ctrl_t *key_info_ctrl; + int rv; + + if (!DFD_CFG_ITEM_IS_INFO_CTRL(DFD_CFG_ITEM_ID(key)) || + (buf == NULL) || buf_len <= 0) { + DBG_DEBUG(DBG_ERROR, "input arguments error, key_path=0x%08x, buf_len:%d.\n", + key, buf_len); + return -DFD_RV_INVALID_VALUE; + } + + key_info_ctrl = dfd_ko_cfg_get_item(key); + if (key_info_ctrl == NULL) { + DBG_DEBUG(DBG_ERROR, "key_path info error, key=0x%08x\n", key); + return -DFD_RV_DEV_NOTSUPPORT; + } + mem_clear(buf, buf_len); + + if (key_info_ctrl->mode == INFO_CTRL_MODE_SRT_CONS) { + snprintf(buf, buf_len, "%s\n", key_info_ctrl->str_cons); + DBG_DEBUG(DBG_VERBOSE, "get sensor value through string config, key=0x%08x, value:%s\n", key, buf); + return strlen(buf); + } + + if (key_info_ctrl->mode == INFO_CTRL_MODE_CFG && key_info_ctrl->src == INFO_SRC_FILE) { + DBG_DEBUG(DBG_VERBOSE, "get sensor value through hwmon, key:0x%08x\n", key); + rv = dfd_2key_info_get_buf(key_info_ctrl, buf, buf_len, pfun); + if (rv < 0) { + DBG_DEBUG(DBG_VERBOSE, "get sensor value through hwmon failed, key:0x%08x, rv:%d\n", key, rv); + } + return rv; + } + rv = dfd_info_get_sensor_value(key, buf, buf_len, pfun); + if( rv < 0) { + DBG_DEBUG(DBG_ERROR, "get sensor value failed, key=0x%08x, rv:%d.\n", key, rv); + } + return rv; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_listnode.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_listnode.c new file mode 100644 index 000000000000..d6fd7e104c9f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_listnode.c @@ -0,0 +1,82 @@ +#include +#include + +#include "../include/dfd_cfg_listnode.h" +#include "../../dev_sysfs/include/sysfs_common.h" + +void *lnode_find_node(lnode_root_t *root, int key) +{ + lnode_node_t *lnode; + + if (root == NULL){ + return NULL; + } + + list_for_each_entry(lnode, &(root->root), lst) { + if (lnode->key == key) { + return lnode->data; + } + } + + return NULL; +} + +int lnode_insert_node(lnode_root_t *root, int key, void *data) +{ + lnode_node_t *lnode; + void *data_tmp; + + if ((root == NULL) || (data == NULL)) { + return LNODE_RV_INPUT_ERR; + } + + data_tmp = lnode_find_node(root, key); + if (data_tmp != NULL) { + return LNODE_RV_NODE_EXIST; + } + + lnode = kmalloc(sizeof(lnode_node_t), GFP_KERNEL); + if (lnode == NULL) { + return LNODE_RV_NOMEM; + } + + lnode->key = key; + lnode->data = data; + list_add_tail(&(lnode->lst), &(root->root)); + + return LNODE_RV_OK; +} + +int lnode_init_root(lnode_root_t *root) +{ + if (root == NULL) { + return LNODE_RV_INPUT_ERR; + } + + INIT_LIST_HEAD(&(root->root)); + + return LNODE_RV_OK; +} + +void lnode_free_list(lnode_root_t *root) +{ + lnode_node_t *lnode, *lnode_next; + + if (root == NULL){ + return ; + } + + list_for_each_entry_safe(lnode, lnode_next, &(root->root), lst) { + if ( lnode->data ) { + kfree(lnode->data); + lnode->data = NULL; + lnode->key = 0; + } + list_del(&lnode->lst); + kfree(lnode); + lnode = NULL; + } + + return ; + +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c new file mode 100644 index 000000000000..efc322046c07 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c @@ -0,0 +1,170 @@ +#include +#include + +#include "./include/dfd_module.h" +#include "./include/dfd_cfg.h" +#include "./include/dfd_cfg_adapter.h" +#include "./include/dfd_cfg_info.h" +#include "../dev_sysfs/include/sysfs_common.h" + +#define FAN_SIZE (256) + +int g_dfd_fan_dbg_level = 0; +module_param(g_dfd_fan_dbg_level, int, S_IRUGO | S_IWUSR); + +int dfd_get_fan_roll_status(unsigned int fan_index, unsigned int motor_index) +{ + int key, ret; + int status; + + key = DFD_CFG_KEY(DFD_CFG_ITEM_FAN_ROLL_STATUS, fan_index, motor_index); + ret = dfd_info_get_int(key, &status, NULL); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "get fan roll status error, fan:%d,motor:%d\n", + fan_index, motor_index); + return ret; + } + + DFD_FAN_DEBUG(DBG_VERBOSE, "fan%u motor%u get fan roll status success, status:%d.\n", + fan_index, motor_index, status); + return status; +} + +int dfd_get_fan_present_status(unsigned int fan_index) +{ + int key, ret; + int status; + + key = DFD_CFG_KEY(DFD_CFG_ITEM_DEV_PRESENT_STATUS, WB_MAIN_DEV_FAN, fan_index); + ret = dfd_info_get_int(key, &status, NULL); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "fan%u get present status error, key:0x%x\n", fan_index, key); + return ret; + } + + DFD_FAN_DEBUG(DBG_VERBOSE, "fan%u get present status success, status:%d.\n", fan_index, status); + return status; +} + +ssize_t dfd_get_fan_speed(unsigned int fan_index, unsigned int motor_index,unsigned int *speed) +{ + int key, ret, speed_tmp; + + if (speed == NULL) { + DFD_FAN_DEBUG(DBG_ERROR, "param error. fan index:%d, motor index:%d.\n", + fan_index, motor_index); + return -DFD_RV_INVALID_VALUE; + } + + key = DFD_CFG_KEY(DFD_CFG_ITEM_FAN_SPEED, fan_index, motor_index); + ret = dfd_info_get_int(key, &speed_tmp, NULL); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "get fan speed error, key:0x%x,ret:%d\n",key, ret); + return ret; + } + + if (speed_tmp == 0 || speed_tmp == 0xffff) { + *speed = 0; + } else { + *speed = 15000000 / speed_tmp; + } + return DFD_RV_OK; +} + +int dfd_set_fan_speed_level(unsigned int fan_index, unsigned int motor_index, int level) +{ + int key, ret; + + if (level < 0 || level > 0xff) { + DFD_FAN_DEBUG(DBG_ERROR, "fan:%u, motor:%u, can not set fan speed level: %d.\n", + fan_index, motor_index, level); + return -DFD_RV_INVALID_VALUE; + } + + key = DFD_CFG_KEY(DFD_CFG_ITEM_FAN_RATIO, fan_index, motor_index); + ret = dfd_info_set_int(key, level); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "fan:%u, motor:%u, set fan level 0x%02x error, key:0x%x,ret:%d\n", + fan_index, motor_index, level, key, ret); + return ret; + } + + DFD_FAN_DEBUG(DBG_VERBOSE, "fan:%u, motor:%u, set fan speed level 0x%02x success.\n", + fan_index, motor_index, level); + return DFD_RV_OK; +} + +int dfd_set_fan_pwm(unsigned int fan_index, unsigned int motor_index, int pwm) +{ + int ret, data; + + if (pwm < 0 || pwm > 100) { + DFD_FAN_DEBUG(DBG_ERROR, "fan:%u, motor:%u, can't set pwm: %d.\n", + fan_index, motor_index, pwm); + return -DFD_RV_INVALID_VALUE; + } + + data = pwm * 255 / 100; + ret = dfd_set_fan_speed_level(fan_index, motor_index, data); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "fan:%u, motor:%u, set fan ratio:%d error, ret:%d\n", + fan_index, motor_index, data, ret); + return ret; + } + + DFD_FAN_DEBUG(DBG_VERBOSE, "fan:%u, motor:%u, set fan ratio %d success.\n", + fan_index, motor_index, data); + return DFD_RV_OK; +} + +int dfd_get_fan_speed_level(unsigned int fan_index, unsigned int motor_index, int *level) +{ + int key, ret, speed_level; + + if (level == NULL) { + DFD_FAN_DEBUG(DBG_ERROR, "param error. fan index:%d, motor index:%d.\n", + fan_index, motor_index); + return -DFD_RV_INVALID_VALUE; + } + + key = DFD_CFG_KEY(DFD_CFG_ITEM_FAN_RATIO, fan_index, motor_index); + ret = dfd_info_get_int(key, &speed_level, NULL); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "fan:%u, motor:%u, get fan speed level error, key:0x%x,ret:%d\n", + fan_index, motor_index, key, ret); + return ret; + } + + DFD_FAN_DEBUG(DBG_VERBOSE, "fan:%u, motor:%u, get fan speed level success, value:0x%02x.\n", + fan_index, motor_index, speed_level); + *level = speed_level; + return DFD_RV_OK; +} + +int dfd_get_fan_pwm(unsigned int fan_index, unsigned int motor_index, int *pwm) +{ + int ret, level; + + if (pwm == NULL) { + DFD_FAN_DEBUG(DBG_ERROR, "param error. fan index:%d, motor index:%d.\n", + fan_index, motor_index); + return -DFD_RV_INVALID_VALUE; + } + + ret = dfd_get_fan_speed_level(fan_index, motor_index, &level); + if (ret < 0) { + DFD_FAN_DEBUG(DBG_ERROR, "fan:%u, motor:%u, get fan pwm error, ret:%d\n", + fan_index, motor_index, ret); + return ret; + } + + if ((level * 100) % 255 > 0) { + *pwm = level * 100 / 255 + 1; + } else { + *pwm = level * 100 / 255; + } + + DFD_FAN_DEBUG(DBG_VERBOSE, "fan:%u, motor:%u, get fan pwm success, value:%d.\n", + fan_index, motor_index, *pwm); + return DFD_RV_OK; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_module.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_module.c new file mode 100644 index 000000000000..9e5b00b795de --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_module.c @@ -0,0 +1,95 @@ +#include + +#include "../dev_sysfs/include/sysfs_common.h" +#include "./include/dfd_module.h" +#include "./include/dfd_cfg.h" +#include "./include/dfd_fan_driver.h" +#include "./include/dfd_slot_driver.h" +#include "./include/dfd_sensors_driver.h" +#include "./include/dfd_psu_driver.h" +#include "./include/dfd_sff_driver.h" + +typedef enum dfd_dev_init_fail_s { + DFD_KO_INIT_CPLD_FAIL = 1, + DFD_KO_INIT_FPGA_FAIL = 2, + DFD_KO_INIT_IRQ_FAIL = 3, + DFD_KO_INIT_CFG_FAIL = 4, + DFD_KO_INIT_DATA_FAIL = 5, +} dfd_dev_init_fail_t; + +int g_dfd_dbg_level = 0; + +int dfd_get_dev_number(unsigned int main_dev_id, unsigned int minor_dev_id) +{ + int key,dev_num; + int *p_dev_num; + + key = DFD_CFG_KEY(DFD_CFG_ITEM_DEV_NUM, main_dev_id, minor_dev_id); + p_dev_num = dfd_ko_cfg_get_item(key); + if (p_dev_num == NULL) { + DBG_DEBUG(DBG_ERROR, "get device number failed, key:0x%x\n",key); + return -DFD_RV_DEV_NOTSUPPORT; + } + dev_num = *p_dev_num; + DBG_DEBUG(DBG_VERBOSE, "get device number ok, number:%d\n",dev_num); + return dev_num; +} + +static struct switch_drivers_t switch_drivers= { + .get_dev_number = dfd_get_dev_number, + /* fan */ + .get_fan_speed = dfd_get_fan_speed, + .get_fan_pwm = dfd_get_fan_pwm, + .set_fan_pwm = dfd_set_fan_pwm, + .get_fan_present_status = dfd_get_fan_present_status, + .get_fan_roll_status = dfd_get_fan_roll_status, + .get_fan_speed_level = dfd_get_fan_speed_level, + .set_fan_speed_level = dfd_set_fan_speed_level, + /* slot */ + .get_slot_present_status = dfd_get_slot_present_status, + /* sensors */ + .get_temp_info = dfd_get_temp_info, + .get_voltage_info = dfd_get_voltage_info, + /* psu */ + .get_psu_present_status = dfd_get_psu_present_status, + .get_psu_output_status = dfd_get_psu_output_status, + .get_psu_alert_status = dfd_get_psu_alert_status, + /* sff */ + .get_sff_cpld_info = dfd_get_sff_cpld_info, + .get_sff_dir_name = dfd_get_sff_dir_name, +}; + +struct switch_drivers_t * dfd_plat_driver_get(void) { + return &switch_drivers; +} + +static int32_t __init dfd_dev_init(void) +{ + int ret; + + DBG_DEBUG(DBG_VERBOSE, "Enter.\n"); + + ret = dfd_dev_cfg_init(); + if (ret != 0) { + DBG_DEBUG(DBG_ERROR, "dfd_dev_cfg_init failed ret %d.\n", ret); + ret = -DFD_KO_INIT_CFG_FAIL; + return ret; + } + + DBG_DEBUG(DBG_VERBOSE, "success.\n"); + return 0; +} + +static void __exit dfd_dev_exit(void) +{ + DBG_DEBUG(DBG_VERBOSE, "dfd_dev_exit.\n"); + dfd_dev_cfg_exit(); + return ; +} + +module_init(dfd_dev_init); +module_exit(dfd_dev_exit); +module_param(g_dfd_dbg_level, int, S_IRUGO | S_IWUSR); +EXPORT_SYMBOL(dfd_plat_driver_get); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_psu_driver.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_psu_driver.c new file mode 100644 index 000000000000..55e2e4339ae7 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_psu_driver.c @@ -0,0 +1,70 @@ +#include +#include + +#include "./include/dfd_module.h" +#include "./include/dfd_cfg.h" +#include "./include/dfd_cfg_adapter.h" +#include "./include/dfd_cfg_info.h" +#include "../dev_sysfs/include/sysfs_common.h" + +#define PSU_SIZE (256) + +typedef enum dfd_psu_status_e { + DFD_PSU_PRESENT_STATUS = 0, + DFD_PSU_OUTPUT_STATUS = 1, + DFD_PSU_ALERT_STATUS = 2, +} dfd_psu_status_t; + +int g_dfd_psu_dbg_level = 0; +module_param(g_dfd_psu_dbg_level, int, S_IRUGO | S_IWUSR); + +int dfd_get_psu_present_status(unsigned int psu_index) +{ + int ret, present_key, present_status; + + present_key = DFD_CFG_KEY(DFD_CFG_ITEM_PSU_STATUS, psu_index, DFD_PSU_PRESENT_STATUS); + ret = dfd_info_get_int(present_key, &present_status, NULL); + if (ret < 0) { + DFD_PSU_DEBUG(DBG_ERROR, "dfd_get_psu_present_status error. psu_index:%d, ret:%d\n", + psu_index, ret); + return ret; + } + + DFD_PSU_DEBUG(DBG_VERBOSE, "dfd_get_psu_present_status success. psu_index:%d, status:%d\n", + psu_index, present_status); + return present_status; +} + +int dfd_get_psu_output_status(unsigned int psu_index) +{ + int ret, output_key, output_status; + + output_key = DFD_CFG_KEY(DFD_CFG_ITEM_PSU_STATUS, psu_index, DFD_PSU_OUTPUT_STATUS); + ret = dfd_info_get_int(output_key, &output_status, NULL); + if (ret < 0) { + DFD_PSU_DEBUG(DBG_ERROR, "dfd_get_psu_output_status error. psu_index:%d, ret:%d\n", + psu_index, ret); + return ret; + } + + DFD_PSU_DEBUG(DBG_VERBOSE, "dfd_get_psu_output_status success. psu_index:%d, status:%d\n", + psu_index, output_status); + return output_status; +} + +int dfd_get_psu_alert_status(unsigned int psu_index) +{ + int ret, alert_key, alert_status; + + alert_key = DFD_CFG_KEY(DFD_CFG_ITEM_PSU_STATUS, psu_index, DFD_PSU_ALERT_STATUS); + ret = dfd_info_get_int(alert_key, &alert_status, NULL); + if (ret < 0) { + DFD_PSU_DEBUG(DBG_ERROR, "dfd_get_psu_alert_status error. psu_index:%d, ret:%d\n", + psu_index, ret); + return ret; + } + + DFD_PSU_DEBUG(DBG_VERBOSE, "dfd_get_psu_alert_status success. psu_index:%d, status:%d\n", + psu_index, alert_status); + return alert_status; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sensors_driver.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sensors_driver.c new file mode 100644 index 000000000000..bfca20290efb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sensors_driver.c @@ -0,0 +1,149 @@ +#include +#include + +#include "./include/dfd_module.h" +#include "./include/dfd_cfg.h" +#include "./include/dfd_cfg_adapter.h" +#include "./include/dfd_cfg_info.h" +#include "./include/dfd_cfg_file.h" +#include "../dev_sysfs/include/sysfs_common.h" + +#define DFD_GET_TEMP_SENSOR_KEY1(dev_index, temp_index) \ + (((dev_index & 0xff) << 8) | (temp_index & 0xff)) +#define DFD_GET_TEMP_SENSOR_KEY2(main_dev_id, temp_type) \ + (((main_dev_id & 0x0f) << 4) | (temp_type & 0x0f)) +#define DFD_FORMAT_STR_MAX_LEN (32) + +int g_dfd_sensor_dbg_level = 0; +module_param(g_dfd_sensor_dbg_level, int, S_IRUGO | S_IWUSR); + +static int dfd_deal_hwmon_buf(uint8_t *buf, int buf_len, uint8_t *buf_new, int *buf_len_new, info_ctrl_t *info_ctrl) +{ + int i, tmp_len; + int exp, decimal, divisor; + int org_value, tmp_value; + int div_result, div_mod; + char fmt_str[DFD_FORMAT_STR_MAX_LEN]; + + exp = info_ctrl->int_cons; + decimal = info_ctrl->bit_offset; + + if (exp <= 0) { + DBG_DEBUG(DBG_VERBOSE, "exponent %d, don't need transform. buf_len:%d, buf_len_new:%d\n", + exp, buf_len, *buf_len_new); + snprintf(buf_new, *buf_len_new, "%s", buf); + *buf_len_new = strlen(buf_new); + return DFD_RV_OK; + } + divisor = 1; + for (i = 0; i < exp; i++) { + divisor *= 10; + } + org_value = simple_strtol(buf, NULL, 10); + if (org_value < 0) { + tmp_value = 0 - org_value; + } else { + tmp_value = org_value; + } + div_result = tmp_value / divisor; + div_mod = tmp_value % divisor; + DBG_DEBUG(DBG_VERBOSE, "exp:%d, decimal:%d, original value:%d, divisor:%d, result :%d, mod:%d\n", + exp, decimal, org_value, divisor, div_result, div_mod); + + mem_clear(fmt_str, sizeof(fmt_str)); + if (org_value < 0) { + snprintf(fmt_str, sizeof(fmt_str), "-%%d.%%0%dd\n",exp); + } else { + snprintf(fmt_str, sizeof(fmt_str), "%%d.%%0%dd\n",exp); + } + DBG_DEBUG(DBG_VERBOSE, "format string:%s",fmt_str); + snprintf(buf_new, *buf_len_new, fmt_str, div_result, div_mod); + *buf_len_new = strlen(buf_new); + tmp_len = *buf_len_new; + + if ( decimal > 0) { + for(i = 0; i < *buf_len_new; i++) { + if (buf_new[i] == '.') { + if( i + decimal + 2 <= *buf_len_new ) { + buf_new[i + decimal + 1 ] = '\n'; + buf_new[i + decimal + 2 ] = '\0'; + *buf_len_new = strlen(buf_new); + DBG_DEBUG(DBG_VERBOSE, "deal decimal[%d] ok, str len:%d, value:%s\n", + decimal, *buf_len_new, buf_new); + } + break; + } + } + if (tmp_len == *buf_len_new) { + DBG_DEBUG(DBG_WARN, "deal decimal[%d] failed, use original value:%s\n", decimal, buf_new); + } + } + return DFD_RV_OK; +} + +static int dfd_get_sensor_info(uint8_t main_dev_id, uint8_t dev_index, uint8_t sensor_type, + uint8_t sensor_index, uint8_t sensor_attr, char *buf) +{ + uint32_t key; + uint16_t key_index1; + uint8_t key_index2; + int rv; + info_hwmon_buf_f pfunc; + + key_index1 = DFD_GET_TEMP_SENSOR_KEY1(dev_index, sensor_index); + key_index2 = DFD_GET_TEMP_SENSOR_KEY2(main_dev_id, sensor_attr); + if (sensor_type == WB_MINOR_DEV_TEMP ) { + key = DFD_CFG_KEY(DFD_CFG_ITEM_HWMON_TEMP, key_index1, key_index2); + } else if (sensor_type == WB_MINOR_DEV_IN) { + key = DFD_CFG_KEY(DFD_CFG_ITEM_HWMON_IN, key_index1, key_index2); + } else { + DFD_SENSOR_DEBUG(DBG_ERROR, "unknow sensor type:%d.\n",sensor_type); + return -DFD_RV_INVALID_VALUE; + } + + DFD_SENSOR_DEBUG(DBG_VERBOSE, "get sensor info.main_dev_id:%d, dev_index:0x%x, sensor_index:0x%x, sensor_attr:0x%x, key:0x%x,\n", + main_dev_id, dev_index, sensor_index, sensor_attr, key); + + pfunc = dfd_deal_hwmon_buf; + mem_clear(buf, PAGE_SIZE); + rv = dfd_info_get_sensor(key, buf, PAGE_SIZE, pfunc); + return rv; +} + +ssize_t dfd_get_temp_info(uint8_t main_dev_id, uint8_t dev_index, + uint8_t temp_index, uint8_t temp_attr, char *buf) +{ + int rv; + + if (buf == NULL) { + DFD_SENSOR_DEBUG(DBG_ERROR, "param error. buf is NULL.\n"); + return -DFD_RV_INVALID_VALUE; + } + + rv = dfd_get_sensor_info(main_dev_id, dev_index, WB_MINOR_DEV_TEMP, temp_index, temp_attr, buf); + if (rv < 0) { + DFD_SENSOR_DEBUG(DBG_ERROR, "get temp info error. rv:%d\n", rv); + } else { + DFD_SENSOR_DEBUG(DBG_VERBOSE, "get temp info ok.value:%s\n", buf); + } + return rv; +} + +ssize_t dfd_get_voltage_info(uint8_t main_dev_id, uint8_t dev_index, + uint8_t in_index, uint8_t in_attr, char *buf) +{ + int rv; + + if (buf == NULL) { + DFD_SENSOR_DEBUG(DBG_ERROR, "param error. buf is NULL.\n"); + return -DFD_RV_INVALID_VALUE; + } + + rv = dfd_get_sensor_info(main_dev_id, dev_index, WB_MINOR_DEV_IN, in_index, in_attr, buf); + if (rv < 0) { + DFD_SENSOR_DEBUG(DBG_ERROR, "get voltage info error. rv:%d\n", rv); + } else { + DFD_SENSOR_DEBUG(DBG_VERBOSE, "get voltage info ok.value:%s\n", buf); + } + return rv; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sff_driver.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sff_driver.c new file mode 100644 index 000000000000..5c1faff975b1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_sff_driver.c @@ -0,0 +1,56 @@ +#include + +#include "./include/dfd_module.h" +#include "./include/dfd_cfg.h" +#include "./include/dfd_cfg_info.h" +#include "./include/dfd_cfg_adapter.h" +#include "../dev_sysfs/include/sysfs_common.h" + +int g_dfd_sff_dbg_level = 0; +module_param(g_dfd_sff_dbg_level, int, S_IRUGO | S_IWUSR); + +ssize_t dfd_get_sff_cpld_info(unsigned int sff_index, int cpld_reg_type, char *buf, int len) +{ + int key, ret, value; + + if(buf == NULL) { + DFD_SFF_DEBUG(DBG_ERROR, "param error, buf is NULL. sff_index:%d, cpld_reg_type:%d.\n", + sff_index, cpld_reg_type); + return -DFD_RV_INVALID_VALUE; + } + + key = DFD_CFG_KEY(DFD_CFG_ITEM_SFF_CPLD_REG, sff_index, cpld_reg_type); + ret = dfd_info_get_int(key, &value, NULL); + if (ret < 0) { + DFD_SFF_DEBUG(DBG_ERROR, "get sff cpld reg error, key:0x%x,ret:%d.\n", key, ret); + return ret; + } + + mem_clear(buf, len); + return (ssize_t)snprintf(buf, len, "%d\n", value); +} + +ssize_t dfd_get_sff_dir_name(unsigned int sff_index, char *buf, int buf_len) +{ + int key; + char *sff_dir_name; + + if (buf == NULL) { + DFD_SFF_DEBUG(DBG_ERROR, "param error. buf is NULL.sff index:%d", sff_index); + return -DFD_RV_INVALID_VALUE; + } + + mem_clear(buf, buf_len); + + key = DFD_CFG_KEY(DFD_CFG_ITEM_SFF_DIR_NAME, sff_index, 0); + sff_dir_name = dfd_ko_cfg_get_item(key); + if (sff_dir_name == NULL) { + DFD_SFF_DEBUG(DBG_ERROR, "sff dir name config error, key=0x%08x\n", key); + return -DFD_RV_NODE_FAIL; + } + + DFD_SFF_DEBUG(DBG_VERBOSE, "%s\n", sff_dir_name); + snprintf(buf, buf_len, "%s", sff_dir_name); + return strlen(buf); + +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_slot_driver.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_slot_driver.c new file mode 100644 index 000000000000..69c82adabef0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_slot_driver.c @@ -0,0 +1,27 @@ +#include +#include + +#include "./include/dfd_module.h" +#include "./include/dfd_cfg.h" +#include "./include/dfd_cfg_adapter.h" +#include "./include/dfd_cfg_info.h" +#include "../dev_sysfs/include/sysfs_common.h" + +#define SLOT_SIZE (256) + +int g_dfd_slot_dbg_level = 0; +module_param(g_dfd_slot_dbg_level, int, S_IRUGO | S_IWUSR); + +int dfd_get_slot_present_status(unsigned int slot_index) +{ + int key, ret; + int status; + + key = DFD_CFG_KEY(DFD_CFG_ITEM_DEV_PRESENT_STATUS, WB_MAIN_DEV_SLOT, slot_index); + ret = dfd_info_get_int(key, &status, NULL); + if (ret < 0) { + DFD_SLOT_DEBUG(DBG_ERROR, "get slot status error, key:0x%x\n",key); + return ret; + } + return status; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg.h new file mode 100644 index 000000000000..af3de1ca9938 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg.h @@ -0,0 +1,99 @@ +#ifndef __DFD_CFG_H__ +#define __DFD_CFG_H__ + +#include + +#define DFD_KO_CFG_FILE_NAME "/etc/plat_sysfs_cfg/cfg_file_name" +#define DFD_KO_CFG_FILE_DIR "/etc/plat_sysfs_cfg/" +#define DFD_PUB_CARDTYPE_FILE "/sys/module/platform_common/parameters/dfd_my_type" + +#define DFD_CFG_CMDLINE_MAX_LEN (256) +#define DFD_CFG_NAME_MAX_LEN (256) +#define DFD_CFG_VALUE_MAX_LEN (256) +#define DFD_CFG_STR_MAX_LEN (64) +#define DFD_CFG_CPLD_NUM_MAX (16) +#define DFD_PRODUCT_ID_LENGTH (8) +#define DFD_PID_BUF_LEN (32) +#define DFD_TEMP_NAME_BUF_LEN (32) + +#define DFD_CFG_EMPTY_VALUE (-1) +#define DFD_CFG_INVALID_VALUE (0) + +#define DFD_CFG_KEY(item, index1, index2) \ + ((((item) & 0xff) << 24) | (((index1) & 0xffff) << 8) | ((index2) & 0xff)) +#define DFD_CFG_ITEM_ID(key) (((key) >> 24) & 0xff) +#define DFD_CFG_INDEX1(key) (((key) >> 8) & 0xffff) +#define DFD_CFG_INDEX2(key) ((key)& 0xff) + +#define INDEX_NOT_EXIST (-1) +#define INDEX1_MAX (0xffff) +#define INDEX2_MAX (0xff) +#define READ_TEMP_FAIL 1000000 + +#define DFD_CFG_ITEM_ALL \ + DFD_CFG_ITEM(DFD_CFG_ITEM_NONE, "none", INDEX_NOT_EXIST, INDEX_NOT_EXIST) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_DEV_NUM, "dev_num", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_CPLD_LPC_DEV, "cpld_lpc_dev", INDEX1_MAX, DFD_CFG_CPLD_NUM_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_INT_END, "end_int", INDEX_NOT_EXIST, INDEX_NOT_EXIST) \ + \ + DFD_CFG_ITEM(DFD_CFG_ITEM_CPLD_MODE, "mode_cpld", INDEX1_MAX, DFD_CFG_CPLD_NUM_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_SFF_DIR_NAME, "sff_dir_name", INDEX1_MAX, INDEX_NOT_EXIST) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_STRING_END, "end_string", INDEX_NOT_EXIST, INDEX_NOT_EXIST) \ + \ + DFD_CFG_ITEM(DFD_CFG_ITEM_CPLD_I2C_DEV, "cpld_i2c_dev", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_OTHER_I2C_DEV, "other_i2c_dev", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_I2C_DEV_END, "end_i2c_dev", INDEX_NOT_EXIST, INDEX_NOT_EXIST) \ + \ + DFD_CFG_ITEM(DFD_CFG_ITEM_FAN_ROLL_STATUS, "fan_roll_status", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_FAN_SPEED, "fan_speed", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_FAN_RATIO, "fan_ratio", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_DEV_PRESENT_STATUS, "dev_present_status", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_PSU_STATUS, "psu_status", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_HWMON_TEMP, "hwmon_temp", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_HWMON_IN, "hwmon_in", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_SFF_CPLD_REG, "sff_cpld_reg", INDEX1_MAX, INDEX2_MAX) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_INFO_CTRL_END, "end_info_ctrl", INDEX_NOT_EXIST, INDEX_NOT_EXIST) \ + DFD_CFG_ITEM(DFD_CFG_ITEM_HWMON_POWER, "hwmon_power", INDEX1_MAX, INDEX2_MAX) \ + +#ifdef DFD_CFG_ITEM +#undef DFD_CFG_ITEM +#endif +#define DFD_CFG_ITEM(_id, _name, _index_min, _index_max) _id, +typedef enum dfd_cfg_item_id_s { + DFD_CFG_ITEM_ALL +} dfd_cfg_item_id_t; + +#define DFD_CFG_ITEM_IS_INT(item_id) \ + (((item_id) > DFD_CFG_ITEM_NONE) && ((item_id) < DFD_CFG_ITEM_INT_END)) + +#define DFD_CFG_ITEM_IS_STRING(item_id) \ + (((item_id) > DFD_CFG_ITEM_INT_END) && ((item_id) < DFD_CFG_ITEM_STRING_END)) + +#define DFD_CFG_ITEM_IS_I2C_DEV(item_id) \ + (((item_id) > DFD_CFG_ITEM_STRING_END) && ((item_id) < DFD_CFG_ITEM_I2C_DEV_END)) + +#define DFD_CFG_ITEM_IS_INFO_CTRL(item_id) \ + (((item_id) > DFD_CFG_ITEM_I2C_DEV_END) && ((item_id) < DFD_CFG_ITEM_INFO_CTRL_END)) + +typedef struct index_range_s { + int index1_max; + int index2_max; +} index_range_t; + +typedef struct val_convert_node_s { + struct list_head lst; + int int_val; + char str_val[DFD_CFG_STR_MAX_LEN]; + int index1; + int index2; +} val_convert_node_t; + +void *dfd_ko_cfg_get_item(int key); + +void dfd_ko_cfg_show_item(int key); + +int32_t dfd_dev_cfg_init(void); + +void dfd_dev_cfg_exit(void); + +#endif /* __DFD_CFG_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_adapter.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_adapter.h new file mode 100644 index 000000000000..70d8b536c437 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_adapter.h @@ -0,0 +1,46 @@ +#ifndef __DFD_CFG_ADAPTER_H__ +#define __DFD_CFG_ADAPTER_H__ + +#define DFD_KO_CPLD_I2C_RETRY_SLEEP (10) /* ms */ +#define DFD_KO_CPLD_I2C_RETRY_TIMES (50 / DFD_KO_CPLD_I2C_RETRY_SLEEP) + +#define DFD_KO_CPLD_GET_SLOT(addr) ((addr >> 24) & 0xff) +#define DFD_KO_CPLD_GET_ID(addr) ((addr >> 16) & 0xff) +#define DFD_KO_CPLD_GET_INDEX(addr) (addr & 0xffff) +#define DFD_KO_CPLD_MODE_I2C_STRING "i2c" +#define DFD_KO_CPLD_MODE_LPC_STRING "lpc" + +typedef struct dfd_i2c_dev_s { + int bus; + int addr; +} dfd_i2c_dev_t; + +typedef enum dfd_i2c_dev_mem_s { + DFD_I2C_DEV_MEM_BUS, + DFD_I2C_DEV_MEM_ADDR, + DFD_I2C_DEV_MEM_END +} dfd_i2c_dev_mem_t; + +typedef enum cpld_mode_e { + DFD_CPLD_MODE_I2C, + DFD_CPLD_MODE_LPC, +} cpld_mode_t; + +typedef enum i2c_mode_e { + DFD_I2C_MODE_NORMAL_I2C, + DFD_I2C_MODE_SMBUS, +} i2c_mode_t; + +extern char *g_dfd_i2c_dev_mem_str[DFD_I2C_DEV_MEM_END]; + +int32_t dfd_ko_cpld_read(int32_t addr, uint8_t *buf); + +int32_t dfd_ko_cpld_write(int32_t addr, uint8_t val); + +int32_t dfd_ko_i2c_read(int bus, int addr, int offset, uint8_t *buf, uint32_t size); + +int32_t dfd_ko_i2c_write(int bus, int addr, int offset, uint8_t *buf, uint32_t size); + +int32_t dfd_ko_read_file(char *fpath, int32_t addr, uint8_t *val, int32_t read_bytes); + +#endif /* __DFD_CFG_ADAPTER_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_file.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_file.h new file mode 100644 index 000000000000..50d7a42d5564 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_file.h @@ -0,0 +1,37 @@ +#ifndef __DFD_CFG_FILE_H__ +#define __DFD_CFG_FILE_H__ + +#include + +#define KFILE_RV_OK (0) +#define KFILE_RV_INPUT_ERR (-1) +#define KFILE_RV_STAT_FAIL (-2) +#define KFILE_RV_OPEN_FAIL (-3) +#define KFILE_RV_MALLOC_FAIL (-4) +#define KFILE_RV_RD_FAIL (-5) +#define KFILE_RV_ADDR_ERR (-6) +#define KFILE_RV_WR_FAIL (-7) + +#define IS_CR(c) ((c) == '\n') + +typedef struct kfile_ctrl_s { + int32_t size; + int32_t pos; + char *buf; +} kfile_ctrl_t; + +int kfile_open(char *fname, kfile_ctrl_t *kfile_ctrl); + +void kfile_close(kfile_ctrl_t *kfile_ctrl); + +int kfile_gets(char *buf, int buf_size, kfile_ctrl_t *kfile_ctrl); + +int kfile_read(int32_t addr, char *buf, int buf_size, kfile_ctrl_t *kfile_ctrl); + +int kfile_iterate_dir(const char *dir_path, const char *obj_name, char *match_name, int len); + +#if 0 + +int kfile_write(char *fpath, int32_t addr, char *buf, int buf_size); +#endif +#endif /* __DFD_CFG_FILE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h new file mode 100644 index 000000000000..2c304e99ca3a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h @@ -0,0 +1,117 @@ +#ifndef __DFD_CFG_INFO_H__ +#define __DFD_CFG_INFO_H__ + +#include + +typedef int (*info_num_buf_to_value_f)(uint8_t *num_buf, int buf_len, int *num_val); + +typedef int (*info_buf_to_buf_f)(uint8_t *buf, int buf_len, uint8_t *buf_new, int *buf_len_new); + +#define IS_INFO_FRMT_BIT(frmt) ((frmt) == INFO_FRMT_BIT) +#define IS_INFO_FRMT_BYTE(frmt) (((frmt) == INFO_FRMT_BYTE) || ((frmt) == INFO_FRMT_NUM_BYTES)) +#define IS_INFO_FRMT_NUM_STR(frmt) ((frmt) == INFO_FRMT_NUM_STR) +#define IS_INFO_FRMT_NUM_BUF(frmt) ((frmt) == INFO_FRMT_NUM_BUF) +#define IS_INFO_FRMT_BUF(frmt) ((frmt) == INFO_FRMT_BUF) + +#define INFO_INT_MAX_LEN (32) +#define INFO_INT_LEN_VALAID(len) (((len) > 0) && ((len) < INFO_INT_MAX_LEN)) + +#define INFO_BUF_MAX_LEN (128) +#define INFO_BUF_LEN_VALAID(len) (((len) > 0) && ((len) < INFO_BUF_MAX_LEN)) + +#define INFO_BIT_OFFSET_VALID(bit_offset) (((bit_offset) >= 0) && ((bit_offset) < 8)) + +typedef enum info_ctrl_mode_e { + INFO_CTRL_MODE_NONE, + INFO_CTRL_MODE_CFG, + INFO_CTRL_MODE_CONS, + INFO_CTRL_MODE_TLV, + INFO_CTRL_MODE_SRT_CONS, + INFO_CTRL_MODE_END +} info_ctrl_mode_t; + +typedef enum info_frmt_e { + INFO_FRMT_NONE, + INFO_FRMT_BIT, + INFO_FRMT_BYTE, + INFO_FRMT_NUM_BYTES, + INFO_FRMT_NUM_STR, + INFO_FRMT_NUM_BUF, + INFO_FRMT_BUF, + INFO_FRMT_END +} info_frmt_t; + +typedef enum info_src_e { + INFO_SRC_NONE, + INFO_SRC_CPLD, + INFO_SRC_FPGA, + INFO_SRC_OTHER_I2C, + INFO_SRC_FILE, + INFO_SRC_END +} info_src_t; + +typedef enum info_pola_e { + INFO_POLA_NONE, + INFO_POLA_POSI, + INFO_POLA_NEGA, + INFO_POLA_END +} info_pola_t; + +#define INFO_FPATH_MAX_LEN (128) +#define INFO_STR_CONS_MAX_LEN (64) +typedef struct info_ctrl_s { + info_ctrl_mode_t mode; + int32_t int_cons; + info_src_t src; + info_frmt_t frmt; + info_pola_t pola; + char fpath[INFO_FPATH_MAX_LEN]; + int32_t addr; + int32_t len; + int32_t bit_offset; + char str_cons[INFO_STR_CONS_MAX_LEN]; + int32_t int_extra1; + int32_t int_extra2; +} info_ctrl_t; + +typedef enum info_ctrl_mem_s { + INFO_CTRL_MEM_MODE, + INFO_CTRL_MEM_INT_CONS, + INFO_CTRL_MEM_SRC, + INFO_CTRL_MEM_FRMT, + INFO_CTRL_MEM_POLA, + INFO_CTRL_MEM_FPATH, + INFO_CTRL_MEM_ADDR, + INFO_CTRL_MEM_LEN, + INFO_CTRL_MEM_BIT_OFFSET, + INFO_CTRL_MEM_STR_CONS, + INFO_CTRL_MEM_INT_EXTRA1, + INFO_CTRL_MEM_INT_EXTRA2, + INFO_CTRL_MEM_END +} info_ctrl_mem_t; + +typedef enum sensor_format_mem_s { + LINEAR11 = 1, + LINEAR16, + TMP464, + MAC_TH5, + MAC_TD3 +} sensor_format_mem_t; + +typedef int (*info_hwmon_buf_f)(uint8_t *buf, int buf_len, uint8_t *buf_new, int *buf_len_new, info_ctrl_t *info_ctrl); + +extern char *g_info_ctrl_mem_str[INFO_CTRL_MEM_END]; +extern char *g_info_src_str[INFO_SRC_END]; +extern char *g_info_frmt_str[INFO_FRMT_END]; +extern char *g_info_pola_str[INFO_POLA_END]; +extern char *g_info_ctrl_mode_str[INFO_CTRL_MODE_END]; + +int dfd_info_get_int(int key, int *ret, info_num_buf_to_value_f pfun); + +int dfd_info_get_buf(int key, uint8_t *buf, int buf_len, info_buf_to_buf_f pfun); + +int dfd_info_set_int(int key, int val); + +int dfd_info_get_sensor(uint32_t key, char *buf, int buf_len, info_hwmon_buf_f pfun); + +#endif /* __DFD_CFG_INFO_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_listnode.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_listnode.h new file mode 100644 index 000000000000..955dfa96e42e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_listnode.h @@ -0,0 +1,30 @@ +#ifndef __DFD_CFG_LISTNODE_H__ +#define __DFD_CFG_LISTNODE_H__ + +#include + +#define LNODE_RV_OK (0) +#define LNODE_RV_INPUT_ERR (-1) +#define LNODE_RV_NODE_EXIST (-2) +#define LNODE_RV_NOMEM (-3) + +typedef struct lnode_root_s { + struct list_head root; +} lnode_root_t; + +typedef struct lnode_node_s { + struct list_head lst; + + int key; + void *data; +} lnode_node_t; + +void *lnode_find_node(lnode_root_t *root, int key); + +int lnode_insert_node(lnode_root_t *root, int key, void *data); + +int lnode_init_root(lnode_root_t *root); + +void lnode_free_list(lnode_root_t *root); + +#endif /* __DFD_CFG_LISTNODE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_fan_driver.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_fan_driver.h new file mode 100644 index 000000000000..1065fd9eed3f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_fan_driver.h @@ -0,0 +1,18 @@ +#ifndef _DFD_FAN_DRIVER_H_ +#define _DFD_FAN_DRIVER_H_ + +ssize_t dfd_get_fan_speed(unsigned int fan_index, unsigned int motor_index,unsigned int *speed); + +int dfd_set_fan_pwm(unsigned int fan_index, unsigned int motor_index, int pwm); + +int dfd_get_fan_pwm(unsigned int fan_index, unsigned int motor_index, int *pwm); + +int dfd_get_fan_present_status(unsigned int fan_index); + +int dfd_get_fan_roll_status(unsigned int fan_index, unsigned int motor_index); + +int dfd_get_fan_speed_level(unsigned int fan_index, unsigned int motor_index, int *level); + +int dfd_set_fan_speed_level(unsigned int fan_index, unsigned int motor_index, int level); + +#endif /* _DFD_FAN_DRIVER_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_module.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_module.h new file mode 100644 index 000000000000..a547255cf3ab --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_module.h @@ -0,0 +1,96 @@ +#ifndef __DFD_MODULE_H__ +#define __DFD_MODULE_H__ + +typedef enum dfd_rv_s { + DFD_RV_OK = 0, + DFD_RV_INIT_ERR = 1, + DFD_RV_SLOT_INVALID = 2, + DFD_RV_MODE_INVALID = 3, + DFD_RV_MODE_NOTSUPPORT = 4, + DFD_RV_TYPE_ERR = 5, + DFD_RV_DEV_NOTSUPPORT = 6, + DFD_RV_DEV_FAIL = 7, + DFD_RV_INDEX_INVALID = 8, + DFD_RV_NO_INTF = 9, + DFD_RV_NO_NODE = 10, + DFD_RV_NODE_FAIL = 11, + DFD_RV_INVALID_VALUE = 12, + DFD_RV_NO_MEMORY = 13, +} dfd_rv_t; + +typedef enum { + DBG_VERBOSE = 0x01, + DBG_WARN = 0x02, + DBG_ERROR = 0x04, +} dbg_level_t; + +extern int g_dfd_dbg_level; +extern int g_dfd_fan_dbg_level; +extern int g_dfd_slot_dbg_level; +extern int g_dfd_sensor_dbg_level; +extern int g_dfd_psu_dbg_level; +extern int g_dfd_sff_dbg_level; + +#define DBG_DEBUG(level, fmt, arg...) do { \ + if (g_dfd_dbg_level & level) { \ + if(level >= DBG_ERROR) { \ + printk(KERN_ERR "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } else { \ + printk(KERN_INFO "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } \ + } \ +} while (0) + +#define DFD_FAN_DEBUG(level, fmt, arg...) do { \ + if (g_dfd_fan_dbg_level & level) { \ + if(level >= DBG_ERROR) { \ + printk(KERN_ERR "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } else { \ + printk(KERN_INFO "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } \ + } \ +} while (0) + +#define DFD_SLOT_DEBUG(level, fmt, arg...) do { \ + if (g_dfd_slot_dbg_level & level) { \ + if(level >= DBG_ERROR) { \ + printk(KERN_ERR "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } else { \ + printk(KERN_INFO "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } \ + } \ +} while (0) + +#define DFD_SENSOR_DEBUG(level, fmt, arg...) do { \ + if (g_dfd_sensor_dbg_level & level) { \ + if(level >= DBG_ERROR) { \ + printk(KERN_ERR "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } else { \ + printk(KERN_INFO "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } \ + } \ +} while (0) + +#define DFD_PSU_DEBUG(level, fmt, arg...) do { \ + if (g_dfd_psu_dbg_level & level) { \ + if(level >= DBG_ERROR) { \ + printk(KERN_ERR "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } else { \ + printk(KERN_INFO "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } \ + } \ +} while (0) + +#define DFD_SFF_DEBUG(level, fmt, arg...) do { \ + if (g_dfd_sff_dbg_level & level) { \ + if(level >= DBG_ERROR) { \ + printk(KERN_ERR "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } else { \ + printk(KERN_INFO "[DBG-%d]:<%s, %d>:"fmt, level, __FUNCTION__, __LINE__, ##arg); \ + } \ + } \ +} while (0) + +int dfd_get_dev_number(unsigned int main_dev_id, unsigned int minor_dev_id); + +#endif /* __DFD_MODULE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_psu_driver.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_psu_driver.h new file mode 100644 index 000000000000..ce7199660557 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_psu_driver.h @@ -0,0 +1,10 @@ +#ifndef _DFD_PSU_DRIVER_H_ +#define _DFD_PSU_DRIVER_H_ + +int dfd_get_psu_present_status(unsigned int psu_index); + +int dfd_get_psu_output_status(unsigned int psu_index); + +int dfd_get_psu_alert_status(unsigned int psu_index); + +#endif /* _DFD_PSU_DRIVER_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sensors_driver.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sensors_driver.h new file mode 100644 index 000000000000..16733b26029f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sensors_driver.h @@ -0,0 +1,10 @@ +#ifndef _DFD_SENSORS_DRIVER_H_ +#define _DFD_SENSORS_DRIVER_H_ + +ssize_t dfd_get_temp_info(uint8_t main_dev_id, uint8_t dev_index, + uint8_t temp_index, uint8_t temp_attr, char *buf); + +ssize_t dfd_get_voltage_info(uint8_t main_dev_id, uint8_t dev_index, + uint8_t in_index, uint8_t in_attr, char *buf); + +#endif /* _DFD_SENSORS_DRIVER_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sff_driver.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sff_driver.h new file mode 100644 index 000000000000..7107b72ee4b2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_sff_driver.h @@ -0,0 +1,8 @@ +#ifndef _DFD_SFF_DRIVER_H_ +#define _DFD_SFF_DRIVER_H_ + +ssize_t dfd_get_sff_cpld_info(unsigned int sff_index, int cpld_reg_type, char *buf, int len); + +ssize_t dfd_get_sff_dir_name(unsigned int sff_index, char *buf, int buf_len); + +#endif /* _DFD_SFF_DRIVER_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_slot_driver.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_slot_driver.h new file mode 100644 index 000000000000..c68caecd2e66 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_slot_driver.h @@ -0,0 +1,6 @@ +#ifndef _DFD_SLOT_DRIVER_H_ +#define _DFD_SLOT_DRIVER_H_ + +int dfd_get_slot_present_status(unsigned int slot_index); + +#endif /* _DFD_SLOT_DRIVER_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/Makefile new file mode 100644 index 000000000000..1a1044bb1fe8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/Makefile @@ -0,0 +1,21 @@ +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +KBUILD_EXTRA_SYMBOLS += $(PLAT_SYSFS_DIR)/dev_cfg/Module.symvers + +obj-m := plat_switch.o +obj-m += plat_fan.o +obj-m += plat_psu.o +obj-m += plat_sff.o +obj-m += plat_sensor.o +obj-m += plat_slot.o + +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + cp -p $(PWD)/*.ko $(module_out_put_dir) +clean: + rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd $(PWD)/*.mod + rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order + rm -rf $(PWD)/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/plat_switch.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/plat_switch.h new file mode 100644 index 000000000000..bbd813e87114 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/plat_switch.h @@ -0,0 +1,86 @@ +#ifndef _PLAT_SWITCH_H_ +#define _PLAT_SWITCH_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +enum LOG_LEVEL{ + INFO = 0x1, + ERR = 0x2, + DBG = 0x4, + ALL = 0xf +}; + +#define LOG_INFO(_prefix, fmt, args...) \ + do { \ + if (g_loglevel & INFO) \ + { \ + printk( KERN_INFO _prefix "%s "fmt, __FUNCTION__, ##args); \ + } \ + } while (0) + +#define LOG_ERR(_prefix, fmt, args...) \ + do { \ + if (g_loglevel & ERR) \ + { \ + printk( KERN_ERR _prefix "%s "fmt, __FUNCTION__, ##args); \ + } \ + } while (0) + +#define LOG_DBG(_prefix, fmt, args...) \ + do { \ + if (g_loglevel & DBG) \ + { \ + printk( KERN_DEBUG _prefix "%s "fmt, __FUNCTION__, ##args); \ + } \ + } while (0) + +#define check_pfun(p) \ + do { \ + if (p == NULL) { \ + printk( KERN_ERR "%s, %s = NULL.\n", __FUNCTION__, #p); \ + return -ENOSYS; \ + } \ + }while(0) + +#define check_p(p) check_pfun(p) + +#define to_switch_obj(x) container_of(x, struct switch_obj, kobj) +#define to_switch_attr(x) container_of(x, struct switch_attribute, attr) +#define to_switch_device_attr(x) container_of(x, struct switch_device_attribute, switch_attr) + +#define SWITCH_ATTR(_name, _mode, _show, _store, _type) \ + { .switch_attr = __ATTR(_name, _mode, _show, _store), \ + .type = _type } + +#define SWITCH_DEVICE_ATTR(_name, _mode, _show, _store, _type) \ +struct switch_device_attribute switch_dev_attr_##_name \ + = SWITCH_ATTR(_name, _mode, _show, _store, _type) + +struct switch_obj { + struct kobject kobj; + unsigned int index; +}; + +/* a custom attribute that works just for a struct switch_obj. */ +struct switch_attribute { + struct attribute attr; + ssize_t (*show)(struct switch_obj *foo, struct switch_attribute *attr, char *buf); + ssize_t (*store)(struct switch_obj *foo, struct switch_attribute *attr, const char *buf, size_t count); +}; + +struct switch_device_attribute { + struct switch_attribute switch_attr; + int type; +}; + +extern struct switch_obj *wb_plat_kobject_create(const char *name, struct kobject *parent); +extern void wb_plat_kobject_delete(struct switch_obj **obj); + +#endif /* _PLAT_SWITCH_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/sysfs_common.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/sysfs_common.h new file mode 100644 index 000000000000..5b73731e1fbf --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/include/sysfs_common.h @@ -0,0 +1,90 @@ +#ifndef _SYSFS_COMMON_H_ +#define _SYSFS_COMMON_H_ + +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +#define DIR_NAME_MAX_LEN (64) + +#define WB_SYSFS_DEV_ERROR "NA" +/* sysfs directory name */ +#define FAN_SYSFS_NAME "fan" +#define PSU_SYSFS_NAME "psu" +#define SLOT_SYSFS_NAME "slot" +#define VOLTAGE_SYSFS_NAME "in" +#define TEMP_SYSFS_NAME "temp" +#define SFF_SYSFS_NAME "sff" + +typedef enum wb_main_dev_type_e { + WB_MAIN_DEV_MAINBOARD = 0, + WB_MAIN_DEV_FAN = 1, + WB_MAIN_DEV_PSU = 2, + WB_MAIN_DEV_SFF = 3, + WB_MAIN_DEV_CPLD = 4, + WB_MAIN_DEV_SLOT = 5, +} wb_main_dev_type_t; + +typedef enum wb_minor_dev_type_e { + WB_MINOR_DEV_NONE = 0, /* None */ + WB_MINOR_DEV_TEMP = 1, + WB_MINOR_DEV_IN = 2, + WB_MINOR_DEV_CURR = 3, + WB_MINOR_DEV_POWER = 4, + WB_MINOR_DEV_MOTOR = 5, + WB_MINOR_DEV_PSU = 6, +} wb_minor_dev_type_t; + +typedef enum wb_sensor_type_e { + WB_SENSOR_INPUT = 0, + WB_SENSOR_ALIAS = 1, + WB_SENSOR_TYPE = 2, + WB_SENSOR_MAX = 3, + WB_SENSOR_MAX_HYST = 4, + WB_SENSOR_MIN = 5, + WB_SENSOR_CRIT = 6, +} wb_sensor_type_t; + +typedef enum wb_sff_cpld_attr_e { + WB_SFF_POWER_ON = 0x01, + WB_SFF_TX_FAULT, + WB_SFF_TX_DIS, + WB_SFF_PRE_N, + WB_SFF_RX_LOS, + WB_SFF_RESET, + WB_SFF_LPMODE, + WB_SFF_MODULE_PRESENT, + WB_SFF_INTERRUPT, +} wb_sff_cpld_attr_t; + +struct switch_drivers_t{ + /* device */ + int (*get_dev_number) (unsigned int main_dev_id, unsigned int minor_dev_id); + /* fan */ + int (*get_fan_number) (void); + ssize_t (*get_fan_speed) (unsigned int fan_index, unsigned int motor_index, unsigned int *speed); + int (*get_fan_pwm) (unsigned int fan_index, unsigned int motor_index, int *pwm); + int (*set_fan_pwm) (unsigned int fan_index, unsigned int motor_index, int pwm); + int (*get_fan_present_status)(unsigned int fan_index); + int (*get_fan_roll_status)(unsigned int fan_index, unsigned int motor_index); + int (*get_fan_speed_level)(unsigned int fan_index, unsigned int motor_index, int *level); + int (*set_fan_speed_level)(unsigned int fan_index, unsigned int motor_index, int level); + /* slot */ + int (*get_slot_present_status) (unsigned int slot_index); + /* sensors */ + ssize_t (*get_temp_info)( uint8_t main_dev_id, uint8_t dev_index, + uint8_t temp_index, uint8_t temp_attr, char *buf); + ssize_t (*get_voltage_info)( uint8_t main_dev_id, uint8_t dev_index, + uint8_t in_index, uint8_t in_attr, char *buf); + /* psu */ + int (*get_psu_present_status)(unsigned int psu_index); + int (*get_psu_output_status)(unsigned int psu_index); + int (*get_psu_alert_status)(unsigned int psu_index); + /* sff */ + ssize_t (*get_sff_cpld_info)( unsigned int sff_index, int cpld_reg_type, char *buf, int len); + ssize_t (*get_sff_dir_name)(unsigned int sff_index, char *buf, int buf_len); +}; + +extern struct switch_drivers_t * dfd_plat_driver_get(void); + +#endif /*_SYSFS_COMMON_H_ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_fan.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_fan.c new file mode 100644 index 000000000000..931c7c243a21 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_fan.c @@ -0,0 +1,501 @@ +/* + * plat_fan.c + * + * This module create fan kobjects and attributes in /sys/wb_plat/fan + * + */ + +#include + +#include "./include/plat_switch.h" +#include "./include/sysfs_common.h" + +#define FAN_INFO(fmt, args...) LOG_INFO("fan: ", fmt, ##args) +#define FAN_ERR(fmt, args...) LOG_ERR("fan: ", fmt, ##args) +#define FAN_DBG(fmt, args...) LOG_DBG("fan: ", fmt, ##args) + +struct motor_obj_t{ + struct switch_obj *obj; +}; + +struct fan_obj_t{ + unsigned int motor_number; + struct motor_obj_t *motor; + struct switch_obj *obj; +}; + +struct fan_t{ + unsigned int fan_number; + struct fan_obj_t *fan; +}; + +static int g_loglevel = 0; +static struct fan_t g_fan; +static struct switch_obj *g_fan_obj = NULL; +static struct switch_drivers_t *g_drv = NULL; + +static ssize_t fan_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_fan.fan_number); +} + +static ssize_t fan_motor_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int index; + + index = obj->index; + FAN_DBG("fan_motor_number_show,fan index:%d\n",index); + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_fan.fan[index-1].motor_number); +} + +static ssize_t fan_roll_status_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int fan_index, motor_index; + struct switch_obj *p_obj; + int ret; + + check_p(g_drv); + check_p(g_drv->get_fan_roll_status); + + p_obj = to_switch_obj(obj->kobj.parent); + check_p(p_obj); + + fan_index = p_obj->index; + motor_index = obj->index; + + ret = g_drv->get_fan_roll_status(fan_index, motor_index); + if (ret < 0 ) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +static ssize_t fan_present_status_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int fan_index; + int ret; + + fan_index = obj->index; + FAN_DBG("fan_present_status_show, fan index:%d\n",fan_index); + check_p(g_drv); + check_p(g_drv->get_fan_present_status); + + ret = g_drv->get_fan_present_status(fan_index); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +static ssize_t fan_speed_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int fan_index, motor_index, speed; + int ret; + struct switch_obj *p_obj; + + check_p(g_drv); + check_p(g_drv->get_fan_speed); + + p_obj = to_switch_obj(obj->kobj.parent); + check_p(p_obj); + + fan_index = p_obj->index; + motor_index = obj->index; + + ret = g_drv->get_fan_speed(fan_index, motor_index, &speed); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", speed); +} + +static ssize_t fan_motor_ratio_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int fan_index, motor_index; + struct switch_obj *p_obj; + int ret, pwm; + + check_p(g_drv); + check_p(g_drv->get_fan_pwm); + + p_obj = to_switch_obj(obj->kobj.parent); + check_p(p_obj); + fan_index = p_obj->index; + motor_index = obj->index; + ret = g_drv->get_fan_pwm(fan_index, motor_index, &pwm); + + if (ret < 0 ) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", pwm); +} + +static ssize_t fan_motor_ratio_store(struct switch_obj *obj, struct switch_attribute *attr, + const char* buf, size_t count) +{ + unsigned int fan_index, motor_index; + struct switch_obj *p_obj; + int ret, pwm; + + check_p(g_drv); + check_p(g_drv->set_fan_pwm); + + p_obj = to_switch_obj(obj->kobj.parent); + check_p(p_obj); + + fan_index = p_obj->index; + motor_index = obj->index; + sscanf(buf, "%d", &pwm); + + if (pwm < 0 || pwm > 100) { + FAN_ERR("can not set pwm = %d.\n", pwm); + return -EINVAL; + } + ret = g_drv->set_fan_pwm(fan_index, motor_index, pwm); + if (ret < 0) { + FAN_ERR("can not set pwm = %d.\n", pwm); + return -EIO; + } + return count; +} + +/************************************fan dir and attrs*******************************************/ +static struct switch_attribute fan_number_att = __ATTR(num_fans, S_IRUGO, fan_number_show, NULL); + +static struct attribute *fan_dir_attrs[] = { + &fan_number_att.attr, + NULL, +}; + +static struct attribute_group fan_root_attr_group = { + .attrs = fan_dir_attrs, +}; + +/*******************************fan1 fan2 dir and attrs*******************************************/ +static struct switch_attribute fan_num_motors_att = __ATTR(num_motors, S_IRUGO, fan_motor_number_show, NULL); +static struct switch_attribute fan_present_att = __ATTR(present, S_IRUGO, fan_present_status_show, NULL); + +static struct attribute *fan_attrs[] = { + &fan_num_motors_att.attr, + &fan_present_att.attr, + NULL, +}; + +static struct attribute_group fan_attr_group = { + .attrs = fan_attrs, +}; + +/*******************************motor0 motor1 dir and attrs*******************************************/ +static struct switch_attribute motor_speed_att = __ATTR(speed, S_IRUGO, fan_speed_show, NULL); +static struct switch_attribute motor_status_att = __ATTR(status, S_IRUGO, fan_roll_status_show, NULL); +static struct switch_attribute motor_ratio_att = __ATTR(ratio, S_IRUGO | S_IWUSR, fan_motor_ratio_show, fan_motor_ratio_store); + +static struct attribute *motor_attrs[] = { + &motor_speed_att.attr, + &motor_status_att.attr, + &motor_ratio_att.attr, + NULL, +}; + +static struct attribute_group motor_attr_group = { + .attrs = motor_attrs, +}; + +static void fanindex_single_motor_remove_kobj_and_attrs(struct fan_obj_t * curr_fan, unsigned int motor_index) +{ + struct motor_obj_t *curr_motor; /* point to motor0 motor1...*/ + + curr_motor = &curr_fan->motor[motor_index]; + if (curr_motor->obj) { + sysfs_remove_group(&curr_motor->obj->kobj, &motor_attr_group); + wb_plat_kobject_delete(&curr_motor->obj); + FAN_DBG("delete fan:%d motor%d.\n", curr_fan->obj->index, motor_index); + } + return; +} + +static int fanindex_single_motor_create_kobj_and_attrs(struct fan_obj_t * curr_fan, unsigned int motor_index) +{ + char name[DIR_NAME_MAX_LEN]; + struct motor_obj_t *curr_motor; /* point to motor0 motor1...*/ + + FAN_DBG("create fan_index:%d, motor%d ...\n", curr_fan->obj->index, motor_index); + + curr_motor = &curr_fan->motor[motor_index]; + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "motor%d", motor_index); + curr_motor->obj = wb_plat_kobject_create(name, &curr_fan->obj->kobj); + if (!curr_motor->obj) { + FAN_ERR("create fan_index:%d, motor%d object error!\n", curr_fan->obj->index, motor_index); + return -EBADRQC; + } + curr_motor->obj->index = motor_index; + if (sysfs_create_group(&curr_motor->obj->kobj, &motor_attr_group) != 0) { + FAN_ERR("create fan_index:%d, motor%d attrs error.\n", curr_fan->obj->index, motor_index); + wb_plat_kobject_delete(&curr_motor->obj); + return -EBADRQC; + } + FAN_DBG("create fan_index:%d, motor%d ok.\n", curr_fan->obj->index, motor_index); + return 0; +} + +static int fanindex_motor_create_kobj_and_attrs(struct fan_obj_t * curr_fan, int motor_num) +{ + int motor_index, i; + + curr_fan->motor = kzalloc(sizeof(struct motor_obj_t) * motor_num, GFP_KERNEL); + if (!curr_fan->motor) { + FAN_ERR("kzalloc motor error, fan index = %d, motor number = %d.\n", curr_fan->obj->index, motor_num); + return -ENOMEM; + } + curr_fan->motor_number = motor_num; + for (motor_index = 0; motor_index < motor_num; motor_index++) { + if (fanindex_single_motor_create_kobj_and_attrs(curr_fan, motor_index) != 0) { + goto motor_error; + } + } + return 0; +motor_error: + for(i = motor_index - 1; i >= 0; i--) { + fanindex_single_motor_remove_kobj_and_attrs(curr_fan, i); + } + if(curr_fan->motor) { + kfree(curr_fan->motor); + curr_fan->motor = NULL; + } + return -EBADRQC; +} + +static void fanindex_motor_remove_kobj_and_attrs(struct fan_obj_t *curr_fan, int motor_num) +{ + int motor_index; + + for (motor_index = motor_num - 1; motor_index >= 0; motor_index--) { + fanindex_single_motor_remove_kobj_and_attrs(curr_fan, motor_index); + } + return; +} + +static int fan_motor_create(void) +{ + int fan_num, motor_num; + unsigned int fan_index, i; + struct fan_obj_t *curr_fan; /* point to fan1 fan2...*/ + + check_p(g_drv->get_dev_number); + + motor_num = g_drv->get_dev_number(WB_MAIN_DEV_FAN, WB_MINOR_DEV_MOTOR); + if (motor_num <= 0) { + FAN_ERR("get fan motor number error, motor_num:%d error.\n", motor_num); + return -ENODEV; + } + + fan_num = g_fan.fan_number; + for (fan_index = 1; fan_index <= fan_num; fan_index++) { + curr_fan = &g_fan.fan[fan_index - 1]; + if (fanindex_motor_create_kobj_and_attrs(curr_fan, motor_num) != 0) { + goto error; + } + } + return 0; +error: + for (i = fan_index - 1; i > 0; i--) { + curr_fan = &g_fan.fan[i - 1]; + motor_num = curr_fan->motor_number; + fanindex_motor_remove_kobj_and_attrs(curr_fan, motor_num); + } + return -EBADRQC; +} + +static void fan_motor_remove(void) +{ + unsigned int fan_index; + struct fan_obj_t *curr_fan; + + if (g_fan.fan) { + for (fan_index = g_fan.fan_number; fan_index > 0; fan_index--) { + curr_fan = &g_fan.fan[fan_index - 1]; + if (curr_fan->motor) { + fanindex_motor_remove_kobj_and_attrs(curr_fan, curr_fan->motor_number); + kfree(curr_fan->motor); + curr_fan->motor = NULL; + curr_fan->motor_number = 0; + } + } + } + return; +} + +static void fan_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct fan_obj_t *curr_fan; + + curr_fan = &g_fan.fan[index - 1]; + if (curr_fan->obj) { + sysfs_remove_group(&curr_fan->obj->kobj, &fan_attr_group); + wb_plat_kobject_delete(&curr_fan->obj); + FAN_DBG("delete fan%d.\n", index); + } + return; +} + +static int fan_sub_single_create_kobj_and_attrs(struct kobject *parent, unsigned int index) +{ + char name[DIR_NAME_MAX_LEN]; + struct fan_obj_t *curr_fan; + + curr_fan = &g_fan.fan[index - 1]; + FAN_DBG("create fan%d ...\n", index); + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "fan%d", index); + curr_fan->obj = wb_plat_kobject_create(name, parent); + if (!curr_fan->obj) { + FAN_ERR("create fan%d object error!\n", index); + return -EBADRQC; + } + curr_fan->obj->index = index; + if (sysfs_create_group(&curr_fan->obj->kobj, &fan_attr_group) != 0) { + FAN_ERR("create fan%d attrs error.\n", index); + wb_plat_kobject_delete(&curr_fan->obj); + return -EBADRQC; + } + FAN_DBG("create fan%d ok.\n", index); + return 0; +} + +static int fan_sub_create_kobj_and_attrs(struct kobject *parent, int fan_num) +{ + unsigned int fan_index, i; + + g_fan.fan = kzalloc(sizeof(struct fan_obj_t) * fan_num, GFP_KERNEL); + if (!g_fan.fan) { + FAN_ERR("kzalloc fan.fan error, fan number = %d.\n", fan_num); + return -ENOMEM; + } + + for (fan_index = 1; fan_index <= fan_num; fan_index++) { + if(fan_sub_single_create_kobj_and_attrs(parent, fan_index) != 0 ) { + goto error; + } + } + return 0; +error: + for (i = fan_index - 1; i > 0; i--) { + fan_sub_single_remove_kobj_and_attrs(i); + } + if (g_fan.fan) { + kfree(g_fan.fan); + g_fan.fan = NULL; + } + return -EBADRQC; +} + +static int fan_sub_create(void) +{ + int ret, fan_num; + + check_p(g_drv->get_dev_number); + fan_num = g_drv->get_dev_number(WB_MAIN_DEV_FAN, WB_MINOR_DEV_NONE); + if (fan_num < 0) { + FAN_ERR("fan number = %d error.\n", fan_num); + return -EINVAL; + } + g_fan.fan_number = fan_num; + ret = fan_sub_create_kobj_and_attrs(&g_fan_obj->kobj, fan_num); + return ret; +} + +static void fan_sub_remove(void) +{ + unsigned int fan_index; + + if (g_fan.fan) { + for (fan_index = g_fan.fan_number; fan_index > 0; fan_index--) { + fan_sub_single_remove_kobj_and_attrs(fan_index); + } + kfree(g_fan.fan); + } + mem_clear(&g_fan, sizeof(struct fan_t)); + return; +} + +static int fan_root_create(void) +{ + g_fan_obj = wb_plat_kobject_create("fan", NULL); + if (!g_fan_obj) { + FAN_ERR("wb_plat_kobject_create fan error!\n"); + return -ENOMEM; + } + + if (sysfs_create_group(&g_fan_obj->kobj, &fan_root_attr_group) != 0) { + wb_plat_kobject_delete(&g_fan_obj); + FAN_ERR("create fan dir attrs error!\n"); + return -EBADRQC; + } + FAN_DBG("wb_plat_kobject_create fan directory and attribute success.\n"); + return 0; +} + +static void fan_root_remove(void) +{ + if (g_fan_obj) { + sysfs_remove_group(&g_fan_obj->kobj, &fan_root_attr_group); + wb_plat_kobject_delete(&g_fan_obj); + FAN_DBG("delete fan root success\n"); + } + + return; +} + +static int fan_init(void) +{ + int ret; + + FAN_INFO("fan_init...\n"); + g_drv = dfd_plat_driver_get(); + check_p(g_drv); + + ret = fan_root_create(); + if (ret < 0) { + goto fan_root_error; + } + + ret = fan_sub_create(); + if (ret < 0) { + goto fan_sub_error; + } + + ret = fan_motor_create(); + if (ret < 0) { + goto fan_motor_error; + } + + FAN_INFO("fan_init ok.\n"); + return 0; +fan_motor_error: + fan_sub_remove(); +fan_sub_error: + fan_root_remove(); +fan_root_error: + return ret; +} + +static void fan_exit(void) +{ + fan_motor_remove(); + fan_sub_remove(); + fan_root_remove(); + FAN_INFO("fan_exit ok.\n"); + return ; +} + +module_init(fan_init); +module_exit(fan_exit); +module_param(g_loglevel, int, 0644); +MODULE_PARM_DESC(g_loglevel, "the log level(info=0x1, err=0x2, dbg=0x4).\n"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("fan sysfs driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_psu.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_psu.c new file mode 100644 index 000000000000..197f94b64991 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_psu.c @@ -0,0 +1,426 @@ +/* + * plat_psu.c + * + * This module create psu kobjects and attributes in /sys/wb_plat/psu + * + */ + +#include + +#include "./include/plat_switch.h" +#include "./include/sysfs_common.h" + +#define PSU_INFO(fmt, args...) LOG_INFO("psu: ", fmt, ##args) +#define PSU_ERR(fmt, args...) LOG_ERR("psu: ", fmt, ##args) +#define PSU_DBG(fmt, args...) LOG_DBG("psu: ", fmt, ##args) + +struct temp_obj_t{ + struct switch_obj *obj; +}; + +struct psu_obj_t{ + unsigned int temp_number; + struct temp_obj_t *temp; + struct switch_obj *obj; +}; + +struct psu_t{ + unsigned int psu_number; + struct psu_obj_t *psu; +}; + +static int g_loglevel = 0; +static struct psu_t g_psu; +static struct switch_obj *g_psu_obj = NULL; +static struct switch_drivers_t *g_drv = NULL; + +static ssize_t psu_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_psu.psu_number); +} + +static ssize_t psu_present_status_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int psu_index; + int ret; + + psu_index = obj->index; + PSU_DBG("psu_present_status_show, psu index:%d\n",psu_index); + check_p(g_drv); + check_p(g_drv->get_psu_present_status); + + ret = g_drv->get_psu_present_status(psu_index); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +static ssize_t psu_output_status_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int psu_index; + int ret; + + psu_index = obj->index; + PSU_DBG("psu_output_status_show, psu index:%d\n",psu_index); + check_p(g_drv); + check_p(g_drv->get_psu_output_status); + + ret = g_drv->get_psu_output_status(psu_index); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +static ssize_t psu_alert_status_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int psu_index; + int ret; + + psu_index = obj->index; + PSU_DBG("psu_alert_status_show, psu index:%d\n",psu_index); + check_p(g_drv); + check_p(g_drv->get_psu_alert_status); + + ret = g_drv->get_psu_alert_status(psu_index); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +/************************************psu dir and attrs*******************************************/ +static struct switch_attribute psu_number_att = __ATTR(num_psus, S_IRUGO, psu_number_show, NULL); + +static struct attribute *psu_dir_attrs[] = { + &psu_number_att.attr, + NULL, +}; + +static struct attribute_group psu_root_attr_group = { + .attrs = psu_dir_attrs, +}; + +/*******************************psu1 psu2 dir and attrs*******************************************/ +static struct switch_attribute psu_present_status_att = __ATTR(present, S_IRUGO, psu_present_status_show, NULL); +static struct switch_attribute psu_output_status_att = __ATTR(output, S_IRUGO, psu_output_status_show, NULL); +static struct switch_attribute psu_alert_status_att = __ATTR(alert, S_IRUGO, psu_alert_status_show, NULL); + +static struct attribute *psu_attrs[] = { + &psu_present_status_att.attr, + &psu_output_status_att.attr, + &psu_alert_status_att.attr, + NULL, +}; + +static struct attribute_group psu_attr_group = { + .attrs = psu_attrs, +}; + +/*******************************psu temp0 temp1 dir and attrs*******************************************/ +static struct attribute *psu_temp_attrs[] = { + NULL, +}; + +static struct attribute_group psu_temp_attr_group = { + .attrs = psu_temp_attrs, +}; + +static void psuindex_single_temp_remove_kobj_and_attrs(struct psu_obj_t * curr_psu, unsigned int temp_index) +{ + + struct temp_obj_t *curr_temp; /* point to temp0 temp1...*/ + + curr_temp = &curr_psu->temp[temp_index]; + if (curr_temp->obj) { + sysfs_remove_group(&curr_temp->obj->kobj, &psu_temp_attr_group); + wb_plat_kobject_delete(&curr_temp->obj); + PSU_DBG("delete psu:%d temp%d.\n", curr_psu->obj->index, temp_index); + } + return; +} + +static int psuindex_single_temp_create_kobj_and_attrs(struct psu_obj_t * curr_psu, unsigned int temp_index) +{ + char name[DIR_NAME_MAX_LEN]; + struct temp_obj_t *curr_temp; /* point to temp0 temp1...*/ + + PSU_DBG("create psu_index:%d, temp%d ...\n", curr_psu->obj->index, temp_index); + + curr_temp = &curr_psu->temp[temp_index]; + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "temp%d", temp_index); + curr_temp->obj = wb_plat_kobject_create(name, &curr_psu->obj->kobj); + if (!curr_temp->obj) { + PSU_ERR("create psu_index:%d, temp%d object error!\n", curr_psu->obj->index, temp_index); + return -EBADRQC; + } + curr_temp->obj->index = temp_index; + if (sysfs_create_group(&curr_temp->obj->kobj, &psu_temp_attr_group) != 0) { + PSU_ERR("create psu_index:%d, temp%d attrs error.\n", curr_psu->obj->index, temp_index); + wb_plat_kobject_delete(&curr_temp->obj); + return -EBADRQC; + } + PSU_DBG("create psu_index:%d, temp%d ok.\n", curr_psu->obj->index, temp_index); + return 0; +} + +static int psuindex_temp_create_kobj_and_attrs(struct psu_obj_t * curr_psu, int temp_num) +{ + int temp_index, i; + + curr_psu->temp = kzalloc(sizeof(struct temp_obj_t) * temp_num, GFP_KERNEL); + if (!curr_psu->temp) { + PSU_ERR("kzalloc temp error, psu index = %d, temp number = %d.\n", curr_psu->obj->index, temp_num); + return -ENOMEM; + } + curr_psu->temp_number = temp_num; + for (temp_index = 0; temp_index < temp_num; temp_index++) { + if (psuindex_single_temp_create_kobj_and_attrs(curr_psu, temp_index) != 0) { + goto temp_error; + } + } + return 0; +temp_error: + for (i = temp_index - 1; i >= 0; i--) { + psuindex_single_temp_remove_kobj_and_attrs(curr_psu, i); + } + if (curr_psu->temp) { + kfree(curr_psu->temp); + curr_psu->temp = NULL; + } + return -EBADRQC; +} + +static void psuindex_temp_remove_kobj_and_attrs(struct psu_obj_t * curr_psu, int temp_num) +{ + unsigned int temp_index; + + for (temp_index = temp_num - 1; temp_index >= 0; temp_index--) { + psuindex_single_temp_remove_kobj_and_attrs(curr_psu, temp_index); + } + return; +} + +static int psu_temp_create(void) +{ + int psu_num, temp_num; + unsigned int psu_index, i; + struct psu_obj_t *curr_psu; /* point to psu1 psu2...*/ + + check_p(g_drv->get_dev_number); + temp_num = g_drv->get_dev_number(WB_MAIN_DEV_PSU, WB_MINOR_DEV_TEMP); + if (temp_num <= 0) { + PSU_INFO("psu temp_num:%d, don't need creat temp directory.\n", temp_num); + return 0; + } + + psu_num = g_psu.psu_number; + for(psu_index = 1; psu_index <= psu_num; psu_index++) { + curr_psu = &g_psu.psu[psu_index - 1]; + if(psuindex_temp_create_kobj_and_attrs(curr_psu, temp_num) != 0) { + goto error; + } + } + return 0; +error: + for(i = psu_index - 1; i > 0; i--) { + curr_psu = &g_psu.psu[i - 1]; + temp_num = curr_psu->temp_number; + psuindex_temp_remove_kobj_and_attrs(curr_psu, temp_num); + } + return -EBADRQC; +} + +static void psu_temp_remove(void) +{ + unsigned int psu_index; + struct psu_obj_t *curr_psu; + + if (g_psu.psu) { + for (psu_index = g_psu.psu_number; psu_index > 0; psu_index--) { + curr_psu = &g_psu.psu[psu_index - 1]; + if (curr_psu->temp) { + psuindex_temp_remove_kobj_and_attrs(curr_psu,curr_psu->temp_number); + kfree(curr_psu->temp); + curr_psu->temp = NULL; + curr_psu->temp_number = 0; + } + } + } + return; +} + +static void psu_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct psu_obj_t *curr_psu; + + curr_psu = &g_psu.psu[index - 1]; + if (curr_psu->obj) { + sysfs_remove_group(&curr_psu->obj->kobj, &psu_attr_group); + wb_plat_kobject_delete(&curr_psu->obj); + PSU_DBG("delete psu%d.\n", index); + } + return; +} + +static int psu_sub_single_create_kobj_and_attrs(struct kobject *parent, unsigned int index) +{ + char name[DIR_NAME_MAX_LEN]; + struct psu_obj_t *curr_psu; + + curr_psu = &g_psu.psu[index-1]; + PSU_DBG("create psu%d ...\n", index); + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "%s%d",PSU_SYSFS_NAME, index); + curr_psu->obj = wb_plat_kobject_create(name, parent); + if (!curr_psu->obj) { + PSU_ERR("create psu%d object error!\n", index); + return -EBADRQC; + } + curr_psu->obj->index = index; + if (sysfs_create_group(&curr_psu->obj->kobj, &psu_attr_group) != 0) { + PSU_ERR("create psu%d attrs error.\n", index); + wb_plat_kobject_delete(&curr_psu->obj); + return -EBADRQC; + } + PSU_DBG("create psu%d ok.\n", index); + return 0; +} + +static int psu_sub_create_kobj_and_attrs(struct kobject *parent, int psu_num) +{ + unsigned int psu_index, i; + + g_psu.psu = kzalloc(sizeof(struct psu_obj_t) * psu_num, GFP_KERNEL); + if (!g_psu.psu) { + PSU_ERR("kzalloc psu.psu error, psu number = %d.\n", psu_num); + return -ENOMEM; + } + + for (psu_index = 1; psu_index <= psu_num; psu_index++) { + if (psu_sub_single_create_kobj_and_attrs(parent, psu_index) != 0) { + goto error; + } + } + return 0; +error: + for(i = psu_index - 1; i > 0; i--) { + psu_sub_single_remove_kobj_and_attrs(i); + } + if(g_psu.psu) { + kfree(g_psu.psu); + g_psu.psu = NULL; + } + return -EBADRQC; +} + +static int psu_sub_create(void) +{ + int ret, psu_num; + + check_p(g_drv->get_dev_number); + psu_num = g_drv->get_dev_number(WB_MAIN_DEV_PSU, WB_MINOR_DEV_NONE); + if (psu_num < 0) { + PSU_ERR("psu number = %d error.\n", psu_num); + return -EINVAL; + } + g_psu.psu_number = psu_num; + ret = psu_sub_create_kobj_and_attrs(&g_psu_obj->kobj, psu_num); + return ret; +} + +static void psu_sub_remove(void) +{ + unsigned int psu_index; + + if (g_psu.psu) { + for (psu_index = g_psu.psu_number; psu_index > 0; psu_index--) { + psu_sub_single_remove_kobj_and_attrs(psu_index); + } + kfree(g_psu.psu); + } + mem_clear(&g_psu, sizeof(struct psu_t)); + return ; +} + +static int psu_root_create(void) +{ + g_psu_obj = wb_plat_kobject_create(PSU_SYSFS_NAME, NULL); + if (!g_psu_obj) { + PSU_ERR("wb_plat_kobject_create psu error!\n"); + return -ENOMEM; + } + + if (sysfs_create_group(&g_psu_obj->kobj, &psu_root_attr_group) != 0) { + wb_plat_kobject_delete(&g_psu_obj); + PSU_ERR("create psu dir attrs error!\n"); + return -EBADRQC; + } + PSU_DBG("wb_plat_kobject_create psu directory and attribute success.\n"); + return 0; +} + +static void psu_root_remove(void) +{ + if (g_psu_obj) { + sysfs_remove_group(&g_psu_obj->kobj, &psu_root_attr_group); + wb_plat_kobject_delete(&g_psu_obj); + PSU_DBG("delete psu root success\n"); + } + return; +} + +static int wb_psu_init(void) +{ + int ret; + + PSU_INFO("wb_psu_init...\n"); + g_drv = dfd_plat_driver_get(); + check_p(g_drv); + + ret = psu_root_create(); + if (ret < 0) { + goto psu_root_error; + } + + ret = psu_sub_create(); + if (ret < 0) { + goto psu_sub_error; + } + + ret = psu_temp_create(); + if (ret < 0) { + goto psu_temp_error; + } + + PSU_INFO("wb_psu_init ok.\n"); + return 0; +psu_temp_error: + psu_sub_remove(); +psu_sub_error: + psu_root_remove(); +psu_root_error: + return ret; +} + +static void wb_psu_exit(void) +{ + psu_temp_remove(); + psu_sub_remove(); + psu_root_remove(); + PSU_INFO("wb_psu_exit ok.\n"); + return ; +} + +module_init(wb_psu_init); +module_exit(wb_psu_exit); +module_param(g_loglevel, int, 0644); +MODULE_PARM_DESC(g_loglevel, "the log level(info=0x1, err=0x2, dbg=0x4).\n"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("psu sysfs driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sensor.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sensor.c new file mode 100644 index 000000000000..aaf62f4c1a3c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sensor.c @@ -0,0 +1,452 @@ +/* + * plat_sensor.c + * + * This module create sensor kobjects and attributes in /sys/wb_plat/sensor + */ + +#include + +#include "./include/plat_switch.h" +#include "./include/sysfs_common.h" + +#define SENSOR_INFO(fmt, args...) LOG_INFO("sensor: ", fmt, ##args) +#define SENSOR_ERR(fmt, args...) LOG_ERR("sensor: ", fmt, ##args) +#define SENSOR_DBG(fmt, args...) LOG_DBG("sensor: ", fmt, ##args) + +struct sensor_t { + unsigned int in_number; + unsigned int temp_number; + struct sensor_in_t *in; + struct sensor_temp_t *temp; +}; + +struct sensor_temp_t { + struct switch_obj *obj; +}; + +struct sensor_in_t { + struct switch_obj *obj; +}; + +static int g_loglevel = 0; +static struct switch_drivers_t *g_drv = NULL; +static struct sensor_t g_sensor; +static struct switch_obj *g_sensor_obj = NULL; + +static ssize_t sensor_temp_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_sensor.temp_number); +} + +static ssize_t sensor_in_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_sensor.in_number); +} + +static ssize_t sensor_voltage_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int in_index; + int ret; + struct switch_device_attribute *in_attr; + + check_p(g_drv); + check_p(g_drv->get_voltage_info); + in_index = obj->index; + + in_attr = to_switch_device_attr(attr); + check_p(in_attr); + SENSOR_DBG("sensor_in_show, in index:0x%x, in type:0x%x\n",in_index, in_attr->type); + ret = g_drv->get_voltage_info(WB_MAIN_DEV_MAINBOARD, WB_MINOR_DEV_NONE, in_index, in_attr->type, buf); + if (ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + return ret; +} + +static ssize_t sensor_temp_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int temp_index; + int ret; + struct switch_device_attribute *temp_attr; + + check_p(g_drv); + check_p(g_drv->get_temp_info); + temp_index = obj->index; + + temp_attr = to_switch_device_attr(attr); + check_p(temp_attr); + SENSOR_DBG("sensor_temp_show, temp index:0x%x, temp type:0x%x\n", temp_index, temp_attr->type); + ret = g_drv->get_temp_info(WB_MAIN_DEV_MAINBOARD, WB_MINOR_DEV_NONE, temp_index, temp_attr->type, buf); + if (ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + return ret; +} + +/************************************sensor dir and attrs*******************************************/ +static struct switch_attribute num_temp_att = __ATTR(num_temp_sensors, S_IRUGO, sensor_temp_number_show, NULL); +static struct switch_attribute num_in_att = __ATTR(num_in_sensors, S_IRUGO, sensor_in_number_show, NULL); + +static struct attribute *sensor_dir_attrs[] = { + &num_temp_att.attr, + &num_in_att.attr, + NULL, +}; + +static struct attribute_group sensor_root_attr_group = { + .attrs = sensor_dir_attrs, +}; + +/*******************************temp0 temp1 dir and attrs*******************************************/ +static SWITCH_DEVICE_ATTR(temp_input, S_IRUGO, sensor_temp_show, NULL, WB_SENSOR_INPUT); +static SWITCH_DEVICE_ATTR(temp_alias, S_IRUGO, sensor_temp_show, NULL, WB_SENSOR_ALIAS); +static SWITCH_DEVICE_ATTR(temp_type, S_IRUGO, sensor_temp_show, NULL, WB_SENSOR_TYPE); +static SWITCH_DEVICE_ATTR(temp_max, S_IRUGO, sensor_temp_show, NULL, WB_SENSOR_MAX); +static SWITCH_DEVICE_ATTR(temp_max_hyst, S_IRUGO, sensor_temp_show, NULL, WB_SENSOR_MAX_HYST); +static SWITCH_DEVICE_ATTR(temp_min, S_IRUGO, sensor_temp_show, NULL, WB_SENSOR_MIN); + +static struct attribute *sensor_temp_attrs[] = { + &switch_dev_attr_temp_input.switch_attr.attr, + &switch_dev_attr_temp_alias.switch_attr.attr, + &switch_dev_attr_temp_type.switch_attr.attr, + &switch_dev_attr_temp_max.switch_attr.attr, + &switch_dev_attr_temp_max_hyst.switch_attr.attr, + &switch_dev_attr_temp_min.switch_attr.attr, + NULL, +}; + +static struct attribute_group sensor_temp_attr_group = { + .attrs = sensor_temp_attrs, +}; + +/*******************************in0 in1 dir and attrs*******************************************/ +static SWITCH_DEVICE_ATTR(in_input, S_IRUGO, sensor_voltage_show, NULL, WB_SENSOR_INPUT); +static SWITCH_DEVICE_ATTR(in_alias, S_IRUGO, sensor_voltage_show, NULL, WB_SENSOR_ALIAS); +static SWITCH_DEVICE_ATTR(in_type, S_IRUGO, sensor_voltage_show, NULL, WB_SENSOR_TYPE); +static SWITCH_DEVICE_ATTR(in_max, S_IRUGO, sensor_voltage_show, NULL, WB_SENSOR_MAX); +static SWITCH_DEVICE_ATTR(in_min, S_IRUGO, sensor_voltage_show, NULL, WB_SENSOR_MIN); +static SWITCH_DEVICE_ATTR(in_crit, S_IRUGO, sensor_voltage_show, NULL, WB_SENSOR_CRIT); + +static struct attribute *sensor_in_attrs[] = { + &switch_dev_attr_in_input.switch_attr.attr, + &switch_dev_attr_in_alias.switch_attr.attr, + &switch_dev_attr_in_type.switch_attr.attr, + &switch_dev_attr_in_max.switch_attr.attr, + &switch_dev_attr_in_min.switch_attr.attr, + &switch_dev_attr_in_crit.switch_attr.attr, + NULL, +}; + +static struct attribute_group sensor_in_attr_group = { + .attrs = sensor_in_attrs, +}; + +static int sensor_in_sub_single_create_kobj_and_attrs(struct kobject *parent, unsigned int index) +{ + char name[DIR_NAME_MAX_LEN]; + struct sensor_in_t *curr_sensor; + + curr_sensor = &g_sensor.in[index - 1]; + SENSOR_DBG("create sensor in%d ...\n", index); + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "in%d", index); + curr_sensor->obj = wb_plat_kobject_create(name, parent); + if (!curr_sensor->obj) { + SENSOR_ERR("create sensor in%d object error!\n", index); + return -EBADRQC; + } + curr_sensor->obj->index = index; + if (sysfs_create_group(&curr_sensor->obj->kobj, &sensor_in_attr_group) != 0) { + SENSOR_ERR("create sensor in%d attrs error.\n", index); + wb_plat_kobject_delete(&curr_sensor->obj); + return -EBADRQC; + } + SENSOR_DBG("create sensor in%d ok.\n", index); + return 0; + +} + +static void sensor_in_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct sensor_in_t *curr_in; + + curr_in = &g_sensor.in[index - 1]; + if (curr_in->obj) { + sysfs_remove_group(&curr_in->obj->kobj, &sensor_in_attr_group); + wb_plat_kobject_delete(&curr_in->obj); + SENSOR_DBG("delete in%d.\n", index); + } + return; +} + +static int sensor_temp_sub_single_create_kobj_and_attrs(struct kobject *parent, unsigned int index) +{ + char name[DIR_NAME_MAX_LEN]; + struct sensor_temp_t *curr_sensor; + + curr_sensor = &g_sensor.temp[index - 1]; + SENSOR_DBG("create sensor temp%d ...\n", index); + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "temp%d", index); + curr_sensor->obj = wb_plat_kobject_create(name, parent); + if (!curr_sensor->obj) { + SENSOR_ERR("create sensor temp%d object error!\n", index); + return -EBADRQC; + } + curr_sensor->obj->index = index; + if (sysfs_create_group(&curr_sensor->obj->kobj, &sensor_temp_attr_group) != 0) { + SENSOR_ERR("create sensor temp%d attrs error.\n", index); + wb_plat_kobject_delete(&curr_sensor->obj); + return -EBADRQC; + } + SENSOR_DBG("create sensor temp%d ok.\n", index); + return 0; + +} + +static void sensor_temp_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct sensor_temp_t *curr_temp; + + curr_temp = &g_sensor.temp[index - 1]; + if (curr_temp->obj) { + sysfs_remove_group(&curr_temp->obj->kobj, &sensor_temp_attr_group); + wb_plat_kobject_delete(&curr_temp->obj); + SENSOR_DBG("delete temp%d.\n", index); + } + return; +} + +static int sensor_temp_sub_create_kobj_and_attrs(struct kobject *parent, int temp_num) +{ + unsigned int temp_index, i; + + g_sensor.temp = kzalloc(sizeof(struct sensor_temp_t) * temp_num, GFP_KERNEL); + if (!g_sensor.temp ) { + SENSOR_ERR("kzalloc g_sensor.temp error, temp number = %d.\n", temp_num); + return -ENOMEM; + } + for (temp_index = 1; temp_index <= temp_num; temp_index++) { + if (sensor_temp_sub_single_create_kobj_and_attrs(parent, temp_index) != 0 ) { + goto error; + } + } + return 0; +error: + for (i = temp_index - 1; i > 0; i--) { + sensor_temp_sub_single_remove_kobj_and_attrs(i); + } + + if (g_sensor.temp) { + kfree(g_sensor.temp); + g_sensor.temp = NULL; + } + return -EBADRQC; +} + +static int sensor_in_sub_create_kobj_and_attrs(struct kobject *parent, int in_num) +{ + unsigned int in_index, i; + + g_sensor.in = kzalloc(sizeof(struct sensor_in_t) * in_num, GFP_KERNEL); + if (!g_sensor.in) { + SENSOR_ERR("kzalloc g_sensor.in error, in number = %d.\n", in_num); + return -ENOMEM; + } + + for (in_index = 1; in_index <= in_num; in_index++) { + if (sensor_in_sub_single_create_kobj_and_attrs(parent, in_index) != 0 ) { + goto error; + } + } + return 0; +error: + for (i = in_index - 1; i > 0; i--) { + sensor_in_sub_single_remove_kobj_and_attrs(i); + } + + if (g_sensor.in) { + kfree(g_sensor.in); + g_sensor.in = NULL; + } + return -EBADRQC; +} + +static int sensor_temp_sub_create(void) +{ + int ret, temp_num; + + check_p(g_drv->get_dev_number); + temp_num = g_drv->get_dev_number(WB_MAIN_DEV_MAINBOARD, WB_MINOR_DEV_TEMP); + g_sensor.temp_number = temp_num; + if (temp_num <= 0) { + SENSOR_DBG("Warning:sensor temp number = %d \n", temp_num); + return 0; + } + ret = sensor_temp_sub_create_kobj_and_attrs(&g_sensor_obj->kobj, temp_num); + return ret; +} + +static int sensor_in_sub_create(void) +{ + int ret, in_num; + + check_p(g_drv->get_dev_number); + in_num = g_drv->get_dev_number(WB_MAIN_DEV_MAINBOARD, WB_MINOR_DEV_IN); + g_sensor.in_number = in_num; + + if (in_num <= 0) { + SENSOR_DBG("Warning:sensor in number = %d \n", in_num); + return 0; + } + ret = sensor_in_sub_create_kobj_and_attrs(&g_sensor_obj->kobj, in_num); + return ret; +} + +static void temp_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct sensor_temp_t * curr_temp; + + curr_temp = &g_sensor.temp[index - 1]; + if (curr_temp->obj) { + sysfs_remove_group(&curr_temp->obj->kobj, &sensor_temp_attr_group); + wb_plat_kobject_delete(&curr_temp->obj); + SENSOR_DBG("delete sensor temp%d.\n", index); + } + return; +} + +static void in_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct sensor_in_t * curr_in; + + curr_in = &g_sensor.in[index - 1]; + if (curr_in->obj) { + sysfs_remove_group(&curr_in->obj->kobj, &sensor_in_attr_group); + wb_plat_kobject_delete(&curr_in->obj); + SENSOR_DBG("delete sensor in%d.\n", index); + } + return; +} + +static void sensor_temp_sub_remove(void) +{ + unsigned int temp_index; + + if (g_sensor.temp) { + for (temp_index = g_sensor.temp_number; temp_index > 0; temp_index--) { + temp_sub_single_remove_kobj_and_attrs(temp_index); + } + kfree(g_sensor.temp); + g_sensor.temp = NULL; + } + return; +} + +static void sensor_in_sub_remove(void) +{ + unsigned int in_index; + + if (g_sensor.in) { + for (in_index = g_sensor.in_number; in_index > 0; in_index--) { + in_sub_single_remove_kobj_and_attrs(in_index); + } + kfree(g_sensor.in); + g_sensor.in = NULL; + } + return; +} + +static void sensor_sub_remove(void) +{ + sensor_temp_sub_remove(); + sensor_in_sub_remove(); +} + +static int sensor_sub_create(void) +{ + int ret; + /* temp creat */ + ret = sensor_temp_sub_create(); + if (ret < 0) { + goto temp_err; + } + /* Voltage creat */ + ret = sensor_in_sub_create(); + if (ret < 0) { + goto in_err; + } + return 0; +in_err: + sensor_temp_sub_remove(); +temp_err: + return ret; +} +static void sensor_root_remove(void) +{ + if (g_sensor_obj) { + sysfs_remove_group(&g_sensor_obj->kobj, &sensor_root_attr_group); + wb_plat_kobject_delete(&g_sensor_obj); + SENSOR_DBG("delete sensor root success\n"); + } + + return; +} + +static int sensor_root_create(void) +{ + g_sensor_obj = wb_plat_kobject_create("sensor", NULL); + if (!g_sensor_obj) { + SENSOR_ERR("wb_plat_kobject_create sensor error!\n"); + return -ENOMEM; + } + + if (sysfs_create_group(&g_sensor_obj->kobj, &sensor_root_attr_group) != 0) { + wb_plat_kobject_delete(&g_sensor_obj); + SENSOR_ERR("create sensor dir attrs error!\n"); + return -EBADRQC; + } + SENSOR_DBG("wb_plat_kobject_create sensor directory and attribute success.\n"); + return 0; +} + +static int wb_sensor_init(void) +{ + int ret; + + SENSOR_INFO("wb_sensor_init...\n"); + g_drv = dfd_plat_driver_get(); + check_p(g_drv); + + ret = sensor_root_create(); + if (ret < 0) { + goto sensor_root_error; + } + + ret = sensor_sub_create(); + if (ret < 0) { + goto sensor_sub_error; + } + SENSOR_INFO("sensor_init ok.\n"); + return 0; +sensor_sub_error: + sensor_root_remove(); +sensor_root_error: + return ret; +} + +static void wb_sensor_exit(void) +{ + sensor_sub_remove(); + sensor_root_remove(); + SENSOR_INFO("sensor_exit ok.\n"); + return; +} + +module_init(wb_sensor_init); +module_exit(wb_sensor_exit); +module_param(g_loglevel, int, 0644); +MODULE_PARM_DESC(g_loglevel, "the log level(info=0x1, err=0x2, dbg=0x4).\n"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("sensors sysfs driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sff.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sff.c new file mode 100644 index 000000000000..50c0f78aede9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_sff.c @@ -0,0 +1,287 @@ +/* + * plat_sff.c + * + * This module create sff kobjects and attributes in /sys/wb_plat/sff + * + */ + +#include + +#include "./include/plat_switch.h" +#include "./include/sysfs_common.h" + +#define SFF_INFO(fmt, args...) LOG_INFO("sff: ", fmt, ##args) +#define SFF_ERR(fmt, args...) LOG_ERR("sff: ", fmt, ##args) +#define SFF_DBG(fmt, args...) LOG_DBG("sff: ", fmt, ##args) + +struct sff_obj_t{ + struct switch_obj *sff_obj; + struct bin_attribute bin; + int sff_creat_bin_flag; +}; + +struct sff_t{ + unsigned int sff_number; + struct sff_obj_t *sff; +}; + +static int g_loglevel = 0; +static struct sff_t g_sff; +static struct switch_obj *g_sff_obj = NULL; +static struct switch_drivers_t *g_drv = NULL; + +static ssize_t sff_cpld_info_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int sff_index; + int ret; + struct switch_device_attribute *sff_cpld_attr; + + check_p(g_drv); + check_p(g_drv->get_sff_cpld_info); + + sff_index = obj->index; + sff_cpld_attr = to_switch_device_attr(attr); + check_p(sff_cpld_attr); + SFF_DBG("sff_cpld_info_show, sff index:0x%x, sff cpld attr type:0x%x\n", sff_index, sff_cpld_attr->type); + ret = g_drv->get_sff_cpld_info(sff_index, sff_cpld_attr->type, buf, PAGE_SIZE); + if(ret < 0) { + SFF_ERR("sff_cpld_info_show error. sff index:0x%x, sff cpld attr type:0x%x, ret:%d\n", + sff_index, sff_cpld_attr->type,ret ); + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + SFF_DBG("sff_cpld_info_show ok. sff index:0x%x, sff cpld attr type:0x%x, ret:%d\n", sff_index, sff_cpld_attr->type, ret); + return ret; +} + +static ssize_t sff_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_sff.sff_number); +} + +/************************************sff attrs*******************************************/ +static struct switch_attribute sff_number_att = __ATTR(num_sffs, S_IRUGO, sff_number_show, NULL); +static SWITCH_DEVICE_ATTR(present, S_IRUGO, sff_cpld_info_show, NULL, WB_SFF_MODULE_PRESENT); + +/*******************************xcvr dir and attrs*******************************************/ +static struct attribute *xcvr_dir_attrs[] = { + &sff_number_att.attr, + NULL, +}; + +static struct attribute_group sff_xcvr_attr_group = { + .attrs = xcvr_dir_attrs, +}; + +/*******************************sff dir and attrs*******************************************/ +static struct attribute *sff_attrs[] = { + &switch_dev_attr_present.switch_attr.attr, + NULL, +}; + +static struct attribute_group sff_attr_group = { + .attrs = sff_attrs, +}; + +static int sff_sub_single_create_attrs(unsigned int index) +{ + struct sff_obj_t *curr_sff; + + curr_sff = &g_sff.sff[index-1]; + if (sysfs_create_group(&curr_sff->sff_obj->kobj, &sff_attr_group) != 0) { + SFF_ERR("create sff%d dir attrs error!\n", index); + wb_plat_kobject_delete(&curr_sff->sff_obj); + return -EBADRQC; + } + SFF_DBG("create sff%d dir attrs ok!\n", index); + return 0; +} + +static int sff_sub_single_create_kobj(struct kobject *parent, unsigned int index) +{ + struct sff_obj_t *curr_sff; + char sff_dir_name[DIR_NAME_MAX_LEN]; + int ret; + + check_p(g_drv->get_sff_dir_name); + ret = g_drv->get_sff_dir_name(index, sff_dir_name, sizeof(sff_dir_name)); + if (ret < 0) { + SFF_ERR("sff index:%d, get sff dir name error. please check sff config.\n", index); + return -ENOSYS; + } + + curr_sff = &g_sff.sff[index - 1]; + + curr_sff->sff_obj = wb_plat_kobject_create(sff_dir_name, parent); + if (!curr_sff->sff_obj) { + SFF_ERR("sff index:%d, create %s object error! \n", index, sff_dir_name); + return -EBADRQC; + } + + SFF_DBG("create sff kobj ok. sff index:%d, dir name:%s\n",index, sff_dir_name); + curr_sff->sff_obj->index = index; + + return 0; +} + +static void sff_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct sff_obj_t *curr_sff; + + curr_sff = &g_sff.sff[index - 1]; + /* remove sff dir and attr */ + if (curr_sff->sff_obj) { + SFF_DBG("delete sff%d attrs.\n", curr_sff->sff_obj->index); + curr_sff->sff_obj->index = 0; + sysfs_remove_group(&curr_sff->sff_obj->kobj, &sff_attr_group); + wb_plat_kobject_delete(&curr_sff->sff_obj); + } + + return; +} + +static int sff_sub_single_create_kobj_and_attrs(struct kobject *parent, unsigned int index) +{ + int ret; + + ret = sff_sub_single_create_kobj(parent, index); + if (ret < 0) { + SFF_ERR("sff index:%d, create sff dir error.\n", index); + return ret; + } + + ret = sff_sub_single_create_attrs(index); + if (ret < 0) { + SFF_ERR("sff index:%d, create sff attr error.\n", index); + return ret; + } + return 0; +} + +static int sff_sub_create_kobj_and_attrs(struct kobject *parent, int sff_num) +{ + unsigned int sff_index, i; + + g_sff.sff = kzalloc(sizeof(struct sff_obj_t) * sff_num, GFP_KERNEL); + if (!g_sff.sff) { + SFF_ERR("kzalloc g_sff.sff error, sff number = %d.\n", sff_num); + return -ENOMEM; + } + + for (sff_index = 1; sff_index <= sff_num; sff_index++) { + if (sff_sub_single_create_kobj_and_attrs(parent, sff_index) != 0 ) { + goto error; + } + } + return 0; +error: + for (i = sff_index - 1; i > 0; i--) { + sff_sub_single_remove_kobj_and_attrs(i); + } + if (g_sff.sff) { + kfree(g_sff.sff); + g_sff.sff = NULL; + } + return -EBADRQC; +} + +static int sff_sub_create(void) +{ + int ret, sff_num; + + check_p(g_drv->get_dev_number); + sff_num = g_drv->get_dev_number(WB_MAIN_DEV_SFF, WB_MINOR_DEV_NONE); + g_sff.sff_number = sff_num; + if (sff_num <= 0) { + SFF_ERR("ERROR. port number:%d\n", sff_num); + return -EINVAL; + } + + ret = sff_sub_create_kobj_and_attrs(&g_sff_obj->kobj, sff_num); + + return ret; +} + +static void sff_sub_remove(void) +{ + unsigned int sff_index; + + if (g_sff.sff) { + for (sff_index = g_sff.sff_number; sff_index > 0; sff_index--) { + sff_sub_single_remove_kobj_and_attrs(sff_index); + } + kfree(g_sff.sff); + } + mem_clear(&g_sff, sizeof(struct sff_t)); + return ; +} + +static int sff_xcvr_create(void) +{ + g_sff_obj = wb_plat_kobject_create(SFF_SYSFS_NAME, NULL); + if (!g_sff_obj) { + SFF_ERR("wb_plat_kobject_create sff error!\n"); + return -ENOMEM; + } + + g_sff_obj->index = 0; + if (sysfs_create_group(&g_sff_obj->kobj, &sff_xcvr_attr_group) != 0) { + wb_plat_kobject_delete(&g_sff_obj); + SFF_ERR("create sff dir attrs error!\n"); + return -EBADRQC; + } + SFF_DBG("wb_plat_kobject_create sff directory and attribute success.\n"); + return 0; +} + +static void sff_xcvr_remove(void) +{ + if (g_sff_obj) { + sysfs_remove_group(&g_sff_obj->kobj, &sff_xcvr_attr_group); + wb_plat_kobject_delete(&g_sff_obj); + SFF_DBG("delete sff root success\n"); + } + + return; +} + +static int wb_sff_init(void) +{ + int ret; + + SFF_INFO("wb_sff_init...\n"); + g_drv = dfd_plat_driver_get(); + check_p(g_drv); + + ret = sff_xcvr_create(); + if (ret < 0) { + goto sff_root_error; + } + + ret = sff_sub_create(); + if (ret < 0) { + goto sff_sub_error; + } + SFF_INFO("wb_sff_init ok.\n"); + return 0; + +sff_sub_error: + sff_xcvr_remove(); +sff_root_error: + return ret; +} + +static void wb_sff_exit(void) +{ + sff_sub_remove(); + sff_xcvr_remove(); + SFF_INFO("wb_sff_exit ok.\n"); + return ; +} + +module_init(wb_sff_init); +module_exit(wb_sff_exit); +module_param(g_loglevel, int, 0644); +MODULE_PARM_DESC(g_loglevel, "the log level(info=0x1, err=0x2, dbg=0x4).\n"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("sff sysfs driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_slot.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_slot.c new file mode 100644 index 000000000000..7c50f283bd06 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_slot.c @@ -0,0 +1,663 @@ +/* + * plat_slot.c + * + * This module create sff kobjects and attributes in /sys/wb_plat/slot + * + */ + +#include + +#include "./include/plat_switch.h" +#include "./include/sysfs_common.h" + +#define SLOT_INFO(fmt, args...) LOG_INFO("slot: ", fmt, ##args) +#define SLOT_ERR(fmt, args...) LOG_ERR("slot: ", fmt, ##args) +#define SLOT_DBG(fmt, args...) LOG_DBG("slot: ", fmt, ##args) + +struct slot_temp_obj_t{ + struct switch_obj *obj; +}; + +struct slot_in_obj_t{ + struct switch_obj *obj; +}; + +struct slot_obj_t{ + unsigned int temp_number; + unsigned int in_number; + struct slot_temp_obj_t *temp; + struct slot_in_obj_t *in; + struct switch_obj *obj; +}; + +struct slot_t{ + unsigned int slot_number; + struct slot_obj_t *slot; +}; + +static int g_loglevel = 0; +static struct slot_t g_slot; +static struct switch_obj *g_slot_obj = NULL; +static struct switch_drivers_t *g_drv = NULL; + +static ssize_t slot_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_slot.slot_number); +} + +static ssize_t slot_temp_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int index; + + index = obj->index; + SLOT_DBG("slot_temp_number_show,slot index:%d\n",index); + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_slot.slot[index-1].temp_number); +} + +static ssize_t slot_in_number_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int index; + + index = obj->index; + SLOT_DBG("slot_in_number_show,slot index:%d\n",index); + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", g_slot.slot[index-1].in_number); +} + +static ssize_t slot_present_status_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int slot_index; + int ret; + + slot_index = obj->index; + SLOT_DBG("slot_present_status_show, slot index:%d\n",slot_index); + check_p(g_drv); + check_p(g_drv->get_slot_present_status); + + ret = g_drv->get_slot_present_status(slot_index); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +static ssize_t slot_voltage_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int slot_index, in_index; + int ret; + struct switch_obj *p_obj; + struct switch_device_attribute *in_attr; + + check_p(g_drv); + check_p(g_drv->get_voltage_info); + + p_obj = to_switch_obj(obj->kobj.parent); + check_p(p_obj); + + slot_index = p_obj->index; + in_index = obj->index; + + in_attr = to_switch_device_attr(attr); + check_p(in_attr); + SLOT_DBG("slot_voltage_show, slot index:0x%x, temp index:0x%x, temp type:0x%x\n",slot_index, in_index, in_attr->type); + ret = g_drv->get_voltage_info(WB_MAIN_DEV_SLOT, slot_index, in_index, in_attr->type, buf); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + return ret; +} + +static ssize_t slot_temp_show(struct switch_obj *obj, struct switch_attribute *attr, char *buf) +{ + unsigned int slot_index, temp_index; + int ret; + struct switch_obj *p_obj; + struct switch_device_attribute *temp_attr; + + check_p(g_drv); + check_p(g_drv->get_temp_info); + + p_obj = to_switch_obj(obj->kobj.parent); + check_p(p_obj); + + slot_index = p_obj->index; + temp_index = obj->index; + + temp_attr = to_switch_device_attr(attr); + check_p(temp_attr); + SLOT_DBG("slot_temp_show, slot index:0x%x, temp index:0x%x, temp type:0x%x\n",slot_index, temp_index, temp_attr->type); + ret = g_drv->get_temp_info(WB_MAIN_DEV_SLOT, slot_index, temp_index, temp_attr->type, buf); + if(ret < 0) { + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", WB_SYSFS_DEV_ERROR); + } + return ret; +} + +/************************************slot dir and attrs*******************************************/ +static struct switch_attribute slot_number_att = __ATTR(num_slots, S_IRUGO, slot_number_show, NULL); + +static struct attribute *slot_dir_attrs[] = { + &slot_number_att.attr, + NULL, +}; + +static struct attribute_group slot_root_attr_group = { + .attrs = slot_dir_attrs, +}; + +/*******************************slot1 slot2 dir and attrs*******************************************/ +static struct switch_attribute num_temp_sensors_att = __ATTR(num_temp_sensors, S_IRUGO, slot_temp_number_show, NULL); +static struct switch_attribute num_in_sensors_att = __ATTR(num_in_sensors, S_IRUGO, slot_in_number_show, NULL); +static struct switch_attribute slot_present_status_att = __ATTR(present, S_IRUGO, slot_present_status_show, NULL); + +static struct attribute *slot_attrs[] = { + &num_temp_sensors_att.attr, + &num_in_sensors_att.attr, + &slot_present_status_att.attr, + NULL, +}; + +static struct attribute_group slot_attr_group = { + .attrs = slot_attrs, +}; + +/*******************************temp dir and attrs*******************************************/ +static SWITCH_DEVICE_ATTR(temp_alias, S_IRUGO, slot_temp_show, NULL, WB_SENSOR_ALIAS); +static SWITCH_DEVICE_ATTR(temp_type, S_IRUGO, slot_temp_show, NULL, WB_SENSOR_TYPE); +static SWITCH_DEVICE_ATTR(temp_max, S_IRUGO, slot_temp_show, NULL, WB_SENSOR_MAX); +static SWITCH_DEVICE_ATTR(temp_max_hyst, S_IRUGO, slot_temp_show, NULL, WB_SENSOR_MAX_HYST); +static SWITCH_DEVICE_ATTR(temp_min, S_IRUGO, slot_temp_show, NULL, WB_SENSOR_MIN); +static SWITCH_DEVICE_ATTR(temp_input, S_IRUGO, slot_temp_show, NULL, WB_SENSOR_INPUT); + +static struct attribute *temp_attrs[] = { + &switch_dev_attr_temp_alias.switch_attr.attr, + &switch_dev_attr_temp_type.switch_attr.attr, + &switch_dev_attr_temp_max.switch_attr.attr, + &switch_dev_attr_temp_max_hyst.switch_attr.attr, + &switch_dev_attr_temp_min.switch_attr.attr, + &switch_dev_attr_temp_input.switch_attr.attr, + NULL, +}; + +static struct attribute_group temp_attr_group = { + .attrs = temp_attrs, +}; + +/*******************************Voltage dir and attrs*******************************************/ +static SWITCH_DEVICE_ATTR(in_alias, S_IRUGO, slot_voltage_show, NULL, WB_SENSOR_ALIAS); +static SWITCH_DEVICE_ATTR(in_type, S_IRUGO, slot_voltage_show, NULL, WB_SENSOR_TYPE); +static SWITCH_DEVICE_ATTR(in_max, S_IRUGO, slot_voltage_show, NULL, WB_SENSOR_MAX); +static SWITCH_DEVICE_ATTR(in_crit, S_IRUGO, slot_voltage_show, NULL, WB_SENSOR_CRIT); +static SWITCH_DEVICE_ATTR(in_min, S_IRUGO, slot_voltage_show, NULL, WB_SENSOR_MIN); +static SWITCH_DEVICE_ATTR(in_input, S_IRUGO, slot_voltage_show, NULL, WB_SENSOR_INPUT); + +static struct attribute *in_attrs[] = { + &switch_dev_attr_in_alias.switch_attr.attr, + &switch_dev_attr_in_type.switch_attr.attr, + &switch_dev_attr_in_max.switch_attr.attr, + &switch_dev_attr_in_crit.switch_attr.attr, + &switch_dev_attr_in_min.switch_attr.attr, + &switch_dev_attr_in_input.switch_attr.attr, + NULL, +}; + +static struct attribute_group in_attr_group = { + .attrs = in_attrs, +}; + +static void slotindex_single_temp_remove_kobj_and_attrs(struct slot_obj_t * curr_slot, unsigned int temp_index) +{ + + struct slot_temp_obj_t *curr_temp; /* point to temp1 temp2...*/ + + curr_temp = &curr_slot->temp[temp_index - 1]; + if (curr_temp->obj) { + sysfs_remove_group(&curr_temp->obj->kobj, &temp_attr_group); + wb_plat_kobject_delete(&curr_temp->obj); + SLOT_DBG("delete slot:%d temp%d.\n", curr_slot->obj->index, temp_index); + } + return; +} + +static int slotindex_single_temp_create_kobj_and_attrs(struct slot_obj_t * curr_slot, unsigned int temp_index) +{ + char name[DIR_NAME_MAX_LEN]; + struct slot_temp_obj_t *curr_temp; /* point to temp1 temp2...*/ + + curr_temp = &curr_slot->temp[temp_index - 1]; + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "%s%d", TEMP_SYSFS_NAME, temp_index); + + curr_temp->obj = wb_plat_kobject_create(name, &curr_slot->obj->kobj); + if (!curr_temp->obj) { + SLOT_ERR("create slot_index:%d, temp%d object error!\n", curr_slot->obj->index, temp_index); + return -EBADRQC; + } + curr_temp->obj->index = temp_index; + if (sysfs_create_group(&curr_temp->obj->kobj, &temp_attr_group) != 0) { + SLOT_ERR("create slot_index:%d, temp%d attrs error.\n", curr_slot->obj->index, temp_index); + wb_plat_kobject_delete(&curr_temp->obj); + return -EBADRQC; + } + SLOT_DBG("create slot_index:%d, temp%d ok.\n", curr_slot->obj->index, temp_index); + return 0; +} + +static void slotindex_temp_remove_kobj_and_attrs(struct slot_obj_t * curr_slot) +{ + int temp_index; + + for(temp_index = curr_slot->temp_number; temp_index > 0; temp_index--) { + slotindex_single_temp_remove_kobj_and_attrs(curr_slot, temp_index); + } + + if(curr_slot->temp) { + kfree(curr_slot->temp); + curr_slot->temp = NULL; + curr_slot->temp_number = 0; + } + return; +} + +static int slotindex_temp_create_kobj_and_attrs(struct slot_obj_t * curr_slot, int temp_num) +{ + int temp_index, i; + + curr_slot->temp_number = temp_num; + curr_slot->temp = kzalloc(sizeof(struct slot_temp_obj_t) * temp_num, GFP_KERNEL); + if (!curr_slot->temp) { + SLOT_ERR("kzalloc slot temp error, slot index = %d, temp number = %d.\n", curr_slot->obj->index, temp_num); + return -ENOMEM; + } + + for (temp_index = 1; temp_index <= temp_num; temp_index++) { + if (slotindex_single_temp_create_kobj_and_attrs(curr_slot, temp_index) != 0) { + goto error; + } + } + return 0; +error: + for (i = temp_index - 1; i > 0; i--) { + slotindex_single_temp_remove_kobj_and_attrs(curr_slot, i); + } + + if (curr_slot->temp) { + kfree(curr_slot->temp); + curr_slot->temp = NULL; + curr_slot->temp_number = 0; + } + return -EBADRQC; +} + +static void slotindex_single_in_remove_kobj_and_attrs(struct slot_obj_t * curr_slot, unsigned int in_index) +{ + + struct slot_in_obj_t *curr_in; /* point to in1 in2...*/ + + curr_in = &curr_slot->in[in_index - 1]; + if (curr_in->obj) { + sysfs_remove_group(&curr_in->obj->kobj, &in_attr_group); + wb_plat_kobject_delete(&curr_in->obj); + SLOT_DBG("delete slot:%d in%d.\n", curr_slot->obj->index, in_index); + } + return; +} + +static int slotindex_single_in_create_kobj_and_attrs(struct slot_obj_t * curr_slot, unsigned int in_index) +{ + char name[DIR_NAME_MAX_LEN]; + struct slot_in_obj_t *curr_in; /* point to in1 in2...*/ + + curr_in = &curr_slot->in[in_index - 1]; + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "%s%d", VOLTAGE_SYSFS_NAME, in_index); + curr_in->obj = wb_plat_kobject_create(name, &curr_slot->obj->kobj); + if (!curr_in->obj) { + SLOT_ERR("create slot_index:%d, in%d object error!\n", curr_slot->obj->index, in_index); + return -EBADRQC; + } + curr_in->obj->index = in_index; + if (sysfs_create_group(&curr_in->obj->kobj, &in_attr_group) != 0) { + SLOT_ERR("create slot_index:%d, in%d attrs error.\n", curr_slot->obj->index, in_index); + wb_plat_kobject_delete(&curr_in->obj); + return -EBADRQC; + } + SLOT_DBG("create slot_index:%d, in%d ok.\n", curr_slot->obj->index, in_index); + return 0; +} + +static void slotindex_in_remove_kobj_and_attrs(struct slot_obj_t * curr_slot) +{ + int in_index; + + for(in_index = curr_slot->in_number; in_index > 0; in_index--) { + slotindex_single_in_remove_kobj_and_attrs(curr_slot, in_index); + } + + if(curr_slot->in) { + kfree(curr_slot->in); + curr_slot->in = NULL; + curr_slot->in_number = 0; + } + return; +} + +static int slotindex_in_create_kobj_and_attrs(struct slot_obj_t * curr_slot, int in_num) +{ + int in_index, i; + + curr_slot->in_number = in_num; + curr_slot->in = kzalloc(sizeof(struct slot_in_obj_t) * in_num, GFP_KERNEL); + if (!curr_slot->in) { + SLOT_ERR("kzalloc slot Voltage error, slot index = %d, Voltage number = %d.\n", curr_slot->obj->index, in_num); + return -ENOMEM; + } + + for (in_index = 1; in_index <= in_num; in_index++) { + if (slotindex_single_in_create_kobj_and_attrs(curr_slot, in_index) != 0 ) { + goto error; + } + } + return 0; +error: + for (i = in_index - 1; i > 0; i++) { + slotindex_single_in_remove_kobj_and_attrs(curr_slot, i); + } + + if (curr_slot->in) { + kfree(curr_slot->in); + curr_slot->in = NULL; + curr_slot->in_number = 0; + } + return -EBADRQC; +} + +static void slotindex_obj_remove_kobj_and_attrs(struct slot_obj_t * curr_slot, unsigned int obj_id) +{ + switch (obj_id) { + case WB_MINOR_DEV_TEMP: + slotindex_temp_remove_kobj_and_attrs(curr_slot); + break; + case WB_MINOR_DEV_IN: + slotindex_in_remove_kobj_and_attrs(curr_slot); + break; + default: + SLOT_ERR("Unknow obj id:%d\n", obj_id); + } + return ; +} + +static int slotindex_obj_create_kobj_and_attrs(struct slot_obj_t * curr_slot, unsigned int obj_id, int obj_num) +{ + int ret; + + switch (obj_id) { + case WB_MINOR_DEV_TEMP: + ret = slotindex_temp_create_kobj_and_attrs(curr_slot, obj_num); + break; + case WB_MINOR_DEV_IN: + ret = slotindex_in_create_kobj_and_attrs(curr_slot, obj_num); + break; + default: + SLOT_ERR("Unknow obj id:%d\n", obj_id); + ret = -EINVAL; + } + return ret; +} + +static void slot_child_obj_remove_by_id(unsigned int obj_id) +{ + int slot_num; + unsigned int slot_index; + struct slot_obj_t *curr_slot; /* point to slot1 slot2...*/ + + slot_num = g_slot.slot_number; + if (slot_num <= 0 || !g_slot.slot) { + SLOT_DBG("Warning:slot number = %d\n", slot_num); + return; + } + + for(slot_index = slot_num; slot_index > 0; slot_index--) { + curr_slot = &g_slot.slot[slot_index - 1]; + slotindex_obj_remove_kobj_and_attrs(curr_slot, obj_id); + } + return; +} + +static int slot_child_obj_create_by_id(unsigned int obj_id) +{ + int slot_num, obj_num; + unsigned int slot_index, i; + struct slot_obj_t *curr_slot; /* point to slot1 slot2...*/ + + check_p(g_drv->get_dev_number); + obj_num = g_drv->get_dev_number(WB_MAIN_DEV_SLOT,obj_id); + slot_num = g_slot.slot_number; + if (obj_num <= 0 || slot_num <= 0 || !g_slot.slot) { + SLOT_DBG("Warning:slot number = %d, object number:%d.obj_id:%d\n", slot_num, obj_num, obj_id); + return 0; + } + + for (slot_index = 1; slot_index <= slot_num; slot_index++) { + curr_slot = &g_slot.slot[slot_index - 1]; + if (slotindex_obj_create_kobj_and_attrs(curr_slot, obj_id, obj_num) != 0) { + goto error; + } + } + return 0; +error: + for(i = slot_index - 1; i > 0; i++) { + curr_slot = &g_slot.slot[i - 1]; + slotindex_obj_remove_kobj_and_attrs(curr_slot, obj_id); + } + return -EBADRQC; +} + +static void slot_child_obj_remove(void) +{ + /* temp remove */ + slot_child_obj_remove_by_id(WB_MINOR_DEV_TEMP); + + /* in creat */ + slot_child_obj_remove_by_id(WB_MINOR_DEV_IN); + return; +} + +static int slot_child_obj_create(void) +{ + int ret; + + /* temp creat */ + ret = slot_child_obj_create_by_id(WB_MINOR_DEV_TEMP); + if (ret < 0) { + goto temp_err; + } + /* Voltage creat */ + ret = slot_child_obj_create_by_id(WB_MINOR_DEV_IN); + if(ret < 0) { + goto in_err; + } + return 0; +in_err: + slot_child_obj_remove_by_id(WB_MINOR_DEV_TEMP); +temp_err: + return ret; +} + +static void slot_sub_single_remove_kobj_and_attrs(unsigned int index) +{ + struct slot_obj_t *curr_slot; + + curr_slot = &g_slot.slot[index - 1]; + if (curr_slot->obj) { + sysfs_remove_group(&curr_slot->obj->kobj, &slot_attr_group); + wb_plat_kobject_delete(&curr_slot->obj); + SLOT_DBG("delete slot%d.\n", index); + } + return; +} + +static int slot_sub_single_create_kobj_and_attrs(struct kobject *parent, unsigned int index) +{ + char name[DIR_NAME_MAX_LEN]; + struct slot_obj_t *curr_slot; + + curr_slot = &g_slot.slot[index - 1]; + SLOT_DBG("create %s%d ...\n", SLOT_SYSFS_NAME, index); + mem_clear(name, sizeof(name)); + snprintf(name, sizeof(name), "%s%d", SLOT_SYSFS_NAME, index); + curr_slot->obj = wb_plat_kobject_create(name, parent); + if (!curr_slot->obj) { + SLOT_ERR("create slot%d object error!\n", index); + return -EBADRQC; + } + curr_slot->obj->index = index; + if (sysfs_create_group(&curr_slot->obj->kobj, &slot_attr_group) != 0) { + SLOT_ERR("create slot%d attrs error.\n", index); + wb_plat_kobject_delete(&curr_slot->obj); + return -EBADRQC; + } + SLOT_DBG("create slot%d ok.\n", index); + return 0; +} + +static int slot_sub_create_kobj_and_attrs(struct kobject *parent, int slot_num) +{ + unsigned int slot_index, i; + + g_slot.slot = kzalloc(sizeof(struct slot_obj_t) * slot_num, GFP_KERNEL); + if (!g_slot.slot) { + SLOT_ERR("kzalloc slot.slot error, slot number = %d.\n", slot_num); + return -ENOMEM; + } + + for (slot_index = 1; slot_index <= slot_num; slot_index++) { + if (slot_sub_single_create_kobj_and_attrs(parent, slot_index) != 0) { + goto error; + } + } + return 0; +error: + for (i = slot_index - 1; i > 0; i--) { + slot_sub_single_remove_kobj_and_attrs(i); + } + if (g_slot.slot) { + kfree(g_slot.slot); + g_slot.slot = NULL; + } + return -EBADRQC; +} + +/* create slot1 slot2...dir and attrs */ +static int slot_sub_create(void) +{ + int ret, slot_num; + + check_p(g_drv->get_dev_number); + slot_num = g_drv->get_dev_number(WB_MAIN_DEV_SLOT, WB_MINOR_DEV_NONE); + g_slot.slot_number = slot_num; + if (slot_num <= 0) { + SLOT_DBG("Warning:slot number = %d \n", slot_num); + return 0; + } + ret = slot_sub_create_kobj_and_attrs(&g_slot_obj->kobj, slot_num); + return ret; +} + +/** + * slot_sub_remove - delete slot1 slot2...dir and attrs + */ +static void slot_sub_remove(void) +{ + unsigned int slot_index; + + if (g_slot.slot) { + for (slot_index = g_slot.slot_number; slot_index > 0; slot_index--) { + slot_sub_single_remove_kobj_and_attrs(slot_index); + } + kfree(g_slot.slot); + } + mem_clear(&g_slot, sizeof(struct slot_t)); + return ; +} + +/* create slot dir and num_slots attr */ +static int slot_root_create(void) +{ + g_slot_obj = wb_plat_kobject_create(SLOT_SYSFS_NAME, NULL); + if (!g_slot_obj) { + SLOT_ERR("wb_plat_kobject_create slot error!\n"); + return -ENOMEM; + } + + if (sysfs_create_group(&g_slot_obj->kobj, &slot_root_attr_group) != 0) { + wb_plat_kobject_delete(&g_slot_obj); + SLOT_ERR("create slot dir attrs error!\n"); + return -EBADRQC; + } + SLOT_DBG("wb_plat_kobject_create slot directory and attribute success.\n"); + return 0; +} + +static void slot_root_remove(void) +{ + if (g_slot_obj) { + sysfs_remove_group(&g_slot_obj->kobj, &slot_root_attr_group); + wb_plat_kobject_delete(&g_slot_obj); + SLOT_DBG("delete slot root success\n"); + } + + return; +} + +static int wb_slot_init(void) +{ + int ret; + + SLOT_INFO("wb_slot_init...\n"); + g_drv = dfd_plat_driver_get(); + check_p(g_drv); + + ret = slot_root_create(); + if (ret < 0) { + goto slot_root_error; + } + + ret = slot_sub_create(); + if (ret < 0) { + goto slot_sub_error; + } + + ret = slot_child_obj_create(); + if (ret < 0) { + goto slot_child_obj_error; + } + + SLOT_INFO("wb_slot_init ok.\n"); + return 0; +slot_child_obj_error: + slot_sub_remove(); +slot_sub_error: + slot_root_remove(); +slot_root_error: + return ret; +} + +static void wb_slot_exit(void) +{ + slot_child_obj_remove(); + slot_sub_remove(); + slot_root_remove(); + SLOT_INFO("wb_slot_exit ok.\n"); + return ; +} + +module_init(wb_slot_init); +module_exit(wb_slot_exit); +module_param(g_loglevel, int, 0644); +MODULE_PARM_DESC(g_loglevel, "the log level(info=0x1, err=0x2, dbg=0x4).\n"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("slot sysfs driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c new file mode 100644 index 000000000000..9563260f32b4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c @@ -0,0 +1,131 @@ +/* + * plat_switch.c + * + * This module create a kset in sysfs called /sys/wb_plat + * Then other switch kobjects are created and assigned to this kset, + * such as "board", "cpld", "fan", "psu", "sff", ... + * + */ +#include "./include/plat_switch.h" + +#define SWITCH_INFO(fmt, args...) LOG_INFO("switch: ", fmt, ##args) +#define SWITCH_ERR(fmt, args...) LOG_ERR("switch: ", fmt, ##args) +#define SWITCH_DBG(fmt, args...) LOG_DBG("switch: ", fmt, ##args) + +static int g_loglevel = 0; + +static ssize_t switch_attr_show(struct kobject *kobj, + struct attribute *attr, char *buf) +{ + struct switch_attribute *attribute; + struct switch_obj *device; + + attribute = to_switch_attr(attr); + device = to_switch_obj(kobj); + + if (!attribute->show) + return -ENOSYS; + + return attribute->show(device, attribute, buf); +} + +static ssize_t switch_attr_store(struct kobject *kobj, + struct attribute *attr, const char *buf, size_t len) +{ + struct switch_attribute *attribute; + struct switch_obj *obj; + + attribute = to_switch_attr(attr); + obj = to_switch_obj(kobj); + + if (!attribute->store) + return -ENOSYS; + + return attribute->store(obj, attribute, buf, len); +} + +static const struct sysfs_ops switch_sysfs_ops = { + .show = switch_attr_show, + .store = switch_attr_store, +}; + +static void switch_obj_release(struct kobject *kobj) +{ + struct switch_obj *obj; + + obj = to_switch_obj(kobj); + kfree(obj); +} + +static struct kobj_type switch_ktype = { + .sysfs_ops = &switch_sysfs_ops, + .release = switch_obj_release, + .default_attrs = NULL, +}; + +static struct kset *switch_kset; + +struct switch_obj *wb_plat_kobject_create(const char *name, struct kobject *parent) +{ + struct switch_obj *obj = NULL; + int ret = 0; + + obj = kzalloc(sizeof(*obj), GFP_KERNEL); + if (!obj) { + SWITCH_DBG("wb_plat_kobject_create %s kzalloc error", name); + return NULL; + } + + obj->kobj.kset = switch_kset; + + ret = kobject_init_and_add(&obj->kobj, &switch_ktype, parent, "%s", name); + if (ret) { + kobject_put(&obj->kobj); + SWITCH_DBG("kobject_init_and_add %s error", name); + return NULL; + } + + return obj; +} + +void wb_plat_kobject_delete(struct switch_obj **obj) +{ + if (*obj) { + SWITCH_DBG("%s delete %s.\n", (*obj)->kobj.parent->name, (*obj)->kobj.name); + kobject_put(&((*obj)->kobj)); + *obj = NULL; + } +} + +static int __init switch_init(void) +{ + SWITCH_INFO("...\n"); + + switch_kset = kset_create_and_add("wb_plat", NULL, NULL); + if (!switch_kset) { + SWITCH_ERR("create switch_kset error.\n"); + return -ENOMEM; + } + + SWITCH_INFO("ok.\n"); + return 0; +} + +static void __exit switch_exit(void) +{ + if (switch_kset) { + kset_unregister(switch_kset); + } + + SWITCH_INFO("ok.\n"); +} + +module_init(switch_init); +module_exit(switch_exit); +EXPORT_SYMBOL(wb_plat_kobject_create); +EXPORT_SYMBOL(wb_plat_kobject_delete); +module_param(g_loglevel, int, 0644); +MODULE_PARM_DESC(g_loglevel, "the log level(info=0x1, err=0x2, dbg=0x4).\n"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("Switch driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common.h new file mode 100644 index 000000000000..9e4a4fae00c1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common.h @@ -0,0 +1,74 @@ +#ifndef __PLATFORM_COMMON_H__ +#define __PLATFORM_COMMON_H__ + +#include +#include +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +typedef enum { + DBG_START, + DBG_VERBOSE, + DBG_KEY, + DBG_WARN, + DBG_ERROR, + DBG_END, +} dbg_level_t; + + typedef struct dfd_i2c_dev_s { + int bus; + int addr; + } dfd_i2c_dev_t; + +typedef struct dfd_dev_head_info_s { + uint8_t ver; + uint8_t flag; + uint8_t hw_ver; + uint8_t type; + int16_t tlv_len; +} dfd_dev_head_info_t; + +typedef struct dfd_dev_tlv_info_s { + uint8_t type; + uint8_t len; + uint8_t data[0]; +} dfd_dev_tlv_info_t; + +typedef enum dfd_dev_info_type_e { + DFD_DEV_INFO_TYPE_MAC = 1, + DFD_DEV_INFO_TYPE_NAME = 2, + DFD_DEV_INFO_TYPE_SN = 3, + DFD_DEV_INFO_TYPE_PWR_CONS = 4, + DFD_DEV_INFO_TYPE_HW_INFO = 5, + DFD_DEV_INFO_TYPE_DEV_TYPE = 6, +} dfd_dev_tlv_type_t; + +extern int debuglevel; +extern s32 platform_i2c_smbus_read_byte_data(const struct i2c_client *client, u8 command); +extern s32 platform_i2c_smbus_read_i2c_block_data(const struct i2c_client *client, + u8 command, u8 length, u8 *values); +extern s32 platform_i2c_smbus_read_word_data(const struct i2c_client *client, u8 command); + +#define DBG_DEBUG(fmt, arg...) do { \ + if ( debuglevel > DBG_START && debuglevel < DBG_ERROR) { \ + printk(KERN_INFO "[DEBUG]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } else if ( debuglevel >= DBG_ERROR ) { \ + printk(KERN_ERR "[DEBUG]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } else { } \ +} while (0) + +#define DBG_INFO(fmt, arg...) do { \ + if ( debuglevel > DBG_KEY) { \ + printk(KERN_INFO "[INFO]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } \ + } while (0) + +#define DBG_ERROR(fmt, arg...) do { \ + if ( debuglevel > DBG_START) { \ + printk(KERN_ERR "[ERROR]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } \ + } while (0) + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common_module.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common_module.c new file mode 100644 index 000000000000..189a3aa056b2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/platform_common_module.c @@ -0,0 +1,210 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,152) +#include +#else +#include +#endif +#include +#include +#include +#include +#include "platform_common.h" +#include "dfd_tlveeprom.h" + +#define PLATFORM_I2C_RETRY_TIMES 3 + +#define DFD_TLVEEPROM_I2C_BUS (0) +#define DFD_TLVEEPROM_I2C_ADDR (0x56) +#define DFD_E2PROM_MAX_LEN (256) +#define DFD_CARDTYPE_EXT_TLVLEN (4) + +#define PLATFORM_CARDTYPE_RETRY_CNT (10) +#define PLATFORM_CARDTYPE_RETRY_TIMES (1000) + +int debuglevel = 0; +module_param(debuglevel, int, S_IRUGO | S_IWUSR); + +static int dfd_my_type = 0; +module_param(dfd_my_type, int, S_IRUGO | S_IWUSR); + +int g_common_debug_error = 0; +module_param(g_common_debug_error, int, S_IRUGO | S_IWUSR); + +int g_common_debug_verbose = 0; +module_param(g_common_debug_verbose, int, S_IRUGO | S_IWUSR); + +uint32_t dfd_my_type_i2c_bus = 0; +module_param(dfd_my_type_i2c_bus, int, S_IRUGO | S_IWUSR); + +uint32_t dfd_my_type_i2c_addr = 0; +module_param(dfd_my_type_i2c_addr, int, S_IRUGO | S_IWUSR); + +#define PLATFORM_COMMON_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_common_debug_verbose) { \ + printk(KERN_ERR "[PLATFORM_COMMON][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define PLATFORM_COMMON_DEBUG_ERROR(fmt, args...) do { \ + if (g_common_debug_error) { \ + printk(KERN_ERR "[PLATFORM_COMMON][ERROR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static int32_t dfd_i2c_read(char *dev, uint32_t addr, uint32_t offset_addr, unsigned char * +buf, int32_t size) +{ + struct file *fp; + struct i2c_client client; + int i ,j; + int rv; + s32 val_t; + + val_t = -1; + rv = 0; + fp = filp_open(dev, O_RDWR, S_IRUSR | S_IWUSR); + if (IS_ERR(fp)) { + DBG_ERROR("i2c open fail.\n"); + PLATFORM_COMMON_DEBUG_ERROR("i2c open fail.\n"); + return -1; + } + memcpy(&client, fp->private_data, sizeof(struct i2c_client)); + client.addr = addr; + for (j = 0 ;j < size ;j++){ + for (i = 0; i < PLATFORM_I2C_RETRY_TIMES; i++) { + if ((val_t = i2c_smbus_read_byte_data(&client, (offset_addr + j)))< 0) { + DBG_DEBUG("read try(%d)time offset_addr:%x \n", i, offset_addr); + continue; + } else { + * (buf + j) = val_t; + break; + } + } + if (val_t < 0) { + rv = -1; + break; + } + } + filp_close(fp, NULL); + return rv; +} + +static int dfd_tlvinfo_get_cardtype(void) +{ + char i2c_path[16] = {0}; + int ret; + int cardtype; + u_int8_t eeprom[DFD_E2PROM_MAX_LEN]; + dfd_i2c_dev_t i2c_dev; + uint8_t buf[DFD_CARDTYPE_EXT_TLVLEN]; + uint8_t len; + dfd_tlv_type_t tlv_type; + + if (dfd_my_type_i2c_bus != 0) { + i2c_dev.bus = dfd_my_type_i2c_bus; + } else { + i2c_dev.bus = DFD_TLVEEPROM_I2C_BUS; + } + + if (dfd_my_type_i2c_addr != 0) { + i2c_dev.addr = dfd_my_type_i2c_addr; + } else { + i2c_dev.addr = DFD_TLVEEPROM_I2C_ADDR; + } + snprintf(i2c_path, sizeof(i2c_path), "/dev/i2c-%d", i2c_dev.bus); + PLATFORM_COMMON_DEBUG_VERBOSE("Read device eeprom info:(dev:%s, addr:%02x).\n", i2c_path, i2c_dev.addr); + + ret = dfd_i2c_read(i2c_path, i2c_dev.addr, 0, eeprom, DFD_E2PROM_MAX_LEN); + if (ret != 0) { + DBG_ERROR("Read eeprom info error(dev: %s, addr: %02x).\n", i2c_path, i2c_dev.addr); + PLATFORM_COMMON_DEBUG_ERROR("Read eeprom info error(dev: %s, addr: %02x).\n", i2c_path, i2c_dev.addr); + return ret; + } + + tlv_type.main_type = TLV_CODE_VENDOR_EXT; + tlv_type.ext_type = DFD_TLVINFO_EXT_TLV_TYPE_DEV_TYPE; + len = sizeof(buf); + mem_clear(buf, len); + ret = dfd_tlvinfo_get_e2prom_info(eeprom, DFD_E2PROM_MAX_LEN, &tlv_type, buf, &len); + if (ret) { + DBG_ERROR("dfd_tlvinfo_get_e2prom_info failed ret %d.\n", ret); + return -1; + } + for (ret = 0; ret < 4; ret++) { + DBG_DEBUG("buf 0x%02x.\n", buf[ret]); + } + + cardtype = ntohl(*((uint32_t *)buf)); + DBG_DEBUG("cardtype 0x%x.\n", cardtype); + return cardtype; +} + +static int __dfd_get_my_card_type(void) +{ + return dfd_tlvinfo_get_cardtype(); +} + +int dfd_get_my_card_type(void) +{ + int type; + int cnt; + + if (dfd_my_type != 0) { + DBG_DEBUG("my_type = 0x%x\r\n", dfd_my_type); + return dfd_my_type; + } + + cnt = PLATFORM_CARDTYPE_RETRY_CNT; + while (cnt--) { + type = __dfd_get_my_card_type(); + if (type < 0) { + PLATFORM_COMMON_DEBUG_ERROR("__dfd_get_my_card_type fail cnt %d, ret %d.\n", cnt, type); + msleep(PLATFORM_CARDTYPE_RETRY_TIMES); + continue; + } + PLATFORM_COMMON_DEBUG_VERBOSE("success to get type 0x%x.\n", type); + break; + } + + dfd_my_type = type; + return dfd_my_type; +} +EXPORT_SYMBOL(dfd_get_my_card_type); + +static int __init platform_common_init(void) +{ + int ret; + + PLATFORM_COMMON_DEBUG_VERBOSE("Enter.\n"); + ret = dfd_get_my_card_type(); + if (ret <= 0) { + PLATFORM_COMMON_DEBUG_ERROR("dfd_get_my_card_type failed, ret %d.\n", ret); + printk(KERN_ERR "Warning: Device type get failed, please check the TLV-EEPROM!\n"); + return -1; + } + + PLATFORM_COMMON_DEBUG_VERBOSE("Leave success type 0x%x.\n", ret); + return 0; +} + +static void __exit platform_common_exit(void) +{ + PLATFORM_COMMON_DEBUG_VERBOSE("Exit.\n"); +} + +module_init(platform_common_init); +module_exit(platform_common_exit); + +MODULE_DESCRIPTION("Platform Support"); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/spi-bitbang-txrx.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/spi-bitbang-txrx.h new file mode 100644 index 000000000000..47bb9b898dfd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/spi-bitbang-txrx.h @@ -0,0 +1,107 @@ +/* + * Mix this utility code with some glue code to get one of several types of + * simple SPI master driver. Two do polled word-at-a-time I/O: + * + * - GPIO/parport bitbangers. Provide chipselect() and txrx_word[](), + * expanding the per-word routines from the inline templates below. + * + * - Drivers for controllers resembling bare shift registers. Provide + * chipselect() and txrx_word[](), with custom setup()/cleanup() methods + * that use your controller's clock and chipselect registers. + * + * Some hardware works well with requests at spi_transfer scope: + * + * - Drivers leveraging smarter hardware, with fifos or DMA; or for half + * duplex (MicroWire) controllers. Provide chipselect() and txrx_bufs(), + * and custom setup()/cleanup() methods. + */ + +/* + * The code that knows what GPIO pins do what should have declared four + * functions, ideally as inlines, before including this header: + * + * void setsck(struct spi_device *, int is_on); + * void setmosi(struct spi_device *, int is_on); + * int getmiso(struct spi_device *); + * void spidelay(unsigned); + * + * setsck()'s is_on parameter is a zero/nonzero boolean. + * + * setmosi()'s is_on parameter is a zero/nonzero boolean. + * + * getmiso() is required to return 0 or 1 only. Any other value is invalid + * and will result in improper operation. + * + * A non-inlined routine would call bitbang_txrx_*() routines. The + * main loop could easily compile down to a handful of instructions, + * especially if the delay is a NOP (to run at peak speed). + * + * Since this is software, the timings may not be exactly what your board's + * chips need ... there may be several reasons you'd need to tweak timings + * in these routines, not just to make it faster or slower to match a + * particular CPU clock rate. + */ + +static inline u32 +bitbang_txrx_be_cpha0(struct spi_device *spi, + unsigned nsecs, unsigned cpol, unsigned flags, + u32 word, u8 bits) +{ + /* if (cpol == 0) this is SPI_MODE_0; else this is SPI_MODE_2 */ + + u32 oldbit = (!(word & (1<<(bits-1)))) << 31; + /* clock starts at inactive polarity */ + for (word <<= (32 - bits); likely(bits); bits--) { + + /* setup MSB (to slave) on trailing edge */ + if ((flags & SPI_MASTER_NO_TX) == 0) { + if ((word & (1 << 31)) != oldbit) { + setmosi(spi, word & (1 << 31)); + oldbit = word & (1 << 31); + } + } + spidelay(nsecs); /* T(setup) */ + + setsck(spi, !cpol); + spidelay(nsecs); + + /* sample MSB (from slave) on leading edge */ + word <<= 1; + if ((flags & SPI_MASTER_NO_RX) == 0) + word |= getmiso(spi); + setsck(spi, cpol); + } + return word; +} + +static inline u32 +bitbang_txrx_be_cpha1(struct spi_device *spi, + unsigned nsecs, unsigned cpol, unsigned flags, + u32 word, u8 bits) +{ + /* if (cpol == 0) this is SPI_MODE_1; else this is SPI_MODE_3 */ + + u32 oldbit = (!(word & (1<<(bits-1)))) << 31; + /* clock starts at inactive polarity */ + for (word <<= (32 - bits); likely(bits); bits--) { + + /* setup MSB (to slave) on leading edge */ + setsck(spi, !cpol); + if ((flags & SPI_MASTER_NO_TX) == 0) { + if ((word & (1 << 31)) != oldbit) { + setmosi(spi, word & (1 << 31)); + oldbit = word & (1 << 31); + } + } + spidelay(nsecs); /* T(setup) */ + + setsck(spi, cpol); + spidelay(nsecs); + + /* sample MSB (from slave) on trailing edge */ + word <<= 1; + if ((flags & SPI_MASTER_NO_RX) == 0) + word |= getmiso(spi); + } + return word; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c new file mode 100644 index 000000000000..2ba7e7912ed5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c @@ -0,0 +1,558 @@ +/* + * Driver for 93xx46 EEPROMs + * + * (C) 2011 DENX Software Engineering, Anatolij Gustschin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +#define OP_START 0x4 +#define OP_WRITE (OP_START | 0x1) +#define OP_READ (OP_START | 0x2) +#define ADDR_EWDS 0x00 +#define ADDR_ERAL 0x20 +#define ADDR_EWEN 0x30 + +static int g_wb_eeprom_93xx46_debug = 0; + +module_param(g_wb_eeprom_93xx46_debug, int, S_IRUGO | S_IWUSR); + +#define SPI_93xx46_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_eeprom_93xx46_debug) { \ + printk(KERN_INFO "[EEPROM-93xx46][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct eeprom_93xx46_devtype_data { + unsigned int quirks; +}; + +static const struct eeprom_93xx46_devtype_data atmel_at93c46d_data = { + .quirks = EEPROM_93XX46_QUIRK_SINGLE_WORD_READ | + EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH, +}; + +struct eeprom_93xx46_dev { + struct spi_device *spi; + struct eeprom_93xx46_platform_data *pdata; + struct mutex lock; + struct nvmem_config nvmem_config; + struct nvmem_device *nvmem; + int addrlen; + int size; +}; + +static inline bool has_quirk_single_word_read(struct eeprom_93xx46_dev *edev) +{ + return edev->pdata->quirks & EEPROM_93XX46_QUIRK_SINGLE_WORD_READ; +} + +static inline bool has_quirk_instruction_length(struct eeprom_93xx46_dev *edev) +{ + return edev->pdata->quirks & EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH; +} + +static int eeprom_93xx46_read(void *priv, unsigned int off, + void *val, size_t count) +{ + struct eeprom_93xx46_dev *edev = priv; + char *buf = val; + int err = 0; + + if (unlikely(off >= edev->size)) + return 0; + if ((off + count) > edev->size) + count = edev->size - off; + if (unlikely(!count)) + return count; + + mutex_lock(&edev->lock); + + if (edev->pdata->prepare) + edev->pdata->prepare(edev); + + while (count) { + struct spi_message m; + struct spi_transfer t[2] = { { 0 } }; + u16 cmd_addr = OP_READ << edev->addrlen; + size_t nbytes = count; + int bits; + int data_bit; + + if (edev->addrlen == 7) { + cmd_addr |= off & 0x7f; + bits = 10; + data_bit = 8; + if (has_quirk_single_word_read(edev)) + nbytes = 1; + } else { + cmd_addr |= (off >> 1) & 0x3f; + bits = 9; + data_bit = 16; + if (has_quirk_single_word_read(edev)) + nbytes = 2; + } + + dev_dbg(&edev->spi->dev, "read cmd 0x%x, %d Hz\n", + cmd_addr, edev->spi->max_speed_hz); + + spi_message_init(&m); + + t[0].tx_buf = (char *)&cmd_addr; + t[0].len = 2; + t[0].bits_per_word = bits; + spi_message_add_tail(&t[0], &m); + + t[1].rx_buf = buf; + t[1].len = nbytes; + t[1].bits_per_word = data_bit; + spi_message_add_tail(&t[1], &m); + + err = spi_sync(edev->spi, &m); + /* have to wait at least Tcsl ns */ + ndelay(250); + + if (err) { + dev_err(&edev->spi->dev, "read %zu bytes at %d: err. %d\n", + nbytes, (int)off, err); + break; + } + + buf += nbytes; + off += nbytes; + count -= nbytes; + } + + if (edev->pdata->finish) + edev->pdata->finish(edev); + + mutex_unlock(&edev->lock); + + return err; +} + +static int eeprom_93xx46_ew(struct eeprom_93xx46_dev *edev, int is_on) +{ + struct spi_message m; + struct spi_transfer t; + int bits, ret; + u16 cmd_addr; + + cmd_addr = OP_START << edev->addrlen; + if (edev->addrlen == 7) { + cmd_addr |= (is_on ? ADDR_EWEN : ADDR_EWDS) << 1; + bits = 10; + } else { + cmd_addr |= (is_on ? ADDR_EWEN : ADDR_EWDS); + bits = 9; + } + + if (has_quirk_instruction_length(edev)) { + cmd_addr <<= 2; + bits += 2; + } + + dev_dbg(&edev->spi->dev, "ew%s cmd 0x%04x, %d bits\n", + is_on ? "en" : "ds", cmd_addr, bits); + + spi_message_init(&m); + mem_clear(&t, sizeof(t)); + + t.tx_buf = &cmd_addr; + t.len = 2; + t.bits_per_word = bits; + spi_message_add_tail(&t, &m); + + mutex_lock(&edev->lock); + + if (edev->pdata->prepare) + edev->pdata->prepare(edev); + + ret = spi_sync(edev->spi, &m); + /* have to wait at least Tcsl ns */ + ndelay(250); + if (ret) + dev_err(&edev->spi->dev, "erase/write %sable error %d\n", + is_on ? "en" : "dis", ret); + + if (edev->pdata->finish) + edev->pdata->finish(edev); + + mutex_unlock(&edev->lock); + return ret; +} + +static ssize_t +eeprom_93xx46_write_word(struct eeprom_93xx46_dev *edev, + char *buf, unsigned off) +{ + struct spi_message m; + struct spi_transfer t[2]; + int bits, data_len, ret; + u16 cmd_addr; + int data_bit; + + cmd_addr = OP_WRITE << edev->addrlen; + + if (edev->addrlen == 7) { + cmd_addr |= off & 0x7f; + bits = 10; + data_len = 1; + data_bit = 8; + } else { + cmd_addr |= (off >> 1) & 0x3f; + bits = 9; + data_len = 2; + data_bit = 16; + } + + dev_dbg(&edev->spi->dev, "write cmd 0x%x\n", cmd_addr); + + spi_message_init(&m); + mem_clear(t, sizeof(t)); + + t[0].tx_buf = (char *)&cmd_addr; + t[0].len = 2; + t[0].bits_per_word = bits; + spi_message_add_tail(&t[0], &m); + + t[1].tx_buf = buf; + t[1].len = data_len; + t[1].bits_per_word = data_bit; + spi_message_add_tail(&t[1], &m); + + ret = spi_sync(edev->spi, &m); + /* have to wait program cycle time Twc ms */ + mdelay(6); + return ret; +} + +static int eeprom_93xx46_write(void *priv, unsigned int off, + void *val, size_t count) +{ + struct eeprom_93xx46_dev *edev = priv; + char *buf = val; + int i, ret, step = 1; + + if (unlikely(off >= edev->size)) + return -EFBIG; + if ((off + count) > edev->size) + count = edev->size - off; + if (unlikely(!count)) + return count; + + /* only write even number of bytes on 16-bit devices */ + if (edev->addrlen == 6) { + step = 2; + count &= ~1; + } + + /* erase/write enable */ + ret = eeprom_93xx46_ew(edev, 1); + if (ret) + return ret; + + mutex_lock(&edev->lock); + + if (edev->pdata->prepare) + edev->pdata->prepare(edev); + + for (i = 0; i < count; i += step) { + ret = eeprom_93xx46_write_word(edev, &buf[i], off + i); + if (ret) { + dev_err(&edev->spi->dev, "write failed at %d: %d\n", + (int)off + i, ret); + break; + } + } + + if (edev->pdata->finish) + edev->pdata->finish(edev); + + mutex_unlock(&edev->lock); + + /* erase/write disable */ + eeprom_93xx46_ew(edev, 0); + return ret; +} + +static int eeprom_93xx46_eral(struct eeprom_93xx46_dev *edev) +{ + struct eeprom_93xx46_platform_data *pd = edev->pdata; + struct spi_message m; + struct spi_transfer t; + int bits, ret; + u16 cmd_addr; + + cmd_addr = OP_START << edev->addrlen; + if (edev->addrlen == 7) { + cmd_addr |= ADDR_ERAL << 1; + bits = 10; + } else { + cmd_addr |= ADDR_ERAL; + bits = 9; + } + + if (has_quirk_instruction_length(edev)) { + cmd_addr <<= 2; + bits += 2; + } + + dev_dbg(&edev->spi->dev, "eral cmd 0x%04x, %d bits\n", cmd_addr, bits); + + spi_message_init(&m); + mem_clear(&t, sizeof(t)); + + t.tx_buf = &cmd_addr; + t.len = 2; + t.bits_per_word = bits; + spi_message_add_tail(&t, &m); + + mutex_lock(&edev->lock); + + if (edev->pdata->prepare) + edev->pdata->prepare(edev); + + ret = spi_sync(edev->spi, &m); + if (ret) + dev_err(&edev->spi->dev, "erase error %d\n", ret); + /* have to wait erase cycle time Tec ms */ + mdelay(6); + + if (pd->finish) + pd->finish(edev); + + mutex_unlock(&edev->lock); + return ret; +} + +static ssize_t eeprom_93xx46_store_erase(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct eeprom_93xx46_dev *edev = dev_get_drvdata(dev); + int erase = 0, ret; + + sscanf(buf, "%d", &erase); + if (erase) { + ret = eeprom_93xx46_ew(edev, 1); + if (ret) + return ret; + ret = eeprom_93xx46_eral(edev); + if (ret) + return ret; + ret = eeprom_93xx46_ew(edev, 0); + if (ret) + return ret; + } + return count; +} +static DEVICE_ATTR(erase, S_IWUSR, NULL, eeprom_93xx46_store_erase); + +static void select_assert(void *context) +{ + struct eeprom_93xx46_dev *edev = context; + + gpiod_set_value_cansleep(edev->pdata->select, 1); +} + +static void select_deassert(void *context) +{ + struct eeprom_93xx46_dev *edev = context; + + gpiod_set_value_cansleep(edev->pdata->select, 0); +} + +static const struct of_device_id eeprom_93xx46_of_table[] = { + { .compatible = "eeprom-93xx46", }, + { .compatible = "atmel,at93c46d", .data = &atmel_at93c46d_data, }, + {} +}; +MODULE_DEVICE_TABLE(of, eeprom_93xx46_of_table); + +static int eeprom_93xx46_probe_dt(struct spi_device *spi) +{ + const struct of_device_id *of_id = + of_match_device(eeprom_93xx46_of_table, &spi->dev); + struct device_node *np = spi->dev.of_node; + struct eeprom_93xx46_platform_data *pd; + u32 tmp; + int gpio; + enum of_gpio_flags of_flags; + int ret; + + pd = devm_kzalloc(&spi->dev, sizeof(*pd), GFP_KERNEL); + if (!pd) + return -ENOMEM; + + ret = of_property_read_u32(np, "data-size", &tmp); + if (ret < 0) { + dev_err(&spi->dev, "data-size property not found\n"); + return ret; + } + + if (tmp == 8) { + pd->flags |= EE_ADDR8; + } else if (tmp == 16) { + pd->flags |= EE_ADDR16; + } else { + dev_err(&spi->dev, "invalid data-size (%d)\n", tmp); + return -EINVAL; + } + + if (of_property_read_bool(np, "read-only")) + pd->flags |= EE_READONLY; + + gpio = of_get_named_gpio_flags(np, "select-gpios", 0, &of_flags); + if (gpio_is_valid(gpio)) { + unsigned long flags = + of_flags == OF_GPIO_ACTIVE_LOW ? GPIOF_ACTIVE_LOW : 0; + + ret = devm_gpio_request_one(&spi->dev, gpio, flags, + "eeprom_93xx46_select"); + if (ret) + return ret; + + pd->select = gpio_to_desc(gpio); + pd->prepare = select_assert; + pd->finish = select_deassert; + + gpiod_direction_output(pd->select, 0); + } + + if (of_id) { + if (of_id->data) { + const struct eeprom_93xx46_devtype_data *data = of_id->data; + + pd->quirks = data->quirks; + } + } + + spi->dev.platform_data = pd; + + return 0; +} + +static int eeprom_93xx46_probe(struct spi_device *spi) +{ + struct eeprom_93xx46_platform_data *pd; + struct eeprom_93xx46_dev *edev; + int err; + + if (spi->dev.of_node) { + err = eeprom_93xx46_probe_dt(spi); + if (err < 0) + return err; + } + + pd = spi->dev.platform_data; + if (!pd) { + dev_err(&spi->dev, "missing platform data\n"); + return -ENODEV; + } + + edev = kzalloc(sizeof(*edev), GFP_KERNEL); + if (!edev) + return -ENOMEM; + + if (pd->flags & EE_ADDR8) + edev->addrlen = 7; + else if (pd->flags & EE_ADDR16) + edev->addrlen = 6; + else { + dev_err(&spi->dev, "unspecified address type\n"); + err = -EINVAL; + goto fail; + } + + mutex_init(&edev->lock); + + edev->spi = spi; + edev->pdata = pd; + + edev->size = 128; + edev->nvmem_config.name = dev_name(&spi->dev); + edev->nvmem_config.dev = &spi->dev; + edev->nvmem_config.read_only = pd->flags & EE_READONLY; + edev->nvmem_config.root_only = true; + edev->nvmem_config.owner = THIS_MODULE; + edev->nvmem_config.compat = true; + edev->nvmem_config.base_dev = &spi->dev; + edev->nvmem_config.reg_read = eeprom_93xx46_read; + edev->nvmem_config.reg_write = eeprom_93xx46_write; + edev->nvmem_config.priv = edev; + edev->nvmem_config.stride = 4; + edev->nvmem_config.word_size = 1; + edev->nvmem_config.size = edev->size; + + edev->nvmem = nvmem_register(&edev->nvmem_config); + if (IS_ERR(edev->nvmem)) { + err = PTR_ERR(edev->nvmem); + goto fail; + } + + if (g_wb_eeprom_93xx46_debug) { + dev_info(&spi->dev, "%d-bit eeprom %s\n", + (pd->flags & EE_ADDR8) ? 8 : 16, + (pd->flags & EE_READONLY) ? "(readonly)" : ""); + } + + if (!(pd->flags & EE_READONLY)) { + if (device_create_file(&spi->dev, &dev_attr_erase)) + dev_err(&spi->dev, "can't create erase interface\n"); + } + + spi_set_drvdata(spi, edev); + return 0; +fail: + kfree(edev); + return err; +} + +static int eeprom_93xx46_remove(struct spi_device *spi) +{ + struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi); + + nvmem_unregister(edev->nvmem); + + if (!(edev->pdata->flags & EE_READONLY)) + device_remove_file(&spi->dev, &dev_attr_erase); + + kfree(edev); + return 0; +} + +static struct spi_driver wb_eeprom_93xx46_driver = { + .driver = { + .name = "wb_93xx46", + .of_match_table = of_match_ptr(eeprom_93xx46_of_table), + }, + .probe = eeprom_93xx46_probe, + .remove = eeprom_93xx46_remove, +}; + +module_spi_driver(wb_eeprom_93xx46_driver); + +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Driver for 93xx46 EEPROMs"); +MODULE_AUTHOR("support"); +MODULE_ALIAS("spi:93xx46"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c new file mode 100644 index 000000000000..3932cb26cd77 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c @@ -0,0 +1,1120 @@ +/* + * fpga_i2c_bus_drv.c + * ko to create fpga i2c adapter + */ +#include +#include +#include +#include +#include +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0) +#include +#endif +#include +#include +#include +#include +#include +#include +#include "fpga_i2c.h" + +#include +#include + +#define DRV_NAME "wb-fpga-i2c" +#define DRV_VERSION "1.0" +#define DTS_NO_CFG_FLAG (0) + +extern int i2c_device_func_write(const char *path, uint32_t pos, uint8_t *val, size_t size); +extern int i2c_device_func_read(const char *path, uint32_t pos, uint8_t *val, size_t size); +extern int pcie_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_write(const char *path, uint32_t pos, uint8_t *val, size_t size); +extern int io_device_func_read(const char *path, uint32_t pos, uint8_t *val, size_t size); +extern int spi_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int spi_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); + +#define FPGA_I2C_STRETCH_TIMEOUT (0x01) +#define FPGA_I2C_DEADLOCK_FAILED (0x02) +#define FPGA_I2C_SLAVE_NO_RESPOND (0x03) +#define FPGA_I2C_STA_FAIL (0x01) +#define FPGA_I2C_STA_BUSY (0x02) +#define FPGA_I2C_CTL_BG (0x01 << 1) +#define FPGA_I2C_CTL_NO_REG (0x01 << 2) +#define FPGA_I2C_CTL_RD (0x01) +#define FPGA_I2C_CTL_WR (0x00) +#define I2C_READ_MSG_NUM (0x02) +#define I2C_WRITE_MSG_NUM (0x01) +#define FPGA_REG_WIDTH (4) + +#define SYMBOL_I2C_DEV_MODE (1) +#define FILE_MODE (2) +#define SYMBOL_PCIE_DEV_MODE (3) +#define SYMBOL_IO_DEV_MODE (4) +#define SYMBOL_SPI_DEV_MODE (5) + +int g_wb_fpga_i2c_debug = 0; +int g_wb_fpga_i2c_error = 0; + +module_param(g_wb_fpga_i2c_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_fpga_i2c_error, int, S_IRUGO | S_IWUSR); + +#define FPGA_I2C_VERBOSE(fmt, args...) do { \ + if (g_wb_fpga_i2c_debug) { \ + printk(KERN_INFO "[FPFA_I2C_BUS][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FPGA_I2C_ERROR(fmt, args...) do { \ + if (g_wb_fpga_i2c_error) { \ + printk(KERN_ERR "[FPFA_I2C_BUS][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static int fpga_file_read(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + FPGA_I2C_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_read(filp, val, size, &tmp_pos); + if (ret < 0) { + FPGA_I2C_ERROR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int fpga_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + FPGA_I2C_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + FPGA_I2C_ERROR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int fpga_device_write(fpga_i2c_dev_t *fpga_i2c, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + + switch (fpga_i2c->i2c_func_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = fpga_file_write(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_SPI_DEV_MODE: + ret = spi_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + default: + FPGA_I2C_ERROR("err func_mode %d, write failed.\n", fpga_i2c->i2c_func_mode); + return -EINVAL; + } + return ret; + +} + +static int fpga_device_read(fpga_i2c_dev_t *fpga_i2c, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + + switch (fpga_i2c->i2c_func_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_read(fpga_i2c->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = fpga_file_read(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_read(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_read(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_SPI_DEV_MODE: + ret = spi_device_func_read(fpga_i2c->dev_name, pos, val, size); + break; + default: + FPGA_I2C_ERROR("err func_mode %d, read failed.\n", fpga_i2c->i2c_func_mode); + return -EINVAL; + } + + return ret; +} + +static int little_endian_dword_to_buf(uint8_t *buf, int len, uint32_t dword) +{ + uint8_t tmp_buf[FPGA_REG_WIDTH]; + + if (len < 4) { + FPGA_I2C_ERROR("Not enough buf, dword to buf: len[%d], dword[0x%x]\n", len, dword); + return -1; + } + + mem_clear(tmp_buf, sizeof(tmp_buf)); + tmp_buf[0] = dword & 0xff; + tmp_buf[1] = (dword >> 8) & 0xff; + tmp_buf[2] = (dword >> 16) & 0xff; + tmp_buf[3] = (dword >> 24) & 0xff; + + memcpy(buf, tmp_buf, sizeof(tmp_buf)); + + return 0; +} + +static int little_endian_buf_to_dword(uint8_t *buf, int len, uint32_t *dword) +{ + int i; + uint32_t dword_tmp; + + if (len != FPGA_REG_WIDTH) { + FPGA_I2C_ERROR("buf length %d error, can't convert to dowrd.\n", len); + return -1; + } + dword_tmp = 0; + for (i = 0; i < FPGA_REG_WIDTH; i++) { + dword_tmp |= (buf[i] << (i * 8)); + } + *dword = dword_tmp; + return 0; +} + +static int fpga_reg_write(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint8_t val) +{ + int ret; + + ret = fpga_device_write(fpga_i2c, addr, &val, sizeof(uint8_t)); + if (ret < 0) { + FPGA_I2C_ERROR("fpga reg write failed, dev name:%s, offset:0x%x, value:0x%x.\n", + fpga_i2c->dev_name, addr, val); + return -EIO; + } + + FPGA_I2C_VERBOSE("fpga reg write success, dev name:%s, offset:0x%x, value:0x%x.\n", + fpga_i2c->dev_name, addr, val); + return 0; +} + +static int fpga_reg_read(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint8_t *val) +{ + int ret; + + ret = fpga_device_read(fpga_i2c, addr, val, sizeof(uint8_t)); + if (ret < 0) { + FPGA_I2C_ERROR("fpga reg read failed, dev name:%s, offset:0x%x\n", + fpga_i2c->dev_name, addr); + return -EIO; + } + + FPGA_I2C_VERBOSE("fpga reg read success, dev name:%s, offset:0x%x, value:0x%x.\n", + fpga_i2c->dev_name, addr, *val); + return 0; +} + +static int fpga_data_write(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint8_t *val, size_t size) +{ + int ret; + + ret = fpga_device_write(fpga_i2c, addr, val, size); + if (ret < 0) { + FPGA_I2C_ERROR("fpga data write failed, dev name:%s, offset:0x%x, size:%lu.\n", + fpga_i2c->dev_name, addr, size); + return -EIO; + } + + FPGA_I2C_VERBOSE("fpga data write success, dev name:%s, offset:0x%x, size:%lu.\n", + fpga_i2c->dev_name, addr, size); + return 0; +} + +static int fpga_data_read(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint8_t *val, size_t size) +{ + int ret; + + ret = fpga_device_read(fpga_i2c, addr, val, size); + if (ret < 0) { + FPGA_I2C_ERROR("fpga data read failed, dev name:%s, offset:0x%x, size:%lu.\n", + fpga_i2c->dev_name, addr, size); + return -EIO; + } + + FPGA_I2C_VERBOSE("fpga data read success, dev name:%s, offset:0x%x, size:%lu.\n", + fpga_i2c->dev_name, addr, size); + return 0; +} + +static int fpga_reg_write_32(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint32_t val) +{ + int ret; + uint8_t buf[FPGA_REG_WIDTH]; + + mem_clear(buf, sizeof(buf)); + little_endian_dword_to_buf(buf, sizeof(buf), val); + ret = fpga_device_write(fpga_i2c, addr, buf, sizeof(buf)); + if (ret < 0) { + FPGA_I2C_ERROR("fpga reg write failed, dev name: %s, offset: 0x%x, value: 0x%x.\n", + fpga_i2c->dev_name, addr, val); + return -EIO; + } + + FPGA_I2C_VERBOSE("fpga reg write success, dev name: %s, offset: 0x%x, value: 0x%x.\n", + fpga_i2c->dev_name, addr, val); + return 0; +} + +static int fpga_reg_read_32(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint32_t *val) +{ + int ret; + uint8_t buf[FPGA_REG_WIDTH]; + + mem_clear(buf, sizeof(buf)); + ret = fpga_device_read(fpga_i2c, addr, buf, sizeof(buf)); + if (ret < 0) { + FPGA_I2C_ERROR("fpga reg read failed, dev name: %s, offset: 0x%x, ret: %d\n", + fpga_i2c->dev_name, addr, ret); + return -EIO; + } + little_endian_buf_to_dword(buf, sizeof(buf), val); + FPGA_I2C_VERBOSE("fpga reg read success, dev name: %s, offset: 0x%x, value: 0x%x.\n", + fpga_i2c->dev_name, addr, *val); + return 0; +} + +static int fpga_i2c_is_busy(fpga_i2c_dev_t *fpga_i2c) +{ + uint8_t val; + int ret; + fpga_i2c_reg_t *reg; + + reg = &fpga_i2c->reg; + ret = fpga_reg_read(fpga_i2c, reg->i2c_status, &val); + if (ret < 0 ) { + FPGA_I2C_ERROR("read fpga i2c status reg failed, reg addr:0x%x, ret:%d.\n", + reg->i2c_status, ret); + return 1; + } + if (val & FPGA_I2C_STA_BUSY) { + FPGA_I2C_ERROR("fpga i2c status busy, reg addr:0x%x, value:0x%x.\n", + reg->i2c_status, val); + return 1; + } else { + return 0; + } +} + +static int fpga_i2c_wait(fpga_i2c_dev_t *fpga_i2c) +{ + int retry_cnt; + + retry_cnt = FPGA_I2C_XFER_TIME_OUT/FPGA_I2C_SLEEP_TIME; + while (retry_cnt--) { + if (fpga_i2c_is_busy(fpga_i2c)) { + usleep_range(FPGA_I2C_SLEEP_TIME, FPGA_I2C_SLEEP_TIME + 1); + } else { + return 0; + } + } + + return -EBUSY; +} + +static int fpga_i2c_check_status(fpga_i2c_dev_t *fpga_i2c) +{ + uint8_t data; + int ret; + fpga_i2c_reg_t *reg; + + reg = &fpga_i2c->reg; + + ret = fpga_reg_read(fpga_i2c, reg->i2c_status, &data); + if (ret) { + FPGA_I2C_ERROR("read fpga i2c status reg failed, reg addr:0x%x, ret:%d.\n", + reg->i2c_status, ret); + return ret; + } + + if (data & FPGA_I2C_STA_FAIL) { + FPGA_I2C_ERROR("fpga i2c status error, reg addr:0x%x, value:%d.\n", + reg->i2c_status, data); + + /* read i2c_err_vec to confirm err type*/ + if (reg->i2c_err_vec != DTS_NO_CFG_FLAG) { + /* read i2c_err_vec reg */ + ret = fpga_reg_read(fpga_i2c, reg->i2c_err_vec, &data); + if (ret) { + FPGA_I2C_ERROR("read fpga i2c err vec reg failed, reg addr:0x%x, ret:%d.\n", + reg->i2c_err_vec, ret); + return ret; + } + FPGA_I2C_VERBOSE("get i2c err vec, reg addr:0x%x, read value:0x%x\n", reg->i2c_err_vec, data); + + /* match i2c_err_vec reg value and err type*/ + switch (data) { + case FPGA_I2C_STRETCH_TIMEOUT: + ret = -ETIMEDOUT; + break; + case FPGA_I2C_DEADLOCK_FAILED: + ret = -EDEADLK; + break; + case FPGA_I2C_SLAVE_NO_RESPOND: + ret = -ENXIO; + break; + default: + FPGA_I2C_ERROR("get i2c err vec value out of range, reg addr:0x%x, read value:0x%x\n", + reg->i2c_err_vec, data); + ret = -EREMOTEIO; + break; + } + return ret; + } else { + FPGA_I2C_VERBOSE("i2c err vec not config, fpga i2c status check return -1\n"); + return -EREMOTEIO; + } + } + return 0; +} + +static int fpga_i2c_do_work(fpga_i2c_dev_t *fpga_i2c, int i2c_addr, + unsigned char *data, uint32_t length, int is_read) +{ + int ret, i; + uint8_t op, i2c_reg_addr_len; + uint8_t *i2c_read_addr_buf; + fpga_i2c_reg_t *reg; + fpga_i2c_reg_addr_t *i2c_addr_desc; + + reg = &fpga_i2c->reg; + + ret = fpga_reg_write(fpga_i2c, reg->i2c_slave, i2c_addr); + if (ret) { + FPGA_I2C_ERROR("write fpga i2c slave reg failed, reg addr:0x%x, value:0x%x, ret:%d.\n", + reg->i2c_slave, i2c_addr, ret); + goto exit; + } + + i2c_addr_desc = &fpga_i2c->i2c_addr_desc; + i2c_reg_addr_len = i2c_addr_desc->reg_addr_len; + i2c_read_addr_buf = &i2c_addr_desc->read_reg_addr[0]; + + if (i2c_reg_addr_len > 0 && i2c_reg_addr_len <= I2C_REG_MAX_WIDTH) { + ret = fpga_data_write(fpga_i2c, reg->i2c_reg, i2c_read_addr_buf, i2c_reg_addr_len); + if (ret) { + FPGA_I2C_ERROR("write fpga i2c offset reg failed, fpga addr:0x%x, reg len:%d, ret:%d\n", + reg->i2c_reg, i2c_reg_addr_len, ret); + for (i = 0; i < i2c_reg_addr_len; i++) { + FPGA_I2C_ERROR("%02d : %02x\n", i, i2c_read_addr_buf[i]); + } + goto exit; + } + } + + ret = fpga_reg_write_32(fpga_i2c, reg->i2c_data_len, length); + if (ret) { + FPGA_I2C_ERROR("write fpga i2c date len reg failed, reg addr:0x%x, value:0x%x, ret:%d.\n", + reg->i2c_data_len, length, ret); + goto exit; + } + + ret = fpga_reg_write(fpga_i2c, reg->i2c_reg_len, i2c_reg_addr_len); + if (ret) { + FPGA_I2C_ERROR("write fpga i2c reg len reg failed, reg addr:0x%x, value:0x%x, ret:%d.\n", + reg->i2c_reg_len, i2c_reg_addr_len, ret); + goto exit; + } + + if (is_read) { + op = FPGA_I2C_CTL_RD | FPGA_I2C_CTL_BG; + } else { + + ret = fpga_data_write(fpga_i2c, reg->i2c_data_buf, data, length); + if (ret) { + FPGA_I2C_ERROR("write fpga i2c date buf failed, reg addr:0x%x, write len:%d, ret:%d.\n", + reg->i2c_data_buf, length, ret); + goto exit; + } + op = FPGA_I2C_CTL_WR | FPGA_I2C_CTL_BG ; + } + + ret = fpga_reg_write(fpga_i2c, reg->i2c_ctrl, op); + if (ret) { + FPGA_I2C_ERROR("write fpga i2c control reg failed, reg addr:0x%x, value:%d, ret:%d.\n", + reg->i2c_ctrl, op, ret); + goto exit; + } + + ret = fpga_i2c_wait(fpga_i2c); + if (ret) { + FPGA_I2C_ERROR("wait fpga i2c status timeout.\n"); + goto exit; + } + + ret = fpga_i2c_check_status(fpga_i2c); + if (ret) { + FPGA_I2C_ERROR("check fpga i2c status error.\n"); + goto exit; + } + + if (is_read) { + + ret = fpga_data_read(fpga_i2c, reg->i2c_data_buf, data, length); + if (ret) { + FPGA_I2C_ERROR("read fpga i2c data buf failed, reg addr:0x%x, read len:%d, ret:%d.\n", + reg->i2c_data_buf, length, ret); + goto exit; + } + } + +exit: + return ret; +} + +static int fpga_i2c_write(fpga_i2c_dev_t *fpga_i2c, int target, + u8 *data, int length, int i2c_msg_num) +{ + int ret, i; + fpga_i2c_reg_addr_t *i2c_addr_desc; + + if (i2c_msg_num == I2C_READ_MSG_NUM) { + + if (length > I2C_REG_MAX_WIDTH) { + FPGA_I2C_ERROR("read reg addr len %d, more than max length.\n", length); + return -EINVAL; + } + + i2c_addr_desc = &fpga_i2c->i2c_addr_desc; + for (i = 0; i < length; i++) { + i2c_addr_desc->read_reg_addr[i] = data[length -i -1]; + FPGA_I2C_VERBOSE("%02d : %02x\n", i, i2c_addr_desc->read_reg_addr[i]); + } + i2c_addr_desc->reg_addr_len = length; + ret = 0; + } else { + + ret = fpga_i2c_do_work(fpga_i2c, target, data, length, 0); + } + + return ret; +} + +/** + * fpga_i2c_read - receive data from the bus. + * @i2c: The struct fpga_i2c_dev_t. + * @target: Target address. + * @data: Pointer to the location to store the datae . + * @length: Length of the data. + * + * The address is sent over the bus, then the data is read. + * + * Returns 0 on success, otherwise a negative errno. + */ +static int fpga_i2c_read(fpga_i2c_dev_t *fpga_i2c, int target, + u8 *data, int length) +{ + int ret, offset_size; + int i, tmp_val; + fpga_i2c_reg_addr_t *i2c_addr_desc; + uint8_t i2c_reg_addr_len; + uint8_t *i2c_read_addr_buf; + + offset_size = 0; + i2c_addr_desc = &fpga_i2c->i2c_addr_desc; + i2c_reg_addr_len = i2c_addr_desc->reg_addr_len; + i2c_read_addr_buf = &i2c_addr_desc->read_reg_addr[0]; + + while (1) { + if (length <= fpga_i2c->reg.i2c_data_buf_len) { + return fpga_i2c_do_work(fpga_i2c, target, data + offset_size, length, 1); + } + + ret = fpga_i2c_do_work(fpga_i2c, target, data + offset_size, fpga_i2c->reg.i2c_data_buf_len, 1); + if (ret != 0) { + FPGA_I2C_ERROR("fpga_i2c_read failed, i2c addr:0x%x, offset:0x%x, ret:%d.\n", + target, offset_size, ret); + return ret; + } + + tmp_val = i2c_read_addr_buf[0]; + tmp_val += fpga_i2c->reg.i2c_data_buf_len; + if (tmp_val > 0xff) { + i2c_read_addr_buf[0] = tmp_val & 0xff; + for (i = 1; i < i2c_reg_addr_len; i++) { + if (i2c_read_addr_buf[i] == 0xff) { + i2c_read_addr_buf[i] = 0; + } else { + i2c_read_addr_buf[i]++; + break; + } + } + } else { + i2c_read_addr_buf[0] = tmp_val & 0xff; + } + offset_size += fpga_i2c->reg.i2c_data_buf_len; + length -= fpga_i2c->reg.i2c_data_buf_len; + } + + return ret; +} + +static void fpga_i2c_reset(fpga_i2c_dev_t *fpga_i2c) { + fpga_i2c_reset_cfg_t *reset_cfg; + uint32_t reset_addr; + + reset_cfg = &fpga_i2c->reset_cfg; + reset_addr = reset_cfg->reset_addr; + if (reset_cfg->reset_delay_b) { + usleep_range(reset_cfg->reset_delay_b, reset_cfg->reset_delay_b + 1); + } + + fpga_reg_write_32(fpga_i2c, reset_addr, reset_cfg->reset_on); + if (reset_cfg->reset_delay) { + usleep_range(reset_cfg->reset_delay, reset_cfg->reset_delay + 1); + } + + fpga_reg_write_32(fpga_i2c, reset_addr, reset_cfg->reset_off); + if (reset_cfg->reset_delay_a) { + usleep_range(reset_cfg->reset_delay_a, reset_cfg->reset_delay_a + 1); + } + + return; +} + +/** + * fpga_i2c_xfer - The driver's master_xfer function. + * @adap: Pointer to the i2c_adapter structure. + * @msgs: Pointer to the messages to be processed. + * @num: Length of the MSGS array. + * + * Returns the number of messages processed, or a negative errno on + * failure. + */ +static int fpga_i2c_adapter_init(fpga_i2c_dev_t *fpga_i2c) +{ + int ret; + fpga_i2c_reg_t *reg; + + reg = &fpga_i2c->reg; + + ret = 0; + ret += fpga_reg_write(fpga_i2c, reg->i2c_scale, fpga_i2c->i2c_scale_value); + ret += fpga_reg_write(fpga_i2c, reg->i2c_filter, fpga_i2c->i2c_filter_value); + ret += fpga_reg_write(fpga_i2c, reg->i2c_stretch, fpga_i2c->i2c_stretch_value); + if (ret < 0) { + FPGA_I2C_ERROR("fpga_i2c_init failed.\n"); + return ret; + } + + FPGA_I2C_VERBOSE("fpga_i2c_init ok.\n"); + return 0; +} + +static int fpga_i2c_params_check(fpga_i2c_dev_t *fpga_i2c) +{ + int ret; + fpga_i2c_reg_t *reg; + uint8_t i2c_scale_value, i2c_filter_value, i2c_stretch_value; + + reg = &fpga_i2c->reg; + ret = 0; + ret += fpga_reg_read(fpga_i2c, reg->i2c_scale, &i2c_scale_value); + ret += fpga_reg_read(fpga_i2c, reg->i2c_filter, &i2c_filter_value); + ret += fpga_reg_read(fpga_i2c, reg->i2c_stretch, &i2c_stretch_value); + if (ret < 0) { + FPGA_I2C_ERROR("read fpga i2c params failed.\n"); + return 1; + } + + if ((i2c_scale_value != fpga_i2c->i2c_scale_value) + || (i2c_filter_value != fpga_i2c->i2c_filter_value) + || (i2c_stretch_value != fpga_i2c->i2c_stretch_value)) { + FPGA_I2C_ERROR("fpga i2c params check error, read value: i2c_scale 0x%x, i2c_filter:0x%x, i2c_stretch:0x%x.\n", + i2c_scale_value, i2c_filter_value, i2c_stretch_value); + FPGA_I2C_ERROR("fpga i2c params check error, config value: i2c_scale 0x%x, i2c_filter:0x%x, i2c_stretch:0x%x.\n", + fpga_i2c->i2c_scale_value, fpga_i2c->i2c_filter_value, fpga_i2c->i2c_stretch_value); + return 1; + } + + FPGA_I2C_VERBOSE("fpga i2c params check ok.\n"); + return 0; +} + +static int fpga_i2c_xfer(struct i2c_adapter *adap, + struct i2c_msg *msgs, int num) +{ + struct i2c_msg *pmsg; + int i; + int ret; + fpga_i2c_dev_t *fpga_i2c; + fpga_i2c_reg_addr_t *i2c_addr_desc; + + fpga_i2c = i2c_get_adapdata(adap); + + if (num != I2C_READ_MSG_NUM && num != I2C_WRITE_MSG_NUM) { + FPGA_I2C_ERROR("unsupport i2c_msg len:%d.\n", num); + return -EINVAL; + } + + if ((num == I2C_WRITE_MSG_NUM) && (msgs[0].len > fpga_i2c->reg.i2c_data_buf_len)) { + FPGA_I2C_ERROR("unsupport i2c_msg type:msg[0].flag:0x%x, buf len:0x%x.\n", + msgs[0].flags, msgs[0].len); + return -EINVAL; + } + + if (num == I2C_READ_MSG_NUM ) { + if ((msgs[0].flags & I2C_M_RD) ||!(msgs[1].flags & I2C_M_RD)) { + FPGA_I2C_ERROR("unsupport i2c_msg type:msg[0].flag:0x%x, msg[1].flag:0x%x.\n", + msgs[0].flags, msgs[1].flags); + return -EINVAL; + } + } + + if (fpga_i2c_is_busy(fpga_i2c)) { + FPGA_I2C_ERROR("fpga i2c adapter %d is busy, do reset.\n", adap->nr); + if (fpga_i2c->reset_cfg.i2c_adap_reset_flag == 1) { + + fpga_i2c_reset(fpga_i2c); + + fpga_i2c_adapter_init(fpga_i2c); + } + return -EAGAIN; + } + + if (fpga_i2c->i2c_params_check && fpga_i2c_params_check(fpga_i2c)) { + FPGA_I2C_ERROR("fpga i2c params check failed, try to reinitialize.\n"); + fpga_i2c_adapter_init(fpga_i2c); + } + + ret = 0; + i2c_addr_desc = &fpga_i2c->i2c_addr_desc; + i2c_addr_desc->reg_addr_len = 0; + mem_clear(i2c_addr_desc->read_reg_addr, sizeof(i2c_addr_desc->read_reg_addr)); + + for (i = 0; ret == 0 && i < num; i++) { + pmsg = &msgs[i]; + FPGA_I2C_VERBOSE("Doing %s %d byte(s) to/from 0x%02x - %d of %d messages\n", + pmsg->flags & I2C_M_RD ? "read" : "write", pmsg->len, pmsg->addr, i + 1, num); + + if (pmsg->flags & I2C_M_RD) { + ret = fpga_i2c_read(fpga_i2c, pmsg->addr, pmsg->buf, pmsg->len); + + if ((pmsg->len == 1) && (pmsg->flags & I2C_M_RECV_LEN)) { + if ((ret != 0) || (pmsg->buf[0] > I2C_SMBUS_BLOCK_MAX)) { + FPGA_I2C_ERROR("smbus block data read failed, ret:%d, read len:%u.\n", + ret, pmsg->buf[0]); + return -EPROTO; + } + pmsg->len = 1 + pmsg->buf[0]; + FPGA_I2C_VERBOSE("smbus block data read, read len:%d.\n", pmsg->len); + ret = fpga_i2c_read(fpga_i2c, pmsg->addr, pmsg->buf, pmsg->len); + } + } else { + ret = fpga_i2c_write(fpga_i2c, pmsg->addr, pmsg->buf, pmsg->len, num); + } + } + + return (ret != 0) ? ret : num; +} + +static u32 fpga_i2c_functionality(struct i2c_adapter *adap) +{ + return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_SMBUS_BLOCK_DATA; +} + +static const struct i2c_algorithm fpga_i2c_algo = { + .master_xfer = fpga_i2c_xfer, + .functionality = fpga_i2c_functionality, +}; + +static struct i2c_adapter fpga_i2c_ops = { + .owner = THIS_MODULE, + .name = "wb_fpga_i2c", + .algo = &fpga_i2c_algo, +}; + +static int fpga_i2c_config_init(fpga_i2c_dev_t *fpga_i2c) +{ + int ret = 0, rv = 0; + fpga_i2c_reg_t *reg; + fpga_i2c_reset_cfg_t *reset_cfg; + struct device *dev; + uint32_t i2c_offset_reg, i2c_data_buf_len_reg; + int32_t i2c_offset_val; + + fpga_i2c_bus_device_t *fpga_i2c_bus_device; + + dev = fpga_i2c->dev; + reg = &fpga_i2c->reg; + reset_cfg = &fpga_i2c->reset_cfg; + + i2c_offset_val = 0; + + if (dev->of_node) { + ret = 0; + ret += of_property_read_u32(dev->of_node, "i2c_ext_9548_addr", ®->i2c_ext_9548_addr); + ret += of_property_read_u32(dev->of_node, "i2c_ext_9548_chan", ®->i2c_ext_9548_chan); + ret += of_property_read_u32(dev->of_node, "i2c_slave", ®->i2c_slave); + ret += of_property_read_u32(dev->of_node, "i2c_reg", ®->i2c_reg); + ret += of_property_read_u32(dev->of_node, "i2c_data_len", ®->i2c_data_len); + ret += of_property_read_u32(dev->of_node, "i2c_ctrl", ®->i2c_ctrl); + ret += of_property_read_u32(dev->of_node, "i2c_status", ®->i2c_status); + ret += of_property_read_u32(dev->of_node, "i2c_scale", ®->i2c_scale); + ret += of_property_read_u32(dev->of_node, "i2c_filter", ®->i2c_filter); + ret += of_property_read_u32(dev->of_node, "i2c_stretch", ®->i2c_stretch); + ret += of_property_read_u32(dev->of_node, "i2c_ext_9548_exits_flag", ®->i2c_ext_9548_exits_flag); + ret += of_property_read_u32(dev->of_node, "i2c_reg_len", ®->i2c_reg_len); + ret += of_property_read_u32(dev->of_node, "i2c_in_9548_chan", ®->i2c_in_9548_chan); + ret += of_property_read_u32(dev->of_node, "i2c_data_buf", ®->i2c_data_buf); + ret += of_property_read_string(dev->of_node, "dev_name", &fpga_i2c->dev_name); + ret += of_property_read_u32(dev->of_node, "i2c_scale_value", &fpga_i2c->i2c_scale_value); + ret += of_property_read_u32(dev->of_node, "i2c_filter_value", &fpga_i2c->i2c_filter_value); + ret += of_property_read_u32(dev->of_node, "i2c_stretch_value", &fpga_i2c->i2c_stretch_value); + ret += of_property_read_u32(dev->of_node, "i2c_timeout", &fpga_i2c->i2c_timeout); + ret += of_property_read_u32(dev->of_node, "i2c_func_mode", &fpga_i2c->i2c_func_mode); + ret += of_property_read_u32(dev->of_node, "i2c_reset_addr", &reset_cfg->reset_addr); + ret += of_property_read_u32(dev->of_node, "i2c_reset_on", &reset_cfg->reset_on); + ret += of_property_read_u32(dev->of_node, "i2c_reset_off", &reset_cfg->reset_off); + ret += of_property_read_u32(dev->of_node, "i2c_rst_delay_b", &reset_cfg->reset_delay_b); + ret += of_property_read_u32(dev->of_node, "i2c_rst_delay", &reset_cfg->reset_delay); + ret += of_property_read_u32(dev->of_node, "i2c_rst_delay_a", &reset_cfg->reset_delay_a); + ret += of_property_read_u32(dev->of_node, "i2c_adap_reset_flag", &reset_cfg->i2c_adap_reset_flag); + + if (ret != 0) { + FPGA_I2C_ERROR("dts config error, ret:%d.\n", ret); + ret = -ENXIO; + return ret; + } + + rv = of_property_read_u32(dev->of_node, "i2c_data_buf_len_reg", &i2c_data_buf_len_reg); + if (rv == 0) { + ret = fpga_reg_read_32(fpga_i2c, i2c_data_buf_len_reg, ®->i2c_data_buf_len); + if (ret < 0) { + dev_err(fpga_i2c->dev, "Failed to get fpga i2c data buf length, reg addr: 0x%x, ret: %d\n", + i2c_data_buf_len_reg, ret); + return ret; + } + FPGA_I2C_VERBOSE("fpga i2c data buf length reg addr: 0x%x, value: %d\n", + i2c_data_buf_len_reg, reg->i2c_data_buf_len); + if (reg->i2c_data_buf_len == 0) { + reg->i2c_data_buf_len = FPGA_I2C_RDWR_MAX_LEN_DEFAULT; + } + } else { + ret = of_property_read_u32(dev->of_node, "i2c_data_buf_len", ®->i2c_data_buf_len); + if (ret != 0) { + reg->i2c_data_buf_len = FPGA_I2C_RDWR_MAX_LEN_DEFAULT; + ret = 0; + } + } + + rv = of_property_read_u32(dev->of_node, "i2c_offset_reg", &i2c_offset_reg); + if (rv == 0) { + ret = fpga_reg_read_32(fpga_i2c, i2c_offset_reg, &i2c_offset_val); + if (ret < 0) { + dev_err(fpga_i2c->dev, "Failed to get fpga i2c adapter offset value, reg addr: 0x%x, ret: %d\n", + i2c_offset_reg, ret); + return ret; + } + FPGA_I2C_VERBOSE("fpga i2c adapter offset reg addr: 0x%x, value: %d\n", + i2c_offset_reg, i2c_offset_val); + reg->i2c_scale +=i2c_offset_val; + reg->i2c_filter += i2c_offset_val; + reg->i2c_stretch += i2c_offset_val; + reg->i2c_ext_9548_exits_flag += i2c_offset_val; + reg->i2c_ext_9548_addr += i2c_offset_val; + reg->i2c_ext_9548_chan += i2c_offset_val; + reg->i2c_in_9548_chan += i2c_offset_val; + reg->i2c_slave += i2c_offset_val; + reg->i2c_reg += i2c_offset_val; + reg->i2c_reg_len += i2c_offset_val; + reg->i2c_data_len += i2c_offset_val; + reg->i2c_ctrl += i2c_offset_val; + reg->i2c_status += i2c_offset_val; + reg->i2c_data_buf += i2c_offset_val; + } + + ret = of_property_read_u32(dev->of_node, "i2c_err_vec", ®->i2c_err_vec); + if (ret != 0) { + reg->i2c_err_vec = DTS_NO_CFG_FLAG; + FPGA_I2C_VERBOSE("not support i2c_err_vec cfg. ret: %d, set DTS_NO_CFG_FLAG: %d\n", + ret, reg->i2c_err_vec); + ret = 0; /* Not configuring i2c_err_vec is not an error */ + } else { + if (i2c_offset_val != 0) { + reg->i2c_err_vec += i2c_offset_val; + } + } + } else { + if (dev->platform_data == NULL) { + dev_err(fpga_i2c->dev, "Failed to get platform data config.\n"); + ret = -ENXIO; + return ret; + } + fpga_i2c_bus_device = dev->platform_data; + fpga_i2c->dev_name = fpga_i2c_bus_device->dev_name; + fpga_i2c->adap_nr = fpga_i2c_bus_device->adap_nr; + fpga_i2c->i2c_scale_value = fpga_i2c_bus_device->i2c_scale_value; + fpga_i2c->i2c_filter_value = fpga_i2c_bus_device->i2c_filter_value; + fpga_i2c->i2c_stretch_value = fpga_i2c_bus_device->i2c_stretch_value; + fpga_i2c->i2c_timeout = fpga_i2c_bus_device->i2c_timeout; + fpga_i2c->i2c_func_mode = fpga_i2c_bus_device->i2c_func_mode; + fpga_i2c->i2c_params_check = fpga_i2c_bus_device->i2c_params_check; + + reset_cfg->reset_addr = fpga_i2c_bus_device->i2c_reset_addr; + reset_cfg->reset_on = fpga_i2c_bus_device->i2c_reset_on; + reset_cfg->reset_off = fpga_i2c_bus_device->i2c_reset_off; + reset_cfg->reset_delay_b = fpga_i2c_bus_device->i2c_rst_delay_b; + reset_cfg->reset_delay = fpga_i2c_bus_device->i2c_rst_delay; + reset_cfg->reset_delay_a = fpga_i2c_bus_device->i2c_rst_delay_a; + reset_cfg->i2c_adap_reset_flag = fpga_i2c_bus_device->i2c_adap_reset_flag; + + reg->i2c_ext_9548_addr = fpga_i2c_bus_device->i2c_ext_9548_addr; + reg->i2c_ext_9548_chan = fpga_i2c_bus_device->i2c_ext_9548_chan; + reg->i2c_slave = fpga_i2c_bus_device->i2c_slave; + reg->i2c_reg = fpga_i2c_bus_device->i2c_reg; + reg->i2c_data_len = fpga_i2c_bus_device->i2c_data_len; + reg->i2c_ctrl = fpga_i2c_bus_device->i2c_ctrl; + reg->i2c_status = fpga_i2c_bus_device->i2c_status; + reg->i2c_scale = fpga_i2c_bus_device->i2c_scale; + reg->i2c_filter = fpga_i2c_bus_device->i2c_filter; + reg->i2c_stretch = fpga_i2c_bus_device->i2c_stretch; + reg->i2c_ext_9548_exits_flag = fpga_i2c_bus_device->i2c_ext_9548_exits_flag; + reg->i2c_reg_len = fpga_i2c_bus_device->i2c_reg_len; + reg->i2c_in_9548_chan = fpga_i2c_bus_device->i2c_in_9548_chan; + reg->i2c_data_buf = fpga_i2c_bus_device->i2c_data_buf; + + i2c_data_buf_len_reg = fpga_i2c_bus_device->i2c_data_buf_len_reg; + if (i2c_data_buf_len_reg > 0) { + ret = fpga_reg_read_32(fpga_i2c, i2c_data_buf_len_reg, ®->i2c_data_buf_len); + if (ret < 0) { + dev_err(fpga_i2c->dev, "Failed to get fpga i2c data buf length, reg addr: 0x%x, ret: %d\n", + i2c_data_buf_len_reg, ret); + return ret; + } + FPGA_I2C_VERBOSE("fpga i2c data buf length reg addr: 0x%x, value: %d\n", + i2c_data_buf_len_reg, reg->i2c_data_buf_len); + if (reg->i2c_data_buf_len == 0) { + reg->i2c_data_buf_len = FPGA_I2C_RDWR_MAX_LEN_DEFAULT; + } + } else { + if (fpga_i2c_bus_device->i2c_data_buf_len == 0) { + reg->i2c_data_buf_len = FPGA_I2C_RDWR_MAX_LEN_DEFAULT; + FPGA_I2C_VERBOSE("not support i2c_data_buf_len cfg, set default_val:%d\n", + reg->i2c_data_buf_len); + } else { + reg->i2c_data_buf_len = fpga_i2c_bus_device->i2c_data_buf_len; + } + } + + i2c_offset_reg = fpga_i2c_bus_device->i2c_offset_reg; + if (i2c_offset_reg > 0) { + rv = fpga_reg_read_32(fpga_i2c, i2c_offset_reg, &i2c_offset_val); + if (rv < 0) { + dev_err(fpga_i2c->dev, "Failed to get fpga i2c adapter offset value, reg addr: 0x%x, rv: %d\n", + i2c_offset_reg, rv); + return rv; + } + FPGA_I2C_VERBOSE("fpga i2c adapter offset reg addr: 0x%x, value: %d\n", + i2c_offset_reg, i2c_offset_val); + reg->i2c_scale +=i2c_offset_val; + reg->i2c_filter += i2c_offset_val; + reg->i2c_stretch += i2c_offset_val; + reg->i2c_ext_9548_exits_flag += i2c_offset_val; + reg->i2c_ext_9548_addr += i2c_offset_val; + reg->i2c_ext_9548_chan += i2c_offset_val; + reg->i2c_in_9548_chan += i2c_offset_val; + reg->i2c_slave += i2c_offset_val; + reg->i2c_reg += i2c_offset_val; + reg->i2c_reg_len += i2c_offset_val; + reg->i2c_data_len += i2c_offset_val; + reg->i2c_ctrl += i2c_offset_val; + reg->i2c_status += i2c_offset_val; + reg->i2c_data_buf += i2c_offset_val; + } + + if (fpga_i2c_bus_device->i2c_err_vec == 0) { + reg->i2c_err_vec = DTS_NO_CFG_FLAG; + FPGA_I2C_VERBOSE("not support i2c_err_vec cfg, set DTS_NO_CFG_FLAG:%d\n", + reg->i2c_err_vec); + } else { + reg->i2c_err_vec = fpga_i2c_bus_device->i2c_err_vec; + if (i2c_offset_val != 0) { + reg->i2c_err_vec += i2c_offset_val; + } + } + } + + FPGA_I2C_VERBOSE("i2c_ext_9548_addr:0x%x, i2c_ext_9548_chan:0x%x, i2c_slave:0x%x, i2c_reg:0x%x, i2c_data_len:0x%x.\n", + reg->i2c_ext_9548_addr, reg->i2c_ext_9548_chan, reg->i2c_slave, reg->i2c_reg, reg->i2c_data_len); + FPGA_I2C_VERBOSE("i2c_ctrl:0x%x, i2c_status:0x%x, i2c_scale:0x%x, i2c_filter:0x%x, i2c_stretch:0x%x.\n", + reg->i2c_ctrl, reg->i2c_status, reg->i2c_scale, reg->i2c_filter, reg->i2c_stretch); + FPGA_I2C_VERBOSE("i2c_ext_9548_exits_flag:0x%x, i2c_in_9548_chan:0x%x, i2c_data_buf:0x%x, i2c_reg_len:0x%x, i2c_data_buf_len:0x%x.\n", + reg->i2c_ext_9548_exits_flag, reg->i2c_in_9548_chan, reg->i2c_data_buf, reg->i2c_reg_len, reg->i2c_data_buf_len); + FPGA_I2C_VERBOSE("dev_name:%s, i2c_scale_value:0x%x, i2c_filter_value:0x%x, i2c_stretch_value:0x%x, i2c_timeout:0x%x.\n", + fpga_i2c->dev_name, fpga_i2c->i2c_scale_value, fpga_i2c->i2c_filter_value, fpga_i2c->i2c_stretch_value, fpga_i2c->i2c_timeout); + FPGA_I2C_VERBOSE("i2c_reset_addr:0x%x, i2c_reset_on:0x%x, i2c_reset_off:0x%x, i2c_rst_delay_b:0x%x, i2c_rst_delay:0x%x, i2c_rst_delay_a:0x%x.\n", + reset_cfg->reset_addr, reset_cfg->reset_on, reset_cfg->reset_off, reset_cfg->reset_delay_b, reset_cfg->reset_delay, reset_cfg->reset_delay_a); + FPGA_I2C_VERBOSE("i2c_adap_reset_flag:0x%x.\n", reset_cfg->i2c_adap_reset_flag); + FPGA_I2C_VERBOSE("i2c_err_vec:0x%x\n", reg->i2c_err_vec); + + return ret; +} + +static int fpga_i2c_probe(struct platform_device *pdev) +{ + int ret; + fpga_i2c_dev_t *fpga_i2c; + struct device *dev; + + fpga_i2c = devm_kzalloc(&pdev->dev, sizeof(fpga_i2c_dev_t), GFP_KERNEL); + if (!fpga_i2c) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + ret = -ENOMEM; + goto out; + } + + fpga_i2c->dev = &pdev->dev; + + ret = fpga_i2c_config_init(fpga_i2c); + if (ret !=0) { + dev_err(fpga_i2c->dev, "Failed to get fpga i2c dts config.\n"); + goto out; + } + + ret = fpga_i2c_adapter_init(fpga_i2c); + if (ret !=0) { + dev_err(fpga_i2c->dev, "Failed to init fpga i2c adapter.\n"); + goto out; + } + + if (fpga_i2c->dev->of_node) { + fpga_i2c->i2c_params_check = of_property_read_bool(fpga_i2c->dev->of_node, "i2c_params_check"); + } + FPGA_I2C_VERBOSE("fpga i2c params check flag:%d.\n", fpga_i2c->i2c_params_check); + + init_waitqueue_head(&fpga_i2c->queue); + + dev = fpga_i2c->dev; + fpga_i2c->adap = fpga_i2c_ops; + fpga_i2c->adap.timeout = msecs_to_jiffies(fpga_i2c->i2c_timeout); + fpga_i2c->adap.dev.parent = &pdev->dev; + fpga_i2c->adap.dev.of_node = pdev->dev.of_node; + i2c_set_adapdata(&fpga_i2c->adap, fpga_i2c); + platform_set_drvdata(pdev, fpga_i2c); + + if (fpga_i2c->dev->of_node) { + /* adap.nr get from dts aliases */ + ret = i2c_add_adapter(&fpga_i2c->adap); + } else { + fpga_i2c->adap.nr = fpga_i2c->adap_nr; + ret = i2c_add_numbered_adapter(&fpga_i2c->adap); + } + + if (ret < 0) { + dev_info(fpga_i2c->dev, "Failed to add adapter.\n"); + goto fail_add; + } + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0) + of_i2c_register_devices(&fpga_i2c->adap); +#endif + dev_info(fpga_i2c->dev, "registered i2c-%d for %s using mode %d with base address:0x%x, data buf len: %d success.\n", + fpga_i2c->adap.nr, fpga_i2c->dev_name, fpga_i2c->i2c_func_mode, fpga_i2c->reg.i2c_scale, + fpga_i2c->reg.i2c_data_buf_len); + return 0; + +fail_add: + platform_set_drvdata(pdev, NULL); +out: + return ret; +}; + +static int fpga_i2c_remove(struct platform_device *pdev) +{ + fpga_i2c_dev_t *fpga_i2c; + + fpga_i2c = platform_get_drvdata(pdev); + i2c_del_adapter(&fpga_i2c->adap); + platform_set_drvdata(pdev, NULL); + return 0; +}; + +static struct of_device_id fpga_i2c_match[] = { + { + .compatible = "wb-fpga-i2c", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, fpga_i2c_match); + +static struct platform_driver wb_fpga_i2c_driver = { + .probe = fpga_i2c_probe, + .remove = fpga_i2c_remove, + .driver = { + .owner = THIS_MODULE, + .name = DRV_NAME, + .of_match_table = fpga_i2c_match, + }, +}; + +static int __init wb_fpga_i2c_init(void) +{ + return platform_driver_register(&wb_fpga_i2c_driver); +} + +static void __exit wb_fpga_i2c_exit(void) +{ + platform_driver_unregister(&wb_fpga_i2c_driver); +} + +module_init(wb_fpga_i2c_init); +module_exit(wb_fpga_i2c_exit); +MODULE_DESCRIPTION("fpga i2c adapter driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c new file mode 100644 index 000000000000..8fd9e4f0f1b4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c @@ -0,0 +1,534 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "fpga_i2c.h" + +extern int i2c_device_func_write(const char *path, uint32_t pos, uint8_t *val, size_t size); +extern int pcie_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_write(const char *path, uint32_t pos, uint8_t *val, size_t size); +extern int spi_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); + +#define PCA954X_MAX_NCHANS (8) +#define FPGA_INTERNAL_PCA9548 (1) +#define FPGA_EXTERNAL_PCA9548 (2) +#define FPGA_I2C_EXT_9548_EXITS (0x01 << 0) +#define FPGA_I2C_9548_NO_RESET (0x01 << 1) + +#define SYMBOL_I2C_DEV_MODE (1) +#define FILE_MODE (2) +#define SYMBOL_PCIE_DEV_MODE (3) +#define SYMBOL_IO_DEV_MODE (4) +#define SYMBOL_SPI_DEV_MODE (5) + +int g_fpga_pca954x_debug = 0; +int g_fpga_pca954x_error = 0; + +module_param(g_fpga_pca954x_debug, int, S_IRUGO | S_IWUSR); +module_param(g_fpga_pca954x_error, int, S_IRUGO | S_IWUSR); + +#define FPGA_PCA954X_VERBOSE(fmt, args...) do { \ + if (g_fpga_pca954x_debug) { \ + printk(KERN_INFO "[FPGA_PCA954X][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FPGA_PCA954X_ERROR(fmt, args...) do { \ + if (g_fpga_pca954x_error) { \ + printk(KERN_ERR "[FPGA_PCA954X][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +enum pca_type { + pca_9540, + pca_9541, + pca_9542, + pca_9543, + pca_9544, + pca_9545, + pca_9546, + pca_9547, + pca_9548, +}; + +struct pca954x { + enum pca_type type; + struct i2c_adapter *virt_adaps[PCA954X_MAX_NCHANS]; + u8 last_chan; /* last register value */ + uint32_t fpga_9548_flag; + uint32_t fpga_9548_reset_flag; + uint32_t pca9548_base_nr; + struct i2c_client *client; +}; + +struct chip_desc { + u8 nchans; + u8 enable; /* used for muxes only */ + enum muxtype { + pca954x_ismux = 0, + pca954x_isswi + } muxtype; +}; + +/* Provide specs for the PCA954x types we know about */ +static const struct chip_desc chips[] = { + [pca_9540] = { + .nchans = 2, + .enable = 0x4, + .muxtype = pca954x_ismux, + }, + [pca_9541] = { + .nchans = 1, + .muxtype = pca954x_isswi, + }, + [pca_9543] = { + .nchans = 2, + .muxtype = pca954x_isswi, + }, + [pca_9544] = { + .nchans = 4, + .enable = 0x4, + .muxtype = pca954x_ismux, + }, + [pca_9545] = { + .nchans = 4, + .muxtype = pca954x_isswi, + }, + [pca_9547] = { + .nchans = 8, + .enable = 0x8, + .muxtype = pca954x_ismux, + }, + [pca_9548] = { + .nchans = 8, + .muxtype = pca954x_isswi, + }, +}; + +static const struct i2c_device_id fpga_pca954x_id[] = { + { "wb_fpga_pca9540", pca_9540 }, + { "wb_fpga_pca9541", pca_9541 }, + { "wb_fpga_pca9542", pca_9543 }, + { "wb_fpga_pca9543", pca_9543 }, + { "wb_fpga_pca9544", pca_9544 }, + { "wb_fpga_pca9545", pca_9545 }, + { "wb_fpga_pca9546", pca_9545 }, + { "wb_fpga_pca9547", pca_9547 }, + { "wb_fpga_pca9548", pca_9548 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, fpga_pca954x_id); + +static int fpga_file_write(const char *path, int pos, unsigned char *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + FPGA_PCA954X_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + FPGA_PCA954X_ERROR("kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; + +} + +static int fpga_device_write(fpga_i2c_dev_t *fpga_i2c, int pos, unsigned char *val, size_t size) +{ + int ret; + + switch (fpga_i2c->i2c_func_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = fpga_file_write(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + case SYMBOL_SPI_DEV_MODE: + ret = spi_device_func_write(fpga_i2c->dev_name, pos, val, size); + break; + default: + FPGA_PCA954X_ERROR("err func_mode %d, write failed.\n", fpga_i2c->i2c_func_mode); + return -EINVAL; + } + return ret; +} + +static int fpga_reg_write(fpga_i2c_dev_t *fpga_i2c, uint32_t addr, uint8_t val) +{ + int ret; + + ret = fpga_device_write(fpga_i2c, addr, &val, sizeof(uint8_t)); + if (ret < 0) { + FPGA_PCA954X_ERROR("fpga_device_write failed. name:%s, addr:0x%x, value:0x%x.\n", + fpga_i2c->dev_name, addr, val); + return ret; + } + + FPGA_PCA954X_VERBOSE("fpga reg write success, dev name:%s, offset:0x%x, value:0x%x.\n", + fpga_i2c->dev_name, addr, val); + return 0; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,7) +static int pca954x_select_chan(struct i2c_adapter *adap, void *client, u32 chan) +{ + struct pca954x *data = i2c_get_clientdata(client); + fpga_i2c_dev_t *fpga_i2c; + fpga_i2c_reg_t *reg; + int ret; + u8 regval, i2c_9548_opt; + + while(i2c_parent_is_i2c_adapter(adap)){ + adap = to_i2c_adapter(adap->dev.parent); + } + + FPGA_PCA954X_VERBOSE("root bus:%d, chan:0x%x, 9548 flag:0x%x, 9548 addr:0x%x.\n", + adap->nr, chan, data->fpga_9548_flag, client->addr); + fpga_i2c = i2c_get_adapdata(adap); + reg = &fpga_i2c->reg; + + regval = 1 << chan; + if (data->fpga_9548_flag == FPGA_INTERNAL_PCA9548) { + ret = fpga_reg_write(fpga_i2c, reg->i2c_in_9548_chan, regval); + } else { + if (data->fpga_9548_reset_flag == 1) { + i2c_9548_opt = FPGA_I2C_EXT_9548_EXITS & ~(FPGA_I2C_9548_NO_RESET); + } else { + i2c_9548_opt = FPGA_I2C_EXT_9548_EXITS | FPGA_I2C_9548_NO_RESET; + } + FPGA_PCA954X_VERBOSE("fpga pca9548 reset flag:0x%x, opt:0x%x.\n", + data->fpga_9548_reset_flag, i2c_9548_opt); + ret = fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_exits_flag, i2c_9548_opt); + ret += fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_addr, client->addr); + ret += fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_chan, regval); + } + + return ret; +} + +static int pca954x_deselect_mux(struct i2c_adapter *adap, void *client, u32 chan) +{ + struct pca954x *data = i2c_get_clientdata(client); + fpga_i2c_dev_t *fpga_i2c; + fpga_i2c_reg_t *reg; + int ret; + + while(i2c_parent_is_i2c_adapter(adap)){ + adap = to_i2c_adapter(adap->dev.parent); + } + + fpga_i2c = i2c_get_adapdata(adap); + reg = &fpga_i2c->reg; + /* Deselect active channel */ + data->last_chan = 0; + if (data->fpga_9548_flag == FPGA_INTERNAL_PCA9548) { + ret = fpga_reg_write(fpga_i2c, reg->i2c_in_9548_chan, 0); + } else { + + ret = fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_exits_flag, FPGA_I2C_9548_NO_RESET); + ret += fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_chan, 0); + } + + return ret; +} +#else +static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca954x *data = i2c_mux_priv(muxc); + struct i2c_client *client = data->client; + struct i2c_adapter *adap; + fpga_i2c_dev_t *fpga_i2c; + fpga_i2c_reg_t *reg; + int ret; + u8 regval, i2c_9548_opt; + + adap = muxc->parent; + while(i2c_parent_is_i2c_adapter(adap)){ + adap = to_i2c_adapter(adap->dev.parent); + } + + FPGA_PCA954X_VERBOSE("root bus:%d, chan:0x%x, 9548 flag:0x%x, 9548 addr:0x%x.\n", + adap->nr, chan, data->fpga_9548_flag, client->addr); + fpga_i2c = i2c_get_adapdata(adap); + reg = &fpga_i2c->reg; + + regval = 1 << chan; + if (data->fpga_9548_flag == FPGA_INTERNAL_PCA9548) { + ret = fpga_reg_write(fpga_i2c, reg->i2c_in_9548_chan, regval); + } else { + if (data->fpga_9548_reset_flag == 1) { + i2c_9548_opt = FPGA_I2C_EXT_9548_EXITS & ~(FPGA_I2C_9548_NO_RESET); + } else { + i2c_9548_opt = FPGA_I2C_EXT_9548_EXITS | FPGA_I2C_9548_NO_RESET; + } + FPGA_PCA954X_VERBOSE("fpga pca9548 reset flag:0x%x, opt:0x%x.\n", + data->fpga_9548_reset_flag, i2c_9548_opt); + ret = fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_exits_flag, i2c_9548_opt); + ret += fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_addr, client->addr); + ret += fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_chan, regval); + } + + return ret; +} + +static int pca954x_deselect_mux(struct i2c_mux_core *muxc, u32 chan) +{ + struct pca954x *data = i2c_mux_priv(muxc); + struct i2c_adapter *adap; + fpga_i2c_dev_t *fpga_i2c; + fpga_i2c_reg_t *reg; + int ret; + + adap = muxc->parent; + while(i2c_parent_is_i2c_adapter(adap)){ + adap = to_i2c_adapter(adap->dev.parent); + } + + fpga_i2c = i2c_get_adapdata(adap); + reg = &fpga_i2c->reg; + ret = 0; + /* Deselect active channel */ + data->last_chan = 0; + + if (data->fpga_9548_flag == FPGA_INTERNAL_PCA9548) { + ret = fpga_reg_write(fpga_i2c, reg->i2c_in_9548_chan, 0); + } else { + + ret = fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_exits_flag, FPGA_I2C_9548_NO_RESET); + ret += fpga_reg_write(fpga_i2c, reg->i2c_ext_9548_chan, 0); + } + + return ret; +} +#endif +/* + * I2C init/probing/exit functions + */ +static int fpga_i2c_pca954x_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct i2c_adapter *adap = to_i2c_adapter(client->dev.parent); + int num, force, class; + struct pca954x *data; + int ret = -ENODEV; + struct device *dev; + int dynamic_nr = 1; + fpga_pca954x_device_t *fpga_pca954x_device; + +#if LINUX_VERSION_CODE > KERNEL_VERSION(4,6,7) + struct i2c_mux_core *muxc; +#endif + + if (!i2c_check_functionality(adap, I2C_FUNC_SMBUS_BYTE)) { + dev_err(&client->dev, "i2c adapter:%d, unsupport I2C_FUNC_SMBUS_BYTE.\n", adap->nr); + goto err; + } + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,6,7) + data = kzalloc(sizeof(struct pca954x), GFP_KERNEL); + if (!data) { + dev_err(&client->dev, "kzalloc failed.\n"); + ret = -ENOMEM; + goto err; + } + + i2c_set_clientdata(client, data); +#else + muxc = i2c_mux_alloc(adap, &client->dev, + PCA954X_MAX_NCHANS, sizeof(*data), 0, + pca954x_select_chan, pca954x_deselect_mux); + if (!muxc) { + dev_err(&client->dev, "i2c_mux_alloc failed.\n"); + return -ENOMEM; + } + data = i2c_mux_priv(muxc); + i2c_set_clientdata(client, muxc); + data->client = client; +#endif + + dev = &client->dev; + if (dev == NULL) { + dev_err(&client->dev, "dev is NULL.\n"); + ret = -ENODEV; + goto exit_free; + } + + if (dev->of_node == NULL) { + if (client->dev.platform_data == NULL) { + dev_err(&client->dev, "Failed to get 954x platform data config.\n"); + ret = -EINVAL; + goto exit_free; + } + fpga_pca954x_device = client->dev.platform_data; + data->fpga_9548_flag = fpga_pca954x_device->fpga_9548_flag; + data->fpga_9548_reset_flag = fpga_pca954x_device->fpga_9548_reset_flag; + data->pca9548_base_nr = fpga_pca954x_device->pca9548_base_nr; + if (data->pca9548_base_nr == 0) { + + dynamic_nr = 1; + } else { + dynamic_nr = 0; + FPGA_PCA954X_VERBOSE("pca9548_base_nr:%u.\n", data->pca9548_base_nr); + } + } else { + data->type = id->driver_data; + /* BUS ID */ + ret = of_property_read_u32(dev->of_node, "fpga_9548_flag", &data->fpga_9548_flag); + ret += of_property_read_u32(dev->of_node, "fpga_9548_reset_flag", &data->fpga_9548_reset_flag); + if (ret != 0) { + dev_err(&client->dev, "Failed to get 954x dts config, ret:%d.\n", ret); + ret = -EINVAL; + goto exit_free; + } + if (of_property_read_u32(dev->of_node, "pca9548_base_nr", &data->pca9548_base_nr)) { + + dynamic_nr = 1; + FPGA_PCA954X_VERBOSE("pca9548_base_nr not found, use dynamic adap number"); + } else { + dynamic_nr = 0; + FPGA_PCA954X_VERBOSE("pca9548_base_nr:%u.\n", data->pca9548_base_nr); + } + } + + if (data->fpga_9548_flag != FPGA_EXTERNAL_PCA9548 && data->fpga_9548_flag != FPGA_INTERNAL_PCA9548) { + dev_err(&client->dev, "Error: fpga 954x flag config error, value:0x%x.\n", data->fpga_9548_flag); + ret = -EINVAL; + goto exit_free; + } + + data->type = id->driver_data; + data->last_chan = 0; /* force the first selection */ + + /* Now create an adapter for each channel */ + for (num = 0; num < chips[data->type].nchans; num++) { + if (dynamic_nr == 1) { + force = 0; /* dynamic adap number */ + } else { + force = data->pca9548_base_nr + num; + } + class = 0; /* no class by default */ +#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,6,7) + data->virt_adaps[num] = + i2c_add_mux_adapter(adap, &client->dev, client, + force, num, class, pca954x_select_chan, pca954x_deselect_mux); + + if (data->virt_adaps[num] == NULL) { + ret = -ENODEV; + dev_err(&client->dev, "Failed to register multiplexed adapter %d as bus %d\n", + num, force); + goto virt_reg_failed; + } +#else + ret = i2c_mux_add_adapter(muxc, force, num, class); + if (ret) { + dev_err(&client->dev, "Failed to register multiplexed adapter %d as bus %d\n", + num, force); + goto virt_reg_failed; + } +#endif + } /* end for num = 0; num < chips[data->type].nchans... */ + + dev_info(&client->dev, "registered %d multiplexed busses for I2C %s %s\n", + num, chips[data->type].muxtype == pca954x_ismux ? "mux" : "switch", client->name); + + return 0; + +virt_reg_failed: +#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,6,7) + for (num--; num >= 0; num--) + i2c_del_mux_adapter(data->virt_adaps[num]); +exit_free: + kfree(data); +#else +exit_free: + i2c_mux_del_adapters(muxc); +#endif +err: + return ret; +} + +static int fpga_i2c_pca954x_remove(struct i2c_client *client) +{ +#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,6,7) + struct pca954x *data = i2c_get_clientdata(client); + const struct chip_desc *chip = &chips[data->type]; + int i; + + for (i = 0; i < chip->nchans; ++i) + if (data->virt_adaps[i]) { + i2c_del_mux_adapter(data->virt_adaps[i]); + data->virt_adaps[i] = NULL; + } + + kfree(data); +#else + struct i2c_mux_core *muxc = i2c_get_clientdata(client); + + i2c_mux_del_adapters(muxc); +#endif + + return 0; +} + +static struct i2c_driver fpga_i2c_pca954x_driver = { + .driver = { + .name = "wb_fpga_pca954x", + .owner = THIS_MODULE, + }, + .probe = fpga_i2c_pca954x_probe, + .remove = fpga_i2c_pca954x_remove, + .id_table = fpga_pca954x_id, +}; + +static int __init fpga_i2c_pca954x_init(void) +{ + int ret; + + ret = i2c_add_driver(&fpga_i2c_pca954x_driver); + return ret; +} + +static void __exit fpga_i2c_pca954x_exit(void) +{ + i2c_del_driver(&fpga_i2c_pca954x_driver); +} + +module_init(fpga_i2c_pca954x_init); +module_exit(fpga_i2c_pca954x_exit); +MODULE_DESCRIPTION("fpga pca954x driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c new file mode 100644 index 000000000000..aedcc78dab90 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c @@ -0,0 +1,164 @@ +/* + * wb_fpga_pcie.c + * ko to enable fpga pcie + */ +#include +#include +#include +#include +#include + +#define FPGA_MSI_IRQ_NUM (14) +#define FPGA_MSI_IRQ_BEGIN (0) +#define XILINX_FPGA_USE_MSI (0) +#define XILINX_FPGA_NUSE_MSI (1) + +int g_fpga_pcie_dev_debug = 0; +int g_fpga_pcie_dev_error = 0; +module_param(g_fpga_pcie_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_fpga_pcie_dev_error, int, S_IRUGO | S_IWUSR); + +#define FPGA_PCIE_DEV_VERBOSE(fmt, args...) do { \ + if (g_fpga_pcie_dev_debug) { \ + printk(KERN_INFO "[FPGA_PCIE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define FPGA_PCIE_DEV_ERROR(fmt, args...) do { \ + if (g_fpga_pcie_dev_error) { \ + printk(KERN_ERR "[FPGA_PCIE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +typedef struct wb_fpga_pcie_s { + struct pci_dev *pci_dev; + int driver_data; +} wb_fpga_pcie_t; + +static void fpga_pcie_recover(struct pci_dev *pdev, const struct pci_device_id *id) +{ + struct resource *mem_base; + u32 bar0_val; + int ret; + + mem_base = &pdev->resource[0]; + ret = pci_read_config_dword(pdev, PCI_BASE_ADDRESS_0, &bar0_val); + if (ret) { + FPGA_PCIE_DEV_ERROR("pci_read_config_dword failed ret %d.\n", ret); + return; + } + FPGA_PCIE_DEV_VERBOSE("mem_base->start[0x%llx], bar0_val[0x%x], ret %d.\n", + mem_base->start, bar0_val, ret); + + if (bar0_val != mem_base->start) { + ret = pci_write_config_dword(pdev, PCI_BASE_ADDRESS_0, mem_base->start); + if (ret) { + FPGA_PCIE_DEV_ERROR("pci_write_config_dword mem_base->start[0x%llx], failed ret %d.\n", mem_base->start, ret); + return; + } + FPGA_PCIE_DEV_VERBOSE("pci_write_config_dword mem_base->start[0x%llx] success.\n", mem_base->start); + } else { + FPGA_PCIE_DEV_VERBOSE("mem_base->start[0x%llx], bar0_val[0x%x], do nothing.\n", + mem_base->start, bar0_val); + } +} + +static int fpga_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) +{ + int err; + wb_fpga_pcie_t *wb_fpga_pcie; + + FPGA_PCIE_DEV_VERBOSE("Enter vendor 0x%x, subsystem_vendor 0x%x.\n", pdev->vendor, pdev->subsystem_vendor); + + wb_fpga_pcie = devm_kzalloc(&pdev->dev, sizeof(wb_fpga_pcie_t), GFP_KERNEL); + if (!wb_fpga_pcie) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + return -ENOMEM; + } + + fpga_pcie_recover(pdev, id); + + /* enable device: ask low-level code to enable I/O and memory */ + FPGA_PCIE_DEV_VERBOSE("start pci_enable_device!\n"); + err = pci_enable_device(pdev); + if (err) { + dev_err(&pdev->dev, "Failed to enable pci device, ret:%d.\n", err); + return err; + } + + FPGA_PCIE_DEV_VERBOSE("start pci_set_master!\n"); + pci_set_master(pdev); + + wb_fpga_pcie->driver_data = id->driver_data; + wb_fpga_pcie->pci_dev = pdev; + pci_set_drvdata(pdev, wb_fpga_pcie); + + if (wb_fpga_pcie->driver_data == XILINX_FPGA_USE_MSI) { + FPGA_PCIE_DEV_VERBOSE("start pci_enable_msi_range!\n"); +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,152) + err = pci_enable_msi_range(pdev, FPGA_MSI_IRQ_BEGIN + 1, FPGA_MSI_IRQ_NUM); +#else + err = pci_alloc_irq_vectors_affinity(pdev, FPGA_MSI_IRQ_BEGIN + 1, + FPGA_MSI_IRQ_NUM, PCI_IRQ_MSI, NULL); +#endif + if (err != FPGA_MSI_IRQ_NUM) { + FPGA_PCIE_DEV_ERROR("pci_enable_msi_block err %d FPGA_MSI_IRQ_NUM %d.\n", err, + FPGA_MSI_IRQ_NUM); + dev_err(&pdev->dev, "Failed to enable pci msi, ret:%d.\n", err); + return -EINVAL; + } + } + + dev_info(&pdev->dev, "fpga pci device init success.\n"); + return 0; +} + +static void fpga_pcie_remove(struct pci_dev *pdev) +{ + wb_fpga_pcie_t *wb_fpga_pcie; + + FPGA_PCIE_DEV_VERBOSE("fpga_pcie_remove.\n"); + + wb_fpga_pcie = pci_get_drvdata(pdev); + if (wb_fpga_pcie->driver_data == XILINX_FPGA_USE_MSI) { + FPGA_PCIE_DEV_VERBOSE("start pci_disable_msi!\n"); + pci_disable_msi(pdev); + } + + pci_disable_device(pdev); + return; +} + +static const struct pci_device_id fpga_pci_ids[] = { + { PCI_DEVICE(0x10ee, 0x7022), .driver_data = XILINX_FPGA_USE_MSI}, + { PCI_DEVICE(0x10ee, 0x7011), .driver_data = XILINX_FPGA_NUSE_MSI}, + {0} +}; +MODULE_DEVICE_TABLE(pci, fpga_pci_ids); + +static struct pci_driver wb_fpga_pcie_driver = { + .name = "wb_fpga_pcie", + .id_table = fpga_pci_ids,/* only dynamic id's */ + .probe = fpga_pcie_probe, + .remove = fpga_pcie_remove, +}; + +static int __init wb_fpga_pcie_init(void) +{ + + FPGA_PCIE_DEV_VERBOSE("wb_fpga_pcie_init enter!\n"); + return pci_register_driver(&wb_fpga_pcie_driver); +} + +static void __exit wb_fpga_pcie_exit(void) +{ + FPGA_PCIE_DEV_VERBOSE("wb_fpga_pcie_exit enter!\n"); + pci_unregister_driver(&wb_fpga_pcie_driver); + return; +} + +module_init(wb_fpga_pcie_init); +module_exit(wb_fpga_pcie_exit); +MODULE_DESCRIPTION("fpga pcie driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_d1500.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_d1500.c new file mode 100644 index 000000000000..7d5d5da87ea7 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_d1500.c @@ -0,0 +1,367 @@ +/* + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (C) 2011, 2012 Cavium Inc. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define GPIO_NAME "wb_gpio_d1500" + +#define GPIO_BASE (0x500) +#define GP_IO_SEL (GPIO_BASE + 0x4) +#define GP_LVL (GPIO_BASE + 0xC) +#define GPI_NMI_EN (GPIO_BASE + 0x28) +#define GPI_NMI_STS (GPIO_BASE + 0x2a) +#define GPI_INV (GPIO_BASE + 0x2c) +#define GPIO_USE_SEL2 (GPIO_BASE + 0x30) +#define GP_IO_SEL2 (GPIO_BASE + 0x34) +#define GP_LVL2 (GPIO_BASE + 0x38) +#define GPI_NMI_EN_2 (GPIO_BASE + 0x3c) +#define GPI_NMI_STS_2 (GPIO_BASE + 0x3e) +#define GPIO_USE_SEL3 (GPIO_BASE + 0x40) +#define GP_IO_SEL3 (GPIO_BASE + 0x44) +#define GP_LVL3 (GPIO_BASE + 0x48) +#define GPI_NMI_EN_3 (GPIO_BASE + 0x50) +#define GPI_NMI_STS_3 (GPIO_BASE + 0x54) + +#define GPIO_BASE_ID (0) +#define BANKSIZE (32) +#define D1500_GPIO_PIN_NUM (96) +#define CELL_NUM (2) + +int g_gpio_d1500_debug = 0; +int g_gpio_d1500_error = 0; +module_param(g_gpio_d1500_debug, int, S_IRUGO | S_IWUSR); +module_param(g_gpio_d1500_error, int, S_IRUGO | S_IWUSR); + +#define GPIO_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_gpio_d1500_debug) { \ + printk(KERN_ERR "[GPIO-D1500][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define GPIO_DEBUG_ERROR(fmt, args...) do { \ + if (g_gpio_d1500_error) { \ + printk(KERN_ERR "[GPIO-D1500][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static DEFINE_SPINLOCK(sio_lock); + +struct gpio_d1500_t { + struct gpio_chip chip; + u64 register_base; +}; + +static int wb_gpio_get(struct gpio_chip *gc, unsigned gpio_num) +{ + u32 data = 0; + unsigned int bank, offset; + unsigned long flags; + + bank = gpio_num / BANKSIZE; + offset = gpio_num % BANKSIZE; + + spin_lock_irqsave(&sio_lock, flags); + if (bank == 0) { + data = inl(GP_LVL) & (1 << offset); + if (data) { + data = 1; + } + } else if (bank == 1) { + data = inl(GP_LVL2) & (1 << offset); + if (data) { + data = 1; + } + } else if (bank == 2) { + data = inl(GP_LVL3) & (1 << offset); + if (data) { + data = 1; + } + } + spin_unlock_irqrestore(&sio_lock, flags); + + return data; +} + +static int wb_gpio_direction_in(struct gpio_chip *gc, unsigned gpio_num) +{ + u32 data; + unsigned int bank, offset; + unsigned long flags; + + bank = gpio_num / BANKSIZE; + offset = gpio_num % BANKSIZE; + + spin_lock_irqsave(&sio_lock, flags); + if (bank == 0) { + data = inl(GP_IO_SEL); + data = data | (1 << offset); + outl(data, GP_IO_SEL); + } else if (bank == 1) { + data = inl(GP_IO_SEL2); + data = data | (1 << offset); + outl(data, GP_IO_SEL2); + } else if (bank == 2) { + data = inl(GP_IO_SEL3); + data = data | (1 << offset); + outl(data, GP_IO_SEL3); + } + spin_unlock_irqrestore(&sio_lock, flags); + + return 0; +} + +static void wb_gpio_set(struct gpio_chip *gc, + unsigned gpio_num, int val) +{ + u32 data; + unsigned int bank, offset; + unsigned long flags; + + bank = gpio_num / BANKSIZE; + offset = gpio_num % BANKSIZE; + + spin_lock_irqsave(&sio_lock, flags); + if (bank == 0) { + data = inl(GP_LVL); + if (val) { + data = data | (1 << offset); + } else { + data = data & ~(1 << offset); + } + outl(data, GP_LVL); + } else if (bank == 1) { + data = inl(GP_LVL2); + if (val) { + data = data | (1 << offset); + } else { + data = data & ~(1 << offset); + } + outl(data, GP_LVL2); + } else if (bank == 2) { + data = inl(GP_LVL3); + if (val) { + data = data | (1 << offset); + } else { + data = data & ~(1 << offset); + } + outl(data, GP_LVL3); + } + spin_unlock_irqrestore(&sio_lock, flags); + + return; +} + +static int wb_gpio_direction_out(struct gpio_chip *gc, + unsigned gpio_num, int val) +{ + u32 data; + unsigned int bank, offset; + unsigned long flags; + + bank = gpio_num / BANKSIZE; + offset = gpio_num % BANKSIZE; + + spin_lock_irqsave(&sio_lock, flags); + if (bank == 0) { + data = inl(GP_IO_SEL); + data = data & ~(1 << offset); + outl(data, GP_IO_SEL); + + data = inl(GP_LVL); + if (val) { + data = data | (1 << offset); + } else { + data = data & ~(1 << offset); + } + outl(data, GP_LVL); + } else if (bank == 1) { + data = inl(GP_IO_SEL2); + data = data & ~(1 << offset); + outl(data, GP_IO_SEL2); + + data = inl(GP_LVL2); + if (val) { + data = data | (1 << offset); + } else { + data = data & ~(1 << offset); + } + outl(data, GP_LVL2); + } else if (bank == 2) { + data = inl(GP_IO_SEL3); + data = data & ~(1 << offset); + outl(data, GP_IO_SEL3); + + data = inl(GP_LVL3); + if (val) { + data = data | (1 << offset); + } else { + data = data & ~(1 << offset); + } + outl(data, GP_LVL3); + } + spin_unlock_irqrestore(&sio_lock, flags); + + return 0; +} + +#ifdef CONFIG_OF +static int wb_gpio_of_xlate(struct gpio_chip *chip, + const struct of_phandle_args *gpio_desc, + u32 *flags) +{ + if (chip->of_gpio_n_cells < 2) { + return -EINVAL; + } + + if (flags) { + *flags = gpio_desc->args[1]; + } + + return gpio_desc->args[0]; +} +#endif + +static int wb_gpio_request(struct gpio_chip *chip, unsigned int offset) +{ + u32 data; + unsigned int bank, tmp_offset; + unsigned long flags; + + bank = offset / BANKSIZE; + tmp_offset = offset % BANKSIZE; + + spin_lock_irqsave(&sio_lock, flags); + if (bank == 0) { + data = inl(GPIO_BASE); + data = data | (1 << tmp_offset); + outl(data, GPIO_BASE); + } else if (bank == 1) { + data = inl(GPIO_USE_SEL2); + data = data | (1 << tmp_offset); + outl(data, GPIO_USE_SEL2); + } else if (bank == 2) { + data = inl(GPIO_USE_SEL3); + data = data | (1 << tmp_offset); + outl(data, GPIO_USE_SEL3); + } + spin_unlock_irqrestore(&sio_lock, flags); + + return 0; +} + +#if 0 +static void wb_gpio_free(struct gpio_chip *chip, unsigned int offset) +{ + u32 data; + unsigned int bank, tmp_offset; + unsigned long flags; + + bank = offset / BANKSIZE; + tmp_offset = offset % BANKSIZE; + + spin_lock_irqsave(&sio_lock, flags); + if (bank == 0) { + data = inl(GPIO_BASE); + data = data & ~(1 << tmp_offset); + outl(data, GPIO_BASE); + } else if (bank == 1) { + data = inl(GPIO_USE_SEL2); + data = data & ~(1 << tmp_offset); + outl(data, GPIO_USE_SEL2); + } else if (bank == 2) { + data = inl(GPIO_USE_SEL3); + data = data & ~(1 << tmp_offset); + outl(data, GPIO_USE_SEL3); + } + + spin_unlock_irqrestore(&sio_lock, flags); + + return; +} +#endif + +static struct gpio_chip wb_gpio_chip = { + .label = GPIO_NAME, + .owner = THIS_MODULE, + .base = GPIO_BASE_ID, + .get = wb_gpio_get, + .direction_input = wb_gpio_direction_in, + .set = wb_gpio_set, + .direction_output = wb_gpio_direction_out, +#ifdef CONFIG_OF + .of_xlate = wb_gpio_of_xlate, +#endif + .request = wb_gpio_request, + .ngpio = D1500_GPIO_PIN_NUM, +#ifdef CONFIG_OF + .of_gpio_n_cells = CELL_NUM, +#endif + .can_sleep = false, +}; + +static int wb_gpio_probe(struct platform_device *pdev) +{ + struct gpio_d1500_t *gpio; + int err; + + gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); + if (!gpio) { + dev_err(&pdev->dev, "gpio kzalloc failed\n"); + return -ENOMEM; + } + + wb_gpio_chip.parent = &pdev->dev; + gpio->register_base = GPIO_BASE; + gpio->chip = wb_gpio_chip; + pdev->dev.platform_data = &wb_gpio_chip; + err = devm_gpiochip_add_data(&pdev->dev, &wb_gpio_chip, gpio); + if (err) { + dev_err(&pdev->dev, "gpiochip add failed\n"); + return err; + } + + dev_info(&pdev->dev, "register %llu gpio success.\n", gpio->register_base); + + return 0; +} + +static int wb_gpio_remove(struct platform_device *pdev) +{ + dev_info(&pdev->dev, "unregister d1500 gpio success\n"); + return 0; +} + +static const struct of_device_id gpio_d1500_match[] = { + { + .compatible = "wb_gpio_d1500", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, gpio_d1500_match); + +static struct platform_driver wb_gpio_driver = { + .driver = { + .name = GPIO_NAME, + .of_match_table = gpio_d1500_match, + }, + .probe = wb_gpio_probe, + .remove = wb_gpio_remove, +}; + +module_platform_driver(wb_gpio_driver); + +MODULE_DESCRIPTION("d1500 gpio driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_device.c new file mode 100644 index 000000000000..75f883b5909d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_gpio_device.c @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include + +static int g_wb_gpio_device_debug = 0; +static int g_wb_gpio_device_error = 0; + +module_param(g_wb_gpio_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_gpio_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_GPIO_DEVICE_VERBOSE(fmt, args...) do { \ + if (g_wb_gpio_device_debug) { \ + printk(KERN_INFO "[WB_GPIO_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_GPIO_DEVICE_ERROR(fmt, args...) do { \ + if (g_wb_gpio_device_error) { \ + printk(KERN_ERR "[WB_GPIO_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static void wb_gpio_device_release(struct device *dev) +{ + return; +} + +static struct platform_device wb_gpio_d1500_device = { + .name = "wb_gpio_d1500", + .id = -1, + .dev = { + .release = wb_gpio_device_release, + }, +}; + +static int __init wb_gpio_device_init(void) +{ + WB_GPIO_DEVICE_VERBOSE("wb_gpio_device_init enter!\n"); + return platform_device_register(&wb_gpio_d1500_device); +} + +static void __exit wb_gpio_device_exit(void) +{ + WB_GPIO_DEVICE_VERBOSE("wb_gpio_device_exit enter!\n"); + return platform_device_unregister(&wb_gpio_d1500_device); +} + +module_init(wb_gpio_device_init); +module_exit(wb_gpio_device_exit); +MODULE_DESCRIPTION("GPIO Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c new file mode 100644 index 000000000000..988ef12a7672 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c @@ -0,0 +1,774 @@ +/* + * wb_io_dev.c + * ko to read/write i2c client through /dev/XXX device + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_i2c_dev.h" + +#define MAX_I2C_DEV_NUM (256) +#define FPGA_MAX_LEN (256) +#define MAX_NAME_SIZE (20) +#define MAX_BUS_WIDTH (16) +#define TRANSFER_WRITE_BUFF (FPGA_MAX_LEN + MAX_BUS_WIDTH) + +#define WIDTH_1Byte (1) +#define WIDTH_2Byte (2) +#define WIDTH_4Byte (4) + +static int g_i2c_dev_debug = 0; +static int g_i2c_dev_error = 0; + +module_param(g_i2c_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_i2c_dev_error, int, S_IRUGO | S_IWUSR); + +#define I2C_DEV_DEBUG_DMESG(fmt, args...) do { \ + if (g_i2c_dev_debug) { \ + printk(KERN_ERR "[I2C_DEV][DEBUG][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define I2C_DEV_DEBUG_ERROR(fmt, args...) do { \ + if (g_i2c_dev_error) { \ + printk(KERN_ERR "[I2C_DEV][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static struct i2c_dev_info* i2c_dev_arry[MAX_I2C_DEV_NUM]; + +struct i2c_dev_info { + const char *name; + uint32_t data_bus_width; + uint32_t addr_bus_width; + uint32_t per_rd_len; + uint32_t per_wr_len; + uint32_t i2c_len; + struct miscdevice misc; + struct i2c_client *client; +}; + +static int transfer_read(struct i2c_client *client, u8 *buf, loff_t regaddr, size_t count) +{ + struct i2c_adapter *adap; + int i; + u8 offset_buf[MAX_BUS_WIDTH]; + struct i2c_msg msgs[2]; + int msgs_num, ret; + struct i2c_dev_info *i2c_dev; + + if (!client) { + I2C_DEV_DEBUG_ERROR("can't get read client\n"); + return -ENODEV; + } + + adap = client->adapter; + if (!adap) { + I2C_DEV_DEBUG_ERROR("can't get read adap\n"); + return -ENODEV; + } + + i2c_dev = i2c_get_clientdata(client); + if (!i2c_dev) { + I2C_DEV_DEBUG_ERROR("can't get read i2c_dev\n"); + return -ENODEV; + } + + i = 0; + + mem_clear(offset_buf, sizeof(offset_buf)); + + switch (i2c_dev->addr_bus_width) { + case WIDTH_4Byte: + offset_buf[i++] = (regaddr >> 24) & 0xFF; + offset_buf[i++] = (regaddr >> 16) & 0xFF; + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_2Byte: + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_1Byte: + offset_buf[i++] = regaddr & 0xFF; + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Address Width,but set width = %u\n", + i2c_dev->addr_bus_width); + return -EINVAL; + } + + if (adap->algo->master_xfer) { + mem_clear(msgs, sizeof(msgs)); + msgs[0].addr = client->addr; + msgs[0].flags = 0; + msgs[0].len = i2c_dev->addr_bus_width; + msgs[0].buf = offset_buf; + + msgs[1].addr = client->addr; + msgs[1].flags = I2C_M_RD; + msgs[1].len = count; + msgs[1].buf = buf; + + msgs_num = 2; + ret = i2c_transfer(client->adapter, msgs, msgs_num); + if (ret != msgs_num) { + I2C_DEV_DEBUG_ERROR("i2c_transfer read error\n"); + return -EINVAL; + } + } else { + I2C_DEV_DEBUG_ERROR("don't find read master_xfer\n"); + return -EINVAL; + + } + return 0; +} + +static int transfer_write(struct i2c_client *client, u8 *buf, loff_t regaddr, size_t count) +{ + struct i2c_adapter *adap; + int i; + u8 offset_buf[TRANSFER_WRITE_BUFF]; + struct i2c_msg msgs[1]; + int msgs_num, ret; + struct i2c_dev_info *i2c_dev; + + if (!client) { + I2C_DEV_DEBUG_ERROR("can't get write client\n"); + return -ENODEV; + } + + adap = client->adapter; + if (!adap) { + I2C_DEV_DEBUG_ERROR("can't get write adap\n"); + return -ENODEV; + } + + i2c_dev = i2c_get_clientdata(client); + if (!i2c_dev) { + I2C_DEV_DEBUG_ERROR("can't get read i2c_dev\n"); + return -ENODEV; + } + + i = 0; + + mem_clear(offset_buf, sizeof(offset_buf)); + + switch (i2c_dev->addr_bus_width) { + case WIDTH_4Byte: + offset_buf[i++] = (regaddr >> 24) & 0xFF; + offset_buf[i++] = (regaddr >> 16) & 0xFF; + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_2Byte: + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_1Byte: + offset_buf[i++] = regaddr & 0xFF; + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Address Width,but set width = %u\n", + i2c_dev->addr_bus_width); + return -EINVAL; + } + + memcpy(offset_buf + i2c_dev->addr_bus_width, buf, count); + + if (adap->algo->master_xfer) { + mem_clear(msgs, sizeof(msgs)); + + msgs[0].addr = client->addr; + msgs[0].flags = 0; + msgs[0].len = i2c_dev->addr_bus_width + count; + msgs[0].buf = offset_buf; + + msgs_num = 1; + ret = i2c_transfer(adap, msgs, msgs_num); + if (ret != msgs_num) { + I2C_DEV_DEBUG_ERROR("i2c_transfer write error\n"); + return -EINVAL; + } + } else { + I2C_DEV_DEBUG_ERROR("don't find write master_xfer\n"); + return -EINVAL; + } + + return 0; +} + +static long i2c_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + return 0; +} + +static int i2c_dev_open(struct inode *inode, struct file *file) +{ + unsigned int minor = iminor(inode); + struct i2c_dev_info *i2c_dev; + + i2c_dev = i2c_dev_arry[minor]; + if (i2c_dev == NULL) { + return -ENODEV; + } + + file->private_data = i2c_dev; + + return 0; +} + +static int i2c_dev_release(struct inode *inode, struct file *file) +{ + file->private_data = NULL; + + return 0; +} + +static int device_read(struct i2c_dev_info *i2c_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i, j, ret; + u8 tmp_offset; + u8 val[FPGA_MAX_LEN]; + u32 width, rd_len, per_len, tmp; + u32 max_per_len; + + if (offset > i2c_dev->i2c_len) { + I2C_DEV_DEBUG_DMESG("offset: 0x%x, i2c len: 0x%x, count: %lu, EOF.\n", + offset, i2c_dev->i2c_len, count); + return 0; + } + + if (count > (i2c_dev->i2c_len - offset)) { + I2C_DEV_DEBUG_DMESG("read count out of range. input len:%lu, read len:%u.\n", + count, i2c_dev->i2c_len - offset); + count = i2c_dev->i2c_len - offset; + } + + if (count == 0) { + I2C_DEV_DEBUG_DMESG("offset: 0x%x, i2c len: 0x%x, read len: %lu, EOF.\n", + offset, i2c_dev->i2c_len, count); + return 0; + } + + width = i2c_dev->data_bus_width; + switch (width) { + case WIDTH_4Byte: + tmp_offset = offset & 0x3; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %lu invalid.\n", + width, offset, count); + return -EINVAL; + } + break; + case WIDTH_2Byte: + tmp_offset = offset & 0x1; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %lu invalid.\n", + width, offset, count); + return -EINVAL; + } + break; + case WIDTH_1Byte: + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Data Width,but set width = %u\n", width); + return -EINVAL; + } + + max_per_len = i2c_dev->per_rd_len; + tmp = (width - 1) & count; + rd_len = (tmp == 0) ? count : count + width - tmp; + per_len = (rd_len > max_per_len) ? (max_per_len) : (rd_len); + + mem_clear(val, sizeof(val)); + for (i = 0; i < rd_len; i += per_len) { + ret = transfer_read(i2c_dev->client, val + i, offset + i, per_len); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("read error.read offset = %u\n", (offset + i)); + return -EFAULT; + } + } + + if (width == WIDTH_1Byte) { + memcpy(buf, val, count); + } else { + for (i = 0; i < count; i += width) { + for (j = 0; (j < width) && (i + j < count); j++) { + buf[i + j] = val[i + width - j - 1]; + } + } + } + + return count; +} + +static int device_write(struct i2c_dev_info *i2c_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i, j, ret; + u8 tmp_offset; + u32 width; + u8 val[FPGA_MAX_LEN]; + u32 wr_len, per_len, tmp; + u32 max_per_len; + + if (offset > i2c_dev->i2c_len) { + I2C_DEV_DEBUG_DMESG("offset: 0x%x, i2c len: 0x%x, count: %lu, EOF.\n", + offset, i2c_dev->i2c_len, count); + return 0; + } + + if (count > (i2c_dev->i2c_len - offset)) { + I2C_DEV_DEBUG_DMESG("read count out of range. input len:%lu, read len:%u.\n", + count, i2c_dev->i2c_len - offset); + count = i2c_dev->i2c_len - offset; + } + + if (count == 0) { + I2C_DEV_DEBUG_DMESG("offset: 0x%x, i2c len: 0x%x, read len: %lu, EOF.\n", + offset, i2c_dev->i2c_len, count); + return 0; + } + + width = i2c_dev->data_bus_width; + switch (width) { + case WIDTH_4Byte: + tmp_offset = offset & 0x3; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %lu invalid.\n", + width, offset, count); + return -EINVAL; + } + break; + case WIDTH_2Byte: + tmp_offset = offset & 0x1; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %lu invalid.\n", + width, offset, count); + return -EINVAL; + } + break; + case WIDTH_1Byte: + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Data Width,but set width = %u\n", width); + return -EINVAL; + } + + mem_clear(val, sizeof(val)); + + if (width == WIDTH_1Byte) { + memcpy(val, buf, count); + } else { + for (i = 0; i < count; i += width) { + for (j = 0; (j < width) && (i + j < count); j++) { + val[i + width - j - 1] = buf[i + j]; + } + } + } + + max_per_len = i2c_dev->per_wr_len; + tmp = (width - 1) & count; + wr_len = (tmp == 0) ? count : count + width - tmp; + per_len = (wr_len > max_per_len) ? (max_per_len) : (wr_len); + + for (i = 0; i < wr_len; i += per_len) { + ret = transfer_write(i2c_dev->client, val + i, offset + i, per_len); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("write error.offset = %u\n", (offset + i)); + return -EFAULT; + } + } + return count; +} + +static ssize_t i2c_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + u8 val[FPGA_MAX_LEN]; + int ret, read_len; + struct i2c_dev_info *i2c_dev; + + i2c_dev = file->private_data; + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("can't get read private_data.\n"); + return -EINVAL; + } + + if (count == 0) { + I2C_DEV_DEBUG_ERROR("Invalid params, read count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(val)) { + I2C_DEV_DEBUG_DMESG("read count %lu exceed max %lu.\n", count, sizeof(val)); + count = sizeof(val); + } + + mem_clear(val, sizeof(val)); + read_len = device_read(i2c_dev, (uint32_t)*offset, val, count); + if (read_len < 0) { + I2C_DEV_DEBUG_ERROR("i2c dev read failed, dev name:%s, offset:0x%x, len:%lu.\n", + i2c_dev->name, (uint32_t)*offset, count); + return read_len; + } + + if (access_ok(buf, read_len)) { + I2C_DEV_DEBUG_DMESG("user space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + if (copy_to_user(buf, val, read_len)) { + I2C_DEV_DEBUG_ERROR("copy_to_user failed.\n"); + return -EFAULT; + } + } else { + I2C_DEV_DEBUG_DMESG("kernel space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + memcpy(buf, val, read_len); + } + + *offset += read_len; + ret = read_len; + return ret; +} + +static ssize_t i2c_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + int ret; + + I2C_DEV_DEBUG_DMESG("i2c_dev_read_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, to->count, iocb->ki_pos); + ret = i2c_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + return ret; +} + +static ssize_t i2c_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + u8 val[FPGA_MAX_LEN]; + int write_len; + struct i2c_dev_info *i2c_dev; + + i2c_dev = file->private_data; + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("get write private_data error.\n"); + return -EINVAL; + } + + if (count == 0) { + I2C_DEV_DEBUG_ERROR("Invalid params, write count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(val)) { + I2C_DEV_DEBUG_DMESG("write count %lu exceed max %lu.\n", count, sizeof(val)); + count = sizeof(val); + } + + mem_clear(val, sizeof(val)); + if (access_ok(buf, count)) { + I2C_DEV_DEBUG_DMESG("user space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + if (copy_from_user(val, buf, count)) { + I2C_DEV_DEBUG_ERROR("copy_from_user failed.\n"); + return -EFAULT; + } + } else { + I2C_DEV_DEBUG_DMESG("kernel space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + memcpy(val, buf, count); + } + + write_len = device_write(i2c_dev, (uint32_t)*offset, val, count); + if (write_len < 0) { + I2C_DEV_DEBUG_ERROR("i2c dev write failed, dev name:%s, offset:0x%llx, len:%lu.\n", + i2c_dev->name, *offset, count); + return write_len; + } + + *offset += write_len; + return write_len; +} + +static ssize_t i2c_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + int ret; + + I2C_DEV_DEBUG_DMESG("i2c_dev_write_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, from->count, iocb->ki_pos); + ret = i2c_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + return ret; +} + +static loff_t i2c_dev_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t ret = 0; + struct i2c_dev_info *i2c_dev; + + i2c_dev = file->private_data; + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("i2c_dev is NULL, llseek failed.\n"); + return -EINVAL; + } + + switch (origin) { + case SEEK_SET: + if (offset < 0) { + I2C_DEV_DEBUG_ERROR("SEEK_SET, offset:%lld, invalid.\n", offset); + ret = -EINVAL; + break; + } + if (offset > i2c_dev->i2c_len) { + I2C_DEV_DEBUG_ERROR("SEEK_SET out of range, offset:%lld, i2c_len:0x%x.\n", + offset, i2c_dev->i2c_len); + ret = - EINVAL; + break; + } + file->f_pos = offset; + ret = file->f_pos; + break; + case SEEK_CUR: + if (((file->f_pos + offset) > i2c_dev->i2c_len) || ((file->f_pos + offset) < 0)) { + I2C_DEV_DEBUG_ERROR("SEEK_CUR out of range, f_ops:%lld, offset:%lld, i2c_len:0x%x.\n", + file->f_pos, offset, i2c_dev->i2c_len); + ret = - EINVAL; + break; + } + file->f_pos += offset; + ret = file->f_pos; + break; + default: + I2C_DEV_DEBUG_ERROR("unsupport llseek type:%d.\n", origin); + ret = -EINVAL; + break; + } + return ret; +} + +static const struct file_operations i2c_dev_fops = { + .owner = THIS_MODULE, + .llseek = i2c_dev_llseek, + .read_iter = i2c_dev_read_iter, + .write_iter = i2c_dev_write_iter, + .unlocked_ioctl = i2c_dev_ioctl, + .open = i2c_dev_open, + .release = i2c_dev_release, +}; + +static struct i2c_dev_info * dev_match(const char *path) +{ + struct i2c_dev_info * i2c_dev; + char dev_name[MAX_NAME_SIZE]; + int i; + for (i = 0; i < MAX_I2C_DEV_NUM; i++) { + if (i2c_dev_arry[ i ] == NULL) { + continue; + } + i2c_dev = i2c_dev_arry[ i ]; + snprintf(dev_name, MAX_NAME_SIZE,"/dev/%s", i2c_dev->name); + if (!strcmp(path, dev_name)) { + I2C_DEV_DEBUG_DMESG("get dev_name = %s, minor = %d\n", dev_name, i); + return i2c_dev; + } + } + + return NULL; +} + +int i2c_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + struct i2c_dev_info *i2c_dev = NULL; + int ret; + + if(path == NULL){ + I2C_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if(buf == NULL){ + I2C_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + if (count > FPGA_MAX_LEN) { + I2C_DEV_DEBUG_ERROR("read count %lu, beyond max:%d.\n", count, FPGA_MAX_LEN); + return -EINVAL; + } + + i2c_dev = dev_match(path); + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + ret = device_read(i2c_dev, offset, buf, count); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("fpga i2c dev read failed, dev name:%s, offset:0x%x, len:%lu.\n", + i2c_dev->name, offset, count); + return -EINVAL; + } + + return count; +} +EXPORT_SYMBOL(i2c_device_func_read); + +int i2c_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + struct i2c_dev_info *i2c_dev = NULL; + int ret; + + if(path == NULL){ + I2C_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if(buf == NULL){ + I2C_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + if (count > FPGA_MAX_LEN) { + I2C_DEV_DEBUG_ERROR("write count %lu, beyond max:%d.\n", count, FPGA_MAX_LEN); + return -EINVAL; + } + + i2c_dev = dev_match(path); + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + ret = device_write (i2c_dev, offset, buf, count); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("i2c dev write failed, dev name:%s, offset:0x%x, len:%lu.\n", + i2c_dev->name, offset, count); + return -EINVAL; + } + + return count; +} +EXPORT_SYMBOL(i2c_device_func_write); + +static int i2c_dev_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + int ret = 0; + struct i2c_dev_info *i2c_dev; + struct miscdevice *misc; + i2c_dev_device_t *i2c_dev_device; + + i2c_dev = devm_kzalloc(&client->dev, sizeof(struct i2c_dev_info), GFP_KERNEL); + if (!i2c_dev) { + dev_err(&client->dev, "devm_kzalloc error. \n"); + return -ENOMEM; + } + + i2c_set_clientdata(client, i2c_dev); + i2c_dev->client = client; + + if (client->dev.of_node) { + + ret += of_property_read_string(client->dev.of_node, "i2c_name", &i2c_dev->name); + ret += of_property_read_u32(client->dev.of_node, "data_bus_width", &i2c_dev->data_bus_width); + ret += of_property_read_u32(client->dev.of_node, "addr_bus_width", &i2c_dev->addr_bus_width); + ret += of_property_read_u32(client->dev.of_node, "per_rd_len", &i2c_dev->per_rd_len); + ret += of_property_read_u32(client->dev.of_node, "per_wr_len", &i2c_dev->per_wr_len); + ret += of_property_read_u32(client->dev.of_node, "i2c_len", &i2c_dev->i2c_len); + if (ret != 0) { + dev_err(&client->dev, "dts config error.ret:%d.\n", ret); + return -ENXIO; + } + } else { + if (client->dev.platform_data == NULL) { + dev_err(&client->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + i2c_dev_device = client->dev.platform_data; + i2c_dev->name = i2c_dev_device->i2c_name; + i2c_dev->data_bus_width = i2c_dev_device->data_bus_width; + i2c_dev->addr_bus_width = i2c_dev_device->addr_bus_width; + i2c_dev->per_rd_len = i2c_dev_device->per_rd_len; + i2c_dev->per_wr_len = i2c_dev_device->per_wr_len; + i2c_dev->i2c_len = i2c_dev_device->i2c_len; + } + + if ((i2c_dev->per_rd_len & (i2c_dev->data_bus_width - 1)) || + (i2c_dev->per_wr_len & (i2c_dev->data_bus_width - 1))) { + dev_err(&client->dev, "Invalid config per_rd_len %d per_wr_len %d data bus_width %d.\n", + i2c_dev->per_rd_len, i2c_dev->per_wr_len, i2c_dev->data_bus_width); + return -ENXIO; + } + + if ((i2c_dev->i2c_len == 0) || (i2c_dev->i2c_len & (i2c_dev->data_bus_width - 1))) { + dev_err(&client->dev, "Invalid config i2c_len %d, data bus_width %d.\n", + i2c_dev->i2c_len, i2c_dev->data_bus_width); + return -ENXIO; + } + + misc = &i2c_dev->misc; + misc->minor = MISC_DYNAMIC_MINOR; + misc->name = i2c_dev->name; + misc->fops = &i2c_dev_fops; + misc->mode = 0666; + if (misc_register(misc) != 0) { + dev_err(&client->dev, "register %s faild.\n", misc->name); + return -ENXIO; + } + + if (misc->minor >= MAX_I2C_DEV_NUM) { + dev_err(&client->dev, "minor number beyond the limit! is %d.\n", misc->minor); + misc_deregister(misc); + return -ENXIO; + } + i2c_dev_arry[misc->minor] = i2c_dev; + + dev_info(&client->dev, "register %u addr_bus_width %u data_bus_width 0x%x i2c_len device %s with %u per_rd_len %u per_wr_len success.\n", + i2c_dev->addr_bus_width, i2c_dev->data_bus_width, i2c_dev->i2c_len, i2c_dev->name, i2c_dev->per_rd_len, i2c_dev->per_wr_len); + + return 0; +} + +static int i2c_dev_remove(struct i2c_client *client) +{ + int i; + for (i = 0; i < MAX_I2C_DEV_NUM; i++) { + if (i2c_dev_arry[i] != NULL) { + misc_deregister(&i2c_dev_arry[i]->misc); + i2c_dev_arry[i] = NULL; + } + } + return 0; +} + +static const struct i2c_device_id i2c_dev_id[] = { + { "wb-i2c-dev", 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, i2c_dev_id); + +static const struct of_device_id i2c_dev_of_match[] = { + { .compatible = "wb-i2c-dev" }, + { }, +}; +MODULE_DEVICE_TABLE(of, i2c_dev_of_match); + +static struct i2c_driver i2c_dev_driver = { + .driver = { + .name = "wb-i2c-dev", + .of_match_table = i2c_dev_of_match, + }, + .probe = i2c_dev_probe, + .remove = i2c_dev_remove, + .id_table = i2c_dev_id, +}; +module_i2c_driver(i2c_dev_driver); + +MODULE_DESCRIPTION("i2c dev driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.h new file mode 100644 index 000000000000..9cc95d88e804 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.h @@ -0,0 +1,20 @@ +#ifndef __WB_I2C_DEV_H__ +#define __WB_I2C_DEV_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#define I2C_DEV_NAME_MAX_LEN (64) + +typedef struct i2c_dev_device_s { + struct i2c_client *client; + uint32_t i2c_bus; + uint32_t i2c_addr; + char i2c_name[I2C_DEV_NAME_MAX_LEN]; + uint32_t data_bus_width; + uint32_t addr_bus_width; + uint32_t per_rd_len; + uint32_t per_wr_len; + uint32_t i2c_len; +} i2c_dev_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c new file mode 100644 index 000000000000..1f69d96bad0b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c @@ -0,0 +1,1143 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * i2c-ocores.c: I2C bus driver for OpenCores I2C controller + * (https://opencores.org/project/i2c/overview) + * + * Peter Korsgaard + * + * Support for the GRLIB port of the controller by + * Andreas Larsson + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_i2c_ocores.h" + +#define OCORES_FLAG_POLL BIT(0) + +/* registers */ +#define OCI2C_PRELOW (0) +#define OCI2C_PREHIGH (1) +#define OCI2C_CONTROL (2) +#define OCI2C_DATA (3) +#define OCI2C_CMD (4) /* write only */ +#define OCI2C_STATUS (4) /* read only, same address as OCI2C_CMD */ + +#define OCI2C_CTRL_IEN (0x40) +#define OCI2C_CTRL_EN (0x80) + +#define OCI2C_CMD_START (0x91) +#define OCI2C_CMD_STOP (0x41) +#define OCI2C_CMD_READ (0x21) +#define OCI2C_CMD_WRITE (0x11) +#define OCI2C_CMD_READ_ACK (0x21) +#define OCI2C_CMD_READ_NACK (0x29) +#define OCI2C_CMD_IACK (0x01) + +#define OCI2C_STAT_IF (0x01) +#define OCI2C_STAT_TIP (0x02) +#define OCI2C_STAT_ARBLOST (0x20) +#define OCI2C_STAT_BUSY (0x40) +#define OCI2C_STAT_NACK (0x80) + +#define STATE_DONE (0) +#define STATE_START (1) +#define STATE_WRITE (2) +#define STATE_READ (3) +#define STATE_ERROR (4) + +#define TYPE_OCORES (0) +#define TYPE_GRLIB (1) + +#define OCORE_WAIT_SCH (40) +#define REG_IO_WIDTH_1 (1) +#define REG_IO_WIDTH_2 (2) +#define REG_IO_WIDTH_4 (4) + +#define SYMBOL_I2C_DEV_MODE (1) +#define FILE_MODE (2) +#define SYMBOL_PCIE_DEV_MODE (3) +#define SYMBOL_IO_DEV_MODE (4) + +typedef struct wb_pci_dev_s { + uint32_t domain; + uint32_t bus; + uint32_t slot; + uint32_t fn; +} wb_pci_dev_t; + +/* + * 'process_lock' exists because ocores_process() and ocores_process_timeout() + * can't run in parallel. + */ +struct ocores_i2c { + uint32_t base_addr; + uint32_t reg_shift; + uint32_t reg_io_width; + unsigned long flags; + wait_queue_head_t wait; + struct i2c_adapter adap; + int adap_nr; + struct i2c_msg *msg; + int pos; + int nmsgs; + int state; + spinlock_t process_lock; + uint32_t ip_clock_khz; + uint32_t bus_clock_khz; + void (*setreg)(struct ocores_i2c *i2c, int reg, u32 value); + u32 (*getreg)(struct ocores_i2c *i2c, int reg); + const char *dev_name; + uint32_t reg_access_mode; + uint32_t big_endian; + uint32_t irq_offset; + wb_pci_dev_t wb_pci_dev; + struct device *dev; +}; + +int g_wb_ocores_i2c_debug = 0; +int g_wb_ocores_i2c_error = 0; +int g_wb_ocores_i2c_xfer = 0; + +module_param(g_wb_ocores_i2c_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_ocores_i2c_error, int, S_IRUGO | S_IWUSR); +module_param(g_wb_ocores_i2c_xfer, int, S_IRUGO | S_IWUSR); + +#define OCORES_I2C_VERBOSE(fmt, args...) do { \ + if (g_wb_ocores_i2c_debug) { \ + printk(KERN_INFO "[OCORES_I2C][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define OCORES_I2C_ERROR(fmt, args...) do { \ + if (g_wb_ocores_i2c_error) { \ + printk(KERN_ERR "[OCORES_I2C][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define OCORES_I2C_XFER(fmt, args...) do { \ + if (g_wb_ocores_i2c_xfer) { \ + printk(KERN_INFO "[OCORES_I2C][XFER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +extern int i2c_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int i2c_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +#if 0 +int __attribute__((weak)) i2c_device_func_read(const char *path, uint32_t offset, + uint8_t *buf, size_t count) +{ + OCORES_I2C_ERROR("enter __weak i2c func read\r\n"); + return -EINVAL; +} + +int __attribute__((weak)) i2c_device_func_write(const char *path, uint32_t offset, + uint8_t *buf, size_t count) +{ + OCORES_I2C_ERROR("enter __weak i2c func write\r\n"); + return -EINVAL; +} + +int __attribute__((weak)) pcie_device_func_read(const char *path, uint32_t offset, + uint8_t *buf, size_t count) +{ + OCORES_I2C_ERROR("enter __weak pcie func read\r\n"); + return -EINVAL; +} + +int __attribute__((weak)) pcie_device_func_write(const char *path, uint32_t offset, + uint8_t *buf, size_t count) +{ + OCORES_I2C_ERROR("enter __weak pcie func write\r\n"); + return -EINVAL; +} + +int __attribute__((weak)) io_device_func_read(const char *path, uint32_t offset, + uint8_t *buf, size_t count) +{ + OCORES_I2C_ERROR("enter __weak io func read\r\n"); + return -EINVAL; +} + +int __attribute__((weak)) io_device_func_write(const char *path, uint32_t offset, + uint8_t *buf, size_t count) +{ + OCORES_I2C_ERROR("enter __weak io func write\r\n"); + return -EINVAL; +} +#endif +static int ocores_i2c_file_read(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + OCORES_I2C_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_read(filp, val, size, &tmp_pos); + if (ret < 0) { + OCORES_I2C_ERROR("kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int ocores_i2c_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + OCORES_I2C_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + OCORES_I2C_ERROR("kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int ocores_i2c_reg_write(struct ocores_i2c *i2c, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + + switch (i2c->reg_access_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_write(i2c->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = ocores_i2c_file_write(i2c->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_write(i2c->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_write(i2c->dev_name, pos, val, size); + break; + default: + OCORES_I2C_ERROR("err func_mode, write failed.\n"); + return -EINVAL; + } + + return ret; +} + +static int ocores_i2c_reg_read(struct ocores_i2c *i2c, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + + switch (i2c->reg_access_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_read(i2c->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = ocores_i2c_file_read(i2c->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_read(i2c->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_read(i2c->dev_name, pos, val, size); + break; + default: + OCORES_I2C_ERROR("err func_mode, read failed.\n"); + return -EINVAL; + } + + return ret; +} +static void oc_setreg_8(struct ocores_i2c *i2c, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_1]; + u32 pos; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + + buf_tmp[0] = (value & 0Xff); + ocores_i2c_reg_write(i2c, pos, buf_tmp, REG_IO_WIDTH_1); + return; +} + +static void oc_setreg_16(struct ocores_i2c *i2c, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 pos; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + + buf_tmp[0] = (value & 0Xff); + buf_tmp[1] = (value >> 8) & 0xff; + ocores_i2c_reg_write(i2c, pos, buf_tmp, REG_IO_WIDTH_2); + return; +} + +static void oc_setreg_32(struct ocores_i2c *i2c, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 pos; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + + buf_tmp[0] = (value & 0xff); + buf_tmp[1] = (value >> 8) & 0xff; + buf_tmp[2] = (value >> 16) & 0xff; + buf_tmp[3] = (value >> 24) & 0xff; + + ocores_i2c_reg_write(i2c, pos, buf_tmp, REG_IO_WIDTH_4); + return; +} + +static void oc_setreg_16be(struct ocores_i2c *i2c, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 pos; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + + buf_tmp[0] = (value >> 8) & 0xff; + buf_tmp[1] = (value & 0Xff); + ocores_i2c_reg_write(i2c, pos, buf_tmp, REG_IO_WIDTH_2); + return; +} + +static void oc_setreg_32be(struct ocores_i2c *i2c, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 pos; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + + buf_tmp[0] = (value >> 24) & 0xff; + buf_tmp[1] = (value >> 16) & 0xff; + buf_tmp[2] = (value >> 8) & 0xff; + buf_tmp[3] = (value & 0xff); + ocores_i2c_reg_write(i2c, pos, buf_tmp, REG_IO_WIDTH_4); + return; +} + +static inline u32 oc_getreg_8(struct ocores_i2c *i2c, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_1]; + u32 value, pos; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + ocores_i2c_reg_read(i2c, pos, buf_tmp, REG_IO_WIDTH_1); + value = buf_tmp[0]; + + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + + return value; +} + +static inline u32 oc_getreg_16(struct ocores_i2c *i2c, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 value, pos; + int i; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + mem_clear(buf_tmp, sizeof(buf_tmp)); + ocores_i2c_reg_read(i2c, pos, buf_tmp, REG_IO_WIDTH_2); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_2 ; i++) { + value |= buf_tmp[i] << (8 * i); + } + + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + return value; +} + +static inline u32 oc_getreg_32(struct ocores_i2c *i2c, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 value, pos; + int i; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + mem_clear(buf_tmp, sizeof(buf_tmp)); + ocores_i2c_reg_read(i2c, pos, buf_tmp, REG_IO_WIDTH_4); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_4 ; i++) { + value |= buf_tmp[i] << (8 * i); + } + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + return value; +} + +static inline u32 oc_getreg_16be(struct ocores_i2c *i2c, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 value, pos; + int i; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + + mem_clear(buf_tmp, sizeof(buf_tmp)); + ocores_i2c_reg_read(i2c, pos, buf_tmp, REG_IO_WIDTH_2); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_2 ; i++) { + value |= buf_tmp[i] << (8 * (REG_IO_WIDTH_2 -i - 1)); + } + + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + return value; +} + +static inline u32 oc_getreg_32be(struct ocores_i2c *i2c, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 value, pos; + int i; + + pos = i2c->base_addr + (reg << i2c->reg_shift); + + mem_clear(buf_tmp, sizeof(buf_tmp)); + ocores_i2c_reg_read(i2c, pos, buf_tmp, REG_IO_WIDTH_4); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_4 ; i++) { + value |= buf_tmp[i] << (8 * (REG_IO_WIDTH_4 -i - 1)); + } + + OCORES_I2C_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + i2c->dev_name, i2c->reg_access_mode, pos, value); + return value; + +} + +static inline void oc_setreg(struct ocores_i2c *i2c, int reg, u32 value) +{ + i2c->setreg(i2c, reg, value); + return; +} + +static inline u32 oc_getreg(struct ocores_i2c *i2c, int reg) +{ + return i2c->getreg(i2c, reg); +} + +static int ocores_msg_check(struct i2c_msg *msgs, int num) +{ + int i, ret = 0; + + if (!msgs) { + ret = -EFAULT; + goto out; + } + + for (i = 0; i < num; ++i) { + if (!msgs[i].buf) { + ret = -EFAULT; + goto out; + } + } + +out: + return ret; +} + +static void ocores_process(struct ocores_i2c *i2c, u8 stat) +{ + struct i2c_msg *msg = i2c->msg; + + OCORES_I2C_XFER("Enter nr %d.\n", i2c->adap.nr); + if ((i2c->state == STATE_DONE) || (i2c->state == STATE_ERROR)) { + /* stop has been sent */ + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_IACK); + wake_up(&i2c->wait); + OCORES_I2C_XFER("stop has been sent, exit.\n"); + goto out; + } + + /* error? */ + if (stat & OCI2C_STAT_ARBLOST) { + i2c->state = STATE_ERROR; + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_STOP); + OCORES_I2C_XFER("error exit, lose arbitration.\n"); + goto out; + } + + if (ocores_msg_check(i2c->msg, i2c->nmsgs) != 0) { + OCORES_I2C_XFER("msg buf is NULL\n"); + i2c->state = STATE_ERROR; + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_STOP); + goto out; + } + + if ((i2c->state == STATE_START) || (i2c->state == STATE_WRITE)) { + i2c->state = + (msg->flags & I2C_M_RD) ? STATE_READ : STATE_WRITE; + + if (stat & OCI2C_STAT_NACK) { + i2c->state = STATE_ERROR; + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_STOP); + OCORES_I2C_XFER("OCI2C_STAT_NACK, exit.\n"); + goto out; + } + } else { + msg->buf[i2c->pos++] = oc_getreg(i2c, OCI2C_DATA); + } + + /* end of msg? */ + if (i2c->pos == msg->len) { + OCORES_I2C_XFER("Enter end of msg.\n"); + i2c->nmsgs--; + i2c->msg++; + i2c->pos = 0; + msg = i2c->msg; + + if (i2c->nmsgs) { /* end? */ + /* send start? */ + if (!(msg->flags & I2C_M_NOSTART)) { + u8 addr = i2c_8bit_addr_from_msg(msg); + + i2c->state = STATE_START; + + oc_setreg(i2c, OCI2C_DATA, addr); + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_START); + OCORES_I2C_XFER("send start, exit.\n"); + goto out; + } + i2c->state = (msg->flags & I2C_M_RD) + ? STATE_READ : STATE_WRITE; + } else { + i2c->state = STATE_DONE; + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_STOP); + OCORES_I2C_XFER("send OCI2C_CMD_STOP, exit.\n"); + goto out; + } + } + + if (i2c->state == STATE_READ) { + oc_setreg(i2c, OCI2C_CMD, i2c->pos == (msg->len-1) ? + OCI2C_CMD_READ_NACK : OCI2C_CMD_READ_ACK); + } else { + oc_setreg(i2c, OCI2C_DATA, msg->buf[i2c->pos++]); + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_WRITE); + } + +out: + OCORES_I2C_XFER("normal, exit nr %d.\n", i2c->adap.nr); + return; +} + +static irqreturn_t ocores_isr(int irq, void *dev_id) +{ + struct ocores_i2c *i2c = dev_id; + u8 stat; + unsigned long flags; + + if (!i2c) { + return IRQ_NONE; + } + + spin_lock_irqsave(&i2c->process_lock, flags); + stat = oc_getreg(i2c, OCI2C_STATUS); + if (!(stat & OCI2C_STAT_IF)) { + spin_unlock_irqrestore(&i2c->process_lock, flags); + return IRQ_NONE; + } + OCORES_I2C_XFER("Enter, irq %d nr %d addr 0x%x.\n", irq, i2c->adap.nr, (!i2c->msg)? 0 : i2c->msg->addr); + ocores_process(i2c, stat); + OCORES_I2C_XFER("Leave, irq %d nr %d addr 0x%x.\n", irq, i2c->adap.nr, (!i2c->msg)? 0 : i2c->msg->addr); + spin_unlock_irqrestore(&i2c->process_lock, flags); + + return IRQ_HANDLED; +} + +/** + * Process timeout event + * @i2c: ocores I2C device instance + */ +static void ocores_process_timeout(struct ocores_i2c *i2c) +{ + unsigned long flags; + + spin_lock_irqsave(&i2c->process_lock, flags); + i2c->state = STATE_ERROR; + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_STOP); + mdelay(1); + spin_unlock_irqrestore(&i2c->process_lock, flags); + return; +} + +/** + * Wait until something change in a given register + * @i2c: ocores I2C device instance + * @reg: register to query + * @mask: bitmask to apply on register value + * @val: expected result + * @timeout: timeout in jiffies + * + * Timeout is necessary to avoid to stay here forever when the chip + * does not answer correctly. + * + * Return: 0 on success, -ETIMEDOUT on timeout + */ +static int ocores_wait(struct ocores_i2c *i2c, + int reg, u8 mask, u8 val, + const unsigned long timeout) +{ + u8 status; + unsigned long j, jiffies_tmp; + unsigned int usleep; + + usleep = OCORE_WAIT_SCH; + j = jiffies + timeout; + while (1) { + jiffies_tmp = jiffies; + status = oc_getreg(i2c, reg); + + if ((status & mask) == val) { + break; + } + + if (time_after(jiffies_tmp, j)) { + OCORES_I2C_XFER("STATUS timeout, mask[0x%x] val[0x%x] status[0x%x]\n", mask, val, status); + return -ETIMEDOUT; + } + usleep_range(usleep,usleep + 1); + } + return 0; + +} + +/** + * Wait until is possible to process some data + * @i2c: ocores I2C device instance + * + * Used when the device is in polling mode (interrupts disabled). + * + * Return: 0 on success, -ETIMEDOUT on timeout + */ +static int ocores_poll_wait(struct ocores_i2c *i2c) +{ + u8 mask; + int err; + + if (i2c->state == STATE_DONE || i2c->state == STATE_ERROR) { + /* transfer is over */ + mask = OCI2C_STAT_BUSY; + } else { + /* on going transfer */ + mask = OCI2C_STAT_TIP; + /* + * We wait for the data to be transferred (8bit), + * then we start polling on the ACK/NACK bit + */ + udelay((8 * 1000) / i2c->bus_clock_khz); + } + + /* + * once we are here we expect to get the expected result immediately + * so if after 100ms we timeout then something is broken. + */ + err = ocores_wait(i2c, OCI2C_STATUS, mask, 0, msecs_to_jiffies(100)); + if (err) { + OCORES_I2C_XFER("STATUS timeout, bit 0x%x did not clear in 100ms, err %d\n", mask, err); + } + return err; +} + +/** + * It handles an IRQ-less transfer + * @i2c: ocores I2C device instance + * + * Even if IRQ are disabled, the I2C OpenCore IP behavior is exactly the same + * (only that IRQ are not produced). This means that we can re-use entirely + * ocores_isr(), we just add our polling code around it. + * + * It can run in atomic context + */ +static int ocores_process_polling(struct ocores_i2c *i2c) +{ + irqreturn_t ret; + int err; + + while (1) { + err = ocores_poll_wait(i2c); + if (err) { + i2c->state = STATE_ERROR; + break; /* timeout */ + } + + ret = ocores_isr(-1, i2c); + if (ret == IRQ_NONE) { + break; /* all messages have been transferred */ + } + } + + return err; +} + +static int ocores_xfer_core(struct ocores_i2c *i2c, + struct i2c_msg *msgs, int num, + bool polling) +{ + int ret; + u8 ctrl; + unsigned long flags; + + OCORES_I2C_VERBOSE("Enter ocores_xfer_core. polling mode:%d.\n", polling); + spin_lock_irqsave(&i2c->process_lock, flags); + + ctrl = oc_getreg(i2c, OCI2C_CONTROL); + if (polling) { + oc_setreg(i2c, OCI2C_CONTROL, ctrl & ~OCI2C_CTRL_IEN); + } else { + oc_setreg(i2c, OCI2C_CONTROL, ctrl | OCI2C_CTRL_IEN); + } + + i2c->msg = msgs; + i2c->pos = 0; + i2c->nmsgs = num; + i2c->state = STATE_START; + + oc_setreg(i2c, OCI2C_DATA, i2c_8bit_addr_from_msg(i2c->msg)); + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_START); + + spin_unlock_irqrestore(&i2c->process_lock, flags); + + if (polling) { + ret = ocores_process_polling(i2c); + if (ret) { + ocores_process_timeout(i2c); + return -ETIMEDOUT; + } + } else { + ret = wait_event_timeout(i2c->wait, + (i2c->state == STATE_ERROR) || + (i2c->state == STATE_DONE), HZ); + if (ret == 0) { + ocores_process_timeout(i2c); + return -ETIMEDOUT; + } + } + + return (i2c->state == STATE_DONE) ? num : -EIO; +} + +static int ocores_xfer(struct i2c_adapter *adap, + struct i2c_msg *msgs, int num) +{ + struct ocores_i2c *i2c; + int ret; + + OCORES_I2C_VERBOSE("Enter ocores_xfer.\n"); + if (!adap || ocores_msg_check(msgs, num)) { + OCORES_I2C_ERROR("[MAY BE USER SPACE ERROR]:msg buf is NULL\n"); + return -EFAULT; + } + OCORES_I2C_VERBOSE("i2c bus:%d, msgs num:%d.\n", adap->nr, num); + + i2c = i2c_get_adapdata(adap); + + if (i2c->flags & OCORES_FLAG_POLL) { + ret = ocores_xfer_core(i2c, msgs, num, true); + } else { + ret = ocores_xfer_core(i2c, msgs, num, false); + } + + return ret; +} + +static int ocores_init(struct device *dev, struct ocores_i2c *i2c) +{ + int prescale; + int diff; + u8 ctrl = oc_getreg(i2c, OCI2C_CONTROL); + + /* make sure the device is disabled */ + ctrl &= ~(OCI2C_CTRL_EN | OCI2C_CTRL_IEN); + oc_setreg(i2c, OCI2C_CONTROL, ctrl); + + prescale = (i2c->ip_clock_khz / (5 * i2c->bus_clock_khz)) - 1; + prescale = clamp(prescale, 0, 0xffff); + + diff = i2c->ip_clock_khz / (5 * (prescale + 1)) - i2c->bus_clock_khz; + if (abs(diff) > i2c->bus_clock_khz / 10) { + dev_err(dev, "Unsupported clock settings: core: %d KHz, bus: %d KHz\n", + i2c->ip_clock_khz, i2c->bus_clock_khz); + return -EINVAL; + } + + oc_setreg(i2c, OCI2C_PRELOW, prescale & 0xff); + oc_setreg(i2c, OCI2C_PREHIGH, prescale >> 8); + + /* Init the device */ + oc_setreg(i2c, OCI2C_CMD, OCI2C_CMD_IACK); + oc_setreg(i2c, OCI2C_CONTROL, ctrl | OCI2C_CTRL_EN); + + return 0; +} + +static u32 ocores_func(struct i2c_adapter *adap) +{ + return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; +} + +static const struct i2c_algorithm ocores_algorithm = { + .master_xfer = ocores_xfer, + .functionality = ocores_func, +}; + +static const struct i2c_adapter ocores_adapter = { + .owner = THIS_MODULE, + .name = "wb-i2c-ocores", + .class = I2C_CLASS_DEPRECATED, + .algo = &ocores_algorithm, +}; + +static const struct of_device_id ocores_i2c_match[] = { + { + .compatible = "opencores,wb-i2c-ocores", + .data = (void *)TYPE_OCORES, + }, + {}, +}; +MODULE_DEVICE_TABLE(of, ocores_i2c_match); + +static int fpga_ocores_i2c_get_irq(struct ocores_i2c *i2c) +{ + int devfn, irq; + struct device *dev; + wb_pci_dev_t *wb_pci_dev; + struct pci_dev *pci_dev; + i2c_ocores_device_t *i2c_ocores_device; + int ret; + + dev = i2c->dev; + wb_pci_dev = &i2c->wb_pci_dev; + + if (dev->of_node) { + ret = 0; + ret += of_property_read_u32(dev->of_node, "pci_domain", &wb_pci_dev->domain); + ret += of_property_read_u32(dev->of_node, "pci_bus", &wb_pci_dev->bus); + ret += of_property_read_u32(dev->of_node, "pci_slot", &wb_pci_dev->slot); + ret += of_property_read_u32(dev->of_node, "pci_fn", &wb_pci_dev->fn); + + if (ret != 0) { + OCORES_I2C_ERROR("dts config error, ret:%d.\n", ret); + ret = -EINVAL; + return ret; + } + } else { + if (i2c->dev->platform_data == NULL) { + OCORES_I2C_ERROR("Failed to get platform data config.\n"); + ret = -EINVAL; + return ret; + } + i2c_ocores_device = i2c->dev->platform_data; + wb_pci_dev->domain = i2c_ocores_device->pci_domain; + wb_pci_dev->bus = i2c_ocores_device->pci_bus; + wb_pci_dev->slot = i2c_ocores_device->pci_slot; + wb_pci_dev->fn = i2c_ocores_device->pci_fn; + } + + OCORES_I2C_VERBOSE("pci_domain:0x%x, pci_bus:0x%x, pci_slot:0x%x, pci_fn:0x%x.\n", + wb_pci_dev->domain, wb_pci_dev->bus, wb_pci_dev->slot, wb_pci_dev->fn); + + devfn = PCI_DEVFN(wb_pci_dev->slot, wb_pci_dev->fn); + pci_dev = pci_get_domain_bus_and_slot(wb_pci_dev->domain, wb_pci_dev->bus, devfn); + if (pci_dev == NULL) { + OCORES_I2C_ERROR("Failed to find pci_dev, domain:0x%04x, bus:0x%02x, devfn:0x%x\n", + wb_pci_dev->domain, wb_pci_dev->bus, devfn); + return -ENODEV; + } + irq = pci_dev->irq + i2c->irq_offset; + OCORES_I2C_VERBOSE("get irq no:%d.\n", irq); + return irq; +} + +static int ocores_i2c_config_init(struct ocores_i2c *i2c) +{ + int ret; + struct device *dev; + i2c_ocores_device_t *i2c_ocores_device; + + dev = i2c->dev; + ret = 0; + + if (dev->of_node) { + ret += of_property_read_string(dev->of_node, "dev_name", &i2c->dev_name); + ret += of_property_read_u32(dev->of_node, "dev_base", &i2c->base_addr); + ret += of_property_read_u32(dev->of_node, "reg_shift", &i2c->reg_shift); + ret += of_property_read_u32(dev->of_node, "reg_io_width", &i2c->reg_io_width); + ret += of_property_read_u32(dev->of_node, "ip_clock_khz", &i2c->ip_clock_khz); + ret += of_property_read_u32(dev->of_node, "bus_clock_khz", &i2c->bus_clock_khz); + ret += of_property_read_u32(dev->of_node, "reg_access_mode", &i2c->reg_access_mode); + + if (ret != 0) { + OCORES_I2C_ERROR("dts config error, ret:%d.\n", ret); + ret = -ENXIO; + return ret; + } + } else { + if (i2c->dev->platform_data == NULL) { + OCORES_I2C_ERROR("Failed to get platform data config.\n"); + ret = -ENXIO; + return ret; + } + i2c_ocores_device = i2c->dev->platform_data; + i2c->dev_name = i2c_ocores_device->dev_name; + i2c->adap_nr = i2c_ocores_device->adap_nr; + i2c->big_endian = i2c_ocores_device->big_endian; + i2c->base_addr = i2c_ocores_device->dev_base; + i2c->reg_shift = i2c_ocores_device->reg_shift; + i2c->reg_io_width = i2c_ocores_device->reg_io_width; + i2c->ip_clock_khz = i2c_ocores_device->ip_clock_khz; + i2c->bus_clock_khz = i2c_ocores_device->bus_clock_khz; + i2c->reg_access_mode = i2c_ocores_device->reg_access_mode; + } + + OCORES_I2C_VERBOSE("name:%s, base:0x%x, reg_shift:0x%x, io_width:0x%x, ip_clock_khz:0x%x, bus_clock_khz:0x%x.\n", + i2c->dev_name, i2c->base_addr, i2c->reg_shift, i2c->reg_io_width, i2c->ip_clock_khz, i2c->bus_clock_khz); + OCORES_I2C_VERBOSE("reg access mode:%d.\n", i2c->reg_access_mode); + return ret; +} + +static int ocores_i2c_probe(struct platform_device *pdev) +{ + struct ocores_i2c *i2c; + int irq, ret; + bool be; + i2c_ocores_device_t *i2c_ocores_device; + + OCORES_I2C_VERBOSE("Enter main probe\n"); + + i2c = devm_kzalloc(&pdev->dev, sizeof(*i2c), GFP_KERNEL); + if (!i2c) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + return -ENOMEM; + } + + spin_lock_init(&i2c->process_lock); + + i2c->dev = &pdev->dev; + ret = ocores_i2c_config_init(i2c); + if (ret !=0) { + dev_err(i2c->dev, "Failed to get ocores i2c dts config.\n"); + goto out; + } + + if (i2c->dev->of_node) { + if (of_property_read_u32(i2c->dev->of_node, "big_endian", &i2c->big_endian)) { + + be = 0; + } else { + be = i2c->big_endian; + } + } else { + be = i2c->big_endian; + } + + if (i2c->reg_io_width == 0) { + i2c->reg_io_width = 1; /* Set to default value */ + } + + if (!i2c->setreg || !i2c->getreg) { + switch (i2c->reg_io_width) { + case REG_IO_WIDTH_1: + i2c->setreg = oc_setreg_8; + i2c->getreg = oc_getreg_8; + break; + + case REG_IO_WIDTH_2: + i2c->setreg = be ? oc_setreg_16be : oc_setreg_16; + i2c->getreg = be ? oc_getreg_16be : oc_getreg_16; + break; + + case REG_IO_WIDTH_4: + i2c->setreg = be ? oc_setreg_32be : oc_setreg_32; + i2c->getreg = be ? oc_getreg_32be : oc_getreg_32; + break; + + default: + dev_err(i2c->dev, "Unsupported I/O width (%d)\n", + i2c->reg_io_width); + ret = -EINVAL; + goto out; + } + } + + init_waitqueue_head(&i2c->wait); + irq = -1; + + if (i2c->dev->of_node) { + if (of_property_read_u32(i2c->dev->of_node, "irq_offset", &i2c->irq_offset)) { + + i2c->flags |= OCORES_FLAG_POLL; + } else { + + irq = fpga_ocores_i2c_get_irq(i2c); + if (irq < 0 ) { + dev_err(i2c->dev, "Failed to get ocores i2c irq number, ret: %d.\n", irq); + ret = irq; + goto out; + } + } + } else { + if (i2c->dev->platform_data == NULL) { + + i2c->flags |= OCORES_FLAG_POLL; + OCORES_I2C_VERBOSE("Failed to get platform data config, set OCORES_FLAG_POLL.\n"); + } else { + i2c_ocores_device = i2c->dev->platform_data; + if (i2c_ocores_device->irq_type == 0) { + + i2c->flags |= OCORES_FLAG_POLL; + } else { + + irq = fpga_ocores_i2c_get_irq(i2c); + if (irq < 0 ) { + dev_err(i2c->dev, "Failed to get ocores i2c irq number, ret: %d.\n", irq); + ret = irq; + goto out; + } + } + } + } + + if (!(i2c->flags & OCORES_FLAG_POLL)) { + ret = devm_request_irq(&pdev->dev, irq, ocores_isr, 0, + pdev->name, i2c); + if (ret) { + dev_err(i2c->dev, "Cannot claim IRQ\n"); + goto out; + } + } + + ret = ocores_init(i2c->dev, i2c); + if (ret) { + goto out; + } + + /* hook up driver to tree */ + platform_set_drvdata(pdev, i2c); + i2c->adap = ocores_adapter; + i2c_set_adapdata(&i2c->adap, i2c); + i2c->adap.dev.parent = &pdev->dev; + i2c->adap.dev.of_node = pdev->dev.of_node; + + if (i2c->dev->of_node) { + /* adap.nr get from dts aliases */ + ret = i2c_add_adapter(&i2c->adap); + } else { + i2c->adap.nr = i2c->adap_nr; + ret = i2c_add_numbered_adapter(&i2c->adap); + } + if (ret) { + goto fail_add; + } + OCORES_I2C_VERBOSE("Main probe out\n"); + dev_info(i2c->dev, "registered i2c-%d for %s with base address:0x%x success.\n", + i2c->adap.nr, i2c->dev_name, i2c->base_addr); + return 0; +fail_add: + platform_set_drvdata(pdev, NULL); +out: + return ret; +} + +static int ocores_i2c_remove(struct platform_device *pdev) +{ + struct ocores_i2c *i2c = platform_get_drvdata(pdev); + u8 ctrl = oc_getreg(i2c, OCI2C_CONTROL); + + /* disable i2c logic */ + ctrl &= ~(OCI2C_CTRL_EN | OCI2C_CTRL_IEN); + oc_setreg(i2c, OCI2C_CONTROL, ctrl); + + /* remove adapter & data */ + i2c_del_adapter(&i2c->adap); + return 0; +} + +static struct platform_driver ocores_i2c_driver = { + .probe = ocores_i2c_probe, + .remove = ocores_i2c_remove, + .driver = { + .name = "wb-ocores-i2c", + .of_match_table = ocores_i2c_match, + }, +}; + +module_platform_driver(ocores_i2c_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("OpenCores I2C bus driver"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:ocores-i2c"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h new file mode 100644 index 000000000000..acd2710a92f0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h @@ -0,0 +1,28 @@ +#ifndef __WB_I2C_OCORES_H__ +#define __WB_I2C_OCORES_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#define I2C_OCORES_DEV_NAME_MAX_LEN (64) + +typedef struct i2c_ocores_device_s { + uint32_t big_endian; + char dev_name[I2C_OCORES_DEV_NAME_MAX_LEN]; + int adap_nr; + uint32_t dev_base; + uint32_t reg_shift; + uint32_t reg_io_width; + uint32_t ip_clock_khz; + uint32_t bus_clock_khz; + uint32_t reg_access_mode; + + uint32_t irq_type; + uint32_t irq_offset; + uint32_t pci_domain; + uint32_t pci_bus; + uint32_t pci_slot; + uint32_t pci_fn; + int device_flag; +} i2c_ocores_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c new file mode 100644 index 000000000000..b1f5294b85ab --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c @@ -0,0 +1,571 @@ +/* + * wb_io_dev.c + * ko to read/write ioports through /dev/XXX device + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_io_dev.h" + +#define PROXY_NAME "wb-io-dev" +#define MAX_IO_DEV_NUM (256) +#define IO_RDWR_MAX_LEN (256) +#define MAX_NAME_SIZE (20) +#define IO_INDIRECT_ADDR_H(addr) ((addr >> 8) & 0xff) +#define IO_INDIRECT_ADDR_L(addr) ((addr) & 0xff) +#define IO_INDIRECT_OP_WRITE (0x2) +#define IO_INDIRECT_OP_READ (0X3) + +static int g_io_dev_debug = 0; +static int g_io_dev_error = 0; + +module_param(g_io_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_io_dev_error, int, S_IRUGO | S_IWUSR); + +#define IO_DEV_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_io_dev_debug) { \ + printk(KERN_INFO "[IO_DEV][VER][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define IO_DEV_DEBUG_ERROR(fmt, args...) do { \ + if (g_io_dev_error) { \ + printk(KERN_ERR "[IO_DEV][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +typedef struct wb_io_dev_s { + const char *name; + uint32_t io_base; + uint32_t io_len; + uint32_t indirect_addr; + uint32_t wr_data; + uint32_t addr_low; + uint32_t addr_high; + uint32_t rd_data; + uint32_t opt_ctl; + spinlock_t io_dev_lock; + struct miscdevice misc; +} wb_io_dev_t; + +static wb_io_dev_t* io_dev_arry[MAX_IO_DEV_NUM]; + +static int io_dev_open(struct inode *inode, struct file *file) +{ + unsigned int minor = iminor(inode); + wb_io_dev_t *wb_io_dev; + + if (minor >= MAX_IO_DEV_NUM) { + IO_DEV_DEBUG_ERROR("minor out of range, minor = %d.\n", minor); + return -ENODEV; + } + + wb_io_dev = io_dev_arry[minor]; + if (wb_io_dev == NULL) { + IO_DEV_DEBUG_ERROR("wb_io_dev is NULL, open failed, minor = %d\n", minor); + return -ENODEV; + } + + file->private_data = wb_io_dev; + return 0; +} + +static int io_dev_release(struct inode *inode, struct file *file) +{ + file->private_data = NULL; + return 0; +} + +uint8_t io_indirect_addressing_read(wb_io_dev_t *wb_io_dev, uint32_t address) +{ + uint8_t addr_l, addr_h, value; + unsigned long flags; + + addr_h = IO_INDIRECT_ADDR_H(address); + addr_l = IO_INDIRECT_ADDR_L(address); + IO_DEV_DEBUG_VERBOSE("read one count, addr = 0x%x\n", address); + + spin_lock_irqsave(&wb_io_dev->io_dev_lock, flags); + + outb(addr_l, wb_io_dev->io_base + wb_io_dev->addr_low); + + outb(addr_h, wb_io_dev->io_base + wb_io_dev->addr_high); + + outb(IO_INDIRECT_OP_READ, wb_io_dev->io_base + wb_io_dev->opt_ctl); + + value = inb(wb_io_dev->io_base + wb_io_dev->rd_data); + + spin_unlock_irqrestore(&wb_io_dev->io_dev_lock, flags); + + return value; +} + +static int io_dev_read_tmp(wb_io_dev_t *wb_io_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i; + + if (offset > wb_io_dev->io_len) { + IO_DEV_DEBUG_VERBOSE("offset:0x%x, io len:0x%x, EOF.\n", offset, wb_io_dev->io_len); + return 0; + } + + if (count > wb_io_dev->io_len - offset) { + IO_DEV_DEBUG_VERBOSE("read count out of range. input len:%lu, read len:%u.\n", + count, wb_io_dev->io_len - offset); + count = wb_io_dev->io_len - offset; + } + if (wb_io_dev->indirect_addr) { + for (i = 0; i < count; i++) { + buf[i] = io_indirect_addressing_read(wb_io_dev, offset + i); + } + } else { + for (i = 0; i < count; i++) { + buf[i] = inb(wb_io_dev->io_base + offset + i); + } + } + + return count; +} + +static ssize_t io_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + wb_io_dev_t *wb_io_dev; + int ret, read_len; + u8 buf_tmp[IO_RDWR_MAX_LEN]; + + wb_io_dev = file->private_data; + if (wb_io_dev == NULL) { + IO_DEV_DEBUG_ERROR("wb_io_dev is NULL, read failed.\n"); + return -EINVAL; + } + + if (count == 0) { + IO_DEV_DEBUG_ERROR("Invalid params, read count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(buf_tmp)) { + IO_DEV_DEBUG_VERBOSE("read count %lu exceed max %lu.\n", count, sizeof(buf_tmp)); + count = sizeof(buf_tmp); + } + + mem_clear(buf_tmp, sizeof(buf_tmp)); + read_len = io_dev_read_tmp(wb_io_dev, *offset, buf_tmp, count); + if (read_len < 0) { + IO_DEV_DEBUG_ERROR("io_dev_read_tmp failed, ret:%d.\n", read_len); + return read_len; + } + + if (access_ok(buf, read_len)) { + IO_DEV_DEBUG_VERBOSE("user space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + if (copy_to_user(buf, buf_tmp, read_len)) { + IO_DEV_DEBUG_ERROR("copy_to_user failed.\n"); + return -EFAULT; + } + } else { + IO_DEV_DEBUG_VERBOSE("kernel space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + memcpy(buf, buf_tmp, read_len); + } + *offset += read_len; + ret = read_len; + return ret; +} + +static ssize_t io_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + int ret; + + IO_DEV_DEBUG_VERBOSE("io_dev_read_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, to->count, iocb->ki_pos); + ret = io_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + return ret; +} + +void io_indirect_addressing_write(wb_io_dev_t *wb_io_dev, uint32_t address, uint8_t reg_val) +{ + uint8_t addr_l, addr_h; + unsigned long flags; + + addr_h = IO_INDIRECT_ADDR_H(address); + addr_l = IO_INDIRECT_ADDR_L(address); + IO_DEV_DEBUG_VERBOSE("write one count, addr = 0x%x\n", address); + + spin_lock_irqsave(&wb_io_dev->io_dev_lock, flags); + + outb(reg_val, wb_io_dev->io_base + wb_io_dev->wr_data); + + outb(addr_l, wb_io_dev->io_base + wb_io_dev->addr_low); + + outb(addr_h, wb_io_dev->io_base + wb_io_dev->addr_high); + + outb(IO_INDIRECT_OP_WRITE, wb_io_dev->io_base + wb_io_dev->opt_ctl); + + spin_unlock_irqrestore(&wb_io_dev->io_dev_lock, flags); + + return; +} + +static int io_dev_write_tmp(wb_io_dev_t *wb_io_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i; + + if (offset > wb_io_dev->io_len) { + IO_DEV_DEBUG_VERBOSE("offset:0x%x, io len:0x%x, EOF.\n", offset, wb_io_dev->io_len); + return 0; + } + + if (count > wb_io_dev->io_len - offset) { + IO_DEV_DEBUG_VERBOSE("write count out of range. input len:%lu, write len:%u.\n", + count, wb_io_dev->io_len - offset); + count = wb_io_dev->io_len - offset; + } + if (wb_io_dev->indirect_addr) { + for (i = 0; i < count; i++) { + io_indirect_addressing_write(wb_io_dev, offset + i, buf[i]); + } + } else { + for (i = 0; i < count; i++) { + outb(buf[i], wb_io_dev->io_base + offset + i); + } + } + + return count; +} + +static ssize_t io_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + wb_io_dev_t *wb_io_dev; + int write_len; + u8 buf_tmp[IO_RDWR_MAX_LEN]; + + wb_io_dev = file->private_data; + if (wb_io_dev == NULL) { + IO_DEV_DEBUG_ERROR("wb_io_dev is NULL, write failed.\n"); + return -EINVAL; + } + + if (count == 0) { + IO_DEV_DEBUG_ERROR("Invalid params, write count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(buf_tmp)) { + IO_DEV_DEBUG_VERBOSE("write count %lu exceed max %lu.\n", count, sizeof(buf_tmp)); + count = sizeof(buf_tmp); + } + + mem_clear(buf_tmp, sizeof(buf_tmp)); + if (access_ok(buf, count)) { + IO_DEV_DEBUG_VERBOSE("user space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + if (copy_from_user(buf_tmp, buf, count)) { + IO_DEV_DEBUG_ERROR("copy_from_user failed.\n"); + return -EFAULT; + } + } else { + IO_DEV_DEBUG_VERBOSE("kernel space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + memcpy(buf_tmp, buf, count); + } + + write_len = io_dev_write_tmp(wb_io_dev, *offset, buf_tmp, count); + if (write_len < 0) { + IO_DEV_DEBUG_ERROR("io_dev_write_tmp failed, ret:%d.\n", write_len); + return write_len; + } + + *offset += write_len; + return write_len; +} + +static ssize_t io_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + int ret; + + IO_DEV_DEBUG_VERBOSE("io_dev_write_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, from->count, iocb->ki_pos); + ret = io_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + return ret; +} + +static loff_t io_dev_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t ret = 0; + wb_io_dev_t *wb_io_dev; + + wb_io_dev = file->private_data; + if (wb_io_dev == NULL) { + IO_DEV_DEBUG_ERROR("wb_io_dev is NULL, llseek failed.\n"); + return -EINVAL; + } + + switch (origin) { + case SEEK_SET: + if (offset < 0) { + IO_DEV_DEBUG_ERROR("SEEK_SET, offset:%lld, invalid.\n", offset); + ret = -EINVAL; + break; + } + if (offset > wb_io_dev->io_len) { + IO_DEV_DEBUG_ERROR("SEEK_SET out of range, offset:%lld, io_len:0x%x.\n", + offset, wb_io_dev->io_len); + ret = - EINVAL; + break; + } + file->f_pos = offset; + ret = file->f_pos; + break; + case SEEK_CUR: + if (((file->f_pos + offset) > wb_io_dev->io_len) || ((file->f_pos + offset) < 0)) { + IO_DEV_DEBUG_ERROR("SEEK_CUR out of range, f_ops:%lld, offset:%lld, io_len:0x%x.\n", + file->f_pos, offset, wb_io_dev->io_len); + ret = - EINVAL; + break; + } + file->f_pos += offset; + ret = file->f_pos; + break; + default: + IO_DEV_DEBUG_ERROR("unsupport llseek type:%d.\n", origin); + ret = -EINVAL; + break; + } + return ret; +} + +static long io_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + return 0; +} + +static const struct file_operations io_dev_fops = { + .owner = THIS_MODULE, + .llseek = io_dev_llseek, + .read_iter = io_dev_read_iter, + .write_iter = io_dev_write_iter, + .unlocked_ioctl = io_dev_ioctl, + .open = io_dev_open, + .release = io_dev_release, +}; + +static wb_io_dev_t *dev_match(const char *path) +{ + wb_io_dev_t *wb_io_dev; + char dev_name[MAX_NAME_SIZE]; + int i; + + for (i = 0; i < MAX_IO_DEV_NUM; i++) { + if (io_dev_arry[i] == NULL) { + continue; + } + wb_io_dev = io_dev_arry[i]; + snprintf(dev_name, MAX_NAME_SIZE,"/dev/%s", wb_io_dev->name); + if (!strcmp(path, dev_name)) { + IO_DEV_DEBUG_VERBOSE("get dev_name = %s, minor = %d\n", dev_name, i); + return wb_io_dev; + } + } + + return NULL; +} + +int io_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + wb_io_dev_t *wb_io_dev; + int read_len; + + if (path == NULL) { + IO_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if (buf == NULL) { + IO_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + wb_io_dev = dev_match(path); + if (wb_io_dev == NULL) { + IO_DEV_DEBUG_ERROR("io_dev match failed. dev path = %s", path); + return -EINVAL; + } + + read_len = io_dev_read_tmp(wb_io_dev, offset, buf, count); + if (read_len < 0) { + IO_DEV_DEBUG_ERROR("io_dev_read_tmp failed, ret:%d.\n", read_len); + } + return read_len; +} +EXPORT_SYMBOL(io_device_func_read); + +int io_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + wb_io_dev_t *wb_io_dev; + int write_len; + + if (path == NULL) { + IO_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if (buf == NULL) { + IO_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + wb_io_dev = dev_match(path); + if (wb_io_dev == NULL) { + IO_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + write_len = io_dev_write_tmp(wb_io_dev, offset, buf, count); + if (write_len < 0) { + IO_DEV_DEBUG_ERROR("io_dev_write_tmp failed, ret:%d.\n", write_len); + } + return write_len; +} +EXPORT_SYMBOL(io_device_func_write); + +static int io_dev_probe(struct platform_device *pdev) +{ + int ret; + wb_io_dev_t *wb_io_dev; + struct miscdevice *misc; + io_dev_device_t *io_dev_device; + + wb_io_dev = devm_kzalloc(&pdev->dev, sizeof(wb_io_dev_t), GFP_KERNEL); + if (!wb_io_dev) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + ret = -ENOMEM; + return ret; + } + spin_lock_init(&wb_io_dev->io_dev_lock); + + if (pdev->dev.of_node) { + ret = 0; + ret += of_property_read_string(pdev->dev.of_node, "io_dev_name", &wb_io_dev->name); + ret += of_property_read_u32(pdev->dev.of_node, "io_base", &wb_io_dev->io_base); + ret += of_property_read_u32(pdev->dev.of_node, "io_len", &wb_io_dev->io_len); + if (of_property_read_bool(pdev->dev.of_node, "indirect_addr")) { + + wb_io_dev->indirect_addr = 1; + ret += of_property_read_u32(pdev->dev.of_node, "wr_data", &wb_io_dev->wr_data); + ret += of_property_read_u32(pdev->dev.of_node, "addr_low", &wb_io_dev->addr_low); + ret += of_property_read_u32(pdev->dev.of_node, "addr_high", &wb_io_dev->addr_high); + ret += of_property_read_u32(pdev->dev.of_node, "rd_data", &wb_io_dev->rd_data); + ret += of_property_read_u32(pdev->dev.of_node, "opt_ctl", &wb_io_dev->opt_ctl); + } else { + + wb_io_dev->indirect_addr = 0; + } + if (ret != 0) { + dev_err(&pdev->dev, "Failed to get dts config, ret:%d.\n", ret); + return -ENXIO; + } + } else { + if (pdev->dev.platform_data == NULL) { + dev_err(&pdev->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + io_dev_device = pdev->dev.platform_data; + wb_io_dev->name = io_dev_device->io_dev_name; + wb_io_dev->io_base = io_dev_device->io_base; + wb_io_dev->io_len = io_dev_device->io_len; + wb_io_dev->indirect_addr = io_dev_device->indirect_addr; + if (wb_io_dev->indirect_addr == 1) { + wb_io_dev->wr_data = io_dev_device->wr_data; + wb_io_dev->addr_low = io_dev_device->addr_low; + wb_io_dev->addr_high = io_dev_device->addr_high; + wb_io_dev->rd_data = io_dev_device->rd_data; + wb_io_dev->opt_ctl = io_dev_device->opt_ctl; + } + } + + IO_DEV_DEBUG_VERBOSE("name:%s, io base:0x%x, io len:0x%x, addressing type:%s.\n", + wb_io_dev->name, wb_io_dev->io_base, wb_io_dev->io_len, + wb_io_dev->indirect_addr ? "indirect" : "direct"); + + misc = &wb_io_dev->misc; + misc->minor = MISC_DYNAMIC_MINOR; + misc->name = wb_io_dev->name; + misc->fops = &io_dev_fops; + misc->mode = 0666; + if (misc_register(misc) != 0) { + dev_err(&pdev->dev, "Failed to register %s device.\n", misc->name); + return -ENXIO; + } + if (misc->minor >= MAX_IO_DEV_NUM) { + dev_err(&pdev->dev, "Error: device minor[%d] more than max io device num[%d].\n", + misc->minor, MAX_IO_DEV_NUM); + misc_deregister(misc); + return -EINVAL; + } + io_dev_arry[misc->minor] = wb_io_dev; + dev_info(&pdev->dev, "register %s device [0x%x][0x%x] with minor %d using %s addressing success.\n", + misc->name, wb_io_dev->io_base, wb_io_dev->io_len, misc->minor, + wb_io_dev->indirect_addr ? "indirect" : "direct"); + + return 0; +} + +static int io_dev_remove(struct platform_device *pdev) +{ + int i; + + for (i = 0; i < MAX_IO_DEV_NUM ; i++) { + if (io_dev_arry[i] != NULL) { + misc_deregister(&io_dev_arry[i]->misc); + io_dev_arry[i] = NULL; + } + } + + return 0; +} + +static struct of_device_id io_dev_match[] = { + { + .compatible = "wb-io-dev", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, io_dev_match); + +static struct platform_driver wb_io_dev_driver = { + .probe = io_dev_probe, + .remove = io_dev_remove, + .driver = { + .owner = THIS_MODULE, + .name = PROXY_NAME, + .of_match_table = io_dev_match, + }, +}; + +static int __init wb_io_dev_init(void) +{ + return platform_driver_register(&wb_io_dev_driver); +} + +static void __exit wb_io_dev_exit(void) +{ + platform_driver_unregister(&wb_io_dev_driver); +} + +module_init(wb_io_dev_init); +module_exit(wb_io_dev_exit); +MODULE_DESCRIPTION("IO device driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.h new file mode 100644 index 000000000000..3a1a10f0f20c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.h @@ -0,0 +1,21 @@ +#ifndef __WB_IO_DEV_H__ +#define __WB_IO_DEV_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#define IO_DEV_NAME_MAX_LEN (64) + +typedef struct io_dev_device_s { + char io_dev_name[IO_DEV_NAME_MAX_LEN]; + uint32_t io_base; + uint32_t io_len; + uint32_t indirect_addr; + uint32_t wr_data; + uint32_t addr_low; + uint32_t addr_high; + uint32_t rd_data; + uint32_t opt_ctl; + int device_flag; +} io_dev_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.c new file mode 100644 index 000000000000..c079dc409696 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.c @@ -0,0 +1,166 @@ +/* + * wb_lpc_drv.c + * ko to set lpc pcie config io addr and enable lpc + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_lpc_drv.h" + +#define LPC_DRIVER_NAME "wb-lpc" +#define LPC_MAKE_PCI_IO_RANGE(__base) ((0xfc0001) | ((__base) & (0xFFFC))) + +int g_lpc_dev_debug = 0; +int g_lpc_dev_error = 0; + +module_param(g_lpc_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_lpc_dev_error, int, S_IRUGO | S_IWUSR); + +#define LPC_DEV_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_lpc_dev_debug) { \ + printk(KERN_INFO "[LPC_DEV][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define LPC_DEV_DEBUG_ERROR(fmt, args...) do { \ + if (g_lpc_dev_error) { \ + printk(KERN_ERR "[LPC_DEV][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +typedef struct wb_lpc_dev_s { + const char *lpc_io_name; + uint32_t domain; + uint32_t bus; + uint32_t slot; + uint32_t fn; + uint32_t lpc_io_base; + uint32_t lpc_io_size; + uint32_t lpc_gen_dec; +} wb_lpc_dev_t; + +static int wb_lpc_probe(struct platform_device *pdev) +{ + int ret, devfn; + wb_lpc_dev_t *wb_lpc_dev; + struct pci_dev *pci_dev; + lpc_drv_device_t *lpc_drv_device; + + wb_lpc_dev = devm_kzalloc(&pdev->dev, sizeof(wb_lpc_dev_t), GFP_KERNEL); + if (!wb_lpc_dev) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + ret = -ENOMEM; + return ret; + } + + if (pdev->dev.of_node) { + ret = 0; + ret += of_property_read_string(pdev->dev.of_node, "lpc_io_name", &wb_lpc_dev->lpc_io_name); + ret += of_property_read_u32(pdev->dev.of_node, "pci_domain", &wb_lpc_dev->domain); + ret += of_property_read_u32(pdev->dev.of_node, "pci_bus", &wb_lpc_dev->bus); + ret += of_property_read_u32(pdev->dev.of_node, "pci_slot", &wb_lpc_dev->slot); + ret += of_property_read_u32(pdev->dev.of_node, "pci_fn", &wb_lpc_dev->fn); + ret += of_property_read_u32(pdev->dev.of_node, "lpc_io_base", &wb_lpc_dev->lpc_io_base); + ret += of_property_read_u32(pdev->dev.of_node, "lpc_io_size", &wb_lpc_dev->lpc_io_size); + ret += of_property_read_u32(pdev->dev.of_node, "lpc_gen_dec", &wb_lpc_dev->lpc_gen_dec); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to get dts config, ret:%d.\n", ret); + return -ENXIO; + } + } else { + if (pdev->dev.platform_data == NULL) { + dev_err(&pdev->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + lpc_drv_device = pdev->dev.platform_data; + wb_lpc_dev->lpc_io_name = lpc_drv_device->lpc_io_name; + wb_lpc_dev->domain = lpc_drv_device->pci_domain; + wb_lpc_dev->bus = lpc_drv_device->pci_bus; + wb_lpc_dev->slot = lpc_drv_device->pci_slot; + wb_lpc_dev->fn = lpc_drv_device->pci_fn; + wb_lpc_dev->lpc_io_base = lpc_drv_device->lpc_io_base; + wb_lpc_dev->lpc_io_size = lpc_drv_device->lpc_io_size; + wb_lpc_dev->lpc_gen_dec = lpc_drv_device->lpc_gen_dec; + } + + LPC_DEV_DEBUG_VERBOSE("domain:0x%04x, bus:0x%02x, slot:0x%02x, fn:%u\n", + wb_lpc_dev->domain,wb_lpc_dev->bus, wb_lpc_dev->slot, wb_lpc_dev->fn); + LPC_DEV_DEBUG_VERBOSE("lpc_io_name:%s, lpc_io_base:0x%x, lpc_io_size:%u, lpc_gen_dec:0x%x.\n", + wb_lpc_dev->lpc_io_name, wb_lpc_dev->lpc_io_base, wb_lpc_dev->lpc_io_size, wb_lpc_dev->lpc_gen_dec); + + devfn = PCI_DEVFN(wb_lpc_dev->slot, wb_lpc_dev->fn); + pci_dev = pci_get_domain_bus_and_slot(wb_lpc_dev->domain, wb_lpc_dev->bus, devfn); + if (pci_dev == NULL) { + dev_err(&pdev->dev, "Failed to find pci_dev, domain:0x%04x, bus:0x%02x, devfn:0x%x\n", + wb_lpc_dev->domain, wb_lpc_dev->bus, devfn); + return -ENXIO; + } + + pci_write_config_dword(pci_dev, wb_lpc_dev->lpc_gen_dec, LPC_MAKE_PCI_IO_RANGE(wb_lpc_dev->lpc_io_base)); + if (!request_region(wb_lpc_dev->lpc_io_base, wb_lpc_dev->lpc_io_size, wb_lpc_dev->lpc_io_name)) { + dev_err(&pdev->dev, "Failed to request_region [0x%x][0x%x].\n", wb_lpc_dev->lpc_io_base, wb_lpc_dev->lpc_io_size); + return -EBUSY; + } + + platform_set_drvdata(pdev, wb_lpc_dev); + + dev_info(&pdev->dev, "lpc request_region [0x%x][0x%x] success.\n", wb_lpc_dev->lpc_io_base, wb_lpc_dev->lpc_io_size); + + return 0; +} + +static int wb_lpc_remove(struct platform_device *pdev) +{ + wb_lpc_dev_t *wb_lpc_dev; + + wb_lpc_dev = platform_get_drvdata(pdev); + if (wb_lpc_dev) { + release_region(wb_lpc_dev->lpc_io_base , wb_lpc_dev->lpc_io_size); + LPC_DEV_DEBUG_VERBOSE("lpc base:0x%x, len:0x%x.\n", wb_lpc_dev->lpc_io_base, wb_lpc_dev->lpc_io_size); + } + LPC_DEV_DEBUG_VERBOSE("lpc remove.\n"); + + return 0; +} + +static struct of_device_id lpc_dev_match[] = { + { + .compatible = "wb-lpc", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, lpc_dev_match); + +static struct platform_driver wb_lpc_driver = { + .probe = wb_lpc_probe, + .remove = wb_lpc_remove, + .driver = { + .owner = THIS_MODULE, + .name = LPC_DRIVER_NAME, + .of_match_table = lpc_dev_match, + }, +}; + +static int __init wb_lpc_init(void) +{ + return platform_driver_register(&wb_lpc_driver); +} + +static void __exit wb_lpc_exit(void) +{ + platform_driver_unregister(&wb_lpc_driver); +} + +module_init(wb_lpc_init); +module_exit(wb_lpc_exit); +MODULE_DESCRIPTION("lpc driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.h new file mode 100644 index 000000000000..76e8c32c12e9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_lpc_drv.h @@ -0,0 +1,18 @@ +#ifndef __WB_LPC_DRV_H__ +#define __WB_LPC_DRV_H__ + +#define LPC_IO_NAME_MAX_LEN (64) + +typedef struct lpc_drv_device_s { + char lpc_io_name[LPC_IO_NAME_MAX_LEN]; + int pci_domain; + int pci_bus; + int pci_slot; + int pci_fn; + int lpc_io_base; + int lpc_io_size; + int lpc_gen_dec; + int device_flag; +} lpc_drv_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c new file mode 100644 index 000000000000..1e84e65d7b11 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c @@ -0,0 +1,660 @@ +/* + * wb_mac_th3.c - A driver for control wb_mac_th3 base on wb_mac.c + * + * Copyright (c) 1998, 1999 Frodo Looijaard + * + * 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 mem_clear(data, size) memset((data), 0, (size)) + +#define MAC_TEMP_INVALID (99999999) + +#define MAC_SIZE (256) +#define MAC_TEMP_NUM (16) + +#define MAC_ID_REG (0x02000000) + +typedef enum { + DBG_START, + DBG_VERBOSE, + DBG_KEY, + DBG_WARN, + DBG_ERROR, + DBG_END, +} dbg_level_t; + +typedef enum{ + MAC_TYPE_START, + TD4_X9 = 0xb780, + TD4_X9_8 = 0xb788, + TH3 = 0xb980, + TD3 = 0xb870, + TD4 = 0xb880, + TH4 = 0xb990, + MAC_TYPE_END, +} mac_type; + +typedef struct sensor_regs_s { + int id; + u32 reg; +} sensor_reg_t; + +typedef struct mac_temp_regs_s { + int mac_type; + sensor_reg_t sensor_reg[MAC_TEMP_NUM]; +} mac_temp_reg_t; + +typedef enum { + MAC_TEMP_START, + MAC_TEMP_INDEX1, + MAC_TEMP_INDEX2, + MAC_TEMP_INDEX3, + MAC_TEMP_INDEX4, + MAC_TEMP_INDEX5, + MAC_TEMP_INDEX6, + MAC_TEMP_INDEX7, + MAC_TEMP_INDEX8, + MAC_TEMP_INDEX9, + MAC_TEMP_INDEX10, + MAC_TEMP_INDEX11, + MAC_TEMP_INDEX12, + MAC_TEMP_INDEX13, + MAC_TEMP_INDEX14, + MAC_TEMP_INDEX15, + MAC_TEMP_END, +} mac_hwmon_index; + +static mac_temp_reg_t mac_temp_reg[] = { + { + /* TD3 */ + .mac_type = TD3, + .sensor_reg = { + {.id = MAC_TEMP_INDEX1, .reg = 0x02004700}, + {.id = MAC_TEMP_INDEX2, .reg = 0x02004800}, + {.id = MAC_TEMP_INDEX3, .reg = 0x02004900}, + {.id = MAC_TEMP_INDEX4, .reg = 0x02004a00}, + {.id = MAC_TEMP_INDEX5, .reg = 0x02004b00}, + {.id = MAC_TEMP_INDEX6, .reg = 0x02004c00}, + {.id = MAC_TEMP_INDEX7, .reg = 0x02004d00}, + {.id = MAC_TEMP_INDEX8, .reg = 0x02004e00}, + {.id = MAC_TEMP_INDEX9, .reg = 0x02005200}, + {.id = MAC_TEMP_INDEX10, .reg = 0x02005100}, + {.id = MAC_TEMP_INDEX11, .reg = 0x02005000}, + {.id = MAC_TEMP_INDEX12, .reg = 0x02004f00}, + }, + }, + { + /* TD4 */ + .mac_type = TD4, + .sensor_reg = { + {.id = MAC_TEMP_INDEX1, .reg = 0x02004900}, + {.id = MAC_TEMP_INDEX2, .reg = 0x02004b00}, + {.id = MAC_TEMP_INDEX3, .reg = 0x02004d00}, + {.id = MAC_TEMP_INDEX4, .reg = 0x02004f00}, + {.id = MAC_TEMP_INDEX5, .reg = 0x02005100}, + {.id = MAC_TEMP_INDEX6, .reg = 0x02005300}, + {.id = MAC_TEMP_INDEX7, .reg = 0x02005500}, + {.id = MAC_TEMP_INDEX8, .reg = 0x02005700}, + {.id = MAC_TEMP_INDEX9, .reg = 0x02005900}, + {.id = MAC_TEMP_INDEX10, .reg = 0x02005b00}, + {.id = MAC_TEMP_INDEX11, .reg = 0x02005d00}, + {.id = MAC_TEMP_INDEX12, .reg = 0x02005f00}, + {.id = MAC_TEMP_INDEX13, .reg = 0x02006100}, + {.id = MAC_TEMP_INDEX14, .reg = 0x02006300}, + {.id = MAC_TEMP_INDEX15, .reg = 0x02006500}, + }, + }, + { + /* TD4_X9 */ + .mac_type = TD4_X9, + .sensor_reg = { + {.id = MAC_TEMP_INDEX1, .reg = 0x02005a00}, + {.id = MAC_TEMP_INDEX2, .reg = 0x02005c00}, + {.id = MAC_TEMP_INDEX3, .reg = 0x02005e00}, + {.id = MAC_TEMP_INDEX4, .reg = 0x02006000}, + {.id = MAC_TEMP_INDEX5, .reg = 0x02006200}, + {.id = MAC_TEMP_INDEX6, .reg = 0x02006400}, + {.id = MAC_TEMP_INDEX7, .reg = 0x02006600}, + {.id = MAC_TEMP_INDEX8, .reg = 0x02006800}, + {.id = MAC_TEMP_INDEX9, .reg = 0x02006a00}, + }, + }, + { + /* TD4_X9_8 */ + .mac_type = TD4_X9_8, + .sensor_reg = { + {.id = MAC_TEMP_INDEX1, .reg = 0x02005a00}, + {.id = MAC_TEMP_INDEX2, .reg = 0x02005c00}, + {.id = MAC_TEMP_INDEX3, .reg = 0x02005e00}, + {.id = MAC_TEMP_INDEX4, .reg = 0x02006000}, + {.id = MAC_TEMP_INDEX5, .reg = 0x02006200}, + {.id = MAC_TEMP_INDEX6, .reg = 0x02006400}, + {.id = MAC_TEMP_INDEX7, .reg = 0x02006600}, + {.id = MAC_TEMP_INDEX8, .reg = 0x02006800}, + {.id = MAC_TEMP_INDEX9, .reg = 0x02006a00}, + }, + }, + { + /* TH3 */ + .mac_type = TH3, + .sensor_reg = { + {.id = MAC_TEMP_INDEX1, .reg = 0x02004a00}, + {.id = MAC_TEMP_INDEX2, .reg = 0x02004b00}, + {.id = MAC_TEMP_INDEX3, .reg = 0x02004c00}, + {.id = MAC_TEMP_INDEX4, .reg = 0x02004d00}, + {.id = MAC_TEMP_INDEX5, .reg = 0x02004e00}, + {.id = MAC_TEMP_INDEX6, .reg = 0x02004f00}, + {.id = MAC_TEMP_INDEX7, .reg = 0x02005000}, + {.id = MAC_TEMP_INDEX8, .reg = 0x02005100}, + {.id = MAC_TEMP_INDEX9, .reg = 0x02005200}, + {.id = MAC_TEMP_INDEX10, .reg = 0x02005300}, + {.id = MAC_TEMP_INDEX11, .reg = 0x02005400}, + {.id = MAC_TEMP_INDEX12, .reg = 0x02005500}, + {.id = MAC_TEMP_INDEX13, .reg = 0x02005600}, + {.id = MAC_TEMP_INDEX14, .reg = 0x02005700}, + {.id = MAC_TEMP_INDEX15, .reg = 0x02005800}, + }, + }, + { + /* TH4 */ + .mac_type = TH4, + .sensor_reg = { + {.id = MAC_TEMP_INDEX1, .reg = 0x0201d800}, + {.id = MAC_TEMP_INDEX2, .reg = 0x0201e000}, + {.id = MAC_TEMP_INDEX3, .reg = 0x0201e800}, + {.id = MAC_TEMP_INDEX4, .reg = 0x0201f000}, + {.id = MAC_TEMP_INDEX5, .reg = 0x0201f800}, + {.id = MAC_TEMP_INDEX6, .reg = 0x02020000}, + {.id = MAC_TEMP_INDEX7, .reg = 0x02020800}, + {.id = MAC_TEMP_INDEX8, .reg = 0x02021000}, + {.id = MAC_TEMP_INDEX9, .reg = 0x02021800}, + {.id = MAC_TEMP_INDEX10, .reg = 0x02022000}, + {.id = MAC_TEMP_INDEX11, .reg = 0x02022800}, + {.id = MAC_TEMP_INDEX12, .reg = 0x02023000}, + {.id = MAC_TEMP_INDEX13, .reg = 0x02023800}, + {.id = MAC_TEMP_INDEX14, .reg = 0x02024000}, + {.id = MAC_TEMP_INDEX15, .reg = 0x02024800}, + }, + }, +}; + +static int debuglevel = 0; +module_param(debuglevel, int, S_IRUGO | S_IWUSR); + +static int mac_pcie_id = MAC_TYPE_START; +module_param(mac_pcie_id, int, S_IRUGO | S_IWUSR); + +#define DBG_DEBUG(fmt, arg...) do { \ + if ( debuglevel > DBG_START && debuglevel < DBG_ERROR) { \ + printk(KERN_INFO "[DEBUG]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } else if ( debuglevel >= DBG_ERROR ) { \ + printk(KERN_ERR "[DEBUG]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } else { } \ +} while (0) + +#define DBG_ERROR(fmt, arg...) do { \ + if ( debuglevel > DBG_START) { \ + printk(KERN_ERR "[ERROR]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ + } \ + } while (0) + +struct mac_data { + struct i2c_client *client; + struct device *hwmon_dev; + struct mutex update_lock; + u8 data[MAC_SIZE]; /* Register value */ +}; + +static int wb_i2c_read_one_time(struct i2c_client *client, u8 *recv_buf, int size) +{ + struct i2c_msg msgs[2]; + int ret = 0; + + if ((client == NULL) || (recv_buf == NULL)) { + DBG_DEBUG("i2c_client || recv_buf = NULL\r\n"); + return -1; + } + + mem_clear(msgs, sizeof(msgs)); + + msgs[0].buf = recv_buf; + msgs[0].len = size; + msgs[0].addr = client->addr; + msgs[0].flags |= I2C_M_RD; + + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) { + return ret; + } + DBG_DEBUG("i2c_transfer, dev_addr 0x%x, size %d.\n", client->addr, size); + + return 0; +} + +static int wb_i2c_write_one_time(struct i2c_client *client, u8 *write_buf, int size) +{ + struct i2c_msg msgs[2]; + int ret = 0; + + if ((client == NULL) || (write_buf == NULL)) { + DBG_DEBUG("i2c_client || write_buf = NULL\r\n"); + return -1; + } + + if ((size <= 0)) { + DBG_DEBUG("size invalid, size %d\n", size); + return -1; + } + + mem_clear(msgs, sizeof(msgs)); + + msgs[0].len = size; + msgs[0].buf = write_buf; + msgs[0].addr = client->addr; + + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) { + return ret; + } + DBG_DEBUG("i2c_transfer, dev_addr 0x%x, size %d\n", client->addr, size); + + return 0; +} + +static u8 step2_buf1[8] = {0x03, 0x21, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00}; +static u8 step2_buf2[8] = {0x03, 0x21, 0x04, 0x0c, 0x2c, 0x38, 0x02, 0x00}; +static u8 step2_buf3[8] = {0x03, 0x21, 0x04, 0x10, 0x02, 0x00, 0x4a, 0x00}; +static u8 step2_buf4[8] = {0x03, 0x21, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01}; +static u8 step2_buf5[4] = {0x03, 0x21, 0x04, 0x08}; +static u8 step2_buf6[4] = {0x03, 0x21, 0x04, 0x10}; + +static int getmac_register(struct i2c_client *client, u32 index, int *reg_value) +{ + int i; + int ret = 0; + int value = 0; + unsigned char read_buf[8]; + + if (index == 0) { + DBG_ERROR("invalid index\n"); + return -1; + } + + step2_buf3[7] = index & 0xff; + step2_buf3[6] = (index >> 8) & 0xff; + step2_buf3[5] = (index >> 16) & 0xff; + step2_buf3[4] = (index >> 24) & 0xff; + + ret = wb_i2c_write_one_time(client, step2_buf1, 8); + if (ret < 0) { + DBG_ERROR("write step2_buf1 failed, ret = %d\n", ret); + } + ret = wb_i2c_write_one_time(client, step2_buf2, 8); + if (ret < 0) { + DBG_ERROR("write step2_buf2 failed, ret = %d\n", ret); + } + ret = wb_i2c_write_one_time(client, step2_buf3, 8); + if (ret < 0) { + DBG_ERROR("write step2_buf3 failed, ret = %d\n", ret); + } + ret = wb_i2c_write_one_time(client, step2_buf4, 8); + if (ret < 0) { + DBG_ERROR("write step2_buf4 failed, ret = %d\n", ret); + } + + ret = wb_i2c_write_one_time(client, step2_buf5, 4); + if (ret < 0) { + DBG_ERROR("write step2_buf5 failed, ret = %d\n", ret); + } + ret = wb_i2c_read_one_time(client, read_buf, 4); + if (ret < 0) { + DBG_ERROR("read failed, ret = %d\n", ret); + } + for (i = 0; i < 4; i++) { + DBG_DEBUG("read_buf[%d] = 0x%x \n", i, read_buf[i]); + } + + ret = wb_i2c_write_one_time(client, step2_buf6, 4); + if (ret < 0) { + DBG_ERROR("write step2_buf6 failed, ret = %d\n", ret); + } + + ret = wb_i2c_read_one_time(client, read_buf, 4); + if (ret < 0) { + DBG_ERROR("read failed, ret = %d\n", ret); + return ret; + } + + value = (read_buf[0] << 24)| (read_buf[1] << 16) | (read_buf[2] << 8) | read_buf[3]; + *reg_value = value; + + return ret; +} + +static int mac_calcute(u32 reg, int *temp) +{ + int ret = 0; + u32 tmp = 0; + + switch(mac_pcie_id) { + case TD3: + case TH3: + tmp = reg & 0x3ff; + *temp = 434100 - (tmp * 535); + break; + case TD4: + case TH4: + case TD4_X9: + case TD4_X9_8: + tmp = reg & 0x7ff; + *temp = (356070 - (tmp * 237)); + break; + default: + ret = -1; + DBG_ERROR("read failed, ret = %d\n", ret); + break; + } + + if ((*temp / 1000 < -70) || (*temp / 1000 > 200)) { + ret = -1; + DBG_ERROR("mac temp invalid, temp = %d\n", *temp ); + } + + return ret; +} + +static int find_reg_type(int type, int *type_index) +{ + int i; + int size; + + size = ARRAY_SIZE(mac_temp_reg); + for (i = 0; i < size; i++) { + if (mac_temp_reg[i].mac_type == type) { + *type_index = i; + return 0; + } + } + + return -1; +} + +static sensor_reg_t * find_reg_offset(int type, int index) +{ + int i; + int type_index; + int ret; + + ret = find_reg_type(type, &type_index); + if (ret < 0) { + DBG_ERROR("find_reg_type failed, ret = %d\n", ret); + return NULL; + } + + for (i = 0; i < MAC_TEMP_NUM; i++) { + if (mac_temp_reg[type_index].sensor_reg[i].id == index) { + return &(mac_temp_reg[type_index].sensor_reg[i]); + } + } + + return NULL; +} + +static int get_mactemp(struct i2c_client *client, int index, int *temp) +{ + int ret; + int reg_value; + + if (index == 0) { + DBG_ERROR("invalid index\n"); + return -1; + } + + ret = getmac_register(client, index, ®_value); + if (ret < 0) { + DBG_ERROR("getmac_register failed, ret = %d\n", ret); + return ret; + } + DBG_DEBUG("reg_value = 0x%x \n", reg_value); + + ret = mac_calcute(reg_value, temp); + if (ret < 0) { + DBG_ERROR("mac_calcute failed, ret = %d\n", ret); + return ret; + } + + return 0; +} + +static ssize_t show_mac_temp(struct device *dev, struct device_attribute *da, char *buf) +{ + struct mac_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + u32 index_value = to_sensor_dev_attr_2(da)->index; + sensor_reg_t *t; + int result = 0; + int temp = -MAC_TEMP_INVALID; + + mutex_lock(&data->update_lock); + t = find_reg_offset(mac_pcie_id, index_value); + if (t == NULL) { + temp = -MAC_TEMP_INVALID; + DBG_ERROR("find_reg_offset failed, mac_pcie_id = %d, index_value = %d\n", mac_pcie_id, index_value); + } else { + result = get_mactemp(client, t->reg, &temp); + if (result < 0) { + temp = -MAC_TEMP_INVALID; + DBG_ERROR("get_mactemp failed, ret = %d\n", result); + } + } + + mutex_unlock(&data->update_lock); + return snprintf(buf, MAC_SIZE, "%d\n", temp); +} + +static ssize_t show_mac_max_temp(struct device *dev, struct device_attribute *da, char *buf) +{ + struct mac_data *data = dev_get_drvdata(dev); + struct i2c_client *client = data->client; + int i; + int result; + int temp = -MAC_TEMP_INVALID; + int type_index; + int tmp; + + mutex_lock(&data->update_lock); + + result = find_reg_type(mac_pcie_id, &type_index); + if (result < 0) { + DBG_ERROR("find_reg_type failed, ret = %d\n", result); + goto exit; + } + + for (i = 0; i < MAC_TEMP_NUM; i++) { + result = get_mactemp(client, mac_temp_reg[type_index].sensor_reg[i].reg, &tmp); + if (result < 0) { + DBG_ERROR("get_mactemp failed, ret = %d\n", result); + tmp = -MAC_TEMP_INVALID; + } + + temp = (temp > tmp) ? temp : tmp; + } + +exit: + mutex_unlock(&data->update_lock); + return snprintf(buf, MAC_SIZE, "%d\n", temp); +} + +static int mac_bsc_init(struct i2c_client *client) +{ + int ret; + int reg_value; + int mac_id = 0; + + ret = getmac_register(client, MAC_ID_REG, ®_value); + if (ret < 0) { + DBG_ERROR("getmac_register failed, ret = %d\n", ret); + return ret; + } + + DBG_DEBUG("reg_value = 0x%x \n", reg_value); + mac_id = reg_value & 0xffff; + return mac_id; +} + +static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX1); +static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX2); +static SENSOR_DEVICE_ATTR(temp3_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX3); +static SENSOR_DEVICE_ATTR(temp4_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX4); +static SENSOR_DEVICE_ATTR(temp5_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX5); +static SENSOR_DEVICE_ATTR(temp6_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX6); +static SENSOR_DEVICE_ATTR(temp7_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX7); +static SENSOR_DEVICE_ATTR(temp8_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX8); +static SENSOR_DEVICE_ATTR(temp9_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX9); +static SENSOR_DEVICE_ATTR(temp10_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX10); +static SENSOR_DEVICE_ATTR(temp11_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX11); +static SENSOR_DEVICE_ATTR(temp12_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX12); +static SENSOR_DEVICE_ATTR(temp13_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX13); +static SENSOR_DEVICE_ATTR(temp14_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX14); +static SENSOR_DEVICE_ATTR(temp15_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX15); +static SENSOR_DEVICE_ATTR(temp99_input, S_IRUGO, show_mac_max_temp, NULL, 0); + +static struct attribute *mac_hwmon_attrs[] = { + &sensor_dev_attr_temp1_input.dev_attr.attr, + &sensor_dev_attr_temp2_input.dev_attr.attr, + &sensor_dev_attr_temp3_input.dev_attr.attr, + &sensor_dev_attr_temp4_input.dev_attr.attr, + &sensor_dev_attr_temp5_input.dev_attr.attr, + &sensor_dev_attr_temp6_input.dev_attr.attr, + &sensor_dev_attr_temp7_input.dev_attr.attr, + &sensor_dev_attr_temp8_input.dev_attr.attr, + &sensor_dev_attr_temp9_input.dev_attr.attr, + &sensor_dev_attr_temp10_input.dev_attr.attr, + &sensor_dev_attr_temp11_input.dev_attr.attr, + &sensor_dev_attr_temp12_input.dev_attr.attr, + &sensor_dev_attr_temp13_input.dev_attr.attr, + &sensor_dev_attr_temp14_input.dev_attr.attr, + &sensor_dev_attr_temp15_input.dev_attr.attr, + &sensor_dev_attr_temp99_input.dev_attr.attr, + NULL +}; +ATTRIBUTE_GROUPS(mac_hwmon); + +static int init_bcs_command(int mac_type) { + int ret; + + ret = 0; + switch (mac_type) { + case TD3: + step2_buf2[5] = 0x38; + break; + case TH3: + case TH4: + case TD4: + case TD4_X9: + case TD4_X9_8: + step2_buf2[5] = 0x40; + break; + default: + ret = -1; + break; + } + return ret; +} + +static int mac_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct mac_data *data; + int mac_type; + int ret; + + mac_type = id->driver_data; + mac_pcie_id = mac_type; + if (init_bcs_command(mac_type) < 0) { + DBG_ERROR("mactype[%x] not support \n", mac_type); + return -1; + }; + + if (mac_type == TD4) { + ret = mac_bsc_init(client); + if (ret < 0) { + DBG_ERROR("mac_bsc_init failed, ret = %d\n", ret); + return -1; + } + mac_type = ret; + mac_pcie_id = mac_type; + } + + DBG_DEBUG("=========mac_probe(%x)===========\n",client->addr); + DBG_DEBUG("mac_type: %x\n", mac_type); + data = devm_kzalloc(&client->dev, sizeof(struct mac_data), GFP_KERNEL); + if (!data) { + return -ENOMEM; + } + + data->client = client; + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + + data->hwmon_dev = hwmon_device_register_with_groups(&client->dev, client->name, data, mac_hwmon_groups); + if (IS_ERR(data->hwmon_dev)) { + return PTR_ERR(data->hwmon_dev); + } + + return 0; +} + +static int mac_remove(struct i2c_client *client) +{ + struct mac_data *data = i2c_get_clientdata(client); + hwmon_device_unregister(data->hwmon_dev); + return 0; +} + +static const struct i2c_device_id mac_id[] = { + { "wb_mac_bsc_td3", TD3 }, + { "wb_mac_bsc_td4", TD4 }, + { "wb_mac_bsc_th3", TH3 }, + { "wb_mac_bsc_th4", TH4 }, + {} +}; +MODULE_DEVICE_TABLE(i2c, mac_id); + +static struct i2c_driver wb_mac_bsc_driver = { + .driver = { + .name = "wb_mac_bsc", + }, + .probe = mac_probe, + .remove = mac_remove, + .id_table = mac_id, +}; + +module_i2c_driver(wb_mac_bsc_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("mac bsc driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c new file mode 100644 index 000000000000..c09162368ad0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c @@ -0,0 +1,1192 @@ +/* + * optoe.c - A driver to read and write the EEPROM on optical transceivers + * (SFP, QSFP and similar I2C based devices) + * + * Copyright (C) 2014 Cumulus networks Inc. + * Copyright (C) 2017 Finisar Corp. + * + * 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 Freeoftware Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +/* + * Description: + * a) Optical transceiver EEPROM read/write transactions are just like + * the at24 eeproms managed by the at24.c i2c driver + * b) The register/memory layout is up to 256 128 byte pages defined by + * a "pages valid" register and switched via a "page select" + * register as explained in below diagram. + * c) 256 bytes are mapped at a time. 'Lower page 00h' is the first 128 + * bytes of address space, and always references the same + * location, independent of the page select register. + * All mapped pages are mapped into the upper 128 bytes + * (offset 128-255) of the i2c address. + * d) Devices with one I2C address (eg QSFP) use I2C address 0x50 + * (A0h in the spec), and map all pages in the upper 128 bytes + * of that address. + * e) Devices with two I2C addresses (eg SFP) have 256 bytes of data + * at I2C address 0x50, and 256 bytes of data at I2C address + * 0x51 (A2h in the spec). Page selection and paged access + * only apply to this second I2C address (0x51). + * e) The address space is presented, by the driver, as a linear + * address space. For devices with one I2C client at address + * 0x50 (eg QSFP), offset 0-127 are in the lower + * half of address 50/A0h/client[0]. Offset 128-255 are in + * page 0, 256-383 are page 1, etc. More generally, offset + * 'n' resides in page (n/128)-1. ('page -1' is the lower + * half, offset 0-127). + * f) For devices with two I2C clients at address 0x50 and 0x51 (eg SFP), + * the address space places offset 0-127 in the lower + * half of 50/A0/client[0], offset 128-255 in the upper + * half. Offset 256-383 is in the lower half of 51/A2/client[1]. + * Offset 384-511 is in page 0, in the upper half of 51/A2/... + * Offset 512-639 is in page 1, in the upper half of 51/A2/... + * Offset 'n' is in page (n/128)-3 (for n > 383) + * + * One I2c addressed (eg QSFP) Memory Map + * + * 2-Wire Serial Address: 1010000x + * + * Lower Page 00h (128 bytes) + * ===================== + * | | + * | | + * | | + * | | + * | | + * | | + * | | + * | | + * | | + * | | + * |Page Select Byte(127)| + * ===================== + * | + * | + * | + * | + * V + * ------------------------------------------------------------ + * | | | | + * | | | | + * | | | | + * | | | | + * | | | | + * | | | | + * | | | | + * | | | | + * | | | | + * V V V V + * ------------ -------------- --------------- -------------- + * | | | | | | | | + * | Upper | | Upper | | Upper | | Upper | + * | Page 00h | | Page 01h | | Page 02h | | Page 03h | + * | | | (Optional) | | (Optional) | | (Optional | + * | | | | | | | for Cable | + * | | | | | | | Assemblies) | + * | ID | | AST | | User | | | + * | Fields | | Table | | EEPROM Data | | | + * | | | | | | | | + * | | | | | | | | + * | | | | | | | | + * ------------ -------------- --------------- -------------- + * + * The SFF 8436 (QSFP) spec only defines the 4 pages described above. + * In anticipation of future applications and devices, this driver + * supports access to the full architected range, 256 pages. + * + * The CMIS (Common Management Interface Specification) defines use of + * considerably more pages (at least to page 0xAF), which this driver + * supports. + * + * NOTE: This version of the driver ONLY SUPPORTS BANK 0 PAGES on CMIS + * devices. + * + **/ + +/* #define DEBUG 1 */ + +#undef EEPROM_CLASS +#ifdef CONFIG_EEPROM_CLASS +#define EEPROM_CLASS +#endif +#ifdef CONFIG_EEPROM_CLASS_MODULE +#define EEPROM_CLASS +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#ifdef EEPROM_CLASS +#include +#endif + +#include + +/* The maximum length of a port name */ +#define MAX_PORT_NAME_LEN 20 + +struct optoe_platform_data { + u32 byte_len; /* size (sum of all addr) */ + u16 page_size; /* for writes */ + u8 flags; + void *dummy1; /* backward compatibility */ + void *dummy2; /* backward compatibility */ + +#ifdef EEPROM_CLASS + struct eeprom_platform_data *eeprom_data; +#endif + char port_name[MAX_PORT_NAME_LEN]; +}; + +/* fundamental unit of addressing for EEPROM */ +#define OPTOE_PAGE_SIZE 128 +/* + * Single address devices (eg QSFP) have 256 pages, plus the unpaged + * low 128 bytes. If the device does not support paging, it is + * only 2 'pages' long. + */ +#define OPTOE_ARCH_PAGES 256 +#define ONE_ADDR_EEPROM_SIZE ((1 + OPTOE_ARCH_PAGES) * OPTOE_PAGE_SIZE) +#define ONE_ADDR_EEPROM_UNPAGED_SIZE (2 * OPTOE_PAGE_SIZE) +/* + * Dual address devices (eg SFP) have 256 pages, plus the unpaged + * low 128 bytes, plus 256 bytes at 0x50. If the device does not + * support paging, it is 4 'pages' long. + */ +#define TWO_ADDR_EEPROM_SIZE ((3 + OPTOE_ARCH_PAGES) * OPTOE_PAGE_SIZE) +#define TWO_ADDR_EEPROM_UNPAGED_SIZE (4 * OPTOE_PAGE_SIZE) +#define TWO_ADDR_NO_0X51_SIZE (2 * OPTOE_PAGE_SIZE) + +/* a few constants to find our way around the EEPROM */ +#define OPTOE_PAGE_SELECT_REG 0x7F +#define ONE_ADDR_PAGEABLE_REG 0x02 +#define QSFP_NOT_PAGEABLE (1<<2) +#define CMIS_NOT_PAGEABLE (1<<7) +#define TWO_ADDR_PAGEABLE_REG 0x40 +#define TWO_ADDR_PAGEABLE (1<<4) +#define TWO_ADDR_0X51_REG 92 +#define TWO_ADDR_0X51_SUPP (1<<6) +#define OPTOE_ID_REG 0 +#define OPTOE_READ_OP 0 +#define OPTOE_WRITE_OP 1 +#define OPTOE_EOF 0 /* used for access beyond end of device */ + +struct optoe_data { + struct optoe_platform_data chip; + int use_smbus; + char port_name[MAX_PORT_NAME_LEN]; + + /* + * Lock protects against activities from other Linux tasks, + * but not from changes by other I2C masters. + */ + struct mutex lock; + struct bin_attribute bin; + struct attribute_group attr_group; + + u8 *writebuf; + unsigned int write_max; + + unsigned int num_addresses; + +#ifdef EEPROM_CLASS + struct eeprom_device *eeprom_dev; +#endif + + /* dev_class: ONE_ADDR (QSFP) or TWO_ADDR (SFP) */ + int dev_class; + + struct i2c_client *client[]; +}; + +/* + * 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 int io_limit = OPTOE_PAGE_SIZE; + +/* + * specs often allow 5 msec for a page write, sometimes 20 msec; + * it's important to recover from write timeouts. + */ +static unsigned int write_timeout = 50; + +/* + * flags to distinguish one-address (QSFP family) from two-address (SFP family) + * If the family is not known, figure it out when the device is accessed + */ +#define ONE_ADDR 1 +#define TWO_ADDR 2 +#define CMIS_ADDR 3 + +static const struct i2c_device_id optoe_ids[] = { + { "wb_optoe1", ONE_ADDR }, + { "wb_optoe2", TWO_ADDR }, + { "wb_optoe3", CMIS_ADDR }, + { "wb_sff8436", ONE_ADDR }, + { "wb_24c04", TWO_ADDR }, + { /* END OF LIST */ } +}; +MODULE_DEVICE_TABLE(i2c, optoe_ids); + +/*-------------------------------------------------------------------------*/ +/* + * 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 single address (eg QSFP) and two address (eg SFP). + * 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 optoe_translate_offset(struct optoe_data *optoe, + loff_t *offset, struct i2c_client **client) +{ + unsigned int page = 0; + + *client = optoe->client[0]; + + /* if SFP style, offset > 255, shift to i2c addr 0x51 */ + if (optoe->dev_class == TWO_ADDR) { + if (*offset > 255) { + /* like QSFP, but shifted to client[1] */ + *client = optoe->client[1]; + *offset -= 256; + } + } + + /* + * 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 < OPTOE_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 = OPTOE_PAGE_SIZE + (*offset & 0x7f); + + return page; /* note also returning client and offset */ +} + +static ssize_t optoe_eeprom_read(struct optoe_data *optoe, + struct i2c_client *client, + char *buf, unsigned int offset, size_t count) +{ + struct i2c_msg msg[2]; + u8 msgbuf[2]; + unsigned long timeout, read_time; + int status, i; + + mem_clear(msg, sizeof(msg)); + + switch (optoe->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 (optoe->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; + + /* REVISIT: at HZ=100, this is sloooow */ + usleep_range(1000, 2000); + } while (time_before(read_time, timeout)); + + return -ETIMEDOUT; +} + +static ssize_t optoe_eeprom_write(struct optoe_data *optoe, + struct i2c_client *client, + const char *buf, + unsigned int offset, size_t count) +{ + struct i2c_msg msg; + ssize_t status; + unsigned long timeout, write_time; + unsigned int next_page_start; + int i = 0; + + /* write max is at most a page + * (In this driver, write_max is actually one byte!) + */ + if (count > optoe->write_max) + count = optoe->write_max; + + /* shorten count if necessary to avoid crossing page boundary */ + next_page_start = roundup(offset + 1, OPTOE_PAGE_SIZE); + if (offset + count > next_page_start) + count = next_page_start - offset; + + switch (optoe->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 = optoe->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 (optoe->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 */ + usleep_range(1000, 2000); + } while (time_before(write_time, timeout)); + + return -ETIMEDOUT; +} + +static ssize_t optoe_eeprom_update_client(struct optoe_data *optoe, + char *buf, loff_t off, + size_t count, int opcode) +{ + struct i2c_client *client; + ssize_t retval = 0; + uint8_t page = 0; + uint8_t loc; + loff_t phy_offset = off; + int ret = 0; + + page = optoe_translate_offset(optoe, &phy_offset, &client); + dev_dbg(&client->dev, + "%s off %lld page:%d phy_offset:%lld, count:%ld, opcode:%d\n", + __func__, off, page, phy_offset, (long int) count, opcode); + + ret = optoe_eeprom_read(optoe, client, &loc, OPTOE_PAGE_SELECT_REG, 1); + if (ret < 0) { + dev_dbg(&client->dev, "Read page register for get now location page failed. ret:%d\n", ret); + return ret; + } + + /* Only when read and now location page is inconsistent, will doing switch page */ + if (loc != page) { + ret = optoe_eeprom_write(optoe, client, &page, + OPTOE_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 == OPTOE_READ_OP) { + status = optoe_eeprom_read(optoe, client, + buf, phy_offset, count); + } else { + status = optoe_eeprom_write(optoe, client, + buf, phy_offset, count); + } + if (status <= 0) { + if (retval == 0) + retval = status; + break; + } + buf += status; + phy_offset += status; + count -= status; + retval += status; + } + + 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 OPTOE_EOF (zero) + */ +static ssize_t optoe_page_legal(struct optoe_data *optoe, + loff_t off, size_t len) +{ + struct i2c_client *client = optoe->client[0]; + u8 regval; + int not_pageable; + int status; + size_t maxlen; + + if (off < 0) + return -EINVAL; + if (optoe->dev_class == TWO_ADDR) { + /* SFP case */ + /* if only using addr 0x50 (first 256 bytes) we're good */ + if ((off + len) <= TWO_ADDR_NO_0X51_SIZE) + return len; + /* if offset exceeds possible pages, we're not good */ + if (off >= TWO_ADDR_EEPROM_SIZE) + return OPTOE_EOF; + /* in between, are pages supported? */ + status = optoe_eeprom_read(optoe, client, ®val, + TWO_ADDR_PAGEABLE_REG, 1); + if (status < 0) + return status; /* error out (no module?) */ + if (regval & TWO_ADDR_PAGEABLE) { + /* Pages supported, trim len to the end of pages */ + maxlen = TWO_ADDR_EEPROM_SIZE - off; + } else { + /* pages not supported, trim len to unpaged size */ + if (off >= TWO_ADDR_EEPROM_UNPAGED_SIZE) + return OPTOE_EOF; + + /* will be accessing addr 0x51, is that supported? */ + /* byte 92, bit 6 implies DDM support, 0x51 support */ + status = optoe_eeprom_read(optoe, client, ®val, + TWO_ADDR_0X51_REG, 1); + if (status < 0) + return status; + if (regval & TWO_ADDR_0X51_SUPP) { + /* addr 0x51 is OK */ + maxlen = TWO_ADDR_EEPROM_UNPAGED_SIZE - off; + } else { + /* addr 0x51 NOT supported, trim to 256 max */ + if (off >= TWO_ADDR_NO_0X51_SIZE) + return OPTOE_EOF; + maxlen = TWO_ADDR_NO_0X51_SIZE - off; + } + } + len = (len > maxlen) ? maxlen : len; + dev_dbg(&client->dev, + "page_legal, SFP, off %lld len %ld\n", + off, (long int) len); + } else { + /* QSFP case, CMIS case */ + /* if no pages needed, we're good */ + if ((off + len) <= ONE_ADDR_EEPROM_UNPAGED_SIZE) + return len; + /* if offset exceeds possible pages, we're not good */ + if (off >= ONE_ADDR_EEPROM_SIZE) + return OPTOE_EOF; + /* in between, are pages supported? */ + status = optoe_eeprom_read(optoe, client, ®val, + ONE_ADDR_PAGEABLE_REG, 1); + if (status < 0) + return status; /* error out (no module?) */ + + if (optoe->dev_class == ONE_ADDR) { + not_pageable = QSFP_NOT_PAGEABLE; + } else { + not_pageable = CMIS_NOT_PAGEABLE; + } + dev_dbg(&client->dev, + "Paging Register: 0x%x; not_pageable mask: 0x%x\n", + regval, not_pageable); + + if (regval & not_pageable) { + /* pages not supported, trim len to unpaged size */ + if (off >= ONE_ADDR_EEPROM_UNPAGED_SIZE) + return OPTOE_EOF; + maxlen = ONE_ADDR_EEPROM_UNPAGED_SIZE - off; + } else { + /* Pages supported, trim len to the end of pages */ + maxlen = ONE_ADDR_EEPROM_SIZE - off; + } + len = (len > maxlen) ? maxlen : len; + dev_dbg(&client->dev, + "page_legal, QSFP, off %lld len %ld\n", + off, (long int) len); + } + return len; +} + +static ssize_t optoe_read_write(struct optoe_data *optoe, + char *buf, loff_t off, size_t len, int opcode) +{ + struct i2c_client *client = optoe->client[0]; + 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; + loff_t chunk_end_offset = 0; + + dev_dbg(&client->dev, + "%s: off %lld len:%ld, opcode:%s\n", + __func__, off, (long int) len, + (opcode == OPTOE_READ_OP) ? "r" : "w"); + if (unlikely(!len)) + return len; + + /* + * Read data from chip, protecting against concurrent updates + * from this host, but not from other I2C masters. + */ + mutex_lock(&optoe->lock); + + /* + * Confirm this access fits within the device suppored addr range + */ + status = optoe_page_legal(optoe, off, len); + if ((status == OPTOE_EOF) || (status < 0)) { + mutex_unlock(&optoe->lock); + return status; + } + len = status; + + /* + * 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 an offset not equal to 0 (within the chunk) + * and read/write less than the rest of the chunk + * 2. start at an offset not equal to 0 and read/write the rest + * of the chunk + * 3. start at offset 0 (within the chunk) and read/write less + * than entire chunk + * 4. start at offset 0 (within the chunk), and read/write + * the entire chunk + */ + chunk_start_offset = chunk * OPTOE_PAGE_SIZE; + chunk_end_offset = chunk_start_offset + OPTOE_PAGE_SIZE; + + if (chunk_start_offset < off) { + chunk_offset = off; + if ((off + pending_len) < chunk_end_offset) + chunk_len = pending_len; + else + chunk_len = chunk_end_offset - off; + } else { + chunk_offset = chunk_start_offset; + if (pending_len < OPTOE_PAGE_SIZE) + chunk_len = pending_len; + else + chunk_len = OPTOE_PAGE_SIZE; + } + + 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 = optoe_eeprom_update_client(optoe, buf, + chunk_offset, chunk_len, opcode); + if (status != chunk_len) { + /* This is another 'no device present' path */ + dev_dbg(&client->dev, + "o_u_c: chunk %d c_offset %lld c_len %ld failed %d!\n", + chunk, chunk_offset, (long int) chunk_len, status); + if (status > 0) + retval += status; + if (retval == 0) + retval = status; + break; + } + buf += status; + pending_len -= status; + retval += status; + } + mutex_unlock(&optoe->lock); + + return retval; +} + +static ssize_t optoe_bin_read(struct file *filp, struct kobject *kobj, + struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct i2c_client *client = to_i2c_client(container_of(kobj, + struct device, kobj)); + struct optoe_data *optoe = i2c_get_clientdata(client); + + return optoe_read_write(optoe, buf, off, count, OPTOE_READ_OP); +} + +static ssize_t optoe_bin_write(struct file *filp, struct kobject *kobj, + struct bin_attribute *attr, + char *buf, loff_t off, size_t count) +{ + struct i2c_client *client = to_i2c_client(container_of(kobj, + struct device, kobj)); + struct optoe_data *optoe = i2c_get_clientdata(client); + + return optoe_read_write(optoe, buf, off, count, OPTOE_WRITE_OP); +} + +static int optoe_remove(struct i2c_client *client) +{ + struct optoe_data *optoe; + int i; + + optoe = i2c_get_clientdata(client); + sysfs_remove_group(&client->dev.kobj, &optoe->attr_group); + sysfs_remove_bin_file(&client->dev.kobj, &optoe->bin); + + for (i = 1; i < optoe->num_addresses; i++) + i2c_unregister_device(optoe->client[i]); + +#ifdef EEPROM_CLASS + eeprom_device_unregister(optoe->eeprom_dev); +#endif + + kfree(optoe->writebuf); + kfree(optoe); + return 0; +} + +static ssize_t show_dev_class(struct device *dev, + struct device_attribute *dattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct optoe_data *optoe = i2c_get_clientdata(client); + ssize_t count; + + mutex_lock(&optoe->lock); + count = sprintf(buf, "%d\n", optoe->dev_class); + mutex_unlock(&optoe->lock); + + return count; +} + +static ssize_t set_dev_class(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev); + struct optoe_data *optoe = i2c_get_clientdata(client); + int dev_class; + + /* + * dev_class is actually the number of i2c addresses used, thus + * legal values are "1" (QSFP class) and "2" (SFP class) + * And... CMIS spec is 1 i2c address, but puts the pageable + * bit in a different location, so CMIS devices are "3" + */ + + if (kstrtoint(buf, 0, &dev_class) != 0 || + dev_class < 1 || dev_class > 3) + return -EINVAL; + + mutex_lock(&optoe->lock); + if (dev_class == TWO_ADDR) { + /* SFP family */ + /* if it doesn't exist, create 0x51 i2c address */ + if (!optoe->client[1]) { + optoe->client[1] = i2c_new_dummy_device(client->adapter, 0x51); + if (!optoe->client[1]) { + dev_err(&client->dev, + "address 0x51 unavailable\n"); + mutex_unlock(&optoe->lock); + return -EADDRINUSE; + } + } + optoe->bin.size = TWO_ADDR_EEPROM_SIZE; + optoe->num_addresses = 2; + } else { + /* one-address (eg QSFP) and CMIS family */ + /* if it exists, remove 0x51 i2c address */ + if (optoe->client[1]) { + i2c_unregister_device(optoe->client[1]); + optoe->client[1] = NULL; + } + optoe->bin.size = ONE_ADDR_EEPROM_SIZE; + optoe->num_addresses = 1; + } + optoe->dev_class = dev_class; + mutex_unlock(&optoe->lock); + + return count; +} + +/* + * if using the EEPROM CLASS driver, we don't report a port_name, + * the EEPROM CLASS drive handles that. Hence all this code is + * only compiled if we are NOT using the EEPROM CLASS driver. + */ +#ifndef EEPROM_CLASS + +static ssize_t show_port_name(struct device *dev, + struct device_attribute *dattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct optoe_data *optoe = i2c_get_clientdata(client); + ssize_t count; + + mutex_lock(&optoe->lock); + count = sprintf(buf, "%s\n", optoe->port_name); + mutex_unlock(&optoe->lock); + + return count; +} + +static ssize_t set_port_name(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev); + struct optoe_data *optoe = i2c_get_clientdata(client); + char port_name[MAX_PORT_NAME_LEN]; + + /* no checking, this value is not used except by show_port_name */ + + if (sscanf(buf, "%19s", port_name) != 1) + return -EINVAL; + + mutex_lock(&optoe->lock); + strcpy(optoe->port_name, port_name); + mutex_unlock(&optoe->lock); + + return count; +} + +static DEVICE_ATTR(port_name, 0644, show_port_name, set_port_name); +#endif /* if NOT defined EEPROM_CLASS, the common case */ + +static DEVICE_ATTR(dev_class, 0644, show_dev_class, set_dev_class); + +static struct attribute *optoe_attrs[] = { +#ifndef EEPROM_CLASS + &dev_attr_port_name.attr, +#endif + &dev_attr_dev_class.attr, + NULL, +}; + +static struct attribute_group optoe_attr_group = { + .attrs = optoe_attrs, +}; + +static int optoe_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + int err; + int use_smbus = 0; + struct optoe_platform_data chip; + struct optoe_data *optoe; + int num_addresses = 0; + char port_name[MAX_PORT_NAME_LEN]; + + if (client->addr != 0x50) { + dev_dbg(&client->dev, "probe, bad i2c addr: 0x%x\n", + client->addr); + err = -EINVAL; + goto exit; + } + + if (client->dev.platform_data) { + chip = *(struct optoe_platform_data *)client->dev.platform_data; + /* take the port name from the supplied platform data */ +#ifdef EEPROM_CLASS + strncpy(port_name, chip.eeprom_data->label, MAX_PORT_NAME_LEN); +#else + memcpy(port_name, chip.port_name, MAX_PORT_NAME_LEN); +#endif + dev_dbg(&client->dev, + "probe, chip provided, flags:0x%x; name: %s\n", + chip.flags, client->name); + } else { + if (!id->driver_data) { + err = -ENODEV; + goto exit; + } + dev_dbg(&client->dev, "probe, building chip\n"); + strcpy(port_name, "unitialized"); + chip.flags = 0; +#ifdef EEPROM_CLASS + chip.eeprom_data = NULL; +#endif + } + + /* 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)) { + use_smbus = I2C_SMBUS_I2C_BLOCK_DATA; + } else if (i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_WORD_DATA)) { + use_smbus = I2C_SMBUS_WORD_DATA; + } else if (i2c_check_functionality(client->adapter, + I2C_FUNC_SMBUS_READ_BYTE_DATA)) { + use_smbus = I2C_SMBUS_BYTE_DATA; + } else { + err = -EPFNOSUPPORT; + goto exit; + } + } + + /* + * Make room for two i2c clients + */ + num_addresses = 2; + + optoe = kzalloc(sizeof(struct optoe_data) + + num_addresses * sizeof(struct i2c_client *), + GFP_KERNEL); + if (!optoe) { + err = -ENOMEM; + goto exit; + } + + mutex_init(&optoe->lock); + + /* determine whether this is a one-address or two-address module */ + if ((strcmp(client->name, "wb_optoe1") == 0) || + (strcmp(client->name, "wb_sff8436") == 0)) { + /* one-address (eg QSFP) family */ + optoe->dev_class = ONE_ADDR; + chip.byte_len = ONE_ADDR_EEPROM_SIZE; + num_addresses = 1; + } else if ((strcmp(client->name, "wb_optoe2") == 0) || + (strcmp(client->name, "wb_24c04") == 0)) { + /* SFP family */ + optoe->dev_class = TWO_ADDR; + chip.byte_len = TWO_ADDR_EEPROM_SIZE; + num_addresses = 2; + } else if (strcmp(client->name, "wb_optoe3") == 0) { + /* CMIS spec */ + optoe->dev_class = CMIS_ADDR; + chip.byte_len = ONE_ADDR_EEPROM_SIZE; + num_addresses = 1; + } else { /* those were the only choices */ + err = -EINVAL; + goto exit; + } + + dev_dbg(&client->dev, "dev_class: %d\n", optoe->dev_class); + optoe->use_smbus = use_smbus; + optoe->chip = chip; + optoe->num_addresses = num_addresses; + memcpy(optoe->port_name, port_name, MAX_PORT_NAME_LEN); + + /* + * Export the EEPROM bytes through sysfs, since that's convenient. + * By default, only root should see the data (maybe passwords etc) + */ + sysfs_bin_attr_init(&optoe->bin); + optoe->bin.attr.name = "eeprom"; + optoe->bin.attr.mode = 0444; + optoe->bin.read = optoe_bin_read; + optoe->bin.size = chip.byte_len; + + if (!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 int write_max = 1; + + optoe->bin.write = optoe_bin_write; + optoe->bin.attr.mode |= 0200; + + if (write_max > io_limit) + write_max = io_limit; + if (use_smbus && write_max > I2C_SMBUS_BLOCK_MAX) + write_max = I2C_SMBUS_BLOCK_MAX; + optoe->write_max = write_max; + + /* buffer (data + address at the beginning) */ + optoe->writebuf = kmalloc(write_max + 2, GFP_KERNEL); + if (!optoe->writebuf) { + err = -ENOMEM; + goto exit_kfree; + } + } else { + dev_warn(&client->dev, + "cannot write due to controller restrictions."); + } + + optoe->client[0] = client; + + /* SFF-8472 spec requires that the second I2C address be 0x51 */ + if (num_addresses == 2) { + optoe->client[1] = i2c_new_dummy_device(client->adapter, 0x51); + if (!optoe->client[1]) { + dev_err(&client->dev, "address 0x51 unavailable\n"); + err = -EADDRINUSE; + goto err_struct; + } + } + + /* create the sysfs eeprom file */ + err = sysfs_create_bin_file(&client->dev.kobj, &optoe->bin); + if (err) + goto err_struct; + + optoe->attr_group = optoe_attr_group; + + err = sysfs_create_group(&client->dev.kobj, &optoe->attr_group); + if (err) { + dev_err(&client->dev, "failed to create sysfs attribute group.\n"); + goto err_struct; + } + +#ifdef EEPROM_CLASS + optoe->eeprom_dev = eeprom_device_register(&client->dev, + chip.eeprom_data); + if (IS_ERR(optoe->eeprom_dev)) { + dev_err(&client->dev, "error registering eeprom device.\n"); + err = PTR_ERR(optoe->eeprom_dev); + goto err_sysfs_cleanup; + } +#endif + + i2c_set_clientdata(client, optoe); + + dev_info(&client->dev, "%zu byte %s EEPROM, %s\n", + optoe->bin.size, client->name, + optoe->bin.write ? "read/write" : "read-only"); + + if (use_smbus == I2C_SMBUS_WORD_DATA || + use_smbus == I2C_SMBUS_BYTE_DATA) { + dev_notice(&client->dev, + "Falling back to %s reads, performance will suffer\n", + use_smbus == I2C_SMBUS_WORD_DATA ? "word" : "byte"); + } + + return 0; + +#ifdef EEPROM_CLASS +err_sysfs_cleanup: + sysfs_remove_group(&client->dev.kobj, &optoe->attr_group); + sysfs_remove_bin_file(&client->dev.kobj, &optoe->bin); +#endif + +err_struct: + if (num_addresses == 2) { + if (optoe->client[1]) { + i2c_unregister_device(optoe->client[1]); + optoe->client[1] = NULL; + } + } + + kfree(optoe->writebuf); +exit_kfree: + kfree(optoe); +exit: + dev_dbg(&client->dev, "probe error %d\n", err); + + return err; +} + +/*-------------------------------------------------------------------------*/ + +static struct i2c_driver optoe_driver = { + .driver = { + .name = "wb_optoe", + .owner = THIS_MODULE, + }, + .probe = optoe_probe, + .remove = optoe_remove, + .id_table = optoe_ids, +}; + +static int __init optoe_init(void) +{ + + if (!io_limit) { + pr_err("optoe: io_limit must not be 0!\n"); + return -EINVAL; + } + + io_limit = rounddown_pow_of_two(io_limit); + return i2c_add_driver(&optoe_driver); +} +module_init(optoe_init); + +static void __exit optoe_exit(void) +{ + i2c_del_driver(&optoe_driver); +} +module_exit(optoe_exit); + +MODULE_DESCRIPTION("Driver for optical transceiver (SFP, QSFP, ...) EEPROMs"); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c new file mode 100644 index 000000000000..757c100e4738 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c @@ -0,0 +1,770 @@ +/* + * wb_pcie_dev.c + * ko to read/write pcie iomem and ioports through /dev/XXX device + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_pcie_dev.h" + +#define PROXY_NAME "wb-pci-dev" +#define MAX_NAME_SIZE (20) +#define MAX_PCIE_NUM (256) +#define PCI_RDWR_MAX_LEN (256) +#define PCIE_BUS_WIDTH_1 (1) +#define PCIE_BUS_WIDTH_2 (2) +#define PCIE_BUS_WIDTH_4 (4) + +static int g_pcie_dev_debug = 0; +static int g_pcie_dev_error = 0; + +module_param(g_pcie_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_pcie_dev_error, int, S_IRUGO | S_IWUSR); + +#define PCIE_DEV_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_pcie_dev_debug) { \ + printk(KERN_INFO "[PCIE_DEV][VER][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define PCIE_DEV_DEBUG_ERROR(fmt, args...) do { \ + if (g_pcie_dev_error) { \ + printk(KERN_ERR "[PCIE_DEV][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +typedef struct firmware_upg_s { + int upg_ctrl_base; + int upg_flash_base; +} firmware_upg_t; + +typedef struct wb_pci_dev_s { + const char *name; + uint32_t domain; + uint32_t bus; + uint32_t slot; + uint32_t fn; + uint32_t bar; + void __iomem *pci_mem_base; + uint32_t pci_io_base; + uint32_t bar_len; + uint32_t bar_flag; + uint32_t bus_width; + struct miscdevice misc; + void (*setreg)(struct wb_pci_dev_s *wb_pci_dev, int reg, u32 value); + u32 (*getreg)(struct wb_pci_dev_s *wb_pci_dev, int reg); + firmware_upg_t firmware_upg; +} wb_pci_dev_t; + +static wb_pci_dev_t* pcie_dev_arry[MAX_PCIE_NUM]; + +static void pci_dev_setreg_8(wb_pci_dev_t *wb_pci_dev, int reg, u32 value) +{ + u8 w_value; + + w_value = (u8)(value & 0xff); + if (wb_pci_dev->bar_flag == IORESOURCE_MEM) { + writeb(w_value, wb_pci_dev->pci_mem_base + reg); + } else { + outb(w_value, wb_pci_dev->pci_io_base + reg); + } + return; +} + +static void pci_dev_setreg_16(wb_pci_dev_t *wb_pci_dev, int reg, u32 value) +{ + u16 w_value; + + w_value = (u16)(value & 0xffff); + if (wb_pci_dev->bar_flag == IORESOURCE_MEM) { + writew(w_value, wb_pci_dev->pci_mem_base + reg); + } else { + outw(w_value, wb_pci_dev->pci_io_base + reg); + } + + return; +} + +static void pci_dev_setreg_32(wb_pci_dev_t *wb_pci_dev, int reg, u32 value) +{ + + if (wb_pci_dev->bar_flag == IORESOURCE_MEM) { + writel(value, wb_pci_dev->pci_mem_base + reg); + } else { + outl(value, wb_pci_dev->pci_io_base + reg); + } + return; +} + +static inline u32 pci_dev_getreg_8(wb_pci_dev_t *wb_pci_dev, int reg) +{ + u32 value; + + if (wb_pci_dev->bar_flag == IORESOURCE_MEM) { + value = readb(wb_pci_dev->pci_mem_base + reg); + } else { + value = inb(wb_pci_dev->pci_io_base + reg); + } + + return value; +} + +static inline u32 pci_dev_getreg_16(wb_pci_dev_t *wb_pci_dev, int reg) +{ + u32 value; + + if (wb_pci_dev->bar_flag == IORESOURCE_MEM) { + value = readw(wb_pci_dev->pci_mem_base + reg); + } else { + value = inw(wb_pci_dev->pci_io_base + reg); + } + + return value; +} + +static inline u32 pci_dev_getreg_32(wb_pci_dev_t *wb_pci_dev, int reg) +{ + u32 value; + + if (wb_pci_dev->bar_flag == IORESOURCE_MEM) { + value = readl(wb_pci_dev->pci_mem_base + reg); + } else { + value = inl(wb_pci_dev->pci_io_base + reg); + } + + return value; +} + +static inline void pci_dev_setreg(wb_pci_dev_t *wb_pci_dev, int reg, u32 value) +{ + wb_pci_dev->setreg(wb_pci_dev, reg, value); +} + +static inline u32 pci_dev_getreg(wb_pci_dev_t *wb_pci_dev, int reg) +{ + return wb_pci_dev->getreg(wb_pci_dev, reg); +} + +static int pci_dev_open(struct inode *inode, struct file *file) +{ + unsigned int minor = iminor(inode); + wb_pci_dev_t *wb_pci_dev; + + PCIE_DEV_DEBUG_VERBOSE("inode: %p, file: %p, minor: %u", inode, file, minor); + + if (minor >= MAX_PCIE_NUM) { + PCIE_DEV_DEBUG_ERROR("minor out of range, minor = %d.\n", minor); + return -ENODEV; + } + + wb_pci_dev = pcie_dev_arry[minor]; + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("wb_pci_dev is NULL, open failed, minor = %d\n", minor); + return -ENODEV; + } + + file->private_data = wb_pci_dev; + return 0; +} + +static int pci_dev_release(struct inode *inode, struct file *file) +{ + file->private_data = NULL; + return 0; +} + +static int pci_dev_read_tmp(wb_pci_dev_t *wb_pci_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int width, i, j; + u32 val; + + if (offset > wb_pci_dev->bar_len) { + PCIE_DEV_DEBUG_VERBOSE("offset:0x%x, bar len:0x%x, EOF.\n", offset, wb_pci_dev->bar_len); + return 0; + } + + width = wb_pci_dev->bus_width; + + if (offset % width) { + PCIE_DEV_DEBUG_ERROR("pci bus width:%d, offset:0x%x, read size %lu invalid.\n", + width, offset, count); + return -EINVAL; + } + + if (count > wb_pci_dev->bar_len - offset) { + PCIE_DEV_DEBUG_VERBOSE("read count out of range. input len:%lu, read len:%u.\n", + count, wb_pci_dev->bar_len - offset); + count = wb_pci_dev->bar_len - offset; + } + + for (i = 0; i < count; i += width) { + val = pci_dev_getreg(wb_pci_dev, offset + i); + for (j = 0; (j < width) && (i + j < count); j++) { + buf[i + j] = (val >> (8 * j)) & 0xff; + } + } + return count; +} + +static ssize_t pci_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + wb_pci_dev_t *wb_pci_dev; + int ret, read_len; + u8 buf_tmp[PCI_RDWR_MAX_LEN]; + + wb_pci_dev = file->private_data; + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("wb_pci_dev is NULL, read failed.\n"); + return -EINVAL; + } + + if (count == 0) { + PCIE_DEV_DEBUG_ERROR("Invalid params, read count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(buf_tmp)) { + PCIE_DEV_DEBUG_VERBOSE("read count %lu exceed max %lu.\n", count, sizeof(buf_tmp)); + count = sizeof(buf_tmp); + } + + mem_clear(buf_tmp, sizeof(buf_tmp)); + read_len = pci_dev_read_tmp(wb_pci_dev, *offset, buf_tmp, count); + if (read_len < 0) { + PCIE_DEV_DEBUG_ERROR("pci_dev_read_tmp failed, ret:%d.\n", read_len); + return read_len; + } + if (access_ok(buf, read_len)) { + PCIE_DEV_DEBUG_VERBOSE("user space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + if (copy_to_user(buf, buf_tmp, read_len)) { + PCIE_DEV_DEBUG_ERROR("copy_to_user failed.\n"); + return -EFAULT; + } + } else { + PCIE_DEV_DEBUG_VERBOSE("kernel space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + memcpy(buf, buf_tmp, read_len); + } + *offset += read_len; + ret = read_len; + return ret; +} + +static ssize_t pci_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + int ret; + + PCIE_DEV_DEBUG_VERBOSE("pci_dev_read_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, to->count, iocb->ki_pos); + ret = pci_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + return ret; +} + +static int pci_dev_write_tmp(wb_pci_dev_t *wb_pci_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int width, i, j; + u32 val; + + if (offset > wb_pci_dev->bar_len) { + PCIE_DEV_DEBUG_VERBOSE("offset:0x%x, bar len:0x%x, EOF.\n", offset, wb_pci_dev->bar_len); + return 0; + } + + width = wb_pci_dev->bus_width; + + if (offset % width) { + PCIE_DEV_DEBUG_ERROR("pci bus width:%d, offset:0x%x, read size %lu invalid.\n", + width, offset, count); + return -EINVAL; + } + + if (count > wb_pci_dev->bar_len - offset) { + PCIE_DEV_DEBUG_VERBOSE("write count out of range. input len:%lu, write len:%u.\n", + count, wb_pci_dev->bar_len - offset); + count = wb_pci_dev->bar_len - offset; + } + + for (i = 0; i < count; i += width) { + val = 0; + for (j = 0; (j < width) && (i + j < count); j++) { + val |= buf[i + j] << (8 * j); + } + pci_dev_setreg(wb_pci_dev, i + offset, val); + } + + return count; +} + +static ssize_t pci_dev_write(struct file *file, const char __user *buf, size_t count, + loff_t *offset) +{ + wb_pci_dev_t *wb_pci_dev; + u8 buf_tmp[PCI_RDWR_MAX_LEN]; + int write_len; + + wb_pci_dev = file->private_data; + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("wb_pci_dev is NULL, write failed.\n"); + return -EINVAL; + } + + if (count == 0) { + PCIE_DEV_DEBUG_ERROR("Invalid params, write count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(buf_tmp)) { + PCIE_DEV_DEBUG_VERBOSE("write count %lu exceed max %lu.\n", count, sizeof(buf_tmp)); + count = sizeof(buf_tmp); + } + + mem_clear(buf_tmp, sizeof(buf_tmp)); + if (access_ok(buf, count)) { + PCIE_DEV_DEBUG_VERBOSE("user space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + if (copy_from_user(buf_tmp, buf, count)) { + PCIE_DEV_DEBUG_ERROR("copy_from_user failed.\n"); + return -EFAULT; + } + } else { + PCIE_DEV_DEBUG_VERBOSE("kernel space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + memcpy(buf_tmp, buf, count); + } + + write_len = pci_dev_write_tmp(wb_pci_dev, *offset, buf_tmp, count); + if (write_len < 0) { + PCIE_DEV_DEBUG_ERROR("pci_dev_write_tmp failed, ret:%d.\n", write_len); + return write_len; + } + + *offset += write_len; + return write_len; +} + +static ssize_t pci_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + int ret; + + PCIE_DEV_DEBUG_VERBOSE("pci_dev_write_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, from->count, iocb->ki_pos); + ret = pci_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + return ret; +} + +static loff_t pci_dev_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t ret = 0; + wb_pci_dev_t *wb_pci_dev; + + wb_pci_dev = file->private_data; + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("wb_pci_dev is NULL, llseek failed.\n"); + return -EINVAL; + } + + switch (origin) { + case SEEK_SET: + if (offset < 0) { + PCIE_DEV_DEBUG_ERROR("SEEK_SET, offset:%lld, invalid.\n", offset); + ret = -EINVAL; + break; + } + if (offset > wb_pci_dev->bar_len) { + PCIE_DEV_DEBUG_ERROR("SEEK_SET out of range, offset:%lld, bar len:0x%x.\n", + offset, wb_pci_dev->bar_len); + ret = - EINVAL; + break; + } + file->f_pos = offset; + ret = file->f_pos; + break; + case SEEK_CUR: + if (((file->f_pos + offset) > wb_pci_dev->bar_len) || ((file->f_pos + offset) < 0)) { + PCIE_DEV_DEBUG_ERROR("SEEK_CUR out of range, f_ops:%lld, offset:%lld, bar len:0x%x.\n", + file->f_pos, offset, wb_pci_dev->bar_len); + ret = - EINVAL; + break; + } + file->f_pos += offset; + ret = file->f_pos; + break; + default: + PCIE_DEV_DEBUG_ERROR("unsupport llseek type:%d.\n", origin); + ret = -EINVAL; + break; + } + return ret; +} + +static long pci_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + wb_pci_dev_t *wb_pci_dev; + void __user *argp; + firmware_upg_t *firmware_upg; + int upg_ctrl_base; + int upg_flash_base; + + PCIE_DEV_DEBUG_VERBOSE("ioctl, cmd=0x%02x, arg=0x%02lx\n",cmd, arg); + + wb_pci_dev = file->private_data; + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("wb_pci_dev is NULL, ioctl failed.\n"); + return -EINVAL; + } + + firmware_upg = &wb_pci_dev->firmware_upg; + + argp = (void __user *)arg; + + switch (cmd) { + case GET_FPGA_UPG_CTL_BASE: + if (firmware_upg->upg_ctrl_base < 0) { + PCIE_DEV_DEBUG_ERROR("dts not adaptive upg_ctrl_base\n"); + return -EFAULT; + } else { + upg_ctrl_base = firmware_upg->upg_ctrl_base; + if (copy_to_user(argp, &upg_ctrl_base, sizeof(upg_ctrl_base))) { + PCIE_DEV_DEBUG_ERROR("upg_ctrl_base copy_from_user failed\n"); + return -EFAULT; + } + } + break; + case GET_FPGA_UPG_FLASH_BASE: + if (firmware_upg->upg_flash_base < 0) { + PCIE_DEV_DEBUG_ERROR("dts not adaptive upg_flash_base\n"); + return -EFAULT; + } else { + upg_flash_base = firmware_upg->upg_flash_base; + if (copy_to_user(argp, &upg_flash_base, sizeof(upg_flash_base))) { + PCIE_DEV_DEBUG_ERROR("upg_flash_base copy_from_user failed\n"); + return -EFAULT; + } + } + break; + default: + PCIE_DEV_DEBUG_ERROR("command unsupported \n"); + return -ENOTTY; + } + + return 0; +} + +static const struct file_operations pcie_dev_fops = { + .owner = THIS_MODULE, + .llseek = pci_dev_llseek, + .read_iter = pci_dev_read_iter, + .write_iter = pci_dev_write_iter, + .unlocked_ioctl = pci_dev_ioctl, + .open = pci_dev_open, + .release = pci_dev_release, +}; + +static wb_pci_dev_t *dev_match(const char *path) +{ + wb_pci_dev_t *wb_pci_dev; + char dev_name[MAX_NAME_SIZE]; + int i; + + for (i = 0; i < MAX_PCIE_NUM; i++) { + if (pcie_dev_arry[i] == NULL) { + continue; + } + wb_pci_dev = pcie_dev_arry[i]; + snprintf(dev_name, MAX_NAME_SIZE,"/dev/%s", wb_pci_dev->name); + if (!strcmp(path, dev_name)) { + PCIE_DEV_DEBUG_VERBOSE("get dev_name = %s, minor = %d\n", dev_name, i); + return wb_pci_dev; + } + } + + return NULL; +} + +int pcie_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + wb_pci_dev_t *wb_pci_dev; + int read_len; + + if (path == NULL) { + PCIE_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if (buf == NULL) { + PCIE_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + wb_pci_dev = dev_match(path); + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + read_len = pci_dev_read_tmp(wb_pci_dev, offset, buf, count); + if (read_len < 0) { + PCIE_DEV_DEBUG_ERROR("pci_dev_read_tmp failed, ret:%d.\n", read_len); + } + return read_len; +} +EXPORT_SYMBOL(pcie_device_func_read); + +int pcie_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + wb_pci_dev_t *wb_pci_dev; + int write_len; + + if (path == NULL) { + PCIE_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if (buf == NULL) { + PCIE_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + wb_pci_dev = dev_match(path); + if (wb_pci_dev == NULL) { + PCIE_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + write_len = pci_dev_write_tmp(wb_pci_dev, offset, buf, count); + if (write_len < 0) { + PCIE_DEV_DEBUG_ERROR("pci_dev_write_tmp failed, ret:%d.\n", write_len); + } + return write_len; +} +EXPORT_SYMBOL(pcie_device_func_write); + +static int pci_setup_bars(wb_pci_dev_t *wb_pci_dev, struct pci_dev *dev) +{ + int ret; + uint32_t addr, len, flags; + + ret = 0; + addr = pci_resource_start(dev, wb_pci_dev->bar); + len = pci_resource_len(dev, wb_pci_dev->bar); + if (addr == 0 || len == 0) { + PCIE_DEV_DEBUG_ERROR("get bar addr failed. bar:%d, addr:0x%x, len:0x%x.\n", + wb_pci_dev->bar, addr, len); + return -EFAULT; + } + wb_pci_dev->bar_len = len; + + flags = pci_resource_flags(dev, wb_pci_dev->bar); + PCIE_DEV_DEBUG_VERBOSE("bar:%d, flag:0x%08x, phys addr:0x%x, len:0x%x\n", + wb_pci_dev->bar, flags, addr, len); + if (flags & IORESOURCE_MEM) { + wb_pci_dev->bar_flag = IORESOURCE_MEM; + wb_pci_dev->pci_mem_base = ioremap(addr, len); + PCIE_DEV_DEBUG_VERBOSE("pci mem base:%p.\n", wb_pci_dev->pci_mem_base); + } else if (flags & IORESOURCE_IO) { + wb_pci_dev->bar_flag = IORESOURCE_IO; + wb_pci_dev->pci_io_base = addr; + PCIE_DEV_DEBUG_VERBOSE("pci io base:0x%x.\n", wb_pci_dev->pci_io_base); + } else { + PCIE_DEV_DEBUG_ERROR("unknow pci bar flag:0x%08x.\n", flags); + ret = -EINVAL; + } + + return ret; +} + +static int pci_dev_probe(struct platform_device *pdev) +{ + int ret, devfn; + wb_pci_dev_t *wb_pci_dev; + struct pci_dev *pci_dev; + struct miscdevice *misc; + firmware_upg_t *firmware_upg; + pci_dev_device_t *pci_dev_device; + + wb_pci_dev = devm_kzalloc(&pdev->dev, sizeof(wb_pci_dev_t), GFP_KERNEL); + if (!wb_pci_dev) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + ret = -ENOMEM; + return ret; + } + + firmware_upg = &wb_pci_dev->firmware_upg; + + if (pdev->dev.of_node) { + ret = 0; + ret += of_property_read_string(pdev->dev.of_node, "pci_dev_name", &wb_pci_dev->name); + ret += of_property_read_u32(pdev->dev.of_node, "pci_domain", &wb_pci_dev->domain); + ret += of_property_read_u32(pdev->dev.of_node, "pci_bus", &wb_pci_dev->bus); + ret += of_property_read_u32(pdev->dev.of_node, "pci_slot", &wb_pci_dev->slot); + ret += of_property_read_u32(pdev->dev.of_node, "pci_fn", &wb_pci_dev->fn); + ret += of_property_read_u32(pdev->dev.of_node, "pci_bar", &wb_pci_dev->bar); + ret += of_property_read_u32(pdev->dev.of_node, "bus_width", &wb_pci_dev->bus_width); + + if (ret != 0) { + dev_err(&pdev->dev, "Failed to get dts config, ret:%d.\n", ret); + return -ENXIO; + } + + ret = 0; + ret += of_property_read_u32(pdev->dev.of_node, "upg_ctrl_base", &firmware_upg->upg_ctrl_base); + ret += of_property_read_u32(pdev->dev.of_node, "upg_flash_base", &firmware_upg->upg_flash_base); + if (ret != 0) { + PCIE_DEV_DEBUG_VERBOSE("dts don't adaptive fpga upg related, ret:%d.\n", ret); + firmware_upg->upg_ctrl_base = -1; + firmware_upg->upg_flash_base = -1; + } else { + PCIE_DEV_DEBUG_VERBOSE("upg_ctrl_base:0x%04x, upg_flash_base:0x%02x.\n", + firmware_upg->upg_ctrl_base, firmware_upg->upg_flash_base); + } + } else { + if (pdev->dev.platform_data == NULL) { + dev_err(&pdev->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + pci_dev_device = pdev->dev.platform_data; + wb_pci_dev->name = pci_dev_device->pci_dev_name; + wb_pci_dev->domain = pci_dev_device->pci_domain; + wb_pci_dev->bus = pci_dev_device->pci_bus; + wb_pci_dev->slot = pci_dev_device->pci_slot; + wb_pci_dev->fn = pci_dev_device->pci_fn; + wb_pci_dev->bar = pci_dev_device->pci_bar; + wb_pci_dev->bus_width = pci_dev_device->bus_width; + firmware_upg->upg_ctrl_base = pci_dev_device->upg_ctrl_base; + firmware_upg->upg_flash_base = pci_dev_device->upg_flash_base; + PCIE_DEV_DEBUG_VERBOSE("upg_ctrl_base:0x%04x, upg_flash_base:0x%02x.\n", + firmware_upg->upg_ctrl_base, firmware_upg->upg_flash_base); + } + + PCIE_DEV_DEBUG_VERBOSE("name:%s, domain:0x%04x, bus:0x%02x, slot:0x%02x, fn:%u, bar:%u, bus_width:%d.\n", + wb_pci_dev->name, wb_pci_dev->domain, wb_pci_dev->bus, wb_pci_dev->slot, wb_pci_dev->fn, + wb_pci_dev->bar, wb_pci_dev->bus_width); + + devfn = PCI_DEVFN(wb_pci_dev->slot, wb_pci_dev->fn); + pci_dev = pci_get_domain_bus_and_slot(wb_pci_dev->domain, wb_pci_dev->bus, devfn); + if (pci_dev == NULL) { + dev_err(&pdev->dev, "Failed to find pci_dev, domain:0x%04x, bus:0x%02x, devfn:0x%x\n", + wb_pci_dev->domain, wb_pci_dev->bus, devfn); + return -ENXIO; + } + ret = pci_setup_bars(wb_pci_dev, pci_dev); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to get pci bar address.\n"); + return ret; + } + + if (!wb_pci_dev->setreg || !wb_pci_dev->getreg) { + switch (wb_pci_dev->bus_width) { + case 1: + wb_pci_dev->setreg = pci_dev_setreg_8; + wb_pci_dev->getreg = pci_dev_getreg_8; + break; + + case 2: + wb_pci_dev->setreg = pci_dev_setreg_16; + wb_pci_dev->getreg = pci_dev_getreg_16; + break; + + case 4: + wb_pci_dev->setreg = pci_dev_setreg_32; + wb_pci_dev->getreg = pci_dev_getreg_32; + break; + default: + dev_err(&pdev->dev, "Error: unsupported I/O width (%d).\n", wb_pci_dev->bus_width); + ret = -EINVAL; + goto io_unmap; + } + } + + misc = &wb_pci_dev->misc; + misc->minor = MISC_DYNAMIC_MINOR; + misc->name = wb_pci_dev->name; + misc->fops = &pcie_dev_fops; + misc->mode = 0666; + if (misc_register(misc) != 0) { + dev_err(&pdev->dev, "Failed to register %s device.\n", misc->name); + ret = -ENXIO; + goto io_unmap; + } + if (misc->minor >= MAX_PCIE_NUM) { + dev_err(&pdev->dev, "Error: device minor[%d] more than max pcie num[%d].\n", + misc->minor, MAX_PCIE_NUM); + misc_deregister(misc); + ret = -EINVAL; + goto io_unmap; + } + pcie_dev_arry[misc->minor] = wb_pci_dev; + dev_info(&pdev->dev, "%04x:%02x:%02x.%d[bar%d: %s]: register %s device with minor:%d success.\n", + wb_pci_dev->domain, wb_pci_dev->bus, wb_pci_dev->slot, wb_pci_dev->fn, wb_pci_dev->bar, + wb_pci_dev->bar_flag == IORESOURCE_MEM ? "IORESOURCE_MEM" : "IORESOURCE_IO", + misc->name, misc->minor ); + return 0; + +io_unmap: + if (wb_pci_dev->pci_mem_base) { + iounmap(wb_pci_dev->pci_mem_base); + } + return ret; +} + +static int pci_dev_remove(struct platform_device *pdev) +{ + int i; + + for (i = 0; i < MAX_PCIE_NUM ; i++) { + if (pcie_dev_arry[i] != NULL) { + if (pcie_dev_arry[i]->pci_mem_base) { + iounmap(pcie_dev_arry[i]->pci_mem_base); + } + misc_deregister(&pcie_dev_arry[i]->misc); + pcie_dev_arry[i] = NULL; + } + } + + return 0; +} + +static struct of_device_id pci_dev_match[] = { + { + .compatible = "wb-pci-dev", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, pci_dev_match); + +static struct platform_driver wb_pci_dev_driver = { + .probe = pci_dev_probe, + .remove = pci_dev_remove, + .driver = { + .owner = THIS_MODULE, + .name = PROXY_NAME, + .of_match_table = pci_dev_match, + }, +}; + +static int __init wb_pci_dev_init(void) +{ + return platform_driver_register(&wb_pci_dev_driver); +} + +static void __exit wb_pci_dev_exit(void) +{ + platform_driver_unregister(&wb_pci_dev_driver); +} + +module_init(wb_pci_dev_init); +module_exit(wb_pci_dev_exit); +MODULE_DESCRIPTION("pcie device driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h new file mode 100644 index 000000000000..9ba0f3b457ea --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h @@ -0,0 +1,26 @@ +#ifndef __WB_PCIE_DEV_H__ +#define __WB_PCIE_DEV_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +#define UPG_TYPE 'U' +#define GET_FPGA_UPG_CTL_BASE _IOR(UPG_TYPE, 0, int) +#define GET_FPGA_UPG_FLASH_BASE _IOR(UPG_TYPE, 1, int) + +#define PCI_DEV_NAME_MAX_LEN (64) + +typedef struct pci_dev_device_s { + char pci_dev_name[PCI_DEV_NAME_MAX_LEN]; + int pci_domain; + int pci_bus; + int pci_slot; + int pci_fn; + int pci_bar; + int bus_width; + int upg_ctrl_base; + int upg_flash_base; + int device_flag; +} pci_dev_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c new file mode 100644 index 000000000000..3fe1c4aa10f5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c @@ -0,0 +1,749 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_platform_i2c_dev.h" + +#define PROXY_NAME "wb-platform-i2c-dev" +#define MAX_I2C_DEV_NUM (256) +#define FPGA_MAX_LEN (256) +#define MAX_NAME_SIZE (20) +#define MAX_BUS_WIDTH (16) +#define TRANSFER_WRITE_BUFF (FPGA_MAX_LEN + MAX_BUS_WIDTH) + +#define WIDTH_1Byte (1) +#define WIDTH_2Byte (2) +#define WIDTH_4Byte (4) + +int g_i2c_dev_debug = 0; +int g_i2c_dev_error = 0; + +module_param(g_i2c_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_i2c_dev_error, int, S_IRUGO | S_IWUSR); + +#define I2C_DEV_DEBUG_DMESG(fmt, args...) do { \ + if (g_i2c_dev_debug) { \ + printk(KERN_ERR "[I2C_DEV][DEBUG][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define I2C_DEV_DEBUG_ERROR(fmt, args...) do { \ + if (g_i2c_dev_error) { \ + printk(KERN_ERR "[I2C_DEV][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static struct platform_i2c_dev_info* i2c_dev_arry[MAX_I2C_DEV_NUM]; + +struct platform_i2c_dev_info { + uint32_t i2c_bus; + uint32_t i2c_addr; + const char *name; + uint32_t data_bus_width; + uint32_t addr_bus_width; + uint32_t per_rd_len; + uint32_t per_wr_len; + struct miscdevice misc; +}; + +static int transfer_read(struct platform_i2c_dev_info *i2c_dev, u8 *buf, loff_t regaddr, size_t count) +{ + int i, j; + struct i2c_adapter *adap; + union i2c_smbus_data data; + u8 offset_buf[MAX_BUS_WIDTH]; + struct i2c_msg msgs[2]; + int msgs_num, ret; + u8 offset; + u8 length; + + if (!i2c_dev) { + I2C_DEV_DEBUG_ERROR("can't get read i2c_dev\r\n"); + return -ENODEV; + } + + i = 0; + + mem_clear(offset_buf, sizeof(offset_buf)); + + switch (i2c_dev->addr_bus_width) { + case WIDTH_4Byte: + offset_buf[i++] = (regaddr >> 24) & 0xFF; + offset_buf[i++] = (regaddr >> 16) & 0xFF; + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_2Byte: + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_1Byte: + offset_buf[i++] = regaddr & 0xFF; + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Address Width,but set width = %u\r\n", i2c_dev->addr_bus_width); + return -EINVAL; + } + + adap = i2c_get_adapter(i2c_dev->i2c_bus); + if (adap == NULL) { + I2C_DEV_DEBUG_ERROR("get i2c adapter %d faild.\n", i2c_dev->i2c_bus); + return -ENXIO; + } + + if (adap->algo->master_xfer) { + mem_clear(msgs, sizeof(msgs)); + msgs[0].addr = i2c_dev->i2c_addr; + msgs[0].flags = 0; + msgs[0].len = i2c_dev->addr_bus_width; + msgs[0].buf = offset_buf; + + msgs[1].addr = i2c_dev->i2c_addr; + msgs[1].flags = I2C_M_RD; + msgs[1].len = count; + msgs[1].buf = buf; + + msgs_num = 2; + ret = i2c_transfer(adap, msgs, msgs_num); + if (ret != msgs_num) { + I2C_DEV_DEBUG_ERROR("i2c_transfer read error\r\n"); + ret = -EFAULT; + goto error_exit; + } + } else { + if (i2c_dev->addr_bus_width == WIDTH_1Byte) { + offset = regaddr & 0xFF; + if (i2c_check_functionality(adap, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + for (j = 0; j < count; j += I2C_SMBUS_BLOCK_MAX) { + if (count - j > I2C_SMBUS_BLOCK_MAX) { + length = I2C_SMBUS_BLOCK_MAX; + } else { + length = count - j; + } + data.block[0] = length; + ret = adap->algo->smbus_xfer(adap, i2c_dev->i2c_addr, + 0, + I2C_SMBUS_READ, + offset, I2C_SMBUS_I2C_BLOCK_DATA, &data); + if (ret) { + I2C_DEV_DEBUG_ERROR("smbus_xfer read block error, ret = %d\r\n", ret); + ret = -EFAULT; + goto error_exit; + } + memcpy(buf + j, data.block + 1, length); + offset += length; + } + } else { + for (j = 0; j < count; j++) { + ret = adap->algo->smbus_xfer(adap, i2c_dev->i2c_addr, + 0, + I2C_SMBUS_READ, + offset, I2C_SMBUS_BYTE_DATA, &data); + + if (!ret) { + buf[j] = data.byte; + } else { + I2C_DEV_DEBUG_ERROR("smbus_xfer read byte error, ret = %d\r\n", ret); + ret = -EFAULT; + goto error_exit; + } + offset++; + } + } + } else { + I2C_DEV_DEBUG_ERROR("smbus_xfer not support addr_bus_width = %d\r\n", i2c_dev->addr_bus_width); + ret = -EINVAL; + goto error_exit; + } + } + + i2c_put_adapter(adap); + return 0; +error_exit: + i2c_put_adapter(adap); + return ret; +} + +static int transfer_write(struct platform_i2c_dev_info *i2c_dev, u8 *buf, loff_t regaddr, size_t count) +{ + int i, j; + struct i2c_adapter *adap; + union i2c_smbus_data data; + u8 offset_buf[TRANSFER_WRITE_BUFF]; + struct i2c_msg msgs[1]; + int msgs_num, ret; + u8 offset; + u8 length; + + if (!i2c_dev) { + I2C_DEV_DEBUG_ERROR("can't get read i2c_dev\r\n"); + return -ENODEV; + } + + i = 0; + + mem_clear(offset_buf, sizeof(offset_buf)); + + switch (i2c_dev->addr_bus_width) { + case WIDTH_4Byte: + offset_buf[i++] = (regaddr >> 24) & 0xFF; + offset_buf[i++] = (regaddr >> 16) & 0xFF; + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_2Byte: + offset_buf[i++] = (regaddr >> 8) & 0xFF; + offset_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_1Byte: + offset_buf[i++] = regaddr & 0xFF; + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Address Width,but set width = %u\r\n", i2c_dev->addr_bus_width); + return -EINVAL; + } + + memcpy(offset_buf + i2c_dev->addr_bus_width, buf, count); + + adap = i2c_get_adapter(i2c_dev->i2c_bus); + if (adap == NULL) { + I2C_DEV_DEBUG_ERROR("get i2c adapter %d faild.\n", i2c_dev->i2c_bus); + return -ENXIO; + } + + if (adap->algo->master_xfer) { + mem_clear(msgs, sizeof(msgs)); + + msgs[0].addr = i2c_dev->i2c_addr; + msgs[0].flags = 0; + msgs[0].len = i2c_dev->addr_bus_width + count; + msgs[0].buf = offset_buf; + + msgs_num = 1; + ret = i2c_transfer(adap, msgs, msgs_num); + if (ret != msgs_num) { + I2C_DEV_DEBUG_ERROR("i2c_transfer write error\r\n"); + ret = -EFAULT; + goto error_exit; + } + } else { + if (i2c_dev->addr_bus_width == WIDTH_1Byte) { + offset = regaddr & 0xFF; + if (i2c_check_functionality(adap, I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)) { + for (j = 0; j < count; j += I2C_SMBUS_BLOCK_MAX) { + if (count - j > I2C_SMBUS_BLOCK_MAX) { + length = I2C_SMBUS_BLOCK_MAX; + } else { + length = count - j; + } + data.block[0] = length; + memcpy(data.block + 1, buf + j, length); + ret = adap->algo->smbus_xfer(adap, i2c_dev->i2c_addr, + 0, + I2C_SMBUS_WRITE, + offset, I2C_SMBUS_I2C_BLOCK_DATA, &data); + if (ret) { + I2C_DEV_DEBUG_ERROR("smbus_xfer write block error, ret = %d\r\n", ret); + ret = -EFAULT; + goto error_exit; + } + offset += length; + } + } else { + for (j = 0; j < count; j++) { + data.byte = buf[j]; + ret = adap->algo->smbus_xfer(adap, i2c_dev->i2c_addr, + 0, + I2C_SMBUS_WRITE, + offset, I2C_SMBUS_BYTE_DATA, &data); + if (ret) { + I2C_DEV_DEBUG_ERROR("smbus_xfer write byte error, ret = %d\r\n", ret); + ret = -EFAULT; + goto error_exit; + } + offset += 1; + } + } + } else { + I2C_DEV_DEBUG_ERROR("smbus_xfer not support addr_bus_width = %d\r\n", i2c_dev->addr_bus_width); + ret = -EINVAL; + goto error_exit; + } + } + + i2c_put_adapter(adap); + return 0; +error_exit: + i2c_put_adapter(adap); + return ret; +} + +static long i2c_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + return 0; +} + +static int i2c_dev_open(struct inode *inode, struct file *file) +{ + unsigned int minor = iminor(inode); + struct platform_i2c_dev_info *i2c_dev; + + i2c_dev = i2c_dev_arry[minor]; + if (i2c_dev == NULL) { + return -ENODEV; + } + + file->private_data = i2c_dev; + + return 0; +} + +static int i2c_dev_release(struct inode *inode, struct file *file) +{ + file->private_data = NULL; + + return 0; +} + +static int device_read(struct platform_i2c_dev_info *i2c_dev, uint32_t offset, uint8_t *buf, int count) +{ + int i, j, ret; + u8 tmp_offset; + u8 val[FPGA_MAX_LEN]; + u32 width, rd_len, per_len, tmp; + u32 max_per_len; + + width = i2c_dev->data_bus_width; + switch (width) { + case WIDTH_4Byte: + tmp_offset = offset & 0x3; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %d invalid.\r\n", width, offset, count); + return -EINVAL; + } + break; + case WIDTH_2Byte: + tmp_offset = offset & 0x1; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %d invalid.\r\n", width, offset, count); + return -EINVAL; + } + break; + case WIDTH_1Byte: + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Data Width,but set width = %u\r\n", width); + return -EINVAL; + } + + max_per_len = i2c_dev->per_rd_len; + tmp = (width - 1) & count; + rd_len = (tmp == 0) ? count : count + width - tmp; + per_len = (rd_len > max_per_len) ? (max_per_len) : (rd_len); + + mem_clear(val, sizeof(val)); + for (i = 0; i < rd_len; i += per_len) { + ret = transfer_read(i2c_dev, val + i, offset + i, per_len); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("read error.read offset = %u\r\n", (offset + i)); + return -EFAULT; + } + } + + if (width == WIDTH_1Byte) { + memcpy(buf, val, count); + } else { + for (i = 0; i < count; i += width) { + for (j = 0; (j < width) && (i + j < count); j++) { + buf[i + j] = val[i + width - j - 1]; + } + } + } + + return 0; +} + +static int device_write(struct platform_i2c_dev_info *i2c_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i, j, ret; + u8 tmp_offset; + u32 width; + u8 val[FPGA_MAX_LEN]; + u32 wr_len, per_len, tmp; + u32 max_per_len; + + width = i2c_dev->data_bus_width; + switch (width) { + case WIDTH_4Byte: + tmp_offset = offset & 0x3; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %lu invalid.\r\n", width, offset, count); + return -EINVAL; + } + break; + case WIDTH_2Byte: + tmp_offset = offset & 0x1; + if (tmp_offset) { + I2C_DEV_DEBUG_ERROR("data bus width:%u, offset:%u, read size %lu invalid.\r\n", width, offset, count); + return -EINVAL; + } + break; + case WIDTH_1Byte: + break; + default: + I2C_DEV_DEBUG_ERROR("Only support 1,2,4 Byte Data Width,but set width = %u\r\n", width); + return -EINVAL; + } + + mem_clear(val, sizeof(val)); + + if (width == WIDTH_1Byte) { + memcpy(val, buf, count); + } else { + for (i = 0; i < count; i += width) { + for (j = 0; (j < width) && (i + j < count); j++) { + val[i + width - j - 1] = buf[i + j]; + } + } + } + + max_per_len = i2c_dev->per_wr_len; + tmp = (width - 1) & count; + wr_len = (tmp == 0) ? count : count + width - tmp; + per_len = (wr_len > max_per_len) ? (max_per_len) : (wr_len); + + for (i = 0; i < wr_len; i += per_len) { + ret = transfer_write(i2c_dev, val + i, offset + i, per_len); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("write error.offset = %u\r\n", (offset + i)); + return -EFAULT; + } + } + return 0; +} + +static ssize_t i2c_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + u8 val[FPGA_MAX_LEN]; + int ret; + struct platform_i2c_dev_info *i2c_dev; + + if (count <= 0 || count > sizeof(val)) { + I2C_DEV_DEBUG_ERROR("read conut %lu , beyond max:%lu.\n", count, sizeof(val)); + return -EINVAL; + } + + i2c_dev = file->private_data; + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("can't get read private_data .\r\n"); + return -EINVAL; + } + + ret = device_read(i2c_dev, (uint32_t)*offset, val, count); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("i2c dev read failed, dev name:%s, offset:0x%x, len:%lu.\n", + i2c_dev->name, (uint32_t)*offset, count); + return -EINVAL; + } + + if (copy_to_user(buf, val, count)) { + I2C_DEV_DEBUG_ERROR("copy_to_user error \r\n"); + return -EFAULT; + } else{ + *offset += count; + } + + return count; +} + +static ssize_t i2c_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + u8 val[FPGA_MAX_LEN]; + int ret; + struct platform_i2c_dev_info *i2c_dev; + + if (count <= 0 || count > sizeof(val)) { + I2C_DEV_DEBUG_ERROR("write conut %lu, beyond max val:%lu.\n", count, sizeof(val)); + return -EINVAL; + } + + i2c_dev = file->private_data; + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("get write private_data error.\r\n"); + return -EINVAL; + } + + mem_clear(val, sizeof(val)); + if (copy_from_user(val, buf, count)) { + I2C_DEV_DEBUG_ERROR("copy_from_user error.\r\n"); + return -EFAULT; + } + + ret = device_write (i2c_dev, (uint32_t)*offset, val, count); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("i2c dev write failed, dev name:%s, offset:0x%llx, len:%lu.\n", + i2c_dev->name, *offset, count); + return -EINVAL; + } + + *offset += count; + return count; +} + +static loff_t i2c_dev_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t ret = 0; + + switch (origin) { + case SEEK_SET: + if (offset < 0) { + I2C_DEV_DEBUG_ERROR("SEEK_SET, offset:%lld, invalid.\r\n", offset); + ret = -EINVAL; + break; + } + file->f_pos = offset; + ret = file->f_pos; + break; + case SEEK_CUR: + if (file->f_pos + offset < 0) { + I2C_DEV_DEBUG_ERROR("SEEK_CUR out of range, f_ops:%lld, offset:%lld.\n", + file->f_pos, offset); + } + file->f_pos += offset; + ret = file->f_pos; + break; + default: + I2C_DEV_DEBUG_ERROR("unsupport llseek type:%d.\n", origin); + ret = -EINVAL; + break; + } + return ret; +} + +static const struct file_operations i2c_dev_fops = { + .owner = THIS_MODULE, + .llseek = i2c_dev_llseek, + .read = i2c_dev_read, + .write = i2c_dev_write, + .unlocked_ioctl = i2c_dev_ioctl, + .open = i2c_dev_open, + .release = i2c_dev_release, +}; + +static struct platform_i2c_dev_info * dev_match(const char *path) +{ + struct platform_i2c_dev_info *i2c_dev; + char dev_name[MAX_NAME_SIZE]; + int i; + for (i = 0; i < MAX_I2C_DEV_NUM; i++) { + if (i2c_dev_arry[ i ] == NULL) { + continue; + } + i2c_dev = i2c_dev_arry[ i ]; + snprintf(dev_name, MAX_NAME_SIZE,"/dev/%s", i2c_dev->name); + if (!strcmp(path, dev_name)) { + I2C_DEV_DEBUG_DMESG("get dev_name = %s, minor = %d\n", dev_name, i); + return i2c_dev; + } + } + + return NULL; +} + +int platform_i2c_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + struct platform_i2c_dev_info *i2c_dev = NULL; + int ret; + + if(path == NULL){ + I2C_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if(buf == NULL){ + I2C_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + if (count > FPGA_MAX_LEN) { + I2C_DEV_DEBUG_ERROR("read conut %lu, beyond max:%d.\n", count, FPGA_MAX_LEN); + return -EINVAL; + } + + i2c_dev = dev_match(path); + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + ret = device_read(i2c_dev, offset, buf, count); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("fpga i2c dev read failed, dev name:%s, offset:0x%x, len:%lu.\n", + i2c_dev->name, offset, count); + return -EINVAL; + } + + return count; +} +EXPORT_SYMBOL(platform_i2c_device_func_read); + +int platform_i2c_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + struct platform_i2c_dev_info *i2c_dev = NULL; + int ret; + + if(path == NULL){ + I2C_DEV_DEBUG_ERROR("path NULL"); + return -EINVAL; + } + + if(buf == NULL){ + I2C_DEV_DEBUG_ERROR("buf NULL"); + return -EINVAL; + } + + if (count > FPGA_MAX_LEN) { + I2C_DEV_DEBUG_ERROR("write conut %lu, beyond max:%d.\n", count, FPGA_MAX_LEN); + return -EINVAL; + } + + i2c_dev = dev_match(path); + if (i2c_dev == NULL) { + I2C_DEV_DEBUG_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + ret = device_write (i2c_dev, offset, buf, count); + if (ret < 0) { + I2C_DEV_DEBUG_ERROR("i2c dev write failed, dev name:%s, offset:0x%x, len:%lu.\n", + i2c_dev->name, offset, count); + return -EINVAL; + } + + return count; +} +EXPORT_SYMBOL(platform_i2c_device_func_write); + +static int platform_i2c_dev_probe(struct platform_device *pdev) +{ + int ret = 0; + struct platform_i2c_dev_info *i2c_dev; + struct miscdevice *misc; + platform_i2c_dev_device_t *platform_i2c_dev_device; + + i2c_dev = devm_kzalloc(&pdev->dev, sizeof(struct platform_i2c_dev_info), GFP_KERNEL); + if (!i2c_dev) { + dev_err(&pdev->dev, "devm_kzalloc error. \r\n"); + return -ENOMEM; + } + + if (pdev->dev.of_node) { + + ret += of_property_read_u32(pdev->dev.of_node, "i2c_bus", &i2c_dev->i2c_bus); + ret += of_property_read_u32(pdev->dev.of_node, "i2c_addr", &i2c_dev->i2c_addr); + ret += of_property_read_string(pdev->dev.of_node, "i2c_name", &i2c_dev->name); + ret += of_property_read_u32(pdev->dev.of_node, "data_bus_width", &i2c_dev->data_bus_width); + ret += of_property_read_u32(pdev->dev.of_node, "addr_bus_width", &i2c_dev->addr_bus_width); + ret += of_property_read_u32(pdev->dev.of_node, "per_rd_len", &i2c_dev->per_rd_len); + ret += of_property_read_u32(pdev->dev.of_node, "per_wr_len", &i2c_dev->per_wr_len); + if (ret != 0) { + dev_err(&pdev->dev, "dts config error.ret:%d.\r\n", ret); + return -ENXIO; + } + } else { + if (pdev->dev.platform_data == NULL) { + dev_err(&pdev->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + platform_i2c_dev_device = pdev->dev.platform_data; + i2c_dev->i2c_bus = platform_i2c_dev_device->i2c_bus; + i2c_dev->i2c_addr = platform_i2c_dev_device->i2c_addr; + i2c_dev->name = platform_i2c_dev_device->i2c_name; + i2c_dev->data_bus_width = platform_i2c_dev_device->data_bus_width; + i2c_dev->addr_bus_width = platform_i2c_dev_device->addr_bus_width; + i2c_dev->per_rd_len = platform_i2c_dev_device->per_rd_len; + i2c_dev->per_wr_len = platform_i2c_dev_device->per_wr_len; + } + + if ((i2c_dev->per_rd_len & (i2c_dev->data_bus_width - 1)) || (i2c_dev->per_wr_len & (i2c_dev->data_bus_width - 1))) { + dev_err(&pdev->dev, "Invalid config per_rd_len %d per_wr_len %d data bus_width %d.\r\n", i2c_dev->per_rd_len, + i2c_dev->per_wr_len, i2c_dev->data_bus_width); + return -ENXIO; + } + + misc = &i2c_dev->misc; + misc->minor = MISC_DYNAMIC_MINOR; + misc->name = i2c_dev->name; + misc->fops = &i2c_dev_fops; + if (misc_register(misc) != 0) { + dev_err(&pdev->dev, "register %s faild.\r\n", misc->name); + return -ENXIO; + } + + if (misc->minor >= MAX_I2C_DEV_NUM) { + dev_err(&pdev->dev, "minor number beyond the limit! is %d.\r\n", misc->minor); + misc_deregister(misc); + return -ENXIO; + } + i2c_dev_arry[misc->minor] = i2c_dev; + + dev_info(&pdev->dev, "register %u addr_bus_width %u data_bus_width device %s with %u per_rd_len %u per_wr_len success.\r\n", + i2c_dev->addr_bus_width, i2c_dev->data_bus_width, i2c_dev->name, i2c_dev->per_rd_len, i2c_dev->per_wr_len); + + return 0; +} + +static int platform_i2c_dev_remove(struct platform_device *pdev) +{ + int i; + + for (i = 0; i < MAX_I2C_DEV_NUM ; i++) { + if (i2c_dev_arry[i] != NULL) { + misc_deregister(&i2c_dev_arry[i]->misc); + i2c_dev_arry[i] = NULL; + } + } + + return 0; +} + +static const struct of_device_id platform_i2c_dev_of_match[] = { + { .compatible = "wb-platform-i2c-dev" }, + { }, +}; +MODULE_DEVICE_TABLE(of, platform_i2c_dev_of_match); + +static struct platform_driver wb_platform_i2c_dev_driver = { + .probe = platform_i2c_dev_probe, + .remove = platform_i2c_dev_remove, + .driver = { + .owner = THIS_MODULE, + .name = PROXY_NAME, + .of_match_table = platform_i2c_dev_of_match, + }, +}; + +static int __init wb_platform_i2c_dev_init(void) +{ + return platform_driver_register(&wb_platform_i2c_dev_driver); +} + +static void __exit wb_platform_i2c_dev_exit(void) +{ + platform_driver_unregister(&wb_platform_i2c_dev_driver); +} + +module_init(wb_platform_i2c_dev_init); +module_exit(wb_platform_i2c_dev_exit); + +MODULE_DESCRIPTION("platform i2c dev driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.h new file mode 100644 index 000000000000..b5158c9fec57 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.h @@ -0,0 +1,19 @@ +#ifndef __WB_PLATFORM_I2C_DEV_H__ +#define __WB_PLATFORM_I2C_DEV_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#define I2C_DEV_NAME_MAX_LEN (64) + +typedef struct platform_i2c_dev_device_s { + uint32_t i2c_bus; + uint32_t i2c_addr; + char i2c_name[I2C_DEV_NAME_MAX_LEN]; + uint32_t data_bus_width; + uint32_t addr_bus_width; + uint32_t per_rd_len; + uint32_t per_wr_len; + int device_flag; +} platform_i2c_dev_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_93xx46.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_93xx46.c new file mode 100644 index 000000000000..abc4f1567aec --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_93xx46.c @@ -0,0 +1,111 @@ +/* + * EEPROMs access control driver for display configuration EEPROMs + * on DigsyMTC board. + * + * (C) 2011 DENX Software Engineering, Anatolij Gustschin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define DEFAULT_SPI_BUS_NUM (0) +#define DEFAULT_SPI_CS_NUM (0) +#define DEFAULT_SPI_HZ (100000) + +#define GPIO_EEPROM_CS (-1) + +int g_wb_spi_93xx46_debug = 0; +int g_wb_spi_93xx46_error = 0; +int spi_bus_num = DEFAULT_SPI_BUS_NUM; +int spi_cs_gpio = GPIO_EEPROM_CS; + +module_param(g_wb_spi_93xx46_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_spi_93xx46_error, int, S_IRUGO | S_IWUSR); +module_param(spi_bus_num, int, S_IRUGO | S_IWUSR); +module_param(spi_cs_gpio, int, S_IRUGO | S_IWUSR); + +#define SPI_93xx46_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_spi_93xx46_debug) { \ + printk(KERN_INFO "[SPI-93xx46][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define SPI_93xx46_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_spi_93xx46_error) { \ + printk(KERN_ERR "[SPI-93xx46][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct eeprom_93xx46_platform_data eeprom_data = { + .flags = EE_ADDR16, + .quirks = EEPROM_93XX46_QUIRK_SINGLE_WORD_READ, +}; + +struct spi_board_info eeprom_93xx46_info __initdata = { + .modalias = "wb_93xx46", + .max_speed_hz = DEFAULT_SPI_HZ, + .bus_num = DEFAULT_SPI_BUS_NUM, + .chip_select = DEFAULT_SPI_CS_NUM, + .mode = SPI_MODE_0 | SPI_CS_HIGH, + .controller_data = (void *)GPIO_EEPROM_CS, + .platform_data = &eeprom_data, +}; + +static struct spi_device *g_spi_device; + +static int __init wb_spi_93xx46_init(void) +{ + struct spi_master *master; + + SPI_93xx46_DEBUG_VERBOSE("Enter.\n"); + + eeprom_93xx46_info.bus_num = spi_bus_num; + eeprom_93xx46_info.controller_data = (void *)(long)spi_cs_gpio; + master = spi_busnum_to_master(eeprom_93xx46_info.bus_num); + if (!master) { + SPI_93xx46_DEBUG_ERROR("get bus_num %u spi master failed.\n", + eeprom_93xx46_info.bus_num); + return -EINVAL; + } + + g_spi_device = spi_new_device(master, &eeprom_93xx46_info); + put_device(&master->dev); + if (!g_spi_device) { + SPI_93xx46_DEBUG_ERROR("register spi new device failed.\n"); + return -EPERM; + } + + if (g_wb_spi_93xx46_debug) { + dev_info(&g_spi_device->dev, "register %u bus_num spi 93xx46 eeprom success\n", + eeprom_93xx46_info.bus_num); + } + + return 0; +} + +static void __exit wb_spi_93xx46_exit(void) +{ + spi_unregister_device(g_spi_device); + + if (g_wb_spi_93xx46_debug) { + dev_info(&g_spi_device->dev, "unregister spi 93xx46 eeprom success\n"); + } + + return; +} + +module_init(wb_spi_93xx46_init); +module_exit(wb_spi_93xx46_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("create 93xx46 eeprom device"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c new file mode 100644 index 000000000000..b569ace32526 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c @@ -0,0 +1,684 @@ +/* + * wb_spi_dev.c + * ko to read/write spi device through /dev/XXX device + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_spi_dev.h" + +#define MAX_SPI_DEV_NUM (256) +#define MAX_RW_LEN (256) +#define MAX_NAME_SIZE (20) +#define MAX_ADDR_BUS_WIDTH (4) + +#define TRANSFER_WRITE_BUFF (1 + MAX_ADDR_BUS_WIDTH + MAX_RW_LEN) + +#define WIDTH_1Byte (1) +#define WIDTH_2Byte (2) +#define WIDTH_4Byte (4) + +#define OP_READ (0x3) +#define OP_WRITE (0x2) + +static int g_spi_dev_debug = 0; +static int g_spi_dev_error = 0; + +module_param(g_spi_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_spi_dev_error, int, S_IRUGO | S_IWUSR); + +#define SPI_DEV_DEBUG(fmt, args...) do { \ + if (g_spi_dev_debug) { \ + printk(KERN_ERR "[SPI_DEV][DEBUG][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define SPI_DEV_ERROR(fmt, args...) do { \ + if (g_spi_dev_error) { \ + printk(KERN_ERR "[SPI_DEV][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static struct spi_dev_info* spi_dev_arry[MAX_SPI_DEV_NUM]; + +struct spi_dev_info { + const char *name; + uint32_t data_bus_width; + uint32_t addr_bus_width; + uint32_t per_rd_len; + uint32_t per_wr_len; + uint32_t spi_len; + struct miscdevice misc; + struct spi_device *spi_device; +}; + +static int transfer_read(struct spi_dev_info *spi_dev, u8 *buf, uint32_t regaddr, size_t count) +{ + int i, ret; + u8 tx_buf[MAX_ADDR_BUS_WIDTH + 1]; + struct spi_message m; + struct spi_transfer xfer[2]; + + i = 0; + mem_clear(tx_buf, sizeof(tx_buf)); + tx_buf[i++] = OP_READ; + + switch (spi_dev->addr_bus_width) { + case WIDTH_4Byte: + tx_buf[i++] = (regaddr >> 24) & 0xFF; + tx_buf[i++] = (regaddr >> 16) & 0xFF; + tx_buf[i++] = (regaddr >> 8) & 0xFF; + tx_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_2Byte: + tx_buf[i++] = (regaddr >> 8) & 0xFF; + tx_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_1Byte: + tx_buf[i++] = regaddr & 0xFF; + break; + default: + SPI_DEV_ERROR("Only support 1,2,4 Byte Width,but set width = %u\n", + spi_dev->addr_bus_width); + return -EINVAL; + } + + mem_clear(xfer, sizeof(xfer)); + spi_message_init(&m); + xfer[0].tx_buf = tx_buf; + xfer[0].len = spi_dev->addr_bus_width + 1; + spi_message_add_tail(&xfer[0], &m); + + xfer[1].rx_buf = buf; + xfer[1].len = count; + spi_message_add_tail(&xfer[1], &m); + + ret = spi_sync(spi_dev->spi_device, &m); + if (ret) { + SPI_DEV_ERROR("transfer_read failed, reg addr:0x%x, len:%lu, ret:%d.\n", + regaddr, count, ret); + return -EIO; + } + return 0; +} + +static int transfer_write(struct spi_dev_info *spi_dev, u8 *buf, uint32_t regaddr, size_t count) +{ + int i, ret; + u8 tx_buf[TRANSFER_WRITE_BUFF]; + struct spi_message m; + struct spi_transfer xfer ; + + i = 0; + mem_clear(tx_buf, sizeof(tx_buf)); + tx_buf[i++] = OP_WRITE; + switch (spi_dev->addr_bus_width) { + case WIDTH_4Byte: + tx_buf[i++] = (regaddr >> 24) & 0xFF; + tx_buf[i++] = (regaddr >> 16) & 0xFF; + tx_buf[i++] = (regaddr >> 8) & 0xFF; + tx_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_2Byte: + tx_buf[i++] = (regaddr >> 8) & 0xFF; + tx_buf[i++] = regaddr & 0xFF; + break; + case WIDTH_1Byte: + tx_buf[i++] = regaddr & 0xFF; + break; + default: + SPI_DEV_ERROR("Only support 1,2,4 Byte Width, but set width = %u\n", + spi_dev->addr_bus_width); + return -EINVAL; + } + + memcpy(tx_buf + i, buf, count); + + mem_clear(&xfer, sizeof(xfer)); + spi_message_init(&m); + xfer.tx_buf = tx_buf; + xfer.len = count + i; + spi_message_add_tail(&xfer, &m); + + ret = spi_sync(spi_dev->spi_device, &m); + if (ret) { + SPI_DEV_ERROR("transfer_write failed, reg addr:0x%x, len:%lu, ret:%d.\n", + regaddr, count, ret); + return -EIO; + } + return 0; +} + +static long spi_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + return 0; +} + +static int spi_dev_open(struct inode *inode, struct file *file) +{ + unsigned int minor = iminor(inode); + struct spi_dev_info *spi_dev; + + if (minor >= MAX_SPI_DEV_NUM) { + SPI_DEV_ERROR("minor out of range, minor = %d.\n", minor); + return -ENODEV; + } + + spi_dev = spi_dev_arry[minor]; + if (spi_dev == NULL) { + SPI_DEV_ERROR("spi_dev is NULL, open failed, minor = %d\n", minor); + return -ENODEV; + } + + file->private_data = spi_dev; + + return 0; +} + +static int spi_dev_release(struct inode *inode, struct file *file) +{ + file->private_data = NULL; + + return 0; +} + +static int device_read(struct spi_dev_info *spi_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i, j, ret; + u8 val[MAX_RW_LEN]; + u32 data_width, rd_len, per_len, tmp; + u32 max_per_len; + + if (offset > spi_dev->spi_len) { + SPI_DEV_DEBUG("offset: 0x%x, spi len: 0x%x, count: %lu, EOF.\n", + offset, spi_dev->spi_len, count); + return 0; + } + + data_width = spi_dev->data_bus_width; + if (offset % data_width) { + SPI_DEV_ERROR("data bus width:%d, offset:0x%x, read size %lu invalid.\n", + data_width, offset, count); + return -EINVAL; + } + + if (count > (spi_dev->spi_len - offset)) { + SPI_DEV_DEBUG("read count out of range. input len:%lu, read len:%u.\n", + count, spi_dev->spi_len - offset); + count = spi_dev->spi_len - offset; + } + + if (count == 0) { + SPI_DEV_DEBUG("offset: 0x%x, spi len: 0x%x, read len: %lu, EOF.\n", + offset, spi_dev->spi_len, count); + return 0; + } + + max_per_len = spi_dev->per_rd_len; + tmp = (data_width - 1) & count; + rd_len = (tmp == 0) ? count : count + data_width - tmp; + per_len = (rd_len > max_per_len) ? (max_per_len) : (rd_len); + + mem_clear(val, sizeof(val)); + for (i = 0; i < rd_len; i += per_len) { + ret = transfer_read(spi_dev, val + i, offset + i, per_len); + if (ret < 0) { + SPI_DEV_ERROR("read error.read offset = %u\n", (offset + i)); + return -EFAULT; + } + } + + if (data_width == WIDTH_1Byte) { + memcpy(buf, val, count); + } else { + for (i = 0; i < count; i += data_width) { + for (j = 0; (j < data_width) && (i + j < count); j++) { + buf[i + j] = val[i + data_width - j - 1]; + } + } + } + + return count; +} + +static int device_write(struct spi_dev_info *spi_dev, uint32_t offset, uint8_t *buf, size_t count) +{ + int i, j, ret; + u32 data_width; + u8 val[MAX_RW_LEN]; + u32 wr_len, per_len, tmp; + u32 max_per_len; + + if (offset > spi_dev->spi_len) { + SPI_DEV_DEBUG("offset: 0x%x, spi len: 0x%x, count: %lu, EOF.\n", + offset, spi_dev->spi_len, count); + return 0; + } + + data_width = spi_dev->data_bus_width; + if (offset % data_width) { + SPI_DEV_ERROR("data bus width:%d, offset:0x%x, read size %lu invalid.\n", + data_width, offset, count); + return -EINVAL; + } + + if (count > (spi_dev->spi_len - offset)) { + SPI_DEV_DEBUG("read count out of range. input len:%lu, read len:%u.\n", + count, spi_dev->spi_len - offset); + count = spi_dev->spi_len - offset; + } + + if (count == 0) { + SPI_DEV_DEBUG("offset: 0x%x, i2c len: 0x%x, read len: %lu, EOF.\n", + offset, spi_dev->spi_len, count); + return 0; + } + + mem_clear(val, sizeof(val)); + + if (data_width == WIDTH_1Byte) { + memcpy(val, buf, count); + } else { + for (i = 0; i < count; i += data_width) { + for (j = 0; (j < data_width) && (i + j < count); j++) { + val[i + data_width - j - 1] = buf[i + j]; + } + } + } + + max_per_len = spi_dev->per_wr_len; + tmp = (data_width - 1) & count; + wr_len = (tmp == 0) ? count : count + data_width - tmp; + per_len = (wr_len > max_per_len) ? (max_per_len) : (wr_len); + + for (i = 0; i < wr_len; i += per_len) { + ret = transfer_write(spi_dev, val + i, offset + i, per_len); + if (ret < 0) { + SPI_DEV_ERROR("write error.offset = %u\n", (offset + i)); + return -EFAULT; + } + } + return count; +} + +static ssize_t spi_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + u8 val[MAX_RW_LEN]; + int ret, read_len; + struct spi_dev_info *spi_dev; + + spi_dev = file->private_data; + if (spi_dev == NULL) { + SPI_DEV_ERROR("can't get read private_data.\n"); + return -EINVAL; + } + + if (count == 0) { + SPI_DEV_ERROR("Invalid params, read count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(val)) { + SPI_DEV_DEBUG("read count %lu exceed max %lu.\n", count, sizeof(val)); + count = sizeof(val); + } + + mem_clear(val, sizeof(val)); + read_len = device_read(spi_dev, (uint32_t)*offset, val, count); + if (read_len < 0) { + SPI_DEV_ERROR("spi dev read failed, dev name:%s, offset:0x%x, len:%lu.\n", + spi_dev->name, (uint32_t)*offset, count); + return read_len; + } + + if (access_ok(buf, read_len)) { + SPI_DEV_DEBUG("user space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + if (copy_to_user(buf, val, read_len)) { + SPI_DEV_ERROR("copy_to_user failed.\n"); + return -EFAULT; + } + } else { + SPI_DEV_DEBUG("kernel space read, buf: %p, offset: %lld, read count %lu.\n", + buf, *offset, count); + memcpy(buf, val, read_len); + } + + *offset += read_len; + ret = read_len; + return ret; +} + +static ssize_t spi_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) +{ + int ret; + + SPI_DEV_DEBUG("spi_dev_read_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, to->count, iocb->ki_pos); + ret = spi_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + return ret; +} + +static ssize_t spi_dev_write(struct file *file, const char __user *buf, + size_t count, loff_t *offset) +{ + u8 val[MAX_RW_LEN]; + int write_len; + struct spi_dev_info *spi_dev; + + spi_dev = file->private_data; + if (spi_dev == NULL) { + SPI_DEV_ERROR("get write private_data error.\n"); + return -EINVAL; + } + + if (count == 0) { + SPI_DEV_ERROR("Invalid params, write count is 0.\n"); + return -EINVAL; + } + + if (count > sizeof(val)) { + SPI_DEV_DEBUG("write count %lu exceed max %lu.\n", count, sizeof(val)); + count = sizeof(val); + } + + mem_clear(val, sizeof(val)); + if (access_ok(buf, count)) { + SPI_DEV_DEBUG("user space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + if (copy_from_user(val, buf, count)) { + SPI_DEV_ERROR("copy_from_user failed.\n"); + return -EFAULT; + } + } else { + SPI_DEV_DEBUG("kernel space write, buf: %p, offset: %lld, write count %lu.\n", + buf, *offset, count); + memcpy(val, buf, count); + } + + write_len = device_write(spi_dev, (uint32_t)*offset, val, count); + if (write_len < 0) { + SPI_DEV_ERROR("spi dev write failed, dev name:%s, offset:0x%llx, len:%lu.\n", + spi_dev->name, *offset, count); + return write_len; + } + + *offset += write_len; + return write_len; +} + +static ssize_t spi_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) +{ + int ret; + + SPI_DEV_DEBUG("spi_dev_write_iter, file: %p, count: %lu, offset: %lld\n", + iocb->ki_filp, from->count, iocb->ki_pos); + ret = spi_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + return ret; +} + +static loff_t spi_dev_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t ret = 0; + struct spi_dev_info *spi_dev; + + spi_dev = file->private_data; + if (spi_dev == NULL) { + SPI_DEV_ERROR("spi_dev is NULL, llseek failed.\n"); + return -EINVAL; + } + + switch (origin) { + case SEEK_SET: + if (offset < 0) { + SPI_DEV_ERROR("SEEK_SET, offset:%lld, invalid.\n", offset); + ret = -EINVAL; + break; + } + if (offset > spi_dev->spi_len) { + SPI_DEV_ERROR("SEEK_SET out of range, offset:%lld, i2c_len:0x%x.\n", + offset, spi_dev->spi_len); + ret = - EINVAL; + break; + } + file->f_pos = offset; + ret = file->f_pos; + break; + case SEEK_CUR: + if (((file->f_pos + offset) > spi_dev->spi_len) || ((file->f_pos + offset) < 0)) { + SPI_DEV_ERROR("SEEK_CUR out of range, f_ops:%lld, offset:%lld.\n", + file->f_pos, offset); + } + file->f_pos += offset; + ret = file->f_pos; + break; + default: + SPI_DEV_ERROR("unsupport llseek type:%d.\n", origin); + ret = -EINVAL; + break; + } + return ret; +} + +static const struct file_operations spi_dev_fops = { + .owner = THIS_MODULE, + .llseek = spi_dev_llseek, + .read_iter = spi_dev_read_iter, + .write_iter = spi_dev_write_iter, + .unlocked_ioctl = spi_dev_ioctl, + .open = spi_dev_open, + .release = spi_dev_release, +}; + +static struct spi_dev_info * dev_match(const char *path) +{ + struct spi_dev_info * spi_dev; + char dev_name[MAX_NAME_SIZE]; + int i; + for (i = 0; i < MAX_SPI_DEV_NUM; i++) { + if (spi_dev_arry[ i ] == NULL) { + continue; + } + spi_dev = spi_dev_arry[ i ]; + snprintf(dev_name, MAX_NAME_SIZE,"/dev/%s", spi_dev->name); + if (!strcmp(path, dev_name)) { + SPI_DEV_DEBUG("get dev_name = %s, minor = %d\n", dev_name, i); + return spi_dev; + } + } + + return NULL; +} + +int spi_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + struct spi_dev_info *spi_dev = NULL; + int ret; + + if(path == NULL){ + SPI_DEV_ERROR("path NULL"); + return -EINVAL; + } + + if(buf == NULL){ + SPI_DEV_ERROR("buf NULL"); + return -EINVAL; + } + + if (count > MAX_RW_LEN) { + SPI_DEV_ERROR("read count %lu, beyond max:%d.\n", count, MAX_RW_LEN); + return -EINVAL; + } + + spi_dev = dev_match(path); + if (spi_dev == NULL) { + SPI_DEV_ERROR("spi_dev match failed. dev path = %s", path); + return -EINVAL; + } + + ret = device_read(spi_dev, offset, buf, count); + if (ret < 0) { + SPI_DEV_ERROR("spi dev read failed, dev name:%s, offset:0x%x, len:%lu.\n", + spi_dev->name, offset, count); + return -EINVAL; + } + + return count; +} +EXPORT_SYMBOL(spi_device_func_read); + +int spi_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count) +{ + struct spi_dev_info *spi_dev = NULL; + int ret; + + if(path == NULL){ + SPI_DEV_ERROR("path NULL"); + return -EINVAL; + } + + if(buf == NULL){ + SPI_DEV_ERROR("buf NULL"); + return -EINVAL; + } + + if (count > MAX_RW_LEN) { + SPI_DEV_ERROR("write count %lu, beyond max:%d.\n", count, MAX_RW_LEN); + return -EINVAL; + } + + spi_dev = dev_match(path); + if (spi_dev == NULL) { + SPI_DEV_ERROR("i2c_dev match failed. dev path = %s", path); + return -EINVAL; + } + + ret = device_write (spi_dev, offset, buf, count); + if (ret < 0) { + SPI_DEV_ERROR("i2c dev write failed, dev name:%s, offset:0x%x, len:%lu.\n", + spi_dev->name, offset, count); + return -EINVAL; + } + + return count; +} +EXPORT_SYMBOL(spi_device_func_write); + +static int spi_dev_probe(struct spi_device *spi) +{ + int ret; + struct spi_dev_info *spi_dev; + struct miscdevice *misc; + spi_dev_device_t *spi_dev_device; + + spi_dev = devm_kzalloc(&spi->dev, sizeof(struct spi_dev_info), GFP_KERNEL); + if (!spi_dev) { + dev_err(&spi->dev, "devm_kzalloc error. \n"); + return -ENOMEM; + } + + spi_set_drvdata(spi, spi_dev); + spi_dev->spi_device = spi; + + if (spi->dev.of_node) { + + ret = 0; + ret += of_property_read_string(spi->dev.of_node, "spi_dev_name", &spi_dev->name); + ret += of_property_read_u32(spi->dev.of_node, "data_bus_width", &spi_dev->data_bus_width); + ret += of_property_read_u32(spi->dev.of_node, "addr_bus_width", &spi_dev->addr_bus_width); + ret += of_property_read_u32(spi->dev.of_node, "per_rd_len", &spi_dev->per_rd_len); + ret += of_property_read_u32(spi->dev.of_node, "per_wr_len", &spi_dev->per_wr_len); + ret += of_property_read_u32(spi->dev.of_node, "spi_len", &spi_dev->spi_len); + if (ret != 0) { + dev_err(&spi->dev, "dts config error.ret:%d.\n", ret); + return -ENXIO; + } + } else { + if (spi->dev.platform_data == NULL) { + dev_err(&spi->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + spi_dev_device = spi->dev.platform_data; + spi_dev->name = spi_dev_device->spi_dev_name; + spi_dev->data_bus_width = spi_dev_device->data_bus_width; + spi_dev->addr_bus_width = spi_dev_device->addr_bus_width; + spi_dev->per_rd_len = spi_dev_device->per_rd_len; + spi_dev->per_wr_len = spi_dev_device->per_wr_len; + spi_dev->spi_len = spi_dev_device->spi_len; + } + + if ((spi_dev->per_rd_len & (spi_dev->data_bus_width - 1)) + || (spi_dev->per_wr_len & (spi_dev->data_bus_width - 1))) { + dev_err(&spi->dev, "Invalid config per_rd_len [%u] per_wr_len [%u] data bus_width [%u], addr bus width [%u].\n", + spi_dev->per_rd_len, spi_dev->per_wr_len, spi_dev->data_bus_width, spi_dev->addr_bus_width); + return -ENXIO; + } + + misc = &spi_dev->misc; + misc->minor = MISC_DYNAMIC_MINOR; + misc->name = spi_dev->name; + misc->fops = &spi_dev_fops; + misc->mode = 0666; + if (misc_register(misc) != 0) { + dev_err(&spi->dev, "register %s faild.\n", misc->name); + return -ENXIO; + } + + if (misc->minor >= MAX_SPI_DEV_NUM) { + dev_err(&spi->dev, "minor number beyond the limit! is %d.\n", misc->minor); + misc_deregister(misc); + return -ENXIO; + } + spi_dev_arry[misc->minor] = spi_dev; + + dev_info(&spi->dev, "register %u data_bus_width %u addr_bus_witdh 0x%x spi_len device %s with %u per_rd_len %u per_wr_len success.\n", + spi_dev->data_bus_width, spi_dev->addr_bus_width, spi_dev->spi_len, spi_dev->name, spi_dev->per_rd_len, spi_dev->per_wr_len); + + return 0; +} + +static int spi_dev_remove(struct spi_device *spi) +{ + int i; + + for (i = 0; i < MAX_SPI_DEV_NUM; i++) { + if (spi_dev_arry[i] != NULL) { + misc_deregister(&spi_dev_arry[i]->misc); + spi_dev_arry[i] = NULL; + } + } + return 0; +} + +static const struct of_device_id spi_dev_of_match[] = { + { .compatible = "wb-spi-dev" }, + { }, +}; + +MODULE_DEVICE_TABLE(of, spi_dev_of_match); + +static struct spi_driver spi_dev_driver = { + .driver = { + .name = "wb-spi-dev", + .of_match_table = of_match_ptr(spi_dev_of_match), + }, + .probe = spi_dev_probe, + .remove = spi_dev_remove, +}; + +module_spi_driver(spi_dev_driver); + +MODULE_DESCRIPTION("spi dev driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.h new file mode 100644 index 000000000000..fed5237e3860 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.h @@ -0,0 +1,17 @@ +#ifndef __WB_SPI_DEV_H__ +#define __WB_SPI_DEV_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#define SPI_DEV_NAME_MAX_LEN (64) + +typedef struct spi_dev_device_s { + char spi_dev_name[SPI_DEV_NAME_MAX_LEN]; + uint32_t data_bus_width; + uint32_t addr_bus_width; + uint32_t per_rd_len; + uint32_t per_wr_len; + uint32_t spi_len; +} spi_dev_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio.c new file mode 100644 index 000000000000..16408f067be1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio.c @@ -0,0 +1,477 @@ +/* + * SPI master driver using generic bitbanged GPIO + * + * Copyright (C) 2006,2008 David Brownell + * Copyright (C) 2017 Linus Walleij + * + * 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. + */ +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/* + * This bitbanging SPI master driver should help make systems usable + * when a native hardware SPI engine is not available, perhaps because + * its driver isn't yet working or because the I/O pins it requires + * are used for other purposes. + * + * platform_device->driver_data ... points to spi_gpio + * + * spi->controller_state ... reserved for bitbang framework code + * spi->controller_data ... holds chipselect GPIO + * + * spi->master->dev.driver_data ... points to spi_gpio->bitbang + */ + +struct spi_gpio { + struct spi_bitbang bitbang; + struct spi_gpio_platform_data pdata; + struct platform_device *pdev; + struct gpio_desc *sck; + struct gpio_desc *miso; + struct gpio_desc *mosi; + struct gpio_desc **cs_gpios; + bool has_cs; +}; + +/*----------------------------------------------------------------------*/ + +/* + * Because the overhead of going through four GPIO procedure calls + * per transferred bit can make performance a problem, this code + * is set up so that you can use it in either of two ways: + * + * - The slow generic way: set up platform_data to hold the GPIO + * numbers used for MISO/MOSI/SCK, and issue procedure calls for + * each of them. This driver can handle several such busses. + * + * - The quicker inlined way: only helps with platform GPIO code + * that inlines operations for constant GPIOs. This can give + * you tight (fast!) inner loops, but each such bus needs a + * new driver. You'll define a new C file, with Makefile and + * Kconfig support; the C code can be a total of six lines: + * + * #define DRIVER_NAME "myboard_spi2" + * #define SPI_MISO_GPIO 119 + * #define SPI_MOSI_GPIO 120 + * #define SPI_SCK_GPIO 121 + * #define SPI_N_CHIPSEL 4 + * #include "spi-gpio.c" + */ + +#ifndef DRIVER_NAME +#define DRIVER_NAME "wb_spi_gpio" + +#define GENERIC_BITBANG /* vs tight inlines */ + +#endif + +/*----------------------------------------------------------------------*/ + +static inline struct spi_gpio *__pure +spi_to_spi_gpio(const struct spi_device *spi) +{ + const struct spi_bitbang *bang; + struct spi_gpio *spi_gpio; + + bang = spi_master_get_devdata(spi->master); + spi_gpio = container_of(bang, struct spi_gpio, bitbang); + return spi_gpio; +} + +static inline struct spi_gpio_platform_data *__pure +spi_to_pdata(const struct spi_device *spi) +{ + return &spi_to_spi_gpio(spi)->pdata; +} + +/* These helpers are in turn called by the bitbang inlines */ +static inline void setsck(const struct spi_device *spi, int is_on) +{ + struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); + + gpiod_set_value_cansleep(spi_gpio->sck, is_on); +} + +static inline void setmosi(const struct spi_device *spi, int is_on) +{ + struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); + + gpiod_set_value_cansleep(spi_gpio->mosi, is_on); +} + +static inline int getmiso(const struct spi_device *spi) +{ + struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); + + if (spi->mode & SPI_3WIRE) + return !!gpiod_get_value_cansleep(spi_gpio->mosi); + else + return !!gpiod_get_value_cansleep(spi_gpio->miso); +} + +/* + * NOTE: this clocks "as fast as we can". It "should" be a function of the + * requested device clock. Software overhead means we usually have trouble + * reaching even one Mbit/sec (except when we can inline bitops), so for now + * we'll just assume we never need additional per-bit slowdowns. + */ +#define spidelay(nsecs) do {} while (0) + +#include "spi-bitbang-txrx.h" + +/* + * These functions can leverage inline expansion of GPIO calls to shrink + * costs for a txrx bit, often by factors of around ten (by instruction + * count). That is particularly visible for larger word sizes, but helps + * even with default 8-bit words. + * + * REVISIT overheads calling these functions for each word also have + * significant performance costs. Having txrx_bufs() calls that inline + * the txrx_word() logic would help performance, e.g. on larger blocks + * used with flash storage or MMC/SD. There should also be ways to make + * GCC be less stupid about reloading registers inside the I/O loops, + * even without inlined GPIO calls; __attribute__((hot)) on GCC 4.3? + */ + +static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); +} + +static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); +} + +static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); +} + +static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); +} + +/* + * These functions do not call setmosi or getmiso if respective flag + * (SPI_MASTER_NO_RX or SPI_MASTER_NO_TX) is set, so they are safe to + * call when such pin is not present or defined in the controller. + * A separate set of callbacks is defined to get highest possible + * speed in the generic case (when both MISO and MOSI lines are + * available), as optimiser will remove the checks when argument is + * constant. + */ + +static u32 spi_gpio_spec_txrx_word_mode0(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + flags = spi->master->flags; + return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); +} + +static u32 spi_gpio_spec_txrx_word_mode1(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + flags = spi->master->flags; + return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); +} + +static u32 spi_gpio_spec_txrx_word_mode2(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + flags = spi->master->flags; + return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); +} + +static u32 spi_gpio_spec_txrx_word_mode3(struct spi_device *spi, + unsigned nsecs, u32 word, u8 bits, unsigned flags) +{ + flags = spi->master->flags; + return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); +} + +/*----------------------------------------------------------------------*/ + +static void spi_gpio_chipselect(struct spi_device *spi, int is_active) +{ + struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); + + /* set initial clock line level */ + if (is_active) + gpiod_set_value_cansleep(spi_gpio->sck, spi->mode & SPI_CPOL); + + /* Drive chip select line, if we have one */ + if (spi_gpio->has_cs) { + struct gpio_desc *cs = spi_gpio->cs_gpios[spi->chip_select]; + + /* SPI chip selects are normally active-low */ + gpiod_set_value_cansleep(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); + } +} + +static int spi_gpio_setup(struct spi_device *spi) +{ + struct gpio_desc *cs; + int status = 0; + struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); + + /* + * The CS GPIOs have already been + * initialized from the descriptor lookup. + */ + cs = spi_gpio->cs_gpios[spi->chip_select]; + if (!spi->controller_state && cs) + status = gpiod_direction_output(cs, + !(spi->mode & SPI_CS_HIGH)); + + if (!status) + status = spi_bitbang_setup(spi); + + return status; +} + +static int spi_gpio_set_direction(struct spi_device *spi, bool output) +{ + struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); + + if (output) + return gpiod_direction_output(spi_gpio->mosi, 1); + else + return gpiod_direction_input(spi_gpio->mosi); +} + +static void spi_gpio_cleanup(struct spi_device *spi) +{ + spi_bitbang_cleanup(spi); +} + +/* + * It can be convenient to use this driver with pins that have alternate + * functions associated with a "native" SPI controller if a driver for that + * controller is not available, or is missing important functionality. + * + * On platforms which can do so, configure MISO with a weak pullup unless + * there's an external pullup on that signal. That saves power by avoiding + * floating signals. (A weak pulldown would save power too, but many + * drivers expect to see all-ones data as the no slave "response".) + */ +static int spi_gpio_request(struct device *dev, + struct spi_gpio *spi_gpio, + unsigned int num_chipselects, + u16 *mflags) +{ + int i; + + spi_gpio->mosi = devm_gpiod_get_optional(dev, "mosi", GPIOD_OUT_LOW); + if (IS_ERR(spi_gpio->mosi)) + return PTR_ERR(spi_gpio->mosi); + if (!spi_gpio->mosi) + /* HW configuration without MOSI pin */ + *mflags |= SPI_MASTER_NO_TX; + + spi_gpio->miso = devm_gpiod_get_optional(dev, "miso", GPIOD_IN); + if (IS_ERR(spi_gpio->miso)) + return PTR_ERR(spi_gpio->miso); + /* + * No setting SPI_MASTER_NO_RX here - if there is only a MOSI + * pin connected the host can still do RX by changing the + * direction of the line. + */ + + spi_gpio->sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW); + if (IS_ERR(spi_gpio->sck)) + return PTR_ERR(spi_gpio->sck); + + for (i = 0; i < num_chipselects; i++) { + spi_gpio->cs_gpios[i] = devm_gpiod_get_index(dev, "cs", + i, GPIOD_OUT_HIGH); + if (IS_ERR(spi_gpio->cs_gpios[i])) + return PTR_ERR(spi_gpio->cs_gpios[i]); + } + + return 0; +} + +#ifdef CONFIG_OF +static const struct of_device_id spi_gpio_dt_ids[] = { + { .compatible = "wb-spi-gpio" }, + {} +}; +MODULE_DEVICE_TABLE(of, spi_gpio_dt_ids); + +static int spi_gpio_probe_dt(struct platform_device *pdev) +{ + int ret; + u32 tmp; + struct spi_gpio_platform_data *pdata; + struct device_node *np = pdev->dev.of_node; + const struct of_device_id *of_id = + of_match_device(spi_gpio_dt_ids, &pdev->dev); + + if (!of_id) + return 0; + + pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return -ENOMEM; + + ret = of_property_read_u32(np, "num-chipselects", &tmp); + if (ret < 0) { + dev_err(&pdev->dev, "num-chipselects property not found\n"); + goto error_free; + } + + pdata->num_chipselect = tmp; + pdev->dev.platform_data = pdata; + + return 1; + +error_free: + devm_kfree(&pdev->dev, pdata); + return ret; +} +#else +static inline int spi_gpio_probe_dt(struct platform_device *pdev) +{ + return 0; +} +#endif + +static int spi_gpio_probe(struct platform_device *pdev) +{ + int status; + struct spi_master *master; + struct spi_gpio *spi_gpio; + struct spi_gpio_platform_data *pdata; + u16 master_flags = 0; + bool use_of = 0; + + status = spi_gpio_probe_dt(pdev); + if (status < 0) + return status; + if (status > 0) + use_of = 1; + + pdata = dev_get_platdata(&pdev->dev); +#ifdef GENERIC_BITBANG + if (!pdata || (!use_of && !pdata->num_chipselect)) + return -ENODEV; +#endif + + master = spi_alloc_master(&pdev->dev, sizeof(*spi_gpio)); + if (!master) + return -ENOMEM; + + spi_gpio = spi_master_get_devdata(master); + + spi_gpio->cs_gpios = devm_kcalloc(&pdev->dev, + pdata->num_chipselect, + sizeof(*spi_gpio->cs_gpios), + GFP_KERNEL); + if (!spi_gpio->cs_gpios) + return -ENOMEM; + + platform_set_drvdata(pdev, spi_gpio); + + /* Determine if we have chip selects connected */ + spi_gpio->has_cs = !!pdata->num_chipselect; + + spi_gpio->pdev = pdev; + if (pdata) + spi_gpio->pdata = *pdata; + + status = spi_gpio_request(&pdev->dev, spi_gpio, + pdata->num_chipselect, &master_flags); + if (status) + return status; + + master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); + master->mode_bits = SPI_3WIRE | SPI_CPHA | SPI_CPOL | SPI_CS_HIGH; + master->flags = master_flags; + master->bus_num = pdev->id; + /* The master needs to think there is a chipselect even if not connected */ + master->num_chipselect = spi_gpio->has_cs ? pdata->num_chipselect : 1; + master->setup = spi_gpio_setup; + master->cleanup = spi_gpio_cleanup; + + if (pdev->dev.of_node) { + master->dev.of_node = pdev->dev.of_node; + } + + spi_gpio->bitbang.master = master; + spi_gpio->bitbang.chipselect = spi_gpio_chipselect; + spi_gpio->bitbang.set_line_direction = spi_gpio_set_direction; + + if ((master_flags & SPI_MASTER_NO_TX) == 0) { + spi_gpio->bitbang.txrx_word[SPI_MODE_0] = spi_gpio_txrx_word_mode0; + spi_gpio->bitbang.txrx_word[SPI_MODE_1] = spi_gpio_txrx_word_mode1; + spi_gpio->bitbang.txrx_word[SPI_MODE_2] = spi_gpio_txrx_word_mode2; + spi_gpio->bitbang.txrx_word[SPI_MODE_3] = spi_gpio_txrx_word_mode3; + } else { + spi_gpio->bitbang.txrx_word[SPI_MODE_0] = spi_gpio_spec_txrx_word_mode0; + spi_gpio->bitbang.txrx_word[SPI_MODE_1] = spi_gpio_spec_txrx_word_mode1; + spi_gpio->bitbang.txrx_word[SPI_MODE_2] = spi_gpio_spec_txrx_word_mode2; + spi_gpio->bitbang.txrx_word[SPI_MODE_3] = spi_gpio_spec_txrx_word_mode3; + } + spi_gpio->bitbang.setup_transfer = spi_bitbang_setup_transfer; + + status = spi_bitbang_start(&spi_gpio->bitbang); + if (status) + spi_master_put(master); + + return status; +} + +static int spi_gpio_remove(struct platform_device *pdev) +{ + struct spi_gpio *spi_gpio; + struct spi_gpio_platform_data *pdata; + + spi_gpio = platform_get_drvdata(pdev); + pdata = dev_get_platdata(&pdev->dev); + + /* stop() unregisters child devices too */ + spi_bitbang_stop(&spi_gpio->bitbang); + + spi_master_put(spi_gpio->bitbang.master); + + return 0; +} + +MODULE_ALIAS("platform:" DRIVER_NAME); + +static struct platform_driver spi_gpio_driver = { + .driver = { + .name = DRIVER_NAME, + .of_match_table = of_match_ptr(spi_gpio_dt_ids), + }, + .probe = spi_gpio_probe, + .remove = spi_gpio_remove, +}; +module_platform_driver(spi_gpio_driver); + +MODULE_DESCRIPTION("SPI master driver using generic bitbanged GPIO "); +MODULE_AUTHOR("support"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c new file mode 100644 index 000000000000..e70c97b1af9d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c @@ -0,0 +1,153 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +#define DEFAULT_GPIO_SCK (67) +#define DEFAULT_GPIO_MISO (32) +#define DEFAULT_GPIO_MOSI (65) +#define DEFAULT_GPIO_CS (6) +#define DEFAULT_SPI_BUS (0) + +static int sck = DEFAULT_GPIO_SCK; +module_param(sck, int, S_IRUGO | S_IWUSR); + +static int miso = DEFAULT_GPIO_MISO; +module_param(miso, int, S_IRUGO | S_IWUSR); + +static int mosi = DEFAULT_GPIO_MOSI; +module_param(mosi, int, S_IRUGO | S_IWUSR); + +static int cs = DEFAULT_GPIO_CS; +module_param(cs, int, S_IRUGO | S_IWUSR); + +static int bus = DEFAULT_SPI_BUS; +module_param(bus, int, S_IRUGO | S_IWUSR); + +static int g_wb_spi_gpio_device_debug = 0; +static int g_wb_spi_gpio_device_error = 0; + +module_param(g_wb_spi_gpio_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_spi_gpio_device_error, int, S_IRUGO | S_IWUSR); + +static char gpiod_lookup_table_devid[64]; + +#define WB_SPI_GPIO_DEVICE_VERBOSE(fmt, args...) do { \ + if (g_wb_spi_gpio_device_debug) { \ + printk(KERN_INFO "[WB_SPI_GPIO_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_SPI_GPIO_DEVICE_ERROR(fmt, args...) do { \ + if (g_wb_spi_gpio_device_error) { \ + printk(KERN_ERR "[WB_SPI_GPIO_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static struct gpiod_lookup_table wb_spi_gpio_table = { + .table = { + GPIO_LOOKUP("wb_gpio_d1500", DEFAULT_GPIO_SCK, + "sck", GPIO_ACTIVE_HIGH), + GPIO_LOOKUP("wb_gpio_d1500", DEFAULT_GPIO_MOSI, + "mosi", GPIO_ACTIVE_HIGH), + GPIO_LOOKUP("wb_gpio_d1500", DEFAULT_GPIO_MISO, + "miso", GPIO_ACTIVE_HIGH), + GPIO_LOOKUP("wb_gpio_d1500", DEFAULT_GPIO_CS, + "cs", GPIO_ACTIVE_HIGH), + { }, + }, +}; + +static struct spi_gpio_platform_data spi_pdata = { + .num_chipselect = 1, +}; + +static void spi_gpio_release(struct device *dev) +{ + return; +} + +static struct platform_device wb_spi_gpio_device = { + .name = "wb_spi_gpio", + .num_resources = 0, + .id = -1, + + .dev = { + .platform_data = &spi_pdata, + .release = spi_gpio_release, + } +}; + +static void wb_spi_gpio_table_devid_name_set(void) { + int size; + + size = sizeof(gpiod_lookup_table_devid); + wb_spi_gpio_device.id = bus; + + mem_clear(gpiod_lookup_table_devid, size); + switch (bus) { + case PLATFORM_DEVID_NONE: + snprintf(gpiod_lookup_table_devid, size, "%s", wb_spi_gpio_device.name); + break; + case PLATFORM_DEVID_AUTO: + snprintf(gpiod_lookup_table_devid, size, "%s.%d.auto", wb_spi_gpio_device.name, bus); + break; + default: + snprintf(gpiod_lookup_table_devid, size, "%s.%d", wb_spi_gpio_device.name, bus); + break; + } + + wb_spi_gpio_table.dev_id = gpiod_lookup_table_devid; + return ; +} +static int __init wb_spi_gpio_device_init(void) +{ + int err; + struct gpiod_lookup *p; + + WB_SPI_GPIO_DEVICE_VERBOSE("enter!\n"); + wb_spi_gpio_table.table[0].chip_hwnum = sck; + wb_spi_gpio_table.table[1].chip_hwnum = mosi; + wb_spi_gpio_table.table[2].chip_hwnum = miso; + wb_spi_gpio_table.table[3].chip_hwnum = cs; + wb_spi_gpio_table_devid_name_set(); + WB_SPI_GPIO_DEVICE_VERBOSE("spi gpi device table bus[%d] dev id[%s]\n", bus, wb_spi_gpio_table.dev_id); + for (p = &wb_spi_gpio_table.table[0]; p->key; p++) { + WB_SPI_GPIO_DEVICE_VERBOSE("con_id:%s gpio:%d\n", p->con_id, p->chip_hwnum); + } + + gpiod_add_lookup_table(&wb_spi_gpio_table); + err = platform_device_register(&wb_spi_gpio_device); + if (err < 0) { + printk(KERN_ERR "register spi gpio device fail(%d). \n", err); + gpiod_remove_lookup_table(&wb_spi_gpio_table); + return -1; + } + + return 0; +} + +static void __exit wb_spi_gpio_device_exit(void) +{ + WB_SPI_GPIO_DEVICE_VERBOSE("enter!\n"); + platform_device_unregister(&wb_spi_gpio_device); + gpiod_remove_lookup_table(&wb_spi_gpio_table); +} + +module_init(wb_spi_gpio_device_init); +module_exit(wb_spi_gpio_device_exit); +MODULE_DESCRIPTION("SPI GPIO Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_nor_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_nor_device.c new file mode 100644 index 000000000000..4196601f717b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_nor_device.c @@ -0,0 +1,87 @@ +#include +#include +#include +#include +#include +#include + +/* The SPI Bus number that the device is mounted on can be specified manually when this module is loaded */ +#define DEFAULT_SPI_BUS_NUM (0) +#define DEFAULT_SPI_CS_NUM (0) +#define DEFAULT_SPI_HZ (100000) + +int g_wb_spi_nor_dev_debug = 0; +int g_wb_spi_nor_dev_error = 0; +int spi_bus_num = DEFAULT_SPI_BUS_NUM; + +module_param(g_wb_spi_nor_dev_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_spi_nor_dev_error, int, S_IRUGO | S_IWUSR); +module_param(spi_bus_num, int, S_IRUGO | S_IWUSR); + +#define SPI_NOR_DEV_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_spi_nor_dev_debug) { \ + printk(KERN_INFO "[SPI_NOR_DEV][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define SPI_NOR_DEV_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_spi_nor_dev_error) { \ + printk(KERN_ERR "[SPI_NOR_DEV][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct spi_board_info spi_nor_device_info __initdata= { + .modalias = "mx25l6405d", + .bus_num = DEFAULT_SPI_BUS_NUM, + .chip_select = DEFAULT_SPI_CS_NUM, + .max_speed_hz = 10 * 1000 * 1000, +}; + +static struct spi_device *g_spi_device; + +static int __init wb_spi_nor_dev_init(void) +{ + struct spi_master *master; + + SPI_NOR_DEV_DEBUG_VERBOSE("Enter.\n"); + + spi_nor_device_info.bus_num = spi_bus_num; + master = spi_busnum_to_master(spi_nor_device_info.bus_num); /* Get the controller according to the SPI Bus number */ + if (!master) { + SPI_NOR_DEV_DEBUG_ERROR("get bus_num %u spi master failed.\n", + spi_nor_device_info.bus_num); + return -EINVAL; + } + + g_spi_device = spi_new_device(master, &spi_nor_device_info); + put_device(&master->dev); + if (!g_spi_device) { + SPI_NOR_DEV_DEBUG_ERROR("register spi new device failed.\n"); + return -EPERM; + } + + if (g_wb_spi_nor_dev_debug) { + dev_info(&g_spi_device->dev, "register %u bus_num spi nor device success\n", + spi_nor_device_info.bus_num); + } + + return 0; +} + +static void __exit wb_spi_nor_dev_exit(void) +{ + spi_unregister_device(g_spi_device); + + if (g_wb_spi_nor_dev_debug) { + dev_info(&g_spi_device->dev, "unregister spi nor device success\n"); + } + + return; +} + +module_init(wb_spi_nor_dev_init); +module_exit(wb_spi_nor_dev_exit); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("create spi nor device"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c new file mode 100644 index 000000000000..a709427c5b73 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c @@ -0,0 +1,1025 @@ +/* + * wb_spi_ocores.c + * ko to create ocores spi adapter + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_spi_ocores.h" + +#define SPIOC_WAIT_SCH (5) +#define SPIOC_CONF (0x00) +#define SPIOC_LSBF BIT(0) /* 0:MSB 1:LSB */ +#define SPIOC_IDLE_LOW BIT(1) +#define SPIOC_INTREN BIT(2) /* 0:enable 1:disabel */ +#define SPIOC_DIV_MASK (0xf0) +#define SPIOC_MAX_DIV (0x0E) +#define SPIOC_DIV(div) (((div) & 0x0f) << 4) + +#define SPIOC_STS (0x01) +#define SPIOC_INTR_STS BIT(0) +#define SPIOC_BUSY_STS BIT(1) +#define SPIOC_RXNUM_SHIFT (4) +#define SPIOC_RXNUM_MASK (0xf << SPIOC_RXNUM_SHIFT) +/* Just for read */ +#define SPIOC_RXNUM(reg) (((reg) & SPIOC_RXNUM_MASK) >> SPIOC_RXNUM_SHIFT ) + +#define SPIOC_TXTOT_NUM (0x02) +#define SPIOC_TXNUM(reg) ((reg) & 0x0f) +#define SPIOC_TOTNUM(reg) (((reg) & 0x0f) << 4) + +#define SPIOC_TXCTL (0x03) +#define SPIOC_CSLV BIT(0) /* 0:Deassert SPICS 1:Laeve SPICS */ +#define SPIOC_TRSTART BIT(1) +#define SPIOC_CSID_SHIFT (5) +#define SPIOC_CSID_MASK (0x7 << SPIOC_CSID_SHIFT) +/* Just for write */ +#define SPIOC_CSID(id) (((id) << SPIOC_CSID_SHIFT) & SPIOC_CSID_MASK) + +/* Just single byte */ +#define SPIOC_RX(i) ((0x4) + i) +#define SPIOC_TX(i) ((0x4) + i) + +#define SPIOC_MAX_LEN ((unsigned int)8) +#define SPIOC_TXRX_MAX_LEN ((unsigned int)7) + +#define MODEBITS (SPI_CPHA |SPI_CPOL | SPI_LSB_FIRST |SPI_CS_HIGH) + +#define REG_IO_WIDTH_1 (1) +#define REG_IO_WIDTH_2 (2) +#define REG_IO_WIDTH_4 (4) + +#define SYMBOL_I2C_DEV_MODE (1) +#define FILE_MODE (2) +#define SYMBOL_PCIE_DEV_MODE (3) +#define SYMBOL_IO_DEV_MODE (4) + +int g_spi_oc_debug = 0; +int g_spi_oc_error = 0; + +module_param(g_spi_oc_debug, int, S_IRUGO | S_IWUSR); +module_param(g_spi_oc_error, int, S_IRUGO | S_IWUSR); + +#define SPI_OC_VERBOSE(fmt, args...) do { \ + if (g_spi_oc_debug) { \ + printk(KERN_INFO "[OC_SPI_BUS][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define SPI_OC_ERROR(fmt, args...) do { \ + if (g_spi_oc_error) { \ + printk(KERN_ERR "[OC_SPI_BUS][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct spioc { + /* bitbang has to be first */ + struct spi_bitbang bitbang; + int irq; + struct completion done; + unsigned int reamin_len; + unsigned int cur_pos; + unsigned int cur_len; + const u8 *txp; + u8 *rxp; + u8 chip_select; + void (*setreg)(struct spioc *spioc, int reg, u32 value); + u32 (*getreg)(struct spioc *spioc, int reg); + uint32_t bus_num; + const char *dev_name; + uint32_t reg_access_mode; + uint32_t base_addr; + uint32_t reg_shift; + uint32_t reg_io_width; + uint32_t num_chipselect; + uint32_t freq; + uint32_t big_endian; + struct device *dev; + int transfer_busy_flag; +}; + +extern int i2c_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int i2c_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); + +static int oc_spi_file_read(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + SPI_OC_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_read(filp, val, size, &tmp_pos); + if (ret < 0) { + SPI_OC_ERROR("kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int oc_spi_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + SPI_OC_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + SPI_OC_ERROR("kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int oc_spi_reg_write(struct spioc *spioc, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + + switch (spioc->reg_access_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_write(spioc->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = oc_spi_file_write(spioc->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_write(spioc->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_write(spioc->dev_name, pos, val, size); + break; + default: + SPI_OC_ERROR("err func_mode, write failed.\n"); + return -EINVAL; + } + + return ret; +} + +static int oc_spi_reg_read(struct spioc *spioc, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + + switch (spioc->reg_access_mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_read(spioc->dev_name, pos, val, size); + break; + case FILE_MODE: + ret = oc_spi_file_read(spioc->dev_name, pos, val, size); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_read(spioc->dev_name, pos, val, size); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_read(spioc->dev_name, pos, val, size); + break; + default: + SPI_OC_ERROR("err func_mode, read failed.\n"); + return -EINVAL; + } + + return ret; +} + +static void oc_spi_setreg_8(struct spioc *spioc, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_1]; + u32 pos; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + + buf_tmp[0] = (value & 0Xff); + oc_spi_reg_write(spioc, pos, buf_tmp, REG_IO_WIDTH_1); + return; +} + +static void oc_spi_setreg_16(struct spioc *spioc, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 pos; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + + buf_tmp[0] = (value & 0Xff); + buf_tmp[1] = (value >> 8) & 0xff; + oc_spi_reg_write(spioc, pos, buf_tmp, REG_IO_WIDTH_2); + return; +} + +static void oc_spi_setreg_32(struct spioc *spioc, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 pos; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + + buf_tmp[0] = (value & 0xff); + buf_tmp[1] = (value >> 8) & 0xff; + buf_tmp[2] = (value >> 16) & 0xff; + buf_tmp[3] = (value >> 24) & 0xff; + + oc_spi_reg_write(spioc, pos, buf_tmp, REG_IO_WIDTH_4); + return; +} + +static void oc_spi_setreg_16be(struct spioc *spioc, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 pos; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + + buf_tmp[0] = (value >> 8) & 0xff; + buf_tmp[1] = (value & 0Xff); + oc_spi_reg_write(spioc, pos, buf_tmp, REG_IO_WIDTH_2); + return; +} + +static void oc_spi_setreg_32be(struct spioc *spioc, int reg, u32 value) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 pos; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + + buf_tmp[0] = (value >> 24) & 0xff; + buf_tmp[1] = (value >> 16) & 0xff; + buf_tmp[2] = (value >> 8) & 0xff; + buf_tmp[3] = (value & 0xff); + oc_spi_reg_write(spioc, pos, buf_tmp, REG_IO_WIDTH_4); + return; +} + +static inline u32 oc_spi_getreg_8(struct spioc *spioc, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_1]; + u32 value, pos; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + oc_spi_reg_read(spioc, pos, buf_tmp, REG_IO_WIDTH_1); + value = buf_tmp[0]; + + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + + return value; +} + +static inline u32 oc_spi_getreg_16(struct spioc *spioc, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 value, pos; + int i; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + mem_clear(buf_tmp, sizeof(buf_tmp)); + oc_spi_reg_read(spioc, pos, buf_tmp, REG_IO_WIDTH_2); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_2 ; i++) { + value |= buf_tmp[i] << (8 * i); + } + + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + return value; +} + +static inline u32 oc_spi_getreg_32(struct spioc *spioc, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 value, pos; + int i; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + mem_clear(buf_tmp, sizeof(buf_tmp)); + oc_spi_reg_read(spioc, pos, buf_tmp, REG_IO_WIDTH_4); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_4 ; i++) { + value |= buf_tmp[i] << (8 * i); + } + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + return value; +} + +static inline u32 oc_spi_getreg_16be(struct spioc *spioc, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_2]; + u32 value, pos; + int i; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + + mem_clear(buf_tmp, sizeof(buf_tmp)); + oc_spi_reg_read(spioc, pos, buf_tmp, REG_IO_WIDTH_2); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_2 ; i++) { + value |= buf_tmp[i] << (8 * (REG_IO_WIDTH_2 -i - 1)); + } + + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + return value; +} + +static inline u32 oc_spi_getreg_32be(struct spioc *spioc, int reg) +{ + u8 buf_tmp[REG_IO_WIDTH_4]; + u32 value, pos; + int i; + + pos = spioc->base_addr + (reg << spioc->reg_shift); + + mem_clear(buf_tmp, sizeof(buf_tmp)); + oc_spi_reg_read(spioc, pos, buf_tmp, REG_IO_WIDTH_4); + + value = 0; + for (i = 0; i < REG_IO_WIDTH_4 ; i++) { + value |= buf_tmp[i] << (8 * (REG_IO_WIDTH_4 -i - 1)); + } + + SPI_OC_VERBOSE("path:%s, access mode:%d, pos:0x%x, value0x%x.\n", + spioc->dev_name, spioc->reg_access_mode, pos, value); + return value; + +} + +static inline void oc_spi_setreg(struct spioc *spioc, int reg, u32 value) +{ + spioc->setreg(spioc, reg, value); + return; +} + +static inline u32 oc_spi_getreg(struct spioc *spioc, int reg) +{ + return spioc->getreg(spioc, reg); +} + +static int spioc_get_clkdiv(struct spioc *spioc, u32 speed) +{ + u32 rate, div; + + rate = spioc->freq; + SPI_OC_VERBOSE("clk get rate:%u, speed:%u\n", rate, speed); + /* fs = fw/((DIV+2)*2) */ + + if (speed > (rate / 4)) { + div = 0; + SPI_OC_VERBOSE("spi device speed[%u] more than a quarter of clk rate[%u].\n", + speed, rate); + return div; + } + div = (rate/(2 * speed)) - 2; + if (div > SPIOC_MAX_DIV) { + SPI_OC_ERROR("Unsupport spi device speed, div:%u.\n", div); + return -1; + } + SPI_OC_VERBOSE("DIV is:0x%x\n", div); + return div; +} + +static inline int spioc_wait_trans(struct spioc *spioc, const unsigned long timeout) +{ + unsigned long j; + unsigned int sch_time; + u8 reg; + + j = jiffies + timeout; + sch_time = SPIOC_WAIT_SCH; + while (1) { + reg = oc_spi_getreg(spioc, SPIOC_STS); + if (!(reg & SPIOC_BUSY_STS)) { + SPI_OC_VERBOSE("wait ok!\n"); + break; + } + + if (time_after(jiffies, j)) { + return -ETIMEDOUT; + } + + usleep_range(sch_time, sch_time + 1); + } + + return 0; +} + +static void spioc_chipselect(struct spi_device *spi, int is_active) +{ + struct spioc *spioc; + u8 tx_conf; + int ret; + + spioc = spi_master_get_devdata(spi->master); + spioc->transfer_busy_flag = 0; + ret = spioc_wait_trans(spioc, msecs_to_jiffies(100)); + if (ret < 0) { + SPI_OC_ERROR("spi transfer is busy, ret=%d.\n", ret); + spioc->transfer_busy_flag = 1; + return; + } + spioc->chip_select = spi->chip_select; + SPI_OC_VERBOSE("spioc_chipselect:%u, value:%d.\n", spioc->chip_select, is_active); + tx_conf = 0; + tx_conf |= SPIOC_CSID(spioc->chip_select); + if (is_active) { + tx_conf |= SPIOC_CSLV; + } + + SPI_OC_VERBOSE("tx_config:[0x%x]\n", tx_conf); + oc_spi_setreg(spioc, SPIOC_TXCTL, tx_conf); + return; +} + +static void spioc_copy_tx(struct spioc *spioc) +{ + const u8 *src; + int i; + + if (!spioc->txp) { + SPI_OC_ERROR("spioc->txp is NULL.\n"); + return; + } + + src = (u8 *)spioc->txp + spioc->cur_pos; + SPI_OC_VERBOSE("current tx len:0x%x, tx pos:[0x%x]\n", spioc->cur_len, spioc->cur_pos); + + for (i = 0; i < spioc->cur_len; i++) { + SPI_OC_VERBOSE("write %d, val:[0x%x]\n", i, src[i]); + oc_spi_setreg(spioc, SPIOC_TX(i), src[i]); + } +} + +static void spioc_copy_rx(struct spioc *spioc) +{ + u8 *dest; + int i; + + if (!spioc->rxp) { + SPI_OC_ERROR("spioc->rxp is NULL.\n"); + return; + } + + dest = (u8 *)spioc->rxp + spioc->cur_pos; + SPI_OC_VERBOSE("current rx len:0x%x, rx pos:[0x%x]\n", spioc->cur_len, spioc->cur_pos); + + for (i = 0; i < spioc->cur_len; i++) { + dest[i] = oc_spi_getreg(spioc, SPIOC_RX(i)); + SPI_OC_VERBOSE("read %d, val:[0x%x]\n", i, dest[i]); + } +} + +static int spioc_setup_transfer(struct spi_device *spi, struct spi_transfer *transfer) +{ + struct spioc *spioc; + u8 ctrl; + u32 hz; + int div; + + spioc = spi_master_get_devdata(spi->master); + ctrl = 0; + + if (spi->mode & SPI_LSB_FIRST) { + ctrl |= SPIOC_LSBF; + } + + if (!(spi->mode & SPI_CPOL)) { + ctrl |= SPIOC_IDLE_LOW; + } + + if (spioc->irq < 0) { + + ctrl |= SPIOC_INTREN; + } + + if (transfer != NULL) { + hz = transfer->speed_hz; + + if (hz == 0) { + hz = spi->max_speed_hz; + } + } else { + hz = spi->max_speed_hz; + } + + if (hz == 0) { + SPI_OC_ERROR("Unsupport zero speed.\n"); + return -EINVAL; + } + + div = spioc_get_clkdiv(spioc, hz); + if (div < 0) { + SPI_OC_ERROR("get div error, div:%d.\n", div); + return -EINVAL; + } + ctrl |= SPIOC_DIV(div); + + SPI_OC_VERBOSE("ctrl:[0x%x].\n", ctrl); + + oc_spi_setreg(spioc, SPIOC_CONF, ctrl); + return 0; +} + +static int spioc_spi_setup(struct spi_device *spi) +{ + struct spioc *spioc; + + if (!(spi->mode & SPI_CPHA)) { + SPI_OC_ERROR("Unsupport spi device mde:0x%x, SPI_CPHA must be 1.\n", spi->mode); + return -EINVAL; + } + + spioc = spi_master_get_devdata(spi->master); + if (spi->chip_select >= spioc->num_chipselect) { + SPI_OC_ERROR("Spi device chipselect:%u, more than max chipselect:%u.\n", + spi->chip_select, spioc->num_chipselect); + return -EINVAL; + } + SPI_OC_VERBOSE("Support spi device mode:0x%x, chip_select:%u.\n", + spi->mode, spi->chip_select); + return 0; +} + +static int spioc_transfer_start(struct spioc *spioc) +{ + u8 tx_conf; + int ret; + + tx_conf = oc_spi_getreg(spioc, SPIOC_TXCTL); + tx_conf |= SPIOC_TRSTART; + + SPI_OC_VERBOSE("tx_config:[0x%x]\n", tx_conf); + oc_spi_setreg(spioc, SPIOC_TXCTL, tx_conf); + + ret = spioc_wait_trans(spioc, msecs_to_jiffies(100)); + return ret; +} + +static int spioc_tx_start_one(struct spioc *spioc) +{ + unsigned int txlen; + u8 txreg; + int ret; + + if (!spioc->reamin_len) { + SPI_OC_VERBOSE("spioc txlen:[0x0]\n"); + return 0; + } + + spioc->cur_len = spioc->reamin_len > SPIOC_MAX_LEN ? SPIOC_MAX_LEN : spioc->reamin_len; + + txlen = spioc->cur_len; + spioc->reamin_len -= txlen; + SPI_OC_VERBOSE("txlen:[0x%x], tx len remain:[0x%x]\n", txlen, spioc->reamin_len); + + spioc_copy_tx(spioc); + + /* when we only send, txlen == totlen */ + txreg = SPIOC_TXNUM(txlen) | SPIOC_TOTNUM(txlen); + SPI_OC_VERBOSE("txreg:[0x%x]\n", txreg); + oc_spi_setreg(spioc, SPIOC_TXTOT_NUM, txreg); + + ret = spioc_transfer_start(spioc); + if (ret) { + SPI_OC_ERROR("spioc tx rx poll wait for transfer timeout.\n"); + return ret; + } + + if (spioc->reamin_len) { + spioc->cur_pos += txlen; + SPI_OC_VERBOSE("cur_txpos:[0x%x]\n", spioc->cur_pos); + } + + return 0; +} + +static int spioc_rx_start_one(struct spioc *spioc) +{ + unsigned int rxlen; + u8 txtnum; + int ret; + + if (!spioc->reamin_len) { + SPI_OC_VERBOSE("spioc reamin_len:[0x0]\n"); + return 0; + } + + spioc->cur_len = spioc->reamin_len > SPIOC_MAX_LEN ? SPIOC_MAX_LEN : spioc->reamin_len; + + rxlen = spioc->cur_len; + spioc->reamin_len -= rxlen; + SPI_OC_VERBOSE("rxlen:[0x%x], rx len remain:[0x%x]\n", rxlen, spioc->reamin_len); + + /* when we only receive, rxnum=totnum. txnum=0 */ + txtnum = SPIOC_TOTNUM(rxlen); + SPI_OC_VERBOSE("tx total reg:0x%x\n", txtnum); + oc_spi_setreg(spioc, SPIOC_TXTOT_NUM, txtnum); + + ret = spioc_transfer_start(spioc); + if (ret) { + SPI_OC_ERROR("spioc tx rx poll wait for transfer timeout.\n"); + return ret; + } + + spioc_copy_rx(spioc); + + if (spioc->reamin_len) { + spioc->cur_pos += rxlen; + SPI_OC_VERBOSE("cur_rxpos:[0x%x]\n", spioc->cur_pos); + } + + return 0; +} + +static int spioc_tx_rx_start_one(struct spioc *spioc) +{ + unsigned int txlen, total_len; + u8 txreg; + int ret; + + if (!spioc->reamin_len) { + SPI_OC_VERBOSE("spioc reamin_len:[0x0]\n"); + return 0; + } + + spioc->cur_len = spioc->reamin_len > SPIOC_TXRX_MAX_LEN ? SPIOC_TXRX_MAX_LEN : spioc->reamin_len; + + txlen = spioc->cur_len; + spioc->reamin_len -= txlen; + SPI_OC_VERBOSE("tx len:[0x%x], tx len remain:[0x%x]\n", txlen, spioc->reamin_len); + + spioc_copy_tx(spioc); + + total_len = 2 * txlen; /* total_len=txlen + rxlen; rxlen=txlen */ + txreg = SPIOC_TXNUM(txlen) | SPIOC_TOTNUM(total_len); + SPI_OC_VERBOSE("txreg:[0x%x]\n", txreg); + oc_spi_setreg(spioc, SPIOC_TXTOT_NUM, txreg); + + ret = spioc_transfer_start(spioc); + if (ret) { + SPI_OC_ERROR("spioc tx rx poll wait for transfer timeout.\n"); + return ret; + } + + spioc_copy_rx(spioc); + if (spioc->reamin_len) { + spioc->cur_pos += txlen; + SPI_OC_VERBOSE("cur_txrx pos:[0x%x]\n", spioc->cur_pos); + } + return 0; +} + +static int spioc_spi_txrx_bufs(struct spi_device *spi, struct spi_transfer *t) +{ + struct spioc *spioc; + int ret , len; + + if(!t->len || (!t->tx_buf && !t->rx_buf)) { + SPI_OC_ERROR("params error, tx_buf and rx_buf may both NULL, transfer len:0x%x.\n", + t->len); + return 0; + } + + spioc = spi_master_get_devdata(spi->master); + if (spioc->transfer_busy_flag) { + ret = -EBUSY; + goto err; + } + + spioc->txp = t->tx_buf; + spioc->rxp = t->rx_buf; + spioc->reamin_len = t->len; + spioc->cur_len = 0; + spioc->cur_pos = 0; + len = t->len; + ret = 0; + if (spioc->irq >= 0) { + /* use interrupt driven data transfer */ + if (t->tx_buf && t->rx_buf) { + spioc_tx_rx_start_one(spioc); + wait_for_completion(&spioc->done); + } else if (t->tx_buf) { + spioc_tx_start_one(spioc); + wait_for_completion(&spioc->done); + + } else { + spioc_rx_start_one(spioc); + wait_for_completion(&spioc->done); + } + } else { + if (t->tx_buf && t->rx_buf) { + SPI_OC_VERBOSE("start tx rx, len:0x%x\n", t->len); + while (spioc->reamin_len) { + ret = spioc_tx_rx_start_one(spioc); + if (ret) { + goto err; + } + } + } else if (t->tx_buf) { + SPI_OC_VERBOSE("start tx, txlen:0x%x\n", t->len); + while (spioc->reamin_len) { + ret = spioc_tx_start_one(spioc); + if (ret) { + goto err; + } + } + } else { + SPI_OC_VERBOSE("start rx, rxlen:0x%x\n", t->len); + while (spioc->reamin_len) { + ret = spioc_rx_start_one(spioc); + if (ret) { + goto err; + } + } + } + } + SPI_OC_VERBOSE("return num: 0x%x\n", len); + return len; +err: + return ret; +} + +static irqreturn_t spioc_spi_irq(int irq, void *dev) +{ + struct spioc *spioc; + + spioc = dev; + /* gooooohi, interrupt status bit judgment is not done */ + + if (spioc->txp && spioc->rxp) { + if (!spioc->reamin_len) { + complete(&spioc->done); + } else { + spioc_tx_rx_start_one(spioc); + } + } else if (spioc->txp) { + if (!spioc->reamin_len) { + complete(&spioc->done); + } else { + spioc_tx_start_one(spioc); + } + } else if (spioc->rxp){ + if (!spioc->reamin_len) { + complete(&spioc->done); + } else { + spioc_rx_start_one(spioc); + } + } + + return IRQ_HANDLED; +} + +static int ocores_spi_config_init(struct spioc *spioc) +{ + int ret = 0; + struct device *dev; + spi_ocores_device_t *spi_ocores_device; + + dev = spioc->dev; + if (dev->of_node) { + ret += of_property_read_string(dev->of_node, "dev_name", &spioc->dev_name); + ret += of_property_read_u32(dev->of_node, "dev_base", &spioc->base_addr); + ret += of_property_read_u32(dev->of_node, "reg_shift", &spioc->reg_shift); + ret += of_property_read_u32(dev->of_node, "reg_io_width", &spioc->reg_io_width); + ret += of_property_read_u32(dev->of_node, "clock-frequency", &spioc->freq); + ret += of_property_read_u32(dev->of_node, "reg_access_mode", &spioc->reg_access_mode); + ret += of_property_read_u32(dev->of_node, "num_chipselect", &spioc->num_chipselect); + + if (ret != 0) { + SPI_OC_ERROR("dts config error, ret:%d.\n", ret); + ret = -ENXIO; + return ret; + } + } else { + if (spioc->dev->platform_data == NULL) { + SPI_OC_ERROR("platform data config error.\n"); + ret = -ENXIO; + return ret; + } + spi_ocores_device = spioc->dev->platform_data; + spioc->bus_num = spi_ocores_device->bus_num; + spioc->dev_name = spi_ocores_device->dev_name; + spioc->big_endian = spi_ocores_device->big_endian; + spioc->base_addr = spi_ocores_device->dev_base; + spioc->reg_shift = spi_ocores_device->reg_shift; + spioc->reg_io_width = spi_ocores_device->reg_io_width; + spioc->freq = spi_ocores_device->clock_frequency; + spioc->reg_access_mode = spi_ocores_device->reg_access_mode; + spioc->num_chipselect = spi_ocores_device->num_chipselect; + } + + SPI_OC_VERBOSE("name:%s, base:0x%x, reg_shift:0x%x, io_width:0x%x, clock-frequency:0x%x.\n", + spioc->dev_name, spioc->base_addr, spioc->reg_shift, spioc->reg_io_width, spioc->freq); + SPI_OC_VERBOSE("reg access mode:%u, num_chipselect:%u.\n", + spioc->reg_access_mode, spioc->num_chipselect); + return ret; +} + +static int spioc_probe(struct platform_device *pdev) +{ + struct spi_master *master; + struct spioc *spioc; + int ret; + bool be; + + ret = -1; + master = spi_alloc_master(&pdev->dev, sizeof(struct spioc)); + if (!master) { + dev_err(&pdev->dev, "Failed to alloc spi master.\n"); + goto out; + } + + spioc = spi_master_get_devdata(master); + platform_set_drvdata(pdev, spioc); + + spioc->dev = &pdev->dev; + ret = ocores_spi_config_init(spioc); + if (ret != 0) { + dev_err(spioc->dev, "Failed to get ocores spi dts config.\n"); + goto free; + } + + if (spioc->dev->of_node) { + if (of_property_read_u32(spioc->dev->of_node, "big_endian", &spioc->big_endian)) { + + be = 0; + } else { + be = spioc->big_endian; + } + } else { + be = spioc->big_endian; + } + + if (spioc->reg_io_width == 0) { + spioc->reg_io_width = 1; /* Set to default value */ + } + + if (!spioc->setreg || !spioc->getreg) { + switch (spioc->reg_io_width) { + case REG_IO_WIDTH_1: + spioc->setreg = oc_spi_setreg_8; + spioc->getreg = oc_spi_getreg_8; + break; + + case REG_IO_WIDTH_2: + spioc->setreg = be ? oc_spi_setreg_16be : oc_spi_setreg_16; + spioc->getreg = be ? oc_spi_getreg_16be : oc_spi_getreg_16; + break; + + case REG_IO_WIDTH_4: + spioc->setreg = be ? oc_spi_setreg_32be : oc_spi_setreg_32; + spioc->getreg = be ? oc_spi_getreg_32be : oc_spi_getreg_32; + break; + + default: + dev_err(spioc->dev, "Unsupported I/O width (%d)\n", spioc->reg_io_width); + ret = -EINVAL; + goto free; + } + } + + /* master state */ + master->num_chipselect = spioc->num_chipselect; + master->mode_bits = MODEBITS; + master->setup = spioc_spi_setup; + if (spioc->dev->of_node) { + master->dev.of_node = pdev->dev.of_node; + } else { + master->bus_num = spioc->bus_num; + } + + /* setup the state for the bitbang driver */ + spioc->bitbang.master = master; + spioc->bitbang.setup_transfer = spioc_setup_transfer; + spioc->bitbang.chipselect = spioc_chipselect; + spioc->bitbang.txrx_bufs = spioc_spi_txrx_bufs; + + /* gooooohi need revision */ + spioc->irq = platform_get_irq(pdev, 0); + if (spioc->irq >= 0) { + SPI_OC_VERBOSE("spi oc use irq, irq number:%d.\n", spioc->irq); + init_completion(&spioc->done); + ret = devm_request_irq(&pdev->dev, spioc->irq, spioc_spi_irq, 0, + pdev->name, spioc); + if (ret) { + dev_err(spioc->dev, "Failed to request irq:%d.\n", spioc->irq); + goto free; + } + } + + ret = spi_bitbang_start(&spioc->bitbang); + if (ret) { + dev_err(spioc->dev, "Failed to start spi bitbang, ret:%d.\n", ret); + goto free; + } + dev_info(spioc->dev, "registered spi-%d for %s with base address:0x%x success.\n", + master->bus_num, spioc->dev_name, spioc->base_addr); + + return ret; +free: + spi_master_put(master); +out: + return ret; +} + +static int spioc_remove(struct platform_device *pdev) +{ + struct spioc *spioc; + struct spi_master *master; + + spioc = platform_get_drvdata(pdev); + master = spioc->bitbang.master; + spi_bitbang_stop(&spioc->bitbang); + platform_set_drvdata(pdev, NULL); + spi_master_put(master); + + return 0; +} + +static const struct of_device_id spioc_match[] = { + { .compatible = "wb-spi-oc", }, + {}, +}; +MODULE_DEVICE_TABLE(of, spioc_match); + +static struct platform_driver spioc_driver = { + .probe = spioc_probe, + .remove = spioc_remove, + .driver = { + .name = "wb-spioc", + .owner = THIS_MODULE, + .of_match_table = spioc_match, + }, +}; + +module_platform_driver(spioc_driver); + +MODULE_DESCRIPTION("spi open core adapter driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.h new file mode 100644 index 000000000000..647ff0c5f9cf --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.h @@ -0,0 +1,21 @@ +#ifndef __WB_SPI_OCORES_H__ +#define __WB_SPI_OCORES_H__ +#include + +#define mem_clear(data, size) memset((data), 0, (size)) +#define SPI_OCORES_DEV_NAME_MAX_LEN (64) + +typedef struct spi_ocores_device_s { + uint32_t bus_num; + uint32_t big_endian; + char dev_name[SPI_OCORES_DEV_NAME_MAX_LEN]; + uint32_t reg_access_mode; + uint32_t dev_base; + uint32_t reg_shift; + uint32_t reg_io_width; + uint32_t clock_frequency; + uint32_t num_chipselect; + int device_flag; +} spi_ocores_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_uio_irq.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_uio_irq.c new file mode 100644 index 000000000000..da2b582443b8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_uio_irq.c @@ -0,0 +1,282 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef struct dfd_irq_s { + int gpio; + int irq_type; + struct uio_info dfd_irq_info; + spinlock_t lock; + struct attribute_group attr_group; +} dfd_irq_t; + +#define DRV_NAME "uio-irq" +#define DRV_VERSION "1.0" +#define ENABLE_VAL (1) +#define DISABLE_VAL (0) + +#define DEBUG_ERR_LEVEL (0x1) +#define DEBUG_WARN_LEVEL (0x2) +#define DEBUG_INFO_LEVEL (0x4) +#define DEBUG_VER_LEVEL (0x8) + +static int debug = 0; +module_param(debug, int, S_IRUGO | S_IWUSR); +#define DEBUG_ERROR(fmt, args...) \ + do { \ + if (debug & DEBUG_ERR_LEVEL) { \ + printk(KERN_ERR "[ERR][func:%s line:%d] "fmt, __func__, __LINE__, ## args); \ + } else { \ + pr_debug(fmt, ## args); \ + } \ + } while(0) + +#define DEBUG_WARN(fmt, args...) \ + do { \ + if (debug & DEBUG_WARN_LEVEL) { \ + printk(KERN_WARNING "[WARN][func:%s line:%d] "fmt, __func__, __LINE__, ## args); \ + } else { \ + pr_debug(fmt, ## args); \ + } \ + } while(0) + +#define DEBUG_INFO(fmt, args...) \ + do { \ + if (debug & DEBUG_INFO_LEVEL) { \ + printk(KERN_INFO "[INFO][func:%s line:%d] "fmt, __func__, __LINE__, ## args); \ + } else { \ + pr_debug(fmt, ## args); \ + } \ + } while(0) + +#define DEBUG_VERBOSE(fmt, args...) \ + do { \ + if (debug & DEBUG_VER_LEVEL) { \ + printk(KERN_DEBUG "[VER][func:%s line:%d] "fmt, __func__, __LINE__, ## args); \ + } else { \ + pr_debug(fmt, ## args); \ + } \ + } while(0) + +static irqreturn_t dfd_genirq_handler(int irq, struct uio_info *dev_info) +{ + disable_irq_nosync(irq); + DEBUG_VERBOSE("handler disable irq"); + return IRQ_HANDLED; +} + +static int dfd_genirq_irqcontrol(struct uio_info *dev_info, s32 irq_on) +{ + struct irq_data *irqdata; + + irqdata = irq_get_irq_data(dev_info->irq); + + if (irqd_irq_disabled(irqdata) == !irq_on) { + DEBUG_VERBOSE("irq already disable"); + return 0; + } + if (irq_on) { + DEBUG_VERBOSE("irqcontrol enable irq"); + enable_irq(dev_info->irq); + } else { + DEBUG_VERBOSE("irqcontrol disable irq"); + disable_irq(dev_info->irq); + } + + return 0; +} + +static ssize_t set_irq_enable(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + dfd_irq_t *dfd_irq; + struct uio_info *dev_info; + unsigned long flags; + int ret, val; + + dfd_irq = dev_get_drvdata(dev); + dev_info = &dfd_irq->dfd_irq_info; + + spin_lock_irqsave(&dfd_irq->lock, flags); + + sscanf(buf, "%d", &val); + DEBUG_VERBOSE("set val:%d.\n", val); + + if ((val != ENABLE_VAL) && (val != DISABLE_VAL)) { + DEBUG_ERROR("unsupport val:%d ", val); + ret = -EINVAL; + goto fail; + } + + if (val) { + DEBUG_VERBOSE("sysfs enable irq"); + enable_irq(dev_info->irq); + } else { + DEBUG_VERBOSE("sysfs disable irq"); + disable_irq(dev_info->irq); + } + + spin_unlock_irqrestore(&dfd_irq->lock, flags); + return count; + +fail: + spin_unlock_irqrestore(&dfd_irq->lock, flags); + return ret; +} + +static DEVICE_ATTR(irq_enable, S_IWUSR, NULL, set_irq_enable); + +static struct attribute *irq_attrs[] = { + &dev_attr_irq_enable.attr, + NULL, +}; + +static struct attribute_group irq_attr_group = { + .attrs = irq_attrs, +}; + +static int dfd_irq_probe(struct platform_device *pdev) +{ + u32 gpio, irq_type, pirq_line; + int ret, ret1, ret2; + struct uio_info *dfd_irq_info; + dfd_irq_t *dfd_irq; + + dfd_irq = kzalloc(sizeof(dfd_irq_t), GFP_KERNEL); + if (!dfd_irq) { + dev_err(&pdev->dev, "dfd_irq_t kzalloc failed.\n"); + return -ENOMEM; + } + + dfd_irq_info = &dfd_irq->dfd_irq_info; + dfd_irq_info->version = "1.0"; + dfd_irq_info->name = "uio-irq"; + + /* get pirq line for x86 */ + ret1 = of_property_read_u32(pdev->dev.of_node, "pirq-line", &pirq_line); + if (!ret1) { + DEBUG_VERBOSE("use pirq-line method, pirq-line:%u", pirq_line); + dfd_irq_info->irq = pirq_line; + } + + ret2 = of_property_read_u32(pdev->dev.of_node, "gpio", &gpio); + if (!ret2 && ret1) { + dfd_irq->gpio = gpio; + gpio_request(dfd_irq->gpio, "GPIOA"); + dfd_irq_info->irq = gpio_to_irq(dfd_irq->gpio); + DEBUG_VERBOSE("use gpio:%u, irq num:%ld", gpio, dfd_irq_info->irq); + } else if (ret2 && ret1){ + ret = -ENXIO; + dev_err(&pdev->dev, "no define irq num. ret2:%d, ret1:%d.\n", ret2, ret1); + goto free_mem; + } + + ret = of_property_read_u32(pdev->dev.of_node, "irq_type", &irq_type); + if (!ret && ret1) { + DEBUG_VERBOSE("use irq_type:%u", irq_type); + dfd_irq->irq_type = irq_type; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39) + irq_set_irq_type(dfd_irq_info->irq, dfd_irq->irq_type); +#else + set_irq_type(dfd_irq_info->irq, dfd_irq->irq_type); +#endif + } else if (ret && ret1){ + ret = -ENXIO; + dev_err(&pdev->dev, "no define irq type. ret:%d, ret1:%d.\n", ret, ret1); + goto free_mem; + } + + dfd_irq_info->irq_flags = IRQF_SHARED; + dfd_irq_info->handler = dfd_genirq_handler; + dfd_irq_info->irqcontrol = dfd_genirq_irqcontrol; + + if(uio_register_device(&pdev->dev, dfd_irq_info)){ + ret = -ENODEV; + dev_err(&pdev->dev, "uio register failed.\n"); + goto free_mem; + } + + spin_lock_init(&dfd_irq->lock); + + dfd_irq->attr_group = irq_attr_group; + ret = sysfs_create_group(&pdev->dev.kobj, &dfd_irq->attr_group); + if (ret != 0) { + dev_err(&pdev->dev, "sysfs_create_group failed. ret:%d.\n", ret); + goto free_mem; + } + DEBUG_VERBOSE("sysfs create group success\n"); + + platform_set_drvdata(pdev, dfd_irq); + + return 0; + +free_mem: + kfree(dfd_irq); + + return ret; +} + +static int dfd_irq_remove(struct platform_device *pdev) +{ + dfd_irq_t *dfd_irq; + struct uio_info *dfd_irq_info; + + dfd_irq = platform_get_drvdata(pdev); + dfd_irq_info = &dfd_irq->dfd_irq_info; + + uio_unregister_device(dfd_irq_info); + kfree(dfd_irq); + + sysfs_remove_group(&pdev->dev.kobj, &dfd_irq->attr_group); + + return 0; +} + +static struct of_device_id dfd_irq_match[] = { + { + .compatible = "uio-irq", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, dfd_irq_match); + +static struct platform_driver dfd_irq_driver = { + .probe = dfd_irq_probe, + .remove = dfd_irq_remove, + .driver = { + .owner = THIS_MODULE, + .name = DRV_NAME, + .of_match_table = dfd_irq_match, + }, +}; + +static int __init dfd_irq_init(void) +{ + int ret; + + ret = platform_driver_register(&dfd_irq_driver); + if (ret != 0 ) { + return ret; + } + + return 0; +} + +static void __exit dfd_irq_exit(void) +{ + platform_driver_unregister(&dfd_irq_driver); +} + +module_init(dfd_irq_init); +module_exit(dfd_irq_exit); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c new file mode 100644 index 000000000000..8c02d981843a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c @@ -0,0 +1,1038 @@ +/* + * wb_wdt.c + * ko for watchdog function + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_wdt.h" + +#define GPIO_FEED_WDT_MODE (1) +#define LOGIC_FEED_WDT_MODE (2) + +#define SYMBOL_I2C_DEV_MODE (1) +#define SYMBOL_PCIE_DEV_MODE (2) +#define SYMBOL_IO_DEV_MODE (3) +#define FILE_MODE (4) + +#define ONE_BYTE (1) + +#define WDT_OFF (0) +#define WDT_ON (1) + +#define MS_TO_S (1000) +#define MS_TO_NS (1000 * 1000) + +#define MAX_REG_VAL (255) + +extern int i2c_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int i2c_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int pcie_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_write(const char *path, uint32_t offset, uint8_t *buf, size_t count); +extern int io_device_func_read(const char *path, uint32_t offset, uint8_t *buf, size_t count); + +int g_wb_wdt_debug = 0; +int g_wb_wdt_error = 0; + +module_param(g_wb_wdt_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_wdt_error, int, S_IRUGO | S_IWUSR); + +#define WDT_VERBOSE(fmt, args...) do { \ + if (g_wb_wdt_debug) { \ + printk(KERN_INFO "[WDT][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WDT_ERROR(fmt, args...) do { \ + if (g_wb_wdt_error) { \ + printk(KERN_ERR "[WDT][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +enum { + HW_ALGO_TOGGLE, + HW_ALGO_LEVEL, +}; + +enum { + WATCHDOG_DEVICE_TYPE = 0, + HRTIMER_TYPE, + THREAD_TYPE, +}; + +typedef struct wb_wdt_priv_s { + + struct task_struct *thread; + struct hrtimer hrtimer; + ktime_t m_kt; + const char *config_dev_name; + uint8_t config_mode; + uint8_t hw_algo; + uint8_t enable_val; + uint8_t disable_val; + uint8_t enable_mask; + uint8_t priv_func_mode; + uint8_t feed_wdt_type; + uint32_t enable_reg; + uint32_t timeout_cfg_reg; + uint32_t timeleft_cfg_reg; + uint32_t hw_margin; + uint32_t feed_time; + uint32_t timer_accuracy; + gpio_wdt_info_t gpio_wdt; + logic_wdt_info_t logic_wdt; + struct device *dev; + const struct attribute_group *sysfs_group; + uint8_t sysfs_index; + struct mutex update_lock; + struct watchdog_device wdd; +}wb_wdt_priv_t; + +static int wdt_file_read(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDONLY, 0); + if (IS_ERR(filp)) { + WDT_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_read(filp, val, size, &tmp_pos); + if (ret < 0) { + WDT_ERROR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int wdt_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) +{ + int ret; + struct file *filp; + loff_t tmp_pos; + + filp = filp_open(path, O_RDWR, 777); + if (IS_ERR(filp)) { + WDT_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); + filp = NULL; + goto exit; + } + + tmp_pos = (loff_t)pos; + ret = kernel_write(filp, val, size, &tmp_pos); + if (ret < 0) { + WDT_ERROR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + goto exit; + } + + vfs_fsync(filp, 1); + filp_close(filp, NULL); + + return ret; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + + return -1; +} + +static int wb_wdt_read(uint8_t mode, const char *path, + uint32_t offset, uint8_t *buf, size_t count) +{ + int ret; + + switch (mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_read(path, offset, buf, count); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_read(path, offset, buf, count); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_read(path, offset, buf, count); + break; + case FILE_MODE: + ret = wdt_file_read(path, offset, buf, count); + break; + default: + WDT_ERROR("mode %u error, wdt func read failed.\n", mode); + return -EINVAL; + } + + WDT_VERBOSE("wdt func read mode:%u,dev_nam:%s, offset:0x%x, read_val:0x%x, size:%lu.\n", + mode, path, offset, *buf, count); + + return ret; +} + +static int wb_wdt_write(uint8_t mode, const char *path, + uint32_t offset, uint8_t *buf, size_t count) +{ + int ret; + + switch (mode) { + case SYMBOL_I2C_DEV_MODE: + ret = i2c_device_func_write(path, offset, buf, count); + break; + case SYMBOL_PCIE_DEV_MODE: + ret = pcie_device_func_write(path, offset, buf, count); + break; + case SYMBOL_IO_DEV_MODE: + ret = io_device_func_write(path, offset, buf, count); + break; + case FILE_MODE: + ret = wdt_file_write(path, offset, buf, count); + break; + default: + WDT_ERROR("mode %u error, wdt func write failed.\n", mode); + return -EINVAL; + } + + WDT_VERBOSE("wdt func write mode:%u, dev_nam:%s, offset:0x%x, write_val:0x%x, size:%lu.\n", + mode, path, offset, *buf, count); + + return ret; +} + +static int wb_wdt_enable_ctrl(wb_wdt_priv_t *priv, uint8_t flag) +{ + int ret; + uint8_t val; + uint8_t ctrl_val; + + switch (flag) { + case WDT_ON: + ctrl_val = priv->enable_val; + break; + case WDT_OFF: + ctrl_val = priv->disable_val; + break; + default: + WDT_ERROR("unsupport wdt enable ctrl:%u.\n", flag); + return -EINVAL; + } + + ret = wb_wdt_read(priv->priv_func_mode, priv->config_dev_name, + priv->enable_reg, &val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "read wdt control reg error.\n"); + return ret; + } + + val &= ~priv->enable_mask; + + val |= ctrl_val & priv->enable_mask; + + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->enable_reg, &val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "write wdt control reg error.\n"); + return ret; + } + + return 0; +} + +static void wdt_hwping(wb_wdt_priv_t *priv) +{ + gpio_wdt_info_t *gpio_wdt; + logic_wdt_info_t *logic_wdt; + uint8_t tmp_val; + int ret; + + if (priv->config_mode == GPIO_FEED_WDT_MODE) { + gpio_wdt = &priv->gpio_wdt; + switch (priv->hw_algo) { + case HW_ALGO_TOGGLE: + gpio_wdt = &priv->gpio_wdt; + gpio_wdt->state = !gpio_wdt->state; + gpio_set_value_cansleep(gpio_wdt->gpio, gpio_wdt->state); + WDT_VERBOSE("gpio toggle wdt work. val:%u\n", gpio_wdt->state); + break; + case HW_ALGO_LEVEL: + gpio_wdt = &priv->gpio_wdt; + /* Pulse */ + gpio_set_value_cansleep(gpio_wdt->gpio, !gpio_wdt->active_low); + udelay(1); + gpio_set_value_cansleep(gpio_wdt->gpio, gpio_wdt->active_low); + WDT_VERBOSE("gpio level wdt work.\n"); + break; + } + } else { + logic_wdt = &priv->logic_wdt; + switch (priv->hw_algo) { + case HW_ALGO_TOGGLE: + logic_wdt->active_val = !logic_wdt->active_val; + ret = wb_wdt_write(logic_wdt->logic_func_mode, logic_wdt->feed_dev_name, + logic_wdt->feed_reg, &logic_wdt->active_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("logic toggle wdt write failed.ret = %d\n", ret); + } + WDT_VERBOSE("logic toggle wdt work.\n"); + break; + case HW_ALGO_LEVEL: + tmp_val = !logic_wdt->active_val; + ret = wb_wdt_write(logic_wdt->logic_func_mode, logic_wdt->feed_dev_name, + logic_wdt->feed_reg, &tmp_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("logic level wdt write first failed.ret = %d\n", ret); + } + udelay(1); + ret = wb_wdt_write(logic_wdt->logic_func_mode, logic_wdt->feed_dev_name, + logic_wdt->feed_reg, &logic_wdt->active_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("logic level wdt write second failed.ret = %d\n", ret); + } + WDT_VERBOSE("logic level wdt work.\n"); + break; + } + } + return; +} + +static enum hrtimer_restart hrtimer_hwping(struct hrtimer *timer) +{ + wb_wdt_priv_t *priv = container_of(timer, wb_wdt_priv_t, hrtimer); + + wdt_hwping(priv); + hrtimer_forward(timer, timer->base->get_time(), priv->m_kt); + return HRTIMER_RESTART; +} + +static int thread_timer_cfg(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) +{ + struct device *dev; + uint32_t hw_margin; + uint32_t feed_time; + uint32_t accuracy; + uint8_t set_time_val; + int ret; + + dev = priv->dev; + + ret = 0; + if (dev->of_node) { + ret += of_property_read_u32(dev->of_node, "feed_time", &priv->feed_time); + if (ret != 0) { + dev_err(dev, "thread Failed to priv dts.\n"); + return -ENXIO; + } + } else { + priv->feed_time = wb_wdt_device->feed_time; + } + WDT_VERBOSE("thread priv->feed_time: %u.\n", priv->feed_time); + + hw_margin = priv->hw_margin; + feed_time = priv->feed_time; + accuracy = priv->timer_accuracy; + + if ((feed_time > (hw_margin / 2)) || (feed_time == 0)) { + dev_err(dev, "thread timer feed_time[%d] should be less than half hw_margin or zero.\n", feed_time); + return -EINVAL; + } + + set_time_val = hw_margin / accuracy; + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); + if (ret < 0) { + dev_err(dev, "set wdt thread timer reg error.\n"); + return ret; + } + return 0; +} + +static int wdt_thread_timer(void *data) +{ + wb_wdt_priv_t *priv = data; + + while (!kthread_should_stop()) { + schedule_timeout_uninterruptible(msecs_to_jiffies(priv->feed_time)); + wdt_hwping(priv); + } + return 0; +} + +static int thread_timer_create(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) +{ + struct task_struct *p; + int ret; + + ret = thread_timer_cfg(priv, wb_wdt_device); + if (ret < 0) { + dev_err(priv->dev, "set wdt thread timer failed.\n"); + return ret; + } + + p = kthread_create(wdt_thread_timer, (void *)priv, "%s", "wb_wdt"); + if (!IS_ERR(p)) { + WDT_VERBOSE("timer thread create success.\n"); + priv->thread = p; + wake_up_process(p); + } else { + dev_err(priv->dev, "timer thread create failed.\n"); + return -ENXIO; + } + + ret = wb_wdt_enable_ctrl(priv, WDT_ON); + if (ret < 0) { + dev_err(priv->dev, "thread enable wdt failed.\n"); + return -ENXIO; + } + + return 0; +} + +static int hrtimer_cfg(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) +{ + struct device *dev; + struct hrtimer *hrtimer; + uint8_t set_time_val; + uint8_t hrtimer_s; + uint32_t hrtimer_ns; + int ret; + uint32_t hw_margin; + uint32_t feed_time; + uint32_t accuracy; + uint32_t max_timeout; + + dev = priv->dev; + + ret = 0; + if (dev->of_node) { + ret += of_property_read_u32(dev->of_node, "feed_time", &priv->feed_time); + if (ret != 0) { + dev_err(dev, "hrtimer Failed to priv dts.\n"); + return -ENXIO; + } + } else { + priv->feed_time = wb_wdt_device->feed_time; + } + WDT_VERBOSE("hrtimer priv->feed_time: %u.\n", priv->feed_time); + + hrtimer = &priv->hrtimer; + hw_margin = priv->hw_margin; + feed_time = priv->feed_time; + accuracy = priv->timer_accuracy; + max_timeout = accuracy * 255; + + if (hw_margin < accuracy || hw_margin > max_timeout) { + dev_err(dev, "hrtimer_hw_margin should be between %u and %u.\n", + accuracy, max_timeout); + return -EINVAL; + } + if ((feed_time > (hw_margin / 2)) || (feed_time == 0)) { + dev_err(dev, "feed_time[%d] should be less than half hw_margin or zeor.\n", feed_time); + return -EINVAL; + } + + hrtimer_s = feed_time / MS_TO_S; + hrtimer_ns = (feed_time % MS_TO_S) * MS_TO_NS; + set_time_val = hw_margin / accuracy; + + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); + if (ret < 0) { + dev_err(dev, "set wdt time reg error.\n"); + return ret; + } + + priv->m_kt = ktime_set(hrtimer_s, hrtimer_ns); + hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + hrtimer->function = hrtimer_hwping; + hrtimer_start(hrtimer, priv->m_kt, HRTIMER_MODE_REL); + + ret = wb_wdt_enable_ctrl(priv, WDT_ON); + if (ret < 0) { + dev_err(dev, "hrtimer enable wdt failed.\n"); + return -ENXIO; + } + + return 0; +} + +static int wb_wdt_ping(struct watchdog_device *wdd) +{ + wb_wdt_priv_t *priv = watchdog_get_drvdata(wdd); + + wdt_hwping(priv); + return 0; +} + +static int wb_wdt_start(struct watchdog_device *wdd) +{ + wb_wdt_priv_t *priv = watchdog_get_drvdata(wdd); + int ret; + + ret = wb_wdt_enable_ctrl(priv, WDT_ON); + if (ret < 0) { + WDT_ERROR("start wdt enable failed.\n"); + return -ENXIO; + } + set_bit(WDOG_HW_RUNNING, &wdd->status); + return 0; +} + +static int wb_wdt_stop(struct watchdog_device *wdd) +{ + wb_wdt_priv_t *priv = watchdog_get_drvdata(wdd); + int ret; + + ret = wb_wdt_enable_ctrl(priv, WDT_OFF); + if (ret < 0) { + WDT_ERROR("stop wdt enable failed.\n"); + return -ENXIO; + } + clear_bit(WDOG_HW_RUNNING, &wdd->status); + return 0; +} + +static int wb_wdt_set_timeout(struct watchdog_device *wdd, unsigned int t) +{ + wb_wdt_priv_t *priv = watchdog_get_drvdata(wdd); + uint32_t timeout_ms; + uint32_t accuracy; + uint8_t set_time_val; + int ret; + + accuracy = priv->timer_accuracy; + timeout_ms = t * 1000; + if (timeout_ms > accuracy * 255) { + WDT_ERROR("set wdt timeout too larger error.timeout_ms:%u\n", timeout_ms); + return -EINVAL; + } + + set_time_val = timeout_ms / accuracy; + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("set wdt timeout reg error, set_time_val:%u ret:%d\n", set_time_val, ret); + return ret; + } + wdd->timeout = t; + + return 0; +} + +static unsigned int wb_wdt_get_timeleft(struct watchdog_device *wdd) +{ + wb_wdt_priv_t *priv = watchdog_get_drvdata(wdd); + unsigned int time_left; + uint32_t accuracy; + uint8_t get_time_val; + int ret; + + accuracy = priv->timer_accuracy; + + ret = wb_wdt_read(priv->priv_func_mode, priv->config_dev_name, + priv->timeleft_cfg_reg, &get_time_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("get wdt timeout reg error.ret:%d\n", ret); + return ret; + } + time_left = get_time_val * accuracy / MS_TO_S; + + WDT_VERBOSE("get wdt timeleft %d get_time_val %d accuracy=%d\n", + time_left, get_time_val, accuracy); + return time_left; +} + +static const struct watchdog_info wb_wdt_ident = { + .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT, + .firmware_version = 0, + .identity = "CPLD Watchdog", +}; + +static const struct watchdog_ops wb_wdt_ops = { + .owner = THIS_MODULE, + .start = wb_wdt_start, + .stop = wb_wdt_stop, + .ping = wb_wdt_ping, + .set_timeout = wb_wdt_set_timeout, + .get_timeleft = wb_wdt_get_timeleft, +}; + +static int watchdog_device_cfg(wb_wdt_priv_t *priv) +{ + int ret; + uint8_t set_time_val; + + ret = wb_wdt_enable_ctrl(priv, WDT_OFF); + if (ret < 0) { + dev_err(priv->dev, "probe disable wdt failed.\n"); + return -ENXIO; + } + + set_time_val = priv->hw_margin / priv->timer_accuracy; + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set wdt time reg error.\n"); + return ret; + } + + watchdog_set_drvdata(&priv->wdd, priv); + + priv->wdd.info = &wb_wdt_ident; + priv->wdd.ops = &wb_wdt_ops; + priv->wdd.bootstatus = 0; + priv->wdd.timeout = priv->hw_margin / MS_TO_S; + priv->wdd.min_timeout = priv->timer_accuracy / MS_TO_S; + priv->wdd.max_timeout = priv->timer_accuracy * MAX_REG_VAL / MS_TO_S; + priv->wdd.parent = priv->dev; + + watchdog_stop_on_reboot(&priv->wdd); + + ret = devm_watchdog_register_device(priv->dev, &priv->wdd); + if (ret != 0) { + dev_err(priv->dev, "cannot register watchdog device (err=%d)\n", ret); + return -ENXIO; + } + + return 0; +} + +static int logic_wdt_init(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) +{ + struct device *dev; + logic_wdt_info_t *logic_wdt; + int ret; + + dev = priv->dev; + logic_wdt = &priv->logic_wdt; + + ret = 0; + if (dev->of_node) { + ret += of_property_read_string(dev->of_node, "feed_dev_name", &logic_wdt->feed_dev_name); + ret += of_property_read_u32(dev->of_node, "feed_reg", &logic_wdt->feed_reg); + ret += of_property_read_u8(dev->of_node, "active_val", &logic_wdt->active_val); + ret += of_property_read_u8(dev->of_node, "logic_func_mode", &logic_wdt->logic_func_mode); + if (ret != 0) { + dev_err(dev, "Failed to logic_wdt dts.\n"); + return -ENXIO; + } + } else { + logic_wdt->feed_dev_name = wb_wdt_device->wdt_config_mode.logic_wdt.feed_dev_name; + logic_wdt->feed_reg = wb_wdt_device->wdt_config_mode.logic_wdt.feed_reg; + logic_wdt->active_val = wb_wdt_device->wdt_config_mode.logic_wdt.active_val; + logic_wdt->logic_func_mode = wb_wdt_device->wdt_config_mode.logic_wdt.logic_func_mode; + } + + logic_wdt->state_val = logic_wdt->active_val; + + WDT_VERBOSE("feed_dev_name:%s, feed_reg:0x%x, active_val:%u, logic_func_mode:%u\n", + logic_wdt->feed_dev_name, logic_wdt->feed_reg, + logic_wdt->active_val, logic_wdt->logic_func_mode); + + return 0; +} + +static int gpio_wdt_init(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) +{ + struct device *dev; + gpio_wdt_info_t *gpio_wdt; + enum of_gpio_flags flags; + uint32_t f = 0; + int ret; + + dev = priv->dev; + gpio_wdt = &priv->gpio_wdt; + + if (dev->of_node) { + gpio_wdt->gpio = of_get_gpio_flags(dev->of_node, 0, &flags); + } else { + gpio_wdt->gpio = wb_wdt_device->wdt_config_mode.gpio_wdt.gpio; + flags = wb_wdt_device->wdt_config_mode.gpio_wdt.flags; + } + if (!gpio_is_valid(gpio_wdt->gpio)) { + dev_err(dev, "gpio is invalid.\n"); + return gpio_wdt->gpio; + } + + gpio_wdt->active_low = flags & OF_GPIO_ACTIVE_LOW; + + if(priv->hw_algo == HW_ALGO_TOGGLE) { + f = GPIOF_IN; + } else { + f = gpio_wdt->active_low ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW; + } + + ret = devm_gpio_request_one(dev, gpio_wdt->gpio, f, + dev_name(dev)); + if (ret) { + dev_err(dev, "devm_gpio_request_one failed.\n"); + return ret; + } + + gpio_wdt->state = gpio_wdt->active_low; + gpio_direction_output(gpio_wdt->gpio, gpio_wdt->state); + + WDT_VERBOSE("active_low:%d\n", gpio_wdt->active_low); + return 0; +} + +static ssize_t set_wdt_sysfs_value(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + wb_wdt_priv_t *priv = dev_get_drvdata(dev); + int ret, val; + + val = 0; + sscanf(buf, "%d", &val); + WDT_VERBOSE("set wdt, val:%d.\n", val); + + if (val < 0 || val > 255) { + WDT_ERROR("set wdt val %d failed.\n", val); + return -EINVAL; + } + + mutex_lock(&priv->update_lock); + + ret = wb_wdt_enable_ctrl(priv, val); + if (ret < 0) { + WDT_ERROR("set wdt sysfs value:%u failed.\n", val); + goto fail; + } + + WDT_VERBOSE("set wdt sysfs value:%u successed.\n", val); + mutex_unlock(&priv->update_lock); + return count; + +fail: + mutex_unlock(&priv->update_lock); + return ret; +} + +static ssize_t show_wdt_sysfs_value(struct device *dev, + struct device_attribute *da, char *buf) +{ + wb_wdt_priv_t *priv = dev_get_drvdata(dev); + uint8_t val, status; + int ret; + + mutex_lock(&priv->update_lock); + + ret = wb_wdt_read(priv->priv_func_mode, priv->config_dev_name, + priv->enable_reg, &val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "read wdt enable reg val error.\n"); + goto fail; + } + + val &= priv->enable_mask; + if (val == priv->enable_val) { + status = WDT_ON; + } else if(val == priv->disable_val) { + status = WDT_OFF; + } else { + WDT_ERROR("enable reg read val not match set val, read val:%u, mask:%u, enable_val:%u, disable_val:%u", + val, priv->enable_mask, priv->enable_val, priv->disable_val); + ret = -EIO; + goto fail; + } + + WDT_VERBOSE("read_val:%u, mask:%u, enable_val:%u, disable_val:%u, status:%u", + val, priv->enable_mask, priv->enable_val, priv->disable_val, status); + + mutex_unlock(&priv->update_lock); + return sprintf(buf, "%u\n", status); + +fail: + mutex_unlock(&priv->update_lock); + return ret; +} + +static SENSOR_DEVICE_ATTR(wdt_status, S_IRUGO | S_IWUSR, show_wdt_sysfs_value, set_wdt_sysfs_value, 0); + +static struct attribute *wdt_sysfs_attrs[] = { + &sensor_dev_attr_wdt_status.dev_attr.attr, + NULL +}; + +static const struct attribute_group wdt_sysfs_group = { + .attrs = wdt_sysfs_attrs, +}; + +struct wdt_attr_match_group { + uint8_t index; + const struct attribute_group *attr_group_ptr; +}; + +static struct wdt_attr_match_group g_wdt_attr_match[] = { + {0, &wdt_sysfs_group}, +}; + +static const struct attribute_group *wdt_get_attr_group(uint32_t index) +{ + int i; + struct wdt_attr_match_group *group; + + for (i = 0; i < ARRAY_SIZE(g_wdt_attr_match); i++) { + group = &g_wdt_attr_match[i]; + if (index == group->index) { + WDT_VERBOSE("get wdt attr, index:%u.\n", index); + return group->attr_group_ptr; + } + } + + return NULL; +} + +static int wb_wdt_probe(struct platform_device *pdev) +{ + wb_wdt_priv_t *priv; + int ret; + const char *algo; + wb_wdt_device_t *wb_wdt_device; + + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) { + dev_err(&pdev->dev, "devm_kzalloc failed.\n"); + return -ENOMEM; + } + + platform_set_drvdata(pdev, priv); + + if (pdev->dev.of_node) { + ret = 0; + ret += of_property_read_string(pdev->dev.of_node, "config_dev_name", &priv->config_dev_name); + ret += of_property_read_string(pdev->dev.of_node, "hw_algo", &algo); + ret += of_property_read_u8(pdev->dev.of_node, "config_mode", &priv->config_mode); + ret += of_property_read_u8(pdev->dev.of_node, "priv_func_mode", &priv->priv_func_mode); + ret += of_property_read_u8(pdev->dev.of_node, "enable_val", &priv->enable_val); + ret += of_property_read_u8(pdev->dev.of_node, "disable_val", &priv->disable_val); + ret += of_property_read_u8(pdev->dev.of_node, "enable_mask", &priv->enable_mask); + ret += of_property_read_u32(pdev->dev.of_node, "enable_reg", &priv->enable_reg); + ret += of_property_read_u32(pdev->dev.of_node, "timeout_cfg_reg", &priv->timeout_cfg_reg); + ret += of_property_read_u32(pdev->dev.of_node,"hw_margin_ms", &priv->hw_margin); + ret += of_property_read_u8(pdev->dev.of_node,"feed_wdt_type", &priv->feed_wdt_type); + ret += of_property_read_u32(pdev->dev.of_node,"timer_accuracy", &priv->timer_accuracy); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to priv dts.\n"); + return -ENXIO; + } + + priv->sysfs_index = SYSFS_NO_CFG; + of_property_read_u8(pdev->dev.of_node,"sysfs_index", &priv->sysfs_index); + + priv->timeleft_cfg_reg = priv->timeout_cfg_reg; + of_property_read_u32(pdev->dev.of_node,"timeleft_cfg_reg", &priv->timeleft_cfg_reg); + } else { + if (pdev->dev.platform_data == NULL) { + dev_err(&pdev->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + wb_wdt_device = pdev->dev.platform_data; + priv->config_dev_name = wb_wdt_device->config_dev_name; + algo = wb_wdt_device->hw_algo; + priv->config_mode = wb_wdt_device->config_mode; + priv->priv_func_mode = wb_wdt_device->priv_func_mode; + priv->enable_val = wb_wdt_device->enable_val; + priv->disable_val = wb_wdt_device->disable_val; + priv->enable_mask = wb_wdt_device->enable_mask; + priv->enable_reg = wb_wdt_device->enable_reg; + priv->timeout_cfg_reg = wb_wdt_device->timeout_cfg_reg; + priv->hw_margin = wb_wdt_device->hw_margin; + priv->timer_accuracy = wb_wdt_device->timer_accuracy; + priv->feed_wdt_type = wb_wdt_device->feed_wdt_type; + priv->sysfs_index = wb_wdt_device->sysfs_index; + priv->timeleft_cfg_reg = wb_wdt_device->timeleft_cfg_reg; + } + + if (!strcmp(algo, "toggle")) { + priv->hw_algo = HW_ALGO_TOGGLE; + } else if (!strcmp(algo, "level")) { + priv->hw_algo = HW_ALGO_LEVEL; + } else { + dev_err(&pdev->dev, "hw_algo config error.must be toggle or level.\n"); + return -EINVAL; + } + + WDT_VERBOSE("config_dev_name:%s, config_mode:%u, priv_func_mode:%u, enable_reg:0x%x, timeout_cfg_reg:0x%x\n", + priv->config_dev_name, priv->config_mode, priv->priv_func_mode, priv->enable_reg, priv->timeout_cfg_reg); + WDT_VERBOSE("timeout_cfg_reg:0x%x, enable_val:%u, disable_val:%u, enable_mask:%u, hw_margin:%u, feed_wdt_type:%u\n", + priv->timeleft_cfg_reg, priv->enable_val, priv->disable_val, priv->enable_mask, priv->hw_margin, priv->feed_wdt_type); + + priv->dev = &pdev->dev; + if (priv->config_mode == GPIO_FEED_WDT_MODE) { + ret = gpio_wdt_init(priv, wb_wdt_device); + if (ret < 0) { + dev_err(&pdev->dev, "init gpio mode wdt failed.\n"); + return -ENXIO; + } + } else if (priv->config_mode == LOGIC_FEED_WDT_MODE) { + ret = logic_wdt_init(priv, wb_wdt_device); + if (ret < 0) { + dev_err(&pdev->dev, "init func mode wdt failed.\n"); + return -ENXIO; + } + } else { + dev_err(&pdev->dev, "unsupport %u config_mode, dts configure error.\n", + priv->config_mode); + return -ENXIO; + } + + switch (priv->feed_wdt_type) { + case WATCHDOG_DEVICE_TYPE: + ret = watchdog_device_cfg(priv); + break; + case HRTIMER_TYPE: + ret = hrtimer_cfg(priv, wb_wdt_device); + break; + case THREAD_TYPE: + ret = thread_timer_create(priv, wb_wdt_device); + break; + default: + dev_err(&pdev->dev, "timer type %u unsupport.\n", priv->feed_wdt_type); + return -EINVAL; + } + if (ret < 0) { + dev_err(&pdev->dev, "init timer feed_wdt_type %u failed.\n", priv->feed_wdt_type); + return -ENXIO; + } + + dev_info(&pdev->dev, "register %s mode, config_mode %u, func_mode %u, %u ms overtime wdt success\n", + algo, priv->config_mode, priv->priv_func_mode, priv->hw_margin); + + if (priv->sysfs_index != SYSFS_NO_CFG) { + + priv->sysfs_group = wdt_get_attr_group(priv->sysfs_index); + if (priv->sysfs_group) { + ret = sysfs_create_group(&pdev->dev.kobj, priv->sysfs_group); + if (ret != 0) { + dev_err(&pdev->dev, "sysfs_create_group failed. ret:%d.\n", ret); + return -ENOMEM; + } + dev_info(&pdev->dev, "sysfs create group success\n"); + } else { + dev_err(&pdev->dev, "failed to find %u index wdt, return NULL.\n", priv->sysfs_index); + return -ENOMEM; + } + + mutex_init(&priv->update_lock); + + dev_info(&pdev->dev, "register %u index wdt sysfs success." ,priv->sysfs_index); + } + + return 0; +} + +static void unregister_action(struct platform_device *pdev) +{ + wb_wdt_priv_t *priv = platform_get_drvdata(pdev); + gpio_wdt_info_t *gpio_wdt; + logic_wdt_info_t *logic_wdt; + int ret; + + ret = wb_wdt_enable_ctrl(priv, WDT_OFF); + if (ret < 0) { + dev_err(&pdev->dev, "remove disable wdt failed.\n"); + } + + if (priv->sysfs_index != SYSFS_NO_CFG) { + sysfs_remove_group(&pdev->dev.kobj, priv->sysfs_group); + } + + if (priv->feed_wdt_type == HRTIMER_TYPE) { + hrtimer_cancel(&priv->hrtimer); + } else if (priv->feed_wdt_type == THREAD_TYPE) { + kthread_stop(priv->thread); + priv->thread = NULL; + } else { + WDT_VERBOSE("wdd type, do nothing.\n"); + } + + if (priv->config_mode == GPIO_FEED_WDT_MODE) { + gpio_wdt = &priv->gpio_wdt; + gpio_set_value_cansleep(gpio_wdt->gpio, !gpio_wdt->active_low); + + if (priv->hw_algo == HW_ALGO_TOGGLE) { + gpio_direction_input(gpio_wdt->gpio); + } + } else { + logic_wdt = &priv->logic_wdt; + logic_wdt->state_val = !logic_wdt->state_val; + ret = wb_wdt_write(logic_wdt->logic_func_mode, logic_wdt->feed_dev_name, + logic_wdt->feed_reg, &logic_wdt->state_val, ONE_BYTE); + if (ret < 0) { + dev_err(&pdev->dev, "set wdt control reg error.\n"); + } + } + + return; +} + +static int wb_wdt_remove(struct platform_device *pdev) +{ + WDT_VERBOSE("enter remove wdt.\n"); + unregister_action(pdev); + dev_info(&pdev->dev, "remove wdt finish.\n"); + + return 0; +} + +static void wb_wdt_shutdown(struct platform_device *pdev) +{ + WDT_VERBOSE("enter shutdown wdt.\n"); + unregister_action(pdev); + dev_info(&pdev->dev, "shutdown wdt finish.\n"); + + return; +} + +static const struct of_device_id wb_wdt_dt_ids[] = { + { .compatible = "wb_wdt", }, + { } +}; +MODULE_DEVICE_TABLE(of, wb_wdt_dt_ids); + +static struct platform_driver wb_wdt_driver = { + .driver = { + .name = "wb_wdt", + .of_match_table = wb_wdt_dt_ids, + }, + .probe = wb_wdt_probe, + .remove = wb_wdt_remove, + .shutdown = wb_wdt_shutdown, +}; + +#ifdef CONFIG_GPIO_WATCHDOG_ARCH_INITCALL +static int __init wb_wdt_init(void) +{ + return platform_driver_register(&wb_wdt_driver); +} +arch_initcall(wb_wdt_init); +#else +module_platform_driver(wb_wdt_driver); +#endif + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("watchdog driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h new file mode 100644 index 000000000000..10c30e13f94c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h @@ -0,0 +1,46 @@ +#ifndef __WB_WDT_H__ +#define __WB_WDT_H__ + +#include + +#define SYSFS_NO_CFG (0xff) + +typedef struct gpio_wdt_info_s { + int gpio; + enum of_gpio_flags flags; + bool active_low; + bool state; +}gpio_wdt_info_t; + +typedef struct logic_wdt_info_s { + const char *feed_dev_name; + uint8_t logic_func_mode; + uint32_t feed_reg; + uint8_t active_val; + uint8_t state_val; +}logic_wdt_info_t; + +typedef struct wb_wdt_device_s { + int device_flag; + const char *config_dev_name; + uint8_t config_mode; + const char *hw_algo; + uint8_t enable_val; + uint8_t disable_val; + uint8_t enable_mask; + uint8_t priv_func_mode; + uint8_t feed_wdt_type; + uint32_t enable_reg; + uint32_t timeout_cfg_reg; + uint32_t timeleft_cfg_reg; + uint32_t hw_margin; + uint32_t feed_time; + uint32_t timer_accuracy; + union { + gpio_wdt_info_t gpio_wdt; + logic_wdt_info_t logic_wdt; + } wdt_config_mode; + uint8_t sysfs_index; +} wb_wdt_device_t; + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c new file mode 100644 index 000000000000..edc12d34b6e2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c @@ -0,0 +1,574 @@ +/* + * xdpe132g5c_i2c_drv.c + * + * This module create sysfs to set AVS and create hwmon to get out power + * through xdpe132g5c I2C address. + * + * History + * [Version] [Date] [Description] + * * v1.0 2021-09-17 Initial version + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define WB_I2C_RETRY_SLEEP_TIME (10000) /* 10ms */ +#define WB_I2C_RETRY_TIME (10) +#define WB_XDPE_I2C_PAGE_ADDR (0xff) +#define WB_XDPE_I2C_VOUT_MODE (0x40) +#define WB_XDPE_I2C_VOUT_COMMAND (0x42) +#define WB_XDPE_I2C_VOUT_PAGE (0x06) +#define WB_XDPE_VOUT_MAX_THRESHOLD ((0xFFFF * 1000L * 1000L) / (256)) +#define WB_XDPE_VOUT_MIN_THRESHOLD (0) + +static int g_wb_xdpe_debug = 0; +static int g_wb_xdpe_error = 0; + +module_param(g_wb_xdpe_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_xdpe_error, int, S_IRUGO | S_IWUSR); + +#define WB_XDPE_VERBOSE(fmt, args...) do { \ + if (g_wb_xdpe_debug) { \ + printk(KERN_INFO "[WB_XDPE][VER][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_XDPE_ERROR(fmt, args...) do { \ + if (g_wb_xdpe_error) { \ + printk(KERN_ERR "[WB_XDPE][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +struct xdpe_data { + struct i2c_client *client; + struct device *hwmon_dev; + struct mutex update_lock; + long vout_max; + long vout_min; +}; + +typedef struct xdpe_vout_data_s { + u8 vout_mode; + int vout_precision; +} xdpe_vout_data_t; + +static xdpe_vout_data_t g_xdpe_vout_group[] = { + {.vout_mode = 0x18, .vout_precision = 256}, + {.vout_mode = 0x17, .vout_precision = 512}, + {.vout_mode = 0x16, .vout_precision = 1024}, + {.vout_mode = 0x15, .vout_precision = 2048}, + {.vout_mode = 0x14, .vout_precision = 4096}, +}; + +static s32 wb_i2c_smbus_read_byte_data(const struct i2c_client *client, u8 command) +{ + int i; + s32 ret; + + for (i = 0; i < WB_I2C_RETRY_TIME; i++) { + ret = i2c_smbus_read_byte_data(client, command); + if (ret >= 0) { + return ret; + } + usleep_range(WB_I2C_RETRY_SLEEP_TIME, WB_I2C_RETRY_SLEEP_TIME + 1); + } + return ret; +} + +static s32 wb_i2c_smbus_write_byte_data(const struct i2c_client *client, u8 command, u8 value) +{ + int i; + s32 ret; + + for (i = 0; i < WB_I2C_RETRY_TIME; i++) { + ret = i2c_smbus_write_byte_data(client, command, value); + if (ret >= 0) { + return ret; + } + usleep_range(WB_I2C_RETRY_SLEEP_TIME, WB_I2C_RETRY_SLEEP_TIME + 1); + } + return ret; +} + +static s32 wb_i2c_smbus_read_word_data(const struct i2c_client *client, u8 command) +{ + int i; + s32 ret; + + for (i = 0; i < WB_I2C_RETRY_TIME; i++) { + ret = i2c_smbus_read_word_data(client, command); + if (ret >= 0) { + return ret; + } + usleep_range(WB_I2C_RETRY_SLEEP_TIME, WB_I2C_RETRY_SLEEP_TIME + 1); + } + return ret; +} + +static s32 wb_i2c_smbus_write_word_data(const struct i2c_client *client, u8 command, + u16 value) +{ + int i; + s32 ret; + + for (i = 0; i < WB_I2C_RETRY_TIME; i++) { + ret = i2c_smbus_write_word_data(client, command, value); + if (ret >= 0) { + return ret; + } + usleep_range(WB_I2C_RETRY_SLEEP_TIME, WB_I2C_RETRY_SLEEP_TIME + 1); + } + return ret; +} + +static long calc_power_linear11_data(int data) +{ + s16 exponent; + s32 mantissa; + long val; + + exponent = ((s16)data) >> 11; + mantissa = ((s16)((data & 0x7ff) << 5)) >> 5; + val = mantissa; + val = val * 1000L * 1000L; + + if (exponent >= 0) { + val <<= exponent; + } else { + val >>= -exponent; + } + return val; +} + +static int read_xdpe_power_value(const struct i2c_client *client, u8 page, u8 reg, long *value) +{ + int ret, data; + + ret = wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, page); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: set xdpe page%u failed, ret: %d\n", client->adapter->nr, + client->addr, page, ret); + return ret; + } + data = wb_i2c_smbus_read_word_data(client, reg); + if (data < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe page%u reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, page, reg, data); + return data; + } + *value = calc_power_linear11_data(data); + WB_XDPE_VERBOSE("%d-%04x: page%u reg: 0x%x rd_data: 0x%x, decode linear11 value: %ld\n", + client->adapter->nr, client->addr, page, reg, data, *value); + return 0; +} + +static ssize_t xdpe_power_value_show(struct device *dev, struct device_attribute *da, + char *buf) +{ + int ret, ori_page; + u16 sensor_h, sensor_l; + u8 page, reg; + struct sensor_device_attribute *attr; + struct i2c_client *client; + struct xdpe_data *data; + long value1, value2; + + data = dev_get_drvdata(dev); + client = data->client; + attr = to_sensor_dev_attr(da); + sensor_h = ((attr->index) >> 16) & 0xffff; + sensor_l = (attr->index) & 0xffff; + + mutex_lock(&data->update_lock); + + ori_page = wb_i2c_smbus_read_byte_data(client, WB_XDPE_I2C_PAGE_ADDR); + if (ori_page < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe origin page failed, ret: %d\n", client->adapter->nr, + client->addr, ori_page); + mutex_unlock(&data->update_lock); + return ori_page; + } + value1 = 0; + value2 = 0; + + if (sensor_h) { + page = (sensor_h >> 8) & 0xff; + reg = sensor_h & 0xff; + ret = read_xdpe_power_value(client, page, reg, &value1); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe sensor high sensor page%u reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, page, reg, ret); + goto error; + } + WB_XDPE_VERBOSE("%d-%04x: read xdpe sensor high sensor page%u reg: 0x%x success, value: %ld\n", + client->adapter->nr, client->addr, page, reg, value1); + } + + page = (sensor_l >> 8) & 0xff; + reg = sensor_l & 0xff; + ret = read_xdpe_power_value(client, page, reg, &value2); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe sensor low sensor page%u reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, page, reg, ret); + goto error; + } + WB_XDPE_VERBOSE("%d-%04x: read xdpe sensor low sensor page%u reg: 0x%x success, value: %ld\n", + client->adapter->nr, client->addr, page, reg, value2); + + wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, ori_page); + mutex_unlock(&data->update_lock); + return snprintf(buf, PAGE_SIZE, "%ld\n", value1 + value2); +error: + wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, ori_page); + mutex_unlock(&data->update_lock); + return ret; +} + +static int xdpe_get_vout_precision(const struct i2c_client *client, int *vout_precision) +{ + int i, vout_mode, a_size; + + vout_mode = wb_i2c_smbus_read_byte_data(client, WB_XDPE_I2C_VOUT_MODE); + if (vout_mode < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe vout mode reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, WB_XDPE_I2C_VOUT_MODE, vout_mode); + return vout_mode; + } + + a_size = ARRAY_SIZE(g_xdpe_vout_group); + for (i = 0; i < a_size; i++) { + if (g_xdpe_vout_group[i].vout_mode == vout_mode) { + *vout_precision = g_xdpe_vout_group[i].vout_precision; + WB_XDPE_VERBOSE("%d-%04x: match, vout mode: 0x%x, precision: %d\n", + client->adapter->nr, client->addr, vout_mode, *vout_precision); + break; + } + } + if (i == a_size) { + WB_XDPE_ERROR("%d-%04x: invalid vout mode: 0x%x\n",client->adapter->nr, client->addr, + vout_mode); + return -EINVAL; + } + return 0; +} + +static ssize_t xdpe_avs_vout_show(struct device *dev, struct device_attribute *da, char *buf) +{ + int ret, ori_page, vout_cmd, vout_precision; + struct i2c_client *client; + struct xdpe_data *data; + long vout; + + client = to_i2c_client(dev); + data = i2c_get_clientdata(client); + + mutex_lock(&data->update_lock); + + ori_page = wb_i2c_smbus_read_byte_data(client, WB_XDPE_I2C_PAGE_ADDR); + if (ori_page < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe origin page failed, ret: %d\n", client->adapter->nr, + client->addr, ori_page); + mutex_unlock(&data->update_lock); + return ori_page; + } + + ret = wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, WB_XDPE_I2C_VOUT_PAGE); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: set xdpe avs vout page%u failed, ret: %d\n", client->adapter->nr, + client->addr, WB_XDPE_I2C_VOUT_PAGE, ret); + goto error; + } + + ret = xdpe_get_vout_precision(client, &vout_precision); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: get xdpe avs vout precision failed, ret: %d\n", + client->adapter->nr, client->addr, ret); + goto error; + } + + vout_cmd = wb_i2c_smbus_read_word_data(client, WB_XDPE_I2C_VOUT_COMMAND); + if (vout_cmd < 0) { + ret = vout_cmd; + WB_XDPE_ERROR("%d-%04x: read xdpe vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, WB_XDPE_I2C_VOUT_COMMAND, ret); + goto error; + } + + wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, ori_page); + mutex_unlock(&data->update_lock); + + vout = vout_cmd * 1000L * 1000L / vout_precision; + WB_XDPE_VERBOSE("%d-%04x: vout: %ld, vout_cmd: 0x%x, precision: %d\n", client->adapter->nr, + client->addr, vout, vout_cmd, vout_precision); + return snprintf(buf, PAGE_SIZE, "%ld\n", vout); +error: + wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, ori_page); + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t xdpe_avs_vout_store(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + int ret, ori_page, vout_cmd, vout_cmd_set, vout_precision; + struct i2c_client *client; + struct xdpe_data *data; + long vout, vout_max, vout_min; + + client = to_i2c_client(dev); + ret = kstrtol(buf, 10, &vout); + if (ret) { + WB_XDPE_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + data = i2c_get_clientdata(client); + vout_max = data->vout_max; + vout_min = data->vout_min; + if ((vout > vout_max) || (vout < vout_min)) { + WB_XDPE_ERROR("%d-%04x: vout value: %ld, out of range [%ld, %ld] \n", client->adapter->nr, + client->addr, vout, vout_min, vout_max); + return -EINVAL; + } + + mutex_lock(&data->update_lock); + + ori_page = wb_i2c_smbus_read_byte_data(client, WB_XDPE_I2C_PAGE_ADDR); + if (ori_page < 0) { + WB_XDPE_ERROR("%d-%04x: read xdpe origin page failed, ret: %d\n", client->adapter->nr, + client->addr, ori_page); + mutex_unlock(&data->update_lock); + return ori_page; + } + + ret = wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, WB_XDPE_I2C_VOUT_PAGE); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: set xdpe avs vout page%u failed, ret: %d\n", client->adapter->nr, + client->addr, WB_XDPE_I2C_VOUT_PAGE, ret); + goto error; + } + + ret = xdpe_get_vout_precision(client, &vout_precision); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: get xdpe avs vout precision failed, ret: %d\n", + client->adapter->nr, client->addr, ret); + goto error; + } + + vout_cmd_set = (vout * vout_precision) / (1000L * 1000L); + if (vout_cmd_set > 0xffff) { + WB_XDPE_ERROR("%d-%04x: invalid value, vout %ld, vout_precision: %d, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, vout, vout_precision, vout_cmd_set); + ret = -EINVAL; + goto error; + } + ret = wb_i2c_smbus_write_word_data(client, WB_XDPE_I2C_VOUT_COMMAND, vout_cmd_set); + if (ret < 0) { + WB_XDPE_ERROR("%d-%04x: set xdpe vout cmd reg: 0x%x, value: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, WB_XDPE_I2C_VOUT_COMMAND, vout_cmd_set, ret); + goto error; + } + + vout_cmd = wb_i2c_smbus_read_word_data(client, WB_XDPE_I2C_VOUT_COMMAND); + if (vout_cmd < 0) { + ret = vout_cmd; + WB_XDPE_ERROR("%d-%04x: read xdpe vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, WB_XDPE_I2C_VOUT_COMMAND, ret); + goto error; + } + if (vout_cmd != vout_cmd_set) { + ret = -EIO; + WB_XDPE_ERROR("%d-%04x: vout cmd value check error, vout cmd read: 0x%x, vout cmd set: 0x%x\n", + client->adapter->nr, client->addr, vout_cmd, vout_cmd_set); + goto error; + + } + + wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, ori_page); + mutex_unlock(&data->update_lock); + WB_XDPE_VERBOSE("%d-%04x: set vout cmd success, vout %ld, vout_precision: %d, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, vout, vout_precision, vout_cmd_set); + return count; +error: + wb_i2c_smbus_write_byte_data(client, WB_XDPE_I2C_PAGE_ADDR, ori_page); + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t xdpe_avs_vout_max_show(struct device *dev, struct device_attribute *da, char *buf) +{ + struct i2c_client *client; + struct xdpe_data *data; + long vout_max; + + client = to_i2c_client(dev); + data = i2c_get_clientdata(client); + vout_max = data->vout_max; + return snprintf(buf, PAGE_SIZE, "%ld\n", vout_max); +} + +static ssize_t xdpe_avs_vout_max_store(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + int ret; + struct i2c_client *client; + struct xdpe_data *data; + long vout_max; + + client = to_i2c_client(dev); + ret = kstrtol(buf, 10, &vout_max); + if (ret) { + WB_XDPE_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + WB_XDPE_VERBOSE("%d-%04x: vout max threshold: %ld", client->adapter->nr, client->addr, + vout_max); + data = i2c_get_clientdata(client); + data->vout_max = vout_max; + return count; +} + +static ssize_t xdpe_avs_vout_min_show(struct device *dev, struct device_attribute *da, char *buf) +{ + struct i2c_client *client; + struct xdpe_data *data; + long vout_min; + + client = to_i2c_client(dev); + data = i2c_get_clientdata(client); + vout_min = data->vout_min; + return snprintf(buf, PAGE_SIZE, "%ld\n", vout_min); +} + +static ssize_t xdpe_avs_vout_min_store(struct device *dev, struct device_attribute *da, + const char *buf, size_t count) +{ + int ret; + struct i2c_client *client; + struct xdpe_data *data; + long vout_min; + + client = to_i2c_client(dev); + ret = kstrtol(buf, 10, &vout_min); + if (ret) { + WB_XDPE_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + WB_XDPE_VERBOSE("%d-%04x: vout min threshold: %ld", client->adapter->nr, client->addr, + vout_min); + data = i2c_get_clientdata(client); + data->vout_min = vout_min; + return count; +} + +/* xdpe hwmon */ +static SENSOR_DEVICE_ATTR(power1_input, S_IRUGO ,xdpe_power_value_show, NULL, 0x072c); +static SENSOR_DEVICE_ATTR(power2_input, S_IRUGO ,xdpe_power_value_show, NULL, 0x0b2c); +static SENSOR_DEVICE_ATTR(power3_input, S_IRUGO ,xdpe_power_value_show, NULL, 0x072c0b2c); + +static struct attribute *xdpe_hwmon_attrs[] = { + &sensor_dev_attr_power1_input.dev_attr.attr, + &sensor_dev_attr_power2_input.dev_attr.attr, + &sensor_dev_attr_power3_input.dev_attr.attr, + NULL +}; +ATTRIBUTE_GROUPS(xdpe_hwmon); + +/* xdpe sysfs */ +static SENSOR_DEVICE_ATTR(avs_vout, S_IRUGO | S_IWUSR, xdpe_avs_vout_show, xdpe_avs_vout_store, 0); +static SENSOR_DEVICE_ATTR(avs_vout_max, S_IRUGO | S_IWUSR, xdpe_avs_vout_max_show, xdpe_avs_vout_max_store, 0); +static SENSOR_DEVICE_ATTR(avs_vout_min, S_IRUGO | S_IWUSR, xdpe_avs_vout_min_show, xdpe_avs_vout_min_store, 0); + +static struct attribute *xdpe132g5c_sysfs_attrs[] = { + &sensor_dev_attr_avs_vout.dev_attr.attr, + &sensor_dev_attr_avs_vout_max.dev_attr.attr, + &sensor_dev_attr_avs_vout_min.dev_attr.attr, + NULL, +}; + +static const struct attribute_group xdpe132g5c_sysfs_attrs_group = { + .attrs = xdpe132g5c_sysfs_attrs, +}; + +static int xdpe132g5c_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct xdpe_data *data; + int ret; + + WB_XDPE_VERBOSE("bus: %d, addr: 0x%02x do probe.\n", client->adapter->nr, client->addr); + data = devm_kzalloc(&client->dev, sizeof(struct xdpe_data), GFP_KERNEL); + if (!data) { + dev_err(&client->dev, "devm_kzalloc failed.\n"); + return -ENOMEM; + } + + data->client = client; + i2c_set_clientdata(client, data); + mutex_init(&data->update_lock); + + ret = sysfs_create_group(&client->dev.kobj, &xdpe132g5c_sysfs_attrs_group); + if (ret != 0) { + dev_err(&client->dev, "Create xdpe132g5c sysfs failed, ret: %d\n", ret); + return ret; + } + data->hwmon_dev = hwmon_device_register_with_groups(&client->dev, client->name, data, + xdpe_hwmon_groups); + if (IS_ERR(data->hwmon_dev)) { + ret = PTR_ERR(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &xdpe132g5c_sysfs_attrs_group); + dev_err(&client->dev, "Failed to register xdpe hwmon device, ret: %d\n", ret); + return ret; + } + data->vout_max = WB_XDPE_VOUT_MAX_THRESHOLD; + data->vout_min = WB_XDPE_VOUT_MIN_THRESHOLD; + dev_info(&client->dev, "xdpe132g5c probe success\n"); + return 0; +} + +static int xdpe132g5c_remove(struct i2c_client *client) +{ + struct xdpe_data *data; + + WB_XDPE_VERBOSE("bus: %d, addr: 0x%02x do remove\n", client->adapter->nr, client->addr); + data = i2c_get_clientdata(client); + hwmon_device_unregister(data->hwmon_dev); + sysfs_remove_group(&client->dev.kobj, &xdpe132g5c_sysfs_attrs_group); + return 0; +} + +static const struct i2c_device_id xdpe132g5c_id[] = { + {"wb_xdpe132g5c", 0}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, xdpe132g5c_id); + +static const struct of_device_id __maybe_unused xdpe132g5c_of_match[] = { + {.compatible = "infineon,wb_xdpe132g5c"}, + {} +}; +MODULE_DEVICE_TABLE(of, xdpe132g5c_of_match); + +static struct i2c_driver wb_xdpe132g5c_driver = { + .driver = { + .name = "wb_xdpe132g5c", + .of_match_table = of_match_ptr(xdpe132g5c_of_match), + }, + .probe = xdpe132g5c_probe, + .remove = xdpe132g5c_remove, + .id_table = xdpe132g5c_id, +}; + +module_i2c_driver(wb_xdpe132g5c_driver); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("I2C driver for Infineon XDPE132 family"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/auto_update.py b/platform/broadcom/sonic-platform-modules-micas/common/script/auto_update.py new file mode 100755 index 000000000000..838e64f6b417 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/auto_update.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 + +try: + import os + import json + import logging + import sys + from sonic_py_common import device_info + from sonic_platform.platform import Platform +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + +PLATFORM_COMPONENTS_FILE = "platform_components.json" +CHASSIS_KEY = "chassis" +COMPONENT_KEY = "component" +FIRMWARE_KEY = "firmware" +VERSION_KEY = "version" +chassis_component_map = {} +current_chassis_component_map = {} +current_chassis = Platform().get_chassis() + + +def parse_component_section(section, component): + if not isinstance(component, dict): + logging.error("dictionary is expected: key=%s", COMPONENT_KEY) + return False + + if not component: + return False + + missing_key = None + chassis_component_map[section] = {} + + for key1, value1 in component.items(): + if not isinstance(value1, dict): + logging.error("dictionary is expected: key=%s", key1) + return False + + if value1: + if len(value1) < 1 or len(value1) > 3: + logging.error("unexpected number of records: key=%s", key1) + return False + + if FIRMWARE_KEY not in value1: + missing_key = FIRMWARE_KEY + break + + for key2, value2 in value1.items(): + if not isinstance(value2, str): + logging.error("string is expected: key=%s", key2) + return False + + chassis_component_map[section][key1] = value1 + + if missing_key is not None: + logging.error("\"%s\" key hasn't been found", missing_key) + return False + + return True + + +def parse_chassis_section(chassis): + if not isinstance(chassis, dict): + logging.error("dictionary is expected: key=%s", CHASSIS_KEY) + return False + + if not chassis: + logging.error("dictionary is empty: key=%s", CHASSIS_KEY) + return False + + if len(chassis) != 1: + logging.error("unexpected number of records: key=%s", CHASSIS_KEY) + return False + + for key, value in chassis.items(): + if not isinstance(value, dict): + logging.error("dictionary is expected: key=%s", key) + return False + + if not value: + logging.error("dictionary is empty: key=%s", key) + return False + + if COMPONENT_KEY not in value: + logging.error("\"%s\" key hasn't been found", COMPONENT_KEY) + return False + + if len(value) != 1: + logging.error("unexpected number of records: key=%s", key) + return False + + return parse_component_section(key, value[COMPONENT_KEY]) + + return False + + +def get_platform_components_path(): + PLATFORM_COMPONENTS_PATH_TEMPLATE = "/usr/share/sonic/device/{}/{}" + PLATFORM_COMPONENTS_FILE_PATH = PLATFORM_COMPONENTS_PATH_TEMPLATE.format( + device_info.get_platform(), PLATFORM_COMPONENTS_FILE) + return PLATFORM_COMPONENTS_FILE_PATH + + +def parse_platform_components(): + platform_components_path = get_platform_components_path() + with open(platform_components_path) as platform_components: + data = json.load(platform_components) + + if not isinstance(data, dict): + logging.error("dictionary is expected: key=root") + return False + + if not data: + logging.error("dictionary is empty: key=root") + return False + + if CHASSIS_KEY not in data: + logging.error("\"%s\" key hasn't been found", CHASSIS_KEY) + return False + + return parse_chassis_section(data[CHASSIS_KEY]) + + +def get_current_chassis_component_map(): + chassis_name = current_chassis.get_name() + current_chassis_component_map[chassis_name] = {} + + component_list = current_chassis.get_all_components() + for component in component_list: + component_name = component.get_name() + current_chassis_component_map[chassis_name][component_name] = component + + return current_chassis_component_map + + +def get_upgrade_dict(): + upgrade_dict = {} + firmware_version_current = "" + firmware_version_available = "" + + if not parse_platform_components(): + logging.error("Reading platform_components.json i, ion exception") + sys.exit(1) + + if not get_current_chassis_component_map(): + logging.error("Reading firmware i, ion from the driver is abnormal") + sys.exit(1) + + chassis_name = current_chassis.get_name() + diff_keys = set(chassis_component_map.keys()) ^ set(current_chassis_component_map.keys()) + if diff_keys: + logging.error("%s names mismatch: keys=%s", chassis_name, str(list(diff_keys))) + return None + + for chassis_name, component_map in current_chassis_component_map.items(): + for component_name, component in component_map.items(): + firmware_version_current = component.get_firmware_version() + if component_name in chassis_component_map[chassis_name]: + firmware_version_available = chassis_component_map[chassis_name][component_name][VERSION_KEY] + else: + logging.warning("can't find %s in %s", component_name, PLATFORM_COMPONENTS_FILE) + break + + if not os.path.exists(chassis_component_map[chassis_name][component_name][FIRMWARE_KEY]): + logging.error("%s does not exist", chassis_component_map[chassis_name][component_name][FIRMWARE_KEY]) + break + + if firmware_version_available != firmware_version_current: + upgrade_dict[component_name] = chassis_component_map[chassis_name][component_name][FIRMWARE_KEY] + + return upgrade_dict + + +def auto_upgrade(): + upgrade_result_dict = {} + chassis_name = current_chassis.get_name() + + upgrade_dict = get_upgrade_dict() + if not upgrade_dict: + logging.info("No firmware found for automatic upgrade") + return None + + component_map = current_chassis_component_map[chassis_name] + for value, path in upgrade_dict.items(): + status = component_map[value].install_firmware(path) + if status: + upgrade_result_dict[value] = "success" + logging.info("%s Upgrade Success", value) + else: + upgrade_result_dict[value] = "failed" + logging.error("%s Upgrade Failed", value) + return upgrade_result_dict + + +if __name__ == '__main__': + auto_upgrade() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py b/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py new file mode 100755 index 000000000000..a0a2ccaac938 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python3 +import sys +import os +import time +import syslog +import glob +import click +from platform_config import MAC_DEFAULT_PARAM +from platform_util import getSdkReg, write_sysfs, get_value, get_format_value + + +AVSCTROL_DEBUG_FILE = "/etc/.avscontrol_debug_flag" + +AVSCTROLERROR = 1 +AVSCTROLDEBUG = 2 + +debuglevel = 0 + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def avscontrol_debug(s): + if AVSCTROLDEBUG & debuglevel: + syslog.openlog("AVSCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def avscontrol_error(s): + if AVSCTROLERROR & debuglevel: + syslog.openlog("AVSCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def avserror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("AVSCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def avsinfo(s): + syslog.openlog("AVSCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def debug_init(): + global debuglevel + if os.path.exists(AVSCTROL_DEBUG_FILE): + debuglevel = debuglevel | AVSCTROLDEBUG | AVSCTROLERROR + else: + debuglevel = debuglevel & ~(AVSCTROLDEBUG | AVSCTROLERROR) + + +def set_avs_value_sysfs(conf, dcdc_value): + msg = "" + formula = conf.get("formula", None) + loc = conf.get("loc") + locations = glob.glob(loc) + if len(locations) == 0: + msg = "avs sysfs loc: %s not found" % loc + avscontrol_error(msg) + return False, msg + sysfs_loc = locations[0] + avscontrol_debug("set_avs_value_sysfs, loc: %s, origin dcdc value: %s, formula: %s" % + (sysfs_loc, dcdc_value, formula)) + if formula is not None: + dcdc_value = get_format_value(formula % (dcdc_value)) + wr_val = str(dcdc_value) + avscontrol_debug("set_avs_value_sysfs, write val: %s" % wr_val) + ret, log = write_sysfs(sysfs_loc, wr_val) + if ret is False: + msg = "set_avs_value_sysfs failed, msg: %s" % log + avscontrol_error(msg) + return ret, msg + + +def set_avs_value(avs_conf, dcdc_value): + set_avs_way = avs_conf.get("set_avs", {}).get("gettype") + if set_avs_way != "sysfs": + msg = "unsupport set avs value type: %s" % set_avs_way + avscontrol_error(msg) + return False, msg + ret, msg = set_avs_value_sysfs(avs_conf["set_avs"], dcdc_value) + return ret, msg + + +def get_dcdc_value(avs_conf, rov_value): + msg = "" + mac_avs_param = avs_conf.get("mac_avs_param", {}) + if rov_value not in mac_avs_param.keys(): + if avs_conf["type"] == 0: + msg = "VID:0x%x out of range, voltage regulate stop" % rov_value + avsinfo(msg) + return False, msg + dcdc_value = mac_avs_param[avs_conf["default"]] + avsinfo("VID:0x%x out of range, use default VID:0x%x" % (rov_value, dcdc_value)) + else: + dcdc_value = mac_avs_param[rov_value] + return True, dcdc_value + + +def get_rov_value_cpld(avs_conf): + cpld_avs_config = avs_conf["cpld_avs"] + return get_value(cpld_avs_config) + + +def get_rov_value_sdk(avs_conf): + name = avs_conf["sdkreg"] + ret, status = getSdkReg(name) + if ret is False: + return False, status + status = int(status, 16) + # shift operation + if avs_conf["sdktype"] != 0: + status = (status >> avs_conf["macregloc"]) & avs_conf["mask"] + macavs = status + return True, macavs + + +def doAvsCtrol_single(avs_conf): + try: + avs_name = avs_conf.get("name") + rov_source = avs_conf["rov_source"] + if rov_source == 0: + ret, rov_value = get_rov_value_cpld(avs_conf) # get rov from cpld reg + else: + ret, rov_value = get_rov_value_sdk(avs_conf) # get rov from sdk reg + if ret is False: + msg = "%s get rov_value failed, msg: %s" % (avs_name, rov_value) + avscontrol_error(msg) + return False, msg + avscontrol_debug("%s rov_value: 0x%x" % (avs_name, rov_value)) + ret, dcdc_value = get_dcdc_value(avs_conf, rov_value) + if ret is False: + msg = "%s get output voltage value failed, msg: %s" % (avs_name, dcdc_value) + avscontrol_error(msg) + return False, msg + ret, msg = set_avs_value(avs_conf, dcdc_value) + return ret, msg + except Exception as e: + msg = "%s avscontrol raise exception, msg: %s" % (avs_name, str(e)) + avscontrol_error(msg) + return False, msg + + +def doAvsCtrol(avs_conf): + retry_time = avs_conf.get("retry", 10) + for i in range(retry_time): + debug_init() + ret, log = doAvsCtrol_single(avs_conf) + if ret is True: + return True, log + time.sleep(1) + return False, log + + +def run(): + # wait 30s for device steady + time.sleep(30) + errcnt = 0 + msg = "" + for item in MAC_DEFAULT_PARAM: + status, log = doAvsCtrol(item) + if status is False: + errcnt += 1 + msg += log + + if errcnt == 0: + avsinfo("%%AVSCONTROL success") + sys.exit(0) + avserror("%%DEV_MONITOR-AVS: MAC Voltage adjust failed.") + avserror("%%DEV_MONITOR-AVS: errmsg: %s" % msg) + sys.exit(1) + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''device operator''' + + +@main.command() +def start(): + '''start AVS control''' + avsinfo("%%AVSCONTROL start") + run() + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/dev_monitor.py b/platform/broadcom/sonic-platform-modules-micas/common/script/dev_monitor.py new file mode 100755 index 000000000000..e13377b80fe9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/dev_monitor.py @@ -0,0 +1,303 @@ +#!/usr/bin/env python3 +import sys +import os +import time +import syslog +import traceback +import click +from platform_config import DEV_MONITOR_PARAM +from platform_util import io_rd, wbi2cget + + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +DEVMONITOR_DEBUG_FILE = "/etc/.devmonitor_debug_flag" + +debuglevel = 0 + + +def debug_init(): + global debuglevel + if os.path.exists(DEVMONITOR_DEBUG_FILE): + debuglevel = 1 + else: + debuglevel = 0 + + +def devwarninglog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("DEVMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +def devcriticallog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("DEVMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_CRIT, s) + + +def deverror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("DEVMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def devinfo(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("DEVMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def devdebuglog(s): + # s = s.decode('utf-8').encode('gb2312') + if debuglevel == 1: + syslog.openlog("DEVMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +class DevMonitor(): + + def getpresentstatus(self, param): + try: + ret = {} + ret["status"] = '' + gettype = param.get('gettype') + presentbit = param.get('presentbit') + okval = param.get('okval') + if gettype == "io": + io_addr = param.get('io_addr') + val = io_rd(io_addr) + if val is None: + ret["status"] = "NOT OK" + return ret + retval = val + else: + bus = param.get('bus') + loc = param.get('loc') + offset = param.get('offset') + ind, val = wbi2cget(bus, loc, offset) + if ind is not True: + ret["status"] = "NOT OK" + return ret + retval = val + val_t = (int(retval, 16) & (1 << presentbit)) >> presentbit + if val_t != okval: + ret["status"] = "ABSENT" + else: + ret["status"] = "PRESENT" + except Exception as e: + ret["status"] = "NOT OK" + deverror("getpresentstatus error") + deverror(str(e)) + return ret + + def removeDev(self, bus, loc): + cmd = "echo 0x%02x > /sys/bus/i2c/devices/i2c-%d/delete_device" % (loc, bus) + devpath = "/sys/bus/i2c/devices/%d-%04x" % (bus, loc) + if os.path.exists(devpath): + os.system(cmd) + + def addDev(self, name, bus, loc): + if name == "lm75": + time.sleep(0.1) + cmd = "echo %s 0x%02x > /sys/bus/i2c/devices/i2c-%d/new_device" % (name, loc, bus) + devpath = "/sys/bus/i2c/devices/%d-%04x" % (bus, loc) + if os.path.exists(devpath) is False: + os.system(cmd) + + def checkattr(self, bus, loc, attr): + try: + attrpath = "/sys/bus/i2c/devices/%d-%04x/%s" % (bus, loc, attr) + if os.path.exists(attrpath): + return True + except Exception as e: + deverror("checkattr error") + deverror(str(e)) + return False + + def monitor(self, ret): + totalerr = 0 + for item in ret: + try: + name = item.get('name') + itemattr = '%sattr' % name + val_t = getattr(DevMonitor, itemattr, None) + if val_t == 'OK': + continue + present = item.get('present', None) + devices = item.get('device') + err_t = 0 + for item_dev in devices: + item_devattr = '%s' % (item_dev['id']) + val_t = getattr(DevMonitor, item_devattr, None) + if val_t == 'OK': + continue + devname = item_dev.get('name') + bus = item_dev.get('bus') + loc = item_dev.get('loc') + attr = item_dev.get('attr') + if self.checkattr(bus, loc, attr) is False: + err_t -= 1 + setattr(DevMonitor, item_devattr, 'NOT OK') + if present is not None: + presentstatus = self.getpresentstatus(present) + devdebuglog("%s present status:%s" % (name, presentstatus.get('status'))) + if presentstatus.get('status') == 'PRESENT': + self.removeDev(bus, loc) + time.sleep(0.1) + self.addDev(devname, bus, loc) + else: + self.removeDev(bus, loc) + time.sleep(0.1) + self.addDev(devname, bus, loc) + else: + setattr(DevMonitor, item_devattr, 'OK') + val_t = getattr(DevMonitor, item_devattr, None) + devdebuglog("%s status %s" % (item_devattr, val_t)) + if err_t == 0: + setattr(DevMonitor, itemattr, 'OK') + else: + totalerr -= 1 + setattr(DevMonitor, itemattr, 'NOT OK') + val_t = getattr(DevMonitor, itemattr, None) + devdebuglog("%s status %s" % (itemattr, val_t)) + except Exception as e: + totalerr -= 1 + deverror("monitor error") + deverror(str(e)) + return totalerr + + def psusmonitor(self): + psus_conf = DEV_MONITOR_PARAM.get('psus') + if psus_conf is None: + return 0 + psusattr = 'psusattr' + val_t = getattr(DevMonitor, psusattr, None) + if val_t == 'OK': + return 0 + ret = self.monitor(psus_conf) + if ret == 0: + setattr(DevMonitor, psusattr, 'OK') + else: + setattr(DevMonitor, psusattr, 'NOT OK') + val_t = getattr(DevMonitor, psusattr, None) + devdebuglog("psusattr:value:%s" % (val_t)) + return ret + + def fansmonitor(self): + fans_conf = DEV_MONITOR_PARAM.get('fans') + if fans_conf is None: + return 0 + fansattr = 'fansattr' + val_t = getattr(DevMonitor, fansattr, None) + if val_t == 'OK': + return 0 + ret = self.monitor(fans_conf) + if ret == 0: + setattr(DevMonitor, fansattr, 'OK') + else: + setattr(DevMonitor, fansattr, 'NOT OK') + val_t = getattr(DevMonitor, fansattr, None) + devdebuglog("fansattr:value:%s" % (val_t)) + return ret + + def slotsmonitor(self): + slots_conf = DEV_MONITOR_PARAM.get('slots') + if slots_conf is None: + return 0 + slotsattr = 'slotsattr' + val_t = getattr(DevMonitor, slotsattr, None) + if val_t == 'OK': + return 0 + ret = self.monitor(slots_conf) + if ret == 0: + setattr(DevMonitor, slotsattr, 'OK') + else: + setattr(DevMonitor, slotsattr, 'NOT OK') + val_t = getattr(DevMonitor, slotsattr, None) + devdebuglog("slotsattr:value:%s" % (val_t)) + return ret + + def othersmonitor(self): + others_conf = DEV_MONITOR_PARAM.get('others') + if others_conf is None: + return 0 + othersattr = 'othersattr' + val_t = getattr(DevMonitor, othersattr, None) + if val_t == 'OK': + return 0 + ret = self.monitor(others_conf) + if ret == 0: + setattr(DevMonitor, othersattr, 'OK') + else: + setattr(DevMonitor, othersattr, 'NOT OK') + val_t = getattr(DevMonitor, othersattr, None) + devdebuglog("othersattr:value:%s" % (val_t)) + return ret + + +def doDevMonitor(devMonitor): + ret_t = 0 + ret_t += devMonitor.psusmonitor() + ret_t += devMonitor.fansmonitor() + ret_t += devMonitor.slotsmonitor() + ret_t += devMonitor.othersmonitor() + return ret_t + + +def run(interval, devMonitor): + # devMonitor.devattrinit() + while True: + try: + debug_init() + ret = doDevMonitor(devMonitor) + except Exception as e: + traceback.print_exc() + deverror(str(e)) + ret = -1 + if ret == 0: + time.sleep(5) + devinfo("dev_monitor finished!") + sys.exit(0) + time.sleep(interval) + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''device operator''' + + +@main.command() +def start(): + '''start device monitor''' + devinfo("dev_monitor start") + devMonitor = DevMonitor() + interval = DEV_MONITOR_PARAM.get('polling_time', 10) + run(interval, devMonitor) + + +@main.command() +def stop(): + '''stop device monitor ''' + devinfo("stop") + + +# device_i2c operation +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py b/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py new file mode 100755 index 000000000000..29d18e7b2688 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +''' +generate board air flow according to fan and psu air flow +write resulet to AIRFLOW_RESULT_FILE, file format: +{ + "FAN1": { + "model":"M1HFAN I-F", + "airflow":"intake", + }, + "PSU1": { + "model":"CSU550AP-3-500", + "airflow":"intake", + }, + "board":"intake" +} +''' +import os +import syslog +import json +from platform_config import AIR_FLOW_CONF, AIRFLOW_RESULT_FILE +from platform_util import dev_file_read, byteTostr +from eepromutil.fru import ipmifru +from eepromutil.fantlv import fan_tlv + + +AIRFLOW_DEBUG_FILE = "/etc/.airflow_debug_flag" + +AIRFLOWERROR = 1 +AIRFLOWDEBUG = 2 + +debuglevel = 0 + + +def airflow_info(s): + syslog.openlog("AIRFLOW", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def airflow_error(s): + syslog.openlog("AIRFLOW", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def airflow_debug(s): + if AIRFLOWDEBUG & debuglevel: + syslog.openlog("AIRFLOW", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def airflow_debug_error(s): + if AIRFLOWERROR & debuglevel: + syslog.openlog("AIRFLOW", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def debug_init(): + global debuglevel + try: + with open(AIRFLOW_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + +def get_model_fru(device, eeprom): + try: + fru = ipmifru() + fru.decodeBin(eeprom) + dev_name = device.get("name") + area = device.get("area") + field = device.get("field") + tmp_area = getattr(fru, area, None) + if tmp_area is None: + msg = "%s fru %s area config error" % (dev_name, area) + return False, msg + model = getattr(tmp_area, field, None) + if model is None: + msg = "%s get model error, area: %s, field: %s" % (dev_name, area, field) + return False, msg + airflow_debug("%s get model success, model: %s" % (dev_name, model)) + return True, model + except Exception as e: + return False, str(e) + + +def get_model_fantlv(device, eeprom): + try: + dev_name = device.get("name") + tlv = fan_tlv() + rets = tlv.decode(eeprom) + if len(rets) == 0: + msg = "%s decode fantlv eeprom info error" % dev_name + return False, msg + + field = device.get("field") + for fantlv_item in rets: + if fantlv_item.get("name") == field: + return True, fantlv_item["value"] + msg = "%s get model error, field: %s not found" % (dev_name, field) + return False, msg + except Exception as e: + return False, str(e) + + +def get_device_modele(device): + e2_type = device.get("e2_type") + dev_name = device.get("name") + support_e2_type = ("fru", "fantlv") + if e2_type not in support_e2_type: + msg = "%s unsupport e2_type: %s" % (dev_name, e2_type) + return False, msg + + e2_path = device.get("e2_path") + e2_size = device.get("e2_size", 256) + ret, binval_bytes = dev_file_read(e2_path, 0, e2_size) + if ret is False: + msg = "%s eeprom read error, eeprom path: %s, msg: %s" % (dev_name, e2_path, binval_bytes) + return False, msg + + binval = byteTostr(binval_bytes) + if e2_type == "fru": + return get_model_fru(device, binval) + return get_model_fantlv(device, binval) + + +def get_board_air_flow(fan_intake_num, fan_exhaust_num, psu_intake_num, psu_exhaust_num): + airflow_debug("fan_intake_num: %d, fan_exhaust_num: %d, psu_intake_num: %d, psu_exhaust_num: %d" % + (fan_intake_num, fan_exhaust_num, psu_intake_num, psu_exhaust_num)) + + if fan_intake_num == 0 and fan_exhaust_num == 0 and psu_intake_num == 0 and psu_exhaust_num == 0: + airflow_error("get all fans and psus air flow failed") + return "N/A" + + if fan_intake_num > fan_exhaust_num: + airflow_debug("fan intake number %d more than fan exhaust number %s, set board air flow: intake") + return "intake" + + if fan_intake_num < fan_exhaust_num: + airflow_debug("fan intake number less than fan exhaust number, set board air flow: exhaust") + return "exhaust" + + airflow_debug("fan intake number equal to exhaust number, check psu air flow") + + if psu_intake_num > psu_exhaust_num: + airflow_debug("psu intake number more than psu exhaust number, set board air flow: intake") + return "intake" + + if psu_intake_num < psu_exhaust_num: + airflow_debug("psu intake number less than psu exhaust number, set board air flow: exhaust") + return "exhaust" + + airflow_debug("fan and psu intake and exhaust number equal, return intake") + return "intake" + + +def generate_airflow(): + fan_intake_list = [] + fan_exhaust_list = [] + psu_intake_list = [] + psu_exhaust_list = [] + ret = {} + fans = AIR_FLOW_CONF.get("fans", []) + psus = AIR_FLOW_CONF.get("psus", []) + + for fan in fans: + dev_name = fan.get("name") + air_flow = "N/A" + status, model = get_device_modele(fan) + if status is False: + ret[dev_name] = {"model": "N/A", "airflow": "N/A"} + airflow_error(model) + continue + model = model.strip() + airflowconifg = AIR_FLOW_CONF[fan["decode"]] + for key, value in airflowconifg.items(): + if model in value: + air_flow = key + ret[dev_name] = {"model": model, "airflow": air_flow} + airflow_debug("%s model: %s, airflow: %s" % (dev_name, model, air_flow)) + if air_flow == "intake": + fan_intake_list.append(fan.get("name")) + elif air_flow == "exhaust": + fan_exhaust_list.append(fan.get("name")) + + airflow_debug("fan_intake_list: %s" % fan_intake_list) + airflow_debug("fan_exhaust_list: %s" % fan_exhaust_list) + + for psu in psus: + dev_name = psu.get("name") + air_flow = "N/A" + status, model = get_device_modele(psu) + if status is False: + ret[dev_name] = {"model": "N/A", "airflow": "N/A"} + airflow_error(model) + continue + model = model.strip() + airflowconifg = AIR_FLOW_CONF[psu["decode"]] + for key, value in airflowconifg.items(): + if model in value: + air_flow = key + ret[dev_name] = {"model": model, "airflow": air_flow} + airflow_debug("%s model: %s, airflow: %s" % (dev_name, model, air_flow)) + if air_flow == "intake": + psu_intake_list.append(psu.get("name")) + elif air_flow == "exhaust": + psu_exhaust_list.append(psu.get("name")) + + airflow_debug("psu_intake_list: %s" % psu_intake_list) + airflow_debug("psu_exhaust_list: %s" % psu_exhaust_list) + + fan_intake_num = len(fan_intake_list) + fan_exhaust_num = len(fan_exhaust_list) + psu_intake_num = len(psu_intake_list) + psu_exhaust_num = len(psu_exhaust_list) + + board_airflow = get_board_air_flow(fan_intake_num, fan_exhaust_num, psu_intake_num, psu_exhaust_num) + airflow_debug("board_airflow: %s" % board_airflow) + ret["board"] = board_airflow + ret_json = json.dumps(ret, ensure_ascii=False, indent=4) + + out_file_dir = os.path.dirname(AIRFLOW_RESULT_FILE) + if len(out_file_dir) != 0: + cmd = "mkdir -p %s" % out_file_dir + os.system(cmd) + os.system("sync") + with open(AIRFLOW_RESULT_FILE, "w") as fd: + fd.write(ret_json) + os.system("sync") + + +if __name__ == '__main__': + debug_init() + airflow_debug("enter main") + generate_airflow() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py new file mode 100755 index 000000000000..7722b111f944 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py @@ -0,0 +1,1135 @@ +#!/usr/bin/env python3 +import os +import subprocess +import time +import syslog +import traceback +from plat_hal.interface import interface +from plat_hal.baseutil import baseutil +from algorithm.pid import pid +from algorithm.openloop import openloop +from algorithm.hysteresis import hysteresis + + +SWITCH_TEMP = "SWITCH_TEMP" +INLET_TEMP = "INLET_TEMP" +BOARD_TEMP = "BOARD_TEMP" +OUTLET_TEMP = "OUTLET_TEMP" +CPU_TEMP = "CPU_TEMP" + +FANCTROL_DEBUG_FILE = "/etc/.fancontrol_debug_flag" +# coordination with REBOOT_CAUSE_PARA +OTP_SWITCH_REBOOT_JUDGE_FILE = "/etc/.otp_reboot_flag" +OTP_OTHER_REBOOT_JUDGE_FILE = OTP_SWITCH_REBOOT_JUDGE_FILE + +FANCTROLERROR = 1 +FANCTROLDEBUG = 2 +FANAIRFLOWDEBUG = 4 + +debuglevel = 0 + +F2B_AIR_FLOW = "intake" +B2F_AIR_FLOW = "exhaust" +ONIE_E2_NAME = "ONIE_E2" + +TEMP_REBOOT_CRIT_SWITCH_FLAG = 1 +TEMP_REBOOT_CRIT_OTHER_FLAG = 2 + + +def fancontrol_debug(s): + if FANCTROLDEBUG & debuglevel: + syslog.openlog("FANCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def fancontrol_error(s): + if FANCTROLERROR & debuglevel: + syslog.openlog("FANCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def fanairflow_debug(s): + if FANAIRFLOWDEBUG & debuglevel: + syslog.openlog("AIR_FLOW_MONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def fancontrol_warn(s): + syslog.openlog("FANCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_WARNING, s) + + +def fancontrol_crit(s): + syslog.openlog("FANCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_CRIT, s) + + +def fancontrol_alert(s): + syslog.openlog("FANCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_ALERT, s) + + +def fancontrol_emerg(s): + syslog.openlog("FANCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_EMERG, s) + + +def exec_os_cmd(cmd): + status, output = subprocess.getstatusoutput(cmd) + if status: + print(output) + return status, output + + +def debug_init(): + global debuglevel + try: + with open(FANCTROL_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + +error_temp = -9999 # get temp error +invalid_temp = -10000 # get temp invalid +PRE_FAN_NOK_UNKNOWN = "UNKNOWN" + + +class DevFan(object): + + def __init__(self, name, hal_interface): + self.__name = name + self.origin_name = None + self.display_name = None + self.air_flow = None + self.air_flow_inconsistent = False + self.int_case = hal_interface + + @property + def name(self): + return self.__name + + def get_fan_rotor_number(self): + return self.int_case.get_fan_rotor_number(self.name) + + def get_fan_presence(self): + return self.int_case.get_fan_presence(self.name) + + def get_fan_rotor_status(self, rotor_name): + return self.int_case.get_fan_rotor_status(self.name, rotor_name) + + def get_fan_fru_info(self): + return self.int_case.get_fan_fru_info(self.name) + + @property + def na_ret(self): + return self.int_case.na_ret + + def update_fru_info(self): + try: + dic = self.get_fan_fru_info() + self.origin_name = dic["PN"] + self.air_flow = dic["AirFlow"] + self.display_name = dic["DisplayName"] + except Exception as e: + fanairflow_debug("update %s fru info error, msg: %s" % (self.name, str(e))) + self.origin_name = self.na_ret + self.air_flow = self.na_ret + self.display_name = self.na_ret + + +class DevPsu(object): + + def __init__(self, name, hal_interface): + self.__name = name + self.origin_name = None + self.display_name = None + self.air_flow = None + self.air_flow_inconsistent = False + self.int_case = hal_interface + + @property + def name(self): + return self.__name + + def get_psu_fru_info(self): + return self.int_case.get_psu_fru_info(self.name) + + @property + def na_ret(self): + return self.int_case.na_ret + + def update_fru_info(self): + try: + dic = self.get_psu_fru_info() + self.origin_name = dic["PN"] + self.air_flow = dic["AirFlow"] + self.display_name = dic["DisplayName"] + except Exception as e: + fanairflow_debug("update %s fru info error, msg: %s" % (self.name, str(e))) + self.origin_name = self.na_ret + self.air_flow = self.na_ret + self.display_name = self.na_ret + + +class fancontrol(object): + __int_case = None + + __pwm = 0x80 + + def __init__(self): + self.int_case = interface() + self.__config = baseutil.get_monitor_config() + self.__pid_config = self.__config["pid"] + self.__hyst_config = self.__config.get("hyst", {}) + self.__temps_threshold_config = self.__config["temps_threshold"] + for temp_threshold in self.__temps_threshold_config.values(): + temp_threshold['temp'] = 0 + temp_threshold['fail_num'] = 0 + temp_threshold['warning_num'] = 0 # temp warning times + temp_threshold['critical_num'] = 0 # temp critical times + temp_threshold['emergency_num'] = 0 # temp emergency times + temp_threshold.setdefault('ignore_threshold', 0) # default temp threshold on + temp_threshold.setdefault('invalid', invalid_temp) + temp_threshold.setdefault('error', error_temp) + + self.__otp_reboot_judge_file_config = self.__config.get("otp_reboot_judge_file", None) + if self.__otp_reboot_judge_file_config is None: + self.__otp_switch_reboot_judge_file = OTP_SWITCH_REBOOT_JUDGE_FILE + self.__otp_other_reboot_judge_file = OTP_OTHER_REBOOT_JUDGE_FILE + else: + self.__otp_switch_reboot_judge_file = self.__otp_reboot_judge_file_config.get( + "otp_switch_reboot_judge_file", OTP_SWITCH_REBOOT_JUDGE_FILE) + self.__otp_other_reboot_judge_file = self.__otp_reboot_judge_file_config.get( + "otp_other_reboot_judge_file", OTP_OTHER_REBOOT_JUDGE_FILE) + + self.__fan_rotor_error_num = {} + self.__fan_present_status = {} # {"FAN1":0, "FAN2":1...} 1:present, 0:absent + self.__fan_rotate_status = {} # {"FAN1":0, "FAN2":1...} 1:OK, 0:NOT OK + self.__fan_repair_flag = {} # {"FAN1":0, "FAN2":1...} 1:repair, 0:give up + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + self.__fan_present_status[fan_name] = 1 # present + self.__fan_rotate_status[fan_name] = 1 # OK + self.__fan_repair_flag[fan_name] = 1 # repair + rotor_num = self.get_rotor_number(fan_name) + tmp_fan = {} + for j in range(rotor_num): + rotor_name = "Rotor" + str(j + 1) + tmp_fan[rotor_name] = 0 # not error + self.__fan_rotor_error_num[fan_name] = tmp_fan + + self.__fancontrol_para = self.__config["fancontrol_para"] + self.__interval = self.__fancontrol_para.get("interval", 5) + self.__fan_status_interval = self.__fancontrol_para.get("fan_status_interval", 0) + self.__max_pwm = self.__fancontrol_para.get("max_pwm", 0xff) + self.__min_pwm = self.__fancontrol_para.get("min_pwm", 0x80) + self.__abnormal_pwm = self.__fancontrol_para.get("abnormal_pwm", 0xbb) + self.__warning_pwm = self.__fancontrol_para.get("warning_pwm", 0xff) + self.__temp_invalid_pid_pwm = self.__fancontrol_para.get("temp_invalid_pid_pwm", 0x80) + self.__temp_error_pid_pwm = self.__fancontrol_para.get("temp_error_pid_pwm", 0x80) + self.__temp_fail_num = self.__fancontrol_para.get("temp_fail_num", 3) + self.__check_temp_fail = self.__fancontrol_para.get("check_temp_fail", []) + self.__temp_warning_num = self.__fancontrol_para.get("temp_warning_num", 3) + self.__temp_critical_num = self.__fancontrol_para.get("temp_critical_num", 3) + self.__temp_emergency_num = self.__fancontrol_para.get("temp_emergency_num", 3) + self.__temp_warning_countdown = self.__fancontrol_para.get("temp_warning_countdown", 60) + self.__temp_critical_countdown = self.__fancontrol_para.get("temp_critical_countdown", 60) + self.__temp_emergency_countdown = self.__fancontrol_para.get("temp_emergency_countdown", 60) + self.__rotor_error_count = self.__fancontrol_para.get("rotor_error_count", 6) + self.__inlet_mac_diff = self.__fancontrol_para.get("inlet_mac_diff", 50) + self.__check_crit_reboot_flag = self.__fancontrol_para.get("check_crit_reboot_flag", 1) + self.__check_emerg_reboot_flag = self.__fancontrol_para.get("check_emerg_reboot_flag", 1) + self.__check_crit_reboot_num = self.__fancontrol_para.get("check_crit_reboot_num", 3) + self.__check_crit_sleep_time = self.__fancontrol_para.get("check_crit_sleep_time", 20) + self.__check_emerg_reboot_num = self.__fancontrol_para.get("check_emerg_reboot_num", 3) + self.__check_emerg_sleep_time = self.__fancontrol_para.get("check_emerg_sleep_time", 20) + self.__check_temp_emergency = self.__fancontrol_para.get("check_temp_emergency", 0) + self.__check_temp_critical = self.__fancontrol_para.get("check_temp_critical", 1) + self.__check_temp_warning = self.__fancontrol_para.get("check_temp_warning", 1) + self.__check_temp_emergency_reboot = self.__fancontrol_para.get("check_temp_emergency_reboot", []) + self.__psu_absent_fullspeed_num = self.__fancontrol_para.get("psu_absent_fullspeed_num", 1) + self.__fan_absent_fullspeed_num = self.__fancontrol_para.get("fan_absent_fullspeed_num", 1) + self.__rotor_error_fullspeed_num = self.__fancontrol_para.get("rotor_error_fullspeed_num", 1) + self.__psu_fan_control = self.__fancontrol_para.get("psu_fan_control", 1) # default control psu fan + self.__fan_plug_in_pwm = self.__fancontrol_para.get("fan_plug_in_pwm", 0x80) + self.__fan_plug_in_default_countdown = self.__fancontrol_para.get("fan_plug_in_default_countdown", 0) + self.__deal_fan_error_policy = self.__fancontrol_para.get("deal_fan_error", 0) + self.__deal_fan_error_conf = self.__fancontrol_para.get("deal_fan_error_conf", {}) + self.__deal_fan_error_default_countdown = self.__deal_fan_error_conf.get("countdown", 0) + + self.__warning_countdown = 0 # temp warning flag for normal fancontrol + self.__critical_countdown = 0 # temp critical flag for normal fancontrol + self.__emergency_countdown = 0 # temp emergency flag for normal fancontrol + self.__fan_plug_in_countdown = 0 # fan plug in flag for normal fancontrol + self.__deal_fan_error_countdown = 0 + self.__fan_absent_num = 0 + self.__fan_nok_num = 0 + self.__pre_fan_nok = PRE_FAN_NOK_UNKNOWN + self.openloop = openloop() + self.pid = pid() + self.hyst = hysteresis() + self.__pwm = self.__min_pwm + + self.__board_air_flow = "" + self.__fan_air_flow_monitor = self.__fancontrol_para.get("fan_air_flow_monitor", 0) + self.__psu_air_flow_monitor = self.__fancontrol_para.get("psu_air_flow_monitor", 0) + self.__air_flow_correct_fan_pwm = self.__fancontrol_para.get("air_flow_correct_fan_pwm", 0xff) + self.__air_flow_correct_psu_pwm = self.__fancontrol_para.get("air_flow_correct_psu_pwm", 0xff) + self.__air_flow_error_fan_pwm = self.__fancontrol_para.get("air_flow_error_fan_pwm", 0) + self.__air_flow_error_psu_pwm = self.__fancontrol_para.get("air_flow_error_psu_pwm", 0) + self.fan_air_flow_inconsistent_flag = False + self.psu_air_flow_inconsistent_flag = False + self.air_flow_inconsistent_flag = False + self.fan_obj_list = [] + self.psu_obj_list = [] + + @property + def na_ret(self): + return self.int_case.na_ret + + def get_onie_e2_obj(self, name): + return self.int_case.get_onie_e2_obj(name) + + @property + def board_air_flow(self): + air_flow_tuple = (F2B_AIR_FLOW, B2F_AIR_FLOW) + if self.__board_air_flow not in air_flow_tuple: + self.__board_air_flow = self.int_case.get_device_airflow(ONIE_E2_NAME) + fanairflow_debug("board_air_flow: %s" % self.__board_air_flow) + return self.__board_air_flow + + @property + def fan_air_flow_monitor(self): + return self.__fan_air_flow_monitor + + @property + def psu_air_flow_monitor(self): + return self.__psu_air_flow_monitor + + @property + def air_flow_correct_fan_pwm(self): + return self.__air_flow_correct_fan_pwm + + @property + def air_flow_correct_psu_pwm(self): + return self.__air_flow_correct_psu_pwm + + @property + def air_flow_error_fan_pwm(self): + return self.__air_flow_error_fan_pwm + + @property + def air_flow_error_psu_pwm(self): + return self.__air_flow_error_psu_pwm + + def get_para(self, t): + para = self.__pid_config.get(t) + return para + + def update_over_temp_threshold_num(self): + for temp_threshold in self.__temps_threshold_config.values(): + if temp_threshold['ignore_threshold']: + continue + emergency_threshold = temp_threshold.get('emergency', None) + critical_threshold = temp_threshold.get('critical', None) + warning_threshold = temp_threshold.get('warning', None) + fancontrol_debug("%s warning = %s, critical = %s, emergency = %s" % + (temp_threshold['name'], warning_threshold, critical_threshold, emergency_threshold)) + + if emergency_threshold is not None and temp_threshold['temp'] >= emergency_threshold: + temp_threshold['emergency_num'] += 1 + else: + temp_threshold['emergency_num'] = 0 + + if critical_threshold is not None and temp_threshold['temp'] >= critical_threshold: + temp_threshold['critical_num'] += 1 + else: + temp_threshold['critical_num'] = 0 + + if warning_threshold is not None and temp_threshold['temp'] >= warning_threshold: + temp_threshold['warning_num'] += 1 + else: + temp_threshold['warning_num'] = 0 + + fancontrol_debug("%s warning_num = %d, critical_num = %d, emergency_num = %d" % + (temp_threshold['name'], temp_threshold['warning_num'], temp_threshold['critical_num'], temp_threshold.get("emergency_num"))) + + def get_monitor_temp(self): + sensorlist = self.int_case.get_temp_info() + + for temp_threshold in self.__temps_threshold_config.values(): + sensor = sensorlist.get(temp_threshold['name']) + if sensor["Value"] is None or int(sensor["Value"]) == self.int_case.error_ret: + temp_threshold['fail_num'] += 1 + fancontrol_error("get %s failed, fail_num = %d" % (temp_threshold['name'], temp_threshold['fail_num'])) + else: + temp_threshold['fail_num'] = 0 + temp_threshold.setdefault('fix', 0) + temp_threshold['temp'] = sensor["Value"] + temp_threshold['fix'] + fancontrol_debug("%s = %d" % (temp_threshold['name'], temp_threshold['temp'])) + self.update_over_temp_threshold_num() + + def is_temp_warning(self): + warning_flag = False + for temp_threshold in self.__temps_threshold_config.values(): + if temp_threshold['ignore_threshold']: + continue + if temp_threshold['warning_num'] >= self.__temp_warning_num: + warning_flag = True + fancontrol_warn("%%FANCONTROL-4-TEMP_HIGH: %s temperature %sC is larger than warning threshold %sC." % + (temp_threshold['name'], temp_threshold['temp'], temp_threshold.get('warning'))) + return warning_flag + + def checkTempWarning(self): + try: + if self.is_temp_warning(): + self.__warning_countdown = self.__temp_warning_countdown + fancontrol_debug("temp is over warning") + return True + if self.__warning_countdown > 0: + self.__warning_countdown -= 1 + return False + except Exception as e: + fancontrol_error("%%policy: checkTempWarning failed") + fancontrol_error(str(e)) + return False + + def checkTempWarningCountdown(self): + if self.__warning_countdown > 0: + return True + return False + + def is_temp_critical(self): + critical_flag = False + for temp_threshold in self.__temps_threshold_config.values(): + temp_threshold['critical_flag'] = False + if temp_threshold['ignore_threshold']: + continue + if temp_threshold['critical_num'] >= self.__temp_critical_num: + critical_flag = True + temp_threshold['critical_flag'] = True + fancontrol_crit("%%FANCONTROL-2-TEMP_HIGH: %s temperature %sC is larger than critical threshold %sC." % + (temp_threshold['name'], temp_threshold['temp'], temp_threshold.get('critical'))) + return critical_flag + + def checkTempCritical(self): + try: + if self.is_temp_critical(): + self.__critical_countdown = self.__temp_critical_countdown + fancontrol_debug("temp is over critical") + return True + if self.__critical_countdown > 0: + self.__critical_countdown -= 1 + return False + except Exception as e: + fancontrol_error("%%policy: checkTempCrit failed") + fancontrol_error(str(e)) + return False + + def is_temp_emergency(self): + emergency_flag = False + for temp_threshold in self.__temps_threshold_config.values(): + temp_threshold['emergency_flag'] = False + if temp_threshold['ignore_threshold']: + continue + if temp_threshold['emergency_num'] >= self.__temp_emergency_num: + emergency_flag = True + temp_threshold['emergency_flag'] = True + fancontrol_alert("%%FANCONTROL-1-TEMP_HIGH: %s temperature %sC is larger than emergency threshold %sC." % + (temp_threshold['name'], temp_threshold['temp'], temp_threshold.get('emergency'))) + return emergency_flag + + def checkTempEmergency(self): + try: + if self.is_temp_emergency(): + self.__emergency_countdown = self.__temp_emergency_countdown + fancontrol_debug("temp is over emergency") + return True + if self.__emergency_countdown > 0: + self.__emergency_countdown -= 1 + return False + except Exception as e: + fancontrol_error("%%policy: checkTempEmergency failed") + fancontrol_error(str(e)) + return False + + def checkTempCriticalCountdown(self): + if self.__critical_countdown > 0: + return True + return False + + def checkTempEmergencyCountdown(self): + if self.__emergency_countdown > 0: + return True + return False + + def checkTempRebootCrit(self): + try: + if self.is_temp_critical(): + temp_dict = dict(self.__temps_threshold_config) + tmp = temp_dict.get(SWITCH_TEMP) + if tmp['critical_flag'] is True: + fancontrol_debug("switch temp is over reboot critical") + return TEMP_REBOOT_CRIT_SWITCH_FLAG + del temp_dict[SWITCH_TEMP] + for temp_items in temp_dict.values(): + if temp_items['ignore_threshold']: + continue + if temp_items['critical_flag'] is False: + return 0 + + fancontrol_debug("other temp is over reboot critical") + return TEMP_REBOOT_CRIT_OTHER_FLAG + except Exception as e: + fancontrol_error("%%policy: checkTempRebootCrit failed") + fancontrol_error(str(e)) + return 0 + + def checkCritReboot(self): + try: + reboot_flag = self.checkTempRebootCrit() + if reboot_flag > 0: + self.set_all_fan_speed_pwm(self.__max_pwm) + for i in range(self.__check_crit_reboot_num): + time.sleep(self.__check_crit_sleep_time) + self.get_monitor_temp() + reboot_flag = self.checkTempRebootCrit() + if reboot_flag > 0: + fancontrol_emerg("%%FANCONTROL-0-TEMP_EMERG: The temperature of device over reboot critical value lasts for %d seconds." % + (self.__check_crit_sleep_time * (i + 1))) + continue + fancontrol_debug("The temperature of device is not over reboot critical value.") + break + if reboot_flag > 0: + fancontrol_emerg( + "%%FANCONTROL-0-TEMP_EMERG: The temperature of device over reboot critical value, system is going to reboot now.") + for temp_threshold in self.__temps_threshold_config.values(): + fancontrol_emerg( + "%%FANCONTROL-TEMP_EMERG: %s temperature: %sC." % + (temp_threshold['name'], temp_threshold['temp'])) + if reboot_flag == TEMP_REBOOT_CRIT_SWITCH_FLAG: + create_judge_file = "touch %s" % self.__otp_switch_reboot_judge_file + else: + create_judge_file = "touch %s" % self.__otp_other_reboot_judge_file + exec_os_cmd(create_judge_file) + exec_os_cmd("sync") + time.sleep(3) + os.system("/sbin/reboot") + except Exception as e: + fancontrol_error("%%policy: checkCritReboot failed") + fancontrol_error(str(e)) + + def checkTempRebootEmerg(self): + try: + if self.is_temp_emergency(): + temp_emerg_reboot_flag = False + for temp_list in self.__check_temp_emergency_reboot: + for temp in temp_list: + tmp = self.__temps_threshold_config.get(temp) + if tmp['emergency_flag'] is False: + fancontrol_debug("temp_list %s, temp: %s not emergency" % (temp_list, temp)) + temp_emerg_reboot_flag = False + break + temp_emerg_reboot_flag = True + if temp_emerg_reboot_flag is True: + fancontrol_debug("temp_list %s, all temp is over emergency reboot" % temp_list) + return True + except Exception as e: + fancontrol_error("%%policy: checkTempRebootEmerg failed") + fancontrol_error(str(e)) + return False + + def checkEmergReboot(self): + try: + reboot_flag = False + if self.checkTempRebootEmerg() is True: + self.set_all_fan_speed_pwm(self.__max_pwm) + for i in range(self.__check_emerg_reboot_num): + time.sleep(self.__check_emerg_sleep_time) + self.get_monitor_temp() + if self.checkTempRebootEmerg() is True: + fancontrol_emerg("%%FANCONTROL-0-TEMP_EMERG: The temperature of device over reboot emergency value lasts for %d seconds." % + (self.__check_emerg_sleep_time * (i + 1))) + reboot_flag = True + continue + fancontrol_debug("The temperature of device is not over reboot emergency value.") + reboot_flag = False + break + if reboot_flag is True: + fancontrol_emerg( + "%%FANCONTROL-0-TEMP_EMERG: The temperature of device over reboot emergency value, system is going to reboot now.") + for temp_threshold in self.__temps_threshold_config.values(): + fancontrol_emerg( + "%%FANCONTROL-0-TEMP_EMERG: %s temperature: %sC." % + (temp_threshold['name'], temp_threshold['temp'])) + create_judge_file = "touch %s" % OTP_SWITCH_REBOOT_JUDGE_FILE + exec_os_cmd(create_judge_file) + exec_os_cmd("sync") + time.sleep(3) + os.system("/sbin/reboot") + except Exception as e: + fancontrol_error("%%policy: checkEmergReboot failed") + fancontrol_error(str(e)) + + def get_fan_total_number(self): + return self.int_case.get_fan_total_number() + + def get_rotor_number(self, fan_name): + return self.int_case.get_fan_rotor_number(fan_name) + + def get_fan_presence(self, fan_name): + return self.int_case.get_fan_presence(fan_name) + + def get_fan_rotor_status(self, fan_name, rotor_name): + return self.int_case.get_fan_rotor_status(fan_name, rotor_name) + + def get_psu_total_number(self): + return self.int_case.get_psu_total_number() + + def get_psu_presence(self, psu_name): + return self.int_case.get_psu_presence(psu_name) + + def get_psu_input_output_status(self, psu_name): + return self.int_case.get_psu_input_output_status(psu_name) + + def checkFanPresence(self): + absent_num = 0 + + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + rotor_num = self.get_rotor_number(fan_name) + tmp_fan = self.__fan_rotor_error_num.get(fan_name) + status = self.get_fan_presence(fan_name) + if status is False: + absent_num = absent_num + 1 + self.__fan_present_status[fan_name] = 0 + fancontrol_debug("%s absent" % fan_name) + else: + if self.__fan_present_status[fan_name] == 0: # absent -> present + self.__pre_fan_nok = PRE_FAN_NOK_UNKNOWN + self.__fan_plug_in_countdown = self.__fan_plug_in_default_countdown + self.__fan_repair_flag[fan_name] = 1 + for j in range(rotor_num): + rotor_name = "Rotor" + str(j + 1) + tmp_fan[rotor_name] = 0 + self.__fan_present_status[fan_name] = 1 + fancontrol_debug("%s presence" % fan_name) + return absent_num + + def checkFanRotorStatus(self): + err_num = 0 + self.__fan_nok_num = 0 + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + rotor_num = self.get_rotor_number(fan_name) + tmp_fan = self.__fan_rotor_error_num.get(fan_name) + fan_rotor_err_cnt = 0 + for j in range(rotor_num): + rotor_name = "Rotor" + str(j + 1) + status = self.get_fan_rotor_status(fan_name, rotor_name) + if status is True: + tmp_fan[rotor_name] = 0 + fancontrol_debug("%s %s ok" % (fan_name, rotor_name)) + else: + tmp_fan[rotor_name] += 1 + if tmp_fan[rotor_name] >= self.__rotor_error_count: + err_num = err_num + 1 + fan_rotor_err_cnt += 1 + fancontrol_debug("%s %s error" % (fan_name, rotor_name)) + fancontrol_debug("%s %s error %d times" % (fan_name, rotor_name, tmp_fan[rotor_name])) + if fan_rotor_err_cnt == 0: + self.__fan_rotate_status[fan_name] = 1 # FAN is ok + else: + self.__fan_rotate_status[fan_name] = 0 # FAN is not ok + self.__fan_nok_num += 1 + fancontrol_debug("fan not ok number:%d." % self.__fan_nok_num) + return err_num + + def checkPsuPresence(self): + absent_num = 0 + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + status = self.get_psu_presence(psu_name) + if status is False: + absent_num = absent_num + 1 + fancontrol_debug("%s absent" % psu_name) + else: + fancontrol_debug("%s presence" % psu_name) + return absent_num + + def checkPsuStatus(self): + err_num = 0 + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + status = self.get_psu_input_output_status(psu_name) + if status is False: + err_num = err_num + 1 + fancontrol_debug("%s error" % psu_name) + else: + fancontrol_debug("%s ok" % psu_name) + return err_num + + def checkDevError(self): + pwm = self.__min_pwm + switchtemp = self.__temps_threshold_config.get(SWITCH_TEMP)['temp'] + inlettemp = self.__temps_threshold_config.get(INLET_TEMP)['temp'] + temp_diff = abs(switchtemp - inlettemp) + fancontrol_debug("|switchtemp - inlettemp| = %d" % temp_diff) + if temp_diff >= self.__inlet_mac_diff: + fancontrol_debug("temp_diff is over than inlet_mac_diff(%d)" % self.__inlet_mac_diff) + if self.__pwm > self.__abnormal_pwm: + pwm = self.__max_pwm + else: + pwm = self.__abnormal_pwm + return pwm + + def checktempfail(self): + pwm = self.__min_pwm + for temp in self.__check_temp_fail: + temp_name = temp.get("temp_name") + temp_fail_num = self.__temps_threshold_config.get(temp_name)['fail_num'] + if temp_fail_num >= self.__temp_fail_num: + pwm = self.__abnormal_pwm + fancontrol_debug("%s temp_fail_num = %d" % (temp_name, temp_fail_num)) + fancontrol_debug("self.__temp_fail_num = %d" % self.__temp_fail_num) + return pwm + + def abnormal_check(self): + pwm_list = [] + pwm_min = self.__min_pwm + pwm_list.append(pwm_min) + + if self.__check_temp_emergency == 1: + status = self.checkTempEmergency() + if status is True: + over_emerg_pwm = self.__max_pwm + pwm_list.append(over_emerg_pwm) + fancontrol_debug("over_emerg_pwm = 0x%x" % over_emerg_pwm) + # do reset check + if self.__check_emerg_reboot_flag == 1: + self.checkEmergReboot() + else: + if self.checkTempEmergencyCountdown() is True: # temp lower than emergency in 5 min + over_emerg_countdown_pwm = self.__max_pwm + pwm_list.append(over_emerg_countdown_pwm) + fancontrol_debug("TempEmergencyCountdown: %d, over_emerg_countdown_pwm = 0x%x" % + (self.__emergency_countdown, over_emerg_countdown_pwm)) + + if self.__check_temp_critical == 1: + status = self.checkTempCritical() + if status is True: + over_crit_pwm = self.__max_pwm + pwm_list.append(over_crit_pwm) + fancontrol_debug("over_crit_pwm = 0x%x" % over_crit_pwm) + # do reset check + if self.__check_crit_reboot_flag == 1: + self.checkCritReboot() + else: + if self.checkTempCriticalCountdown() is True: # temp lower than critical in 5 min + over_crit_countdown_pwm = self.__max_pwm + pwm_list.append(over_crit_countdown_pwm) + fancontrol_debug("TempCriticalCountdown: %d, over_crit_countdown_pwm = 0x%x" % + (self.__critical_countdown, over_crit_countdown_pwm)) + + if self.__check_temp_warning == 1: + status = self.checkTempWarning() + if status is True: + over_warn_pwm = self.__warning_pwm + pwm_list.append(over_warn_pwm) + fancontrol_debug("over_warn_pwm = 0x%x" % over_warn_pwm) + else: + if self.checkTempWarningCountdown() is True: # temp lower than warning in 5 min + over_warn_countdown_pwm = self.__warning_pwm + pwm_list.append(over_warn_countdown_pwm) + fancontrol_debug("TempWarningCountdown: %d, over_warn_countdown_pwm = 0x%x" % + (self.__warning_countdown, over_warn_countdown_pwm)) + + self.__fan_absent_num = self.checkFanPresence() + if self.__fan_absent_num >= self.__fan_absent_fullspeed_num: + fan_absent_pwm = self.__max_pwm + pwm_list.append(fan_absent_pwm) + fancontrol_debug("fan_absent_pwm = 0x%x" % fan_absent_pwm) + + rotor_err_num = self.checkFanRotorStatus() + if rotor_err_num >= self.__rotor_error_fullspeed_num: + rotor_err_pwm = self.__max_pwm + pwm_list.append(rotor_err_pwm) + fancontrol_debug("rotor_err_pwm = 0x%x" % rotor_err_pwm) + + psu_absent_num = self.checkPsuPresence() + if psu_absent_num >= self.__psu_absent_fullspeed_num: + psu_absent_pwm = self.__max_pwm + pwm_list.append(psu_absent_pwm) + fancontrol_debug("psu_absent_pwm = 0x%x" % psu_absent_pwm) + + dev_err_pwm = self.checkDevError() + pwm_list.append(dev_err_pwm) + fancontrol_debug("dev_err_pwm = 0x%x" % dev_err_pwm) + + temp_fail_pwm = self.checktempfail() + pwm_list.append(temp_fail_pwm) + fancontrol_debug("temp_fail_pwm = 0x%x" % temp_fail_pwm) + + pwm = max(pwm_list) + return pwm + + def get_error_fan(self): + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + if self.__fan_rotate_status[fan_name] == 0: + return fan_name + return None + + def fan_error_update_pwm(self, fan_pwm_dict): + try: + fancontrol_debug("enter deal fan error policy") + ori_fan_pwm_dict = fan_pwm_dict.copy() + + err_fan_name = self.get_error_fan() + if err_fan_name is None: + fancontrol_debug("fan name is None, do nothing.") + return ori_fan_pwm_dict + + if self.__fan_repair_flag[err_fan_name] == 0: + fancontrol_debug("%s already repaired, do nothing." % err_fan_name) + return ori_fan_pwm_dict + + if self.__pre_fan_nok != err_fan_name: + fancontrol_debug( + "not ok fan change from %s to %s, update countdown." % + (self.__pre_fan_nok, err_fan_name)) + self.__deal_fan_error_countdown = self.__deal_fan_error_default_countdown + if self.__pre_fan_nok != PRE_FAN_NOK_UNKNOWN: + fancontrol_debug( + "%s repaire success, %s NOT OK, try to repaire." % + (self.__pre_fan_nok, err_fan_name)) + self.__fan_repair_flag[self.__pre_fan_nok] = 0 + self.__pre_fan_nok = err_fan_name + + if self.__deal_fan_error_countdown > 0: + self.__deal_fan_error_countdown -= 1 + fancontrol_debug("%s repaire, countdown %d." % (err_fan_name, self.__deal_fan_error_countdown)) + + if self.__deal_fan_error_countdown == 0: + self.__fan_repair_flag[err_fan_name] = 0 + fancontrol_debug("%s set repaire fail flag, use origin pwm." % err_fan_name) + return ori_fan_pwm_dict + + fan_err_pwm_conf_list = self.__deal_fan_error_conf[err_fan_name] + for item in fan_err_pwm_conf_list: + fan_pwm_dict[item["name"]] = item["pwm"] + fancontrol_debug("fan pwm update, fan pwm dict:%s" % fan_pwm_dict) + + return fan_pwm_dict + except Exception as e: + fancontrol_error("%%policy: deal_fan_error raise Exception:%s" % str(e)) + self.__pre_fan_nok = PRE_FAN_NOK_UNKNOWN + return ori_fan_pwm_dict + + def get_fan_pwm_dict(self, default_pwm): + fan_pwm_dict = {} + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + fan_pwm_dict[fan_name] = default_pwm + if self.__deal_fan_error_policy: + if self.__fan_absent_num == 0 and self.__fan_nok_num == 1: + fan_pwm_dict = self.fan_error_update_pwm(fan_pwm_dict) + else: + if self.__pre_fan_nok != PRE_FAN_NOK_UNKNOWN and self.__fan_rotate_status[self.__pre_fan_nok] == 1: + fancontrol_debug("%s repaire success." % (self.__pre_fan_nok)) + self.__fan_repair_flag[self.__pre_fan_nok] = 0 + self.__pre_fan_nok = PRE_FAN_NOK_UNKNOWN + return fan_pwm_dict + + def get_psu_pwm_dict(self, default_pwm): + psu_pwm_dict = {} + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + psu_pwm_dict[psu_name] = default_pwm + return psu_pwm_dict + + def check_board_air_flow(self): + board_air_flow = self.board_air_flow + air_flow_tuple = (F2B_AIR_FLOW, B2F_AIR_FLOW) + if board_air_flow not in air_flow_tuple: + fanairflow_debug("get board air flow error, value [%s]" % board_air_flow) + return False + fanairflow_debug("board air flow check ok: %s" % board_air_flow) + return True + + def check_fan_air_flow(self): + if self.fan_air_flow_monitor: + fanairflow_debug("open air flow monitor, check fan air flow") + ret = self.check_board_air_flow() + if ret is False: + fanairflow_debug("get board air flow error, set fan_air_flow_inconsistent_flag False") + self.fan_air_flow_inconsistent_flag = False + return + air_flow_inconsistent_flag_tmp = False + for fan_obj in self.fan_obj_list: + fan_obj.update_fru_info() + fanairflow_debug("%s origin name: [%s], display name: [%s] air flow [%s]" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow)) + if fan_obj.air_flow == self.na_ret: + fanairflow_debug("%s get air flow failed, set air_flow_inconsistent flag False" % fan_obj.name) + fan_obj.air_flow_inconsistent = False + continue + if fan_obj.air_flow != self.board_air_flow: + fanairflow_debug("%s air flow error, origin name: [%s], display name: [%s], fan air flow [%s], board air flow [%s]" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow, self.board_air_flow)) + air_flow_inconsistent_flag_tmp = True + fan_obj.air_flow_inconsistent = True + else: + fanairflow_debug("%s air flow check ok, origin name: [%s], display name: [%s], fan air flow: [%s], board air flow: [%s]" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow, self.board_air_flow)) + fan_obj.air_flow_inconsistent = False + self.fan_air_flow_inconsistent_flag = air_flow_inconsistent_flag_tmp + else: + fanairflow_debug("air flow monitor not open, set fan_air_flow_inconsistent_flag False") + self.fan_air_flow_inconsistent_flag = False + return + + def check_psu_air_flow(self): + if self.psu_air_flow_monitor: + fanairflow_debug("open air flow monitor, check psu air flow") + ret = self.check_board_air_flow() + if ret is False: + fanairflow_debug("get board air flow error, set psu_air_flow_inconsistent_flag False") + self.psu_air_flow_inconsistent_flag = False + return + air_flow_inconsistent_flag_tmp = False + for psu_obj in self.psu_obj_list: + psu_obj.update_fru_info() + fanairflow_debug("%s origin name: [%s], display name: [%s] air flow [%s]" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow)) + if psu_obj.air_flow == self.na_ret: + fanairflow_debug("%s get air flow failed, set air_flow_inconsistent flag False" % psu_obj.name) + psu_obj.air_flow_inconsistent = False + continue + if psu_obj.air_flow != self.board_air_flow: + fanairflow_debug("%s air flow error, origin name: [%s], display name: [%s], psu air flow [%s], board air flow [%s]" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow, self.board_air_flow)) + air_flow_inconsistent_flag_tmp = True + psu_obj.air_flow_inconsistent = True + else: + fanairflow_debug("%s air flow check ok, origin name: [%s], display name: [%s], psu air flow: [%s], board air flow: [%s]" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow, self.board_air_flow)) + psu_obj.air_flow_inconsistent = False + self.psu_air_flow_inconsistent_flag = air_flow_inconsistent_flag_tmp + else: + fanairflow_debug("air flow monitor not open, set psu_air_flow_inconsistent_flag False") + self.psu_air_flow_inconsistent_flag = False + return + + def do_fancontrol(self): + pwm_list = [] + pwm_min = self.__min_pwm + pwm_list.append(pwm_min) + + # first check air flow + self.check_fan_air_flow() + self.check_psu_air_flow() + if self.fan_air_flow_inconsistent_flag is True or self.psu_air_flow_inconsistent_flag is True: + self.air_flow_inconsistent_flag = True + else: + self.air_flow_inconsistent_flag = False + fanairflow_debug("check_air_flow, air_flow_inconsistent_flag: %s" % self.air_flow_inconsistent_flag) + # get_monitor_temp + self.get_monitor_temp() + fancontrol_debug("last_pwm = 0x%x" % self.__pwm) + # openloop + inlettemp = self.__temps_threshold_config.get(INLET_TEMP)['temp'] + linear_value = self.openloop.linear_cacl(inlettemp) + if linear_value is None: + linear_value = self.__min_pwm + pwm_list.append(linear_value) + fancontrol_debug("linear_value = 0x%x" % linear_value) + + curve_value = self.openloop.curve_cacl(inlettemp) + if curve_value is None: + curve_value = self.__min_pwm + pwm_list.append(curve_value) + fancontrol_debug("curve_value = 0x%x" % curve_value) + + # hyst + for hyst_index in self.__hyst_config.values(): + temp_name = hyst_index.get("name") + hyst_flag = hyst_index.get("flag", 0) + if hyst_flag == 0: + fancontrol_debug("%s hyst flag is 0, do nothing" % temp_name) + continue + tmp_temp = int(self.__temps_threshold_config.get(temp_name)['temp']) # make sure temp is int + hyst_value = self.hyst.cacl(temp_name, tmp_temp) + if hyst_value is None: + hyst_value = self.__min_pwm + pwm_list.append(hyst_value) + fancontrol_debug("%s hyst_value = 0x%x" % (temp_name, hyst_value)) + + # pid + for pid_index in self.__pid_config.values(): + temp_name = pid_index.get("name") + pid_flag = pid_index.get("flag", 0) + if pid_flag == 0: + fancontrol_debug("%s pid flag is 0, do nothing" % temp_name) + continue + tmp_temp = self.__temps_threshold_config.get(temp_name)['temp'] + if tmp_temp is not None: + tmp_temp = int(tmp_temp) # make sure temp is int + invalid_temp_val = self.__temps_threshold_config.get(temp_name)['invalid'] + error_temp_val = self.__temps_threshold_config.get(temp_name)['error'] + if tmp_temp == invalid_temp_val: # temp is invalid + temp = None + self.pid.cacl(self.__pwm, temp_name, temp) # temp invalid, PID need to record None + pid_value = self.__temp_invalid_pid_pwm + fancontrol_debug("%s is invalid, pid_value = 0x%x" % (temp_name, pid_value)) + fancontrol_debug("temp = %d, invalid_temp = %d" % (tmp_temp, invalid_temp_val)) + elif tmp_temp == error_temp_val: # temp is error + temp = None + self.pid.cacl(self.__pwm, temp_name, temp) # temp error, PID need to record None + pid_value = self.__temp_error_pid_pwm + fancontrol_debug("%s is error, pid_value = 0x%x" % (temp_name, pid_value)) + fancontrol_debug("temp = %d, error_temp = %d" % (tmp_temp, error_temp_val)) + else: + pid_value = self.pid.cacl(self.__pwm, temp_name, tmp_temp) + else: # temp get failed + pid_value = self.pid.cacl(self.__pwm, temp_name, tmp_temp) + if pid_value is None: + pid_value = self.__min_pwm + pwm_list.append(pid_value) + fancontrol_debug("%s pid_value = 0x%x" % (temp_name, pid_value)) + + # abnormal + abnormal_value = self.abnormal_check() + pwm_list.append(abnormal_value) + fancontrol_debug("abnormal_value = 0x%x" % abnormal_value) + + if self.__fan_plug_in_countdown > 0 and self.__fan_absent_num == 0: + fancontrol_debug("fan plug in countdown %d, set plug in pwm: 0x%x" % + (self.__fan_plug_in_countdown, self.__fan_plug_in_pwm)) + self.__pwm = self.__fan_plug_in_pwm + self.__fan_plug_in_countdown -= 1 + else: + self.__pwm = max(pwm_list) + fancontrol_debug("__pwm = 0x%x\n" % self.__pwm) + if self.air_flow_inconsistent_flag is True: + fanairflow_debug("air flow inconsistent, set all fan speed pwm") + self.set_all_fan_speed_pwm(self.__pwm) + else: + fanairflow_debug("air flow consistent, deal fan error policy") + fan_pwm_dict = self.get_fan_pwm_dict(self.__pwm) + psu_pwm_dict = self.get_psu_pwm_dict(self.__pwm) + self.set_fan_pwm_independent(fan_pwm_dict, psu_pwm_dict) + + def run(self): + start_time = time.time() + while True: + try: + debug_init() + if self.__fan_status_interval > 0 and self.__fan_status_interval < self.__interval: + delta_time = time.time() - start_time + if delta_time >= self.__interval or delta_time < 0: + self.do_fancontrol() + start_time = time.time() + else: + self.checkFanPresence() + time.sleep(self.__fan_status_interval) + else: + self.do_fancontrol() + time.sleep(self.__interval) + except Exception as e: + traceback.print_exc() + fancontrol_error(str(e)) + + def set_all_fan_speed_pwm(self, pwm): + fan_pwm_dict = {} + psu_pwm_dict = {} + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + fan_pwm_dict[fan_name] = pwm + + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + psu_pwm_dict[psu_name] = pwm + self.set_fan_pwm_independent(fan_pwm_dict, psu_pwm_dict) + + def set_fan_pwm_independent(self, fan_pwm_dict, psu_pwm_dict): + if self.air_flow_inconsistent_flag is True: + for psu_obj in self.psu_obj_list: + if psu_obj.air_flow_inconsistent is True: + psu_pwm_dict[psu_obj.name] = self.air_flow_error_psu_pwm + fanairflow_debug("%s air flow error, origin name: [%s], display name: [%s], psu air flow: [%s], board air flow: [%s], set psu pwm: 0x%x" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow, self.board_air_flow, self.air_flow_error_psu_pwm)) + else: + psu_pwm_dict[psu_obj.name] = self.air_flow_correct_psu_pwm + fanairflow_debug("%s air flow correct, origin name: [%s], display name: [%s], psu air flow: [%s], board air flow: [%s], set psu pwm: 0x%x" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow, self.board_air_flow, self.air_flow_correct_psu_pwm)) + + for fan_obj in self.fan_obj_list: + if fan_obj.air_flow_inconsistent is True: + fan_pwm_dict[fan_obj.name] = self.air_flow_error_fan_pwm + fanairflow_debug("%s air flow error, origin name: [%s], display name: [%s], fan air flow: [%s], board air flow: [%s], set fan pwm: 0x%x" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow, self.board_air_flow, self.air_flow_error_fan_pwm)) + else: + fan_pwm_dict[fan_obj.name] = self.air_flow_correct_fan_pwm + fanairflow_debug("%s air flow correct, origin name: [%s], display name: [%s], fan air flow: [%s], board air flow: [%s], set fan pwm: 0x%x" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow, self.board_air_flow, self.air_flow_correct_fan_pwm)) + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + self.fan_set_speed_pwm_by_name(fan_name, fan_pwm_dict[fan_name]) + if self.__psu_fan_control == 1: + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + self.psu_set_speed_pwm_by_name(psu_name, psu_pwm_dict[psu_name]) + + def fan_set_speed_pwm_by_name(self, fan_name, pwm): + duty = round(pwm * 100 / 255) + rotor_len = self.get_rotor_number(fan_name) + for i in range(rotor_len): + val = self.int_case.set_fan_speed_pwm(fan_name, i + 1, duty) + if val != 0: + fancontrol_error("%s rotor%d: %d" % (fan_name, i + 1, val)) + + def psu_set_speed_pwm_by_name(self, psu_name, pwm): + duty = round(pwm * 100 / 255) + status = self.int_case.set_psu_fan_speed_pwm(psu_name, int(duty)) + if status is not True: + fancontrol_error("set %s speed fail" % psu_name) + + def fan_obj_init(self): + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + fan_obj = DevFan(fan_name, self.int_case) + self.fan_obj_list.append(fan_obj) + fanairflow_debug("fan object initialize success") + + def psu_obj_init(self): + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + psu_obj = DevPsu(psu_name, self.int_case) + self.psu_obj_list.append(psu_obj) + fanairflow_debug("psu object initialize success") + + +if __name__ == '__main__': + debug_init() + fancontrol_debug("enter main") + fan_control = fancontrol() + fan_control.fan_obj_init() + fan_control.psu_obj_init() + fan_control.run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/hal_ledctrl.py b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_ledctrl.py new file mode 100755 index 000000000000..c21fd3c1f585 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_ledctrl.py @@ -0,0 +1,830 @@ +#!/usr/bin/env python3 +import time +import syslog +import traceback +from plat_hal.interface import interface +from plat_hal.baseutil import baseutil +try: + import abc +except ImportError as error: + raise ImportError(str(error) + " - required module not found") from error + +SWITCH_TEMP = "SWITCH_TEMP" +F2B_AIR_FLOW = "intake" +B2F_AIR_FLOW = "exhaust" +ONIE_E2_NAME = "ONIE_E2" + +# status +STATUS_PRESENT = "PRESENT" +STATUS_ABSENT = "ABSENT" +STATUS_OK = "OK" +STATUS_NOT_OK = "NOT OK" +STATUS_FAILED = "FAILED" +STATUS_UNKNOWN = "UNKNOWN" + +LEDCTROL_DEBUG_FILE = "/etc/.ledcontrol_debug_flag" + +LEDCTROLERROR = 1 +LEDCTROLDEBUG = 2 + +debuglevel = 0 +# led status defined +COLOR_GREEN = 1 +COLOR_AMBER = 2 +COLOR_RED = 3 +LED_STATUS_DICT = {COLOR_GREEN: "green", COLOR_AMBER: "amber", COLOR_RED: "red"} + + +def ledcontrol_debug(s): + if LEDCTROLDEBUG & debuglevel: + syslog.openlog("LEDCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def ledcontrol_error(s): + if LEDCTROLERROR & debuglevel: + syslog.openlog("LEDCONTROL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def air_flow_warn(s): + syslog.openlog("AIR_FLOW_MONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_WARNING, s) + + +def air_flow_error(s): + syslog.openlog("AIR_FLOW_MONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_ERR, s) + + +def air_flow_emerg(s): + syslog.openlog("AIR_FLOW_MONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_EMERG, s) + + +def debug_init(): + global debuglevel + try: + with open(LEDCTROL_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + +class DevBase(object): + __metaclass__ = abc.ABCMeta + + def __init__(self, name, air_flow_monitor): + self.__name = name + self.__air_flow_monitor = air_flow_monitor + self.present = STATUS_UNKNOWN + self.status = STATUS_UNKNOWN + self.status_summary = STATUS_UNKNOWN + self.origin_name = STATUS_UNKNOWN + self.display_name = STATUS_UNKNOWN + self.air_flow = STATUS_UNKNOWN + self.led_status = COLOR_GREEN + + @property + def name(self): + return self.__name + + @property + def air_flow_monitor(self): + return self.__air_flow_monitor + + @abc.abstractmethod + def get_present(self): + """ + Gets the present status of PSU/FAN + + Returns: + A string, e.g. 'PRESENT, ABSENT, FAILED' + """ + raise NotImplementedError + + @abc.abstractmethod + def get_status(self): + """ + Gets the status of PSU/FAN + + Returns: + A string, e.g. 'OK, NOT OK, FAILED' + """ + raise NotImplementedError + + @abc.abstractmethod + def update_dev_info(self): + """ + update status and fru info of PSU/FAN + + include present, status, status_summary, part_model_name, product_name, air_flow + """ + raise NotImplementedError + + @abc.abstractmethod + def set_module_led(self, color): + """ + set PSU/FAN module LED status + + Args: + color: A string representing the color with which to set the + PSU/FAN module LED status + + Returns: + bool: True if status LED state is set successfully, False if not + """ + raise NotImplementedError + + +class DevPsu(DevBase): + + def __init__(self, name, air_flow_monitor, hal_interface): + super(DevPsu, self).__init__(name, air_flow_monitor) + self.int_case = hal_interface + + def get_psu_presence(self): + return self.int_case.get_psu_presence(self.name) + + def get_psu_input_output_status(self): + return self.int_case.get_psu_input_output_status(self.name) + + def get_psu_fru_info(self): + return self.int_case.get_psu_fru_info(self.name) + + @property + def na_ret(self): + return self.int_case.na_ret + + def get_present(self): + try: + status = self.get_psu_presence() + if status is True: + return STATUS_PRESENT + if status is False: + return STATUS_ABSENT + except Exception as e: + ledcontrol_error("get %s present status error, msg: %s" % (self.name, str(e))) + return STATUS_FAILED + + def get_status(self): + try: + status = self.get_psu_input_output_status() + if status is True: + return STATUS_OK + if status is False: + return STATUS_NOT_OK + except Exception as e: + ledcontrol_error("get %s status error, msg: %s" % (self.name, str(e))) + return STATUS_FAILED + + def update_dev_info(self): + try: + # update status + self.present = self.get_present() + if self.present != STATUS_PRESENT: + self.status = STATUS_UNKNOWN + self.status_summary = self.present + else: + self.status = self.get_status() + self.status_summary = self.status + # update fru info if need air flow monitor + if self.air_flow_monitor: + dic = self.get_psu_fru_info() + self.origin_name = dic["PN"] + self.air_flow = dic["AirFlow"] + self.display_name = dic["DisplayName"] + except Exception as e: + ledcontrol_error("update %s info error, msg: %s" % (self.name, str(e))) + self.present = STATUS_FAILED + self.status = STATUS_FAILED + self.status_summary = STATUS_FAILED + self.origin_name = self.na_ret + self.air_flow = self.na_ret + self.display_name = self.na_ret + + def set_module_led(self, color): + """ + set PSU module LED is not support, always return True + """ + return True + + +class DevFan(DevBase): + + def __init__(self, name, air_flow_monitor, hal_interface): + super(DevFan, self).__init__(name, air_flow_monitor) + self.int_case = hal_interface + + def get_fan_rotor_number(self): + return self.int_case.get_fan_rotor_number(self.name) + + def get_fan_presence(self): + return self.int_case.get_fan_presence(self.name) + + def get_fan_rotor_status(self, rotor_name): + return self.int_case.get_fan_rotor_status(self.name, rotor_name) + + def get_fan_fru_info(self): + return self.int_case.get_fan_fru_info(self.name) + + @property + def na_ret(self): + return self.int_case.na_ret + + def get_present(self): + try: + status = self.get_fan_presence() + if status is True: + return STATUS_PRESENT + if status is False: + return STATUS_ABSENT + except Exception as e: + ledcontrol_error("get %s present status error, msg: %s" % (self.name, str(e))) + return STATUS_FAILED + + def get_status(self): + try: + rotor_num = self.get_fan_rotor_number() + err_motor_num = 0 + for j in range(rotor_num): + rotor_name = "Rotor" + str(j + 1) + roll_status = self.get_fan_rotor_status(rotor_name) + if roll_status is not True: + err_motor_num += 1 + ledcontrol_debug("%s %s error, status %s" % (self.name, rotor_name, roll_status)) + else: + ledcontrol_debug("%s %s ok" % (self.name, rotor_name)) + if err_motor_num > 0: + return STATUS_NOT_OK + return STATUS_OK + except Exception as e: + ledcontrol_error("get %s status error, msg: %s" % (self.name, str(e))) + return STATUS_FAILED + + def update_dev_info(self): + try: + # update status + self.present = self.get_present() + if self.present != STATUS_PRESENT: + self.status = STATUS_UNKNOWN + self.status_summary = self.present + else: + self.status = self.get_status() + self.status_summary = self.status + # update fru info if need air flow monitor + if self.air_flow_monitor: + dic = self.get_fan_fru_info() + self.origin_name = dic["PN"] + self.air_flow = dic["AirFlow"] + self.display_name = dic["DisplayName"] + except Exception as e: + ledcontrol_error("update %s fru info error, msg: %s" % (self.name, str(e))) + self.present = STATUS_FAILED + self.status = STATUS_FAILED + self.status_summary = STATUS_FAILED + self.origin_name = self.na_ret + self.air_flow = self.na_ret + self.display_name = self.na_ret + + def set_module_led(self, color): + ret = self.int_case.set_fan_led(self.name, color) + if ret == 0: + return True + return False + + +class ledcontrol(object): + + def __init__(self): + self.fan_obj_list = [] + self.psu_obj_list = [] + self.board_psu_led_status = COLOR_GREEN + self.board_fan_led_status = COLOR_GREEN + self.__board_air_flow = "" + self.int_case = interface() + self.__config = baseutil.get_monitor_config() + self.__temps_threshold_config = self.__config["temps_threshold"] + for temp_threshold in self.__temps_threshold_config.values(): + temp_threshold['temp'] = 0 + temp_threshold['fail_num'] = 0 + self.__ledcontrol_para = self.__config["ledcontrol_para"] + self.__interval = self.__ledcontrol_para.get("interval", 5) + self.__checkpsu = self.__ledcontrol_para.get("checkpsu", 0) + self.__checkfan = self.__ledcontrol_para.get("checkfan", 0) + self.__psu_amber_num = self.__ledcontrol_para.get("psu_amber_num") + self.__fan_amber_num = self.__ledcontrol_para.get("fan_amber_num") + self.__psu_air_flow_amber_num = self.__ledcontrol_para.get("psu_air_flow_amber_num", 0) + self.__fan_air_flow_amber_num = self.__ledcontrol_para.get("fan_air_flow_amber_num", 0) + self.__board_sys_led = self.__ledcontrol_para.get("board_sys_led", []) + self.__board_psu_led = self.__ledcontrol_para.get("board_psu_led", []) + self.__board_fan_led = self.__ledcontrol_para.get("board_fan_led", []) + self.__psu_air_flow_monitor = self.__ledcontrol_para.get("psu_air_flow_monitor", 0) + self.__fan_air_flow_monitor = self.__ledcontrol_para.get("fan_air_flow_monitor", 0) + self.__fan_mix_list = self.__ledcontrol_para.get("fan_mix_list", []) + + @property + def na_ret(self): + return self.int_case.na_ret + + @property + def checkpsu(self): + return self.__checkpsu + + @property + def checkfan(self): + return self.__checkfan + + @property + def psu_amber_num(self): + return self.__psu_amber_num + + @property + def fan_amber_num(self): + return self.__fan_amber_num + + @property + def psu_air_flow_amber_num(self): + return self.__psu_air_flow_amber_num + + @property + def fan_air_flow_amber_num(self): + return self.__fan_air_flow_amber_num + + @property + def psu_air_flow_monitor(self): + return self.__psu_air_flow_monitor + + @property + def fan_air_flow_monitor(self): + return self.__fan_air_flow_monitor + + @property + def board_sys_led(self): + return self.__board_sys_led + + @property + def board_psu_led(self): + return self.__board_psu_led + + @property + def board_fan_led(self): + return self.__board_fan_led + + @property + def fan_mix_list(self): + return self.__fan_mix_list + + @property + def interval(self): + return self.__interval + + def get_fan_total_number(self): + return self.int_case.get_fan_total_number() + + def get_psu_total_number(self): + return self.int_case.get_psu_total_number() + + def get_onie_e2_obj(self, name): + return self.int_case.get_onie_e2_obj(name) + + def set_led_color(self, led_name, color): + try: + ret = self.int_case.set_led_color(led_name, color) + except Exception as e: + ledcontrol_error("set %s led %s error, msg: %s" % (led_name, color, str(e))) + ret = False + return ret + + def set_sys_led(self, color): + for led in self.board_sys_led: + led_name = led.get("led_name") + ret = self.set_led_color(led_name, color) + if ret is True: + ledcontrol_debug("set %s success, color:%s," % (led_name, color)) + else: + ledcontrol_debug("set %s failed, color:%s," % (led_name, color)) + + def set_psu_led(self, color): + for led in self.board_psu_led: + led_name = led.get("led_name") + ret = self.set_led_color(led_name, color) + if ret is True: + ledcontrol_debug("set %s success, color:%s," % (led_name, color)) + else: + ledcontrol_debug("set %s failed, color:%s," % (led_name, color)) + + def set_fan_led(self, color): + for led in self.board_fan_led: + led_name = led.get("led_name") + ret = self.set_led_color(led_name, color) + if ret is True: + ledcontrol_debug("set %s success, color:%s," % (led_name, color)) + else: + ledcontrol_debug("set %s failed, color:%s," % (led_name, color)) + + def set_fan_module_led(self): + for fan_obj in self.fan_obj_list: + color = LED_STATUS_DICT.get(fan_obj.led_status) + ret = fan_obj.set_module_led(color) + if ret is True: + ledcontrol_debug("set %s module led success, color: %s," % (fan_obj.name, color)) + else: + ledcontrol_debug("set %s module led failed, color: %s," % (fan_obj.name, color)) + + @property + def board_air_flow(self): + air_flow_tuple = (F2B_AIR_FLOW, B2F_AIR_FLOW) + if self.__board_air_flow not in air_flow_tuple: + self.__board_air_flow = self.int_case.get_device_airflow(ONIE_E2_NAME) + ledcontrol_debug("board_air_flow: %s" % self.__board_air_flow) + return self.__board_air_flow + + def update_psu_info(self): + for psu_obj in self.psu_obj_list: + psu_obj.update_dev_info() + ledcontrol_debug("%s present: [%s], status: [%s] status_summary [%s]" % + (psu_obj.name, psu_obj.present, psu_obj.status, psu_obj.status_summary)) + if psu_obj.air_flow_monitor: + ledcontrol_debug("%s origin name: [%s], display name: [%s] air flow [%s]" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow)) + + def update_fan_info(self): + for fan_obj in self.fan_obj_list: + fan_obj.update_dev_info() + ledcontrol_debug("%s present: [%s], status: [%s] status_summary [%s]" % + (fan_obj.name, fan_obj.present, fan_obj.status, fan_obj.status_summary)) + if fan_obj.air_flow_monitor: + ledcontrol_debug("%s origin name: [%s], display name: [%s] air flow [%s]" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow)) + + def get_monitor_temp(self): + sensorlist = self.int_case.get_temp_info() + + for temp_threshold in self.__temps_threshold_config.values(): + sensor = sensorlist.get(temp_threshold['name']) + if sensor["Value"] is None: + temp_threshold['fail_num'] += 1 + ledcontrol_error("get %s failed, fail_num = %d" % (temp_threshold['name'], temp_threshold['fail_num'])) + else: + temp_threshold['fail_num'] = 0 + temp_threshold.setdefault('fix', 0) + temp_threshold['temp'] = sensor["Value"] + temp_threshold['fix'] + ledcontrol_debug("%s = %d" % (temp_threshold['name'], temp_threshold['temp'])) + ledcontrol_debug("warning = %d, critical = %d" % (temp_threshold['warning'], temp_threshold['critical'])) + + def is_temp_warning(self): + warning_flag = False + for temp_threshold in self.__temps_threshold_config.values(): + if temp_threshold['temp'] >= temp_threshold['warning']: + warning_flag = True + ledcontrol_debug("%s is over warning" % temp_threshold['name']) + ledcontrol_debug( + "%s = %d, warning = %d" % + (temp_threshold['name'], + temp_threshold['temp'], + temp_threshold['warning'])) + return warning_flag + + def checkTempWarning(self): + try: + if self.is_temp_warning(): + ledcontrol_debug("temp is over warning") + return True + except Exception as e: + ledcontrol_error("%%policy: checkTempWarning failed") + ledcontrol_error(str(e)) + return False + + def is_temp_critical(self): + critical_flag = False + for temp_threshold in self.__temps_threshold_config.values(): + temp_threshold['critical_flag'] = False + if temp_threshold['temp'] >= temp_threshold['critical']: + critical_flag = True + temp_threshold['critical_flag'] = True + ledcontrol_debug("%s is over critical" % temp_threshold['name']) + ledcontrol_debug( + "%s = %d, critical = %d" % + (temp_threshold['name'], + temp_threshold['temp'], + temp_threshold['critical'])) + return critical_flag + + def checkTempCrit(self): + try: + if self.is_temp_critical(): + temp_dict = dict(self.__temps_threshold_config) + tmp = temp_dict.get(SWITCH_TEMP) + if tmp['critical_flag'] is True: + ledcontrol_debug("temp is over critical") + return True + + del temp_dict[SWITCH_TEMP] + for temp_items in temp_dict.values(): + if temp_items['critical_flag'] is False: + return False + + ledcontrol_debug("temp is over critical") + return True + except Exception as e: + ledcontrol_error("%%policy: checkTempCrit failed") + ledcontrol_error(str(e)) + return False + + def check_board_air_flow(self): + board_air_flow = self.board_air_flow + air_flow_tuple = (F2B_AIR_FLOW, B2F_AIR_FLOW) + if board_air_flow not in air_flow_tuple: + air_flow_error("%%AIR_FLOW_MONITOR-3-BOARD: Get board air flow failed, value: %s." % board_air_flow) + return False + ledcontrol_debug("board air flow check ok: %s" % board_air_flow) + return True + + def get_monitor_fan_status(self): + fanerrnum = 0 + for fan_obj in self.fan_obj_list: + status = fan_obj.status_summary + ledcontrol_debug("%s status: %s" % (fan_obj.name, status)) + if status != STATUS_OK: + fan_obj.led_status = COLOR_RED + fanerrnum += 1 + else: + fan_obj.led_status = COLOR_GREEN + ledcontrol_debug("fan error number: %d" % fanerrnum) + + if fanerrnum == 0: + fan_led_status = COLOR_GREEN + elif fanerrnum <= self.fan_amber_num: + fan_led_status = COLOR_AMBER + else: + fan_led_status = COLOR_RED + ledcontrol_debug("monitor fan status, set fan led: %s" % LED_STATUS_DICT.get(fan_led_status)) + return fan_led_status + + def get_monitor_psu_status(self): + psuerrnum = 0 + for psu_obj in self.psu_obj_list: + status = psu_obj.status_summary + ledcontrol_debug("%s status: %s" % (psu_obj.name, status)) + if status != STATUS_OK: + psu_obj.led_status = COLOR_RED + psuerrnum += 1 + else: + psu_obj.led_status = COLOR_GREEN + ledcontrol_debug("psu error number: %d" % psuerrnum) + + if psuerrnum == 0: + psu_led_status = COLOR_GREEN + elif psuerrnum <= self.psu_amber_num: + psu_led_status = COLOR_AMBER + else: + psu_led_status = COLOR_RED + ledcontrol_debug("monitor psu status, set psu led: %s" % LED_STATUS_DICT.get(psu_led_status)) + return psu_led_status + + def get_monitor_fan_air_flow(self): + if self.fan_air_flow_monitor == 0: + ledcontrol_debug("fan air flow monitor not open, default green") + return COLOR_GREEN + + ret = self.check_board_air_flow() + if ret is False: + ledcontrol_debug("check board air flow error, skip fan air flow monitor.") + return COLOR_GREEN + + fan_led_status_list = [] + fan_air_flow_ok_obj_list = [] + fan_air_flow_ok_set = set() + fan_module_led_list = [] + fan_air_flow_err_num = 0 + for fan_obj in self.fan_obj_list: + if fan_obj.present != STATUS_PRESENT: + fan_module_led_list.append(COLOR_GREEN) + continue + if fan_obj.air_flow == self.na_ret: + air_flow_warn("%%AIR_FLOW_MONITOR-4-FAN: %s get air flow failed, fan model: %s, air flow: %s." % + (fan_obj.name, fan_obj.display_name, fan_obj.air_flow)) + led_status = COLOR_AMBER + fan_module_led_list.append(led_status) + elif fan_obj.air_flow != self.board_air_flow: + air_flow_emerg("%%AIR_FLOW_MONITOR-0-FAN: %s air flow error, fan model: %s, fan air flow: %s, board air flow: %s." % + (fan_obj.name, fan_obj.display_name, fan_obj.air_flow, self.board_air_flow)) + led_status = COLOR_RED + fan_air_flow_err_num += 1 + else: + fan_air_flow_ok_obj_list.append(fan_obj) + fan_air_flow_ok_set.add(fan_obj.origin_name) + ledcontrol_debug("%s air flow check ok, origin name: [%s], display name: [%s], fan air flow: [%s], board air flow: [%s]" % + (fan_obj.name, fan_obj.origin_name, fan_obj.display_name, fan_obj.air_flow, self.board_air_flow)) + led_status = COLOR_GREEN + fan_module_led_list.append(led_status) + if led_status > fan_obj.led_status: + fan_obj.led_status = led_status + if len(fan_module_led_list) != 0: + fan_led_status = max(fan_module_led_list) + fan_led_status_list.append(fan_led_status) + # check fan mixing + if len(fan_air_flow_ok_set) > 1 and fan_air_flow_ok_set not in self.fan_mix_list: + for fan_obj in fan_air_flow_ok_obj_list: + air_flow_warn("%%AIR_FLOW_MONITOR-4-FAN: %s mixing, fan model: %s, air flow: %s." % + (fan_obj.name, fan_obj.origin_name, fan_obj.air_flow)) + fan_led_status = COLOR_AMBER + fan_led_status_list.append(fan_led_status) + # check fan air flow error number + if fan_air_flow_err_num == 0: + fan_led_status = COLOR_GREEN + elif fan_air_flow_err_num <= self.fan_air_flow_amber_num: + fan_led_status = COLOR_AMBER + else: + fan_led_status = COLOR_RED + fan_led_status_list.append(fan_led_status) + + fan_led_status = max(fan_led_status_list) + ledcontrol_debug("monitor fan air flow, set fan led: %s" % LED_STATUS_DICT.get(fan_led_status)) + return fan_led_status + + def get_monitor_psu_air_flow(self): + if self.psu_air_flow_monitor == 0: + ledcontrol_debug("psu air flow monitor not open, default green") + return COLOR_GREEN + + ret = self.check_board_air_flow() + if ret is False: + ledcontrol_debug("check board air flow error, skip psu air flow monitor.") + return COLOR_GREEN + + psu_led_status_list = [] + psu_module_led_list = [] + psu_air_flow_err_num = 0 + for psu_obj in self.psu_obj_list: + if psu_obj.present != STATUS_PRESENT: + psu_module_led_list.append(COLOR_GREEN) + continue + if psu_obj.air_flow == self.na_ret: + air_flow_warn("%%AIR_FLOW_MONITOR-4-PSU: %s get air flow failed, psu model: %s, air flow: %s." % + (psu_obj.name, psu_obj.display_name, psu_obj.air_flow)) + led_status = COLOR_AMBER + psu_module_led_list.append(led_status) + elif psu_obj.air_flow != self.board_air_flow: + air_flow_emerg("%%AIR_FLOW_MONITOR-0-PSU: %s air flow error, psu model: %s, psu air flow: %s, board air flow: %s." % + (psu_obj.name, psu_obj.display_name, psu_obj.air_flow, self.board_air_flow)) + led_status = COLOR_RED + psu_air_flow_err_num += 1 + else: + ledcontrol_debug("%s psu air flow check ok, origin name: [%s], display name: [%s], psu air flow: [%s], board air flow: [%s]" % + (psu_obj.name, psu_obj.origin_name, psu_obj.display_name, psu_obj.air_flow, self.board_air_flow)) + led_status = COLOR_GREEN + psu_module_led_list.append(led_status) + if led_status > psu_obj.led_status: + psu_obj.led_status = led_status + + if len(psu_module_led_list) != 0: + psu_led_status = max(psu_module_led_list) + psu_led_status_list.append(psu_led_status) + + # check fan air flow error number + if psu_air_flow_err_num == 0: + psu_led_status = COLOR_GREEN + elif psu_air_flow_err_num <= self.psu_air_flow_amber_num: + psu_led_status = COLOR_AMBER + else: + psu_led_status = COLOR_RED + psu_led_status_list.append(psu_led_status) + + psu_led_status = max(psu_led_status_list) + ledcontrol_debug("monitor psu air flow, set psu led: %s" % LED_STATUS_DICT.get(psu_led_status)) + return psu_led_status + + def get_temp_sys_led_status(self): + if self.checkTempCrit() is True: + sys_led_status = COLOR_RED + elif self.checkTempWarning() is True: + sys_led_status = COLOR_AMBER + else: + sys_led_status = COLOR_GREEN + ledcontrol_debug("monitor temperature, set sys led: %s" % LED_STATUS_DICT.get(sys_led_status)) + return sys_led_status + + def get_sys_led_follow_fan_status(self): + + if self.checkfan: + sys_led_status = self.board_fan_led_status + ledcontrol_debug("sys led follow fan led, set sys led: %s" % LED_STATUS_DICT.get(sys_led_status)) + else: + sys_led_status = COLOR_GREEN + ledcontrol_debug("sys led don't follow fan led, set default green") + return sys_led_status + + def get_sys_led_follow_psu_status(self): + if self.checkpsu: + sys_led_status = self.board_psu_led_status + ledcontrol_debug("sys led follow psu led, set sys led: %s" % LED_STATUS_DICT.get(sys_led_status)) + else: + sys_led_status = COLOR_GREEN + ledcontrol_debug("sys led don't follow psu led, set default green") + return sys_led_status + + def dealSysLedStatus(self): + sys_led_status_list = [] + # get_monitor_temp + self.get_monitor_temp() + + # monitor temp get sys led status + sys_led_status = self.get_temp_sys_led_status() + sys_led_status_list.append(sys_led_status) + + # check sys led follow fan led status + sys_led_status = self.get_sys_led_follow_fan_status() + sys_led_status_list.append(sys_led_status) + + # check sys led follow psu led status + sys_led_status = self.get_sys_led_follow_psu_status() + sys_led_status_list.append(sys_led_status) + + sys_led_status = max(sys_led_status_list) + sys_led_color = LED_STATUS_DICT.get(sys_led_status) + + # set sys led + self.set_sys_led(sys_led_color) + + def dealFanLedStatus(self): + fan_led_status_list = [] + # update fan info + self.update_fan_info() + + # monitor fan status first + fan_led_status = self.get_monitor_fan_status() + fan_led_status_list.append(fan_led_status) + + # monitor fan air flow + fan_led_status = self.get_monitor_fan_air_flow() + fan_led_status_list.append(fan_led_status) + + self.board_fan_led_status = max(fan_led_status_list) + fan_led_color = LED_STATUS_DICT.get(self.board_fan_led_status) + + # set fan led + self.set_fan_led(fan_led_color) + # set fan module led + self.set_fan_module_led() + + def dealPsuLedStatus(self): + psu_led_status_list = [] + # update psu info + self.update_psu_info() + + # monitor psu status first + psu_led_status = self.get_monitor_psu_status() + psu_led_status_list.append(psu_led_status) + + # monitor psu air flow + psu_led_status = self.get_monitor_psu_air_flow() + psu_led_status_list.append(psu_led_status) + + self.board_psu_led_status = max(psu_led_status_list) + psu_led_color = LED_STATUS_DICT.get(self.board_psu_led_status) + + # set psu led + self.set_psu_led(psu_led_color) + + def do_ledcontrol(self): + self.dealPsuLedStatus() + self.dealFanLedStatus() + self.dealSysLedStatus() + + def fan_obj_init(self): + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + fan_obj = DevFan(fan_name, self.fan_air_flow_monitor, self.int_case) + self.fan_obj_list.append(fan_obj) + ledcontrol_debug("fan object initialize success") + + def psu_obj_init(self): + psu_num = self.get_psu_total_number() + for i in range(psu_num): + psu_name = "PSU" + str(i + 1) + psu_obj = DevPsu(psu_name, self.psu_air_flow_monitor, self.int_case) + self.psu_obj_list.append(psu_obj) + ledcontrol_debug("psu object initialize success") + + def run(self): + while True: + try: + debug_init() + self.do_ledcontrol() + time.sleep(self.interval) + except Exception as e: + traceback.print_exc() + ledcontrol_error(str(e)) + + +if __name__ == '__main__': + debug_init() + ledcontrol_debug("enter main") + led_control = ledcontrol() + led_control.fan_obj_init() + led_control.psu_obj_init() + led_control.run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/hal_pltfm.py b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_pltfm.py new file mode 100755 index 000000000000..11196f507ef1 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_pltfm.py @@ -0,0 +1,492 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import inspect +import sys +import json +import time +from plat_hal.interface import interface + + +class Command(): + def __init__(self, name, f): + self.name = name + self.f = f + self.paramcount = self.f.__code__.co_argcount + + def dofun(self, args): + fn = self.f.__call__ + fn(*args) + + +class Group(): + def __init__(self, name, f): + self.groups = [] + self.commands = [] + self.name = name + self.f = f + + def add_groups(self, command): + self.groups.append(command) + + def add_commands(self, commnad): + x = Command(commnad.__name__, commnad) + self.commands.append(x) + + def find_valuebyname(self, name): + for item in self.groups: + if name == item.name: + return item + for item in self.commands: + if name == item.name: + return item + return None + + def deal(self, args): + if len(args) <= 0: + return self.print_help() + funclevel = args[0] + val = self.find_valuebyname(funclevel) + if val is None: + return self.print_help() + if isinstance(val, Command): + if len(args) < (val.paramcount + 1): + return self.print_help() + inputargs = args[1: (1 + val.paramcount)] + return val.dofun(inputargs) + if isinstance(val, Group): + args = args[1:] + return val.deal(args) + return self.print_help() + + def get_max(self, arr): + lentmp = 0 + for ar in arr: + lentmp = len(ar) if (len(ar) > lentmp) else lentmp + return lentmp + + def print_help(self): + + namesize = [] + for item in self.groups: + namesize.append(item.name) + for item in self.commands: + namesize.append(item.name) + maxvalue = self.get_max(namesize) + + if len(self.groups) > 0: + print("Groups:") + for item in self.groups: + print(" %-*s %s" % (maxvalue, item.name, item.f.__doc__ or '')) + if len(self.commands) > 0: + print("Commands:") + for item in self.commands: + print(" %-*s %s" % (maxvalue, item.name, item.f.__doc__ or '')) + + +class clival(): + @staticmethod + def Fire(val=None): + group = Group("top", 'mainlevel') + clival.iterGroup(val, group) + # context = {} + # caller = inspect.stack()[1] + # caller_frame = caller[0] + # caller_globals = caller_frame.f_globals + # caller_locals = caller_frame.f_locals + # context.update(caller_globals) + # context.update(caller_locals) + args = sys.argv[1:] + group.deal(args) + + @staticmethod + def iterGroup(val, group): + for key, item in val.items(): + if item is None: # first level + if inspect.isfunction(key): + group.add_commands(key) + else: + group1 = Group(key.__name__, key) + clival.iterGroup(item, group1) + group.add_groups(group1) + + +def psu(): + r'''test psu ''' + + +def fan(): + r'''test fan ''' + + +def sensor(): + r'''test sensor ''' + + +def dcdc(): + r'''test dcdc ''' + + +def led(): + r'''test led ''' + + +def e2(): + r'''test onie eeprom ''' + + +def temps(): + r'''test temps sensor''' + +def cpu(): + r'''test cpu''' + + +int_case = interface() + + +def get_total_number(): + r'''psu get_total_number ''' + print("=================get_total_number======================") + print(int_case.get_psu_total_number()) + + +def get_presence(): + r'''psu get_presence ''' + print("=================get_presence======================") + psus = int_case.get_psus() + for psu_item in psus: + print(psu_item.name, end=' ') + print(int_case.get_psu_presence(psu_item.name)) + + +def get_fru_info(): + r'''psu get_fru_info ''' + print("=================get_fru_info======================") + psus = int_case.get_psus() + for psu_item in psus: + print(psu_item.name, end=' ') + print(json.dumps(int_case.get_psu_fru_info(psu_item.name), ensure_ascii=False, indent=4)) + + +def get_status(): + r'''psu get_status ''' + print("=================get_status======================") + psus = int_case.get_psus() + for psu_item in psus: + print(psu_item.name, end=' ') + print(json.dumps(int_case.get_psu_status(psu_item.name), ensure_ascii=False, indent=4)) + + +def set_psu_fan_speed_pwm(realspeed): + r'''set_psu_fan_speed_pwm''' + print("=================set_psu_fan_speed_pwm======================") + psus = int_case.get_psus() + for psu_item in psus: + print(psu_item.name, end=' ') + print(int_case.set_psu_fan_speed_pwm(psu_item.name, int(realspeed))) + + +def get_psu_fan_speed_pwm(): + r'''get_psu_fan_speed_pwm''' + print("=================get_psu_fan_speed_pwm======================") + psus = int_case.get_psus() + for psu_item in psus: + print(psu_item.name, end=' ') + print(json.dumps(int_case.get_psu_fan_speed_pwm(psu_item.name))) + + +def get_psu_power_status(): + r'''psu get_psu_power_status ''' + print("=================get_psu_power_status======================") + psus = int_case.get_psus() + for psu_item in psus: + print(psu_item.name, end=' ') + print(json.dumps(int_case.get_psu_power_status(psu_item.name), ensure_ascii=False, indent=4)) + + +def get_info_all(): + r'''psu get_info_all ''' + print("=================get_info_all======================") + print(json.dumps(int_case.get_psu_info_all(), ensure_ascii=False, indent=4)) + + +def fan_get_total_number(): + print("=================get_info_all======================") + print(json.dumps(int_case.get_fan_total_number(), ensure_ascii=False, indent=4)) + + +def fan_get_rotor_number(): + r'''fan_get_rotor_number''' + print("=================fan_get_rotor_number======================") + fans = int_case.get_fans() + for fan_item in fans: + print(fan_item.name, end=' ') + print(int_case.get_fan_rotor_number(fan_item.name)) + + +def fan_get_speed(): + r'''fan_get_speed''' + print("=================fan_get_speed======================") + fans = int_case.get_fans() + for fan_item in fans: + rotors = fan_item.rotor_list + for rotor in rotors: + index = rotors.index(rotor) + print("%s rotor%d" % (fan_item.name, index + 1), end=' ') + print(int_case.get_fan_speed(fan_item.name, index + 1)) + + +def fan_get_speed_pwm(): + r'''fan_get_speed_pwm''' + print("=================fan_get_speed_pwm======================") + fans = int_case.get_fans() + for fan_item in fans: + rotors = fan_item.rotor_list + for rotor in rotors: + index = rotors.index(rotor) + print("%s rotor%d" % (fan_item.name, index + 1), end=' ') + print(int_case.get_fan_speed_pwm(fan_item.name, index + 1)) + + +def fan_set_speed_pwm(pwm): + r'''fan_set_speed_pwm''' + print("=================fan_set_speed_pwm======================") + fans = int_case.get_fans() + for fan_item in fans: + rotors = fan_item.rotor_list + for rotor in rotors: + index = rotors.index(rotor) + print("%s %s" % (fan_item.name, rotor.name), end=' ') + val = int_case.set_fan_speed_pwm(fan_item.name, index + 1, pwm) + print(val) + + +def fan_get_watchdog_status(): + r'''fan_get_watchdog_status''' + print("=================fan_get_watchdog_status======================") + print(int_case.get_fan_watchdog_status()) + + +def fan_enable_watchdog(): + r'''fan_enable_watchdog''' + print("=================fan_enable_watchdog======================") + print('enable', int_case.enable_fan_watchdog()) + + +def fan_disable_watchdog(): + r'''fan_disable_watchdog''' + print("=================fan_disable_watchdog======================") + print('disable', int_case.enable_fan_watchdog(enable=False)) + + +def fan_get_speed1(): + r'''fan_get_speed''' + print("=================fan_get_speed======================") + fans = int_case.get_fans() + for fan_item in fans: + rotors = fan_item.rotor_list + for rotor in rotors: + print("%s %s" % (fan_item.name, rotor.name), end=' ') + print(int_case.get_fan_speed(fan_item.name, rotor.name)) + + +def fan_feed_watchdog(): + r'''fan_feed_watchdog''' + print("=================fan_feed_watchdog======================") + fan_get_speed() + print(int_case.feed_fan_watchdog()) + time.sleep(2) + fan_get_speed() + + +def fan_set_led(color): + r'''fan_set_led''' + print("=================fan_set_led======================") + fans = int_case.get_fans() + for fan_item in fans: + print("%s" % fan_item.name) + print(color, int_case.set_fan_led(fan_item.name, color)) + +def fan_get_led(): + r'''fan_get_led''' + print("=================fan_get_led======================") + fans = int_case.get_fans() + for fan_item in fans: + print("%s" % fan_item.name) + print(int_case.get_fan_led(fan_item.name)) + + +def fan_get_presence(): + r'''fan_get_presence''' + print("=================fan_get_presence======================") + fans = int_case.get_fans() + for fan_item in fans: + print("%s" % fan_item.name) + print(int_case.get_fan_presence(fan_item.name)) + + +def fan_get_info(): + r'''fan_get_info''' + print("=================fan_get_info======================") + fans = int_case.get_fans() + for fan_item in fans: + print("%s" % fan_item.name) + print(json.dumps(int_case.get_fan_info(fan_item.name), ensure_ascii=False, indent=4)) + + +def fan_get_status(): + r'''fan_get_status''' + print("=================fan_get_status======================") + fans = int_case.get_fans() + for fan_item in fans: + print("%s" % fan_item.name) + print(json.dumps(int_case.get_fan_status(fan_item.name), ensure_ascii=False, indent=4)) + + +def fan_get_info_all(): + r'''fan_get_info_all''' + print("=================fan_get_info_all======================") + print(json.dumps(int_case.get_fan_info_all(), ensure_ascii=False, indent=4)) + + +def get_sensor_info(): + r'''get_sensor_info''' + print("=================get_sensor_info======================") + print(json.dumps(int_case.get_sensor_info(), ensure_ascii=False, indent=4)) + + +def get_dcdc_all_info(): + r'''get_dcdc_all_info''' + print("=================get_dcdc_all_info======================") + print(json.dumps(int_case.get_dcdc_all_info(), ensure_ascii=False, indent=4)) + + +def set_all_led_color(color): + r'''set_all_led_color color''' + print("=================set_all_led_color======================") + leds = int_case.get_leds() + for led_item in leds: + print("%s" % led_item.name) + print(color, int_case.set_led_color(led_item.name, color)) + + +def get_all_led_color(): + r'''get_all_led_color''' + print("=================get_all_led_color======================") + leds = int_case.get_leds() + for led_item in leds: + print("%s" % led_item.name) + print(int_case.get_led_color(led_item.name)) + + +def set_single_led_color(led_name, color): + r'''set_single_led_color led_name color''' + print("=================set_single_led_color======================") + leds = int_case.get_leds() + for led_item in leds: + if led_name == led_item.name: + print("%s" % led_item.name) + print(color, int_case.set_led_color(led_item.name, color)) + + +def get_single_led_color(led_name): + r'''get_single_led_color''' + print("=================get_single_led_color======================") + leds = int_case.get_leds() + for led_item in leds: + if led_name == led_item.name: + print("%s" % led_item.name) + print(int_case.get_led_color(led_item.name)) + + +def get_onie_e2_path(): + r'''get_onie_e2_path''' + print("=================get_onie_e2_path======================") + path = int_case.get_onie_e2_path("ONIE_E2") + print("%s" % path) + + +def get_device_airflow(): + r'''get_device_airflow''' + print("=================get_device_airflow======================") + airflow = int_case.get_device_airflow("ONIE_E2") + print("%s" % airflow) + + +def get_temps_sensor(): + r'''get_temps_sensor''' + print("=================get_temps_sensor======================") + temp_list = int_case.get_temps() + for temp in temp_list: + print("id: %s, name: %s, API name: %s, value: %s" % (temp.temp_id, temp.name, temp.api_name, temp.Value)) + +def get_cpu_reset_num(): + r'''get_cpu_reset_num''' + print("=================get_cpu_reset_num======================") + print(int_case.get_cpu_reset_num()) + +def get_cpu_reboot_cause(): + r'''get_cpu_reboot_cause''' + print("=================get_cpu_reboot_cause======================") + print(int_case.get_cpu_reboot_cause()) + + +def run_cli_man(): + clival.Fire( + { + psu: { + get_total_number: None, + get_presence: None, + get_fru_info: None, + set_psu_fan_speed_pwm: None, + get_psu_fan_speed_pwm: None, + get_status: None, + get_psu_power_status: None, + get_info_all: None + }, + fan: { + fan_get_total_number: None, + fan_get_rotor_number: None, + fan_get_speed: None, + fan_get_speed_pwm: None, + fan_set_speed_pwm: None, + fan_get_watchdog_status: None, + fan_enable_watchdog: None, + fan_disable_watchdog: None, + fan_feed_watchdog: None, + fan_set_led: None, + fan_get_led: None, + fan_get_presence: None, + fan_get_info: None, + fan_get_status: None, + fan_get_info_all: None + }, + sensor: { + get_sensor_info: None + }, + dcdc: { + get_dcdc_all_info: None + }, + led: { + set_all_led_color: None, + set_single_led_color: None, + get_all_led_color: None, + get_single_led_color: None, + }, + e2: { + get_onie_e2_path: None, + get_device_airflow: None, + }, + temps: { + get_temps_sensor: None, + }, + cpu: { + get_cpu_reset_num: None, + get_cpu_reboot_cause: None, + } + } + ) + + +if __name__ == '__main__': + run_cli_man() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor.py b/platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor.py new file mode 100755 index 000000000000..33d5bfba64e6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor.py @@ -0,0 +1,144 @@ +#!/usr/bin/python3 +# -*- coding: UTF-8 -*- + +import os +import time +import syslog +from plat_hal.interface import interface +from plat_hal.baseutil import baseutil +from platform_util import io_rd, wbi2cget + +INTELLIGENT_MONITOR_DEBUG_FILE = "/etc/.intelligent_monitor_debug" + +debuglevel = 0 + + +def monitor_syslog_debug(s): + if debuglevel: + syslog.openlog("INTELLIGENT_MONITOR_DEBUG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def monitor_syslog(s): + syslog.openlog("INTELLIGENT_MONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +def pmon_syslog_notice(s): + syslog.openlog("PMON_SYSLOG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_NOTICE, s) + + +class IntelligentMonitor(): + def __init__(self): + self.dcdc_dict = {} + self.int_case = interface() + self.__config = baseutil.get_monitor_config() + self.__intelligent_monitor_para = self.__config.get('intelligent_monitor_para', {}) + self.__interval = self.__intelligent_monitor_para.get('interval', 60) + self.__dcdc_whitelist = self.__config.get('dcdc_monitor_whitelist', {}) + self.__error_ret = self.int_case.error_ret + + @property + def error_ret(self): + return self.__error_ret + + @property + def interval(self): + return self.__interval + + def debug_init(self): + global debuglevel + if os.path.exists(INTELLIGENT_MONITOR_DEBUG_FILE): + debuglevel = 1 + else: + debuglevel = 0 + + def dcdc_whitelist_check(self, dcdc_name): + try: + check_item = self.__dcdc_whitelist.get(dcdc_name, {}) + if len(check_item) == 0: + return False + gettype = check_item.get("gettype", None) + checkbit = check_item.get("checkbit", None) + okval = check_item.get("okval", None) + if gettype is None or checkbit is None or okval is None: + monitor_syslog('%%INTELLIGENT_MONITOR-3-DCDC_WHITELIST_FAILED: %s config error. gettype:%s, checkbit:%s, okval:%s' % + (dcdc_name, gettype, checkbit, okval)) + return False + if gettype == "io": + io_addr = check_item.get('io_addr', None) + val = io_rd(io_addr) + if val is not None: + retval = val + else: + monitor_syslog( + '%%INTELLIGENT_MONITOR-3-DCDC_WHITELIST_FAILED: %s io_rd error. io_addr:%s' % + (dcdc_name, io_addr)) + return False + elif gettype == "i2c": + bus = check_item.get('bus', None) + addr = check_item.get('addr', None) + offset = check_item.get('offset', None) + ind, val = wbi2cget(bus, addr, offset) + if ind is True: + retval = val + else: + monitor_syslog('%%INTELLIGENT_MONITOR-3-DCDC_WHITELIST_FAILED: %s i2cget error. bus:%s, addr:%s, offset:%s' % + (dcdc_name, bus, addr, offset)) + return False + else: + monitor_syslog('%%INTELLIGENT_MONITOR-3-DCDC_WHITELIST_FAILED: %s gettype not support' % dcdc_name) + return False + + val_t = (int(retval, 16) & (1 << checkbit)) >> checkbit + if val_t != okval: + return False + return True + except Exception as e: + monitor_syslog('%%WHITELIST_CHECK: %s check error, msg: %s.' % (dcdc_name, str(e))) + return False + + def update_dcdc_status(self): + try: + self.dcdc_dict = self.int_case.get_dcdc_all_info() + for dcdc_name, item in self.dcdc_dict.items(): + ret = self.dcdc_whitelist_check(dcdc_name) + if ret is False: + if item['Value'] == self.error_ret: + monitor_syslog( + '%%INTELLIGENT_MONITOR-3-DCDC_SENSOR_FAILED: The value of %s read failed.' % + (dcdc_name)) + elif float(item['Value']) > float(item['Max']): + pmon_syslog_notice('%%PMON-5-VOLTAGE_HIGH: %s voltage %.3f%s is larger than max threshold %.3f%s.' % + (dcdc_name, float(item['Value']), item['Unit'], float(item['Max']), item['Unit'])) + elif float(item['Value']) < float(item['Min']): + pmon_syslog_notice('%%PMON-5-VOLTAGE_LOW: %s voltage %.3f%s is lower than min threshold %.3f%s.' % + (dcdc_name, float(item['Value']), item['Unit'], float(item['Min']), item['Unit'])) + else: + monitor_syslog_debug('%%INTELLIGENT_MONITOR-6-DCDC_SENSOR_OK: %s normal, value is %.3f%s.' % + (dcdc_name, item['Value'], item['Unit'])) + else: + monitor_syslog_debug( + '%%INTELLIGENT_MONITOR-6-DCDC_WHITELIST_CHECK: %s is in dcdc whitelist, not monitor voltage' % + dcdc_name) + continue + except Exception as e: + monitor_syslog('%%INTELLIGENT_MONITOR-3-EXCEPTION: update dcdc sensors status error, msg: %s.' % (str(e))) + + def doWork(self): + self.update_dcdc_status() + + def run(self): + while True: + try: + self.debug_init() + self.doWork() + time.sleep(self.interval) + except Exception as e: + monitor_syslog('%%INTELLIGENT_MONITOR-3-EXCEPTION: %s.' % (str(e))) + + +if __name__ == '__main__': + intelligent_monitor = IntelligentMonitor() + intelligent_monitor.run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor/monitor_fan.py b/platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor/monitor_fan.py new file mode 100755 index 000000000000..c84319f3b798 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/intelligent_monitor/monitor_fan.py @@ -0,0 +1,284 @@ +#!/usr/bin/python3 +# -*- coding: UTF-8 -*- + +import os +import time +import logging +from logging.handlers import RotatingFileHandler + +from plat_hal.interface import interface +from plat_hal.baseutil import baseutil + + +DEBUG_FILE = "/etc/.monitor_fan_debug_flag" + +LOG_FILE = "/var/log/intelligent_monitor/monitor_fan_log" + +E2_NAME = "ONIE_E2" + + +def _init_logger(): + if not os.path.exists(LOG_FILE): + os.system("mkdir -p %s" % os.path.dirname(LOG_FILE)) + os.system("sync") + handler = RotatingFileHandler(filename=LOG_FILE, maxBytes=5 * 1024 * 1024, backupCount=1) + formatter = logging.Formatter("%(asctime)s %(levelname)s %(filename)s[%(funcName)s][%(lineno)s]: %(message)s") + handler.setFormatter(formatter) + logger = logging.getLogger(__name__) + logger.setLevel(logging.INFO) + logger.addHandler(handler) + return logger + + +class Fan(object): + + def __init__(self, name, hal_interface): + self.name = name + self.fan_dict = {} + self.int_case = hal_interface + self.update_time = 0 + self.pre_present = False + self.pre_status = True + self.plugin_cnt = 0 + self.plugout_cnt = 0 + self.status_normal_cnt = 0 + self.status_error_cnt = 0 + + def fan_dict_update(self): + local_time = time.time() + if not self.fan_dict or (local_time - self.update_time) >= 1: # update data every 1 seconds + self.update_time = local_time + self.fan_dict = self.int_case.get_fan_info(self.name) + + def get_model(self): + self.fan_dict_update() + return self.fan_dict["NAME"] + + def get_serial(self): + self.fan_dict_update() + return self.fan_dict["SN"] + + def get_presence(self): + return self.int_case.get_fan_presence(self.name) + + def get_rotor_speed(self, rotor_name): + """ + 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) + """ + fan_dir = {} + fan_dir = self.int_case.get_fan_info_rotor(self.name) + # get fan rotor pwm + value = fan_dir[rotor_name]["Speed"] + max_speed = fan_dir[rotor_name]["SpeedMax"] + + if isinstance(value, str) or value is None: + return 0 + pwm = value * 100 / max_speed + if pwm > 100: + pwm = 100 + elif pwm < 0: + pwm = 0 + return int(pwm) + + def get_rotor_speed_tolerance(self, rotor_name): + """ + Retrieves the speed tolerance of the fan + Returns: + An integer, the percentage of variance from target speed which is + considered tolerable + """ + # The default tolerance value is fixed as 30% + fan_dir = {} + fan_dir = self.int_case.get_fan_info_rotor(self.name) + # get fan rotor tolerance + tolerance = fan_dir[rotor_name]["Tolerance"] + + if isinstance(tolerance, str) or tolerance is None: + return 30 + return tolerance + + def get_target_speed(self): + """ + 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) + """ + pwm = self.int_case.get_fan_speed_pwm(self.name, 0) + return int(pwm) + + def get_status(self): + """ + Retrieves the operational status of the FAN + Returns: + bool: True if FAN is operating properly, False if not + """ + if not self.get_presence(): + return False + + rotor_num = self.int_case.get_fan_rotor_number(self.name) + for i in range(rotor_num): + rotor_name = "Rotor" + str(i + 1) + speed = self.get_rotor_speed(rotor_name) + tolerance = self.get_rotor_speed_tolerance(rotor_name) + target = self.get_target_speed() + if (speed - target) > target * tolerance / 100: + return False + if (target - speed) > target * tolerance / 100: + return False + + return True + + def get_direction(self): + """ + Retrieves the fan airflow direction + Returns: + A string, either FAN_DIRECTION_INTAKE or FAN_DIRECTION_EXHAUST + depending on fan direction + + Notes: + - Forward/Exhaust : Air flows from Port side to Fan side. + - Reverse/Intake : Air flows from Fan side to Port side. + """ + self.fan_dict_update() + return self.fan_dict["AirFlow"] + + +class MonitorFan(object): + + def __init__(self): + self.int_case = interface() + self.logger = _init_logger() + self.fan_obj_list = [] + self.__config = baseutil.get_monitor_config() + self.__monitor_fan_config = self.__config.get("monitor_fan_para", {}) + self.__present_interval = self.__monitor_fan_config.get("present_interval", 0.5) + self.__status_interval = self.__monitor_fan_config.get("status_interval", 5) + self.__present_check_cnt = self.__monitor_fan_config.get("present_check_cnt", 3) + self.__status_check_cnt = self.__monitor_fan_config.get("status_check_cnt", 3) + + def debug_init(self): + if os.path.exists(DEBUG_FILE): + self.logger.setLevel(logging.DEBUG) + else: + self.logger.setLevel(logging.INFO) + + def get_fan_total_number(self): + return self.int_case.get_fan_total_number() + + def get_device_airflow(self): + return self.int_case.get_device_airflow(E2_NAME) + + def fan_obj_init(self): + fan_num = self.get_fan_total_number() + for i in range(fan_num): + fan_name = "FAN" + str(i + 1) + fan_obj = Fan(fan_name, self.int_case) + self.fan_obj_list.append(fan_obj) + self.logger.info("fan object initialize success") + + def fan_airflow_check(self, fan_obj): + fan_airflow = fan_obj.get_direction() + device_airflow = self.get_device_airflow() + if fan_airflow != device_airflow: + self.logger.error("%s airflow[%s] not match device airflow[%s]", fan_obj.name, fan_airflow, device_airflow) + else: + self.logger.debug("%s airflow[%s] match device airflow[%s]", fan_obj.name, fan_airflow, device_airflow) + + def fan_plug_in_out_check(self, fan_obj): + present = fan_obj.get_presence() + if present is True: + self.logger.debug("%s is present", fan_obj.name) + else: + self.logger.debug("%s is absent", fan_obj.name) + + if present != fan_obj.pre_present: + if present is True: + fan_obj.plugin_cnt += 1 + fan_obj.plugout_cnt = 0 + if fan_obj.plugin_cnt >= self.__present_check_cnt: + fan_obj.pre_present = True + self.logger.info("%s [serial:%s] is plugin", fan_obj.name, fan_obj.get_serial()) + self.fan_airflow_check(fan_obj) + else: + fan_obj.plugin_cnt = 0 + fan_obj.plugout_cnt += 1 + if fan_obj.plugout_cnt >= self.__present_check_cnt: + fan_obj.pre_present = False + self.logger.info("%s is plugout", fan_obj.name) + else: + fan_obj.plugin_cnt = 0 + fan_obj.plugout_cnt = 0 + self.logger.debug("%s present status is not change", fan_obj.name) + + def fan_status_check(self, fan_obj): + status = fan_obj.get_status() + if status is True: + self.logger.debug("%s is normal", fan_obj.name) + else: + self.logger.debug("%s is error", fan_obj.name) + + if status != fan_obj.pre_status: + if status is True: + fan_obj.status_normal_cnt += 1 + fan_obj.status_error_cnt = 0 + if fan_obj.status_normal_cnt >= self.__status_check_cnt: + fan_obj.pre_status = True + self.logger.info( + "%s [serial:%s] is form error change to normal", + fan_obj.name, + fan_obj.get_serial()) + else: + fan_obj.status_normal_cnt = 0 + fan_obj.status_error_cnt += 1 + if fan_obj.status_error_cnt >= self.__status_check_cnt: + fan_obj.pre_status = False + self.logger.info( + "%s [serial:%s] is form normal change to error", + fan_obj.name, + fan_obj.get_serial()) + else: + fan_obj.status_normal_cnt = 0 + fan_obj.status_error_cnt = 0 + self.logger.debug("%s status is not change", fan_obj.name) + + def checkFanPresence(self): + for fan_obj in self.fan_obj_list: + self.fan_plug_in_out_check(fan_obj) + + def checkFanStatus(self): + for fan_obj in self.fan_obj_list: + self.fan_status_check(fan_obj) + + def run(self): + start_time = time.time() + while True: + try: + self.debug_init() + delta_time = time.time() - start_time + if self.__present_interval <= self.__status_interval: + if delta_time >= self.__status_interval or delta_time < 0: + self.checkFanStatus() + start_time = time.time() + else: + self.checkFanPresence() + time.sleep(self.__present_interval) + else: + if delta_time >= self.__present_interval or delta_time < 0: + self.checkFanPresence() + start_time = time.time() + else: + self.checkFanStatus() + time.sleep(self.__status_interval) + except Exception as e: + self.logger.error('EXCEPTION: %s.', str(e)) + + +if __name__ == '__main__': + monitor_fan = MonitorFan() + monitor_fan.fan_obj_init() + monitor_fan.run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py new file mode 100755 index 000000000000..4fe0beec44d5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py @@ -0,0 +1,178 @@ +#!/usr/bin/python3 + +__all__ = [ + "BLACKLIST_DRIVERS", + "DRIVERLISTS", + "DEVICE", + "STARTMODULE", + "MAC_LED_RESET", + "MAC_DEFAULT_PARAM", + "DEV_MONITOR_PARAM", + "SLOT_MONITOR_PARAM", + "MANUINFO_CONF", + "REBOOT_CTRL_PARAM", + "PMON_SYSLOG_STATUS", + "OPTOE", + "REBOOT_CAUSE_PARA", + "UPGRADE_SUMMARY", + "WARM_UPGRADE_PARAM", + "WARM_UPG_FLAG", + "WARM_UPGRADE_STARTED_FLAG", + "PLATFORM_E2_CONF", + "AIR_FLOW_CONF", + "AIRFLOW_RESULT_FILE", + "INIT_PARAM_PRE", + "INIT_COMMAND_PRE", + "INIT_PARAM", + "INIT_COMMAND", + "MONITOR_TEMP_MIN", + "MONITOR_K", + "MONITOR_MAC_IN", + "MONITOR_DEFAULT_SPEED", + "MONITOR_MAX_SPEED", + "MONITOR_MIN_SPEED", + "MONITOR_MAC_ERROR_SPEED", + "MONITOR_FAN_TOTAL_NUM", + "MONITOR_MAC_UP_TEMP", + "MONITOR_MAC_LOWER_TEMP", + "MONITOR_MAC_MAX_TEMP", + "MONITOR_FALL_TEMP", + "MONITOR_MAC_WARNING_THRESHOLD", + "MONITOR_OUTTEMP_WARNING_THRESHOLD", + "MONITOR_BOARDTEMP_WARNING_THRESHOLD", + "MONITOR_CPUTEMP_WARNING_THRESHOLD", + "MONITOR_INTEMP_WARNING_THRESHOLD", + "MONITOR_MAC_CRITICAL_THRESHOLD", + "MONITOR_OUTTEMP_CRITICAL_THRESHOLD", + "MONITOR_BOARDTEMP_CRITICAL_THRESHOLD", + "MONITOR_CPUTEMP_CRITICAL_THRESHOLD", + "MONITOR_INTEMP_CRITICAL_THRESHOLD", + "MONITOR_CRITICAL_NUM", + "MONITOR_SHAKE_TIME", + "MONITOR_INTERVAL", + "MONITOR_LED_INTERVAL", + "MONITOR_PID_FLAG", + "MONITOR_MAC_SOURCE_SYSFS", + "MONITOR_MAC_SOURCE_PATH", + "MONITOR_PID_MODULE", + "PSU_FAN_FOLLOW", + "MONITOR_SYS_LED", + "MONITOR_SYS_FAN_LED", + "MONITOR_FANS_LED", + "MONITOR_SYS_PSU_LED", + "MONITOR_FAN_STATUS", + "MONITOR_PSU_STATUS", + "MONITOR_DEV_STATUS", + "MONITOR_DEV_STATUS_DECODE", + "DEV_LEDS", + "fanloc" +] + +# driver blacklist parameter +BLACKLIST_DRIVERS = [] + +# driver list parameter +DRIVERLISTS = [] + +# device list parameter +DEVICE = [] + +# start module parameters +STARTMODULE = {} + +# mac led reset parameter +MAC_LED_RESET = {} + +# avscontrol parameter +MAC_DEFAULT_PARAM = [] + +# dev_monitor parameter +DEV_MONITOR_PARAM = {} + +# slot_monitor parameter +SLOT_MONITOR_PARAM = {} + +# platform_manufacturer parameter +MANUINFO_CONF = {} + +# reboot_ctrl parameter +REBOOT_CTRL_PARAM = {} + +# pmon_syslog parameter +PMON_SYSLOG_STATUS = {} + +# sfp optoe device parameter +OPTOE = [] + +# reboot_cause parameter +REBOOT_CAUSE_PARA = [] + +# upgrade parameter +UPGRADE_SUMMARY = {} + +# warm_uprade parameter +WARM_UPGRADE_PARAM = {} +WARM_UPG_FLAG = "/etc/sonic/.warm_upg_flag" +WARM_UPGRADE_STARTED_FLAG = "/etc/sonic/.doing_warm_upg" + +# platform_e2 parameter +PLATFORM_E2_CONF = {} + +# generate_airflow parameter +AIR_FLOW_CONF = {} +AIRFLOW_RESULT_FILE = "/etc/sonic/.airflow" + +# Initialization parameters +INIT_PARAM_PRE = [] +INIT_COMMAND_PRE = [] +INIT_PARAM = [] +INIT_COMMAND = [] + +################################ fancontrol parameter################################### +MONITOR_TEMP_MIN = 38 +MONITOR_K = 11 +MONITOR_MAC_IN = 35 +MONITOR_DEFAULT_SPEED = 0x60 +MONITOR_MAX_SPEED = 0xFF +MONITOR_MIN_SPEED = 0x60 +MONITOR_MAC_ERROR_SPEED = 0XBB +MONITOR_FAN_TOTAL_NUM = 4 +MONITOR_MAC_UP_TEMP = 50 +MONITOR_MAC_LOWER_TEMP = -50 +MONITOR_MAC_MAX_TEMP = 100 # + +MONITOR_FALL_TEMP = 4 +MONITOR_MAC_WARNING_THRESHOLD = 100 +MONITOR_OUTTEMP_WARNING_THRESHOLD = 85 +MONITOR_BOARDTEMP_WARNING_THRESHOLD = 85 +MONITOR_CPUTEMP_WARNING_THRESHOLD = 85 +MONITOR_INTEMP_WARNING_THRESHOLD = 70 + +MONITOR_MAC_CRITICAL_THRESHOLD = 105 +MONITOR_OUTTEMP_CRITICAL_THRESHOLD = 90 +MONITOR_BOARDTEMP_CRITICAL_THRESHOLD = 90 +MONITOR_CPUTEMP_CRITICAL_THRESHOLD = 100 +MONITOR_INTEMP_CRITICAL_THRESHOLD = 80 +MONITOR_CRITICAL_NUM = 3 +MONITOR_SHAKE_TIME = 20 +MONITOR_INTERVAL = 60 +MONITOR_LED_INTERVAL = 2 +MONITOR_PID_FLAG = 0 + +MONITOR_MAC_SOURCE_SYSFS = 0 +MONITOR_MAC_SOURCE_PATH = None + +MONITOR_PID_MODULE = {} + +PSU_FAN_FOLLOW = {} + +MONITOR_SYS_LED = [] +MONITOR_SYS_FAN_LED = [] +MONITOR_FANS_LED = [] +MONITOR_SYS_PSU_LED = [] +MONITOR_FAN_STATUS = [] +MONITOR_PSU_STATUS = [] +MONITOR_DEV_STATUS = {} +MONITOR_DEV_STATUS_DECODE = {} +DEV_LEDS = {} +fanloc = [] diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py new file mode 100755 index 000000000000..004a64c72233 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py @@ -0,0 +1,184 @@ +#!/usr/bin/python3 + +import sys +import os +from wbutil.baseutil import get_machine_info +from wbutil.baseutil import get_platform_info +from wbutil.baseutil import get_board_id + +__all__ = [ + "MAILBOX_DIR", + "PLATFORM_GLOBALCONFIG", + "GLOBALCONFIG", + "STARTMODULE", + "MAC_LED_RESET", + "MAC_DEFAULT_PARAM", + "DEV_MONITOR_PARAM", + "SLOT_MONITOR_PARAM", + "MANUINFO_CONF", + "REBOOT_CTRL_PARAM", + "PMON_SYSLOG_STATUS", + "REBOOT_CAUSE_PARA", + "UPGRADE_SUMMARY", + "WARM_UPGRADE_PARAM", + "WARM_UPG_FLAG", + "WARM_UPGRADE_STARTED_FLAG", + "PLATFORM_E2_CONF", + "AIR_FLOW_CONF", + "AIRFLOW_RESULT_FILE", + "GLOBALINITPARAM", + "GLOBALINITCOMMAND", + "GLOBALINITPARAM_PRE", + "GLOBALINITCOMMAND_PRE", + "MONITOR_CONST", + "PSU_FAN_FOLLOW", + "MONITOR_SYS_LED", + "MONITOR_FANS_LED", + "MONITOR_SYS_FAN_LED", + "MONITOR_SYS_PSU_LED", + "MONITOR_FAN_STATUS", + "MONITOR_PSU_STATUS", + "MONITOR_DEV_STATUS", + "MONITOR_DEV_STATUS_DECODE", + "DEV_LEDS", + "fanloc" +] + + +def getdeviceplatform(): + x = get_platform_info(get_machine_info()) + if x is not None: + filepath = "/usr/share/sonic/device/" + x + return filepath + return None + + +platform = get_platform_info(get_machine_info()) +board_id = get_board_id(get_machine_info()) +platformpath = getdeviceplatform() +MAILBOX_DIR = "/sys/bus/i2c/devices/" +grtd_productfile = (platform + "_config").replace("-", "_") +common_productfile = "platform_common" +platform_configfile = (platform + "_" + board_id + "_config").replace("-", "_") # platfrom + board_id +configfile_pre = "/usr/local/bin/" +sys.path.append(platformpath) +sys.path.append(configfile_pre) + +############################################################################################ +if os.path.exists(configfile_pre + platform_configfile + ".py"): + module_product = __import__(platform_configfile, globals(), locals(), [], 0) +elif os.path.exists(configfile_pre + grtd_productfile + ".py"): + module_product = __import__(grtd_productfile, globals(), locals(), [], 0) +elif os.path.exists(configfile_pre + common_productfile + ".py"): + module_product = __import__(common_productfile, globals(), locals(), [], 0) +else: + print("config file not exist") + sys.exit(-1) +############################################################################################ + +PLATFORM_GLOBALCONFIG = { + "DRIVERLISTS": module_product.DRIVERLISTS, + "OPTOE": module_product.OPTOE, + "DEVS": module_product.DEVICE, + "BLACKLIST_DRIVERS": module_product.BLACKLIST_DRIVERS +} +GLOBALCONFIG = PLATFORM_GLOBALCONFIG + +# start module parameters +STARTMODULE = module_product.STARTMODULE + +# mac led reset parameter +MAC_LED_RESET = module_product.MAC_LED_RESET + +# avscontrol parameter +MAC_DEFAULT_PARAM = module_product.MAC_DEFAULT_PARAM + +# dev_monitor parameter +DEV_MONITOR_PARAM = module_product.DEV_MONITOR_PARAM + +# slot_monitor parameter +SLOT_MONITOR_PARAM = module_product.SLOT_MONITOR_PARAM + +# platform_manufacturer parameter +MANUINFO_CONF = module_product.MANUINFO_CONF + +# reboot_ctrl parameter +REBOOT_CTRL_PARAM = module_product.REBOOT_CTRL_PARAM + +# pmon_syslog parameter +PMON_SYSLOG_STATUS = module_product.PMON_SYSLOG_STATUS + +# reboot_cause parameter +REBOOT_CAUSE_PARA = module_product.REBOOT_CAUSE_PARA + +# upgrade parameter +UPGRADE_SUMMARY = module_product.UPGRADE_SUMMARY + +# warm_uprade parameter +WARM_UPGRADE_PARAM = module_product.WARM_UPGRADE_PARAM +WARM_UPG_FLAG = module_product.WARM_UPG_FLAG +WARM_UPGRADE_STARTED_FLAG = module_product.WARM_UPGRADE_STARTED_FLAG + +# platform_e2 parameter +PLATFORM_E2_CONF = module_product.PLATFORM_E2_CONF + +# generate_airflow parameter +AIR_FLOW_CONF = module_product.AIR_FLOW_CONF +AIRFLOW_RESULT_FILE = module_product.AIRFLOW_RESULT_FILE + +# Initialization parameters +GLOBALINITPARAM = module_product.INIT_PARAM +GLOBALINITCOMMAND = module_product.INIT_COMMAND +GLOBALINITPARAM_PRE = module_product.INIT_PARAM_PRE +GLOBALINITCOMMAND_PRE = module_product.INIT_COMMAND_PRE + +################################ fancontrol parameter################################### + + +class MONITOR_CONST: + TEMP_MIN = module_product.MONITOR_TEMP_MIN + K = module_product.MONITOR_K + MAC_IN = module_product.MONITOR_MAC_IN + DEFAULT_SPEED = module_product.MONITOR_DEFAULT_SPEED + MAX_SPEED = module_product.MONITOR_MAX_SPEED + MIN_SPEED = module_product.MONITOR_MIN_SPEED + MAC_ERROR_SPEED = module_product.MONITOR_MAC_ERROR_SPEED + FAN_TOTAL_NUM = module_product.MONITOR_FAN_TOTAL_NUM + MAC_UP_TEMP = module_product.MONITOR_MAC_UP_TEMP + MAC_LOWER_TEMP = module_product.MONITOR_MAC_LOWER_TEMP + MAC_MAX_TEMP = module_product.MONITOR_MAC_MAX_TEMP + + MAC_WARNING_THRESHOLD = module_product.MONITOR_MAC_WARNING_THRESHOLD + OUTTEMP_WARNING_THRESHOLD = module_product.MONITOR_OUTTEMP_WARNING_THRESHOLD + BOARDTEMP_WARNING_THRESHOLD = module_product.MONITOR_BOARDTEMP_WARNING_THRESHOLD + CPUTEMP_WARNING_THRESHOLD = module_product.MONITOR_CPUTEMP_WARNING_THRESHOLD + INTEMP_WARNING_THRESHOLD = module_product.MONITOR_INTEMP_WARNING_THRESHOLD + + MAC_CRITICAL_THRESHOLD = module_product.MONITOR_MAC_CRITICAL_THRESHOLD + OUTTEMP_CRITICAL_THRESHOLD = module_product.MONITOR_OUTTEMP_CRITICAL_THRESHOLD + BOARDTEMP_CRITICAL_THRESHOLD = module_product.MONITOR_BOARDTEMP_CRITICAL_THRESHOLD + CPUTEMP_CRITICAL_THRESHOLD = module_product.MONITOR_CPUTEMP_CRITICAL_THRESHOLD + INTEMP_CRITICAL_THRESHOLD = module_product.MONITOR_INTEMP_CRITICAL_THRESHOLD + CRITICAL_NUM = module_product.MONITOR_CRITICAL_NUM + SHAKE_TIME = module_product.MONITOR_SHAKE_TIME + MONITOR_INTERVAL = module_product.MONITOR_INTERVAL + MONITOR_LED_INTERVAL = module_product.MONITOR_LED_INTERVAL + MONITOR_FALL_TEMP = module_product.MONITOR_FALL_TEMP + MONITOR_PID_FLAG = module_product.MONITOR_PID_FLAG + MONITOR_PID_MODULE = module_product.MONITOR_PID_MODULE + + MONITOR_MAC_SOURCE_SYSFS = module_product.MONITOR_MAC_SOURCE_SYSFS + MONITOR_MAC_SOURCE_PATH = module_product.MONITOR_MAC_SOURCE_PATH + + +PSU_FAN_FOLLOW = module_product.PSU_FAN_FOLLOW +MONITOR_SYS_LED = module_product.MONITOR_SYS_LED +MONITOR_FANS_LED = module_product.MONITOR_FANS_LED +MONITOR_SYS_FAN_LED = module_product.MONITOR_SYS_FAN_LED +MONITOR_SYS_PSU_LED = module_product.MONITOR_SYS_PSU_LED +MONITOR_FAN_STATUS = module_product.MONITOR_FAN_STATUS +MONITOR_PSU_STATUS = module_product.MONITOR_PSU_STATUS +MONITOR_DEV_STATUS = module_product.MONITOR_DEV_STATUS +MONITOR_DEV_STATUS_DECODE = module_product.MONITOR_DEV_STATUS_DECODE +DEV_LEDS = module_product.DEV_LEDS +fanloc = module_product.fanloc diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_driver.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_driver.py new file mode 100755 index 000000000000..6d2c6de653d9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_driver.py @@ -0,0 +1,258 @@ +#!/usr/bin/env python3 +import os +import subprocess +import time +import click +from platform_config import GLOBALCONFIG, WARM_UPGRADE_STARTED_FLAG, WARM_UPG_FLAG + + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def log_os_system(cmd): + status, output = subprocess.getstatusoutput(cmd) + if status: + print(output) + return status, output + + +def platform_process_file_check(): + # WARM_UPGRADE_STARTED_FLAG is used as warm_upgrade.py process start flag + if os.path.exists(WARM_UPGRADE_STARTED_FLAG): + os.remove(WARM_UPGRADE_STARTED_FLAG) + + # WARM_UPG_FLAG is used as port related service judgment flag + if os.path.exists(WARM_UPG_FLAG): + os.remove(WARM_UPG_FLAG) + + +def startCommon_operation(): + platform_process_file_check() + + +def check_driver(): + status, output = log_os_system("lsmod | grep wb | wc -l") + if status: + return False + if output.isdigit() and int(output) > 0: + return True + return False + + +def removeDev(bus, loc): + cmd = "echo 0x%02x > /sys/bus/i2c/devices/i2c-%d/delete_device" % (loc, bus) + devpath = "/sys/bus/i2c/devices/%d-%04x" % (bus, loc) + if os.path.exists(devpath): + log_os_system(cmd) + + +def addDev(name, bus, loc): + if name == "lm75": + time.sleep(0.1) + pdevpath = "/sys/bus/i2c/devices/i2c-%d/" % (bus) + for i in range(1, 100): + if os.path.exists(pdevpath) is True: + break + time.sleep(0.1) + if i % 10 == 0: + click.echo("%%WB_PLATFORM_DRIVER-INIT: %s not found, wait 0.1 second ! i %d " % (pdevpath, i)) + + cmd = "echo %s 0x%02x > /sys/bus/i2c/devices/i2c-%d/new_device" % (name, loc, bus) + devpath = "/sys/bus/i2c/devices/%d-%04x" % (bus, loc) + if os.path.exists(devpath) is False: + os.system(cmd) + + +def removeOPTOE(startbus, endbus): + for bus in range(endbus, startbus - 1, -1): + removeDev(bus, 0x50) + + +def addOPTOE(name, startbus, endbus): + for bus in range(startbus, endbus + 1): + addDev(name, bus, 0x50) + + +def removeoptoes(): + optoes = GLOBALCONFIG["OPTOE"] + for index in range(len(optoes) - 1, -1, -1): + removeOPTOE(optoes[index]["startbus"], optoes[index]["endbus"]) + + +def addoptoes(): + optoes = GLOBALCONFIG["OPTOE"] + for optoe in optoes: + addOPTOE(optoe["name"], optoe["startbus"], optoe["endbus"]) + + +def removedevs(): + devs = GLOBALCONFIG["DEVS"] + for index in range(len(devs) - 1, -1, -1): + removeDev(devs[index]["bus"], devs[index]["loc"]) + + +def adddevs(): + devs = GLOBALCONFIG["DEVS"] + for dev in devs: + addDev(dev["name"], dev["bus"], dev["loc"]) + + +def checksignaldriver(name): + modisexistcmd = "lsmod | grep -w %s | wc -l" % name + status, output = log_os_system(modisexistcmd) + if status: + return False + if output.isdigit() and int(output) > 0: + return True + return False + + +def adddriver(name, delay): + cmd = "modprobe %s" % name + if delay != 0: + time.sleep(delay) + if checksignaldriver(name) is not True: + log_os_system(cmd) + + +def removedriver(name, delay, removeable=1): + realname = name.lstrip().split(" ")[0] + cmd = "rmmod -f %s" % realname + if checksignaldriver(realname) and removeable: + log_os_system(cmd) + if delay > 0: + time.sleep(delay) + + +def removedrivers(): + if GLOBALCONFIG is None: + click.echo("%%WB_PLATFORM_DRIVER-INIT: load global config failed.") + return + drivers = GLOBALCONFIG.get("DRIVERLISTS", None) + if drivers is None: + click.echo("%%WB_PLATFORM_DRIVER-INIT: load driver list failed.") + return + for index in range(len(drivers) - 1, -1, -1): + delay = 0 + name = "" + removeable = drivers[index].get("removable", 1) + if isinstance(drivers[index], dict) and "delay" in drivers[index]: + name = drivers[index].get("name") + delay = drivers[index]["delay"] + else: + name = drivers[index] + removedriver(name, delay, removeable) + + +def adddrivers(): + if GLOBALCONFIG is None: + click.echo("%%WB_PLATFORM_DRIVER-INIT: load global config failed.") + return + drivers = GLOBALCONFIG.get("DRIVERLISTS", None) + if drivers is None: + click.echo("%%WB_PLATFORM_DRIVER-INIT: load driver list failed.") + return + for driver in drivers: + delay = 0 + name = "" + if isinstance(driver, dict) and "delay" in driver: + name = driver.get("name") + delay = driver["delay"] + else: + name = driver + adddriver(name, delay) + + +def blacklist_driver_remove(): + if GLOBALCONFIG is None: + click.echo("%%WB_PLATFORM_DRIVER-INIT: load global config failed.") + return + blacklist_drivers = GLOBALCONFIG.get("BLACKLIST_DRIVERS", []) + for driver in blacklist_drivers: + delay = 0 + name = "" + if isinstance(driver, dict) and "delay" in driver: + name = driver.get("name") + delay = driver["delay"] + else: + name = driver + removedriver(name, delay) + + +def unload_driver(): + removeoptoes() + removedevs() + removedrivers() + + +def reload_driver(): + removedevs() + removedrivers() + time.sleep(1) + adddrivers() + adddevs() + + +def i2c_check(bus, retrytime=6): + try: + i2cpath = "/sys/bus/i2c/devices/" + bus + while retrytime and not os.path.exists(i2cpath): + click.echo("%%WB_PLATFORM_DRIVER-HA: i2c bus abnormal, last bus %s is not exist." % i2cpath) + reload_driver() + retrytime -= 1 + time.sleep(1) + except Exception as e: + click.echo("%%WB_PLATFORM_DRIVER-HA: %s" % str(e)) + + +def load_driver(): + startCommon_operation() + adddrivers() + adddevs() + addoptoes() + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''device operator''' + + +@main.command() +def start(): + '''load drivers and device ''' + blacklist_driver_remove() + if check_driver(): + unload_driver() + load_driver() + + +@main.command() +def stop(): + '''stop drivers device ''' + unload_driver() + + +@main.command() +def restart(): + '''restart drivers and device''' + unload_driver() + load_driver() + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py new file mode 100755 index 000000000000..808d93216210 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py @@ -0,0 +1,434 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import click + +from eepromutil.fru import ipmifru +from eepromutil.fantlv import fan_tlv +import eepromutil.onietlv as ot +from platform_config import PLATFORM_E2_CONF +from platform_util import byteTostr, dev_file_read + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +class ExtraFunc(object): + @staticmethod + def decode_mac(encodedata): + if encodedata is None: + return None + ret = ":".join("%02x" % ord(data) for data in encodedata) + return ret.upper() + + @staticmethod + def decode_mac_number(encodedata): + if encodedata is None: + return None + return (ord(encodedata[0]) << 8) | (ord(encodedata[1]) & 0x00ff) + + @staticmethod + @staticmethod + def fru_decode_mac_number(params): + ipmi_fru = params.get("fru") + area = params.get("area") + field = params.get("field") + area_info = getattr(ipmi_fru, area, None) + if area_info is not None: + raw_mac_number = getattr(area_info, field, None) + mac_number = decode_mac_number(raw_mac_number) + ipmi_fru.setValue(area, field, mac_number) + + @staticmethod + def fru_decode_mac(params): + ipmi_fru = params.get("fru") + area = params.get("area") + field = params.get("field") + area_info = getattr(ipmi_fru, area, None) + if area_info is not None: + raw_mac = getattr(area_info, field, None) + decoded_mac = decode_mac(raw_mac) + ipmi_fru.setValue(area, field, decoded_mac) + + @staticmethod + def fru_decode_hw(params): + ipmi_fru = params.get("fru") + area = params.get("area") + field = params.get("field") + area_info = getattr(ipmi_fru, area, None) + if area_info is not None: + raw_hw = getattr(area_info, field, None) + decode_hw = str(int(raw_hw, 16)) + ipmi_fru.setValue(area, field, decode_hw) + + +def set_onie_value(params): + onie = params.get("onie") + field = params.get("field") + config_value = params.get("config_value") + for index, onie_item in enumerate(onie): + if onie_item.get("name") == field: + if "value" in onie_item.keys(): + onie[index]["value"] = config_value + + +def onie_eeprom_decode(onie, e2_decode): + for e2_decode_item in e2_decode: + field = e2_decode_item.get("field") + decode_type = e2_decode_item.get("decode_type") + if decode_type == 'func': + params = { + "onie": onie, + "field": field + } + func_name = e2_decode_item.get("func_name") + if func_name is not None: + run_func(func_name, params) + elif decode_type == 'config': + config_value = e2_decode_item.get("config_value") + if config_value is not None: + params = { + "onie": onie, + "field": field, + "config_value": config_value + } + set_onie_value(params) + else: + print("unsupport decode type") + continue + + +def onie_eeprom_show(eeprom, e2_decode=None): + try: + onietlv = ot.onie_tlv() + rets = onietlv.decode(eeprom) + if e2_decode is not None: + onie_eeprom_decode(rets, e2_decode) + print("%-20s %-5s %-5s %-20s" % ("TLV name", "Code", "lens", "Value")) + for item in rets: + if item["code"] == 0xfd: + print("%-20s 0x%-02X %-5s" % (item["name"], item["code"], item["lens"])) + else: + print("%-20s 0x%-02X %-5s %-20s" % (item["name"], item["code"], item["lens"], item["value"])) + except Exception as e: + print(str(e)) + + +def set_fantlv_value(params): + fantlv_dict = params.get("fantlv") + field = params.get("field") + config_value = params.get("config_value") + for index, fantlv_item in enumerate(fantlv_dict): + if fantlv_item.get("name") == field: + if "value" in fantlv_item.keys(): + fantlv_dict[index]["value"] = config_value + + +def fantlv_eeprom_decode(fantlv_dict, e2_decode): + for e2_decode_item in e2_decode: + field = e2_decode_item.get("field") + decode_type = e2_decode_item.get("decode_type") + if decode_type == 'func': + params = { + "fantlv": fantlv_dict, + "field": field + } + func_name = e2_decode_item.get("func_name") + if func_name is not None: + run_func(func_name, params) + elif decode_type == 'config': + config_value = e2_decode_item.get("config_value") + if config_value is not None: + params = { + "fantlv": fantlv_dict, + "field": field, + "config_value": config_value + } + set_fantlv_value(params) + else: + print("unsupport decode type") + continue + + +def fantlv_eeprom_show(eeprom, e2_decode=None): + try: + tlv = fan_tlv() + rets = tlv.decode(eeprom) + if len(rets) == 0: + print("fan tlv eeprom info error.!") + return + if e2_decode is not None: + fantlv_eeprom_decode(rets, e2_decode) + print("%-15s %-5s %-5s %-20s" % ("TLV name", "Code", "lens", "Value")) + for item in rets: + print("%-15s 0x%-02X %-5s %-20s" % (item["name"], item["code"], item["lens"], item["value"])) + except Exception as e: + print(str(e)) + return + + +def run_func(funcname, params): + try: + func = getattr(ExtraFunc, funcname) + func(params) + except Exception as e: + print(str(e)) + +def set_fru_value(params): + ipmi_fru = params.get("fru") + area = params.get("area") + field = params.get("field") + config_value = params.get("config_value") + ipmi_fru.setValue(area, field, config_value) + + +def fru_eeprom_decode(ipmi_fru, e2_decode): + for e2_decode_item in e2_decode: + area = e2_decode_item.get("area") + field = e2_decode_item.get("field") + decode_type = e2_decode_item.get("decode_type") + if decode_type == 'func': + params = { + "fru": ipmi_fru, + "area": area, + "field": field + } + func_name = e2_decode_item.get("func_name") + if func_name is not None: + run_func(func_name, params) + elif decode_type == 'config': + config_value = e2_decode_item.get("config_value") + if config_value is not None: + params = { + "fru": ipmi_fru, + "area": area, + "field": field, + "config_value": config_value + } + set_fru_value(params) + else: + print("unsupport decode type") + continue + + +def fru_eeprom_show(eeprom, e2_decode=None): + try: + ipmi_fru = ipmifru() + ipmi_fru.decodeBin(eeprom) + if e2_decode is not None: + fru_eeprom_decode(ipmi_fru, e2_decode) + print("=================board=================") + print(ipmi_fru.boardInfoArea) + print("=================product=================") + print(ipmi_fru.productInfoArea) + except Exception as e: + print(str(e)) + + +def eeprom_parase(eeprom_conf): + name = eeprom_conf.get("name") + e2_type = eeprom_conf.get("e2_type") + e2_path = eeprom_conf.get("e2_path") + e2_size = eeprom_conf.get("e2_size", 256) + e2_decode = eeprom_conf.get("e2_decode") + print("===================%s===================" % name) + ret, binval_bytes = dev_file_read(e2_path, 0, e2_size) + if ret is False: + print("eeprom read error, eeprom path: %s, msg: %s" % (e2_path, binval_bytes)) + return + binval = byteTostr(binval_bytes) + if e2_type == "onie_tlv": + onie_eeprom_show(binval, e2_decode) + elif e2_type == "fru": + fru_eeprom_show(binval, e2_decode) + elif e2_type == "fantlv": + fantlv_eeprom_show(binval, e2_decode) + else: + print("Unknow eeprom type: %s" % e2_type) + return + + +def get_fans_eeprom_info(param): + fan_eeprom_conf = PLATFORM_E2_CONF.get("fan", []) + fan_num = len(fan_eeprom_conf) + if fan_num == 0: + print("fan number is 0, can't get fan eeprom info") + return + if param == 'all': + for conf in fan_eeprom_conf: + eeprom_parase(conf) + return + if not param.isdigit(): + print("param error, %s is not digital or 'all'" % param) + return + fan_index = int(param, 10) - 1 + if fan_index < 0 or fan_index >= fan_num: + print("param error, total fan number: %d, fan index: %d" % (fan_num, fan_index + 1)) + return + eeprom_parase(fan_eeprom_conf[fan_index]) + return + + +def get_psus_eeprom_info(param): + psu_eeprom_conf = PLATFORM_E2_CONF.get("psu", []) + psu_num = len(psu_eeprom_conf) + if psu_num == 0: + print("psu number is 0, can't get psu eeprom info") + return + if param == 'all': + for conf in psu_eeprom_conf: + eeprom_parase(conf) + return + if not param.isdigit(): + print("param error, %s is not digital or 'all'" % param) + return + psu_index = int(param, 10) - 1 + if psu_index < 0 or psu_index >= psu_num: + print("param error, total psu number: %d, psu index: %d" % (psu_num, psu_index + 1)) + return + eeprom_parase(psu_eeprom_conf[psu_index]) + return + + +def get_slots_eeprom_info(param): + slot_eeprom_conf = PLATFORM_E2_CONF.get("slot", []) + slot_num = len(slot_eeprom_conf) + if slot_num == 0: + print("slot number is 0, can't get slot eeprom info") + return + if param == 'all': + for conf in slot_eeprom_conf: + eeprom_parase(conf) + return + if not param.isdigit(): + print("param error, %s is not digital or 'all'" % param) + return + slot_index = int(param, 10) - 1 + if slot_index < 0 or slot_index >= slot_num: + print("param error, total slot number: %d, slot index: %d" % (slot_num, slot_index + 1)) + return + eeprom_parase(slot_eeprom_conf[slot_index]) + return + + +def get_syseeprom_info(param): + syseeprom_conf = PLATFORM_E2_CONF.get("syseeprom", []) + syseeprom_num = len(syseeprom_conf) + if syseeprom_num == 0: + print("syseeprom number is 0, can't get syseeprom info") + return + if param == 'all': + for conf in syseeprom_conf: + eeprom_parase(conf) + return + if not param.isdigit(): + print("param error, %s is not digital or 'all'" % param) + return + syseeprom_index = int(param, 10) - 1 + if syseeprom_index < 0 or syseeprom_index >= syseeprom_num: + print("param error, total syseeprom number: %d, syseeprom index: %d" % (syseeprom_num, syseeprom_index + 1)) + return + eeprom_parase(syseeprom_conf[syseeprom_index]) + return + + +def decode_eeprom_info(e2_type, e2_path, e2_size): + if not e2_size.isdigit(): + print("param error, e2_size %s is not digital" % e2_size) + return + e2_size = int(e2_size, 10) + eeprom_conf = {} + eeprom_conf["name"] = e2_type + eeprom_conf["e2_type"] = e2_type + eeprom_conf["e2_path"] = e2_path + eeprom_conf["e2_size"] = e2_size + eeprom_parase(eeprom_conf) + return + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''platform eeprom display script''' + +# fan eeprom info display + + +@main.command() +@click.argument('fan_index', required=True) +def fan(fan_index): + '''fan_index(1, 2, 3...)/all''' + get_fans_eeprom_info(fan_index) + +# psu eeprom info display + + +@main.command() +@click.argument('psu_index', required=True) +def psu(psu_index): + '''psu_index(1, 2, 3...)/all''' + get_psus_eeprom_info(psu_index) + +# slot eeprom info display + + +@main.command() +@click.argument('slot_index', required=True) +def slot(slot_index): + '''slot_index(1, 2, 3...)/all''' + get_slots_eeprom_info(slot_index) + +# syseeprom info display + + +@main.command() +@click.argument('syseeprom_index', required=True) +def syseeprom(syseeprom_index): + '''syseeprom_index(1, 2, 3...)/all''' + get_syseeprom_info(syseeprom_index) + +# fru eeprom info decode + + +@main.command() +@click.argument('e2_path', required=True) +@click.argument('e2_size', required=False, default="256") +def fru(e2_path, e2_size): + '''e2_path''' + decode_eeprom_info("fru", e2_path, e2_size) + +# fantlv eeprom info decode + + +@main.command() +@click.argument('e2_path', required=True) +@click.argument('e2_size', required=False, default="256") +def fantlv(e2_path, e2_size): + '''e2_path''' + decode_eeprom_info("fantlv", e2_path, e2_size) + +# onie_tlv eeprom info decode + + +@main.command() +@click.argument('e2_path', required=True) +@click.argument('e2_size', required=False, default="256") +def onie_tlv(e2_path, e2_size): + '''e2_path''' + decode_eeprom_info("onie_tlv", e2_path, e2_size) + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py new file mode 100755 index 000000000000..2143b9420cd3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py @@ -0,0 +1,367 @@ +#!/usr/bin/env python3 +import os +import syslog +import importlib.machinery +from platform_util import getplatform_name, dev_file_read, dev_file_write, write_sysfs, read_sysfs + +__all__ = [ + "platform_reg_read", + "platform_reg_write", + "platform_set_optoe_type", + "platform_get_optoe_type", + "platform_sfp_read", + "platform_sfp_write", +] + +CPLD = 0 +FPGA = 1 +CPLD_PATH = "/dev/cpld%d" +FPGA_PATH = "/dev/fpga%d" + + +OPTOE_PATH = "/sys/bus/i2c/devices/%d-0050/" +OPTOE_DEV_CLASS = "dev_class" +OPTOE_EEPROM = "eeprom" + + +PLATFORM_INTF_DEBUG_FILE = "/etc/.platform_intf_debug_flag" + + +CONFIG_FILE_LIST = [ + "/usr/local/bin/", + "/usr/local/lib/python3/dist-packages/config/", + "/usr/local/lib/python3.7/dist-packages/config/", + "/usr/local/lib/python3.9/dist-packages/config/"] + + +def platform_intf_debug(s): + if os.path.exists(PLATFORM_INTF_DEBUG_FILE): + syslog.openlog("PLATFORM_INTF_DEBUG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def platform_intf_error(s): + if os.path.exists(PLATFORM_INTF_DEBUG_FILE): + syslog.openlog("PLATFORM_INTF_ERROR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +class IntfPlatform: + CONFIG_NAME = 'PLATFORM_INTF_OPTOE' + __port_optoe_dict = {} + + def __init__(self): + real_path = None + platform_name = (getplatform_name()).replace("-", "_") + for configfile_path in CONFIG_FILE_LIST: + configfile = configfile_path + platform_name + "_port_config.py" + if os.path.exists(configfile): + real_path = configfile + break + if real_path is None: + raise Exception("get port config error") + config = importlib.machinery.SourceFileLoader(self.CONFIG_NAME, real_path).load_module() + self.__port_optoe_dict = config.PLATFORM_INTF_OPTOE + + def get_dev_path(self, dev_type, dev_id): + if dev_type == CPLD: + path = CPLD_PATH % dev_id + elif dev_type == FPGA: + path = FPGA_PATH % dev_id + else: + msg = "dev_type error!" + return False, msg + platform_intf_debug("path:%s" % path) + return True, path + + def get_port_path(self, port): + port_num = self.__port_optoe_dict.get("port_num", 0) + optoe_start_bus = self.__port_optoe_dict.get("optoe_start_bus", 0) + if port_num <= 0 or optoe_start_bus <= 0: + msg = "PLATFORM_INTF_OPTOE config error!" + return False, msg + if port <= 0 or port > port_num: + msg = "port out of range !" + return False, msg + path = OPTOE_PATH % (port + optoe_start_bus - 1) + platform_intf_debug("path:%s" % path) + return True, path + + ########################################### + # reg_read - read logic device register + # @dev_type: 0: CPLD, 1: FPGA + # @dev_id: device ID, start from 0 + # @offset: register offset + # @size: read length + # return: + # @ret: True if read success, False if not + # @info: The read value list if read success, otherwise the detail error message + ########################################### + def reg_read(self, dev_type, dev_id, offset, size): + ret, path = self.get_dev_path(dev_type, dev_id) + if ret is False: + return False, path + ret, info = dev_file_read(path, offset, size) + return ret, info + + ########################################### + # platform_reg_write - write logic device register + # @dev_type: 0: CPLD, 1: FPGA + # @dev_id: device ID, start from 0 + # @offset: register offset + # @val_list: The write value list + # return: + # @ret: True if write success, False if not + # @info: The write value length if write success, otherwise the detail error message + ########################################### + def reg_write(self, dev_type, dev_id, offset, val_list): + ret, path = self.get_dev_path(dev_type, dev_id) + if ret is False: + return False, path + ret, info = dev_file_write(path, offset, val_list) + return ret, info + + ########################################### + # set_optoe_type - set port optoe type + # @port: port index start from 1 + # @optoe_type: optoe type, including the following values + # 1: OPTOE1 + # 2: OPTOE2 + # 3: OPTOE3 + # return: + # @ret: True if set optoe type success, False if not + # @info: None if set optoe type success, otherwise the detail error message + ########################################### + def set_optoe_type(self, port, optoe_type): + ret, path = self.get_port_path(port) + if ret is False: + return False, path + optoe_type_path = path + OPTOE_DEV_CLASS + ret, info = write_sysfs(optoe_type_path, "%d" % optoe_type) + if ret is False: + return False, info + return True, None + + ########################################### + # get_optoe_type - get port optoe type + # @port: port index start from 1 + # return: + # @ret: True if set optoe type success, False if not + # @info: Optoe type value if get optoe type success, otherwise the detail error message + # optoe type including the following values + # 1: OPTOE1 + # 2: OPTOE2 + # 3: OPTOE3 + ########################################### + def get_optoe_type(self, port): + ret, path = self.get_port_path(port) + if ret is False: + return False, path + optoe_type_path = path + OPTOE_DEV_CLASS + ret, info = read_sysfs(optoe_type_path) + if ret is False: + return False, info + return True, int(info) + + ########################################### + # sfp_read -read sfp eeprom + # @port_id: port index start from 1 + # @offset: sfp eeprom offset + # @size: read sfp eeprom length + # return: + # @ret: True if read success, False if not + # @info: The read value list if read success, otherwise the detail error message + ########################################### + def sfp_read(self, port_id, offset, size): + ret, path = self.get_port_path(port_id) + if ret is False: + return False, path + optoe_eeprom_path = path + OPTOE_EEPROM + ret, info = dev_file_read(optoe_eeprom_path, offset, size) + return ret, info + + ########################################### + # sfp_write -write sfp eeprom + # @port_id: port index start from 1 + # @offset: sfp eeprom offset + # @val_list: The write value list + # return: + # @ret: True if read success, False if not + # @info: The write value length if write success, otherwise the detail error message + ########################################### + def sfp_write(self, port_id, offset, val_list): + ret, path = self.get_port_path(port_id) + if ret is False: + return False, path + optoe_eeprom_path = path + OPTOE_EEPROM + ret, info = dev_file_write(optoe_eeprom_path, offset, val_list) + return ret, info + + +platform = IntfPlatform() + + +########################################### +# platform_reg_read - read logic device register +# @dev_type: 0: CPLD, 1: FPGA +# @dev_id: device ID, start from 0 +# @offset: register offset +# @size: read length +# return: +# @ret: True if read success, False if not +# @info: The read value list if read success, otherwise the detail error message +########################################### +def platform_reg_read(dev_type, dev_id, offset, size): + ret = False + info = None + + # params check + if (isinstance(dev_type, int) is False or isinstance(dev_id, int) is False or + isinstance(offset, int) is False or isinstance(size, int) is False): + info = "params type check fail in platform_reg_read" + return ret, info + if dev_id < 0 or offset < 0 or size <= 0: + info = "params value check fail in platform_reg_read" + return ret, info + support_dev_type = (CPLD, FPGA) + if dev_type not in support_dev_type: + info = "dev_type match erro, fail in platform_reg_read" + return ret, info + + # call the solve func + return platform.reg_read(dev_type, dev_id, offset, size) + + +########################################### +# platform_reg_write - write logic device register +# @dev_type: 0: CPLD, 1: FPGA +# @dev_id: device ID, start from 0 +# @offset: register offset +# @val_list: The write value list +# return: +# @ret: True if write success, False if not +# @info: The write value length if write success, otherwise the detail error message +########################################### +def platform_reg_write(dev_type, dev_id, offset, val_list): + ret = False + info = None + + # params check + if (isinstance(dev_type, int) is False or isinstance(dev_id, int) is False or + isinstance(offset, int) is False or isinstance(val_list, list) is False): + info = "params type check fail in platform_reg_write" + return ret, info + if dev_id < 0 or offset < 0 or len(val_list) <= 0: + info = "params value check fail in platform_reg_write" + return ret, info + support_dev_type = (CPLD, FPGA) + if dev_type not in support_dev_type: + info = "dev_type match erro, fail in platform_reg_write" + return ret, info + + # call the solve func + return platform.reg_write(dev_type, dev_id, offset, val_list) + + +########################################### +# platform_set_optoe_type - set port optoe type +# @port: port index start from 1 +# @optoe_type: optoe type, including the following values +# 1: OPTOE1 +# 2: OPTOE2 +# 3: OPTOE3 +# return: +# @ret: True if set optoe type success, False if not +# @info: None if set optoe type success, otherwise the detail error message +########################################### +def platform_set_optoe_type(port, optoe_type): + ret = False + info = None + + # params check + if isinstance(port, int) is False or isinstance(optoe_type, int) is False: + info = "params type check fail in platform_set_optoe_type" + return ret, info + if port < 0 or optoe_type < 1 or optoe_type > 3: + info = "params value check fail in platform_set_optoe_type" + return ret, info + + # call the solve func + return platform.set_optoe_type(port, optoe_type) + + +########################################### +# platform_get_optoe_type - get port optoe type +# @port: port index start from 1 +# return: +# @ret: True if set optoe type success, False if not +# @info: Optoe type value if get optoe type success, otherwise the detail error message +# optoe type including the following values +# 1: OPTOE1 +# 2: OPTOE2 +# 3: OPTOE3 +########################################### +def platform_get_optoe_type(port): + ret = False + info = None + + # params check + if isinstance(port, int) is False: + info = "params type check fail in platform_get_optoe_type" + return ret, info + if port < 0: + info = "params value check fail in platform_get_optoe_type" + return ret, info + + # call the solve func + return platform.get_optoe_type(port) + + +########################################### +# platform_sfp_read -read sfp eeprom +# @port_id: port index start from 1 +# @offset: sfp eeprom offset +# @size: read sfp eeprom length +# return: +# @ret: True if read success, False if not +# @info: The read value list if read success, otherwise the detail error message +########################################### +def platform_sfp_read(port_id, offset, size): + ret = False + info = None + + # params check + if isinstance(port_id, int) is False or isinstance(offset, int) is False or isinstance(size, int) is False: + info = "params type check fail in platform_sfp_read" + return ret, info + if port_id < 0 or offset < 0 or size <= 0: + info = "params value check fail in platform_sfp_read" + return ret, info + + # call the solve func + return platform.sfp_read(port_id, offset, size) + + +########################################### +# platform_sfp_write -write sfp eeprom +# @port_id: port index start from 1 +# @offset: sfp eeprom offset +# @val_list: The write value list +# return: +# @ret: True if read success, False if not +# @info: The write value length if write success, otherwise the detail error message +########################################### +def platform_sfp_write(port_id, offset, val_list): + ret = False + info = None + + # params check + if isinstance(port_id, int) is False or isinstance(offset, int) is False or isinstance(val_list, list) is False: + info = "params type check fail in platform_sfp_write" + return ret, info + if port_id < 0 or offset < 0 or len(val_list) <= 0: + info = "params value check fail in platform_sfp_write" + return ret, info + + # call the solve func + return platform.sfp_write(port_id, offset, val_list) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_ipmi.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_ipmi.py new file mode 100755 index 000000000000..c9b72c99cca9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_ipmi.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import sys +import os +import syslog +import click +from platform_util import exec_os_cmd + + +IPMITOOL_CMD = "ipmitool raw 0x32 0x04" # All products are the same command + +PLATFORM_IPMI_DEBUG_FILE = "/etc/.platform_ipmi_debug_flag" +UPGRADEDEBUG = 1 +debuglevel = 0 + + +def debug_init(): + global debuglevel + if os.path.exists(PLATFORM_IPMI_DEBUG_FILE): + debuglevel = debuglevel | UPGRADEDEBUG + else: + debuglevel = debuglevel & ~(UPGRADEDEBUG) + + +def ipmidebuglog(s): + # s = s.decode('utf-8').encode('gb2312') + if UPGRADEDEBUG & debuglevel: + syslog.openlog("PLATFORM_IPMI", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def ipmierror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("PLATFORM_IPMI", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +@click.command() +@click.argument('cmd', required=True) +def platform_ipmi_main(cmd): + '''Send command to BMC through ipmi''' + try: + # Convert string command to ASCII + user_cmd = "" + for ch in cmd: + user_cmd += " " + str(ord(ch)) + + final_cmd = IPMITOOL_CMD + user_cmd + ipmidebuglog("final cmd:%s" % final_cmd) + + # exec ipmitool cmd + status, output = exec_os_cmd(final_cmd) + if status: + ipmierror("exec ipmitool_cmd:%s user_cmd:%s failed" % (IPMITOOL_CMD, cmd)) + ipmierror("failed log: %s" % output) + return False, "exec final_cmd failed" + + # the data read by ipmitool is hex value, needs transformation + data_list = output.replace("\n", "").strip(' ').split(' ') + ipmidebuglog("data_list: %s" % data_list) + result = "" + for data in data_list: + result += chr(int(data, 16)) + + # 'result' string include ret and log, separated by , + result_list = result.split(',', 2) + if len(result_list) != 2: + log = "split failed. len(result) != 2. result:%s" % result + ipmierror(log) + return False, log + if int(result_list[0]) != 0: + ipmierror("finally analy ipmitool_cmd:%s user_cmd:%s exec failed" % (IPMITOOL_CMD, cmd)) + ipmierror("failed return log: %s" % result_list[1]) + print(result_list[1]) + return False, result_list[1] + + ipmidebuglog("finally exec ipmitool_cmd:%s user_cmd:%s success" % (IPMITOOL_CMD, cmd)) + print(result_list[1]) + return True, result_list[1] + + except Exception as e: + log = "An exception occurred, exception log:%s" % str(e) + ipmierror(log) + return False, log + + +if __name__ == '__main__': + debug_init() + ret, msg = platform_ipmi_main() + if ret is False: + sys.exit(1) + sys.exit(0) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_manufacturer.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_manufacturer.py new file mode 100755 index 000000000000..b2643da9bce4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_manufacturer.py @@ -0,0 +1,562 @@ +#!/usr/bin/env python3 + +import re +import mmap +import fcntl +import subprocess +import shlex +import signal +import os +import time +import sys +from platform_config import MANUINFO_CONF +from monitor import status + + +INDENT = 4 + + +def printerr(vchar): + sys.stderr.write(vchar + '\n') + + +g_extra_cache = {} +g_meminfo_cache = {} +g_exphy_cache = {} + + +def exec_os_cmd(cmd, timeout = None): + status, output = subprocess.getstatusoutput(cmd) + return status, output + + +def exphyfwsplit(): + # improve performance + global g_exphy_cache + if g_exphy_cache: + return + cmd = "bcmcmd -t 1 \"phy control xe,ce fw_get\" |grep fw_version" + ret, output = exec_os_cmd(cmd) + if ret or len(output) == 0: + raise Exception("run cmd: {} error, status: {}, msg: {}".format(cmd, ret, output)) + exphyfwstr = output.strip() + portlist = exphyfwstr.split("\n") + for port in portlist: + phy_addr_str = get_regular_val(port, r"phy_addr\s*=\s*\w+", 0) + if phy_addr_str.startswith("ERR"): + continue + phy_addr_key = phy_addr_str.replace(" ", "") + if phy_addr_key in g_exphy_cache: + continue + + g_exphy_cache[phy_addr_key] = {} + + fw_version_str = get_regular_val(port, r"fw_version\s*=\s*\w+", 0) + if fw_version_str.startswith("ERR"): + del g_exphy_cache[phy_addr_key] + continue + + fw_version = fw_version_str.split("=")[1].strip() + g_exphy_cache[phy_addr_key]["fw_version"] = fw_version + + if "success" in port: + ret = "OK" + else: + ret = "Unexpected" + g_exphy_cache[phy_addr_key]["status"] = ret + return + + +def lshwmemorysplit(): + # improve performance + global g_meminfo_cache + if g_meminfo_cache: + return + cmd = "lshw -c memory" + ret, output = exec_os_cmd(cmd) + if ret or len(output) == 0: + raise Exception("run cmd: {} error, status: {}, msg: {}".format(cmd, ret, output)) + memstr = output.strip() + memlist = memstr.split("*-") + for item in memlist: + if item.strip().startswith("memory") and "System Memory" not in item: + continue + line_index = 0 + for line in item.splitlines(): + line_index += 1 + if line_index == 1: + memdict_key = line + g_meminfo_cache[memdict_key] = {} + else: + if ":" not in line: + continue + key = line.split(":", 1)[0].strip() + value = line.split(":", 1)[1].strip() + g_meminfo_cache[memdict_key][key] = value + if "empty" in item: + break + return + + +def run_extra_func(funcname): + # improve performance + if funcname in g_extra_cache: + return g_extra_cache.get(funcname) + func = getattr(status, funcname) + ret = [] + func(ret) + if ret: + g_extra_cache[funcname] = ret + return ret + + +def get_extra_value(funcname, itemid, key): + for item in run_extra_func(funcname): + if item.get("id") == itemid: + return item.get(key, "NA") + return "NA" + + +def io_wr(reg_addr, reg_data): + try: + regdata = 0 + regaddr = 0 + if isinstance(reg_addr, int): + regaddr = reg_addr + else: + regaddr = int(reg_addr, 16) + if isinstance(reg_data, int): + regdata = reg_data + else: + regdata = int(reg_data, 16) + devfile = "/dev/port" + fd = os.open(devfile, os.O_RDWR | os.O_CREAT) + os.lseek(fd, regaddr, os.SEEK_SET) + os.write(fd, regdata.to_bytes(1, 'little')) + return True + except ValueError as e: + print(e) + return False + except Exception as e: + print(e) + return False + finally: + os.close(fd) + + +def checksignaldriver(name): + modisexistcmd = "lsmod | grep -w %s | wc -l" % name + ret, output = exec_os_cmd(modisexistcmd) + if ret: + return False + if output.isdigit() and int(output) > 0: + return True + return False + + +def adddriver(name): + cmd = "modprobe %s" % name + if checksignaldriver(name) is not True: + ret, log = exec_os_cmd(cmd) + if ret != 0 or len(log) > 0: + return False + return True + return True + + +def removedriver(name): + cmd = "rmmod %s" % name + if checksignaldriver(name): + exec_os_cmd(cmd) + +def deal_itmes(item_list): + for item in item_list: + dealtype = item.get("dealtype") + if dealtype == "shell": + cmd = item.get("cmd") + timeout = item.get("timeout", 10) + exec_os_cmd(cmd, timeout) + elif dealtype == "io_wr": + io_addr = item.get("io_addr") + wr_value = item.get("value") + io_wr(io_addr, wr_value) + + +def get_func_value(funcname, params): + func = getattr(ExtraFunc, funcname) + ret = func(params) + return ret + + +def read_pci_reg(pcibus, slot, fn, resource, offset): + '''read pci register''' + if offset % 4 != 0: + return "ERR offset: %d not 4 bytes align" + filename = "/sys/bus/pci/devices/0000:%02x:%02x.%x/resource%d" % (int(pcibus), int(slot), int(fn), int(resource)) + size = os.path.getsize(filename) + with open(filename, "r+") as file: + data = mmap.mmap(file.fileno(), size) + result = data[offset: offset + 4] + s = result[::-1] + val = 0 + for value in s: + val = val << 8 | value + data.close() + return "%08x" % val + + +def devfileread(path, offset, length, bit_width): + ret = "" + val_str = '' + val_list = [] + fd = -1 + if not os.path.exists(path): + return "%s not found !" % path + if length % bit_width != 0: + return "only support read by bit_width" + if length < bit_width: + return "len needs to greater than or equal to bit_width" + + try: + fd = os.open(path, os.O_RDONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.read(fd, length) + for item in ret: + val_list.append(item) + + for i in range(0, length, bit_width): + for j in range(0, bit_width): + val_str += "%02x" % val_list[i + bit_width - j - 1] + except Exception as e: + return str(e) + finally: + if fd > 0: + os.close(fd) + return val_str + + +def read_reg(loc, offset, size): + with open(loc, 'rb') as file: + file.seek(offset) + return ' '.join(["%02x" % item for item in file.read(size)]) + + +def std_match(stdout, pattern): + if pattern is None: + return stdout.strip() + for line in stdout.splitlines(): + if re.match(pattern, line): + return line.strip() + raise EOFError("pattern: {} does not match anything in stdout {}".format( + pattern, stdout)) + + +def i2c_rd(bus, loc, offset): + ''' + read i2c with i2cget command + ''' + cmd = "i2cget -f -y {} {} {}".format(bus, loc, offset) + retrytime = 6 + for i in range(retrytime): + ret, stdout = subprocess.getstatusoutput(cmd) + if ret == 0: + return stdout + time.sleep(0.1) + raise RuntimeError("run cmd: {} error, status {}".format(cmd, ret)) + + +def i2c_rd_bytes(bus, loc, offset, size): + blist = [] + for i in range(size): + ret = i2c_rd(bus, loc, offset + i) + blist.append(ret) + + return blist + + +def get_pair_val(source, separator): + try: + value = source.split(separator, 1)[1] + except (ValueError, IndexError): + return "ERR separator: {} does not match in source: {}".format(separator, source) + return value.strip() + + +def get_regular_val(source, pattern, group): + try: + value = re.findall(pattern, source)[group] + except Exception: + return "ERR pattern: {} does not match in source: {} with group: {}".format(pattern, source, group) + return value.strip() + + +def find_match(file2read, pattern): + with open(file2read, 'r') as file: + for line in file: + if not re.match(pattern, line): + continue + return line.strip() + return "ERR pattern %s not match in %s" % (pattern, file2read) + + +def readaline(file2read): + with open(file2read, 'r') as file: + return file.readline() + + +def sort_key(e): + return e.arrt_index + + +class ExtraFunc(object): + @staticmethod + def get_bcm5387_version(params): + version = "" + try: + before_deal_list = params.get("before", []) + deal_itmes(before_deal_list) + + ret, version = exec_os_cmd(params["get_version"]) + if ret != 0: + version = "ERR " + version + + after_deal_list = params.get("after", []) + deal_itmes(after_deal_list) + + except Exception as e: + version = "ERR %s" % (str(e)) + finally: + finally_deal_list = params.get("finally", []) + deal_itmes(finally_deal_list) + return version + + @staticmethod + def get_memory_value(params): + root_key = params.get("root_key") + sub_key = params.get("sub_key") + lshwmemorysplit() + return g_meminfo_cache.get(root_key, {}).get(sub_key, "NA") + + @staticmethod + def get_memory_bank_value(params): + lshwmemorysplit() + bank = params.get("bankid") + if g_meminfo_cache.get(bank, {}): + return True + return False + + @staticmethod + def get_exphy_fw(phyid): + exphyfwsplit() + if phyid not in g_exphy_cache: + return "ERR %s not found." % phyid + fw_version = g_exphy_cache.get(phyid).get("fw_version") + ret = g_exphy_cache.get(phyid).get("status") + msg = "%s %s" % (fw_version, ret) + return msg + +class CallbackSet: + def cpld_format(self, blist): + if isinstance(blist, str): + blist = blist.split() + elif not isinstance(blist, list) or len(blist) != 4: + raise ValueError("cpld format: wrong parameter: {}".format(blist)) + + return "{}{}{}{}".format(*blist).replace("0x", "") + + +class VersionHunter: + call = CallbackSet() + + def __init__(self, entires): + self.head = None + self.next = None + self.key = None + self.cmd = None + self.file = None + self.reg = None + self.i2c = None + self.extra = None + self.pattern = None + self.separator = None + self.parent = None + self.ignore = False + self.children = [] + self.level = 0 + self.callback = None + self.delspace = None + self.arrt_index = None + self.config = None + self.precheck = None + self.func = None + self.regular = None + self.group = 0 + self.pci = None + self.devfile = None + self.decode = None + self.timeout = 10 + self.__dict__.update(entires) + + def check_para(self): + if self.pattern is None: + return False + if self.cmd is None or self.file is None: + return False + return True + + def get_version(self): + ret = "NA" + try: + if self.cmd is not None: + ret, output = exec_os_cmd(self.cmd, self.timeout) + if ret or len(output) == 0: + raise RuntimeError("run cmd: {} error, status: {}, msg: {}".format(self.cmd, ret, output)) + ret = std_match(output, self.pattern) + elif self.file is not None: + ret = self.read_file() + elif self.reg is not None: + ret = read_reg(self.reg.get("loc"), self.reg.get("offset"), + self.reg.get("size")) + elif self.extra: + ret = get_extra_value(self.extra.get("funcname"), + self.extra.get("id"), + self.extra.get("key")) + elif self.i2c: + ret = i2c_rd_bytes(self.i2c.get("bus"), self.i2c.get("loc"), + self.i2c.get("offset"), + self.i2c.get("size")) + elif self.config: + ret = self.config + elif self.func: + ret = get_func_value(self.func.get("funcname"), + self.func.get("params")) + elif self.pci: + ret = read_pci_reg(self.pci.get("bus"), self.pci.get("slot"), + self.pci.get("fn"), self.pci.get("bar"), self.pci.get("offset")) + elif self.devfile: + ret = devfileread(self.devfile.get("loc"), self.devfile.get("offset"), + self.devfile.get("len"), self.devfile.get("bit_width")) + + except Exception as e: + # printerr(e.message) + return "ERR %s" % str(e) + return self.exe_callback(ret) + + def exe_callback(self, data): + try: + if self.callback: + method = getattr(self.call, self.callback) + return method(data) + except Exception: + return "ERR run callback method: {} error, data: {}".format(self.callback, data) + return data + + def read_file(self): + if self.pattern is not None: + return find_match(self.file, self.pattern) + return readaline(self.file) + + def hunt(self): + if self.ignore: + return + indent = self.level * INDENT * " " + + if self.precheck: + try: + ret = get_func_value(self.precheck.get("funcname"), self.precheck.get("params")) + if ret is not True: + return + except Exception as e: + err_msg = "ERR %s" % str(e) + format_str = "{}{:<{}}{}".format(indent, self.key + ':', + (30 - len(indent)), err_msg) + print(format_str) + return + # has children + if self.children: + self.children.sort(key=sort_key) + format_str = "{}{}:".format(indent, self.key) + print(format_str) + for child in self.children: + if not isinstance(child, VersionHunter): + continue + child.level = self.level + 1 + child.hunt() + else: + version = self.get_version() or "" + if not version.startswith("ERR"): + version = version.replace("\x00", "").strip() + if self.separator is not None: + version = get_pair_val(version, self.separator) + if self.delspace is not None: + version = version.replace(" ", "") + if self.regular is not None: + version = get_regular_val(version, self.regular, self.group) + if self.decode is not None: + tmp_version = self.decode.get(version) + if tmp_version is None: + version = "ERR decode %s failed" % version + else: + version = tmp_version + format_str = "{}{:<{}}{}".format(indent, self.key + ':', + (30 - len(indent)), version) + print(format_str) + + if self.next: + print("") + self.next.hunt() + + +pidfile = 0 + + +def ApplicationInstance(): + global pidfile + pidfile = open(os.path.realpath(__file__), "r") + try: + fcntl.flock(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB) + return True + except Exception: + return False + + +def run(): + if os.geteuid() != 0: + print("Root privileges are required for this operation") + sys.exit(1) + + start_time = time.time() + while True: + ret = ApplicationInstance() + if ret is True: + break + if time.time() - start_time > 10: + printerr("manufacturer is running.") + sys.exit(1) + time.sleep(0.5) + + objmap = {} + + try: + target = {} + target.update(MANUINFO_CONF) + for objname, value in target.items(): + objmap[objname] = VersionHunter(value) + except Exception as e: + printerr(str(e)) + sys.exit(1) + + head = None + for objname, obj in objmap.items(): + if head is None and obj.head: + head = obj + if obj.parent: + objmap.get(obj.parent).children.append(obj) + if obj.next: + obj.next = objmap.get(obj.next) + + head.hunt() + + +if __name__ == "__main__": + run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py new file mode 100755 index 000000000000..61d255823786 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py @@ -0,0 +1,405 @@ +#!/usr/bin/env python3 +import os +import subprocess +import glob +import time +import click +import shutil +from platform_config import STARTMODULE, MAC_LED_RESET, AIRFLOW_RESULT_FILE +from platform_config import GLOBALINITPARAM, GLOBALINITCOMMAND, GLOBALINITPARAM_PRE, GLOBALINITCOMMAND_PRE +from platform_util import wbpciwr + + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def log_os_system(cmd): + status, output = subprocess.getstatusoutput(cmd) + if status: + print(output) + return status, output + + +def write_sysfs_value(reg_name, value): + mb_reg_file = "/sys/bus/i2c/devices/" + reg_name + locations = glob.glob(mb_reg_file) + if len(locations) == 0: + print("%s not found" % mb_reg_file) + return False + sysfs_loc = locations[0] + try: + with open(sysfs_loc, 'w') as fd: + fd.write(value) + except Exception: + return False + return True + + +def getPid(name): + ret = [] + for dirname in os.listdir('/proc'): + if dirname == 'curproc': + continue + try: + with open('/proc/{}/cmdline'.format(dirname), mode='r') as fd: + content = fd.read() + except Exception: + continue + if name in content: + ret.append(dirname) + return ret + + +def startAvscontrol(): + if STARTMODULE.get('avscontrol', 0) == 1: + cmd = "nohup avscontrol.py start >/dev/null 2>&1 &" + rets = getPid("avscontrol.py") + if len(rets) == 0: + os.system(cmd) + + +def startFanctrol(): + if STARTMODULE.get('fancontrol', 0) == 1: + cmd = "nohup fancontrol.py start >/dev/null 2>&1 &" + rets = getPid("fancontrol.py") + if len(rets) == 0: + os.system(cmd) + + +def starthal_fanctrl(): + if STARTMODULE.get('hal_fanctrl', 0) == 1: + cmd = "nohup hal_fanctrl.py start >/dev/null 2>&1 &" + rets = getPid("hal_fanctrl.py") + if len(rets) == 0: + os.system(cmd) + + +def starthal_ledctrl(): + if STARTMODULE.get('hal_ledctrl', 0) == 1: + cmd = "nohup hal_ledctrl.py start >/dev/null 2>&1 &" + rets = getPid("hal_ledctrl.py") + if len(rets) == 0: + os.system(cmd) + + +def startDevmonitor(): + if STARTMODULE.get('dev_monitor', 0) == 1: + cmd = "nohup dev_monitor.py start >/dev/null 2>&1 &" + rets = getPid("dev_monitor.py") + if len(rets) == 0: + os.system(cmd) + + +def startSlotmonitor(): + if STARTMODULE.get('slot_monitor', 0) == 1: + cmd = "nohup slot_monitor.py start >/dev/null 2>&1 &" + rets = getPid("slot_monitor.py") + if len(rets) == 0: + os.system(cmd) + + +def startIntelligentmonitor(): + if STARTMODULE.get('intelligent_monitor', 0) == 1: + cmd = "nohup intelligent_monitor.py >/dev/null 2>&1 &" + rets = getPid("intelligent_monitor.py") + if len(rets) == 0: + os.system(cmd) + + +def startSignalmonitor(): + if STARTMODULE.get('signal_monitor', 0) == 1: + cmd = "nohup signal_monitor.py start >/dev/null 2>&1 &" + rets = getPid("signal_monitor.py") + if len(rets) == 0: + os.system(cmd) + + +def startSff_temp_polling(): + if STARTMODULE.get('sff_temp_polling', 0) == 1: + cmd = "nohup sfp_highest_temperatue.py >/dev/null 2>&1 &" + rets = getPid("sfp_highest_temperatue.py") + if len(rets) == 0: + os.system(cmd) + + +def startRebootCause(): + if STARTMODULE.get('reboot_cause', 0) == 1: + cmd = "nohup reboot_cause.py >/dev/null 2>&1 &" + rets = getPid("reboot_cause.py") + if len(rets) == 0: + os.system(cmd) + + +def startPMON_sys(): + if STARTMODULE.get('pmon_syslog', 0) == 1: + cmd = "nohup pmon_syslog.py >/dev/null 2>&1 &" + rets = getPid("pmon_syslog.py") + if len(rets) == 0: + os.system(cmd) + + +def startSff_polling(): + if STARTMODULE.get('sff_polling', 0) == 1: + cmd = "nohup sff_polling.py start > /dev/null 2>&1 &" + rets = getPid("sff_polling.py") + if len(rets) == 0: + os.system(cmd) + + +def generate_air_flow(): + cmd = "nohup generate_airflow.py > /dev/null 2>&1 &" + rets = getPid("generate_airflow.py") + if len(rets) == 0: + os.system(cmd) + time.sleep(1) + + +def startGenerate_air_flow(): + if STARTMODULE.get('generate_airflow', 0) == 1: + for i in range(10): + generate_air_flow() + if os.path.exists(AIRFLOW_RESULT_FILE): + click.echo("%%WB_PLATFORM_PROCESS: generate air flow success") + return + time.sleep(1) + click.echo("%%WB_PLATFORM_PROCESS: generate air flow,failed, %s not exits" % AIRFLOW_RESULT_FILE) + return + + +def start_tty_console(): + if STARTMODULE.get('tty_console', 0) == 1: + cmd = "nohup tty_console.py > /dev/null 2>&1 &" + rets = getPid("tty_console.py") + if len(rets) == 0: + os.system(cmd) + + +def stopAvscontrol(): + if STARTMODULE.get('avscontrol', 0) == 1: + rets = getPid("avscontrol.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopFanctrol(): + if STARTMODULE.get('fancontrol', 0) == 1: + rets = getPid("fancontrol.py") # + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stophal_fanctrl(): + if STARTMODULE.get('hal_fanctrl', 0) == 1: + rets = getPid("hal_fanctrl.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stophal_ledctrl(): + if STARTMODULE.get('hal_ledctrl', 0) == 1: + rets = getPid("hal_ledctrl.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopDevmonitor(): + if STARTMODULE.get('dev_monitor', 0) == 1: + rets = getPid("dev_monitor.py") # + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopSlotmonitor(): + if STARTMODULE.get('slot_monitor', 0) == 1: + rets = getPid("slot_monitor.py") # + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopIntelligentmonitor(): + if STARTMODULE.get('intelligent_monitor', 0) == 1: + rets = getPid("intelligent_monitor.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopSignalmonitor(): + if STARTMODULE.get('signal_monitor', 0) == 1: + rets = getPid("signal_monitor.py") # + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopSff_temp_polling(): + if STARTMODULE.get('sff_temp_polling', 0) == 1: + rets = getPid("sfp_highest_temperatue.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopPMON_sys(): + if STARTMODULE.get('pmon_syslog', 0) == 1: + rets = getPid("pmon_syslog.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopRebootCause(): + if STARTMODULE.get('reboot_cause', 0) == 1: + rets = getPid("reboot_cause.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopSff_polling(): + if STARTMODULE.get('sff_polling', 0) == 1: + rets = getPid("sff_polling.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stopGenerate_air_flow(): + if STARTMODULE.get('generate_airflow', 0) == 1: + rets = getPid("generate_airflow.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def stop_tty_console(): + if STARTMODULE.get('tty_console', 0) == 1: + rets = getPid("tty_console.py") + for ret in rets: + cmd = "kill " + ret + os.system(cmd) + + +def otherinit(): + for index in GLOBALINITPARAM: + write_sysfs_value(index["loc"], index["value"]) + + for index in GLOBALINITCOMMAND: + log_os_system(index) + + +def otherinit_pre(): + for index in GLOBALINITPARAM_PRE: + write_sysfs_value(index["loc"], index["value"]) + + for index in GLOBALINITCOMMAND_PRE: + log_os_system(index) + + +def unload_apps(): + stopSff_polling() + stopPMON_sys() + stopSignalmonitor() + stopIntelligentmonitor() + stopSlotmonitor() + stopDevmonitor() + stopAvscontrol() + stophal_ledctrl() + stophal_fanctrl() + stopFanctrol() + stopSff_temp_polling() + stopRebootCause() + stop_tty_console() + stopGenerate_air_flow() + + +def MacLedSet(data): + '''write pci register''' + pcibus = MAC_LED_RESET.get("pcibus") + slot = MAC_LED_RESET.get("slot") + fn = MAC_LED_RESET.get("fn") + resource = MAC_LED_RESET.get("bar") + offset = MAC_LED_RESET.get("offset") + val = MAC_LED_RESET.get(data, None) + if val is None: + click.echo("%%WB_PLATFORM_PROCESS-INIT: MacLedSet wrong input") + return + wbpciwr(pcibus, slot, fn, resource, offset, val) + + +def copy_machineconf(): + try: + shutil.copyfile("/host/machine.conf", "/etc/sonic/machine.conf") + return True + except Exception: + return False + +def load_apps(): + copy_machineconf() + otherinit_pre() + startGenerate_air_flow() + start_tty_console() + startRebootCause() + startSff_temp_polling() + startFanctrol() + starthal_fanctrl() + starthal_ledctrl() + startAvscontrol() + startDevmonitor() + startSlotmonitor() + startIntelligentmonitor() + startSignalmonitor() + startPMON_sys() + startSff_polling() + otherinit() + if STARTMODULE.get("macledreset", 0) == 1: + MacLedSet("reset") + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''device operator''' + + +@main.command() +def start(): + '''load process ''' + load_apps() + + +@main.command() +def stop(): + '''stop process ''' + unload_apps() + + +@main.command() +def restart(): + '''restart process''' + unload_apps() + load_apps() + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py new file mode 100755 index 000000000000..1727242b74b9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py @@ -0,0 +1,253 @@ +#!/usr/bin/python3 + +import os +import sys +import importlib.machinery + + +def get_machine_info(): + if not os.path.isfile('/host/machine.conf'): + return None + machine_vars = {} + with open('/host/machine.conf') as machine_file: + for line in machine_file: + tokens = line.split('=') + if len(tokens) < 2: + continue + machine_vars[tokens[0]] = tokens[1].strip() + return machine_vars + + +def get_platform_info(machine_info): + if machine_info is not None: + if 'onie_platform' in machine_info: + return machine_info['onie_platform'] + if 'aboot_platform' in machine_info: + return machine_info['aboot_platform'] + return None + + +PLATFORM_ROOT_PATH = '/usr/share/sonic/device' +PLATFORM_SPECIFIC_MODULE_NAME = 'monitor' +PLATFORM_SPECIFIC_CLASS_NAME = 'status' +platform_status_class = None +platform = None + + +def get_platform_name(): + global platform + platform = get_platform_info(get_machine_info()) + return platform + + +val = get_platform_name() +sys.path.append("/".join([PLATFORM_ROOT_PATH, platform])) + +# Loads platform specific sfputil module from source + + +def load_platform_monitor(): + global platform_status_class + platform_name = get_platform_info(get_machine_info()) + platform_path = "/".join([PLATFORM_ROOT_PATH, platform_name]) + try: + module_file = "/".join([platform_path, PLATFORM_SPECIFIC_MODULE_NAME + ".py"]) + module = importlib.machinery.SourceFileLoader(PLATFORM_SPECIFIC_MODULE_NAME, module_file).load_module() + except IOError: + return -1 + try: + platform_status_class = getattr(module, PLATFORM_SPECIFIC_CLASS_NAME) + except AttributeError: + return -2 + return 0 + + +def printerr(msg): + print("\033[0;31m%s\033[0m" % msg) + + +def print_console(msg): + print(msg) + + +val_t = load_platform_monitor() +if val_t != 0: + raise Exception("load monitor.py error") + + +def print_platform(): + platform_info = get_platform_name() + print_console(platform_info) + print_console("") + + +def print_cputemp_sensors(): + val_ret = get_call_value_by_function("getcputemp") + print_info_str = "" + toptile = "Onboard coretemp Sensors:" + formatstr = " {name:<20} : {temp} C (high = {max} C , crit = {crit} C )" + + if len(val_ret) != 0: + print_info_str += toptile + '\n' + for item in val_ret: + print_info_str += formatstr.format(**item) + '\n' + print_console(print_info_str) + + +def print_boardtemp(): + val_ret = get_call_value_by_function("getTemp") + print_info_str = "" + toptile = "Onboard Temperature Sensors:" + errformat = " {id:<20} : {errmsg}" + formatstr = " {id:<20} : {temp1_input} C (high = {temp1_max} C, hyst = {temp1_max_hyst} C)" + + if len(val_ret) != 0: + print_info_str += toptile + '\n' + for item in val_ret: + realformat = formatstr if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + '\n' + print_console(print_info_str) + + +def print_mactemp_sensors(): + val_ret = get_call_value_by_function("getmactemp") + print_info_str = "" + toptile = "Onboard MAC Temperature Sensors:" + errformat = " {id:<20} : {errmsg}" + formatstr = " {id:<20} : {temp_input} C" + + if len(val_ret) != 0: + print_info_str += toptile + '\n' + for item in val_ret: + realformat = formatstr if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + '\n' + print_console(print_info_str) + + +def print_macpower_sensors(): + val_ret = get_call_value_by_function("getmacpower") + print_info_str = "" + toptile = "Onboard MAC Power Sensors:" + errformat = " {id:<20} : {errmsg}" + formatstr = " {id:<20} : {power_input} W" + + if len(val_ret) != 0: + print_info_str += toptile + '\n' + for item in val_ret: + realformat = formatstr if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + '\n' + print_console(print_info_str) + + +def print_fan_sensor(): + val_ret = get_call_value_by_function("checkFan") + print_info_str = "" + toptile = "Onboard fan Sensors:" + errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" + fan_signle_rotor_format = " {id} : \n" \ + " fan_type :{fan_type}\n" \ + " sn :{sn}\n" \ + " hw_version:{hw_version}\n" \ + " Speed :{Speed} RPM\n" \ + " status :{errmsg} \n" + fan_double_rotor_format = " {id} : \n" \ + " fan_type :{fan_type}\n" \ + " sn :{sn}\n" \ + " hw_version:{hw_version}\n" \ + " Speed :\n" \ + " speed_front :{rotor1_speed:<5} RPM\n" \ + " speed_rear :{rotor2_speed:<5} RPM\n" \ + " status :{errmsg} \n" + + if len(val_ret) != 0: + print_info_str += toptile + '\n' + for item in val_ret: + if item.get('Speed', None) is None: + realformat = fan_double_rotor_format if item.get('errcode', 0) == 0 else errformat + else: + realformat = fan_signle_rotor_format if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + print_console(print_info_str) + + +def print_psu_sensor(): + val_ret = get_call_value_by_function("getPsu") + print_info_str = "" + toptile = "Onboard Power Supply Unit Sensors:" + errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" + psuformat = " {id} : \n" \ + " type :{type1}\n" \ + " sn :{sn}\n" \ + " in_current :{in_current} A\n" \ + " in_voltage :{in_voltage} V\n" \ + " out_current:{out_current} A\n" \ + " out_voltage:{out_voltage} V\n" \ + " temp :{temp} C \n" \ + " fan_speed :{fan_speed} RPM\n" \ + " in_power :{in_power} W\n" \ + " out_power :{out_power} W\n" + + if len(val_ret) != 0: + print_info_str += toptile + '\r\n' + for item in val_ret: + realformat = psuformat if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + print_console(print_info_str) + + +def print_slot_sensor(): + val_ret = get_call_value_by_function("checkSlot") + print_info_str = "" + toptile = "Onboard slot Sensors:" + errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" + psuformat = " {id} : \n" \ + " slot_type :{slot_type}\n" \ + " sn :{sn}\n" \ + " hw_version :{hw_version} \n" \ + " status :{errmsg}\n" + + if len(val_ret) != 0: + print_info_str += toptile + '\r\n' + for item in val_ret: + realformat = psuformat if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + print_console(print_info_str) + + +def print_boarddcdc(): + val_ret = get_call_value_by_function("getDcdc") + print_info_str = "" + toptile = "Onboard DCDC Sensors:" + errformat = " {id:<26} : {errmsg}" + formatstr = " {id:<26} : {dcdc_input:<6} {dcdc_unit:<1} (Min = {dcdc_min:<6} {dcdc_unit:<1}, Max = {dcdc_max:<6} {dcdc_unit:<1})" + + if len(val_ret) != 0: + print_info_str += toptile + '\n' + for item in val_ret: + realformat = formatstr if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + '\n' + print_console(print_info_str) + + +def get_call_value_by_function(function_name): + valtemp = [] + if hasattr(platform_status_class, function_name): + test2_func = getattr(platform_status_class, function_name) + test2_func(valtemp) + return valtemp + + +def getsensors(): + print_platform() + print_cputemp_sensors() + print_boardtemp() + print_mactemp_sensors() + print_macpower_sensors() + print_fan_sensor() + print_psu_sensor() + print_slot_sensor() + print_boarddcdc() + + +if __name__ == "__main__": + getsensors() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_test.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_test.py new file mode 100755 index 000000000000..da7119a9ce49 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_test.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- + +try: + import click + from platform_intf import platform_reg_read, platform_reg_write, platform_get_optoe_type + from platform_intf import platform_set_optoe_type, platform_sfp_read, platform_sfp_write +except ImportError as error: + raise ImportError('%s - required module not found' % str(error)) from error + + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def print_reg(info, offset): + try: + size = len(info) + j = offset % 16 + tmp = j + offset -= j + print_buf = "\n " + + for i in range(16): + print_buf = print_buf + "%2x " % i + print(print_buf) + + print_buf = None + for i in range(size + j): + if i % 16 == 0: + print_buf = "" + print_buf = "0x%08x " % offset + offset = offset + 16 + if tmp: + print_buf = print_buf + " " + tmp = tmp - 1 + else: + print_buf = print_buf + "%02x " % info[i - j] + if (i + 1) % 16 == 0 or i == size + j - 1: + print(print_buf) + except Exception as e: + msg = str(e) + print("i = %d, j = %d," % (i, j)) + print(msg) + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''platform_test main''' + + +@main.command() +@click.argument('dev_type', required=True) +@click.argument('dev_id', required=True) +@click.argument('offset', required=True) +@click.argument('size', required=True) +def reg_rd(dev_type, dev_id, offset, size): + '''read cpld/fpga reg''' + ret, info = platform_reg_read(int(dev_type), int(dev_id), int(offset), int(size)) + print(ret) + if ret is True: + print_reg(info, int(offset)) + else: + print(info) + + +@main.command() +@click.argument('dev_type', required=True) +@click.argument('dev_id', required=True) +@click.argument('offset', required=True) +@click.argument('value', required=True) +def reg_wr(dev_type, dev_id, offset, value): + '''write cpld/fpga reg''' + value_list = [] + value_list.append(int(value)) + ret, info = platform_reg_write(int(dev_type), int(dev_id), int(offset), value_list) + print(ret) + print(info) + + +@main.command() +@click.argument('port', required=True) +def get_optoe_type(port): + '''get optoe type''' + ret, info = platform_get_optoe_type(int(port)) + print(ret) + print(info) + + +@main.command() +@click.argument('port', required=True) +@click.argument('optoe_type', required=True) +def set_optoe_type(port, optoe_type): + '''set optoe type''' + ret, info = platform_set_optoe_type(int(port), int(optoe_type)) + print(ret) + print(info) + + +@main.command() +@click.argument('port_id', required=True) +@click.argument('offset', required=True) +@click.argument('size', required=True) +def sfp_rd(port_id, offset, size): + '''read sfp''' + ret, info = platform_sfp_read(int(port_id), int(offset), int(size)) + print(ret) + if ret is True: + print_reg(info, int(offset)) + else: + print(info) + + +@main.command() +@click.argument('port_id', required=True) +@click.argument('offset', required=True) +@click.argument('value', required=True) +def sfp_wr(port_id, offset, value): + '''write sfp''' + value_list = [] + value_list.append(int(value)) + ret, info = platform_sfp_write(int(port_id), int(offset), value_list) + print(ret) + print(info) + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_util.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_util.py new file mode 100755 index 000000000000..71a97e5a236d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_util.py @@ -0,0 +1,838 @@ +#!/usr/bin/python3 + +import sys +import os +import re +import subprocess +import shlex +import time +import mmap +import glob +import logging.handlers +import shutil +import gzip +import ast + + +CONFIG_DB_PATH = "/etc/sonic/config_db.json" +MAILBOX_DIR = "/sys/bus/i2c/devices/" + + +__all__ = [ + "strtoint", + "byteTostr", + "getplatform_name", + "wbi2cget", + "wbi2cset", + "wbpcird", + "wbpciwr", + "wbi2cgetWord", + "wbi2csetWord", + "wbi2cset_pec", + "wbi2cset_wordpec", + "wbsysset", + "dev_file_read", + "dev_file_write", + "wb_os_system", + "io_rd", + "io_wr", + "exec_os_cmd", + "exec_os_cmd_log", + "write_sysfs", + "read_sysfs", + "get_sysfs_value", + "write_sysfs_value", + "get_value", + "set_value", + "getSdkReg", + "getMacTemp", + "getMacTemp_sysfs", + "get_format_value" +] + +class CodeVisitor(ast.NodeVisitor): + + def __init__(self): + self.value = None + + def get_value(self): + return self.value + + def get_op_value(self, node): + if isinstance(node, ast.Call): # node is func call + value = self.visit_Call(node) + elif isinstance(node, ast.BinOp): # node is BinOp + value = self.visit_BinOp(node) + elif isinstance(node, ast.UnaryOp): # node is UnaryOp + value = self.visit_UnaryOp(node) + elif isinstance(node, ast.Num): # node is Num Constant + value = node.n + elif isinstance(node, ast.Str): # node is Str Constant + value = node.s + else: + raise NotImplementedError("Unsupport operand type: %s" % type(node)) + return value + + def visit_UnaryOp(self, node): + ''' + node.op: operand type, only support ast.UAdd/ast.USub + node.operand: only support ast.Call/ast.Constant(ast.Num/ast.Str)/ast.BinOp/ast.UnaryOp + ''' + + operand_value = self.get_op_value(node.operand) + if isinstance(node.op, ast.UAdd): + self.value = operand_value + elif isinstance(node.op, ast.USub): + self.value = 0 - operand_value + else: + raise NotImplementedError("Unsupport arithmetic methods %s" % type(node.op)) + return self.value + + def visit_BinOp(self, node): + ''' + node.left: left operand, only support ast.Call/ast.Constant(ast.Num)/ast.BinOp + node.op: operand type, only support ast.Add/ast.Sub/ast.Mult/ast.Div + node.right: right operan, only support ast.Call/ast.Constant(ast.Num/ast.Str)/ast.BinOp + ''' + left_value = self.get_op_value(node.left) + right_value = self.get_op_value(node.right) + + if isinstance(node.op, ast.Add): + self.value = left_value + right_value + elif isinstance(node.op, ast.Sub): + self.value = left_value - right_value + elif isinstance(node.op, ast.Mult): + self.value = left_value * right_value + elif isinstance(node.op, ast.Div): + self.value = left_value / right_value + else: + raise NotImplementedError("Unsupport arithmetic methods %s" % type(node.op)) + return self.value + + def visit_Call(self, node): + ''' + node.func.id: func name, only support 'float', 'int', 'str' + node.args: func args list,only support ast.Constant(ast.Num/ast.Str)/ast.BinOp/ast.Call + str/float only support one parameter, eg: float(XXX), str(xxx) + int support one or two parameters, eg: int(xxx) or int(xxx, 16) + xxx can be ast.Call/ast.Constant(ast.Num/ast.Str)/ast.BinOp + ''' + calc_tuple = ("float", "int", "str") + + if node.func.id not in calc_tuple: + raise NotImplementedError("Unsupport function call type: %s" % node.func.id) + + args_val_list = [] + for item in node.args: + ret = self.get_op_value(item) + args_val_list.append(ret) + + if node.func.id == "str": + if len(args_val_list) != 1: + raise TypeError("str() takes 1 positional argument but %s were given" % len(args_val_list)) + value = str(args_val_list[0]) + self.value = value + return value + + if node.func.id == "float": + if len(args_val_list) != 1: + raise TypeError("float() takes 1 positional argument but %s were given" % len(args_val_list)) + value = float(args_val_list[0]) + self.value = value + return value + # int + if len(args_val_list) == 1: + value = int(args_val_list[0]) + self.value = value + return value + if len(args_val_list) == 2: + value = int(args_val_list[0], args_val_list[1]) + self.value = value + return value + raise TypeError("int() takes 1 or 2 arguments (%s given)" % len(args_val_list)) + +def inttostr(vl, length): + if not isinstance(vl, int): + raise Exception(" type error") + index = 0 + ret_t = "" + while index < length: + ret = 0xff & (vl >> index * 8) + ret_t += chr(ret) + index += 1 + return ret_t + + +def strtoint(str_tmp): + value = 0 + rest_v = str_tmp.replace("0X", "").replace("0x", "") + str_len = len(rest_v) + for index, val in enumerate(rest_v): + value |= int(val, 16) << ((str_len - index - 1) * 4) + return value + + +def inttobytes(val, length): + if not isinstance(val, int): + raise Exception("type error") + data_array = bytearray() + index = 0 + while index < length: + ret = 0xff & (val >> index * 8) + data_array.append(ret) + index += 1 + return data_array + + +def byteTostr(val): + strtmp = '' + for value in val: + strtmp += chr(value) + return strtmp + + +def typeTostr(val): + strtmp = '' + if isinstance(val, bytes): + strtmp = byteTostr(val) + return strtmp + + +def getonieplatform(path): + if not os.path.isfile(path): + return "" + machine_vars = {} + with open(path) as machine_file: + for line in machine_file: + tokens = line.split('=') + if len(tokens) < 2: + continue + machine_vars[tokens[0]] = tokens[1].strip() + return machine_vars.get("onie_platform") + + +def getplatform_config_db(): + if not os.path.isfile(CONFIG_DB_PATH): + return "" + val = os.popen("sonic-cfggen -j %s -v DEVICE_METADATA.localhost.platform" % CONFIG_DB_PATH).read().strip() + if len(val) <= 0: + return "" + return val + + +def getplatform_name(): + if os.path.isfile('/host/machine.conf'): + return getonieplatform('/host/machine.conf') + if os.path.isfile('/etc/sonic/machine.conf'): + return getonieplatform('/etc/sonic/machine.conf') + return getplatform_config_db() + + +def wbi2cget(bus, devno, address, word=None): + if word is None: + command_line = "i2cget -f -y %d 0x%02x 0x%02x " % (bus, devno, address) + else: + command_line = "i2cget -f -y %d 0x%02x 0x%02x %s" % (bus, devno, address, word) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + time.sleep(0.1) + return False, ret_t + + +def wbi2cset(bus, devno, address, byte): + command_line = "i2cset -f -y %d 0x%02x 0x%02x 0x%02x" % ( + bus, devno, address, byte) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + +def wbpcird(pcibus, slot, fn, resource, offset): + '''read pci register''' + if offset % 4 != 0: + return "ERR offset: %d not 4 bytes align" + filename = "/sys/bus/pci/devices/0000:%02x:%02x.%x/resource%d" % (int(pcibus), int(slot), int(fn), int(resource)) + with open(filename, "r+") as file: + size = os.path.getsize(filename) + data = mmap.mmap(file.fileno(), size) + result = data[offset: offset + 4] + s = result[::-1] + val = 0 + for value in s: + val = val << 8 | value + data.close() + return "0x%08x" % val + + +def wbpciwr(pcibus, slot, fn, resource, offset, data): + '''write pci register''' + ret = inttobytes(data, 4) + filename = "/sys/bus/pci/devices/0000:%02x:%02x.%x/resource%d" % (int(pcibus), int(slot), int(fn), int(resource)) + with open(filename, "r+") as file: + size = os.path.getsize(filename) + data = mmap.mmap(file.fileno(), size) + data[offset: offset + 4] = ret + result = data[offset: offset + 4] + s = result[::-1] + val = 0 + for value in s: + val = val << 8 | value + data.close() + + +def wbi2cgetWord(bus, devno, address): + command_line = "i2cget -f -y %d 0x%02x 0x%02x w" % (bus, devno, address) + retrytime = 3 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + +def wbi2csetWord(bus, devno, address, byte): + command_line = "i2cset -f -y %d 0x%02x 0x%02x 0x%x w" % ( + bus, devno, address, byte) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + +def wbi2cset_pec(bus, devno, address, byte): + command_line = "i2cset -f -y %d 0x%02x 0x%02x 0x%02x bp" % ( + bus, devno, address, byte) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + +def wbi2cset_wordpec(bus, devno, address, byte): + command_line = "i2cset -f -y %d 0x%02x 0x%02x 0x%02x wp" % ( + bus, devno, address, byte) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + +def wbsysset(location, value): + command_line = "echo 0x%02x > %s" % (value, location) + retrytime = 6 + ret_t = "" + for i in range(retrytime): + ret, ret_t = wb_os_system(command_line) + if ret == 0: + return True, ret_t + return False, ret_t + + +def dev_file_read(path, offset, read_len): + val_list = [] + msg = "" + ret = "" + fd = -1 + + if not os.path.exists(path): + msg = path + " not found !" + return False, msg + + try: + fd = os.open(path, os.O_RDONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.read(fd, read_len) + for item in ret: + val_list.append(item) + except Exception as e: + msg = str(e) + return False, msg + finally: + if fd > 0: + os.close(fd) + return True, val_list + + +def dev_file_write(path, offset, buf_list): + msg = "" + fd = -1 + + if not isinstance(buf_list, list) or len(buf_list) == 0: + msg = "buf:%s is not list type or is NONE !" % buf_list + return False, msg + + if not os.path.exists(path): + msg = path + " not found !" + return False, msg + + try: + fd = os.open(path, os.O_WRONLY) + os.lseek(fd, offset, os.SEEK_SET) + ret = os.write(fd, bytes(buf_list)) + except Exception as e: + msg = str(e) + return False, msg + finally: + if fd > 0: + os.close(fd) + + return True, ret + + +def wb_os_system(cmd): + status, output = subprocess.getstatusoutput(cmd) + return status, output + + +def io_rd(reg_addr, read_len=1): + try: + regaddr = 0 + if isinstance(reg_addr, int): + regaddr = reg_addr + else: + regaddr = int(reg_addr, 16) + devfile = "/dev/port" + fd = os.open(devfile, os.O_RDWR | os.O_CREAT) + os.lseek(fd, regaddr, os.SEEK_SET) + val = os.read(fd, read_len) + return "".join(["%02x" % item for item in val]) + except ValueError: + return None + except Exception as e: + print(e) + return None + finally: + os.close(fd) + + +def io_wr(reg_addr, reg_data): + try: + regdata = 0 + regaddr = 0 + if isinstance(reg_addr, int): + regaddr = reg_addr + else: + regaddr = int(reg_addr, 16) + if isinstance(reg_data, int): + regdata = reg_data + else: + regdata = int(reg_data, 16) + devfile = "/dev/port" + fd = os.open(devfile, os.O_RDWR | os.O_CREAT) + os.lseek(fd, regaddr, os.SEEK_SET) + os.write(fd, regdata.to_bytes(1, 'little')) + return True + except ValueError as e: + print(e) + return False + except Exception as e: + print(e) + return False + finally: + os.close(fd) + + +def exec_os_cmd(cmd): + status, output = subprocess.getstatusoutput(cmd) + return status, output + + +def exec_os_cmd_log(cmd): + proc = subprocess.Popen(shlex.split(cmd), stdin=subprocess.PIPE, shell=False, stderr=sys.stderr, close_fds=True, + stdout=sys.stdout, universal_newlines=True, bufsize=1) + proc.wait() + stdout = proc.communicate()[0] + stdout = typeTostr(stdout) + return proc.returncode, stdout + + +def write_sysfs(location, value): + try: + if not os.path.isfile(location): + return False, ("location[%s] not found !" % location) + with open(location, 'w') as fd1: + fd1.write(value) + except Exception as e: + return False, (str(e) + " location[%s]" % location) + return True, ("set location[%s] %s success !" % (location, value)) + + +def read_sysfs(location): + try: + locations = glob.glob(location) + with open(locations[0], 'rb') as fd1: + retval = fd1.read() + retval = typeTostr(retval) + retval = retval.rstrip('\r\n') + retval = retval.lstrip(" ") + except Exception as e: + return False, (str(e) + "location[%s]" % location) + return True, retval + + +def get_pmc_register(reg_name): + retval = 'ERR' + mb_reg_file = MAILBOX_DIR + reg_name + filepath = glob.glob(mb_reg_file) + if len(filepath) == 0: + return "%s %s notfound" % (retval, mb_reg_file) + mb_reg_file = filepath[0] + if not os.path.isfile(mb_reg_file): + return "%s %s notfound" % (retval, mb_reg_file) + try: + with open(mb_reg_file, 'r') as fd: + retval = fd.read() + except Exception as error: + retval = retval + str(error) + retval = retval.rstrip('\r\n') + retval = retval.lstrip(" ") + return retval + + +def get_sysfs_value(location): + pos_t = str(location) + name = get_pmc_register(pos_t) + return name + + +def write_sysfs_value(reg_name, value): + fileLoc = MAILBOX_DIR + reg_name + try: + if not os.path.isfile(fileLoc): + print(fileLoc, 'not found !') + return False + with open(fileLoc, 'w') as fd: + fd.write(value) + except Exception: + print("Unable to open " + fileLoc + "file !") + return False + return True + + +def get_value_once(config): + try: + way = config.get("gettype") + int_decode = config.get("int_decode", 16) + if way == 'sysfs': + loc = config.get("loc") + ret, val = read_sysfs(loc) + if ret is True: + return True, int(val, int_decode) + return False, ("sysfs read %s failed. log:%s" % (loc, val)) + if way == "i2c": + bus = config.get("bus") + addr = config.get("loc") + offset = config.get("offset", 0) + ret, val = wbi2cget(bus, addr, offset) + if ret is True: + return True, int(val, int_decode) + return False, ("i2c read failed. bus:%d , addr:0x%x, offset:0x%x" % (bus, addr, offset)) + if way == "io": + io_addr = config.get('io_addr') + val = io_rd(io_addr) + if len(val) != 0: + return True, int(val, int_decode) + return False, ("io_addr read 0x%x failed" % io_addr) + if way == "i2cword": + bus = config.get("bus") + addr = config.get("loc") + offset = config.get("offset") + ret, val = wbi2cgetWord(bus, addr, offset) + if ret is True: + return True, int(val, int_decode) + return False, ("i2cword read failed. bus:%d, addr:0x%x, offset:0x%x" % (bus, addr, offset)) + if way == "devfile": + path = config.get("path") + offset = config.get("offset") + read_len = config.get("read_len") + ret, val_list = dev_file_read(path, offset, read_len) + if ret is True: + return True, val_list + return False, ("devfile read failed. path:%s, offset:0x%x, read_len:%d" % (path, offset, read_len)) + if way == 'cmd': + cmd = config.get("cmd") + ret, val = exec_os_cmd(cmd) + if ret: + return False, ("cmd read exec %s failed, log: %s" % (cmd, val)) + return True, int(val, int_decode) + if way == 'file_exist': + judge_file = config.get('judge_file', None) + if os.path.exists(judge_file): + return True, True + return True, False + return False, "not support read type" + except Exception as e: + return False, ("get_value_once exception:%s happen" % str(e)) + + +def set_value_once(config): + try: + delay_time = config.get("delay", None) + if delay_time is not None: + time.sleep(delay_time) + + way = config.get("gettype") + if way == 'sysfs': + loc = config.get("loc") + value = config.get("value") + mask = config.get("mask", 0xff) + mask_tuple = (0xff, 0) + if mask not in mask_tuple: + ret, read_value = read_sysfs(loc) + if ret is True: + read_value = int(read_value, base=16) + value = (read_value & mask) | value + else: + return False, ("sysfs read %s failed. log:%s" % (loc, read_value)) + ret, log = write_sysfs(loc, "0x%02x" % value) + if ret is not True: + return False, ("sysfs %s write 0x%x failed" % (loc, value)) + return True, ("sysfs write 0x%x success" % value) + if way == "i2c": + bus = config.get("bus") + addr = config.get("loc") + offset = config.get("offset") + value = config.get("value") + mask = config.get("mask", 0xff) + mask_tuple = (0xff, 0) + if mask not in mask_tuple: + ret, read_value = wbi2cget(bus, addr, offset) + if ret is True: + read_value = int(read_value, base=16) + value = (read_value & mask) | value + else: + return False, ("i2c read failed. bus:%d , addr:0x%x, offset:0x%x" % (bus, addr, offset)) + ret, log = wbi2cset(bus, addr, offset, value) + if ret is not True: + return False, ("i2c write bus:%d, addr:0x%x, offset:0x%x, value:0x%x failed" % + (bus, addr, offset, value)) + return True, ("i2c write bus:%d, addr:0x%x, offset:0x%x, value:0x%x success" % + (bus, addr, offset, value)) + if way == "io": + io_addr = config.get('io_addr') + value = config.get('value') + mask = config.get("mask", 0xff) + mask_tuple = (0xff, 0) + if mask not in mask_tuple: + read_value = io_rd(io_addr) + if read_value is None: + return False, ("io_addr 0x%x read failed" % (io_addr)) + read_value = int(read_value, base=16) + value = (read_value & mask) | value + ret = io_wr(io_addr, value) + if ret is not True: + return False, ("io_addr 0x%x write 0x%x failed" % (io_addr, value)) + return True, ("io_addr 0x%x write 0x%x success" % (io_addr, value)) + if way == 'i2cword': + bus = config.get("bus") + addr = config.get("loc") + offset = config.get("offset") + value = config.get("value") + mask = config.get("mask", 0xff) + mask_tuple = (0xff, 0) + if mask not in mask_tuple: + ret, read_value = wbi2cgetWord(bus, addr, offset) + if ret is True: + read_value = int(read_value, base=16) + value = (read_value & mask) | value + else: + return False, ("i2c read word failed. bus:%d , addr:0x%x, offset:0x%x" % (bus, addr, offset)) + ret, log = wbi2csetWord(bus, addr, offset, value) + if ret is not True: + return False, ("i2cword write bus:%d, addr:0x%x, offset:0x%x, value:0x%x failed" % + (bus, addr, offset, value)) + return True, ("i2cword write bus:%d, addr:0x%x, offset:0x%x, value:0x%x success" % + (bus, addr, offset, value)) + if way == "devfile": + path = config.get("path") + offset = config.get("offset") + buf_list = config.get("value") + ret, log = dev_file_write(path, offset, buf_list) + if ret is True: + return True, ("devfile write path:%s, offset:0x%x, buf_list:%s success." % (path, offset, buf_list)) + return False, ("devfile read path:%s, offset:0x%x, buf_list:%s failed.log:%s" % + (path, offset, buf_list, log)) + if way == 'cmd': + cmd = config.get("cmd") + ret, log = exec_os_cmd(cmd) + if ret: + return False, ("cmd write exec %s failed, log: %s" % (cmd, log)) + return True, ("cmd write exec %s success" % cmd) + if way == 'bit_wr': + mask = config.get("mask") + bit_val = config.get("value") + val_config = config.get("val_config") + ret, rd_value = get_value_once(val_config) + if ret is False: + return False, ("bit_wr read failed, log: %s" % rd_value) + wr_val = (rd_value & mask) | bit_val + val_config["value"] = wr_val + ret, log = set_value_once(val_config) + if ret is False: + return False, ("bit_wr failed, log: %s" % log) + return True, ("bit_wr success, log: %s" % log) + if way == 'creat_file': + file_name = config.get("file") + ret, log = exec_os_cmd("touch %s" % file_name) + if ret: + return False, ("creat file %s failed, log: %s" % (file_name, log)) + exec_os_cmd("sync") + return True, ("creat file %s success" % file_name) + if way == 'remove_file': + file_name = config.get("file") + ret, log = exec_os_cmd("rm -rf %s" % file_name) + if ret: + return False, ("remove file %s failed, log: %s" % (file_name, log)) + exec_os_cmd("sync") + return True, ("remove file %s success" % file_name) + return False, "not support write type" + except Exception as e: + return False, ("set_value_once exception:%s happen" % str(e)) + + +def get_value(config): + retrytime = 6 + for i in range(retrytime): + ret, val = get_value_once(config) + if ret is True: + return True, val + time.sleep(0.1) + return False, val + + +def set_value(config): + retrytime = 6 + ignore_result_flag = config.get("ignore_result", 0) + for i in range(retrytime): + ret, log = set_value_once(config) + if ret is True: + return True, log + if ignore_result_flag == 1: + return True, log + time.sleep(0.1) + return False, log + + +class CompressedRotatingFileHandler(logging.handlers.RotatingFileHandler): + def doRollover(self): + """ + Do a rollover, as described in __init__(). + """ + if self.stream: + self.stream.close() + self.stream = None + if self.backupCount > 0: + for i in range(self.backupCount - 1, 0, -1): + sfn = "%s.%d.gz" % (self.baseFilename, i) + dfn = "%s.%d.gz" % (self.baseFilename, i + 1) + if os.path.exists(sfn): + if os.path.exists(dfn): + os.remove(dfn) + os.rename(sfn, dfn) + dfn = self.baseFilename + ".1.gz" + if os.path.exists(dfn): + os.remove(dfn) + # These two lines below are the only new lines. I commented out the os.rename(self.baseFilename, dfn) and + # replaced it with these two lines. + with open(self.baseFilename, 'rb') as f_in, gzip.open(dfn, 'wb') as f_out: + shutil.copyfileobj(f_in, f_out) + self.mode = 'w' + self.stream = self._open() + + +def getSdkReg(reg): + try: + cmd = "bcmcmd -t 1 'getr %s ' < /dev/null" % reg + ret, result = wb_os_system(cmd) + result_t = result.strip().replace("\r", "").replace("\n", "") + if ret != 0 or "Error:" in result_t: + return False, result + patt = r"%s.(.*):(.*)>drivshell" % reg + rt = re.findall(patt, result_t, re.S) + test = re.findall("=(.*)", rt[0][0])[0] + except Exception: + return False, 'getsdk register error' + return True, test + + +def getMacTemp(): + result = {} + wb_os_system("bcmcmd -t 1 \"show temp\" < /dev/null") + ret, log = wb_os_system("bcmcmd -t 1 \"show temp\" < /dev/null") + if ret: + return False, result + logs = log.splitlines() + for line in logs: + if "average" in line: + b = re.findall(r'\d+.\d+', line) + result["average"] = b[0] + elif "maximum" in line: + b = re.findall(r'\d+.\d+', line) + result["maximum"] = b[0] + return True, result + + +def getMacTemp_sysfs(mactempconf): + temp = -1000000 + try: + temp_list = [] + mac_temp_loc = mactempconf.get("loc", []) + mac_temp_flag = mactempconf.get("flag", None) + if mac_temp_flag is not None: + gettype = mac_temp_flag.get('gettype') + okbit = mac_temp_flag.get('okbit') + okval = mac_temp_flag.get('okval') + if gettype == "io": + io_addr = mac_temp_flag.get('io_addr') + val = io_rd(io_addr) + if val is None: + raise Exception("get mac_flag by io failed.") + else: + bus = mac_temp_flag.get('bus') + loc = mac_temp_flag.get('loc') + offset = mac_temp_flag.get('offset') + ind, val = wbi2cget(bus, loc, offset) + if ind is not True: + raise Exception("get mac_flag by i2c failed.") + val_t = (int(val, 16) & (1 << okbit)) >> okbit + if val_t != okval: + raise Exception("mac_flag invalid, val_t:%d." % val_t) + for loc in mac_temp_loc: + temp_s = get_sysfs_value(loc) + if isinstance(temp_s, str) and temp_s.startswith("ERR"): + raise Exception("get mac temp error. loc:%s" % loc) + temp_t = int(temp_s) + if temp_t == -1000000: + raise Exception("mac temp invalid.loc:%s" % loc) + temp_list.append(temp_t) + temp_list.sort(reverse=True) + temp = temp_list[0] + except Exception: + return False, temp + return True, temp + +def get_format_value(format_str): + ast_obj = ast.parse(format_str, mode='eval') + visitor = CodeVisitor() + visitor.visit(ast_obj) + ret = visitor.get_value() + return ret + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/pmon_syslog.py b/platform/broadcom/sonic-platform-modules-micas/common/script/pmon_syslog.py new file mode 100755 index 000000000000..8bdceef8c1b5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/pmon_syslog.py @@ -0,0 +1,519 @@ +#!/usr/bin/python3 +# * onboard interval check +# * FAN trays +# * PSU +# * SFF +import time +import syslog +import traceback +import glob +from platform_config import PMON_SYSLOG_STATUS + +PMON_DEBUG_FILE = "/etc/.pmon_syslog_debug_flag" +debuglevel = 0 +PMONERROR = 1 +PMONDEBUG = 2 + + +def pmon_debug(s): + if PMONDEBUG & debuglevel: + syslog.openlog("PMON_SYSLOG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def pmon_error(s): + if PMONERROR & debuglevel: + syslog.openlog("PMON_SYSLOG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def dev_syslog(s): + syslog.openlog("PMON_SYSLOG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_NOTICE, s) + + +# status +STATUS_PRESENT = 'PRESENT' +STATUS_ABSENT = 'ABSENT' +STATUS_OK = 'OK' +STATUS_NOT_OK = 'NOT OK' +STATUS_FAILED = 'FAILED' + + +class checkBase(object): + def __init__(self, path, dev_name, display_name, obj_type, config): + self._peroid_syslog = None + self._peroid_failed_syslog = None # exception + self._preDevStatus = None + self._path = path + self._name = dev_name + self._display_name = display_name + self._type = obj_type + self._config = config + + def getCurstatus(self): + # get ok/not ok/absent status + status, log = self.getPresent() + if status == STATUS_PRESENT: + # check status + property_status, log = self.getStatus() + if property_status is not None: + status = property_status + return status, log + + def getPresent(self): + presentFilepath = self.getPath() + try: + # get ok/not ok/absent status + presentConfig = self._config["present"] + mask = presentConfig.get("mask", 0xff) + absent_val = presentConfig.get("ABSENT", None) + absent_val = absent_val & mask + with open(presentFilepath, "r") as fd: + retval = fd.read() + if int(retval) == absent_val: + return STATUS_ABSENT, None + return STATUS_PRESENT, None + except Exception as e: + return STATUS_FAILED, (str(e) + " location[%s]" % presentFilepath) + + def getStatus(self): + if "status" in self._config: + statusConfig = self._config["status"] + for itemConfig in statusConfig: + mask = itemConfig.get("mask", 0xff) + ok_val = itemConfig.get("okval", None) + ok_val = ok_val & mask + Filepath = itemConfig["path"] % self._name + try: + with open(Filepath, "r") as fd1: + retval = fd1.read() + if int(retval) != ok_val: + return STATUS_NOT_OK, None + except Exception as e: + return STATUS_FAILED, (str(e) + " location[%s]" % Filepath) + return STATUS_OK, None + return None, None + + def getPath(self): + return self._path + + def getName(self): + return self._name + + def getType(self): + return self._type + + def getDisplayName(self): + return self._display_name + + def getnochangedMsgFlag(self): + return self._config["nochangedmsgflag"] + + def getnochangedMsgTime(self): + return self._config["nochangedmsgtime"] + + def getnoprintFirstTimeFlag(self): + return self._config["noprintfirsttimeflag"] + + def checkStatus(self): + # syslog msg + dev_type = self.getType() + display_name = self.getDisplayName() + nochangedMsgTime = self.getnochangedMsgTime() + getnochangedMsgFlag = self.getnochangedMsgFlag() + noprintFirstTimeFlag = self.getnoprintFirstTimeFlag() + MSG_IN = '%%PMON-5-' + dev_type + '_PLUG_IN: %s is PRESENT.' + MSG_OUT = '%%PMON-5-' + dev_type + '_PLUG_OUT: %s is ABSENT.' + MSG_OK = '%%PMON-5-' + dev_type + '_OK: %s is OK.' + MSG_NOT_OK = '%%PMON-5-' + dev_type + '_FAILED: %s is NOT OK.' + MSG_ABSENT = '%%PMON-5-' + dev_type + '_ABSENT: %s is ABSENT.' + MSG_UNKNOWN = '%%PMON-5-' + dev_type + '_UNKNOWN: %s is UNKNOWN.%s' + MSG_RECOVER = '%%PMON-5-' + dev_type + '_OK: %s is OK. Recover from ' + dev_type + ' FAILED.' + + curStatus, log = self.getCurstatus() + pmon_debug("%s: current status %s" % (display_name, curStatus)) + pmon_debug("%s: pre status %s" % (display_name, self._preDevStatus)) + pmon_debug("%s: peroid_syslog %s" % (display_name, self._peroid_syslog)) + + if curStatus == STATUS_FAILED: + # get status failed + if self._peroid_failed_syslog is not None: + if getnochangedMsgFlag and time.time() - self._peroid_failed_syslog >= nochangedMsgTime: + # absent as before for some time, notice + dev_syslog(MSG_UNKNOWN % (display_name, log)) + self._peroid_failed_syslog = time.time() + else: # first time failed + dev_syslog(MSG_UNKNOWN % (display_name, log)) + self._peroid_failed_syslog = time.time() + return + self._peroid_failed_syslog = time.time() + + if self._preDevStatus is None: + # 1st time + if noprintFirstTimeFlag == 1: + self._peroid_syslog = time.time() + else: + if curStatus == STATUS_PRESENT: + # present + dev_syslog(MSG_IN % display_name) + elif curStatus == STATUS_OK: + # ok + dev_syslog(MSG_OK % display_name) + elif curStatus == STATUS_NOT_OK: + # not ok + dev_syslog(MSG_NOT_OK % display_name) + self._peroid_syslog = time.time() + else: + # absent + dev_syslog(MSG_ABSENT % display_name) + self._peroid_syslog = time.time() + else: + # from 2nd time... + if self._preDevStatus == curStatus: + # status not changed + if self._preDevStatus == STATUS_ABSENT: + if self._peroid_syslog is not None: + if getnochangedMsgFlag and time.time() - self._peroid_syslog >= nochangedMsgTime: + # absent as before for some time, notice + dev_syslog(MSG_ABSENT % display_name) + self._peroid_syslog = time.time() + elif self._preDevStatus == STATUS_NOT_OK: + if self._peroid_syslog is not None: + if getnochangedMsgFlag and time.time() - self._peroid_syslog >= nochangedMsgTime: + # not ok as before for some time, notice + dev_syslog(MSG_NOT_OK % display_name) + self._peroid_syslog = time.time() + else: + # status changed + if self._preDevStatus == STATUS_ABSENT: + if curStatus == STATUS_NOT_OK: + # absent -> not ok + dev_syslog(MSG_IN % display_name) + dev_syslog(MSG_NOT_OK % display_name) + self._peroid_syslog = time.time() + elif curStatus == STATUS_OK: + # absent -> ok + dev_syslog(MSG_IN % display_name) + dev_syslog(MSG_OK % display_name) + else: + # absent -> prsent + dev_syslog(MSG_IN % display_name) + + elif self._preDevStatus == STATUS_OK: + if curStatus == STATUS_NOT_OK: + # ok -> not ok + dev_syslog(MSG_NOT_OK % display_name) + self._peroid_syslog = time.time() + elif curStatus == STATUS_ABSENT: + # ok -> absent + dev_syslog(MSG_OUT % display_name) + self._peroid_syslog = time.time() + elif self._preDevStatus == STATUS_PRESENT: + # present -> absent + dev_syslog(MSG_OUT % display_name) + self._peroid_syslog = time.time() + else: # not ok + if curStatus == STATUS_OK: + # not ok -> ok + dev_syslog(MSG_RECOVER % display_name) + dev_syslog(MSG_OK % display_name) + else: + # not ok -> absent + dev_syslog(MSG_OUT % display_name) + self._peroid_syslog = time.time() + self._preDevStatus = curStatus + + +class checkSfp(checkBase): + def __init__(self, path, dev_name, display_name, config): + super(checkSfp, self).__init__(path, dev_name, display_name, 'XCVR', config) + + def getPath(self): + super(checkSfp, self).getPath() + return self._path + + def getName(self): + super(checkSfp, self).getName() + return self._name + + def getType(self): + super(checkSfp, self).getType() + return self._type + + +class checkSlot(checkBase): + def __init__(self, path, dev_name, display_name, config): + super(checkSlot, self).__init__(path, dev_name, display_name, 'SLOT', config) + + def getPath(self): + super(checkSlot, self).getPath() + return self._path + + def getName(self): + super(checkSlot, self).getName() + return self._name + + def getType(self): + super(checkSlot, self).getType() + return self._type + + +class checkPSU(checkBase): + def __init__(self, path, dev_name, display_name, config): + super(checkPSU, self).__init__(path, dev_name, display_name, 'PSU', config) + + def getPath(self): + super(checkPSU, self).getPath() + return self._path + + def getName(self): + super(checkPSU, self).getName() + return self._name + + def getType(self): + super(checkPSU, self).getType() + return self._type + + +class checkFAN(checkBase): + def __init__(self, path, dev_name, display_name, config): + super(checkFAN, self).__init__(path, dev_name, display_name, 'FAN', config) + + def getPath(self): + super(checkFAN, self).getPath() + return self._path + + def getName(self): + super(checkFAN, self).getName() + return self._name + + def getType(self): + super(checkFAN, self).getType() + return self._type + + +class platformSyslog(): + def __init__(self): + self.__sfp_checklist = [] + self.__fan_checklist = [] + self.__psu_checklist = [] + self.__slot_checklist = [] + self.__temp_checklist = [] + self.temps_peroid_syslog = {} + self.normal_status = 0 + self.warning_status = 1 + self.critical_status = 2 + self.poweron_flag = 0 + + self.pmon_syslog_config = PMON_SYSLOG_STATUS.copy() + self.__pollingtime = self.pmon_syslog_config.get('polling_time', 3) + + tmpconfig = self.pmon_syslog_config.get('sffs', None) + if tmpconfig is not None: + preset_item = tmpconfig.get("present", {}) + path = preset_item.get("path", []) + for location in path: + if '*' not in location: + pmon_error("sff location config error: %s" % location) + continue + dev_name_index = 0 + loc_split_list = location.split('/') + for i, item in enumerate(loc_split_list): + if '*' in item: + dev_name_index = i + break + locations = glob.glob(location) + for dev_path in locations: + dev_name_list = dev_path.split('/') + # explame:get eth1 from /sys_switch/transceiver/eth1/present + dev_name = dev_name_list[dev_name_index] + dev_name_alias = tmpconfig.get("alias", {}) + display_name = dev_name_alias.get(dev_name, dev_name) + dev = checkSfp(dev_path, dev_name, display_name, tmpconfig) + self.__sfp_checklist.append(dev) + + tmpconfig = self.pmon_syslog_config.get('fans', None) + if tmpconfig is not None: + preset_item = tmpconfig.get("present", {}) + path = preset_item.get("path", []) + for location in path: + if '*' not in location: + pmon_error("fan location config error: %s" % location) + continue + dev_name_index = 0 + loc_split_list = location.split('/') + for i, item in enumerate(loc_split_list): + if '*' in item: + dev_name_index = i + break + locations = glob.glob(location) + for dev_path in locations: + dev_name_list = dev_path.split('/') + dev_name = dev_name_list[dev_name_index] + dev_name_alias = tmpconfig.get("alias", {}) + display_name = dev_name_alias.get(dev_name, dev_name) + dev = checkFAN(dev_path, dev_name, display_name, tmpconfig) + self.__fan_checklist.append(dev) + + tmpconfig = self.pmon_syslog_config.get('psus', None) + if tmpconfig is not None: + preset_item = tmpconfig.get("present", {}) + path = preset_item.get("path", []) + for location in path: + if '*' not in location: + pmon_error("psu location config error: %s" % location) + continue + dev_name_index = 0 + loc_split_list = location.split('/') + for i, item in enumerate(loc_split_list): + if '*' in item: + dev_name_index = i + break + locations = glob.glob(location) + for dev_path in locations: + dev_name_list = dev_path.split('/') + dev_name = dev_name_list[dev_name_index] + dev_name_alias = tmpconfig.get("alias", {}) + display_name = dev_name_alias.get(dev_name, dev_name) + dev = checkPSU(dev_path, dev_name, display_name, tmpconfig) + self.__psu_checklist.append(dev) + + tmpconfig = self.pmon_syslog_config.get('slots', None) + if tmpconfig is not None: + preset_item = tmpconfig.get("present", {}) + path = preset_item.get("path", []) + for location in path: + if '*' not in location: + pmon_error("slot location config error: %s" % location) + continue + dev_name_index = 0 + loc_split_list = location.split('/') + for i, item in enumerate(loc_split_list): + if '*' in item: + dev_name_index = i + break + locations = glob.glob(location) + for dev_path in locations: + dev_name_list = dev_path.split('/') + dev_name = dev_name_list[dev_name_index] + dev_name_alias = tmpconfig.get("alias", {}) + display_name = dev_name_alias.get(dev_name, dev_name) + dev = checkSlot(dev_path, dev_name, display_name, tmpconfig) + self.__slot_checklist.append(dev) + + tmpconfig = self.pmon_syslog_config.get('temps', None) + if tmpconfig is not None: + self.__temp_checklist = tmpconfig.get('temps_list', []) + self.__temps_pollingseconds = tmpconfig.get('over_temps_polling_seconds', None) + + def checkTempStaus(self, temp_item): + temp_name = temp_item.get('name', None) + input_path = temp_item.get('input_path', None) + warning_temp = temp_item.get('warning', None) + critical_temp = temp_item.get('critical', None) + input_accuracy = temp_item.get('input_accuracy', None) + if temp_name is None or input_path is None or warning_temp is None or critical_temp is None: + dev_syslog('%%PMON-5-TEMP_NOTICE: get temperature config parament failed.') + return + try: + locations = glob.glob(input_path) + with open(locations[0], "r") as fd: + input_temp = fd.read() + input_temp = float(input_temp) / float(input_accuracy) + + if 'time' not in temp_item: + temp_item['time'] = time.time() + temp_item['status'] = self.normal_status + if float(input_temp) >= float(warning_temp): + if float(input_temp) >= float(critical_temp): + if time.time() - \ + temp_item['time'] >= self.__temps_pollingseconds or temp_item['status'] != self.critical_status: + dev_syslog('%%PMON-5-TEMP_HIGH: %s temperature %sC is larger than max critical threshold %sC.' + % (temp_name, input_temp, critical_temp)) + temp_item['status'] = self.critical_status + temp_item['time'] = time.time() + else: + if time.time() - \ + temp_item['time'] >= self.__temps_pollingseconds or temp_item['status'] != self.warning_status: + dev_syslog('%%PMON-5-TEMP_HIGH: %s temperature %sC is larger than max warning threshold %sC.' + % (temp_name, input_temp, warning_temp)) + temp_item['status'] = self.warning_status + temp_item['time'] = time.time() + else: + pmon_debug( + "%s temperature %sC is in range [%s, %s]" % + (temp_name, input_temp, warning_temp, critical_temp)) + temp_item['status'] = self.normal_status + temp_item['time'] = time.time() + except Exception as e: + dev_syslog('%%PMON-5-TEMP_NOTICE: Cannot get %s temperature. Exception log: %s' % (temp_name, str(e))) + return + + def sysfs_precondition_check(self, check_module, check_project): + try: + tmpconfig = self.pmon_syslog_config.get(check_module, None) + if tmpconfig is not None: + check_list = tmpconfig.get(check_project, []) + for check_item in check_list: + location = check_item.get("path", None) + ok_val = check_item.get("ok_val", None) + mask = check_item.get("mask", 0xff) + ok_val = ok_val & mask + locations = glob.glob(location) + for power_path in locations: + with open(power_path, "r") as fd: + retval = fd.read() + if int(retval) != ok_val: + return + self.poweron_flag = 1 + except Exception as e: + dev_syslog('%%PMON-5-TEMP_NOTICE: Cannot check power status. Exception log: %s' % str(e)) + return + + def updateSysDeviceStatus(self): + if self.poweron_flag == 1: + for dev in self.__sfp_checklist: + dev.checkStatus() + else: + self.sysfs_precondition_check('sffs', 'power') + + for dev in self.__fan_checklist: + dev.checkStatus() + for dev in self.__psu_checklist: + dev.checkStatus() + for dev in self.__slot_checklist: + dev.checkStatus() + for temp_item in self.__temp_checklist: + self.checkTempStaus(temp_item) + + def getPollingtime(self): + return self.__pollingtime + + def debug_init(self): + global debuglevel + try: + with open(PMON_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + def doWork(self): + try: + self.debug_init() + self.updateSysDeviceStatus() + except Exception as e: + MSG_EXCEPTION = '%%PMON-5-NOTICE: Exception happened! info:%s' % str(e) + pmon_error(MSG_EXCEPTION % traceback.format_exc()) + + +def run(): + platform = platformSyslog() + while True: + platform.doWork() + time.sleep(platform.getPollingtime()) + + +if __name__ == '__main__': + run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/reboot_cause.py b/platform/broadcom/sonic-platform-modules-micas/common/script/reboot_cause.py new file mode 100755 index 000000000000..2f125c5084c2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/reboot_cause.py @@ -0,0 +1,183 @@ +#!/usr/bin/python3 +# -*- coding: UTF-8 -*- +import sys +import os +import time +import syslog +from platform_util import get_value, set_value, exec_os_cmd, wb_os_system +from platform_config import REBOOT_CAUSE_PARA + +REBOOT_CAUSE_DEBUG_FILE = "/etc/.reboot_cause_debug" +REBOOT_CAUSE_STARTED_FLAG = "/tmp/.reboot_cause_started_flag" + +debuglevel = 0 + + +def record_syslog_debug(s): + if debuglevel: + syslog.openlog("REBOOT_CAUSE_DEBUG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def record_syslog(s): + syslog.openlog("REBOOT_CAUSE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +class RebootCause(): + def __init__(self): + self.reboot_cause_para = REBOOT_CAUSE_PARA.copy() + self.reboot_cause_list = self.reboot_cause_para.get('reboot_cause_list', None) + self.other_reboot_cause_record = self.reboot_cause_para.get('other_reboot_cause_record', None) + + def debug_init(self): + global debuglevel + if os.path.exists(REBOOT_CAUSE_DEBUG_FILE): + debuglevel = 1 + else: + debuglevel = 0 + + def monitor_point_check(self, item): + try: + gettype = item.get('gettype', None) + okval = item.get('okval', None) + compare_mode = item.get('compare_mode', "equal") + ret, value = get_value(item) + if ret is True: + if compare_mode == "equal": + if value == okval: + return True + elif compare_mode == "great": + if value > okval: + return True + elif compare_mode == "ignore": + return True + else: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: compare_mode %s not match error.' % (compare_mode)) + else: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: base point check type:%s not support.' % gettype) + except Exception as e: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: base point check error. msg: %s.' % (str(e))) + return False + + def reboot_cause_record(self, item_list): + RET = {"RETURN_KEY1": 0} + try: + for item in item_list: + record_type = item.get('record_type', None) + if record_type == 'file': + file_mode = item.get('mode', None) + file_log = item.get('log', None) + file_path = item.get('path', None) + file_max_size = item.get('file_max_size', 0) + + if file_path is None: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: record type is file, but path is none.') + continue + + if file_max_size > 0: + file_size = 0 + if os.path.exists(file_path): + file_size = os.path.getsize(file_path) // file_max_size + if file_size >= 1: + reocrd_cmd = "mv %s %s_bak" % (file_path, file_path) + status, output = exec_os_cmd(reocrd_cmd) + if status: + record_syslog( + '%%REBOOT_CAUSE-3-EXCEPTION: exec cmd %s failed, %s' % + (reocrd_cmd, output)) + + if file_mode == 'cover': + operate_cmd = ">" + elif file_mode == 'add': + operate_cmd = ">>" + else: + RET["RETURN_KEY1"] = -1 + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: file record mode:%s not support.' % file_mode) + continue + + create_dir = "mkdir -p %s" % os.path.dirname(file_path) + status, ret_t = wb_os_system(create_dir) + if status != 0: + RET["RETURN_KEY1"] = -1 + record_syslog( + '%%REBOOT_CAUSE-3-EXCEPTION: create %s failed, msg: %s' % + (os.path.dirname(file_path), ret_t)) + continue + + status, date = wb_os_system("date") + if status != 0 or len(date) == 0: + RET["RETURN_KEY1"] = -1 + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: get date failed.') + continue + + reocrd_cmd = "echo %s %s %s %s" % (file_log, date, operate_cmd, file_path) + status, ret_t = wb_os_system(reocrd_cmd) + if status != 0: + RET["RETURN_KEY1"] = -1 + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: get date failed, msg: %s' % ret_t) + continue + wb_os_system('sync') + else: + RET["RETURN_KEY1"] = -1 + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: record_type:%s not support.' % record_type) + continue + except Exception as e: + RET["RETURN_KEY1"] = -1 + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: reboot cause record error. msg: %s.' % (str(e))) + if RET["RETURN_KEY1"] == 0: + return True + return False + + def reboot_cause_check(self): + try: + reboot_cause_flag = False + if self.reboot_cause_list is None: + record_syslog_debug('%%REBOOT_CAUSE-6-DEBUG: reboot cause check config not found') + return + for item in self.reboot_cause_list: + name = item.get('name', None) + monitor_point = item.get('monitor_point', None) + record = item.get('record', None) + finish_operation_list = item.get('finish_operation', []) + if name is None or monitor_point is None or record is None: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: reboot cause check get config failed.name:%s, monitor_point:%s, record:%s' % + (name, monitor_point, record)) + return + ret = self.monitor_point_check(monitor_point) + if ret is True: + record_syslog_debug('%%REBOOT_CAUSE-6-DEBUG: %s reboot cause is happen' % name) + self.reboot_cause_record(record) + reboot_cause_flag = True + for finish_operation_item in finish_operation_list: + ret, log = set_value(finish_operation_item) + if ret is False: + log = "%%REBOOT_CAUSE-3-EXCEPTION: " + log + record_syslog(log) + + if reboot_cause_flag is False and self.other_reboot_cause_record is not None: + record_syslog_debug('%%REBOOT_CAUSE-6-DEBUG: other reboot cause is happen') + self.reboot_cause_record(self.other_reboot_cause_record) + except Exception as e: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: reboot cause check error. msg: %s.' % (str(e))) + return + + def run(self): + try: + self.debug_init() + if os.path.exists(REBOOT_CAUSE_STARTED_FLAG): + record_syslog_debug( + '%%REBOOT_CAUSE-6-DEBUG: Reboot cause has been started and will not be started again') + sys.exit(0) + self.reboot_cause_check() + wb_os_system("touch %s" % REBOOT_CAUSE_STARTED_FLAG) + wb_os_system("sync") + time.sleep(5) + sys.exit(0) + except Exception as e: + record_syslog('%%REBOOT_CAUSE-3-EXCEPTION: %s.' % (str(e))) + + +if __name__ == '__main__': + reboot_cause = RebootCause() + reboot_cause.run() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/reboot_ctrl.py b/platform/broadcom/sonic-platform-modules-micas/common/script/reboot_ctrl.py new file mode 100755 index 000000000000..17d3f5902b9d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/reboot_ctrl.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import time +import syslog +import click +from platform_util import write_sysfs, wbi2cset, io_wr, wbi2csetWord +from platform_config import REBOOT_CTRL_PARAM + + +REBOOTCTLDEBUG = 0 + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def rebootctrlwarning(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("REBOOTCTRL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +def rebootctrlcritical(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("REBOOTCTRL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_CRIT, s) + + +def rebootctrlerror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("REBOOTCTRL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def rebootctrldebug(s): + # s = s.decode('utf-8').encode('gb2312') + if REBOOTCTLDEBUG == 1: + syslog.openlog("REBOOTCTRL", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +class RebootCtrl(): + def __init__(self): + self.config = REBOOT_CTRL_PARAM.copy() + + def set_value(self, config, val): + way = config.get("gettype") + if way == 'sysfs': + loc = config.get("loc") + value = config.get(val) + rebootctrldebug("sysfs type.loc:0x%x, value:0x%x" % (loc, value)) + return write_sysfs(loc, "0x%02x" % value) + if way == "i2c": + bus = config.get("bus") + addr = config.get("loc") + offset = config.get("offset") + value = config.get(val) + rebootctrldebug("i2c type.bus:0x%x, addr:0x%x, offset:0x%x, value:0x%x" % (bus, addr, offset, value)) + return wbi2cset(bus, addr, offset, value) + if way == "io": + io_addr = config.get('io_addr') + value = config.get(val) + rebootctrldebug("io type.io_addr:0x%x, value:0x%x" % (io_addr, value)) + ret = io_wr(io_addr, value) + if ret is not True: + return False, ("write 0x%x failed" % io_addr) + return True, ("write 0x%x success" % io_addr) + if way == 'i2cword': + bus = config.get("bus") + addr = config.get("loc") + offset = config.get("offset") + value = config.get(val) + rebootctrldebug("i2cword type.bus:0x%x, addr:0x%x, offset:0x%x, value:0x%x" % (bus, addr, offset, value)) + return wbi2csetWord(bus, addr, offset, value) + return False, "unsupport way: %s" % way + + def reset_operate(self, config): + ret, log = self.set_value(config, "rst_val") + rst_delay = config.get("rst_delay", 0) + time.sleep(rst_delay) + return ret, log + + def unlock_reset_operate(self, config): + ret, log = self.set_value(config, "unlock_rst_val") + unlock_rst_delay = config.get("unlock_rst_delay", 0) + time.sleep(unlock_rst_delay) + return ret, log + + def do_rebootctrl(self, option): + if self.config is None: + rebootctrlerror("Reset failed, REBOOT_CTRL_PARAM cfg get failed.") + return + try: + name_conf = self.config.get(option, None) + if name_conf is None: + print("Reset %s not support" % option) + return + try: + click.confirm("Are you sure you want to reset " + option + "?", + default=False, abort=True, show_default=True) + except Exception as e: + print("Aborted, msg: %s" % str(e)) + return + print("Reset %s start" % option) + ret, log = self.reset_operate(name_conf) + if ret is False: + rebootctrlerror(log) + print("Reset %s failed" % option) + return + if "unlock_rst_val" in name_conf: + ret, log = self.unlock_reset_operate(name_conf) + if ret is False: + rebootctrlerror(log) + print("%s unlock reset failed" % option) + return + print("Reset %s success" % option) + except Exception: + rebootctrlerror("do_rebootctrl Exception error") + return + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''reboot_ctrl reset [option]''' + + +@main.command() +@click.argument('option', required=True) +def reset(option): + '''reset device''' + rebootctrldebug("reboot ctrl option %s" % option) + rebootctrl = RebootCtrl() + rebootctrl.do_rebootctrl(option) + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/sensors b/platform/broadcom/sonic-platform-modules-micas/common/script/sensors new file mode 100755 index 000000000000..a2c72b123a43 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/sensors @@ -0,0 +1,8 @@ +#!/bin/bash +#docker exec -i pmon sensors "$@" + + +#To probe sensors not part of lm-sensors +if [ -r /usr/local/bin/platform_sensors.py ]; then + python /usr/local/bin/platform_sensors.py +fi diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/sfp_highest_temperatue.py b/platform/broadcom/sonic-platform-modules-micas/common/script/sfp_highest_temperatue.py new file mode 100755 index 000000000000..4dd98f3a36b3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/sfp_highest_temperatue.py @@ -0,0 +1,148 @@ +#!/usr/bin/python3 +import os +import importlib.machinery +import time +import syslog +import subprocess +import fcntl + +sfp_temperature_file = "/tmp/highest_sff_temp" + +SFP_TEMP_DEBUG_FILE = "/etc/.sfp_temp_debug_flag" +SFP_TEMP_RECORD_DEBUG = 1 +SFP_TEMP_RECORD_ERROR = 2 +debuglevel = 0 + + +def sfp_temp_debug(s): + if SFP_TEMP_RECORD_DEBUG & debuglevel: + syslog.openlog("SFP_TEMP_DEBUG", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def sfp_temp_error(s): + if SFP_TEMP_RECORD_ERROR & debuglevel: + syslog.openlog("SFP_TEMP_ERROR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +pidfile = None + + +def file_rw_lock(): + global pidfile + pidfile = open(sfp_temperature_file, "r") + try: + fcntl.flock(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB) + sfp_temp_debug("file lock success") + return True + except Exception: + if pidfile is not None: + pidfile.close() + pidfile = None + return False + + +def file_rw_unlock(): + try: + global pidfile + + if pidfile is not None: + fcntl.flock(pidfile, fcntl.LOCK_UN) + pidfile.close() + pidfile = None + sfp_temp_debug("file unlock success") + else: + sfp_temp_debug("pidfile is invalid, do nothing") + return True + except Exception as e: + sfp_temp_error("file unlock err, msg:%s" % (str(e))) + return False + + +def get_sfp_highest_temperature(): + highest_temperature = 0 + platform_sfputil = None + + sfputil_dir = "/usr/share/sonic/device/" + try: + if not os.path.exists(sfputil_dir): + sfputil_dir = "/usr/share/sonic/platform/" + sfputil_path = sfputil_dir + "/plugins/sfputil.py" + else: + cmd = "cat /host/machine.conf | grep onie_build_platform" + ret, output = subprocess.getstatusoutput(cmd) + if ret != 0: + sfp_temp_error("cmd: %s execution fail, output: %s" % (cmd, output)) + + onie_platform = output.split("=")[1] + sfputil_path = sfputil_dir + onie_platform + "/plugins/sfputil.py" + + module = importlib.machinery.SourceFileLoader("sfputil", sfputil_path).load_module() + platform_sfputil_class = getattr(module, "SfpUtil") + platform_sfputil = platform_sfputil_class() + + temperature = platform_sfputil.get_highest_temperature() + highest_temperature = int(temperature) * 1000 + except Exception as e: + sfp_temp_error("get sfp temperature error, msg:%s" % str(e)) + highest_temperature = -9999000 + + return highest_temperature + + +def write_sfp_highest_temperature(temperature): + + loop = 1000 + ret = False + try: + if os.path.exists(sfp_temperature_file) is False: + with open(sfp_temperature_file, 'w') as sfp_f: + pass + for i in range(0, loop): + ret = file_rw_lock() + if ret is True: + break + time.sleep(0.001) + + if ret is False: + sfp_temp_error("take file lock timeout") + return + + with open(sfp_temperature_file, 'w') as sfp_f: + sfp_f.write("%s\n" % str(temperature)) + + file_rw_unlock() + return + except Exception as e: + sfp_temp_error("write sfp temperature error, msg:%s" % str(e)) + file_rw_unlock() + return + + +def debug_init(): + global debuglevel + + try: + with open(SFP_TEMP_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + +def main(): + while True: + debug_init() + temperature = 0 + try: + temperature = get_sfp_highest_temperature() + write_sfp_highest_temperature(temperature) + except Exception as e: + sfp_temp_error("get/write sfp temperature error, msg:%s" % str(e)) + write_sfp_highest_temperature(-9999000) + time.sleep(5) + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/slot_monitor.py b/platform/broadcom/sonic-platform-modules-micas/common/script/slot_monitor.py new file mode 100755 index 000000000000..0385f50b6f50 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/slot_monitor.py @@ -0,0 +1,253 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import time +import syslog +import traceback +import operator +import click +import os +from platform_config import SLOT_MONITOR_PARAM +from platform_util import io_rd, io_wr, wbi2cget, wbi2cset + + +SLOTMONITORDEBUG = 0 +SLOTMONITOR_DEBUG_FILE = "/etc/.slotmonitor_debug_flag" + + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def debug_init(): + global SLOTMONITORDEBUG + if os.path.exists(SLOTMONITOR_DEBUG_FILE): + SLOTMONITORDEBUG = 1 + else: + SLOTMONITORDEBUG = 0 + + +def slotwarninglog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("SLOTMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +def slotcriticallog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("SLOTMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_CRIT, s) + + +def sloterror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("SLOTMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def slotinfo(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("SLOTMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def slotdebuglog(s): + # s = s.decode('utf-8').encode('gb2312') + if SLOTMONITORDEBUG == 1: + syslog.openlog("SLOTMONITOR", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +class SlotMonitor(): + def __init__(self): + self.preSlotStatus = [] + + def checkslot(self, ret): + slots_conf = SLOT_MONITOR_PARAM.get('slots', None) + + if slots_conf is None: + return False + for item_slot in slots_conf: + totalerr = 0 + try: + ret_t = {} + ret_t["id"] = item_slot.get('name') + ret_t["status"] = "" + presentattr = item_slot.get('present') + gettype = presentattr.get('gettype') + presentbit = presentattr.get('presentbit') + if gettype == "io": + io_addr = presentattr.get('io_addr') + val = io_rd(io_addr) + if val is not None: + retval = val + else: + totalerr -= 1 + sloterror(" %s %s" % (item_slot.get('name'), "lpc read failed")) + else: + bus = presentattr.get('bus') + loc = presentattr.get('loc') + offset = presentattr.get('offset') + ind, val = wbi2cget(bus, loc, offset) + if ind is True: + retval = val + else: + totalerr -= 1 + sloterror(" %s %s" % (item_slot.get('name'), "i2c read failed")) + if totalerr < 0: + ret_t["status"] = "NOT OK" + ret.append(ret_t) + continue + val_t = (int(retval, 16) & (1 << presentbit)) >> presentbit + if val_t != presentattr.get('okval'): + ret_t["status"] = "ABSENT" + else: + ret_t["status"] = "PRESENT" + except Exception as e: + ret_t["status"] = "NOT OK" + totalerr -= 1 + sloterror("checkslot error") + sloterror(str(e)) + slotdebuglog("%s status: %s" % (ret_t["id"], ret_t["status"])) + ret.append(ret_t) + return True + + def dealslotplugin(self, name): + slotdebuglog("enter dealslotplugin %s" % name) + # wait for slot stable + time.sleep(5) + slots_conf = SLOT_MONITOR_PARAM.get('slots', None) + if slots_conf is None: + return False + for item_slot in slots_conf: + try: + slotdebuglog("name %s, item_slot.get('name') %s" % (name, item_slot.get('name'))) + if name == item_slot.get('name'): + actattr = item_slot.get('act') + for item_act in actattr: + gettype = item_act.get('gettype') + if gettype == "io": + io_addr = item_act.get('io_addr') + value = item_act.get('value') + mask = item_act.get('mask') + val = io_rd(io_addr) + if val is None: + sloterror(" %s %s" % (name, "lpc read failed")) + continue + set_val = (int(val, 16) & mask) | value + ret = io_wr(io_addr, set_val) + if ret is not True: + sloterror(" %s %s" % (name, "lpc write failed")) + continue + slotdebuglog("io set io_addr:0x%x value:0x%x success" % (io_addr, set_val)) + elif gettype == "i2c": + bus = item_act.get('bus') + loc = item_act.get('loc') + offset = item_act.get('offset') + value = item_act.get('value') + ret, log = wbi2cset(bus, loc, offset, value) + if ret is not True: + sloterror(" %s %s %s" % (name, "i2c write failed", log)) + continue + slotdebuglog( + "i2c set bus:%d loc:0x%x offset:0x%x value:0x%x success" % + (bus, loc, offset, value)) + else: + sloterror("gettype error") + break + except Exception as e: + sloterror("dealslotplugin failed") + sloterror(str(e)) + return False + return True + + def updateSlotStatus(self): + ''' + Only two status: PRESENT and ABSENT + ''' + curSlotStatus = [] + self.checkslot(curSlotStatus) + slotdebuglog('curSlotStatus: {}\n preSlotStatus: {}'.format(curSlotStatus, self.preSlotStatus)) + if operator.eq(self.preSlotStatus, curSlotStatus) is False: + if len(self.preSlotStatus) == 0: + # first time + for i, item in enumerate(curSlotStatus): + if item['status'] == 'PRESENT': + slotdebuglog('SLOT_PLUG_IN: %s' % (item['id'])) + elif item['status'] == 'ABSENT': + slotdebuglog('SLOT_ABSENT: %s' % (item['id'])) + else: + slotdebuglog('SLOT_FAILED: %s status %s not support yet' % (item['id'], item['status'])) + self.preSlotStatus.append(item) + else: + for i, item in enumerate(curSlotStatus): + if item['status'] == self.preSlotStatus[i]['status']: + continue + if item['status'] == 'PRESENT' and self.preSlotStatus[i]['status'] == 'ABSENT': + self.dealslotplugin(item['id']) + slotinfo('SLOT_PLUG_IN: %s' % (item['id'])) + elif item['status'] == 'ABSENT' and self.preSlotStatus[i]['status'] == 'PRESENT': + slotwarninglog('SLOT_PLUG_OUT: %s' % (item['id'])) + else: + slotwarninglog('SLOT_PLUG_OUT: %s status change from %s to %s not support' % + (item['id'], self.preSlotStatus[i]['status'], item['status'])) + self.preSlotStatus.remove(self.preSlotStatus[i]) + self.preSlotStatus.insert(i, item) + + def slotmonitor(self): + self.updateSlotStatus() + return 0 + + +def doSlotMonitor(slotMonitor): + slotMonitor.slotmonitor() + + +def run(interval, slotMonitor): + # slotMonitor.devattrinit() + while True: + try: + debug_init() + doSlotMonitor(slotMonitor) + except Exception as e: + traceback.print_exc() + sloterror(str(e)) + time.sleep(interval) + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''slot monitor operator''' + + +@main.command() +def start(): + '''start slot monitor''' + slotinfo("slot_monitor start") + slotMonitor = SlotMonitor() + interval = SLOT_MONITOR_PARAM.get('polling_time', 1) + run(interval, slotMonitor) + + +@main.command() +def stop(): + '''stop slot monitor ''' + slotinfo("stop") + + +# device_i2c operation +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/ssdmon b/platform/broadcom/sonic-platform-modules-micas/common/script/ssdmon new file mode 100755 index 000000000000..4290b0a68725 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/ssdmon @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +# +# ssdmon +# +# Command-line utility to check SSD health and parameters +# + +try: + import argparse + import os + import sys + + from sonic_py_common import device_info, logger +except ImportError as e: + raise ImportError("%s - required module not found" % str(e)) + +DEFAULT_DEVICE = "/dev/sda" +SYSLOG_IDENTIFIER = "ssdmon" + +# Global logger instance +log = logger.Logger(SYSLOG_IDENTIFIER) + +def import_ssd_api(diskdev): + """ + Loads platform specific or generic ssd_mon module from source + Raises an ImportError exception if none of above available + + Returns: + Instance of the class with SSD API implementation (vendor or generic) + """ + + # try to load platform specific module + try: + platform_path, _ = device_info.get_paths_to_platform_and_hwsku_dirs() + platform_plugins_path = os.path.join(platform_path, "plugins") + sys.path.append(os.path.abspath(platform_plugins_path)) + from ssd_util import SsdUtil + except ImportError as e: + log.log_warning("Platform specific SsdMon module not found.") + + return SsdUtil(diskdev) + +def is_number(s): + try: + float(s) + return True + except ValueError: + return False + +# ==================== Entry point ==================== +def ssdmon(): + if os.geteuid() != 0: + print("Root privileges are required for this operation") + sys.exit(1) + + parser = argparse.ArgumentParser() + parser.add_argument("-d", "--device", help="Device name to show health info", default=DEFAULT_DEVICE) + parser.add_argument("-t", "--temperature", action="store_true", default=False, help="Show only temperature") + parser.add_argument("-j", "--health", action="store_true", default=False, help="Show only health") + + args = parser.parse_args() + + ssd = import_ssd_api(args.device) + + if args.temperature: + print(ssd.get_temperature()) + return + + if args.health: + print(ssd.get_health()) + return + + print("Device Model : {}".format(ssd.get_model())) + print("Firmware : {}".format(ssd.get_firmware())) + print("Serial : {}".format(ssd.get_serial())) + print("Health : {}{}".format(ssd.get_health(), "%" if is_number(ssd.get_health()) else "")) + print("Remain Life : {}{}".format(ssd.get_remaining_life(), "%" if is_number(ssd.get_remaining_life()) else "")) + print("Temperature : {}{}".format(ssd.get_temperature(), "C" if is_number(ssd.get_temperature()) else "")) + print("SATA Rate : {}".format(ssd.get_sata_rate())) + +if __name__ == '__main__': + ssdmon() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/tty_console.py b/platform/broadcom/sonic-platform-modules-micas/common/script/tty_console.py new file mode 100755 index 000000000000..4fae02f5128e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/tty_console.py @@ -0,0 +1,91 @@ +#!/usr/bin/python3 +# -*- coding: UTF-8 -*- + +import logging.handlers +import subprocess +import shlex +import time +import sys +import os +from platform_util import CompressedRotatingFileHandler, exec_os_cmd + +console_file = "/dev/ttyS1" +console_logfile = "/var/log/bmc-console.log" +MAX_LOG_BYTES = 20 * 1024 * 1024 +BACKUP_COUNT = 9 + +READ_SIZE = 1024 + +logger = logging.getLogger("cpu_monitor_bmc") +logger.setLevel(logging.DEBUG) +fh = CompressedRotatingFileHandler( + console_logfile, + mode='a', + maxBytes=MAX_LOG_BYTES, + backupCount=BACKUP_COUNT, + encoding=None, + delay=0) +fh.setLevel(logging.DEBUG) + +formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s") +fh.setFormatter(formatter) +logger.addHandler(fh) + + +def tty_system_cmd(cmd, print_log=True): + if print_log: + logger.debug("command: %s", cmd) + status, output = exec_os_cmd(cmd) + logger.debug("command status %s", status) + logger.debug("command output:\n%s", output) + else: + status, output = exec_os_cmd(cmd) + return status, output + + +if __name__ == '__main__': + try_times = 0 + while try_times < 3: + try_times = try_times + 1 + ret, log = tty_system_cmd("stty -F /dev/ttyS1 | grep 115200", True) + if len(log) != 0 and "115200" in log: + break + tty_system_cmd("stty -F /dev/ttyS1 115200", True) + if try_times > 1: + logger.error("The %d time try to set SONiC /dev/ttyS1 115200", try_times) + + if not os.path.exists(console_file): + logger.error("device %s not exist", console_file) + sys.exit(1) + + nopen = 3 + while nopen > 0: + try: + console_fd = os.open(console_file, os.O_RDONLY) + break + except Exception as e: + logger.error(e) + logger.error("open %s failed", console_file) + nopen = nopen - 1 + time.sleep(1) + if nopen == 0: + sys.exit(1) + + try: + tmp_read = "" + while True: + dev_read = os.read(console_fd, READ_SIZE) + dev_read = str(dev_read, encoding='utf-8') + if len(dev_read) == 1 and dev_read == "\n": + continue + if dev_read[len(dev_read) - 1] == '\n': + tmp_read = tmp_read + dev_read[0:(len(dev_read) - 1)] + logger.info(tmp_read) + tmp_read = "" + else: + tmp_read = tmp_read + dev_read + + except Exception as e: + if console_fd is not None: + os.close(console_fd) + logger.error(e) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/upgrade.py b/platform/broadcom/sonic-platform-modules-micas/common/script/upgrade.py new file mode 100755 index 000000000000..1b2523198ed8 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/upgrade.py @@ -0,0 +1,991 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import sys +import os +import time +import syslog +import signal +import click +from platform_util import get_value, set_value, exec_os_cmd, exec_os_cmd_log +from platform_config import UPGRADE_SUMMARY, WARM_UPGRADE_STARTED_FLAG +from warm_upgrade import WarmBasePlatform + + +############################# Error code defined ############################# +ERR_FW_CHECK_CPLD_UPGRADE = -601 # "Failed to check the device CPLD information" +ERR_FW_CHECK_FPGA_UPGRADE = -602 # "Failed to check the device FPGA information" +ERR_FW_MATCH_CPLD_UPGRADE = -603 # "Not found upgrade CPLD file." +ERR_FW_MATCH_FPGA_UPGRADE = -604 # "Not found upgrade FPGA file." +ERR_FW_SAMEVER_CPLD_UPGRADE = -605 # "The CPLD version in device is same" +ERR_FW_SAMEVER_FPGA_UPGRADE = -606 # "The FPGA version in device is same" +ERR_FW_DO_CPLD_UPGRADE = -607 # "Doing upgrade CPLD is failed." +ERR_FW_DO_FPGA_UPGRADE = -608 # "Doing upgrade FPGA is failed." +ERR_FW_UPGRADE = -609 # "Failed to upgrade firmware" +FIRMWARE_PROGRAM_EXEC_ERR = -610 # "Firmware program run error!" +ERR_FW_FILE_FOUND = -701 # "Failed to find upgrade file" +ERR_FW_HEAD_PARSE = -702 # "Failed to parse upgrade firmware head info" +ERR_FW_CONFIG_FOUND = -703 # "Failed to find config item" +ERR_FW_NOSUPPORT_HOT = -704 # "No support hot upgrade" +ERR_FW_CHECK_SIZE = -705 # "Failed to check file size" +ERR_FW_DEVICE_ACCESS = -706 # "Failed to access device" +ERR_FW_NO_FILE_SUCCESS = -707 # "No files were successfully upgraded" +ERR_FW_CARD_ABSENT = -708 # "The subcard not present" +ERR_FW_HEAD_CHECK = -709 # "Failed to check head info" +ERR_FW_FOOL_PROOF = -710 # "Failed to fool proof verification" +ERR_FW_RAISE_EXCEPTION = -711 # Code raise exception +ERR_FW_INVALID_PARAM = -712 # Invalid parameter +ERR_FW_UNZIP_FAILED = -713 # Unzip firmware failed + +FIRMWARE_SUCCESS = 0 +CHECK_OK = 0 + + +UPGRADE_DEBUG_FILE = "/etc/.upgrade_debug_flag" +UPGRADE_FILE_DIR = "/tmp/firmware/" + +UPGRADEDEBUG = 1 + +debuglevel = 0 + +COLD_UPGRADE = 1 +WARM_UPGRADE = 2 +TEST_UPGRADE = 3 +BMC_UPGRADE = 4 + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def debug_init(): + global debuglevel + if os.path.exists(UPGRADE_DEBUG_FILE): + debuglevel = debuglevel | UPGRADEDEBUG + else: + debuglevel = debuglevel & ~(UPGRADEDEBUG) + + +def upgradewarninglog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("UPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +def upgradecriticallog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("UPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_CRIT, s) + + +def upgradeerror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("UPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def upgradedebuglog(s): + # s = s.decode('utf-8').encode('gb2312') + if UPGRADEDEBUG & debuglevel: + syslog.openlog("UPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def signal_init(): + signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl+c signal + signal.signal(signal.SIGTERM, signal.SIG_IGN) # ignore kill signal + signal.signal(signal.SIGTSTP, signal.SIG_IGN) # ignore ctrl+z signal + + +class BasePlatform(): + + def __init__(self): + self.upgrade_param = UPGRADE_SUMMARY.copy() + self.devtype = self.upgrade_param.get('devtype', None) + self.max_slot_num = self.upgrade_param.get("max_slot_num", 0) + self.head_info_config = {} + self.slot_config = {} + self.cold_chain_config = {} + self.subtype = None + self.chain = None + self.filetype = None + self.DEVTYPE = None + self.SUBTYPE = '0' + self.TYPE = None + self.CHAIN = None + self.CHIPNAME = None + self.VERSION = None + self.FILETYPE = None + self.CRC = None + self.SUBTYPE_LIST = None + + def save_and_set_value(self, cfg_list): + for config in cfg_list: + ret, val = get_value(config) + if ret: + config["save_value"] = val + else: + upgradeerror(val) + return False, "get save value fail" + + set_val = config.get("set_value", None) + if set_val is None: + log = "save_and_set_value lack of set_val config" + upgradeerror(log) + return log + + gettype = config.get("gettype", None) + set_cmd = config.get("set_cmd", None) + if gettype == "cmd": + if set_cmd is None: + log = "save_and_set_value lack of set_cmd config" + upgradeerror(log) + return False, log + config["cmd"] = set_cmd % set_val + upgradedebuglog("save_and_set_value modify set cmd to %s" % config["cmd"]) + else: + config["value"] = set_val + upgradedebuglog("save_and_set_value modify set val to %s" % config["value"]) + + ret, log = set_value(config) + if ret is False: + upgradeerror(log) + return False, log + return True, "save and set value success" + + def recover_save_value(self, cfg_list): + total_err = 0 + for config in cfg_list: + upgradedebuglog("config: %s, recover save value" % config) + val = config.get("save_value", None) + if val is None: + upgradeerror("recover_save_value lack of save_value config") + total_err -= 1 + continue + gettype = config.get("gettype", None) + set_cmd = config.get("set_cmd", None) + if gettype == "cmd": + config["cmd"] = set_cmd % val + upgradedebuglog("recover_save_value modify set cmd to %s" % config["cmd"]) + else: + config["value"] = val + upgradedebuglog("recover_save_value modify set val to %s" % config["value"]) + + ret, log = set_value(config) + if ret is False: + upgradeerror("recover save value write failed, log: %s" % log) + total_err -= 1 + else: + upgradedebuglog("recover save value success") + if total_err < 0: + return False, "recover save value failed" + return True, "recover save value success" + + def check_slot_present(self, slot_present_config): + presentbit = slot_present_config.get('presentbit') + ret, value = get_value(slot_present_config) + if ret is False: + return "NOT OK" + if isinstance(value, str): + val_t = int(value, 16) + else: + val_t = value + val_t = (val_t & (1 << presentbit)) >> presentbit + if val_t != slot_present_config.get('okval'): + status = "ABSENT" + else: + status = "PRESENT" + return status + + def linecard_present_check(self, slot_present_config): + present_status = self.check_slot_present(slot_present_config) + if present_status == "NOT OK": + return ERR_FW_DEVICE_ACCESS, "get slot present status failed." + if present_status == "ABSENT": + return ERR_FW_CARD_ABSENT, "slot absent" + return CHECK_OK, "slot present" + + def subprocess_warm_upgrade(self, config, file, main_type, sub_type, slot): + dev_name = config.get("name", None) + status, output = self.subprocess_firmware_upgrade(config, file, main_type, sub_type, slot) + if status is False: + upgradeerror("%s warm upgrade failed" % dev_name) + return False, output + command = "warm_upgrade.py %s 0x%x 0x%x %s %s %s" % (file, main_type, sub_type, slot, self.filetype, self.chain) + upgradedebuglog("warm upgrade cmd: %s" % command) + if os.path.exists(UPGRADE_DEBUG_FILE): + status, output = exec_os_cmd_log(command) + else: + status, output = exec_os_cmd(command) + if status: + upgradeerror("%s warm upgrade failed" % dev_name) + return False, output + upgradedebuglog("%s warm upgrade success" % dev_name) + return True, "upgrade success" + + def do_fw_upg_init_cmd(self, dev_name, init_cmd_list): + # pre operation + try: + for init_cmd_config in init_cmd_list: + ret, log = set_value(init_cmd_config) + if ret is False: + upgradeerror("%s do init cmd: %s failed, msg: %s" % (dev_name, init_cmd_config, log)) + return False, log + msg = "%s firmware init cmd all set success" % dev_name + upgradedebuglog(msg) + return True, msg + except Exception as e: + return False, str(e) + + def do_fw_upg_finish_cmd(self, dev_name, finish_cmd_list): + # end operation + ret = 0 + for finish_cmd_config in finish_cmd_list: + ret_t, log = set_value(finish_cmd_config) + if ret_t is False: + upgradeerror("%s do finish cmd: %s failed, msg: %s" % (dev_name, finish_cmd_config, log)) + ret = -1 + if ret != 0: + msg = "%s firmware finish cmd exec failed" % dev_name + upgradeerror(msg) + return False, msg + msg = "%s firmware finish cmd all set success" % dev_name + upgradedebuglog(msg) + return True, msg + + def subprocess_firmware_upgrade(self, config, file, main_type, sub_type, slot): + dev_name = config.get("name", None) + init_cmd_list = config.get("init_cmd", []) + finish_cmd_list = config.get("finish_cmd", []) + try: + ret, log = self.do_fw_upg_init_cmd(dev_name, init_cmd_list) + if ret is False: + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, log + time.sleep(0.5) # delay 0.5s after execute init_cmd + command = "firmware_upgrade %s 0x%x 0x%x %s" % (file, main_type, sub_type, slot) + upgradedebuglog("firmware upgrade cmd: %s" % command) + if os.path.exists(UPGRADE_DEBUG_FILE): + status, output = exec_os_cmd_log(command) + else: + status, output = exec_os_cmd(command) + if status: + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + upgradeerror("%s firmware upgrade failed, msg: %s" % (dev_name, output)) + return False, output + upgradedebuglog("%s firmware upgrade success" % dev_name) + ret, log = self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + if ret is False: + return False, log + return True, "upgrade success" + except Exception as e: + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, str(e) + + def subprocess_test_upgrade(self, config, file, main_type, sub_type, slot): + dev_name = config.get("name", None) + init_cmd_list = config.get("init_cmd", []) + finish_cmd_list = config.get("finish_cmd", []) + try: + ret, log = self.do_fw_upg_init_cmd(dev_name, init_cmd_list) + if ret is False: + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, log + time.sleep(0.5) # delay 0.5s after execute init_cmd + command = "firmware_upgrade test %s 0x%x 0x%x %s" % (file, main_type, sub_type, slot) + upgradedebuglog("firmware upgrade cmd: %s" % command) + if os.path.exists(UPGRADE_DEBUG_FILE): + status, output = exec_os_cmd_log(command) + else: + status, output = exec_os_cmd(command) + if status: + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + upgradeerror("%s test upgrade failed, msg: %s" % (dev_name, output)) + return False, output + upgradedebuglog("%s test upgrade success" % dev_name) + ret, log = self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + if ret is False: + return False, log + return True, "upgrade success" + except Exception as e: + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, str(e) + + def subprocess_bmc_upgrade(self, config, file, chip_select, erase_type): + dev_name = config.get("name", None) + init_cmd_list = config.get("init_cmd", []) + finish_cmd_list = config.get("finish_cmd", []) + save_set_reg_list = config.get("save_set_reg", []) + try: + # save and set reg + ret, log = self.save_and_set_value(save_set_reg_list) + if ret is False: + upgradeerror(log) + self.recover_save_value(save_set_reg_list) + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, log + upgradedebuglog("%s save and set cmd all set success" % dev_name) + time.sleep(0.5) # delay 0.5s after execute save and set reg + + # pre operation + ret, log = self.do_fw_upg_init_cmd(dev_name, init_cmd_list) + if ret is False: + self.recover_save_value(save_set_reg_list) + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, log + + upgradedebuglog("%s bmc init cmd all set success" % dev_name) + time.sleep(0.5) # delay 0.5s after execute init_cmd + + command = "fw_upgrade upgrade %s %s %s" % (file, chip_select, erase_type) + upgradedebuglog("fw_upgrade upgrade cmd: %s" % command) + status, output = exec_os_cmd_log(command) + if status: + upgradeerror("%s bmc upgrade failed" % dev_name) + self.recover_save_value(save_set_reg_list) + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, output + upgradedebuglog("%s bmc upgrade success" % dev_name) + + ret1, log1 = self.recover_save_value(save_set_reg_list) + if ret1 is False: + upgradeerror("bmc upgrade recover save value failed, msg: %s" % log1) + ret2, log2 = self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + if ret2 is False: + upgradeerror("bmc upgrade do finish command failed, msg: %s" % log2) + if ret1 is False or ret2 is False: + return False, "bmc upgrade do recover save value or finish command failed" + return True, "upgrade success" + + except Exception as e: + self.recover_save_value(save_set_reg_list) + self.do_fw_upg_finish_cmd(dev_name, finish_cmd_list) + return False, str(e) + + def file_head_param_check(self, head_info_config): + try: + self.DEVTYPE = head_info_config.get('DEVTYPE', None) + self.SUBTYPE = head_info_config.get('SUBTYPE', '0') + self.TYPE = head_info_config.get('TYPE', None) + self.CHAIN = head_info_config.get('CHAIN', None) + self.CHIPNAME = head_info_config.get('CHIPNAME', None) + self.VERSION = head_info_config.get('VERSION', None) + self.FILETYPE = head_info_config.get('FILETYPE', None) + self.CRC = head_info_config.get('CRC', None) + + if self.devtype != int(self.DEVTYPE, 16): + return ERR_FW_HEAD_CHECK, ("no support %s devtype" % self.DEVTYPE) + + if self.SUBTYPE is not None: + self.SUBTYPE_LIST = self.SUBTYPE.split(',') + self.SUBTYPE_LIST = [int(tmp_subtype, base=16) for tmp_subtype in self.SUBTYPE_LIST] + if len(self.SUBTYPE) != 0 and self.subtype not in self.SUBTYPE_LIST: + return ERR_FW_HEAD_CHECK, ("no support %s SUBTYPE" % self.SUBTYPE) + + if len(self.CHAIN) == 0 or len(self.FILETYPE) == 0: + return ERR_FW_HEAD_CHECK, ("CHAIN:%s, FILETYPE:%s get failed" % (self.CHAIN, self.FILETYPE)) + self.chain = int(self.CHAIN) + self.filetype = self.FILETYPE + upgradedebuglog("file head param: devtype:0x%x, subtype:0x%x, chain:%s, filetype:%s" + % (self.devtype, self.subtype, self.chain, self.filetype)) + return CHECK_OK, "SUCCESS" + except Exception as e: + return ERR_FW_RAISE_EXCEPTION, str(e) + + def parse_file_head(self, file): + try: + self.head_info_config = {} + with open(file, 'r', errors='ignore') as fd: + rdbuf = fd.read() + upgradedebuglog("start parse upgrade file head") + file_head_start = rdbuf.index('FILEHEADER(\n') # ponit to F + file_head_start += rdbuf[file_head_start:].index('\n') # ponit to \n + file_head_end = rdbuf.index(')\n') + header_buf = rdbuf[file_head_start + 1: file_head_end - 1] + upgradedebuglog("upgrade file head find FILEHEADER") + for line in header_buf.split('\n'): + head_list = line.split('=', 1) + head_key = head_list[0] + head_val = head_list[1] + self.head_info_config[head_key] = head_val + upgradedebuglog("file: %s head_info_config: %s" % (file, self.head_info_config)) + return CHECK_OK, "SUCCESS" + except Exception as e: + msg = "parse %s head failed, msg: %s" % (file, str(e)) + upgradeerror(msg) + return ERR_FW_RAISE_EXCEPTION, msg + + def get_file_size_k(self, file): + fsize = os.path.getsize(file) + fsize = fsize / float(1024) + return round(fsize, 2) + + def get_device_model(self, conf): + ret, val = get_value(conf) + if ret is False: + msg = "get device model failed, msg: %s" % val + return False, msg + decode_val = conf.get("decode") + if decode_val is None: + return True, val + for k, v in decode_val.items(): + if val == v: + return True, k + msg = "device model decode error, val: %s" % val + return False, msg + + def upgrade_fool_proofing(self, conf): + try: + status, dev_model = self.get_device_model(conf) + if status is False: + msg = "upgrade fool proofing get device model failed, msg: %s" % dev_model + upgradeerror(msg) + return False, msg + upgradedebuglog("get device model success, device model: %s" % dev_model) + if dev_model != self.VERSION: + msg = "upgrade fool proofing failed, device model: %s, upgrade file version: %s" % ( + dev_model, self.VERSION) + upgradedebuglog(msg) + return False, msg + msg = "upgrade fool proofing pass, device model: %s, upgrade file version: %s" % (dev_model, self.VERSION) + upgradedebuglog(msg) + return True, msg + except Exception as e: + upgradeerror(str(e)) + return False, str(e) + + def upgrading(self, config, file, devtype, subtype, slot, option_flag, erase_type=None): + dev_name = config.get("name", None) + if option_flag == COLD_UPGRADE: + status, output = self.subprocess_firmware_upgrade(config, file, devtype, subtype, slot) + elif option_flag == WARM_UPGRADE: + status, output = self.subprocess_warm_upgrade(config, file, devtype, subtype, slot) + elif option_flag == TEST_UPGRADE: + status, output = self.subprocess_test_upgrade(config, file, devtype, subtype, slot) + elif option_flag == BMC_UPGRADE: + status, output = self.subprocess_bmc_upgrade(config, file, slot, erase_type) + else: + log = "%s set error option flag" % dev_name + upgradeerror(log) + return False, log + + if status is False: + upgradeerror("%s upgrade failed" % dev_name) + return False, output + upgradedebuglog("%s upgrade success" % dev_name) + return True, "upgrade success" + + def initial_check(self, file, slot, upg_type): + try: + upgradedebuglog("BasePlatform initial_check, file: %s, slot: %s, upg_type: %s" % + (file, slot, upg_type)) + + upgradedebuglog("do file exist check...") + if not os.path.isfile(file): + msg = "%s not found" % file + upgradedebuglog(msg) + return ERR_FW_FILE_FOUND, msg + upgradedebuglog("file exist check ok") + + slot_name = "slot%d" % slot + slot_config = self.upgrade_param.get(slot_name, {}) + slot_present_config = slot_config.get("present", {}) + if len(slot_present_config) != 0: + upgradedebuglog("do %s present check..." % slot_name) + ret, log = self.linecard_present_check(slot_present_config) + if ret != CHECK_OK: + msg = "check %s present error, msg: %s" % (slot_name, log) + upgradedebuglog(msg) + return ret, msg + upgradedebuglog("%s present check ok" % slot_name) + + upgradedebuglog("do file head parse...") + self.subtype = slot_config.get("subtype", 0) + ret, log = self.parse_file_head(file) + if ret != CHECK_OK: + return ret, log + upgradedebuglog("file head parse success") + + upgradedebuglog("do file head check...") + ret, log = self.file_head_param_check(self.head_info_config) + if ret != CHECK_OK: + msg = "file: %s, head check failed, msg: %s" % (file, log) + upgradedebuglog(msg) + return ret, msg + upgradedebuglog("file head check ok") + + upgradedebuglog("get upgrade chain config...") + filetype_config = slot_config.get(self.filetype, {}) + if len(filetype_config) == 0: + msg = "file: %s filetype: %s no support" % (file, self.filetype) + upgradedebuglog(msg) + return ERR_FW_CONFIG_FOUND, msg + chain_num = "chain%s" % self.chain + chain_config = filetype_config.get(chain_num, {}) + if len(chain_config) == 0: + msg = "file: %s get %s config failed" % (file, chain_num) + upgradedebuglog(msg) + return ERR_FW_CONFIG_FOUND, msg + self.cold_chain_config = chain_config + upgradedebuglog("get %s filetype: %s %s config success" % (slot_name, self.filetype, chain_num)) + + fool_proofing = chain_config.get("fool_proofing") + if fool_proofing is not None: + upgradedebuglog("do fool proofing check...") + status, log = self.upgrade_fool_proofing(fool_proofing) + if status is False: + msg = "upgrade fool proofing check failed, msg: %s" % log + upgradedebuglog(msg) + return ERR_FW_FOOL_PROOF, msg + upgradedebuglog("do fool proofing check ok") + + if upg_type == WARM_UPGRADE: + upgradedebuglog("do support warm upgrade check...") + if chain_config.get("is_support_warm_upg", 0) != 1: + msg = "file: %s %s chain config not support warm upgrade" % (file, slot_name) + upgradedebuglog(msg) + return ERR_FW_NOSUPPORT_HOT, msg + upgradedebuglog("file: %s %s chain config support warm upgrade" % (file, slot_name)) + + filesizecheck = chain_config.get("filesizecheck", 0) + if filesizecheck != 0: + upgradedebuglog("do file size check...") + file_size = self.get_file_size_k(file) + if file_size > filesizecheck: + msg = "file: %s size: %s exceed %s" % (file, file_size, filesizecheck) + upgradedebuglog(msg) + return ERR_FW_CHECK_SIZE, msg + msg = "file: %s size: %s check ok" % (file, file_size) + upgradedebuglog(msg) + + msg = "file: %s slot: %s upgrade type: %s check ok" % (file, slot, upg_type) + upgradedebuglog(msg) + return CHECK_OK, msg + except Exception as e: + return ERR_FW_RAISE_EXCEPTION, str(e) + + def do_upgrade(self, file, slot, upg_type): + try: + ret, log = self.initial_check(file, slot, upg_type) + if ret != CHECK_OK: + return ret, log + + # start upgrading + upgradedebuglog("start upgrading") + ret, log = self.upgrading(self.cold_chain_config, file, self.devtype, self.subtype, slot, upg_type) + if ret is False: + upgradeerror("upgrade failed") + return ERR_FW_UPGRADE, log + upgradedebuglog("upgrade success") + return FIRMWARE_SUCCESS, "SUCCESS" + except Exception as e: + return ERR_FW_RAISE_EXCEPTION, str(e) + + def do_pre_check(self, conf): + ret, val = get_value(conf) + if ret is False: + msg = "pre check get value failed, msg: %s" % val + return False, msg + ok_val = conf.get("ok_val") + if val == ok_val: + msg = "pre check success, ok_val: %s, get value: %s" % (ok_val, val) + return True, msg + msg = "pre check failed, ok_val: %s, get value: %s" % (ok_val, val) + return False, msg + + def do_test(self, device, slot): + try: + # slot present check + slot_name = "slot%d" % slot + slot_config = self.upgrade_param.get(slot_name, {}) + slot_present_config = slot_config.get("present", {}) + if len(slot_present_config) != 0: + ret, log = self.linecard_present_check(slot_present_config) + if ret != CHECK_OK: + msg = "check %s present error, msg: %s" % (slot_name, log) + upgradedebuglog(msg) + return ret, msg + upgradedebuglog("%s present" % slot_name) + + # get list of devices to be tested + test_config = slot_config.get("TEST", {}) + if len(test_config) == 0: + return ERR_FW_CONFIG_FOUND, "test config no found" + device_list = test_config.get(device, []) + if len(device_list) == 0: + return ERR_FW_CONFIG_FOUND, ("logic device %s test config list not found" % device) + + # test_file existence check + for test_config in device_list: + chain_num = test_config.get("chain", None) + test_file = test_config.get("file", None) + display_name = test_config.get("display_name", None) + if chain_num is None or test_file is None or display_name is None: + log = "test_config:%s lack of config" % test_config + upgradeerror(log) + return ERR_FW_CONFIG_FOUND, log + if not os.path.isfile(test_file): + return ERR_FW_FILE_FOUND, ("%s not found" % test_file) + + # start testing + RET = 0 + pre_check_failed = 0 + pre_check_failed_summary = "" + failed_summary = "chain test failed.\ntest fail chain:" + success_summary = "test success chain:" + for test_config in device_list: + chain_num = test_config.get("chain", None) + test_file = test_config.get("file", None) + display_name = test_config.get("display_name", None) + pre_check_conf = test_config.get("pre_check", None) + if pre_check_conf is not None: + status, msg = self.do_pre_check(pre_check_conf) + if status is False: + pre_check_failed += 1 + log = "\nchain:%d, name:%s, pre check failed, msg: %s" % (chain_num, display_name, msg) + upgradedebuglog(log) + pre_check_failed_summary += log + continue + upgradedebuglog("chain:%d, name:%s, pre check ok, msg: %s" % (chain_num, display_name, msg)) + ret, log = self.do_upgrade(test_file, slot, TEST_UPGRADE) + if ret != FIRMWARE_SUCCESS: + RET = -1 + upgradeerror("chain:%d, name:%s test failed" % (chain_num, display_name)) + failed_summary += "\n chain:%d, name:%s;" % (chain_num, display_name) + else: + upgradedebuglog("chain:%d, name:%s test success" % (chain_num, display_name)) + success_summary += "\n chain:%d, name:%s;" % (chain_num, display_name) + if RET != 0: + return ERR_FW_UPGRADE, failed_summary + if pre_check_failed == len(device_list): + return ERR_FW_NO_FILE_SUCCESS, failed_summary + pre_check_failed_summary + return FIRMWARE_SUCCESS, success_summary + except Exception as e: + return ERR_FW_RAISE_EXCEPTION, str(e) + + def do_test_main(self, device, slot): + print("+================================+") + print("|Doing upgrade test, please wait.|") + ret, log = self.do_test(device, slot) + if ret == FIRMWARE_SUCCESS: + print("| test succeeded! |") + print("+================================+") + print(log) + sys.exit(0) + else: + print("| test failed! |") + print("+================================+") + print("FAILED REASON:") + print(log) + sys.exit(1) + + def do_bmc_upgrade_main(self, file, chip_select, erase_type): + bmc_upgrade_config = self.upgrade_param.get("BMC", {}) + ret, log = self.upgrading(bmc_upgrade_config, file, self.devtype, + self.subtype, chip_select, BMC_UPGRADE, erase_type) + if ret is True: + print("===========upgrade succeeded!============") + sys.exit(0) + else: + print("============upgrade failed!==============") + print("FAILED REASON:") + print("%s" % log) + sys.exit(1) + + +class FileUpg(object): + def __init__(self, config, file, devtype, subtype, slot, filetype, chain, upg_type): + self.config = config + self.file = file + self.devtype = devtype + self.subtype = subtype + self.slot = slot + self.filetype = filetype + self.chain = chain + self.upg_type = upg_type + + def __repr__(self): + return "file:%s slot:%d" % (self.file, self.slot) + + +class FwUpg(object): + def __init__(self): + self.upg_platform = BasePlatform() + self.warm_upg_platform = WarmBasePlatform() + self.max_slot_num = self.upg_platform.max_slot_num + self.file_list = [] + + def do_file_refresh(self, fw_upg_instance): + fw_upg_config = fw_upg_instance.config + fw_upg_file = fw_upg_instance.file + fw_upg_devtype = fw_upg_instance.devtype + fw_upg_subype = fw_upg_instance.subtype + fw_upg_slot = fw_upg_instance.slot + fw_upg_filetype = fw_upg_instance.filetype + fw_upg_chain = fw_upg_instance.chain + dev_name = fw_upg_config.get("name", None) + upgradedebuglog("%s start warm upgrade, file: %s, devtype:0x%x, subype: 0x%x, slot: %d, filetype: %s, chain: %d" % + (dev_name, fw_upg_file, fw_upg_devtype, fw_upg_subype, fw_upg_slot, fw_upg_filetype, fw_upg_chain)) + status, output = self.warm_upg_platform.do_warmupgrade(fw_upg_file, fw_upg_devtype, fw_upg_subype, fw_upg_slot, + fw_upg_filetype, fw_upg_chain) + if status is False: + upgradeerror("%s warm upgrade failed, msg: %s" % (dev_name, output)) + return False, output + upgradedebuglog("%s warm upgrade success" % dev_name) + return True, "upgrade success" + + def do_refresh(self): + try: + exec_os_cmd("touch %s" % WARM_UPGRADE_STARTED_FLAG) + exec_os_cmd("sync") + + # stop upper layer services access + ret, log = self.warm_upg_platform.stop_services_access() + if ret is False: + upgradeerror("stop upper layer services access failed") + upgradeerror(log) + return ERR_FW_UPGRADE, log + upgradedebuglog("stop upper layer services access success") + + for file_instance in self.file_list: + file_info = repr(file_instance) + ret, log = self.do_file_refresh(file_instance) + if ret is False: + msg = "%s refresh failed, ret:%s, \n log:%s." % (file_info, ret, log) + upgradeerror(msg) + return ERR_FW_UPGRADE, msg + upgradedebuglog("%s refresh success." % file_info) + msg = "all files refresh success." + return FIRMWARE_SUCCESS, msg + except Exception as e: + msg = "do warm upg exception happend. log:%s" % str(e) + upgradeerror(msg) + return ERR_FW_UPGRADE, msg + finally: + self.warm_upg_platform.start_services_access() + if os.path.isfile(WARM_UPGRADE_STARTED_FLAG): + exec_os_cmd("rm -rf %s" % WARM_UPGRADE_STARTED_FLAG) + exec_os_cmd("sync") + + def do_file_cold_upg(self, fw_upg_instance): + try: + upgradedebuglog("start cold upgrade") + fw_upg_config = fw_upg_instance.config + fw_upg_file = fw_upg_instance.file + fw_upg_devtype = fw_upg_instance.devtype + fw_upg_subype = fw_upg_instance.subtype + fw_upg_slot = fw_upg_instance.slot + ret, log = self.upg_platform.upgrading( + fw_upg_config, fw_upg_file, fw_upg_devtype, fw_upg_subype, fw_upg_slot, COLD_UPGRADE) + if ret is False: + upgradeerror("cold upgrade %s slot%d failed, log:%s" % (fw_upg_file, fw_upg_slot, log)) + return ERR_FW_UPGRADE, log + log = "cold upgrade %s slot%d success" % (fw_upg_file, fw_upg_slot) + upgradedebuglog(log) + return FIRMWARE_SUCCESS, log + except Exception as e: + msg = "do cold upg exception happend. log:%s" % str(e) + upgradeerror(msg) + return ERR_FW_UPGRADE, msg + + def do_file_init_check(self, file_path, slot, upg_type): + upgradedebuglog("do_file_init_check, file_path: %s, slot: %s, upg_type: %s" % (file_path, slot, upg_type)) + + if slot is None: # traverse all slots + for i in range(0, self.max_slot_num + 1): + ret, log = self.upg_platform.initial_check(file_path, i, upg_type) + if ret != CHECK_OK: + upgradedebuglog( + "file: %s, slot%d initial check not ok, ret: %d, msg: %s" % + (file_path, i, ret, log)) + accept_error = (ERR_FW_CARD_ABSENT, ERR_FW_HEAD_CHECK, ERR_FW_FOOL_PROOF) + if ret in accept_error: + msg = "file: %s, slot%d initial check ret: %d, acceptable error." % (file_path, i, ret) + upgradedebuglog(msg) + continue + return ret, log + file_instance = FileUpg(self.upg_platform.cold_chain_config, file_path, self.upg_platform.devtype, + self.upg_platform.subtype, i, self.upg_platform.filetype, self.upg_platform.chain, upg_type) + self.file_list.append(file_instance) + else: + slot = int(slot, 10) + ret, log = self.upg_platform.initial_check(file_path, slot, upg_type) + if ret != CHECK_OK: + msg = "file: %s, slot%d initial check not ok, ret: %d, msg: %s" % (file_path, slot, ret, log) + return ret, msg + file_instance = FileUpg(self.upg_platform.cold_chain_config, file_path, self.upg_platform.devtype, + self.upg_platform.subtype, slot, self.upg_platform.filetype, self.upg_platform.chain, upg_type) + self.file_list.append(file_instance) + msg = "file: %s all slots init check ok" % file_path + return CHECK_OK, msg + + def do_dir_init_check(self, path, slot, upg_type): + for root, dirs, names in os.walk(path): + # root: directory absolute path + # dirs: folder path collection under directory + # names: file path collection under directory + for filename in names: + # file_path is file absolute path + file_path = os.path.join(root, filename) + ret, log = self.do_file_init_check(file_path, slot, upg_type) + if ret != CHECK_OK: + return ret, log + msg = "all files in dir have been check ok" + upgradedebuglog(msg) + return CHECK_OK, msg + + def do_fw_upg(self, path, slot, upg_type): + match_zip_file_flag = False + try: + upgradedebuglog("do_fw_upg, path: %s, slot: %s, upg_type: %s" % (path, slot, upg_type)) + if slot is not None and not slot.isdigit(): + msg = "invalid slot param: %s" % slot + upgradeerror(msg) + return ERR_FW_INVALID_PARAM, msg + + upgradedebuglog("start init check") + if os.path.isfile(path) and path.endswith(".zip"): + upgradedebuglog("firmware upgrade via compressed package: %s" % path) + # remove origin firmware upgrade file + exec_os_cmd("rm -rf %s" % UPGRADE_FILE_DIR) + cmd = "unzip -o %s -d /tmp/" % path + if os.path.exists(UPGRADE_DEBUG_FILE): + status, output = exec_os_cmd_log(cmd) + else: + status, output = exec_os_cmd(cmd) + if status: + msg = "unzip %s failed, log: %s" % (path, output) + upgradeerror(msg) + return ERR_FW_UNZIP_FAILED, msg + match_zip_file_flag = True + path = UPGRADE_FILE_DIR + + if os.path.isdir(path): + ret, msg = self.do_dir_init_check(path, slot, upg_type) + elif os.path.isfile(path): + ret, msg = self.do_file_init_check(path, slot, upg_type) + else: + ret = ERR_FW_FILE_FOUND + msg = "path: %s not found" % path + upgradeerror(msg) + + if ret != CHECK_OK: + return ret, msg + + # self.file_list is a collection of all check ok files + if len(self.file_list) == 0: + msg = "all file upgrade check not be satisfied." + upgradeerror(msg) + return ERR_FW_NO_FILE_SUCCESS, msg + + SUCCUSS_FILE_SUMMARY = "SUCCESS FILE: \n" + # file cold upgrade + upgradedebuglog("start all files cold upgrade") + for file_instance in self.file_list: + file_info = repr(file_instance) + ret, log = self.do_file_cold_upg(file_instance) + if ret != FIRMWARE_SUCCESS: + msg = "%s cold upgrade failed, ret:%d, \n log:\n%s." % (file_info, ret, log) + upgradeerror(msg) + return ret, msg + SUCCUSS_FILE_SUMMARY += "%s \n" % file_info + upgradedebuglog("%s cold upgrade success." % file_info) + + # file refresh upgrade + if upg_type == WARM_UPGRADE: + upgradedebuglog("start all files refresh upgrade") + ret, log = self.do_refresh() + if ret != FIRMWARE_SUCCESS: + return ret, log + + msg = "all file upgrade success" + upgradedebuglog(msg) + return FIRMWARE_SUCCESS, SUCCUSS_FILE_SUMMARY + except Exception as e: + msg = "do dir upgrade exception happend. log: %s" % str(e) + upgradeerror(msg) + return ERR_FW_UPGRADE, msg + finally: + if match_zip_file_flag is True: + exec_os_cmd("rm -rf %s" % UPGRADE_FILE_DIR) + + def fw_upg(self, path, slot, upg_type): + print("+================================+") + print("| Doing upgrade, please wait... |") + ret, log = self.do_fw_upg(path, slot, upg_type) + if ret == FIRMWARE_SUCCESS: + print("| upgrade succeeded! |") + print("+================================+") + print(log) + sys.exit(0) + else: + print("| upgrade failed! |") + print("+================================+") + print("FAILED REASON:") + print("%s" % log) + sys.exit(1) + + +@click.group(cls=AliasedGroup, context_settings=CONTEXT_SETTINGS) +def main(): + '''upgrade script''' + + +# cold upgrade +@main.command() +@click.argument('file_name', required=True) +@click.argument('slot_num', required=False, default=None) +def cold(file_name, slot_num): + '''cold upgrade''' + fwupg = FwUpg() + fwupg.fw_upg(file_name, slot_num, COLD_UPGRADE) + + +# warm upgrade +@main.command() +@click.argument('file_name', required=True) +@click.argument('slot_num', required=False, default=None) +def warm(file_name, slot_num): + '''warm upgrade''' + fwupg = FwUpg() + fwupg.fw_upg(file_name, slot_num, WARM_UPGRADE) + + +# test upgrade +@main.command() +@click.argument('device', required=True) +@click.argument('slot_num', required=True) +def test(device, slot_num): + '''upgrade test''' + platform = BasePlatform() + platform.do_test_main(device, int(slot_num)) + + +# BMC upgrade +@main.command() +@click.argument('file_name', required=True) +@click.argument('chip_select', required=False, default="2") +@click.argument('erase_type', required=False, default="full") +def bmc(file_name, chip_select, erase_type): + '''BMC upgrade''' + platform = BasePlatform() + platform.do_bmc_upgrade_main(file_name, chip_select, erase_type) + + +if __name__ == '__main__': + signal_init() + debug_init() + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/warm_upgrade.py b/platform/broadcom/sonic-platform-modules-micas/common/script/warm_upgrade.py new file mode 100755 index 000000000000..69a310faa606 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/warm_upgrade.py @@ -0,0 +1,514 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import sys +import os +import time +import syslog +import signal +import click +from platform_util import get_value, set_value, exec_os_cmd, exec_os_cmd_log +from platform_config import WARM_UPGRADE_PARAM + + +WARM_UPGRADE_DEBUG_FILE = "/etc/.warm_upgrade_debug_flag" + +WARMUPGRADEDEBUG = 1 + +debuglevel = 0 + +CONTEXT_SETTINGS = {"help_option_names": ['-h', '--help']} + + +class AliasedGroup(click.Group): + + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + matches = [x for x in self.list_commands(ctx) + if x.startswith(cmd_name)] + if not matches: + return None + if len(matches) == 1: + return click.Group.get_command(self, ctx, matches[0]) + ctx.fail('Too many matches: %s' % ', '.join(sorted(matches))) + return None + + +def debug_init(): + global debuglevel + if os.path.exists(WARM_UPGRADE_DEBUG_FILE): + debuglevel = debuglevel | WARMUPGRADEDEBUG + else: + debuglevel = debuglevel & ~(WARMUPGRADEDEBUG) + + +def warmupgradewarninglog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("WARMUPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_WARNING, s) + + +def warmupgradecriticallog(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("WARMUPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_CRIT, s) + + +def warmupgradeerror(s): + # s = s.decode('utf-8').encode('gb2312') + syslog.openlog("WARMUPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def warmupgradedebuglog(s): + # s = s.decode('utf-8').encode('gb2312') + if WARMUPGRADEDEBUG & debuglevel: + syslog.openlog("WARMUPGRADE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_DEBUG, s) + + +def subprocess_warm_upgrade(file, main_type, sub_type, slot): + command = "firmware_upgrade %s 0x%x 0x%x %s" % (file, main_type, sub_type, slot) + warmupgradedebuglog("warm upgrade firmware cmd:%s" % command) + if os.path.exists(WARM_UPGRADE_DEBUG_FILE): + return exec_os_cmd_log(command) + return exec_os_cmd(command) + + +def signal_init(): + signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl+c signal + signal.signal(signal.SIGTERM, signal.SIG_IGN) # ignore kill signal + signal.signal(signal.SIGTSTP, signal.SIG_IGN) # ignore ctrl+z signal + + +class RefreshUpgradeBase(object): + + def __init__(self, config, slot_num, devtype, subtype): + self._config = config + self._slot_num = slot_num + self._devtype = devtype + self._subtype = subtype + self.device_name = self._config.get("name", None) + self.refresh_file = self._config.get("refresh_file", None) + self.init_cmd_list = self._config.get("init_cmd", []) + self.save_set_reg_list = self._config.get("save_set_reg", []) + self.rw_recover_reg_list = self._config.get("rw_recover_reg", []) + self.after_upgrade_delay = self._config.get("after_upgrade_delay", None) + self.after_upgrade_delay_timeout = self._config.get("after_upgrade_delay_timeout", None) + self.refresh_finish_flag_check_config = self._config.get("refresh_finish_flag_check", None) + self.access_check_reg_config = self._config.get("access_check_reg", {}) + self.time_delay = 0 + self.finish_cmd_list = self._config.get("finish_cmd", []) + + def get_config(self): + pass + + def get_slot_num(self): + pass + + def save_value(self, cfg_list): + for config in cfg_list: + ret, val = get_value(config) + if ret: + config["value"] = val + else: + warmupgradeerror(val) + return False, val + return True, "save value success" + + def save_and_set_value(self, cfg_list): + for config in cfg_list: + ret, val = get_value(config) + if ret: + config["save_value"] = val + else: + warmupgradeerror(val) + return False, "get save value fail" + set_val = config.get("set_value", None) + if set_val is not None: + config["value"] = set_val + else: + warmupgradeerror("save_and_set_value lack of set_val config") + return False, "set value is not config" + ret, log = set_value(config) + if ret is False: + warmupgradeerror(log) + return False, log + return True, "save value success" + + def recover_value(self, cfg_list): + fail_flag = 0 + for config in cfg_list: + ret, log = set_value(config) + if ret is False: + fail_flag = -1 + warmupgradeerror("recover_value set_value failed, log: %s" % log) + if fail_flag != 0: + warmupgradeerror("recover_value write failed") + return False, "recover write failed" + return True, "recover write success" + + def recover_save_value(self, cfg_list): + total_err = 0 + for config in cfg_list: + val = config.get("save_value", None) + if val is None: + warmupgradeerror("recover_save_value lack of save_value config") + total_err -= 1 + continue + config["value"] = val + ret, log = set_value(config) + if ret is False: + total_err -= 1 + warmupgradeerror("recover save value write failed, log: %s" % log) + else: + warmupgradedebuglog("recover save value success") + if total_err < 0: + return False, "recover save value failed" + return True, "recover save value success" + + def do_fw_upg_init_cmd(self, init_cmd_list): + # pre operation + try: + for init_cmd_config in init_cmd_list: + ret, log = set_value(init_cmd_config) + if ret is False: + warmupgradeerror("%s do init cmd: %s failed, msg: %s" % (self.device_name, init_cmd_config, log)) + return False, log + msg = "%s warm upgrade init cmd all set success" % self.device_name + warmupgradedebuglog(msg) + return True, msg + except Exception as e: + return False, str(e) + + def do_fw_upg_finish_cmd(self, finish_cmd_list): + # end operation + total_err = 0 + for finish_cmd_config in finish_cmd_list: + ret_t, log = set_value(finish_cmd_config) + if ret_t is False: + warmupgradeerror("%s do finish cmd: %s failed, msg: %s" % (self.device_name, finish_cmd_config, log)) + total_err -= 1 + if total_err < 0: + msg = "%s warm upgrade finish cmd exec failed" % self.device_name + warmupgradeerror(msg) + return False, msg + msg = "%s warm upgrade finish cmd all set success" % self.device_name + warmupgradedebuglog(msg) + return True, msg + + def access_test(self, config): + # polling execute command + polling_cmd_list = config.get("polling_cmd", []) + for polling_cmd_config in polling_cmd_list: + ret, log = set_value(polling_cmd_config) + if ret is False: + warmupgradeerror(log) + return False + polling_delay = config.get("polling_delay", None) + if polling_delay is not None: + time.sleep(polling_delay) + + # record check val + check_val = config.get("value", None) + # write value + ret, log = set_value(config) + if ret is False: + warmupgradeerror(log) + return False + # read value + ret, val = get_value(config) + if ret is False: + warmupgradeerror(val) + return False + + # compare write and read val + warmupgradedebuglog("check_val:%s" % check_val) + warmupgradedebuglog("get_value:%s" % val) + if val != check_val: + warmupgradeerror("check_val:%s != get_value:%s" % (check_val, val)) + return False + return True + + def check_value(self, config): + # record check val + check_val = config.get("value", None) + ret, val = get_value(config) + if ret is False: + warmupgradeerror(val) + return False + # compare write and read val + warmupgradedebuglog("check_val:%s" % check_val) + warmupgradedebuglog("get_value:%s" % val) + if val != check_val: + warmupgradeerror("check_val:%s != get_value:%s" % (check_val, val)) + return False + return True + + def refresh_file_upgrade(self): + try: + warmupgradedebuglog("start %s warm upgrading" % self.device_name) + + # save and set reg + ret, log = self.save_and_set_value(self.save_set_reg_list) + if ret is False: + warmupgradeerror(log) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + warmupgradedebuglog("%s save and set reg cmd all set success" % self.device_name) + time.sleep(0.5) # delay 0.5s after execute save and set reg + + # pre operation + ret, log = self.do_fw_upg_init_cmd(self.init_cmd_list) + if ret is False: + warmupgradeerror(log) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + time.sleep(0.5) # delay 0.5s after execute init_cmd + + # save reg + ret, log = self.save_value(self.rw_recover_reg_list) + if ret is False: + warmupgradeerror("%s save reg failed" % self.device_name) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + warmupgradedebuglog("%s all reg save success" % self.device_name) + + # upgrade refresh file + if self.refresh_file is not None: + status, output = subprocess_warm_upgrade( + self.refresh_file, self._devtype, self._subtype, self._slot_num) + if status: + log = "%s refresh file upg failed, msg: %s" % (self.device_name, output) + warmupgradeerror(log) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + warmupgradedebuglog("%s refresh file upg success" % self.device_name) + + # delay the preset time after the upgrade is complete + if self.after_upgrade_delay is not None: + time.sleep(self.after_upgrade_delay) + + # check something in the timeout period + if self.after_upgrade_delay_timeout is not None: + while self.time_delay < self.after_upgrade_delay_timeout: + + # check refresh finish flag + if self.refresh_finish_flag_check_config is not None: + ret = self.check_value(self.refresh_finish_flag_check_config) + if ret is False: + time.sleep(1) + self.time_delay = self.time_delay + 1 + warmupgradedebuglog("doing refresh_finish_flag_check, time_delay:%s" % self.time_delay) + continue + warmupgradedebuglog("%s upgrade_finish_flag_check success. self.time_delay:%d" + % (self.device_name, self.time_delay)) + + # doing logic device rw access test + ret = self.access_test(self.access_check_reg_config) + if ret: + warmupgradedebuglog( + "%s rw test success. self.time_delay:%d" % + (self.device_name, self.time_delay)) + break + time.sleep(1) + self.time_delay = self.time_delay + 1 + warmupgradedebuglog("doing access_test, self.time_delay:%s" % self.time_delay) + + if self.time_delay >= self.after_upgrade_delay_timeout: + log = "wait %s access test timeout" % self.device_name + warmupgradeerror(log) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + warmupgradedebuglog("%s access test success" % self.device_name) + + # recover reg + ret, log = self.recover_value(self.rw_recover_reg_list) + if ret is False: + warmupgradeerror("recover %s reg failed" % self.device_name) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + warmupgradedebuglog("recover %s reg success" % self.device_name) + # finally + ret1, log1 = self.recover_save_value(self.save_set_reg_list) + if ret1 is False: + warmupgradeerror("bmc upgrade recover save value failed, msg: %s" % log1) + ret2, log2 = self.do_fw_upg_finish_cmd(self.finish_cmd_list) + if ret2 is False: + warmupgradeerror("bmc upgrade do finish command failed, msg: %s" % log2) + if ret1 is False or ret2 is False: + return False, "upgrading %s recover save value or finish command failed" % self.device_name + return True, "upgrading %s success" % self.device_name + + except Exception as e: + log = "refresh file upgrade Exception happend, error log : %s" % str(e) + self.recover_save_value(self.save_set_reg_list) + self.do_fw_upg_finish_cmd(self.finish_cmd_list) + return False, log + + +class RefreshUpgrade(RefreshUpgradeBase): + + def __init__(self, config, slot_num, devtype, subtype): + super(RefreshUpgrade, self).__init__(config, slot_num, devtype, subtype) + + def get_config(self): + super(RefreshUpgrade, self).get_config() + return self._config + + def get_slot_num(self): + super(RefreshUpgrade, self).get_slot_num() + return self._slot_num + + +class WarmBasePlatform(): + + def __init__(self): + signal_init() + debug_init() + self.warm_upgrade_param = WARM_UPGRADE_PARAM.copy() + self.stop_services_cmd_list = self.warm_upgrade_param.get("stop_services_cmd", []) + self.start_services_cmd_list = self.warm_upgrade_param.get("start_services_cmd", []) + self.__warm_upgrade_config_list = [] + + def execute_command_list(self, cmd_list): + for cmd_item in cmd_list: + warmupgradedebuglog("execute cmd: %s" % cmd_item) + status, output = exec_os_cmd(cmd_item) + if status: + log = "execute %s failed, msg: %s" % (cmd_item, output) + warmupgradeerror(log) + return False, log + return True, "execute success" + + def stop_services_access(self): + return self.execute_command_list(self.stop_services_cmd_list) + + def start_services_access(self): + return self.execute_command_list(self.start_services_cmd_list) + + def check_slot_present(self, slot_present_config): + totalerr = 0 + presentbit = slot_present_config.get('presentbit') + ret, value = get_value(slot_present_config) + if ret is False: + return "NOT OK" + if isinstance(value, str): + val_t = int(value, 16) + else: + val_t = value + val_t = (val_t & (1 << presentbit)) >> presentbit + if val_t != slot_present_config.get('okval'): + status = "ABSENT" + else: + status = "PRESENT" + return status + + def linecard_present_check(self, slot_name, slot_present_config): + present_status = self.check_slot_present(slot_present_config) + present_status_tuple = ("ABSENT", "NOT OK") + if present_status in present_status_tuple: + return False, ("%s not present, warm upgrade exit" % slot_name) + warmupgradedebuglog("%s present" % slot_name) + return True, ("%s present" % slot_name) + + def start_warmupgrade(self): + try: + # start refresh file upgrade process + for dev in self.__warm_upgrade_config_list: + ret, log = dev.refresh_file_upgrade() + if ret is False: + return ret, log + return True, "all success" + except Exception as e: + log = "Exception happend, error log : %s" % str(e) + return False, log + + def do_warmupgrade(self, file, main_type, sub_type, slot, file_type, chain): + try: + # upgrade file existence check + if not os.path.isfile(file): + return False, "%s not found" % file + + # get slot config + slot_name = "slot%d" % slot + slot_config = self.warm_upgrade_param.get(slot_name, {}) + if len(slot_config) == 0: + return False, ("%s config not found" % slot_name) + + # linecard present check + slot_present_config = slot_config.get("present", {}) + if len(slot_present_config) != 0: + ret, log = self.linecard_present_check(slot_name, slot_present_config) + if ret is False: + return False, log + + # match file_type and chain_num get chain_config + file_type_config = slot_config.get(file_type, {}) + chain_name = "chain%d" % chain + chain_list = file_type_config.get(chain_name, []) + self.__warm_upgrade_config_list = [] + for refresh_config in chain_list: + # refresh_file existence check + refresh_file_judge_flag = refresh_config.get("refresh_file_judge_flag", 0) + if refresh_file_judge_flag == 1: + refresh_file = refresh_config.get("refresh_file", None) + if not os.path.isfile(refresh_file): + log = "%s not found" % refresh_file + return False, log + # each refresh_config add as an instance of RefreshUpgrade Class + refresh_instance = RefreshUpgrade(refresh_config, slot, main_type, sub_type) + self.__warm_upgrade_config_list.append(refresh_instance) + + ret, log = self.start_warmupgrade() + if ret is False: + warmupgradeerror("doing warm upgrade failed") + warmupgradeerror(log) + return ret, log + + except Exception as e: + log = "Exception happend, error log : %s" % str(e) + return False, log + return True, "all success" + + def do_warm_upgrade(self, file, main_type, sub_type, slot, file_type, chain): + print("+================================+") + print("|Begin warm upgrade, please wait..|") + ret, log = self.do_warmupgrade(file, main_type, sub_type, slot, file_type, chain) + if ret: + print("| warm upgrade succeeded! |") + print("+================================+") + sys.exit(0) + else: + print("| warm upgrade failed! |") + print("+================================+") + print("FAILED REASON:") + print("%s" % log) + sys.exit(1) + + +@click.group(invoke_without_command=True, context_settings=CONTEXT_SETTINGS) +@click.argument('file', required=True) +@click.argument('main_type', required=True) +@click.argument('sub_type', required=True) +@click.argument('slot', required=True) +@click.argument('file_type', required=True) +@click.argument('chain', required=True) +def main(file, main_type, sub_type, slot, file_type, chain): + '''warm upgrade''' + signal_init() + debug_init() + platform = WarmBasePlatform() + platform.do_warm_upgrade(file, int(main_type, 16), int(sub_type, 16), int(slot), file_type, int(chain)) + + +# warm upgrade +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/service/platform_driver.service b/platform/broadcom/sonic-platform-modules-micas/common/service/platform_driver.service new file mode 100644 index 000000000000..08a49d695c92 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/service/platform_driver.service @@ -0,0 +1,15 @@ +[Unit] +Description= Global Initialize platform drivers. +After=local-fs.target +Before=pmon.service platform_process.service +#DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/platform_driver.py start +ExecStop=/usr/local/bin/platform_driver.py stop +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/service/platform_process.service b/platform/broadcom/sonic-platform-modules-micas/common/service/platform_process.service new file mode 100644 index 000000000000..13dd778559f2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/service/platform_process.service @@ -0,0 +1,16 @@ +[Unit] +Description= Global Load process. +After=platform_driver.service +Before=determine-reboot-cause.service pmon.service +Requires=platform_driver.service +#DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/platform_process.py start +ExecStop=/usr/local/bin/platform_process.py stop +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/__init__.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/__init__.py new file mode 100644 index 000000000000..b70995a582fc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/__init__.py @@ -0,0 +1,2 @@ +__all__ = ["platform", "chassis", "sfp", "eeprom", "component", "thermal", "psu", "fan", "fan_drawer", "watchdog"] +from . import platform diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/chassis.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/chassis.py new file mode 100644 index 000000000000..b0ddc8691f2e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/chassis.py @@ -0,0 +1,530 @@ +#!/usr/bin/env python3 + +############################################################################# +# +# +# Module contains an implementation of SONiC Platform Base API and +# provides the platform information +# +############################################################################# + +try: + import time + import sys + from sonic_platform_base.chassis_base import ChassisBase + from sonic_platform.sfp import Sfp + from sonic_platform.psu import Psu + # from sonic_platform.fan import Fan + from sonic_platform.fan_drawer import FanDrawer + from sonic_platform.thermal import Thermal + # from sonic_platform.watchdog import Watchdog + from sonic_platform.component import Component + from sonic_platform.eeprom import Eeprom + from sonic_platform.dcdc import Dcdc + from plat_hal.baseutil import baseutil + + from plat_hal.interface import interface + +except ImportError as error: + raise ImportError(str(error) + "- required module not found")from error + + +class Chassis(ChassisBase): + """ + Platform-specific Chassis class + """ + # List of Dcdc objects representing all dcdc + # available on the chassis + _dcdc_list = None + + STATUS_INSERTED = "1" + STATUS_REMOVED = "0" + STATUS_NORMAL = "0" + STATUS_ABNORMAL = "1" + sfp_present_dict = {} + fan_present_dict = {} + voltage_status_dict = {} + + def __init__(self): + ChassisBase.__init__(self) + self._dcdc_list = [] + self.int_case = interface() + # Initialize SFP list + + # sfp.py will read eeprom contents and retrive the eeprom data. + # It will also provide support sfp controls like reset and setting + # low power mode. + # We pass the eeprom path and sfp control path from chassis.py + # So that sfp.py implementation can be generic to all platforms + try: + self._sfp_list = [] + self.port_num = baseutil.get_config().get("sfps", None).get("port_num", 0) + self.port_start_index = baseutil.get_config().get("sfps", None).get("port_index_start", 0) + # fix problem with first index is 1, we add a fake sfp node + if self.port_start_index == 1: + self._sfp_list.append(Sfp(1)) + + # sfp id always start at 1 + for index in range(1, self.port_num + 1): + self._sfp_list.append(Sfp(index)) + + for i in range(self.port_start_index, self.port_start_index + self.port_num): + self.sfp_present_dict[i] = self.STATUS_REMOVED + + except Exception as err: + print("SFP init error: %s" % str(err)) + + try: + self._eeprom = Eeprom(self.int_case) + except Exception as err: + print("EEPROM INIT ERROR %s" % str(err)) + + # Initialize watchdog + # self._watchdog = Watchdog() + fantray_num = self.int_case.get_fan_total_number() + for index in range(fantray_num): + fandrawer = FanDrawer(self.int_case, index + 1) + self._fan_drawer_list.append(fandrawer) + self._fan_list.extend(fandrawer._fan_list) + + psu_num = self.int_case.get_psu_total_number() + for index in range(psu_num): + psuobj = Psu(self.int_case, index + 1) + self._psu_list.append(psuobj) + + thermal_num = self.int_case.get_temp_id_number() + for index in range(thermal_num): + thermalobj = Thermal(self.int_case, index + 1) + self._thermal_list.append(thermalobj) + + component_num = self.int_case.get_cpld_total_number() + for index in range(component_num): + componentobj = Component(self.int_case, index + 1) + self._component_list.append(componentobj) + + dcdc_num = self.int_case.get_dcdc_total_number() + for index in range(dcdc_num): + dcdcobj = Dcdc(self.int_case, index + 1) + self._dcdc_list.append(dcdcobj) + + def get_name(self): + """ + Retrieves the name of the chassis + Returns: + string: The name of the chassis + """ + name = '' + sys_eeprom = self.get_eeprom() + if sys_eeprom is None: + return '' + + e = sys_eeprom.read_eeprom() + name = sys_eeprom.modelstr(e) + if name is None: + return '' + return name + + def get_presence(self): + """ + Retrieves the presence of the chassis + Returns: + bool: True if chassis is present, False if not + """ + return True + + def get_model(self): + """ + Retrieves the model number (or part number) of the chassis + Returns: + string: Model/part number of chassis + """ + model = '' + sys_eeprom = self.get_eeprom() + if sys_eeprom is None: + return '' + + e = sys_eeprom.read_eeprom() + model = sys_eeprom.modelnumber(e) + if model is None: + return '' + return model + + def get_serial_number(self): + """ + Retrieves the hardware serial number for the chassis + + Returns: + A string containing the hardware serial number for this chassis. + """ + serial_number = '' + sys_eeprom = self.get_eeprom() + if sys_eeprom is None: + return '' + + e = sys_eeprom.read_eeprom() + serial_number = sys_eeprom.serial_number_str(e) + if serial_number is None: + return '' + + return serial_number + + def get_revision(self): + """ + Retrieves the hardware revision of the device + + Returns: + string: Revision value of device + """ + device_version = '' + sys_eeprom = self.get_eeprom() + if sys_eeprom is None: + return '' + + e = sys_eeprom.read_eeprom() + device_version = sys_eeprom.deviceversion(e) + if device_version is None: + return '' + + return device_version + + def get_serial(self): + """ + Retrieves the serial number of the chassis (Service tag) + Returns: + string: Serial number of chassis + """ + return self.get_serial_number() + + def get_status(self): + """ + Retrieves the operational status of the chassis + Returns: + bool: A boolean value, True if chassis is operating properly + False if not + """ + return True + + def get_position_in_parent(self): + """ + Retrieves 1-based relative physical position in parent device. If the agent cannot determine the parent-relative position + for some reason, or if the associated value of entPhysicalContainedIn is '0', then the value '-1' is returned + Returns: + integer: The 1-based relative physical position in parent device or -1 if cannot determine the position + """ + return -1 + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return False + + def initizalize_system_led(self): + return True + + def set_status_led(self, color): + return False + + def get_status_led(self): + """ + Gets the state of the system LED + + Returns: + A string, one of the valid LED color strings which could be vendor + specified. + """ + ret, color = self.int_case.get_led_color_by_type('SYS_LED') + if ret is True: + return color + return 'N/A' + + def get_base_mac(self): + """ + Retrieves the base MAC address for the chassis + + Returns: + A string containing the MAC address in the format + 'XX:XX:XX:XX:XX:XX' + """ + base_mac = '' + sys_eeprom = self.get_eeprom() + if sys_eeprom is None: + return '' + + e = sys_eeprom.read_eeprom() + base_mac = sys_eeprom.base_mac_addr(e) + if base_mac is None: + return '' + + return base_mac.upper() + + def get_system_eeprom_info(self): + """ + Retrieves the full content of system EEPROM information for the chassis + + Returns: + A dictionary where keys are the type code defined in + OCP ONIE TlvInfo EEPROM format and values are their corresponding + values. + Ex. { '0x21':'AG9064', '0x22':'V1.0', '0x23':'AG9064-0109867821', + '0x24':'001c0f000fcd0a', '0x25':'02/03/2018 16:22:00', + '0x26':'01', '0x27':'REV01', '0x28':'AG9064-C2358-16G'} + """ + sys_eeprom = self.get_eeprom() + if sys_eeprom is None: + return {} + return sys_eeprom.system_eeprom_info() + + def get_thermal_manager(self): + """ + Retrieves thermal manager class on this chassis + :return: A class derived from ThermalManagerBase representing the + specified thermal manager. ThermalManagerBase is returned as default + """ + return False + + def get_reboot_cause(self): + """ + Retrieves the cause of the previous reboot + Returns: + A tuple (string, string) where the first element is a string + containing the cause of the previous reboot. This string must be + one of the predefined strings in this class. If the first string + is "REBOOT_CAUSE_HARDWARE_OTHER", the second string can be used + to pass a description of the reboot cause. + """ + reboot_cause_msg = self.int_case.get_cpu_reboot_cause() + if "Power Loss" in reboot_cause_msg: + reboot_cause_type = self.REBOOT_CAUSE_POWER_LOSS + elif "Watchdog" in reboot_cause_msg: + reboot_cause_type = self.REBOOT_CAUSE_WATCHDOG + elif "BMC reboot" in reboot_cause_msg or "BMC powerdown" in reboot_cause_msg: + reboot_cause_type = self.REBOOT_CAUSE_HARDWARE_OTHER + elif "Thermal Overload: ASIC" in reboot_cause_msg: + reboot_cause_type = self.REBOOT_CAUSE_THERMAL_OVERLOAD_ASIC + elif "Thermal Overload: Other" in reboot_cause_msg: + reboot_cause_type = self.REBOOT_CAUSE_THERMAL_OVERLOAD_OTHER + elif "Other" in reboot_cause_msg: + reboot_cause_type = self.REBOOT_CAUSE_NON_HARDWARE + else: + reboot_cause_type = self.REBOOT_CAUSE_NON_HARDWARE + return (reboot_cause_type, reboot_cause_msg) + + def get_module(self, index): + """ + Retrieves module represented by (0-based) index + + Args: + index: An integer, the index (0-based) of the module to + retrieve + + Returns: + An object dervied from ModuleBase representing the specified + module + """ + module = None + + try: + if self.get_num_modules(): + module = self._module_list[index] + except IndexError: + sys.stderr.write("Module index {} out of range (0-{})\n".format( + index, len(self._module_list) - 1)) + + return module + + def get_fan_drawer(self, index): + """ + Retrieves fan drawers represented by (0-based) index + + Args: + index: An integer, the index (0-based) of the fan drawer to + retrieve + + Returns: + An object dervied from FanDrawerBase representing the specified fan + drawer + """ + fan_drawer = None + + try: + if self.get_num_fan_drawers(): + fan_drawer = self._fan_drawer_list[index] + except IndexError: + sys.stderr.write("Fan drawer index {} out of range (0-{})\n".format( + index, len(self._fan_drawer_list) - 1)) + + return fan_drawer + + def get_change_event(self, timeout=0): + """ + Returns a nested dictionary containing all devices which have + experienced a change at chassis level + + Args: + timeout: Timeout in milliseconds (optional). If timeout == 0, + this method will block until a change is detected. + + Returns: + (bool, dict): + - bool: True if call successful, False if not; + - dict: A nested dictionary where key is a device type, + value is a dictionary with key:value pairs in the format of + {'device_id':'device_event'}, where device_id is the device ID + for this device and device_event. + The known devices's device_id and device_event was defined as table below. + ----------------------------------------------------------------- + device | device_id | device_event | annotate + ----------------------------------------------------------------- + 'fan' '' '0' Fan removed + '1' Fan inserted + + 'sfp' '' '0' Sfp removed + '1' Sfp inserted + '2' I2C bus stuck + '3' Bad eeprom + '4' Unsupported cable + '5' High Temperature + '6' Bad cable + + 'voltage' '' '0' Vout normal + '1' Vout abnormal + -------------------------------------------------------------------- + Ex. {'fan':{'0':'0', '2':'1'}, 'sfp':{'11':'0', '12':'1'}, + 'voltage':{'U20':'0', 'U21':'1'}} + Indicates that: + fan 0 has been removed, fan 2 has been inserted. + sfp 11 has been removed, sfp 12 has been inserted. + monitored voltage U20 became normal, voltage U21 became abnormal. + Note: For sfp, when event 3-6 happened, the module will not be avalaible, + XCVRD shall stop to read eeprom before SFP recovered from error status. + """ + + change_event_dict = {"fan": {}, "sfp": {}, "voltage": {}} + + start_time = time.time() + forever = False + + if timeout == 0: + forever = True + elif timeout > 0: + timeout = timeout / float(1000) # Convert to secs + else: + print("get_change_event:Invalid timeout value: %s" % timeout) + return False, change_event_dict + + end_time = start_time + timeout + if start_time > end_time: + print("get_change_event:time wrap / invalid timeout value: %s" % timeout) + return False, change_event_dict # Time wrap or possibly incorrect timeout + try: + while timeout >= 0: + # check for sfp + sfp_change_dict = self.get_transceiver_change_event() + # check for fan + fan_change_dict = self.get_fan_change_event() + # check for voltage + voltage_change_dict = self.get_voltage_change_event() + + if sfp_change_dict or fan_change_dict or voltage_change_dict: + change_event_dict["sfp"] = sfp_change_dict + change_event_dict["fan"] = fan_change_dict + change_event_dict["voltage"] = voltage_change_dict + return True, change_event_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, change_event_dict + except Exception as e: + print(e) + print("get_change_event: Should not reach here.") + return False, change_event_dict + + def get_transceiver_change_event(self): + current_sfp_present_dict = {} + ret_dict = {} + + # Check for OIR events and return ret_dict + for i in range(self.port_start_index, self.port_start_index + self.port_num): + sfp = self._sfp_list[i] + if sfp.get_presence(): + current_sfp_present_dict[i] = self.STATUS_INSERTED + + else: + current_sfp_present_dict[i] = self.STATUS_REMOVED + + # Update reg value + if current_sfp_present_dict == self.sfp_present_dict: + return ret_dict + + for index, status in current_sfp_present_dict.items(): + if self.sfp_present_dict[index] != status: + ret_dict[index] = status + + self.sfp_present_dict = current_sfp_present_dict + + return ret_dict + + def get_fan_change_event(self): + current_fan_present_dict = {} + ret_dict = {} + + # Check for OIR events and return ret_dict + for index, fan in enumerate(self._fan_list): + if fan.get_presence() is True: + current_fan_present_dict[index] = self.STATUS_INSERTED + else: + current_fan_present_dict[index] = self.STATUS_REMOVED + + if len(self.fan_present_dict) == 0: # first time + self.fan_present_dict = current_fan_present_dict + return {} + + if current_fan_present_dict == self.fan_present_dict: + return {} + + # updated fan_present_dict + for index, status in current_fan_present_dict.items(): + if self.fan_present_dict[index] != status: + ret_dict[str(index)] = status + self.fan_present_dict = current_fan_present_dict + return ret_dict + + def get_voltage_change_event(self): + current_voltage_status_dict = {} + ret_dict = {} + + # Check for OIR events and return ret_dict + for index, dcdc in enumerate(self._dcdc_list): + name = dcdc.get_name() + value = dcdc.get_value() + high = dcdc.get_high_threshold() + low = dcdc.get_low_threshold() + if (value is None) or (value > high) or (value < low): + current_voltage_status_dict[name] = self.STATUS_ABNORMAL + else: + current_voltage_status_dict[name] = self.STATUS_NORMAL + + if len(self.voltage_status_dict) == 0: # first time + self.voltage_status_dict = current_voltage_status_dict + return {} + + if current_voltage_status_dict == self.voltage_status_dict: + return {} + + # updated voltage_status_dict + for name, status in current_voltage_status_dict.items(): + if self.voltage_status_dict[name] != status: + ret_dict[name] = status + self.voltage_status_dict = current_voltage_status_dict + return ret_dict + + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/component.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/component.py new file mode 100644 index 000000000000..fa674a98a6bf --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/component.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python3 + +######################################################################## +# +# Module contains an implementation of SONiC Platform Base API and +# provides the Components' (e.g., BIOS, CPLD, FPGA, etc.) available in +# the platform +# +######################################################################## + +try: + import time + import subprocess + import os + from sonic_platform_base.component_base import ComponentBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + + +FIRMWARE_UPDATE_DIR = "/tmp/.firmwareupdate/" + +class Component(ComponentBase): + """Platform-specific Component class""" + + def __init__(self, interface_obj, index): + self.cpld_dict = {} + self.int_case = interface_obj + self.index = index + self.update_time = 0 + self.cpld_id = "CPLD" + str(index) + + def cpld_dict_update(self): + local_time = time.time() + if not self.cpld_dict or (local_time - self.update_time) >= 1: # update data every 1 seconds + self.update_time = local_time + self.cpld_dict = self.int_case.get_cpld_version_by_id(self.cpld_id) + + def get_slot(self): + self.cpld_dict_update() + return self.cpld_dict["Slot"] + + def get_warm_upgrade_flag(self): + self.cpld_dict_update() + return self.cpld_dict["Warm"] + + def get_name(self): + """ + Retrieves the name of the component + + Returns: + A string containing the name of the component + """ + self.cpld_dict_update() + return self.cpld_dict["Name"] + + def get_description(self): + """ + Retrieves the description of the component + + Returns: + A string containing the description of the component + """ + self.cpld_dict_update() + return self.cpld_dict["Desc"] + + def get_firmware_version(self): + """ + Retrieves the firmware version of the component + + Note: the firmware version will be read from HW + + Returns: + A string containing the firmware version of the component + """ + self.cpld_dict_update() + return self.cpld_dict["Version"] + + def get_available_firmware_version(self, image_path): + """ + Retrieves the available firmware version of the component + + Note: the firmware version will be read from image + + Args: + image_path: A string, path to firmware image + + Returns: + A string containing the available firmware version of the component + """ + raise NotImplementedError + + def get_firmware_update_notification(self, image_path): + """ + Retrieves a notification on what should be done in order to complete + the component firmware update + + Args: + image_path: A string, path to firmware image + + Returns: + A string containing the component firmware update notification if required. + By default 'None' value will be used, which indicates that no actions are required + """ + return None + + def install_firmware(self, image_path): + """ + Installs firmware to the component + + This API performs firmware installation only: this may/may not be the same as firmware update. + In case platform component requires some extra steps (apart from calling Low Level Utility) + to load the installed firmware (e.g, reboot, power cycle, etc.) - this must be done manually by user + + Note: in case immediate actions are required to complete the component firmware update + (e.g., reboot, power cycle, etc.) - will be done automatically by API and no return value provided + + Args: + image_path: A string, path to firmware image + + Returns: + A boolean, True if install was successful, False if not + """ + if not os.path.isfile(image_path): + print("ERROR: %s not found" % image_path) + return False + cmdstr = "upgrade.py cold %s %d" % (image_path, self.get_slot()) + status, output = subprocess.getstatusoutput(cmdstr) + if status == 0: + print("INFO: %s firmware install succeeded" % self.get_name()) + return True + print("%s install failed. status:%d, output:\n%s" % (self.get_name(), status, output)) + return False + + def update_firmware(self, image_path): + """ + Updates firmware of the component + + This API performs firmware update: it assumes firmware installation and loading in a single call. + In case platform component requires some extra steps (apart from calling Low Level Utility) + to load the installed firmware (e.g, reboot, power cycle, etc.) - this will be done automatically by API + + Args: + image_path: A string, path to firmware image + + Raises: + RuntimeError: update failed + """ + if not os.path.isfile(image_path): + raise RuntimeError("ERROR: %s not found" % image_path) + + if self.get_warm_upgrade_flag() == 1: # use warm upgrade + cmdstr = "upgrade.py warm %s %d" % (image_path, self.get_slot()) + else: + cmdstr = "upgrade.py cold %s %d" % (image_path, self.get_slot()) + status, output = subprocess.getstatusoutput(cmdstr) + if status == 0: + if self.get_warm_upgrade_flag() != 1: # not support warm upgrade, need to cold reboot + print("INFO: %s firmware install succeeded" % self.get_name()) + print("INFO: please cold reboot to make the %s firmware up-to-date" % self.get_name()) + else: + print("INFO: %s firmware update succeeded" % self.get_name()) + print("INFO: %s firmware version up-to-date" % self.get_name()) + return None + raise RuntimeError(output) + + def auto_update_firmware(self, image_path, boot_type): + """ + Updates firmware of the component + + This API performs firmware update automatically based on boot_type: it assumes firmware installation + and/or creating a loading task during the reboot, if needed, in a single call. + In case platform component requires some extra steps (apart from calling Low Level Utility) + to load the installed firmware (e.g, reboot, power cycle, etc.) - this will be done automatically during the reboot. + The loading task will be created by API. + + Args: + image_path: A string, path to firmware image + boot_type: A string, reboot type following the upgrade + - none/fast/warm/cold + + Returns: + Output: A return code + return_code: An integer number, status of component firmware auto-update + - return code of a positive number indicates successful auto-update + - status_installed = 1 + - status_updated = 2 + - status_scheduled = 3 + - return_code of a negative number indicates failed auto-update + - status_err_boot_type = -1 + - status_err_image = -2 + - status_err_unknown = -3 + + Raises: + RuntimeError: auto-update failure cause + """ + if not os.path.isfile(image_path): + print("ERROR: %s not found" % image_path) + return -2 + + if not os.path.isdir(FIRMWARE_UPDATE_DIR): + os.mkdir(FIRMWARE_UPDATE_DIR) + + warm_upgrade_flag = self.get_warm_upgrade_flag() + file_name = os.path.basename(image_path) + file_path = os.path.join(FIRMWARE_UPDATE_DIR, file_name) + if os.path.exists(file_path): # firmware already update + if warm_upgrade_flag == 1: + print("INFO: %s firmware update succeeded, firmware version up-to-date" % self.get_name()) + return 2 + print("INFO: %s firmware install succeeded, please cold reboot to make it up-to-date" % self.get_name()) + return 1 + + if warm_upgrade_flag == 1: # use warm upgrade + cmdstr = "upgrade.py warm %s %d" % (image_path, self.get_slot()) + else: + cmdstr = "upgrade.py cold %s %d" % (image_path, self.get_slot()) + status, output = subprocess.getstatusoutput(cmdstr) + if status == 0: + os.mknod(file_path) + if warm_upgrade_flag == 1: + print("INFO: %s firmware update succeeded, firmware version up-to-date" % self.get_name()) + return 2 + print("INFO: %s firmware install succeeded, please cold reboot to make it up-to-date" % self.get_name()) + return 1 + print("%s update failed, status:%d, output:\n%s" % (self.get_name(), status, output)) + return -3 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/dcdc.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/dcdc.py new file mode 100644 index 000000000000..494d4aa610dc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/dcdc.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 + +######################################################################## +# +# Module contains an implementation of SONiC Platform Base API and +# provides the Thermals' information which are available in the platform +# +######################################################################## +import time + + +class Dcdc(object): + + def __init__(self, interface_obj, index): + self.dcdc_dict = {} + self.int_case = interface_obj + self.index = index + self.update_time = 0 + self.dcdc_id = "DCDC" + str(index) + + def dcdc_dict_update(self): + local_time = time.time() + if not self.dcdc_dict or (local_time - self.update_time) >= 1: # update data every 1 seconds + self.update_time = local_time + self.dcdc_dict = self.int_case.get_dcdc_by_id(self.dcdc_id) + + def get_name(self): + """ + Retrieves the name of the sensor + + Returns: + string: The name of the sensor + """ + self.dcdc_dict_update() + return self.dcdc_dict["Name"] + + def get_value(self): + """ + Retrieves current value reading from sensor + """ + self.dcdc_dict_update() + value = self.dcdc_dict["Value"] + if value is None: + value = 0 + return round(float(value), 3) + + def get_high_threshold(self): + """ + Retrieves the high threshold temperature of sensor + """ + self.dcdc_dict_update() + value = self.dcdc_dict["High"] + if value is None: + value = 0 + return round(float(value), 3) + + def get_low_threshold(self): + """ + Retrieves the low threshold temperature of sensor + """ + self.dcdc_dict_update() + value = self.dcdc_dict["Low"] + if value is None: + value = 0 + return round(float(value), 3) + + def get_high_critical_threshold(self): + """ + Retrieves the high critical threshold temperature of sensor + """ + self.dcdc_dict_update() + value = self.dcdc_dict["Max"] + if value is None: + value = 0 + return round(float(value), 3) + + def get_low_critical_threshold(self): + """ + Retrieves the low critical threshold temperature of sensor + """ + self.dcdc_dict_update() + value = self.dcdc_dict["Min"] + if value is None: + value = 0 + return round(float(value), 3) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/eeprom.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/eeprom.py new file mode 100644 index 000000000000..05fcc3c25678 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/eeprom.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +######################################################################## +# +# Module contains platform specific implementation of SONiC Platform +# Base API and provides the EEPROMs' information. +# +# The different EEPROMs available are as follows: +# - System EEPROM : Contains Serial number, Service tag, Base MA +# address, etc. in ONIE TlvInfo EEPROM format. +# - PSU EEPROM : Contains Serial number, Part number, Service Tag, +# PSU type, Revision. +# - Fan EEPROM : Contains Serial number, Part number, Service Tag, +# Fan type, Number of Fans in Fantray, Revision. +######################################################################## + +try: + from sonic_eeprom import eeprom_tlvinfo +except ImportError as error: + raise ImportError(str(error) + "- required module not found") from error + + +class Eeprom(eeprom_tlvinfo.TlvInfoDecoder): + + def __init__(self, interface_obj): + self.int_case = interface_obj + self.name = "ONIE_E2" + + eeprom_path = self.int_case.get_onie_e2_path(self.name) + if eeprom_path is None: + raise ValueError("get eeprom path failed") + + super().__init__(eeprom_path, 0, "", True) + + def modelnumber(self, e): + ''' + Returns the value field of the model(part) number TLV as a string + ''' + (is_valid, t) = self.get_tlv_field(e, self._TLV_CODE_PART_NUMBER) + if not is_valid: + return super().part_number_str(e) + + return t[2].decode("ascii") + + def deviceversion(self, e): + ''' + Returns the value field of the Device Version as a string + ''' + (is_valid, t) = self.get_tlv_field(e, self._TLV_CODE_DEVICE_VERSION) + if not is_valid: + return "N/A" + + return str(ord(t[2])) + + def system_eeprom_info(self): + ''' + Retrieves the full content of system EEPROM information for the chassis + + Returns: + A dictionary where keys are the type code defined in + OCP ONIE TlvInfo EEPROM format and values are their corresponding + values. + Ex. { '0x21':'AG9064', '0x22':'V1.0', '0x23':'AG9064-0109867821', + '0x24':'001c0f000fcd0a', '0x25':'02/03/2018 16:22:00', + '0x26':'01', '0x27':'REV01', '0x28':'AG9064-C2358-16G'} + ''' + sys_eeprom_dict = {} + e = self.read_eeprom() + if self._TLV_HDR_ENABLED: + if not self.is_valid_tlvinfo_header(e): + return {} + total_len = (e[9] << 8) | e[10] + tlv_index = self._TLV_INFO_HDR_LEN + tlv_end = self._TLV_INFO_HDR_LEN + total_len + else: + tlv_index = self.eeprom_start + tlv_end = self._TLV_INFO_MAX_LEN + + while (tlv_index + 2) < len(e) and tlv_index < tlv_end: + if not self.is_valid_tlv(e[tlv_index:]): + break + + tlv = e[tlv_index:tlv_index + 2 + e[tlv_index + 1]] + code = "0x%02X" % tlv[0] + name, value = self.decoder(None, tlv) + sys_eeprom_dict[code] = value + + if e[tlv_index] == self._TLV_CODE_QUANTA_CRC or \ + e[tlv_index] == self._TLV_CODE_CRC_32: + break + tlv_index += e[tlv_index + 1] + 2 + + return sys_eeprom_dict diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py new file mode 100644 index 000000000000..1ad578e40546 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py @@ -0,0 +1,308 @@ +#!/usr/bin/env python3 +######################################################################## +# +# Module contains an implementation of SONiC Platform Base API and +# provides the Fans' information which are available in the platform. +# +######################################################################## + +try: + import time + from sonic_platform_base.fan_base import FanBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + + +class Fan(FanBase): + """Platform-specific Fan class""" + + def __init__(self, interface_obj, fantray_index, fan_index, psu_fan=False, psu_index=0): + self.fan_dict = {} + self.int_case = interface_obj + self.fantray_index = fantray_index + self.fan_index = fan_index + self.psu_index = psu_index + self.is_psu_fan = psu_fan + self.update_time = 0 + if not self.is_psu_fan: + self.name = "FAN" + str(fantray_index) + else: + self.name = "PSU" + str(psu_index) + + def fan_dict_update(self): + local_time = time.time() + if not self.fan_dict or (local_time - self.update_time) >= 1: # update data every 1 seconds + self.update_time = local_time + if not self.is_psu_fan: + self.fan_dict = self.int_case.get_fan_info(self.name) + else: + self.fan_dict = self.int_case.get_psu_fru_info(self.name) + + def get_name(self): + """ + Retrieves the fan name + Returns: + string: The name of the device + """ + if not self.is_psu_fan: + return "Fantray{}_{}".format(self.fantray_index, self.fan_index) + return "PSU{}_FAN{}".format(self.psu_index, self.fan_index) + + def get_model(self): + """ + Retrieves the part number of the FAN + Returns: + string: Part number of FAN + """ + if not self.is_psu_fan: + self.fan_dict_update() + return self.fan_dict["DisplayName"] + return 'N/A' + + def get_serial(self): + """ + Retrieves the serial number of the FAN + Returns: + string: Serial number of FAN + """ + if not self.is_psu_fan: + self.fan_dict_update() + return self.fan_dict["SN"] + return 'N/A' + + def get_presence(self): + """ + Retrieves the presence of the FAN + Returns: + bool: True if fan is present, False if not + """ + if not self.is_psu_fan: + return self.int_case.get_fan_presence(self.name) + return self.int_case.get_psu_presence(self.name) + + def get_status(self): + """ + Retrieves the operational status of the FAN + Returns: + bool: True if FAN is operating properly, False if not + """ + if not self.get_presence(): + return False + + if not self.is_psu_fan: + fan_dir = {} + fan_dir = self.int_case.get_fan_info_rotor(self.name) + # get fan rotor pwm + rotor_name = "Rotor" + str(self.fan_index) + value = fan_dir[rotor_name]["Speed"] + min_speed = fan_dir[rotor_name]["SpeedMin"] + max_speed = fan_dir[rotor_name]["SpeedMax"] + tolerance = fan_dir[rotor_name]["Tolerance"] + else: + psu_status_dict = self.int_case.get_psu_status(self.name) + value = psu_status_dict["FanSpeed"]["Value"] + min_speed = psu_status_dict["FanSpeed"]["Min"] + max_speed = psu_status_dict["FanSpeed"]["Max"] + tolerance = psu_status_dict["FanSpeed"]["Tolerance"] + + if isinstance(tolerance, str) or tolerance is None: + tolerance = 30 + + if isinstance(value, str) or value is None: + return False + + if value < min_speed: + return False + + speed = int(value * 100 / max_speed) + if speed > 100: + speed = 100 + elif speed < 0: + speed = 0 + target = self.get_target_speed() + + if (speed - target) > target * tolerance / 100: + return False + if (target - speed) > target * tolerance / 100: + return False + + return True + + def get_position_in_parent(self): + """ + Retrieves 1-based relative physical position in parent device. If the agent cannot determine the parent-relative position + for some reason, or if the associated value of entPhysicalContainedIn is '0', then the value '-1' is returned + Returns: + integer: The 1-based relative physical position in parent device or -1 if cannot determine the position + """ + return -1 + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return True + + def get_direction(self): + """ + Retrieves the fan airflow direction + Returns: + A string, either FAN_DIRECTION_INTAKE or FAN_DIRECTION_EXHAUST + depending on fan direction + + Notes: + - Forward/Exhaust : Air flows from Port side to Fan side. + - Reverse/Intake : Air flows from Fan side to Port side. + """ + self.fan_dict_update() + air_flow = self.fan_dict["AirFlow"] + if air_flow is not None: + return air_flow + return self.FAN_DIRECTION_NOT_APPLICABLE + + def get_speed(self): + """ + 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) + """ + if not self.get_presence(): + return 0 + + if not self.is_psu_fan: + fan_dir = {} + fan_dir = self.int_case.get_fan_info_rotor(self.name) + # get fan rotor pwm + rotor_name = "Rotor" + str(self.fan_index) + value = fan_dir[rotor_name]["Speed"] + max_speed = fan_dir[rotor_name]["SpeedMax"] + else: + psu_status_dict = self.int_case.get_psu_status(self.name) + value = psu_status_dict["FanSpeed"]["Value"] + max_speed = psu_status_dict["FanSpeed"]["Max"] + + if isinstance(value, str) or value is None: + return 0 + pwm = value * 100 / max_speed + if pwm > 100: + pwm = 100 + elif pwm < 0: + pwm = 0 + return int(pwm) + + def get_speed_tolerance(self): + """ + Retrieves the speed tolerance of the fan + Returns: + An integer, the percentage of variance from target speed which is + considered tolerable + """ + # The default tolerance value is fixed as 30% + if not self.is_psu_fan: + fan_dir = {} + fan_dir = self.int_case.get_fan_info_rotor(self.name) + # get fan rotor tolerance + rotor_name = "Rotor" + str(self.fan_index) + tolerance = fan_dir[rotor_name]["Tolerance"] + else: + psu_status_dict = self.int_case.get_psu_status(self.name) + tolerance = psu_status_dict["FanSpeed"]["Tolerance"] + + if isinstance(tolerance, str) or tolerance is None: + return 30 + return tolerance + + def fan_set_speed_pwm(self, pwm): + status = self.int_case.set_fan_speed_pwm(self.name, self.fan_index, pwm) + if status == -1: + return False + return True + + def set_speed(self, speed): + """ + Set fan speed to expected value + Args: + speed: An integer, the percentage of full fan speed to set fan to, + in the range 0 (off) to 100 (full speed) + Returns: + bool: True if set success, False if fail. + """ + if not self.is_psu_fan: + return self.fan_set_speed_pwm(speed) + return self.int_case.set_psu_fan_speed_pwm(self.name, int(speed)) + + def set_status_led(self, color): + """ + Set led to expected color + Args: + color: A string representing the color with which to set the + fan module status LED + Returns: + bool: True if set success, False if fail. + """ + # not supported + return False + + def get_status_led(self): + """ + Gets the state of the Fan status LED + + Returns: + A string, one of the predefined STATUS_LED_COLOR_* strings. + """ + if self.is_psu_fan: + # No LED available for PSU Fan + return 'N/A' + + if not self.get_presence(): + return 'N/A' + + ret, color = self.int_case.get_fan_led(self.name) + if ret is True: + return color + return 'N/A' + + def get_target_speed(self): + """ + 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) + """ + if not self.is_psu_fan: + # get fan rotor pwm + pwm = int(self.int_case.get_fan_speed_pwm(self.name, self.fan_index)) + else: + psu_status_dict = self.int_case.get_psu_status(self.name) + if psu_status_dict["InputStatus"] is False: + pwm = 0 + else: + pwm = self.get_speed() # target equal to real pwm, to avoid alarm + return int(pwm) + + def get_vendor(self): + """ + Retrieves the vendor name of the fan + + Returns: + string: Vendor name of fan + """ + if not self.is_psu_fan: + return "WB" + return 'N/A' + + def get_revision(self): + """ + Retrieves the hardware revision of the device + + Returns: + string: Revision value of device + """ + if not self.is_psu_fan: + self.fan_dict_update() + return self.fan_dict["HW"] + return 'N/A' diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan_drawer.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan_drawer.py new file mode 100644 index 000000000000..f0b039648158 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan_drawer.py @@ -0,0 +1,167 @@ +#!/usr/bin/env python3 +# +# fan_drawer_base.py +# +# Abstract base class for implementing a platform-specific class with which +# to interact with a fan drawer module in SONiC +# + +try: + import time + from sonic_platform_base.fan_drawer_base import FanDrawerBase + from sonic_platform.fan import Fan +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + + +class FanDrawer(FanDrawerBase): + """ + Abstract base class for interfacing with a fan drawer + """ + # Device type definition. Note, this is a constant. + DEVICE_TYPE = "fan_drawer" + + def __init__(self, interface_obj, fantray_index): + FanDrawerBase.__init__(self) + self.fantray_dict = {} + self.fantray_update_time = 0 + self.fantray_index = fantray_index + self.int_case = interface_obj + self.fantrayname = "FAN" + str(fantray_index) + self.num_fans_per_fantray = self.int_case.get_fan_rotor_number(self.fantrayname) + for i in range(self.num_fans_per_fantray): + self._fan_list.append(Fan(interface_obj, fantray_index, i + 1)) + + def fantray_dict_update(self): + local_time = time.time() + # update data every 1 seconds + if not self.fantray_dict or (local_time - self.fantray_update_time) >= 1: + self.fantray_update_time = local_time + self.fantray_dict = self.int_case.get_fan_info(self.fantrayname) + + def get_name(self): + """ + Retrieves the name of the device + Returns: + string: The name of the device + """ + return "Fantray{}".format(self.fantray_index) + + def get_presence(self): + """ + Retrieves the presence of the FAN + Returns: + bool: True if fan is present, False if not + """ + return self.int_case.get_fan_presence(self.fantrayname) + + def get_model(self): + """ + Retrieves the part number of the FAN + Returns: + string: Part number of FAN + """ + self.fantray_dict_update() + return self.fantray_dict["NAME"] + + def get_serial(self): + """ + Retrieves the serial number of the FAN + Returns: + string: Serial number of FAN + """ + self.fantray_dict_update() + return self.fantray_dict["SN"] + + def get_revision(self): + """ + Retrieves the hardware revision of the device + + Returns: + string: Revision value of device + """ + self.fantray_dict_update() + return self.fantray_dict["HW"] + + def get_status(self): + """ + Retrieves the operational status of the FAN + Returns: + bool: True if FAN is operating properly, False if not + """ + for i in range(self.num_fans_per_fantray): + if self._fan_list[i].get_status() is False: + return False + return True + + def get_position_in_parent(self): + """ + Retrieves 1-based relative physical position in parent device. If the agent cannot determine the parent-relative position + for some reason, or if the associated value of entPhysicalContainedIn is '0', then the value '-1' is returned + Returns: + integer: The 1-based relative physical position in parent device or -1 if cannot determine the position + """ + return -1 + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return True + + def get_num_fans(self): + """ + Retrieves the number of fans available on this fan drawer + Returns: + An integer, the number of fan modules available on this fan drawer + """ + return len(self._fan_list) + + def get_all_fans(self): + """ + Retrieves all fan modules available on this fan drawer + Returns: + A list of objects derived from FanBase representing all fan + modules available on this fan drawer + """ + return self._fan_list + + def set_status_led(self, color): + """ + Sets the state of the fan drawer status LED + Args: + color: A string representing the color with which to set the + fan drawer status LED + Returns: + bool: True if status LED state is set successfully, False if not + """ + # not supported + return False + + def get_status_led(self): + """ + Gets the state of the Fan status LED + + Returns: + A string, one of the predefined STATUS_LED_COLOR_* strings. + """ + if not self.get_presence(): + return 'N/A' + + ret, color = self.int_case.get_fan_led(self.fantrayname) + if ret is True: + return color + return 'N/A' + + def get_maximum_consumed_power(self): + """ + Retrives the maximum power drawn by Fan Drawer + + Returns: + A float, with value of the maximum consumable power of the + component. + """ + self.fantray_dict_update() + return self.fantray_dict["PowerMax"] diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/pcie.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/pcie.py new file mode 100644 index 000000000000..8ea66f339e96 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/pcie.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +######################################################################## +# +# Module contains a platform specific implementation of SONiC Platform +# Base PCIe class +# +######################################################################## + +try: + from sonic_platform_base.sonic_pcie.pcie_common import PcieUtil +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + + +class Pcie(PcieUtil): + """Platform-specific Pcie class""" + + def __init__(self, platform_path): + PcieUtil.__init__(self, platform_path) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/platform.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/platform.py new file mode 100644 index 000000000000..4d6fe03d93ac --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/platform.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +############################################################################# +# +# Module contains an implementation of SONiC Platform Base API and +# provides the platform information +# +############################################################################# + +try: + 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") from e + + +class Platform(PlatformBase): + """ + Platform-specific class + """ + + def __init__(self): + PlatformBase.__init__(self) + self._chassis = Chassis() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py new file mode 100644 index 000000000000..a9f7e87d2027 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py @@ -0,0 +1,359 @@ +#!/usr/bin/env python3 +######################################################################## +# +# Module contains an implementation of SONiC Platform Base API and +# provides the PSUs' information which are available in the platform +# +######################################################################## + + +try: + import time + from sonic_platform_base.psu_base import PsuBase + from sonic_platform.fan import Fan +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + + +class Psu(PsuBase): + """Platform-specific PSU class""" + + def __init__(self, interface_obj, index): + self.psu_dict = {} + self.psu_status_dict = {} + self.psu_power_dict = {} + self._fan_list = [] + self._thermal_list = [] + self.int_case = interface_obj + self.index = index + self.name = "PSU" + str(index) + + self.psu_dict_update_time = 0 + self.psu_status_dict_update_time = 0 + self.psu_power_dict_update_time = 0 + + self._fan_list.append(Fan(self.int_case, 1, 1, psu_fan=True, psu_index=index)) + + def psu_dict_update(self): + local_time = time.time() + if not self.psu_dict or (local_time - self.psu_dict_update_time) >= 1: # update data every 1 seconds + self.psu_dict_update_time = local_time + self.psu_dict = self.int_case.get_psu_fru_info(self.name) + + def psu_status_dict_update(self): + local_time = time.time() + if not self.psu_status_dict or ( + local_time - self.psu_status_dict_update_time) >= 1: # update data every 1 seconds + self.psu_status_dict_update_time = local_time + self.psu_status_dict = self.int_case.get_psu_status(self.name) + + def psu_power_dict_update(self): + local_time = time.time() + if not self.psu_power_dict or ( + local_time - self.psu_power_dict_update_time) >= 1: # update data every 1 seconds + self.psu_power_dict_update_time = local_time + self.psu_power_dict = self.int_case.get_psu_power_status(self.name) + + def get_name(self): + """ + Retrieves the name of the device + + Returns: + string: The name of the device + """ + return "Psu{}".format(self.index) + + def get_presence(self): + """ + Retrieves the presence of the Power Supply Unit (PSU) + + Returns: + bool: True if PSU is present, False if not + """ + return self.int_case.get_psu_presence(self.name) + + def get_model(self): + """ + Retrieves the part number of the PSU + + Returns: + string: Part number of PSU + """ + self.psu_dict_update() + return self.psu_dict["DisplayName"] + + def get_serial(self): + """ + Retrieves the serial number of the PSU + + Returns: + string: Serial number of PSU + """ + self.psu_dict_update() + return self.psu_dict["SN"] + + def get_status(self): + """ + Retrieves the operational status of the PSU + + Returns: + bool: True if PSU is operating properly, False if not + """ + return self.int_case.get_psu_input_output_status(self.name) + + def get_position_in_parent(self): + """ + Retrieves 1-based relative physical position in parent device. If the agent cannot determine the parent-relative position + for some reason, or if the associated value of entPhysicalContainedIn is '0', then the value '-1' is returned + Returns: + integer: The 1-based relative physical position in parent device or -1 if cannot determine the position + """ + return -1 + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return True + + def get_voltage(self): + """ + Retrieves current PSU voltage output + + Returns: + A float number, the output voltage in volts, + e.g. 12.1 + """ + self.psu_status_dict_update() + if self.psu_status_dict["InputStatus"] is False: + value = 0 + else: + self.psu_power_dict_update() + value = self.psu_power_dict["Outputs"]["Voltage"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_current(self): + """ + Retrieves present electric current supplied by PSU + + Returns: + A float number, electric current in amperes, + e.g. 15.4 + """ + self.psu_status_dict_update() + if self.psu_status_dict["InputStatus"] is False: + value = 0 + else: + self.psu_power_dict_update() + value = self.psu_power_dict["Outputs"]["Current"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_power(self): + """ + Retrieves current energy supplied by PSU + + Returns: + A float number, the power in watts, + e.g. 302.6 + """ + self.psu_status_dict_update() + if self.psu_status_dict["InputStatus"] is False: + value = 0 + else: + self.psu_power_dict_update() + value = self.psu_power_dict["Outputs"]["Power"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + 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.int_case.get_psu_input_output_status(self.name) + + def get_status_led(self): + """ + Gets the state of the PSU status LED + + Returns: + A string, one of the predefined STATUS_LED_COLOR_* strings. + """ + if not self.get_presence(): + return "N/A" + if self.int_case.get_psu_input_output_status(self.name): + return self.STATUS_LED_COLOR_GREEN + return self.STATUS_LED_COLOR_RED + + def set_status_led(self, color): + """ + Sets the state of the PSU status LED + Args: + color: A string representing the color with which to set the + PSU status LED + Returns: + bool: True if status LED state is set successfully, False if + not + """ + # not supported + return False + + def get_temperature(self): + """ + Retrieves current temperature reading from PSU + + Returns: + A float number of current temperature in Celsius up to nearest thousandth + of one degree Celsius, e.g. 30.125 + """ + self.psu_status_dict_update() + value = self.psu_status_dict["Temperature"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_temperature_high_threshold(self): + """ + Retrieves the high threshold temperature of PSU + + Returns: + A float number, the high threshold temperature of PSU in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + self.psu_status_dict_update() + value = self.psu_status_dict["Temperature"]["Max"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_voltage_high_threshold(self): + """ + Retrieves the high threshold PSU voltage output + + Returns: + A float number, the high threshold output voltage in volts, + e.g. 12.1 + """ + self.psu_power_dict_update() + value = self.psu_power_dict["Outputs"]["Voltage"]["HighAlarm"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_voltage_low_threshold(self): + """ + Retrieves the low threshold PSU voltage output + + Returns: + A float number, the low threshold output voltage in volts, + e.g. 12.1 + """ + self.psu_power_dict_update() + value = self.psu_power_dict["Outputs"]["Voltage"]["LowAlarm"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_input_voltage(self): + """ + Get the input voltage of the PSU + + Returns: + A float number, the input voltage in volts, + """ + self.psu_status_dict_update() + if self.psu_status_dict["InputStatus"] is False: + value = 0 + else: + self.psu_power_dict_update() + value = self.psu_power_dict["Inputs"]["Voltage"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_input_current(self): + """ + Get the input electric current of the PSU + + Returns: + A float number, the input current in amperes, e.g 220.3 + """ + self.psu_status_dict_update() + if self.psu_status_dict["InputStatus"] is False: + value = 0 + else: + self.psu_power_dict_update() + value = self.psu_power_dict["Inputs"]["Current"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_input_power(self): + """ + Get the input current energy of the PSU + + Returns: + A float number, the input power in watts, e.g. 302.6 + """ + self.psu_status_dict_update() + if self.psu_status_dict["InputStatus"] is False: + value = 0 + else: + self.psu_power_dict_update() + value = self.psu_power_dict["Inputs"]["Power"]["Value"] + if value is None: + value = 0 + return round(float(value), 1) + + def get_revision(self): + """ + Retrieves the hardware revision of the device + + Returns: + string: Revision value of device + """ + self.psu_dict_update() + return self.psu_dict["HW"] + + def get_vendor(self): + """ + Retrieves the vendor name of the psu + + Returns: + string: Vendor name of psu + """ + self.psu_dict_update() + return self.psu_dict["VENDOR"] + + def get_maximum_supplied_power(self): + """ + Retrieves the maximum supplied power by PSU + + Returns: + A float number, the maximum power output in Watts. + e.g. 1200.1 + """ + return False + + def get_thermal(self, index): + """ + Retrieves thermal unit represented by (0-based) index + + Args: + index: An integer, the index (0-based) of the thermal to + retrieve + + Returns: + An object dervied from ThermalBase representing the specified thermal + """ + return False diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py new file mode 100644 index 000000000000..532bf9d86d50 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py @@ -0,0 +1,620 @@ +#!/usr/bin/python +# -*- coding: UTF-8 -*- + +############################################################################# +# +# Module contains an implementation of SONiC Platform Base API and +# provides the platform information +# +# +# *_device.py config version instruction: +# ver 1.0 - platform api: +# "presence_cpld": { +# "dev_id": { +# [dev_id]: { +# "offset": { +# [offset]: [port_id] +# } +# } +# } +# } +# "reset_cpld": { +# "dev_id": { +# [dev_id]: { +# "offset": { +# [offset]: [port_id] +# } +# } +# } +# } +# ver 2.0 - wb_plat: +# "presence_path": "/xx/wb_plat/xx[port_id]/present" +# "eeprom_path": "/sys/bus/i2c/devices/i2c-[bus]/[bus]-0050/eeprom" +# "reset_path": "/xx/wb_plat/xx[port_id]/reset" +############################################################################# +import sys +import time +import syslog +import traceback +from abc import abstractmethod + +configfile_pre = "/usr/local/bin/" +sys.path.append(configfile_pre) + +try: + from platform_intf import * + from sonic_platform_base.sonic_xcvr.sfp_optoe_base import SfpOptoeBase + from plat_hal.baseutil import baseutil + +except ImportError as error: + raise ImportError(str(error) + "- required module not found") from error + +LOG_DEBUG_LEVEL = 1 +LOG_WARNING_LEVEL = 2 +LOG_ERROR_LEVEL = 3 + + +class Sfp(SfpOptoeBase): + + OPTOE_DRV_TYPE1 = 1 + OPTOE_DRV_TYPE2 = 2 + OPTOE_DRV_TYPE3 = 3 + + # index must start at 1 + def __init__(self, index): + SfpOptoeBase.__init__(self) + self.sfp_type = None + sfp_config = baseutil.get_config().get("sfps", None) + self.log_level_config = sfp_config.get("log_level", LOG_WARNING_LEVEL) + # Init instance of SfpCust + ver = sfp_config.get("ver", None) + if ver is None: + self._sfplog(LOG_ERROR_LEVEL, "Get Ver Config Error!") + vers = int(float(ver)) + if vers == 1: + self._sfp_api = SfpV1(index) + elif vers == 2: + self._sfp_api = SfpV2(index) + else: + self._sfplog(LOG_ERROR_LEVEL, "Get SfpVer Error!") + + def get_eeprom_path(self): + return self._sfp_api._get_eeprom_path() + + def read_eeprom(self, offset, num_bytes): + return self._sfp_api.read_eeprom(offset, num_bytes) + + def get_presence(self): + return self._sfp_api.get_presence() + + def get_transceiver_info(self): + # temporary solution for a sonic202111 bug + transceiver_info = super().get_transceiver_info() + try: + if transceiver_info is not None and transceiver_info["vendor_rev"] is not None: + transceiver_info["hardware_rev"] = transceiver_info["vendor_rev"] + except BaseException: + print(traceback.format_exc()) + return None + return transceiver_info + + def get_reset_status(self): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'SFP': + self._sfplog(LOG_ERROR_LEVEL, 'SFP does not support reset') + return False + + ret = self._sfp_api.get_reset_status() + return ret + + def reset(self): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'SFP': + self._sfplog(LOG_ERROR_LEVEL, 'SFP does not support reset') + return False + + self._sfplog(LOG_DEBUG_LEVEL, 'resetting...') + ret = self._sfp_api.set_reset(True) + if ret: + time.sleep(0.5) + ret = self._sfp_api.set_reset(False) + + return ret + + def get_lpmode(self): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'QSFP' or self.sfp_type == 'QSFP-DD': + return SfpOptoeBase.get_lpmode(self) + + self._sfplog(LOG_WARNING_LEVEL, 'SFP does not support lpmode') + return False + + def set_lpmode(self, lpmode): + if self.get_presence() is False: + return False + + if self.sfp_type is None or self._xcvr_api is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'QSFP-DD' or self.sfp_type == 'QSFP': + return SfpOptoeBase.set_lpmode(self, lpmode) + + self._sfplog(LOG_WARNING_LEVEL, 'SFP does not support lpmode') + return False + + def get_tx_disable(self): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'SFP': + return self._sfp_api.get_tx_disable() + + return SfpOptoeBase.get_tx_disable(self) + + def get_tx_disable_channel(self): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'SFP': + return self._sfp_api.get_tx_disable_channel() + + return SfpOptoeBase.get_tx_disable_channel(self) + + def tx_disable(self, tx_disable): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'SFP': + return self._sfp_api.set_tx_disable(tx_disable) + + return SfpOptoeBase.tx_disable(self, tx_disable) + + def tx_disable_channel(self, channel, disable): + if self.get_presence() is False: + return False + + if self.sfp_type is None: + self.refresh_xcvr_api() + + if self.sfp_type == 'SFP': + self._sfplog(LOG_WARNING_LEVEL, 'SFP does not support tx disable channel') + return False + + return SfpOptoeBase.tx_disable_channel(self, channel, disable) + + def set_optoe_write_max(self, write_max): + """ + This func is declared and implemented by SONiC but we're not supported + so override it as NotImplemented + """ + self._sfplog(LOG_DEBUG_LEVEL, "set_optoe_write_max NotImplemented") + + def refresh_xcvr_api(self): + """ + Updates the XcvrApi associated with this SFP + """ + self._xcvr_api = self._xcvr_api_factory.create_xcvr_api() + class_name = self._xcvr_api.__class__.__name__ + optoe_type = None + # set sfp_type + if 'CmisApi' in class_name: + self.sfp_type = 'QSFP-DD' + optoe_type = self.OPTOE_DRV_TYPE3 + elif 'Sff8472Api' in class_name: + self.sfp_type = 'SFP' + optoe_type = self.OPTOE_DRV_TYPE2 + elif ('Sff8636Api' in class_name or 'Sff8436Api' in class_name): + self.sfp_type = 'QSFP' + optoe_type = self.OPTOE_DRV_TYPE1 + # set optoe driver + if optoe_type is not None: + self._sfp_api.set_optoe_type(optoe_type) + + def _sfplog(self, log_level, msg): + if log_level >= self.log_level_config: + try: + syslog.openlog("Sfp") + if log_level == LOG_DEBUG_LEVEL: + syslog.syslog(syslog.LOG_DEBUG, msg) + elif log_level == LOG_WARNING_LEVEL: + syslog.syslog(syslog.LOG_DEBUG, msg) + elif log_level == LOG_ERROR_LEVEL: + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + + except BaseException: + print(traceback.format_exc()) + + +class SfpCust(): + def __init__(self, index): + self.eeprom_path = None + self._init_config(index) + + def _init_config(self, index): + sfp_config = baseutil.get_config().get("sfps", None) + self.log_level_config = sfp_config.get("log_level", LOG_WARNING_LEVEL) + self._port_id = index + self.eeprom_retry_times = sfp_config.get("eeprom_retry_times", 0) + self.eeprom_retry_break_sec = sfp_config.get("eeprom_retry_break_sec", 0) + + def _get_eeprom_path(self): + return self.eeprom_path or None + + @abstractmethod + def get_presence(self): + pass + + def read_eeprom(self, offset, num_bytes): + try: + for i in range(self.eeprom_retry_times): + with open(self._get_eeprom_path(), mode='rb', buffering=0) as f: + f.seek(offset) + result = f.read(num_bytes) + # temporary solution for a sonic202111 bug + if len(result) < num_bytes: + result = result[::-1].zfill(num_bytes)[::-1] + if result is not None: + return bytearray(result) + time.sleep(self.eeprom_retry_break_sec) + continue + + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return None + + def write_eeprom(self, offset, num_bytes, write_buffer): + try: + for i in range(self.eeprom_retry_times): + ret = SfpOptoeBase.write_eeprom(self, offset, num_bytes, write_buffer) + if ret is False: + time.sleep(self.eeprom_retry_break_sec) + continue + break + + return ret + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + + @abstractmethod + def set_optoe_type(self, optoe_type): + pass + + @abstractmethod + def set_reset(self, reset): + pass + + def _convert_str_range_to_int_arr(self, range_str): + if not range_str: + return [] + + int_range_strs = range_str.split(',') + range_res = [] + for int_range_str in int_range_strs: + if '-' in int_range_str: + range_s = int(int_range_str.split('-')[0]) + range_e = int(int_range_str.split('-')[1]) + 1 + else: + range_s = int(int_range_str) + range_e = int(int_range_str) + 1 + + range_res = range_res + list(range(range_s, range_e)) + + return range_res + + def _sfplog(self, log_level, msg): + if log_level >= self.log_level_config: + try: + syslog.openlog("SfpCust") + if log_level == LOG_DEBUG_LEVEL: + syslog.syslog(syslog.LOG_DEBUG, msg) + elif log_level == LOG_WARNING_LEVEL: + syslog.syslog(syslog.LOG_DEBUG, msg) + elif log_level == LOG_ERROR_LEVEL: + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + + except BaseException: + print(traceback.format_exc()) + + +class SfpV1(SfpCust): + def _init_config(self, index): + super()._init_config(index) + # init presence path + sfp_config = baseutil.get_config().get("sfps", None) + + eeprom_path_config = sfp_config.get("eeprom_path", None) + eeprom_path_key = sfp_config.get("eeprom_path_key")[self._port_id - 1] + self.eeprom_path = None if eeprom_path_config is None else eeprom_path_config % ( + eeprom_path_key, eeprom_path_key) + self._sfplog(LOG_DEBUG_LEVEL, "Done init eeprom path: %s" % self.eeprom_path) + + self.presence_cpld = sfp_config.get("presence_cpld", None) + self.presence_val_is_present = sfp_config.get("presence_val_is_present", 0) + self._sfplog(LOG_DEBUG_LEVEL, "Done init presence path") + + # init reset path + self.reset_cpld = sfp_config.get("reset_cpld", None) + self.reset_val_is_reset = sfp_config.get("reset_val_is_reset", 0) + self._sfplog(LOG_DEBUG_LEVEL, "Done init cpld path") + + # init tx_disable path + self.txdis_cpld = sfp_config.get("txdis_cpld", None) + self.txdisable_val_is_on = sfp_config.get("txdisable_val_is_on", 0) + self._sfplog(LOG_DEBUG_LEVEL, "Done init cpld tx_disable path") + + def get_presence(self): + if self.presence_cpld is None: + self._sfplog(LOG_ERROR_LEVEL, "presence_cpld is None!") + return False + try: + dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.presence_cpld) + ret, info = platform_reg_read(0, dev_id, offset, 1) + if (ret is False + or info is None): + return False + return info[0] & (1 << offset_bit) == self.presence_val_is_present + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + + def get_reset_status(self): + if self.reset_cpld is None: + self._sfplog(LOG_ERROR_LEVEL, "reset_cpld is None!") + return False + try: + dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.reset_cpld) + ret, info = platform_reg_read(0, dev_id, offset, 1) + if (ret is False + or info is None): + self._sfplog(LOG_ERROR_LEVEL, "platform_reg_read error!") + return False + + return (info[0] & (1 << offset_bit) == self.reset_val_is_reset) + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + + def get_tx_disable(self): + if self.reset_cpld is None: + self._sfplog(LOG_ERROR_LEVEL, "txdis_cpld is None!") + return None + + try: + tx_disable_list = [] + dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.txdis_cpld) + ret, info = platform_reg_read(0, dev_id, offset, 1) + if (ret is False + or info is None): + self._sfplog(LOG_ERROR_LEVEL, "platform_reg_read error!") + return None + if self.txdisable_val_is_on == 1: + tx_disable_list.append(info[0] & (1 << offset_bit) != 0) + else: + tx_disable_list.append(info[0] & (1 << offset_bit) == 0) + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return None + + return tx_disable_list + + def get_tx_disable_channel(self): + tx_disable_list = [] + tx_disable_list = self.get_tx_disable() + if tx_disable_list is None: + return 0 + + tx_disabled = 0 + for i in range(len(tx_disable_list)): + if tx_disable_list[i]: + tx_disabled |= 1 << i + + return tx_disabled + + def read_eeprom(self, offset, num_bytes): + try: + for i in range(self.eeprom_retry_times): + ret, info = platform_sfp_read(self._port_id, offset, num_bytes) + if (ret is False + or info is None): + time.sleep(self.eeprom_retry_break_sec) + continue + eeprom_raw = [] + for i in range(0, num_bytes): + eeprom_raw.append(0) + for n in range(0, len(info)): + eeprom_raw[n] = info[n] + # temporary solution for a sonic202111 bug + if len(eeprom_raw) < num_bytes: + eeprom_raw = eeprom_raw[::-1].zfill(num_bytes)[::-1] + return bytearray(eeprom_raw) + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return None + + def set_optoe_type(self, optoe_type): + ret, info = platform_get_optoe_type(self._port_id) + if ret is True and info != optoe_type: + try: + ret, _ = platform_set_optoe_type(self._port_id, optoe_type) + except Exception as err: + self._sfplog(LOG_ERROR_LEVEL, "Set optoe err %s" % err) + + def set_reset(self, reset): + if self.reset_cpld is None: + self._sfplog(LOG_ERROR_LEVEL, "reset_cpld is None!") + return False + try: + val = [] + dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.reset_cpld) + ret, info = platform_reg_read(0, dev_id, offset, 1) + if (ret is False + or info is None): + self._sfplog(LOG_ERROR_LEVEL, "platform_reg_read error!") + return False + + if self.reset_val_is_reset == 0: + if reset: + val.append(info[0] & (~(1 << offset_bit))) + else: + val.append(info[0] | (1 << offset_bit)) + else: + if reset: + val.append(info[0] | (1 << offset_bit)) + else: + val.append(info[0] & (~(1 << offset_bit))) + + ret, info = platform_reg_write(0, dev_id, offset, val) + if ret is False: + self._sfplog(LOG_ERROR_LEVEL, "platform_reg_write error!") + return False + + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + + return True + + def set_tx_disable(self, tx_disable): + if self.txdis_cpld is None: + self._sfplog(LOG_ERROR_LEVEL, "txdis_cpld is None!") + return False + try: + val = [] + dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.txdis_cpld) + ret, info = platform_reg_read(0, dev_id, offset, 1) + if (ret is False + or info is None): + self._sfplog(LOG_ERROR_LEVEL, "platform_reg_read error!") + return False + + if self.txdisable_val_is_on == 0: + if tx_disable: + val.append(info[0] & (~(1 << offset_bit))) + else: + val.append(info[0] | (1 << offset_bit)) + else: + if tx_disable: + val.append(info[0] | (1 << offset_bit)) + else: + val.append(info[0] & (~(1 << offset_bit))) + + ret, info = platform_reg_write(0, dev_id, offset, val) + if ret is False: + self._sfplog(LOG_ERROR_LEVEL, "platform_reg_write error!") + return False + + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + + return True + + def _get_sfp_cpld_info(self, cpld_config): + dev_id = 0 + offset = 0 + + for dev_id_temp in cpld_config["dev_id"]: + for offset_temp in cpld_config["dev_id"][dev_id_temp]["offset"]: + port_range_str = cpld_config["dev_id"][dev_id_temp]["offset"][offset_temp] + port_range_int = self._convert_str_range_to_int_arr(port_range_str) + if self._port_id in port_range_int: + dev_id = dev_id_temp + offset = offset_temp + offset_bit = port_range_int.index(self._port_id) + break + + return dev_id, offset, offset_bit + + +class SfpV2(SfpCust): + def _init_config(self, index): + super()._init_config(index) + # init eeprom path + sfp_config = baseutil.get_config().get("sfps", None) + eeprom_path_config = sfp_config.get("eeprom_path", None) + eeprom_path_key = sfp_config.get("eeprom_path_key")[self._port_id - 1] + self.eeprom_path = None if eeprom_path_config is None else eeprom_path_config % ( + eeprom_path_key, eeprom_path_key) + self._sfplog(LOG_DEBUG_LEVEL, "Done init eeprom path: %s" % self.eeprom_path) + + # init presence path + self.presence_path = None if sfp_config.get("presence_path", + None) is None else sfp_config.get("presence_path") % self._port_id + self.presence_val_is_present = sfp_config.get("presence_val_is_present", 0) + self._sfplog(LOG_DEBUG_LEVEL, "Done init presence path: %s" % self.presence_path) + + # init optoe driver path + optoe_driver_path = sfp_config.get("optoe_driver_path", None) + optoe_driver_key = sfp_config.get("optoe_driver_key")[self._port_id - 1] + self.dev_class_path = None if optoe_driver_path is None else optoe_driver_path % ( + optoe_driver_key, optoe_driver_key) + self._sfplog(LOG_DEBUG_LEVEL, "Done init optoe driver path: %s" % self.dev_class_path) + + # init reset path + self.reset_path = None if sfp_config.get( + "reset_path", + None) is None else sfp_config.get( + "reset_path", + None) % self._port_id + self.reset_val_is_reset = sfp_config.get("reset_val_is_reset", 0) + self._sfplog(LOG_DEBUG_LEVEL, "Done init reset path: %s" % self.reset_path) + + def get_presence(self): + if self.presence_path is None: + self._sfplog(LOG_ERROR_LEVEL, "presence_path is None!") + return False + try: + with open(self.presence_path, "rb") as data: + sysfs_data = data.read(1) + if sysfs_data != "": + result = int(sysfs_data, 16) + return result == self.presence_val_is_present + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + + def set_reset(self, reset): + return True + + def set_optoe_type(self, optoe_type): + if self.dev_class_path is None: + self._sfplog(LOG_ERROR_LEVEL, "dev_class_path is None!") + return False + try: + with open(self.dev_class_path, "r+") as dc_file: + dc_file_val = dc_file.read(1) + if int(dc_file_val) != optoe_type: + dc_str = "%s" % str(optoe_type) + dc_file.write(dc_str) + # dc_file.close() + except BaseException: + self._sfplog(LOG_ERROR_LEVEL, traceback.format_exc()) + return False + return True diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/thermal.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/thermal.py new file mode 100644 index 000000000000..4632de3bc1e4 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/thermal.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 + +######################################################################## +# +# Module contains an implementation of SONiC Platform Base API and +# provides the Thermals' information which are available in the platform +# +######################################################################## + + +try: + import time + from sonic_platform_base.thermal_base import ThermalBase +except ImportError as e: + raise ImportError(str(e) + "- required module not found") from e + + +class Thermal(ThermalBase): + + def __init__(self, interface_obj, index): + self.temp_dict = {} + self.temperature_list = [] + self.int_case = interface_obj + self.index = index + self.update_time = 0 + self.temp_id = "TEMP" + str(index) + + def temp_dict_update(self): + local_time = time.time() + if not self.temp_dict or (local_time - self.update_time) >= 1: # update data every 1 seconds + self.update_time = local_time + self.temp_dict = self.int_case.get_monitor_temp_by_id(self.temp_id) + + def get_name(self): + """ + Retrieves the name of the thermal + + Returns: + string: The name of the thermal + """ + self.temp_dict_update() + return self.temp_dict["Api_name"] + + def get_presence(self): + """ + Retrieves the presence of the thermal + + Returns: + bool: True if thermal is present, False if not + """ + return True + + def get_model(self): + """ + Retrieves the model number (or part number) of the Thermal + + Returns: + string: Model/part number of Thermal + """ + return "N/A" + + def get_serial(self): + """ + Retrieves the serial number of the Thermal + + Returns: + string: Serial number of Thermal + """ + return "N/A" + + def get_revision(self): + """ + Retrieves the hardware revision of the device + + Returns: + string: Revision value of device + """ + return "N/A" + + def get_status(self): + """ + Retrieves the operational status of the thermal + + Returns: + A boolean value, True if thermal is operating properly, + False if not + """ + self.temp_dict_update() + if (self.temp_dict["Value"] >= self.temp_dict["High"]) or (self.temp_dict["Value"] <= self.temp_dict["Low"]): + return False + + return True + + def get_position_in_parent(self): + """ + Retrieves 1-based relative physical position in parent device. If the agent cannot determine the parent-relative position + for some reason, or if the associated value of entPhysicalContainedIn is '0', then the value '-1' is returned + Returns: + integer: The 1-based relative physical position in parent device or -1 if cannot determine the position + """ + return -1 + + def is_replaceable(self): + """ + Indicate whether this device is replaceable. + Returns: + bool: True if it is replaceable. + """ + return False + + def get_temperature(self): + """ + Retrieves current temperature reading from thermal + + Returns: + A float number of current temperature in Celsius up to nearest thousandth + of one degree Celsius, e.g. 30.125 + """ + self.temp_dict_update() + value = self.temp_dict["Value"] + if value is None or value == self.int_case.error_ret: + return "N/A" + if len(self.temperature_list) >= 1000: + del self.temperature_list[0] + self.temperature_list.append(float(value)) + return round(float(value), 1) + + def get_high_threshold(self): + """ + Retrieves the high threshold temperature of thermal + + Returns: + A float number, the high threshold temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + self.temp_dict_update() + value = self.temp_dict["High"] + if value is None or value == self.int_case.error_ret: + return "N/A" + return round(float(value), 1) + + def get_low_threshold(self): + """ + Retrieves the low threshold temperature of thermal + + Returns: + A float number, the low threshold temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + self.temp_dict_update() + value = self.temp_dict["Low"] + if value is None or value == self.int_case.error_ret: + return "N/A" + return round(float(value), 1) + + def set_high_threshold(self, temperature): + """ + Sets the high threshold temperature of thermal + + Args : + temperature: A float number up to nearest thousandth of one degree Celsius, + e.g. 30.125 + + Returns: + A boolean, True if threshold is set successfully, False if not + """ + # not supported + return False + + def set_low_threshold(self, temperature): + """ + Sets the low threshold temperature of thermal + + Args : + temperature: A float number up to nearest thousandth of one degree Celsius, + e.g. 30.125 + + Returns: + A boolean, True if threshold is set successfully, False if not + """ + # not supported + return False + + def get_high_critical_threshold(self): + """ + Retrieves the high critical threshold temperature of thermal + + Returns: + A float number, the high critical threshold temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + self.temp_dict_update() + value = self.temp_dict["Max"] + if value is None or value == self.int_case.error_ret: + return "N/A" + return round(float(value), 1) + + def get_low_critical_threshold(self): + """ + Retrieves the low critical threshold temperature of thermal + + Returns: + A float number, the low critical threshold temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + self.temp_dict_update() + value = self.temp_dict["Min"] + if value is None or value == self.int_case.error_ret: + return "N/A" + return round(float(value), 1) + + def get_minimum_recorded(self): + """ + Retrieves the minimum recorded temperature of thermal + + Returns: + A float number, the minimum recorded temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + if len(self.temperature_list) == 0: + return "N/A" + return round(float(min(self.temperature_list)), 1) + + def get_maximum_recorded(self): + """ + Retrieves the maximum recorded temperature of thermal + + Returns: + A float number, the maximum recorded temperature of thermal in Celsius + up to nearest thousandth of one degree Celsius, e.g. 30.125 + """ + if len(self.temperature_list) == 0: + return "N/A" + return round(float(max(self.temperature_list)), 1) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/watchdog.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/watchdog.py new file mode 100644 index 000000000000..948337f47a9a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/watchdog.py @@ -0,0 +1,236 @@ +#!/usr/bin/env python3 + +######################################################################## +# +# +# Abstract base class for implementing a platform-specific class with +# which to interact with a hardware watchdog module in SONiC +# +######################################################################## + +import fcntl +import os +import array + +try: + from sonic_platform_base.watchdog_base import WatchdogBase +except ImportError as error: + raise ImportError(str(error) + "- required module not found") from error + + +# ioctl constants +IO_WRITE = 0x40000000 +IO_READ = 0x80000000 +IO_READ_WRITE = 0xC0000000 +IO_SIZE_INT = 0x00040000 +IO_SIZE_40 = 0x00280000 +IO_TYPE_WATCHDOG = ord('W') << 8 + +WDR_INT = IO_READ | IO_SIZE_INT | IO_TYPE_WATCHDOG +WDR_40 = IO_READ | IO_SIZE_40 | IO_TYPE_WATCHDOG +WDWR_INT = IO_READ_WRITE | IO_SIZE_INT | IO_TYPE_WATCHDOG + +# Watchdog ioctl command +WDIOC_GETSUPPORT = 0 | WDR_40 +WDIOC_GETSTATUS = 1 | WDR_INT +WDIOC_GETBOOTSTATUS = 2 | WDR_INT +WDIOC_GETTEMP = 3 | WDR_INT +WDIOC_SETOPTIONS = 4 | WDR_INT +WDIOC_KEEPALIVE = 5 | WDR_INT +WDIOC_SETTIMEOUT = 6 | WDWR_INT +WDIOC_GETTIMEOUT = 7 | WDR_INT +WDIOC_SETPRETIMEOUT = 8 | WDWR_INT +WDIOC_GETPRETIMEOUT = 9 | WDR_INT +WDIOC_GETTIMELEFT = 10 | WDR_INT + +# Watchdog status constants +WDIOS_DISABLECARD = 0x0001 +WDIOS_ENABLECARD = 0x0002 + +WDT_COMMON_ERROR = -1 +WDT_IDENTITY = "CPLD Watchdog" +WDT_SYSFS_PATH = "/sys/class/watchdog/" + +DEFAULT_TIMEOUT = 180 + + +class Watchdog(WatchdogBase): + """ + Abstract base class for interfacing with a hardware watchdog module + """ + + def __init__(self): + self.watchdog, self.wdt_main_dev_name = self._get_wdt() + self.status_path = "/sys/class/watchdog/%s/status" % self.wdt_main_dev_name + self.state_path = "/sys/class/watchdog/%s/state" % self.wdt_main_dev_name + self.timeout_path = "/sys/class/watchdog/%s/timeout" % self.wdt_main_dev_name + # Set default value + self._disable() + self.armed = False + self.timeout = self._gettimeout() + + def _is_wd_main(self, dev): + """ + Checks watchdog identity + """ + identity = self._read_file( + "{}/{}/identity".format(WDT_SYSFS_PATH, dev)) + return identity == WDT_IDENTITY + + def _get_wdt(self): + """ + Retrieves watchdog device + """ + wdt_main_dev_list = [dev for dev in os.listdir( + "/dev/") if dev.startswith("watchdog") and self._is_wd_main(dev)] + if not wdt_main_dev_list: + return None + wdt_main_dev_name = wdt_main_dev_list[0] + watchdog_device_path = "/dev/{}".format(wdt_main_dev_name) + watchdog = os.open(watchdog_device_path, os.O_RDWR) + return watchdog, wdt_main_dev_name + + def _read_file(self, file_path): + """ + Read text file + """ + try: + with open(file_path, "r") as fd: + txt = fd.read() + except IOError: + return WDT_COMMON_ERROR + return txt.strip() + + def _enable(self): + """ + Turn on the watchdog timer + """ + req = array.array('h', [WDIOS_ENABLECARD]) + fcntl.ioctl(self.watchdog, WDIOC_SETOPTIONS, req, False) + + def _disable(self): + """ + Turn off the watchdog timer + """ + req = array.array('h', [WDIOS_DISABLECARD]) + fcntl.ioctl(self.watchdog, WDIOC_SETOPTIONS, req, False) + + def _keepalive(self): + """ + Keep alive watchdog timer + """ + fcntl.ioctl(self.watchdog, WDIOC_KEEPALIVE) + + def _settimeout(self, seconds): + """ + Set watchdog timer timeout + @param seconds - timeout in seconds + @return is the actual set timeout + """ + req = array.array('I', [seconds]) + fcntl.ioctl(self.watchdog, WDIOC_SETTIMEOUT, req, True) + return int(req[0]) + + def _gettimeout(self): + """ + Get watchdog timeout + @return watchdog timeout + """ + req = array.array('I', [0]) + fcntl.ioctl(self.watchdog, WDIOC_GETTIMEOUT, req, True) + + return int(req[0]) + + def _gettimeleft(self): + """ + Get time left before watchdog timer expires + @return time left in seconds + """ + req = array.array('I', [0]) + fcntl.ioctl(self.watchdog, WDIOC_GETTIMELEFT, req, True) + + return int(req[0]) + + def arm(self, seconds): + """ + Arm the hardware watchdog with a timeout of seconds. + If the watchdog is currently armed, calling this function will + simply reset the timer to the provided value. If the underlying + hardware does not support the value provided in , this + method should arm the watchdog with the *next greater* available + value. + + Returns: + An integer specifying the *actual* number of seconds the watchdog + was armed with. On failure returns -1. + """ + ret = WDT_COMMON_ERROR + if seconds < 0: + return ret + + try: + if self.timeout != seconds: + self.timeout = self._settimeout(seconds) + if self.armed: + self._keepalive() + else: + self._settimeout(seconds) + self._enable() + self.armed = True + ret = self.timeout + except IOError: + pass + + return ret + + def disarm(self): + """ + Disarm the hardware watchdog + + Returns: + A boolean, True if watchdog is disarmed successfully, False if not + """ + disarmed = False + if self.is_armed(): + try: + self._disable() + self.armed = False + disarmed = True + except IOError: + pass + + return disarmed + + def is_armed(self): + """ + Retrieves the armed state of the hardware watchdog. + + Returns: + A boolean, True if watchdog is armed, False if not + """ + return self.armed + + def get_remaining_time(self): + """ + If the watchdog is armed, retrieve the number of seconds remaining on + the watchdog timer + + Returns: + An integer specifying the number of seconds remaining on thei + watchdog timer. If the watchdog is not armed, returns -1. + """ + timeleft = WDT_COMMON_ERROR + + if self.armed: + try: + timeleft = self._gettimeleft() + except IOError: + pass + + return timeleft + + def __del__(self): + """ + Close watchdog + """ + os.close(self.watchdog) diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/changelog b/platform/broadcom/sonic-platform-modules-micas/debian/changelog new file mode 100644 index 000000000000..d908208c5e37 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/changelog @@ -0,0 +1,5 @@ +sonic-micas-platform-modules (1.0) unstable; urgency=low + + * Initial release + + -- support Fri, 21 APR 2017 11:11:11 -0800 diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/compat b/platform/broadcom/sonic-platform-modules-micas/debian/compat new file mode 100644 index 000000000000..f599e28b8ab0 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/compat @@ -0,0 +1 @@ +10 diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/control b/platform/broadcom/sonic-platform-modules-micas/debian/control new file mode 100644 index 000000000000..fde544a790aa --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/control @@ -0,0 +1,33 @@ +Source: sonic-micas-platform-modules +Section: main +Priority: extra +Maintainer: support +Standards-Version: 3.9.3 + +Package: platform-modules-micas-m2-w6510-48v8c +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + +Package: platform-modules-micas-m2-w6510-32c +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + +Package: platform-modules-micas-m2-w6910-64c +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + +Package: platform-modules-micas-m2-w6920-4s +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + +Package: platform-modules-micas-m2-w6520-24dc8qc +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + +Package: platform-modules-micas-m2-w6930-64qc +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp + +Package: platform-modules-micas-m2-w6510-48gt4v +Architecture: amd64 +Description: kernel modules for platform devices such as fan, led, sfp \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/copyright b/platform/broadcom/sonic-platform-modules-micas/debian/copyright new file mode 100644 index 000000000000..676cdeec726b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/copyright @@ -0,0 +1,15 @@ +Copyright (C) 2016 Microsoft, 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 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-micas/debian/platform-modules-micas-m2-w6510-48v8c.install b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.install new file mode 100644 index 000000000000..6f3e9b257f5d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.install @@ -0,0 +1 @@ +m2-w6510-48v8c/modules/sonic_platform-1.0-py3-none-any.whl /usr/share/sonic/device/x86_64-micas_m2-w6510-48v8c-r0 diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.postinst b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.postinst new file mode 100644 index 000000000000..a8132f4f65a9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6510-48v8c.postinst @@ -0,0 +1,10 @@ +#!/bin/sh +# postinst + +kernel_version=$(uname -r) + +if [ -e /boot/System.map-${kernel_version} ]; then + depmod -a -F /boot/System.map-${kernel_version} ${kernel_version} || true +fi + +#DEBHELPER# diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.install b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.install new file mode 100644 index 000000000000..3a94db8f4428 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.install @@ -0,0 +1 @@ +m2-w6520-24dc8qc/modules/sonic_platform-1.0-py3-none-any.whl /usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0 diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.postinst b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.postinst new file mode 100644 index 000000000000..a8132f4f65a9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/platform-modules-micas-m2-w6520-24dc8qc.postinst @@ -0,0 +1,10 @@ +#!/bin/sh +# postinst + +kernel_version=$(uname -r) + +if [ -e /boot/System.map-${kernel_version} ]; then + depmod -a -F /boot/System.map-${kernel_version} ${kernel_version} || true +fi + +#DEBHELPER# diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/rule.mk b/platform/broadcom/sonic-platform-modules-micas/debian/rule.mk new file mode 100644 index 000000000000..ecff497c92cf --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/rule.mk @@ -0,0 +1,6 @@ +currentdir = $(shell pwd) + +MODULE_DIRS := m2-w6510-48v8c +MODULE_DIRS += m2-w6520-24dc8qc + +export MODULE_DIRS diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/rules b/platform/broadcom/sonic-platform-modules-micas/debian/rules new file mode 100755 index 000000000000..e801ef47f459 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/debian/rules @@ -0,0 +1,92 @@ +#!/usr/bin/make -f +CC=gcc +INSTALL_MOD_DIR:=extra +KVERSION ?= $(shell uname -r) +KERNEL_SRC := /lib/modules/$(KVERSION) +MOD_SRC_DIR:= $(shell pwd) +KBUILD_OUTPUT=$(KERNEL_SRC)/build + +LIB_DIR = usr/lib/python3/dist-packages +CUSTOM_RULES_DIR := $(shell pwd)/debian + +export INSTALL_MOD_DIR top_srcdir KVERSION KERNEL_SRC CC KBUILD_OUTPUT CUSTOM_RULES_DIR + +include $(CUSTOM_RULES_DIR)/rule.mk + +#all product need common +COMPILE_DIRS = $(MODULE_DIRS) + +clean_dirs = $(MODULE_DIRS) +clean_dirs += common + +complie_clean_dirs := $(addprefix _clean_,$(clean_dirs) ) + +%: + dh $@ +build: COMPILE_WHL + @echo "build success" + +$(complie_clean_dirs): + $(MAKE) -C $(patsubst _clean_%,%,$@) clean + +common_build : + $(MAKE) -C $(MOD_SRC_DIR)/common + +$(COMPILE_DIRS): common_build + $(MAKE) -C $(MOD_SRC_DIR)/$@ + dh_testdir + dh_installdirs + cp -r $(MOD_SRC_DIR)/common/build/* debian/platform-modules-micas-$@/; \ + cp -r $(MOD_SRC_DIR)/$@/build/* debian/platform-modules-micas-$@/; \ + +COMPILE_WHL: $(COMPILE_DIRS) + @(for mod in $(MODULE_DIRS); do \ + cd $(MOD_SRC_DIR)/$${mod}; \ + cp -r $(MOD_SRC_DIR)/common/lib/plat_hal $(MOD_SRC_DIR)/$${mod}/; \ + cp -r $(MOD_SRC_DIR)/common/lib/wbutil $(MOD_SRC_DIR)/$${mod}/; \ + cp -r $(MOD_SRC_DIR)/common/lib/eepromutil $(MOD_SRC_DIR)/$${mod}/; \ + cp -r $(MOD_SRC_DIR)/common/sonic_platform $(MOD_SRC_DIR)/$${mod}/; \ + cp $(MOD_SRC_DIR)/common/script/hal_pltfm.py $(MOD_SRC_DIR)/$${mod}/hal_pltfm.py; \ + cp $(MOD_SRC_DIR)/common/script/platform_util.py $(MOD_SRC_DIR)/$${mod}/platform_util.py; \ + cp $(MOD_SRC_DIR)/common/script/platform_intf.py $(MOD_SRC_DIR)/$${mod}/platform_intf.py; \ + python3 setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/plat_hal; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/wbutil; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/eepromutil; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/sonic_platform; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/hal_pltfm.py; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/platform_intf.py; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/platform_util.py; \ + cd $(MOD_SRC_DIR); \ + done) + +binary: binary-indep + @echo "=======================================================" + +binary-indep: + # 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 +override_dh_usrlocal: + +override_dh_pysupport: + +clean: $(complie_clean_dirs) + dh_testdir + dh_testroot + dh_clean + +.PHONY: build $(COMPILE_DIRS) binary binary-arch binary-indep clean diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/cpld_test_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/cpld_test_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..083fd78f3ea1919d9d3737fe0d8d0c7b8b2ce881 GIT binary patch literal 406 zcmaiu!AgWc7{^Cl9GwWZEU4QY>mrW2O9%#{v#rqDVj^@}T%AMUt^?Upr*1u1&(K43 z?FnqO2k^UmA0NNppMS~gYSXfp);#POTEzEsNrQ-{S16)+_OzzH_2yb`frh&jGzynN zocKiSc%1|*>JQ(XrjPMM;vcLbWx(?lMPV9>2xnduTlc0w*NEL#8!^N-$!~cVJr}!X zU*U-Hx_RHReT%cEsj*`cOSm-1L@17ejCweGWq851n7EkCz1hsO3AQcUK?q#pT+$Q+ zaP`9Ix{m7r0$EYyqaQexPBa5Reu@nVOwPd9@%QJs+)cP9_xx1wT$jWNHKXIBQctQq VsrNb@^ic_@K=0eZ|8`^i#~;mYW4-_Y literal 0 HcmV?d00001 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin new file mode 100644 index 000000000000..bdf9ae2139e2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin @@ -0,0 +1,10 @@ +fpga_test_header.bin +FILEHEADER( +DEVTYPE=0x404a +TYPE=fpga +CHAIN=3 +CHIPNAME=fpga +VERSION=v0 +FILETYPE=SPI-LOGIC-DEV +CRC=0x00000000 +) diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile new file mode 100644 index 000000000000..1b84abef410a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile @@ -0,0 +1,28 @@ +PWD = $(shell pwd) +DIR_KERNEL_SRC = $(PWD)/modules/driver +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall +SUB_BUILD_DIR = $(PWD)/build +INSTALL_DIR = $(SUB_BUILD_DIR)/$(KERNEL_SRC)/$(INSTALL_MOD_DIR) +INSTALL_SCRIPT_DIR = $(SUB_BUILD_DIR)/usr/local/bin +INSTALL_LIB_DIR = $(SUB_BUILD_DIR)/usr/lib/python3/dist-packages +INSTALL_SYSFS_CFG_DIR = $(SUB_BUILD_DIR)/etc/plat_sysfs_cfg +INSTALL_UPGRADE_TEST_DIR = $(SUB_BUILD_DIR)/etc/.upgrade_test + +all: + $(MAKE) -C $(KBUILD_OUTPUT) M=$(DIR_KERNEL_SRC) modules + @if [ ! -d ${INSTALL_DIR} ]; then mkdir -p ${INSTALL_DIR} ;fi + cp -r $(DIR_KERNEL_SRC)/*.ko $(INSTALL_DIR) + @if [ ! -d ${INSTALL_SCRIPT_DIR} ]; then mkdir -p ${INSTALL_SCRIPT_DIR} ;fi + cp -r $(PWD)/config/* $(INSTALL_SCRIPT_DIR) + @if [ ! -d ${INSTALL_LIB_DIR} ]; then mkdir -p ${INSTALL_LIB_DIR} ;fi + @if [ -d $(PWD)/hal-config/ ]; then cp -r $(PWD)/hal-config/* ${INSTALL_LIB_DIR} ;fi + @if [ ! -d ${INSTALL_SYSFS_CFG_DIR} ]; then mkdir -p ${INSTALL_SYSFS_CFG_DIR} ;fi + @if [ -d $(PWD)/plat_sysfs_cfg/ ]; then cp -r $(PWD)/plat_sysfs_cfg/* ${INSTALL_SYSFS_CFG_DIR} ;fi + @if [ ! -d ${INSTALL_UPGRADE_TEST_DIR} ]; then mkdir -p ${INSTALL_UPGRADE_TEST_DIR} ;fi + @if [ -d $(PWD)/.upgrade_test/ ]; then cp -r $(PWD)/.upgrade_test/* ${INSTALL_UPGRADE_TEST_DIR} ;fi +clean: + rm -f ${DIR_KERNEL_SRC}/*.o ${DIR_KERNEL_SRC}/*.ko ${DIR_KERNEL_SRC}/*.mod.c ${DIR_KERNEL_SRC}/.*.cmd + rm -f ${DIR_KERNEL_SRC}/Module.markers ${DIR_KERNEL_SRC}/Module.symvers ${DIR_KERNEL_SRC}/modules.order + rm -rf ${DIR_KERNEL_SRC}/.tmp_versions + rm -rf $(SUB_BUILD_DIR) diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py new file mode 100755 index 000000000000..5aef2f7a3086 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py @@ -0,0 +1,1110 @@ +#!/usr/bin/python +# -*- coding: UTF-8 -*- +from platform_common import * + +STARTMODULE = { + "hal_fanctrl": 1, + "hal_ledctrl": 1, + "avscontrol": 1, + "dev_monitor": 1, + "pmon_syslog": 1, + "tty_console": 1, + "macledreset": 1, + "sff_temp_polling": 1, + "generate_airflow": 1, + "reboot_cause": 1, +} + +MAC_LED_RESET = {"pcibus": 8, "slot": 0, "fn": 0, "bar": 0, "offset": 64, "reset": 0x98} + +MANUINFO_CONF = { + "bios": { + "key": "BIOS", + "head": True, + "next": "onie" + }, + "bios_vendor": { + "parent": "bios", + "key": "Vendor", + "cmd": "dmidecode -t 0 |grep Vendor", + "pattern": r".*Vendor", + "separator": ":", + "arrt_index": 1, + }, + "bios_version": { + "parent": "bios", + "key": "Version", + "cmd": "dmidecode -t 0 |grep Version", + "pattern": r".*Version", + "separator": ":", + "arrt_index": 2, + }, + "bios_date": { + "parent": "bios", + "key": "Release Date", + "cmd": "dmidecode -t 0 |grep Release", + "pattern": r".*Release Date", + "separator": ":", + "arrt_index": 3, + }, + "onie": { + "key": "ONIE", + "next": "cpu" + }, + "onie_date": { + "parent": "onie", + "key": "Build Date", + "file": "/host/machine.conf", + "pattern": r"^onie_build_date", + "separator": "=", + "arrt_index": 1, + }, + "onie_version": { + "parent": "onie", + "key": "Version", + "file": "/host/machine.conf", + "pattern": r"^onie_version", + "separator": "=", + "arrt_index": 2, + }, + + "cpu": { + "key": "CPU", + "next": "ssd" + }, + "cpu_vendor": { + "parent": "cpu", + "key": "Vendor", + "cmd": "dmidecode --type processor |grep Manufacturer", + "pattern": r".*Manufacturer", + "separator": ":", + "arrt_index": 1, + }, + "cpu_model": { + "parent": "cpu", + "key": "Device Model", + "cmd": "dmidecode --type processor | grep Version", + "pattern": r".*Version", + "separator": ":", + "arrt_index": 2, + }, + "cpu_core": { + "parent": "cpu", + "key": "Core Count", + "cmd": "dmidecode --type processor | grep \"Core Count\"", + "pattern": r".*Core Count", + "separator": ":", + "arrt_index": 3, + }, + "cpu_thread": { + "parent": "cpu", + "key": "Thread Count", + "cmd": "dmidecode --type processor | grep \"Thread Count\"", + "pattern": r".*Thread Count", + "separator": ":", + "arrt_index": 4, + }, + "ssd": { + "key": "SSD", + "next": "cpld" + }, + "ssd_model": { + "parent": "ssd", + "key": "Device Model", + "cmd": "smartctl -i /dev/sda |grep \"Device Model\"", + "pattern": r".*Device Model", + "separator": ":", + "arrt_index": 1, + }, + "ssd_fw": { + "parent": "ssd", + "key": "Firmware Version", + "cmd": "smartctl -i /dev/sda |grep \"Firmware Version\"", + "pattern": r".*Firmware Version", + "separator": ":", + "arrt_index": 2, + }, + "ssd_user_cap": { + "parent": "ssd", + "key": "User Capacity", + "cmd": "smartctl -i /dev/sda |grep \"User Capacity\"", + "pattern": r".*User Capacity", + "separator": ":", + "arrt_index": 3, + }, + + "cpld": { + "key": "CPLD", + "next": "psu" + }, + + "cpld1": { + "key": "CPLD1", + "parent": "cpld", + "arrt_index": 1, + }, + "cpld1_model": { + "key": "Device Model", + "parent": "cpld1", + "config": "LCMXO3LF-2100C-5BG256C", + "arrt_index": 1, + }, + "cpld1_vender": { + "key": "Vendor", + "parent": "cpld1", + "config": "LATTICE", + "arrt_index": 2, + }, + "cpld1_desc": { + "key": "Description", + "parent": "cpld1", + "config": "CPU_CPLD", + "arrt_index": 3, + }, + "cpld1_version": { + "key": "Firmware Version", + "parent": "cpld1", + "reg": { + "loc": "/dev/port", + "offset": 0x700, + "size": 4 + }, + "callback": "cpld_format", + "arrt_index": 4, + }, + + "cpld2": { + "key": "CPLD2", + "parent": "cpld", + "arrt_index": 2, + }, + "cpld2_model": { + "key": "Device Model", + "parent": "cpld2", + "config": "LCMXO3LF-2100C-5BG256C", + "arrt_index": 1, + }, + "cpld2_vender": { + "key": "Vendor", + "parent": "cpld2", + "config": "LATTICE", + "arrt_index": 2, + }, + "cpld2_desc": { + "key": "Description", + "parent": "cpld2", + "config": "CONNECT_CPLD", + "arrt_index": 3, + }, + "cpld2_version": { + "key": "Firmware Version", + "parent": "cpld2", + "reg": { + "loc": "/dev/port", + "offset": 0x900, + "size": 4 + }, + "callback": "cpld_format", + "arrt_index": 4, + }, + + "cpld3": { + "key": "CPLD3", + "parent": "cpld", + "arrt_index": 3, + }, + "cpld3_model": { + "key": "Device Model", + "parent": "cpld3", + "config": "LCMXO3LF-2100C-5BG256C", + "arrt_index": 1, + }, + "cpld3_vender": { + "key": "Vendor", + "parent": "cpld3", + "config": "LATTICE", + "arrt_index": 2, + }, + "cpld3_desc": { + "key": "Description", + "parent": "cpld3", + "config": "CONNECT_CPLD-FAN", + "arrt_index": 3, + }, + "cpld3_version": { + "key": "Firmware Version", + "parent": "cpld3", + "i2c": { + "bus": "2", + "loc": "0x0d", + "offset": 0, + "size": 4 + }, + "callback": "cpld_format", + "arrt_index": 4, + }, + + "cpld4": { + "key": "CPLD4", + "parent": "cpld", + "arrt_index": 4, + }, + "cpld4_model": { + "key": "Device Model", + "parent": "cpld4", + "config": "LCMXO3LF-2100C-5BG256C", + "arrt_index": 1, + }, + "cpld4_vender": { + "key": "Vendor", + "parent": "cpld4", + "config": "LATTICE", + "arrt_index": 2, + }, + "cpld4_desc": { + "key": "Description", + "parent": "cpld4", + "config": "MAC_CPLD1", + "arrt_index": 3, + }, + "cpld4_version": { + "key": "Firmware Version", + "parent": "cpld4", + "i2c": { + "bus": "8", + "loc": "0x30", + "offset": 0, + "size": 4 + }, + "callback": "cpld_format", + "arrt_index": 4, + }, + + "cpld5": { + "key": "CPLD5", + "parent": "cpld", + "arrt_index": 5, + }, + "cpld5_model": { + "key": "Device Model", + "parent": "cpld5", + "config": "LCMXO3LF-2100C-5BG256C", + "arrt_index": 1, + }, + "cpld5_vender": { + "key": "Vendor", + "parent": "cpld5", + "config": "LATTICE", + "arrt_index": 2, + }, + "cpld5_desc": { + "key": "Description", + "parent": "cpld5", + "config": "MAC_CPLD2", + "arrt_index": 3, + }, + "cpld5_version": { + "key": "Firmware Version", + "parent": "cpld5", + "i2c": { + "bus": "8", + "loc": "0x31", + "offset": 0, + "size": 4 + }, + "callback": "cpld_format", + "arrt_index": 4, + }, + + "psu": { + "key": "PSU", + "next": "fan" + }, + + "psu1": { + "parent": "psu", + "key": "PSU1", + "arrt_index": 1, + }, + "psu1_hw_version": { + "key": "Hardware Version", + "parent": "psu1", + "extra": { + "funcname": "getPsu", + "id": "psu1", + "key": "hw_version" + }, + "arrt_index": 1, + }, + "psu1_fw_version": { + "key": "Firmware Version", + "parent": "psu1", + "config": "NA", + "arrt_index": 2, + }, + + "psu2": { + "parent": "psu", + "key": "PSU2", + "arrt_index": 2, + }, + "psu2_hw_version": { + "key": "Hardware Version", + "parent": "psu2", + "extra": { + "funcname": "getPsu", + "id": "psu2", + "key": "hw_version" + }, + "arrt_index": 1, + }, + "psu2_fw_version": { + "key": "Firmware Version", + "parent": "psu2", + "config": "NA", + "arrt_index": 2, + }, + + "fan": { + "key": "FAN", + "next": "i210" + }, + + "fan1": { + "key": "FAN1", + "parent": "fan", + "arrt_index": 1, + }, + "fan1_hw_version": { + "key": "Hardware Version", + "parent": "fan1", + "extra": { + "funcname": "checkFan", + "id": "fan1", + "key": "hw_version" + }, + "arrt_index": 1, + }, + "fan1_fw_version": { + "key": "Firmware Version", + "parent": "fan1", + "config": "NA", + "arrt_index": 2, + }, + + "fan2": { + "key": "FAN2", + "parent": "fan", + "arrt_index": 2, + }, + "fan2_hw_version": { + "key": "Hardware Version", + "parent": "fan2", + "extra": { + "funcname": "checkFan", + "id": "fan2", + "key": "hw_version" + }, + "arrt_index": 1, + }, + "fan2_fw_version": { + "key": "Firmware Version", + "parent": "fan2", + "config": "NA", + "arrt_index": 2, + }, + + "fan3": { + "key": "FAN3", + "parent": "fan", + "arrt_index": 3, + }, + "fan3_hw_version": { + "key": "Hardware Version", + "parent": "fan3", + "extra": { + "funcname": "checkFan", + "id": "fan3", + "key": "hw_version" + }, + "arrt_index": 1, + }, + "fan3_fw_version": { + "key": "Firmware Version", + "parent": "fan3", + "config": "NA", + "arrt_index": 2, + }, + + "fan4": { + "key": "FAN4", + "parent": "fan", + "arrt_index": 4, + }, + "fan4_hw_version": { + "key": "Hardware Version", + "parent": "fan4", + "extra": { + "funcname": "checkFan", + "id": "fan4", + "key": "hw_version" + }, + "arrt_index": 1, + }, + "fan4_fw_version": { + "key": "Firmware Version", + "parent": "fan4", + "config": "NA", + "arrt_index": 2, + }, + + "i210": { + "key": "NIC", + "next": "fpga" + }, + "i210_model": { + "parent": "i210", + "config": "NA", + "key": "Device Model", + "arrt_index": 1, + }, + "i210_vendor": { + "parent": "i210", + "config": "INTEL", + "key": "Vendor", + "arrt_index": 2, + }, + "i210_version": { + "parent": "i210", + "cmd": "ethtool -i eth0", + "pattern": r"firmware-version", + "separator": ":", + "key": "Firmware Version", + "arrt_index": 3, + }, + + "fpga": { + "key": "FPGA", + "next": "asic" + }, + "fpga_model": { + "parent": "fpga", + "config": "XC7A15T-2FGG484C", + "key": "Device Model", + "arrt_index": 1, + }, + "fpga_vendor": { + "parent": "fpga", + "config": "XILINX", + "key": "Vendor", + "arrt_index": 2, + }, + "fpga_desc": { + "parent": "fpga", + "config": "NA", + "key": "Description", + "arrt_index": 3, + }, + "fpga_hw_version": { + "parent": "fpga", + "config": "NA", + "key": "Hardware Version", + "arrt_index": 4, + }, + "fpga_fw_version": { + "parent": "fpga", + "pci": { + "bus": 8, + "slot": 0, + "fn": 0, + "bar": 0, + "offset": 0 + }, + "key": "Firmware Version", + "arrt_index": 5, + }, + "fpga_date": { + "parent": "fpga", + "pci": { + "bus": 8, + "slot": 0, + "fn": 0, + "bar": 0, + "offset": 4 + }, + "key": "Build Date", + "arrt_index": 6, + }, + "asic": { + "key": "ASIC", + }, + "sdk_model": { + "parent": "asic", + "cmd": "bcmcmd -t 1 att", + "pattern": r"^Attach", + "regular": r"(?<=\()[^)]*(?=\))", + "key": "Device Model", + "arrt_index": 1, + }, + "sdk_version": { + "parent": "asic", + "cmd": "bcmcmd -t 1 version | grep Release", + "pattern": r".*Release", + "separator": ":", + "key": "SDK Version", + "arrt_index": 2, + }, + "pci_version": { + "parent": "asic", + "cmd": "bcmcmd -t 1 \"pciephy fw version\" |grep \"PCIe FW version\"", + "pattern": r".*PCIe FW version", + "separator": ":", + "key": "PCIe Firmware Version", + "arrt_index": 3, + }, +} + +PMON_SYSLOG_STATUS = { + "polling_time": 3, + "sffs": { + "present": {"path": ["/sys/wb_plat/sff/*/present"], "ABSENT": 0}, + "nochangedmsgflag": 0, + "nochangedmsgtime": 60, + "noprintfirsttimeflag": 1, + "alias": { + "sff1": "Ethernet1", + "sff2": "Ethernet2", + "sff3": "Ethernet3", + "sff4": "Ethernet4", + "sff5": "Ethernet5", + "sff6": "Ethernet6", + "sff7": "Ethernet7", + "sff8": "Ethernet8", + "sff9": "Ethernet9", + "sff10": "Ethernet10", + "sff11": "Ethernet11", + "sff12": "Ethernet12", + "sff13": "Ethernet13", + "sff14": "Ethernet14", + "sff15": "Ethernet15", + "sff16": "Ethernet16", + "sff17": "Ethernet17", + "sff18": "Ethernet18", + "sff19": "Ethernet19", + "sff20": "Ethernet20", + "sff21": "Ethernet21", + "sff22": "Ethernet22", + "sff23": "Ethernet23", + "sff24": "Ethernet24", + "sff25": "Ethernet25", + "sff26": "Ethernet26", + "sff27": "Ethernet27", + "sff28": "Ethernet28", + "sff29": "Ethernet29", + "sff30": "Ethernet30", + "sff31": "Ethernet31", + "sff32": "Ethernet32", + "sff33": "Ethernet33", + "sff34": "Ethernet34", + "sff35": "Ethernet35", + "sff36": "Ethernet36", + "sff37": "Ethernet37", + "sff38": "Ethernet38", + "sff39": "Ethernet39", + "sff40": "Ethernet40", + "sff41": "Ethernet41", + "sff42": "Ethernet42", + "sff43": "Ethernet43", + "sff44": "Ethernet44", + "sff45": "Ethernet45", + "sff46": "Ethernet46", + "sff47": "Ethernet47", + "sff48": "Ethernet48", + "sff49": "Ethernet49", + "sff50": "Ethernet50", + "sff51": "Ethernet51", + "sff52": "Ethernet52", + "sff53": "Ethernet53", + "sff54": "Ethernet54", + "sff55": "Ethernet55", + "sff56": "Ethernet56", + } + }, + "fans": { + "present": {"path": ["/sys/wb_plat/fan/*/present"], "ABSENT": 0}, + "status": [ + {"path": "/sys/wb_plat/fan/%s/motor0/status", 'okval': 1}, + {"path": "/sys/wb_plat/fan/%s/motor1/status", 'okval': 1}, + ], + "nochangedmsgflag": 1, + "nochangedmsgtime": 60, + "noprintfirsttimeflag": 0, + "alias": { + "fan1": "FAN1", + "fan2": "FAN2", + "fan3": "FAN3", + "fan4": "FAN4" + } + }, + "psus": { + "present": {"path": ["/sys/wb_plat/psu/*/present"], "ABSENT": 0}, + "status": [ + {"path": "/sys/wb_plat/psu/%s/output", "okval": 1}, + {"path": "/sys/wb_plat/psu/%s/alert", "okval": 0}, + ], + "nochangedmsgflag": 1, + "nochangedmsgtime": 60, + "noprintfirsttimeflag": 0, + "alias": { + "psu1": "PSU1", + "psu2": "PSU2" + } + } +} + +##################### MAC Voltage adjust#################################### +MAC_DEFAULT_PARAM = [ + { + "name": "mac_core", # AVS name + "type": 1, # 1: used default value, if rov value not in range. 0: do nothing, if rov value not in range + "default": 0x74, # default value, if rov value not in range + "sdkreg": "TOP_AVS_SEL_REG", # SDK register name + "sdktype": 0, # 0: No shift operation required, 1: shift operation required + "macregloc": 24, # Shift right 24 bits + "mask": 0xff, # Use with macregloc + "rov_source": 1, # 0:get rov value from cpld, 1: get rov value from SDK + "cpld_avs": {"bus": 6, "loc": 0x0d, "offset": 0xc3, "gettype": "i2c"}, + "set_avs": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/avs0_vout", + "gettype": "sysfs", "formula": "int((%f)*1000000)" + }, + "mac_avs_param": { + 0x08: 0.888, + 0x72: 0.900, + 0x73: 0.894, + 0x74: 0.888, + 0x75: 0.882, + 0x76: 0.875, + 0x77: 0.869, + 0x78: 0.863, + 0x79: 0.857, + 0x7a: 0.850, + 0x7b: 0.844, + 0x7c: 0.838, + 0x7d: 0.832, + 0x7e: 0.825, + 0x7f: 0.819, + 0x80: 0.813, + 0x81: 0.807, + 0x82: 0.800, + 0x83: 0.794, + 0x84: 0.788, + 0x85: 0.782, + 0x86: 0.775, + 0x87: 0.769, + 0x88: 0.763, + 0x89: 0.757, + 0x8A: 0.750 + } + } +] + +BLACKLIST_DRIVERS = [ + {"name": "i2c_i801", "delay": 0}, +] + +DRIVERLISTS = [ + {"name": "wb_i2c_i801", "delay": 0}, + {"name": "wb_gpio_d1500", "delay": 0}, + {"name": "i2c_dev", "delay": 0}, + {"name": "wb_i2c_algo_bit", "delay": 0}, + {"name": "wb_i2c_gpio", "delay": 0}, + {"name": "i2c_mux", "delay": 0}, + {"name": "wb_gpio_device", "delay": 0}, + {"name": "wb_i2c_gpio_device gpio_sda=17 gpio_scl=1 gpio_udelay=2", "delay": 0}, + {"name": "platform_common dfd_my_type=0x404a", "delay": 0}, + {"name": "wb_lpc_drv", "delay": 0}, + {"name": "wb_lpc_drv_device", "delay": 0}, + {"name": "wb_io_dev", "delay": 0}, + {"name": "wb_io_dev_device", "delay": 0}, + {"name": "wb_fpga_pcie", "delay": 0}, + {"name": "wb_pcie_dev", "delay": 0}, + {"name": "wb_pcie_dev_device", "delay": 0}, + {"name": "wb_i2c_dev", "delay": 0}, + {"name": "wb_i2c_ocores", "delay": 0}, + {"name": "wb_i2c_ocores_device", "delay": 0}, + {"name": "wb_i2c_mux_pca9641", "delay": 0}, + {"name": "wb_i2c_mux_pca954x", "delay": 0}, + {"name": "wb_i2c_mux_pca954x_device", "delay": 0}, + {"name": "wb_i2c_dev_device", "delay": 0}, + {"name": "wb_lm75", "delay": 0}, + {"name": "wb_optoe", "delay": 0}, + {"name": "wb_at24", "delay": 0}, + {"name": "wb_mac_bsc", "delay": 0}, + {"name": "wb_pmbus_core", "delay": 0}, + {"name": "wb_isl68137", "delay": 0}, + {"name": "wb_csu550", "delay": 0}, + {"name": "wb_ina3221", "delay": 0}, + {"name": "wb_tps53622", "delay": 0}, + {"name": "firmware_driver_cpld", "delay": 0}, + {"name": "firmware_driver_ispvme", "delay": 0}, + {"name": "firmware_driver_sysfs", "delay": 0}, + {"name": "wb_firmware_upgrade_device", "delay": 0}, + {"name": "plat_dfd", "delay": 0}, + {"name": "plat_switch", "delay": 0}, + {"name": "plat_fan", "delay": 0}, + {"name": "plat_psu", "delay": 0}, + {"name": "plat_sff", "delay": 0}, +] + +DEVICE = [ + {"name": "wb_24c02", "bus": 0, "loc": 0x56}, + {"name": "wb_mac_bsc_td3", "bus": 3, "loc": 0x44}, + # fan + {"name": "wb_24c02", "bus": 16, "loc": 0x50}, + {"name": "wb_24c02", "bus": 17, "loc": 0x50}, + {"name": "wb_24c02", "bus": 18, "loc": 0x50}, + {"name": "wb_24c02", "bus": 19, "loc": 0x50}, + # psu + {"name": "wb_24c02", "bus": 24, "loc": 0x50}, + {"name": "wb_dps550", "bus": 24, "loc": 0x58}, + {"name": "wb_24c02", "bus": 25, "loc": 0x50}, + {"name": "wb_dps550", "bus": 25, "loc": 0x58}, + # temp + {"name": "wb_lm75", "bus": 3, "loc": 0x48}, + {"name": "wb_lm75", "bus": 3, "loc": 0x49}, + {"name": "wb_lm75", "bus": 3, "loc": 0x4a}, + {"name": "wb_lm75", "bus": 3, "loc": 0x4b}, + {"name": "wb_lm75", "bus": 3, "loc": 0x4c}, + # dcdc + {"name": "wb_ina3221", "bus": 7, "loc": 0x40}, + {"name": "wb_ina3221", "bus": 7, "loc": 0x41}, + {"name": "wb_ina3221", "bus": 7, "loc": 0x42}, + {"name": "wb_ina3221", "bus": 7, "loc": 0x43}, + {"name": "wb_tps53622", "bus": 7, "loc": 0x60}, + {"name": "wb_tps53622", "bus": 7, "loc": 0x6c}, + {"name": "wb_isl68127", "bus": 7, "loc": 0x64}, +] + +OPTOE = [ + {"name": "wb_optoe2", "startbus": 32, "endbus": 79}, + {"name": "wb_optoe1", "startbus": 80, "endbus": 87}, +] + +DEV_MONITOR_PARAM = { + "polling_time": 10, + "psus": [ + { + "name": "psu1", + "present": {"gettype": "i2c", "bus": 6, "loc": 0x0d, "offset": 0x51, "presentbit": 0, "okval": 0}, + "device": [ + {"id": "psu1pmbus", "name": "wb_dps550", "bus": 24, "loc": 0x58, "attr": "hwmon"}, + {"id": "psu1frue2", "name": "wb_24c02", "bus": 24, "loc": 0x50, "attr": "eeprom"}, + ], + }, + { + "name": "psu2", + "present": {"gettype": "i2c", "bus": 6, "loc": 0x0d, "offset": 0x51, "presentbit": 4, "okval": 0}, + "device": [ + {"id": "psu2pmbus", "name": "wb_dps550", "bus": 25, "loc": 0x58, "attr": "hwmon"}, + {"id": "psu2frue2", "name": "wb_24c02", "bus": 25, "loc": 0x50, "attr": "eeprom"}, + ], + }, + ], + "fans": [ + { + "name": "fan1", + "present": {"gettype": "i2c", "bus": 2, "loc": 0x0d, "offset": 0x30, "presentbit": 0, "okval": 0}, + "device": [ + {"id": "fan1frue2", "name": "24c02", "bus": 16, "loc": 0x50, "attr": "eeprom"}, + ], + }, + { + "name": "fan2", + "present": {"gettype": "i2c", "bus": 2, "loc": 0x0d, "offset": 0x30, "presentbit": 1, "okval": 0}, + "device": [ + {"id": "fan2frue2", "name": "24c02", "bus": 17, "loc": 0x50, "attr": "eeprom"}, + ], + }, + { + "name": "fan3", + "present": {"gettype": "i2c", "bus": 2, "loc": 0x0d, "offset": 0x30, "presentbit": 2, "okval": 0}, + "device": [ + {"id": "fan3frue2", "name": "24c02", "bus": 18, "loc": 0x50, "attr": "eeprom"}, + ], + }, + { + "name": "fan4", + "present": {"gettype": "i2c", "bus": 2, "loc": 0x0d, "offset": 0x30, "presentbit": 3, "okval": 0}, + "device": [ + {"id": "fan4frue2", "name": "24c02", "bus": 19, "loc": 0x50, "attr": "eeprom"}, + ], + }, + ], + "others": [ + { + "name": "eeprom", + "device": [ + {"id": "eeprom_1", "name": "wb_24c02", "bus": 0, "loc": 0x56, "attr": "eeprom"}, + ], + }, + { + "name": "lm75", + "device": [ + {"id": "lm75_1", "name": "wb_lm75", "bus": 3, "loc": 0x48, "attr": "hwmon"}, + {"id": "lm75_2", "name": "wb_lm75", "bus": 3, "loc": 0x49, "attr": "hwmon"}, + {"id": "lm75_3", "name": "wb_lm75", "bus": 3, "loc": 0x4a, "attr": "hwmon"}, + {"id": "lm75_4", "name": "wb_lm75", "bus": 3, "loc": 0x4b, "attr": "hwmon"}, + {"id": "lm75_5", "name": "wb_lm75", "bus": 3, "loc": 0x4c, "attr": "hwmon"}, + ], + }, + { + "name": "mac_bsc", + "device": [ + {"id": "mac_bsc_1", "name": "wb_mac_bsc_td3", "bus": 3, "loc": 0x44, "attr": "hwmon"}, + ], + }, + { + "name": "ina3221", + "device": [ + {"id": "ina3221_1", "name": "wb_ina3221", "bus": 7, "loc": 0x40, "attr": "hwmon"}, + {"id": "ina3221_2", "name": "wb_ina3221", "bus": 7, "loc": 0x41, "attr": "hwmon"}, + {"id": "ina3221_3", "name": "wb_ina3221", "bus": 7, "loc": 0x42, "attr": "hwmon"}, + {"id": "ina3221_4", "name": "wb_ina3221", "bus": 7, "loc": 0x43, "attr": "hwmon"}, + ], + }, + { + "name": "tps53622", + "device": [ + {"id": "tps53622_1", "name": "wb_tps53622", "bus": 7, "loc": 0x60, "attr": "hwmon"}, + {"id": "tps53622_2", "name": "wb_tps53622", "bus": 7, "loc": 0x6c, "attr": "hwmon"}, + ], + }, + { + "name": "isl68127", + "device": [ + {"id": "isl68127_1", "name": "wb_isl68127", "bus": 7, "loc": 0x64, "attr": "hwmon"}, + ], + } + ], +} + +INIT_PARAM_PRE = [ + {"loc": "7-0064/hwmon/hwmon*/avs0_vout_max", "value": "900000"}, + {"loc": "7-0064/hwmon/hwmon*/avs0_vout_min", "value": "750000"}, +] +INIT_COMMAND_PRE = [ + "i2cset -y -f 6 0x0d 0x91 0x48", + "i2cset -y -f 6 0x0d 0x92 0x01", # MAC_PWR_EN + "i2cset -y -f 6 0x0d 0x94 0x01", # SFF_PWR_EN + "i2cset -y -f 6 0x0d 0xbf 0x01", # enbale tty_console monitor +] + +INIT_PARAM = [] + +INIT_COMMAND = [ + "i2cset -y -f 8 0x30 0x60 0x00", # enable txdis[1~8] + "i2cset -y -f 8 0x30 0x61 0x00", # enable txdis[9~16] + "i2cset -y -f 8 0x30 0x62 0x00", # enable txdis[17~24] + "i2cset -y -f 8 0x31 0x60 0x00", # enable txdis[24~32] + "i2cset -y -f 8 0x31 0x61 0x00", # enable txdis[33~40] + "i2cset -y -f 8 0x31 0x62 0x00", # enable txdis[41~48] +] + +REBOOT_CAUSE_PARA = { + "reboot_cause_list": [ + { + "name": "otp_switch_reboot", + "monitor_point": {"gettype": "file_exist", "judge_file": "/etc/.otp_switch_reboot_flag", "okval": True}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "Thermal Overload: ASIC, ", + "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Thermal Overload: ASIC, ", + "path": "/etc/sonic/.reboot/.history-reboot-cause.txt", "file_max_size": 1 * 1024 * 1024} + ], + "finish_operation": [ + {"gettype": "cmd", "cmd": "rm -rf /etc/.otp_switch_reboot_flag"}, + ] + }, + { + "name": "otp_other_reboot", + "monitor_point": {"gettype": "file_exist", "judge_file": "/etc/.otp_other_reboot_flag", "okval": True}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "Thermal Overload: Other, ", + "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Thermal Overload: Other, ", + "path": "/etc/sonic/.reboot/.history-reboot-cause.txt", "file_max_size": 1 * 1024 * 1024} + ], + "finish_operation": [ + {"gettype": "cmd", "cmd": "rm -rf /etc/.otp_other_reboot_flag"}, + ] + }, + ], + "other_reboot_cause_record": [ + {"record_type": "file", "mode": "cover", "log": "Other, ", "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Other, ", "path": "/etc/sonic/.reboot/.history-reboot-cause.txt"} + ], +} + +UPGRADE_SUMMARY = { + "devtype": 0x404a, + + "slot0": { + "subtype": 0, + "VME": { + "chain1": { + "name": "VME_CPLD", + "is_support_warm_upg": 0, + }, + }, + + "SPI-LOGIC-DEV": { + "chain3": { + "name": "FPGA", + "is_support_warm_upg": 0, + }, + }, + + "MTD": { + "chain2": { + "name": "BIOS", + "is_support_warm_upg": 0, + "filesizecheck": 10240, # bios check file size, Unit: K + "init_cmd": [ + {"io_addr": 0x722, "value": 0x02, "gettype": "io"}, + {"cmd": "modprobe mtd", "gettype": "cmd"}, + {"cmd": "modprobe spi_nor", "gettype": "cmd"}, + {"cmd": "modprobe ofpart", "gettype": "cmd"}, + {"cmd": "modprobe intel_spi writeable=1", "gettype": "cmd"}, + {"cmd": "modprobe intel_spi_platform writeable=1", "gettype": "cmd"}, + ], + "finish_cmd": [ + {"cmd": "rmmod intel_spi_platform", "gettype": "cmd"}, + {"cmd": "rmmod intel_spi", "gettype": "cmd"}, + {"cmd": "rmmod ofpart", "gettype": "cmd"}, + {"cmd": "rmmod spi_nor", "gettype": "cmd"}, + {"cmd": "rmmod mtd", "gettype": "cmd"}, + ], + }, + }, + + "TEST": { + "cpld": [ + {"chain": 1, "file": "/etc/.upgrade_test/cpld_test_header.vme", "display_name": "CPLD"}, + ], + "fpga": [ + { + "chain": 3, + "file": "/etc/.upgrade_test/fpga_test_header.bin", + "display_name": "FPGA", + }, + ], + }, + }, + + "BMC": { + "name": "BMC", + "init_cmd": [ + ], + "finish_cmd": [], + }, +} + + +PLATFORM_E2_CONF = { + "fan": [ + { + "name": "fan1", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/16-0050/eeprom", + "e2_decode": [ + { + "area": "productInfoArea", "field": "productVersion", "decode_type": "func", "func_name": "fru_decode_hw" + }, + { + "area": "boardInfoArea", "field": "boardextra1", "decode_type": "func", "func_name": "fru_decode_hw" + }, + ], + }, + { + "name": "fan2", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/17-0050/eeprom", + "e2_decode": [ + { + "area": "productInfoArea", "field": "productVersion", "decode_type": "func", "func_name": "fru_decode_hw" + }, + { + "area": "boardInfoArea", "field": "boardextra1", "decode_type": "func", "func_name": "fru_decode_hw" + }, + ], + }, + { + "name": "fan3", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/18-0050/eeprom", + "e2_decode": [ + { + "area": "productInfoArea", "field": "productVersion", "decode_type": "func", "func_name": "fru_decode_hw" + }, + { + "area": "boardInfoArea", "field": "boardextra1", "decode_type": "func", "func_name": "fru_decode_hw" + }, + ], + }, + { + "name": "fan4", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/19-0050/eeprom", + "e2_decode": [ + { + "area": "productInfoArea", "field": "productVersion", "decode_type": "func", "func_name": "fru_decode_hw" + }, + { + "area": "boardInfoArea", "field": "boardextra1", "decode_type": "func", "func_name": "fru_decode_hw" + }, + ], + }, + ], + "psu": [ + {"name": "psu1", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/24-0050/eeprom"}, + {"name": "psu2", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/25-0050/eeprom"}, + ], + "syseeprom": [ + {"name": "syseeprom", "e2_type": "onie_tlv", "e2_path": "/sys/bus/i2c/devices/0-0056/eeprom"}, + ], +} + +AIR_FLOW_CONF = { + "psu_fan_airflow": { + "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "exhaust": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] + }, + + "fanairflow": { + "intake": ['M1HFAN III-F'], + "exhaust": ['M1HFAN III-R'] + }, + + "fans": [ + { + "name": "FAN1", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/16-0050/eeprom", + "area": "productInfoArea", "field": "productName", "decode": "fanairflow" + }, + { + "name": "FAN2", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/17-0050/eeprom", + "area": "productInfoArea", "field": "productName", "decode": "fanairflow" + }, + { + "name": "FAN3", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/18-0050/eeprom", + "area": "productInfoArea", "field": "productName", "decode": "fanairflow" + }, + { + "name": "FAN4", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/19-0050/eeprom", + "area": "productInfoArea", "field": "productName", "decode": "fanairflow" + } + ], + + "psus": [ + { + "name": "PSU1", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/24-0050/eeprom", + "area": "productInfoArea", "field": "productPartModelName", "decode": "psu_fan_airflow" + }, + { + "name": "PSU2", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/25-0050/eeprom", + "area": "productInfoArea", "field": "productPartModelName", "decode": "psu_fan_airflow" + } + ] +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_port_config.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_port_config.py new file mode 100755 index 000000000000..26f92a77a020 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_port_config.py @@ -0,0 +1,7 @@ +#!/usr/bin/python3 +# -*- coding: UTF-8 -*- + +PLATFORM_INTF_OPTOE = { + "port_num": 56, + "optoe_start_bus": 32, +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py new file mode 100755 index 000000000000..ccd9b2a465b5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py @@ -0,0 +1,1233 @@ +#!/usr/bin/python3 + +psu_fan_airflow = { + "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "exhaust": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] +} + +fanairflow = { + "intake": ['M1HFAN III-F'], + "exhaust": ['M1HFAN III-R'], +} + +psu_display_name = { + "PA550II-F": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "PA550II-R": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] +} + +psutypedecode = { + 0x00: 'N/A', + 0x01: 'AC', + 0x02: 'DC', +} + + +class Unit: + Temperature = "C" + Voltage = "V" + Current = "A" + Power = "W" + Speed = "RPM" + + +PSU_NOT_PRESENT_PWM = 100 + + +class threshold: + PSU_TEMP_MIN = -20 * 1000 + PSU_TEMP_MAX = 60 * 1000 + + PSU_FAN_SPEED_MIN = 2000 + PSU_FAN_SPEED_MAX = 18000 + + PSU_OUTPUT_VOLTAGE_MIN = 11 * 1000 + PSU_OUTPUT_VOLTAGE_MAX = 14 * 1000 + + PSU_AC_INPUT_VOLTAGE_MIN = 200 * 1000 + PSU_AC_INPUT_VOLTAGE_MAX = 240 * 1000 + + PSU_DC_INPUT_VOLTAGE_MIN = 190 * 1000 + PSU_DC_INPUT_VOLTAGE_MAX = 290 * 1000 + + ERR_VALUE = -9999999 + + PSU_OUTPUT_POWER_MIN = 10 * 1000 * 1000 + PSU_OUTPUT_POWER_MAX = 560 * 1000 * 1000 + + PSU_INPUT_POWER_MIN = 10 * 1000 * 1000 + PSU_INPUT_POWER_MAX = 625 * 1000 * 1000 + + PSU_OUTPUT_CURRENT_MIN = 1 * 1000 + PSU_OUTPUT_CURRENT_MAX = 45 * 1000 + + PSU_INPUT_CURRENT_MIN = 0 * 1000 + PSU_INPUT_CURRENT_MAX = 7 * 1000 + + FRONT_FAN_SPEED_MAX = 24000 + REAR_FAN_SPEED_MAX = 22500 + FAN_SPEED_MIN = 5000 + + +class Description: + CPLD = "Used for managing IO modules, SFP+ modules and system LEDs" + BIOS = "Performs initialization of hardware components during booting" + FPGA = "Platform management controller for on-board temperature monitoring, in-chassis power" + + +devices = { + "onie_e2": [ + { + "name": "ONIE_E2", + "e2loc": {"loc": "/sys/bus/i2c/devices/0-0056/eeprom", "way": "sysfs"}, + "airflow": "intake" + }, + ], + "psus": [ + { + "e2loc": {"loc": "/sys/bus/i2c/devices/24-0050/eeprom", "way": "sysfs"}, + "pmbusloc": {"bus": 24, "addr": 0x58, "way": "i2c"}, + "present": {"loc": "/sys/wb_plat/psu/psu1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "name": "PSU1", + "psu_display_name": psu_display_name, + "airflow": psu_fan_airflow, + "TempStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": threshold.PSU_TEMP_MIN, + "Max": threshold.PSU_TEMP_MAX, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "FanStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, + "FanSpeed": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, + "Min": threshold.PSU_FAN_SPEED_MIN, + "Max": threshold.PSU_FAN_SPEED_MAX, + "Unit": Unit.Speed + }, + "psu_fan_tolerance": 40, + "InputsStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x2000}, + "InputsType": {"bus": 24, "addr": 0x58, "offset": 0x80, "way": "i2c", 'psutypedecode': psutypedecode}, + "InputsVoltage": { + 'AC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_AC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_AC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + + }, + 'DC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + 'other': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.ERR_VALUE, + "Max": threshold.ERR_VALUE, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + } + }, + "InputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_CURRENT_MIN, + "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "InputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_POWER_MIN, + "Max": threshold.PSU_INPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + "OutputsStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, + "OutputsVoltage": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, + "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + "OutputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_CURRENT_MIN, + "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "OutputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_POWER_MIN, + "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + }, + { + "e2loc": {"loc": "/sys/bus/i2c/devices/25-0050/eeprom", "way": "sysfs"}, + "pmbusloc": {"bus": 25, "addr": 0x58, "way": "i2c"}, + "present": {"loc": "/sys/wb_plat/psu/psu2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "name": "PSU2", + "psu_display_name": psu_display_name, + "airflow": psu_fan_airflow, + "TempStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": threshold.PSU_TEMP_MIN, + "Max": threshold.PSU_TEMP_MAX, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "FanStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, + "FanSpeed": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, + "Min": threshold.PSU_FAN_SPEED_MIN, + "Max": threshold.PSU_FAN_SPEED_MAX, + "Unit": Unit.Speed + }, + "psu_fan_tolerance": 40, + "InputsStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x2000}, + "InputsType": {"bus": 25, "addr": 0x58, "offset": 0x80, "way": "i2c", 'psutypedecode': psutypedecode}, + "InputsVoltage": { + 'AC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_AC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_AC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + + }, + 'DC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + 'other': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.ERR_VALUE, + "Max": threshold.ERR_VALUE, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + } + }, + "InputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_CURRENT_MIN, + "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "InputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_POWER_MIN, + "Max": threshold.PSU_INPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + "OutputsStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, + "OutputsVoltage": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, + "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + "OutputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_CURRENT_MIN, + "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "OutputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_POWER_MIN, + "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + } + ], + "temps": [ + { + "name": "SWITCH_TEMP", + "temp_id": "TEMP1", + "api_name": "ASIC_TEMP", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-0044/hwmon/hwmon*/temp99_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 105000, + "Max": 110000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "CPU_TEMP", + "temp_id": "TEMP2", + "Temperature": { + "value": {"loc": "/sys/bus/platform/devices/coretemp.0/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -15000, + "Low": 0, + "High": 100000, + "Max": 102000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "INLET_TEMP", + "temp_id": "TEMP3", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-0048/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "fix_value": { + "fix_type": "config", + "addend": -3, + } + }, + { + "name": "OUTLET_TEMP", + "temp_id": "TEMP4", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-004c/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 75000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "BOARD_TEMP", + "temp_id": "TEMP5", + "api_name": "MAC_OUT_TEMP", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-004a/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 75000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "MAC_IN_TEMP", + "temp_id": "TEMP6", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-0049/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 75000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "PSU1_TEMP", + "temp_id": "TEMP7", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -20000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "PSU2_TEMP", + "temp_id": "TEMP8", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -20000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "SFF_TEMP", + "Temperature": { + "value": {"loc": "/tmp/highest_sff_temp", "way": "sysfs", "flock_path": "/tmp/highest_sff_temp"}, + "Min": -30000, + "Low": 0, + "High": 90000, + "Max": 100000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "invalid": -10000, + "error": -9999, + } + ], + "leds": [ + { + "name": "FRONT_SYS_LED", + "led_type": "SYS_LED", + "led": {"bus": 6, "addr": 0x0d, "offset": 0x72, "way": "i2c"}, + "led_attrs": { + "off": 0x00, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + }, + { + "name": "FRONT_PSU_LED", + "led_type": "PSU_LED", + "led": {"bus": 6, "addr": 0x0d, "offset": 0x73, "way": "i2c"}, + "led_attrs": { + "off": 0x10, "red_flash": 0x11, "red": 0x12, + "green_flash": 0x13, "green": 0x14, "amber_flash": 0x15, + "amber": 0x16, "mask": 0x17 + }, + }, + { + "name": "FRONT_FAN_LED", + "led_type": "FAN_LED", + "led": {"bus": 6, "addr": 0x0d, "offset": 0x74, "way": "i2c"}, + "led_attrs": { + "off": 0x10, "red_flash": 0x11, "red": 0x12, + "green_flash": 0x13, "green": 0x14, "amber_flash": 0x15, + "amber": 0x16, "mask": 0x17 + }, + }, + ], + "fans": [ + { + "name": "FAN1", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-16/16-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3b, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x14, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan1/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan1/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan1/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x14, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan1/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan1/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan1/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN2", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-17/17-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3c, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x15, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan2/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan2/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan2/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x15, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan2/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan2/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan2/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN3", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-18/18-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan3/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3d, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x16, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan3/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan3/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan3/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x16, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan3/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan3/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan3/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + + { + "name": "FAN4", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-19/19-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan4/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3e, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x17, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan4/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan4/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan4/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x17, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan4/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan4/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan4/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + + ], + "cplds": [ + { + "name": "CPU_CPLD", + "cpld_id": "CPLD1", + "VersionFile": {"loc": "/dev/cpld0", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for system power", + "slot": 0, + "warm": 0, + }, + { + "name": "CONNECT_CPLD", + "cpld_id": "CPLD2", + "VersionFile": {"loc": "/dev/cpld1", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for base functions", + "slot": 0, + "warm": 0, + }, + { + "name": "CONNECT_CPLD-FAN", + "cpld_id": "CPLD3", + "VersionFile": {"loc": "/dev/cpld2", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for fan modules", + "slot": 0, + "warm": 0, + }, + { + "name": "MAC_CPLD1", + "cpld_id": "CPLD4", + "VersionFile": {"loc": "/dev/cpld3", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for sff modules", + "slot": 0, + "warm": 0, + }, + { + "name": "MAC_CPLD2", + "cpld_id": "CPLD5", + "VersionFile": {"loc": "/dev/cpld4", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for sff modules", + "slot": 0, + "warm": 0, + }, + { + "name": "FPGA", + "cpld_id": "CPLD6", + "VersionFile": {"loc": "/dev/fpga0", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for base functions", + "slot": 0, + "format": "little_endian", + "warm": 0, + }, + { + "name": "BIOS", + "cpld_id": "CPLD7", + "VersionFile": {"cmd": "dmidecode -s bios-version", "way": "cmd"}, + "desc": "Performs initialization of hardware components during booting", + "slot": 0, + "type": "str", + "warm": 0, + }, + ], + "dcdc": [ + { + "name": "Switch_ZSFP1_3v3_C", + "dcdc_id": "DCDC1", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 22000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_QSFP1_3v3_C", + "dcdc_id": "DCDC2", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 22000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_5v0_C", + "dcdc_id": "DCDC3", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 1000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_ZSFP1_3v3_V", + "dcdc_id": "DCDC4", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_QSFP1_3v3_V", + "dcdc_id": "DCDC5", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_5v0_V", + "dcdc_id": "DCDC6", + "Min": 4000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 6000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_1v2_C", + "dcdc_id": "DCDC7", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_3v3_C", + "dcdc_id": "DCDC8", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 1000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_Cpld_3v3_C", + "dcdc_id": "DCDC9", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_1v2_V", + "dcdc_id": "DCDC10", + "Min": 960, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1440, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_3v3_V", + "dcdc_id": "DCDC11", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_Cpld_3v3_V", + "dcdc_id": "DCDC12", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_1v2_C", + "dcdc_id": "DCDC13", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 1300, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_3v3_C", + "dcdc_id": "DCDC14", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2800, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_SSD_3v3_C", + "dcdc_id": "DCDC15", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 4500, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_1v2_V", + "dcdc_id": "DCDC16", + "Min": 960, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1440, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_3v3_V", + "dcdc_id": "DCDC17", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_SSD_3v3_V", + "dcdc_id": "DCDC18", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_3v3_C", + "dcdc_id": "DCDC19", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 4686, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_5v_C", + "dcdc_id": "DCDC20", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v7_C", + "dcdc_id": "DCDC21", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_3v3_V", + "dcdc_id": "DCDC22", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_5v_V", + "dcdc_id": "DCDC23", + "Min": 4000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 6000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v7_V", + "dcdc_id": "DCDC24", + "Min": 1360, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 2040, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_CORE_C", + "dcdc_id": "DCDC25", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 47300, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v05_C", + "dcdc_id": "DCDC26", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 15400, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_CORE_V", + "dcdc_id": "DCDC27", + "Min": 1456, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 2184, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v05_V", + "dcdc_id": "DCDC28", + "Min": 840, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1260, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_CORE_C", + "dcdc_id": "DCDC29", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 220000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_ANALOG_C", + "dcdc_id": "DCDC30", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 18000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_CORE_V", + "dcdc_id": "DCDC31", + "Min": 600, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_ANALOG_V", + "dcdc_id": "DCDC32", + "Min": 640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v2_C", + "dcdc_id": "DCDC33", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 9900, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_2v23_C", + "dcdc_id": "DCDC34", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v2_V", + "dcdc_id": "DCDC35", + "Min": 960, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1440, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_2v23_V", + "dcdc_id": "DCDC36", + "Min": 1784, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 2676, + "format": "float(float(%s)/1000)", + }, + ], + "cpu": [ + { + "name": "cpu", + "reboot_cause_path": "/etc/sonic/.reboot/.previous-reboot-cause.txt" + } + ], + "sfps": { + "ver": '1.0', + "port_index_start": 1, + "port_num": 56, + "log_level": 2, + "eeprom_retry_times": 5, + "eeprom_retry_break_sec": 0.2, + "presence_cpld": { + "dev_id": { + 3: { + "offset": { + 0x30: "1-8", + 0x31: "9-16", + 0x32: "17-24", + }, + }, + 4: { + "offset": { + 0x30: "25-32", + 0x31: "33-40", + 0x32: "41-48", + 0x33: "49-56", + }, + }, + }, + }, + "presence_val_is_present": 0, + "eeprom_path": "/sys/bus/i2c/devices/i2c-%d/%d-0050/eeprom", + "eeprom_path_key": list(range(32, 88)), + "optoe_driver_path": "/sys/bus/i2c/devices/i2c-%d/%d-0050/dev_class", + "optoe_driver_key": list(range(32, 88)), + "txdis_cpld": { + "dev_id": { + 3: { + "offset": { + 0x60: "1-8", + 0x61: "9-16", + 0x62: "17-24", + }, + }, + 4: { + "offset": { + 0x60: "25-32", + 0x61: "33-40", + 0x62: "41-48", + }, + }, + }, + }, + "txdisable_val_is_on": 1, + "reset_cpld": { + "dev_id": { + 4: { + "offset": { + 0xb9: "49-56", + }, + }, + }, + }, + "reset_val_is_reset": 0, + } +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py new file mode 100755 index 000000000000..3fadc9cc4608 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py @@ -0,0 +1,1233 @@ +#!/usr/bin/python3 + +psu_fan_airflow = { + "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "exhaust": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] +} + +fanairflow = { + "intake": ['M1HFAN III-F'], + "exhaust": ['M1HFAN III-R'], +} + +psu_display_name = { + "PA550II-F": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "PA550II-R": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] +} + +psutypedecode = { + 0x00: 'N/A', + 0x01: 'AC', + 0x02: 'DC', +} + + +class Unit: + Temperature = "C" + Voltage = "V" + Current = "A" + Power = "W" + Speed = "RPM" + + +PSU_NOT_PRESENT_PWM = 100 + + +class threshold: + PSU_TEMP_MIN = -20 * 1000 + PSU_TEMP_MAX = 60 * 1000 + + PSU_FAN_SPEED_MIN = 2000 + PSU_FAN_SPEED_MAX = 18000 + + PSU_OUTPUT_VOLTAGE_MIN = 11 * 1000 + PSU_OUTPUT_VOLTAGE_MAX = 14 * 1000 + + PSU_AC_INPUT_VOLTAGE_MIN = 200 * 1000 + PSU_AC_INPUT_VOLTAGE_MAX = 240 * 1000 + + PSU_DC_INPUT_VOLTAGE_MIN = 190 * 1000 + PSU_DC_INPUT_VOLTAGE_MAX = 290 * 1000 + + ERR_VALUE = -9999999 + + PSU_OUTPUT_POWER_MIN = 10 * 1000 * 1000 + PSU_OUTPUT_POWER_MAX = 560 * 1000 * 1000 + + PSU_INPUT_POWER_MIN = 10 * 1000 * 1000 + PSU_INPUT_POWER_MAX = 625 * 1000 * 1000 + + PSU_OUTPUT_CURRENT_MIN = 1 * 1000 + PSU_OUTPUT_CURRENT_MAX = 45 * 1000 + + PSU_INPUT_CURRENT_MIN = 0 * 1000 + PSU_INPUT_CURRENT_MAX = 7 * 1000 + + FRONT_FAN_SPEED_MAX = 24000 + REAR_FAN_SPEED_MAX = 22500 + FAN_SPEED_MIN = 5000 + + +class Description: + CPLD = "Used for managing IO modules, SFP+ modules and system LEDs" + BIOS = "Performs initialization of hardware components during booting" + FPGA = "Platform management controller for on-board temperature monitoring, in-chassis power" + + +devices = { + "onie_e2": [ + { + "name": "ONIE_E2", + "e2loc": {"loc": "/sys/bus/i2c/devices/0-0056/eeprom", "way": "sysfs"}, + "airflow": "exhaust" + }, + ], + "psus": [ + { + "e2loc": {"loc": "/sys/bus/i2c/devices/24-0050/eeprom", "way": "sysfs"}, + "pmbusloc": {"bus": 24, "addr": 0x58, "way": "i2c"}, + "present": {"loc": "/sys/wb_plat/psu/psu1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "name": "PSU1", + "psu_display_name": psu_display_name, + "airflow": psu_fan_airflow, + "TempStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": threshold.PSU_TEMP_MIN, + "Max": threshold.PSU_TEMP_MAX, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "FanStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, + "FanSpeed": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, + "Min": threshold.PSU_FAN_SPEED_MIN, + "Max": threshold.PSU_FAN_SPEED_MAX, + "Unit": Unit.Speed + }, + "psu_fan_tolerance": 40, + "InputsStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x2000}, + "InputsType": {"bus": 24, "addr": 0x58, "offset": 0x80, "way": "i2c", 'psutypedecode': psutypedecode}, + "InputsVoltage": { + 'AC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_AC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_AC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + + }, + 'DC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + 'other': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.ERR_VALUE, + "Max": threshold.ERR_VALUE, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + } + }, + "InputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_CURRENT_MIN, + "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "InputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_POWER_MIN, + "Max": threshold.PSU_INPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + "OutputsStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, + "OutputsVoltage": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, + "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + "OutputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_CURRENT_MIN, + "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "OutputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_POWER_MIN, + "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + }, + { + "e2loc": {"loc": "/sys/bus/i2c/devices/25-0050/eeprom", "way": "sysfs"}, + "pmbusloc": {"bus": 25, "addr": 0x58, "way": "i2c"}, + "present": {"loc": "/sys/wb_plat/psu/psu2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "name": "PSU2", + "psu_display_name": psu_display_name, + "airflow": psu_fan_airflow, + "TempStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": threshold.PSU_TEMP_MIN, + "Max": threshold.PSU_TEMP_MAX, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "FanStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, + "FanSpeed": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, + "Min": threshold.PSU_FAN_SPEED_MIN, + "Max": threshold.PSU_FAN_SPEED_MAX, + "Unit": Unit.Speed + }, + "psu_fan_tolerance": 40, + "InputsStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x2000}, + "InputsType": {"bus": 25, "addr": 0x58, "offset": 0x80, "way": "i2c", 'psutypedecode': psutypedecode}, + "InputsVoltage": { + 'AC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_AC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_AC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + + }, + 'DC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + 'other': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.ERR_VALUE, + "Max": threshold.ERR_VALUE, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + } + }, + "InputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_CURRENT_MIN, + "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "InputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_POWER_MIN, + "Max": threshold.PSU_INPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + "OutputsStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, + "OutputsVoltage": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, + "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + "OutputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_CURRENT_MIN, + "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "OutputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_POWER_MIN, + "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + } + ], + "temps": [ + { + "name": "SWITCH_TEMP", + "temp_id": "TEMP1", + "api_name": "ASIC_TEMP", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-0044/hwmon/hwmon*/temp99_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 105000, + "Max": 110000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "CPU_TEMP", + "temp_id": "TEMP2", + "Temperature": { + "value": {"loc": "/sys/bus/platform/devices/coretemp.0/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -15000, + "Low": 0, + "High": 100000, + "Max": 102000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "INLET_TEMP", + "temp_id": "TEMP3", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-004c/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "fix_value": { + "fix_type": "config", + "addend": -3, + } + }, + { + "name": "OUTLET_TEMP", + "temp_id": "TEMP4", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-0048/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 75000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "BOARD_TEMP", + "temp_id": "TEMP5", + "api_name": "MAC_OUT_TEMP", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-0049/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 75000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "MAC_IN_TEMP", + "temp_id": "TEMP6", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/3-004a/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -30000, + "Low": 0, + "High": 75000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "PSU1_TEMP", + "temp_id": "TEMP7", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -20000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "PSU2_TEMP", + "temp_id": "TEMP8", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -20000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "SFF_TEMP", + "Temperature": { + "value": {"loc": "/tmp/highest_sff_temp", "way": "sysfs", "flock_path": "/tmp/highest_sff_temp"}, + "Min": -30000, + "Low": 0, + "High": 90000, + "Max": 100000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "invalid": -10000, + "error": -9999, + } + ], + "leds": [ + { + "name": "FRONT_SYS_LED", + "led_type": "SYS_LED", + "led": {"bus": 6, "addr": 0x0d, "offset": 0x72, "way": "i2c"}, + "led_attrs": { + "off": 0x00, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + }, + { + "name": "FRONT_PSU_LED", + "led_type": "PSU_LED", + "led": {"bus": 6, "addr": 0x0d, "offset": 0x73, "way": "i2c"}, + "led_attrs": { + "off": 0x10, "red_flash": 0x11, "red": 0x12, + "green_flash": 0x13, "green": 0x14, "amber_flash": 0x15, + "amber": 0x16, "mask": 0x17 + }, + }, + { + "name": "FRONT_FAN_LED", + "led_type": "FAN_LED", + "led": {"bus": 6, "addr": 0x0d, "offset": 0x74, "way": "i2c"}, + "led_attrs": { + "off": 0x10, "red_flash": 0x11, "red": 0x12, + "green_flash": 0x13, "green": 0x14, "amber_flash": 0x15, + "amber": 0x16, "mask": 0x17 + }, + }, + ], + "fans": [ + { + "name": "FAN1", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-16/16-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3b, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x14, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan1/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan1/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan1/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x14, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan1/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan1/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan1/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN2", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-17/17-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3c, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x15, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan2/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan2/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan2/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x15, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan2/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan2/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan2/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN3", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-18/18-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan3/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3d, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x16, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan3/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan3/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan3/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x16, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan3/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan3/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan3/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + + { + "name": "FAN4", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-19/19-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan4/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 2, "addr": 0x0d, "offset": 0x3e, "way": "i2c"}, + "led_attrs": { + "off": 0x0b, "red_flash": 0x0e, "red": 0x0a, + "green_flash": 0x0d, "green": 0x09, "amber_flash": 0x07, + "amber": 0x03, "mask": 0x0f + }, + "PowerMax": 38.4, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x17, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan4/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan4/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan4/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 2, "addr": 0x0d, "offset": 0x17, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan4/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan4/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan4/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + + ], + "cplds": [ + { + "name": "CPU_CPLD", + "cpld_id": "CPLD1", + "VersionFile": {"loc": "/dev/cpld0", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for system power", + "slot": 0, + "warm": 0, + }, + { + "name": "CONNECT_CPLD", + "cpld_id": "CPLD2", + "VersionFile": {"loc": "/dev/cpld1", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for base functions", + "slot": 0, + "warm": 0, + }, + { + "name": "CONNECT_CPLD-FAN", + "cpld_id": "CPLD3", + "VersionFile": {"loc": "/dev/cpld2", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for fan modules", + "slot": 0, + "warm": 0, + }, + { + "name": "MAC_CPLD1", + "cpld_id": "CPLD4", + "VersionFile": {"loc": "/dev/cpld3", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for sff modules", + "slot": 0, + "warm": 0, + }, + { + "name": "MAC_CPLD2", + "cpld_id": "CPLD5", + "VersionFile": {"loc": "/dev/cpld4", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for sff modules", + "slot": 0, + "warm": 0, + }, + { + "name": "FPGA", + "cpld_id": "CPLD6", + "VersionFile": {"loc": "/dev/fpga0", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for base functions", + "slot": 0, + "format": "little_endian", + "warm": 0, + }, + { + "name": "BIOS", + "cpld_id": "CPLD7", + "VersionFile": {"cmd": "dmidecode -s bios-version", "way": "cmd"}, + "desc": "Performs initialization of hardware components during booting", + "slot": 0, + "type": "str", + "warm": 0, + }, + ], + "dcdc": [ + { + "name": "Switch_ZSFP1_3v3_C", + "dcdc_id": "DCDC1", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 22000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_QSFP1_3v3_C", + "dcdc_id": "DCDC2", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 22000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_5v0_C", + "dcdc_id": "DCDC3", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 1000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_ZSFP1_3v3_V", + "dcdc_id": "DCDC4", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_QSFP1_3v3_V", + "dcdc_id": "DCDC5", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_5v0_V", + "dcdc_id": "DCDC6", + "Min": 4000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0040/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 6000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_1v2_C", + "dcdc_id": "DCDC7", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_3v3_C", + "dcdc_id": "DCDC8", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 1000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_Cpld_3v3_C", + "dcdc_id": "DCDC9", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_1v2_V", + "dcdc_id": "DCDC10", + "Min": 960, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1440, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_3v3_V", + "dcdc_id": "DCDC11", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_Cpld_3v3_V", + "dcdc_id": "DCDC12", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0041/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_1v2_C", + "dcdc_id": "DCDC13", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 1300, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_3v3_C", + "dcdc_id": "DCDC14", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2800, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_SSD_3v3_C", + "dcdc_id": "DCDC15", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 4500, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_1v2_V", + "dcdc_id": "DCDC16", + "Min": 960, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1440, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_3v3_V", + "dcdc_id": "DCDC17", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Con_SSD_3v3_V", + "dcdc_id": "DCDC18", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0042/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_3v3_C", + "dcdc_id": "DCDC19", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 4686, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_5v_C", + "dcdc_id": "DCDC20", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v7_C", + "dcdc_id": "DCDC21", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_3v3_V", + "dcdc_id": "DCDC22", + "Min": 2640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 3960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_5v_V", + "dcdc_id": "DCDC23", + "Min": 4000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 6000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v7_V", + "dcdc_id": "DCDC24", + "Min": 1360, + "value": { + "loc": "/sys/bus/i2c/devices/7-0043/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 2040, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_CORE_C", + "dcdc_id": "DCDC25", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 47300, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v05_C", + "dcdc_id": "DCDC26", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 15400, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_CORE_V", + "dcdc_id": "DCDC27", + "Min": 1456, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 2184, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v05_V", + "dcdc_id": "DCDC28", + "Min": 840, + "value": { + "loc": "/sys/bus/i2c/devices/7-0060/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1260, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_CORE_C", + "dcdc_id": "DCDC29", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 220000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_ANALOG_C", + "dcdc_id": "DCDC30", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/curr3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 18000, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_CORE_V", + "dcdc_id": "DCDC31", + "Min": 600, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Switch_ANALOG_V", + "dcdc_id": "DCDC32", + "Min": 640, + "value": { + "loc": "/sys/bus/i2c/devices/7-0064/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 960, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v2_C", + "dcdc_id": "DCDC33", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/curr1_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 9900, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_2v23_C", + "dcdc_id": "DCDC34", + "Min": -1000, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/curr2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "A", + "Max": 2200, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_1v2_V", + "dcdc_id": "DCDC35", + "Min": 960, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 1440, + "format": "float(float(%s)/1000)", + }, + + { + "name": "Cpu_2v23_V", + "dcdc_id": "DCDC36", + "Min": 1784, + "value": { + "loc": "/sys/bus/i2c/devices/7-006c/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 5, + "Unit": "V", + "Max": 2676, + "format": "float(float(%s)/1000)", + }, + ], + "cpu": [ + { + "name": "cpu", + "reboot_cause_path": "/etc/sonic/.reboot/.previous-reboot-cause.txt" + } + ], + "sfps": { + "ver": '1.0', + "port_index_start": 1, + "port_num": 56, + "log_level": 2, + "eeprom_retry_times": 5, + "eeprom_retry_break_sec": 0.2, + "presence_cpld": { + "dev_id": { + 3: { + "offset": { + 0x30: "1-8", + 0x31: "9-16", + 0x32: "17-24", + }, + }, + 4: { + "offset": { + 0x30: "25-32", + 0x31: "33-40", + 0x32: "41-48", + 0x33: "49-56", + }, + }, + }, + }, + "presence_val_is_present": 0, + "eeprom_path": "/sys/bus/i2c/devices/i2c-%d/%d-0050/eeprom", + "eeprom_path_key": list(range(32, 88)), + "optoe_driver_path": "/sys/bus/i2c/devices/i2c-%d/%d-0050/dev_class", + "optoe_driver_key": list(range(32, 88)), + "txdis_cpld": { + "dev_id": { + 3: { + "offset": { + 0x60: "1-8", + 0x61: "9-16", + 0x62: "17-24", + }, + }, + 4: { + "offset": { + 0x60: "25-32", + 0x61: "33-40", + 0x62: "41-48", + }, + }, + }, + }, + "txdisable_val_is_on": 0, + "reset_cpld": { + "dev_id": { + 4: { + "offset": { + 0xb9: "49-56", + }, + }, + }, + }, + "reset_val_is_reset": 0, + } +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_monitor.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_monitor.py new file mode 100755 index 000000000000..aab279a21da2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_monitor.py @@ -0,0 +1,206 @@ +# coding:utf-8 + + +monitor = { + "openloop": { + "linear": { + "name": "linear", + "flag": 0, + "pwm_min": 0x80, + "pwm_max": 0xff, + "K": 11, + "tin_min": 38, + }, + "curve": { + "name": "curve", + "flag": 0, + "pwm_min": 0x5a, + "pwm_max": 0xff, + "a": 0.086, + "b": 0.318, + "c": 28, + "tin_min": 25, + }, + }, + + "pid": { + "CPU_TEMP": { + "name": "CPU_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 3, + "Ki": 0.5, + "Kd": 0.5, + "target": 89, + "value": [None, None, None], + }, + "SWITCH_TEMP": { + "name": "SWITCH_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 3, + "Ki": 0.4, + "Kd": 0.4, + "target": 82, + "value": [None, None, None], + }, + "OUTLET_TEMP": { + "name": "OUTLET_TEMP", + "flag": 0, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 2, + "Ki": 0.4, + "Kd": 0.3, + "target": 65, + "value": [None, None, None], + }, + "BOARD_TEMP": { + "name": "BOARD_TEMP", + "flag": 0, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 2, + "Ki": 0.4, + "Kd": 0.3, + "target": 65, + "value": [None, None, None], + }, + "SFF_TEMP": { + "name": "SFF_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 0.1, + "Ki": 0.4, + "Kd": 0, + "target": 60, + "value": [None, None, None], + }, + }, + + "hyst": { + "INLET_TEMP": { + "name": "INLET_TEMP", + "flag": 1, + "type": "duty", + "hyst_min": 50, # duty + "hyst_max": 100, # duty + "last_hyst_value": 50, # duty + "temp_min": 23, + "temp_max": 40, + "value": [None, None], + "rising": { + 23: 50, + 24: 50, + 25: 50, + 26: 53, + 27: 56, + 28: 59, + 29: 62, + 30: 65, + 31: 68, + 32: 71, + 33: 74, + 34: 77, + 35: 80, + 36: 84, + 37: 88, + 38: 92, + 39: 96, + 40: 100, + }, + "descending": { + 23: 50, + 24: 53, + 25: 56, + 26: 59, + 27: 62, + 28: 65, + 29: 68, + 30: 71, + 31: 74, + 32: 77, + 33: 80, + 34: 84, + 35: 88, + 36: 92, + 37: 96, + 38: 100, + 39: 100, + 40: 100, + }, + } + }, + + "temps_threshold": { + "SWITCH_TEMP": {"name": "SWITCH_TEMP", "warning": 100, "critical": 105}, + "INLET_TEMP": {"name": "INLET_TEMP", "warning": 40, "critical": 50}, + "BOARD_TEMP": {"name": "BOARD_TEMP", "warning": 70, "critical": 80}, + "OUTLET_TEMP": {"name": "OUTLET_TEMP", "warning": 70, "critical": 80}, + "CPU_TEMP": {"name": "CPU_TEMP", "warning": 100, "critical": 102}, + "SFF_TEMP": {"name": "SFF_TEMP", "warning": 999, "critical": 1000, "ignore_threshold": 1, "invalid": -10000, "error": -9999}, + }, + + "fancontrol_para": { + "interval": 5, + "fan_air_flow_monitor": 1, + "psu_air_flow_monitor": 1, + "max_pwm": 0xff, + "min_pwm": 0x80, + "abnormal_pwm": 0xff, + "warning_pwm": 0xff, + "temp_invalid_pid_pwm": 0x80, + "temp_error_pid_pwm": 0x80, + "temp_fail_num": 3, + "check_temp_fail": [ + {"temp_name": "INLET_TEMP"}, + {"temp_name": "SWITCH_TEMP"}, + {"temp_name": "CPU_TEMP"}, + ], + "temp_warning_num": 3, # temp over warning 3 times continuously + "temp_critical_num": 3, # temp over critical 3 times continuously + "temp_warning_countdown": 60, # 5 min warning speed after not warning + "temp_critical_countdown": 60, # 5 min full speed after not critical + "rotor_error_count": 6, # fan rotor error 6 times continuously + "inlet_mac_diff": 999, + "check_crit_reboot_flag": 1, + "check_crit_reboot_num": 3, + "check_crit_sleep_time": 20, + "psu_absent_fullspeed_num": 0xFF, + "fan_absent_fullspeed_num": 1, + "rotor_error_fullspeed_num": 1, + }, + + "ledcontrol_para": { + "interval": 5, + "checkpsu": 0, # 0: sys led don't follow psu led + "checkfan": 0, # 0: sys led don't follow fan led + "psu_amber_num": 1, + "fan_amber_num": 1, + "board_sys_led": [ + {"led_name": "FRONT_SYS_LED"}, + ], + "board_psu_led": [ + {"led_name": "FRONT_PSU_LED"}, + ], + "board_fan_led": [ + {"led_name": "FRONT_FAN_LED"}, + ], + "psu_air_flow_monitor": 1, + "fan_air_flow_monitor": 1, + "psu_air_flow_amber_num": 1, + "fan_air_flow_amber_num": 1, + }, + "otp_reboot_judge_file": { + "otp_switch_reboot_judge_file": "/etc/.otp_switch_reboot_flag", + "otp_other_reboot_judge_file": "/etc/.otp_other_reboot_flag", + }, +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile new file mode 100755 index 000000000000..e59ffd7ee67d --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile @@ -0,0 +1,15 @@ +MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) +MODULES_DIR = $(abspath $(MAKEFILE_FILE_PATH)/../../../../common/modules) +FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../../../common/app/firmware_upgrade/firmware_driver/include) + +EXTRA_CFLAGS+= -I$(MODULES_DIR) +EXTRA_CFLAGS+= -I$(MODULES_DIR)/linux-5.10 +EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) + +obj-m := wb_pcie_dev_device.o +obj-m += wb_i2c_mux_pca954x_device.o +obj-m += wb_i2c_ocores_device.o +obj-m += wb_lpc_drv_device.o +obj-m += wb_i2c_dev_device.o +obj-m += wb_io_dev_device.o +obj-m += wb_firmware_upgrade_device.o diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c new file mode 100644 index 000000000000..6dce748325a2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c @@ -0,0 +1,174 @@ +/* + * wb_firmware_upgrade.c + * + * ko for firmware device + */ +#include +#include +#include +#include +#include +#include + +static int g_wb_firmware_upgrade_debug = 0; +static int g_wb_firmware_upgrade_error = 0; + +module_param(g_wb_firmware_upgrade_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_firmware_upgrade_error, int, S_IRUGO | S_IWUSR); + +#define WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_firmware_upgrade_debug) { \ + printk(KERN_INFO "[WB_FIRMWARE_UPGRADE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_FIRMWARE_UPGRADE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_firmware_upgrade_error) { \ + printk(KERN_ERR "[WB_FIRMWARE_UPGRADE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +/* cpld */ +static firmware_upgrade_device_t firmware_upgrade_device_data0 = { + .type = "JTAG", + .upg_type.jtag = { + .tdi = 67, + .tck = 65, + .tms = 6, + .tdo = 32, + }, + .en_gpio[0] = 50, + .en_level[0] = 1, + .en_gpio[1] = 48, + .en_level[1] = 1, + .chain = 1, + .chip_index = 1, + + .en_gpio_num = 2, + .en_logic_num = 0, +}; + +/* fpga */ +static firmware_upgrade_device_t firmware_upgrade_device_data1 = { + .type = "SPI_LOGIC", + .chain = 3, + .chip_index = 1, + .upg_type.sysfs = { + .dev_name = "/dev/fpga0", + .ctrl_base = 0xa00, + .flash_base = 0x1A0000, + .test_base = 0x7F0000, + .test_size = 0x10000, + }, + .en_gpio_num = 0, + .en_logic_num = 0, +}; + +static firmware_upgrade_device_t firmware_upgrade_device_data2 = { + .type = "SPI_LOGIC", + .chain = 4, + .chip_index = 1, + .upg_type.sysfs = { + .dev_name = "/dev/fpga0", + .ctrl_base = 0xa00, + .flash_base = 0x0, + .test_base = 0x7F0000, + .test_size = 0x10000, + }, + .en_gpio_num = 0, + .en_logic_num = 0, +}; + +/* bios */ +static firmware_upgrade_device_t firmware_upgrade_device_data3 = { + .type = "MTD_DEV", + .chain = 2, + .chip_index = 1, + .upg_type.sysfs = { + .mtd_name = "BIOS", + .flash_base = 0x800000, + }, + + .en_gpio_num = 0, + .en_logic_num = 0, +}; + +static void firmware_device_release(struct device *dev) +{ + return; +} + +static struct platform_device firmware_upgrade_device[] = { + { + .name = "firmware_cpld_ispvme", + .id = 1, + .dev = { + .platform_data = &firmware_upgrade_device_data0, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 2, + .dev = { + .platform_data = &firmware_upgrade_device_data1, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 3, + .dev = { + .platform_data = &firmware_upgrade_device_data2, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 4, + .dev = { + .platform_data = &firmware_upgrade_device_data3, + .release = firmware_device_release, + }, + }, + }; + + static int __init firmware_upgrade_device_init(void) + { + int i; + int ret = 0; + firmware_upgrade_device_t *firmware_upgrade_device_data; + + WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(firmware_upgrade_device); i++) { + firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; + ret = platform_device_register(&firmware_upgrade_device[i]); + if (ret < 0) { + firmware_upgrade_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "firmware_upgrade_device id%d register failed!\n", i + 1); + } else { + firmware_upgrade_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; + } + + static void __exit firmware_upgrade_device_exit(void) + { + int i; + firmware_upgrade_device_t *firmware_upgrade_device_data; + + WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(firmware_upgrade_device) - 1; i >= 0; i--) { + firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; + if (firmware_upgrade_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&firmware_upgrade_device[i]); + } + } + } + + module_init(firmware_upgrade_device_init); + module_exit(firmware_upgrade_device_exit); + MODULE_DESCRIPTION("FIRMWARE UPGRADE Devices"); + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_dev_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_dev_device.c new file mode 100644 index 000000000000..865e7afea44c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_dev_device.c @@ -0,0 +1,140 @@ +#include +#include +#include +#include +#include +#include + +#include + +static int g_wb_i2c_dev_device_debug = 0; +static int g_wb_i2c_dev_device_error = 0; + +module_param(g_wb_i2c_dev_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_i2c_dev_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_I2C_DEV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_i2c_dev_device_debug) { \ + printk(KERN_INFO "[WB_I2C_DEV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_I2C_DEV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_i2c_dev_device_error) { \ + printk(KERN_ERR "[WB_I2C_DEV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static i2c_dev_device_t i2c_dev_device_data0 = { + .i2c_bus = 2, + .i2c_addr = 0x0d, + .i2c_name = "cpld2", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +static i2c_dev_device_t i2c_dev_device_data1 = { + .i2c_bus = 8, + .i2c_addr = 0x30, + .i2c_name = "cpld3", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +static i2c_dev_device_t i2c_dev_device_data2 = { + .i2c_bus = 8, + .i2c_addr = 0x31, + .i2c_name = "cpld4", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +static i2c_dev_device_t i2c_dev_device_data3 = { + .i2c_bus = 6, + .i2c_addr = 0x0d, + .i2c_name = "cpld5", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +struct i2c_board_info i2c_dev_device_info[] = { + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data0, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data1, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data2, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data3, + }, +}; + +static int __init wb_i2c_dev_device_init(void) +{ + int i; + struct i2c_adapter *adap; + struct i2c_client *client; + i2c_dev_device_t *i2c_dev_device_data; + + WB_I2C_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(i2c_dev_device_info); i++) { + i2c_dev_device_data = i2c_dev_device_info[i].platform_data; + i2c_dev_device_info[i].addr = i2c_dev_device_data->i2c_addr; + adap = i2c_get_adapter(i2c_dev_device_data->i2c_bus); + if (adap == NULL) { + i2c_dev_device_data->client = NULL; + printk(KERN_ERR "get i2c bus %d adapter fail.\n", i2c_dev_device_data->i2c_bus); + continue; + } + client = i2c_new_client_device(adap, &i2c_dev_device_info[i]); + if (!client) { + i2c_dev_device_data->client = NULL; + printk(KERN_ERR "Failed to register i2c dev device %d at bus %d!\n", + i2c_dev_device_data->i2c_addr, i2c_dev_device_data->i2c_bus); + } else { + i2c_dev_device_data->client = client; + } + i2c_put_adapter(adap); + } + return 0; +} + +static void __exit wb_i2c_dev_device_exit(void) +{ + int i; + i2c_dev_device_t *i2c_dev_device_data; + + WB_I2C_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(i2c_dev_device_info) - 1; i >= 0; i--) { + i2c_dev_device_data = i2c_dev_device_info[i].platform_data; + if (i2c_dev_device_data->client) { + i2c_unregister_device(i2c_dev_device_data->client); + i2c_dev_device_data->client = NULL; + } + } +} + +module_init(wb_i2c_dev_device_init); +module_exit(wb_i2c_dev_device_exit); +MODULE_DESCRIPTION("I2C DEV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_mux_pca954x_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_mux_pca954x_device.c new file mode 100644 index 000000000000..f12a71013451 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_mux_pca954x_device.c @@ -0,0 +1,296 @@ +#include +#include +#include +#include +#include +#include + +#include + +static int g_wb_i2c_mux_pca954x_device_debug = 0; +static int g_wb_i2c_mux_pca954x_device_error = 0; + +module_param(g_wb_i2c_mux_pca954x_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_i2c_mux_pca954x_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_I2C_MUX_PCA954X_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_i2c_mux_pca954x_device_debug) { \ + printk(KERN_INFO "[WB_I2C_MUX_PCA954X_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_I2C_MUX_PCA954X_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_i2c_mux_pca954x_device_error) { \ + printk(KERN_ERR "[WB_I2C_MUX_PCA954X_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data0 = { + .i2c_bus = 2, + .i2c_addr = 0x77, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 16, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/cpld5", + .file_attr.offset = 0x60, + .file_attr.mask = 0x02, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x02, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data1 = { + .i2c_bus = 4, + .i2c_addr = 0x77, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 24, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/cpld5", + .file_attr.offset = 0x60, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data2 = { + .i2c_bus = 12, + .i2c_addr = 0x70, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 32, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data3 = { + .i2c_bus = 12, + .i2c_addr = 0x71, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 40, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data4 = { + .i2c_bus = 12, + .i2c_addr = 0x72, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 48, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data5 = { + .i2c_bus = 12, + .i2c_addr = 0x73, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 56, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data6 = { + .i2c_bus = 13, + .i2c_addr = 0x70, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 64, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data7 = { + .i2c_bus = 13, + .i2c_addr = 0x71, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 72, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +static i2c_mux_pca954x_device_t i2c_mux_pca954x_device_data8 = { + .i2c_bus = 13, + .i2c_addr = 0x72, + .probe_disable = 1, + .select_chan_check = 0, + .close_chan_force_reset = 0, + .pca9548_base_nr = 80, + .pca9548_reset_type = PCA9548_RESET_FILE, + .rst_delay_b = 0, + .rst_delay = 1000, + .rst_delay_a = 1000, + .attr = { + .file_attr.dev_name = "/dev/fpga0", + .file_attr.offset = 0x20, + .file_attr.mask = 0x01, + .file_attr.reset_on = 0x00, + .file_attr.reset_off = 0x01, + }, +}; + +struct i2c_board_info i2c_mux_pca954x_device_info[] = { + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data0, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data1, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data2, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data3, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data4, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data5, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data6, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data7, + }, + { + .type = "wb_pca9548", + .platform_data = &i2c_mux_pca954x_device_data8, + }, +}; + +static int __init wb_i2c_mux_pca954x_device_init(void) +{ + int i; + struct i2c_adapter *adap; + struct i2c_client *client; + i2c_mux_pca954x_device_t *i2c_mux_pca954x_device_data; + + WB_I2C_MUX_PCA954X_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(i2c_mux_pca954x_device_info); i++) { + i2c_mux_pca954x_device_data = i2c_mux_pca954x_device_info[i].platform_data; + i2c_mux_pca954x_device_info[i].addr = i2c_mux_pca954x_device_data->i2c_addr; + adap = i2c_get_adapter(i2c_mux_pca954x_device_data->i2c_bus); + if (adap == NULL) { + i2c_mux_pca954x_device_data->client = NULL; + printk(KERN_ERR "get i2c bus %d adapter fail.\n", i2c_mux_pca954x_device_data->i2c_bus); + continue; + } + client = i2c_new_client_device(adap, &i2c_mux_pca954x_device_info[i]); + if (!client) { + i2c_mux_pca954x_device_data->client = NULL; + printk(KERN_ERR "Failed to register pca954x device %d at bus %d!\n", + i2c_mux_pca954x_device_data->i2c_addr, i2c_mux_pca954x_device_data->i2c_bus); + } else { + i2c_mux_pca954x_device_data->client = client; + } + i2c_put_adapter(adap); + } + return 0; +} + +static void __exit wb_i2c_mux_pca954x_device_exit(void) +{ + int i; + i2c_mux_pca954x_device_t *i2c_mux_pca954x_device_data; + + WB_I2C_MUX_PCA954X_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(i2c_mux_pca954x_device_info) - 1; i >= 0; i--) { + i2c_mux_pca954x_device_data = i2c_mux_pca954x_device_info[i].platform_data; + if (i2c_mux_pca954x_device_data->client) { + i2c_unregister_device(i2c_mux_pca954x_device_data->client); + i2c_mux_pca954x_device_data->client = NULL; + } + } +} + +module_init(wb_i2c_mux_pca954x_device_init); +module_exit(wb_i2c_mux_pca954x_device_exit); +MODULE_DESCRIPTION("I2C MUX PCA954X Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_ocores_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_ocores_device.c new file mode 100644 index 000000000000..ff7ba9d26fbc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_i2c_ocores_device.c @@ -0,0 +1,423 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_i2c_ocores_device_debug = 0; +static int g_wb_i2c_ocores_device_error = 0; + +module_param(g_wb_i2c_ocores_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_i2c_ocores_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_I2C_OCORE_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_i2c_ocores_device_debug) { \ + printk(KERN_INFO "[WB_I2C_OCORE_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_I2C_OCORE_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_i2c_ocores_device_error) { \ + printk(KERN_ERR "[WB_I2C_OCORE_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static i2c_ocores_device_t i2c_ocores_device_data0 = { + .adap_nr = 2, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0800, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 0, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data1 = { + .adap_nr = 3, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0820, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 1, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data2 = { + .adap_nr = 4, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0840, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 2, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data3 = { + .adap_nr = 5, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0860, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 3, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data4 = { + .adap_nr = 6, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0880, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 4, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data5 = { + .adap_nr = 7, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x08a0, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 5, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data6 = { + .adap_nr = 8, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x08c0, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 6, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data7 = { + .adap_nr = 9, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x08e0, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 7, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data8 = { + .adap_nr = 10, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0900, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 8, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data9 = { + .adap_nr = 11, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0920, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 9, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data10 = { + .adap_nr = 12, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0940, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 10, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data11 = { + .adap_nr = 13, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0960, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 11, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data12 = { + .adap_nr = 14, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x0980, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 12, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static i2c_ocores_device_t i2c_ocores_device_data13 = { + .adap_nr = 15, + .big_endian = 0, + .dev_name = "/dev/fpga0", + .reg_access_mode = 3, + .dev_base = 0x09a0, + .reg_shift = 2, + .reg_io_width = 4, + .ip_clock_khz = 125000, + .bus_clock_khz = 100, + .irq_offset = 13, + .pci_domain = 0, + .pci_bus = 8, + .pci_slot = 0, + .pci_fn = 0, +}; + +static void wb_i2c_ocores_device_release(struct device *dev) +{ + return; +} + +static struct platform_device i2c_ocores_device[] = { + { + .name = "wb-ocores-i2c", + .id = 1, + .dev = { + .platform_data = &i2c_ocores_device_data0, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 2, + .dev = { + .platform_data = &i2c_ocores_device_data1, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 3, + .dev = { + .platform_data = &i2c_ocores_device_data2, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 4, + .dev = { + .platform_data = &i2c_ocores_device_data3, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 5, + .dev = { + .platform_data = &i2c_ocores_device_data4, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 6, + .dev = { + .platform_data = &i2c_ocores_device_data5, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 7, + .dev = { + .platform_data = &i2c_ocores_device_data6, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 8, + .dev = { + .platform_data = &i2c_ocores_device_data7, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 9, + .dev = { + .platform_data = &i2c_ocores_device_data8, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 10, + .dev = { + .platform_data = &i2c_ocores_device_data9, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 11, + .dev = { + .platform_data = &i2c_ocores_device_data10, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 12, + .dev = { + .platform_data = &i2c_ocores_device_data11, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 13, + .dev = { + .platform_data = &i2c_ocores_device_data12, + .release = wb_i2c_ocores_device_release, + }, + }, + { + .name = "wb-ocores-i2c", + .id = 14, + .dev = { + .platform_data = &i2c_ocores_device_data13, + .release = wb_i2c_ocores_device_release, + }, + }, +}; + +static int __init wb_i2c_ocores_device_init(void) +{ + int i; + int ret = 0; + i2c_ocores_device_t *i2c_ocores_device_data; + + WB_I2C_OCORE_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(i2c_ocores_device); i++) { + i2c_ocores_device_data = i2c_ocores_device[i].dev.platform_data; + ret = platform_device_register(&i2c_ocores_device[i]); + if (ret < 0) { + i2c_ocores_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-ocores-i2c.%d register failed!\n", i + 1); + } else { + i2c_ocores_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_i2c_ocores_device_exit(void) +{ + int i; + i2c_ocores_device_t *i2c_ocores_device_data; + + WB_I2C_OCORE_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(i2c_ocores_device) - 1; i >= 0; i--) { + i2c_ocores_device_data = i2c_ocores_device[i].dev.platform_data; + if (i2c_ocores_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&i2c_ocores_device[i]); + } + } +} + +module_init(wb_i2c_ocores_device_init); +module_exit(wb_i2c_ocores_device_exit); +MODULE_DESCRIPTION("I2C OCORES Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_io_dev_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_io_dev_device.c new file mode 100644 index 000000000000..cc84938fff0e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_io_dev_device.c @@ -0,0 +1,103 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_io_dev_device_debug = 0; +static int g_wb_io_dev_device_error = 0; + +module_param(g_wb_io_dev_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_io_dev_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_IO_DEV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_io_dev_device_debug) { \ + printk(KERN_INFO "[WB_IO_DEV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_IO_DEV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_io_dev_device_error) { \ + printk(KERN_ERR "[WB_IO_DEV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static io_dev_device_t io_dev_device_data0 = { + .io_dev_name = "cpld0", + .io_base = 0x700, + .io_len = 0x100, + .indirect_addr = 0, +}; + +static io_dev_device_t io_dev_device_data1 = { + .io_dev_name = "cpld1", + .io_base = 0x900, + .io_len = 0x100, + .indirect_addr = 0, +}; + +static void wb_io_dev_device_release(struct device *dev) +{ + return; +} + +static struct platform_device io_dev_device[] = { + { + .name = "wb-io-dev", + .id = 1, + .dev = { + .platform_data = &io_dev_device_data0, + .release = wb_io_dev_device_release, + }, + }, + { + .name = "wb-io-dev", + .id = 2, + .dev = { + .platform_data = &io_dev_device_data1, + .release = wb_io_dev_device_release, + }, + }, +}; + +static int __init wb_io_dev_device_init(void) +{ + int i; + int ret = 0; + io_dev_device_t *io_dev_device_data; + + WB_IO_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(io_dev_device); i++) { + io_dev_device_data = io_dev_device[i].dev.platform_data; + ret = platform_device_register(&io_dev_device[i]); + if (ret < 0) { + io_dev_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-io-dev.%d register failed!\n", i + 1); + } else { + io_dev_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_io_dev_device_exit(void) +{ + int i; + io_dev_device_t *io_dev_device_data; + + WB_IO_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(io_dev_device) - 1; i >= 0; i--) { + io_dev_device_data = io_dev_device[i].dev.platform_data; + if (io_dev_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&io_dev_device[i]); + } + } +} + +module_init(wb_io_dev_device_init); +module_exit(wb_io_dev_device_exit); +MODULE_DESCRIPTION("IO DEV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_lpc_drv_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_lpc_drv_device.c new file mode 100644 index 000000000000..9b6b61a51735 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_lpc_drv_device.c @@ -0,0 +1,130 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_lpc_drv_device_debug = 0; +static int g_wb_lpc_drv_device_error = 0; + +module_param(g_wb_lpc_drv_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_lpc_drv_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_LPC_DRV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_lpc_drv_device_debug) { \ + printk(KERN_INFO "[WB_LPC_DRV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_LPC_DRV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_lpc_drv_device_error) { \ + printk(KERN_ERR "[WB_LPC_DRV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static lpc_drv_device_t lpc_drv_device_data_0 = { + .lpc_io_name = "wb_lpc", + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 0, + .lpc_io_base = 0x700, + .lpc_io_size = 0x100, + .lpc_gen_dec = 0x84, +}; + +static lpc_drv_device_t lpc_drv_device_data_1 = { + .lpc_io_name = "wb_lpc", + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 0, + .lpc_io_base = 0x900, + .lpc_io_size = 0x100, + .lpc_gen_dec = 0x88, +}; + +static lpc_drv_device_t lpc_drv_device_data_2 = { + .lpc_io_name = "wb_lpc", + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 0, + .lpc_io_base = 0xb00, + .lpc_io_size = 0x100, + .lpc_gen_dec = 0x90, +}; + +static void wb_lpc_drv_device_release(struct device *dev) +{ + return; +} + +static struct platform_device lpc_drv_device[] = { + { + .name = "wb-lpc", + .id = 1, + .dev = { + .platform_data = &lpc_drv_device_data_0, + .release = wb_lpc_drv_device_release, + }, + }, + { + .name = "wb-lpc", + .id = 2, + .dev = { + .platform_data = &lpc_drv_device_data_1, + .release = wb_lpc_drv_device_release, + }, + }, + { + .name = "wb-lpc", + .id = 3, + .dev = { + .platform_data = &lpc_drv_device_data_2, + .release = wb_lpc_drv_device_release, + }, + }, +}; + +static int __init wb_lpc_drv_device_init(void) +{ + int i; + int ret = 0; + lpc_drv_device_t *lpc_drv_device_data; + + WB_LPC_DRV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(lpc_drv_device); i++) { + lpc_drv_device_data = lpc_drv_device[i].dev.platform_data; + ret = platform_device_register(&lpc_drv_device[i]); + if (ret < 0) { + lpc_drv_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-lpc.%d register failed!\n", i + 1); + } else { + lpc_drv_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_lpc_drv_device_exit(void) +{ + int i; + lpc_drv_device_t *lpc_drv_device_data; + + WB_LPC_DRV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(lpc_drv_device) - 1; i >= 0; i--) { + lpc_drv_device_data = lpc_drv_device[i].dev.platform_data; + if (lpc_drv_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&lpc_drv_device[i]); + } + } +} + +module_init(wb_lpc_drv_device_init); +module_exit(wb_lpc_drv_device_exit); +MODULE_DESCRIPTION("LPC DRV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_pcie_dev_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_pcie_dev_device.c new file mode 100644 index 000000000000..f79b29770d29 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_pcie_dev_device.c @@ -0,0 +1,93 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_pcie_dev_device_debug = 0; +static int g_wb_pcie_dev_device_error = 0; + +module_param(g_wb_pcie_dev_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_pcie_dev_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_PCIE_DEV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_pcie_dev_device_debug) { \ + printk(KERN_INFO "[WB_PCIE_DEV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_PCIE_DEV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_pcie_dev_device_error) { \ + printk(KERN_ERR "[WB_PCIE_DEV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static pci_dev_device_t pcie_dev_device_data0 = { + .pci_dev_name = "fpga0", + .pci_domain = 0x0000, + .pci_bus = 0x08, + .pci_slot = 0x00, + .pci_fn = 0, + .pci_bar = 0, + .bus_width = 4, + .upg_ctrl_base = 0xa00, + .upg_flash_base = 0x1a0000, +}; + +static void wb_pcie_dev_device_release(struct device *dev) +{ + return; +} + +static struct platform_device pcie_dev_device[] = { + { + .name = "wb-pci-dev", + .id = 1, + .dev = { + .platform_data = &pcie_dev_device_data0, + .release = wb_pcie_dev_device_release, + }, + }, +}; + +static int __init wb_pcie_dev_device_init(void) +{ + int i; + int ret = 0; + pci_dev_device_t *pcie_dev_device_data; + + WB_PCIE_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(pcie_dev_device); i++) { + pcie_dev_device_data = pcie_dev_device[i].dev.platform_data; + ret = platform_device_register(&pcie_dev_device[i]); + if (ret < 0) { + pcie_dev_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-pci-dev.%d register failed!\n", i + 1); + } else { + pcie_dev_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_pcie_dev_device_exit(void) +{ + int i; + pci_dev_device_t *pcie_dev_device_data; + + WB_PCIE_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(pcie_dev_device) - 1; i >= 0; i--) { + pcie_dev_device_data = pcie_dev_device[i].dev.platform_data; + if (pcie_dev_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&pcie_dev_device[i]); + } + } +} + +module_init(wb_pcie_dev_device_init); +module_exit(wb_pcie_dev_device_exit); +MODULE_DESCRIPTION("PCIE DEV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_CPLD.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_CPLD.cfg new file mode 100644 index 000000000000..98d1da1750c3 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_CPLD.cfg @@ -0,0 +1,41 @@ +# configuration item: I2C address of CPLD +# format: cpld_i2c_dev.bus_[cpld_slot]_[cpld_id] cpld_i2c_dev.addr_[cpld_slot]_[cpld_id] +# cpld_slot: Main card: 0, linear card: start from 1 +# cpld_id: start from 0 +# bus: I2C bus number of CPLD +# addr: I2C address of CPLD +cpld_i2c_dev.bus_0_2=2 +cpld_i2c_dev.addr_0_2=0x0d +cpld_i2c_dev.bus_0_3=8 +cpld_i2c_dev.addr_0_3=0x30 +cpld_i2c_dev.bus_0_4=8 +cpld_i2c_dev.addr_0_4=0x31 +cpld_i2c_dev.bus_0_5=6 +cpld_i2c_dev.addr_0_5=0x0d + + +# configuration item: LPC address of CPLD +# format: cpld_lpc_addr_[cpld_slot]_[cpld_id] +# cpld_slot: Main card: 0, linear card: start from 1 +# cpld_id: start from 0 +cpld_lpc_dev_0_0=0x700 +cpld_lpc_dev_0_1=0x900 + + +# configuration item: CPLD access method, lpc or i2c +# format: mode_cpld_[cpld_slot][cpld_slot]=lpc/i2c +# cpld_slot: Main card: 0, linear card: start from 1 +# cpld_id: start from 0 +mode_cpld_0_0=lpc +mode_cpld_0_1=lpc +mode_cpld_0_2=i2c +mode_cpld_0_3=i2c +mode_cpld_0_4=i2c +mode_cpld_0_5=i2c + + +# configuration item: the number of CPLD +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: CPLD main_dev is 4 +# minor_dev: CPLD minor_dev not exist +dev_num_4_0=6 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_FAN.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_FAN.cfg new file mode 100644 index 000000000000..2350b74eb8bc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_FAN.cfg @@ -0,0 +1,304 @@ +# configuration item: the number of fans +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: fan main_dev is 1 +# minor_dev: fan minor_dev not exist(0) +dev_num_1_0=4 + + +# configuration item: the number of rotors +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: rotor main_dev is 1 +# minor_dev: rotor minor_dev is 5 +dev_num_1_5=2 + + +# configuration item: fan presence status +# format: dev_present_status_[main_dev_id][fan_index] +# main_dev_id: fan main_dev_id is 1 +# fan_index: start from 1 +dev_present_status.mode_1_1=config +dev_present_status.src_1_1=cpld +dev_present_status.frmt_1_1=bit +dev_present_status.pola_1_1=negative +dev_present_status.addr_1_1=0x00020030 +dev_present_status.len_1_1=1 +dev_present_status.bit_offset_1_1=0 + +dev_present_status.mode_1_2=config +dev_present_status.src_1_2=cpld +dev_present_status.frmt_1_2=bit +dev_present_status.pola_1_2=negative +dev_present_status.addr_1_2=0x00020030 +dev_present_status.len_1_2=1 +dev_present_status.bit_offset_1_2=1 + +dev_present_status.mode_1_3=config +dev_present_status.src_1_3=cpld +dev_present_status.frmt_1_3=bit +dev_present_status.pola_1_3=negative +dev_present_status.addr_1_3=0x00020030 +dev_present_status.len_1_3=1 +dev_present_status.bit_offset_1_3=2 + +dev_present_status.mode_1_4=config +dev_present_status.src_1_4=cpld +dev_present_status.frmt_1_4=bit +dev_present_status.pola_1_4=negative +dev_present_status.addr_1_4=0x00020030 +dev_present_status.len_1_4=1 +dev_present_status.bit_offset_1_4=3 + + +# configuration item: fan rotor status +# format: fan_roll_status_[fan_id]_[motor_id] +# fan_id: start from 1 +# motor_id: start from 0 +fan_roll_status.mode_1_0=config +fan_roll_status.int_cons_1_0= +fan_roll_status.src_1_0=cpld +fan_roll_status.frmt_1_0=bit +fan_roll_status.pola_1_0=positive +fan_roll_status.fpath_1_0= +fan_roll_status.addr_1_0=0x00020031 +fan_roll_status.len_1_0=1 +fan_roll_status.bit_offset_1_0=0 + +fan_roll_status.mode_1_1=config +fan_roll_status.int_cons_1_1= +fan_roll_status.src_1_1=cpld +fan_roll_status.frmt_1_1=bit +fan_roll_status.pola_1_1=positive +fan_roll_status.fpath_1_1= +fan_roll_status.addr_1_1=0x00020034 +fan_roll_status.len_1_1=1 +fan_roll_status.bit_offset_1_1=0 + +fan_roll_status.mode_2_0=config +fan_roll_status.int_cons_2_0= +fan_roll_status.src_2_0=cpld +fan_roll_status.frmt_2_0=bit +fan_roll_status.pola_2_0=positive +fan_roll_status.fpath_2_0= +fan_roll_status.addr_2_0=0x00020031 +fan_roll_status.len_2_0=1 +fan_roll_status.bit_offset_2_0=1 + +fan_roll_status.mode_2_1=config +fan_roll_status.int_cons_2_1= +fan_roll_status.src_2_1=cpld +fan_roll_status.frmt_2_1=bit +fan_roll_status.pola_2_1=positive +fan_roll_status.fpath_2_1= +fan_roll_status.addr_2_1=0x00020034 +fan_roll_status.len_2_1=1 +fan_roll_status.bit_offset_2_1=1 + +fan_roll_status.mode_3_0=config +fan_roll_status.int_cons_3_0= +fan_roll_status.src_3_0=cpld +fan_roll_status.frmt_3_0=bit +fan_roll_status.pola_3_0=positive +fan_roll_status.fpath_3_0= +fan_roll_status.addr_3_0=0x00020031 +fan_roll_status.len_3_0=1 +fan_roll_status.bit_offset_3_0=2 + +fan_roll_status.mode_3_1=config +fan_roll_status.int_cons_3_1= +fan_roll_status.src_3_1=cpld +fan_roll_status.frmt_3_1=bit +fan_roll_status.pola_3_1=positive +fan_roll_status.fpath_3_1= +fan_roll_status.addr_3_1=0x00020034 +fan_roll_status.len_3_1=1 +fan_roll_status.bit_offset_3_1=2 + +fan_roll_status.mode_4_0=config +fan_roll_status.int_cons_4_0= +fan_roll_status.src_4_0=cpld +fan_roll_status.frmt_4_0=bit +fan_roll_status.pola_4_0=positive +fan_roll_status.fpath_4_0= +fan_roll_status.addr_4_0=0x00020031 +fan_roll_status.len_4_0=1 +fan_roll_status.bit_offset_4_0=3 + +fan_roll_status.mode_4_1=config +fan_roll_status.int_cons_4_1= +fan_roll_status.src_4_1=cpld +fan_roll_status.frmt_4_1=bit +fan_roll_status.pola_4_1=positive +fan_roll_status.fpath_4_1= +fan_roll_status.addr_4_1=0x00020034 +fan_roll_status.len_4_1=1 +fan_roll_status.bit_offset_4_1=3 + + +# configuration item: fan speed +# format: fan_speed_[fan_id]_[motor_id] +# fan_id: start from 1 +# motor_id: start from 0 +fan_speed.mode_1_0=config +fan_speed.int_cons_1_0= +fan_speed.src_1_0=cpld +fan_speed.frmt_1_0=num_bytes +fan_speed.pola_1_0=negative +fan_speed.fpath_1_0= +fan_speed.addr_1_0=0x0002001b +fan_speed.len_1_0=2 +fan_speed.bit_offset_1_0= + +fan_speed.mode_1_1=config +fan_speed.int_cons_1_1= +fan_speed.src_1_1=cpld +fan_speed.frmt_1_1=num_bytes +fan_speed.pola_1_1=negative +fan_speed.fpath_1_1= +fan_speed.addr_1_1=0x00020025 +fan_speed.len_1_1=2 +fan_speed.bit_offset_1_1= + +fan_speed.mode_2_0=config +fan_speed.int_cons_2_0= +fan_speed.src_2_0=cpld +fan_speed.frmt_2_0=num_bytes +fan_speed.pola_2_0=negative +fan_speed.fpath_2_0= +fan_speed.addr_2_0=0x0002001d +fan_speed.len_2_0=2 +fan_speed.bit_offset_2_0= + +fan_speed.mode_2_1=config +fan_speed.int_cons_2_1= +fan_speed.src_2_1=cpld +fan_speed.frmt_2_1=num_bytes +fan_speed.pola_2_1=negative +fan_speed.fpath_2_1= +fan_speed.addr_2_1=0x00020027 +fan_speed.len_2_1=2 +fan_speed.bit_offset_2_1= + +fan_speed.mode_3_0=config +fan_speed.int_cons_3_0= +fan_speed.src_3_0=cpld +fan_speed.frmt_3_0=num_bytes +fan_speed.pola_3_0=negative +fan_speed.fpath_3_0= +fan_speed.addr_3_0=0x0002001f +fan_speed.len_3_0=2 +fan_speed.bit_offset_3_0= + +fan_speed.mode_3_1=config +fan_speed.int_cons_3_1= +fan_speed.src_3_1=cpld +fan_speed.frmt_3_1=num_bytes +fan_speed.pola_3_1=negative +fan_speed.fpath_3_1= +fan_speed.addr_3_1=0x00020029 +fan_speed.len_3_1=2 +fan_speed.bit_offset_3_1= + +fan_speed.mode_4_0=config +fan_speed.int_cons_4_0= +fan_speed.src_4_0=cpld +fan_speed.frmt_4_0=num_bytes +fan_speed.pola_4_0=negative +fan_speed.fpath_4_0= +fan_speed.addr_4_0=0x00020021 +fan_speed.len_4_0=2 +fan_speed.bit_offset_4_0= + +fan_speed.mode_4_1=config +fan_speed.int_cons_4_1= +fan_speed.src_4_1=cpld +fan_speed.frmt_4_1=num_bytes +fan_speed.pola_4_1=negative +fan_speed.fpath_4_1= +fan_speed.addr_4_1=0x0002002b +fan_speed.len_4_1=2 +fan_speed.bit_offset_4_1= + + +# configuration item: fan pwm +# format: fan_ratio_[fan_id]_[motor_id] +# fan_id: start from 1 +# motor_id: start from 0 +fan_ratio.mode_1_0=config +fan_ratio.int_cons_1_0= +fan_ratio.src_1_0=cpld +fan_ratio.frmt_1_0=byte +fan_ratio.pola_1_0= +fan_ratio.fpath_1_0= +fan_ratio.addr_1_0=0x00020014 +fan_ratio.len_1_0=1 +fan_ratio.bit_offset_1_0= + +fan_ratio.mode_1_1=config +fan_ratio.int_cons_1_1= +fan_ratio.src_1_1=cpld +fan_ratio.frmt_1_1=byte +fan_ratio.pola_1_1= +fan_ratio.fpath_1_1= +fan_ratio.addr_1_1=0x00020014 +fan_ratio.len_1_1=1 +fan_ratio.bit_offset_1_1= + +fan_ratio.mode_2_0=config +fan_ratio.int_cons_2_0= +fan_ratio.src_2_0=cpld +fan_ratio.frmt_2_0=byte +fan_ratio.pola_2_0= +fan_ratio.fpath_2_0= +fan_ratio.addr_2_0=0x00020015 +fan_ratio.len_2_0=1 +fan_ratio.bit_offset_2_0= + +fan_ratio.mode_2_1=config +fan_ratio.int_cons_2_1= +fan_ratio.src_2_1=cpld +fan_ratio.frmt_2_1=byte +fan_ratio.pola_2_1= +fan_ratio.fpath_2_1= +fan_ratio.addr_2_1=0x00020015 +fan_ratio.len_2_1=1 +fan_ratio.bit_offset_2_1= + +fan_ratio.mode_3_0=config +fan_ratio.int_cons_3_0= +fan_ratio.src_3_0=cpld +fan_ratio.frmt_3_0=byte +fan_ratio.pola_3_0= +fan_ratio.fpath_3_0= +fan_ratio.addr_3_0=0x00020016 +fan_ratio.len_3_0=1 +fan_ratio.bit_offset_3_0= + +fan_ratio.mode_3_1=config +fan_ratio.int_cons_3_1= +fan_ratio.src_3_1=cpld +fan_ratio.frmt_3_1=byte +fan_ratio.pola_3_1= +fan_ratio.fpath_3_1= +fan_ratio.addr_3_1=0x00020016 +fan_ratio.len_3_1=1 +fan_ratio.bit_offset_3_1= + +fan_ratio.mode_4_0=config +fan_ratio.int_cons_4_0= +fan_ratio.src_4_0=cpld +fan_ratio.frmt_4_0=byte +fan_ratio.pola_4_0= +fan_ratio.fpath_4_0= +fan_ratio.addr_4_0=0x00020017 +fan_ratio.len_4_0=1 +fan_ratio.bit_offset_4_0= + +fan_ratio.mode_4_1=config +fan_ratio.int_cons_4_1= +fan_ratio.src_4_1=cpld +fan_ratio.frmt_4_1=byte +fan_ratio.pola_4_1= +fan_ratio.fpath_4_1= +fan_ratio.addr_4_1=0x00020017 +fan_ratio.len_4_1=1 +fan_ratio.bit_offset_4_1= diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_PSU.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_PSU.cfg new file mode 100644 index 000000000000..082ef20fe97f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_PSU.cfg @@ -0,0 +1,64 @@ +# configuration item: the number of psus +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: psu main_dev is 2 +# minor_dev: psu minor_dev not exist(0) +dev_num_2_0=2 + + +# configuration item: psu status +# format: psu_status_[psu_index]_[status_id] +# psu_index: start from 1 +# status_id: 0: presence 1: output 2: alert +# psu1 presence status +psu_status.mode_1_0=config +psu_status.src_1_0=cpld +psu_status.frmt_1_0=bit +psu_status.pola_1_0=negative +psu_status.addr_1_0=0x00050051 +psu_status.len_1_0=1 +psu_status.bit_offset_1_0=0 + +# psu1 output status +psu_status.mode_1_1=config +psu_status.src_1_1=cpld +psu_status.frmt_1_1=bit +psu_status.pola_1_1=positive +psu_status.addr_1_1=0x00050051 +psu_status.len_1_1=1 +psu_status.bit_offset_1_1=1 + +# psu1 alert status +psu_status.mode_1_2=config +psu_status.src_1_2=cpld +psu_status.frmt_1_2=bit +psu_status.pola_1_2=negative +psu_status.addr_1_2=0x00050051 +psu_status.len_1_2=1 +psu_status.bit_offset_1_2=2 + +# psu2 presence status +psu_status.mode_2_0=config +psu_status.src_2_0=cpld +psu_status.frmt_2_0=bit +psu_status.pola_2_0=negative +psu_status.addr_2_0=0x00050051 +psu_status.len_2_0=1 +psu_status.bit_offset_2_0=4 + +# psu2 output status +psu_status.mode_2_1=config +psu_status.src_2_1=cpld +psu_status.frmt_2_1=bit +psu_status.pola_2_1=positive +psu_status.addr_2_1=0x00050051 +psu_status.len_2_1=1 +psu_status.bit_offset_2_1=5 + +# psu2 alert status +psu_status.mode_2_2=config +psu_status.src_2_2=cpld +psu_status.frmt_2_2=bit +psu_status.pola_2_2=negative +psu_status.addr_2_2=0x00050051 +psu_status.len_2_2=1 +psu_status.bit_offset_2_2=6 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_SFF.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_SFF.cfg new file mode 100644 index 000000000000..7f57dfd93c5b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/WB_PLAT_SFF.cfg @@ -0,0 +1,521 @@ +# configuration item: the number of sffs +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: sff main_dev is 3 +# minor_dev: sff minor_dev not exist(0) +dev_num_3_0=56 + +# configuration item: The directory name of sff sysfs +# format: sff_dir_name_[sff_index] +# sff_index: start from 1 +sff_dir_name_1 =sff1 +sff_dir_name_2 =sff2 +sff_dir_name_3 =sff3 +sff_dir_name_4 =sff4 +sff_dir_name_5 =sff5 +sff_dir_name_6 =sff6 +sff_dir_name_7 =sff7 +sff_dir_name_8 =sff8 +sff_dir_name_9 =sff9 +sff_dir_name_10 =sff10 +sff_dir_name_11 =sff11 +sff_dir_name_12 =sff12 +sff_dir_name_13 =sff13 +sff_dir_name_14 =sff14 +sff_dir_name_15 =sff15 +sff_dir_name_16 =sff16 +sff_dir_name_17 =sff17 +sff_dir_name_18 =sff18 +sff_dir_name_19 =sff19 +sff_dir_name_20 =sff20 +sff_dir_name_21 =sff21 +sff_dir_name_22 =sff22 +sff_dir_name_23 =sff23 +sff_dir_name_24 =sff24 +sff_dir_name_25 =sff25 +sff_dir_name_26 =sff26 +sff_dir_name_27 =sff27 +sff_dir_name_28 =sff28 +sff_dir_name_29 =sff29 +sff_dir_name_30 =sff30 +sff_dir_name_31 =sff31 +sff_dir_name_32 =sff32 +sff_dir_name_33 =sff33 +sff_dir_name_34 =sff34 +sff_dir_name_35 =sff35 +sff_dir_name_36 =sff36 +sff_dir_name_37 =sff37 +sff_dir_name_38 =sff38 +sff_dir_name_39 =sff39 +sff_dir_name_40 =sff40 +sff_dir_name_41 =sff41 +sff_dir_name_42 =sff42 +sff_dir_name_43 =sff43 +sff_dir_name_44 =sff44 +sff_dir_name_45 =sff45 +sff_dir_name_46 =sff46 +sff_dir_name_47 =sff47 +sff_dir_name_48 =sff48 +sff_dir_name_49 =sff49 +sff_dir_name_50 =sff50 +sff_dir_name_51 =sff51 +sff_dir_name_52 =sff52 +sff_dir_name_53 =sff53 +sff_dir_name_54 =sff54 +sff_dir_name_55 =sff55 +sff_dir_name_56 =sff56 + + +# configuration item: sff cpld register status +# format: sff_cpld_reg_[sff_index]_[cpld_reg] +# sff_index: start from 1 +# cpld_reg: 1: power_on, 2: tx_fault, 3: tx_dis, 4:pre_n, 5:rx_los +# 6: reset, 7: lpmode, 8: module_present, 9: interrupt + +# sff cpld presence status +sff_cpld_reg.mode_1_8=config +sff_cpld_reg.src_1_8=cpld +sff_cpld_reg.frmt_1_8=bit +sff_cpld_reg.pola_1_8=negative +sff_cpld_reg.addr_1_8=0x00030030 +sff_cpld_reg.len_1_8=1 +sff_cpld_reg.bit_offset_1_8=0 + +sff_cpld_reg.mode_2_8=config +sff_cpld_reg.src_2_8=cpld +sff_cpld_reg.frmt_2_8=bit +sff_cpld_reg.pola_2_8=negative +sff_cpld_reg.addr_2_8=0x00030030 +sff_cpld_reg.len_2_8=1 +sff_cpld_reg.bit_offset_2_8=1 + +sff_cpld_reg.mode_3_8=config +sff_cpld_reg.src_3_8=cpld +sff_cpld_reg.frmt_3_8=bit +sff_cpld_reg.pola_3_8=negative +sff_cpld_reg.addr_3_8=0x00030030 +sff_cpld_reg.len_3_8=1 +sff_cpld_reg.bit_offset_3_8=2 + +sff_cpld_reg.mode_4_8=config +sff_cpld_reg.src_4_8=cpld +sff_cpld_reg.frmt_4_8=bit +sff_cpld_reg.pola_4_8=negative +sff_cpld_reg.addr_4_8=0x00030030 +sff_cpld_reg.len_4_8=1 +sff_cpld_reg.bit_offset_4_8=3 + +sff_cpld_reg.mode_5_8=config +sff_cpld_reg.src_5_8=cpld +sff_cpld_reg.frmt_5_8=bit +sff_cpld_reg.pola_5_8=negative +sff_cpld_reg.addr_5_8=0x00030030 +sff_cpld_reg.len_5_8=1 +sff_cpld_reg.bit_offset_5_8=4 + +sff_cpld_reg.mode_6_8=config +sff_cpld_reg.src_6_8=cpld +sff_cpld_reg.frmt_6_8=bit +sff_cpld_reg.pola_6_8=negative +sff_cpld_reg.addr_6_8=0x00030030 +sff_cpld_reg.len_6_8=1 +sff_cpld_reg.bit_offset_6_8=5 + +sff_cpld_reg.mode_7_8=config +sff_cpld_reg.src_7_8=cpld +sff_cpld_reg.frmt_7_8=bit +sff_cpld_reg.pola_7_8=negative +sff_cpld_reg.addr_7_8=0x00030030 +sff_cpld_reg.len_7_8=1 +sff_cpld_reg.bit_offset_7_8=6 + +sff_cpld_reg.mode_8_8=config +sff_cpld_reg.src_8_8=cpld +sff_cpld_reg.frmt_8_8=bit +sff_cpld_reg.pola_8_8=negative +sff_cpld_reg.addr_8_8=0x00030030 +sff_cpld_reg.len_8_8=1 +sff_cpld_reg.bit_offset_8_8=7 + +sff_cpld_reg.mode_9_8=config +sff_cpld_reg.src_9_8=cpld +sff_cpld_reg.frmt_9_8=bit +sff_cpld_reg.pola_9_8=negative +sff_cpld_reg.addr_9_8=0x00030031 +sff_cpld_reg.len_9_8=1 +sff_cpld_reg.bit_offset_9_8=0 + +sff_cpld_reg.mode_10_8=config +sff_cpld_reg.src_10_8=cpld +sff_cpld_reg.frmt_10_8=bit +sff_cpld_reg.pola_10_8=negative +sff_cpld_reg.addr_10_8=0x00030031 +sff_cpld_reg.len_10_8=1 +sff_cpld_reg.bit_offset_10_8=1 + +sff_cpld_reg.mode_11_8=config +sff_cpld_reg.src_11_8=cpld +sff_cpld_reg.frmt_11_8=bit +sff_cpld_reg.pola_11_8=negative +sff_cpld_reg.addr_11_8=0x00030031 +sff_cpld_reg.len_11_8=1 +sff_cpld_reg.bit_offset_11_8=2 + +sff_cpld_reg.mode_12_8=config +sff_cpld_reg.src_12_8=cpld +sff_cpld_reg.frmt_12_8=bit +sff_cpld_reg.pola_12_8=negative +sff_cpld_reg.addr_12_8=0x00030031 +sff_cpld_reg.len_12_8=1 +sff_cpld_reg.bit_offset_12_8=3 + +sff_cpld_reg.mode_13_8=config +sff_cpld_reg.src_13_8=cpld +sff_cpld_reg.frmt_13_8=bit +sff_cpld_reg.pola_13_8=negative +sff_cpld_reg.addr_13_8=0x00030031 +sff_cpld_reg.len_13_8=1 +sff_cpld_reg.bit_offset_13_8=4 + +sff_cpld_reg.mode_14_8=config +sff_cpld_reg.src_14_8=cpld +sff_cpld_reg.frmt_14_8=bit +sff_cpld_reg.pola_14_8=negative +sff_cpld_reg.addr_14_8=0x00030031 +sff_cpld_reg.len_14_8=1 +sff_cpld_reg.bit_offset_14_8=5 + +sff_cpld_reg.mode_15_8=config +sff_cpld_reg.src_15_8=cpld +sff_cpld_reg.frmt_15_8=bit +sff_cpld_reg.pola_15_8=negative +sff_cpld_reg.addr_15_8=0x00030031 +sff_cpld_reg.len_15_8=1 +sff_cpld_reg.bit_offset_15_8=6 + +sff_cpld_reg.mode_16_8=config +sff_cpld_reg.src_16_8=cpld +sff_cpld_reg.frmt_16_8=bit +sff_cpld_reg.pola_16_8=negative +sff_cpld_reg.addr_16_8=0x00030031 +sff_cpld_reg.len_16_8=1 +sff_cpld_reg.bit_offset_16_8=7 + +sff_cpld_reg.mode_17_8=config +sff_cpld_reg.src_17_8=cpld +sff_cpld_reg.frmt_17_8=bit +sff_cpld_reg.pola_17_8=negative +sff_cpld_reg.addr_17_8=0x00030032 +sff_cpld_reg.len_17_8=1 +sff_cpld_reg.bit_offset_17_8=0 + +sff_cpld_reg.mode_18_8=config +sff_cpld_reg.src_18_8=cpld +sff_cpld_reg.frmt_18_8=bit +sff_cpld_reg.pola_18_8=negative +sff_cpld_reg.addr_18_8=0x00030032 +sff_cpld_reg.len_18_8=1 +sff_cpld_reg.bit_offset_18_8=1 + +sff_cpld_reg.mode_19_8=config +sff_cpld_reg.src_19_8=cpld +sff_cpld_reg.frmt_19_8=bit +sff_cpld_reg.pola_19_8=negative +sff_cpld_reg.addr_19_8=0x00030032 +sff_cpld_reg.len_19_8=1 +sff_cpld_reg.bit_offset_19_8=2 + +sff_cpld_reg.mode_20_8=config +sff_cpld_reg.src_20_8=cpld +sff_cpld_reg.frmt_20_8=bit +sff_cpld_reg.pola_20_8=negative +sff_cpld_reg.addr_20_8=0x00030032 +sff_cpld_reg.len_20_8=1 +sff_cpld_reg.bit_offset_20_8=3 + +sff_cpld_reg.mode_21_8=config +sff_cpld_reg.src_21_8=cpld +sff_cpld_reg.frmt_21_8=bit +sff_cpld_reg.pola_21_8=negative +sff_cpld_reg.addr_21_8=0x00030032 +sff_cpld_reg.len_21_8=1 +sff_cpld_reg.bit_offset_21_8=4 + +sff_cpld_reg.mode_22_8=config +sff_cpld_reg.src_22_8=cpld +sff_cpld_reg.frmt_22_8=bit +sff_cpld_reg.pola_22_8=negative +sff_cpld_reg.addr_22_8=0x00030032 +sff_cpld_reg.len_22_8=1 +sff_cpld_reg.bit_offset_22_8=5 + +sff_cpld_reg.mode_23_8=config +sff_cpld_reg.src_23_8=cpld +sff_cpld_reg.frmt_23_8=bit +sff_cpld_reg.pola_23_8=negative +sff_cpld_reg.addr_23_8=0x00030032 +sff_cpld_reg.len_23_8=1 +sff_cpld_reg.bit_offset_23_8=6 + +sff_cpld_reg.mode_24_8=config +sff_cpld_reg.src_24_8=cpld +sff_cpld_reg.frmt_24_8=bit +sff_cpld_reg.pola_24_8=negative +sff_cpld_reg.addr_24_8=0x00030032 +sff_cpld_reg.len_24_8=1 +sff_cpld_reg.bit_offset_24_8=7 + +sff_cpld_reg.mode_25_8=config +sff_cpld_reg.src_25_8=cpld +sff_cpld_reg.frmt_25_8=bit +sff_cpld_reg.pola_25_8=negative +sff_cpld_reg.addr_25_8=0x00040030 +sff_cpld_reg.len_25_8=1 +sff_cpld_reg.bit_offset_25_8=0 + +sff_cpld_reg.mode_26_8=config +sff_cpld_reg.src_26_8=cpld +sff_cpld_reg.frmt_26_8=bit +sff_cpld_reg.pola_26_8=negative +sff_cpld_reg.addr_26_8=0x00040030 +sff_cpld_reg.len_26_8=1 +sff_cpld_reg.bit_offset_26_8=1 + +sff_cpld_reg.mode_27_8=config +sff_cpld_reg.src_27_8=cpld +sff_cpld_reg.frmt_27_8=bit +sff_cpld_reg.pola_27_8=negative +sff_cpld_reg.addr_27_8=0x00040030 +sff_cpld_reg.len_27_8=1 +sff_cpld_reg.bit_offset_27_8=2 + +sff_cpld_reg.mode_28_8=config +sff_cpld_reg.src_28_8=cpld +sff_cpld_reg.frmt_28_8=bit +sff_cpld_reg.pola_28_8=negative +sff_cpld_reg.addr_28_8=0x00040030 +sff_cpld_reg.len_28_8=1 +sff_cpld_reg.bit_offset_28_8=3 + +sff_cpld_reg.mode_29_8=config +sff_cpld_reg.src_29_8=cpld +sff_cpld_reg.frmt_29_8=bit +sff_cpld_reg.pola_29_8=negative +sff_cpld_reg.addr_29_8=0x00040030 +sff_cpld_reg.len_29_8=1 +sff_cpld_reg.bit_offset_29_8=4 + +sff_cpld_reg.mode_30_8=config +sff_cpld_reg.src_30_8=cpld +sff_cpld_reg.frmt_30_8=bit +sff_cpld_reg.pola_30_8=negative +sff_cpld_reg.addr_30_8=0x00040030 +sff_cpld_reg.len_30_8=1 +sff_cpld_reg.bit_offset_30_8=5 + +sff_cpld_reg.mode_31_8=config +sff_cpld_reg.src_31_8=cpld +sff_cpld_reg.frmt_31_8=bit +sff_cpld_reg.pola_31_8=negative +sff_cpld_reg.addr_31_8=0x00040030 +sff_cpld_reg.len_31_8=1 +sff_cpld_reg.bit_offset_31_8=6 + +sff_cpld_reg.mode_32_8=config +sff_cpld_reg.src_32_8=cpld +sff_cpld_reg.frmt_32_8=bit +sff_cpld_reg.pola_32_8=negative +sff_cpld_reg.addr_32_8=0x00040030 +sff_cpld_reg.len_32_8=1 +sff_cpld_reg.bit_offset_32_8=7 + +sff_cpld_reg.mode_33_8=config +sff_cpld_reg.src_33_8=cpld +sff_cpld_reg.frmt_33_8=bit +sff_cpld_reg.pola_33_8=negative +sff_cpld_reg.addr_33_8=0x00040031 +sff_cpld_reg.len_33_8=1 +sff_cpld_reg.bit_offset_33_8=0 + +sff_cpld_reg.mode_34_8=config +sff_cpld_reg.src_34_8=cpld +sff_cpld_reg.frmt_34_8=bit +sff_cpld_reg.pola_34_8=negative +sff_cpld_reg.addr_34_8=0x00040031 +sff_cpld_reg.len_34_8=1 +sff_cpld_reg.bit_offset_34_8=1 + +sff_cpld_reg.mode_35_8=config +sff_cpld_reg.src_35_8=cpld +sff_cpld_reg.frmt_35_8=bit +sff_cpld_reg.pola_35_8=negative +sff_cpld_reg.addr_35_8=0x00040031 +sff_cpld_reg.len_35_8=1 +sff_cpld_reg.bit_offset_35_8=2 + +sff_cpld_reg.mode_36_8=config +sff_cpld_reg.src_36_8=cpld +sff_cpld_reg.frmt_36_8=bit +sff_cpld_reg.pola_36_8=negative +sff_cpld_reg.addr_36_8=0x00040031 +sff_cpld_reg.len_36_8=1 +sff_cpld_reg.bit_offset_36_8=3 + +sff_cpld_reg.mode_37_8=config +sff_cpld_reg.src_37_8=cpld +sff_cpld_reg.frmt_37_8=bit +sff_cpld_reg.pola_37_8=negative +sff_cpld_reg.addr_37_8=0x00040031 +sff_cpld_reg.len_37_8=1 +sff_cpld_reg.bit_offset_37_8=4 + +sff_cpld_reg.mode_38_8=config +sff_cpld_reg.src_38_8=cpld +sff_cpld_reg.frmt_38_8=bit +sff_cpld_reg.pola_38_8=negative +sff_cpld_reg.addr_38_8=0x00040031 +sff_cpld_reg.len_38_8=1 +sff_cpld_reg.bit_offset_38_8=5 + +sff_cpld_reg.mode_39_8=config +sff_cpld_reg.src_39_8=cpld +sff_cpld_reg.frmt_39_8=bit +sff_cpld_reg.pola_39_8=negative +sff_cpld_reg.addr_39_8=0x00040031 +sff_cpld_reg.len_39_8=1 +sff_cpld_reg.bit_offset_39_8=6 + +sff_cpld_reg.mode_40_8=config +sff_cpld_reg.src_40_8=cpld +sff_cpld_reg.frmt_40_8=bit +sff_cpld_reg.pola_40_8=negative +sff_cpld_reg.addr_40_8=0x00040031 +sff_cpld_reg.len_40_8=1 +sff_cpld_reg.bit_offset_40_8=7 + +sff_cpld_reg.mode_41_8=config +sff_cpld_reg.src_41_8=cpld +sff_cpld_reg.frmt_41_8=bit +sff_cpld_reg.pola_41_8=negative +sff_cpld_reg.addr_41_8=0x00040032 +sff_cpld_reg.len_41_8=1 +sff_cpld_reg.bit_offset_41_8=0 + +sff_cpld_reg.mode_42_8=config +sff_cpld_reg.src_42_8=cpld +sff_cpld_reg.frmt_42_8=bit +sff_cpld_reg.pola_42_8=negative +sff_cpld_reg.addr_42_8=0x00040032 +sff_cpld_reg.len_42_8=1 +sff_cpld_reg.bit_offset_42_8=1 + +sff_cpld_reg.mode_43_8=config +sff_cpld_reg.src_43_8=cpld +sff_cpld_reg.frmt_43_8=bit +sff_cpld_reg.pola_43_8=negative +sff_cpld_reg.addr_43_8=0x00040032 +sff_cpld_reg.len_43_8=1 +sff_cpld_reg.bit_offset_43_8=2 + +sff_cpld_reg.mode_44_8=config +sff_cpld_reg.src_44_8=cpld +sff_cpld_reg.frmt_44_8=bit +sff_cpld_reg.pola_44_8=negative +sff_cpld_reg.addr_44_8=0x00040032 +sff_cpld_reg.len_44_8=1 +sff_cpld_reg.bit_offset_44_8=3 + +sff_cpld_reg.mode_45_8=config +sff_cpld_reg.src_45_8=cpld +sff_cpld_reg.frmt_45_8=bit +sff_cpld_reg.pola_45_8=negative +sff_cpld_reg.addr_45_8=0x00040032 +sff_cpld_reg.len_45_8=1 +sff_cpld_reg.bit_offset_45_8=4 + +sff_cpld_reg.mode_46_8=config +sff_cpld_reg.src_46_8=cpld +sff_cpld_reg.frmt_46_8=bit +sff_cpld_reg.pola_46_8=negative +sff_cpld_reg.addr_46_8=0x00040032 +sff_cpld_reg.len_46_8=1 +sff_cpld_reg.bit_offset_46_8=5 + +sff_cpld_reg.mode_47_8=config +sff_cpld_reg.src_47_8=cpld +sff_cpld_reg.frmt_47_8=bit +sff_cpld_reg.pola_47_8=negative +sff_cpld_reg.addr_47_8=0x00040032 +sff_cpld_reg.len_47_8=1 +sff_cpld_reg.bit_offset_47_8=6 + +sff_cpld_reg.mode_48_8=config +sff_cpld_reg.src_48_8=cpld +sff_cpld_reg.frmt_48_8=bit +sff_cpld_reg.pola_48_8=negative +sff_cpld_reg.addr_48_8=0x00040032 +sff_cpld_reg.len_48_8=1 +sff_cpld_reg.bit_offset_48_8=7 + +sff_cpld_reg.mode_49_8=config +sff_cpld_reg.src_49_8=cpld +sff_cpld_reg.frmt_49_8=bit +sff_cpld_reg.pola_49_8=negative +sff_cpld_reg.addr_49_8=0x00040033 +sff_cpld_reg.len_49_8=1 +sff_cpld_reg.bit_offset_49_8=0 + +sff_cpld_reg.mode_50_8=config +sff_cpld_reg.src_50_8=cpld +sff_cpld_reg.frmt_50_8=bit +sff_cpld_reg.pola_50_8=negative +sff_cpld_reg.addr_50_8=0x00040033 +sff_cpld_reg.len_50_8=1 +sff_cpld_reg.bit_offset_50_8=1 + +sff_cpld_reg.mode_51_8=config +sff_cpld_reg.src_51_8=cpld +sff_cpld_reg.frmt_51_8=bit +sff_cpld_reg.pola_51_8=negative +sff_cpld_reg.addr_51_8=0x00040033 +sff_cpld_reg.len_51_8=1 +sff_cpld_reg.bit_offset_51_8=2 + +sff_cpld_reg.mode_52_8=config +sff_cpld_reg.src_52_8=cpld +sff_cpld_reg.frmt_52_8=bit +sff_cpld_reg.pola_52_8=negative +sff_cpld_reg.addr_52_8=0x00040033 +sff_cpld_reg.len_52_8=1 +sff_cpld_reg.bit_offset_52_8=3 + +sff_cpld_reg.mode_53_8=config +sff_cpld_reg.src_53_8=cpld +sff_cpld_reg.frmt_53_8=bit +sff_cpld_reg.pola_53_8=negative +sff_cpld_reg.addr_53_8=0x00040033 +sff_cpld_reg.len_53_8=1 +sff_cpld_reg.bit_offset_53_8=4 + +sff_cpld_reg.mode_54_8=config +sff_cpld_reg.src_54_8=cpld +sff_cpld_reg.frmt_54_8=bit +sff_cpld_reg.pola_54_8=negative +sff_cpld_reg.addr_54_8=0x00040033 +sff_cpld_reg.len_54_8=1 +sff_cpld_reg.bit_offset_54_8=5 + +sff_cpld_reg.mode_55_8=config +sff_cpld_reg.src_55_8=cpld +sff_cpld_reg.frmt_55_8=bit +sff_cpld_reg.pola_55_8=negative +sff_cpld_reg.addr_55_8=0x00040033 +sff_cpld_reg.len_55_8=1 +sff_cpld_reg.bit_offset_55_8=6 + +sff_cpld_reg.mode_56_8=config +sff_cpld_reg.src_56_8=cpld +sff_cpld_reg.frmt_56_8=bit +sff_cpld_reg.pola_56_8=negative +sff_cpld_reg.addr_56_8=0x00040033 +sff_cpld_reg.len_56_8=1 +sff_cpld_reg.bit_offset_56_8=7 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/cfg_file_name b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/cfg_file_name new file mode 100644 index 000000000000..5f49420441a5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/plat_sysfs_cfg/cfg_file_name @@ -0,0 +1,4 @@ +WB_PLAT_CPLD +WB_PLAT_FAN +WB_PLAT_PSU +WB_PLAT_SFF diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/setup.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/setup.py new file mode 100644 index 000000000000..6c3916921abb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/setup.py @@ -0,0 +1,39 @@ +from setuptools import setup + +setup( + name='sonic-platform', + version='1.0', + description='SONiC platform API implementation', + license='Apache 2.0', + author='SONiC Team', + author_email='support', + url='', + maintainer='support', + maintainer_email='', + packages=[ + 'sonic_platform', + 'plat_hal', + 'wbutil', + 'eepromutil', + 'hal-config', + 'config', + ], + py_modules=[ + 'hal_pltfm', + 'platform_util', + 'platform_intf', + ], + 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 :: 3.7', + 'Topic :: Utilities', + ], + keywords='sonic SONiC platform PLATFORM', +) diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_base_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_base_cpld_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..d0120b0b324f1f89296cfe9ba7d22c0db960986a GIT binary patch literal 292 zcmXR)O)E+*&WKM+EKZG2F33sIE6Yvga`W_Y^>B4`aShVoa&Zj{i41VHHK;H$00C1o zE-)XYn9JG2(bLb?5J-Cl_&NHz+JZ&HT!Vr={rzmq48SIVm52GdaybV%1C23FNlGOY;=mQj-)6%oPj`tW1rq42%_w42%r9xELfA!WcPNgc%Ch6omf+K>;TN zI|CClGZXgH!~gPQd^G literal 0 HcmV?d00001 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_cpu_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_cpu_cpld_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..5d29b5b6806c2abfd58dedbd51b068c7ce73ebc5 GIT binary patch literal 292 zcmXR)O)E+*&WKMgC}j zE={gfh3t4BFf`IL{FvQGl3I|HUzwYlSE3M-pP!>(tY-+cA;{G+1Zb#& zi(`nZl|pc7o`P3tj)I|uf{}rhiJ_IT5s+bI$i>AVsSw73UUZDuonm^2s1LUh%g-Dz0xMi^q-{wBs{M`fKi%B>P0&fi1#1FOOfhW H&QuQo0|!pK literal 0 HcmV?d00001 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_fan_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_fan_cpld_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..5a7fb9b1285100a967097fa9c10fef2737454e81 GIT binary patch literal 296 zcmXR)O)E+*&WKM-%!^Mh$Vt&F%T48S^Yn4`aCLNX4btFpaSaQJ3~;qIs4y}B0aG(B zFdw9t%h|)x)6dorNP7nOIr_TVf#WR4+MrrdWIj9-CQygbMy036kJjZa`G#4Q}ap`Lh|!-6pZyOfm&T1Lx5%~ zxHyKmS}6pV<|(+PCMg)0D;OGBnHmF;f{}rdAr}{eq(T@Y2eU9k0h@&I|Ns9BI2nO# zb`IhH1x(D$Ox!Qn1sDZ6gc;ZigcO7s8CXOZ4)I=T6J`3(QUDU3S0KPB%_Q}roe9MI N58|arbu4G92LN+sPtE`U literal 0 HcmV?d00001 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_maca_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_maca_cpld_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..240306b5ddb24304299cd62d97cf70ac34699f8c GIT binary patch literal 297 zcmXR)O)E+*&WO)VOiqkXF33sIE6Yvga`W_Y^>B4`aShVoa&Zj{i41VHHK;H$00C1o zE-)XYn9JG2(bLb?5J-Cl_&NHz+JZ&HT!Vr={rzmq48SIVm52GdaybV%1C2>cHZnFg zHc#c!SecqwnOG_q85kLIaWP0LgfVh32{RP12?+oHU%&}s zvV)mS%*;&OFW3bb1v!Kn*b9Udgc%uFL>Lb7UTG6$`p;4T5}sEez$ncm^`e~##QP88 LrAT!wXQ~GPhE7km literal 0 HcmV?d00001 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_macb_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_macb_cpld_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..fc3c537189e3796c4970a04ca5825cdee991ccfe GIT binary patch literal 297 zcmXR)O)E+*&WO)VOiqeVF33sIE6Yvga`W_Y^>B4`aShVoa&Zj{i41VHHK;H$00C1o zE-)XYn9JG2(bLb?5J-Cl_&NHz+JZ&HT!Vr={rzmq48SIVm52GdaybV%gN!jZFikX1 zN#WAuO4U6U4+MrrdWIj9-CQygbMy036kJjZa`G#4Q}ap`Lh|!-6pZyOfm&T1Lx5%~ zxHyKmS}6pV<|(+PCMg)0D;OGBnVMRem?{_<7#VVLF-R(eF>){pGZe6K2>&nOWCpU> zC4~R~|6jnw%*@37f?a@7kVBY(y+BAon2~`+gy9hHl{QhP|11R{;duoDjM7X}FWQ+v Oy#F9xid4sPrg{L65l_$n literal 0 HcmV?d00001 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/cpld_test_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/cpld_test_header.vme new file mode 100644 index 0000000000000000000000000000000000000000..29bc7594d140dea035ed6a1348fc2f7ace7197bc GIT binary patch literal 467 zcmaiv%}T>S6h}e-G-4-dQHbPO6dHIBs9 z1c}E{It^WMrn6}@p<(ly)A?`{bOkkE?}<>)Gzl zYLq-IH|2H>3FAfix?$T2va&3oXAcERqf9s /sys/class/gpio/export", "gettype": "cmd"}, + {"cmd": "echo high > /sys/class/gpio/gpio7/direction", "gettype": "cmd"}, + {"io_addr": 0x7cc, "value": 0, "gettype": "io"}, + ], + "rw_recover_reg": [ + {"io_addr": 0x705, "value": None, "gettype": "io"}, + {"io_addr": 0x713, "value": None, "gettype": "io"}, + {"io_addr": 0x715, "value": None, "gettype": "io"}, + {"io_addr": 0x721, "value": None, "gettype": "io"}, + {"io_addr": 0x722, "value": None, "gettype": "io"}, + {"io_addr": 0x772, "value": None, "gettype": "io"}, + {"io_addr": 0x774, "value": None, "gettype": "io"}, + {"io_addr": 0x776, "value": None, "gettype": "io"}, + {"io_addr": 0x778, "value": None, "gettype": "io"}, + {"io_addr": 0x77a, "value": None, "gettype": "io"}, + {"io_addr": 0x77c, "value": None, "gettype": "io"}, + {"io_addr": 0x780, "value": None, "gettype": "io"}, + ], + "after_upgrade_delay": 1, + "after_upgrade_delay_timeout": 30, + "access_check_reg": {"io_addr": 0x705, "value": 0x5a, "gettype": "io"}, + "finish_cmd": [ + {"io_addr": 0x7cc, "value": 0xff, "gettype": "io"}, + {"cmd": "echo 0 > /sys/class/gpio/gpio7/value", "gettype": "cmd"}, + {"cmd": "echo 7 > /sys/class/gpio/unexport", "gettype": "cmd"}, + ], + }, + {"name": "CONNECT_CPLD", + "refresh_file_judge_flag": 1, + "refresh_file": "/etc/.cpld_refresh/refresh_base_cpld_header.vme", + "init_cmd": [ + {"bus": 2, "loc": 0x2d, "offset": 0xcd, "value": 1, "gettype": "i2c"}, + {"io_addr": 0x9cc, "value": 0, "gettype": "io"}, + ], + "rw_recover_reg": [ + {"io_addr": 0x9aa, "value": None, "gettype": "io"}, + {"io_addr": 0x955, "value": None, "gettype": "io"}, + {"io_addr": 0x911, "value": None, "gettype": "io"}, + {"io_addr": 0x923, "value": None, "gettype": "io"}, + {"io_addr": 0x924, "value": None, "gettype": "io"}, + {"io_addr": 0x930, "value": None, "gettype": "io"}, + {"io_addr": 0x932, "value": None, "gettype": "io"}, + {"io_addr": 0x933, "value": None, "gettype": "io"}, + {"io_addr": 0x934, "value": None, "gettype": "io"}, + {"io_addr": 0x937, "value": None, "gettype": "io"}, + {"io_addr": 0x938, "value": None, "gettype": "io"}, + {"io_addr": 0x939, "value": None, "gettype": "io"}, + {"io_addr": 0x93a, "value": None, "gettype": "io"}, + {"io_addr": 0x941, "value": None, "gettype": "io"}, + {"io_addr": 0x942, "value": None, "gettype": "io"}, + {"io_addr": 0x947, "value": None, "gettype": "io"}, + {"io_addr": 0x948, "value": None, "gettype": "io"}, + {"io_addr": 0x949, "value": None, "gettype": "io"}, + {"io_addr": 0x94d, "value": None, "gettype": "io"}, + {"io_addr": 0x94e, "value": None, "gettype": "io"}, + {"io_addr": 0x94f, "value": None, "gettype": "io"}, + {"io_addr": 0x950, "value": None, "gettype": "io"}, + {"io_addr": 0x951, "value": None, "gettype": "io"}, + {"io_addr": 0x952, "value": None, "gettype": "io"}, + {"io_addr": 0x953, "value": None, "gettype": "io"}, + ], + "after_upgrade_delay": 30, + "after_upgrade_delay_timeout": 60, + "refresh_finish_flag_check": {"io_addr": 0x9cb, "value": 0x5a, "gettype": "io"}, + "access_check_reg": {"io_addr": 0x9aa, "value": 0x5a, "gettype": "io"}, + "finish_cmd": [ + {"bus": 2, "loc": 0x2d, "offset": 0xcd, "value": 0, "gettype": "i2c"}, + ], + }, + + {"name": "MACA_CPLD", + "refresh_file_judge_flag": 1, + "refresh_file": "/etc/.cpld_refresh/refresh_maca_cpld_header.vme", + "init_cmd": [ + {"cmd": "touch /etc/sonic/.warm_upg_flag", "gettype": "cmd"}, + {"cmd": "sync", "gettype": "cmd"}, + {"path": "/dev/fpga0", "offset": 0xb4, "value": [0x1], "gettype":"devfile", "delay":0.1}, + {"bus": 2, "loc": 0x1d, "offset": 0xcc, "value": 0, "gettype": "i2c"}, + ], + "rw_recover_reg": [ + {"bus": 2, "loc": 0x1d, "offset": 0xaa, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x55, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x11, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x14, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x15, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x1a, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x1b, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x1c, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x1d, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x1f, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x21, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x22, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x35, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x36, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x37, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x38, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x39, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x3a, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x3b, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x3c, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x3d, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x3e, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x3f, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x40, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x41, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x42, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x1d, "offset": 0x44, "value": None, "gettype": "i2c"}, + ], + "after_upgrade_delay": 1, + "after_upgrade_delay_timeout": 30, + "refresh_finish_flag_check": {"bus": 2, "loc": 0x1d, "offset": 0xcb, "value": 0x5a, "gettype": "i2c"}, + "access_check_reg": {"bus": 2, "loc": 0x1d, "offset": 0xaa, "value": 0x5a, "gettype": "i2c"}, + "finish_cmd": [ + {"path": "/dev/fpga0", "offset": 0xb4, "value": [0x0], "gettype":"devfile"}, + {"cmd": "rm -rf /etc/sonic/.warm_upg_flag", "gettype": "cmd"}, + {"cmd": "sync", "gettype": "cmd"}, + ], + }, + + {"name": "MACB_CPLD", + "refresh_file_judge_flag": 1, + "refresh_file": "/etc/.cpld_refresh/refresh_macb_cpld_header.vme", + "init_cmd": [ + {"cmd": "touch /etc/sonic/.warm_upg_flag", "gettype": "cmd"}, + {"cmd": "sync", "gettype": "cmd"}, + {"path": "/dev/fpga0", "offset": 0xb0, "value": [0x1], "gettype":"devfile", "delay":0.1}, + {"bus": 2, "loc": 0x2d, "offset": 0xcc, "value": 0, "gettype": "i2c"}, + ], + "rw_recover_reg": [ + {"bus": 2, "loc": 0x2d, "offset": 0xaa, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x55, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x11, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x14, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x15, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x1a, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x1b, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x1c, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x1d, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x1f, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x21, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x22, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x23, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x30, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x31, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x32, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x33, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x34, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x35, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x3a, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x3b, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x3c, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x3d, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x3e, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x40, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x42, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x43, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x44, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x45, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x46, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x4c, "value": None, "gettype": "i2c"}, + {"bus": 2, "loc": 0x2d, "offset": 0x4d, "value": None, "gettype": "i2c"}, + ], + "after_upgrade_delay": 1, + "after_upgrade_delay_timeout": 30, + "refresh_finish_flag_check": {"bus": 2, "loc": 0x2d, "offset": 0xcb, "value": 0x5a, "gettype": "i2c"}, + "access_check_reg": {"bus": 2, "loc": 0x2d, "offset": 0xaa, "value": 0x5a, "gettype": "i2c"}, + "finish_cmd": [ + {"path": "/dev/fpga0", "offset": 0xb0, "value": [0x0], "gettype":"devfile"}, + {"cmd": "rm -rf /etc/sonic/.warm_upg_flag", "gettype": "cmd"}, + {"cmd": "sync", "gettype": "cmd"}, + ], + }, + + {"name": "FAN_CPLD", + "refresh_file_judge_flag": 1, + "refresh_file": "/etc/.cpld_refresh/refresh_fan_cpld_header.vme", + "rw_recover_reg": [ + {"bus": 4, "loc": 0x3d, "offset": 0xaa, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x55, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x11, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x13, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x15, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x17, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x19, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x30, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x31, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x33, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x35, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x3a, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x3c, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x3d, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x3e, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x3f, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x40, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x41, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x60, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x61, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x62, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x63, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x64, "value": None, "gettype": "i2c"}, + {"bus": 4, "loc": 0x3d, "offset": 0x65, "value": None, "gettype": "i2c"}, + ], + "after_upgrade_delay": 1, + "after_upgrade_delay_timeout": 30, + "access_check_reg": {"bus": 4, "loc": 0x3d, "offset": 0xaa, "value": 0x5a, "gettype": "i2c"}, + }, + ], + }, + + "SPI-LOGIC-DEV": { + "chain1": [ + {"name": "FPGA", + "init_cmd": [ + {"file": WARM_UPG_FLAG, "gettype": "creat_file"}, + {"cmd": "setpci -s 00:03.2 0xA0.W=0x0050", "gettype": "cmd"}, # link_disable + {"io_addr": 0x9cd, "value": 0, "gettype": "io"}, + ], + "after_upgrade_delay": 10, + "after_upgrade_delay_timeout": 180, + "refresh_finish_flag_check": {"io_addr": 0x9cd, "value": 0xff, "gettype": "io"}, + "access_check_reg": { + "path": "/dev/fpga0", "offset": 0x8, "value": [0x55, 0xaa, 0x5a, 0xa5], "read_len":4, "gettype":"devfile", + "polling_cmd":[ + {"cmd": "setpci -s 00:03.2 0xA0.W=0x0060", "gettype": "cmd"},# retrain_link + {"cmd": "rmmod wb_fpga_pcie", "gettype": "cmd"}, + {"cmd": "modprobe wb_fpga_pcie", "gettype": "cmd", "delay": 0.1}, + ], + "polling_delay": 0.1 + }, + "finish_cmd": [ + {"cmd": "setpci -s 00:03.2 0xA0.W=0x0060", "gettype": "cmd"},# retrain_link + {"file": WARM_UPG_FLAG, "gettype": "remove_file"}, + ], + }, + ], + }, + }, + "stop_services_cmd": [ + "/usr/local/bin/platform_process.py stop", + ], + "start_services_cmd": [ + "/usr/local/bin/platform_process.py start", + ], +} + +REBOOT_CAUSE_PARA = { + "reboot_cause_list": [ + { + "name": "cold_reboot", + "monitor_point": {"gettype": "io", "io_addr": 0x988, "okval": 0}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "Power Loss, ", + "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Power Loss, ", + "path": "/etc/sonic/.reboot/.history-reboot-cause.txt", "file_max_size": 1 * 1024 * 1024} + ] + }, + { + "name": "wdt_reboot", + "monitor_point": {"gettype": "io", "io_addr": 0x989, "okval": 1}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "Watchdog, ", + "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Watchdog, ", + "path": "/etc/.reboot/.history-reboot-cause.txt", "file_max_size":1*1024*1024} + ], + "finish_operation": [ + {"gettype": "io", "io_addr": 0x987, "value": 0xfc}, + ] + }, + { + "name": "bmc_reboot", + "monitor_point": {"gettype": "io", "io_addr": 0x98a, "okval": 1}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "BMC reboot, ", + "path": "/var/cache/sonic/previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "BMC reboot, ", "path": "/host/misc/history-reboot-cause.txt"} + ], + "finish_operation": [ + {"gettype": "io", "io_addr": 0x987, "value": 0xfa}, + ] + }, + { + "name": "bmc_powerdown", + "monitor_point": {"gettype": "io", "io_addr": 0x98b, "okval": 1}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "BMC powerdown, ", + "path": "/var/cache/sonic/previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "BMC powerdown, ", "path": "/host/misc/history-reboot-cause.txt"} + ], + "finish_operation": [ + {"gettype": "io", "io_addr": 0x987, "value": 0xf6}, + ] + }, + { + "name": "otp_switch_reboot", + "monitor_point": {"gettype": "file_exist", "judge_file": "/etc/.otp_switch_reboot_flag", "okval": True}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "Thermal Overload: ASIC, ", + "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Thermal Overload: ASIC, ", + "path": "/etc/sonic/.reboot/.history-reboot-cause.txt", "file_max_size": 1 * 1024 * 1024} + ], + "finish_operation": [ + {"gettype": "cmd", "cmd": "rm -rf /etc/.otp_switch_reboot_flag"}, + ] + }, + { + "name": "otp_other_reboot", + "monitor_point": {"gettype": "file_exist", "judge_file": "/etc/.otp_other_reboot_flag", "okval": True}, + "record": [ + {"record_type": "file", "mode": "cover", "log": "Thermal Overload: Other, ", + "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Thermal Overload: Other, ", + "path": "/etc/sonic/.reboot/.history-reboot-cause.txt", "file_max_size": 1 * 1024 * 1024} + ], + "finish_operation": [ + {"gettype": "cmd", "cmd": "rm -rf /etc/.otp_other_reboot_flag"}, + ] + }, + ], + "other_reboot_cause_record": [ + {"record_type": "file", "mode": "cover", "log": "Other, ", "path": "/etc/sonic/.reboot/.previous-reboot-cause.txt"}, + {"record_type": "file", "mode": "add", "log": "Other, ", "path": "/etc/sonic/.reboot/.history-reboot-cause.txt"} + ], +} + +UPGRADE_SUMMARY = { + "devtype": 0x20000056, + + "slot0": { + "subtype": 0, + "VME": { + "chain1": { + "name": "CPLD", + "is_support_warm_upg": 1, + }, + }, + + "SPI-LOGIC-DEV": { + "chain1": { + "name": "FPGA", + "is_support_warm_upg": 1, + }, + }, + + "SYSFS": { + "chain2": { + "name": "BCM5387", + "is_support_warm_upg": 0, + "init_cmd": [ + {"cmd": "modprobe wb_spi_gpio", "gettype": "cmd"}, + {"cmd": "modprobe wb_spi_gpio_device sck=67 miso=32 mosi=65 bus=0", "gettype": "cmd"}, + {"cmd": "modprobe wb_spi_93xx46 spi_bus_num=0 spi_cs_gpio=6", "gettype": "cmd", "delay": 0.1}, + ], + "finish_cmd": [ + {"cmd": "rmmod wb_spi_93xx46", "gettype": "cmd"}, + {"cmd": "rmmod wb_spi_gpio_device", "gettype": "cmd"}, + {"cmd": "rmmod wb_spi_gpio", "gettype": "cmd", "delay": 0.1}, + ], + }, + }, + + "MTD": { + "chain3": { + "name": "BIOS", + "is_support_warm_upg": 0, + "filesizecheck": 10240, # bios check file size, Unit: K + "init_cmd": [ + {"io_addr": 0x722, "value": 0x02, "gettype": "io"}, + {"cmd": "modprobe mtd", "gettype": "cmd"}, + {"cmd": "modprobe spi_nor", "gettype": "cmd"}, + {"cmd": "modprobe ofpart", "gettype": "cmd"}, + {"cmd": "modprobe intel_spi writeable=1", "gettype": "cmd"}, + {"cmd": "modprobe intel_spi_platform writeable=1", "gettype": "cmd"}, + ], + "finish_cmd": [ + {"cmd": "rmmod intel_spi_platform", "gettype": "cmd"}, + {"cmd": "rmmod intel_spi", "gettype": "cmd"}, + {"cmd": "rmmod ofpart", "gettype": "cmd"}, + {"cmd": "rmmod spi_nor", "gettype": "cmd"}, + {"cmd": "rmmod mtd", "gettype": "cmd"}, + ], + }, + }, + + "TEST": { + "fpga": [ + {"chain": 1, "file": "/etc/.upgrade_test/fpga_test_header.bin", "display_name": "FPGA"}, + ], + "cpld": [ + {"chain": 1, "file": "/etc/.upgrade_test/cpld_test_header.vme", "display_name": "CPLD"}, + ], + }, + }, + + "BMC": { + "name": "BMC", + "init_cmd": [ + # stop BMC stack watchdog + {"cmd": "ipmitool raw 0x32 0x03 0x02", "gettype": "cmd", "ignore_result": 1}, + ], + "finish_cmd": [], + }, +} + +PLATFORM_E2_CONF = { + "fan": [ + {"name": "fan1", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/35-0050/eeprom"}, + {"name": "fan2", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/34-0050/eeprom"}, + {"name": "fan3", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/33-0050/eeprom"}, + {"name": "fan4", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/32-0050/eeprom"}, + {"name": "fan5", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/31-0050/eeprom"}, + {"name": "fan6", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/30-0050/eeprom"}, + ], + "psu": [ + {"name": "psu1", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/41-0050/eeprom"}, + {"name": "psu2", "e2_type": "fru", "e2_path": "/sys/bus/i2c/devices/42-0050/eeprom"}, + ], + "syseeprom": [ + {"name": "syseeprom", "e2_type": "onie_tlv", "e2_path": "/sys/bus/i2c/devices/1-0056/eeprom"}, + ], +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/config/x86_64_micas_m2_w6520_24dc8qc_r0_port_config.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/config/x86_64_micas_m2_w6520_24dc8qc_r0_port_config.py new file mode 100755 index 000000000000..fccc59402891 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/config/x86_64_micas_m2_w6520_24dc8qc_r0_port_config.py @@ -0,0 +1,7 @@ +#!/usr/bin/python3 +# -*- coding: UTF-8 -*- + +PLATFORM_INTF_OPTOE = { + "port_num": 32, + "optoe_start_bus": 46, +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_device.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_device.py new file mode 100755 index 000000000000..6adf2ef004b9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_device.py @@ -0,0 +1,1190 @@ +#!/usr/bin/python3 + +psu_fan_airflow = { + "intake": ['DPS-1300AB-6 S', 'GW-CRPS1300D'], + "exhaust": [] +} + +fanairflow = { + "intake": ['M1HFAN II-F'], + "exhaust": [], +} + +psu_display_name = { + "PA1300I-F": ['GW-CRPS1300D', 'DPS-1300AB-6 S'], +} + +psutypedecode = { + 0x00: 'N/A', + 0x01: 'AC', + 0x02: 'DC', +} + +class Unit: + Temperature = "C" + Voltage = "V" + Current = "A" + Power = "W" + Speed = "RPM" + +class threshold: + PSU_TEMP_MIN = -10 * 1000 + PSU_TEMP_MAX = 60 * 1000 + + PSU_FAN_SPEED_MIN = 2000 + PSU_FAN_SPEED_MAX = 28000 + + PSU_OUTPUT_VOLTAGE_MIN = 11 * 1000 + PSU_OUTPUT_VOLTAGE_MAX = 14 * 1000 + + PSU_AC_INPUT_VOLTAGE_MIN = 200 * 1000 + PSU_AC_INPUT_VOLTAGE_MAX = 240 * 1000 + + PSU_DC_INPUT_VOLTAGE_MIN = 190 * 1000 + PSU_DC_INPUT_VOLTAGE_MAX = 290 * 1000 + + ERR_VALUE = -9999999 + + PSU_OUTPUT_POWER_MIN = 10 * 1000 * 1000 + PSU_OUTPUT_POWER_MAX = 1300 * 1000 * 1000 + + PSU_INPUT_POWER_MIN = 10 * 1000 * 1000 + PSU_INPUT_POWER_MAX = 1444 * 1000 * 1000 + + PSU_OUTPUT_CURRENT_MIN = 2 * 1000 + PSU_OUTPUT_CURRENT_MAX = 107 * 1000 + + PSU_INPUT_CURRENT_MIN = 0.2 * 1000 + PSU_INPUT_CURRENT_MAX = 7 * 1000 + + FRONT_FAN_SPEED_MAX = 25000 + REAR_FAN_SPEED_MAX = 22000 + FAN_SPEED_MIN = 2000 + +devices = { + "onie_e2": [ + { + "name": "ONIE_E2", + "e2loc": {"loc": "/sys/bus/i2c/devices/1-0056/eeprom", "way": "sysfs"}, + "airflow": "intake" + }, + ], + "psus": [ + { + "e2loc": {"loc": "/sys/bus/i2c/devices/41-0050/eeprom", "way": "sysfs"}, + "pmbusloc": {"bus": 41, "addr": 0x58, "way": "i2c"}, + "present": {"loc": "/sys/wb_plat/psu/psu1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "name": "PSU1", + "psu_display_name": psu_display_name, + "airflow": psu_fan_airflow, + "TempStatus": {"bus": 41, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": threshold.PSU_TEMP_MIN, + "Max": threshold.PSU_TEMP_MAX, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "FanStatus": {"bus": 41, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, + "FanSpeed": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, + "Min": threshold.PSU_FAN_SPEED_MIN, + "Max": threshold.PSU_FAN_SPEED_MAX, + "Unit": Unit.Speed + }, + "psu_fan_tolerance": 40, + "InputsStatus": {"bus":41, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x2000}, + "InputsType": {"bus": 41, "addr": 0x58, "offset": 0x80, "way": "i2c", 'psutypedecode': psutypedecode}, + "InputsVoltage": { + 'AC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_AC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_AC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + + }, + 'DC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + 'other': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.ERR_VALUE, + "Max": threshold.ERR_VALUE, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + } + }, + "InputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_CURRENT_MIN, + "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "InputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_POWER_MIN, + "Max": threshold.PSU_INPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + "OutputsStatus": {"bus": 41, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, + "OutputsVoltage": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, + "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + "OutputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_CURRENT_MIN, + "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "OutputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_POWER_MIN, + "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + }, + { + "e2loc": {"loc": "/sys/bus/i2c/devices/42-0050/eeprom", "way": "sysfs"}, + "pmbusloc": {"bus": 42, "addr": 0x58, "way": "i2c"}, + "present": {"loc": "/sys/wb_plat/psu/psu2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "name": "PSU2", + "psu_display_name": psu_display_name, + "airflow": psu_fan_airflow, + "TempStatus": {"bus": 42, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": threshold.PSU_TEMP_MIN, + "Max": threshold.PSU_TEMP_MAX, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "FanStatus": {"bus": 42, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, + "FanSpeed": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, + "Min": threshold.PSU_FAN_SPEED_MIN, + "Max": threshold.PSU_FAN_SPEED_MAX, + "Unit": Unit.Speed + }, + "psu_fan_tolerance": 40, + "InputsStatus": {"bus": 42, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x2000}, + "InputsType": {"bus": 42, "addr": 0x58, "offset": 0x80, "way": "i2c", 'psutypedecode': psutypedecode}, + "InputsVoltage": { + 'AC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_AC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_AC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + + }, + 'DC': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + 'other': { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, + "Min": threshold.ERR_VALUE, + "Max": threshold.ERR_VALUE, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + } + }, + "InputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_CURRENT_MIN, + "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "InputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, + "Min": threshold.PSU_INPUT_POWER_MIN, + "Max": threshold.PSU_INPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + "OutputsStatus": {"bus": 42, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, + "OutputsVoltage": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, + "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Unit": Unit.Voltage, + "format": "float(float(%s)/1000)" + }, + "OutputsCurrent": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_CURRENT_MIN, + "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Unit": Unit.Current, + "format": "float(float(%s)/1000)" + }, + "OutputsPower": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, + "Min": threshold.PSU_OUTPUT_POWER_MIN, + "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Unit": Unit.Power, + "format": "float(float(%s)/1000000)" + }, + } + ], + "temps": [ + { + "name": "BOARD_TEMP", + "temp_id": "TEMP1", + "api_name": "Board", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/40-004e/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -10000, + "Low": 0, + "High": 70000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "CPU_TEMP", + "temp_id": "TEMP2", + "api_name": "CPU", + "Temperature": { + "value": {"loc": "/sys/bus/platform/devices/coretemp.0/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": 2000, + "Low": 10000, + "High": 100000, + "Max": 104000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "INLET_TEMP", + "temp_id": "TEMP3", + "api_name": "Inlet", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/40-004f/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -10000, + "Low": 0, + "High": 40000, + "Max": 50000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "OUTLET_TEMP", + "temp_id": "TEMP4", + "api_name": "Outlet", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/36-0048/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -10000, + "Low": 0, + "High": 70000, + "Max": 80000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "SWITCH_TEMP", + "temp_id": "TEMP5", + "api_name": "ASIC_TEMP", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/44-0044/hwmon/hwmon*/temp99_input", "way": "sysfs"}, + "Min": 2000, + "Low": 10000, + "High": 100000, + "Max": 105000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "PSU1_TEMP", + "temp_id": "TEMP6", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-41/41-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -10000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "PSU2_TEMP", + "temp_id": "TEMP7", + "Temperature": { + "value": {"loc": "/sys/bus/i2c/devices/i2c-42/42-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, + "Min": -10000, + "Low": 0, + "High": 55000, + "Max": 60000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + } + }, + { + "name": "SFF_TEMP", + "Temperature": { + "value": {"loc": "/tmp/highest_sff_temp", "way": "sysfs", "flock_path": "/tmp/highest_sff_temp"}, + "Min": -15000, + "Low": 0, + "High": 80000, + "Max": 100000, + "Unit": Unit.Temperature, + "format": "float(float(%s)/1000)" + }, + "invalid": -10000, + "error": -9999, + } + ], + "leds": [ + { + "name": "FRONT_SYS_LED", + "led_type": "SYS_LED", + "led": {"bus": 2, "addr": 0x2d, "offset":0x40, "way":"i2c"}, + "led_attrs": { + "off": 0x0, "green": 0x01, "red": 0x02,"default":0x01, + "amber": 0x03, "green_flash": 0x41, "red_flash": 0x42, + "amber_flash": 0x43, "mask": 0xff + }, + }, + { + "name": "FRONT_PSU_LED", + "led_type": "PSU_LED", + "led": {"bus": 2, "addr": 0x2d, "offset":0x43, "way":"i2c"}, + "led_attrs": { + "green":0x04, "red":0x02, "amber":0x06, "default":0x04, + "flash":0xff, "light":0xff, "off": 0, "mask":0x07 + }, + }, + { + "name": "FRONT_FAN_LED", + "led_type": "FAN_LED", + "led": {"bus": 2, "addr": 0x2d, "offset":0x42, "way":"i2c"}, + "led_attrs": { + "green":0x04, "red":0x02, "amber":0x06, "default":0x04, + "flash":0xff, "light":0xff, "off": 0, "mask":0x07 + }, + }, + ], + "fans": [ + { + "name": "FAN1", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-35/35-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 4, "addr": 0x3d, "offset": 0x41, "way": "i2c"}, + "led_attrs": { + "off": 0x0, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + "PowerMax": 38.16, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x65, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan1/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan1/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan1/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x65, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan1/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan1/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan1/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN2", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-34/34-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 4, "addr": 0x3d, "offset": 0x40, "way": "i2c"}, + "led_attrs": { + "off": 0x0, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + "PowerMax": 38.16, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x64, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan2/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan2/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan2/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x64, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan2/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan2/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan2/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN3", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-33/33-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan3/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 4, "addr": 0x3d, "offset": 0x3f, "way": "i2c"}, + "led_attrs": { + "off": 0x0, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + "PowerMax": 38.16, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x63, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan3/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan3/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan3/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x63, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan3/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan3/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan3/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN4", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-32/32-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan4/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 4, "addr": 0x3d, "offset": 0x3e, "way": "i2c"}, + "led_attrs": { + "off": 0x0, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + "PowerMax": 38.16, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x62, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan4/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan4/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan4/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x62, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan4/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan4/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan4/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN5", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-31/31-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan5/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 4, "addr": 0x3d, "offset": 0x3d, "way": "i2c"}, + "led_attrs": { + "off": 0x0, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + "PowerMax": 38.16, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x61, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan5/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan5/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan5/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x61, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan5/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan5/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan5/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + { + "name": "FAN6", + "airflow": fanairflow, + "e2loc": {'loc': '/sys/bus/i2c/devices/i2c-30/30-0050/eeprom', 'way': 'sysfs'}, + "present": {"loc": "/sys/wb_plat/fan/fan6/present", "way": "sysfs", "mask": 0x01, "okval": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "led": {"bus": 4, "addr": 0x3d, "offset": 0x3c, "way": "i2c"}, + "led_attrs": { + "off": 0x0, "red_flash": 0x01, "red": 0x02, + "green_flash": 0x03, "green": 0x04, "amber_flash": 0x05, + "amber": 0x06, "mask": 0x07 + }, + "PowerMax": 38.16, + "Rotor": { + "Rotor1_config": { + "name": "Rotor1", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x60, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan6/motor0/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan6/motor0/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.FRONT_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan6/motor0/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.FRONT_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + "Rotor2_config": { + "name": "Rotor2", + "Set_speed": {"bus": 4, "addr": 0x3d, "offset": 0x60, "way": "i2c"}, + "Running": {"loc": "/sys/wb_plat/fan/fan6/motor1/status", "way": "sysfs", "mask": 0x01, "is_runing": 1}, + "HwAlarm": {"loc": "/sys/wb_plat/fan/fan6/motor1/status", "way": "sysfs", "mask": 0x01, "no_alarm": 1}, + "SpeedMin": threshold.FAN_SPEED_MIN, + "SpeedMax": threshold.REAR_FAN_SPEED_MAX, + "Speed": { + "value": {"loc": "/sys/wb_plat/fan/fan6/motor1/speed", "way": "sysfs"}, + "Min": threshold.FAN_SPEED_MIN, + "Max": threshold.REAR_FAN_SPEED_MAX, + "Unit": Unit.Speed, + }, + }, + }, + }, + ], + "cplds": [ + { + "name": "CPU_CPLD", + "cpld_id": "CPLD1", + "VersionFile": {"loc": "/dev/cpld0", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for system power", + "slot": 0, + "warm": 1, + }, + { + "name": "CONNECT_CPLD", + "cpld_id": "CPLD2", + "VersionFile": {"loc": "/dev/cpld1", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for base functions", + "slot": 0, + "warm": 1, + }, + { + "name": "MAC_CPLDA", + "cpld_id": "CPLD3", + "VersionFile": {"loc": "/dev/cpld4", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for sff modules", + "slot": 0, + "warm": 1, + }, + { + "name": "MAC_CPLDB", + "cpld_id": "CPLD4", + "VersionFile": {"loc": "/dev/cpld5", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for sff modules", + "slot": 0, + "warm": 1, + }, + { + "name": "FAN_CPLD", + "cpld_id": "CPLD5", + "VersionFile": {"loc": "/dev/cpld6", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for fan modules", + "slot": 0, + "warm": 1, + }, + { + "name": "FPGA", + "cpld_id": "CPLD6", + "VersionFile": {"loc": "/dev/fpga0", "offset": 0, "len": 4, "way": "devfile_ascii"}, + "desc": "Used for base functions", + "slot": 0, + "format": "little_endian", + "warm": 1, + }, + { + "name": "BIOS", + "cpld_id": "CPLD7", + "VersionFile": {"cmd": "dmidecode -s bios-version", "way": "cmd"}, + "desc": "Performs initialization of hardware components during booting", + "slot": 0, + "type": "str", + "warm": 0, + }, + ], + "dcdc": [ + { + "name": "VDD5V_CLK_MCU", + "dcdc_id": "DCDC1", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 4250, + "Max": 5750, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD3.3_CLK", + "dcdc_id": "DCDC2", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD1.0V", + "dcdc_id": "DCDC3", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 850, + "Max": 1150, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD1.8V", + "dcdc_id": "DCDC4", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in4_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1530, + "Max": 2070, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "MAC_BOARD_VDD3.3V", + "dcdc_id": "DCDC5", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in5_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD1.2V", + "dcdc_id": "DCDC6", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in6_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1020, + "Max": 1380, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD_CORE", + "dcdc_id": "DCDC7", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in7_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 600, + "Max": 1100, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "ANALOG0.75V", + "dcdc_id": "DCDC8", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in8_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 615, + "Max": 1000, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "MAC_VDD1.2V", + "dcdc_id": "DCDC9", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in9_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1020, + "Max": 1380, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDDO1.8V", + "dcdc_id": "DCDC10", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in10_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1530, + "Max": 2070, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "MAC_ANA1.2V", + "dcdc_id": "DCDC11", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in11_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1020, + "Max": 1380, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "MAC_ANA1.8V", + "dcdc_id": "DCDC12", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in12_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1530, + "Max": 2070, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "QSFP56_VDD3.3V_A", + "dcdc_id": "DCDC13", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in13_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "QSFP56_VDD3.3V_B", + "dcdc_id": "DCDC14", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in14_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "QSFPDD_VDD3.3V_A", + "dcdc_id": "DCDC15", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in15_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "QSFPDD_VDD3.3V_B", + "dcdc_id": "DCDC16", + "value": { + "loc": "/sys/bus/i2c/devices/45-005b/hwmon/hwmon*/in16_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD5.0V", + "dcdc_id": "DCDC17", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 4250, + "Max": 5750, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "SW_VDD1.2V", + "dcdc_id": "DCDC18", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1020, + "Max": 1380, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD2.5V", + "dcdc_id": "DCDC19", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2125, + "Max": 2875, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "CONNECT_BOARD_VDD3.3V", + "dcdc_id": "DCDC20", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in4_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD12V", + "dcdc_id": "DCDC21", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in6_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 10200, + "Max": 13800, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VDD3.3_STBY", + "dcdc_id": "DCDC22", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in7_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "SSD_VDD3.3V", + "dcdc_id": "DCDC23", + "value": { + "loc": "/sys/bus/i2c/devices/24-005b/hwmon/hwmon*/in8_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2805, + "Max": 3795, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VCCIN", + "dcdc_id": "DCDC24", + "value": { + "loc": "/sys/bus/i2c/devices/25-0067/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1368, + "Max": 2244, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "P1V05", + "dcdc_id": "DCDC25", + "value": { + "loc": "/sys/bus/i2c/devices/25-0067/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 882, + "Max": 1232, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VCCD_V", + "dcdc_id": "DCDC26", + "value": { + "loc": "/sys/bus/i2c/devices/25-006c/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 990, + "Max": 1452, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "VCCSCSUS_V", + "dcdc_id": "DCDC27", + "value": { + "loc": "/sys/bus/i2c/devices/25-006c/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 855, + "Max": 1265, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "P3V3_STBY_V", + "dcdc_id": "DCDC28", + "value": { + "loc": "/sys/bus/i2c/devices/25-0043/hwmon/hwmon*/in2_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 2682, + "Max": 4004, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "P5V_AUX_IN", + "dcdc_id": "DCDC29", + "value": { + "loc": "/sys/bus/i2c/devices/25-0043/hwmon/hwmon*/in1_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 3852, + "Max": 6347, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + + { + "name": "P1V7_VCCSCFUSESUS_IN", + "dcdc_id": "DCDC30", + "value": { + "loc": "/sys/bus/i2c/devices/25-0043/hwmon/hwmon*/in3_input", + "way": "sysfs", + }, + "read_times": 1, + "Min": 1377, + "Max": 2057, + "Unit": "V", + "format": "float(float(%s)/1000)", + }, + ], + "cpu": [ + { + "name": "cpu", + "CpuResetCntReg": {"loc": "/dev/cpld1", "offset": 0x88, "len": 1, "way": "devfile_ascii"}, + "reboot_cause_path": "/etc/sonic/.reboot/.previous-reboot-cause.txt" + } + ], + "sfps": { + "ver": '1.0', + "port_index_start": 0, + "port_num": 32, + "log_level": 2, + "eeprom_retry_times": 5, + "eeprom_retry_break_sec": 0.2, + "presence_cpld": { + "dev_id": { + 4: { + "offset": { + 0x30: "1-8", + 0x31: "9-16", + 0x32: "17-24", + 0x33: "25-32" + }, + }, + }, + }, + "presence_val_is_present": 0, + "eeprom_path": "/sys/bus/i2c/devices/i2c-%d/%d-0050/eeprom", + "eeprom_path_key": list(range(46, 78)), + "optoe_driver_path": "/sys/bus/i2c/devices/i2c-%d/%d-0050/dev_class", + "optoe_driver_key": list(range(46, 78)), + "reset_cpld": { + "dev_id": { + 5: { + "offset": { + 0x22: "1-8", + 0x23: "9-16" + }, + }, + 4: { + "offset": { + 0x21: "17-24", + 0x22: "25-32" + }, + }, + }, + }, + "reset_val_is_reset": 0, + } +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_monitor.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_monitor.py new file mode 100755 index 000000000000..58388d5875f2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/hal-config/x86_64_micas_m2_w6520_24dc8qc_r0_monitor.py @@ -0,0 +1,207 @@ +# coding:utf-8 + + +monitor = { + "openloop": { + "linear": { + "name": "linear", + "flag": 0, + "pwm_min": 0x80, + "pwm_max": 0xff, + "K": 11, + "tin_min": 38, + }, + "curve": { + "name": "curve", + "flag": 1, + "pwm_min": 0x80, + "pwm_max": 0xff, + "a": 0.369, + "b": -15.657, + "c": 289, + "tin_min": 25, + }, + }, + + "pid": { + "CPU_TEMP": { + "name": "CPU_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 1.5, + "Ki": 1, + "Kd": 0.3, + "target": 80, + "value": [None, None, None], + }, + "SWITCH_TEMP": { + "name": "SWITCH_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 1.5, + "Ki": 1, + "Kd": 0.3, + "target": 90, + "value": [None, None, None], + }, + "OUTLET_TEMP": { + "name": "OUTLET_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 2, + "Ki": 0.4, + "Kd": 0.3, + "target": 65, + "value": [None, None, None], + }, + "BOARD_TEMP": { + "name": "BOARD_TEMP", + "flag": 0, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 2, + "Ki": 0.4, + "Kd": 0.3, + "target": 65, + "value": [None, None, None], + }, + "SFF_TEMP": { + "name": "SFF_TEMP", + "flag": 1, + "type": "duty", + "pwm_min": 0x80, + "pwm_max": 0xff, + "Kp": 0.1, + "Ki": 0.4, + "Kd": 0, + "target": 60, + "value": [None, None, None], + }, + }, + + "temps_threshold": { + "SWITCH_TEMP": {"name": "SWITCH_TEMP", "warning": 100, "critical": 105, "invalid": -100000, "error": -99999}, + "INLET_TEMP": {"name": "INLET_TEMP", "warning": 40, "critical": 50, "fix": -3}, + "BOARD_TEMP": {"name": "BOARD_TEMP", "warning": 70, "critical": 75}, + "OUTLET_TEMP": {"name": "OUTLET_TEMP", "warning": 70, "critical": 75}, + "CPU_TEMP": {"name": "CPU_TEMP", "warning": 100, "critical": 102}, + "SFF_TEMP": {"name": "SFF_TEMP", "warning": 999, "critical": 1000, "ignore_threshold": 1, "invalid": -10000, "error": -9999}, + }, + + "fancontrol_para": { + "interval": 5, + "fan_status_interval": 0.5, + "max_pwm": 0xff, + "min_pwm": 0x80, + "abnormal_pwm": 0xff, + "warning_pwm": 0xff, + "temp_invalid_pid_pwm": 0x80, + "temp_error_pid_pwm": 0x80, + "temp_fail_num": 3, + "check_temp_fail": [ + {"temp_name": "INLET_TEMP"}, + {"temp_name": "SWITCH_TEMP"}, + {"temp_name": "CPU_TEMP"}, + ], + "temp_warning_num": 3, # temp over warning 3 times continuously + "temp_critical_num": 3, # temp over critical 3 times continuously + "temp_warning_countdown": 60, # 5 min warning speed after not warning + "temp_critical_countdown": 60, # 5 min full speed after not critical + "rotor_error_count": 2, # fan rotor error 2 times continuously + "inlet_mac_diff": 999, + "check_crit_reboot_flag": 1, + "check_crit_reboot_num": 3, + "check_crit_sleep_time": 20, + "psu_absent_fullspeed_num": 0xFF, + "fan_absent_fullspeed_num": 1, + "rotor_error_fullspeed_num": 1, + "psu_fan_control": 1, + "fan_plug_in_default_countdown": 0, # no use + "fan_plug_in_pwm": 0x80, # fan plug in pwd + "deal_fan_error": 1, + "deal_fan_error_conf": { + "countdown": 2, + "FAN1": [ + {"name": "FAN1", "pwm": 0xff}, + {"name": "FAN2", "pwm": 0x80}, + {"name": "FAN3", "pwm": 0x80}, + {"name": "FAN4", "pwm": 0x80}, + {"name": "FAN5", "pwm": 0x80}, + {"name": "FAN6", "pwm": 0x80}, + ], + "FAN2": [ + {"name": "FAN1", "pwm": 0x80}, + {"name": "FAN2", "pwm": 0xff}, + {"name": "FAN3", "pwm": 0x80}, + {"name": "FAN4", "pwm": 0x80}, + {"name": "FAN5", "pwm": 0x80}, + {"name": "FAN6", "pwm": 0x80}, + ], + "FAN3": [ + {"name": "FAN1", "pwm": 0x80}, + {"name": "FAN2", "pwm": 0x80}, + {"name": "FAN3", "pwm": 0xff}, + {"name": "FAN4", "pwm": 0x80}, + {"name": "FAN5", "pwm": 0x80}, + {"name": "FAN6", "pwm": 0x80}, + ], + "FAN4": [ + {"name": "FAN1", "pwm": 0x80}, + {"name": "FAN2", "pwm": 0x80}, + {"name": "FAN3", "pwm": 0x80}, + {"name": "FAN4", "pwm": 0xff}, + {"name": "FAN5", "pwm": 0x80}, + {"name": "FAN6", "pwm": 0x80}, + ], + "FAN5": [ + {"name": "FAN1", "pwm": 0x80}, + {"name": "FAN2", "pwm": 0x80}, + {"name": "FAN3", "pwm": 0x80}, + {"name": "FAN4", "pwm": 0x80}, + {"name": "FAN5", "pwm": 0xff}, + {"name": "FAN6", "pwm": 0x80}, + ], + "FAN6": [ + {"name": "FAN1", "pwm": 0x80}, + {"name": "FAN2", "pwm": 0x80}, + {"name": "FAN3", "pwm": 0x80}, + {"name": "FAN4", "pwm": 0x80}, + {"name": "FAN5", "pwm": 0x80}, + {"name": "FAN6", "pwm": 0xff}, + ], + }, + }, + + "ledcontrol_para": { + "interval": 5, + "checkpsu": 0, # 0: sys led don't follow psu led + "checkfan": 0, # 0: sys led don't follow fan led + "psu_amber_num": 1, + "fan_amber_num": 1, + "board_sys_led": [ + {"led_name": "FRONT_SYS_LED"}, + ], + "board_psu_led": [ + {"led_name": "FRONT_PSU_LED"}, + ], + "board_fan_led": [ + {"led_name": "FRONT_FAN_LED"}, + ], + "psu_air_flow_monitor": 0, + "fan_air_flow_monitor": 0, + "psu_air_flow_amber_num": 0, + "fan_air_flow_amber_num": 0, + }, + + "otp_reboot_judge_file": { + "otp_switch_reboot_judge_file": "/etc/.otp_switch_reboot_flag", + "otp_other_reboot_judge_file": "/etc/.otp_other_reboot_flag", + }, +} diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/Makefile b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/Makefile new file mode 100755 index 000000000000..c39882318545 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/Makefile @@ -0,0 +1,15 @@ +MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) +MODULES_DIR = $(abspath $(MAKEFILE_FILE_PATH)/../../../../common/modules) +FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../../../common/app/firmware_upgrade/firmware_driver/include) + +EXTRA_CFLAGS+= -I$(MODULES_DIR) +EXTRA_CFLAGS+= -I$(MODULES_DIR)/linux-5.10 +EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) + +obj-m := wb_pcie_dev_device.o +obj-m += wb_fpga_pca954x_device.o +obj-m += wb_fpga_i2c_bus_device.o +obj-m += wb_lpc_drv_device.o +obj-m += wb_i2c_dev_device.o +obj-m += wb_io_dev_device.o +obj-m += wb_firmware_upgrade_device.o diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_firmware_upgrade_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_firmware_upgrade_device.c new file mode 100644 index 000000000000..b592b26d4ff7 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_firmware_upgrade_device.c @@ -0,0 +1,200 @@ +/* + * wb_firmware_upgrade.c + * + * ko for firmware device + */ +#include +#include +#include +#include +#include +#include + +static int g_wb_firmware_upgrade_debug = 0; +static int g_wb_firmware_upgrade_error = 0; + +module_param(g_wb_firmware_upgrade_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_firmware_upgrade_error, int, S_IRUGO | S_IWUSR); + +#define WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_firmware_upgrade_debug) { \ + printk(KERN_INFO "[WB_FIRMWARE_UPGRADE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_FIRMWARE_UPGRADE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_firmware_upgrade_error) { \ + printk(KERN_ERR "[WB_FIRMWARE_UPGRADE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +/* cpld */ +static firmware_upgrade_device_t firmware_upgrade_device_data0 = { + .type = "JTAG", + .upg_type.jtag = { + .tdi = 67, + .tck = 65, + .tms = 6, + .tdo = 32, + }, + .en_gpio[0] = 50, + .en_level[0] = 0, + .chain = 1, + .chip_index = 1, + + .en_gpio_num = 1, + .en_logic_num = 0, +}; + +/* fpga */ +static firmware_upgrade_device_t firmware_upgrade_device_data1 = { + .type = "SPI_LOGIC", + .chain = 1, + .chip_index = 1, + .upg_type.sysfs = { + .dev_name = "/dev/fpga0", + .ctrl_base = 0xa00, + .flash_base = 0x2f0000, + .test_base = 0x7F0000, + .test_size = 0x10000, + }, + .en_gpio_num = 0, + .en_logic_num = 0, +}; + +/* 5387 */ +static firmware_upgrade_device_t firmware_upgrade_device_data2 = { + .type = "SYSFS", + .chain = 2, + .chip_index = 1, + .upg_type.sysfs = { + .sysfs_name = "/sys/bus/spi/devices/spi0.0/eeprom", + }, + .en_logic_dev[0] = "/dev/cpld1", + .en_logic_addr[0] = 0x4d, + .en_logic_mask[0] = 0xfe, + .en_logic_en_val[0] = 0, + .en_logic_dis_val[0]= 1, + .en_logic_width[0] = 1, + + .en_gpio_num = 0, + .en_logic_num = 1, +}; + +/* bios */ +static firmware_upgrade_device_t firmware_upgrade_device_data3 = { + .type = "MTD_DEV", + .chain = 3, + .chip_index = 1, + .upg_type.sysfs = { + .mtd_name = "BIOS", + .flash_base = 0x800000, + }, + + .en_gpio_num = 0, + .en_logic_num = 0, +}; + +/* fpga */ +static firmware_upgrade_device_t firmware_upgrade_device_data4 = { + .type = "SPI_LOGIC", + .chain = 4, + .chip_index = 1, + .upg_type.sysfs = { + .dev_name = "/dev/fpga0", + .ctrl_base = 0xa00, + .flash_base = 0x0, + .test_base = 0x7F0000, + .test_size = 0x10000, + }, + .en_gpio_num = 0, + .en_logic_num = 0, +}; + +static void firmware_device_release(struct device *dev) +{ + return; +} + +static struct platform_device firmware_upgrade_device[] = { + { + .name = "firmware_cpld_ispvme", + .id = 1, + .dev = { + .platform_data = &firmware_upgrade_device_data0, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 2, + .dev = { + .platform_data = &firmware_upgrade_device_data1, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 3, + .dev = { + .platform_data = &firmware_upgrade_device_data2, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 4, + .dev = { + .platform_data = &firmware_upgrade_device_data3, + .release = firmware_device_release, + }, + }, + { + .name = "firmware_sysfs", + .id = 5, + .dev = { + .platform_data = &firmware_upgrade_device_data4, + .release = firmware_device_release, + }, + }, + }; + + static int __init firmware_upgrade_device_init(void) + { + int i; + int ret = 0; + firmware_upgrade_device_t *firmware_upgrade_device_data; + + WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(firmware_upgrade_device); i++) { + firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; + ret = platform_device_register(&firmware_upgrade_device[i]); + if (ret < 0) { + firmware_upgrade_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "firmware_upgrade_device id%d register failed!\n", i + 1); + } else { + firmware_upgrade_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; + } + + static void __exit firmware_upgrade_device_exit(void) + { + int i; + firmware_upgrade_device_t *firmware_upgrade_device_data; + + WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(firmware_upgrade_device) - 1; i >= 0; i--) { + firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; + if (firmware_upgrade_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&firmware_upgrade_device[i]); + } + } + } + + module_init(firmware_upgrade_device_init); + module_exit(firmware_upgrade_device_exit); + MODULE_DESCRIPTION("FIRMWARE UPGRADE Devices"); + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_i2c_bus_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_i2c_bus_device.c new file mode 100644 index 000000000000..2a1813e03f73 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_i2c_bus_device.c @@ -0,0 +1,854 @@ +#include +#include +#include +#include +#include + +#include +#include + +static int g_wb_fpga_i2c_debug = 0; +static int g_wb_fpga_i2c_error = 0; + +module_param(g_wb_fpga_i2c_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_fpga_i2c_error, int, S_IRUGO | S_IWUSR); + +#define WB_FPGA_I2C_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_fpga_i2c_debug) { \ + printk(KERN_INFO "[WB_FPGA_I2C][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_FPGA_I2C_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_fpga_i2c_error) { \ + printk(KERN_ERR "[WB_FPGA_I2C][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static fpga_i2c_bus_device_t fpga_i2c_bus_device_data0 = { + .adap_nr = 2, + .i2c_timeout = 3000, + .i2c_scale = 0x500, + .i2c_filter = 0x504, + .i2c_stretch = 0x508, + .i2c_ext_9548_exits_flag = 0x50c, + .i2c_ext_9548_addr = 0x510, + .i2c_ext_9548_chan = 0x514, + .i2c_in_9548_chan = 0x518, + .i2c_slave = 0x51c, + .i2c_reg = 0x520, + .i2c_reg_len = 0x530, + .i2c_data_len = 0x534, + .i2c_ctrl = 0x538, + .i2c_status = 0x53c, + .i2c_data_buf = 0x580, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x80, + .i2c_reset_on = 0x00000001, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_i2c_bus_device_data1 = { + .adap_nr = 3, + .i2c_timeout = 3000, + .i2c_scale = 0x600, + .i2c_filter = 0x604, + .i2c_stretch = 0x608, + .i2c_ext_9548_exits_flag = 0x60c, + .i2c_ext_9548_addr = 0x610, + .i2c_ext_9548_chan = 0x614, + .i2c_in_9548_chan = 0x618, + .i2c_slave = 0x61c, + .i2c_reg = 0x620, + .i2c_reg_len = 0x630, + .i2c_data_len = 0x634, + .i2c_ctrl = 0x638, + .i2c_status = 0x63c, + .i2c_data_buf = 0x680, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x84, + .i2c_reset_on = 0x00000001, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_i2c_bus_device_data2 = { + .adap_nr = 4, + .i2c_timeout = 3000, + .i2c_scale = 0x700, + .i2c_filter = 0x704, + .i2c_stretch = 0x708, + .i2c_ext_9548_exits_flag = 0x70c, + .i2c_ext_9548_addr = 0x710, + .i2c_ext_9548_chan = 0x714, + .i2c_in_9548_chan = 0x718, + .i2c_slave = 0x71c, + .i2c_reg = 0x720, + .i2c_reg_len = 0x730, + .i2c_data_len = 0x734, + .i2c_ctrl = 0x738, + .i2c_status = 0x73c, + .i2c_data_buf = 0x780, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x88, + .i2c_reset_on = 0x00000001, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_i2c_bus_device_data3 = { + .adap_nr = 5, + .i2c_timeout = 3000, + .i2c_scale = 0x800, + .i2c_filter = 0x804, + .i2c_stretch = 0x808, + .i2c_ext_9548_exits_flag = 0x80c, + .i2c_ext_9548_addr = 0x810, + .i2c_ext_9548_chan = 0x814, + .i2c_in_9548_chan = 0x818, + .i2c_slave = 0x81c, + .i2c_reg = 0x820, + .i2c_reg_len = 0x830, + .i2c_data_len = 0x834, + .i2c_ctrl = 0x838, + .i2c_status = 0x83c, + .i2c_data_buf = 0x880, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x8c, + .i2c_reset_on = 0x00000001, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data0 = { + .adap_nr = 6, + .i2c_timeout = 3000, + .i2c_scale = 0x2c00, + .i2c_filter = 0x2c04, + .i2c_stretch = 0x2c08, + .i2c_ext_9548_exits_flag = 0x2c0c, + .i2c_ext_9548_addr = 0x2c10, + .i2c_ext_9548_chan = 0x2c14, + .i2c_in_9548_chan = 0x2c18, + .i2c_slave = 0x2c1c, + .i2c_reg = 0x2c20, + .i2c_reg_len = 0x2c30, + .i2c_data_len = 0x2c34, + .i2c_ctrl = 0x2c38, + .i2c_status = 0x2c3c, + .i2c_data_buf = 0x2c80, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000001, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data1 = { + .adap_nr = 7, + .i2c_timeout = 3000, + .i2c_scale = 0x2d00, + .i2c_filter = 0x2d04, + .i2c_stretch = 0x2d08, + .i2c_ext_9548_exits_flag = 0x2d0c, + .i2c_ext_9548_addr = 0x2d10, + .i2c_ext_9548_chan = 0x2d14, + .i2c_in_9548_chan = 0x2d18, + .i2c_slave = 0x2d1c, + .i2c_reg = 0x2d20, + .i2c_reg_len = 0x2d30, + .i2c_data_len = 0x2d34, + .i2c_ctrl = 0x2d38, + .i2c_status = 0x2d3c, + .i2c_data_buf = 0x2d80, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000002, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data2 = { + .adap_nr = 8, + .i2c_timeout = 3000, + .i2c_scale = 0x2e00, + .i2c_filter = 0x2e04, + .i2c_stretch = 0x2e08, + .i2c_ext_9548_exits_flag = 0x2e0c, + .i2c_ext_9548_addr = 0x2e10, + .i2c_ext_9548_chan = 0x2e14, + .i2c_in_9548_chan = 0x2e18, + .i2c_slave = 0x2e1c, + .i2c_reg = 0x2e20, + .i2c_reg_len = 0x2e30, + .i2c_data_len = 0x2e34, + .i2c_ctrl = 0x2e38, + .i2c_status = 0x2e3c, + .i2c_data_buf = 0x2e80, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000004, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data3 = { + .adap_nr = 9, + .i2c_timeout = 3000, + .i2c_scale = 0x2f00, + .i2c_filter = 0x2f04, + .i2c_stretch = 0x2f08, + .i2c_ext_9548_exits_flag = 0x2f0c, + .i2c_ext_9548_addr = 0x2f10, + .i2c_ext_9548_chan = 0x2f14, + .i2c_in_9548_chan = 0x2f18, + .i2c_slave = 0x2f1c, + .i2c_reg = 0x2f20, + .i2c_reg_len = 0x2f30, + .i2c_data_len = 0x2f34, + .i2c_ctrl = 0x2f38, + .i2c_status = 0x2f3c, + .i2c_data_buf = 0x2f80, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000008, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data4 = { + .adap_nr = 10, + .i2c_timeout = 3000, + .i2c_scale = 0x3000, + .i2c_filter = 0x3004, + .i2c_stretch = 0x3008, + .i2c_ext_9548_exits_flag = 0x300c, + .i2c_ext_9548_addr = 0x3010, + .i2c_ext_9548_chan = 0x3014, + .i2c_in_9548_chan = 0x3018, + .i2c_slave = 0x301c, + .i2c_reg = 0x3020, + .i2c_reg_len = 0x3030, + .i2c_data_len = 0x3034, + .i2c_ctrl = 0x3038, + .i2c_status = 0x303c, + .i2c_data_buf = 0x3080, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000010, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data5 = { + .adap_nr = 11, + .i2c_timeout = 3000, + .i2c_scale = 0x3100, + .i2c_filter = 0x3104, + .i2c_stretch = 0x3108, + .i2c_ext_9548_exits_flag = 0x310c, + .i2c_ext_9548_addr = 0x3110, + .i2c_ext_9548_chan = 0x3114, + .i2c_in_9548_chan = 0x3118, + .i2c_slave = 0x311c, + .i2c_reg = 0x3120, + .i2c_reg_len = 0x3130, + .i2c_data_len = 0x3134, + .i2c_ctrl = 0x3138, + .i2c_status = 0x313c, + .i2c_data_buf = 0x3180, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000020, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data6 = { + .adap_nr = 12, + .i2c_timeout = 3000, + .i2c_scale = 0x3200, + .i2c_filter = 0x3204, + .i2c_stretch = 0x3208, + .i2c_ext_9548_exits_flag = 0x320c, + .i2c_ext_9548_addr = 0x3210, + .i2c_ext_9548_chan = 0x3214, + .i2c_in_9548_chan = 0x3218, + .i2c_slave = 0x321c, + .i2c_reg = 0x3220, + .i2c_reg_len = 0x3230, + .i2c_data_len = 0x3234, + .i2c_ctrl = 0x3238, + .i2c_status = 0x323c, + .i2c_data_buf = 0x3280, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000040, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data7 = { + .adap_nr = 13, + .i2c_timeout = 3000, + .i2c_scale = 0x3300, + .i2c_filter = 0x3304, + .i2c_stretch = 0x3308, + .i2c_ext_9548_exits_flag = 0x330c, + .i2c_ext_9548_addr = 0x3310, + .i2c_ext_9548_chan = 0x3314, + .i2c_in_9548_chan = 0x3318, + .i2c_slave = 0x331c, + .i2c_reg = 0x3320, + .i2c_reg_len = 0x3330, + .i2c_data_len = 0x3334, + .i2c_ctrl = 0x3338, + .i2c_status = 0x333c, + .i2c_data_buf = 0x3380, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000080, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data8 = { + .adap_nr = 14, + .i2c_timeout = 3000, + .i2c_scale = 0x3400, + .i2c_filter = 0x3404, + .i2c_stretch = 0x3408, + .i2c_ext_9548_exits_flag = 0x340c, + .i2c_ext_9548_addr = 0x3410, + .i2c_ext_9548_chan = 0x3414, + .i2c_in_9548_chan = 0x3418, + .i2c_slave = 0x341c, + .i2c_reg = 0x3420, + .i2c_reg_len = 0x3430, + .i2c_data_len = 0x3434, + .i2c_ctrl = 0x3438, + .i2c_status = 0x343c, + .i2c_data_buf = 0x3480, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000100, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data9 = { + .adap_nr = 15, + .i2c_timeout = 3000, + .i2c_scale = 0x3500, + .i2c_filter = 0x3504, + .i2c_stretch = 0x3508, + .i2c_ext_9548_exits_flag = 0x350c, + .i2c_ext_9548_addr = 0x3510, + .i2c_ext_9548_chan = 0x3514, + .i2c_in_9548_chan = 0x3518, + .i2c_slave = 0x351c, + .i2c_reg = 0x3520, + .i2c_reg_len = 0x3530, + .i2c_data_len = 0x3534, + .i2c_ctrl = 0x3538, + .i2c_status = 0x353c, + .i2c_data_buf = 0x3580, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000200, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data10 = { + .adap_nr = 16, + .i2c_timeout = 3000, + .i2c_scale = 0x3600, + .i2c_filter = 0x3604, + .i2c_stretch = 0x3608, + .i2c_ext_9548_exits_flag = 0x360c, + .i2c_ext_9548_addr = 0x3610, + .i2c_ext_9548_chan = 0x3614, + .i2c_in_9548_chan = 0x3618, + .i2c_slave = 0x361c, + .i2c_reg = 0x3620, + .i2c_reg_len = 0x3630, + .i2c_data_len = 0x3634, + .i2c_ctrl = 0x3638, + .i2c_status = 0x363c, + .i2c_data_buf = 0x3680, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000400, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data11 = { + .adap_nr = 17, + .i2c_timeout = 3000, + .i2c_scale = 0x3700, + .i2c_filter = 0x3704, + .i2c_stretch = 0x3708, + .i2c_ext_9548_exits_flag = 0x370c, + .i2c_ext_9548_addr = 0x3710, + .i2c_ext_9548_chan = 0x3714, + .i2c_in_9548_chan = 0x3718, + .i2c_slave = 0x371c, + .i2c_reg = 0x3720, + .i2c_reg_len = 0x3730, + .i2c_data_len = 0x3734, + .i2c_ctrl = 0x3738, + .i2c_status = 0x373c, + .i2c_data_buf = 0x3780, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00000800, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data12 = { + .adap_nr = 18, + .i2c_timeout = 3000, + .i2c_scale = 0x3800, + .i2c_filter = 0x3804, + .i2c_stretch = 0x3808, + .i2c_ext_9548_exits_flag = 0x380c, + .i2c_ext_9548_addr = 0x3810, + .i2c_ext_9548_chan = 0x3814, + .i2c_in_9548_chan = 0x3818, + .i2c_slave = 0x381c, + .i2c_reg = 0x3820, + .i2c_reg_len = 0x3830, + .i2c_data_len = 0x3834, + .i2c_ctrl = 0x3838, + .i2c_status = 0x383c, + .i2c_data_buf = 0x3880, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00001000, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data13 = { + .adap_nr = 19, + .i2c_timeout = 3000, + .i2c_scale = 0x3900, + .i2c_filter = 0x3904, + .i2c_stretch = 0x3908, + .i2c_ext_9548_exits_flag = 0x390c, + .i2c_ext_9548_addr = 0x3910, + .i2c_ext_9548_chan = 0x3914, + .i2c_in_9548_chan = 0x3918, + .i2c_slave = 0x391c, + .i2c_reg = 0x3920, + .i2c_reg_len = 0x3930, + .i2c_data_len = 0x3934, + .i2c_ctrl = 0x3938, + .i2c_status = 0x393c, + .i2c_data_buf = 0x3980, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00002000, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data14 = { + .adap_nr = 20, + .i2c_timeout = 3000, + .i2c_scale = 0x3a00, + .i2c_filter = 0x3a04, + .i2c_stretch = 0x3a08, + .i2c_ext_9548_exits_flag = 0x3a0c, + .i2c_ext_9548_addr = 0x3a10, + .i2c_ext_9548_chan = 0x3a14, + .i2c_in_9548_chan = 0x3a18, + .i2c_slave = 0x3a1c, + .i2c_reg = 0x3a20, + .i2c_reg_len = 0x3a30, + .i2c_data_len = 0x3a34, + .i2c_ctrl = 0x3a38, + .i2c_status = 0x3a3c, + .i2c_data_buf = 0x3a80, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00004000, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static fpga_i2c_bus_device_t fpga_dom_i2c_bus_device_data15 = { + .adap_nr = 21, + .i2c_timeout = 3000, + .i2c_scale = 0x3b00, + .i2c_filter = 0x3b04, + .i2c_stretch = 0x3b08, + .i2c_ext_9548_exits_flag = 0x3b0c, + .i2c_ext_9548_addr = 0x3b10, + .i2c_ext_9548_chan = 0x3b14, + .i2c_in_9548_chan = 0x3b18, + .i2c_slave = 0x3b1c, + .i2c_reg = 0x3b20, + .i2c_reg_len = 0x3b30, + .i2c_data_len = 0x3b34, + .i2c_ctrl = 0x3b38, + .i2c_status = 0x3b3c, + .i2c_data_buf = 0x3b80, + .dev_name = "/dev/fpga0", + .i2c_scale_value = 0x4e, + .i2c_filter_value = 0x7c, + .i2c_stretch_value = 0x7c, + .i2c_func_mode = 3, + .i2c_adap_reset_flag = 1, + .i2c_reset_addr = 0x7c, + .i2c_reset_on = 0x00008000, + .i2c_reset_off = 0x00000000, + .i2c_rst_delay_b = 0, + .i2c_rst_delay = 1, + .i2c_rst_delay_a = 1, +}; + +static void wb_fpga_i2c_bus_device_release(struct device *dev) +{ + return; +} + +static struct platform_device fpga_i2c_bus_device[] = { + { + .name = "wb-fpga-i2c", + .id = 1, + .dev = { + .platform_data = &fpga_i2c_bus_device_data0, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 2, + .dev = { + .platform_data = &fpga_i2c_bus_device_data1, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 3, + .dev = { + .platform_data = &fpga_i2c_bus_device_data2, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 4, + .dev = { + .platform_data = &fpga_i2c_bus_device_data3, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 5, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data0, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 6, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data1, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 7, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data2, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 8, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data3, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 9, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data4, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 10, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data5, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 11, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data6, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 12, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data7, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 13, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data8, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 14, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data9, + .release = wb_fpga_i2c_bus_device_release, + } + }, + { + .name = "wb-fpga-i2c", + .id = 15, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data10, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 16, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data11, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 17, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data12, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 18, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data13, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 19, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data14, + .release = wb_fpga_i2c_bus_device_release, + }, + }, + { + .name = "wb-fpga-i2c", + .id = 20, + .dev = { + .platform_data = &fpga_dom_i2c_bus_device_data15, + .release = wb_fpga_i2c_bus_device_release, + }, + }, +}; + +static int __init wb_fpga_i2c_bus_device_init(void) +{ + int i; + int ret = 0; + fpga_i2c_bus_device_t *fpga_i2c_bus_device_data; + + WB_FPGA_I2C_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(fpga_i2c_bus_device); i++) { + fpga_i2c_bus_device_data = fpga_i2c_bus_device[i].dev.platform_data; + ret = platform_device_register(&fpga_i2c_bus_device[i]); + if (ret < 0) { + fpga_i2c_bus_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "rg-fpga-i2c.%d register failed!\n", i + 1); + } else { + fpga_i2c_bus_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_fpga_i2c_bus_device_exit(void) +{ + int i; + fpga_i2c_bus_device_t *fpga_i2c_bus_device_data; + + WB_FPGA_I2C_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(fpga_i2c_bus_device) - 1; i >= 0; i--) { + fpga_i2c_bus_device_data = fpga_i2c_bus_device[i].dev.platform_data; + if (fpga_i2c_bus_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&fpga_i2c_bus_device[i]); + } + } +} + +module_init(wb_fpga_i2c_bus_device_init); +module_exit(wb_fpga_i2c_bus_device_exit); +MODULE_DESCRIPTION("FPGA I2C Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_pca954x_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_pca954x_device.c new file mode 100644 index 000000000000..ed9990e4df3a --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_fpga_pca954x_device.c @@ -0,0 +1,309 @@ +#include +#include +#include +#include +#include +#include + +#include +#include + +static int g_wb_fpga_pca954x_device_debug = 0; +static int g_wb_fpga_pca954x_device_error = 0; + +module_param(g_wb_fpga_pca954x_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_fpga_pca954x_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_FPGA_PCA954X_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_fpga_pca954x_device_debug) { \ + printk(KERN_INFO "[WB_FPGA_PCA954X_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_FPGA_PCA954X_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_fpga_pca954x_device_error) { \ + printk(KERN_ERR "[WB_FPGA_PCA954X_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static fpga_pca954x_device_t fpga_pca954x_device_data0 = { + .i2c_bus = 3, + .i2c_addr = 0x77, + .pca9548_base_nr = 22, + .fpga_9548_flag = 2, + .fpga_9548_reset_flag = 1, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data1 = { + .i2c_bus = 4, + .i2c_addr = 0x71, + .pca9548_base_nr = 30, + .fpga_9548_flag = 2, + .fpga_9548_reset_flag = 1, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data2 = { + .i2c_bus = 5, + .i2c_addr = 0x77, + .pca9548_base_nr = 38, + .fpga_9548_flag = 2, + .fpga_9548_reset_flag = 1, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data3 = { + .i2c_bus = 6, + .i2c_addr = 0x70, + .pca9548_base_nr = 46, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data4 = { + .i2c_bus = 7, + .i2c_addr = 0x70, + .pca9548_base_nr = 48, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data5 = { + .i2c_bus = 8, + .i2c_addr = 0x70, + .pca9548_base_nr = 50, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data6 = { + .i2c_bus = 9, + .i2c_addr = 0x70, + .pca9548_base_nr = 52, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data7 = { + .i2c_bus = 10, + .i2c_addr = 0x70, + .pca9548_base_nr = 54, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data8 = { + .i2c_bus = 11, + .i2c_addr = 0x70, + .pca9548_base_nr = 56, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data9 = { + .i2c_bus = 12, + .i2c_addr = 0x70, + .pca9548_base_nr = 58, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data10 = { + .i2c_bus = 13, + .i2c_addr = 0x70, + .pca9548_base_nr = 60, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data11 = { + .i2c_bus = 14, + .i2c_addr = 0x70, + .pca9548_base_nr = 62, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data12 = { + .i2c_bus = 15, + .i2c_addr = 0x70, + .pca9548_base_nr = 64, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data13 = { + .i2c_bus = 16, + .i2c_addr = 0x70, + .pca9548_base_nr = 66, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data14 = { + .i2c_bus = 17, + .i2c_addr = 0x70, + .pca9548_base_nr = 68, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data15 = { + .i2c_bus = 18, + .i2c_addr = 0x70, + .pca9548_base_nr = 70, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data16 = { + .i2c_bus = 19, + .i2c_addr = 0x70, + .pca9548_base_nr = 72, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data17 = { + .i2c_bus = 20, + .i2c_addr = 0x70, + .pca9548_base_nr = 74, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +static fpga_pca954x_device_t fpga_pca954x_device_data18 = { + .i2c_bus = 21, + .i2c_addr = 0x70, + .pca9548_base_nr = 76, + .fpga_9548_flag = 1, + .fpga_9548_reset_flag = 0, +}; + +struct i2c_board_info fpga_pca954x_device_info[] = { + { + .type = "wb_fpga_pca9548", + .platform_data = &fpga_pca954x_device_data0, + }, + { + .type = "wb_fpga_pca9548", + .platform_data = &fpga_pca954x_device_data1, + }, + { + .type = "wb_fpga_pca9548", + .platform_data = &fpga_pca954x_device_data2, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data3, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data4, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data5, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data6, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data7, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data8, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data9, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data10, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data11, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data12, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data13, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data14, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data15, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data16, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data17, + }, + { + .type = "wb_fpga_pca9542", + .platform_data = &fpga_pca954x_device_data18, + }, +}; + +static int __init wb_fpga_pca954x_device_init(void) +{ + int i; + struct i2c_adapter *adap; + struct i2c_client *client; + fpga_pca954x_device_t *fpga_pca954x_device_data; + + WB_FPGA_PCA954X_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(fpga_pca954x_device_info); i++) { + fpga_pca954x_device_data = fpga_pca954x_device_info[i].platform_data; + fpga_pca954x_device_info[i].addr = fpga_pca954x_device_data->i2c_addr; + adap = i2c_get_adapter(fpga_pca954x_device_data->i2c_bus); + if (adap == NULL) { + fpga_pca954x_device_data->client = NULL; + printk(KERN_ERR "get i2c bus %d adapter fail.\n", fpga_pca954x_device_data->i2c_bus); + continue; + } + client = i2c_new_client_device(adap, &fpga_pca954x_device_info[i]); + if (!client) { + fpga_pca954x_device_data->client = NULL; + printk(KERN_ERR "Failed to register fpga pca954x device %d at bus %d!\n", + fpga_pca954x_device_data->i2c_addr, fpga_pca954x_device_data->i2c_bus); + } else { + fpga_pca954x_device_data->client = client; + } + i2c_put_adapter(adap); + } + return 0; +} + +static void __exit wb_fpga_pca954x_device_exit(void) +{ + int i; + fpga_pca954x_device_t *fpga_pca954x_device_data; + + WB_FPGA_PCA954X_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(fpga_pca954x_device_info) - 1; i >= 0; i--) { + fpga_pca954x_device_data = fpga_pca954x_device_info[i].platform_data; + if (fpga_pca954x_device_data->client) { + i2c_unregister_device(fpga_pca954x_device_data->client); + fpga_pca954x_device_data->client = NULL; + } + } +} + +module_init(wb_fpga_pca954x_device_init); +module_exit(wb_fpga_pca954x_device_exit); +MODULE_DESCRIPTION("FPGA PCA954X Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_i2c_dev_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_i2c_dev_device.c new file mode 100644 index 000000000000..f0f8c5163136 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_i2c_dev_device.c @@ -0,0 +1,155 @@ +#include +#include +#include +#include +#include +#include + +#include + +static int g_wb_i2c_dev_device_debug = 0; +static int g_wb_i2c_dev_device_error = 0; + +module_param(g_wb_i2c_dev_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_i2c_dev_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_I2C_DEV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_i2c_dev_device_debug) { \ + printk(KERN_INFO "[WB_I2C_DEV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_I2C_DEV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_i2c_dev_device_error) { \ + printk(KERN_ERR "[WB_I2C_DEV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static i2c_dev_device_t i2c_dev_device_data0 = { + .i2c_bus = 2, + .i2c_addr = 0x1d, + .i2c_name = "cpld4", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +static i2c_dev_device_t i2c_dev_device_data1 = { + .i2c_bus = 2, + .i2c_addr = 0x2d, + .i2c_name = "cpld5", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +static i2c_dev_device_t i2c_dev_device_data2 = { + .i2c_bus = 2, + .i2c_addr = 0x1e, + .i2c_name = "cpld7", + .data_bus_width = 1, + .addr_bus_width = 2, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 0x2000, +}; + +static i2c_dev_device_t i2c_dev_device_data3 = { + .i2c_bus = 4, + .i2c_addr = 0x3d, + .i2c_name = "cpld6", + .data_bus_width = 1, + .addr_bus_width = 1, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 256, +}; + +static i2c_dev_device_t i2c_dev_device_data4 = { + .i2c_bus = 4, + .i2c_addr = 0x3e, + .i2c_name = "cpld8", + .data_bus_width = 1, + .addr_bus_width = 2, + .per_rd_len = 256, + .per_wr_len = 256, + .i2c_len = 0x2000, +}; + +struct i2c_board_info i2c_dev_device_info[] = { + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data0, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data1, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data2, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data3, + }, + { + .type = "wb-i2c-dev", + .platform_data = &i2c_dev_device_data4, + }, +}; + +static int __init wb_i2c_dev_device_init(void) +{ + int i; + struct i2c_adapter *adap; + struct i2c_client *client; + i2c_dev_device_t *i2c_dev_device_data; + + WB_I2C_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(i2c_dev_device_info); i++) { + i2c_dev_device_data = i2c_dev_device_info[i].platform_data; + i2c_dev_device_info[i].addr = i2c_dev_device_data->i2c_addr; + adap = i2c_get_adapter(i2c_dev_device_data->i2c_bus); + if (adap == NULL) { + i2c_dev_device_data->client = NULL; + printk(KERN_ERR "get i2c bus %d adapter fail.\n", i2c_dev_device_data->i2c_bus); + continue; + } + client = i2c_new_client_device(adap, &i2c_dev_device_info[i]); + if (!client) { + i2c_dev_device_data->client = NULL; + printk(KERN_ERR "Failed to register i2c dev device %d at bus %d!\n", + i2c_dev_device_data->i2c_addr, i2c_dev_device_data->i2c_bus); + } else { + i2c_dev_device_data->client = client; + } + i2c_put_adapter(adap); + } + return 0; +} + +static void __exit wb_i2c_dev_device_exit(void) +{ + int i; + i2c_dev_device_t *i2c_dev_device_data; + + WB_I2C_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(i2c_dev_device_info) - 1; i >= 0; i--) { + i2c_dev_device_data = i2c_dev_device_info[i].platform_data; + if (i2c_dev_device_data->client) { + i2c_unregister_device(i2c_dev_device_data->client); + i2c_dev_device_data->client = NULL; + } + } +} + +module_init(wb_i2c_dev_device_init); +module_exit(wb_i2c_dev_device_exit); +MODULE_DESCRIPTION("I2C DEV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_io_dev_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_io_dev_device.c new file mode 100644 index 000000000000..5dbe1986b574 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_io_dev_device.c @@ -0,0 +1,138 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_io_dev_device_debug = 0; +static int g_wb_io_dev_device_error = 0; + +module_param(g_wb_io_dev_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_io_dev_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_IO_DEV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_io_dev_device_debug) { \ + printk(KERN_INFO "[WB_IO_DEV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_IO_DEV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_io_dev_device_error) { \ + printk(KERN_ERR "[WB_IO_DEV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static io_dev_device_t io_dev_device_data0 = { + .io_dev_name = "cpld0", + .io_base = 0x700, + .io_len = 0x100, + .indirect_addr = 0, +}; + +static io_dev_device_t io_dev_device_data1 = { + .io_dev_name = "cpld1", + .io_base = 0x900, + .io_len = 0x100, + .indirect_addr = 0, +}; + +static io_dev_device_t io_dev_device_data2 = { + .io_dev_name = "cpld2", + .io_base = 0xb00, + .io_len = 0x100, + .indirect_addr = 0, +}; + +static io_dev_device_t io_dev_device_data3 = { + .io_dev_name = "cpld3", + .io_base = 0x900, + .io_len = 0x2000, + .indirect_addr = 1, + .wr_data = 0xfb, + .addr_low = 0xfc, + .addr_high = 0xfd, + .rd_data = 0xfe, + .opt_ctl = 0xff, +}; + +static void wb_io_dev_device_release(struct device *dev) +{ + return; +} + +static struct platform_device io_dev_device[] = { + { + .name = "wb-io-dev", + .id = 1, + .dev = { + .platform_data = &io_dev_device_data0, + .release = wb_io_dev_device_release, + }, + }, + { + .name = "wb-io-dev", + .id = 2, + .dev = { + .platform_data = &io_dev_device_data1, + .release = wb_io_dev_device_release, + }, + }, + { + .name = "wb-io-dev", + .id = 3, + .dev = { + .platform_data = &io_dev_device_data2, + .release = wb_io_dev_device_release, + }, + }, + { + .name = "wb-io-dev", + .id = 4, + .dev = { + .platform_data = &io_dev_device_data3, + .release = wb_io_dev_device_release, + }, + }, +}; + +static int __init wb_io_dev_device_init(void) +{ + int i; + int ret = 0; + io_dev_device_t *io_dev_device_data; + + WB_IO_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(io_dev_device); i++) { + io_dev_device_data = io_dev_device[i].dev.platform_data; + ret = platform_device_register(&io_dev_device[i]); + if (ret < 0) { + io_dev_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-io-dev.%d register failed!\n", i + 1); + } else { + io_dev_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_io_dev_device_exit(void) +{ + int i; + io_dev_device_t *io_dev_device_data; + + WB_IO_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(io_dev_device) - 1; i >= 0; i--) { + io_dev_device_data = io_dev_device[i].dev.platform_data; + if (io_dev_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&io_dev_device[i]); + } + } +} + +module_init(wb_io_dev_device_init); +module_exit(wb_io_dev_device_exit); +MODULE_DESCRIPTION("IO DEV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_lpc_drv_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_lpc_drv_device.c new file mode 100644 index 000000000000..9b6b61a51735 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_lpc_drv_device.c @@ -0,0 +1,130 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_lpc_drv_device_debug = 0; +static int g_wb_lpc_drv_device_error = 0; + +module_param(g_wb_lpc_drv_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_lpc_drv_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_LPC_DRV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_lpc_drv_device_debug) { \ + printk(KERN_INFO "[WB_LPC_DRV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_LPC_DRV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_lpc_drv_device_error) { \ + printk(KERN_ERR "[WB_LPC_DRV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static lpc_drv_device_t lpc_drv_device_data_0 = { + .lpc_io_name = "wb_lpc", + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 0, + .lpc_io_base = 0x700, + .lpc_io_size = 0x100, + .lpc_gen_dec = 0x84, +}; + +static lpc_drv_device_t lpc_drv_device_data_1 = { + .lpc_io_name = "wb_lpc", + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 0, + .lpc_io_base = 0x900, + .lpc_io_size = 0x100, + .lpc_gen_dec = 0x88, +}; + +static lpc_drv_device_t lpc_drv_device_data_2 = { + .lpc_io_name = "wb_lpc", + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 0, + .lpc_io_base = 0xb00, + .lpc_io_size = 0x100, + .lpc_gen_dec = 0x90, +}; + +static void wb_lpc_drv_device_release(struct device *dev) +{ + return; +} + +static struct platform_device lpc_drv_device[] = { + { + .name = "wb-lpc", + .id = 1, + .dev = { + .platform_data = &lpc_drv_device_data_0, + .release = wb_lpc_drv_device_release, + }, + }, + { + .name = "wb-lpc", + .id = 2, + .dev = { + .platform_data = &lpc_drv_device_data_1, + .release = wb_lpc_drv_device_release, + }, + }, + { + .name = "wb-lpc", + .id = 3, + .dev = { + .platform_data = &lpc_drv_device_data_2, + .release = wb_lpc_drv_device_release, + }, + }, +}; + +static int __init wb_lpc_drv_device_init(void) +{ + int i; + int ret = 0; + lpc_drv_device_t *lpc_drv_device_data; + + WB_LPC_DRV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(lpc_drv_device); i++) { + lpc_drv_device_data = lpc_drv_device[i].dev.platform_data; + ret = platform_device_register(&lpc_drv_device[i]); + if (ret < 0) { + lpc_drv_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-lpc.%d register failed!\n", i + 1); + } else { + lpc_drv_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_lpc_drv_device_exit(void) +{ + int i; + lpc_drv_device_t *lpc_drv_device_data; + + WB_LPC_DRV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(lpc_drv_device) - 1; i >= 0; i--) { + lpc_drv_device_data = lpc_drv_device[i].dev.platform_data; + if (lpc_drv_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&lpc_drv_device[i]); + } + } +} + +module_init(wb_lpc_drv_device_init); +module_exit(wb_lpc_drv_device_exit); +MODULE_DESCRIPTION("LPC DRV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_pcie_dev_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_pcie_dev_device.c new file mode 100644 index 000000000000..ddf038936d8e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_pcie_dev_device.c @@ -0,0 +1,93 @@ +#include +#include +#include +#include +#include + +#include + +static int g_wb_pcie_dev_device_debug = 0; +static int g_wb_pcie_dev_device_error = 0; + +module_param(g_wb_pcie_dev_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_pcie_dev_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_PCIE_DEV_DEVICE_DEBUG_VERBOSE(fmt, args...) do { \ + if (g_wb_pcie_dev_device_debug) { \ + printk(KERN_INFO "[WB_PCIE_DEV_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_PCIE_DEV_DEVICE_DEBUG_ERROR(fmt, args...) do { \ + if (g_wb_pcie_dev_device_error) { \ + printk(KERN_ERR "[WB_PCIE_DEV_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static pci_dev_device_t pcie_dev_device_data0 = { + .pci_dev_name = "fpga0", + .pci_domain = 0x0000, + .pci_bus = 0x08, + .pci_slot = 0x00, + .pci_fn = 0, + .pci_bar = 0, + .bus_width = 4, + .upg_ctrl_base = 0xa00, + .upg_flash_base = 0x2f0000, +}; + +static void wb_pcie_dev_device_release(struct device *dev) +{ + return; +} + +static struct platform_device pcie_dev_device[] = { + { + .name = "wb-pci-dev", + .id = 1, + .dev = { + .platform_data = &pcie_dev_device_data0, + .release = wb_pcie_dev_device_release, + }, + }, +}; + +static int __init wb_pcie_dev_device_init(void) +{ + int i; + int ret = 0; + pci_dev_device_t *pcie_dev_device_data; + + WB_PCIE_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = 0; i < ARRAY_SIZE(pcie_dev_device); i++) { + pcie_dev_device_data = pcie_dev_device[i].dev.platform_data; + ret = platform_device_register(&pcie_dev_device[i]); + if (ret < 0) { + pcie_dev_device_data->device_flag = -1; /* device register failed, set flag -1 */ + printk(KERN_ERR "wb-pci-dev.%d register failed!\n", i + 1); + } else { + pcie_dev_device_data->device_flag = 0; /* device register suucess, set flag 0 */ + } + } + return 0; +} + +static void __exit wb_pcie_dev_device_exit(void) +{ + int i; + pci_dev_device_t *pcie_dev_device_data; + + WB_PCIE_DEV_DEVICE_DEBUG_VERBOSE("enter!\n"); + for (i = ARRAY_SIZE(pcie_dev_device) - 1; i >= 0; i--) { + pcie_dev_device_data = pcie_dev_device[i].dev.platform_data; + if (pcie_dev_device_data->device_flag == 0) { /* device register success, need unregister */ + platform_device_unregister(&pcie_dev_device[i]); + } + } +} + +module_init(wb_pcie_dev_device_init); +module_exit(wb_pcie_dev_device_exit); +MODULE_DESCRIPTION("PCIE DEV Devices"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_CPLD.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_CPLD.cfg new file mode 100644 index 000000000000..54364261adbc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_CPLD.cfg @@ -0,0 +1,37 @@ +# configuration item: I2C address of CPLD +# format: cpld_i2c_dev.bus_[cpld_slot]_[cpld_id] cpld_i2c_dev.addr_[cpld_slot]_[cpld_id] +# cpld_slot: Main card: 0, linear card: start from 1 +# cpld_id: start from 0 +# bus: I2C bus number of CPLD +# addr: I2C address of CPLD +cpld_i2c_dev.bus_0_2=2 +cpld_i2c_dev.addr_0_2=0x1d +cpld_i2c_dev.bus_0_3=2 +cpld_i2c_dev.addr_0_3=0x2d +cpld_i2c_dev.bus_0_4=4 +cpld_i2c_dev.addr_0_4=0x3d + +# configuration item: LPC address of CPLD +# format: cpld_lpc_addr_[cpld_slot]_[cpld_id] +# cpld_slot: Main card: 0, linear card: start from 1 +# cpld_id: start from 0 +cpld_lpc_dev_0_0=0x700 +cpld_lpc_dev_0_1=0x900 + + +# configuration item: CPLD access method, lpc or i2c +# format: mode_cpld_[cpld_slot][cpld_slot]=lpc/i2c +# cpld_slot: Main card: 0, linear card: start from 1 +# cpld_id: start from 0 +mode_cpld_0_0=lpc +mode_cpld_0_1=lpc +mode_cpld_0_2=i2c +mode_cpld_0_3=i2c +mode_cpld_0_4=i2c + + +# configuration item: the number of CPLD +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: CPLD main_dev is 4 +# minor_dev: CPLD minor_dev not exist +dev_num_4_0=5 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_FAN.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_FAN.cfg new file mode 100644 index 000000000000..bcbfa1d77bbb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_FAN.cfg @@ -0,0 +1,437 @@ +# configuration item: the number of fans +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: fan main_dev is 1 +# minor_dev: fan minor_dev not exist(0) +dev_num_1_0=6 + + +# configuration item: the number of rotors +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: rotor main_dev is 1 +# minor_dev: rotor minor_dev is 5 +dev_num_1_5=2 + + +# configuration item: fan presence status +# format: dev_present_status_[main_dev_id][fan_index] +# main_dev_id: fan main_dev_id is 1 +# fan_index: start from 1 +dev_present_status.mode_1_1=config +dev_present_status.src_1_1=cpld +dev_present_status.frmt_1_1=bit +dev_present_status.pola_1_1=negative +dev_present_status.addr_1_1=0x00040037 +dev_present_status.len_1_1=1 +dev_present_status.bit_offset_1_1=5 + +dev_present_status.mode_1_2=config +dev_present_status.src_1_2=cpld +dev_present_status.frmt_1_2=bit +dev_present_status.pola_1_2=negative +dev_present_status.addr_1_2=0x00040037 +dev_present_status.len_1_2=1 +dev_present_status.bit_offset_1_2=4 + +dev_present_status.mode_1_3=config +dev_present_status.src_1_3=cpld +dev_present_status.frmt_1_3=bit +dev_present_status.pola_1_3=negative +dev_present_status.addr_1_3=0x00040037 +dev_present_status.len_1_3=1 +dev_present_status.bit_offset_1_3=3 + +dev_present_status.mode_1_4=config +dev_present_status.src_1_4=cpld +dev_present_status.frmt_1_4=bit +dev_present_status.pola_1_4=negative +dev_present_status.addr_1_4=0x00040037 +dev_present_status.len_1_4=1 +dev_present_status.bit_offset_1_4=2 + +dev_present_status.mode_1_5=config +dev_present_status.src_1_5=cpld +dev_present_status.frmt_1_5=bit +dev_present_status.pola_1_5=negative +dev_present_status.addr_1_5=0x00040037 +dev_present_status.len_1_5=1 +dev_present_status.bit_offset_1_5=1 + +dev_present_status.mode_1_6=config +dev_present_status.src_1_6=cpld +dev_present_status.frmt_1_6=bit +dev_present_status.pola_1_6=negative +dev_present_status.addr_1_6=0x00040037 +dev_present_status.len_1_6=1 +dev_present_status.bit_offset_1_6=0 + +# configuration item: fan rotor status +# format: fan_roll_status_[fan_id]_[motor_id] +# fan_id: start from 1 +# motor_id: start from 0 +fan_roll_status.mode_1_0=config +fan_roll_status.int_cons_1_0= +fan_roll_status.src_1_0=cpld +fan_roll_status.frmt_1_0=bit +fan_roll_status.pola_1_0=positive +fan_roll_status.fpath_1_0= +fan_roll_status.addr_1_0=0x00040038 +fan_roll_status.len_1_0=1 +fan_roll_status.bit_offset_1_0=5 + +fan_roll_status.mode_1_1=config +fan_roll_status.int_cons_1_1= +fan_roll_status.src_1_1=cpld +fan_roll_status.frmt_1_1=bit +fan_roll_status.pola_1_1=positive +fan_roll_status.fpath_1_1= +fan_roll_status.addr_1_1=0x00040039 +fan_roll_status.len_1_1=1 +fan_roll_status.bit_offset_1_1=5 + +fan_roll_status.mode_2_0=config +fan_roll_status.int_cons_2_0= +fan_roll_status.src_2_0=cpld +fan_roll_status.frmt_2_0=bit +fan_roll_status.pola_2_0=positive +fan_roll_status.fpath_2_0= +fan_roll_status.addr_2_0=0x00040038 +fan_roll_status.len_2_0=1 +fan_roll_status.bit_offset_2_0=4 + +fan_roll_status.mode_2_1=config +fan_roll_status.int_cons_2_1= +fan_roll_status.src_2_1=cpld +fan_roll_status.frmt_2_1=bit +fan_roll_status.pola_2_1=positive +fan_roll_status.fpath_2_1= +fan_roll_status.addr_2_1=0x00040039 +fan_roll_status.len_2_1=1 +fan_roll_status.bit_offset_2_1=4 + +fan_roll_status.mode_3_0=config +fan_roll_status.int_cons_3_0= +fan_roll_status.src_3_0=cpld +fan_roll_status.frmt_3_0=bit +fan_roll_status.pola_3_0=positive +fan_roll_status.fpath_3_0= +fan_roll_status.addr_3_0=0x00040038 +fan_roll_status.len_3_0=1 +fan_roll_status.bit_offset_3_0=3 + +fan_roll_status.mode_3_1=config +fan_roll_status.int_cons_3_1= +fan_roll_status.src_3_1=cpld +fan_roll_status.frmt_3_1=bit +fan_roll_status.pola_3_1=positive +fan_roll_status.fpath_3_1= +fan_roll_status.addr_3_1=0x00040039 +fan_roll_status.len_3_1=1 +fan_roll_status.bit_offset_3_1=3 + +fan_roll_status.mode_4_0=config +fan_roll_status.int_cons_4_0= +fan_roll_status.src_4_0=cpld +fan_roll_status.frmt_4_0=bit +fan_roll_status.pola_4_0=positive +fan_roll_status.fpath_4_0= +fan_roll_status.addr_4_0=0x00040038 +fan_roll_status.len_4_0=1 +fan_roll_status.bit_offset_4_0=2 + +fan_roll_status.mode_4_1=config +fan_roll_status.int_cons_4_1= +fan_roll_status.src_4_1=cpld +fan_roll_status.frmt_4_1=bit +fan_roll_status.pola_4_1=positive +fan_roll_status.fpath_4_1= +fan_roll_status.addr_4_1=0x00040039 +fan_roll_status.len_4_1=1 +fan_roll_status.bit_offset_4_1=2 + +fan_roll_status.mode_5_0=config +fan_roll_status.int_cons_5_0= +fan_roll_status.src_5_0=cpld +fan_roll_status.frmt_5_0=bit +fan_roll_status.pola_5_0=positive +fan_roll_status.fpath_5_0= +fan_roll_status.addr_5_0=0x00040038 +fan_roll_status.len_5_0=1 +fan_roll_status.bit_offset_5_0=1 + +fan_roll_status.mode_5_1=config +fan_roll_status.int_cons_5_1= +fan_roll_status.src_5_1=cpld +fan_roll_status.frmt_5_1=bit +fan_roll_status.pola_5_1=positive +fan_roll_status.fpath_5_1= +fan_roll_status.addr_5_1=0x00040039 +fan_roll_status.len_5_1=1 +fan_roll_status.bit_offset_5_1=1 + +fan_roll_status.mode_6_0=config +fan_roll_status.int_cons_6_0= +fan_roll_status.src_6_0=cpld +fan_roll_status.frmt_6_0=bit +fan_roll_status.pola_6_0=positive +fan_roll_status.fpath_6_0= +fan_roll_status.addr_6_0=0x00040038 +fan_roll_status.len_6_0=1 +fan_roll_status.bit_offset_6_0=0 + +fan_roll_status.mode_6_1=config +fan_roll_status.int_cons_6_1= +fan_roll_status.src_6_1=cpld +fan_roll_status.frmt_6_1=bit +fan_roll_status.pola_6_1=positive +fan_roll_status.fpath_6_1= +fan_roll_status.addr_6_1=0x00040039 +fan_roll_status.len_6_1=1 +fan_roll_status.bit_offset_6_1=0 + +# configuration item: fan speed +# format: fan_speed_[fan_id]_[motor_id] +# fan_id: start from 1 +# motor_id: start from 0 +fan_speed.mode_1_0=config +fan_speed.int_cons_1_0= +fan_speed.src_1_0=cpld +fan_speed.frmt_1_0=num_bytes +fan_speed.pola_1_0=negative +fan_speed.fpath_1_0= +fan_speed.addr_1_0=0x00040070 +fan_speed.len_1_0=2 +fan_speed.bit_offset_1_0= + +fan_speed.mode_1_1=config +fan_speed.int_cons_1_1= +fan_speed.src_1_1=cpld +fan_speed.frmt_1_1=num_bytes +fan_speed.pola_1_1=negative +fan_speed.fpath_1_1= +fan_speed.addr_1_1=0x0004007c +fan_speed.len_1_1=2 +fan_speed.bit_offset_1_1= + +fan_speed.mode_2_0=config +fan_speed.int_cons_2_0= +fan_speed.src_2_0=cpld +fan_speed.frmt_2_0=num_bytes +fan_speed.pola_2_0=negative +fan_speed.fpath_2_0= +fan_speed.addr_2_0=0x0004006e +fan_speed.len_2_0=2 +fan_speed.bit_offset_2_0= + +fan_speed.mode_2_1=config +fan_speed.int_cons_2_1= +fan_speed.src_2_1=cpld +fan_speed.frmt_2_1=num_bytes +fan_speed.pola_2_1=negative +fan_speed.fpath_2_1= +fan_speed.addr_2_1=0x0004007a +fan_speed.len_2_1=2 +fan_speed.bit_offset_2_1= + +fan_speed.mode_3_0=config +fan_speed.int_cons_3_0= +fan_speed.src_3_0=cpld +fan_speed.frmt_3_0=num_bytes +fan_speed.pola_3_0=negative +fan_speed.fpath_3_0= +fan_speed.addr_3_0=0x0004006c +fan_speed.len_3_0=2 +fan_speed.bit_offset_3_0= + +fan_speed.mode_3_1=config +fan_speed.int_cons_3_1= +fan_speed.src_3_1=cpld +fan_speed.frmt_3_1=num_bytes +fan_speed.pola_3_1=negative +fan_speed.fpath_3_1= +fan_speed.addr_3_1=0x00040078 +fan_speed.len_3_1=2 +fan_speed.bit_offset_3_1= + +fan_speed.mode_4_0=config +fan_speed.int_cons_4_0= +fan_speed.src_4_0=cpld +fan_speed.frmt_4_0=num_bytes +fan_speed.pola_4_0=negative +fan_speed.fpath_4_0= +fan_speed.addr_4_0=0x0004006a +fan_speed.len_4_0=2 +fan_speed.bit_offset_4_0= + +fan_speed.mode_4_1=config +fan_speed.int_cons_4_1= +fan_speed.src_4_1=cpld +fan_speed.frmt_4_1=num_bytes +fan_speed.pola_4_1=negative +fan_speed.fpath_4_1= +fan_speed.addr_4_1=0x00040076 +fan_speed.len_4_1=2 +fan_speed.bit_offset_4_1= + +fan_speed.mode_5_0=config +fan_speed.int_cons_5_0= +fan_speed.src_5_0=cpld +fan_speed.frmt_5_0=num_bytes +fan_speed.pola_5_0=negative +fan_speed.fpath_5_0= +fan_speed.addr_5_0=0x00040068 +fan_speed.len_5_0=2 +fan_speed.bit_offset_5_0= + +fan_speed.mode_5_1=config +fan_speed.int_cons_5_1= +fan_speed.src_5_1=cpld +fan_speed.frmt_5_1=num_bytes +fan_speed.pola_5_1=negative +fan_speed.fpath_5_1= +fan_speed.addr_5_1=0x00040074 +fan_speed.len_5_1=2 +fan_speed.bit_offset_5_1= + +fan_speed.mode_6_0=config +fan_speed.int_cons_6_0= +fan_speed.src_6_0=cpld +fan_speed.frmt_6_0=num_bytes +fan_speed.pola_6_0=negative +fan_speed.fpath_6_0= +fan_speed.addr_6_0=0x00040066 +fan_speed.len_6_0=2 +fan_speed.bit_offset_6_0= + +fan_speed.mode_6_1=config +fan_speed.int_cons_6_1= +fan_speed.src_6_1=cpld +fan_speed.frmt_6_1=num_bytes +fan_speed.pola_6_1=negative +fan_speed.fpath_6_1= +fan_speed.addr_6_1=0x00040072 +fan_speed.len_6_1=2 +fan_speed.bit_offset_6_1= + +# configuration item: fan pwm +# format: fan_ratio_[fan_id]_[motor_id] +# fan_id: start from 1 +# motor_id: start from 0 +fan_ratio.mode_1_0=config +fan_ratio.int_cons_1_0= +fan_ratio.src_1_0=cpld +fan_ratio.frmt_1_0=byte +fan_ratio.pola_1_0= +fan_ratio.fpath_1_0= +fan_ratio.addr_1_0=0x00040065 +fan_ratio.len_1_0=1 +fan_ratio.bit_offset_1_0= + +fan_ratio.mode_1_1=config +fan_ratio.int_cons_1_1= +fan_ratio.src_1_1=cpld +fan_ratio.frmt_1_1=byte +fan_ratio.pola_1_1= +fan_ratio.fpath_1_1= +fan_ratio.addr_1_1=0x00040065 +fan_ratio.len_1_1=1 +fan_ratio.bit_offset_1_1= + +fan_ratio.mode_2_0=config +fan_ratio.int_cons_2_0= +fan_ratio.src_2_0=cpld +fan_ratio.frmt_2_0=byte +fan_ratio.pola_2_0= +fan_ratio.fpath_2_0= +fan_ratio.addr_2_0=0x00040064 +fan_ratio.len_2_0=1 +fan_ratio.bit_offset_2_0= + +fan_ratio.mode_2_1=config +fan_ratio.int_cons_2_1= +fan_ratio.src_2_1=cpld +fan_ratio.frmt_2_1=byte +fan_ratio.pola_2_1= +fan_ratio.fpath_2_1= +fan_ratio.addr_2_1=0x00040064 +fan_ratio.len_2_1=1 +fan_ratio.bit_offset_2_1= + +fan_ratio.mode_3_0=config +fan_ratio.int_cons_3_0= +fan_ratio.src_3_0=cpld +fan_ratio.frmt_3_0=byte +fan_ratio.pola_3_0= +fan_ratio.fpath_3_0= +fan_ratio.addr_3_0=0x00040063 +fan_ratio.len_3_0=1 +fan_ratio.bit_offset_3_0= + +fan_ratio.mode_3_1=config +fan_ratio.int_cons_3_1= +fan_ratio.src_3_1=cpld +fan_ratio.frmt_3_1=byte +fan_ratio.pola_3_1= +fan_ratio.fpath_3_1= +fan_ratio.addr_3_1=0x00040063 +fan_ratio.len_3_1=1 +fan_ratio.bit_offset_3_1= + +fan_ratio.mode_4_0=config +fan_ratio.int_cons_4_0= +fan_ratio.src_4_0=cpld +fan_ratio.frmt_4_0=byte +fan_ratio.pola_4_0= +fan_ratio.fpath_4_0= +fan_ratio.addr_4_0=0x00040062 +fan_ratio.len_4_0=1 +fan_ratio.bit_offset_4_0= + +fan_ratio.mode_4_1=config +fan_ratio.int_cons_4_1= +fan_ratio.src_4_1=cpld +fan_ratio.frmt_4_1=byte +fan_ratio.pola_4_1= +fan_ratio.fpath_4_1= +fan_ratio.addr_4_1=0x00040062 +fan_ratio.len_4_1=1 +fan_ratio.bit_offset_4_1= + +fan_ratio.mode_5_0=config +fan_ratio.int_cons_5_0= +fan_ratio.src_5_0=cpld +fan_ratio.frmt_5_0=byte +fan_ratio.pola_5_0= +fan_ratio.fpath_5_0= +fan_ratio.addr_5_0=0x00040061 +fan_ratio.len_5_0=1 +fan_ratio.bit_offset_5_0= + +fan_ratio.mode_5_1=config +fan_ratio.int_cons_5_1= +fan_ratio.src_5_1=cpld +fan_ratio.frmt_5_1=byte +fan_ratio.pola_5_1= +fan_ratio.fpath_5_1= +fan_ratio.addr_5_1=0x00040061 +fan_ratio.len_5_1=1 +fan_ratio.bit_offset_5_1= + +fan_ratio.mode_6_0=config +fan_ratio.int_cons_6_0= +fan_ratio.src_6_0=cpld +fan_ratio.frmt_6_0=byte +fan_ratio.pola_6_0= +fan_ratio.fpath_6_0= +fan_ratio.addr_6_0=0x00040060 +fan_ratio.len_6_0=1 +fan_ratio.bit_offset_6_0= + +fan_ratio.mode_6_1=config +fan_ratio.int_cons_6_1= +fan_ratio.src_6_1=cpld +fan_ratio.frmt_6_1=byte +fan_ratio.pola_6_1= +fan_ratio.fpath_6_1= +fan_ratio.addr_6_1=0x00040060 +fan_ratio.len_6_1=1 +fan_ratio.bit_offset_6_1= \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_PSU.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_PSU.cfg new file mode 100644 index 000000000000..26a838bfcfa5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_PSU.cfg @@ -0,0 +1,64 @@ +# configuration item: the number of psus +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: psu main_dev is 2 +# minor_dev: psu minor_dev not exist(0) +dev_num_2_0=2 + + +# configuration item: psu status +# format: psu_status_[psu_index]_[status_id] +# psu_index: start from 1 +# status_id: 0: presence 1: output 2: alert +# psu1 presence status +psu_status.mode_1_0=config +psu_status.src_1_0=cpld +psu_status.frmt_1_0=bit +psu_status.pola_1_0=negative +psu_status.addr_1_0=0x00020034 +psu_status.len_1_0=1 +psu_status.bit_offset_1_0=0 + +# psu1 output status +psu_status.mode_1_1=config +psu_status.src_1_1=cpld +psu_status.frmt_1_1=bit +psu_status.pola_1_1=positive +psu_status.addr_1_1=0x00020034 +psu_status.len_1_1=1 +psu_status.bit_offset_1_1=1 + +# psu1 alert status +psu_status.mode_1_2=config +psu_status.src_1_2=cpld +psu_status.frmt_1_2=bit +psu_status.pola_1_2=negative +psu_status.addr_1_2=0x00020034 +psu_status.len_1_2=1 +psu_status.bit_offset_1_2=2 + +# psu2 presence status +psu_status.mode_2_0=config +psu_status.src_2_0=cpld +psu_status.frmt_2_0=bit +psu_status.pola_2_0=negative +psu_status.addr_2_0=0x00020034 +psu_status.len_2_0=1 +psu_status.bit_offset_2_0=4 + +# psu2 output status +psu_status.mode_2_1=config +psu_status.src_2_1=cpld +psu_status.frmt_2_1=bit +psu_status.pola_2_1=positive +psu_status.addr_2_1=0x00020034 +psu_status.len_2_1=1 +psu_status.bit_offset_2_1=5 + +# psu2 alert status +psu_status.mode_2_2=config +psu_status.src_2_2=cpld +psu_status.frmt_2_2=bit +psu_status.pola_2_2=negative +psu_status.addr_2_2=0x00020034 +psu_status.len_2_2=1 +psu_status.bit_offset_2_2=6 diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_SFF.cfg b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_SFF.cfg new file mode 100644 index 000000000000..fa45f76b9323 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/WB_PLAT_SFF.cfg @@ -0,0 +1,383 @@ +# configuration item: the number of sffs +# format: dev_num_[main_dev]_[minor_dev] +# main_dev: sff main_dev is 3 +# minor_dev: sff minor_dev not exist(0) +dev_num_3_0=32 + + +# configuration item: The directory name of sff sysfs +# format: sff_dir_name_[sff_index] +# sff_index: start from 1 +sff_dir_name_1 =sff1 +sff_dir_name_2 =sff2 +sff_dir_name_3 =sff3 +sff_dir_name_4 =sff4 +sff_dir_name_5 =sff5 +sff_dir_name_6 =sff6 +sff_dir_name_7 =sff7 +sff_dir_name_8 =sff8 +sff_dir_name_9 =sff9 +sff_dir_name_10 =sff10 +sff_dir_name_11 =sff11 +sff_dir_name_12 =sff12 +sff_dir_name_13 =sff13 +sff_dir_name_14 =sff14 +sff_dir_name_15 =sff15 +sff_dir_name_16 =sff16 +sff_dir_name_17 =sff17 +sff_dir_name_18 =sff18 +sff_dir_name_19 =sff19 +sff_dir_name_20 =sff20 +sff_dir_name_21 =sff21 +sff_dir_name_22 =sff22 +sff_dir_name_23 =sff23 +sff_dir_name_24 =sff24 +sff_dir_name_25 =sff25 +sff_dir_name_26 =sff26 +sff_dir_name_27 =sff27 +sff_dir_name_28 =sff28 +sff_dir_name_29 =sff29 +sff_dir_name_30 =sff30 +sff_dir_name_31 =sff31 +sff_dir_name_32 =sff32 + + +# configuration item: sff cpld register status +# format: sff_cpld_reg_[sff_index]_[cpld_reg] +# sff_index: start from 1 +# cpld_reg: 1: power_on, 2: tx_fault, 3: tx_dis, 4:pre_n, 5:rx_los +# 6: reset, 7: lpmode, 8: module_present, 9: interrupt + +# sff cpld presence status +sff_cpld_reg.mode_1_8=config +sff_cpld_reg.src_1_8=cpld +sff_cpld_reg.frmt_1_8=bit +sff_cpld_reg.pola_1_8=negative +sff_cpld_reg.addr_1_8=0x00020030 +sff_cpld_reg.len_1_8=1 +sff_cpld_reg.bit_offset_1_8=0 + +sff_cpld_reg.mode_2_8=config +sff_cpld_reg.src_2_8=cpld +sff_cpld_reg.frmt_2_8=bit +sff_cpld_reg.pola_2_8=negative +sff_cpld_reg.addr_2_8=0x00020030 +sff_cpld_reg.len_2_8=1 +sff_cpld_reg.bit_offset_2_8=1 + +sff_cpld_reg.mode_3_8=config +sff_cpld_reg.src_3_8=cpld +sff_cpld_reg.frmt_3_8=bit +sff_cpld_reg.pola_3_8=negative +sff_cpld_reg.addr_3_8=0x00020030 +sff_cpld_reg.len_3_8=1 +sff_cpld_reg.bit_offset_3_8=2 + +sff_cpld_reg.mode_4_8=config +sff_cpld_reg.src_4_8=cpld +sff_cpld_reg.frmt_4_8=bit +sff_cpld_reg.pola_4_8=negative +sff_cpld_reg.addr_4_8=0x00020030 +sff_cpld_reg.len_4_8=1 +sff_cpld_reg.bit_offset_4_8=3 + +sff_cpld_reg.mode_5_8=config +sff_cpld_reg.src_5_8=cpld +sff_cpld_reg.frmt_5_8=bit +sff_cpld_reg.pola_5_8=negative +sff_cpld_reg.addr_5_8=0x00020030 +sff_cpld_reg.len_5_8=1 +sff_cpld_reg.bit_offset_5_8=4 + +sff_cpld_reg.mode_6_8=config +sff_cpld_reg.src_6_8=cpld +sff_cpld_reg.frmt_6_8=bit +sff_cpld_reg.pola_6_8=negative +sff_cpld_reg.addr_6_8=0x00020030 +sff_cpld_reg.len_6_8=1 +sff_cpld_reg.bit_offset_6_8=5 + +sff_cpld_reg.mode_7_8=config +sff_cpld_reg.src_7_8=cpld +sff_cpld_reg.frmt_7_8=bit +sff_cpld_reg.pola_7_8=negative +sff_cpld_reg.addr_7_8=0x00020030 +sff_cpld_reg.len_7_8=1 +sff_cpld_reg.bit_offset_7_8=6 + +sff_cpld_reg.mode_8_8=config +sff_cpld_reg.src_8_8=cpld +sff_cpld_reg.frmt_8_8=bit +sff_cpld_reg.pola_8_8=negative +sff_cpld_reg.addr_8_8=0x00020030 +sff_cpld_reg.len_8_8=1 +sff_cpld_reg.bit_offset_8_8=7 + +sff_cpld_reg.mode_9_8=config +sff_cpld_reg.src_9_8=cpld +sff_cpld_reg.frmt_9_8=bit +sff_cpld_reg.pola_9_8=negative +sff_cpld_reg.addr_9_8=0x00020031 +sff_cpld_reg.len_9_8=1 +sff_cpld_reg.bit_offset_9_8=0 + +sff_cpld_reg.mode_10_8=config +sff_cpld_reg.src_10_8=cpld +sff_cpld_reg.frmt_10_8=bit +sff_cpld_reg.pola_10_8=negative +sff_cpld_reg.addr_10_8=0x00020031 +sff_cpld_reg.len_10_8=1 +sff_cpld_reg.bit_offset_10_8=1 + +sff_cpld_reg.mode_11_8=config +sff_cpld_reg.src_11_8=cpld +sff_cpld_reg.frmt_11_8=bit +sff_cpld_reg.pola_11_8=negative +sff_cpld_reg.addr_11_8=0x00020031 +sff_cpld_reg.len_11_8=1 +sff_cpld_reg.bit_offset_11_8=2 + +sff_cpld_reg.mode_12_8=config +sff_cpld_reg.src_12_8=cpld +sff_cpld_reg.frmt_12_8=bit +sff_cpld_reg.pola_12_8=negative +sff_cpld_reg.addr_12_8=0x00020031 +sff_cpld_reg.len_12_8=1 +sff_cpld_reg.bit_offset_12_8=3 + +sff_cpld_reg.mode_13_8=config +sff_cpld_reg.src_13_8=cpld +sff_cpld_reg.frmt_13_8=bit +sff_cpld_reg.pola_13_8=negative +sff_cpld_reg.addr_13_8=0x00020031 +sff_cpld_reg.len_13_8=1 +sff_cpld_reg.bit_offset_13_8=4 + +sff_cpld_reg.mode_14_8=config +sff_cpld_reg.src_14_8=cpld +sff_cpld_reg.frmt_14_8=bit +sff_cpld_reg.pola_14_8=negative +sff_cpld_reg.addr_14_8=0x00020031 +sff_cpld_reg.len_14_8=1 +sff_cpld_reg.bit_offset_14_8=5 + +sff_cpld_reg.mode_15_8=config +sff_cpld_reg.src_15_8=cpld +sff_cpld_reg.frmt_15_8=bit +sff_cpld_reg.pola_15_8=negative +sff_cpld_reg.addr_15_8=0x00020031 +sff_cpld_reg.len_15_8=1 +sff_cpld_reg.bit_offset_15_8=6 + +sff_cpld_reg.mode_16_8=config +sff_cpld_reg.src_16_8=cpld +sff_cpld_reg.frmt_16_8=bit +sff_cpld_reg.pola_16_8=negative +sff_cpld_reg.addr_16_8=0x00020031 +sff_cpld_reg.len_16_8=1 +sff_cpld_reg.bit_offset_16_8=7 + +sff_cpld_reg.mode_17_8=config +sff_cpld_reg.src_17_8=cpld +sff_cpld_reg.frmt_17_8=bit +sff_cpld_reg.pola_17_8=negative +sff_cpld_reg.addr_17_8=0x00020032 +sff_cpld_reg.len_17_8=1 +sff_cpld_reg.bit_offset_17_8=0 + +sff_cpld_reg.mode_18_8=config +sff_cpld_reg.src_18_8=cpld +sff_cpld_reg.frmt_18_8=bit +sff_cpld_reg.pola_18_8=negative +sff_cpld_reg.addr_18_8=0x00020032 +sff_cpld_reg.len_18_8=1 +sff_cpld_reg.bit_offset_18_8=1 + +sff_cpld_reg.mode_19_8=config +sff_cpld_reg.src_19_8=cpld +sff_cpld_reg.frmt_19_8=bit +sff_cpld_reg.pola_19_8=negative +sff_cpld_reg.addr_19_8=0x00020032 +sff_cpld_reg.len_19_8=1 +sff_cpld_reg.bit_offset_19_8=2 + +sff_cpld_reg.mode_20_8=config +sff_cpld_reg.src_20_8=cpld +sff_cpld_reg.frmt_20_8=bit +sff_cpld_reg.pola_20_8=negative +sff_cpld_reg.addr_20_8=0x00020032 +sff_cpld_reg.len_20_8=1 +sff_cpld_reg.bit_offset_20_8=3 + +sff_cpld_reg.mode_21_8=config +sff_cpld_reg.src_21_8=cpld +sff_cpld_reg.frmt_21_8=bit +sff_cpld_reg.pola_21_8=negative +sff_cpld_reg.addr_21_8=0x00020032 +sff_cpld_reg.len_21_8=1 +sff_cpld_reg.bit_offset_21_8=4 + +sff_cpld_reg.mode_22_8=config +sff_cpld_reg.src_22_8=cpld +sff_cpld_reg.frmt_22_8=bit +sff_cpld_reg.pola_22_8=negative +sff_cpld_reg.addr_22_8=0x00020032 +sff_cpld_reg.len_22_8=1 +sff_cpld_reg.bit_offset_22_8=5 + +sff_cpld_reg.mode_23_8=config +sff_cpld_reg.src_23_8=cpld +sff_cpld_reg.frmt_23_8=bit +sff_cpld_reg.pola_23_8=negative +sff_cpld_reg.addr_23_8=0x00020032 +sff_cpld_reg.len_23_8=1 +sff_cpld_reg.bit_offset_23_8=6 + +sff_cpld_reg.mode_24_8=config +sff_cpld_reg.src_24_8=cpld +sff_cpld_reg.frmt_24_8=bit +sff_cpld_reg.pola_24_8=negative +sff_cpld_reg.addr_24_8=0x00020032 +sff_cpld_reg.len_24_8=1 +sff_cpld_reg.bit_offset_24_8=7 + +sff_cpld_reg.mode_25_8=config +sff_cpld_reg.src_25_8=cpld +sff_cpld_reg.frmt_25_8=bit +sff_cpld_reg.pola_25_8=negative +sff_cpld_reg.addr_25_8=0x00020033 +sff_cpld_reg.len_25_8=1 +sff_cpld_reg.bit_offset_25_8=0 + +sff_cpld_reg.mode_26_8=config +sff_cpld_reg.src_26_8=cpld +sff_cpld_reg.frmt_26_8=bit +sff_cpld_reg.pola_26_8=negative +sff_cpld_reg.addr_26_8=0x00020033 +sff_cpld_reg.len_26_8=1 +sff_cpld_reg.bit_offset_26_8=1 + +sff_cpld_reg.mode_27_8=config +sff_cpld_reg.src_27_8=cpld +sff_cpld_reg.frmt_27_8=bit +sff_cpld_reg.pola_27_8=negative +sff_cpld_reg.addr_27_8=0x00020033 +sff_cpld_reg.len_27_8=1 +sff_cpld_reg.bit_offset_27_8=2 + +sff_cpld_reg.mode_28_8=config +sff_cpld_reg.src_28_8=cpld +sff_cpld_reg.frmt_28_8=bit +sff_cpld_reg.pola_28_8=negative +sff_cpld_reg.addr_28_8=0x00020033 +sff_cpld_reg.len_28_8=1 +sff_cpld_reg.bit_offset_28_8=3 + +sff_cpld_reg.mode_29_8=config +sff_cpld_reg.src_29_8=cpld +sff_cpld_reg.frmt_29_8=bit +sff_cpld_reg.pola_29_8=negative +sff_cpld_reg.addr_29_8=0x00020033 +sff_cpld_reg.len_29_8=1 +sff_cpld_reg.bit_offset_29_8=4 + +sff_cpld_reg.mode_30_8=config +sff_cpld_reg.src_30_8=cpld +sff_cpld_reg.frmt_30_8=bit +sff_cpld_reg.pola_30_8=negative +sff_cpld_reg.addr_30_8=0x00020033 +sff_cpld_reg.len_30_8=1 +sff_cpld_reg.bit_offset_30_8=5 + +sff_cpld_reg.mode_31_8=config +sff_cpld_reg.src_31_8=cpld +sff_cpld_reg.frmt_31_8=bit +sff_cpld_reg.pola_31_8=negative +sff_cpld_reg.addr_31_8=0x00020033 +sff_cpld_reg.len_31_8=1 +sff_cpld_reg.bit_offset_31_8=6 + +sff_cpld_reg.mode_32_8=config +sff_cpld_reg.src_32_8=cpld +sff_cpld_reg.frmt_32_8=bit +sff_cpld_reg.pola_32_8=negative +sff_cpld_reg.addr_32_8=0x00020033 +sff_cpld_reg.len_32_8=1 +sff_cpld_reg.bit_offset_32_8=7 + +# configuration item: Optical module polling data size +sff_polling_size=1024 + +# configuration item: Optical module polling data register offset +# sff_polling_data_base_addr_[sff_index]=value +# sff_index: start from 1 +# value : directory name +sff_polling_data_base_addr_1 =0x8000 +sff_polling_data_base_addr_2 =0x8400 +sff_polling_data_base_addr_3 =0x8800 +sff_polling_data_base_addr_4 =0x8c00 +sff_polling_data_base_addr_5 =0x9000 +sff_polling_data_base_addr_6 =0x9400 +sff_polling_data_base_addr_7 =0x9800 +sff_polling_data_base_addr_8 =0x9c00 +sff_polling_data_base_addr_9 =0xa000 +sff_polling_data_base_addr_10 =0xa400 +sff_polling_data_base_addr_11 =0xa800 +sff_polling_data_base_addr_12 =0xac00 +sff_polling_data_base_addr_13 =0xb000 +sff_polling_data_base_addr_14 =0xb400 +sff_polling_data_base_addr_15 =0xb800 +sff_polling_data_base_addr_16 =0xbc00 +sff_polling_data_base_addr_17 =0xc000 +sff_polling_data_base_addr_18 =0xc400 +sff_polling_data_base_addr_19 =0xc800 +sff_polling_data_base_addr_20 =0xcc00 +sff_polling_data_base_addr_21 =0xd000 +sff_polling_data_base_addr_22 =0xd400 +sff_polling_data_base_addr_23 =0xd800 +sff_polling_data_base_addr_24 =0xdc00 +sff_polling_data_base_addr_25 =0xe000 +sff_polling_data_base_addr_26 =0xe400 +sff_polling_data_base_addr_27 =0xe800 +sff_polling_data_base_addr_28 =0xec00 +sff_polling_data_base_addr_29 =0xf000 +sff_polling_data_base_addr_30 =0xf400 +sff_polling_data_base_addr_31 =0xf800 +sff_polling_data_base_addr_32 =0xfc00 + +# configuration item: Optical module polling data device path +# sff_polling_logic_dev_path_[sff_index]=value +# sff_index: start from 1 +# value : directory name +sff_polling_logic_dev_path_1 =/dev/fpga0 +sff_polling_logic_dev_path_2 =/dev/fpga0 +sff_polling_logic_dev_path_3 =/dev/fpga0 +sff_polling_logic_dev_path_4 =/dev/fpga0 +sff_polling_logic_dev_path_5 =/dev/fpga0 +sff_polling_logic_dev_path_6 =/dev/fpga0 +sff_polling_logic_dev_path_7 =/dev/fpga0 +sff_polling_logic_dev_path_8 =/dev/fpga0 +sff_polling_logic_dev_path_9 =/dev/fpga0 +sff_polling_logic_dev_path_10 =/dev/fpga0 +sff_polling_logic_dev_path_11 =/dev/fpga0 +sff_polling_logic_dev_path_12 =/dev/fpga0 +sff_polling_logic_dev_path_13 =/dev/fpga0 +sff_polling_logic_dev_path_14 =/dev/fpga0 +sff_polling_logic_dev_path_15 =/dev/fpga0 +sff_polling_logic_dev_path_16 =/dev/fpga0 +sff_polling_logic_dev_path_17 =/dev/fpga0 +sff_polling_logic_dev_path_18 =/dev/fpga0 +sff_polling_logic_dev_path_19 =/dev/fpga0 +sff_polling_logic_dev_path_20 =/dev/fpga0 +sff_polling_logic_dev_path_21 =/dev/fpga0 +sff_polling_logic_dev_path_22 =/dev/fpga0 +sff_polling_logic_dev_path_23 =/dev/fpga0 +sff_polling_logic_dev_path_24 =/dev/fpga0 +sff_polling_logic_dev_path_25 =/dev/fpga0 +sff_polling_logic_dev_path_26 =/dev/fpga0 +sff_polling_logic_dev_path_27 =/dev/fpga0 +sff_polling_logic_dev_path_28 =/dev/fpga0 +sff_polling_logic_dev_path_29 =/dev/fpga0 +sff_polling_logic_dev_path_30 =/dev/fpga0 +sff_polling_logic_dev_path_31 =/dev/fpga0 +sff_polling_logic_dev_path_32 =/dev/fpga0 \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/cfg_file_name b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/cfg_file_name new file mode 100644 index 000000000000..5f49420441a5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/plat_sysfs_cfg/cfg_file_name @@ -0,0 +1,4 @@ +WB_PLAT_CPLD +WB_PLAT_FAN +WB_PLAT_PSU +WB_PLAT_SFF diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/setup.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/setup.py new file mode 100644 index 000000000000..6c3916921abb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/setup.py @@ -0,0 +1,39 @@ +from setuptools import setup + +setup( + name='sonic-platform', + version='1.0', + description='SONiC platform API implementation', + license='Apache 2.0', + author='SONiC Team', + author_email='support', + url='', + maintainer='support', + maintainer_email='', + packages=[ + 'sonic_platform', + 'plat_hal', + 'wbutil', + 'eepromutil', + 'hal-config', + 'config', + ], + py_modules=[ + 'hal_pltfm', + 'platform_util', + 'platform_intf', + ], + 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 :: 3.7', + 'Topic :: Utilities', + ], + keywords='sonic SONiC platform PLATFORM', +) diff --git a/src/sonic-device-data/tests/permitted_list b/src/sonic-device-data/tests/permitted_list index cb99b99fd3d9..7a36dcebe2d6 100644 --- a/src/sonic-device-data/tests/permitted_list +++ b/src/sonic-device-data/tests/permitted_list @@ -334,8 +334,13 @@ cmic_dma_abort_in_cold_boot hybrid_pfc_deadlock_enable sai_pfc_dlr_init_capability appl_param_nof_ports_per_modid +svi_my_station_optimization +warmboot_knet_shutdown_mode +sai_fdb_entry_l2_discard_src_enable +sai_pfc_defaults_disable sai_fdb_entry_l2_discard_src_enable svi_my_station_optimization sai_nbr_bcast_ifp_optimized sai_pfc_defaults_disable sai_optimized_mmu +sai_stats_support_mask From a4153d9dba24a7fda739dc8af4f597aafb9c30da Mon Sep 17 00:00:00 2001 From: philo Date: Mon, 14 Aug 2023 17:22:05 +0800 Subject: [PATCH 2/8] update one-image.mk file Signed-off-by: philo --- platform/broadcom/one-image.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/broadcom/one-image.mk b/platform/broadcom/one-image.mk index c19cdabfdca7..9ba9fcbe050d 100755 --- a/platform/broadcom/one-image.mk +++ b/platform/broadcom/one-image.mk @@ -79,6 +79,7 @@ $(SONIC_ONE_IMAGE)_LAZY_INSTALLS += $(DELL_S6000_PLATFORM_MODULE) \ $(DELTA_AGC032_PLATFORM_MODULE) \ $(RUIJIE_B6510_48VS8CQ_PLATFORM_MODULE) \ $(RAGILE_RA_B6510_48V8C_PLATFORM_MODULE) \ + $(MICAS_M2_W6510_48V8C_PLATFORM_MODULE) \ $(MICAS_M2_W6520_24DC8QC_PLATFORM_MODULE) \ $(NOKIA_IXR7250_PLATFORM_MODULE) \ $(TENCENT_TCS8400_PLATFORM_MODULE) \ From 42209eb82c88f97fb4afa13b5e9bf7723ef585bd Mon Sep 17 00:00:00 2001 From: philo Date: Tue, 22 Aug 2023 09:41:36 +0800 Subject: [PATCH 3/8] fix semgrep Signed-off-by: philo --- device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py index 307b0d0581d9..c33648756243 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py @@ -4,7 +4,7 @@ # * PSU # import os -import xml.etree.ElementTree as ET +from lxml import etree as ET import glob import json from decimal import Decimal From 0dbd3dbcf3474b9680db94519460a2454e4bce32 Mon Sep 17 00:00:00 2001 From: philo Date: Wed, 7 Feb 2024 15:47:08 +0800 Subject: [PATCH 4/8] Kernel 6.1.38 adaption Signed-off-by: philo --- .../M2-W6520-24DC8QC/hwsku.json | 100 + .../M2-W6520-24DC8QC/port_config.ini | 14 +- ...m2-w6520-24dc8qc-24x200G+8x400G-copper.yml | 22 - .../td4-m2-w6520-24dc8qc-24x200G+8x400G.yml | 23 +- .../default_sku | 2 +- .../hwsku.json | 100 + .../installer.conf | 2 +- .../latest_firmware/bios_upgrade_header.bin | Bin 8388729 -> 0 bytes .../cpu_cpld_upgrade_header.vme | Bin 292669 -> 0 bytes .../latest_firmware/fpga_upgrade_header.bin | Bin 2862215 -> 0 bytes .../other_cpld_upgrade_header.vme | Bin 1184174 -> 0 bytes .../monitor.py | 2 +- .../platform.json | 259 +- .../platform_components.json | 35 +- .../platform_env.conf | 1 + .../common/Makefile | 1 - .../common/app/firmware_upgrade/Makefile | 19 - .../common/app/firmware_upgrade/Rules.mk | 42 - .../firmware_upgrade/firmware_driver/Makefile | 19 - .../firmware_driver_cpld/Makefile | 23 - .../firmware_driver_cpld/firmware.c | 144 - .../firmware_driver_cpld/firmware_cpld.c | 384 - .../firmware_cpld_upgrade.c | 1879 - .../firmware_driver_cpld/include/firmware.h | 82 - .../include/firmware_cpld.h | 64 - .../firmware_driver_cpld/include/jbi.h | 15 - .../firmware_driver_cpld/jbicomp.c | 438 - .../firmware_driver_cpld/jbicomp.h | 37 - .../firmware_driver_cpld/jbiexprt.h | 224 - .../firmware_driver_cpld/jbijtag.c | 1679 - .../firmware_driver_cpld/jbijtag.h | 146 - .../firmware_driver_cpld/jbimain.c | 3362 -- .../firmware_driver_cpld/jbiport.h | 45 - .../firmware_driver_cpld/jbistub.c | 2518 -- .../firmware_driver_cpld/jbistub.h | 95 - .../firmware_driver_ispvme/Makefile | 22 - .../firmware_cpld_ispvme.c | 450 - .../firmware_cpld_upgrade_ispvme.c | 691 - .../firmware_driver_ispvme/firmware_ispvme.c | 140 - .../include/firmware_cpld_ispvme.h | 70 - .../include/firmware_ispvme.h | 86 - .../firmware_driver_sysfs/Makefile | 22 - .../firmware_driver_sysfs/firmware.c | 143 - .../firmware_driver_sysfs/firmware_sysfs.c | 495 - .../firmware_sysfs_upgrade.c | 258 - .../include/firmware_sysfs.h | 88 - .../include/firmware_sysfs_upgrade.h | 72 - .../include/firmware_upgrade.h | 57 - .../firmware_upgrade/Makefile | 33 - .../firmware_upgrade/firmware_upgrade/crc32.c | 216 - .../firmware_upgrade/firmware_upgrade/debug.c | 60 - .../firmware_upgrade/firmware_app.c | 985 - .../fw_upg_gpio_vme/hardware.c | 263 - .../fw_upg_gpio_vme/ispvm_ui.c | 837 - .../fw_upg_gpio_vme/ivm_core.c | 3097 -- .../fw_upg_isc/firmware_upgrade_isc.c | 68 - .../fw_upg_mtd/firmware_upgrade_mtd.c | 446 - .../fw_upg_mtd/firmware_upgrade_mtd.h | 32 - .../firmware_upgrade/fw_upg_mtd/mtd-abi.h | 259 - .../fw_upg_sysfs/firmware_upgrade_sysfs.c | 285 - .../fw_upg_sysfs/firmware_upgrade_sysfs.h | 16 - .../fw_upg_sysfs/fw_upg_spi_logic_dev.c | 1181 - .../fw_upg_sysfs/fw_upg_spi_logic_dev.h | 90 - .../firmware_upgrade/include/debug.h | 34 - .../firmware_upgrade/include/firmware_app.h | 172 - .../firmware_upgrade/include/vmopcode.h | 192 - .../common/lib/algorithm/openloop.py | 6 + .../common/lib/algorithm/pid.py | 3 + .../common/lib/eepromutil/cust_fru.py | 135 + .../common/lib/plat_hal/devicebase.py | 3 + .../common/lib/plat_hal/fan.py | 4 +- .../common/lib/plat_hal/interface.py | 22 +- .../common/lib/plat_hal/psu.py | 146 +- .../common/lib/plat_hal/rotor.py | 4 +- .../common/lib/plat_hal/sensor.py | 81 +- .../common/lib/restful_util/__init__.py | 0 .../common/lib/restful_util/restful_api.py | 96 + .../kernel_drivers_blacklist.conf | 6 +- .../common/modules/COPYING | 20 + .../common/modules/GPL-2.0 | 359 + .../common/modules/Makefile | 13 +- .../common/modules/hw_test.h | 1 - .../modules/intel_spi/include/intel_spi.h | 23 - .../common/modules/intel_spi/intel_spi.c | 969 - .../modules/intel_spi/intel_spi_platform.c | 167 - .../common/modules/linux-5.10/Makefile | 2 + .../common/modules/linux-5.10/wb_at24.c | 4 +- .../common/modules/linux-5.10/wb_i2c_ismt.c | 1131 + .../modules/linux-5.10/wb_i2c_mux_pca954x.c | 119 +- .../modules/linux-5.10/wb_i2c_mux_pca954x.h | 1 + .../modules/linux-5.10/wb_i2c_mux_pca9641.c | 29 +- .../common/modules/linux-5.10/wb_ina3221.c | 4 +- .../common/modules/linux-5.10/wb_isl68137.c | 9 +- .../common/modules/linux-5.10/wb_lm75.c | 7 +- .../common/modules/linux-5.10/wb_pmbus.h | 2 +- .../common/modules/linux-5.10/wb_pmbus_core.c | 24 +- .../common/modules/linux-5.10/wb_tmp401.c | 288 +- .../common/modules/linux-5.10/wb_ucd9000.c | 55 +- .../common/modules/linux-5.10/wb_xdpe12284.c | 338 +- .../modules/linux-5.10/wb_xdpe132g5c_pmbus.c | 512 + .../common/modules/phy/mdio_bitbang.c | 4 +- .../common/modules/phy/wb_mdio_gpio_device.c | 1 - .../modules/{intel_spi => pinctrl}/Makefile | 12 +- .../common/modules/pinctrl/core.h | 249 + .../common/modules/pinctrl/wb_gpio_c3000.c | 452 + .../modules/pinctrl/wb_gpio_c3000_device.c | 69 + .../common/modules/pinctrl/wb_pinctrl_intel.c | 1829 + .../common/modules/pinctrl/wb_pinctrl_intel.h | 275 + .../modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c | 3 + .../plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c | 11 +- .../plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c | 10 +- .../plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c | 59 +- .../plat_sysfs/dev_cfg/dfd_fan_driver.c | 43 +- .../plat_sysfs/dev_cfg/include/dfd_cfg_info.h | 2 + .../plat_sysfs/dev_sysfs/plat_switch.c | 1 - .../common/modules/r8168/Makefile | 195 + .../common/modules/r8168/r8168.h | 2394 ++ .../common/modules/r8168/r8168_asf.c | 416 + .../common/modules/r8168/r8168_asf.h | 295 + .../common/modules/r8168/r8168_dash.h | 256 + .../common/modules/r8168/r8168_fiber.h | 75 + .../common/modules/r8168/r8168_firmware.c | 264 + .../common/modules/r8168/r8168_firmware.h | 68 + .../common/modules/r8168/r8168_n.c | 32208 ++++++++++++++++ .../common/modules/r8168/r8168_realwow.h | 118 + .../common/modules/r8168/r8168_rss.c | 439 + .../common/modules/r8168/r8168_rss.h | 66 + .../common/modules/r8168/rtl_eeprom.c | 289 + .../common/modules/r8168/rtl_eeprom.h | 56 + .../common/modules/r8168/rtltool.c | 232 + .../common/modules/r8168/rtltool.h | 86 + .../common/modules/sdhci/Makefile | 18 + .../common/modules/sdhci/cqhci.h | 324 + .../common/modules/sdhci/sdhci-pci-arasan.c | 331 + .../common/modules/sdhci/sdhci-pci-core.c | 2468 ++ .../common/modules/sdhci/sdhci-pci-dwc-mshc.c | 84 + .../common/modules/sdhci/sdhci-pci-gli.c | 1159 + .../common/modules/sdhci/sdhci-pci-o2micro.c | 926 + .../common/modules/sdhci/sdhci-pci.h | 199 + .../common/modules/sdhci/sdhci.h | 822 + .../common/modules/wb_eeprom_93xx46.c | 4 +- .../common/modules/wb_fpga_i2c_bus_drv.c | 23 +- .../common/modules/wb_fpga_pca954x_drv.c | 16 +- .../common/modules/wb_fpga_pcie.c | 17 +- .../common/modules/wb_i2c_dev.c | 93 +- .../common/modules/wb_i2c_ocores.c | 54 +- .../common/modules/wb_i2c_ocores.h | 2 + .../common/modules/wb_io_dev.c | 39 +- .../common/modules/wb_mac_bsc.c | 999 +- .../common/modules/wb_optoe.c | 4 +- .../common/modules/wb_pcie_dev.c | 63 +- .../common/modules/wb_pcie_dev.h | 2 + .../common/modules/wb_platform_i2c_dev.c | 6 +- .../common/modules/wb_spi_dev.c | 43 +- .../common/modules/wb_spi_gpio_device.c | 10 + .../common/modules/wb_spi_ocores.c | 24 +- .../common/modules/wb_wdt.c | 178 +- .../common/modules/wb_wdt.h | 7 + .../common/modules/wb_xdpe132g5c.c | 11 +- .../common/script/avscontrol.py | 2 +- .../common/script/drv_update.py | 152 + .../common/script/generate_airflow.py | 22 +- .../common/script/hal_fanctrl.py | 79 +- .../common/script/platform_common.py | 8 + .../common/script/platform_config.py | 8 + .../common/script/platform_e2.py | 33 +- .../common/script/platform_intf.py | 25 +- .../common/script/platform_process.py | 8 + .../common/script/platform_sensors.py | 85 +- .../common/script/set_eth_mac.py | 274 + .../common/script/subnetwork.py | 59 + .../common/service/subnetwork.service | 13 + .../common/sonic_platform/fan.py | 16 +- .../common/sonic_platform/psu.py | 31 +- .../common/sonic_platform/sfp.py | 22 +- .../debian/control | 20 - .../sonic-platform-modules-micas/debian/rules | 10 +- .../.upgrade_test/cpld_test_header.vme | Bin 406 -> 0 bytes .../.upgrade_test/fpga_test_header.bin | 10 - .../m2-w6510-48v8c/Makefile | 3 - .../x86_64_micas_m2_w6510_48v8c_r0_config.py | 14 +- .../x86_64_micas_m2_w6510_48v8c_r0_device.py | 214 +- ..._micas_m2_w6510_48v8c_r0_exhaust_device.py | 214 +- .../m2-w6510-48v8c/modules/driver/Makefile | 3 - .../driver/wb_firmware_upgrade_device.c | 174 - .../refresh_base_cpld_header.vme | Bin 292 -> 0 bytes .../.cpld_refresh/refresh_cpu_cpld_header.vme | Bin 292 -> 0 bytes .../.cpld_refresh/refresh_fan_cpld_header.vme | Bin 296 -> 0 bytes .../refresh_maca_cpld_header.vme | Bin 297 -> 0 bytes .../refresh_macb_cpld_header.vme | Bin 297 -> 0 bytes .../.upgrade_test/cpld_test_header.vme | Bin 467 -> 0 bytes .../.upgrade_test/fpga_test_header.bin | 10 - .../m2-w6520-24dc8qc/Makefile | 6 - ...x86_64_micas_m2_w6520_24dc8qc_r0_config.py | 34 +- .../m2-w6520-24dc8qc/modules/driver/Makefile | 3 - .../driver/wb_firmware_upgrade_device.c | 200 - 196 files changed, 52746 insertions(+), 24628 deletions(-) create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/hwsku.json create mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/hwsku.json delete mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin delete mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme delete mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/fpga_upgrade_header.bin delete mode 100644 device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/cust_fru.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/__init__.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/COPYING create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/GPL-2.0 delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_ismt.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe132g5c_pmbus.c rename platform/broadcom/sonic-platform-modules-micas/common/modules/{intel_spi => pinctrl}/Makefile (59%) create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/core.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000_device.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_dash.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_fiber.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_n.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_realwow.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/Makefile create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/cqhci.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-arasan.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-core.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-dwc-mshc.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-gli.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-o2micro.c create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci.h create mode 100644 platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci.h create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/drv_update.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/set_eth_mac.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/script/subnetwork.py create mode 100755 platform/broadcom/sonic-platform-modules-micas/common/service/subnetwork.service delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/cpld_test_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_base_cpld_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_cpu_cpld_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_fan_cpld_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_maca_cpld_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_macb_cpld_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/cpld_test_header.vme delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/fpga_test_header.bin delete mode 100644 platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/modules/driver/wb_firmware_upgrade_device.c diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/hwsku.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/hwsku.json new file mode 100644 index 000000000000..0992d683af0b --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/hwsku.json @@ -0,0 +1,100 @@ +{ + "interfaces": { + "Ethernet1": { + "default_brkout_mode": "1x200G" + }, + "Ethernet2": { + "default_brkout_mode": "1x200G" + }, + "Ethernet3": { + "default_brkout_mode": "1x200G" + }, + "Ethernet4": { + "default_brkout_mode": "1x200G" + }, + "Ethernet5": { + "default_brkout_mode": "1x200G" + }, + "Ethernet6": { + "default_brkout_mode": "1x200G" + }, + "Ethernet7": { + "default_brkout_mode": "1x200G" + }, + "Ethernet8": { + "default_brkout_mode": "1x200G" + }, + "Ethernet9": { + "default_brkout_mode": "1x200G" + }, + "Ethernet10": { + "default_brkout_mode": "1x200G" + }, + "Ethernet11": { + "default_brkout_mode": "1x200G" + }, + "Ethernet12": { + "default_brkout_mode": "1x200G" + }, + "Ethernet13": { + "default_brkout_mode": "1x200G" + }, + "Ethernet14": { + "default_brkout_mode": "1x200G" + }, + "Ethernet15": { + "default_brkout_mode": "1x200G" + }, + "Ethernet16": { + "default_brkout_mode": "1x200G" + }, + "Ethernet17": { + "default_brkout_mode": "1x200G" + }, + "Ethernet18": { + "default_brkout_mode": "1x200G" + }, + "Ethernet19": { + "default_brkout_mode": "1x200G" + }, + "Ethernet20": { + "default_brkout_mode": "1x200G" + }, + "Ethernet21": { + "default_brkout_mode": "1x200G" + }, + "Ethernet22": { + "default_brkout_mode": "1x200G" + }, + "Ethernet23": { + "default_brkout_mode": "1x200G" + }, + "Ethernet24": { + "default_brkout_mode": "1x200G" + }, + "Ethernet25": { + "default_brkout_mode": "1x400G" + }, + "Ethernet33": { + "default_brkout_mode": "1x400G" + }, + "Ethernet41": { + "default_brkout_mode": "1x400G" + }, + "Ethernet49": { + "default_brkout_mode": "1x400G" + }, + "Ethernet57": { + "default_brkout_mode": "1x400G" + }, + "Ethernet65": { + "default_brkout_mode": "1x400G" + }, + "Ethernet73": { + "default_brkout_mode": "1x400G" + }, + "Ethernet81": { + "default_brkout_mode": "1x400G" + } + } +} diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini index f4b5b5f82571..28f3f3a348ac 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/port_config.ini @@ -24,10 +24,10 @@ Ethernet22 149,150,151,152 twoHundredGigE0/22 21 Ethernet23 153,154,155,156 twoHundredGigE0/23 22 200000 Ethernet24 157,158,159,160 twoHundredGigE0/24 23 200000 Ethernet25 1,2,3,4,5,6,7,8 fourHundredGigE0/1 24 400000 -Ethernet26 33,34,35,36,37,38,39,40 fourHundredGigE0/2 25 400000 -Ethernet27 65,66,67,68,69,70,71,72 fourHundredGigE0/3 26 400000 -Ethernet28 73,74,75,76,77,78,79,80 fourHundredGigE0/4 27 400000 -Ethernet29 105,106,107,108,109,110,111,112 fourHundredGigE0/5 28 400000 -Ethernet30 113,114,115,116,117,118,119,120 fourHundredGigE0/6 29 400000 -Ethernet31 121,122,123,124,125,126,127,128 fourHundredGigE0/7 30 400000 -Ethernet32 129,130,131,132,133,134,135,136 fourHundredGigE0/8 31 400000 +Ethernet33 33,34,35,36,37,38,39,40 fourHundredGigE0/2 25 400000 +Ethernet41 65,66,67,68,69,70,71,72 fourHundredGigE0/3 26 400000 +Ethernet49 73,74,75,76,77,78,79,80 fourHundredGigE0/4 27 400000 +Ethernet57 105,106,107,108,109,110,111,112 fourHundredGigE0/5 28 400000 +Ethernet65 113,114,115,116,117,118,119,120 fourHundredGigE0/6 29 400000 +Ethernet73 121,122,123,124,125,126,127,128 fourHundredGigE0/7 30 400000 +Ethernet81 129,130,131,132,133,134,135,136 fourHundredGigE0/8 31 400000 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml index 700edb678f1c..0f50428f47bd 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G-copper.yml @@ -1,25 +1,3 @@ -# -# BCM56880 128x100g port configuration. -# -# configuration yaml file -# device: -# : -# : -# ? -# : -# : -# ... -# : -# : -# : -# : -# ... -# : -# -# $Copyright: (c) 2019 Broadcom. -# Broadcom Proprietary and Confidential. All rights reserved.$ -# - --- bcm_device: 0: diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml index 703a40619a47..c455ec72f29d 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml @@ -1,31 +1,10 @@ -# -# BCM56880 128x100g port configuration. -# -# configuration yaml file -# device: -# : -#
: -# ? -# : -# : -# ... -# : -# : -# : -# : -# ... -# : -# -# $Copyright: (c) 2019 Broadcom. -# Broadcom Proprietary and Confidential. All rights reserved.$ -# - --- bcm_device: 0: global: bcm_tunnel_term_compatible_mode: 1 vlan_flooding_l2mc_num_reserved: 0 + shared_block_mask_section: uc_bc l3_alpm_template: 2 l3_alpm2_bnk_threshold: 100 svi_my_station_optimization: 1 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/default_sku b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/default_sku index 80e8ed10ac4b..afadd24f36c5 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/default_sku +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/default_sku @@ -1 +1 @@ -M2-W6520-24DC8QC t1 +M2-W6520-24DC8QC l2 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/hwsku.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/hwsku.json new file mode 100644 index 000000000000..0992d683af0b --- /dev/null +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/hwsku.json @@ -0,0 +1,100 @@ +{ + "interfaces": { + "Ethernet1": { + "default_brkout_mode": "1x200G" + }, + "Ethernet2": { + "default_brkout_mode": "1x200G" + }, + "Ethernet3": { + "default_brkout_mode": "1x200G" + }, + "Ethernet4": { + "default_brkout_mode": "1x200G" + }, + "Ethernet5": { + "default_brkout_mode": "1x200G" + }, + "Ethernet6": { + "default_brkout_mode": "1x200G" + }, + "Ethernet7": { + "default_brkout_mode": "1x200G" + }, + "Ethernet8": { + "default_brkout_mode": "1x200G" + }, + "Ethernet9": { + "default_brkout_mode": "1x200G" + }, + "Ethernet10": { + "default_brkout_mode": "1x200G" + }, + "Ethernet11": { + "default_brkout_mode": "1x200G" + }, + "Ethernet12": { + "default_brkout_mode": "1x200G" + }, + "Ethernet13": { + "default_brkout_mode": "1x200G" + }, + "Ethernet14": { + "default_brkout_mode": "1x200G" + }, + "Ethernet15": { + "default_brkout_mode": "1x200G" + }, + "Ethernet16": { + "default_brkout_mode": "1x200G" + }, + "Ethernet17": { + "default_brkout_mode": "1x200G" + }, + "Ethernet18": { + "default_brkout_mode": "1x200G" + }, + "Ethernet19": { + "default_brkout_mode": "1x200G" + }, + "Ethernet20": { + "default_brkout_mode": "1x200G" + }, + "Ethernet21": { + "default_brkout_mode": "1x200G" + }, + "Ethernet22": { + "default_brkout_mode": "1x200G" + }, + "Ethernet23": { + "default_brkout_mode": "1x200G" + }, + "Ethernet24": { + "default_brkout_mode": "1x200G" + }, + "Ethernet25": { + "default_brkout_mode": "1x400G" + }, + "Ethernet33": { + "default_brkout_mode": "1x400G" + }, + "Ethernet41": { + "default_brkout_mode": "1x400G" + }, + "Ethernet49": { + "default_brkout_mode": "1x400G" + }, + "Ethernet57": { + "default_brkout_mode": "1x400G" + }, + "Ethernet65": { + "default_brkout_mode": "1x400G" + }, + "Ethernet73": { + "default_brkout_mode": "1x400G" + }, + "Ethernet81": { + "default_brkout_mode": "1x400G" + } + } +} diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf index 7a9fec8cc99c..2a5d7d83f102 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/installer.conf @@ -1,2 +1,2 @@ CONSOLE_SPEED=115200 -ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="intel_idle.max_cstate=0 idle=poll" \ No newline at end of file +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="intel_idle.max_cstate=0 idle=poll modprobe.blacklist=spi_intel,spi_intel_platform,spi_intel_pci" diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin deleted file mode 100644 index 7dca3ef29d4c3edebe5bf351b70f32efc5f8f227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8388729 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 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_< 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

AVWgMCTg(fE83R}1cned|% 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ξ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%0Ds&zGD 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%0D_hr*k-zz}@Tm-4&U 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⪻|hZj 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 z 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 uomY)d8DGwc{ccft-Go_Y)gezK(x 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%0Au^J%UXM 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 z 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

{`%PO(N#SAQXf~;(ZddV#y@! z7e@53!;^&g4&<$ct`Xhc_e?xjazxx8=g<#H25%ZEp0!?qN~w+iRcHT`Y@Y`#=z@>Z zTFQKtPjLUa0a=30KZJ_5Ps5I$UAJfCahV)259K8Q7^rwj!N7QY&<n;cIK@i`IwA6yu3WFcqjE9)yvY1a=xQ|99RoyxKJs47E zt82_MKmo!Bq3S;;+b^M}oJ|*e`+^7{C6LqDrf%ce-A~Oa9TF6Q%|%Twz~m?nSeal% zSDbTp-%5XgK(6hX?r4W<8J=wmn|*P7akofO^pVts-Df@Iosmp3IR!wsCY=aD3dBL4Pp4zZxB@#sK*lM4 z){<9A>Pstl`IXl&sk`X1GVRh~!Gljg1Oi9(fA&j!@GS6^wq|d?khluZV%>3uKsw5) z@YP{@5B6LrktX1(^RS>ZIauQ@nha42bAVDHI2WAxc(tq`@J;sf`aqzf+yI^eCQgUi zikS@18=Gr_&3n~nev+u+Lxi*Vki$t5)Q07336@wu@<5`|do4^vXf|9=oFbNB! zc#taxLDuyzOC|zR5ld;_968O0Pgl8;Kfx^gFNMSyb)8E`s-N68U%aK0)Gg!=v zr_vHz{r;qMNd_S!IZwIhHey<1-AIG!6|P6Aca}zXhwiiH#WK&6a}s zIQ*eqsJc4T9gGpv!zReIFq*{+-ebV3~?8VqU!2keiujV81N7!S^Tn6f_B|{z&rTNElhZPngYW zOjcsGALcY3DBVB*-qga8iC+#J2eoPfkMXkm`y?z_#2xE~&aK;cpfPA~QWr6pGh)YXg z2x@NpY_QgK!r19={^T8HZ(#15<1i#HJ#{+83iJ{Aph}HmV;Md{``Sl-7y^3{9_+>- zy8M&HlLbjgPs)?%^K3=!<3!yMI2YOK2|^Qn$ajk5syvx}UmZvOdY*#cw5IsGA`ZHX zPm^T?)aEd#`~EPKpX9K%pOVW^>)&Fh(+I=Y{q>kPW7B-fCsx@1aD&hCXsb#sUA7 z2G)SN0TcM(V_6~7c{UkwxM!gyr`E^v$}ttzD9uqRjHn%jY;I4OKpw9~bm`umH}31+ zB~6ahb+AqPD69|VLe|V_wSGbmVZ3+jjc51{+NAv&-N5+F$#;(TeTK5-+{TcT-idgh zfXe*4WJ+7jOe}!{d}!=CKLuRbnCCKl7KSzRk0Toa6+y^#jiJKaKqQeh}1LBF)GB64Yg~S zD#1y-ax)lqrmswonQC8W%Xzg|_rewl)q6Ep^OWDI3gmAvuqdBiNJ0_oG+a7|{AM9S z#weW-T;lSm6n)5Q56W~KJW8OZ>r#X%8J?i1C^Qb z+V#RtanZAZ3?_B(HF>kqaD1Slu1{r?-J4AS2A$$IHW@AfHt9mL(9Y6QDq!BD@KuVw zrI2p&o*9XseR{PcR-)N90`x(jTL~{7-B!l2WodC{^*vhAi_QXx7A@YJ-#oyQ))Sb3 z6*%}kBzXXyZ?@PuUo4oy>1i6*e|d#qLl!7|S>rMTWldT-dS!-WzAviYx6!@8Gp$ZZ-* zEj4C5zrnq4K<&Goe_x?dsMbUsm0NqM-pNMZ-9iUgounb9^*nyr0zjs$VOy@zccB`!pe z>J{c#)_{WMwxgH>i9AV?S5p7Oa3UbOp$x$qubhrfnX{^IUcyJ$d*0by+$n=`qEk(P z$#k#k##l+l))@Cs6{W*1}iHP?nb~l9~62i*nmJYXt zPIdFb4VHb|C4kcgJ7fBA2Q*=t#Ay3aq zQX4YPdl0tN3YYp01LW1fXs~*0IcCm@gJUX?fkEGX%vE%YI_=t|$#4Xz?;32X znvgh$lBMKLvK+Alj*|#bdQNZrJUn&Zi>!!lCZsDnw3tIFq@)W*uZ z`+7Ct3^G~QD93?;l{U9QqF%ZPRKR+yNEFsjw&)qe9bgG3@e=WKVHR{)g*2RyTlF<+ zDdzOoBc9w?<(i=D|U2)Y+VRMC1YZ@&8Gm)FNqiGIQ z`~*Ap2GER5yLXNgE*pjbl}>tyFPN@Iom9#}>2%`JB}&M)s@1{NH~TKr`1c1PnFrs_ zhs2piSCCy?0=Gh~u+HLBa>5}r_YLH1XdRKza<=p>Jo~@p@{Wi9BhdZ2J|lQ`%iU2W zQq^OjmydbMSSE!zjUYJ}@k+3pbDN101ozQ`CkN%Dw)>^fA|;c*@hC?v8g98FGH$LB z1VlG6a9Cfp7wQp7POMgF@;vldQG;%~^j*_zoQVbZ z;woDxd83KfWf`r{%QLozXxvSP;bs3W=f%Sl6CRkrpERK>a4Sa~3D z-zJp>iYV8&@lKTUY$~Z2a$0oo%+O1?f>W_yavMowalF^z65>nmZ>T)+Xk-SjaqYnJ zwKfcAjNCte%ce@N@Rro)u6!Gq1v=JY3g=-@2YNh3PpPGn!fPxE5uiq@AgY+nl~$s1 zI=c*y{5jbWTUw7UrMXJgI02(UMU*=$-|IY0s zFPwUimIBBf+PuG$hCtWa?CP_t;e&It51(N9oSQv*rPgKTHu;`dW4pVDi(xP=Xmg{H zFR1xpze=X0@z1J4Uh!V=xvKgCfccg$|OEie?tlr zjl16^@B(3LA-8*(sU=)c(a(=TR@govZ@{+=C91sldKvrO)fTm+1CD5tIV=t{{pD!M zWIoL6;98h5(Qs*i1(W&~n2IFOXKI7|Ep}}dJZSgGRdA-YL9o#h!!K{ftx>(cjW48^ zyrGEV9uZbwZ`_ndcv7ms-yNu6!6-s%LYpr>DWvP_f>@pun@CkKpZiFJud^qYBi|nO z)paw}fP5=a5z3-ITBQd8n9iOfIba3M2JJctYH?Tc3A&uTMb~WK!du{Wkqx>BkI0{Y z4k^^1VxT1!fVGJ~2?bF7`@`=%Y9CTV4<6e7IY1JEM~vxf1;`F)tVX!TAWQ`q=X{-0 zuP|D$Ww&kHwr$(`wr$(CZQHhO+qP}=$?f~rN!Nc^S*gmHb40vq1X6;u*pL!0tpYLc z`JM`MWB{rQkh7?&>oZI}%X!bhXH5*=z(PjgakugiDZ8;|ciIKi@A52sjV zOwPe|91`9$w~l^_I*s)cs!3u>y+GW|Q9Yind>~rlPQlWWPpI$boJ?5S`As4u{Y6K~ z3hgPR&RLy z??2Z)V>h|OHahrZq5^WF-%?kXf8ZYB^gAU@%IS8$#&(CfUfitdYFq7GZZ9|u8}Z6C zbdiGFR7-m>dtF7~TpPu(82VYBHQh#P_Efp~?MSU!>9zJLm7LwhkV$~OO+V!fg{p@D zH!rElV1mv_(L`u={!_(0%L8F-7&>s>y>DriU6?1{rn8O4iqBa*&e?KTpPCeyaXEBD{BE zBcyJGncdFQ9<+P5#Kx5tHE71c zb!|Ae$0M&fSs#S}O((R6n0|Y;BV6wSqc*ns%B0uQxiM68Gv{w7ON*fJG*)?!ZPg6- zb~`wH=#Ag5YtZT8Mj;}ifIt-9+p|ObUzSadX&qpX1-K__G zurw#HN8fWS#k%l^eRy}^$Hg{Kkaa~XUeYdQoA%3fk%;Kx2v!F$_slGh_pOE@3oY;v z#pbglTe{M37IDp$$Qs$l;lGA(a+6DB(O78szf{$>4Wp}U(?#P#Z}xsNpB++!!@LGa zj(&CKVu-Fkp_8Lie0Ul^ZvN>_VJ~ndHm(vvC-xzRp#`0{`H=8)y(R*+T-W)s;+CG8 zgvPP0p~n);c61F=fvzkBa55L~HN{*HgmvE_5gyLsyb>5WZjw`K)&wDalKA20IB~%- z>k9bjen<2+(1UOswTW9PSO25PFj~9`n|ta_OMBIM`xKen@iB`OWA024>aoRliJBt= zy7Up70#`!4a@lZ0P7%Z+rBZJakw+GJ8%R!t*9sA6R{&Dc;jn(UGvU9*S&va;=B($$ zpC{w+Kw&lr6YeV>-W2a1X!r%W^8Iyp1bKZkfO*OD8lwB)T7_WxWViIQ5u4L~*L!$= zWO4p|cdSKkJ;qdyU+hck+6{?az-$gZMe6odJ%L>65rEcrpggMt+v_=Av3@jslBZ27 zfw#Y}F$k{L$9grbqOly`hBaDBz=^fhrWh_cIUcV2ep0(w?&iissFhmy!di<4$EglX z+O^(P39t2XNUzeqo64}D58xXVX&g`K&3{7aSMa*hb-BMwL>@Q6*_umk>%N#C#D0n= zrAxPj1}4yl^o+E!7dY!^p9f!i7Xt~y#vWU@B}K)JhfERo{N`l|klCp!Dg9zY+;}*Y z3yo^>n*|UKy9(oFcarPmReE=UN={_LJd5HN_j z7GK>0lc9s1h)5)+3Be(B7|NrzZO(yC-@bqT>L(=>*NYHpzm)hImbx^OJG$;k^L_DHF6y!_0ql;k? zNqA|^NCQEFqbhvY$vZwcHD$5%nFGGxCg8mr`jiNHRd<8 z44Yd>C{8^)jqPmvhM|F8mCfKT!bBGeTM77e>dx@I=ol}VOW*ZsX_{&p}i6oH7$HRrYc-|55md&$bl+#JVG!)DDsxD z3NaADPd*e=BEX|FSaO0oViDZ4mg2dCE~#Z{dc4JD#>NzN{xuBSYOP(4wnOh3&KHml z;czuLs_MTT>gAPk-I*fgBB5h>;+)M1tq}f}O(hD`^=~3(j)3LuT-$en+9OV?*J(KJTEPgKZ(Cz{1&8|eGwQ!PM!N2-}cIff7^G%4#y<{ZdH@8g4Jne0sP}4 z<^^4{Y)tqr%4g6lLf~sM2^UDf;ZDlvqj+K2YhDiaQLHt}*91?aYk&xG zQxuAANqau3{ULmq+p4hb%ri6*u3hvaBNKrYFlW*t0Yy1;LNrB$7Vm``?OxHzpzS4B z>O^fpAnX_m;q(Vo@HkjT&BhevMa?=T8c;~cEi`v z-e{s3b22COX18y<;g`A`AKTADH-oTo{_{^V@o%s=gI6r=d|fk{03DVGZU@H+-56DL zSz1JGEk!{9`?8mvYoDJzl$mH{$g+Zox@tHm+0f)zT*o|5>) zma~t{Z5x8tkAmHi6DZUbZkh!IY@97y%~d=Avgg^G@Q}3q0CD}&9cwuA5c9M=UMRkK zNmHlwXoP_&IU#Ft{Ck2xjo99gk*I^Kha5zysFq>`A1AwX4hv29|11)L=IH*g2M*L!&l2td32uklpG4wUdifx8EY5;jeDV&qu8Of%yq!9FUw)%a9_`=Zl ztI?LaweZFh7}^cnhwU(IbZ?-ql{9bi7U+`5hYdVR=J5g~h*x>!#w`G-mqlsLp)$S0 zbP3ER0jlYZp%7sZEcyi@)k_;K)*~*a9+=<^EcjiK=)XwX8PAcQ=?Up8r$9*>doDYf zpjKAISauK5$RdS=3+Z#~^KNU#&|Qmb&n9*Ed(ur1k2x7VO`Uu^g-ISCWxqchlsF+t z*Z*3NCU2rIP!U$YEWHy1YgSMGgwFLb8LqV6((%FLmRU;F*T54chaF#o zI!UMLf>480AF&X9inJ;EJXD<;yn;Zx637OmnM%}2```bE4QPp^syk{6_rzNvcV2Eb zC56X*1iK!*uZ)2ovGSn4?j?^%ny&DbXt8k!fGeOUV_dC4I;mgn;sa?IqWYH4QG`u? z+M9x3eHN^47%M3xnSV}lVBA%Hnwm$n?gt{XnXU*8Uuyn^1p^0)&$}ecvN#9(ZeCYT z>iY)@>P#iulvTQF?tONVytIl;>kP#{;fNU@Q=xo&cWj&qA|W3iVWFr@R%sXAi2%^A z(O8&c)~5>$pG#EoI*?H3R>k_$^|M75#EI!pmJc!p<-RGB_SdI+!bs2S`W^lR#G$~Y z%G;D1L_0@X5b_C2E5M*KE5JO8n$wnO?LVy%Atv2DyMpNEwz33$G-9jzir+@&E?}D$ zyPW@Y7^-*%q6tL*8BT=J0G&hmb)d-qYl88PEgy}~zI#}JgbU_{8R`9DK3Wiq9L%mb z>gb6sG@C@lcKuY+xPM>yHw6B7i^u;8AAn>*PbuO#Qg*6Ugy}hq+)Nj;4Z23a4&^Y7s8| zLh@z-^q=PUaa06McgknmELVgmfR4=DMpT$ixdKJ-oM82G1SvO~d$1X>NzBVN4D%Xu zvce9n&e%z5(Lerfak)lLv3>^Z1m3|6q$68`thv(#IH zBuv5k`rtRRP6ycB0&%e5w8}zb4&yg!eQ+F6euvU#k%>YB@bl&-U7}K zi|1RVnV}mvBrcTHvsn>UW<(%yHktb`5nfx(&Mj|l6jJ^(3uhef6udy`d3T66_M-XW zcNElJ398OpNDx;FE)I`hJe*FH8kKspHmXZRfx_^Jj!Px%p7W)TD3R~GEreGdg}#oP zrQoS?55xG?>wZ}pIwlU2IpI%7&J~lmaV*1}0J~PlbJL2V-l`GOeVaz)#^$>zY}T#@6|cjpxTB^ z8J$@)1m$TL;vqly=ia(tnsa@lM(?2A=fS5>C5%9HNYT3ns*nbVt9C&N2*0ijk(mLn zxC%^Q%oB=a@6+Z204`dC>(c1Ifj=T4Uo)la-h)M=QgIyqlEnV`8Gfz)8?xQ;o`WZJ zhv_eOW0|L0E7q9YN2aYiKc~e-p!`(H=3rIh& z3GNQ&bvMO~{7WO=Y)6?n=*y(zE|?0>uKPfFLeY%?8UA~1Cl9=qX8P@aEyjd#Zuer6EKXf^zu|9 z*dfzDXYA|XkMG48<>X0$$~6yj{tLpxWA?{sh6X0N{S#2g30MdSKQv#Br4Xu`#PUI^_bfp@068ztRU6>z_oJb&pwH?mQsedhz3i`GlJ!ksfHLYNjaIkL z6exs1M*oI{$JO(z(7>j291%PzJbyGRo{-od3KTPC81663r98lN0j~$0z0d&-=ZIvNwHa7g z`dHbCiXv{c90k?vRl##-t*^+a)N7kMG?^o1BgL&FmerKTiqE zrlRV+Dt!H^3+L5d^2l;8c)3kHPV$aVsb6H3N2hV2ka|0AJaPMI4(S1k=bqsuj-FNC zNM-!u(vXa+2eQ_!mpiKa(*N&mxT^M=a=iNy)??CHHSyDTqO7T6c}5lyl`BN>(4o*H zddv;!>v`4^t*K0)-gv`{STOLhnqM(9ii9~g`G~*M+_WXSWt5s}yqZ)sJ;3$sE|b9X zLb+Jsq#<249?z@^6+3E}#T|dFSbMDaK!^9Js+J;PqUY4I-e{~;62gX;41B|Kweq^{6 zfzv%b8BOJ?MiN(bUw;ozw;S{2;=;EieoPBE(AQ$3G1Ww3Nb9l%=8Qnqy%p6TTV*qi zB7*L*7FZZFL((@XGykloXpDahKoYK}?vPA`)`pQ&V?R+#{ZNhY#et$~a0tb1{gl%XgFt`HDd`pk_;*_4C!MKI4& zsJU$M1r@L#bb=8-oGH_njW0c*0-<=jB4S=Xh{Fi0Co9-q2?;k@2cjEsccl(-{M4CD zIAB|)e5a83m7uv_i8S7s6^RhU8i~Zu3u|@`I~FO_nU<@_&8F^-X;#hESXj*4E#3z_w|^3Q%G48y-f zgRN;Flr{c~>6VHn2X8t;B36eS#>|H8K-&CfP%%yPz+tFG4o>Xy2RDb9j-}|N6e~9h zkT^D;Bz%~4F9{)2+3_Sm@AEeV|>HqpcbkM?bSr>J;=}ArV zu9Yx+`)cSPi_mNzGa%J`WKK8g09jJI2QO8sDPzu(1@ijxWihSS(36g!!X&aWjcE4Z^I>WXR827R{UXkvgM9ZzNsI&16lg>((hKKGf_Ba3w5D%@$$Z^L zXiMnTNv*7OfXc}amWxMpb0)R(+vYS_PV##48;uq|%3hPUAPmCQG+(vf9L~p}_g_&C zSAfVyq||4K7zX_lrq^n~$mG}8$l{H-hl-#mZA`A&(}R4zoZgej$_yB`t4>mi0PC7# z#5QI?Ca>)0(-6b5!#OE(bnqzH+mbADYriNR?qSanr0uNnFhc8dHyg;EQopDsUebh1A0#a_J6ywf3Ql#`2 zJpZK^l%(asIk#>ZyJaqUBhU2QDSKI6MoNkpc2(i)etD_G3QiA0WzDElJ$GdDR{DNt z5KP5QEjwGIMjK3IF5zFUWT0dCg`KmR;2~1h^$K}WxvNP90Mry2cIsbSd;pk6el?>s@R`}vO@+CB&eTy0F$=>1S zl*Z|yHoPi=@+i+oq9stHlj(bYB_$uOwca|>;>$gxTbsACH(-MZF9m{@S~LZ`aW%CP zCosV|Sw!5+Lk>B8dh*1j*@E#L`(wCY_K*A<_Dp+*^Uy2|j1F3cdA@y-K&p-9vW{?# zBC@)ZEG~J>lsapGLCX~A)`5?_Q3tQ-EO>CInXN}sHi3tMg z+u?MJPsrW19**!V@$-k35*4E0C-U;&g9WR{h**p77xBf+H^HN*OQT5#5Wh{gjL@M~ z^0@@@sVIEli?a9UV>P9fWB!YIni24E(~!ZY0;ORTqSdzyVT)mL+g8+VE>pVByl)PL zOKLUkA}-p4h?TeXTP(m{8;sj`)N&u9Ig5Gh-gMPgR&~+t3tvBUD-g;k)5-%?%rlo8Co8GtM+|ZnFQ;W0?z>c`sp%m88@*-c* zvpuMJIMp~GM7+;08nftyC>Al-DTMb!CSH$2lVm;W97=lZ{7KO*1AW^K`zy~{;N}c7 zP;DDOSb^dD{e3d(vIP&hY$SuC#qYgTXFUziqiiH1gR~1C=o&>g6Nn%|D&!Zw;#K*| zZsyfwr}({trSBn*eEhO8_hg}L0_=vkmgT2#1~@e(?kN+Fb`LvkN3ObZ;%h4#l8(F- zj>mX>Z6s?+)GOzxWaSr5_nzBSewnsDJ5piUk;Y@wT_s&TN}$pLyD=~Q?7_UVo7Ga1 zCcNNweL`_`@`MzNRpbUgH$|h3TbqC-LJYw1&CtX+$b`!%bBUFEhz?T%?CnPg6&ve< zC`)~eh!s2e4Asw%)GZ!cfz;S2G0Lp-Qud((L&B+GZhJ*?uyHNFLYd2EkQr|pA`n<8 z^+G=r{?f|K+LSRfD9Q7e-8iHSo(5YYl%0$;UT=Y3BVg#+^QO%&0v{JJx_P+e;uzbO zyHCJ)NHx1oF+}BA>A#=OHn;p3*CtcYD25I^|Ebx@ z5t(+l<++(!kcf{%(V40!n2r`@D?!VfI3F&PCzobZzHoPbVL<~g^NtvfqYgu!TDGL_uI?BnFR#od)3thlVH(T^*{@IY~r@+SDGXWDN8nj9~Us6PX;I|7vMKx;h74_tsQMEl}QGUjP z3q!8}VIWp5Ek+jd+AD1lnu=U4g@GCuz^*_`MaSDDu2!m0_I6H{PCdMAt^aEgFZQ`UH=DtWpo{7jYL!K?e*UJ;)m0f2tm<- z%U15G^Pi~`tQE2@1oF{ohKdC42t>cGr?rq4`+LPM@a1BRT-qyUd&dkRV_@qiJ9xg zxxF5vqseBoQkmng(#5khnZA42VwK^dZiF1eK1>}s44E>Z7tTTswP*V8ngXlSWeuP7=|TO-9@NkBf<-niTK;PL?W6i` zQx=BJZbC-?UXCHmaH63~uGm1J3#!IB=7=f9A%zQGeu3qrcf$jYOlry}L2gpnZ+4Gh zx_1o3AKJ`Xpn zY@Z3r!GbqYQI&wqO5dj@2ZvBEL94Hmvx>a3sFWXefwFCspGZV@eO?FW{zE&m*#g;= z9Ty!Sm^6qcjjZ~AYIHxyTfSl|rzu@dSm_d;+t{IygVa;Iir*Z^t4|wM#THR1OsB)1 z9k;I_WfkzA<~ihvKy(et1c5(#{UUt41zPL?)$MF~-D$X#z%)>3jC9@}Z~1A4XZfhu>=+ylNQB%OO|Um`N>(#FHM(tkb8X`VT|KrSa3o+s>I#CnNBSkPV!8* zQu&Ehhs$ccI+N>D7rR0T*Tm5DA}B;fC4j3ju%fP}Lc(SBvXn7xHj`?O8)%_K9!7Wm zCA&N$0I`AjW>3kf7zB^Rcsv{i8>`xk-uGOgK5v}L+n;W&swu)aI=2gsqx%cQJyS6W zPf^PKfX?P^AJ#uf!VEM$;b-anohYkUQRs@r4VH=2yziiiu{j5B=>}YIdRWp*K7$!* zDT@#^a+4@S#I=-b%O@>qLX-ha#7g_6S=|NIJ)f=3$h$%0WonEho8j0lTvCs%h5_Nw z!JCUIrONuiE)YTZgI*xB3_B&#+5E#XN$J#bIr2wNt2sZGvU)G&xuRcwug8%<9SMLu zEdFV(T5#5gZ;$)(gH2f9P^>8OB_?Ek0DVqyZBb0@eNL_=>JP`Su5mb;%CHCB=c5#6 zlFP?0s~RZt?A;9aW>NIrkxlN9!wQoFTz8UyCZ$&3)j_F{gt%oCuDkywyT!wU-=dq% z&>++d9d-vv^0e&z58NV?$dTi1gyQR0kgKrSE$j^vrUBG`%ODH7^iloH!TTF34~H8!XFAURMss}`^--xc*WQRHn|CWyMjI)`)@!TvTXw?8T?VW}(=%YK?dwI|aW*pq9 zulBwSNokr?|F7Atcrtb*gy$oaitst81w8T8-zw%y%GQUDq!Tfom29n2X)GQA!jllU z5?xV!G$+iq1$$G6!6QtpSB}NQhK}iE5KzMm0Fwlo_Zo4nGJ3);?Uvq`!4zQo z5OV6s4mit63xGw^sk_J&Qr$|3Y0V)+6efc+$5DEOU%O;}@6r53nrTPkQ150ClZRwg zQ#Gk~ogbe4j&@vwnxfttO(^$SZD4o#Zu)(BOFh{A~zxlS};u)n;B3QnU zeuqFJ0o;8hxp;3k-@MS*UZNgyRH%o@@#J63CTCLoD|@_1OpIQgtO08blJVhZtlqd` z=Pd*4J3gJ5Jw>K$QC{RlH=Vsdr3C0G+;kZH%6nuVT>RarXYPkXN!ty$y9DR4p9R=2 z6vbNclQi5?NH8`Xtd>dQgp@17+Ng^Cqqb}qZsLr*8kc7SzV!fA=j%K?WZK&x0UJ4Qi3~%>Z2%K zc#QDcy5xqKbcge##f4PK$~s)qQpf^fzyn*hxo4wq%C`lrMiD@=C6P3kYZTo00EO7W z9NwF)mjXj-*p<60 zx{#^NNgoHspLetwFcakwan)^0GLh1n*V8Odm4(TA2+^nQLxl=R$J+|)82}jC{olEB zC`~$I0xx{@xk1;`!j~RwHNU*S5{bh|_VGX9O1e6eRz0+?AIw;5Bbp-T=>L4z4tt2M z)<~7J;DvQ^B1y zQskdI;^-Bq#?OT4D!fbbaY9^v$C; zw-?2B?5nI{wiOT_Uc5a3y(_*wxlq^3E&!d*zzK&rcJp(!JL-A6FDo5lWg17vNssR8 zG6yo0^)#<^j9pvTpl6pZ;6yuf%;T!k>MOKDt%=&i;uxqiW~F7>`?UXLvzz>v`)bA6 zWL!H`TDRCOfYp}E(3FuPZk(u>Jy7t2u0Vx8zn&mq(m%2Sl{Kg;JU*4~(CwdL1I!sm zyYI&>Ylo4%vW%VZrPxf90M_~046y_Al<2gCE+a*cA3KVZ8nw3!iQo%CcN$m`dSuc@ z)mDp>0~T|hEG?`RFoPBY{kw4zB6qm}Dxj_K^K^(-@^{%w>ons=PNqb$1CZY(N)KPFtqB_v+ARGgh)xwdhRg^Aj zCqqwjM5wV~l}SS6uPL2O>J;fd)3R&Ofp3A}>|Yl>RY~fNgq3!y_McCtgVl#8!@Qp{ zg4;oNq@w?QqD*jj%@-n3j8q?45eLikkUb(jUwzMQO!q&aDch3oDs z;Up0EO~U8-eicsx)A8muWu-IDnm&q@hSUgS1kkxQd`$3I$_tE~tq$Gx)%xGh#kz(T zk|yw1$LhX%ypl-EO2~$iW#ED%#8_gm6QTw4tgEaxCL4 zUEhC5G|@+CYkp@gWF~{>@&F*DhK@PrlIph6X+^D~V^e1c*Eg(%yLEuaoT49PQ=t+c z^_8O1GlJ&)J=UWUU41Uhf`A>TAx}}IL?6c3Eb0-k+A(K6K=)5a1`fTp)$*HH6M4YG z3K&|=eUDM^m8z|*U0_JJXNtBF3<<*QE{>IxV()o8A+xXrd88V}Kd9c@(EH0?K0(7$ zkW{BJOj<0YnB@SJE?IDl=M)2WbI+*Yv*?n!7feKsE1XhydB%< z(gGkDndhZg`bWJvxNLJ}-Le_=P6%)W5lnj4tSdK112^|LqzDg!(=u3i?WI$n0}>$k zK85a_`GG2C4hcLZbB`w*vztWt9EC-V*jW@Ewyhqy06kDo$cy8TYGuL%X%_5RPv9FW zC#obNlN6~TYQaEe2=hEQBlAJTK1FqX+N6vb3#^f)gFqBuXEd=d$C1A0Z;KVlaM1@A z2*J2#()va1Pq$OSw-Y+6Ue!@12b>q0?5|s$T`B)P|LX(B;j0PnT7Ww!Q#y4(Rpw{3 zUd`Y#epCNcw!$TJ_cI00xgs8}MtpDX2w&SGBCINrx+_>% zivE1DRgxt)XF{UuO(-oH(LZpkA}KVh&vHiEm12UfD0kD zJEfA9CES-37Uf`|{gF>-j{!6NEBboy90Omw#{vqp1)>vcpU}A+^0C3?<(1?Esq|0B zoR71r%$16K-Hn=}_J4KdUEKsiHsA5tUQ=!lsplYGEIoD{#!1(-i*Cg{bee$z^mz2$ z+zMN0J;Y_8~5~ zdp&~P9cg%RWrFe(giy#X2sS;zB0K89IXfiXM#>Rz;=}kWz)*pkAmgLMi^|-g3 zP9gKBo4v}XcT&!JgVn6NtEGbS1>b-VGRW3KTz`XPLv5&;$oKp>sW%d@1Vg)e#Nv7g z)yp}NdeV#u-@si+9U(kFsmN#mIxZTKd3tLMofHy0Q)}VlfT_)P-j9z|&&EL!i~p6e zR^PtTwwV{WSmh`=S^HallxOE}?1W#i^+0UR=3N|{O4$35W#nI)1!+6f~OkZ%*yG-X_86L|LXzGGlZhL-MFCy#9=f|vDN?gCHu4h%zz3u z7<(=AuD0oP&4+=e70aq;afE_*`L#=nKC{H*ZSN~`rUe*Hb5GGRp#QXXc-m~ar8t2o zoKVA*M=L{raJ3*ojqri7Xah0}HJeo<q6JB&a=dO7!sc6{olnFiF5nR{tQ(AD|!%S3qJ}ozIb!fEW!9q^O_s zHD9t$Eh-QF}tTImNu()@5*~v#yATo`Y0sC>_@m2n~yQ0GI}X^m$Vq^n_ucj zFf&%A*rEu!|LkkoBANu1H%J*3fRjE*C+i=!!QU-krRnxSMC2&}HBd&|`ry~uQ7%r= zf!!+t#2v^q%YA2B+9O9iadoV~>gwN3Rv$QGxx3W3|1-6XBCVtTysNx%qzFD@HQ~Jl zc=GvGg_ly!05W)*t2@=w+h}DLJgYM6z(5ai+ua&r$%RgTzVHnN;Bsxc)`YNQd_7rX z;kwXf$M5^=SRgp~t%}EB8del<-XwHNZlQ6dlG}?&jAqeqy#8ZU)*FwcRzzd>d-V0F zp|)O^>Gny8su#Vs!=e-Zxgck#^PWwokSo^T1=}V|Tx)n{0cGF~hG4cNY>ng_;48hF zFCTJpn!m7QP214MN5pu54eEAADT7^8-O20r8J~e}aNk1uvS--R6&@YN3R?uGbgkOh zgJ}-i&pkYp2Fu5o%C~!)d%#N887EYvAZDx-&vIq?v|qp)-P@JO z@()8sG-_&YiP=Q~%KUp)o#*gh8&sFdRdS7f@&G>z(U?<&`SG(FItf)jQEBJGJa8fuI2=%;BDJd4stOw>YMTjnoJ4AB$61eb zfk-eeRq#k1965Q}RIJ_w4!r_;6Am7=`VCL6#YUKddLWS3PsX@NvsE)_AvvGU>6d#} zurf!4ahrYJ1=7Q3h(k_I9#Gm*R1_F-JoLZvW*X_RR>6142oo&Ej`x}I7QgnW>S-j@ z4QKZu^|b4g^j-Cvv{R9%q3>04kXUS!RX(R3Q%CW3UA8nx!?T*PR);?$*HTNMGKP3w zOglmqob`OF%THbTgBWQ^YpQ(~1j}-ZS6V?1@!G`Jh}vakq4ueQn5~*?WfHr}l{?yJf6lS*PKH z<|)Z#+_xlH*x3>KYr@gHFAw35&*Aye9DAp{AX*Uz_=|@bR;|2K@K5Q1Hn^uq=qmsd zP`4~iBHwxG4Q$0NBzZyw0+Zso*dbt4SFE{!?~9Tl`tRwh5s^! z=O)A2yfTskCGJb~dNAstv*n5WezK@ZTF=+sC5^pTb_T1!Z{oihTBXvC#-Oe&7o!-= zlOJ{}`ixLi1(Y0_VvOTl7XRLdlD)j-o8az+M|Jq%TYJUHJ$1UOyXs3GwNla{hm~Oa zCiHHk0TY1$>FQ)eGXz4BQxMwG&6gaa@>x)7a5k((kEauHR#-hR>=x+2?o*P-8{@Zg z&d=kP4qF_3;H~~OQUW!*C^%XtbxNmGb1%(rh&p}QpDpkF^@95R4oNe?nLQPB3(NX< zr`x^#GZb$i$Lo=-ppy|_>sYIAt5B8;jU`##n#E+a7&>=M9sWu)+BfDPJ?^k*@Jsne zJ=9^^T?53^aMOwAeS#3-HeD8KKH~w(K~}0qeT!h5Q_K0{htdq*z;lyf4Gl0EWpuY! z?z6MSLt`mQ9ceRR0&Qu8nAyj@a3fSI5wwa&#KJ=_?Q>hIe@NdOmSrNYt>-2N^w6_m za-tm`Rt}1YNgJDHaG|&L_b+8m_2dg@9ABt?v4b|1sE07|4e{9 zXssXB4lqrA_?Okq$>KFa*&hw$e!YDiw|%lHm)K&Od!gvo<2KCe8(Vc;P-njSgl!)1 zgT9sm405zmu2aQP=w?�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

4}B#Oq=EvbE?;DP@Fjnrs$6aEuo06ke%t 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 z%0A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˶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 z%0D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 z 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�p=FcI=^?x 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�FBeiy$Luw~ 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 oBCB-TX)?iBR7 zr^kTLx=lqVvp<}2n{BJ*x&iq{EjX z)m2Wb8KHLIUVFUn8jh4EGB?3!-i~aK2Q`KmwSl6cr&WR916e3#$0}u(FeuMT6{!SosUR52-&M;P;kKhoLQLOci)C% zjrD$-kRk(3SNAk99$dAgaLL?Z^S4eH3n|tW-~*Xd5zwm87mvm1gvgP|Z%Kk&Sft;e zawg>B=2o$lLJ_*5Z+M6K(~sf7d5cbVN1Y|uD!OAtj+@rt=w3wD{#L=)w|prp#=fdY zPNi`&PJ3F3L*=$f0PwQ(FnvamA$M5f>W7_!J5vsUj3ID;cq!dAA%1b4C83pj?% z4PNFP#)nC%3PeDp7JiEYht3aD1CF$_C)VeJPWG)ZK;=+}#GhOAFKZ}uUo={CUj^=) zPe>{)W4*Fb2q;jyhmxppaJw>~;gxDAnkjJ4zoCwflK{GgLF(g~tJ@P1u_jh=vZU}J zfEH-W0mfVul%(4xTE~`m1s^0dutbG60mUns!h^^s>S$9qC6Vb=T#c4PvGh5e zz^kyvt(LPFopePp1z*2%{%}M{=K9u?9}JIh&&ESDYVLZ{B5yHTTY!|`KN9ReJ4F+D zvXllaVC#WU$96X%+NbcAAtog%u%#m1Eov%UJe>_ktrmG}(DX?_8-@I0DYYV4+72Qc z@A;|`>jpHE#dztyf1$iKK3^6UjB)#UNE$Tk`hSpm8jR;dl$Vp`GB%`WE>~=3?le2C zr=kx70b{QZ0ny9lj@O8~f`i`Lrv*~gr8N;=Z90C*l$tp3GLu?%ZS-O-JY$9eSB7sj zjC^R&?Vv^f1t@rGV7CjsAdab)oAX4Cbj_orHeusbuu?l9?4vOV>dCOTu!m;=V6rzj z2+84wuy3@OcKjX~A}A_GxPiQGI9f&@dI*RImtGnhq}55HusdL<$Z}$Y07Trz$hM2a zzPmjK&c%(rnfKsmh!R67IeB9a?8GEkd(<~pxa8x&A2mhV$2?23S3u>YCG59Cp4^6~ z$uya4@L>w+Dg#QPl}N-V8C07<7?%3TV$=%m=5+du)i&b;`b0J>8_6a|mQDF(plD27 zlZ5}h@C?ta7mO?msk3@)PJUpgl}S^s;+^1#y;cFWueV*xs%b}$QRMK7poVq{dTp*H zy5&T3u*SC6u44Uc5@y$KZ%fmw8(zMLN@1qL9Qbh~ z0V&n3QaDzEt5ZgpM?T+M0Q3E8DWPhMGC1L+@Cp%T_Zvir3Pw@#Py^|Sv-tsG_Tg?$ zt!uWUKSFCAxc_EBc`{NHJSCv1K^{j^j)f?fNTCM2<3%oDz($s9c7@25HZ{|Vj-Vpq zIkx>2@>66pCBT16|GxxrEbW9ieAK%l@`%V00Jj{L)-*;8I`rICX{tHJprFdLLP zt#6qIz`(8`Ap5oJFXK;3>k^X3%qS{>jg_$5HnnPK3rH|)35HnR<2oV0uSi5~Nhx?W z8hV8*UzEYDBRbq}+QG@cZ%P!r$1V#?mvb?~vGMB2#L!NRj z?d1WWQY6SVLClR!Ik+VHRO@wj?-ti3YGV|o4pKSv-557#W}{BSVRr9w-%5Chbuw!` zs!At%W8DRHB8ho0Y)4@rM;`2^V$AZ$g>jbE0%|ZmU-t;GC)(YPE(iEteOhvZ*oBhB z&#H0C6JRxxKzA{v1Jf+4Wg|`BZV}Uk zw{tDWE*i@5>n!?1XRZ2a$%O0=ccU$n&I- zTceRo3e64}yxbG8*rAN2p^or($q_B~6hUVvwQm%dMem_z#==~}$7OTUzv;(L&;m(s z&SiXe4PkjSpj3kdvc+iXu5B&>@x>{vaMQ>bcbrQx;`8w-)$r!$W1rNiQMXa~&`Ker zxY6_cbBtf#(y^<>i2CsuoT9#)0OLj30t#i!N3K3mR)-Y&uSk=e5HF~l4ccRKz$&Jk z<^0tT`3f-tuVz{M18GcPI|?n4z8fGeZJzIgiX#kA8ZYb$YvSP8ZIS|lOo#b~|C}~c zci-%8D&vj-#4@LJJiui!q2qjV<^N{ac?xo30!>KvMZ626uIQT+Z^ zLoDMx({1-K#u;6B6oWIPgUA&!eD)xiXT;})s)TwqwsyQ6wyfS1OZZ5HsW;qTM-BlA z5c(}VQ>5i%L^XLN-MpdldA8#|1j)bS89~s8)r}KNF&{ZZ3=J49cs0xeq7R#eoWHI6 zkz!JAyrrb1xQ_010TJUF#4#;;;{PICap@e(_Frq9{jZc73!LU}yert=gN2_~Nr8WI zt5LzGa?Ja92WOIMRg4Nl(iJtW=~4#mybqOk`lqJXldR%T=R7|*n+Z$H7S2R!Rulal z#FA+V9H$UO8Cr}xPsSg_*d}$}(31iCOgotX>Y$Ufwu`2b85BN-mB?MtkFFU1fML_r zh)!I(NzyVZwGvf^iF^E-UKO)gUCURcSwky|yLW3MT!jjSa)*U&!~Er0<2^Z+H%bu5 zXzYyGV56jm6HNL_R8%a?PoEVsILCNN{HBRA`#e-=g?nBk_g`N{Q)74DmBwkcW{o@V z60ne6Hgz&S5M|YWgpL`Six>T56Bbvnf@o@=lUU+ErJ;xzD6fI&%}1wm!y zp-^*@bV?8&K(97proicQ986)Z{8^kcAZx1L%@L@)zQb!dfUTRXA5QM>xp!I9Ek=JG z30p&&Lnr5}-D{tFIoNeGF{BnFMCWzWsdSEfewhs{W1SkTry4hO8i8DGbUvwl)x2)A z@2-TUHF$CXP5~44%=t-+2i%>Z@nIIrfqGjCf$wpQYI06*>iUczv&kKX)tB?pr$wQ? zuAzJHLsJOASUTGH3OvtYYLvCJI#xrOU2JaCVe0vC#$fd{mx>&sRr8Ef#6vF|P)=&0 z*mz*N5?g(__=qvuQ4| ztm{c=d5SY6aE+1o6Bt6!x|oR$q+-o^%wz`r!Ui7{VkWK=Hgh4$__;~;Sg5ODkzFM_ z7~kZX3NA(n(kVi0>BDj+Sg+xG*@RMNdHmJd!Kr}8h6kD0vqEEdQNmRrr^=44Uv#rW zo)mLMWs@$#uTqc&s^Q7vpc2l7pTRG2D+BfNFTenQsdH4XO6`_<4d!1Lnabiy_R<_f zkoxJ8gF13@Cv9cZs0r>Gut;LWP0}85d0^pV?Hmk(lLZU3+LIeLF=wYr%8A5rgYmV9yx>fC%o|sZmZBNf+Yx1KA))IL}h(dD3=Djo2kP0Qd&!KtvBp(;AU8UuNXQyJGk+&y#h@2 z#;!QW+9Xzj?i`@({UPN;%!n+?zp9wN9l8dt8XL}T%w{ZsV|Br0jeT=xE(W{ec2%q_ zw>I<#;))c}u1WVAASoH48{^bDvFhC^!_y>XIL$ocRU9T0yC{zaAAl6!l0DEv`{>=g zYQF;=HL&r#Dnvyx=v#7Fd@TBcII3`b+DtHKkpwR^GFvPnbkB#uE-8yoSVCLq0fW2Q zW0e-oyj2z=TO_vwpsP}e6S5%R_a7+J1`jDVKE>XS+O+CMm|(T;z;9Mf`V)Bd|IdOhLz*qRw2y2c^)E zS~vllKA2-oyxl&57W=mxS$xb;q+&iMm|8%8VPTm%WpdJL(kL9Me1tB5x(Ib^;%BA= zXF{RfG-In0v-*}RYo{$$DydbuO{a*-Zr{ippt_`(NaG^WVUTju08ihbq)kCC; zYPCu9m$0Ac|3KbYC?`j@adYq^@{RXqhGqs@zQoeGxo%O zmuI$mm13-aCOZ>v5y*foQr%WQC2~`yjB$@_A4i@S#-IOddNCRCIyzEjsbdTzwL)|h z3fIU!QNXx8EK}&;#w39d2sD?vi-tI>)M@RlNy;4b7fV%`t2?_B?t2-60^rWo9eW+o zw&AvRf$5DKxSoiZWhQ}CUZ~J88kBiJX*z^s85FlLi4$bLFMd!f=7bbNysx~{R~LIE zetBS5WTM7qg9mkO8BCYGwCLPEV2g5uuJf{}tzB@Z43$-FBV@#fhr7K2Q z-<7Ggjep3?SS2!UAKAdrg>8cc??(j#l&}w2?x3 z>xaStr>uXjJSntL`(y~6_TSr3REQlE8v&MN8xdW%S{Rw`Y_Y;1Z>Jqp^Qc9#=XRKT z-Z@6fHVrBGH9+?C8MK2}2g{5pj2)YrbZ|V_J|!Pv15|360$TZJe28wH__WaH-9}u; z;=>?mn~X1=AcrzZEktux_IsV?8NTiGZunUcI_tR5q;Rsg;`OCz8fPJvA=2X; zAOnTcRpWg(Uh)}dcKeSo@P~5-<8i(6)oCi?ld^%byIA6 zpT{N_DU+;*?^pkmnx7AL#y^xZE$jKLLnmw3VC6DJ9|d&zF8Z;sLdy@%GZNeP!u1Ne zRQr2dfb*5ixY_;zsJuj1aa5#QT6J^N2oDvWy!)2sM z{)tpuD@9yVPS;|@j8b!n(p4wPJiLqJ%s}MROdSBeJ-JZGQC;zB@;#|aX#rdcW{?C@-a#h(@;A89}iRnc0pm`k)Y2+kp6sI^lg z`gy}M+XF?;=`KZ2r|E!nV_g3JOu-{2nA0){ccv`e&J}Z+vl;{Ji`H8fN7-45qq3jz z?l*>O-H@X_0nV}s0F1tIjCi{{$lAa08hl)e`>Pv$-fH`3+s##!xWhuKZ7dV)m4<+1 zNJP*TSdwOp!K*FV2DSD(xt4cqHtcIBN!`Mv;p)CJ)J9c{$QrTac!JcUzeLlzXT~k#(8U8 zAd~wnvYDol(Va?dN^GAE7obCs%c`zdzORb~gl`K@h934O{)xP#tp#6gd@Ki`Z5c{? zWS&yPK)gmWMzJxt%n%N(P6j;QPl3I$+ zD)DXq45EQ|7lIHkoT>eM*wotCa^fvbb%em&eKhmOI{=tgd+&*ODc6&D1TU;t+<#1G zg6OZ1c(oH;G16tj0X6{@#GpvEb{LN7wAUcYDB8Y_GlBe$BOSmIM_PBa=-M1v?J3K{ zB+UCw$2+aOFoIY^FV8^p)7fv!;wBxJ>xXzC!}v2uag)lA`!`w0kgFoIAUWpvSz87= z_$2p!bi}a>V<)MR@esCr7WQ~S1*%&8}XY{8P{%=X69hvUPyw2tAzZ*%T12r1{k8eRb72L)I481XmFs0 zYM4~wUUXon(<+Wr2+Mi%?yibzZO7pNISSS9Z^-*e@Q1ch?7%Pp==ha657Uw9P8Wq+ zQqNPc@=JajzoQ~jrKSCmNb30<0}}kHm%~&&`4HPw5%yP(J4Ql+PRT*=5l01^rtF>%B9eVky1wD8`)OSp2h_j!hLe74q+P&o+c z7$^jD6jscZc630JxMo4C=dK*PX7`a_hwwh1(fJ#oFg_i1Kqv{S#dYZW8j3l zJY{8@gBLaXRsmqHz{G}VbKi2~$J@Muoq*Slb?beS2t0IiK$R7wB>b(k*`z2}__cMd zotW5DP=D%*;ngLzHDZ)7Ycyp7H{g(A`AW5FFm+HWfet(0=f(T173 zo7OuPCn9faJ{Dq7kThx&zA)56Iwya%Qs87*Eo$9%Fn`Lt;U`&r;P|X+AW1B_g1(1| z!*9TzFS|cJe?&Qh;iF5=NUi~V{98L#oN-`l00qp-5On(_o~^86>OsBeff5{jPWBOp zmN#r9DUZX;cvW$RD=o{-;Qr=iyMNs#v6g{8<#N4i)|osgXh>S9ZfvaC~Sa_Dkj!77Gu z_x2GDa|+pD!kK<66#Zd$`Ve+bDH@1EVMOq~eVmKpCf6&DRkD-}ykD@&ntFnC@58_P z07O{9CM`?m-6xd+v*{V5QTLzk{e&U>pJ7lYg5y3izc%0g0tai*eR(K@+T-8D&diyel0n4)SK@LR9j4CPpq#?2HlO5=)?b z+9y)30!T~piMfw%Y@B`-1@d<_>SKILyG7&1YMu_Bjk_6oj#$Sn^8)+s1+5PHwOjlF z9Teq)!}@-rMu#c$z>_K{ZBc{=(t^m&8ljUTIWvoVE?JEF(!$s1a)t1vZeTAyoAc_j zH-?HhM_Fm6?s{q=*}yd<@cG~k7`H9P=uTq%FDV;4I`hqM+=(Dgk5$t|efyRC&ms;+ z4U~D}JOk9Cn26)-F^juC4Kz+dGPNH(7X0B{{Y6D?{e%{Ald7?^m$M{bh-+bW`RaUr z6SkV5HwC!|#l0FWMC0pz?6*0F5)fo0vu3eG=->vjrsvf)+7+mw*LkceV$7P+wc8>U zU#k~+6K*tv*;?2mUwC2r>OcezvQx)Q)_VWy&rq?9FEkswaIS}%M3yT}2&a}=A`1XU zyJI$W<-xtJ;soDltWwBehUPC%>L?$uYEKpSeRfh$Z3Z&#y`Pqm{lP zm<8ATMKRYoLbK6A@{urA&$h|jhg*bD(RNb@yQM;ys^u^U*hqM7Poo4i2yro%PTCVM z5@A_gStxhFrO6`liQe_MX?i|FG*fl0kz3}!9YV-F5~iI)xq@sEn5ReY%}HylcW6M3 zr6bCpFXlVSFoYm#0kwOy&6H4v3~Tt7^J~Or{kghcumK~RJ>&~_tU&_`@&m*Ozn#a8 z(GciVVI#TCWo&LjV|83a0e2BxmyB*2pI2o%j-Ug|C@dknc<1vkEy@NUqStO+Hyh*^QqQs2mw6B5^o>Do?5rjkW$IQ+t+_Gl5Z=-%~%j;nUdKDwPIwo zqz7n|0|F2Mx`=oFq_j!l@QY28fP1D(!IA^E{^K-%%81*MKB2ck!k4rN$r6m z%$t^fNHMRZMm9V#KjnF(W$!I<;geS*Mgl^=4H+69dY{eAaZn2zOWZx=M%H%`=4wXt z$DsGwbH>-5Vp7_-qyw@W)s?4Z|Exwxw8oJs>qy!rw|6AdU?Fz)0sS@&Pr)c1Y_^in zh`aLYc?dIplRt`hp_=6zATgpwpATSGTa8KwajR&aW;{Ar&Za|O8C^{lI)}y)nAZ#n zzeTVX8a)@ci|7R+%vC`Au{W3vJPO1!l<4Y1D#uVNh@k(|Fd zr5zj8+Y9c!zVcNsitZ(dpN)?Uq%KTZ9*MtrX&>q%kG-^+mPtTCpSvBa3yv`Zpt*zN z6g5g|lT}U&MQ~k%di+2J_=gN;GdN*|tILH1#3!kI1jRMwr(98MPStO@(>yCV;*kEz zZ8@>%(HpB%$#>j%4m)isWATDI0LTWN63otHk&}%dTd+9fS6pkeC!uIPd0D7D&7L>2 zCgx5oU=Xo07qN)PAllNT1eN5p}mS zCSk73;!F=k9(ffHxtZOYuedhArt1REYpE8+!L2iS3g&LidQ<{B0xo_|I~Dhm4Ur9e zik|E66eA2yaBCQx`Pi;~HqWsKgnqHw1=sItGk`I=TKJ|#SimM+>Y#8PX>_sJed7dw ziryc$5thty-X>~ZTBirY{lQ^9eFZKXz~YMhhRo{pL{L)f3;~+&K@A9Fvv7M3>tP?% zDs0x@?ULTK_14`lC-}W}l7D`Yc_7&Eo~1QF9hr5Bi@ipQ@3mUZ@Y2tmXKT;Wek~)f zhU;%Mr0oplgAVL0-9OR=h)}PPZya-uRy4*Dit?l|@r0$JzS3?h+z-0}r5cRV z`b|LH;b)QXo2T>Klipapl^&D%fBzrz!Lw&8a5=lD7>dOnn%S!NJJN*I#Ky2A7x?fi zQ4@WAC>0)dFRw2+B-X!hb<%(2(&l)^q?e4DfZt&)$Ru7PnH}e|V^)+5)1itB@B4e} zu$W$d!yu`GO>HvwX=&2zSGs`N%mzFY1-bGAntC79b1+CQ!%u{nym6H*bfmwH0b8uU z+#ak@Pc!lE6dp^n-f!B8O#}q~VNgT45H0!akyTx@jojT%#!0Onz3(W?2i30U6Mb?G z4h(iCVy_y7&1Py%%l;&8dH(lYfVuUyCwIS9C`BRmXTt^d$T{QTt zdBWtqv2D2%?H#+NBswc%oKIi1Lf?M^X9)H`LvQN9M{P&e3^8j30Y^Dxc|(%xhAa0R==^r=VaL!=s@ViK|Rz=kvf9jEk1*fV$7vdt1g%E^v z$r{nLb1#QaJ|M&m@OF-2DWyFu6ZR!gj5xL(?D(V!(cKnuSR_55;2$scNn1Cq z1U(5c)L-`uv|pv~{uB%4MM8PZ?Q2qu&2H26AaG{)eEDX6fmn6wL!$B2&ai7X-qmNj zkY5P6&GhYQ3q%(DjgDJ?ym#UzficTMotxh~LMUB({Vl_V*}{kg>TdMpZ?S!K*YtWS z%4k>euy<7!Q`SU6Lx}8Fo(dM_&C|f^ED(lRvic$S!u8eh}*_- zqe>u8z5MfB?Tv;uuo#+C!Br(2e};Fpd)()f0E~jLdv3!p@i(B?8BiZq))j6?AW zkWJ+KJ9=59>+zw14sQA!ZP&PB3&|x*2(K}1W=^b{1yzPO{Z5n3m!){=EW=Zr%!rqCXsrhIWGg8#823p?r9@nE+RUn6Gw)~Ji8*j# z$6dK)V4c!W?a6~LDQ6{#rT8%g0!dpVJp~_`sapkf7oc@XfHFAt;{=@|w*WQ@KfSO* z-TJ!FF-0n|J*x$%O?H={R&WH=l9^UWj;RyGnUSSN@V*q6GNNl&uJoC<(O~oU zjOLDYS}&jY<1D!p(apD>6b|Oc^rZ~WFxl$R-ReqgZ_Pn5dPpV~n`T7EaIEC(`wUg~ zxpXxy*TM;}{?xhUTQeeBpC1c>6)-Di7U@JtSagnk4ccB2m}FPpFM?P>T~P@0dTN*h zcaNQ?S!r#SGmDEDaP;uv5CLs$?yU(6YEK4UXHIh*F%J|M<1mb&oi)xn`tmq4Qi`K8GVggj+KAloTbSS+nGLu?Z8+j77%Q>WQ z_$amLCgd${72X8xX&88>Ao^3Q_R=b;|G@=CIj0%s&qkDGyEd(V)q(q1ohx z)5Xe=%y~0#ay@3Y6?EtJ35GJ+J@4l};x`x#O>4}{lhoyy)F>^@BD_u)fEF`(V>5P` zpgjgdsmBt|oo(0P`zDyt9iHfivT*sPK&42|MP3Yganqew@8IFTit@i(g5&aS3J1pc z=Ocx@ftANrzJOk}9S1X9euLjniNWyWbrk=(=ApnLTFuh+;#Vo5AheBx>Rw?K7jfW~ zRcSRdgIXY$ISkNN)cgUf@7luo`z`6v}w~WjAA)j zakvn}{N!eE>)4jOmqj6{)>bbB-a_>pk^LqA+L$J#>#Y6n(V}EH^<%d7{!L+vPC?Hc8E?<@d3VGE*+Tk;AFo=9neJ0EZeZJm7-(Mb-V|v&$x23ZfS+f8O|N*2LFomEy3Q(a%l3IzTSWof`on|Q ztfy*;duI*gJ;_HUXy83ZwTLtCZs}=~Ua=Z+XFh*Z3c!s&Mc{J(m_*LLeSz+#9DDOs zsdEtf=~Xc#0?v~v;?C~olEf!56(hXZN8h68uWFuYzy55If^(csr*^DqggPKTM?_Uq zbsx^BdvNkF*3ftS@G?$L31W>5++rt{M!w5hG_#nv6yiG!2(DZUYtLRmj>2Eg&N)Z2 z?d2}6R0uD%)IpZor6IE-FgWK78DYg@7@6><=$vC*zFJMCt&8234I=#WjG3k@A&FHZ zdq$H!J8f$8^wpYvR|I5tu=1S@1V|(+h+CY2Z;<0}3$W?C>OR`8x6A6Z`AvU~!YESE zd9%Z;iQwVKDaW3u7`S!0(JUpIVymIloT{OB%9Es4baG{l(O=CA=xOkM6eLokJNYc> z>OuY<0V52|Jl~@#6?(rr730O0;252gH!&-t7_*nJD$ZzJrS|OEU6Nvt_#W&0v=7FM zT^{aFvWVNdc^GR6LApA^=+k?pq7S zbUH347Va=>t|bQ;AgG^DGCIWKhnX)t%0d5r5wP3X$C=`E@p&IG1W?=vW%P$Pff}A|~*l zVq1%v^MX5Mr?6U&O|h=f5*##6B$}L81d?St>}N0$sWaB?hp>6J`Luzn^dsgwcd&*# zq(}^C$~{f)&BKZ~Pls~xv?_EqRnU8vy797X)&uWA;3#p6t0WWdH`}S4Sg1ej?j6Mn z=T-0}c^$^{??D!Apj%S+KQ!d?>R-ES$kQaM7|@+6e#^V6j(4Wa76+zz&xa`XDFy2W z=`WCmgY~BcL3(~pkrJ0Vq{G;C)BD+|B0ip1w3R&YUN*`4@!}Tz>CKwv{bQ8OlDG2` zA9@*to=&>sR;yuHO#e#m^I?P}gw=6UPx;xP}GvwTlO@n+w;US-&` z$d+Cy1V4@7OvMcXH^yK1GpTUK7y9wN*Dlm8b_#n^$982QW7u?FqSmK`fV&G~4mP&$xm_x3M`~0f?gJX8;gn3W^%#@JC#bcy9wr)o})AwchB-drX*+`PDWpQl_IhA-WE%!o7^!9SJZE zjWJ`gpJ(*FOxKi&^`*V_6%~{{AfbNQ8(^aVJF9C*gvIzQVcc?pM97#u@UhOwMh(;g z0)g2T1RS`;4MK=KX~0MkaRHa|jfh^by!g=)^KzJXCvfd`K}>dFb$JnsKXP)G9z0oG z{22_BxF9=aGpU&>w|YF4CImHDW(HwhiFDb%ar1So zN4jaWN)5N$%$Tare4W#hC<>4u+qP}nwr$(CZQHhO+ox^Yw%v1gWA}CbqN1uYla^Jz zi~1co0a_h7sq+trkJcMMT^>^!t&PmX4ml#hsZ}RPOrHS)AKIWv|GLt%9nD69Bbkor zjky78P4Y%&58OgJLR2%@gfBi4i8uC)9($UL`JeYw2t@zt#dq-OQuBfFp@C;wG`4;O zpljN;1A^M+!(yP2^bNpN2V7Y0DY_C$AdoJ#kXj825TAfj%46BD+_~c6p_yXdD_3+l z{T{9}%JAOcS5oxroPMD4f!VB;2Qg7JiwYTdEyAFMJaR_zYk?sVF)-rXiWsVl-gtUJyp=@N zCEU+_!moV)e_YEmKEONL|MkJ&7b8oN-Sa)}?~Wp|(6c}Q0F2=OFT9Ht@Bianh~Rku zfvoqa4Qdl8Z^@6;ZX}Xbkbt-8#nJaX+69=JLlV(|Z}%Po&XhP+i2bkBjF%~^eD~Md z?sz?TlKsU+?7hHF)-FSIE-|Y!ALb$=ftxr-#2L@+#d5}A)tqoYZrGxptC0tIsKpm{ zaWmLUJXf~`LylD3}q{c9jDwZe~~ z$9iZ5u^P)(db}m`LeP62#JxIr%)Q72b>~~D5@AT*k$$23CKoe)iy2U);5K9au>RuX z6rG>vo==(qhzinHUleUV7;VIz>d-T4RaXos_%tBKo$>O7UHxi2n65UVZ4-#>jzNxD zr2asTdq|IyS8%$DfMYaX{zfFqZ=UPNNRzjl!9_D|J0x!c+=s-4;utzY_H17P#us?5 z*#P4YlZJKk*%T4+SrZtVZ7d5nqR{Fpwe2jyvzQ7i%}bT-w5TUsuE{M8L?0{A>x?6b zl;V1thcS-=S{GD0r;gZ%%>e6dn=_AY9(J6W`j)#4)o+>09GKx(cbBbu5S(g1>!jVq z45tApQFSV!1T6RPf=FYo5O{_mK>~i9N1Hxhlr!Cj4C>pvuz<`)9H>(8!N#uRm{C$r z2_`9jQaKAmji_Nc#AZ)QJ1SNG%W&`utvY+Pac?3E=e##WDa&IHYTCNTca(L3P z@jDXO=kZB1y4vI-jG4h8!l(5xQFYGty%c(eR*R#4i4X+Xb>vq!7@PwkM;jTwRs zEg8+uDE~I=-SiFFO2{f15sv1G2CMUSTl4O~MH#2ZK!dgpFT#iWq`V*2{w+ny)awm+ zrCc-g3r)y=bouQ(yaB=3l>{wW3zdPCCQmlK=ifM$N^QR<9JvtpE&=5A{%iquW75|N zyooDq$kzU&M(b^pSs{y9GB?tv7((-~2_&;P25<=b?Akft)uGq&AhiFlgJu8C&)Ydr zLfYvi#edUTczfcMPNZz{0|Av6#b!YDiHJDz2(B)Q9{U@@;UujW~O!fOAT^J zKyKLbq5eW}kaCfuzujA)#$bc)mGUcNj!^ujsEu@FE#%5=e0fAC%nJFT^iaKXXUao` zzoF){R>$z$qZn~Y)DSy&^r()?JJ%G7)De?yTRz70eIf3UOEkx(U0Hye4EHs(!I(jh zbHNkW>Y;e-ySUah2nO{goF2A!CxBg#QYjxRZ_ zql`LyIEdBwcY=R09)iNDv)OG!!>Q}{nnTc01W_!p*nuI8B$Mk)UpZZ7m?fxg)V_MS z3)=>M96ft~6(U;&$o-E$Y!E>xvSdd2J(}f6OWVt^Rb6V31DYH^#Pms{BgvU18wj}< zr6LY`>N9cTKYxZDCdt4txIGI0K9ZynJ$(by*y(Ob4crN@*c8#3jY=iVPLAR^07VsS zJ`6o10};A!rP}7gOoT$ZCn=7H5(DM(Mo)&h8Bh=`hGFr)I*0}E@p0e69RC0I7j!A} zsz>psh@$Ca1%8uXyA7aUnpGBd&VOcJ&$7;u5s}?zynA8c9(ZI-^6Mu1z<3>=-pEYn zQzW}HL8^y;;#Wil()h^w;>7Ei6Y)oM4t0JG<~MK&`pP$m27N|1>7r_AHaYlqGavO^e>uw==ROmn92*tjUDnX$$`b0n=G4)2 z=b{TT`@*cWW3}90>2lTfu!cNTUGDU^S1$Lq1OA51ktu1?N~jRsjOX~+0mlzpDLH1e znRc^6ck}U)#V+Ax%CCBT8#`0N-Ax4#1@~6Qm(!|xX3(0(GTe;-8&PeH&KI(``9err z#U1y33I(6!d>tx_XG{)ketZs6f&v_JuBnX(*N7y!zJ85i6>fJzsR9kgP<|TvPv)fv zE+`{N3*dZ}lagNI=!RzI7_?KYTGW*pOh-wpbZ?rl3YUI90(j3$(t-iWBtFxnv~X;i ztX*^a>!s=G%GlFZmWftBR6<4(tz0z0Qpj$+c^{icfU=ro*b8oZu!22!q^(6c$dD6WgpS4e|?xCLB666U@%V@B|y^9J_e)gL%hK??wi8FS!mk1z+pF@q#SaS;t z`_4MirI8(x(GpW(-8WFfu2C{>Hq=mnaU|gdZY$f>$~iDM==#&)PtB0NkrB)?jS4}l zwjqs$gEW*39>{XGrDMXvbAy4KjkD?$}P;86}XFVCjd+DCne_b8`I( zS&4C2g#HSWe&Otob0)jlal{yjNeC&%+C8W*Bn|-*$v9-YSuX?l_LemA(58YX5unem z*Gvc$KE5=Hf|nGgQ=JwQ%zjb=fOz8C5Lrg#MDfLanJn}6)r{Gpg%vS)dOX`8O!qiek{Id=?$3$uqchnI%QCb(yfe5LFg};DDIi9^ zQ_v+~(>(D+P~vwC{Q2V)`vHL*B_v8uUn2Si%0|tn+;$&I<21+nIP0q|&T5YYekPs~ z0ixtnO|Rw{ML#OjZ;zYVr*Km}@B}{a7fo1{p3&6)GaKJcu)|yAM0L z8+5&;l1D0&rH z%)M7dy4m*W6Htt>77TADZ$0QqNZb>K@r{`J{VjcRPqeKh$K#P$n}WLK9>4Y*&bu3mKWKcoFjvD zZB8Zbk&u+2h}3;|qWNIKVAeoW6` zR=uWi>H1gt+DFw^(P^i7ek7?1p$Tty4<4lYi@oBrpl9M$zCfFNz&d!WV2kN`*Q|t3 z0oGOepTDLgZ9nXjYW9QA(g&ikSKdEtsf8UaaAtwOkgDY5<#3UB=JJ*0e`8{3J&X0oC58xB^ ziG~LG?zoKkC4?%B`2zb4O7i#X6+Jekc~wa@oM^s?mH5TQWbm z`P;8r{x!HH#)Ww+oUEeAb(@Ama7etTE2y#pa@X^Gx|Q1uVnCMy>9uM~%AyPWvQLrX zPVbB~Hu*g`GPeJc2%eK)Be_?B{RX<2hRT)L_#H?_3ft~3I9?Gd45IwNt^H|*hdp7O z{kY@m{>TtTiggx?3D&GPchLIFAjo*iT)@YfJpQNdu88?QKwI2;99=);rpUn_5#b<{ zhjafkAmprE1re~R=$-dxiQJWCk{zDpZ&Z+rc_OY1c+SBkRm}a_1!=`oR9jKTI~wn{ znceELGm)i}REYHLs0A+^1yyyz)tgFNc@3e!d-X{1g=eJ8%j453x5&^DmkEKnW^<%l z$fc;SM+`#j_jZQrJV20n6Oa1@Bfm^0(4p+&&6!=rxVbwIy6LuJL00A?)4Dp{KubD%pa2PQ3|6_`>5J zDUvur=Wukc{gkk`B6^0xeNE~XPouoC$>uk*5xfoRhGFUiR0Q!0U0@Ucu!v`)IJaFe zu(9Gj$nIs@q?ilxKp<41s4Bv1{|D^yI`OrO4;XPcT^L`Bs2CNRMXP&gL7a&>-ch@< z37#0>;EbeWBe|7!X;_fFwqH#bX?!ag&_{6D9{@?lLVF%=dH%eSI~`nA#o2QmM&Tfm zBc5*r$%W4nhom{6k#l}nh>bh~Rj0r@fsyxgU5BSk6pCxRVP}Ppv{HZ3b+6;Kr&UtQ zOlY_xXV!1hx2xWhRy4rkCZ-%XQW&BW{3(+Qo$+5g z%k?BnPc%InbihBxEXAw8+nZd~4o4kIbr^IQi3iN8RWMzed1{u`nxwm=kyhHGX!b01 zqn^V5{BFP6rN3i-V}eU}Y%PKoML2lL*0?2MiTTmltCYb3^#s^t>agbFh%t>%{WZQL zG5iz-UzK@RB^*mJXPGXtgaPzb zG#p54plVfBX0|C^h3swnd;0!&g|Gp(*@}WjYXO^W)#GSAO-JUFju-BK%s@daBPac2 zwSP{uNQDmDqKQzbJSkLuus|Z(cKTwZGa1thd|Q>T(^@VN_azgAar$N3S+IkD;KXe4 zWAQQK)wHV4$-PK$6Tr2;P~%pm+V9nOKsVE*{PgI3HwN;obp1HSQmE!iV{Fr>_2qd7)=LNmT!>sj1wWTP7?<&PlCH2?bh z?L-wbG)NxKqe?*AC_A7bkC+uVbY$=doV&4RgN=((lETLx$WrZJ#!4c{BS2T$Z1R*d zT$S!jIW|@OQ?9$a71G9s-*7n{S^5P82hydN-7WULq z5ce30j<9QNNw-|b5+D9vU>R*VM@k)(ubn22m`pWdzFxUZF4h5 zCMV%csQejByqI*8y#~7|(X(*J<;s}X7}pbTB^WAplMM+i4+U+b_WxpVtk@w}6Xzzq zl0YT}OlnT70ou)t4q=cDFw^^&jwC_OM_`mV6F5%UHvt7^O3bWAX6WQSnK~^;6g!kZ zG-*CLl>_?O2U^KEW*TW|>wdd%?7!hHrT~SI-gQb<`;X$@_ksm^SwQR_w6eZ=t?+Lh zxb{d#k{J^070H7X#~EB0#1JLUsei%Q9MG}2=PLtrem*y@J?2Col10Agq81PY?Sj8yZta_-pSt&VHs#2*~ zJRZg?yw`sCKz&+XYn!BQ00b$wQA4Zu9M$v1{4LlPmw9dG^ZrU=5C(8e8WpN^z>R+U zyiiVE$&w?JPq1Fx^ZkY2dZS=XEB=r{rol0jP|RlR)YXXQ3HThBN;q{4G? z-TekSf};w7KnFp?LDDpjPlJ&h_SRc!?Y?j)HV@ruqu`7O0T_$Z-{*3VyU^wI1;T18 zPtSx!uZK`F*Xc%*ZQ)3FmZV=@pIX;b{d$dq(;g{ne}oz`;~wm66#%dpRZ!n@m-iIG71=sFWC#>dC|bYo`!pT@ zVGTx!g=GJ0dX|!GZ|p-Ak13?F6I*JydUqxgF_W?LoHo6esu;Mt+?W~-eQNjW8ntq{ zPk3v^H&fcoKfhMW_>({uaLOoH}~ENs2$iz%6_2!iCPJpK#>M;;IZ*|TAtP^OJ<{fC>jK(ZE$;zE z)xOH5)_tP^dVpHdL$rL^v(@hTMyqZ-dM<{$JKd-!c56c}*|SPGOqWJi!lcY&B>MEq zz~&vV73pLZ^=!OZRY*uL(~kkoH0y!@7;yBT!D|lF^Z2^ztP*( z7?Uf#hz>Vgr1LH4*%zV^xU!2ss1yq4GayynHdFs=81^t3aYx8JzS)H4Ke@(<#=#6i zm)^Vh_UUpO^*bCAt{8cL^=B@ht4G{jSAl`C<|!=y@~zIUalUNI#==x}8ACW?EQ<7pQ8 z386Xk48ixUC|d8nxU|CbaaYdE9^-3-8kE(Z2c$f5rvtJ38?bLcy(+o#6mS%-$>55i9_Z9e6FBAOL`nbo`Y8j$IQ@XF38^C@M z+~vo21`M3xo>I0DHTb1*Oar6UDA)1e);I1i7yNOfeNfByz4e`EYPS#2?BS=2gbL{_ zigl~J1XG4HZZBUhLXG?tTw37?-$K#+hJVu81w&3kwOIZL7;|R}YFzAtyBF#*Wlls> zU6FI^y5$lJHI)w~uo>R2Qid2+=-@{zcsL3pi12X~@RQP!iliBSSl-V5*598-7kVf4 z$GFB2T&Q<<<~;^ICMM}QUC;0YCc%l79zKy zg0Cu=1TVObK3-;@(U}p;-0=byagKSt8=(*a1!$3{ZoCE;sZo>08q`du6T~O>f z=f!~zVd;nE04N4p=+jHD)Qy}vuLB6;Fnrv;P58@vpSL2_z-HF8mZ!$2oqd@~fd+hd z_9fn?!yg;;kEMo+FtVuvNJQ%w4SathIJ16aJcb0Z>4wzWW%hu?-Gx)>S7gUkewt@L zfLcA`Gt*v~4qP zTO?Aqk%0~hFT(C&-u=`5sM2^sXZnYIxa@>MNzuyWN?(1vGIVZD?RxZcAs5ZJd z)1&&7lyN5n)b!w-mqs1*;y+#DtabPm2l!FLceSAfKq;iPz|luzo^qlXTj4Laj2Olg zJb}E5XfKxUA;?0<1iW7)*9QvD@32}gH5%fyX!qa#UH0DkxB^8Xb?UPD zmz!OHdjE#ab4PS$s_9397w9H^B2L9GWU&^04Q7cPXhF?H{nn2m3f^*Cj&-DtiNOKw z)fW?vq*#8+pVX=>vhW7dsUVmosp&8-(5MtXZI5ei$&s^5V<5RUHv{)DE)j&>5zZ29 zn<4tA>Vi2*5{#`jCqw$@7ZeAu4q9bWYR&=>X7ww(B$`J_2=UMPZ|q9*u)wTGLKSRR zD%Z)!&y395+Sd@`Jj}B@j3?lOyVo_ao=KRFYs&$WrlQ9Sn_Y9lh!u3|N&sM*3Lw_f z8VP--p2^^<7@wyM1tBpFSI*Qm;4*CK!`(8*26RYE7^xf^K))t~21#Ao$bFBERmMgF z?Z$$|3r}D^Cg?ag65bMu)A(9pA3Ca4vv({|Au$px(R((C17xnRwKJwL`b_KLmoHB+ zQ5@2H>Cuvpmog%L3NQWPsG0x*3Q>%Qb?Y;Z#z(cY5_^2++MG;Y;4fDLw3|#U7~5C# z`{n&m>}sI>ax)nz{#sC7Q?#XCcIvI)EHCewm%me z{#$tbqNxZVA+W~?uFT`%-e@Z2gf-Nri7?=!CU;$;?vFai^UoWgMlTeFz0CX}s`I?# zi6XvZHOVLSk!o@=caMMrbLMe|L9=%!H=ZN$0xU{LT8SV%~c5jmiOEcXc*5 z9Y;Vq2!r`Yh$oQ{BqQ#9LM~3yM1JhfHl^Tsv<`p~tb)jF(NL8Yz??M#E9NSI{(x*QCz|l-7)?`ZBqp%7^}^scta~oc zonxj1gE5x9m&373okn2e@{jw81UL$c&EwzKbzWRzk?bR{T+Lt-hq5{juvEgDUW>Xe%o{AcH)m-QGDC(xkc?7eJ<7#*IxH#%=F zv*w4UCngu}r^?H$+<>_si9Z}V;lR+Sy)%W+;gx)s(OG4|NW?RE$NfNU@O7Gr*?jiR z@B%pFO;PM6fm4AM6M!34`cIumu7Zy!7V)#G`<>0hoFiH{OI`4bYcu`25n#+99D^$L3zI)9x1%Ge*x^PLq zIegysFdZrE+#P?Sa_QPW|0O>G^U;4h_2fnXF~11=Lyu@3Ep_8+n)oHxCd!9O_bh*@ zAODqt+i^{_2`EgB9tNsX#i&^7n$d7H+u2b|%V#>JiQQ4hzdK^(L!mB5ulpD5)@BQ4 zrpz+*kNs>mmOu^N^LBL!>QL8-EI;oHVl2$Nq5Hte%Gfh|a+QQ4ZE;|mG|7!F35M0v z)}46T^3lQ%1R1nfO%qx0P9WyDf^sx})~$IT5r0}Cnq)tOg+)GB9Z}}ZX1q(mojhON zmg0Io-;av^><=na!k}<>#JPJrBfq-%M`$jsMAVq^$H7_x_cd1u4O%I8Ka!0iv;Y^w zVI_Sf7r}wbeO##@?V=&|24+1e%qjkklqX#M3nL_R87sAl)6AS>G3;qp{Q40!mgZX& zI?%)GBoi9=*3;H$@j?n~`zHD0+me9MN`ksZgzYT0yMvEBDO6L7vlFZPVxR#rO}AHJ zZt5`j+{tle#=6G7pEGM%0EgcBbeZ~cz9VUSNWC#~ix2PRGg3n5`()+lAY#DApxQgA zia%d4YVLQ){(Ei2<$JO4em+wqTq+DFXPS-$!b2&*_LBNPKFdqC=OXgLcezxb00{&8 zSBL2T?*2|x0PkA=TPvMR`~Uka(fbsMwV9Anf!9WOXLauaJ{8`{NA}5ioAO>*ok5@8 zvcC8uM4N;EyCz%OjIfx&U&+jASj7%q(7Vc(grwZrb-91{H^-X~RI7XaDJrEef58ZE zO~q3ttZPH}9wlJW^B^kZ!rqnJ=8=G=W9<<_gCbzwVMNqz6C9G^7p;!}GkO8^>Ael( zY(;uODe9R1t|RWFs*AImxzeWEKw$xuVXaR zaU+YqB8Xb?y|sr1l7Pd0$psO2M4@!D{Recl#+@_~NV)5;O2Z!?dpZVz^=3tq)!5(1 zUNmX-%lG_`!`ENc4ligyc5qxtj9Dwiq%8<|Gn<@ErrfB})w`K2#ck7xSPl_S5Yj-j z#BOh5QhLi;FCmCePNDVt*kl08TB+ z(RFBieI5?hrI!9g1m35lZTN>{(71?W-;~pD3|U4!pcd%kpC#f9L8@MVhVl2?f) zJjX0@ZvE$Tp{5He*Tx?^#b3yjxt@&l1h)&9ZVPc+V?Vd567hzJ{XD2jNNh2tIA`_( ztRvm{rtg3r?|8H9xsHo=*K`9u;OH0V<)|Se{xaXdigl9q){M|JUFvv4&cyFaopYDP zPXfPlsu@pC-0Jl5;lcMd;|D>NL3VCmp*IBwj!|*g7oY9KI#%RcPg;uAd#=B!xQ47r z1Hi`i9wX!8s?((8CtN3rl8*NzD{2qYXLUGZ9$GsGM#zBn?FaUDOQ62Ln5qFQ)M!Nz zcQ}_^0oXELB(k$9>(p4nC9v4x0X2y>sXo$kQcR~J<4#l-eKL)`> zjoX;#Yz=VW7tA4Q95P^)D;oIm=TFKa18%M={hI|1CQTv#=~Ew;MQV8S!rrHL zq7M4?eRsKnI}24`JOm1RJ9;l-%s9%W^@k^-Ko!3kx7s zeWK!EcNZomgDQlxP*y6_S4S%Me!dQZ4e1u2HR@-fpI>-I9Qq^UDZAF4u@G*xQx%B% zOYHb{`qzirV;W35izOZ5=0yh4IWN4EF*Wd* z7!S7MJf%&|ib{7)&ekSX7J~m$!P@R0m84R#n-zpXV#q%NK*{0|^m;({u5**83J4$C z;vb#;w-G8SuCPic+oqh6Xr`#V{`vQPICOewa?$*4k;0EXIAQ-C&D;w4cfL&y^FTA_ zV!IOfV^X6TU!EDljD)xmTl?tAzWjO?St|@>g}Q47v0RTxh6`qD4))(R_^sG(R2s`y z1y%=&EKHQBkd9slJgU2}-xM9ONnw;2-bnr|K$p1hRXk9@&j1vw&-ZdC+$k~L#&vdi z^#3S60K)fT8`2|4rhuZHeFUEKtWe%2Rut2t4Z#*7V6cM0V?Fu&yZ7%Fl_&m*;$m?$ z=8UCz3)NF>jES;URLTO_?9A5^h&~-_jHp6b}NPE!J8O$-EH}`{Sa)?>eh80xbBE z%2Ssy^CXwFMEe&Gq=9aHpUsTp#cHQ#5Sg86QcA-4Z5Ij>Esg?=;a;mB0TMIRf^Qmq znzci3BFCdeAn|F9kmT5^XrcCouU$X;ldzgLMS(HeX+AGu!MUR)YDnAE&FVe$5LDv= z3R0nEtX-IipLEFQVEdT6EGmD!$}Tz$i;o9rX?#c4a1N6g#EY3m`-;MkF!8lz+Vr8=o(1TSajJz> z)qo*K5Zmmv29q2a*GcAN-G8)AHnVmu2PtvkPNIv$~DlYhXshrpT}Yn(olT0 zzBFel`r8h?&9^}Abw~*m+u0rlO*hhn(0IW0Iksu=2K+3(@TYCuT_pqo>`bFLRn(wC zfYKFnhJQX?XbNL2CA@z0R~|?KQBnVJa#gZr+HsK?rX6jIWOlmw24Age^vS0mNL6-X zb!mI;Pn|>b_0}49C*mLgqEdmTA3Mem+MEN2jBFybA6zPmiC7H-*?K;O3bCmv-d14i zPY#BNB|bn;PWV!eHr@2qJLLLah`F?USDYX_*sypNMU)6}bw<$Tsp4-8^wD%veYK^` zz#s4>-yvGbt!gyH8eCyVGB5~WQ=fQl$WCQHaTt>@$w%n}SlD!9@m`(zE&G?0_r{*U z=^DqSkHaE0Jof20l#so(*p{a$v?xaF2p+BK`-H!p0F}$z&@3)Pfr`U66&P)Kg;W26 zr)Z+%LbAvTIyMQ(s1MI zBH&xSOR(@8V8Dj}p4Uu%Bdq%^+LBhj6X}QQh&XWSVt@SYz;<{{Lkh4>6^W~!APf>&NP8Z(-rG0=Y-jW!SV(J7e7Jr@i z2&gB1)MSvl54+^TyRDc~S$6vi`TBb%n>oBxI#j=4HQw%Z=FvOZuVTVC1XBn85z?d* zeloqx`<&if-OsJBAFd;h)>#g$9Ecqj_&>U$FJG*AR@0&h+iD*0ns?si?A|`Hi$-iv zq8~7G+Wm#qJLfI8A&3n$JH=M$DJ#wOOcZqk4?x;j!b;g-2MrVFcaNB&2h_2urNRYk z#tgN_?@SpS?nqpUNN#6K_02&eG>Q1j-8bmjwY6UYHyzw>$7|~ED`8%(2J_=j2d=(~ z1fhc3%U9DtV0Q>(6w2EEdMMFSJV|$Crp8)Ewvi!KGeu1Z<}m`)D*U{7EZXm-t1D2U z5x#78hv7ejENQ<$ue%Cds;84w|M)$VCHPGr_xTiLo^>I>E@5Cl8P*?Qk8&s^`)F5% zn12pzg8VnU8tT%>GWiDC7BS1uZXB8gTmJ11PrmZsx9G4*%@jBiXw#5-`*KbvvQ*-H zIt>sdJjJ;JYxi_Nu7j+8zf4FnZ9+GxHVAhxJv|p?#1GXXNA1tgu2T%?%FL(DSvPrflff1VxXhHd~o{t(?<99yD?XCfpD zI4EgjTa()Q&JX`_K(L%4@Gkk4i1O+iQ#G7S)^1`a!N;QKTQ;I&C|@ zg_1nj{oG%M(RGE=Aq(v|a>1Y@O8`I-6;#L}fN%*W*SF(hTZ|S68a2n@*sTngQ7Fj@ zOz+_12GsW^vbEIDIMkPoH!}lIQ<#)vD)dq0;l4}PdmJ#&XG50F zX3xB_<5#F@?bo~+52*%jFIk3W)X)v~gp4+PGC2K}O%MLW9&j7^c?5`ne;P1loiE!P z9$*k(j#@z&W7n$GuS&OS-M=(+0U~&--`bUBvQ9R?f;_H|8oxrJYPE>HC&$qM7tMVa z){o%^7oYz7=f|=^zI?58fW`tldGNSG)Pzqp8uxWUNqgZ_((tT3f=IY2t3&P*C^E1D zL~!&~-B1>N7Q;i9T_eHyZ-sFbSX&=Co&<2}Sg`0U+l=; z03P>XHi*J8=PJKSgex&JjpV|!@ph;Lq=Go>zn-%ggH`E3hUFeq=qmg|fHJ3%i>cDi zDgZO5Q(lUh$?8l0kLc7K?wHzE=8%G3!cr7M_|F5G)aH))zSUb&8v5bSo41qa{ryUj zjQ=8D5cdlHoiu;k&v)8F_&`8i*nG;TZ>86xR^`<3A<`RA+fN1tborW2jsz4{w2Pcv z?h|4pJ!j@?h}zSdv1RH_3HFnN=!yd=4v#O^40*cc0&b?jfUFX+^Zf#@D~xBjdflJO@ z?vfxr(uI{rE1N5p_uqB{pAX^07`p=rq6!hs)~S#EQ)h&!aRW_ky8BjJhkE*=+&y`- zi8ou}c}X>cm>R-63n<2V*7ASukzjbX9<_(~O{hRz4eB3Z8eotsvz*xEXFv*7_e=ZI zuM4!z7{c9!06obO3YTizU0k=b4|J*=5o$68Sv7RO>7p$=yQafnoRUFURP_ooGEs_U zxF|H`Hjk6;+nT?8PG{LqUvgN-O0UM(G!=7h6YXM0?DU4LW4RS*$zD{lpRIKH!eh)1 zNWZ$0_+TU0sKrLtbH=nhmir1v*q=LaD48F9(Lenqaf}O<(JoLW1AkPtT}T?^W~oKV z$#0#aKr5pOh(s(U7Mv~AALw3FEXNTECx!Nm7QSuyl0Bd5{^2{M50UUH8J-2pCdP_j z3O!{fpjaVOXgNwYOIA^!HwB6_uouu$j!^`|jcY=T7cWs3i!f-ENT8gTtovQOr8f8h zLQp>az$0SqnHFQr&A={+)+?T*FnW2xhQ%SroQczjdLbY< zLW*j#?Y-j!su>d;bt zAezLHpfvY9M=p{w8m9c1!_0OZ8ONCGPK?p%&PcFKSd%F1WIeTjwb*fWAPbhNE>1Mf%%P72 zk-V<;eB_tJ)AeakvMZxqR5Y=a#VBmR0x?SIBihg??65Ct)*qgsQWRDBy|2*79$Czn zUQ0a%n^yrWqaNPdH|2ia_Q*G9k{P=0j!B$m+5Dq4^39XLgO3s|ryEwH--X zPhb$@Jl*vPT_&gh29!ykP4j9Un_)1R>(Dy`m8V=f=%i|zHlblH{JqPJXpY2#^x7~t z73u0;*#s=K)n6nnd0%81ee?Yo#NnYh)zz#qAZ^2n3rq*FND0Qq0?TsxIE&~jLdJbn zY2bN~Bn_J1Jmt}UUIg~&CcL?rA#D#L>MwWa=UvMi z;m@d6+95A3IILUn_YU|Z*a$cEz4JMX2kjMU4{G5nIXTD zL=$DrkSwr5)~)r&K!|}fR!D@GL=jg8-M?85@vTxPa@m&;B>-K+bXoE&v%Cj};7X?= zgv^=-@txr}V9Qwm461v3HIxc>x?H=Rjv=bg4)_~sCHNP8lLa)k%^eDpewB1k?S$|2 zF#`^$nHJDB*+qwVN}kw5g48uep*Jox!AAP&Y@g%#M>*Z=Ej>P)ePP|Fkn-7g59Z@+ zy`2F4S}Nd&8w=(Ejt%wWz9-?4JNXq0qW3Av^6yo63jg-Qd#B{O9pK5nY2z25Amf4f za{VA*RGG&T%`w16^dfyu$UvQ9G5RCV_TsV@GGd0j^vZ+$p+nJ(#&Gw%xx#Cf2;>EF zAs5lI8S4#aO!%YF5P|Hktn9A%u?o=;XxmBGt~7Zg9cVZdIc>uSBR4smtwh4T1a_d> zeU`AC4nQnrPrY1ONq2VU%=2d#u3qR`)S!cNa<&S6)qtY#A9tP&@X|?K_K*oSR9iq? zB&ts})>FnXJ=T>%TN7@VSlca=hnnC;ta3-tO4<(ft|~oy=uxaQswP$; zV0~DxhP!wj9480l{VUx*ND93weKnfDB~*`E@=lA<)M>B3*KbMExbD+_-s?Ru|BHKMAQanDu4Z;_Dr0e6n|_Kcmkr+2f4? zT_=v@UOlOlZWf$seOMl5>Ou=!;K=6c5#x(~UV^o&Ne;y{j*2vy6U4xA6TUxEvGnwd zIkg6x;fSju`;VSpiTOjM@=zt|q)(QfXS2)>*Q0pOIAd%18D(UU!T}ocfqH9wIa@j} zJ(_Bc)$IzOd5B2;2Ih3a6Qdvsw@uTt$C;;0lpe84_jP%TTS+*32%vY#9DAKLhXBT$#Fsh0G*8($d3~ZfXV*O6y3q0;Z!Af99R{GIdi(ll zOe`v-LqIsbnKf&Geg4IRBOHG@Y6q4!#39(ek_AVlWEG0&!Ogm|SmIJJ#LB^0M{Z2@ zCRK~Qj&Mw&o^O^SsHjxU*|3-R7&LjNBDJJia(*NZdWu#gh|aW#!FW`-jLiz;zw8g@ zxvmY1o;R?%{R!fE$RAfHRKF`+_7T=`N60{P;o|_A`WwEwHSNFa)!h}nyz?E?lhy?0 zHGYF!0rnkjd+hfd@B-5Q~ z%x!PR?}8P=dmgT+o_mMrI+v4~H}fu!>RYl$qmMT1|2$i#^>F(~yatuBVwfHbIZdF~ zu1L3(62e4tDk3w8%6u$a6p%m8mba3fjSwrZ zBQ^IK4>hV+@tAwuX#^$xW3b&fGWtLS?d&Jf$$z*Pt@ft`xt6GaX!>K8NFz9@t3KwyrOfnZpoTUiwC z-wG>juvF$Z+7XT$VnB6xmk2$=wevdb4-b!T#uINGD(Nj|m&%VSTzE$~*Kpx3mmyr= z*0e`Bd?Q93lX((b+V#b3LP$qreo~v0^$6kV{RQ%k1Ev_1iwD_l+(bQZqPTXYrROl3 zB)Ekz7dg%t6LKT}@mv45Ne6XO0h&vbw{wfsYM&%n!D9DOwEHtEz(z5IMCgyBbiR9- znR|(`yIR2LIK5f;F825ag9QusF}@Ixe&O{29;i~hOtGr9)fuB9yY{&8snVMAaHVf! z%UXVAXjQrNuO+%dCy;1peou%2YeM-wPnR#Tr%xKa+DMZ%BrQtQ0PU#27V8Qm7itQO z`LU~eS&ZkH$_vxBLT~(8XdpjPbe`3k6>ZXPJJlH=%E^R3lwNe*`au(Q+hYY33C|$@?vF*^AJ33BaqCQ3-79vi#*shVLpw;kYnUa%Q#DLN2ng zv#W6-w|52q22kNwm5ysgl>o|S%7Hz@CZxeI^6o9r36$)kCx3U)ymuC{+lE03x;>^U z|GEugLM|F;FVR>DaV1YN=4{U-d*V?Aue2Y-3A@}pmy6oP{m_n}&{n&7h%w z^RXcuC0(6%jG05A1!kt`6+z&mNi!?s7q7F8l!?vQJ@DEt6alH$=^bz|a9P zKRLw`z(0FwWM&*F!m#EniZbyUrje}zzwlIc@j>R1=bD&r*7GJYsuYzjZ9D@OY{Ua_9{Ol@fR*gu!tjPv-I;9DCY5gur1K^aYZAHfu z+ZE{3E(C1BUhy~Ih1qy03NtE<`iX^h7P)h z%|Om9@hDHU5`mIMVU&Ojv+p9+j*W6)Jq(*1Ts0 z_v3ccGMn+)kFsOA`;=TV6kEeWFIg)s(CPSUTrU?ZY#ma|VFI zqjRL*T3EGrG%ohs#VwLSpeWu@L#PCWlLx@>i^aYTH=RCbuY$sBh<-Fy_LEPuJ9uU5 zzQ#op_^*hzfIICm@Q5V){3y_=BgE)%P*64q#Yi76M2sjdMNe`-3)Yq7IP+2-IbmsL zZFpmo6d*uG}aLOHBzC(8dZ_0Eav1coPxDVgP{yC3v;Xn5m+HQs4eR` zLqO_AGa?vrP9?BQT2DIAYyi#bCle`;Qu-fB_em!Ag(_M5KA?n+SF43ne5V%N7d1xk zg9r`MTGS7D%?9G`vf=1ZBsTU!r2Lg)Ri}>H=Hnc(Rnn8a7x74_x&9>pP^Lg&M<~>U z)ZNp=kxz^>V8>Py4S=4<=S;v{^om_gKIBP46>`VdZ$1YDiNQb=qGBikWwKS~q5{av zd+#&A;#Yx(VueJ;5xZX(t0qrMJoBbRx^abU)d@Mm39do2Ce)^BjPX8yD?V*}7~YAI z_2xV_nrWhwNbBYua6qiTH0D#&L!`PNkymK5BayF* zzLWs))eiZn-|U`qeANW*wSnzhx8kzZKzJ4JRxyuAwa~vwH&75{%uM?-(5l2-OjMCG z@5uGIhF^YRa2N@6$6D&>5DO0d6Jt$M-BV5n^#0dR+7?0pge2uKHA7>^U5&lC+9fr@ z1OA5hsq>e>o(fK#PYN*{aNC}{HHQm0H9<_8RUOFiOA3%vHm$aP2b_q%Tu{H7U{-!E zr#wv9+Cwqy8VXdDHbroo!>F_R%Qe@8NNV4nPU=rQjo9JU0Ak@PUcnCDJ`^jl{5O+_ zzAk_*_l_w`^N4HHnBUH|?yCG;#QJIiZ;G(=E^?W3dmP6G98;GOkfh;+2bIgru8I`N zLV)&!)#h&Jxx_i;$->1{`wz^$ILHA!Cy%fXP~Hhk6mQC+`c(}F@!nQ<=ep?~y4*%< zRkoI`o}M@9T+kn}CscHSDcKOFqDSKKx-nNJNy{lXZPa!pR*7fE*wrvvW#gow8-n9> zPE2^UhR7v#`3Y|=6+lZbJ8yJlUD+4Y&{oC*ZJR^LBaJcBb+3o0- z*-_61@p0y+h@_#qB`V%$rWIMN=TUNsV(!a)DzPr|%Y>b8j~%?hw3%flk!-$8_~^d2 zM8*8hz(+GJ)Ckvnm5xYrWA?WsGuDYg`lHxsP=C`dE}P|&$fji1R$e89!~{=V-xJv~ zIH)c!(_RD!m*u*P@NwzFIN3oJ&AoZ zrMrHn1RS-nB3>B;lfNz@kYdvjk%PCU(UnlE*r8djL>O^hGl9txfaP{LN!a*^N%mN> zM+gggPItfhijV(55hhVXb#@EvCb<5nt)&gWemDa|j|rVD3QbKv&2Q4j*6IYeJnfTN zY!ms3$pp5Q`46T`J6QAq2X74Gf`a2eH7gg_3j&i+drc=j;(@y)<`&t5dFv0C5GpsM^*3*?h5a5s~Xr3b(N+S{kWNKs<3zgK+Jh=PD4|clFf?wkX4)&H(mOF!ppsK-*%;uqy$<>kY ze=LFsq4$}7o|U3dD_l{Eao<$yXDGgBp|_g9Hsy&jc!yzA&FAUGI^rcET@9g`r#gy# zitM}RAH|=MB2mBK>Hm#5n5C*m#xaQy zC1CG_Qy3n$_< z{gL5m{$n(d4S#e+cB-LIrCM4okAygG>{V9{noGKkasPZia4euj*xWwv*w`wKmq6TU zC{Z=H@{u?aw4-;HcDP%A$$?YWa`rk>`uN!#*hXNSE9$mjF6POn8XN3R@6HgYidJe? zK{3vGQJ1aRZnA+2z$t^g3z1v9xI!mBHlkS)QTwc&oX$gYrYl`-K2XCt0Wqog{4lpZ z3c%m?UoYbOZ~bQMdW>!EEg1TJqTW|Ei_Hk|WiW`wJU>{cK{v2&4?w%&8~Q zYe+sI{48yw>!3Gbn1o!T$sH%_3Dh%^yW7M>JexJ631nyYayAkgBO%>K_z5r<8rCh} z0Dfng4Du?^tNha2`L&9G*cQ-Oc(KU4+t@=HHqG$$v98E0f^u=+Z>(2RU^^#b*~I;Nd%9AjwbDFLh>_`1mXU)SZl6HC3!n-WGJ=&@fJ?$a0guh>&uixtP&|T-s@07_*aHP;!e%pd5fQHLE2N+Lw-_i`Hsli; zFRzaKxSLY!ONHs%?R57kuDlyp*$-my@jo+K9ME;hy9*Lx8ljsK5TrcTKNMuHH_9$@ z6635y-sxa%w9JBuZJEU#mjD0%|NsBTzgq&S=8H>$t!NdYuCGe!ss{j?IRN;AIRFBf zSWfN~IaxxTZrpp|ojVrJ*48Om zzyweq2-%1o-*T@2@l5jDUYI^tC7@)MDaz3?V92@n-sBXpKH~*>eodN?hzE>wTaE2b z4Z0%d4~Xk$4lB0ug<0I)@K{L#CZG@-$&7t%tGR}H{WFbZbF6nc zZWl*`)$QSvB*I^$0C@3JNKv)F0_J^pa26AohZbedj&9%;!3^Iskb?)trOifd2=i&| zv??v!#%7YgXYb%qA(-ZRmoog@H3UfS4Jn9k^Wj;+e4QJq4`%#-eRexZbtx`&VH4+( zH`duhD;Vt1I&KNJC~!`+$6CM#Jd!~yCk5Rf$!JwEXvHinW|9;~u=vYz9*)F!expSu z;a~S4q0&6u0MeId@@b%HvlOoyd!)&!zN-oQcV<*HtEU!JBcdsT4K`Z&IzlB+{T`3% zwIH~8$oD18GeRSpaenz53^9FpN;iMUa}k%5%M!OJ=-^$(pgw`s?ZPKf#^q`qh_UfCwY>R3xCc+6V0 zUY&U3HnozdL=vutxZ`Utj@ka)BX=a4oBmSzyleh9mgpv}(eA_=E! zZ4&ISF}gT7v@3rn{zNt=mCc)DUpZ_|#541c%28-sDzgo5URv3hl zqZomEb4x=BLwT?&rW^IVo$y9|Y!_l5eGS>=WT$tNlB8$z!r|7$g`B~0^QLEEHCQhQ z>d=v@A;U|foO~|a+Qm?nj+EmAiyVqW-!;1!ylw;p$&xG?IQ=X+7)qKAOvmCzdmqjmQr}f#g7%Q@a_I zW4g*Ctx-e%DI4G5}DHoMF`#03r~kHo-^#eo>@TX;@1u zPZ}3(RXA-ySHqPG?f_^@j4DdPINMLs+;rreSZaCrVTX@nopbo1IWx4{t%YTy5tD|1#ybC`Q_oirxM7v9IcjqgoKeS~kv+WM=Tj z`6zC(FO?&U%I~n>IeE!|1d#GkI7OyN-BSX`O^6Fdu(_DRn7LP*7(P^NK}5Vu1mKY6 zvJbQR%07l)dyrquJ|%1)ik?D}PFX5P974KjCU;U7j$KVQEPT#dFJAXJ@nrtKE5cJv zo|UXx3Si)|tb|m7!DKdrA8WRpA0lL^wVZE2?1Iz81z`H2CE|e{bM%xLkejPcTPqxM4>gDBQ93vGG785F(32!zwNc!i{8~lEA61)@}FGx@uhlNA}-KaU{Q8E8uEx z4N>PnhtV7IGME+cDY3fQp{CNy8uP-+;Hvv|5@{E7C9`?__CNuX54X_1^0j3O4JE z<;cK?q5*|_eVASE;((xMXcd*JwWe2dr?zYuOl_D+D;LUv3k-WL17i^a!UJgs5zw%T z3TNpyR91+>017|}#8;?p!P#{P(Cg{>$3j_P;Dy_w;?F4NK39nbu%9dj>(Y!^w?MOk z39!;Qgjv&SwFhO{o@pKo(A2cv4Rl%0g0MmRin6F7n*Yo9HA%nRtEE-u zVx1XYfd&HeTOcWuiWM%qv@|Uy!6E|Q!5cv`z=pIXDh_~I(!v#m<4xrL8As4lXx-!x zeF`HsRXO$_(XOIXEf31t@6v7Q4SKd8Q_(rVZXb?rg@_2B5d7IJD`8Q^pQgcdc;xR@iMd|Mp#}%C{0? z;d`d8{c$$`l1I(s9DgE5i2V(h^W%5mkd#q+K}JI{8X#9a@$x%Y6c7r`z9RxNvlSuH97yn68AF8q=(wLT+${GC0@s)GnGu5?Bl35wkA>bu9^ ze5sUijx4w$5v!HejVQTq;Ko4wT+@u3Qw1Ct!e1eZaA*m8qBUK(P|-HB{|ddCf5MJ` z#i>wBcL!xrfM;g4dhmPKk@wm)N{IYiw?7?#`C;eawb5+?SOhj4*fOJ+l*w-Ba zA*=Y{Fe><$c#HW}i-zKE#$Aof5%PI89t3{G%Kv%qs z|9~+CYRXqT*@KeQ^w_Aai8)mAbeRIexxA%G!XV$@!;MC41ynjBx01OE#Sj|-hlG8% zk$Sr$bof;vVIj*JV7(=Y%MOXl8^zR7 zYC-aIeePNHdVstZ)&Ia!0SM$8NL+@~>5CYWvb+9aSdKfkh|vTcDU#2EwaYzwuyj1p zm@$!UgV1D~-xXu9?x1a3rD$kwd)0TQ4)UoRt6?;;q=a{u?YK{=FiS>XZ!7o^{$@LXB!h*;bKq z0S>hfC+R)@*H{~VC}<>po~mxoIgU;&t4uP}5X^%~49&%Zhw%ohmx}20cc!P!qOBKeYF7WH(S|-9qB|m4JoCYH z#yru1vD#rceXLVfdPKeTA7w;X^)W+FXMb?DZ6#4VXDqn4n?c`?%poFq&5~~L_nOu< z)1||Bq+D-6zBmvkf7(z1z&EL5>;XL(+`NB#_H=8f|Gypi0>yvI;He*AVPZ}j zQbz~>32)b|HTEbgIacX@{$tyca#f z4f5f{)IH_Pi3ldD0euiPJmom0xUZi{m{|$P^1+wB`1LDZ=4mJrs_*)}b4Oy>yrsZ5 zs}Fc)T;3$A#UIpOjLr7#^)+H#ehl_Zg5=jUiq+17HwHjwc%ll7{>Js| z>yiQjkAKkeJ!9dGJ@<~tx-WMApH``?=VDMKCtXbh;0Fy>eQkig_x~?cq!Vz06RuVY ziTD6v7f9dW9Kp(!{4p|Am=jmZSByKLGAw(4$*a9N8#Dq&msrX_y*4k=$i%TC&`HYq zr>6YKm^>{AI&JO|(Y#HaMtbm@`-jCnM^1k7)I>?AH5T$zt&vdFDx|}MMKKu9#P76_ zAeci6LVv?h0!L?)m&UG6hnsS7B73T!QmjgR3aRG`oBjARg1fqC<{GbYe@vW^sxvHY zj~ha#bdH_v@`mV!cFJeG;0a%#qN+2vm|QPn>!;!MD}))DoFKX!Ysx~ma1xraRn1jA zd*Q-{X?j($&@G?}nhs3SZe{_GSL>|Td-@he{Jj`GZ#s6kun;BDpwp}_Y>R7(4{l_% zXjy-}Yd@L%5JvV(@6fic9`sS&R9ruv)#tOM!cvX_l zB4#I^>G8so{FM}usDD)$bZdi3tU1J_JWf@z=Y4i%{Qz4=ZsO*GTX4K@b~S{R+NW-& zvnmv~0@wcP#xsxgTX_EoINRo~ufMkremLl2s>>~A-N=v*!e|``DJq|QdX0_BOsY8! z=J0MpYmAZ?Nks*U2P31ca~6f z3^m5zPdMJR?(;~udV3~YGVUV3PXE?$?$x4)V!px%0(b^{#^oe~Td8gm@6=q637G}# z2Vyb03QZES2j{A0mV7sXtuKzQA?I5AL_qK7Erkh&l=D`2%f4C-Z`ErGPk3A6(@B!~ zjV)ZkvkvFNs$o)T}JwpV}A;t%X-a##$6*OZIT@6ora=vKLGhOh4e5exrq`W zMIE)&ostyB*^c4N9>vf=@g(={%NG};L&)zFF)2m9@QxVUi?lXQ8WK_6O&}=+X8a?t z;=^@CxWsMSHuq5(k`qC%`${}d1qxlJo2SsD)LW?amybOT4Oo(3=3(f7k7DK#vuyke16OglTVUO!N`I5kGWgx{LH);MbIRsc*|CmNuyZ z!}q8Ai6H;jX}l2jum>R6^I|u&=SzTLD>)s9N_V(+sp6G(=Y13}Txqmo81+jHn4rG< z=w7s>1&kI&rQQ^|a_AM>J-w*E&n_$T(!$8q`B49KE^(~6kwxFDW+2iRFJws1?oBr@ z6n!FFjV(aDN5ViFkS`2MfCd~nYETC1$psH5lR#SuJJVBi zZWOdvvlB(WoQlSPR47a=syY@VmQxYbguy{B*|uQf_)Eh+>(>$Me4!CQAG0m2oHlq( zXz9~oYXF{X+2X+ZIdY&IF-f049fvUeT75x{@dz=`FtBAuAaYc1>grEbe?j1+>SH#l zgY`m_D{2w@@WkzX>#{_XN>$%kHk1)5cV4#0ie8T>KPFuvG0L4WH&8=1jB3zD3Hv9o z8A-^p!C=izAQ~4&SI-_Lne9>$6%tU8_$Wfgsmr6+T?rsWXwoS!E8qH&SGONS0#X0E zb=^unF+@#4^qJUXb-ASnL*HJ@Qz}a+g=GI_TpXhS`s~=95%+q{&b0fi_oo7gM;;K zDW%{erhO|Dy+EZ_X=(szH;7|%r$$vpoqwih(y&y8c{X(?q6Xce0GD^FvV{cvvkJrI z#0kF`q&pN|6FAF;!5X!_w-zDUd%06Q-6Hb=s#ky0!Qm4HVC$VOUC4o9Y}a#RmadfA zlR7!TFV4AetYFKr#!HtTDM#JT45?RXQ|i@3F4wj-aPsa}wWf_>c@$IDN-;#V66`P= z??w5k$>3Y?X4ADDRf#tt5VS(S)0c3T#m-$TzU1rW17ltg6PDsX&<>7S-&@48&qi>58v>cZU;U%I@Ket*U;5W_;>}DG8RGV8ZpsIw{G8~r(8~8#N#GssQXK>|} zs?s~gm~7c^(@>bpAvA{8|LWlDEPh+GE9V9@>#r&2-i{z^m@72qCXEm)N!G^IeU$$5 zrUNBA0){W3Z(fFvpk7W_4CG*&AC=wHYnLDr`=TMbEh>N7fmly$V!Ogklxahp`-bsPOfGrO-H;HJ#nih((m|To ztVixb&a%n-IZASiUs5afR|Ug`3xADd(Tb@3tf!D?dtwmX)IfmxeJRq*UDG|h<+}rK zeY7x=tP5B1L;b7Dot7)EDuxr433AF7hRJ#yv;Csg+Vo|{`sjj0F*?oP6dn< za~!woQrckbinZ}bBIgi5bdK}TznX%x*pc1j*+Q_po+6G7 zcxIgBBG*s1nntA#r`=7xqpY8t(juQF0&JixW@PAh+I>@)X2GX7RC1~hc-<2>KbM(y zk`F2;;6LE&L{TaunpV zHlhBV`F`vY0^s#WbpfnF=?X7u2!x84p4#ekCqme;3x_(?#bl)7=7SOmpsQJ)L?+s+ zqtAil>*`fzH{2`4O3wOj&dNcD{z#3Ry2PU0r z@oEh1h0GkC&2|N0x^EzBeo)~fMjX(Y034!e0=UxcY=7j$CVhDW*K z;_G3J(SOK6U>4=J=+K+j+A+>!YvWuHbDUnqWcc1O>H>V$8r&7lzWW0vKV#(eU5D=j zr?~|8=_oqD72d`LXD1Xt5iIIPotX#_n&-lI$;~cmH=e6SVq%_ad|#G9*10HEj1eGf z_dGd{%fMp86}&|P{&u~tW{D$%KQIJ06trXOC(3Hq8m4f^TyFGCype141<&)uJUdYD z4ltEk)SN27%K`GLW#$>uDS<`>vWmNhMp$&vqhIpglERGFVUVK;xdeQ}kdzM}>x#YQ zAJzL!jlKqne}l)ObRpu%XyOVw^{EG+p4&YH{e{rFkx*s%>W-iHHtwdsWMXyFH;sf} zAS5t>PnYYIiIOxGhubiazrNzKQ-YL!uX(C2Jf|y;Juvl0KO#b`-4TZy41+V zPN-s_`!!c1(b^hp0#-MF~`1-q-3cM8!3RQ{Cw0o51dJV!fBk~>+x$e$xLy?%Z=*j~ ztmi4-p+xDsXP(Ej_l$AH$>j=lMTtc+zb^=7oQatK_s=lC_jtu2H~62`P}@t-li?h$ zRJ*Ya)8DJ7TdS(U5qZvVmbb5mX*U^)g0j?l`Ney9?&J$}Qz_X5wYds{p-N+aMfct% zNTa-JBw9D-)Zf)7wm#2`c$*|_$R{9I09~ev@L@S5Okfj5-(b^r(A!lu-NY3^7tYyz z%B{@`DNhOHfdl7_1C_Owc6=?eDtf@SvG9!oHrf6HRVqhXpudhBW z))2j$5HB=~+^r0O{5|gQK*_i3b+6(J(`v=>#zG*F9To7p99rTqq=VcWSnx8`pD;?A z#lKBAH5<)Hl4K%S-W#(qj7vAM;T-Z|Jbv_w84vNnX9@)RMjrn6q#!njmOKqa()TGy zL$F@pmO}fuuKXcp^uc{))-p)6nLJK=S&pmES1Lh97wVY&yrwR4r0rw-O9YsZ9WTf9pISA&QfyGbeDan(eH<*Z6)k%oW7lT}>GAM*{KnH| ztqI50%-=YS90XyN&@z7OHc`^>aV(a^eIP>(7BTgAx=6)aOdrZ!hwhn)>MqqmINF?` zX3CaBo48rE2R`W=!!%D4w`ntE;s((F7PUNg<~5fQ|I-=H&hxug_BAIO@b?g8q6O$B zXVvF)`6X%U;N4vREV8bg39^SYu~7R&5bpyRQ z)p&<6i5MLXK&gazpAtXk|B>$P6hg`IP@y!{!x7vUdVgo+*gh=VZ-eMhI}}47riq+T zo6T>j)tbOvDLlfS!`z#wAhcSK{zEX4A7+wD8mh`M!&}DP`o2xde{10Na&DjzY?iW$ zX|qXEtmqK@w)5N+)~-#p_D+F-*dpG%@{nAawaCx_66k zM)urC7*d2u*H@J%4Jg>PSpRK!)oRlL7?jE2L0UCRCqcnR(_9~9q><1P&cvPA>N*2F zFwr}ni>*P5u{h1-dt}nLMwxjRaj5~UW0T#(9A%<>oDPa>h-9P%FnEII;LuIlo%AUi z^F?mcI6G`T^2!=&iu*fj(9V+XmYXHO0I9Fy6CGkh`*SYk)U|_?g!m(I>jdUYAHzt{ zMLS$eg{-25$eDzvYQBTN6NTpkW zA6}GP1=NDVW=eXbvIZp5FWCMr-U1kSywo63ca8X!!yPkW}W4cAIFlEtJ}EIS~(s{zk;25uUk+W7clOW}LA zOboom&issfzWc~Q*U&dP+TrxhX#D!VsM;d6|8C9zqw@$`PWo3{_lItaF-=^dv)IZ6suvuZ;$g-aETQ2%0fx zkOzc&V4+x!nrR6+tOZLQ5lzo2WF+p&xSSkW%_gt~U;c=T9n_5gUB5~yHRd49Yb&Rn z(h`GStOcIHc1451z`XtCy@UHu>IZfq;x9uC9diecGoWp&(~-M&OO+s1sbm&X3L_xy zjQXzzK7|VjHQ_(ZyZW6?y3bbS#-Gqy%*Vr15tipS>}*l5DNzEH09NRQ>!F<>UM7=H zgg}x&!7s>66oYD7uX5b6^dSV0z#p$(iLk7PZecBd6T+e=ACcrwo+K_vl2eIA3c-AP7H((E`FTyW1|9)kH&5a8DOPh#_cO8gE2HokvG z*GaHAj2ePe>|`Bmw`+{C!(YV@&?{9uI|q^^z6DxHjEQw4ym02?OW%VJpvh2jXTAt% zKke3{!!xh0GAiIDrD?D7qHQd&Vq2@`Z_8IIWcyw4pZsa{^jZE? zqmDJ{$Y3=)Qh&?7H#4Ki=qrAWg6i$;s1$n`o*-$uyy>}na1Po|s^LVkcFmpEFnBU{ zFbitSGhWLL5BKSEp%bEs+4FJg4P<2hr%6Pw(lce#AO=es?w+B~0#gPJ!in7F@=o{} zqSf;%&6u4O_0w`v_@Lp)K-;YZg3?P{=oS5!t^}#@kNFp4`$^As9PV8T!I$TY|2VVI z|J8UcCIZ4ocMBetB?0o}yD4)6F3FxPr*RXZ#xoFg&!EA!r&KPbau#yA8_o|cw}F`Z z0?j<}1d}(k_4R>2Qm6JHVN=1QYc51Y74^d3vR71U)+C8Wd>QaR;59r~;P5#hGi;!o zOIqD~rX)fIr3E7(6W)no1a!)Xt2m;|K>)aRNq~Y%1^zb>0W9s$V(`2auvK1bv*l}Z z<9(MzwH5v)i#d{MHDNuzS)d<$>7!V3HG9tS0=K3U7IetSyqgKeXwym2)yi;Iwy3>E z?{GcCM33~Jl>n!hT(a!H=6Z1VoYC6bK;?w^KH&?PxTPpk-&Xc~< zcI7-aUOjXxDIkI2dayy|g4vP%wrYOZ29o#@Pa!pHf~S=|M@C7x5(#d#>ldfe8Ac9Q zJq9Tdfh`pZ^9xF)cFOcPL(ys1+)k;9tnbS~tp=#3nY@T7Mev3Qtk`Huz-~%UxBL7A z2{9}qx^yN9nHmK!UG|>AgalMxuvnZl4TUun5RbTD^t4N-r1Vd#FcCTBN8jmtvpoSB zTc-nC8$@;Fk7X|W&wCAg;~yw}C1Hg?4L zD+b-fvVLsh4iyiNL*$S;_y9!`uF%>}j5YMm34$O`r@h4rutDyPYQPrQ7_3}WS8S2T zPL!lfp;TwZJz0mhO0&hMtCF5coP;UH1BlIXsNsZev{DX&Sh@3d5SyNsaC>VE$jsJw z(f}GzJID+dm9XJ%0d#BsCp%7J1{8p!Ux*o|Z~jer3@uPrDy})R zig0K3tUQhZ`}S~ija|N=o41IkAS>Fjbn^ZZYvn+@$22UzzLYUG zj=^dfE7r3=g_=m|_-7KsQjVT@gdh;DT=L**QAuBQME|1nbc0I-ABt?gt-xw^qBSI+%msa(R)%fztk0&kO`>n7P2 zZ=k}hxFMYIA|egUqFv(D_|LHR4*>6^G#d`gCN)5+giQ7tEZ_1#iz&EyFKP8e=DRCF5K&Q`-3oF4(%m)$@DavQZpm-VdX1#B`kKa&SqoBr9 zb)AiZl^$He)-`#wC|c@2-eDDw`eSH*0kwl)0aJounDbgQLu^jpRznPEW=~yLBENk- z8Wcd%AIFU1VuDat6GqVl>Hs5T-|!F8zF%5+s=-&hzDF+Amw#n^yZ5myA23994{X9({e~*n5X~O9O#pZYR}ZH@294mwXj!ev_#!Y)}m@^F#+gM#azYYk=~yZ1qH zss7ve(IeHKgN4+ZiI<1^=QX6v?PJZ#k%Ka@Tb=kTW2Xid$+*yipQlB%!;WYTt)~`T zm>>e~b`XY)IUL@~LWkjn2d^;@@`8Q)b}v@?*y!bJi!K_%CQRLqIC z05Nq?=2=pPgKKUUBW|NY1^A^ts`h{Vwro>ffZVNiYa-wo-#s z7jOdty^}BoKu;apxK61GnuuBuZV+CUvdN3dSRQd)VFK2diT83u74Sk4&^ zj3(uX$>f)O*V8SX|G_`*tju1+QSC%PMY=1L@e(|;1sA5hOo?&!KAId>z(d!02nTTf z-N4can*FLOBhJC)1zW5@p6OBd;&u6|DDo!$CMVnj?!P6%Yejkn=`%Yh>}(%Dc#}k* z4YHr!Dg01R)g_&S4b@_dq{P6|%6I+b+s!yh%7Psc=q=v7h$8wX>g%8>R{10OLg6y# zJGuGl$dW9|$TQFn3kF|k(5=Gqw0vavg(|~xFn88Ts<<@Oc`_z8t@~6Cx!pF&#%IXi zQ=UgSgT+pOe92&5RyhCAxiRr_pt^lOw&l!dz;{#vHwLG@sv z(}Od6!hc5H!aCJ#o&KFF@l`=>t}&tOyjd-Yt_1}{Yqh5b^PR*OVV$-0gf==-Sw=6h zUlwS$2u3miB)9(W(16rUA6H(KX?;=G+&EYAtLL)^v1kCOf-*4O2V5reJ2T&gpn>~_xt-lh5*)6>7wJ`y2o8U z=su-78N2HA}*>opR zPdm00V$J<9={%uWV{OdaaVc_Dj@n6{$M()GFR+h`Hsp%xthEaaS;I0!Y?L~1zy3hM zqf~B_Z`#na^z;=mc-J2|s!lsCunE9=hdkYq!8MsABj~nDX|j2NJuNfES@3j<164oM zUETI2y(Ppepa~=G7JGP1M-1-rHyflgr*iT1GH|)7%4HT&~OMnst|i=8L_d0>wA@IwlyK zoH~OWG7LCycz>zsCdN$D>KX~&QL6i&R=-tkI3Si#0{S`|< zo=QK2DD5>)UM5mUmLPJJu$_4tu2Vw!CIvpV<*AAU?$E||X**mV^V%=CRqkxy!Hd0* z@Di7;h>d9a@Dcz&8M3^p@JgirIN`H5X7n!7qbofDx;<9>yz31!@GSxXX*8prgsdNl z{0O&YHn@9btYN-R@JghC@6icT&k=3YS%=hH*%A6PG!w)ForCI>AE-J-#fln;Nw?{3 z=BXG#z4qQ`gkptKorX~L%}){Ti%lDY;?H5fA2 z_amBN{TM8BE&!3W12=ONXW%~<*@S>JBsg&+S>9l5%&k4t=P7fiIC?0|zGISx%BA^Y zA=z`(lRk$AzvCpL<8HT~UU$>sz1QobdQi%S->!->Aocim(B+-P}>qZj{FwWcj$8v|s$$@&t-I`n!N4 zEd&J==WiRDg(;9Bc-m^)Z);GTgueYV92p>diBCI6yib=ZU~{(+q|n;F$T5XUqNpAJ z7p|wN7mlnXdCv?!R-D2z5_^lyz+|GFF)o8oMW6yw(Bc1u_~A-{Y;}=#x}vRAZw)1< z3?7)F=q_+0G{Uo{(^3@+ozaN~q<-QU>-Df0_?`ZORo!Y$2Xa2`YJD4wW?mfq+;nbB zYsc(r_9WMn^|t?hk%92(!=0{dmn5?13q0!+75}mppfoT+Qx4avtF}FiI&s+dYZsKb zqyDYr)BFaMoiixsfp8BzCZ76Q`6sZ0mW?&NukIJBH{(;yP4m1bQI`g<+}3@4UfiF4 zY{hC~O+YpKoSKil3bJGPa^+vFUVLCxE9M;ZMi3cJGTTA>n zO`hisyslOkYV6O+FA=mVcjOHT{NO1iOHTO12E4b+sNLCFWnv_$Qf1be>4k`zbyrdh z*g};$M0=HPvwp0C+%asm7;jD!wP)J2E7x#9v@ic5Ffb1eWIL;lS`3}nIBy)M>Pq_xc#M?m9_9S0cwH^R?RG6GzRThY_6bw&-Div+?p7xU4o`_kH%5hrmi?2JV2E{_6r-A@gc zwupc5QImu#6IaERX>4n!d~D2MLmTywh=BuXciNqWsGKrzvO|oXN8q|hC&-icOFFnn z$5*8ipq1drd+^>lRKd6hUrB0r!{um=-;Z1Xin6K2T1c=PhjGMQZq$D|l#lhHN*gjD zUM~?RbpSE;oXvMhko=~?`;mKPcrusFC$%hSKV#vQ0>OR|JCIO{;ovO=w^|@lsu%|0 z%J5v*0EY8y5JUK4-v3bmXK+`7Sfk)ND9S~5P;tP5fBC1w{d3Ch5~@8PkkmX=4wjAE zquNv7T{&r_Z2?)b{KFdNNL@1KXwco6`u+Qw?+qKBf}&|`-R6Zd+}WBfv74O#?IIdZ zcVI~%Fjps(LlEz>eANM=?6#J@-Fl+FxzMhP`nVZn&nU%(h zRz{Dz#+jwt$5HoriV7_Si)B~w-K<1uc4iMb+MpPF9G#vEjY;snr1!W~v7OP#FODI2ix}m{?Bk6ggQ!oo?KF z*OUX#7ytnPT>t<80p>FR00000003ePya4)kBZtUg72fTvaK;9_SRHiwK!b-IU~glk z|3_>Io3Tx$NuN>#Y;(> zXl$Yq)5l-c=YZkJ!_RBvFK=Y?Z3BDYH*f*9;3$_Y64UUWMeY9Wxi<4{{=gXY3(POU zBLGy6=Aq!bzsUrw6xItY(iz^PF8UOTFB3`>o(9j=3#IU!4KBQq)RZazQp+kKh^iMq zd!87Loz4Gumk{OEX~03dJ%`NN?W;Aj%;~8s#q$IIZpVll$x}vNS7rA^`MDrrZ_+M} zW(k1siMn)pg?~_;ZjHeyM-duwL_!SH*M4?lJURErl~M5<_;xE@DCr!#rkZZCzGCzL zMPjiZ1GEi@PcJCiaaI1v;`AnkJ6a)m1a_3G*|4Dj7GH_Vw^<0c*oZZ!K%&dc;MZ3j zfPh9z%&;v>eJ=+uf$-#6r5UWld~wTq#op(MVl8q{s{*PxH)}hQWFl~EmnIZd|7S3> z_gTfe<$0!SfoaDnGLwrLXx~{wGw)m6308ZfaD$}_fuN0!KS*6K9In!CCnfAM7NZ>_ z#!9yOww^ufD%|%!VUViPOyb|U^-i@oeqGA=`JM(@+b8tn4xIX_E>ai5I>dZeYYe6x z48e_Nf)+Tk*uCQ?q;`9hQqC~T2pJd6yM;f67I*J_PUAm=9?HW&m`%M45FEV08?_EX zMx#T@HCWi*-6w!hMpPfNCZ!;(bgmJ{ybNZE7G3@@Wi&8r?4-`xTTy2Es*{`vi&rHJ z6;Yw2*`M|g>O$?NLCKgeE6#T!tfuRgw;nb^R5Q4}g2=T|?lO@0)i~B|O9Q{ca7!G+ z?AmDBA7r@<3zY*f3 zX^2ruw7?IdfFxPbU?>XYLFtQ1s@e@0#iWgC4^x(8*iFA%TK`3r<9k&hNLoMX@_q|Lptg`xpEWsv$JUQ-n`ZPc^}DOWjei-Y04Kbq@P0Z z4vUq*Zo#RHRLmd|5Z;9KiC@55smLk4CdXoXYHdr2EPN=lWR=+a@gA>_Qf!Dl4}W*2 z($;xYK@(&3*k%-^dWqs??AUL4LB|Vxi@^D@;H{Fr^7XEtRBgS8uT+eEK|^b~ieYd0 zYC2fFWn2a`*pmPOzJz(&rCtv_R9ohc$}L|VUZSN*<7*p1`QZe)A<;|wUg$hvD5*J` zOl3j0O^>dMZ9Bw4&2Dn>l3Ya=&wWXI8JZ+sM-%<*#H#MDT})e1Dx;7;Ri~>uU7lv+UR46^3caJl%d1^K?`6dPdD4~xEwt0KUS(K9`f}xV z>ueSDt~L^SbU<4-JWmg7KwF-gE2fD?0kg1uG2}SxRH8pYMDq_i<&Ago>~?{+Bvx1% zW>Ou}9D{8AdCX%UZVMdWK*_N9Uu@#QkE82|B-mE&It|$q<`USPqqe>*OOQ5n^#WR@oQso&k#}c>9>6#2mZs&DS@+$jdeg zF;=iy^H%uIC(hkz^xxXGXlEDRp*KKP7$e!TI(N&MqsKz_SX`IV)`Y{IU*b$lX8nkh zad%1eVS)S%dJ=e-ICE^}5~+dWkcbDMr=8Jcr-q50o{C8CMSoz;=)8(DA2w58uW6k{ zYE~PSpeNwcps+PEcN&s$bKE4^5iMF5IW=SCLir@kBkjNNoaA%j7wFhj-q@9XB@2FY zMmJi8>J9-~>`twj1KwZKP?pcQtx1my9QOBlLHAZBfkNF7o}csGp5Z0g|ahz;P5GJ1bIq z)Kkq&EKs><&}0Z-P*AQk;YYY*);~uXh?AVI_o(B+02bYd|9$=urEfOaQM-mEhfCY9lA}6(oagp(&pLog zsA;@>?bYX0H(0T?L1pJX7>HSoFHkEoQzadK-4ANvbdb?inwSj0$!=jnn%M6A$9o3g zEM($Ms1QM(jwAFz*$uOZp{p{Jv>+1wPp%g8pzJTYCULddfG*3$b{iHn+YzE+eb`4aolj48fb|OAUTM@i!yh|?QQifCX6{v)fW9X|o8!GG`SB8`E-g<d!={4l;O=q5V0P>|x1?{JOMcCb96dC>#p?cb zYX%yJu@`z6j)V-9j(VbO&1gS2*_6GZ6|Vra63g(M@S}`SzLA`I3~AErfRw5e@BM^) zF1=RHx|{!NV@24*jp_H6NP-he?7NUI_K#$UK~jl_SmJ7EyC7Ik<^xLVX z#s|h2oQ?_nK5=~-1aDWj@go7K*hkh~`8<)oebqR>v>YuFFPurwnu`0!BP131g}Yp0 zJ`YJRbY&3Q#rf!mo4u7rqTMQ!kH}JH>=C)_{B-Q|BJgork8>#1DXrh@&hR_-H>uLT zCYxB*^gyUp6i?vED${4z>)Jf4>7x}E7*lcv6M^Nxk$5YBSKbwIBl8V`R3X-mFksVw z)U5rN{gEb4RE2lM%&MAIg;R>qiB@&bsboZL(}ZCVU&li|x=+z=^qNyu-b}pZ1y3xX z+BO)bR!fw!GLska%_t2XGQ|OJZ|!?p(I#v(v8Hw>b?V}aUCWwcs}X9H_ehSd2^AKK zedcN%#)!O~Hn&3AMvU40rrfTP2#;_~QxwGeArWKv7I`VY!ZyOoa-t`79}0Noa^3Zp zsI#pb1|n#)A(t(xN`+dlLNqdd^eMDr&k9hc`%C<#`)KAtJy?mr zl4r_h&rhAvF(6@l%WNWygzo3ig<^KIt1AX8?lF8Z?V=ui8c*v;t)Q$7GH*iCHWq&1 zarkdUvzPd%Xbe##S~#pgt>1JW7WRL%3E~9Bg$ML{Cbi9ZPjy+bPP_P+{Q^=(eo9nc z>^f$j)8mZ_)-Vf}Wi&jf1rc+mE<}CR`7?Y4a~Trbt0Cn;+G7Qdw43g-gdtKl+LiA( zn)T0?Z;7*xi(@jLQ3}av}{;XA4X_RhRr0Wn}=o@T zYHPWyDp`}cOIVq45&-@1U~rZ65pjL!YlasmjiCdKFGRl6;Rr07hj?y_i2BCZ)zLSy zNFGp@lM~zy9hNvJ#cVqI=HeqgHC6cL=_)c%7UP_luk!;Bu!JD5SNp-o^85TdYU9PU zLkz4F!{`z=o?B73Vd-R5x3Jy2Dc$HPR}Pw^(sOzHN61Vy1b-`HD4#Ne{C{GALyqJC z>*JH$1~)-vZowApKn$h{19Ea!q!dEwgfz07vK>*)7rJsq0|=i>it*g=utl}&LciM= zn5;^jfj%_|)plT2{ol;JB4i$M()(-3EH}W_?IhD2i8jazdD&ZA|G_qHh)XF-V$|%S zVFK!YKO4{RP%!EF*7jecPLrR0Vi<1EL0R~e6}i{+gFqfjG1 z*HK+|SBdQh(+H@vpq=upF+Fr`Qo$gc#b*FV`lThQPVs~xS2W7Fa83F-k@3R!^8~wI z)){DYVzPpM_-P)9en_3N2msD6(p5hZ=v?FyJH{cQbyE(d44qgGl65;<@b_*&9qOG( z)`3}r4{+}tN*K=yp^n^2P>WKbR!}rgqSlI$DO8vAhv!Azd>CN2Tm{ykNN@JxaciT$ z%!b&KJxW}J^Aj3p(^Zi=ZcLbK?r=LX_PQk!bX);^3*R)3xGvMIdgG+Y zF1f2jo&z6;rbTljg!4eAfZLoDA$vZO6ISGf1>}n2YH?HilNa%DB*I)9r-+)9k;sTvAZ!#Cbhtf0*2BN;6 zZpTKp2`6U=opoX;LLS~1HUX==Qt)b#p@)uQ7~`N%?+~F&8Lf+^#<5o8YFtY4K0v3e zi$)_XU6U3NTTlYX+{w1m&U(dokq`_vt~TBr4qW)iQ*Em%Z4Q7>x!EZMRYo#AfXwkg z*CBCrX}$H_mo(o4VAMB*!y?k>kqLN#qe!pi5me)r*^rX}YT$q9aqyg!D>Enx4Q;Vy zQnatgphZx0I(>mT|^M5@y(^YYbgk2UT;t)GZkUSc6s^}#m0Fe)a%?=!Dx$vRzq=>dShS`eZ2^iU3 zLMqvZF9^A3ok116Dt0mOj$6V!S7SAC&}^;!YMPj9^Jrp}H;}VOZB>~3!|+XHjrx0X z{5I@UPVslyg~&p4UGW9k39=vgvI(~lD7a`=na56r&2GK1IQE#Xv7$pXFL9O)GANfH z=b;}kD_O9W@Q<~4`(gEWL-m@=p-7MwR5;UvLkjyD3paEI^r)N2;cSl9p(V6k5Q)LG zZ9OoY?8X(Nslb)Hr84n8EL2>OKr7#GB9i{IuC0d2>Mmn#t(STsIHhwrYft+0)iu?y z)(d8tsEE+51o2mhz7*km8njZ31ocy2wqfqw>WzKg zxdrLUn4@^pi817`!94Em+LUUDzr=J!Kg!rlpj%^LY?FHf?#=USF;YtHWvTJTXUjo7i$f|MaP~MjQWCy5ldstw0BXw zHG5@dRbVYPlAZODdu^KMz%s{K37Ev$Vt57cYMM&s>!Y4kC_X?G$c1^xyF#Q~^3D+H z#dPfgkmy?a2uQT|li#>>QDRM?4T@TvuSJ6JMSmul+n5V38=!WwafUrZwxttrZiBd^ z9~NtHgkrK0iyIpMgUCYXwl!-$8%JqwfEUHhY+Gj`{P;k)%S#TLLbgHFsIHFbB_zg4 z-|va*td(rUKl(7|k+fG5FG|OljopCp*VSlP^+AVBVai+AM{%MBZ}3iKHG!q<997hw zw4yjse!Iet9A1ZqdJ`??tvapv^d#C_-v^+W7|`;%CEX%LR|R=*?8MMjh`6)>d^|kA4P@>H?DSDj>!KLyM-!Q@pPjHdhE!cspz*tP z>;J&)s}BC8oy#WLKnn{EZ1c`gFQ%cEIxh~IcLK~`536o9pJJEYd_0({U__uG+Q3dT zHtI&tFAQpxv&DyMz_!us|5{EiL8&v*jD}PxWgtM`tgB1Ctw3a5yi~9Ksd|zc&S}M1 zC3Uk5!D;kBLyUeLE6H0o9%y+h`__O%(GPej>{Y*rPNzCUv;6efjc7I&p=4;7y@+S1 z=5z7io%hD*uvjJxBR51-cYR|6MTbJya zCMpIok6}2Td3|Yya22*hLZw{~2@=2pCY1iTkoh++efmg-l9oRJFECd{dQBvSfVlno zm>3GHjO8eYQgjO%dS{k!I`^VDel5+1ma?`;@iQ%0H-#JG2bxQU?ZU7Sbb&q=65ZilPbh;RhvI5%y1I3{hi9s#{KXB}E zf`JCKxm!}I;P^WTVeT|doX^Rg{RUfyS%u6;Uys;_Q zcZqD|0SdSaFm;vIT7u^40UR_A$hr~7P;yGu+LAa?P$HQ|%P;xZ#(dDC%m}?9S%|W6 z$o1?Go!vo7(pZhyvGB5MHivH685G!}Xf}c;6KcBH=*9)PZRnP2OtNi*9#G!Y2joI@ zW&0a*Mub^^TiG9ZXsP~0=Rs5C^2CUf$bh*gP^WHJE_ak9CWk&KmQRXwz-NQ*)}duZ zkBRSMg-5p{x2gvK-k1gW#+U^Hm{?Bk6ggQ!oo?KF*OUX#7ytnPT>t<80qRf_00000 z003eW{$TocGpL`20I`^X#T##!pY!nUj#+R($ls#RM;2($zmsBz6q2ZM6&R>b)K5$Q zg<1c^=LByjg$uAmCLyC9Fh!g0R`D&Mh~Zp+)zFlQ{`YV5y5#!wVs^)1>)?0tLg92} zT9GkredyNn8-~g)(~C@0o6;z}L<#k8F#1Ykty^bb4jM)9jG>3BUyp!dMF|N>TvfjD6baYJs<<{b?Z4p~MR`X{REsn9fCK z227wm%z5ktV)YK9D$Rp)LIed!NRO)kP59V#A8U<0Dlb(=G2YdliavqSBJAIqbp0$I z%1}k^+$mQkqb=z*QtxyA#|<-+L2`sUgJsL`F8{ zr|`w^S7c@GUf;DxtbCuNm!d1I3~3&sr*yZraGWjO=Q-lxj&xL?9*+1TYGW2G>BV5@ zy2@;)w6OvR1B~oa=Chr4gVaZu`mcSx17k!#fi-?kvk-ooEz#UIKF=jPY0FWND-QVS zHisyLzf0TBzSuOS+)A?#Jh-r?8AZ*duUi&$@b0R38U2{%m`?K!vDVe|^+2>~X4AF~ z2+zhx={|Gc?`@Z1q$c!L_C_qe;s=bFUvO_nzJpt_Y;Xe4|k*uue2 zuWurG+7|tO=P$v{q99!9ky(fXt4KYJL4kLD$;J+hv5*@>UhU0O?bseANk`<~RB z1-zqIprTdhz&18_Anh)X?M!J(IxWS-QC@XG)0+8YAoymX8wm8n;Z|XjTnYSIH!f<> zN+m+_>vbZC9#g56%6!bJ-9F|~%RZ#VrJ46^xl$Stu0_b%6ySk6CMkE6t@O>JGPf!G zSj@#BQb9_&$61Q65x8#6gltdUQkA)H_eeDX=!=I-f$b5dbZW?-F+c9(3QJO*``o!K z#}Z?=F-=~G*}6sK^YG=5M@FCGXmrlPqX(n9TCmXbB0nUTo zO*!2Jd_mrWJFVl8NQTf$LeUAP z+|rhoBO$K-s?0Vn6*f?IzQc1z(1TRV!?Yue)P0wKRsfCUTlQ%)2~I&YU6N_QsKOIC zwj{s)6Ay6;@2Y`){)7N{rBhzA+)eZaB2&V2qS6PXV_XFtq*2PMt52Uv?ayctt7rvpul|u}KP?5oDqu4dcA0ohYD) zXV3rBN-MxN1WZbrs1|@3-zE-ZQt$h!uRY>soP%bEQK&YGV;82nt>nyq#CF9}$`j#L z@eZQmQL>H11}+<7j)PbVumtV6*))y#7>ZU-JZvz$AA}GLD%p%gXFqkP%>0_GTI144 zzWvG(!ur#cEZe5U2GZmo9o1sV`_A`3#L>MSZAp#;0BAH6%WhH{8ZH(VoGm0E^{-@% z7g6#}CpKmWnVm95q81Ndqi;{r&~sE7p08=J3rD$1jt1Gx#rbKsN7XIO7!!7zU7Y4< zRbOiL(w!rQ+N`t4LbR(uYO>O;N6uLLB??KxRqI_b6)LRqJj)co1MxjHn6>ft>5TIA zTSc*CmUI64V%maX7 z)v)(zn_4d;rVmVHMwrir|5EEHi=!pR5y097okBqzF*sKHHlU7fj(=TA^KjiiR-T1p z5mu1cw3z@eUyR|(Nfr%2Fqzs`*wGy&U*|%yC#!D7Blm5t(5!L?gQhR~{LwSE3;ke9 z0&iLZNEv7HVJb<7A&|Y{BxQux%hBJJ0rns_>xlJkc z90ID*t}`0MM!yBLMer>N{S@s+B;-`KOmo_f>;`hpL~bL-MCF7Kyuw%oOr;0@t=&_% z_0uP;d}i`{&3e}5W$8H69+rn>ZTnB~xPTl(Y>UhwAr zq=r-0>1gbPN~JjT856c=WpkfLfs<8F3*z1s1vmgL-Ge2Hn&Ec^aTUAaT^Ri-X;7u2 zV-QoIFG#Bz7#MylLiw)0<~B#>f6pn6{Z@?0)1UH=Y)(;lXrZgJxxL@d-b&DRAEZX3 znh89T52el^_T|)&r0HLU(Sz{%nXDh47HOiMiwo z?BYl8ZH8Kg=)O6t5blQxuw?UW0{wroLHh}^0{BRtz9}wDptBok!-@qdqKUkJ!}6QI^Xp*aQ|i+sRI#{z+)gr>=7i-`sF<2vPR>cw2A7TxSn8Yy^v6L zh&VX-}TU6x90jifH-{J*}pjphl8e1rd5!q1X$%-)pIps8Z zxbFzbiDT9(euU}U{C!?Ts>ma%^GI0MB_?q-8|RzWOSO~AM<+&$hved7|6_=3vDv!7+#0f!{lSf4uPa=6tu$B=3cNW=JRMSB%WJ-;baK9a zu`DD!veqCJ-$@u>pgfyvgo5y{LtWvx%gIV?w?Lj9AR^xX;;JJU`cUW zONuOb#2~!&Y)Qh(>QrE>`1DMxWzVe*ZXq>tZWcZ<^`rSd0A2AM>A#h)j2xeYTNd>q ziH*_B$r-H+6B7cp(4Hc6L4&uUYdF0aO39&;XDm`TlyPcbPO>LvRLlxp5=O@q4%GlI zR@D^D%&o^`QhYF7agha=f~wb#Opg!z5IF7JXtt#{0G>0fh+3T`4ATr^mi7POUVMp~ z-DIf8IQ(Ty=(y*zBk?em+*xT#@aT~<*UQ^SZ_J13`$&+^poEka3SYep7($m7&{u$i zq+4GXcT5Lf$BpQdg2_$Lw!{j>hy;*8U*J>v0v$^CC`h^VV%d(6W4cLm;0KR>bI%g|}9GsXgv-6=&CS=b1Ks8qw~B zZKhVyR!V8}*f#fJPzP>fh}1JwQN4|Ida!MGYE`eRbZi1NBxQ1QBN2Ka)DrfmWF55J zG8o|tu-v#$kK~jde8$(n6c&pOA=qyz4(cvjSBKzZIezmwK+P(TSyBR39snaL66eH_^X*#KPk?{|& zYF1tC*g@x!#0}uZ`}5XLI^Go33V z@f~xd2!`=TWPAQ$d z=ERs4LqebSt6pE8+?jmRodIYT!Y;GkRO!&Zc59ske;!b<@IeEu^7?laA%lsQl>`T& z*b<;$87g*WX}roudj|F`pP%lREkQdc#AF>ip)sI$oXiI~6rGtQK&&r(`USi7M4>+F zp;fodr&;khy=OFwOCZ9qI@K0+S*E}_zslQ4nJPl~z?Rm4fH?vlS$H;lDh|D75*i4@ z>NU6+_QLM9&SzT=h){)Vh6WMmU3B#YJuL9oU>aG;x$;Y_*uXw^nB}eR;6oc8pk&wX z9lnWxIatL7#V=wn+nV+jk%U%6$qmwN(t8R)D4z<$x=#Ho*gx^R;TFua5LI0Fy^H+~wn7F$GL1(dMt2e0lTcoXR0c za4yrjzZaOx;0`Q|NNx~lK0aCz_jV>rC^{>QvzxIHOzvo?9R+WVg1H2e2$533gA`UW zRPP(0S`O@8qjc67gV{X z59-KxUaM1unre49VF4?yU&;G(?Gv+%N&wSTj;(^)b~pKvhEgGC;%~|0V1QzP37ta9 zMl7=5SW&b#;6{DTdT~nNI?LExaTU7Aln>8MxShW(Vh;PXvtpfo>pxcFk_znFR=&>L<^N_BO;W$9sJ#pG6TmkO1 zhiGP@8k9)seoky&Q%hEq$G7^OgHoPT1WApTXxR2{oG@65(d{Vzdr4Tf7kP%TWt$jvg5T-PJAz#tReA2=jD(Ip;_|HU8Vd6!Pz`wJsN{|%uW>x6|`z!ey;mjq$y*l*OXa; zv*`QQM^vJ(n);49zbSOS=`%@6je61g2TmSlcH}TOnNw`85wPKN1^N@up|C*HC9e{t z)8Jx&kuTBO|C`@UK?8X>f6;{!YR_s8F481J?X`XqqFq(Ra7E7yhqwfNlgdEw`~J1p&tVo!a4RH$Oa;Z`qyaJSg3dUuny zC9s-`xO`cs#pPtqWeo&q?+4X)i7z=nbUP0AMXnBB?aWH#INIv=S<>&tj}?9QNVL=x z87`&QYDYy`tKA2;Qi<~zly;yzLwGWJ8B@(9biAc2Qgc~IQ5D{sE02V4<-XpEMpz{| z5M-_AI$10UpUQ=L&zzB=H77~Yp>7;|De*!jLJhFFof~jDA#^LrzH#N8#Ck;VI#$TN zBS)qcZKPR;&PlC(sEG-?(wo`y38T8z@T()w19V#)lm*>If%vtgNv@=L_N42NZ{HN= zYws_*?3VWizXpTnG0nCw&!f`5AALRnbJ=sW82(6Z(YkM!38Z$*Ms%bz0&5j28ZiiN z{;b3y{GE&X<_`?+iAIH0W#B{{yjL_ug7`(M4#FXC9@4eoC$!$PK>Od!0B}vakvI>( zvT<;?MzMKAe_m%99bu#iWmNw4ruZDt!+e_+^!A>m-M1S3ZBepQBKI#z9bc-o*Jox9k{yhNGZMf|sURF{qM3RY`)Yk^RCi}~zyn0xB z<-fakYevh_nVMy)`W~LuILDA3eS*wD>SQsN4!ZTB&6tS$ev5MLe6U+A^hr?jcG4wxJxoi;!gtHLtVLhm$@nCydl)wy)MI~#310PN zD1%0b3_j_`OFGq%rDQpZx=dPPVv@U$-0{XY!BRKVf7yHx)f&bo41jd1mjB2d&zW}& zZg_f88>_I+*d_MUh8d2Jiw%^h>#5d*9@@+Z5Z60b04__MD*}s9mHtMxEB;QN^U8q% z0T7&iwTan-7S>>rZ;%U2zwZ)9s!JTE57L+SydUh9ttx$v65^r)&GQskh|yW)Od>wN zHc19&;}8KG{WH1-Pw_z?Sl+uDsJCm3E^)GGsjC#rA@e5Al}ffZ!BsF+(TmhG87K?Vz6_coXDfwPzm?H`Y(h-F4`VK+ z5{|0b{CJ7rJ*kViD6r^YJJr28S}q~*FjuQ;NCs8I4&sd*FR@XO@~6A-jkm*ofx@Xt zq>r@JEdAj!NHjEi5sY%jzKSJE&l0LMMn(nD8?T8m>#yar2FREReZV&E@51u@z!*>I z9=+brNm=tJAWDw-&WOP9H;n{1XuI$!E^>Bvd@pggA)k-sU@Tac$OM%PsLDEFDv}Wt zXY>{j$tVkXSt#su)g^K95lXfpsLvxa_jVV!coOoAulorOp|KA(!reNutEZ!Ebo?dB z`CG7+eCrOR@nVrSQ3vj|i&a;UBVaG`CABg@DpYzkeITp!G;u1|^fZKI-pAcERPO>c zS_N=qx^?7SER|PYklv){e>g-s7>VvW$bk508UY8s)SP%uFQy5@Pi11Su2fG^j8BtMwVQ?s0tTZ(TRgjdwkbMy%F)TmgsJq)sqOIgz3P6>skSO*WO$(Ek ze`8T|{Xjbm%d_7mSjJXU3@m}te%^PFnd(>?)m2_tx!wlErk40-Yr9yKJPEq)6qs9{ zjX&<*Bon0V@DFttH-wJ1u+bv$Z2n7cpKZILV}ehJ5+eY0s}#eGtQIY%53?7TQLCd| zB%>ATSt(!9xJ_hd&dzWB>Uo&IfdKsoQ=;-+%=R3wycOSPI)4mi< zN-c>4!bCZ!7s%Uu80jDh;(@K8{4TF+db=8>rirS}l$x~J!Es;V1j0Ff!JdXDq-+w4 zo}k%VFVaEM_^O3A%fTUJ{sfuyB79^RdL;=*m6zzsI5NC>ep4#x9dv3_-cUgfI@T}k zel?dwnoAzM2$qJW8Vq!ZXBwTNjXuFqN)}lRMiQ@4)Jr)G0$@TkJcoSg1}BFFCdq{F zg_dJm|5E+P7%ZG-nw8vvrr(>sUm-~c}Ng!U& z(M6N%zV=U#u!AlkD4Mk5a5-?@G_&%5%k>|qEg`j@7AV`$qSmcR2ESqM9#bo-k2)%A z!=Mua7W;&qfqk_RlAibDU585hKU+e`thsvn%o~l;We`7hH$Y0D1mu^P4%}>%e`)3n zWG&F6{cR6LGmy?wN~0ZFwcEvHS0QV(QCEOzyT!d_geLsG{MQo7Q8#?F_OCGf$dSn{5@xZcYr)Ps?nK^@ZqFY zyTS>099b!mdsVk6PA zq_JlQHK%yVnyKYNLM>o@oIJW_xwnBAZIc$CR+oebAk|M@Kx7CZu?Tp%8lzr|(Jhwx z_uwO^O(Q<>>&%zA8RH5{!7gYa?-kUcz)e0{9fN0^sZ~CcadzPL&XP8x{8(?SZX_@L z4hi=cev4e=$zEW4D%{d^P+v*b^_Oe8@@Z0LiN4kRX0fD;GqINCZ}vNRA^$>2b7!h) z{|4d`DL#_c{&L2Km5|Q!oETqPn>5=|YIJFOvh(C7sYUKio2Kw&vFy?Iyy8q*Q?9%q z$55de$30Xb_y!Nk$DL+QX>CqR58adMSgQYLyNG2IK%#yn$T7%6OC zI(qs@SO48B_z*3ZtZQ)Jsg0-qWz~~!^>UpE($2k*LP&j-J(;ibf8q$mKgGo-gep*m zt3YmAUy5KyLj|Vr-85URa&WEtl{MhM)H;6C7IyC_Or-*j}id43Y7OQr60Sb2pvI8!9?x#X@3?K%Q=V;mP^v7xIoIbmWB!Cwl_T z0k@~5Il6B-Ykl)xshh0#o$w0uxH=fBY1rAitU-4=)!tMsU3AfiL4Ly|OO8LA3i?S^ zMln7uC41@5H#?TDtLm!rF6PkvIBFBn#AVe`s3S>(_pE3*-KO|9e_oaL>IbE#`v7zP z*6x^nnej9{&jS>D3XEAcq@!-IKdlY?25s-%z~3`X0UMC3NNm9Dy62=W!V zMu)Q#fDo$;s~Ww%8yG1Yu^+t14uJGwr3ds+8p0K|?w=b+ipiq;xX zUr&Q2qkh8AS_KJ6-h!0!mcXXM&1%YnD*X@q7*-IX&J8rdd3nJ>EAGH0@rw=%_KJo~ zWBa`WD;CtS)aaQ81PvF3#+5OF>|>gd=THPFD#jjt4t98Wq%B5+X96ha=Mnj>@$m5$ zj2sU47lPFn(-B%M1jhQmYt}tG>FEn4M}sLL3)2K*rgbuRH+=0~W^^Ps@C{(u0o99H zUF@0K4uO$8^ur~b0v~U6(`OEDGB(N3{^q~dnHae#!i%g05`l9Wfws`70nO!U7Cye` zkhIfTxZ9d8nXTPYZWLE{z3=D580~HZGqcl-M)2&}*t3#Lk?n;x3{;ws1-|n~5gG6| zy?M%`=wgPgv!%DfQ(C8`-|&1FR!wE>)c4yJuUbNNyt>0+z@qq~)8Ha;d9~MAPWK+f zuoc4W9Ep_q24*mj21^yej=@aq7#n8CWp_3D;HcvYlX#wALhP?cliRbl6fL2r#$@Yv z?q#Xk_c(rF+yx9pj7kiQ3RfAtE?Paa24}hln22ut+jfYE=#uaql=GoNv|DUy4Qfur zCo)p&KX!NTW~MRxpnLs~pfHQ(?Z#+^D<(YR2+c+3)n_H53TDz&w1tyVdT}eUQBQnB z5$nU@4RL(^dBB4y85n?spcX_JUSB3#? z3%rbnS4~be(R~4H`^0A7Qg~+|gRrFk2<~Dvynz!(T4MY^9?L` z5Z04>Xh_DgIY{%{HDUc-Rn<+-wcMJ9%(gtM{7K782eJT5ws13dl(ZM|>ww)6eL*W6=N$r?6uVK|i0lDc8w+ zw+6L<3)v908gz8Hmr6FDietXJhYA@I6~aJNZ&nSL8HFz%bXkm<9C2qYu`ar( zS;p{*i*W-i?}U9N#~zyI3C{d9pE}v?a^{b>>{(NMNhQ-g1=Kvr8jk7FdpHK-9kh5D&2Bzm)K;!0I0R zA5>@*TSs-o=zeQ1w6pSuN6%-d|`xt(&__ zY>a>CR47!AKlmZ7+u{1&Z5HSPSbyLM|Hff|>L)%1-0On!cR0sP)}9w!y?mWYq$vrf zjawSGx$y5gK-wz!CsCVFepBcCG`W>j$=`}yi7maZ?wCFH(G+HeaSGw1d4CM%wq`wX znDsi%TG)0q$;hF5!gM{qNcvrIKLimTCWyvV@y|-l^tzXGU0_K~Q zWw&tNkp-e2D~v3E1Q7>L1O4uTlFr@xI#RP|AbpZmKzb(_s{4eJ=B;4b#(b=cnRe0a z;&xAI5Oh+%ydMP=OaNwqR`L?YH(yi0Wa~qw2Kz0)YA`DuP`84ZiO2iPB$pqHqJt;4gvFr6SP z8Bq&-n(7@&w2F#9r$tiey1QQ zHb$eeH8A0MsXX53fAV9jwVL8y@0oFygfZ|thE{^aB*U+owg&CO4Bp24Zpl6t8+_sQ z5qWerN#hCJI3(sj8e-1@55xdAXw_Ka9$_R!y75I~3{Y2xn zbfHpjiTzxN|BU8vlzThX-r6&xEiz6`P00x(ukQJU+*{w*jL1>2%92N;o>7N=EjH~< zk=iS+6Y9&dQi((>oZ|Ch*nm0$Kqauf@FO-5E($$OgJ(f}$X~f%wa+-Hs4-h1|2kvo{%cXS6NGxBA^NYNIPX zux5X(Y%or2UvHwD1Z@OQ;S}|`&YQcupq8}S*FUTu!lpdk6wi%RWzDHbSk~;FAv5n# zd`wFO7P`f`j~Y55&00t8fxpxLxTf59kcx^dm}RHHB236vI|4k;Yina8;L9b~=@ele z19{23`7NTZ%aQr>v+Gd8;4A((bJkH|AQv)!cZ(frj)2PWq)_Xc7)@!#HpL_$>Wtx+ zKoPda(=-nO{yg_jzteK!B5r;g8K^Q&Q(O1@cObjdfR)*5Lfq}+6eHGql7-HimN1rE zL@bhFKzDrTeF0{InKy{a9#Yd2Vii#ApOI%;C7>OM{Bqpyn>ZrJrVS zfhbm}ws>}xAsbs0KjuqZPa;(*S7u`XopukPBMp3fjs}vOb!A z7e50NoGR7lTh(g^!!P#uu!Si`1)X_8_LMy9yOxx13C* z$h%^ek?xV#1`ho427vA`cJUCX(92FtJ!EVczs{om1kKW@)KGw`4;pzHZCSdnyIY_gi1aEhPKCkrmL<_TMf!m<{I z`$pZRC$CKg`S}s`mTdiAj5Q|0*BdT9|W<)@qZ6wOh z8c-{LGY2D3=ag5kXN&*9QCbG!^4DFMZ4w(ir@8(cq0?6^)KkpqHt|3ngNm%|t!!4_ zGsPNAbP{#2J!27L;fz4a*mmr1N+L9o;4~p;*BGie1Eh&4c7hXU&BSDEa>S}KeN?rD?4>gL64!yia6+~U^(hG2>MCM*(UX9ZnwCFyfyobEP-g5%NHc`xfJy%c}4+$W< z%M{hS3EU!`XZ(5xzI|4+OJz9hrtuAsV+gS7ImUL&9s;8R?{T=GBx%MKM70JpEwmb$OWt5H_%+nZ*z&4tzUdyf$S&#A;cDBN__=PwH2T6BfNzy@DX>lmf3wd!^LsiR*nf>b&+{KV{MjL`oYYr1*S!>dfn#0cHQukPNd^l5u~yv3x$o(vc4vv`zQbi}+=1Et6uWeoMu^)c}Nak;ke?M(}s z;Cd#QKoyUdXZ<9=ErafNLkMT)f?WZ@m%(rG9`bLC!!j+o__&Vd(-Y64r zd3KI_CF8sGutp_jDAqf^Q%(a(ruwI9twb1kkH8OxKK&xV z`eLZYNxOiWfD3vx?|e^aiDwl%VXi1miks=7pjxqXEmwHhExVM>5(Cu|UJ$We0c8qA zY(U(I=EmQOGANA0O6V_ZXv?mbl>eX-WrypEpX8!@oGf5k9B+W%etAU0dtU_HLqd$N zcbYLd7#N-!|K$FcU{ovTdQiQcHXm}LFa^YnjmH^p1eXmp0bxfvO&Jn|`M*?CJU<8|-))iJR&(^mG+C`LRYiT;T z%QWL5Kb98x0{Q>7-YO|Ub~`4h29IOrh-y;3nM=>t2TF$zf&`d_b3cbyu)?fonBCY( z^@0-vN%Z?f3_pr6I*z9`X%_9n_}{Y=diC=#50Q>TqFB)6HpK~XUAa0G+;p>H-6*LP zW81D39XX){mTW|t2;0lyjbikW=O1NI5-?#~j!`2OH?zbw5q%diGpmchOe0P5D%(E=9|9HDh_P7+#%QGTD!s zIV3CWI?z!v^XgolRl(`=J$WoNH9|j-mYkMR3jiT0eo$Q3M!3@Z`#7ql+4c^jK$Q;+ zNc-a$=+eccFut9wLe;jFy8J|RfzGXkx{*X!bMrYR@^G^u-!}QC>!u;4M1gK5jXo^U z;)sJ-7pIyumbdClMWxQMu5aO+>xr`_lO|14QjrR!=CihanvR{+by9Rp($krB zR+rMe|Fe`?U^2?@U>h*jBU?dH5#C{8=19Mhab|d6MN_XrRP&qWJEqRwnFANC~%he~7iY%h2sQpRAwc1zd_f$F4rx}o|KT)Hc# zs+OM8k!@q>A`kT*)}5WL?Dzcvsl$sKyc&{l=SbzqPGH`nuKN+5eoAXUgBK3wO|c#) zwvImF;tpYpn^y}D7Dyiy_M&yDv(Mh^6!8l5iURZ10@a0z+y3k)EE+?-oaurki zjGjeBfzG7|(p7EZWl^N=98Vegh<}uh&T6HkS5D5ji27>C>?{r9S#=q|qCohcf0766 zQ_Bs%?U|&56)kHVKR$e??j@aRS7Mi&+HM=!Vu6jn-+r&+6_!KxHw>MzcqxVtn=>Yw zNzWcj6PY-->(mUR&HKAMn zhzfzB0ogNI%=(fFjT9H(E~54^fH{n`IlUuepb*~TzLLvw^!_AilbK&Ob2q9W9oIU< zUqI(oJk?ZnC)erLE9U3i#p5l|0SVzfyr{E6!np*1Un~l!q0W|@QBDaI}H3i--|f`l2=*xVP1m zyc=d3CSMRdFV!XsUy(qt(qoSYVAmUbR2SqR+I7%*{ z>fg@=kGGL3Wk(BS$-dB|1^+jiKkPl$I!!J<(XPOmV5~RqZ&k2f+VHi-|h+3?8-*@mUfs>($BR_tRQSG+2_-Y3Xq65acPwmw&32B zTw-__tgXpNR{JEO=RH}cF~mtf1hT)IbdBnlEz6_hQO{wqUvzHnD{GHz+cdG5 z0mcKu!+#b{ylV?a)JO_Jj4nZL_$uudHM}cIbFzVROM)VM*M?!W9jTxYE*@fIcGkex z5l==6p#KlZj33eLLg?keIr#?`<{%6N66Z>m*Ua~v!R1XuS?){#S7qXdC){n~*wlHy z^;88BekEt5>#Q&tYe6L4^ROmJLkn~PJtrR#B)+5GTNZw^D!EXHyeP1B`YCZl?U^V6 zy!0}uwQVTXj=boIrZFCqX7A=yn|3A!KXZ|I~*pUSV4p_VL9-T8g6epAh`rEkOw2q zLqwiYt$voAt7~@s+p;Fc6neYOTO<)N0C%O!Wj>wE>~}-mTgm8;|LgP7avQ+7LEYJU zWLjOLcdQOl4WH82)=w1=qTbwWVJ(CDMNrn|JGKk=Hfiz1L_e-kxs$22n8YgK^IcVl zr7`Q|GM487)cO94FYvO-zP(C+;-e@9vUIylWEbE*cfK8kTl~Vn?kpN9O_2n?7HT`A zehU-9F)^l=;(T3Y2W8*5;w4y=8X*LENAs?gfUYKUJ-D(UdBM75*sqk6Thb1`E8CRR zzk?h&xK7Chovjmt`2p=l*0|dqB_$*#l;lmNVj&sJbjP(C`JO8U+QncST%4v#?hFEr zVWoaBXepNllvm4Hr}o6oVZ$x*IN$6NysuFsW;Yj1Pg~ukFop)onMmd`f{(`kcm`%M@wYk?fmLb(c3-g)fakpYl_n4Y)iow_}QyxSqhJBlh9~tg3E3B(v&=%+N9qvV8)QgnXPpUZ?KLW|m!k{X#))BAD+K4$vWZjF3u*q9k5@Wwfmk*xcX zf!*DEd&XOAnkwL@x*?U%*EG-NHttd6y z%0P=1?PuNPxP|ymhU2cMnyP1zFh&q8dRYY!xr)Qrm%l;-F!3HzmG9Z~Ba?dN_^24? z=#ut}9921?ScRD8im^iUJpIEvp{2Jw#um@fNXnH70 zLQ~kB7mOU}6y6^Ta{#so6$lDL>)_1AAtV)C4k@ro*&XFdP561!EuSe<7mjB>><
    rRRT1YQS2ZT=Da2j&fN*nD~&&x>xLVNAGAiCS{w!rr{w8Hzy z!D*V+T^?bZjW#nD_;;7JaL&3nH_C{NVC}j-|92cN0s1j-F7tS+xW+o;IJEvfda$Nf zmMs(v)#b+Wg2hLmgOL&0Kh!9eboNtc|9=}w8JzdAsho-yG?@T9*7x%oB zGZ^4~ToV};6r-u^b!P{N^s0!8C(cR)#=Pf?YKBwcOJJeHBO`cbY}T1|i(n;sMUImX zDHjT_6F_bASXY27nEZz{4kGE-qB&`A7t-Ozud=u0mHv>JaDl^N{t}c*Tq1k| zy0*;F&o3+3`VA6?VD#a%Nwbnoe0Dx0Um-m<@K6Rd z?v!Hik4S29Q?7|6W32^TwdG%^Z_TGw1OT+OuHnp9KQ-*Vx*{4Ae4_ z*dTlQCUiVKx=8UwA-r*2UFOti^}JS4EFoHDcS^Se9+URcm7;_yuney2KcT$o#K3iD zxiped-}OX#tOT3PTvSd0F8s6__wi73>ZFYNFnU3y=7D*WxW`dBX1Lp{Xc}sh4;#P) zWq8x2U}08<>@tGKn?`iw+_Rc+3Z9+aKrZ`K3n_C}U47`RrP!lvk>idVZ-a*G^VB&NuDdc+AGeThN(9wDyvRxFROREnH2^?0eAh9eqXzT%Z-5) z(G2Pde%kD88!gUm{K`~8M-+objr4h=2iPn2{Y}8u?`maLr9m8>kg~?Uu_Aq|`;S6q z1XpdlY)v)b=r_sU8KtR0#N;SW5zVmX1B5T3I-zWSSdR1v74Z&UiLRAztuh*Qm_lf8 z&DW|%ZsA*yrtvL(Jj3s3kY6gy6U}UbAUapyw4*e)sf!S`hTV;vS%T@AJ`Rw`(A)35 zxI-uaph|q_K)Y*&cmN0Cl4Nt1nhyHsJIU6Bb-9EO?hKwqar5Z`GU6SS@{PITd3xtP z=*Mt+iT3}AE7O}bp(W`j;jt#HI)r)zAakm2sGRljedh}dj%YuI=7~VT^G|)551k0| z*Z|GRKBjDL?7UTBH+Qbot{ymkSLML{&_SF@r6q?k<)CNKSIEU&z%?RCIF_NDrj+-W zF48=Q%f^Z+!M2P9gPPjG-an?3f|4yXe_zhi0@^fo-AVe?^~McJA*H$qeH1om)j9AW z|B7Mb!sUPwWSY;QC@((J=_`8dmn7=<)>*Dwv){sAD|l0ZbY`s#0?~y|Aj}Hz%BCVn zCC=|&)~OgV3Q7_TwY-b!jY_ge=6d=WK;^x=rZlxx%OFB>ZGr?w13{tw8lvL~U~nS} z%Gz2hp!gs@kT<2CQH$lGH#z#Azm%H<2WSs_0Fp>TsEiy7)~rPlxfrU1iyie8+|NHc zo)-UMXOz+|E-`wbY|0T;W}kWx8#wXg!aYSz#TLk8`jtDLz98y(V+WoDPF=~`d*O1EbfQN7iq9Q-P4CVo*pls>=OK7l34yJ8Ic?>y z_Q_#NG`0ft7#E6Oo~;il%KgPL0Y2CpUNw1WhKGY5Y02H(TpN3nb)3uYP~s`W5{(&KO-odymz{NLUt65+cRSbt~VEO8q}N@nae% zA&Pj4mZOUiYOR!`3rl+ic~bsl#%^KH|AlkY&3kx$f0vFS!W})<_9=N8MYF>tn3SR9 z8W57F93!J zmF@`+qpPwmQRbcq3Fzh;MJ+K(cK1YFwoNK*VLw)AzKNVwMDDP&u(O^r{U}E?$Ny(~ zSgH@>3Wh@nE>B4+3bO%A3(?Zde@dz>vnP5iyo!Cq-U-3gR(04WuNd$P);Y>aioHWo zY11QGCEKSJ>O*bCkfqso2^A~@S$H$KDqVd6OpCeK_Nm%*;)`jdh5u&%gU+VmG>AVM zqG9Unr5_HnVLfX+LhpA{d-7`G9~I|m&pLcfB$!hiO6q{+bJ6k~F@EDP9VCTR5V?J$ zXv^oo`-1L~XmeXlH&nWB1ZclNSE?gyl6u=Z#py9FrmHk#94VBH6c?M;SIFNR^7{!U zP|tVd#{ze^ZmOP|lW^#8kYrxJ|AO5acd#t_l8BfYL(}EIn9}+9xAw}%1mrx0(D)rM zh6^X-&jUCDD1#6abVG#}uMB$QjRVO_wYogjbM;934YO#iu9{+J!PZMe$c1nkmI4Swqy~8%k^jR51m`3B&uB9tp9c23rFru)Y)@eMd5jjvcuyMOTMW2z&CkE)mS`Cf58hF*t-gFQpMhUf>vj2?kuW=c*nlzI zHm;byDb$3{%>)11-|e$;{@}iJJ_WXg-oCpgEhnQEuJPpn*8B}3@WZ$pc8Vt`ohhG- zkf;3I!pjrdBPC(hG7UA&X#?ZM7bJ;V=wEQn!a7%{Ky?m@X()V!Wr~yQpUw58RIu#v zS0AVjx(y69{5Z2-iZkRb8!_MYC8!t7vex(!rbknQi>Bc8J4h$l+p=&B-Ey7`&0ZzK zyY+C%OBx5;TJ#o16Y}S>kD>+k;3K=+B2>y@2QPecHPgpCDJ9C$DeGKg_e{wz6TunB zb=CP#Slz6DbMkZuXdZt7I%i6y$4~w}+aw`>4O~@AvK)!ps7)9Gv=jsl#?nt2h(&vt zt!zY&F%{ym_EwXkGU9m-i&{5r)VwHMM|hJuAFmLSEd)OyjRgM=Bwet?vhm)tQiWY7 z*F`Li{)Zqi$)Dwggh1RWPbHVSvh>cO-^a`FkvHw-;hXW5V|T)0xpT&VNpy|KB@IoZ zW$yff?=bj0F@OT2FLc#7V3y`T=TDYt8fJi3q7~_b&#L$uUVBmtAsPg7I~A1A^o2|% z&P-Sy2DSM!*=$?pxN{9E%Pb-PcSFj5v>&^_eF~cz0f(Md3RTjp1y)&14{RPp?yb$ z6kC1$c8?U+?GE0e(Z>3gVjQo>GHknyT)u`yy|bOWROLL3`qT3}YcTz+_aZ~)FdI$; zDwvO-!X9`mNz+~0>scZMhiosS=-Tb#p^TfB@Y(;HG_YWEj_Gc^6T1?dZ?61NFM?A` zl@L;`4rYQ(vAz5KHkyi8^D9un6xgsxIqk1+k}y$=>cy=nc30_NR#xE`3EI8o%ZJj# z0Yp8+0W|TYC|F*VFBlU%zdlWU;zt88VL&xsX{}-Rhy}^ZsI37*E9Qt2_4D*yFzbO8 zA?y*smRP3d2 z&EI0d7p2=#RPra7?>*EuJN%~yT}|$=$QW1~w++r(UTkeCBQNc6&hQUo!Y}<-JEg|R zPG8m(fbok;%LfZ+2X1C%sj14INM#}{#4hO{eS)flQF-lXf)N|-k4Fy)4!YT7oEK)|M$NHD$#W@ow{~k)=fUv?7Oz_0__OhctdKtrCW!Fya8_k^6{A+mO zMAazq^vnPw+>E_fsp2mgNL15;%&*uxS)R{TI#h09bNE#gjBjVF5pM4oytcv?c{epmm%Nx&`6c- z%c^n&_-BegdeX& zcq+0z7TK~vS#gP>!$@iPB4i^~OW3Q0BpVnh6Cpv7x#Wj5IZ$|-dKM*6=e9WLbeQ49 zn|$4nP*?8aF4*!m`aiJiCNxm{?3<`dJq%AE5w~e`=(9v`Xm_13cbmk5e}%oD>w5xm zve5#wRZ+*9gPDFBj3$n+=nOeB`m_A_q=GI3he2Q+U9mVEycnQ? zEU?Ol9_kwUGK^PZqWKlcoH{34-Y2pjuhX1Uz!EVlSf)WbdJ)v^OjPqwuO?2d5JAlP)Z_3FwuWx&i3r!IT-Mi?4p4qrp~iZgujYp)z4uP;(^A6&rMJcW;K zYP1Mh|KE^Y1ZCI3eO?1bn%n~UgLzhu2=x+xX`Mr7|Af9}+=l+}ya-51wtRjtAw1`H zHn;~dE}X&8Jo<1*lbK88K%SYx&n}z6 zF4}ZiWGY_Sd55fn55_L-*B!fX^cWS2yDKbQW2eQ#rK!qAjQAPz%~1pAmWmeH9~RRJ zmOdm(!Tj=wDL_3SCk(u<=W$fUWsIn)k8h z7e*h}Omk<_Z9NX*7GZsj|1O1g#nE^>O!D_N4IU!*bNKW^C<`D56`Jof6Zl>Sihz_h zK)8XNb#;W7$mD5qLQge%|LErp;n#dsG_8SnG^PZp)`2%fq zi~dD{i9i{%)V}omOT(|9LOx9K@%OQZw&VM^ES^$V)#6=b6#TmukIHGb8t@~f3ssq%yUQcq5t@>4QJ}Hwa43r zn;95B22ad{Ldc>Mpr)tvqfNGO8!z)CzOOAo{LRj-7N?}EsrwbT;*aKO;>EP|<5Qm8 z#V17)1g9!p-4jF9-sWefUs2Geojv83L_i)Xi|yr7qqbu5agC4LT({FGs-x~F~s@snV=g^R8*;Xi?;9(}Vr;jgN((e&J#I0>bFVzdyH zawK#+${@D7ozf0N4V;R2mBPS#{f?DMl!TN;eN(vOA|D$!i z(aIV@ncI1>rt%#DyAG-N6hu2)*9anqF#Du(3q^FmvxM6V*c0A&(=E;@Q0&*$b!S4Q zthFiqS&JnvwVPFq`ui{=akH${I(VVE!=A$$yCP8E4WUBr`SyJUWGVlOAV>SKqUa|b ztYt6siQ%7YGAKZV#_1Y@9>}5*01ZHU(lZGTSs>!?1DUz02AHJ-fBOp899XEjL!eVTbQYRF4_8q{#WbRv>3 zSkgAtmqU1~Nr)HRnqGAY8Fv4)%#F02`V@kSa{v|+$>;*hWWpc;z1^n&68XTeF)FKM zRj1qV35?Dr;>r;IM2u!e`59}HSD>IRJKe7WRCM>G<8BA=fUya!NBcUH=5vn_?yJun zNs^GEkM)6-KIxS!!8vX8x;*%nvG8aa`agycWz_-G@w6Df%@bZqAz~k57ql70AxX@) z@#o|eOLz%&DD1EU5PY#-KsWT}wDg1UFA+avWo?Cv;tf3SH&lO&?lDWDqXnIzzQFj; zOD;}h{~f45b$u~-HB_}=q?5o_WEBV?IT3GJLotQaeQ0SeOC=( z2VeD=AcX8;Z8`YirUta5Fe(_4c12ZX+pa02X-62!gk1->*c^u4m>Edbcs9&hwV{=$ zj*1N?p?<_s)IOIVPz(Aa5#nEBvDh&%JToQ>Mcm43?2XDU3#(qe8+V6VyijPazt0n0 z$kTttU5P-^in~s60hOt-$S(`n=c&4pqxB=I`-K7kX<|YiX-g~u%=M(t-fqYH+#^9! zdsgk`AmBSjmlOrhCZF(ASP2;Ab)E_)!1tn3_5&0EZ~o+ojEC?eO|?G^4Zp{l6#poc z*r;5&`O!{+81D6!g{uHEYip5@Z7;;4MXPJi<+*`HoT=6vXCvn4yVvw+sJvVV3;gez z3ym=SzuTRl{WknN8L@fa+ ze3UgxyQUV3q#KQoD6_eX2@QCeTPK1wiTc9iQHJR593i8VvCP9NJ9du;65oCN4m8Ld zy~Xuwr#lwQ!<9^kGl|w*S5la1&Tn~H=#{w;Pv)qE>CgbT8&)4Pmlu zWk)Tun%z`-=;V~0M5wy*El;r-8RP_D@2;g$!?8z?V`Rp>zr6lZzwR}5e`(F3^KN`j z$;C@WwmeW^yV^5|!%7TTLjp62_Vrz9M3GST@2JO__)6drxIW!&#?9LRe(uICULDJ0 zirI``WJnrfHTq*Vlg>b3@L}CF57cOu&Vlne*ZcJ z>X(Do9iS$EyGWD|#)5`(-qFUBB03mhaR8Q`5scDM7vPnzO%f%dIrNYFjUi?LsnsN0 zRJ=d3pN>gRDAF-H_jt&pEQ2ju2P!cd3TXA{W%WG=W5h9Xgs@@8b>9#0FZiH(RU4m7%Te5PY?-F}oK}IuqIq{jHJkM#JGgM+b+t*$N zL_d_TV$U{$Q{F(iU@ppCR*)+U{yqOSN23&bQpy!Cz0h*XoopyovqDSL8Pmg$xJ{%k z=9LW#%#l9%Uvp~F0>V?Vr|9^L1DxmKPV=DR%$_B30UA`l{kE^Mc-AxojHP-%uYFn zM_rwIRf__MWEx6TeVGIQLc$$GNZnZ+rgDl|d$maLndm~Fg3QjvZPiq!EswvR^f)0v z7caRDa|MJl&od)pF(e7*!n4B7Vuyy7%^%&MTJWT$I5z`bB z$$o$1@{gO>$+$pGG!Uqdeo1ix7`ok`QeR8!t9Di+IcjxasfEw5!c2KjUF`V0Q!4{A zs0shd-G7>qGJ0?a(!{1|REt<;jVMdG7JcP8nG#8WVC)WMOl z=d;(pcV=US{4iklX$s^}zi6EhXxFcx>^_v`bnat+)v7~hzWgRkjO5Z2oPQ|`1iEx8 zh^=!)8>*^>=Jn&P`{%vCMrh)NU0J<(HZQ`H>cUnCu?M%a!@#F2dVf=mLHbDO1##QpihSi|&GKHC_67lu4j)q2=4!O2#F~7AAS5H8k-h^h8)Fe~fdp;hM^`r4Mu)m; zFt^Az@ai-kRgJNktVrwwe_WTGx5eXjKTtQIyAV#~E6zuT8>Yr8y)>m$T=bhJ=K@2g zw;E%8({!xecoh{AmhVsQKA$j0$tj!<7v!l~Nc+Zqev9i6mlSJAC0lDA?4TSHiU?gw z57>n=NMogP$ga}Iw6F2jKp0CL_4&)MQ`Ql^oftTl=T3NxTM70jjWklcNN1+i(inp- z1Vj#r8gZSLC#Eg;GF1Ci6Z6d%ldOZ_c^DF{7KV*mkm%NjcA49Wl5A>KsZnYq#d5#BVglO&OXo0F6gZ&Ic8+U>gdSOX8&3`%9l0g@lnv@iRoBC zKd!BK7oM><{7tV;)?l~O3~t*i$$KqxQt_-FpYhxUglRmfC^7 zcBvDZtEf{DzxTy4b^?zcp$(bB!0#oLzP%@}zRE*vuc$kklcQWjtmK;qrcL#6O7?-4 z!G;V!hj<{={IrklgABfN3Q8J&;5uUeQ`iOiAB%au-!{>Ef`AQY;XXAe)!gB^np$Q> zibyhZ$NTG#pa(G8+IaR9XD_=o0!{7c_L~zp?0^xvd(#-la?p+vV<|di$4<4qx6t1Q z3`<0Y&?FU88}Ign`{eqMYjGINxR0<-STs0%gaSdmy6(gJ`loun52?_KbG?ISAsnqBc`!D1jgrWIOV%zn7 z=O>u#-4&z<0`0H`uP-_ZxF>PC8T2``mz8I}{QPR9!5(kXS}<626S-;zCmZly`CPxi z5gc1JNmwA_A>GGO;ofx_+F6-qy+x~@g=i-&p|&VQ+F=p0?8SqE*DW&zqmS&!dL&=9t0T3 z))v%S?4aNURtka2=<~$tDx)0_EF(JP8-c=xqM@~OYaFetHnQ$MTWpPAnzPZ^!KK8M zKwi$Dy{-(OXB{S*>6&Oddj}YM5ZHvxvE)NZ1seIV=I<1b=qACi6sNow`0ojy4PEu= zZQ;~wxhdWJJSB^u?0E5FXyDGUwe5+3EE?%*L~OgBc}@DEUJ`6-q&Bq=;q(5i-guZJ zj@T}3O}2Kn;()Js-@A&T@G3~Gb>BV0+_`mQ6dUOF1JI)Zq{D>1h0=)n{?Lg9nx0Xs zdE=;vIkBHzJ68qel-JmCTkOT>C`tIm=BgSwL7qyPgm3dI?vpIssHpMrwT>mwbPYJQ~=6roWyTe{$RdhI!4jn|j`iT5+h3lmQpYJFTIgTGR z|2Xx9v?;qnW~mPIKZ?;CjHalu3l@{d|$&OEyDlcOlwpR<$R&~`{atOPDYSQ*ht23JH)`?%LP%E@RH9gbsEZYf90-fBJJ0|=%Cq--8 zaK!CG$0au+7#6iHi%HpG$lSl^74Q;Gut25bj_qbdGIXgDUNiI8ty5RraSh7W$9+WR zrKMzB-PR_-Q`z4)i*(79!hT@0YBSa^B-jU6PU5^?5}Or(;yuBFjQSgz8vog0dpo}W zsb<&fcaAJHB_?3;-4A%)BVXOVx&ziwn;#;fAVTfri+fdOmW5sMIU$J^?gxG|_MX-$ zBnlB2pK5=zVSrjVI?r#Lp9iqqO-|inN=A_EvAg`i3260INda#*GtmirflU7uWHn{V zBfPa)Y$OZ9?=`c_p&L~AOgA2k(2ke6B~`JvzV4xySS@Urwz&V=G3`9O+XKZ!EPHO7 zJKx^`1J>9p{57c9;zQzxrghFg28MbT-k5GSVDl*~S{H}e!dnGC%78d55%?w|c%}*n zFiFSNR3uKb>OH{oT8vjRU5Uj2c_M0O4{dfWuE)o_3Z1=Mg()%;5P>1Yrgn7pYvzqh zYZfm)a1oF#Sb~m-POG&B4bw1D$oaP~QaFKWQ{DgD@X7WHx;8JWI1oZSFNJrWxDcF( zBY>~=3XJFeS-#6$8FZVCkBoX~wisy3#QH8*FahW!PK7W%M?$eew7zUxaYk*!+j=i& zmqgyaD1&~!v7mCW-G&f(sn(^ElAJ4GUYl_RG*2sefr+?#1mFcEU@~IhIpF6MBcNxj zYohD1Yrf8Y6HIfF z7(HmdmGH`}210*#z%#vTo#K<`Q9()}xXA^pu3>ciEmyrRaAKeq3u&eS=DrFz&ZYA-EG0XHwD&S!muh&6|HcSc$F3WfGWOeq=YeKBVE$V{w=!s!>H`e zEKEgBJ?Hm`)edPWmcO7HJ@MhQ|zlQ)~?LaTfmwXtZ70rnHF zyqkA)XU>?RbrB5S*wSgeBj!lfb|;i%G}1GxG#j**es3iMVnj*FaG;ixRY?Jqf-NJy z^g$GKhLHrtPz0C+vqxFF=wf3IZ_A56!D82Bf{n4rF`53+Fh*?Kra!hw`-0T&+E;<<=jpE`bsy_Zu=Yo9|}Tv zUVSJkU*)T%lX9$;hJl;Xe|HU4&SfEG(&*YQ)D=ccFxTF`4u) z3H4DR$N55|(^S+Mf|cxFROIAhd3yVBUi0%AEEqyPKb~Wk52Yyj0Q%rhgiit2U{4%? zj;&WAHd%3Juy~_p6IM`>>FnFVM3Pll39&oNoS2kED*KCbh@%n&W;Tg443@^I$ zewkQ}mD`8b3jRA5VEmssgeA+hWjRwKPJT32sJU|WxKsvRR=_N!K^uQK-BrcTzi0+R z;=lBy0(R$G$TJQsam5pqQws+GU>-o6WE6M|kj zum?tU;R^U`t369-G^QX(CSfS~s*V!qaj@s=-rQQc-gbAvwi_2-Sg%jH55*?OSu)pb zym_OG>UfPo0d~=>oeX>d;iG2En4A*_mfa!)^Q$q%!u&;hRO0`0@G7sFKgdw?bVXD3!6? zGVaLz>P0_Utanzg)mlsJ2^^@#xRjws?i55egl~YVTli;jDDres{)kz2hxM2!2!kr+ zX8~4q)m%(YZCncdarerikG)2ueN91_@@UHdmQbvr^u8^7JoY>_<`j)}c^4rZkS*}` zFQ6^nzkVZcU2snah-%4Z%e{Jkr}+aPFDk>9Smo?O!h+1%0^8g#DTgm+C9r}DZT=Gc zfsVy9aC}R}(iTFod7?Xj4fuqun|S-2l#o(KU1UOQD**1s4ae~LH3W1pAHWEuQ{F=)d$wKr9_VYh`o4 zK(98ykYkJT42S!#X0fHBKdsU9FPg})gLLwoO{lKY9Uf#S(2CG4MEF`H=ImY#q_+yq z#(7bQynxmhhQR|SZDL5?z9Rrjk6;*{8zx7ta$tLHzE>4>hOKczIcvouaMj6irYa&7N_ zHnaU(6{L_%uWqH;QTk;6p5@|&w2)vj>Jp-xz2tld7B)ZpFRGENpNe+5A1PUy2MwtA z<3Tc)J#CLPKsIq^Qzs0nQ@AV2?wL|ijfa72vZ%QkO2atf`9w>r`sI($I9=;#bt0JE z^-`%*W=9o=nMiwfA&CUHqi4Oh_qcPr=k z%)wcXpOFNUKVYZ_6k`OAt(JJ6mR97MAO%Gz8I*o(HP$(~1yezZ-C}PHzvLp9RUB<3 z=@SPk#yc?cgNT|L2DE0lN-LT2s06;#{Yw_&)lOic)6!e|5}FV;r57t1HG?pgL^qJ2lADSlXZ0UeInoC;u`-)nXHp3UkNPed)kU3|rAv7WjsCso_oIX_cr*KN8)$H zp*;snBp%fTe^QyLBv|*ge*EnmAyKNdrW6{q z>;Mu(({6-0(gaso&fj*P^OFCe<0EbNBurLXlx1ZH;$b+PY9K#7s#@Kc`}O>_*84h2 zT>7nVp%I!fuArM++50d;7B%oldIKtwZ%ehDv3JW%-!b||( z(;wQqcu6*uyHOq&$V8-Y%63Z`d>Mwd*Q#KqF4BV}#Xzr~!TE<(uF1>Jf|*U|r4*IF zTeR_~`8N)+Le`3Ypw4%Ht*i}}P z!k=6fceY9Up4^%5b24Fig)wA|N=k#!gCz74s-^AVq@Q(C+? z@FR(&bH1LQ_Xq3Djf8j{0$NMLkIRNDE1B zN@>FNzgPZ^-s&py%8pUuUskPW==oq-s=_NXEp+1nlEL`=n0Iw_mdue#u0GS!d>ad? zz(_`YrP(#+xt$VDv6|l**ezKWKhCY9Ik zD5>Fl_2ZH7ZAJeh7~H$*dD!OakLm6RQ@n`ns|tt3A|%&ivxIA3T4f|--!AQ~l<2Ca zAwFu%J-E4UyQoJI6@#ZR-@~I)vYX|oxYi;w54ABDtOtoxlZH_qT~S%(+S_7fa%$K> z2zzCl#Ciw8+LG}3zN}M}PaPXXV-di=klBwvg>ex@3(0yBBW6>#ItbEJ)&@~yBvKR$ z<1!-dX^--gn;~IZ8I4a#XAo|wk3jsaZZ|`elbFK`w!qxao`322lg$Pn12`?6T>f`z zn`sz5x(|*GCb)?|?~DEM%Jz6vnZpNeNlZyB2Ug}AVL)$nfyH}xY|7T5y=w&TlP~I5 z0x&8PS7SWbX6AnK*Q2XT z6eXZJ2&iGHw9bjU2-{H1C6g$XpVg4a8y*Yh@f&}I&L?+(Kg0~Ot1;G3Q>WCgVs0p} z!)ipp{$7X70I)}D&T6Q0qp<#9b8Zc+d^u%pmMc?qbxb0LPjVZWgFu3jBXD%fZ4m0c z1#3R%F|Tuu$WKM!2L|q&(EJxWV^08J{;QA0>9<`u6SzgGCQSJ7#VDI|v~F4`UBJU_ zj&tJkHii_&KRj4;%^Lf5kqk*Ifv@G$_oguJ=2fX{LPEV`u+Zy^8TqYt6Z1Eq0b!@v`!{KGnCqU|52hlXKcqe^7-du~nmn?a`;GXS9RS~s( z%srmM$SGeAO&tTu<%srI!YTYHAE|Z?2eqnDmTw&g(Y0(|0_`xv2L|h_lani3#jgaA ziNV9N=fqP$l6e@#lNyG(j>Yjw zyRr|d8W&Y39TUh-oPGF?i27415=(K8=9 zf>+OYS)|mHFyEQRq8=dCqiN8%qYVs3+1{BphNLyR3fceu{LUM#W4DMb=!THN?)QVP z#d-DfKMgo|_O<8`g$qI2i=akaXlWrwKT0+#LKaD<)61z%-fTf9DTk)4sr>FXvMd5e z?O^te;)XcCq*KZmwm*s)<_)L5<_QZ*zW#NR?C^v?pu}2f%crG-k~l4l2Zt|m#v>_; zYLn)UFra6V$r<$@j`PdicvBi@|9$JgK3O2so0qG~^C}U({7C1Ac1x@XOAQ4|s|v4x z!qiEnj=3`Lm1V_jBqOtYeV$631Nkzi zdPk&*(m1};F1u-@eRYa#6Xf=bBA2^rgpPcZ7*=0CK~&vx>RKhI?u?Q(-=s>r{2xD& zI@NA6D+e|uOgebZ7lKE@Z(0wHg5i`r$)KXClo6f^77u7w9YgmgK&OaP32F3Bs|q_v zl*p-XZNL)4l9IB2Do`=hUqu(W=cW(}1g}+vcG9m(Lf=v44fnAgR;KYd(Fh&)+;8Yl znBWYj3lr)e`!ke`AaRBdK0cXs{x36URR$TumZ|x=KpsH3EK5s~*@CeJK`;OYD=9Fa z@MGC2s@f}W9H!V8@~o4RfrTmpy(;oF|=`$(6NNqg;*QR zhO;+K5nU*wb;r3+JYyMi$CRvTuV8YPpT-~+sAb=7`^?(cJyZ|d{uR&_`21Z=h8$R~ z5aqa3Y9bjzk%g~7A2_pl3Q>Xm;=VPV78BS5A6F5Qz|CqG!|16eFHP_hR%ZUd0EutsE7$rZ2rw(J zjlp@gt6eYsyH64B0jTEbdbT!JhNz$Rn~VNu((z3fhhjFF=I7DzQU&7rXs4C(ZoXox75b`Y2C7qZ zYH23x=(+Z~`dvO3wl0X?xRJ$fLOJ&9=;M+>s}v1S*aJ>n+5`4zm-o&1#NO1{5ztdO z8-W>g2abicB77|7j(y0jYXA#}3CsyVE4004+WaWW(j15~LNJ7HVHhsicn=rxVW9{D z`6M3?(^U|g>_B2LO1E?!yox2&aBsSc*RVZ{rR6J&TY86uO2PtG(VHdNg#mjtQ{dOw zBP(KGpuqsT;~r_U*`AB~=KH|=4f`7|z;zFki7j5T0inm|G3(~fI3p0IoWGeqoy!DrE4D9=6YgBw~D+ z&JYynwBQh;q7NhxqY8J%TzFxM_ixMiDh=@L*z=AhF7oXvtFx!JtCu(v0eFd|G-eyY z>WlUHme9=ShYy7S%8nX1tC_REr2_?b(T}PE6zxrLx1G<7NBqSTdV?*h&_gf9Bf2Wu zfUVW*P=?M09}0QAzq=G)b$JqPNX>XCb980OPl3qgOfQW=5SJ^9G6J?~(a{}=B{hGRFk z50R*Qs!zwzbnGJM*cl}+Q!L}PnCW0zOy6N;kRx#NUse5wxznWvMEOs-yqXce^r2y! zcKF%WbMs33xLT|<|Ki3ZB#zIfn3lM`jfW{mAt(Rx@MjO@3@Osu9~f~xf>_teYBg^h z)F<=SO5Yd&ezGwdb9awUt4!KlXS(bc1y54W>aK3-Y~gj#F)Lz_tlshs=&_%S`i5fJ zhS}(Mb1m(4^Jkn&=r4~AaO4VsXO(cMM;K8=(+=Gt&x1WiM$VeJCRd&n51fr&1tv7- z>qH{Kvoi$i&k#W7mj{SNxOsX!Jj={>%q(`~>y&lqM3^%~#2 z(_d5YmoXxpXJ9bdZ_vwXKuXr8u~56Nu?qw9 zGZRYf(eD<6O*=GcXzh!d!7uKYQ#wmVwUYH2vc&4wT|OVox$MLDN;9o^Zj?0N+Mt&{+Sjy=&gh=%`E%N zB%IRQfq|xS3;FOsS45F0pc^>U=;7O5r&^3oIKhIU?q>w76Kwoh%eYSzc7J6bO!L3L z`LoW*VHuadAg-o28x9H+Uv6Cfo){aIL|)6zTX~u|u1ifIK;h)w@AfH|T8rQFh9GW8Ais@y zBem&F&XQ64HD*}Jj`O^U(WBdwz9be8!-L4&q(w~QRhAl^IpMlPHCO-96A+R;tlzlL zPMU>n`-vz=2zEE^U^n3puKE?geg7!)UBZK1Cq@pYh0$zVe94wP$U-yygY=*O(*Z{{-UtnpBif4e>J0BzD@ zdib(9e`bZiZJ|!L=JEa|&Sdl@#Emhi$}$uYYh*gFz%+bgWa<^-b^BL`pF!cetiY_h z_xVz&ULi5aHiB~N!Sr2s_%If9W{OK&)i#oKz8|AO0@qQ786Je3G0P59sntp%(#;X0 zwre0`2prt5&tP;`Hy`BCZV#}-^C}WolcDy{3x~{ZKY`4$ibY)ct?VZMNgTE4H0{6x zv9Re^{r9+xEeH4>rU0%1biJ!7NCsxXL+=oXFzj)Ml*Bb+<(B9y-5x}1O~3{^j=AN+_*Dn`_^>KIIB4Q5S zySitZJeY`YpL<_`fROc4L$g_~c6YS7rD)@}yOp?g7~P7YIz(C&IBsxl)Xb<zR_3Ie66zBl z-DE?g6?0Guixu`X&0(HShY-#g6qs8l5f%z4qj(m#oUK>Kmboj$BcGiX!bBSuxv9~dcG7LBW<-Ke$gfCY#DiBoz9uas9)>RJv<&Z1 zYxCH}rT|Gwq;NhIuc|zHR|sA)L@z+WSR-%-NYuQpD-VZ>a-&?*Asl(ueQj1|cphRf zGGj4}c;OR^-I~vo>RJ&e({+p)1W@G=sq%wk=`D2^fGMnr_u!X@Yty=RxMP~T=Palv z6Ab8a%s8ql^w73jb?|aue~&eZ|C+bFyuFQ%m)FDN#wVsN>qOH;ad2wB@T&MYl1%@w}P;Q<)`+a&+~GG z{UFzlAo>`I@r>R}l!_uMIqn#;26{Y0B;)q1>V&G}#ennmCkn*aZrjhunFLIQ&4c;> zY2Yz8?d(0S>SPd+H`p^mfs>DfXK{x^C=wm3jQwl5FVr28>HvNBI^#{8D(wQl$WHdG z8*EWm{L=(YZ=$w!oO|XnweK{Ro)P@_!$vZ@m4aK`Omn+Pff}$QAyMv9OFUqJ81xav z&6B8}VYq*!_Ud7ib^si+j)gDXnF1;QM%Ey3ua43dj={Ok(Y&M6L&^GG!r-3>UVxJ$ z;KuC;`NQ6fWqRK^zNq6rE&_%|6FDpr^}Ig4WdHkaG8y=J&$RB~|3Wti;M(25XXIdh ztOrpKyP=mLR6pH|~V9Ap`%f?np#BO&!%(>~L{HcmMI9d$fRv|3CP^b?q z>dS$a;x&;CrZ}J!Ej1<`$E2?AeqsprPs0BXu5-eq`D100L`i0?PiUBT7ruTT^t9%= zTPJa`V7*yavT~97Hv>-M6~XHa%%$b|K5>|{&!wXI+NHP*-Lfa8z$=( z`eTFl?s~T#o!ue;jxv4Vy%Jq;p)pnr3>)eQ_iK&fNR)-H;9`NLx%ogE-J~Y0E>5I? z0y6HERk3C*#6%j4pVcKQ1kxWnC0~8{Q~B68PS&qE{6(-M%A`|J{zPv$){GXIueh_Y zTvy)3U@9)A_6^Aw_)pgZL~SP9thNC{_0f8rV>Be(wyG-k9Wx#pVLgSG<9X+i?6y^; zB>{O)-|b}L>o->E>~p4Ta)km&`c}jVk{Kln)dj4T8U0_xt4}6>Q%3jG1@-^Na(R&CThElEsZL zLN%XUqN5EFt-(BPzk&k8=Pg{_VLo9bP$=pGJzf{05jStgaTuJovr|)%V{R5) zBh2)`{o@4%?AlLMPTCFw!Fw|ut`5RYcpiZpZ2LO8o)rMh+fKKK~q7 zs>D7VpbCm(juvbCxu z$B&t6(F)j}9sz0|RYf_^a;cd-4A~^4noC)E4VPt6ehtT~?~B zU7&CFO^u}y|R_2 z=S}8QsU#%2kBt;jR289yswAZ-$PxvRSo<9G$scd!sJdTFQXA;{I$`m`_EL*JVCGYm z9#Omsl~bK9@gG)+Qu~p%E+Cba-TPacTZ%4<+r)D<`7CTnxB9nLpq&_XIFI0LzjCRF z?LwPSuR2j&3^r?n5##oCQk2NELXkh}t0D*~AuX~)5Ag+`#w?;~Dq&8QaTshls& zJigcc#T*%Mhy@o<2cN?;a3^8V_~_Uuuqa49zy7S+3gt06fZwS;h>hutZo-rd1U!RR zZLDBr2C&bhrRfsS%n4}!-rb=?=KY{Ny%A@Utw0?Du};_@YR&PBk)cnL@w`GSIt!eAn&*IR2DF(3jyv1#zL+GU3m6qS5NX{Db~|iK5!l z?Tb^R&<0d)(mZbGjC+riR9X%ku|pehnmw$kFm6GDm{zSXWBHN~C6AnvV(ggfl39pf zeUPGVGi|J8t$?H|Gw4_lOLSI-1aPJ%iZQg14t>J%?7m&X?lMbBr0&}4iLv(5Ofpw3 z7!{UW^D3^kaWadZ$bWII!PJdBnP*pRY;(*e_2^lS;jK|c<Dv^K5>>8UJ z-EdH`;Bw|%(VzYE=?Oq2&|ruwg{JtnJ_D8Fu3M7jqgH>QZc>{$TnRP@%@Dz8f4x;I zrx4!925uQjgGVp$C`vG6hi-bnx!~hlBBif-Z+s)C5yQ3gp=b&(DbIl3W1PJpFm zcZuZy$z0Ax{`uPCUT|REF^3H}otoBjrbt{%C|ovfspIu$5aB^p_Qed1AZ>Ssfp(3p zl>lDina<3V&L)`_mg=8+4HHK>A|2H*tghS6ppht+bp8K%4Zgm19`S-0t|(fRFsvhnc;cb ziEW0y#kR@=W>E;PR6~-ZCM8x3zm~66yqnR<^yWpJ&q*rGX*^FzrLuR{DIqR9;d3Qq zZ6>^goP)R?&WCWzBa!YZgsrykp&}u`w?TkOUF%4w7MTw{t>A`1kK2S$_gnNAi~Jj| zlG9CG*m?AODW%TaHw>te9U85x1h8RCCcjMjNi zTOn=60LH7k7zb-c*7y-CE85ttC4?w@Ad3Q0JO#Xug<7eeO42}?NF9s`e%7m!GHA!U z0o=N+Ku|y%ac9>bA#Ksezjftw$1s@L;lDX_v4G)WJAg<-zO93k77+I2!=y`W1T&&8 zls{mEa(^N}mix*%aJ25rot4P}h7pEiDXwuC9)dIXaIE$v4~_`wCZ53(%`$oJTn(zWkv<{Dbh+pe=(A0)bZ=| zCLtrGjZ=>pq0gd~uiRN&+L)gp7Tv+3y(3YQMTC2pyCH4UMTsqGv=80hvG;bflp8rB z5|nhSSIes4F24oQwOo3{ulw>ay^^I?9+&VJuGz z+7#APe_jLTn& z?14VdM2db#OB{E|_-eQ{jBgdJN<@O40^tFiX$>@1aBRSWFql2Mu~4Zoxt3*i5&qdo zvZ!hmBC-dY=b%Iv!FhF=J?Edg&=S$A&cAuusm`{7X}*^`OR0|!_{LR2?)x^1~VEn;R$G+DJainA~(vR1C$IuF4H}8x!1{mz zB1F`aX9)z-y|r!^4|N>cvBq7%Wj%1_Vhj=FZetvd(`6O~Lh|Lynif{WFg|%*9l=p5 zNLSsIhDGO5ji$B^^QX^*sg zjDmWTE+5#r0>E?)N$HJPdpRH`BoS)6=YRUG)e-CIttkEIXh>gOqR&D^R>JIqMYw}m zPyn7xTV;X$BT}RBDA;P_bT$Up6q#d@?MaoA!F4^I!OLRMO9*sJJ7PF7#RbYQptom; zdSy;f%svC1U+M;AF=^y~OtfQf_7e7sT5Nu)&=DV}4&TyEMWsSX0lS7?Kt3vy*P~L? zA78*ot>yuUCM0n6X5H-l0!vw+=}It@2a>Eft>qiH+US_rx!oc8<|J*k4(%zX&?pP9 zNS9F~9ytRUTH;g#SKp)W5jfUX`H^dgN=(o4T~+Ls^orhLm%Bc(7nOubQ{EJrsEy7S zu`KpLTf@k2@{=2-Qyhu^JAS2%rygzylcx@+H8Fcp82|0|i1f}rh3{&eum6};2<{wh z3p+arrqJ|Pq`Q6UsUMO7KJnbP@ptbBs_G$4XrY7ZD+OLcx98DZ9|xy&{1fe7p{QiA zDdv9Z=ZzU|*?M36&uG(7bbJxk-z*N=Rr8jM^YKSVxRtd|0tSE>L5pp0n?Mf@z}j(H zLwXTAK2Obpp zhRCoXQha&~$M07^tgV`As`DX)wmD?~Qn$iTG^(I{#2090;_wf8XvU*_3HOy!+^asj z*?hzOWnFabeoRh|TIZc);P@qOAmBNg)I!Cm_1Jwg_uhf1H~f3?JEH9~F5$BYIh#qM zh6Um$TnGHqM&z>9@7g|hoA{98T0pv4`*n&0nd?OlFwQ#xk&O2BqkatLLyFNr(qt!+ zNkE)y-2OUw>RdqKNU99T$W(Fr_3l-HauQ|4gX#TkJ*7C0_K)5j5Yp-e=Xx$3Nlqeo zA@~B;!mJ!(1goHR()PKLZOD&;bxbyoJRNE>#J@-(BJ4jUIYTNn7hR5y& zXOpA-ei(y~LqHoy2s+JedjyD1xh0}NIig^Fmr z2y#f4H|9@?HyBK~6uqU9Ymr&dYoqj83VBS~FnAoo{0E+)`+ zVGDek5w>A3;41Hj1Q{_SSKjn_ZQY{FMSxzOeb2%w{!HW|k~T3$SgZ+{n>BEd+Lb1( zI1r~z)_Rmw$FSftCODb-Z3TKi-(W(R=3pZ zx@8=@0UJp66s0*DPL`uk1O$;L6)w&jo)5#Hn2K8CFiM$`#zI1bpB6`71i5d*ROgGL zAs*O5$MCc|4cMKP{>RaypX}J_LL|x?*21tS_?+3v@f0>;>3P?il#f?P9J6<^SIJooK+2`Q2=Q+_*pK`1>?U zL;LWQ7>-vkqd`j|Mxaq(3V&uXl;$0*d^GGGpv-COnxiW;7B!NA_2?RRgMC`W@%C`! zh_I_|iSBPZ)Y|~+qD`+=;n1ol0{qX_^JN^u)Hrq8UpBAfV&xBHt9j#|Pv61KRi)jH zGu}E^N9|#GM<|dC8fLDCjgTmCGeIgs41y|+moF&d$2~v^@CF=P8>qQfjpO8Tl^+5> z&fAhp-jBN7qik$a-xjS!^@-lzkej7UN2}SOJh?`n_&U5DkVu;y2}}{lg5O6!u}7wI zA~g`PPXS+-Ppc6hY`Tw6?rxtJFs3@#`d8UCB+?26SugX_;CHWi9Ty|rgt}0#I7r7b zE~91f{+MrMo{O4o{f=m86Sb>p-o71}?pfL;Nmq@tVQBCBrJ8AE4RUB~Urz+h6nVS- zU1D{Y+IMB%&HqL%D8kTW8UO;)E>f8+*HXbSH3>06zeyVEd6Ni2e$SsZ^8_atnR&nP zpi$8!eo|Q^svwB$n1&Vl>f*{TRirLg)2VYxOPForKca6%lSy@0V2{5|qcPmVL3~n# zAyXgow$46l#Liw4C-P$Q`W=HXz?x!iXL3N%3D0=KE;rH9Ur6%R(kuBf&-vrt3=j$5 zpxf#YluzH_%h_*=<%%wAX1-YG#?}D5=^u2c*M&4+>AI$j%?O6w+o*Vji?6Bm^4%(1 zB+)0ThB`7+p+cHoK*%D;#>QM^g049EvNGdM_ADLQmq~5#Cka3`IJFGkiLrq;wDjC_ zmuP-XkUU0W(Q?_rnzUi|DErKU+3s|inA@@-X(u~X7R4EmuwAs}Z%l^WyudN4P#WSz zV|iW^e*mI}+SWjb{UK1_9;LRYmnJbkW{aBoI$N&SP-@ARf2UMzG}Nywuj55(mc+eP z?TB`a5MjKmuJ@gfM@Za^Tlf6Y{79|6jmpKXYAC6@p|IV(F64M-bC|%!<);6!ND0O7 z2;+90@JAYMJBCe-oC#cd&_IKwM5&+h4uBC`(cIl$Q z{w}Dsdw5}Z?|nRZIRe)t_3zbOQBQSV^Zl6t{no4E*G6qu`Wfk54$nJ|pRiagRZil4 zsGT8ZTaC}XjSp7}3DEvZw~HIL;`3poV5C(GaI&yMsRwi!mDf~MY3bCSR$x%IKL?#wxc{R}QK zZ|J&(?OmnYu1;G9zkVFzIxnC?8lT-N8clVFGR1-w z{A|qO3;S<^wX2tLC?Dx@J8nY`?fi}Rw-1ukF(a&jPV=eu)CjIc9P$J61HBV_q$;-{ zVk-g#|J_tDNp*@K0tRDW1XEtK63-K`ltUnF+I|45SI-m>M8OH9@IuVH4ZCB_pb=%- zOxHnFmtu6Ons4s^!0d*%p-8HI;CN40nm8Mq(9lDn67=>nT_6L;92ma8Z)HJ4<@9*6 zy<^g4YDnvtL5xfe&f52RuXAt8xST`;azBa3uBD;8eA=b zPUB}b)-?Rou?7zfKoxl%*Qc*@@`|Lx7Sq-zq$6#b*a5Pjhj&--j*I_!$hN94OCaM1 z>X>#8Z*z~vvNtkkEB;iO`dUPFImc@I>ha8iAO1@pn6H%MeP(dpayM}kVmOuk&o$SU}KNSILI-m`Qd-^ts1?IAQt?X z4#MFuhjRZMdoe14+VyOF;$`}al+{EAZ5{|8hy%B2uKeP+tRg77gcddSZ{9GG4YhsJ z=(dRW+Ex)uA`kBT$|nJu=y9W%ix{>3WlQ@m|KGRps-kY7s~urDEwYj=lIy%;)L6IR zr&HPb4e3Hi(YVc_eQouq7_Zo|U|nc>K^s!sLO96vckBoJB90>62gT4R|NL4Y9(IFI zsaxUS2J?DSEjWKVHP-w3@1m4?p%%|jpFddQi{R^8#tn+|H@W1BlV%9)c9>I>8h}vJmuA^jka{sxIc@CA%Cg>oDJvOz~=x_kl*JmIZ_tB)$K!D6D zW#XJ0$5fs;_P?F;J+%&r(Dwg6kM7wFGiS-aC+G5AaP#~xTnvA%{noa4zgexQrAxdx z2`v}tAmMFvKU~RB>lYkH5{9cG%`~i8JIO6-Ku`csGv4G1by^Z?7F7HN*8nWPt8tf1 zy~g1m0YC1&?TGNUV1F!frhs_b;IGY@U|hOP*d9RZRTU~EUDA>@*3A%yIM8?uB*Wu`J0S`!hQxAeX=H35h6i1J5)&A34)vdnQXp4fogUK-w|`FnKHrv8SHulgmU1iNK!1yA&Gwrh!4! zn%yRq@5Vh$@8dAe(8zDgag~wQ@6bpCo7FTWC*s`uo2Fj^KCi(kEEaNYwtv)5Caop@ zn$Jd85pNKGy)&^0nV2805>U!w4f*#U44#tcIpoBj=MkhhaKT3VcgxoUjsJ^@vtFtj z&eIt~$$r)-)mrw#QZZ0kC+0|!m)Mvq5aWTZ-W%d8A2tKCAcnaa&6&66hZ${Af-aom zLmy@+uI1T3~+pJ{`Ip`nrDm;eL0ht zDhgsnbH01Du*$^-%O4R)Y#>xskvR-dWbyli!g!|t?A%_Ty-5r}tqh#=mo9VIW z07xuMK97(iVXX`vV#+5-Mc`R3Or%*uL)fg$CCASpaGKzr$`btl6210V=jAt#-0%98 zNgw$GJTt|8>5t84Z>z7JMMe7nAR-k237F$rZkUbk`1`lIw*k>n$LxG?RWB5k2U%wl zXC{Q&vh-I{ol3-i?eEXr;D-gh1f>TZV6C^r?_&*uhDYGEDgdI4ZtI4iXjj64|5pMB z;GvO8bm#qwuDCdfFV6v?0JnF=7hSp=U5n>yh8$iA4BBxgxxz-4T7~hc9faFIfakyk zmV?EDI*iLlS3~A_!YUU!4@z7QI5kpb8&&S}C>G<}BMTLuQDWSp$D@Q#-3{)$)iA$X z(5|z1_1p+cS+)V=ViUOKjt>qbTGx~`yKJX|crp!@9lXuLB@I?klo~9-Q^Md41vU^< zSIC~lL-F**{U|^Nl60P1whQN%73yvLa@k`pLV7FK1%=Dtej_PT-1pr6q1v(GO4mUT zf1ea6z=g&P2m=j%x1RGjs92W@Kji$Q?xKeWBV(E3mB77CE3Q7ZbqJNv9xkU|ni?Cj zwg2^a2ucG}4vr|g{XSkzcNY!HlU8SBX^=D@sE;}&sKQsBdG8F$MgU^!$>nDIEw%Un z?i)Wj?~Ts(8`!yX%~y6-qy73icq6xOX78fZcVh4LApDJ>1M4Yep1FHTtb{AI2Bk5l+hvJ<|UjW?;GT0Xr)9;<}Z_fqh0 z+36)$ePQg!2L%`#W@wxRBBYLm9RYckbYk$2liV&H{a8?GW=kl=``B>D*jtkJ$L|4R zRafidoaeqNY1p4=tN@xo1fGe>!HJP>wEt`XNvWaz z6MTv=X(&OXme+WUh6^PpM#jo~qwWLc?tB_43$mHm4^1~(LBwKJP26!6&28g7r4^#| zf_m6EhA;3g3TU1c6!XGZ7s$Pzf|U$v_GfD-lL$Y(ddd$Dq)~sPE2Rh|{Eks8y*9CKNEJe7hi9;PJpp!un%JN3yDD$zxK7YE) z4O{X20^oWlEo<9~sJdS>vhhU*V%N_R zAu&)rkssfSG~wEh<$L+* z`q(sO8y(fl#MmW<`%GtgN1qp$V+j(fMF7OZwV7;?>e7U#hEZdD`hFQ+e08(`f}ybL z1Nxawp4Bu`Lnf7?tMW7}6`DahR&LRbIyTG^#lbr zd(2U%9`5=muPTX3kw_Ab1=(rOemT@AJJHD-1u&IDi3-G*61f)3+PQB2r?UBk| zmY|3~EVO(==pd>S;w|_0hf8OSd%=7(Wd6lnDqbKfyCqIUQAu)li%Zctoj4T|v5%(WzRWDW?Xrw1=fms;}w5aG6+2IsJ2eUWwL9 z+uBmVPBLM`Zbf{m&b#2LKF`}i#0B^(G%y^itdJ>i+SRg^H7R87c7!g>=9RpA)cFde z3{S0Q;O6eP=z1hzmBDb1#*5on5td@%Wu~9_Y{|~{@HQuHcbW9& z%(@zirTf21Q{E`71PgfAv6L?aC)PnzzkC@2ecYda-7p3BlbwmyJ3UYGd<8^s2k0IR zuTIt@>D=tKl)qOF-?$%D756hzCrcdZz;cxLosFSxF9dU z5b1l)AMI+XXK_N4UfyuG&m!Szb8q-%r^z7Y+H?XZAkxpOH=hiuV9O`BXD_m*sFNgl zc}9~jR^d*2K|Z*Icof8D-`+mOHxVb-PrH+zDxM>LsLI~;))l2~k|0N!>}hRv)`DvH zMJrk#A1c$jSc+qC8~>>J_2pR_p+ILt4jz(xcLmZjM8cH?u9lj}7z$bfARtGzIR-?` zywA-e9{+0~CX_F<-{XyPBja!WMvcYB2GA$t1kT(?fm zFV~5uCbio$==PfWi4ySiBxm93oYv7YR>OTt`C~URaL24bq>!EIIcFp1ysU))3Bd(M z2y=7lx?SGW$2E3X zS>4jPIXg(X_i*R$iSQ>5l4gC9U$#qhGW4D~%t63AvLkV=1rh>n`_#}bD((x~BL(Sq zK{jg{nhq@G_VB1`-c+$04=wx)2kFvBnhuP|7!=2B;IB2PRvdv1^!6%5(1}=#9op4{5qHlSq=1N z35v%wKhZ_ezNt6A)&;wb^;c43osC`PLj5&U*>0YLCE0-w6jCQV*eNit5W;S4`=ztcpeVa4Ef7S zk=x_b9?^!4mKSAZzgpK8VeB8sra;~n>Yc+hMnyMn(r2VFQxHa0z5Dx42q435r-*H^ z)9ENbjO*P^a!hNTe>uUi^TkneWnbojEXuB+$)kYLV5j)zE|4k$s|M$~c42f~s&We-RM!`b*2+vR05r zr7kCz%wPwN4DqjKk&#*ZCC#MMM`jyZ3pJg*S;UC~`(#BBh=7g|+LQ8o4%e2{-c=!L zYGBJ36p~U@lx5WVDC#`+mY!SLgs=6;G%sdd z&U~HT(KkdWvy056fqasp1Name06>6z4EySOWKoFCptST?qu9XO&#{Qy`3|%@3j@fS zZYJ*dfLMC5I{l7v(dgKPcaN%$2+^rNH=26w=0VgEu*t7T0%cS2>tFp#qk5(^6%%s& zgIOZ?egL(+lJlX}bQ`E~0R=%(ezhI}^ZDK~S5n=y7r#dexoc-yR3893XcZ`T{3+r6 z$R>`^B_%=f)QS0%p7mG{7g86q*Nj*l@W+qqNO?X36GIJt!FE_)Y~?hLcKA2?8xoM6 zt3SGN_wa-1W?P<+KrE4Uy*W+ZiL4QeYx5YmmrRgSRMy82Z{bmJyAxzzAs^N!&Wp@+ zanD7J7H*jak1%Czp&ejm1l^*XH9qh6M0o89@k!qbg~YVWG{jhsZ&BujGqfr?)l%!?+?=IXJ- zZJP6kU(<6g9;&p{cPObB`P9+si%yANmPcnCxzj-scn3w&w>dj24cv2kBpk&2g>E1i zsNJER{Xmu?b0D(x(JFKp^?qxpnx(E7B-O>C!}%wz?W;>3-ZbB${k4VeNDD*ir#x;# z`Dv=#Jvg)&WOv@G{rzjrR(6t8aNKimD+0vE8-wSSE}UsKQJ&z76E}qf`x^!RBep7- zWGg!3NCzKJYK)&yW=(p<^X#*H<==&d>FvlWfFchYeskS4OIztuk`!_HWhdm%@Y-~Z z;Uamp3t{pzUrxJ!_i7=#zq&9S%Rv4?kHPDivmSt1rg{~qgX5;}U!)!Vcb5b zeT+&Im^cy|&E=(~n~|nXMj~`j8pT=KjSD`sDdz6mw_FA*26il;LqDgQk?14x zyVRI=@Hk1frrEd7=KV6Y+4Ru2X{3gQ&J0)d9-h*tnJ#xyCnu~tb-hHrr}1~g5&*-X znks26k|ufMCL*5&r{NZ0mYZSHgu7 zFR0bc#6OP%lvEk>J|SuC*QllXjsqxGoJ;nMZABK%iz*c8)1~mo$vH@LHh(c^LL#S}@hrFlU|xDoLDqd+KD3VUzYuaB+DO3B z(*}M}`L02{DMFQPASZJlfu1JftDjk1w9`2KB!vn!kV>2ST4D%IsTPdX&y%}x+k=<5 zq|zI{kO`J9*$!zS|EL=UP$Bujt0XG`smJ zG#5Xhd?oY|`naAJsCi8RuRixisX`p!x-BCnP_PpaLi0;o25#Ipp}Y$v3*ECEqDBqh z>Gl2eOhit3H+9;c#SWduj)(PE^i`HA`K6ld1hh-D=Cot@g>m_i%-Mqyopgg@Y9Q68n50c__ z>vU!qVlV`cB*wl;HwpxHnE7p8JrS)Yp|8=&4_}eUxN?H=>x6`lcq7s&E8C@)Q7RUh z;|7e808{!yQ5Q+?a)}}IQdagU`dU3?a;q7z75NaQxoZl}%@Wm^c9*QD*$06Wvy)-AV$YFcUii27yiJJ{{IM$d_5{>t{K?29FJWw3+A5nGM!^eciJX&4)Fml-dk;1lAKzXf;=L`2 zIE2*DoMv)4KDtY}3}{VXKKGIr$#tyahuY@e>k#MlRYAAVG27y!%1&9<6t0fYA)S$P zzWKKOvGL0~e?gW?+b`G|!ecZoEV7 zeUaEUh2(5egB%`#&y+orJ@!vsC zWfCXPymX`~vh;6RuxM1-PolOQQ?;5`55O6fqbl>%38qf6Ni~=Pwh^6C4wF{9z^42%aL-qC`%R;7<=7(fO7pCa1Ysrb=r z@1W85tf;I6HS(5lAf2U%yHu!d_7Aw9iIagFPEk=n8{mYw$okIeJ12khsCGH+>?1&? zm@OxeJM2*VcS_J5^a}r^kZx~mS3!nC`lD)*P;Hlq&rjBb7{&q|(AhplejiI3!Ibjs z=xfVW6DJoA2h{ksdK{y6LGFJpcP6>G4Vr4dGLs+WXuwN5jTBSH>?yqzwp( zOU1f#<4VTxaHUhPQKmtC1WLh80t4*tK9yyE@SP?LBgrH_o;s5Lva<*4__&^sW`81t z&mxOD#`!HKE0L~kd8!LEI_X_>EkTZFL;l4 zBdP%Gw~sJxlduL7t!1-6GkR3#_{oA+tPu1?+Sg%*HSdaPgSa-9ogD{5)uB(B+(6tQ9W7W2Z=%cR#u}$^&39$m~z;^ysy@LD@ zf#AqRG5uP>hR<7~EgW;((LonAzMXOUsOu9@@Rps2lZsC+N&K8&SVI}Ln=m+i6*<%z!3MDO&7OW(8nGqbIEt) z?dB2q)pzJ$XioxeBOm&<=)*fbS{j@$0kAQS4n$aO;Ds48J#5}jBw~`(JZ9(eW`>k# zDyibqyBdqzq+i}PpsVeT%Y#0sUW1hsk^1FV18ehNNnfw8Ze;za|2}Zah`m&U`4g5u zG<2a5j_HuH5mryToK7usn-B3|A_F0(Jkj`%GKJ(G9&bZ3+5x3W6+*&~OF|YcjR*HP zN>6Vv7lQf7uw(S{-YKUy^(fC`{lT_pGFBPwiT3NO7fJX6sO!L^Oc3YkI!G5daUKw} zS-^pAo}y^n(lMROzhgL6?p_!E&faE{l7ECn)TBwDRdk_EI^(XqbCZ5D zk!N!>+ILuYLp69F(O`C}`d%G-rTxq(-Q=JxClb(t`ax64`nPn4j~Q03*;JI}*ybRW z(4k&8%r5oXa3rG%I93E#$N%#q9p!PstWl$1#@#$oFuU@+zkv4cz&Q92@c6?CWF)b7 z=#)1G*L+*Kn^}O*4*> zBF#egLa7LD9-r<14Dyb762uJx4^TniEeX&HXKneBsG5cSA^WT;_*1yJQlulpg~?*6Ji5yGyPFiOVkGM+oE{rj?-BK| z9k0-iF#BuO9(02+B(rfN$wl&|Ae^1v?$Dxn#Layw3`oDOH5+Vr9#56Y8a^HVFN$ne z6vz}sxO6`zM^U=P@s|Mx>?Yy8H!@`vU;Jd~623dzwXmxlftGmkAoQ!o!mIu^=AEX$ zr{)A(O~^KS=YKKI(td%zT7B!{u*p!sze0Kd%-9kEin!-cvHkdIvPNun6wIX~-@2X4qXj0G_Z$Xf@5(gNBGw>%@W~5$2KB^9i>yCl z{yuayF^t}EjdtMR*b~Jy5Y?0}_4W677ys*anPptQNVmPTye-wvM&HP|qqAn}N0)IZPTyA7j(ji=XA(Z$X@wl@V=nZ}ZlTRu) z!}U1x3Q)1jZ-dK|Ca_2AgQM@Z^)yGEADd-3ms9Tve z%~x(spajioGBj!nfMq!8O!-PY{^0oC3{~jS_5hvd7qcIve1=-=VKFFuNu(%lHl;hP zwO9v>wkF!DJ+6u$8$i5;g}ue;1!s7cgddkg zwBmzaqu2iP-x|A2+wT1@P)rcC;tXMp2IQO=TFjz`hX1$s=dA4P!U+f0CyqYS>@Q=h z65vJ6bZCpprJbU@ZE9^=gkv$yR=XPf--*QOW+=?5o3D1`jC{{+QV$Uk1K8hh@*`o%pHpSzKLHO5 z==Fj;);i|IxHUh6P@?nJe1y95621sbWR@6#i7-yCX2*a#jA85+y0~w9on@D)jH*_Amjz-fKT|J~U zTwwui9ZH86o1t2?nW#u|Xuo0^a2N5J|!<$aa>k~T7pvU2uTgFr2<;Bf3lm`j>K&>J;-{a=L?5O z)x#^=?iH8dgm8t~d`ID^H!7H-O8L^@N<76v=a}ZMJx-o@7%s^>TE_Wi!)Pi4{4k2F zOwyZ8SKNkOOj+b8f*63%XFs;%)t^y&?AURb3MhvK>*AJ3ruMl`GCT-I`_ZDbwwzA@ zBv&NN`vvjM`PHI}ns`)kb|HVNZAkOK%AU1(ZK)BlsoSchD9F-*-;XVD1M96TK#7IU zTC=THbR`_fxikGL6R@|6SCU3F?#kKL@f6^pdXRqY%3T(h zcurw?&mp(7&X1=zk-B4{XgDo-ypLqosvC$)*r`au9e00N_EqQ2$ABZZKNPJrfm1eg zE=B=ZJ0JDBlQu>ijnRK<$!gVCU@JP_ByD@KbiJBN(ur+?FD!`L^^MwJeR$&ocP&6~ zmIpJ$C$*=$NF$BFO!*>B*zF>oG)lJ0H{bHp^jq42fBKFraKRuL9$p``qT-zx?o9?dkkO}OJUpnvg)Nx zgMuC{TtP)$#G4T08_PXEH~u31bhC18!hAMs?as2uc1Ecd?Pq#&qny z08!~teQRCbTg4`g+!qq5s440nJe-sB=pPp_GBHGrY3=yt>WjAbdoTI&EqF=I$@1{~f+>=>%1#x;h}c6H;qiTG zP5kIS6)asg3gR*1f*nA1+zWzF(Z>L+aH|`5@8@eYh6lyczq85l#;+J$;H%Pd|GpK* zoW=x^8*R<}RJ`UEHGO;_bN!K0f$Mb8&{6VL#rv{0CwU8Ux|se$giVpAp;^D4zFAdVg~4}0VtVW+;xnR?TQenM7AFFSln2v?B9VJbt*hkl0?(GL{^P#2X!QL)+#P!19@L% zjpe6N*HmR=yaIdSd8>W7giH}t=c%@cvH_Ld9q-bdc))C=8_D-ZV6x@i1ybYGRkA&!1-*zrEt-!l6szS2!7DHAwVf3D=X(AD93~Eho=jcf#LM6A;(aX7nq1z70{c~s?1^OPKjytV}5y2 zilh3e(k>e+1z!4Gq@U6&*sdiQ!+?JuC|v%hHg;=9RSFsmH+x`)Ab6G`YLVHlc{eF-5=|;_?b1z0s`aam?p*7$8jQwyje0(L1j#tFO%| z?;`Zv`(60Yl0~HyJn;GRFwECzgDKJ|^ww*5QW|x(TX(C8`LA|E5-YdZMhl-)K1tl_ zcQ7d^B3uK{z*agNJvhZ>Um0vK5aa0_oEjLuHm;|28TLkEu8BVGC$_eTh+!I4k%6Ge z@l_wHeCDG2%n63>ldy5pGIszyP8eai7cC|GsJ0LW!hQu3t(sXC845o|l)tHhR$b`F z0~JKgAz21bT=`q|E$bd0gnH{A31jhe1HKZd$?i!nc?=+lHEjAcEPKCtB;S~h^b=Q$ zY(~DGNtv4l89M&iRK7u%7F>0|VRwPVE?Ajy1kMiS{=5;g|G#48m{*i0S9kXBUz9+` zEHEwg^SaZA!RYDp*@``=O1<)qn6HC}u)Q}gT!sZ==cZhu7hb$SkyA(ojnM8C3CT!@ z-oA~~=YsyrFmEETS8#`NVP$GMjFJrlj1$OA`{(!AvR05KuaJd!QAJk=?$@7>B?L3g_MN09mDoJez!Sz+Tw*h&bq)y1POwxx(7WS8Gq<7>JybGrrj)p*C+{F zafE>dsAT&^HGsA={cO2PzE#nRQhaRR$3MJtx$%U}bky$oU%E}Cg}|&jvtYMGBYS=> z`%^?orB?z%|2xi(ZBUfZAEBN_v=B%$Weu0d^$kv5|ZR+^JCa-0*Y^oq(9%)c?-6r9SX2!k0)bXqz^ZZ1pW!iNhio z1RG!6csP?BJPxBn#YEsX(3kI5;Nlt1m~it(14NK|!_ zQnK>oP72VVHK@!R-h!z+{p^s1`dHFRy@BGZJCgTdB}T_LmNp>7X5S!(AVLW8tNle2| zBzr*_84+H2siuv5O7+w@5+uF?`?u=Eb1mJe74kOZAvYeHNr`vk!lO6%Bo4R-ia0k0 zD8Fe>oY39CC`DE$gDS$Ypm2#mWTxK6m|F8VOK21twyS%aX@TIp}T0zut_03^Z<578=gHcI;(6|jq7bqe)Gx50gY*{p`4@egd3xvo~Ir4c@ z5X6D`${ScHCGey53<&A-g%LN~*7G2l>9P0`hws~y^tpK}WQJj=B%MKBHfA(zr1oE& zMI+dg=Na1^4lBl;v>i~!+iH>Pl!e6HlxE+;wVfG+DQl#Wq7YKOJXIr|=8+->48Y-v zgUwmQo2CbarRqy@9Dxv*Y1}YYs@Y~9VlDRDtIz0Iz#F@a5~G%4^zW>(NqGZt!i1x@IJ&`p;!;bLx88OI$JlOoOP&BN#QPU+W?VtvI zwA@||)s_~V&W@#0Qyd&u!|%=%no@!+fqO3p>h{?W@k^|#-rRd~Zo8!Dw7eOILV-Gz zxK%GOez*@=$XeOjP@bY`DC?mo{nopVVO&k`s}|kV@-7GK_Rqe%Okc}4He4snKPU)Q z9fga`&Jn=rzwe!FL7XgQg#>c~?Ekps0J!qaGgftEmK>SBL5B=_%io##pz`q`BFFrO zy6IO&{NwSWkD5+e1R*j1?EL&kVH_tzp%BBqA+(lNE0CtXj{`M}xHpNMuUpo@Y z7A;S7YEavNX(xEGA6F5H@%{lJUqUZ@)MvSN`bfr&V{t9Ng+6HV_bTz@fAkuL0D@;C zu&%(}7}n6GERU|lmE-Qw4iIWyM^fEFFm1{|d@0->R9~A<(DHww5Ya{w8^~D3aoPUf z53Fokt57`2J7K7s-0@8DN?m9PuaTy3^GR+}ZXpD$z8F z8I3&AkT+Lu3#|9=VXR0-dVX)a1;M&=Z)n!UV7tkVYv6n8U+v}svcg#I+?G(1c=^;3 zb2mgox@```407R5;CmB?6a}Ve?3O~98@qU0{r5pDBH2gJHm^ZB$NBlA%ZB&YD#}_P zya&o$St|Br4{-}8#-cF}CH~hBw2U*ZX8J;Acpq`Pesfm>Z9p@yE-f44TKIM&7Q&l0nvO4@)cjHj^W_!8So_#$p z$DtHLAUxA?3DdQJg2}UGKykg!yM{2VR+)*OiWTX#7{lF^ul5gRM%Gbyf{9Rnm_HpU z@dz8j9;)_lOllYISfQSAH`Ne@dcL=Pa;-`wFPh6yStXV)J2}AJaYPKI1;}Pk%I4U* z!Ou}?$1^=<$^TmXqTz&3%?Qbz%!Z1Z0F;lOmLOVo%%BOBG+Kc6TqF)%GZwq~2Z<%K zxg!anKfqou@eGo)+Z&#n-;a}P#_Ppx$SQ+#X6D>bjYmgPr_~HYSaLDu6(k@8+^-d zQTCtg>mS*n@&&lIQ5Vq%b5T+bY7umYjF)FSLB~M!cp? zLiUR32vSU9|aWs+W7M9k&- z=VB#cIK;%ioqOHh)i8xqq4`OO$jsU72S!pxWW~3&UAkc|Dp$fehe#s9>BF$H1@P+# zcpt2W+EY+T-m}3=8dn5J&Hqei;Uu%x1byC`$k{ecO{~djviTBE9du6-SxgW!8p521 z`rRv_qaJ;ljG{|}qwp2uvrM`j2z-vsdvBb`e{93gi!R*`C*Ouk=NF@p1^uzJZa^m4x9Yjzm9 zx#7a{p2)dE3`Q1Tg)IfmJa@-C4|jt>wTmPjkg)r7o~XMW(bE_|hR=JB+Nwju?JR?0 zgMyQL7e#jTdrkXWAC`s1Sy-P-TT}1UlB;7^&I7oARsSdjYOxEM<90+09?wPFzXA>4!;4+^Ctua~^1)jmMQrb1mFZXZ zKY;F+llK`k{TMF(#jz)c4dS9q$oU|?gKwyvUhA@tgvR^KxlyLWH29~WGCEOiAu?UP zsgbrs6jTbGvN0RW^QLu_GE7 ze&Oo0hM3~6n8dD=9B%b@zVo}=3DBglgeyVGGnhV>dj7I3Lz9sQ*9@S(&^sWNA2d08 zq>KC_6O|w_d3(j|J$J-a>*6S(klT$r_N2sdslR4`Aq;E`Mg>wAU&84my4cTj+;*&1 zYIyJR^!?IfklARm%)zxmc?h_3_)b#Pg_e)zG$&W%<%J2Nbyk<)&t+Jkl)=fI!oPV4 zSp@#~iZHU_3;;C;B*{Zkscf$@DH$cs{69aVbwW+W`#|?ly^>W?jD9nnd~6yIFPU8P2{jLxj8`#zfD}hFjT$+Mu5HISh6I!JqOP3+&txY3qrS8o&BA~<207Fx#ht-X^`;No@kwe5fZ7-c#VOIkI|32MPY+)zbVq_(n9v8&|k| z9#FR#W#Q06vF<`u$m3lzgGa$rJR~PMqna90sj9L1=n&I*#z=XyG*~R~h%4Kzn;n?T z+j!tA2yG&z5lDxcV{^S|HL8tWpHTI`hmF>nCRWh?=e`v)sH zqnM7#{T?z^-V29EdE?SL!Vf|>UdP1ybjZMq<~&@XL8-0)^9hyQxpI3t-0**#GfjoM zSG9gKH&da-hE5ByLTCuNET*F&q9|?ph%q=t@>t{s;^|X2V^2a`V+x-Xc?q%a_V(_o z#jIeYkE2i7$}6MS(+*1a%bl#n*?ebZpJ4>jcl~@2(ee;54Wr17e(nOq{{9EsM6+zA z*Rk|_+sIc}Ta~bWYHH}6?CDDU9EO;ZxJqDFN_ua?ppl@co@iqW_c&a>&TZMNZ~kOz zJ=One3FXC#hy&hw=?FH9#!o<%D^dRp)p81I(ZWbRrI)r@<5pweRoHEypiB!q;@8q~ z86%Gy?%ximu(CG!{8dKediBg!+y@bc3u-qYs&3yC2iaI2@)U(&?V$P+88LH}Q_HIM_{42MLX`IXI zUtwCyQsQ~wxs31I zl#I1S(k}LR-*)2;2t0}!+Po=~&!e<(2fNcOml#w)%cJX6f+$MEMMDlodWWt|A$e;N za{NI0gpkNs#nH&<-dPbh0S`)g%Xcl?z5CD+MMkb3r|2J>cA)E_;VEL*WTWPm&UqcM zz4#r{I>w87)xCd}nEWi1Uz}qUcl46NmS{{!<^0A)Bl?M5xC=80`OsH7BO6}#F7u#WuVF66CWjWE7j(k44}6*Pi92hTy`VUI5zAn2>lG^sg$@U-;kV7!>UB zcEm}7khdZEvrt`dll&#DMnpBj0rEv0&e8lMK@xA+*dh$C%e#%qPqe-jdf3@?hvu%n zWc;BP&P^h8g-b4#RqNgzXrpYE{&J|_|3t)Kf!NqUa;7@hZDtOa3I}pj>%6b??6fuw zc6TlP#dHL+i3d)V*Q@vmN>%XAsw=yJ6Y z+Cn~M>Dl> z=R+}HWi(!w6S=V+pKC=gb=*B>Imc6kGs{DPc2C{!B$N56ro-nG@RT8Sk7!n`+k4IO z%lOXTsXN_0WCcx{Ib4CHH-FK-0jOkuU97zdk%H5utw3a-?6zUs! zL>t~Y9SnY|d6_JymT)MdaPXqwI^LWE!rPW(w`z@Oly4 zEOt)N$Oh|gQ8QjGUv1jbn&cd;qlZw0Qcb}%EZk^|dwpO5P~ruIN69qlW#Mmm6B*jB zpvNKEE5W|Gw@pdnpr#PjUq)CSONcSJ%)um}GdKfw)8cJRE$0krh2T-whO^+=3}yC; z<#l(C#kOB!l?I_j^|1YukQ1TU@K^KEGpQmM*m&fDPoDBlYfIf7<3iб#aO1N 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

    h*R@9Kqz^PqjXVYOsNbklOE}I^#9bm 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"UsJ^rx``}WwNtauf~U? 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 Sb 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ⅇ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°^!6JJZV0KVug-bLVLi(m0^C4Qy56V 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

    8t8X?Yf?5~wux2;qmh^Rb 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

  1. h$iTmtOxmJgPyjN@l9ek>z|CJ- z?PrCvvN8dPPC8&WdjC6 z6tLqVBo_L*W80l6@8Rh*V#-=|2I$@LjJp5t545XdL&YuD{L^O>WYugAUh5$t_Rk=- zzNx7wMF!mC?CcDm*<2xz;K_0+6(r>6N5>*7Gv_3C&%S8I4LLhd=gl~>uG@%%i|uE> zIR*A)%q6hD!0lQ<9$HLv1k=WTv^L@QK|uLEnxJ=|nABJI6-V-#uQ4mEnf_jqDpNUJ z-Wzz4)}<7k;+zrHu^H>%cQ8oT!Ie1bMhb$Ok!>$#!^5g83k81 zw7_z>0kTR@3^%1>sCdGoSGwxGZ7TL{hxt;w7sD%+5Z2k;PXMl&AmWJ>6zze!sYSLL zqAwz3kL{CkhN@hKEuBTZeuOVM(W)5B*@wLQdU({9$=CSuFFpW3S71%af`v>rVMFo= zB+gsPTW!y!jmIZhT0!KDR{$CUhl>Hg3rKGK7X;$qd^a>CBrGKbCm^2=zpHSFBfeg`J#)%qTPC6GfxB83}V3{h4 zzc%fn!mN*#E21?a*0^dBgqw6 z+hgOb87Ge zPWYz`Ie*7q8?P7aO>w&M+(o@(R4jE59vm-d*ObY_3H~+B!k+5Qx^c{x{5vD%Gxfva ztA4lSx_^=&c`1A;;WFX2{TG$Uv|r3PTxEpoH9DOjr-U$-yVE;s370~XD7@m^djSCz>3takTUV{oxV6@(h2p19>%za%zyxwSAN3bw#gknUvX?{ z0#2G3ls|*@lH$&wd+cqj;9yBk zD|qId_xA1RJRGi5{C6psG$wVnGQU;oQ9d#qf`ABv$j}1SeS|}K z5V|UT7n{mO+-p|w-fvRt3_igd56b0#9gv`Xu>J^W@N7pY{?|d08%>SwPhp$M;Fm=G zs5Q~eId9P`ACG#!AVWo=sIsW|i{8|0RRux<89mc{tY{oKO7P_gEI_VNjV%2O+U5iP zzZ!{Ch7GJ@;V~$<-oTcctjp>lS%NNHb(wL(|9~z?;kKX?3IyyM$ejv&86y)55Uz6? z(e+Quzal7fR$5z!3eGB*u{u7YPw3yf~Xp8h9$3vs=7d?b9?84MVhD7fz!; zWX3x1yce-uCiEVjk`4GcJVApl8hAgQpA@hWU^;@eC|YYdj$)!GHZ+jk{m!C$TOTOg zrh8v4XgTK8@na>b6M?2{a!yG;@Hm{Sl6Ka%_&pIyHC#e($xGjRJc%-Oy{k?|UZLi& z7^@q6pT*c!g4ZT}hk;lx$K6F!5`VYXC+K;@#V(X!qvk@aAW3$=Z={m45zA6DLU**+ z5UEQs)I*FhhPN#Fy=$>`uFFJuooVIGWcPSj!Ah&b4rDcw6tF6&=ml>bsO!+X%IFDA z-%bQsNnv1no*uI=Lqrl#Ih~X{RsL8MB@*;(DV9j+Ru3OE;WXyNUP(l`*+sOZ_v(HV zqde3-(2Xtv5DXd_4CeShzgdl=Z7&ia<5?X{g;N<1;{9lHfi?jP_)NDSa(+Uvx7B7n zsAY4(j?;lsNH%DOYPL(Ec4%b@I(Ck0d*9}+vCJl(9lTFHx3OIiy;Hv^TQ!Bv}7$iY*_qgi8TKo#d)6Y z`YbUPkx?aKu$sVn2+mK^E%yL8iz*FKuGc8pv0JS?I{@btq_m^Vkt{PqkUkc;bSmKLe;1amU&e_%0u{k%#AXnV(cKL zJUoV#dXbelq_*a3-eIrOg6nsZZCc|sgd5-iC3~>J9IcqUbOWv%ss6yMCGJ7O`5Up( z9R&E2ih7yW9_P6_1?oC{g1L-%5jQYj`dyVvFP11s@B#J8u`UIRL!v1l5>4 zxX&Yb}Ta-FWyha%Is5}lBYIO6-ac*2xQ&=!B$Etrz0hKA5|=b_!K zv%=g;a2+`j!vT*>;3&?vs5{IJY-UJd+kmxyNjDWqTHS@AdLnJ6ki|(!#0CuOZbiq9 zOj>$-W`v-g`#Hug0>cXkOy?s|+yJbS@7OhqNRD$vAa0!wH1Lbg#@1S^n|UmUd$-Em z0FQ|_1EF)s3{DOY6pG%(oM^n-pGsF|ApNJZM-73(vF?m zleO+7rw4x#hhj>#JF5;&rphVEYbgAd8calb^!Uo+Kzy{O_BA7$L%{{&oZlfoqqib| zKJHEc0k(U=q;y(5nGA*|y_-f!j}o(E6szZ%p==qP?nuew2}4s}MPt+>)AVJdX^?TF zgJjrG3*oGUH?{=pU23kaojh1q$>^WFu>ARLOkH)uehK&^-muKL)>mi;#E&22+M`n* zvV8BaO_(h+@gfbNJX%NY^i{q3PO_EH*;KW92{gcDt0qafRt%MJ5`=5frvpD(m%?_E@(&xT#Lc<1+fSY@+ z9y^H!ZNh>aj#Ms+@9eNEji+FU|Nf#>WIg6Ix4Or*UEn0uO%u@C&)QWaT6%<)S@BI{ zI+BS-JKZpS!>3R~{b*1yX(s@aipuZnROnl;U6g$Fsg;=K*GPl9{oLOy>$_Q`s9;^t zX~JrPLYr*ZKLh$L1MQ2e+?G8^$7OUOx}4ho-3h%@%B@#bP?MRBA8n%ciQj?x+E9-7o^ozCABjg zmBmKIhaIt;mTX79sY1O2*Co!F-DLr)VcMK>j+-PM68|O(K(2Ksxq_;qCLXF=z%u6F zoejF!3&<3s(dp1NF&)DciMR^T3hNpo)Adb$3na|~e|M&v*=ETP38}y0?iT-Lc5 zCzWG7hzr%^I<+j{xd5Zj5F;zx-Ol+0Piu{*x)(~`fk2wqWoz)u7(4nB=ZMurvx16k z=BoDB6Iibd)_GwOE*{z69-8E~tV$$a$C^MJc@7v@MIXf$Yyf9MroZ?mWgTpV5 zYy?t>gDv^PB;E%@_5RX*DuvrQl2*xq@4UOxYl@NiV{IbaH#3NuRb@CK$eTOe`B~#u z;CUVX^rU=+9)z^sz?l}?s&gOc`hnGASix@nQ!fC_RE?Z^41shI;_~AJ`oJ>x@LXa! z$sKj0nZMNX-Kl6kMv71PA*f+|SSsW2Pi3;1Ka06NgUhTeS$lk8Q1lb*9!7&IEbcwK;UHSDQnl2@u@KbSlr?_#R~sV($jl% z{L5Lbg!6r2=Sefw>DSTa$-pRJSgs%SUp{g)-npED)5xIJ8VR7i$-B`bn3 zZ(Qe8NKwH^?u6cA@V627ST_J$Nm=c$X|eJ(jiz{dn0YsWQ2(|exWyi_6_{RI5A6@o zUkV^smUdZmCDTAyO{Fb7PJVJ(>5fNhfS|cPL2LH^Twm78%V`rST(#WDs0VL z`rU6mZ|jiqrBSQq?RP&#anh@yN^!24t>&-5D*i2)F z!-O=hcdJY7)&qlesXSCM536MB6FV$sl|cWEIoV}vMs3MD3oXOchKJH8=sR_Ev51^^ z0=yICPT~V<-N@@Mh7Ui!hQQs}%|ZI|Bfw4&ndNq#DvLnqb<9Sn72!ZaZ< zmffU;r|PaVptg{wnK-!!BGqN8xx{39!9DaLo;D=$7j8nD2du?Er^R22rflK=uoS`R;is$f8bkYZ^K5Xf!%dL{%hmm^W zt7u?HYV572a;c(NUU}){T&xR5F1-r`Cqqitgmv7jY}fo)$_mzmW@d-HU_Goh3p=}X2O4;PfI<9y{dAJ`Ngpg0P%d#JY>#&^d7cfdt74*n)`^@D1y z^t#wQKyw97s>c2P;M7$aYt?06%-Jk~2eSn&g!~@M)A%{#<7CU?22%9?wg0B^YIUrL zzT?npa#N`Xmk3B!+d}(K48m7`f1f*-4X@;&3sw6Oy;X#5LialTK9$p0# zPAz(;2?pj%4dl`R^v4mtBmaxkr0yp+;R59c>>TJ*g9kld;09 zmE$~9W<{+P+Fb+fueT?-BBjug|M)+W$Eo*<~`o@)3)m{F@{^_Ct6&$j9t}C*< z0U!}hKk0c=zlQ(s4T@I*(rEc($6o^&_f6$A3h*5FVuc2t_%!aNJ#*{JFiQ8$DtcPL zexN9C1N(SmAdf1^_qREudaqunl1g&Z4fZ8LV;M~WjyL6KC?ERhG~jK)!*u3Vy^i!sdA036P(Aty$Ek%m1xn1 z62WcVTrp$0KtOiM!5cl9QF$;(xl2NyJhvpFbrIG&v?~oJd%@OT4pghz**=GU%3;yWiLuBqI1q%9ph7~u++#-#f3I2}w~9EfT)cQ?xfmtKrU z1Lj6CGdTO`x))HZ6&Zbo{&7EquoBvxgUjH7pT(rj&pvQ=MJcy4gTY8mT(~EI_1LZN zhURUSesUNBa4_9m>660~|5H*_y;6QM{l*kY&IC)mw%D1w^roYo74=n5TM#hzA!kzd z5w%gDA8o5#&WS$K98NOfxR)Xfj^}y2@-oG$WUu8*xD%QBD4NU+P_yX99{OfZ`m0i9l7b-nwQ3y0V0=Av~kcZ-o+X>gXV|#cshU zxOHG|dz&_o9qod1*-i_`Q*dNpbO1W;vUo-${^w^9 z4iR25V!*_0)p^+~=xZ_03qA)9Wlfi|7N-9+zW2LGA^!dfbM--o(LKxu8=Sz~VR3cX zw)Um5KjnF1Jcaqo#fEXf+M;EpwE3gpz^}!Q@jEDZKX1ES3*?R z@H0*Y{B18esc~+z{G^al1VcHBU1u!T_Gj_mqm7H6+KL;Mdc5WKw3Ii>KUqY#&F|wg zJbZp~RW}Us?R_gec9fL5wxlTTI!eM%si3(xW1~Y9+0$O^^-yS*@|C2=XU zy{Z&kn>$e@~nxPsV z{oGf|AL->1{z3Xqa16=%eM~Dsqv+1UT@zF_m@+`nHUWz4KWKJoAC|mbwihZh!Gi8yb&TKN1l3RLDx8zvv6Nc7y^4fDSv4#VDU7&E zeR+pTMonIt1D9%nhM;&KzAgSt&I(xzZq*W_yTViZRRXL3wRXn11}sTw!rVx5Ocb0I zGbB9Qr`+V>(ZTajFQ&uiD5X(odcl4X1>^F}PP$?$_N_vWtdV7X2^@d# z0^U9~>5bQjk{pc>lWb1bMF*Men70VMC13b0WrYrLVuj7SaqCBJkePn(x7a~xpG7NE`og$c)DC65IB!fu7e1y6R$WAxV=?D(r; zUg1NIzU>l#|D@mn;HcVOF!ym9C0OZ#U24tYsm?^&$Z|H|1&IwtH zz3lsAWQa-tBX~=TptZume;4d$*0Gj%Cm9VW)JW_@aB5e_r3y#F-e?NZtJ{oCS(!Ba z?(N_knHGg4rtfKe=%bP3GjLTZ9Q+w|mzI#^4rVD*Cc(O95=vB>Tb+wlBU82+6|wIV z&w#j80h0~E{UgFi;c>&I=@X`vL>cug#Wpn&SJ%q)dE%d0F=E*hG*19pfLsuih0D_y z!URR^f)Ui3b!JzqDv6>k%=G9OaIWyghj@e|YJ@bPAIp8O>n%U?%p@P{2Tq}f<1{Kx_|~_8Lwgx{{1(- z6UkC0h$$T*j4v)pyrq!WIZ~>s(A1++WVLFO=!IwDP^yzBFdoXOK5!4}pwH8zklshq zjXubF=OMx3`>Xi9URtkcfS}a5<;gJ8$}gy2$VYe$aH~;t*H?kMn&YHF{>iU6c!`<5 z*xY3rha=ylH_cb#!S3IhBGF65pW58n``WMHHRLx`#c+N8bo!$w1!@xI4?D+LGdv&} zLl~w<7}1zK*(O*h87KWP3Iv}ro7kByFkHT{k+7ePj{N^^G`*-e}T^{lLyWpF6r$D|^JIs-pj4Te=mTl&f<_;vqyKNXBiEr6)k=nw1=2j$N zbx%z&8G;CpWswNNX+l4o_4a8?U^=9e`t_acpts^F~+?(FA`6` zyss^rA_D)*%Xr-}Va!Q5yM`1yFF!JgTN{F+C^6~d!){&RSY3r|N>WS3ki*Ba zFur#@rxDaE)TR3p{!GVYM(<_=94Ah{E>YW;W_@zw)~zBk3-I0VMFi6xm9VV2k?iXy zuI{7g0Q#S{q0~$)(F7h2_U?+B1#z~2X&yt9vx69;Ph;^S4w7V-FInSB^B!lXf{N}$ zmPMJ=1u^WdiPx=Z`WgPFL#sYFcEwh7yaH%QYo++!o<|mF(v!>vCL%B$oNn%%_$s(3 zm6>`58F&3K^=#l#fL+rxV`Qm*9-sA ze{~|j}Nlkcpp4;0M zRRZEk9_p<%{(Me|QUK@+=5v1JL5V@|xqi+U=!xl^l7;fQDymC?{+V-Q zXJpLGjm_F{NMWLgEWj*Iq3{gU-`X;mc5aX6?}uq|*nnd^nhHN$*fN(^l`Mib7q6QX z0vxZfVSATKvD_|%;Ih+==^tkLUI~*QV zE~kUwsMz;1t*B*72vUmaXv+>fEWz(B-700DaG6_f(A%6O=>UGT zaz`?L;pz7t$=p+SM(|v7rgzgwQSlNu=CrTZEXSBa;)W@Vd}E1vpXzy(unO2=fM9E!*|%VE?x?c656PZsB>;>dvKpiOC@UGVG(^XgRrT% z^abwK-qJqlhj@DAf$qIAS?W5JkJ;2Ff}P*T_43!ttRid4A1uei?UE)1GCn5RK8^_= zp~*lO^dIfZwku~<5y6S=%0PD`X7XiPm^q})1l-!FV3NIveIU+)yv5I;i@ZOkeXrYc12gRYENB^6?_&DZm^Z;9~Ql7>8P2n z3l~^h<00Lg)v|ZVdX@En;9s4mLl&^&AEGP|kf0C1)@YGYP2-+Tccctp3T4GoDO{|R z8C-3&v2x-;9k}qdVL69lf7j`*9#*6bPvGLFolJT#2jdmUe4~b$-gA{NAL;dbSWhRj z5bV@7fK3o^tU5Kw(EBZAlEHz=44=pNW=2|J=+AFVEVt7QoF*qz}0Y^`z7l;4xzBA+4E9?U=koX|HVUA?9t)A zK#tBT)ghkMJcgIkuBHwe&kBU~M~bJaG0aU2R-L#Fd>cJCf=;+!qJ7l~N3$C*xuHpV zQ;xdF9Zr_Wa(w^t%i%qmYYw|t$x3tyC)3@fHilpp}exm!iYrd{n})xVBQY=9;9 zpxozJJiHehpCg0d32RDbS!Eufm~JN7XhPtRFoQEQ{+?-|CoS2lM8W zP$HgK17~dIA?Y0?-PZt^<*^z z8<`^}--Hj zDWieLOjVB6kC|I}vVfXbLF=)qOQ@Ilq<)CGu;0y^?OUpZBpeIHE1ETo`=I#pV(bxE z@OPyJaGD0_D|mmB>q3WOQ>|bfSmZqjh-GkenO3HNM zyz;n#j0DMau{=ygfviUqgpLVD)3iXs^~U@P#0Pp10OX^C@rPtgb!aza zQIkmvgu}+4i3+wOFO@-nCdDmd7w+IaprB+sh;4BPY;K&}AM%hS-X~&xpV&+;8kjSi zQTX7F=Eia|_~}Hyt$}GQ(mPuWUr7Ou8HiAMUk?NMuh(^l%4wt~Xlr7kSUIHo;0$(e z`CwLmUQx!Ck~IT{r;H>lD2joF*W$`SS29DYv@oEeK{D7&%K=}ux5tP*hwx;@l?MnG zde*OyPkt2`c+Cl%WaP-V1|h7Qx1;O9$IgOJWeru5Hg5K+PR7p7{?)gNM+5&gzvRVv zDIYuwEY939YV_g*sqJ2@1IXF(M@+J>4GNe;_AL)q6$&SzW9=6!kGRk;drp?df?Dfr zsQ}`(>4MYgXwt73=3FBCc_nS88k@AH~L9~Sucup#%Vu#HjyE`|km<4ot=%#~3i z%qby|<%uy(0s9Gqb-ZPS0VFvMdc#weW+_N1Qf$*0_lDj^KJ_~AI3+$rdY{rKYkYB1 z48+Woit&ZxHsptVlHf{OTkPQTfK6^2hjgyU5&{;%R`7mCj9Lf9pAn6jUqo3=A(gz> zUvq%hj}xM&JG$LoTa6(~$vFZ}>y6i(BilE<&Wxws&XEHRQiRc`lcqt!Vj0H|ialFbxHyie1~YMY!$z6Ks`$ zZFCzf(m!@5lXV}}LU?Qt0OQ=B^_$|R)@A^`zqhWdpe7qy|ErtD1y87?0y~PDw#pM1S7#!Y@uL9Oo9by_W4X)%`Nk;{*MK*Q%()8UDU=;S zirBy%)?CNgf`5sFK4T#8OoLHaff`GwMVd{gL?G-Y)zDsO(Q6I;!ZyR>VPx`!Ja5i# z6S*Ltfd$U58zHOmk& zzMDJm;>1-{Zs48Mna#c81J2;(N=(3qs;9kY0%0Veo>vpcjCB4PT-wNT*Ml z|E&YJ&n7IbPoPa&Tx}e9nT!QdM6h~>k+X1FkZ=rzzi^qne_E4vDYOK!m zUNzf-x6~j=RnVgLY1>fzbP9_F=hPakgsp8YX$4_J^gbQ8Px#j7`2Nab1l|i3p9Vyn zgsu*7OYeUsK-=p6j?*?g;)%wo4yxAM;u%Vq^;AlXZrchqsbuAnb`bWPP0Y8OY>Dbj zi_$#u=qJ^II$vzn+w|~YBq};ZPQFRZpY=~U%q6%<0t~mk#Zyc00m@z&9cHOwvM~@H z3ZCd3C6^6weCb_GeEjh!{~6;R5j#$CeQ1vYU#vM`66@aQ_8vRW zGT5Pq=to&%c4p2XOr;Nbzme1Yy@pRL7a2<^1nbSoD)RC5+#=zL6rxmbRwEINdOw%> zf866xQnlL+Z%(amD%^Ofzp69F_G=S!J&XP4EAW8%<(PjO8?Du|&W^sOgDg|d^tAt< zSSIWYRQd(@phI8RMge@Q&svoshHroHxelKL4TyW{B2+1eZeRYNZJiE5?BjgAqSlzc z21+Y0;i%?qx?^l>M@*;YOw{Ej-;OpR0#K}VL=gjp2dZN+BA-BoRN?EmC4LX!zis)J zX2;7gffY2vZG3xP`qXzJe~Uf-8cZtXyn={EgrqZ-9>O)uuA_9(et}Kygz?Uk8>vqK zqmxCDgdiNj&B{sm#eyXX)y)L^iSbEu@8aZqT07&&n>1rSBkg+Q^MJe+o-XoBXrsa} z!ZJ=H@`>=5qzz|{{NiY8c53!ek*&nZz$>YHtvj{}l{6%*h_<<4bY-@q#Wk+`0Ott~ z$%NCNMzpV@I(YFk^+XpJ!5J~SJIuu~orcS(-46)!F_@<2kBBZMvLBHhEsN#S!7Q6l zFo^}UBP}|QuhxKXwtdfl>SDdN-qKu6m-0J4;l(;S_{?gBUA@dCEkb6iI9xrNQ^0?i zzQiu=Q}>%Ama78xIVpE7kw~O&ze>6ULh`^SK1ftID}lXIoi9|ytg9_;utjk920xV9yN8?DHtdkRiNOd z&_N7qRmL?`Z#Ibl!`oOs& zb8fR-xP0Oc1>-k@jbi>+H7_&4S&@zY07=Z*J#{1E3%xzxz?vIB^8aVSCKEQfdE9^u%W& zb*?@2y|oQYaXlix*vGQbK7>#;_2o8Xi{>6_iG;}f?o@h7PFIAkYnQrEjA|eHBJ*)c zTYV+MjE*kwl6w-%5;$l|(a3Ju`xxAN+8W{ytIhdJx?~Mp&+PvAS4`t8i~Kwt$r`Pk z&HSyKe`v7F7M^%lL%j#!tV<^QVJQNk;!dUnqCL?rFXbR;>tO15nj`&>Yx|EWYOe|_Hl>|4mdF|vkK_*QuEH~Yld ze)B(RAkXQTb5Ro1S$GZ7Jqje$Ybx<3URoa9H0|{h#6hTuSMc}ac~VC*tGLduCuz6O za$z4**7PJ#N>O>&h63nTqJOTn)wljVm>4L1D*NI=fq8I+NndyNuC ziJ%o?di;kaaO{Ma^j8UFKqP<~b?4Te+Fhzwh}XLW3cJ7ScQ4wgW~Hqz=c z*$HsrtG#L;v4Y0I@n>8KX@UxuT6%seQJ&~(DuKO~p$nG6Bl&%`2xAd!K%y(RKP?er zyo7zh$J=C$jn%)AM9U0wM_A_9yUmy}9;P+{o=LwXWcCev`hEpS?l>P~TxU7$l3@0^ zGs^=IJykO&@xmd~jyabAHQe25{wo!cYTr}%zE0-XM;2%!>t-T2RU2_7H#BX6YWjV1 z?MH307ACfGq9p95w8JVwFI^ zs<1DJiar>QKU?8clRQcd(2vUA z@>$PYMXV$whU&!4Rx1`Yv@y%BA}%7DYtKmph*-U&VlV(Z{z6qJ_N(pwC;~dS<(7ND z{%Op8*f^0_4H4)lL_qhPL+KxxkiW&$()&G_5^)Dx|9_u&g!?lEcPV##)4se~q$(YUYNd#eK>Q=)H#sU=n~9^J z>dX?Gt|V#6q3HQR&wCW{Y^@nY?B+gP{yIHvVe4VLQ4T+l8C|J+_=|H6S8FiptW^X~ zT!7S=U?-7kzM2vph}JJri{qdc+Q_Mdm-K+LT84UPUZvU`c*-_G&--dmB7YLCg%Iq~ z{8<&yS^PD4HJ+DEu*4ow>lJ{mb5e0ahJ_*RwnlL;n$p};&K{Af#QWc|WWJfn>XP{} z%<$YD5pnIzUhz*npQX zyzs^O_UvlQkpil`hlx5nh~)d%aBKV#qfOs|dpGSiPtM(E3X1gOUCBE#KKl|2KtTRDRwt0~wx+^Ji1k zV(F1cW6ifro`0@!=P?tjCdyEE>=UOU!?bm+h|KM=m#zhdD6Of9vaS;#rS{fg^Vg9R zEht2zWD!zCV}-0hl7LzW8qp$^Gl^ zgN8MpaiFGF^l}Wp$LfC5h4LuZUUcN#lvi8|-+Sl_DaeI5(z;&&VYDz;zAj!R!mHz% z_zEG&Qoe+zUJ`P&*+8sTCQZCm{a<#^$AaRNIDnC)@`!JDB=+-t3fg1g^Hkiub(Pj; z7yIDLADCe>`^&=Pt=v!%)EfR?L^54{*n}5=3XmeMkl+rRd-<$%+;yH{WuHH#sEkT< zR@-AZi4FNZXi?$E33iK}`tB#3AW+Bt5qrSmppmoK%JH#l)Ws>QZJ+8*=?KyDko*uEK_P zS9o>vzgPwau1rtfys|$PTZ{k@gFdYfr&XL@CcHQGSp=@Et3Kp6x@soTpBzT(R+7Rz zHw_bP02E8~nqOSk$A&j*Z&xhpZCcrpf?TI__G**m(0{l5Hq*_Y;KVpE| z9MH*!Y_C(TPs$~FDhG_;1V!(*yN-hhX= zs7YVR`q_LBU-be_!vDHFY`M=n_V%oh5(EfVH+5C9CWY4Ku8lRSAkI`wv4XF+DMFha z07XAn31G3=rqGT@WkUkcd%VA|e{+r1AmA;P&|##I`tZbs;v|bY=ws;a+{~j4LtiBm zG0C}(Tn#Zejc8YJTWS=fMHxlRP8^dFc)>)K9v5oce4-~7a>>HbUNnU<4+CRZPHjW! zW-=P6C8UZOeVTPrk&%b>Kfr&e3M8vgSJ3^O6r$Z)iX?L(6{fT&6PRMx60Vy|m9_ zX{Y>wz^%Pn9?wtjP3F75W@z3u*=A3Ay&!~e{o%e|z`~o4y$6GVKDy+c((M~;bRyU$ z*GLiTlTCvz+7}jDR>b$_RUJl)#5I$soDL%My%NU1OfuiwkAp7IVSZ|~WY?dOc}S(0 z*pq!jWZVuo`i14yuqjZ|EtE=xSOkZN)*;@^LUh@8S@@l<_pR$sf{b#y&>**$AC`))(J%`*X>x<5a?{~ZmamAPyzqXxkm#D zDM$?U2I~KYJw2r+Vprm=)Pnbsx4_EX)edZUC;x|`js+>@R+C(F&4wB>3w868Gp zL~aZbxF^*s(s-DeGr~QRcEzbfKoIQV&@43#j>u-ni%SQA zyE|rHElbfsXKWebjKnTpzizBJB8`MG1zhtV7S zr(h2sEeM5-PlX3QWm9C_IPjhg);RGqq^*EO6f9Fj&-_ zywMI&)v$P~;aq1md2X8;{GiZdPegRCD|HO6OS0F&-1-Nu4vMY6zwxpjX|rbz9`SC5 zn`VcWI}cn7lQ@&;*#}Ks`Ekp8sWNy2zsQLxae4}lutEI+hU1g>%IJ;Htm z#%JTOG_2s&eg-_o`#5yNp;;i(NX@O5KsV87=4sY2dW@KjCL+M49MK#O(qaI1cXFck z{5?&v9yB|}T4eQ4cm>IAzPKcYTDbsN;+SaPpx&{D)rhO}{rbSZY2HCMx|DnRq@>FB ztkA9{besC*9&-SXo?$bRr|Y?$IKSutKk5y_p{;9@p(EjM%FRAT;QsCY=+~<0>jT=0 z&)OqYT%jJ|9UIg;*ya|=$X%skj3{@(-c~r{I`mpo&Cm<(#H0_zsL2R?w!h_jAZGTG zruoN0B9AAW_nq>ImFBU-GtV||Z%ZCBD257$DFB@O^i%Aw^^8*bJSrF(REB2VL+ow* zd0SS7io&cgp2H<3Gh$-v0e!O4VH=V{tWtSMHe+N`0-Hm>b6)J0#%EArSY&CB2(LOD zoIyj`+k7LkosP_2lm=s{Dg)%;zw69@i+SY*c901kYD&WFZf@WfmzYxWl%X&DbSZ zzDnluVDRduLWi87BQq!baN?JH2hd^(yRyqRd~)FG5pYIwS95hJI0%&ci!pzIk6+q z^|np^ukMZy|k9rHT~t2@;UM^hral}`j-=E3qG zpoPS_4_iN=P#ujAAYPOOPyYEsd-M1Uv4r64R)!6`{@8VVumI)-SRy9j1)872^TGRF zo&l2J#wXB_KmQ^Xedyaz4q@p@bSXvNSOpHW+8PfSjHEAa(tTUNFKmgc0JDuR74l^S znzLAoVPTk9g3vihP2RfI?t1_k{nLWk@Q-ozUw6o(zLek~AHs2O76C#x?VA_fyzEu6 z5L?P0CEu%w&bt>0jr}Ahv%AXLbG8)HgAWbR^$giR97kr6^=00~Q$GlbWR@Mpqfr37 zcy@v(t26N7P)E9RjBdq-G=jUr(r-bbOs=$T#|fcw^Lu8Be)Sju~i>s#!g;lrmE|UY@oe6HH-w?!46DopY!SZL7MC z8Whl3ASdwXED)z7Ow}kiC1Yf1e@#D>G|{d!6E!!=9^5KPrI4O;gxxw``pxQKhoF5i~-5BSV2wRrT_&|NeL9cTH*RKnQsP#_-4J`=1{< z;NLQgZV0mE#m@MR%56x-&PN|f2?c(Ltln#m%qlA)FD#DQ?oKnF7}6+W-6rcj@Q>%Y zQILQ@-=xk^gW+h$Ee)cB?5ur}!Oi82fVkJd%xEeKPbrcYT_;z#67i)*yxyI(`XmGj zzb<|J5|bU6jMzlh2FhhNkkNE#+*lEvKi^&=p}-JusB;_g9zVJayi^3Cijh>C{h6S} zWglchJvn?6c`)**=4BRuj9OX+GeOg-rNDgX=6doLOJtH681hrN5FgjuOJ2|T>USzTsGlc)B`Ne+KHBPj3M_?gJ$6c$f6*bUCVq9%uojFG2Jjy{S^Vr=yXFkXcU zE``+fd9bK(7B_>c$6Ix35m#&k2T)UP`E7)Q@=+NdqFq*B&vpUzr-&3PQt2A4GU!wc z_TyMb3T$1roh``?9>_Hl=&{#fA z8*@q%AkNFoD+PL%8z-MNFREa<$i|99w4R%Y)~Y%rI#p@su6!=?B7h`CGoP$s)cul_ zHjDK1tp))|hk2|5!MD(oVqsl|BSX64x% z81suH$>%|7s;FCw`l|ID6$9ILl5XT|`B=QrjJXVm@1BxaFHNV@@^jg9-bZjAX+en2Lk>4f11q z0^{RbVUwrq1qXeUgg`F5xn$W72l%Ro68cKRSWXj}DBwlIO8&lsIb*{-obuYD#zslZ zdp5OjR-r>2#Qf`dJ2YByCY@&?$<2j#CyP6*FA z+4a&$fe4pbotv1C^Q2Cl!)P}R+O9oG2Gc`DZ#o+bPiMUqsa4{2AU30{l2WD%jI&M% z7SP*GzAv~-YBaPmLKXHhTDjoY41dZcQJUaCv>&L#wYT4aiQc8Zn#D{~z}~zuS6Q>` z$_WxTua;7922`DtuA0tG1JI5FIZ}QukS%paNqtMZNrRTiFQ-KGLZbTUqwcm*x9ybj z1YU>vU1ShU>7tVX8F%BWC&A8TREK|)5#Gz>(vonZM1PsfdUMR8g)Pj4?)8@ZB8^`K zG%j!vNYU?YFqKo8l*5AlAHJv(aRl=uUBq#R8dezDM2}ZGz9q}c3<2^$KQ*JkbPKNG zra|9K%#-O2rXyUWo?~%cIe|=qs1F^qMnyr z?ayxCz~qA8>w+*5VLCRO;zEHT^J&ZK`bp~=QAPa`J0g=GB!68nf|oiwC2CZIhj}SPSEtlVBj+bgLU_nQ@mcUCI3Ui-8+y7^75n|%NJITlf$?ES&Us) zx%1YCUV+9f<3{{nsfNO_|l2LwB6MwA}0Gj-Yy!wCmSbz05o z-ISIF_rb12Sx5Ah<+~rP|L~MXwoPp{?>zMiMa`Sm6i+d_Kn%Y;Y~E)+?{<$7XE9%2 zhgNS)_5?a#8Z2LXiS*20#e!%LpwY{5Dn`ZfSdn(#0Vr#U5*K~#&=)Kkic<u!*m2gd)%;YpEkc zE!#Z=={tawtvOjBfeeJ(ZX=zsj@H%ao!gDIW2B5FK(kku%n=olEzL$F7$8b$n>+}ljwh4^1e8- z3IJk6%$TkVf~0qq?_GJ_jF9iQc!9TKVV&Jgh?3okatGNqK69k@4-Zi9k{0e$(nRkz zK%ZB&=-xPS9O0L=M^x?qf$^;9nj~a0&SmBGU4s*;3&UT_pvar~=|VN`!T)nxb<)aE zsn~fq@}oT?46JJxnXG21N%DV?^A=vO6kyO;uid>wDx4 zVl=EW!Al;vT4m?a@Q|?mFEtn{$bKh6W8D zs!(28m9@w69LR+Y_xPMfy(j$f0<`tUrHW5R&=7qtu0s*VN5Fs6B&nQptskl|1dNP< zB4@ia`nVJ7F}IY88`$RF-^NzY9IQeH4Bu7;_v>)xz+mUocZVywUGg!B| zc6$E1vw73njeIjp@J^qfammfCd@f4F-X_C!J{9E==u2QZ62xT~$95UV?^j06+(1UI zJ81FV-Ul&E4~euzr^EHU7}?T}ZsOZc83_E&;fVZ%v|2DI8`=xsj|P5~ zI5XH}%9Qu00h`K9_`0Vdz&*HM=Z37(;sx-5ONq2GpEQUwz$eeQ=uVW4njxvyg;pdv{aR;LW<%x<>3e8CDpy}ThO9?va|)fQltd8<81ThN1TDN~vPh;T z&dG117haqKD{>4xz)NgNXXu@>)sVa)gHn#5iA^My1s>*P%+gI<$N^h9Dq!3v&AtSAUBO#OKrqJhnE$_qVjfB=GQDzP{|RIE*H zSTZg7kbu{4N<*RoSRYS2SMAW3;_VT&=p0E{7i0d}!3tM@fWNr6q4kIgC(0~B#)ih9;B;2#T}iOr_M8Vhg{9Rlz%SPZ~A752*Fygt>z0c-!isNw)*}?Q=>Qf%2G&C0Q^h-y=NvE{ArG9}jO+iewhk=ZC=quSR$ud)a+hGYrx!po8@= zSAWwqA=~A83|lGE_>eO{XX5M}F{kFDOH(2e!0r67u6~%7AZGPRO->q5-dPqX^$zCB zJlP-8sT(zwxn@s2@)~EfI;lAVYCdW4UEt-WG|$K&cJ`Uu6W3$pdTXk`VVbHk#8jF( zO2zn%`Uhn5ldeHce4GP7(7;{U2Kdf3I>ceN#Xb)56c1@%pcBIO>N=l}Cg$X2*7?6$ ze@T^{_HDAg3;zS}MlDDbQ&!%!P@1JH5&8q3vYkiR^AT_$O`i0aruT{k4|u--obU08 zSkr&gb5YUAQKrDMe%J~=Wrz|c5U?(*duIG zmtF#g3b;c{ab^ZUk-^E%M%)fqevB5nTQs^w&ap-!01g4Yk?L`g?*%N@k2oq86o(|e z>SElj+sA^e_s z>I4C1L*g-D4>I28Fe%CP$&K*J<)eya8obJ|%lJ6NnJgbFl=!reWHRr10v4zP!lM}P z#RDrVx^kH^>Zl{`so-WKF%ngDQe-M2j5?2iBuMA|BC1P|$>B2-ySmpkj=8ckE4sv$ zY{+apvL4LfCg9gfpDv~EBy?&-PFiXL73STR4d2b1QdP~-ADi(dm8$MU@fNpE1*6H5 zL@*@juptTQEiIh!PZbNLuh!MNk$X31s<*}Nk{}AWSd52iZDQ`eZ`Af}*c_N?-7Wd< zV1EupGd4nR&@NjSeVk3~@Me22vRa3?Y}dp1_#z;x$ha}j_wg73(_WtJcl0oqa!HOkEu;sCr&w)cluPOz|%i=79=v_C>uuQ?)d7(=@TwZB+x%n!@KUcM(_q#B` zDYOBhD7vsUiZ}Kf=FHj;(!l)3q~O|2?jY`^H(SkteAGrb$W+fo1qA=r5Z3? zEu}0Won9ykbdtKj*QViImlcFEK%531q3f|&hWmI#_zy@=pG=4G-*+_qGc~WJ&og~* zfVq6eJInyk1}@yL7XB2rQ`d___oU;5y2BeKqO*2!QJD5CLBk&UJvVz8RqNUw%Olib zx~kXMtMrOX+TSRLHkI*bj5mEQm_tQ>)sjSqyRLN#->)NifPIELi^+F<#Y4#n2rim8 z7$0acacF6d_y6>$$5I-W&>hI;Ldwkb!^chkr0UsJ0GYx1e-uP>9>v{sVy8B5nqW2{PE zG*(QigDHnmfxDXA^=%8|yg=sXT%Y_7b?B8ze&4=uiod1DFMSV08;)8MPnKcK=|)69 zM!L3Y#^?rnIxa-Zul5Bl5+}IxrvFAqU+g&bVFyrC!P@mbm<5s@__m?DhP>_ z96-%jlOOkDdu|<$db(St3Z@J9syM*YjrOKz-k!|z>}`d7>X-S*-l>?a{$gdYe1|hh zG>2%t@Es_G)J!l|BK^pV;Ul6l2&uIPkM}}W%qCi>^C#%(uz|V@+{il|Q-mw!Vf){< zqc5gmHcnqTnCp8?OpdNV?cJ0ANk~t|AC@_Nl<_VOO1Dq7p80Z9P4ME-P+#J&hju@~ zBOEj@#8lK^^|5dVu9og^m?5=yK8?i zdP6!<(vISSL>AF{tbT+!_O)vSKTP#mZm~27V970aozGym2J4__N#?K{@wLC`c1 zrv8zwq#u|%Vx~>vg!$n|jTG`F2ut;mh$)`+$o1P6#tm5sWv z5N;6X`G8-Av4cqceW^EY=K&fJ&^%?r-{Ce(735Ho+C|bktGmCL?Orzt+UE}8LpJlw z8kkFt3~~-!73*?FkG+-sIX-dG0#`TYl&;?_`TW<6cVBK=uh5;ZO_gCCL-4df$;OeL zenZV<5!^i`$7w%-!i71xaoXD)uTj&g`0^~p$w>Uto4L)cHmX%7>QMU+?O3?q z%WMs2p8(D>RP|s8!DMMCJB%eq{x)0^!^!Y-Uz5YpZ;HQ_>97+3a0JM>#XH)?$(bcB z&0aQoA(8L|jL0Wg3caJr{iBfKgwDWnxD|(b;QTW|n(*N4HY#kn3tB&w+YQ07cbd}I zOHLYUL<}2HZ3MOEa{_D{5SDYQ3w3clJ4!mQ!ufs8YxzsT+EZc)!75?}EL%YfI&`L^ zq8NWN6T81DzGYnmHGzSpcorB6_{G&bqXZNe(v|;lw>J0Jic!RN6QH6U@1UzF$Nr=$ z4b(M5quQ2ucuN!7)x=2JG`Y+_Lx^9``Wxm)el&W>qi&YY_Z3q6J%Z&3*#1O{0}d3( zxd>Mx`sHVvinwj6Fp1-Ga)M(0?1=cF37SG2l2$IBh?{7C@&*P*_3bQTh|Vn>{K`H# zI|*av<=55Cvo_-;Fz}03W`!P#P{*Mpapeq50o0HJeBCP0+kkN9k7S`xB!4p=wkM8K zxVBm#xOMcBJ9)g3>RfdYrqw1iJJiCl#UB>#67$AC9K$DCqOTMzZ5<=j<$(p+3Aa2x zPYC5(Tr3qN?|(SYd^Vf-zT??F?L2kml6ES9j3VSbpDG*hxNIi56D%)E1Id-zq++nJ zFoPFCpoBoiQZIW60OCz*uvVq7KPo`%fzCBxL5~CCrMvosTj?aC8}4lm{F|UHcqCF_ zC+L1LF(27Udc;$K?56*=c`aZienM70_C;qNt}U(N=cH&z!hg#|Up_CHF3}sNnc~bo zGt>J6XQA)zk4`{B7pe?zSsF@)fN=X9^9)AJNYi3&HHc`lOKm~# z_x;Q#(u|6-K~$mbd_x?;nc;Y-`t6kCzmEs|`~BaGeHn1>HS*d^)~s@+sC+Uy#ERQ` z$`PR@RJ!$F6~{<~$|P^E-G4>ul$5sSq?G6*A(mI&a8yK2%Sanv7M`}na{`S46bHTt zdsepA9*46G{&s3E9rV(`6iWc!B-7`u~8p5@3($(nl$?iY7u zG?(Su8*mMmNljUNGK!ign+zH4r&fiB;9yLFrLPE`GJGGO{EgvNOX$12Id_r2}VjIw_50{4G@ed^We}pk_fFzvvR$i1k%zj;GK;% zWGg)E3W+|pgO>weF@Re4?8w@swnN3|*0_xCCy~QKF$jFmTl-z8;RBXV3crcE&D6BH z0W?tqgG8TAp%ZF-RV6}Efz;B^bOPe_-Xrfm5$xVVdAK}ita62kY#*T>Hvl<9WP+>o zrNgcJzZ?!)A+=?_8h1gKyoeSr-A!Yc&M0PCrf}CWQ4D_lDb-KvJo{32kFAXj*UFCM zH!Dn&mzHl;D|RXvMbO^vLPxi3K?Jw{O`bGvY`Gy>k@cGjQfSQijk`NTA^zbl1vim&DZW=?KMS#q?!D>%f zOO@ccc9xnP5xk}jp&I2Cia5QgA|DgEeey~$1QJ2kozes|fzCD}GJx6skpe3r?-xYn zO(=biJr#9AjM3#v{}z$M^tc4?>zt`RLrSm*>R{F33)R_b_aP{YF$!uuAeMMDPuA4} z_Nps3R1V>Gr}g0F71!`@AFp!Lr@bX`j#fJ%X@?+Lr741%8_Y4%O&eNX-itQ!1m)WIN|{aBe=9Of>4J=5{E|D3P3eBp z7o`0Dh$U^lh37U<5??cJ-uoUHhVPtOqn!MWK|l#|;4jS4lb2g1C3^1};Z!tgBQYGv zh$38&Ygsb5(UAt_ea21Q!0sZ(QT<{GWe4EeyD>)g_wTZ;$2*|oy7;H#)*UeMzboIT zTy#Nke4YKQnYK2xGyniKVP=R8Y*(n8hYe_kEiFniY1RX_$g=0gGTstCP*UNrdNS?` z5t!Dz3<+Mse##wyPd8ZSZ^Z|#p>x^pH0`-D@P?bU|7C+G7j;yUYPoq4_41gZa*n4u zF@ujeD2zT`X5r)dw2h&|!mGiZ(02#pXL#+u%)cKGYo3C5*Br`kT0{s^HMuh>927Tlf|g!TH?6~w@4bLuKdzN_ z*!hk8bQTA}-VPla<1GoG0Cwo#F-DVzt&6si`D`+DUbft2G72@*`ozr$h;mo%R8Po$ zW6(s4ubVz4or0|TXSba8U|))p*dPA#jGka0phuL#P~<|LYVntO!o=bDqExpBc(mXe z`vOe3UIo5ET7l$~eMLb%i$+uHB&koCxVr6b6CW9j#my)Y>*m(IZA@=+P+oB_a`F7B z$!E&mcq>Hw@1A70&CZKQss{iA4*>Y<4gdm} zSWfN~IaxxTZrppm!7Pxi{~tWV81W+7aNi;qi6{?V4zKjHy8 z+bLmuf6@TgrEA6I{=lqP6M#;;sT*)n=dY=Z*UI}FH&m1;5aS*=uO33Mw&z(gE9+h} z)d28Z5+b2H|6LxVfGL#Krx*v;=Z-y(E1fL757;O?M!m+2!WEqVqLO+AB<2Fb1mCqz zc9X<-LoCjA&p(W}UqDdR6|d73h@}#*#hwJ$!kSjZc87*#|MQUWAy01R3z1iOIcQ%a z?u_Yy%#6}_iI8@lP2D8k+DC%2H+;pDl}@aoLFwi$SvL}iwW*wLaE*$QBTN~d_@@0G z^`)P9-gWdP|p%NV3~o z8j&DA(WsXpQDb{^fpGT@XsU2pFcc*{Z3CTNom2!m5luNaFBhl=(=;|nG@z|xp_FIF zS=5~Fj-$=81c1F9ZD}$GSV8Dln4~^MLwkc_8ruy+u?aUqiE?8YCq~a_9kr$l# zHmM=ZiM zm!%t%3?-8PS#@(1!5u!!wD`D#YzNDl5maGn0~hWhU3-UD^#njN)fwVSH%>Cpx9t0B z%Sj4Bl#w=Y5Q+R9m-Bxun_E|W1TPaS5S%+V!HbyiMn*h4k^60LB6yP`YFlTMvR_%N zVJqZID|ls2g!*#Y4Ukf1?GSOPzQg~uj?hbYpH_kbBW0}w;>JHxdOnOuaDPz;J*5rW zzN9g~mL;e=l+W4(j`Ok1803BR02U;X#$iAO^s*G^ed|W_-Eg01WvvCptjdP1-aN6> z*C27_?J`oh0ki!yPo7j~89QakIdg8S%74ljr%<;!%Ci%oB4w z$EmIsR|8~iSP5zDRnPMe_%2@r5=`Y)EIu?ZfbbSzV3w}G!J3Q)9~bRN)y6p2U#2){ zmIst2(%PzPYd&54I@pK_W-YZV=TyCd`owW%HqKLjOOCiIla^kDU(22J^Dv&WUBAYu%DS2`LV~wNu#J9v!7Z){`Dc& zz1gP=G*LR+Y6N>yxWS6Z56yZ^Wxq7@bxp|T1z+^q2XkMC`|yR z`dw>S_=gIZSK3+^AP22qehdHo4D8r9hNte6v%W2T?O!#B*d+AvA-ktPK9}f5(nrh@ zx%uupiv5%J&p`08D&$&gGf^)Y#)pY1PmlnXVbgi=DK19J@_{aPX1g|`_}-(-_- zM`s1YJ<|frC8o2IEunDsnp8VQQ+ErKDfOcDW#UsFbfWQZeE|0|7HNR7{G!}|r!V>A z)$mTd^HXBjhYuL>+%ryU;w;%2?5Q#Z>4ACDb8ScCyq%MFAUyCJ@`~8wXYlw=J>2^| zpPf3!e5o^3zb<%9W7u!%kmo#za<%aRKGMllR^IvBmbql^Uu2DheJU1EX`Y0p=mr`A zjw%KbT0gSnoLcshPF@)hNS;>8o)~clNg&i=!dW3hUq{duZ0{w;%9Q*+fZt})*>#?{ zvzm}NxS}mO{1UZPJt*L8LL<^{StD;MsDBe%c((P8%kHE6{@NWmDvT`o`g1YQ~=~k-y|? z(gf9o%M9ya%NAICP%kE*2uIsvtH17*|4UxXFNh_hUTgvdOZ{~PFmprj0jUxK-PT>m zI>NdsikT(^77AaHa%N3BCle#T!A@tgzTH(A(qX?M)8mXfeRlfN+WFQN1f=aX#5Vn7 zN)t6K+(F#R1x3vfw;zDlRoY|Fj|@J#a%90Fb(n3pb96FFk$j|`49A_|=UPEEzJLqx z;!SkVJrY6Krc;EQtEW*U6Y;^EphIO`3dzApvf&nF{p>#gY7!`QMvP8x_j9PL0PZAv ziOj}ZK6lk-afo64o_Y%8$>d}0N_4Y(7#dI$sEgLT0Xlb7UD}vDs zdY;4Q_{O#pNWjr^zt>3qU!F5CV$KG5RP?Q5#$zdyEMJO*mSgUCG47zOra@7m&Gt2? zrRxxK*v>h=xJeb3E*E9_+?s)<@QQ+repj$Q%Hn52`e^uoAtv}EtIN@+%=M?dQ7$5DyPAuau@LR;LHx1KH6gfQ% zw*r!Gg(&6l=qEW1zsOWoSo#A?cQJoXEYH-E4wyD@UTmHtJ`fz~W}?tiJ;@OpsQ$Jv zgKA@b93ZA$0u@F7b!?X?AhiC5!!6JK!>5!Lqu|gJDqRT;5bILAxyBX@*aw+MS;-(s zD|2-tT4ZDmIP#JuV8YLm{D}X*KF=;N9(Fbv#M|+A$=}_p$CO#anY9TD-@kB3dg`TT&s&X?zWANoANvg22%mfD zKE`gploXe@IkrbjOZA@_(lgqw9_rw3n>LZ}lY)k88}}thgx}DU4AgS3>)mJW+M4SGh-cpzq3or_GB`GF3Tr;#1 z_Z;+(J%qAiZ!5W_Y)&N3W+_wS10lGgadN(s^M<{W=ykEU=d-lz*UzQqJK9!huyr9rGYQvph;>#ZSW190V=Z%A}t5 zF)~Il#hOr6)QA}@L<#3krW6e^-FFbSsgl1jDi?J(5Va#nkDQtXkU@5WNoRHc5(MR! zox`bb*0x{`o+x-qZmjQ5tOyqcuDlExqlJTA5cGp+?5MhW1zu+`3@F_et3BAJD%`sc zn^u;s)T~w6f#fFbRr3~WZ>+n7d*1YjXp^ImMsZpsZ@z?&Ze9N0e=?!va;P2=3d`F? z6pjPyo7J>gh{kt{oFZLJc|-M2ltVHB3#{ZKTBhCIqlG0&Sq7T|_3U8b4v|NIVknEu7;Zq)_S|h3U?mE{$e1U^IU+i~v2bXFtxM-J!IHBB_Wl8@P$%C@}NEOK0F?RdHTdu5000000Ad@w0Qz<#hsa?$+x~M!e#GfY z>m(LpPZs7}KB^i|1l@4u&dkUz%V0qcNi{`mfr~sZMzqUZOY{na=oKw11dh9MQbLJ7>kvjo}5zOT+C3nTDm>#w?BYJ8y4!ggeHjsZyg)qvB_ln*K55@+t zZoGWWXA~j0FrgD9^~okdcztIM%Ma-E%+YLYXceX$eBu7I3oP5jrX%`?pACv;yx)GP z-?FgyiG9+nXkN(FlU$({^d!rk7i`#E|9-kP<<^r`wKkWxZ%<3%m=%^;-9tJgOY2tC zD5Uz01BHu-^#7N%T9>z(u;|uu+QLS5?PO365LC;vIsxUbZSU@Wlv&IZ8JKr2(G5S_ zv|@b%L$))hX@!t8jc7^VnQE{CN+Plb&xz_JyKoMhPcp7R-O#um$RJ}Vh0M1d((|b~n5Zt6 z&i9@h875~+95-;;&mI_Zdl>a)zAC|%DSuOi|01>WLIdy^ZTPBOGTq!VT>ho*(j&eO z%NB$*d}hppBAxtM>}ie6%=kRV;Rz3Ui9&R9`LOMLvlv-FYj!7kYN%;@4#rN4dt)Q} zpnfZ8LAqwrl+os7Sr8YE-t+e|(=HZQxyb%8y_YVe2>;Rx(v(Co5}Y)FlJ7Z0&2QomtDf2n&Xs(SdmK^FOFip)g|_(y^`j?87%BKJW^FN3wpLK$$4mmk=fK<>YCXGg4j2&N=|mrCH6iE_CYEHC?Xtpy|UV-IBm}Hgf&l zR!^Su7#s`f{qh4h3OMw9qVub~q#WTTE8mhY*q}v^9Ai$!9(wpY7owAoJy4i4&3N%Y_*j zY?}Lpe%BPOVUUm@q(nZN(j{Qhr4`)-Y{Ff~mlnz&Da< zBoet!uE2s}=R;9;TWw5kl?z+s>?+EU29W3h(zoh1IbHOCEaGS5SY559eW`CWM4vh8 z*cD||4O_Ss+dzafkVcQrskXEoIi$`x6pS@a*z{`(E75w0Ny+tN$p*-X`RjR|W+t%$ zO}!mi(~&Pmyy?orbCJ!nLVSu0&$`EZU?m>+t|;tAh)9#?Y1fQg;Os8bKUG{i2 zgck!FJB(425Za%rs{pFrtUOuHv@va=1oAjZlhSrTXy8?2SR6%!pLIoDwE#<16>j;je-olT18u$Olo}$Cfiq8nSPh5NRG`0&&)iC zN|snn+lW+*Vqg8^hIsbHJp|P1=ycHvDUUsLg$kwPPrXx~qml!)(v4m>(Y#W4nHpim z9-A4d%McDfhD!Nf^fX0Y{gqulUYAxQ@B&-Y%{C{d4KZS6ZGV>6sJx1K$b@K9g7A*2 z?ef~(AgrmlavCvtyIdH2>bVg|^j@DHks07RGf$PEC;Wpic?Z1EW>+nPt3r9fLgPI< zTczDK!HrQBCc9Wt&MqdYTSRDAw$cH<&SrBqtD6X?W7+8(VZDiI+D;$~OslmN+#4i8+Z>@c&Kilm8~M&-4IpsWGkSzR?6Y43{Jxeh zmWL3|juZ`=zpMuHpQ3CYFv6*}aglW7VegmUDmoNEDs7<6CeYN~POgCQ%D<2BW@aWi zC(|C79{}b7oc_H}Jm(sqbwq;01N>V(0A2a$@~ zzrOeJ60gfwkdbrro6qG>SkqXq=5jF{c!*psSe>gf=2nRGckI5DpGfH#ah!t=3^KAom2;{EbY%z2>f3-9JWK-3ZCQ_X$smMoC5d$P zHz-}C^nTIWgBP4H8c7uIp)~|!tTB^*UOi1U@zC!ec+5LoD^X22fD4u+ERk>hOE9?4XeYws$651; zp!09p>n3DkParuADO4gTKL6Fbi?%z zR*n+?gJT>zaDQO;ZHjz%N|e;u{Q~&J?L!|xLAT1`JI&x;^C@BJCp31%!)@v(TpgL$ zOdK)8XIwWv!yG8#PLev(TIV{)AvKS~TXmyFG>W0F_aPPbFdH>dRQM^Ik`eMZi9#+A zD{fcJi93Ug%EI{hFl6jPQEslbb|zE2xWh|mlZt#5Dtu_n#J++)XD(ilEVrY4Rv#gEDPlc4-KTObZ**^mEC2MMb% z3(F)nrS@w~$Q>&$#woYT7^q5YO4Rcjdjn4{?%R_}mH8tWV(-xy(C>IQNgaE2!f`~V zBAnxcXtBUn9$WJ>h-k!^+oYnLRq|<+v&P9|F=$bVZ4d-l@Lis>BGJjnPa_(z)ykF? zOyr&l$K7jg`h_h*FJ|gG&L+uaDB&nm)dpdn`p%59$2c=-I})4}qHga%955_jkS=iV z5ViktPUs~G1M0=S^!f%va6WzFl8KjP=$7jHvKGUoWx)lD_*Lm?l+W_B_$<)v`{}al z*Aj{P&zRZ82MxR>25yR1RP!KSlvZN#nKc^3U)c&9`Bymsp!h(~2dKCJS3s!0&P1aB z_zoI=xMt`>n~Vk*Lxwh((Mc`s0WHD%-VvJelCd`$1FpX)3Sj!@oylur_i?N60zZLp z#=iyOQS{kR$FXgH{q1daFaAD*Tj&rUV`-)|zEe2X;&%f{;0~CE6a@r6M1(FDvVqh}TfJCr_Tb9X7e^Z^9zwFZuoDFE6Itb`^$s`cBw(pzZ9l7J%*U}+fiqsCGi z0el|m&1veIE}eD&Cv3#e-5Z40KjaIQ*XQKFE}Nz&&jqYRz7wLlvw}pjCsYf>wpR8` z)YDj^&5=qt)NWkV{{6glDv}(G;iHu^mCoNd{692ON-q2^N8PdY3m6rDxEVo~%C@3C z8)v^Tn&&*(HqCoUa1T7G@qKtv-EsEHzCdu9%b7n2TIvrRpmUpwIaGAp$T+7nx+zuH zQf`uED#RBYgD~>E{Ajj98-5J6KNGK}v_j4d(>=%vs(r7-%-E?6dY5jUt}BvyP}ggk z`*a|R=>9IVsw2H<*WW=B^r3n_Rg=_$w`KZ%)8lLm1a4}I+R;5)o&VyAJPUwEIRHL` zAiR#4)v=g|U^>nD zM_invRA2FFWic-WA(3R^P5tc?1uGZHh$ z!qT^tp*kXJ)-23XSF#@(Ce)t?(Y1>kkqEmx?rWa=43G|Kt5e69P2stypm>ZftIDv} zWixQdbHv-#gS41RdxDAjPFlofo4pxwT08@`9Ymg5n5c$7bUPGST@o}}rH|^5YseU3 zj;YN0Z4cVxxfW9{Uw~zZNp;hxN!ht@ik(icdDU!~|4ZcK;RF{paoQ9LgrnP*OcXge z{6EYitOJ$|YiT0s%Nl~8W+27=F>s4J+>jQWUtpK=Xsq*%H2sl4ANe-0lTBHsc)*rEw+-`Hp@EuX-H*~%g%)7_HF@*esWMGx4-D|l`ERpZLEip3FmDBS7C+U7c{xt1*7v6 z^A7<*f5L1rbp_S|ZZOms4b&DYY1a{Q#Fc)7V9GloOu(XzYa7$5@ra@vz6?*>75wUI zZ}rNCj=@y)M>FZPH5Wc%u0Pw{azWkZv9|h2pvC*ri(HKV==~NejZ0j0ncO*LCp+qpGE zka6lm!yWq7MW3g;F=n!_zWQY8(@P3Sl~ECJ6ZUf`YL{0hU&hKX_C=TEBviN zsc7}UJV|LZNR{!O{fNVLs79~i&}M1}Lsp}Es62((5RyMjCe)GwDBkoDZ!b4^0MF)< zFqXmoc4I0X=MsZ(N~?e!G~xOU@B0^|b(-&m{SsT+<`sBI%l>KJ`0XLN{%>_fZ_R=P z7eGs*aE%?*dCGq3o6pL>ECp(_tlbJG6Yap*EB|h?8q8=6)31EIrc4IaaOia0 zmc>J6uXsKad*s@G;2d-1T{eqsnJ?}kwZVRY-WpIv9xG^BhHSf#>JvR_*Je?{t4;+Q zh?UD`P@5wv3V`;hv>;JvJAh{yHvA!Sp zkAocRaYyahQ?&zq*CDKW0L#o0^`u45J#x**e9Z+%sHmUyUZoCYQc2+92b1Q&=k>IU zxXN3q`W(^z;HK=EOOFbr)3wZ<$=4w+UkxrQ*m78>6^Bf8e6)KFR(;g&ni!`xa~e2{ zDUnT&ub3RY4dHJqF|!z6c9_>wM6d-U5?6ps{j;w>kMt^Lk0eLJFgfR;$bvv_>XoTT zS#dl_$_qI>m&*rR;fB%oX)YQqg=SD+U6e~QS$%xW#^e1pnbyp8PR*CO&rT=66+ho2 zoY6-NLLtIrF{#V8oPz)cZmp#`!|F`e5Xm?9k`Q2=D|JpdwE!Dwf4X^qm-@nYR8FZNH-~ z1b%OTtVOu49;R;Ar33}6G=4=)2nksKT-wv}z?QHhEwy&tZ(v>r=zh*^HDRTWgq8a} zamGh@Hl0F{{JaA!UgnJfa6Y#_EsaMcGm3As^wWvx_imVoF~Y)7`#&Jd$||{yKEe#f znb-g%3sV;M7*)8i(EatuJqoYPHXw9?%ClK0JD`nQSb8z)PXt6W|~OxSNXT|s3{Na^p6q( ze1r*qKPf{^o(nEilUVTvusf7p>Av!i#PtN$?sTVDMiVsdt?YS3Zu$5b6`LPVySvMU z4#(zx4bKSX<#8*{F!wioCBZcd9|#S9f%Z}Jvj%srkHWP3RmO^SrW+zEbxC;TxO7W$ zCtm7Ww+rDv0jnwG0mkgFceD9t+`%etim%NjaNR-@T}8U|+0CTdNa45B?Fwdv)Q@~U zIn{&227Tg}5 zgsb;YkUs|1dXJ|^y}yGuMHGMnfpxh(e*Qc{*N;v@sGm0+HSuhdf~neePgCAz6Ab>C zMc+cDLk~gkM&{byyJ_Z0O9Ql^<+)di{BH3$SEJY(AnVAnRytGqvg&7W?)2&mtI`5m zbl!cD9^a_gy$bAUwrT4=ThDYGc;24|$-;dC$mO!f7d#MGv41Y~$ruECXL)`#pR9`s zauoUy{fZvsq74s{ie{`JhIjCd(bs-D5*c)EhT4YMziAWgs782vKP<45w*kY{PL<0o zM@lQi`MX-O#F?UHTrPIpS9j68ZD$ezV+E`3RX)ZJhTC*)P$C52!pBw9drp^Cy~n{L z8gZKGWb4%3jZvoA>|}I`B{~T#&D4t`J#o$ZMC%9>!Lku^jt?mFoKX_F8B@mXL<9z6 zF$%`qNyAt8>3eoP{<+Se)QSWRP}HdDD}*VOrncv5Xm)f9?rPt=loQ7iQwoZSd-5E~ z8YRrB^t~+D^OVcD^VM8u+O`@YTDcd599Ap4cR2DA)JsYyaX|C^h*80SUT+Id-9~6T z$wD#R@K^C32)HxFA1qvLK0}1Mjo%e6Th|SlJWiCXk~L$<0IcCf-WR-lMS-RaNZgD4 zlNIU11}5|R*$_XGWekmi{KV=`U_zrZs$(x1r{Jn6%?XbqCiPbUlZ+r+fD+CRJHq<8 zp~WClxUR^`(Y@L9b80tH%ORjo5fSa^;yr^ls!hz5*Y8Uug z%ppab_x*}a%sf0%6Kzd6c}h1BaHuV=JYJy#s-XXdjvD7#qRi|wq2y^_FSg(~3-DfQ z4^mZ0D=^aZWdKz2wuq}!B3RpPDr`&68J7{&Mx^RD0Hv)q{xgJwx}T@8cHi0o-4_2m z0XXke;DR!)Ih{|iAV;kzpJVH?xYJbtVr`>#|1JPc$$4qM3h}|`N&baBy`$`> z31t{a^DKW2?cJoL>7Ae(wwYiglC0+0gV=hZcU>y(vMS^a3{GH{i7Y5L@0|3{k8j1k z_+$hcfhXxce>euR7ihLXUHymH;y9K3{w$D;(DGJSBm3-l*Y?XT(>^jlrLyCMVywHa zXb~1RGC|~#g!;Q;HO(PHHAssqlKIHzNB3~F$+!(U#?>4qjv{P3Q9%|w&yp`v-po$H zx9M=R4ti8xdEwn)v1hRJ;z>e&;I({|aa-yNt<2W7Y^^rx$6H!B4Iw&^Z{8PaAuMa3?;Yx^N>dYt29AL!d^qQ9crL{M9c- zWkZ~kw;ypbmAOqIzWq&oQfNI(?)^S z`Q=Y{k9q0wp`x#f)90N%jH6daeRDSp7PiW;#+RY@&fxsj-Wv)1YdtrYzPD6mS?^1X9nzsJh@}Ip4;jc2MbQ6TkYSBk7g(0@iaPl)Iz3t|7LNp@-YZtv)(#o)O9;6Uf=?O*l0IJA zFLNCuTMg9NCFAQp59W&dsbskz?r}dI^i64y3llc4NpF%W9c8&lVZmRWeT3tlX|Wb; zk;q3{eG&uLLgDeC}dy-lQvT6V2|g~Y9ORC8N6 zmf?sWOU&$|_D0dCoIu#~OCtC{8c=vj}57ewJEUwg9U-cV-^{2>P6F>XL%@*$U^3 z&0~G=HGn@!I#Y6`h2oXKC#2kH`p^U+@;jkCff(aZMT(1EuZ7p=0KCj`kUuPKf+-ei zF`6tK-bUh^XjBXX$#WGrzq>>gh0xy0%K2uPbRiku4o<%F)Xm;`aTzo5IRVuL1q0h> z&vo1rZ<|<=hsLaoUA&-*?_)StgXh3;`oV9V(ITi6X#e1EvOyjuyul+b*v()q)H#tP zl^085=y^SbQ1-34skr4MFN^^vRc}R3|c2JOEc=pVhU6{J!o>AbO(EoIM&~(uKt^mDDZ2n8!P4_wzg0 z^%39)A{6k7UZ%X={*GC;pXA2m{+$UKeoLs1B)+K??2Y*5(yz}?3t$Wf(7o&`Lj%F` zS05U+UlUNChc9#1FxG52s&U0Eot5w{umbaz`FjcyrKL}Yhdw-%g#$e7d0?|Nw5_~= zUvWhK!N732=K2i?B$=me<2B~P7>2985CsdSp|S{3l?oekwIq-nNsH$1Y&zpM-+z6UyQ()k)8_Nt&`?5__hn?LDzV8VNLw{+6$NYK!2>rld$B zw6)<#3#@DS%CqUSGne+*>=vVl;5wR_WuGc+2#NOd6`_FM=`c`c#%rdgZ$_uNhv-}B zmf_V?@x45z%14wiJ%u*hXe|5oeFtAD;R4e2htJ7=;PMvZgODgmgNa%MQz!P>e$;& z)n6?a`a4myPU`{W*;ox6>zruC$AvD=;WZ66OeSySz_7tdGA0E z(oxyY9>-r$*lzEEN1_|)YT_CTqcFwDsR_hkR#pZk1QJj3K=nX?Kvzuz&)X0c)=;z5 z!dMe}9oe&pCwYzAi$fR}@XF^kWcq9NJ2YPWiV%8|bSMmhz6g@_QVQWlI1BED$DFlB zjICfllVS-bUEafg*8@@7eU{eU_Qh(79BGer913yPv22?XQNBIRj=XgokW0tF5=Nds zZ^<@6UE!Rar{4L1Z^w1Mw5%mS*kOLqU8k8_$9cnR%!@^PrJ$7KWb~g&W`MIJZlc`% zPhX6tN#QzLsn!~>eLgUPz{yF?-M3DN(P7y zKC+_Ek2+|LyC<(MW~*pkb&z7ivLIoeGi<1cxeOsOt}$ zTefn~(nS`8_fWHqX*X4cZ7aP;fA5XIM@;8#^Z_#>9zI++@ey-^ zq>qvq>}VA4zE+@(bLb=T%_A}%aA!gDL=MsTbpoj7F>%zK5@@x`*5k>BXARTe z>O7O(=VV^p#nJNLIIN>QuOInBsFPZZ&^lp0$g%bk+hTt|cdES{w^*7S=;$TnVCXH) zyqq+}LoTwR*&x&mC18-$CM0Q`*DdEG_*h^E<$7p8P&2TZ?b17M6XHr8 z9#f`gixpKX#bOGq@gvd@S{#n!Z7 znOdSFSTviZX)o0CwaCq`|HS88>zWU-HqB@9AL8!jzXuNEN(CPJSCb5Q_!42>la+t8 zq7ZEfFFM8V9hS7?$C1j>o~i8UWXwJHA~KDf2RGsSwLs1R+Rt<<$Z5bs_|EVSP*=Z# zlyBSYgSB1apcPL3xV}HDztkv~w!s>*^$|mRR zX{=x@NkM^kPSj09@mURTYc%-a;a2F(l|3%3GX6sXz#-qulbtks;0RlG4VXDl{<{K}-j`7pV%+fi6U#m@DyJv4J{@5K3(m>M1TBUgFM* z$4y~{*GP5Yn4wt{Z{0`4R0;?srtr1!T-TH!0Q2FIfHASA{zMe6inkuFF4USb!sX5iH>1Xp8SsPt0O6r%T$V8YFS@# zXDz#@^n=ylkNnWW(<R#a7$4&JRGeVK-`tORwpRfk1Tmm_ zp0Abku1kfOQ~)Tr_r@@fn;`mFQlNHBj|X-E)8aVbm#+y(Q4{J!NJ6e{Bh?<56{{>U z!9)DxTh{Zfl?ObBq$nAZOdkc`lLs9bJryXI)V5m^N!De^7ws3C6uME;^J$K@a5DqP zx2B`LdvavWEM57chwR)04KE%c_#B!wj^AIi-VNfI{s-b$CAiw-m?qVq+m(hxGmeH* zB7y)vLPgnCe^{>?-g~qz5^HpNamsaD3$r>TI&71WBxp#~7{HTuX)bS=qhXcid5qPm z?Fr!G;Vn%MZ<|Hlc+jU)O@^G3XjPteN%l^aFZ6-9qJm_;It@uy0#}%Nqe|{r#X^7x zl}{#bAm9XeKBB=bGQdTVv5pX_&sRMe<3euAwU6W|DYEJKN6!DhnNPam1T7&?vC0Q1 zXmEPe8jTT#965JK;9P$V?{0E}fH{HmzL2-USa-Y8LGTb9-2FJxV;`cH`xgk0?4Ubo z_(pSE1~hX6yE`?OXyRk2lA$xw#dfGE`tLnflY+^~w?0TFUux-P8<|nJ5>_12aCSFt zHuwq-aD>R<*z9jGpxQoFh+SdE(|FH6E{+;}Khc^27P?NYCnq!?a!z2``t8iw=|W;l z0Oe}VOypZ?1>*tbons@uSn@43a7`RF9EuW@F}(m(@rV*x>Y~9?=H^hI4+iEcl)@p$N|NsC0wT(_=GQ_?^rc<1v zk}SknwyFmJ5;g$%761Sf0`~Bu6G|rVKJwt+#S%0xGzb6y;xzyQm{?Bk6ggQ!oo?KF z*OUX#7ytnPT>t<80b*_d00000001Hzd;tP$&&oKhkSXpb<5ukberF32HTd`CWnJx; z80e%iKQ(J{VzPd2uK+{S+=1lEvWcBUntUxK?xpwONP`^L5?c%SQk z>yt|T-g2Ccbc9yAP9@=DwWwH`$}n-+1rYSp~zm{Vs9aEra)di-lr9Q4`MsU7+hu7<#4p$w2_Q8B3D z$ZE-7U^4VB*0CHI4UAcgq~)+`thgDRY6w6d8EU2V#y5B`U-fiGyty%WCq$Mq$@#0_ zGs)99tuYNuM-0>Ch07!4=(}#~`mf!&i9zxByUdO%s`YbCCb{2?`6(M)W674BCu$J^ z*pL%i7D$T`Fn!!MJ!&!4SXn3d3b=jN_Q*gUl7zVU-8>suYrGv&8Z|E${B_afAEu_- z+`qr<2oLL(m!xOS>81q!mo5wCtL3-G?mNFj|Ma~~6v#TdBIz`P&@Pk}PBP8Uc_B{q z#ISCb`ge_l+-K#DJ;*8Vaqr*E0BAOV=uh|Krs;bZrC{Zp2GT^x^w-8H=X+JFm8la) ziYeW*e`!sDV{o8F&li>G5oOYpG&M7~B|0yZ@}B&XKU7b?S3v+qxAue$L6;zd5y44t z;uWmUSfE=%Y3m5+#3$jZExz)y@zE9@_cP86hm9Mdl5VM!+M2Fw zm7aWjwRe^Ho`GwIT!Kxn;o1#eWORCA6qzM{REjK@Fs(xQeboQbYdWfCkdoUF_{P^p z=ZA=sUHDKvKbT_P%-bdd^I&$T9l!qd58$hKlhT)DW6Iq}X%X`C0pkDW7`*P;BhHQ| zE`D+Vw}q-5VpYhBDe)Bl!_VO-`c-x}zaDp`+_>YBVXz%VlWOWlMQ& z5OfWjbeZitys?#cRUIE#{M!O(o(2FpN`91(xlS60f_PY27lP40@-M zqpLEWE@3W+*Yl52@5)}q3dpmC;5y>zW3{SSBFs{>rjpa_cx{B|*#y%h)IhLb)#4W0 zkfORSDz)D0h(Y^liY0(usRjLGH##1&N_B=l%p80Ka<1K8(}Ur2gn%Gmv5!56hgMwl zK#whglr0?PbAe%eTQ4fIkBI}Lqv&`rSe`kLBjox3Rj}iPg*+(NN5QGuZjG<2s-KFS zS=$u)bSL=+tht)`A2(npo{FC|1Lf>VK&`Zq>^@+{un0>OAD#6LzhchAi9KC)-gZ_> z-AerQ4YbmRsnpmpE+3v43X+XgO6I|F)b9z+@|=ssUrzouIv(#8n<{ioZL`+j#m6?U zV(yNwf{hN3Kcax>()>s&7E2T_l#b{Y;4owD)0Dp!&W=`+m6$?xv3sE3@6%=JFc~^Y zB4}U+G`8HBd5$MdMTOP(Jm9a^{4&48MlJipZ$$Nc+)h*Wm@KuO`Di_nEF6a%UTBa? zFS1F+rLYY30x`jA_Ps+$aC`uz&7b-{-dR334+`NMLNVC-v-l)27$rj~Of?$+SrS8| zGui-^27mw$7(5MR@?RsNJ;CSulwwnZ1tr2b(T^RY8E%;J zP&20S9U2l}*=%I5=w^%p0kBDd^p(Zc_#s>MSk=Et@W6X?-jsr~%qdJdwyqo^^I0`C|PQPk~9nWzdL@p{#T^&%j3 zh2el82(?$3zNk#qr>rWMW21A#ORlmA@CYNeGBWd%Q)&-n6AGCI30A#lCALFpy z*)3eg(*0V9^a@$rGZhElDH?^UVP`vI6sKjUM)bE&eoQh^qY(1oR0uX6UJganUGn6i z55{huG{*|)jwVx+y*T$dIIw$cr3S{O=|LLgM0K~f{2)xluo|km7Gls)Ll`Jq>n^zR@4E@&YeXfNZ*55PLN~Pj*-v=IG828`$3BSbr7SWo{*qO5j z0qFhw0)_qu<6R8ltg-B{{ZE0|qRT!+t#fLPx4xuJ6lw(a~!@0p1PM zW=#0E$-$?e!@oyPq0gt@P`?Hv6mJ2?PJIK{_0!NgXMNL&TP#T&ZBKk|7h9Rks zcSj{LQ$;5VQu8|`6I=NojMDkD-3K6RSyE)viZvBJBow|Ap(P@-7nK}Ll0OWeQ~HnW zj`iMkC-M9(elfas3wex}lC|m)8#OK9(#)}(Ptmv*D=wMdQ~KM~L}OTxwgRt$6W%dS zi(rlJyp-G@9nI(iN&J~PB}Wx%P>=rDgXV`^$q~5LB({U z6q_YbSs^dM#pxV^GnC|PiJb)gu!8H6W-@gqz`nj0%XiNyHE6@8oE~a*d7{u&P^+Pl zB8Y<(?14`Z1=A!2)WjP_TF-YlNOd)FrMogCbj-3_+Mf^uG&zfWjUmEm|B$3@Vbae4 zcbijw<9(3+jjWe4dKoblr*dx_A=*&5QLK&f!xO5KX+O2wBl~U4r4gb?B|EqG2<oN3SlK}Qt9y)4~m%#0^7 zgvrSW!cwQC*Q2FI6vg?y@XsX-(EuEjGnRYOe?J$!Q9}5e{yhA4NLpgmN4h363q%6V zT^&XtCl36zmd5z|VDK#!K%k+cGF;TM|8iJYG7HreNGyWp_s6GQ22gUwJ8ndV?uWT0 zH|VnV+S3?t4tPEUm3nt^2Wf<;Fx702iOA1yUdYt{{FP@C>=5BP*>)bBgTauEmqD_2 z=Hqp}i7opeIs#7WY=fWe|Gx9^_LuHyvRT2r{sB1ei?Z$U6#teJF-SnQw~VOdBdAh- z(kvYOyjx!pA@ba--}e)G;<KtPjqDr7l*fY_eAkHOPwn|k$7}Jc`{#w1XZjBpORQflnwf_LPleAHmOeO5 zxfH7cW43eQ9M*6neg#wKoyFgsk4{adviR~LqnyMutUmx?XML4AuYIjQj~NR;(FWo! za;2PfIseR!DYp{}qRHe$R<7Y%Yr0l65ORuCbIFvqHFde%2`S0>%}x-)L7#2zsaSTW@J@;uZXWA6wJBc|_x zNgOOSoKbTw$V%AziwSyR0dcfW^`Y1NA7_Z67Ex^m)foZhQc+dJd9l1xp5ecJIUt!} z1>>p;f|85hu?f*9B{JwY8vS>1!Y5KLtCmxzQ?;4BKm(3K%f#ZsS)a(3VaXnbz&#n~ z?z-A|;>lk&Xy4}gwD%4vp)Y&*RR4c#UJdPB^amjl$0?PCfDJiL_tG+znE*a3t#lLF?MfT!E5}l&W)l~i_!1iPpFo%Z7&vhq34Q*Dip@V4vd*+dc>$#M#YSpt zM%SID*J*+fZO93E{O)isrm0H8G|lqvj$--e{U`l@5ht!1ZG|y#AXXpgw#Zx<(>=LT zi`h^F22Rx{BtIo6m6-!}LuZFz&J>k(wfsR0xT!yg#rf0Lek#W>P9T6ycxW&PUjzC! z9WS&gRsi=L6oFsPGiBM^c_0~LG#KjI`QJZgz`zt;z`*kanE=oY+V(QJ;g6i{Et~b> zx3I=qu#)OHN#8o^2v!GiBF#;-Rf39fT9??r7UF<#gJ(Y_XupKm9CUskG%mVzEouvw z%c~O&BY8qT9btOR9S4AjplwXvG6OgFo?nup7eUI$ACYzEDacAMcJY63y;ialWhyk0 z@;d}mL@|muWgiDFvE>Kktp_cVY|N8d+(NwPGWk@yjJEjDVi&rk$HNqM`P<$C5wfoY zW2=o{whX@mEd-~jqj$WpfJ=@>OktIn&@$UK9?#rr#lHxYl59R7u~xU+P7X6<>zUol zmP=JeD4v_5KX4eVX(@|km=rL=#f-|9csf*QW?&Q)D%=v{#x^}|npckbNU~FLaa7Sd z>LErDEjO0zpqic3l>CGddPsmd2!W~G&38bamQw{*ihIQ&=oH@_!C0u{q?%4|psDWl zXKvp%Ey71LfVIw8ooPUm@$1s%A6B6g;sCu}?j5_}8_p$tR}h-@ zySt~_fH9tl+%k4Mb)^aZPl-oyWOQ=~e2QwdRrE(p0|5_J<{{@gb3o<% z#jaTMGS?(}o_D79IRVGjl38D2rFyU9!^}lg()6nsreO7Mb0Q52WBGKO+$3`G4oTbO z6x;v;=||!JV^aIX8Q@+Zav|L@_naO<50q}yo`|F@f+D6IY97b_?c8&531lgd9C6cc zYtA++z^wvc&`Wd`EyZYWD8#JF+1#e~#KEWnOrf)b(kQ8Xw@;*Xi*A^%qq4Mv^wyIA9X_74>- z->@hrH9{c<+CUrvwcawY~qt`-?BBL#>@mKvk)v|QhJ<3ak$O5tt=yiSM} z6=aU3R?_C(S-El9mm?y8_)bq#RrAEH_G*ktVVcKRQiBi(`D~cN{3;A#h(F}kltm#M zF}#jXB0Q7Rb++qNhRo%AeiSiR>LOHN6-0q28E`GPnn#yr2ooYo$W@{d#(UZ^YTdjk z`Z%D<8%GtET<5TXV;9yO_$&5)h0kJ3vTQ)r4M~g3mY)-z3>*J#N{OOTKu9vpDX6Z@ zQ$`(67Z{g$y#p{QG}PHdeVhvM_7$nYkkijAVD;|-HH6pbhLClB6$1cPXF0%wfGZ%f zF$9CQW_#sp-gQ(z1MKc6{lNpB6fU5cOkQA^j5L40M3IM2H`1)|l|AsIV*~;3&3!mq zKa*<&IaZ|Da;f@fz=LngMRuMaUk@Baaao&#YjQ&hxFnp$h2WU)1UwbTqmwc4s@t%} z`-(-NV2e8gVP%*VEU;AE2^8@xxdh-3{9FFNGDQP zcnZd70v92B2DP6EZ`~`azDbS{c60D8>J~7U2pkHOw<^bnDK7<*?5s%Ji%ELq6|6CF zOy`}huu1m7Q@!X8~I*-2T`k@GzccCbuRbA7@MRxo| zThK?}SJdYF6fyh+0wb;}dZdQn1CbQJ^*az4hD*7P&b4K#co2jkNR{U}+!lh#vnmQJ zE~!zgR;a(eNOunB{18JR?qF3fw(B%olHNw#xrRxp*pT7VM&5Kz)O|UMgwpO}+_I0@+VQrVV=drG$m-uWxS-uAHp`^z zc)o$a)X6Wi`gv>Jh-O%84@Fx&&0axf@z21GmB`Dvj{7X@D`~>CtG!=cJFMDhOboEb zlF9pFp2Kd!U+9C&*)(8UJ^30ceoNWsFCe3(tmjsrLK|f)#LT**s5B-;Q_O(6f{N1q z*@`!Aq0tm!EgZN;Dn0;Yo-(eD&d;tIQk76J{v9`J1p4F#< zD^eDwn$>+<1+uSuplmUe)x47K4=6fhLccJrvEp$|+L%blt3P!VEbZN*#LChHU7yT+ z?3b#i{Q9_0<{@(SsAda~z;(uAE*m~>QB&>{d1B0Enmu0h=j}A-aZp{c(_V0%Gb?w8 znj<;zFLauvA|-_7aVCVo{Y$V)92EL0+Y(L(j^8cCwDqbDc84&1^tYdrLsDi$(nZ9! z_QknJZAFb_rZ}z6cg6y>Keb@r>Bx=xzFJ13V`LHSB907ZVM`Xs1lYfr#>8oP=|6M1 zAdt#&+g|)@n%aBGw6BL_-;A*8DunaE-d$4^<~WOK)?LzhU)>WARX zVprSRDH`g3YnPeZ@ZfoRX68YEP`mRst%Jevv`|C8+Pk6zzq4& zvyGKf%P2CTko7dnPw^Q+Z*~J2Uj5&*?=H#gv35|i8`*fwust+;irILhLWOH-56N{( z@|GPsfe@fuNonpWAf0i4luLZ=YV!&F9Gz`ybC+C16oHy?J(^ghaSlu(qer1e8>7Beg(! z^}ZK$UBA(hT>GH-P5;m?!+crX+o$M!?VC?V-qypLD^-8&C?#Pb!OUZNne!f5Xb5&d z5;97k*2^2-)?L@1H}>VUp<|_i&tL9J;^2(|WHBpPC@iXf?`5I6#>x01E?-zgCfT`t zW6W9rWM<`_{J6c|FEiURxvbLZE|0S3?of%Rd*pf_ z$B(AWn~aE=>d=|>zr##n0G=omU}nMW;Y05E8QXrn56khKa|-w`lLQY7f^1)!=jC==x(K&7D~GWZ@)y&UltZ$k~KvR z7(J#KQkB-)OU%o|Gr*GlcN=Yb#bs3(KjeO&J~?Km2Tg^%ETi#{h3leY;DFD#NAJn+t~%X5+UF&PYw>!GerfG>@&NXd6j?McE~u(x zeW(PU1VjJFAv|JzON7G99JG*Y*o&z=zUN7wC9wn(YEpTRp6bQW;Fq%5-ek#MPJZ1; zJ5T=({Sl-q>+JnrbBm%5tAYts=y-#RhgxMWPv1y0H^ zWM+MB=1Ry`o3*47l7Uz}4F`h#bmQ>s8&O9-dz|pIj#da=vDXm0PHRJ=6a_Fb@hUjy z$l|93k;^-><{+4&@b{x+wT^W&+s%73s`Qn_<5A7~D$&BrclacH^VE+eQ1DTxLgF+h z0p$=wl#f>}Dqkaf_)u1~oJw!KSH$2ph)zq;nXR8~@KZM2wMv`UL^2^%BDbvR)SZXn}-P6ru?MZL8~v*s_pJSokN7*+Tn+>hOJT7`VM{q~>mxazP((X<( z0l5R!ipX<}@b_<#lI9(2_#D5RaI>s0q}Q2A@EPH% zYO8zlJh^2Pa|+bNXy1Ug*93p#Dp1@kTP@;{G_fWr2Rl-!Z}x8>@P{e-Y^cAo>I!E8 zNO+T^6{I3%Pnbb$VOZ}GN%WG&Wl0Oi(C0S-|HxKKwgsyz{BoXpOEu|u4KwXUfl=Z{ zp5NefGS;*%wm-$C_J_rmza)$O4Y&Ro&)bv}4$1$kI=toxY8pvB+L;5Jq1EsCTm`)Z zt;bMZQ+pXUY`09g-&Plg(3uUx-@lW%nZ5PE@pNjr*?h%`5hHIM!We8QxWN~%Ltt4@ zTQt4HleX76TlC6OX9PTuzk=+Pey#<h}) zG(hM!PdvE2Fd@osN!=t~qoCHn6#m@QoFpPSJ#$Jzd)Fw}R{uh``vy8I0Ax?ex$V>-MW}2>yDm2;0{|eeFhq zC0zRz9Z1?PI~s;L%J%*6Q9yS=VpNjt5-pCW?*G=K+abRPP}WL@gTJ{r{pZ3oO&`4i zKX*yuU?vL{?iuKwJ%m_(oy-ACiw%utCxc%aC|(8Y?z=@uq`8$6yCSpbwqa(>lFbRg zc9XP{F;o!0xyoDvNXHa~>)_#2-K*lJ5k4GYt_y=7@l+;q=|vG%_ZIr#idi#ZJ|S?1 z(O`tl9HBNkw55!fPnX2uR}d*Du*ishs4!;J0_yDf-o7_)RvKrS&|V2~U4mM~{<6AO z%0`Tm@{R3;eVcv`bf)rriPqZeVbJ$ML(vVq^L2duYXof>B_(svK};x19k1cjoVp}I zO~z;M>F7oHo01%YQ5dy{3_iXIe}RzEN)oJz-=8xoEPr>Yy`y=G^TaLA*n|K$?#Xa~_o^m*M<@PD^`TCyG`DyhKWI6+AX zN5z&*`Fa(@Aim?~IP%K1bZe7#K}dODHkvJ##a)P|gSg_;YU;hi8_bJkQ^eJBuQQ1Ybu<5K_V==Rj>!M6v5KtJ%LpIrYKNlO6e|NIVDo-Q)xRx!C?O4nq10L z+?Dj)2dBTs`YrBRGa^33;x0INFo27SRDTQ>_7a#f1&AO~P;HiImW&N3;#JGNstn^~ zPgcey0UziCCj~X?Zn}s?uCo!Ot|r;*z&N30|V zocbP6H_&hF>m8+3M?Tx(&`L{a+z78ee_)!D#onj=HL7d(!g`KVsu0d?R5A)dO2+n{ zmDEH;sXpLH0vRw|G737)0>bp1!@IC=mIPh-7Q3!~mll2#gHX%TQ6EZ%wf7;x= z?k(ea^DFJd)`$0vgixZI(sXKU-Da|k*0nsyU|4ZgrHmB70^^e+8Y`!FSjA=}2WdTh zKCnc8Qv>QkbPqzq(1};T6-oWMPJ>1Z%47ciljwwOA);{rWk8z0|M<5!qMf539)`xnV219ZsPn8%)I(eu@RIH@U0V#I)Y`%aibd*95+ROQDb5C0D@+$70WWK_e0#1V?xgH-SK^&koh}UsuBl zek|3$u#6PrnB?nWvdupppd#Gsji;FS{%(h_cCoo+ZdT7cOX-Y!$84H_&boQR!!w8e zCn&!y$lnzYAqBjn!|jirYV_2ru_kPHY`pXDBE~@1a_<|oIG72Lrj&gV+AI2WYA8Zj zR;?ORF7K&y9#WeP^iB9$7$nE3w>lrhvmU~+BER30L!if{p#``5zoj|fE zvADPc5|V;@FeRW^cb4sa=syxOP(wCU7(^7MxC~lq`POx+J((P^Y zCL?wGT9B$QSPQ+hs%nT5;fVS(b4wgeE;?^B3GMLPaW8ViC3xNNKZy+7_@5sshn;5m z`rU|)l6>p^JQ%JjS*{{#U)V(rgb>gU%`r3ei~7v)xw7Q(l(QBML^!OMF6w@*=9#rI z9vdjw6*sB7lDZ`C7aYTO@PQYOqUJ_YWdC|te$1P_(xdls-lIY4_XD;Te(`;ktKF|45x!0XyBmfg3~m4$5UypjiPjy@ zPA|`vF<0?x(Yw(vw$9F@pA>W*Oo4vsDa|*U7h{%cydouQnIHT&;Fna0kRb3^K-3}$ z^`AY=Bo`zv)StM>t4nDk85?JM`uJs=6Dwt}T=UbLk9o5aEJj-Ab432=W+s?pc7lhs ze={X%EM9*Me;cei9wt~8DL@^H({DtE;aLM^(M9aZy*w6qost4yB?6O721|GG>&p+2!((u0FUZFvQ5II#`N=}45gS+Wkw-3TE z89AF?8rf{$F~Ni=gXE3q+A8m0JV?OXXl$zL%vO~ZX!`r4FW5z2k_HovTNQ0IUSd2L z{%Uz62fWTtu|#2TAd~5`44R0^yB=oaYvj|((1F~nv%A!KIX3DCyQQiUo=q-)mnC9lw zc5~{A*5H1xoM6skVSnw!C8M(8ggO;72RblK)xt_1jWM+*7sTj&Rc1W$jV1rzOA#I< z6W?y2&27|ou)dwa1YTC^215K@+;nGbeK0QJl_zv>=!Ey-w})*d!~HqbP12+MvZUeH z_3DeIHJ7~a_HQaWv^Pjj9X!k}RzT7a=cdM|JG56s!dT&|H)G|kCJYlXmNX!RJ-ZCr z3zZOVz@`Wg_U`JZ5LkK**}iDJ4L6(|wS$8kSc16Ca|pWT$=b9d<5Aci4yo&Bl!Bh% zNr}DRL}M4f;!T*s1<5_KhPaygYzr_yk;L8<7VY#UT9iJtzm7g!)c%U^fZ& z9TQ*L>Mm-hWSf1LhSzi8@UQ zrfK63cGr_1Xg}WS=gC?Nn)E7=B$rU@-63&>qA{S_5Yo)Wb}26yy@8jd)AnbWO=T0E znLiJV#-q?$F}IK2s0)SCtG=xZm})Qo1X2lICFuXanQsq-B5Bkg8w#%gNjjH+6rJGL zQ9_Ji6!^~ap~N+*=Jx&@r6ws`Q&2ECeAShN)Ivfrw0|T!?Dk--x2Cr4eRBjTn7qeT zldrGsN8e)$-IdyX|ALh*pd{I-=hlf>#q4%cl|XZV75 zu_u`amsSLF6w3i~)8_cmqhw8$lfqQ0>F=hT!j#Of9fb7N+CMM`cV%7~z%pR$nkc4mC6Y;tL$ubir=W7<>p0qc zBft8Ig{1BTzd`i(18;UvPLj~>ftWuLbW6{o_OKI_9K2@;IFx9j(%8YbGtX)|A2Olb z$+C?;>_BP0j>8|t;@2bXF7dZ##Bs$-{%TcQkoS3Vix@5iCef|O9aWh!)pWL`vM8!@ za-SHFLZCVJ^^c}UEfBvm)C(maoHs2Lnh&e<7C852#XRELU%r$C{H_N|1}w0rwl4O`GGBz%)@7-q6-XCHhH|s# z9Yrl7Y$X%z`n}~Q`FVI5RrNMqhRp)bE?w_)cLJ|_U;EPC|TRr-Bq7u|hOq@8^f1EY=`OkKLz^$#39wB9C$ zTBQR{&c%-2a5>Pj@`{+m)H*QdQ=bVgZ)%0GG5rRF3xVwPs#?G+T&v2Y@R)J8%e~C) zu0BSVFa9D(B)9@8Q*&DHvU^ZJ_l18Vr-r69M&IPG{e{GL9S|{K=dwi-K)8rXPJm@{ z@a>K9XLqw-U_imrXrh|@&x@MCb)pxd9HG~wM+ZyR*rm$>Ox6Jm_W)h>WEu(}ncAm9 zou?-+-j1FYpsbgq6S_aot>PYgcouG}0~6>+UFtXU9bAT_pe6)l7Yhn_Kzhz-!CPJZ z4+KA~2y=19;Oxo=&^_RtTXzsf)L`t>yvSm{CG2I!*$r$_x~sPD(|FtIj#veL44P@_ zmZ#gD{g4C?wkw*B;~|?^FCk;1|Ms+BroAW!xJ^;?DR2dWz@mdI_BCirlbPpP(3jy5 zogN2P2&d@B9ub30R=o_C&h5iQBn1G{mu%cKOMA#)8*rQHzZo|dG3`ugY1inp-$GFI za(M1fUsGq;w|43^m}EWn+4=mG<~94SPeJ^hGXji$1_c@L3Zf=r;d@G%NT{QEl&Fz zGGC}sAM)MwN+j}g0X6lDVocB``(Qx9x?M)FToQR`6D0nA+_M-?E`|3ca(!_dKV}Qg zqT5=l2FFk6Y_b2eSI`%<>!Bli@G%7@kk>QC2WHgX>oeu01|mdK0T=_flj9m)-TKQw zFu9wW*P|JQ%+4kwrT{Lc!p(98NWU7TWr-I6!ByFr-d(Dh%8eoR z$}?&=hO|><3IK-4LN2nkL`v*-H>e!jY};803!Mg^z}mGf4RdGl^#_%?k;A8cKU~-r z<ygvy z7KdnYGz4pMt73l5@Vr?;UF#_c>pU_mKhVAJgl4JHlMO@e~T+rwLW7a3qN+fpon%tu7nB##Wf#w4fgf z508jTnT>o?DJ-M}H38b=O&nuq$&ZN8j(b*gW;GjatmI!YzYCo4iX{1(_zM);V_du& zUIg#iN{hr>-CnJAryv~3*#1dz+uw$+#Gcz);)}!mn1>F2&?3{*>*M3i-wQU5t|LhC zSqo6<8s0nm#-4;{bd@L0V_sTCVl>SpN9+_aBxjLG|_?6=OHTM2i+*Sdc8@=Q}=7)hJj%Xcx3~0B=UZr%aC< za?tkcTfBfd^>NGXIaTQ?^^PY*tr!rDSjV`1Jp|6A5GNIc@8Hk-i)#LqMxd`|BP7OiISmd^-1+9N98J1E z$&%QbxY?+%;XhINjQ4c#xb_&?U0?#^CkdQ0$))8BJa&izCyrdK9TU@xZ`~EP;k|9} z??LfyL;chDGJQQyx40)&`;orRa}X_XwGaAXeXU-eFc57wiwC|<9kc&D^mdi69czJg zMUw+Z;Ai(gE+55J%GGN7YV`45abUhe?G@3$1@{#Znmoc&;j>`a(3$Z{XHkg!@ZgL8 zy^dBRak>mn7wG0|kf7A$5X=M01No#?b4$S%`^y}}YYDY<-@77L{q0AR2gusRX&TBN z{qrSTRsBch$Tk8G#dtN_`W%q&WjGpd^V0WO4MSKE9aZ z3h=^vl|fAoZK~-+ zk;slMmHbQh6+&ktZ{MPsiN3;(y5neRiL-+Kj684e?YE1R-ukDG6`IXu^Uz_NN#0js zvSmImyvT$;qlpa~Sx8<-=*?W4`Qs3wj&;m<$chg_%0L@ zq5EV1|NsC0|IJiS>Fa^*N3O$#Z(YGxsc@E#yjUG{`apw+99lbChy>2k zS2aTOl8Wcp@ns)MwW3xiOm{J$E>sJOmq!%7%W8rUP}3Exp@_$-X)L{}ia4xt@aGud z8=S}F%mxq`t?CO*Dsge0zVOGF_V}HD$fO&hXvA32w&aTD{f?J&BpIn$kg=Qn_+7OU zsmw4^rmzSAmA6tQ}3BWbol5RkNV=_C1Z zl??+%5kU-=h+Z*+ubc&0rtJ}VLbr@*wIw(aJqQ|-%wvaEtNbKEY=BR$?LieIyJi1T zDl`W|M%bnB({-m-!a40+7Ju&tA#HErajOQH!eriq~#m1pyPX>g=fA#pC}` z#FzXAbQ|M~IUsOB5sliaSS}=EzaB>|QP+yCVXFG&wY1qV7d})IXttQ&4F5VBZhH+1 zVQ-gL#jxo~zxTq~%SJdw?~9TUGZt)18l^D)CbTns4hRxG&4Ja^`hd4v%AQeVf{fw7 z2)>ZhedS4-82h_AJ%56cu#RM6VnjRN!70!>>ICs7<=U&H#&C$azM&bTwMkd61;|-~ zLx!oPZTZglW;0F09cqal5&%zcMpXu%gnjQJL}^QEQEC!+pLlzdf}L|>0VQ_$3a#pN zv2~2XYa~?(MSaxWiN^UFLS1LjqES^0FPp-fr~ac|o}Ex~$B7JDi(W%Z%neZL&C|EY z=7^_^&`Frj<4RyD9AGjd(=&BDMVS!N=n?HZ3ItHVzJ`a>X()IOj+ly~ z5zha47&>9y;ZaC7Jr0Zh_`6&^CQtaiwrq0f=z`^6ZZ(ZcXZO`n{sps@socvbimdR0 z-r|f-jU1u!J>OjB2p_RZoAjf)4nH*s`y@y4ZAE(H?I2p<-#(^rk06vhR6)2dV4SAKJy{ z1Ab*%*R&>BGk0{hE^g9)2^59A5G}k(d@??5`Hya)?|tigdSNR{fAfUmyb>a8*r>)J zW^p|UNrOF*GWb@k^123YigI8J104p6Y`h0+;WlAuK9X-`;rB8Y zlJxa%mEN^1tbRyq=1=!J;(OpE;8dOAiM!)uYAfNGy6b=BoqNo~ldlRF6NUC5%@6e-N-^qG@1{hb` z7EVde+|kzMUBBmluMs6m&z6Vr=B3nOL;MmG^Iz*%yUV%7T!v+v}*HinoArEn+WHWSLXp>Dk;|+;9nvd?y@nktLIJ3qvfdoL7y>pb9P7+bs1YnE(%0F9+ zynKZ25-;n0*aSO2S2hM1pZ{dU9ERgJ*j(A}>b*5ceO@Zy(FgBad>p*!XY%8te5kjT zB90~N^=+1-6Z)X3XjZQ$7rU{$F7Ba0!^>Z{_}>WVeCq=zF`p|-+8T)(+v*eC^MYP# z&Z0&6e;(=yl1~{M`bp9>Q)ky z(v9!A;dGwFPFE$G1tUhOca7)!nB4h4v>M6=vUpre?GEgO1khIIUmmehVO8#fTEyx> zaAIy_78GF5d44V%`nie@kvU!#5z(~Dd9Gl!t&F!xkPWHUpcsr1T8#D!qoIJma_zkF zCrMcn<*O*bZ4BZpRSAYM@;rfT(qOQ%>yNDpXYGbh(8rmuY)TpXO zZV|xxfgWF6qdo76y7zO8g-IPx%^p(V?*<{GlT^aMU?T>&-mKbT0Kc1w<;;PUrITT4 zhsNr<>h3za{d_YkDb)HZu&6dSmxmAlFOTjr2U6Nxc5M7cTt&Q+GCyS1@g{_^EwP-W z^HPHZYP!xe-@5DhsLM#LxBE3#YM%s}gi&cOU@-Eu=Oj{|%igoP(Ry-QRZB3Cydjz+ z;ZNz4=imd{{6Gq995|JrZufbwf{d7Gap@8Inbij9M~gi*_LS6>uZ{$VR3IMex)c}z z0}wEg>q>m}0l!L>$bqYX8usnKBfP}y}n%wa6Jw-p5aKw^uKL%_Ht5c>(4V0%Vj>S+v z$u(~$i)-l^Vu`K71@ZmBugBrgjWx3`aQ>x=RM#ah%6tA!*QMPL;7aMgMr*tM^LkFV+{{#q=W-wG#q^D2`V)W( z(%-!qIHbO-5@lvaTz{K`Ff6=TDHUWfZDB0lQ#-8x(!L!e`d8>Z(`qiwguKlFDkFdl`cTlOJi$9Czu_T`)m z+GVt;2=ul^%x6y|<2$&V#)#5!n;Ot^6tcTGgz@x~b3DSKAAiGnB7cYDW?$+@Qt5ut zd}IS@vBya}=&vwS4q7F~Ew_Y8^DC0fW8`4ZU_1c9V`yVoGL{9&ap?xC&&t;}qSNCp zUTY#Q*uEpgny}Xcy8IpMjUPTz7~ud$`Y6p}*X2QD>Hp%sK5`aCf+Zjh%S!c~|C6yP zrN=2?tXr4|FX9^-z3Da{sQJ{|JJY&*m8QkS!FTPePZk53gjfLE?Kf)?e$&i@la-UP zMJQ8gdQHD>IlGOYX8rKa3y62bhT(Ekkqie)kys8HsbH zpQafnqnhq7ygWE&wK?1nom#XAr?K#0=tFHHK@rR;M_WW!oqc6f;M6frPx{=eu*s^{@JWwN;x+u3Kjy=<5et*?SX`hE!IgfV zJH`3k2NHD#29^@HoD@nRFq*KK!4Zq=SJrJ^rr>RO`~Plnos$39Hq=DyB1rT5=LPM| ziu_?)zlCB69?#Ve-v5}ii&-?NV}@EMGF7M(VkP6Z4hB1RtV;L@1!TJi6Z2+p)JyL{ z1I|gIBz6mS7m;<-Sd|3vot4`i z^o7`UO_!}@XIecnK{9k$c9`1R{7&THE!kF4- z?}7d~V!h74XF|gW*h*JO@r3!VDCOsm74F>nP7;$h!DNQtYDcunDzU5+M!*gGMy!et zLn=qyv3SIo+8-z>hq;vx9U^ktn?xpv(mo`B=a^lRr$#^DvI3t=L_fQS8i~nVtlQZW zSc_nGmDgxWPPADq*>tQ>oJp`|IeiBnoPxTR&|{96vG0Ifh1dvU;CPs#Mm*QqdKE5(p?vY$kj2pgCD)rh6Vha4=f6LvZXIN@_Wjx z?O4B{bHodPAGp-jm)mW_8dB6j(2rfYJhfWa4caYT-r+<1t51?cq!sT|+ebk++fd{^ zT}%FE%gqSo<~v_t@UgH$`oc7~>B*^IsP^-GeDFp{a)>oPFuT>6WyHYEvlxDeZvLvw z_ixb)R!(5k`YK0?uqe`||HPv|Z)FJ>!@G}*)4bS%?{zdhbRKI~Ro}i!6{vP|n$+5X zV1NkceJqI4M~nR!7X)sV(%pEv&8;U$rIg9FaQ!7PTkN+Xn=akb^a?89^j@7Q4|2 zwVWF(Kdz7>kbFi6&bEo;-l610Xf@jHNU#f|5uIo#MB}@X%;(!rTUY|6GS7k0E~uEu z?*}*SESjoUD>p}+ogTk;I$hLgWQyRBX_4H0IpLJa64fq5G`s~Qqap%&9(hO;6E!Jy zNx(=XVW8ftt9i!?fTz~7nhnbtMC2nKaa}f>;1O8G5Y{oT+dKiPL{io1c}=I$?!cuY$hnR5g-HV?1CF3Yr}*Y z9+;v+0v!)Sa9-#%h>@iL+ecGr8K_?Vr<7F01uK@e(f}4}JVdf@#@Qm1{8gXCYt2=8 zfl0D{H*Cm!^~Jc0uqd<|R=EKv=-nG`9js6OF~}Tn*o=FlglQ2&1(^h}gHP3|7fb2z zIRs}B1;%4sLeZNSn?Ig>Pf9ev4H1MEWZ`9KI@FZ+;Z5e9Q1=$PwBikk-WQIWwPSKx ze)tb45KLA!$8*%jxlCg4K)r=#Nzho*F`>{n)xn}u#BM)P-Y4ELu;uC1zIug`2EHip z5|2p7%_4Wg@gshE}FJ=HHkQh)D zm5&kT^W9!{^d72(8r&LDx3P{F`Rdb&U{qxQ1Fi4alC;y;<|{s~?vNE2d4Rx870lM% znqxDxCbctEI~P4Q8ZsDuFeniv)}YBA1qh&@cc00v;xBOg2+rAhI+>(_-#<3L`BVC^ zQ)2Jmo@g9zRA*oB4>h8ZhHYd0zkRPFRN22fgKUyMx^|~61=E=}EaTOF3>3{4K{5EC z=pV(NyVerRt<8O05O4-=a9wo+ zsn-v}o9u>hogER1&&mH`#g~yqZ-y4dqM9jif4ID6qNuLFo-_YD?BtAiZA!j+-D+7W zMS_^4hr@{KyS+68v&M+HpmfmPWnx&QPX8@-pj`Mq%6w2Q3bbzvO!m)Q5lgn5?W zNLI3}uv{ZUANdPA5wA)RS2Y$8tZ5zN(8laIOCS{RLvV5yc5RYm#hJZ@QNFA0PcM zRMbKh@`4AGNz5qLD(ShD5RR}N;@B>;GI1?qW!in&X_@@`uJSl*Jmd5X|3EbUO2<3C z;)*!W&y!u#iqeLcP+pf=dT_gs0R9C=p4$p%xaTWXUsM#T^6owC zN2c;`fV(vtuj@#KAXgqdqmrfyu|^@LZwmrYGK#|O3Youm)cT5oRV+{`@|RS5#f(^P ze|AxnGh-I4nvf{!)a~MWr$`=GkWmfW2S{Y{P`=|RhF;;J-%l~9^SsXuFHI83C|H&v zCO`LaXW^Mwp6$qY6F@Jn>>!=*AKph~Q=b{Gx^aISrasf?9f)9a3t?@LN0m-?0-%Qb zakZ3wbpRsE&*lU@L^etl`O-yvQt?N^c4j46U=z}YuK~mNIRnFV;Pxn&n(Yc znKAOvHG?L)g+ZIJ*mE))Hv#GXt(cYDP)>~tE*Hkp`G_edFn6VHZE1K`ty38s{z%`d z(M91Zr3Q?hmDN!hQ(|fiFl$pqvHaO6G%-OrX|dQQCfy>rX76xy;x;$i{J+?E#8i!y ziWfh@ZrxTZtYtvN-HqR~P);4XPVFDE>dJx2-!*}zj%kKTFM8d~Hpn-;nH^rHsUQtw z#lOJ&q$#b0MfRx!d@(6J@H+^}KngF!GObpH!Sg#>Jq&_?j(H+9dh16GxiL? z*gmNLSX+pHKS~1$Q1vLqdT1K3QmH*`G2ij2ti1nEE9JZkV#)pC!5CJ|o12lL9@;`P zpo+e(BCy4K70#t4&wNR}nf6~+yK_`?bT$v9j$SP|?K}b-=CDsmHd6)Ag`V^rK+6-$ z?hHdM<&z9pK9+m;RvY6ABmh8cbzQ|@R>CUECrHOuw5mP40RTuJ z8IKt2vBC1UdzCs41Q07GhRV-*(_)QE5clKljM!oPy4U$e|NeNs50RY{k|Vt2NIZlM z1$kpf1|@h&iAc3bVAr4_4OcNoc1o|h*|gOQs#^75l%uTwx?=P^wI6?O5X9pMrpDtJ zdgPb=&YN(K?`5=R&-ZTu#BPZt`*IJz+uoTR za2$zSRe64E*6U&=((mkKH$T`W2GqEG1IN(KCV|5i5G3G0<$*N1JQXzjez?*QU&*ln z5T%vRfQZC}XTlrV)5afmJea<*+g88(r`TKVL~>FL08WW}hk7SwACH{qA-J#xhP3p++!n)t1PE;iZ-XqXKj*pnVG zpw1S&m|QQ(;eN1a02)Kiq`LHe@IUK#8+2C_o48yXqaZnhK4)7Jd9&nVwcN`Jnn;3X z!8a)LLaXh5kKD-?yQYhV*!1=ND4Y_2uke&Z;ZNA1(LL72wDo(S^IysN11$Rxy5ZK9 z`58u3$VW^!FW0_2yw7tYdnSXJN;~U+7;{W=B`h4U`{KT}&-W&%uKg34z(+&hlAb*9 z>U)!p1@RrMg;E0kLkhG#xpk+V7u)*U?u{idVC6oH=ifA$S9KSW`8)=L* zP0Glci?ko8-ymZ7F?~JVhD|gUDznDTw|Z5?r748gW?Dx_fPJm2CW#W?#2*D~dK-yk zk_v;d(8{4=J3wD0Vi8O^%{IDX2?&>!?F|#qp7_}xQ_MmdHk=&TYQ)qaY8hJ0BBbs< za&&ND^!-^^A+lyRFkq=HD&OVr9CK=Rl{I}A`C+avIL`F*%XoI5TZe348F}S38(tF0 zEUl~PjC^S{5r)4%G`^^)PhlFh;VG8SXQ@<-nb#X!SHcrrMTBhexz+(jbMp(s14is9 zMkh=I&#Gnfb~R8)v-+N2=hUUUjk^=GMM3N!Zhe$AwAFAnWdnCKRlGnh*MeagU8l>J zMhWo-NIJ6sI6RJ4AG~-3=BA?w+lW1DC3OO`mJTb4v0mKlMmSee;Xl~69U%jNVi_ct zvNjNQqNA)mKs$slwZH~ftUrPvbaY`9-@79TAAkB$v~|(w1=N0>lYB>v1*$&hG7q5t zVMa?Uf(nc5I`WdJVl6e+PKA#u?&&Cp&u<8F@AGZC+u&1z*mS^lM>}r zL+&kQ#I20wz*Np2J=tl^R*<$?qAOdWDj3MaSxHjYxP?+iLSZj z%%+Opob)sC`Q0(;!q#l`R%0LmceWB_6LyayPgPun%DD@uZ|&fP_M%wkLSHDleGiQu z-*9nh|L0Q!Iu{Skesh(D3_ovIjo|nbxEG*~8wiIj@hYI;)rU)V4AoKWUBk%b`9ir~ z7t4Up9Jk*YQc5^R>ID;;UjV()ZdHW}vs5H={}ykou{GVGdZ#I2{c!+p1v?0)%djLX zjzk=d4+&tcdFARmEX5Qf7lx1n;cN0?zw!TSiuh%5#Q5%@@`ZYn(y6N517%ycf=DW= zz?E6;x5rCBtWfwDC=r@oE%Ct)h=9|&{D}?)tjbs7;-v??yFq)A{|@ceKg?@7 zigXq65r0WsqzSkH8lc5A!}YfMId~xo&+1_VwaHl9iS}5Y1BKi~a(TzX#jC7b!N%9F znH9MJH0W8K{Mbeo)a(ss$IvV$REV3MMi^^AsH9w7^_NKCM+YOjd5q0%NF|XnzvBsF z;5pgAqlM}6ZrdH@V_l*;{UHK$F58A*xL{Iiy4`BP>8fv{*9}8=j}RSrOCd?lXYfi? z{@|3UITM35c2Ra77QO3jJ3U*=M0>wu?0_m}3w;l#R6msUp1I0{%FPoaS}l~OL(7R# zV{_a|A=zG2g`ek~^F>Km1kQe9pHzq7-$lb|d?8}4gA(LEk)fiXnpL-6{;j3HCVlM7 z(!kW9W_gCi8Fj*bJ7c_^aucy8%}jgP8pLI}>s7xvAr3$}liIElkT>@E{Nv!|7-gTF z&DL~U`a2c_HZz91aoOKQ3Gk#z=Ke@@ASuieyz;+xjv6zF5w!-zx|!yV`%AQ{a3Qxj z@A`E{KiQ9(-{w^>qo~rjmgO#R0VZ|FkNTyY{%Zqhj|cJ+d$c=pA+%tOKGWb3AZcU! zC@|cIM3`#r8Ne`nI#;xNH}*03kc0YK6TQl_--F7%u-)Uau6B!U?@-?iye;v8e^u+# zVx%H8Z8G=v=akT`C|pknzTF~UNW5Sqb-?*|Y4qg3BfloXsxQ3N=#z~(V^)PP8hY@^ zNzVH1iPniOyIDt6k5{pNuE9Xm6VjHlW2@7NtD)z%sc_U-APg^aP#w$oL3>L%B@$cM z-EPWo4_9fFVGpvd>y@Z@ZyweyNIg{GbM34Hd+rko6hV(+*=lu1RlGZ}Hm+c)TIlf8 zMh?2fj-h~i%_s8|M$s9(af>r$$MY?EeC9mYq%HCsQF-h?Tf0Db^GeB<6{WU^08q^; z0K)k8WQ7;|7J^<5#(XgqySgp*?+x)nHw=nhqJ}=1FO;w)cjsONPXRX0WXtamo@D+O z6GO4A?tT5j>|PN*TT6#>#bL9iIVHde0?&-D9XxQm0%Zho-l-hWPsRAGzx9r%oi8!% ztM0$Yj@=_}BTog+-6~+PM5}MBW|pc=a>2TCo_S1^qeUYgRXik6@6UXt@~z_`ZQ7}O z=JoHL;-qXXTYSU0*WeG*P5Wv7sn0ZO* zP`(~+ReH=txY|@U4XQPrnnyD5c|fN5?eLgYlblKuwJ8jV{q;!S+ASRet_zQvKyKiS z$Gg)o76}!)Q%uq=`3Pr}^V4uZoewp0k5>B2A=xO!-hQsQwW$E zr{S==kY5)xZh zL`ACt2}a*qs#qvCupAxl|BOynoTCUG8ZY;^^B%$>R5MLsP^Y8h@1qq%-`TM-%j{Yy z1p=fv2&E_**=c@hBRm7XP{YXZQgW7O-N_4Ru09`>+bG!~;vAR;O2(1G9Tx_jZR2Dx zB8pEz1OmU>t4V-Ar5-QTMKIXGqOG_rY>heT=euZ_ynBm|SI=}>SGRLh0dIOX{kibj zZRm4D<`7i9YD*N``nWLzEMWn>W{UeNP1ski7g4VgQ!1RT#dI~Aip8#c@#d&6!z|Ek zED}~SGCN?!EQAGK2W$spVvWe@0@F!2nNv&AeL`1SLXQx!>Mk?Lfw}qu1hYYRV-R^TUv9O)jxa4PEJBkV85} zrJdS4MN?r%QF`&N*G^S{K%TKwr%R7ugDkZRwbq6!M@q=n9!!M|r~zOhc|dC7wD8Y> z1GF@BGubO7eR5jBJRD^TZ0|i4N{qM=e1znl*mB;>eYV@pPQvMOD^>v!>rK8c;ni0F zH)zshDYKPcvU`U}u{MnQJ_o~n=x#-hW^#21cUz>!EDc^Enl3tWfit8xVwU!^C6VhE zTlw-Q5IibaUI6{J(ebIPij}Fichj;j@ARZQ3{mgtX|d-4Eli{?>#m@z6fI z2WVBz@^JO`=`9aVKUHLM^QjXaF6BMMR3J(1%UVH5N+3`pShlU2_^Ru;Z3vd5pY-F zlfNw0(WcI#H6o4^lnOpt9P5I$T1aX;VXM`&*V&(b&5{x{$SDDlCm|S zCXp9B{ex#uP{s0nZ8J`$3XG91N=Ygd8&A`k-gGDx#RPABP#r#p`l6C7v$I$Bu>V#l z^JbzC(5uDG#G^23ppkL8DOk=Nb}@JMGsiDGl^otJ$;aLO_5 zG8z)N9B1+WlCg?^b~>hUKkkre*l5N!SH45cz+XzsWW+sKHRG=vQ;%dkCvL#qn>LK@98+% zZg{B(c0LbjBOQlSzEO>685+1;VAmUQwJAK;zs7G|FC=Hmf~N(tQ+FiV3`48zMw+gt zwx6V~j5$F_38%kCDu`=p_(>$-HAa|6DlDxe2WTt()A@n+Tmkqhl7yE^F^s z8Wpg*)FAC9O(ybgUNX5ExMCpX*R1u@Zzdc4TIXCNxwxnto5>;DdEJ{up;zlCqV|+T z0I!J~(I2vhovKF_1K%q{7ZG9FL6s1xn-Mq)=`bgSy!`Xe*{*OYTPpgukH(Rvk+6Pv zulOE+^>XV#?XzF^$l0=b&;gRx*dES>$?Z`>j;K#naCvxZG-q+($asJjRGff0NC~5))P$@%u%fvP( zO3}`Pr>S@3!#|@A0!!<@Ykq;cOD{BdWLn-=zF-@c@-*|d>)6oIcw^(-D{LnnGO?#` zGEQ(CGM27O&tuvI^M-Pnb{&zm%Z3-@wy-0ZANlvkWAno-13!*1IGMO4>%DTpq@29=)O2;H57~2PIS& zHA*Vn{x>Fv)7fGcWyC;AclUB5bB1u57uLGn@f5S597rUGijs)MjE^`w1U(Dcu)EVx zlAY~l$kj(%Q#S9-L6HVh%GFJYQq~j#<+niPJc*ZZS;=AjzL3x0uUhtw%wY7k>3wRH zi^eZRz&6OHkF>n%!wkR85xQldW#4Wm;Q;4Dz%2`jVNvh*zBPXc=dn$1oh=m`fh&Tz z7@LdW(MT(uUB;LOJl@-<_>b} zJ*W5V5)Y88*&v^-ZEcU&z$dV6J_Kerc_dg@{ZaLg4HF}e4qfmzKO3vFCW01<;611f z0PaQtNk9)useG<3`6OJ=y%SLvj+AB%G#Sf06EKxw$CiQW_RRb&M2E>cJqgCjThu(Qzt|r*a)8jd2SehJSDBF^| zcDhaTYAWYgB*<>zQ>G5!`Hv$^gn(=3yMwx;K-@+3SumYzhB42>MQkR7x~=>caLc+B4*WNF=FpL3sm=L-Kt6 zG{XwW8mi&H;BwZDaJ1F^weuDp4=Q8}MSN)LzgSzkt^v7q?9n<$(x-EP?}fhEO$SIT zDo%NX$y|;KcJvFG@Et70&&3>xJK3UU$$r|&Bb4E3$d_(%3JQcIH~>aKxxWCeAzP#> z*jQa~@$}ceEry}v+)8XDMY&$)d0tlwL7!)*NAc8(b_?hT<*V)Ly6u2{!HCbE03E(w zSly!q{ywhZc#_ioD?Y9Vq*il#?2i+aO+uskv|VQ^x6OvDlMn;!H~lT6i(@FJFZL~q zy{K3A4~OUoTNRKSRLI*HWUBKvg2-#1Bey_Dy{wCA7ZK+Hg%XHHSPW=ir%E4WR+3@T zf}eCMGO-WW`JZU!=8YxwnPntHA+QF&Kd%2tQDz~;(0R=LbZz8^88Tc zNu5kFkSSAIp{L<*!o{YIyFy_#`yG&rK7HiIb_T z2Q!uN3n<>hu}F}#RBA28Kv-8xqbjiMpoixa%77e7)O`tW#>i}#^CQD(pxL6CaN#lE z+r@Ky6sDe0=zhES-Mez`Z{5(+>Vu~0@>aT%Q}1h1W{88=sIKwc3nKdG+u5^k&`(MF zv7G0uiBvx#Mn{IeTp4p%+296oiY3~bJ0|t4X>YREQ2B~Lgg8RD;~qMVq*hHFHsy*b z2Mm7*YEH^F(QIwDlRc=4htwVzOWKR7!epVPTw9ld{*06Pm&A0Ei@TM-02(L+UXc0j zyF=~_vpzx4#DNt{6968QvW!5-4;eMSoJEGinDH7;YuDwL#bhCdi%%6}xu(~I{&CknozpDxH7?{={J{(Qo4xN0o93w^vSb;7AP9=0cXE8<0>W<1p?#N=k<& z`ug7RQTa?SMLre6#&#~O7j=_3(qtt?Uot)E#!xfPcO=ZDYS}~svH3hxH2r+Ftvw04 zc`1|CXJ9v_s3Qt>#aefwcF&OF1|R44d_IKoAR9EWWvHufuH6I2RAn`747tmI7p|bx z>qr>PNiG=A_dBEopqQY&u=y|w>U~ZHbM;Ku0?4GDh7*%y3jWN~W7*5#WhRAWZ1=&r zYB+hm^bG>k=$bvoWf0Pwb5=2@k)WrJap*p-Uj)gHXP&03Uq#enrxXL-bJ<Q zjH^WaZ6g0ntFDxqh#)x+GCp%y@@Xdr&e7vEKm1SpVdsKT?Td@U&K@V2+YcWem;3}e~ZOy)%*$Tf}#p5(J9 zM}ij)nsc==G6cQMOfiZ_xS4jd%bap(@0=F&NjBbMYa@61?MGld_HAu{edQ z8fLlsDY2|l<8(;-`cP}wea_R2q+llDeNa#$I5;&++Z(_sxTVwy7F&U9%hoRL}uRaF$K#9HB?87Ig zzA<n=h%@PAe}Lp)d_LK?(&TKQvkF;h1WZ(Z|mrHWRQ?dxhfLnth%-CD07;Py7_@ zWI%$_VOG%nCU3(+OPCq48io0?lP@2*ntSJ-(iL!sPGW2Lg!$p2_CFDlv=kG!=81jP+ zY||2yIl}CDqRWx0Pc`3OtP=i8a#yFA53hjFIRs`ZJV5kJ!Qa z1%5cbMdCW5+acxKsNd1VU1Lw27s>D7iLtA(%0g5NBzK>0Sk=mH%bRI|G*nYIUZ(22 zdO(u5thDt*j>0MXB76EzvP7xA{w_Yqr4Vm5e z^&^eoD|PbrL73ZWV}qN$;B4|d@4B9O%+RigJ8aBib|TY*jOXv2jkbnMaGU#wcc?6C z!k#N9D|roPHTY$g&esAgBp4`6w^PPnzPLSIo*k<88$Aj!HP+38B=b)@J3iz{k=Lgw zz`B3wGxHkmW8|)ZCrssx##q9lH{sF45gkU~_I(sD<&Ts>sllkPgCo|w@KJ`6WuLM5 zfnt%PYX=Ln*4FZ+IqVr#qz;~jW~(%2MG;NUG1)pHHZSL4vt7{#LlzA}Bq1c^rOe3~ zj7*ct!n|qiPS?ACk6XhEXWp4SIFRGjKGk}+bmCzLQ~Nh zHSFnNjLvZZjDiSvWf5V%CgZ0!I+W}4tbD=6<;*#7Q2)3mf>kD92Cle`l&EsPA9Kn0 z1M;@BfBjJF-Ot5Q=OjkpTjo9=$;3EpD-VW0!^ZZ{fkajw$cg;WZGf5KugC;qwF}Xy$=2K+MVS9Xh@23 zc{#}uJ!Sj=!G#Dw;-|#QQ!VvTG0TC|IB^U)N!tH}g?<-lnBTvdBqI2>)Q7IP0Z0rt5 z_lKV{mRwsJuM<_=l2Zjqxj)k}Mnl!;`<$tW$EWs5x<-^8*^7Z05(>Bx>Jv?IhEJYW zeHi$!W@?;dRa6rlF#0!6)t7$1cpNy&3>XshTp`pzBeUW&bp!yWZT!;iFbC4&o;1oI zB5XBax^E^5%!Gm-r?NbPl8qMairASgd0}z|Ea-={r1p$b%L?8IO}YrltkbB>trT(( z{jv%sZb1~{fmH3Y|Zxa>^tIz*>%YvVd z$t~p$Nhj_nQzn*oB}6qtPDOYc*|vp#Q9Y0zi2yC-KoKDm(&H(?$+Fl^a4mQRwpLz3 zwwpgd-cmD+uUlpCO`t+@U-)LsYfO?rKArAQmI*JnPw=6rbR}T~-gbvQcH=S=Tjn$9 z`Twv-b>dr;(vECq4xWGTd}G&#&~kuy9teIPyBpz zwW@f=G^C;w-^-*!J!uB;iHGu-V2MQc7IRJ4afjt6z(`Tla6HJLi#cb$x%*{ZYLsz; zVyC+n_nVwm*Q$ z&O$>*S;hLi{X9NEegWp4hO8zA(dY9i3COt=Tnx(Ej<6&g{14X|kybR`PWB@A0hdQH zTXix_)(1mE#OApyskG_X5~ zDr4r;$yVESwSa!Ut+gvGc4Xm!0_jsXmP+nGZ;sxvEyB$$^xqBu1n>eQ560!2+K-u) zd%-Tp`O>NZm)<_D1A7s4#u2|TB~J2hmyBww3?<2-k)$RMoaI;@f4I3EOw!;$Nxye0 zkwm#VvkF~G&hCw|y-$Mnp3x(inI9khC^x@ zP6wp%7HiBF)&8PTf-msFq_dqm#3KF45tF6h=i_vpevjbR(0e+#F=W%TJ9Gx|BZFIPdj(Gkos?cobFx(n z`1WC;+VjRW2-6qQAKK|u@ApN}co-IUj!b&vR?+iK-XLJ*L3dXogT5T+QqmWXzkPG5 zdbndf7jL^|**QDl6iTB*F*%G<5eaD>?7h--bcXAb)-N$bxbS=Ld*i%iST$}=Eq~xz z91B$sQkiVPf+m20lI8+m7>RjFbEQYc_qUtIWB$~t^?oH4UibYK}xL+EZZ_D)_N^-*2HsTOv7ikiI+q$j^(PH#~0C~WmYeu6% zY!=TOR}~{dKHge`YHkJGHa%pbFa)7e2+m%$N05Q>PM`|&aAK?pMZdQcy8FSzD$?ye zHh82r2bM#00n7q%6b+7@KvZA1nGZNTFGvzv!>=Eih1juU0smYe2?dJF;v4VnXGk-& zxp=eE_^e!9chR=U=KvvsiCEwKN1oXxMXy>wmbrN0h zS2CA*-SWUP3z}c{RdYokM};k#dn{_Qo&J)AgC*r)JeU`N#77Uo8#V&xytQL0%>#Eg zKFk;Pu63O973$1v5<(V75e!!Fhy!xlkBt+LzbuH_B?DxGGFmV+@4{}Rq=V~M`oYiNGTHh1dQE57>PDO?pvC5P2K?U@DxpJX ztz53F!_$f~H+|3p=kAvO1GYsB$hy|?Kc=YAN`t7U-8j2xamZNI<&f{YjLqH3th*6% z!n;lq)1`Vk+hY=)98J84xrXlwQheK|{3lt_ z#~wgcs-!Rd3)@k@f$vW+T<0BHqgg~K8^cSyYHkXpzvr1fuT!#2>s9I|bU&AvotM3V zL4h_2FZL`?wH*D<4U5;d5CT7k%B25N>k`q{$&O0<;rDdO3I}))u{(>XQ1fBxH2tZV z!|g+naF73{7xVGxWB_jf`V?C;* zA#@w}jOsb>U?R5HV7mrxPG^AyC=x@N&^j6fCM=7_%kZY>mdri1Jx{L-C&U|tT0t+b zbo`yhTA}M=r*d9~2P3q8JqVNUp)m*dA5lT8zqioBM(; zZZv9yWep`2oe0c#k-R$PgLg)4R4JmMH(41%Lxy=geld?Nzp91O)s^o|oHRmVn-b1= z){J$8In)&kwnrEF*!{d&9l%o8!91vuG)j|%(_n9c#~<|gaxz6Ec!*@IPK#;(Hrf9v z`)B9dof28$)Wx`wtH+{{J|(fY7OkyHca5BwcogVRn39O=(+Y8bm>4Ou5_6hu3nN9? z3CK~W|8y&qZ-0p5>D-kX31pp6RtpvB9QJE5$;?PknxBBg2ihFQN8g9)sFeyp<$<(= zNjCt+K3piL{{Ho6;}Z<1e(qxAKCahwwQ)8grb2|621}u_>FMzs&uSrDvIYt|Lx+X? zIEazEYsmOgwT>%T=#HojzKNH=Wh|MGbUg}KC6(G>xu_hj2It*8PoeB+eAeNt@~4*9 zZIzUKE5xf|A1?~N7UptmK1vf#_>WSa@5pGy!6DyLCdrP-POJ7#r1Hd*PjI*|6?EL~ zuJO+WHMa{!V%mw3W^*qBIIy2i@P(=0i3pjMaB?r{MKVLy`+iZ!j3Uwih7N4$?pFn*)dj z56E)Kmt~RmvAHmB`H5~VzKI9=IDf79<(dYKS|7;m)$hTQJTfSjv&S?}{_*+s zV3&Hf-zpDnUn;CAur1h+Ni1npeEi`K{ekPjT;q=dC%-;;Lo#2)daQj53+-W=$FFv2cri3+K#^AX+`mJP^t{jTqL^xDINd6|l z7pE*t>k_dX*zL{ZUwPa#L9cTXTEOm>_5Fs^9BBzHY*_YrtpsS^&#+THlRc+s3Iwuf zT=*ZldwXTpE$+<=!)vi>OV^2GcKKfETnM4E#jpNm&o*Dg=2}-_CgbxF zX5wTbDsH{vvShy5Uu={Rn0v$U!J;bjG?!gNMGVbf0%Rj#56l^@Eo=H4CX=`&_E>9~ z76D{qHPWqT<_5bgbdXrIFU&q>=`AEWpn3(1D zli~9f>bPuE%7xYHaPSFg85z@TQVcE9o2_FS9sle*F{(~lP1@a zJ}&c=*dUG95DJ63>#2g*|Ax3=1o%BGE`@7=ydIg>o+JO)me%crn}n}B$r&_!Qzz~& zqnt35!DSv2@B(-W`Q~ydgW`&tJ0f5))iwB{!Fg%ZR569mflrF&pZUV~X~atRK@D#9C(L`1ni~Yi+$PR-t6Go&sDB|B!m{<8`oU!KqltrO$NK)mn57} zRj(%C>Kz4+h7Tmp`YHuAVN262-FsBlwJ7$_ufKQE`1bJq#PulbVDU0=mS(xTuLvEc z7wc2GKIXL?cI)Pd&`e?yWz8zu5Wn`yydz-?UZ?GstoUu|F{J%`*T!9F0xEQ?D>iXL7#g9*K!jxX;?QS@*h zaW5-j?Cn9l9&TsG1?V?}s4IBp4NMoBvUT+}6eFvUvs3+(7JD1J?NYd5gCxhbyczhL zsVA1D*+LOq*R!JFmG(<*uvsO*9?Ju*`)Y#DeL7P85$QB11QqdM!&z)Gi=q5{gr3!( zAa!5ks9diXG554{#}_2febaNTF-YWmK_-iaq~>zGbS)ESEwlyNmiLO#3jJGWI;-ThPp zX%f(QT4(&s~6~d)S(g6gGR< zV3qw7E+UfS!R7*U@sM&H;s$+4dVWtCYP9&0&_K$TeM^7*UYsEn_YPc-J6+t$`I8h~ zgc%OCO2TtpLe9NOZxUT1z7S83iDgM^!8%A47FLKu6Ly6A!yV?g0#Ux&jYwVS<(n15 zNc0B_p_faoFuSILEWj zh>%Rdy|bfd#a6KJ*am6%O=C5QV%}34+w8~#s@xAjiK-ZWRhT`L z+I|)o;@jX!t7#oEalkN)exh$5vhl*RxX`HvCVarY9(S^zu~f6xP0C6*3s&O@LYl8% zNkEQJ$Frf>`%e#VfSobEihH@~aK3~*`Fj_K7p5u6Ekzf>mD+I@U6FYrfM*(}d@@7! z-WOr%N+V+K_pTTZPg`~?pzsaa>N?sHvcd|b4HpJ71vfhioR^~GVhvIh1E9?%ie&#{ z(|m!;eik0B^F_Q_S{vY1zcq{{j#0~Y=2L=Y|Dg?pe!RUo$9DpH&?@7VGIZ~!E&!zi z=c_ySsdQAd`S{5@fGskzV~np%(yP;{V`?>~=woWkq5+p4$;xpi6p)`A@A1Sl1SIFh zA>Ts~);Do5(_or?y$tz-ZTbhY1iC`+9SW)oSvbLV?ly^WL{WxjuqRJLNV9F*l;v0a z!X<@`JX4@a{MCWElg-2JeaItN-(FrveIk@HVkh3duRKBp`-*Tc25Ux{J>mR58mdEi zZE!u$JVb9>|J*{{zzIt*%&z~St@L&g4MLuI==F<_Q9|8upIKKn{U?!pp6sEN*mi&y zTrxsF3J)hRAt`B9NhV)Ro0X)Eqct5pT7@{@{piUCMUIAj%sZFI6z7=QMavhE7IJ20 z<8(VX`y-k^;jI>pRWc~0gx42MfyM+Rp^KCZhb2+&K20Re_Kh6WP2w1DFu&qALS`q6C zI$6P4?kkTeO0;vIxl~7R)FKazr+z9d?|-)ao`yhhY(8rvzoIczAAQim2o{REroS(F z5g)yTVg$IyOK}5;@YMPX5zt!|GW%29y#6$e1Otx;$miVTGelj<)8)5Hzuz0TKY5wh z-y0S71PAtGISkYj3^|i!ZdD)9j%zPPb69I_511dB;=}n-)O#Q*0^hJtLCM1OK{U^) z6hn#}Z9PM{UI0TQGrvdatLniOqe@bko%p1h+bv7uSlOdeiS&|fN ze5K9W|3SF*F@XefTi(()Xz~Uh$?@yr=1AZ}jxhQ1dSTgUNUE!}@V}O26NI~ji=t<* zNbdKtopOv;)byf$_J%2q*(`m0*0(L$oLYz~^abaI`NJfmjrc+@pGjX+0&UE$X4sJ~ zvsaw!SDCxRnTa>#9Uiq|z#is@7z`Q)!LpQ=UF+xsBSd&ION?n8xR>@RQ#&^tQjWIW zRuLtbqoOoq%g?{iGZy}2E6T?k1%v}Wfiung_noHi)7Li^clSD4D)UROk7DjCr>Rba z^Hh*QK3S5xAhWZo5FAQe-gw?~lwwsnUqX$gAg24BAb2HLXMeJ`cvT&pXMvnR=zwhF ze(;FEk`;fxh_Eiu;MV5DVfct<7`0sRt-pj??i~sBGaAS@@x>+~$5#u42~J~YpQ3i? zPl*!f&E)7!wfOXd#<*pVhAi6E@YYOXAUTixM-tKO=IMS+Z!_PF+K!u20nHyDMG*K3 z2%&PkCKrAHB_`Z|URU4oekOw;=EZGNiWz+vemBIUs)_Nz|BZC zLye!o7N0ezKd$B(mHzLSEdo8{=fLHg@1rn9@>+Vc==OMNbT6(kajup(?1h$ROJ$T6bsfSI&ob_Env`F=uZc?)&hFUOc z>lri`9rd0J%3&0o@tlp&2-k#s_K~bHo3GI|k8OIj-(g;aC)pEpWb7427SS`_tyQzb z0+RjA8~$7Mv0kBTSrb&{bzCz#&DA6@ohhvle&_W*an`_y$Sjpz5g0b&``P=2XGxtdc6w; zgenSJ6j$wORio|ENPH8`1+G=1@$8JO`Xh2}y!|Sa5zh)_D8_9-L?!Ds!Wx1)VY=Xz z8`_ii@ExU(3H29e^7QuS1?zobvsU8-5{*QrkC#33a6V;7590;AVWygd6`31nWSs0j zSX)?uD7#)MhUijh9bmkiMVK$;QkMIx$hXa6WcRV`VG8lR^Q0jh;d75O^X=L0iwHQ3 z$adfp-wehV^R>o6Mj|1d?Wm-gJ5pFLZ4xUvN&d)mkz{itEe7HNLFon+7LpD-%=2kS zW8S7URIg`U(Mva}nBC6&MDy#dBRBm5w1uWuiOUVCVk7HQ*4|5NHlptZF)NM&9Iw}C zI2oY{1F~Rq3Hwy%cvuwa#9p1nI?UAl{}ZE}>&)%;81h;cW`6TJFKR4Cr3YjE$lim# zYPe$-8ayE=5^cJb5ja2x`exVLx-Q_a@3P(27mAB z^X&bBl7OU&(N;CA_uw|MEQ$J7|8af*DcGB%nz?>vP=ZR`QSD z3#_ECCG#8wHt`_dYmmk_m(=w_4gSLZoGs-23x-u_P=>;)iXDa_sz<}DwGveeVh3@F zhGyuYt1RnZ@L`bir_{HEHeUF|_XhN-@lYZ`7un*39{Jn-F3oTQ!Kkb&0#!~$l#Kf- zmGCx<5XDcXFWBU^p1IWF(Ll2apv1k-v<2_NKJtR9cTqlX^c?Rr2!qh2SP08d3N-(& z)_t4(`=l-E>%bYGV|-IrKUKqen>*S1W2>K)+yo9zxfiDLk$6t>sDocKu&--&24Zvr z)g$@!W2^($%>&Jj6g;9uzaC?6t6g$dX|8R_m82c8F+^eXdker5H0RDPL^I(Nb%8)) zgUgm!UeRNDX$RGtdv8IH-nh1q6%(Zg@SGjDg))L4Ia|1!=}Fh454kq31u$N!R9K4B z$uP8IT}OpnZQ$_sT5F$4b-tZq>amgGh*zZGMdyh~a_tcu{&WcDF=IT|(YonJcDWf7 z>a4A$w#Y@9YnVRK~?Jup_<5`&`z z6xrSY+gV5tnG`gRsgIN<;H7fVuiiP}YT%NVT8}0kI>GR4lhM-TX>JvZ(j;7a#|4#VzT2X+rYv}zon&G4+bP)MQbweapg`1VSj z!O5^CEm^_dFy?$KFs@KM&-0Fq8$n_@g^iFlv-KmyPFhN7FVTVHu@Kil(bJd~&3Di} zIF1;Vz82CyTB11mP?U)Nu({WfB6jrQh8{Q&=+u$;=O$mb)&sQd=85!Y+@kN;G)KEc zM8v`**@WJdj`{46Qw4O=v)fwt8laCf>?<2A8TP9K(`T}%qJTBnQ*9n$dYn z!V&kVk=-rlK_&`sM|TUi!H9&m2V(+%l6B1$2s(kNvY4Jn>JJk1gZq&e`5WW4p=xG# zS$FphJBnG7uO!m)`?y*9jrHSji%lJ@c6mDaK0m{AhK7sA4NL?hCx;xa?qHC}qsz)6 zqhKA#cgI%DF!`~dPx_!x8c&WUY<=M5uNGbif| zl0d0MlUJ3;$J}OorGu)QF`)D+Jb*q=J8&Z^D>tQFk+a2MJT@I`{Ej#M_`kV6D`wj( z7+w8glXGNSFjsh%SyOR&Ok}`Mg@;3096F~jjIJ%(QJfw4d$~79$tw^>#{s+c`&iFn z#`+CV-X$rxwzyojGq#9F@G*_W0IpUVzF+f=B7GWr@Q0p;O2W9nOO_66JfXFon;9!W z`c%w5nLs0SYctZ(|0EQOL^z;w+804hxEDF&jBJ(hW9y*|G zPtGE(7m`mfq6sGlL?z3aA37}O2_$G*9Vg)sCQOMm*KeNJ-V%J_z+@ZUjn5c9_0X&W z@>DMUum4Q%b~iKlHc?t6Wr+}r!L?JUV`3b;nZT! z66>*otD*KTm}k0Oxbvm&{}}VRl6xr@;05Oxx;$wzzBR_2Kb3oq;932ib#@H1Uq=N$ z7E({=a!FsQL|S=!s-)zt$P2THX8^%y?+5U|`Nm93=N2|}F@Q4qDjL=kje$IgorAh=MaiJw$Yr;)Q_@^Z?gN zA6?J}W)ZpAhQ0>O2qDh3JN_R0{U^;;DEb06lpvVknx|H@t4Rv!? zEU0Pja7qiI38+viE4VpR!#r+pYq}wW0>RsL7%s1ia4rs<!PeIsN6oTSRebgQmu?SnI zFK${{`ufylsvFjyY8{<64F>>ajui^k{{d zCQvh~5JXK*+`3bm!-_EvR$S^5&|>Lgs(d?0ss8#`;**Va{P+sb5+Bew1FsoWI9v<_ zow-oO`{*5aGGS=oJ+V5ooy{<~@AVl6m5h%MjjkL+DS2FNU@_Q%y`Fhu?)s-JNUd*IH??SqlB$fTcJsOA;gdDi(b2~-4O!oS^n5$%p zpW#7_n4mO9!<#SYqaTf!V>~kbdcw{k&BT2utJ>Y-+&8XUD3v>R$^ACE5{ZI16ledV zNd_frzJK3YO%fC*V4br*Y?ra_2M6=ox>wezMP=!UDypHe-?D+^pSp?zZpyc)^A9i% z7uyF%n_5Kj&;~iTc^xo056@%c*E4>@e3}{S$I~+*p?B#n{3P@6^hY(ZF~ zlCmqtfX-L)aRXTmM#JldPBv)|`7(yQBZ~WK@{vn8#U>e(Sfx6bdbJ+0{vt>VnqgU) z-U-a$=AA+h_HW)-6js6m@ZH7Y=$FWO*^Ui4&@^dCYd3mz4r)`qr-SURLFdrvEu5A+ zqo4&17ybHkX_u|8Q?_RqG~(hZjbS-F-Wv3+_I6z^jjA!!7?2ac;@{9_xg6{kVe8{j?#WuVBpJB8GL0*LqJ5`*sb9fiA8W*ydzOnJrBYGm zI(W6IkA`~>qB0tqj(T3Pqj@{5R*+@T`Tp$GJ=pceVnMvyA!_TdRE)9KnX(OYWD4`{ zpeRylkCcqtISE&jCSr8(Ac&SH?%t!^^7hUzLx8J?g@Ml68{>BuqbZ$`$1Nzt?&SB9 z4Z$GTegFKolFdWd+^?A5{+puj031NJXSbb7djA69q-e5VNz!f)qWo1;`a(u|6yOs7 zV`i>NWHJ#+S+Q931rj^o6*^lGd_nW~VzYs`GW&!|2QaCrfX7LKRrmRrZRkQt8_s#h~oY&Bv&QDn?*Jx`hPk!qP?z){xl?#j+zv0an7diiM;bV!!mVN zZ-W)b-|B;DFPa*Pj6;_NG``GJ4%d#JrWUS^lD8IWu&2DW@leD`Gw)0^3SsD`<3PZw z9ARXT?;!TCmcboDpE6 zMhJ7kH)1Jw=_#dL@;;gQxO>~iONtqR0+KBPkI@Qxs#ct@eE8yZsqsh^Q<%q|(g#JB zrJ-w-iM{EgFr=QXKY=|r3z%e?!?ums4QkGjl#1-j7JMn8Rfv+HR?IU93 zPmlsmhjZFf9FpMBee4ygA(-JmD7wBA1znpprOJc(X*>aP7AOxG(q^?QkY~is+Rjqe zJXYnlZ?tAFa-AzjMyf=uH33UmU~9Ic*ksn4(8J%HCJ|yvk|aw|M6*Uo317kI(ZLTU zRbWaM5TJ|(fj`##3Q@WI6AB<|H6UKFGSMX>5~+-pv9ps?T$+yW$W8|OW3`d9Od$Zv zmpCN<`~uXr<_*%KFUWS%bhf-BEm@xMFo7>Y*Ypc_Rgt=1xYJMzAWzbIY#*h@ z_d1-i((2?%byz}-jr;UI{Fqs4SwrLIy_28EwmdNhPcf+aWXYBXnmGxZ1UhdM1U**i ztiAncfSg%Gv};lEsjqdAV;YVofY4)4OO^6p2Lc7ru;?hb&YbTM$X#9;|NX5!DUvHR zxp_ruI-`ebDzQsp!VV3WMTwf(kHqH!RotMHZbEhsB)-0Hx1Ii-Idd(2?|td>MS7_d z7B(fIYS`}BXME=)wbyV~Hkff)4LeU!QzB8!4de)&@RffqMs?gmqylYMf5bfvM9 zn|=&#>6T}L!}S`U4tD&&O%JDw7C*d3x;7N+0C4!KYZq(KgSY{iM~)fhL5Mcrt;pUn z)!Me{HaCVNoSm_u|0!)VfsHF)qg+Rq&Z9AnBjA~UeCXCUce_7#*r6tVD`$u=;;cuH ze#S4sY@^u47JJZ1(*}@Djx#S-> zU-aOxw@13hJgKuspLrSO8KER3gBW%sE3@bxf=q==<$}VZJH4T+)%PBY4!?f^&}=#t zi|{{D7A%}Ky<70P^bPmVe5(iH$Mp>OcfVNB)r-AUUxj4}NSj9;7X}N9%2Rgfte5sK z-hV16B5s@+JX{`>$DqBfxr-a37sf7#+nUs@{v*47zPp%J1wP3^xS6@D_m+w~;rLOh z0TA3tT-fAb6|vs1x=*D~f2sz{1Q~<42x^(>@7|KWyVMyyS#3#YZspfsQL5cLCQ+2{ z&%tr|*VL}+%^DpZBXFD{Xh3Snv^S_fqE)9fuPIi0BG!l6L@T`%Hn4a8F9$VBR};l6IKU6sZ&&kz8BQ2Ks!Myr@8Xeim-{8M)o~n<|F|XK=!0Vk%iTXqj64vYxUwk5tB^cBQflWLxeC^d*gW5(My@9h91!KPMO#|dfj zRw#j(j8mSlkorzC>0mKD)1!iPART+!e+-j=;3=4qYRRb`@J&J#VMcI_aF4MOKWX21 z*};sTrZJEdf{S`$JTt`AiBFwJuylX)4m@^M_?V7%e!Oa>-U#lEos`%>jhih6{^1bDDbD(-^9^6-My1` zdtN;GU{hGs+)7rq{JeiE_qN|*f9affP#`eO8|t_Q4Iy*_wKt3CjAYGh@-^R=H2Q$$ zDf2~9pZb#MK3883-i9T1lJqg|6n-Foyta(BEo&!Fj*c#*&|j%D5a^K{i!wJ(@W4IH zz0-yqCgTE~kTxaV8@;lbLsUFwiro08T0`$^@kXeqjxC6L!wR?I^Wd*z^P8Z> zvBzeS{+SCJ`#r(?a#u=iZYnrnM0J;WVcVU#-D8p#nFNyjQD9>n8ftIj(lLB^q9$Ol zb(|LqZWMHmlGgWhr}`+|%*^S&C8J1cGq=|v;u!`+CD`YacqS)0G1SfV)p4y}Jd0&* z^Rh)o+^M#++)+5YV?s85Eo+XkKV2^<2z4^^_+JY?>a>@!Uo|g;O%n)t%iRaU9&oZH ztMW`5xN>xtMilS7gLZ2exJ#TCRpmC^31!1rYy~8|h4)%!ek6#wFUTY@Zhr5fwpHSd z>WJ@NJD)d(^lVcpry?~F;eWG!3YZo`Ix!5|*?3^fQrMOltJJ@e@$YpcdW1kbP8|Q()zV7Cuki_kav5xkg z2;tQvHAjG)IejK3H!Lt}#Iq-@et*0_JFD}fPt2~)%K)`_D`x`XzQ9}}!Ywx>)Fg`_^vm?)CJ8UsXt66FO%L95wCdKG)WVmwZ$|GyDEbHA!vk=?g|Zr1=2% zX3p6CCkDW^Zp?t&grsA2FDoFsabyEVV-6q;(ceQ?2K#%zJ!o#mrm;YP>A|6Dgm!a^ zp2edAD(CkaQRJFR2TA(dVHgR`26$|E4Pjckm10(l_v-CTS#$B~$Rpc_=o7<|cV1Pz zGzj>X{0j?xxU+EmcXdDJW!37kFq92g$z`=>3LG$3f9!_d{`kGYxpS@|2drgpPSD_y zQ0OY?$O%U&(f|rt(s1m<;MaQ|amo7HEFZ#$t|>5IU~noLO>T1Ys<+TRqvSlYM?0tWR{G~ z4|y~HqGD{Bti3_CH0fJ;{@5leD|0Nqse-_KGFP^p=u=-T272ev{Up|qtE<_RJN>Oy?7o%#_ZMG-`L{^^gwtgkoy3OaDq*Vq&!;NF{ipt+j z12a;%*rJL8#{E@xMxYDs?YW8W?_{-Xi>QGw1z}>G$32H$3r!9z9TIu_DUee|7BAfM z=$o_qPt@;<8ry{0k#>Q8QWk-vGmsSRvP#F%5k?lIbUjWso`BJgeaBGsre^+t)YTV9 z_(W>RpECz|mebD2Vl+G!N}@b<%KdKGg~E8n2K1)HbA}-$@Zl&5vIuKwD+e)uotJx`Q+klP~Nh+p_1=^2IqZ~XP zaNRgE5~C$@1t7_x-~`x;!=6N3O z{uPMbZ6mkACK)DcM`Ge zc7Bfv#i2M}g=+#g4QU;D+KEa}1;no6MzMtQjX zkpW_V`Z9(8SlP1wJ)b7x>O%N4z;&Wu4zU3(*L(Hjt8}aqZ%hI}+2-bBmZvASFXfwRZC!2$0g}#WuEVg74b?LGnZf!t3j~9x2 z#m+548TJt|%R7$7P2PU!e|J@Q6NioV^lK76=>4Jn3&v9s7CK1dj%AZS7LevGh0 z;D&@=L?7{>Njdf%9TY*DoZO!a4-xb~O>b3az+uGL=&&Rk>v>?^5MWX{RISyOJfM+G zUneQCT{ocLKcBLpkEqR6ftJOAb5wiJqL&23DLvVi$$p%IBt1O3E+?0nmT~M7vLz*H znV@`rhkC=aRr|g5uK`l9-1Okj&N4({izBg}(@ra(84hxqYcFSmoRSH$3lv<3!~GB0 ziAE*&ohH00gZOr6uK8ZR;^FzEcOhQp&qE>0_;|NhV=X#DAZSP^PrlxY{}EG%0m&|# zmx}1L$u4a>Y}Kza;_RtDR=bFzTvC2WKapkW?c2V8FMhIZRU3VsctTTuq%%+KzyJrF z-Jaw>2uzs06=bN=SZ>6( zbGMqE$y_wvO``Zy@sN?lJdoqaVpyHKlkc~8 z^4rx>Z{iV`^8_R2Zxj&M%# zQ|n1w@c?=Za28ua#Ywr-oH-}P5)ldH$+@P!{;glUx3h(6to=PE>n$k`XPF;wLMZe1 zcI#4Sv>cDACJI^1RV6^bL6AikSV|a?x^io(mR6S!Rk?5ytw_(KZOpNRxb?{BJEEVr zKws3O3rU-JTMxfciui>uyqhIQlu16#rv)Hs0)a$ox)?c|Hd zyZk$Ywkdl-qAho9BsIZr5L;w95;2w&miKM(PUzBb?VFpjE?&_4@ZFbQr-eE5(Ch!9bycjTPRW)Ej6=4mmQ&qcKXggNCQd?ua zF1eG>R{LnZ`2Y_k&4Y653|VZM>)v9W40Pn3bn+_ByQ#a8V(uId}4NvoN{Dw=z}!*AxItuSC-esazwXrfgHM*QA}s; z*aIZuIBzt8qToKo*_D?)pQ>>B@iVDFj9#pxpv33ksnzMbc{hmeF2>g^)hI2d>;G=~ z?fM716oAvt(Ka9U=3AnvKWN;p^>$A9fZFF9b%xMIkmfVmY>s% zYFAMa-4~if1^<4)DJJ}S)qIpha?QfR4Ieqpd??}1F4TNdEkjcf6OMigku81N7CI%ixXs(P8b<#SL zzX-nEhl}IAKXrfo@Q$I^Ixlj3j@InsyxQO#%rIeG2~Z!~xCOdYi7(-jPt>j`0uv!Y!%witiu9dKoPS^Te=nPIoDz{|a4K`v&j>!5 z_|)LmNX#rRc^ZMwJp&y_wpaYwFN<9v@i_{GDTT5_KAcX?i=EuMhs$t=Kin6nF>W{v)$O755IRxLkuS^++SI5Mg z(-%(-3)?C1+qKl={{anJ)ReB~SfKsNpES~M*3ZVWdx+6qcMY3wq?i2+AYQl9 zhx9B70%@^KbU&fx*P4`o&PqVm6qV_3I6Ua~Tt3OYb9W!MGQPgR)Zb5t=kxk__aCmZ z`uMvkkUHMKr#0U2l_(=I{+=--kZ&|Q6%HgpWaMTVEBm>g4sQus?65L26e4j2$~b4K z*{^O@(0~v^z#A6;fD7E-Kl8Nr@-3dbj9786FqjDZa#xHZMRv#cu(vac%tFrs>_Y7@ z1RKC87%mpy+L3cq0|EjG05A~#A1z;Wq5p09IwAf~%a^$lm?&-e8V2gS_D+X^bk{96 z!m468RZ>^cN~==Z0~O$%-01$EJF!tpF>KODnl)9mr+fxaF{d8srD31C0L&uB39g8o zT*{xqhWkZgjWxQ3sZR z#?L9QruwCjk#20&IfXf|xF15?>+>$F0%13V#pC=V&<@koKVZQ)jFh(yW8Xr;pjlGS zudKU8-Ouce+WluF%1fq6ATsHw&P*VCni zZ^0=%<>bUg=dlq)_cCNq;OoGG^Awt-Il^fctZ`MxB$y%`yC}RUdt>$+eVLwX$X@T# z0A~SyMp{A9pEC*tUIf~~5bA2^ng(5C*vW5S3^Wsjlq)kz$`1fJ>W_Rk9nO}ZKym4| zC9Mu_cBB|zl9HEqN0sZ2D1klvk#H~sBmEHlZe(;5Nt<3rgA4@3RRRV(p(Of`fL5Il z7xW5+k)eAynwN*=jV*PdmxGMblxvGF06ws%Q1Y0d0ysiVZ0}* zyBX%4z$JzdKhVItH|6rfeiS*tfb>V*tp*C!Bi6TqT@fg`mcG&?K)S8D_Dr3XnEb*V zU>rZ|8rNlEU)kX{B@WCI9*N7Zums*gI%-LOVd$njDP*@P5$HqZ6gxPy_ia>h?RIh^ z7W34s{gl~XsEy~)tKw3hZUy)2td3aFo_O41g8WpPwnhq&P|Gm0BVOCc^oi`dr;A3I z_1@G0c37lQSbKMt(-X#)gf_$6LTf-pGw`N^scn~S%UG6R=k$()a#=M(SNe0OGwkaV zq#>?8Dg7({XXf02Ir;R0Acs0*%LzE#)Loce3&`67$jD{yes}4Lwp%fr(*#UYcH;Kv zOq9ptktGmONa20e0_M&39Xgy#(!RzJi~DlmhaM28Vl0f zz*OhpZ@#4y_xT};1;IEzFcj@qe-8x5)>3{~(mvaFDAh|sLDWrTmdp9*M=iN{pZHeQ zcu1c30Z?6OGtcKC>$WjY$G-LXg$1~1zR{<_6h6;8ik(-yzy%b>HTQ&zzb`Me$z0Bu z0u_;8q_|6Sh;JC=0)<0(;15XHUyFZZJ&spf1dq1aFKr*a(WXCU1=((Pigwl+`v?JA zoDyUM4~VfvDL94?qE$0i>>AhHZTKO`WCjT%<>PYxqhWL6TMiSz&X++Gv|4H(vHf|| zp3UC4S*=Eo5=)sD4EkycQd%JoPTbW9Vyo+~3F)BMV_z`oMWX|IZxMLDXuW>gn)-2- zFl1s$gyvJiP+1|7pda8Uyr)Tew#$dEtttvedSHcZr@wnWG@NKHo4B>T>auT=yawO; z=lpV~I%`D5vAL5dgl^FC6k~t2C!CHj*)2L-w1XB{&IAS^#$U7TA`-rh)A%`D*R+B% za`|vu*LF78;~3BR4Rl#KEps%MdvLjqZzf{Z53OC2ady+=eb3vW4@XCIaAnPb2BT~G zTPBfC;63=4qux>U{*Qequ^)alb92h5(%X%CA;9hH?aT+t}-TVc4q2^2|E zD~KGWl?awdzXUa{0KC>A@td3cAA(BbB43@s6f}*evl?av(8!6$M7*Hk#(M2-oqxp~ znND!D${Kv1n)Qy@1<7Q1o#7o$&6A|CHTmc;aLFpOsBF_-ST`KUygBi$$tCZQtnY_% z%Ms9gZ?wkFDuyLKOQ$~uD4iTfN*F(vUT^ibRlA56W9kRFq+UUnd)Dx1Muo@*EC!SF zCE1wEQ#7)j1!I3fxEtOceDMF3QPOwxG=d=KNyqnbuNNNvChP3`#g*iM>U*WK<*Piz zuDy2qrpW^hYA|eZFRhpWmBx=$$fCs9mq1zHc;Kx1hE&ROWTW*bC^~Z?EJd}qrtZMa zTS7VN{dOzdY38Kw2_u#kx`1O|hkozN-}Y;&?GnFGy`h`yl`um(eIe3)9*d|1iqq&j z%R7o1qePy%>7m;Bc7&S~q^F92{Gqx-gq~4d62&1pl#eV5fixRV-{~{~<-Y#WMm;Npl7KO-+5UpC(gs)>68X>UIY}9#?op{upgPnsUtwUOrJpe;syT1u|l$zMk zaB1piid3}d7z93lMd9jB&usj3J3~T=p+b!HBjBrV|IiVm=1KmN;=< zmmf#1rBSrE(v0gUYbmF^zTHliKmkND$k)r~%$z4hN?ySp!74fbyQa`!CBNcXZdo^Q zXp<`{B(2}`f{CGHQ~b^%E{a3pbzO2Qcr`OWzBm8=Is6sdQ=`bGV*k#+8t5A z^A>XgMF!M&drY`}9D-e|Mh7{Kig4r%ytAJ!qcLz2f1LD(6-++lfNrPd zgY0fX!hSs02v5xq-rq9vQrLu@gPXLAZ~aMfwo%^rVG$P4)$6J?3w-5#9t$t!J)UcaO|u!SZ`W;GWiJ4P-IJpX(0lFiZPHpPy(#Vh z5t?`xEb0g}`LRcKp=@DI0SY^j;R|))G>5*MFOox@G=ff-(0n^1b@b8o(UaFXy=`2K zYjB)o?*c2Hxz-EasnYi!fH^@5xw*~j75}d0yBQ8vhNp>n4fpcw-F$12f$xtcZYqqB zeMOx_Csny2rDgY!2jUGbGb<@icrE~4CrZhuXCC4ZaV`JEkhf;dZ&utL1889Qv8QGm zt;Q4U$*8Q_p8hLD=)Y_4nyx1K1OR|tT}Jdq5?x%$m>>#c$j72XGGyhi=C-Wg;Hl!Z z`wQtw1DrzjplK5Pg8|jUQL8fL_Ar z5;&gC&pff{$tVFj+vkY!lfy;z_2L)6fdi*ThTw>h6tv?S4BUjQ1~?@<;c){D%Sq5I z%!~y-rBLhfdef6~MX`?9{+Q>Sl2i?G-}+I1GYpi43F2Dyr(aoM5;nEu<`Neu7^d^6 zuswdHYrmnsmwgvClWwG5_+N8yEA9$WVjX&PZpsiZd7Vt@+Y!u$N`BFJn+mF2p~QUK zzqLr#?pi(JabMpn-hBU|>Q9mo2&rDmS41+m%&jv2WpO^UgbA0fK%_3rCm+)J46Ndv z4dhw4UmWd_rHo-{Ftp#o3QJ#g?lmuYn{Wnc^>= zA1LZ>NX?V@un;Kenn@C&YN>Aa+CQ<~{@;E>b+!W?+E;)ysEdLvSd4PFBN%Tv09jsQ z+=4oimWFcMJA$j*P8YEFluVni70%_)}N4>-zxQqa)+WE z(>+(z{hLY8;Dz%#^n)>k6z^^Tja|HpHF|$=NrS?Me1!%x%XwpGPRFkGcI*=w?UVUwHo0LsF^`4|anO{|sD=?+Rnq+r>8 zOBFd^<9MNoPmNZO{ZCda8!v{*i30oXHE#KQUfyb zrn_?K8svLIG>N>(j8_y7ckL8d13ztg-{fMSh|$;*b9j@+oDfZa2W1DE#W&$D;kw_q z$_!11;MQFbhBt%ISC!{|(X9Rxb`cM!LB*T3#V#T(9!m78se@5ML4^qBPc9xj_E($k z3jMBUINyErvzt@pBW>%P9T?D7iIwV^i|&cu zDo5pR-E-PM982kce=zvqUpQ8z_yc%;G+$~8{V@WntL+`(x{y<6xqjcqnKlRVf8JP%r7mgh(vT^UNwrOW*_ES98Vns^t0KqmqwhPcrLw1U5}>*qeXy7TOvNq zdFR=izu0LT)f1lXAdOgB_ka#fL$X;uO#bx*Iq9l&1|&s?G?h@lb(7{8&f@?$`M2?` zr24x+J(`e!pwXom>!SKplM-+wspBXz`rg$)%H08vJUgqVp}75P$!&0=Ili({)m^^g z7sv!O@B5VR_CrU9?NFkPw}F-U2IjYna>+6 zALEK7*45eZaz$01S07>6G_sHqWE+kvS{`ymwBw*vcj_93*}a{wI&|sD9OIzB7C9kW zEfyMQIZsY|Hm)ltKIxJunzzIj zbKms^XgKiQ83a~EMGGE}BIxW`63ajm*+mzxBSw*DlEKq)oB^{w!>qZR5JwQ1A{jxT z{9>7ZL<2 zS<(t_ou7aF(c@21`q1P%hKWIWB!Pg}jw*W!a8fS?=V5$6Ks>Uv7W#+G62m`(z9nh_ z{T_Am;lP0MqBUul_TYC}L8hOo-^CmJU(VQTjRQkTpO(yXDeM&fO0m*-$eS8x+mEtQ zF@xqU{Muvx;Sg{9-$eU@$Ig``x>V%j%Avu~gs7b~9{o@E#3id^r16~ukojOE!O#ODZO1gO=fYt}877N{zM9#e`?$d=J zCdu0HslWIjzCc0jgM{|S1=e#V(oq!SZcU02>}|2dSS-&VKfR-EbCs1>B{b1ra7 zUu)HX0jA{!nbuS#-?G~8EB@(cW8<`ZeVjy3?$QHJ4|{3tfg&tS(rnPwS=u{ArwgsF zUmom*7}~>W#dzV%q${$(n*z86S)v7Nk=38WZnEil$h%(?-hlmQCNq(+--L znSHu)t4M78-#ThV|EcHVqcfscSV;-=ntB}{Ur8(A!Zo@nz71WT+P8W=sp$)yj?$Q| zX>5ndI@nuR70$9NSTL&+>Buydt=@6|f5Hp!0|&G(Qubr8kK{&n8v)nCI&l*0a%e@)4d$s|Y-&4tu{6`z zJyIvSl)mH0-h`XwXf^LjSXN0ETJo(-*p8#sZ(VX&XC1W5^Y02o>`BbQwgp*nXAF3x(9=AoJWYB*3CdSKG^NEJ|pS(+)ed=M`eGtnh+Un_^4lN zJjWp=#Ln9CMU0vYIGi%AGs?UjtXC6D85Y{Mi?mj z0d~W_f05LkiLnu|Z|ueN(gdVzS?i$`7Oh9asiH7|ErbkODha~ya34z@b&7b^4=WQG z^Hga$9}tFx6^-dTDS6VG!`=sS%B{MJ?}3^uyhPR9vMRh=M$N|wGhegw+4ox9u)lA(*lx)zSsi1@1)eCj$-z7t(?5P<0YFh1N# znt16Nllwfovo7i=9{faAlcJlcRtwg$t#SSJ0L3*(K`OPGqu@kL3oE{77ig33s)@w< z0lO4C3t7(4sMrL5MXk|BVZE>(aj$ziBvSUXlecN#Nxb5gJG=C+t11Gep!oyN3{C#K ztA`T)QiM?&3zHn3*1)Sl-PhJrtL)|=7Nk5t$i4(lKf1{(C#LG-Dl05KjER<*v^dsPDgl1#{FUUQl)FWV3ceL^6TvCOh}L$nzsj+^<o25n!*z05GK;xq8-%L;P>VB5#g(H;+89jZ)|#inVg~2H7U@}ucExpJOR*Hz%u{Eg*CNCllmPobG$XzQkVvkjE60TuiQj$ zsvRW}wbf8!Pe2q}s8)0rsjg~=#V2lq*7tjSaQ^TuR(pacJT;FdzOr4DEw!GYPr+$e zUfs0}&LUl=6X&je#DnFM9ex4xhq$*G6lu#rkFu&7oo?o&45WQ$y&y}dv2J8pcdQtN z{XbsgtPBl`J4WqQ+)#TM_J=E!=)m4@BFgo)BYG( zaiI({Y8A(oVG3=U`u~*EZPKib4ig?*kCeGeJ;1A5lHJ}mO>E2rM9#+kvz#t zZR<+%1$VzGH?TLZP2ZYlJ;t1GM_G_xHQlFFnyHC`5{bMORfKMmvvsjKkI44>Tcnei z#a#GYgrqWfKH@^8qe2J!4d&ITPrMZZYy~8_>)*6Zy#kaz*yKeEmgOpU-`uxK1^29y zT1-zIbl&dQ_avBlW7(7gn?ds-*)O+GEYJo{Pr52!sECY5M-YDfD7eEcGM%T_m^0 z*k>hQ7|XF#m=3ilm!5}}TOW;E-#0z&kVXsjSjIOjYTp!uA^CdyNelo(xwDEkHE)p5 z8S6&@jHQMt=cfX2Z|e_Ws^D3G_Rm*_+R8b`*Tp8j)nNYUG1%==7!JcIvO>Yc3|o zIljFdgj2?`X;XF^KtO-6$s)?meN_mZ^-joYdQ8`$8lQ?8Bl)F*mC#aVsv9u~f zg*n)YXp5T$^judc3r=;L22;ft0Ji3^uSMQ4t?gk~83om**$sC9(V|rZ9foa*ZWTe> z(M-j=Bm^a;Wr?Hr$9&6C_k*#*BQh5>B9yb`&ub9KgYxmJVBzAVf99uArNWnfJlunK zvpVX{XZ?%BjLWx!ji!?=Iy(|VUU5E&c3ITEXo-zYvSkk#cX9dJYj_FkPifl^qH+AHDMYf1tAk>%KzV+IR6ZCUtjIvM91vGz5WYcOWm~P=#-hWYc4GNRPtn`e-}ISdZ%&>uaXsOeX2#z zn7%EyjlBR>RJzO{cZ)uQ!jNu5sNGP2zAd>d?9!PF@nv!~dS8I!EA?2PWEddWPuC4v zBRs0$h!|0+AwbDm8}83D%i6)R7NImcgBI`uR1|~kFtn=awOg$BrG&%P=zj26{J~Xy z-_r+S-w)Pu6#SvR0}h0DpuuH&L~mNndh&l`b7|`$#>Uy=IzK=vkQWfG{B#Y(0wJ2_ z@)V~IhU_I7qc8puB7x6!MRFQ8T*rlpp%mfDg3Aj%2lR5*A6ztaBQ|YOcgn|>QSc}| zuUgqO6&U7xidg%VHDT=wxR&O0O-`Nxpbr#2NjEnIqmSs>M+a=QiZ9=OYy(c0!mXD( zM4_bAD@NK%z!ezIy3!+P#G)e)XhdLx-=D)lYaqO?B;b)dNC&l1z_PZgC&DweK zXIBEJLwjmk#fGrhC2Y)(dlv%W#NZ4(e?T0}?QFIx0X}7?s>1a)$wbopl|O9t`j%A@^L`acnTFk#E11?v?2Z9zj&{?Y|RucD=?3Zspm)_gAs zjAERTGg8$b{bq4HU4)LRA~4T^!D!NAypsSnEhzChjMQ)UT@%r45)9t0Xf!oaM7;-c z>BWLn6N;uytr)GPGj&s-&3RsO_!jbTc!@oO167D|6jQS0j-O?YacOr&4!bs%SXO#W zy+0aLD@{;S<%Pl3uyKTRnO0YKMS9?B4U^%x;8J@5i|P}3-4zZ5iUE$4c!KTqo!rxA zv=W7138ZNKym7x68X-qIxro7pz_NtBgH-}mUD@9#x5Y*Kd^hS*AyZSDW{ z!*mI&`6DRS?w*E85mzJI{9`e9Uq#{#>_YLpcu-eHg`MVVxaDaf1}gHd<**7ZT+W~N zup(A=?<761x+ecdX$zd?w{cRF`p74@pU_t8`XSgi5lgn@!?E|{W{)MTF9O9da3PQcLMWRZ}8 zzHI!4@*hMWJ{F8k0#BR%KqiFJu?LNYdMY@~dUw!j7f0gr=og6C?^?;qaA63pXJ$B} zWNtQ{-W3#>FBAM540{s3r8aQ4eeDNA$)m3@k!~vbq-T!e2c6xxfp#R|zs?9sD zo?>Yw0~N}@ak8~sfq$5FIQ=R31PfFHA_n%C`G61B)4WO1?)KV8j>fvi?0$+-hKN2 zmYh0b7Xr=97^p8e5yR(|@S7rjp9YDzl-GK9dl>3eTIX zxk*fYAxxc;uU@Y0LNEFc6$gNpnGUTmejAOkBz=gcS#-g6PHla;5{8d;t9dL3B01&t=mxebLIr5CHgNOKrbJ(fr<$1JQW`kN)ES^w7}1=u zKi}*aK2FjH@#Xi%V}1!N`PwsxS1GySkrO{2rMwOEX4MF@y*dosMAy^n`u>&Cwwec9 zb+S}R9~GlrdzQktU!nO?)j#@ockM&km}2OVVy5xe^d;-MT+J)$$zAjaR^d!7k9E4N zg5pIlBaih|h&s}ot1W`*Z~Gows}Xx0UBjPXMxb@8NWi`iiU@}Od)C^ON?2n}$aZFK zYqHoQS{q&sAo#Fs)8==jvkA`qCh-RtLiWK`Mewro%$#L1v9_vC{BOT?EeU9So*1dj zpP7>~8lCLa*udP1V?kH+w!yq-G#-f)K*XO`8=#aGu!+Iv1 zjiW&OjK~gurGA^0%PvhGKNU_+-#sw?{E;A43Va)C((is$x%2Bnpsw7u<$rgWL5}s) zyBb0A<21v(9hk-xu*=Ly`ncVEgNOD?S))mir3Fmrly$z{=C2fyCBmy7($gfeTJ1+| zvHz6F1%gC%Zv%Mi-z(!&84E~7PJKG!+3F8{wQ%oQkx2QYm}U`QELFst9e-%S-L=P} zg&_z(!aPWI>Z<YbPfW_KoiY}}f5vUgVHd>TA)0#J_Eo7ulI6=S9xO6y^sk4o*^|c5n znJ~*Y%b#xkS3ILfZv3hzb3_i}dO*&Xs8lH5uMv`x3l8TJS4Jr+nn(U`4Zw&ZFRA1N zh2v03*X}8syg>*4NT17*DJHg>E}zB#&YI#nGMip&KO_^eGDLv3M}Rf28X}9!5Xg%- z>X?CBF8&?z(6T;0pbVtk*};NE=KR+3VjJXf8*R(higgeKe7%kzRM1tm)%)_e`$p9; zO`!Z$lQM=4|L*PmuC*Qjy>NoYLZ7@4IhrgKQqrm(=ecRk9>?%BTon#+Gn4e2W7k-;sDY2|w&$O4{jjMh zprj;+jFcB_tlI8jrm%xp1@Eg}*xnzv%v%B3=ImWCn#*dazUM$FASkymgVJWq8`D!c z9xMbIyxq!DsJ3E%sG_;V_keOPC>Tl8a4e~_(#aZ7u~wAbc|PA1-+FdCkNM3>-5%?0 z1_?XnKR8ZT_=hxX2ovxWxO`W4zeZK?xyzfH(|=^F!l$obO7Fqk(WAbY)__d*$}z8K zu_$%2o7QMNu@Z+p&^uXC#;L24NimDjOkh`4sE8`=qJ~om=QgI-4uFe&?rh%3v??-F zycpOL6C75fV@6gl$wWX~P+&UVhKR~uTeuDR)Fxf1TLxWZV`R4X3k^Nt_Rr}uN^%eP z?HvcwG8rVIN+?t4_Z`IW7x})-6gS|p!c3F{#?JCXgojgxMB27ah4au za6N-7gHRs%!Q>h&aY9{(FifIsYAzl$!sH05;wI52>C;P}FD9KgPVDh%-h`FiWyL%B zLDUfeNt(uOuO-{GJWwQ5J!ZD@Et`m5QwtCZrf%H2c2qh&FFr*gvAxi`$DB&AVN<<- z_`&);baFBwk`h_=q*S8Wg!^-0KX{3|KoqKMmm# z#gU8Xm0+S`U9vky-EaIi<(W#IzE=L^tczQ2 zi;>t7YeNyq*M7NqEY8?-`TYZ+f2Y6V zVYXFbTq!#H6d}z}Fm|f|hCM04ctg{0`D~w)v;MW8RIXJ)=wRaZV}IJIXmPjHCYLki zwt~j>3TB{Bdn>{oe!_aoZ26n*Hn zJ6RryYyjkeqwVvA+IGq=CctaZk*M_lY?~p5ycuMy6;mLnvdz3yV;)Y9{|YOiy~-M* z00$X6QGTHLvVQ(}2OGeAFH4!uRkaI+$e1kPhvwx>u8e+06eaF01fbAHky?Il5gFJ) zXF+(iHBgxSrjmS0=(e;^g=bDT?rrdXLruIs8*Bbu6@0Hy^Mx3`_u)6hl@&2>S;@R* z&0W_WidS!5!o$)l=bQ9q>cMBtJ>j7?T+s@SX{AsOh{gO*Q2V)B zl=ln=-YzIRf=;MidKs~C=BhpTWvO}yBbRZS5-HcXt}4aEFo>CHvZxIMITp~pwOIKa%5M)xstPwrKIMw)Fq z>ztN0J&E2a_Gdh9S9e6j#56My>G{XDeH4Udh3s_35;INfjOrS_Dw-_QJ$yjh0~WJs zanBy687>f|frV$YIer^=X518ZkE(EZV!Q);IZYJXp6V{<`kTa!LTzvw#(-YY@!~)3 z|Ir%Z`LdVgvFWu^%sov}4}S0F?$MqcR(njjQ-=Po0i-vH3UqoNA-2o@+e3kN)n&eS zC>O&T_a?cZ#@GR%QKhx~)aA0&z4>erNnD+gV-Rh6x$Oie)AQ*it3-awv&o4VYk%%l(cUMKI1~yQUj0fJGVHZ(5rc;e zBwdX~_#G<_`PEO_5o)a@Qjzx7T1;1NFb1B4CvdpCh0t zi%+%JB()-sOVy$xhgj4902OiS-rAASg8kjwSo`dR7X7y3^j8H$Uwt`P9vJnih8~M=zyWlFVq`GU#ZgSALbYYk z7SYfBniQ7j*A(_4>PdkfF_hiY**f}wJz+riSZ8eUXQSIP8ZVC6#|1c*&_O(q4uTF` zeCYjC0=400A3+^e?had%gCqcDdhr%6yw@A8^h8IV;QmGkXA0Wzqu_OElQ}LMgtsat zPxa)17YFjTgDTpDz32fe)j3TicS7b}{S3j(3QjBQCBK}No|@6{7a~aQKgCFX=vv`K zVX-?3BHl16F27|MZrWy-YqAN|GrD86Bi9CsEFZ^nv&=lmAO8on^scl~p8MWFjoNB* z-K8F+2Il2}L{yKNY_=->ZWDb;0!)coQWyHj zAYVW`zBXQgBT=0PsC!iM_>Og3ibi*aAx_=8J&pY;-6e&s*aDNa_rHC4B~ho`p69}V zwEU=Eb3K6pWS#X2dBoCttWFp1$X=MU#c=A4PSaCMHqcibxrA43%SR{qF9Vpm8GoJMb5^P zCukQN&0qu&N3Z{-izr+lN-G=9<6ZOApL(p6F{>)6FhT`H5`+;@mikGldk~%VwS&YA zblVk|r-=5n@uv@F{8P8g@w58oqSdfqbUSLxXHWC06e|d?Jb*AzS zO3i_XVYb*F=N0AH<)qzso|!DGkbd~NVv-y4Eh4xOp`&1KY}$bXe`;Jg_)@Q9mjv%6*M&6~0tYb7gD5FF3PVM~Dc%lj~#3(;db>yMgC8q+nge{2Q2h49)A-jgWgGloD}*S=nL zihdaXe437qKla^%F3O0vD)|+aCS_cE4r6Qi2of}(PgIo^J6$!9uQFjXCP?`*dM*P^eHl&Hcd_MXo|KGu{3;7L})R znX)&Z<=Rh0gbP1CH!&$pC=& z=HS{qPQ)CF4)ANcy#!Ic+kWhFD2I(YDsVt9MPqrsYCxEMu68E*P~^~P3LAEU@|XW7 z{?8*15)FQHJE=A#j2>-d7yKq1burinrJamt0gewm;FkK}bZkd(RZVw0{=3Z0tumA8 zu_z3j?~6+utiNVjw>p*bWr%=~jMrc;D2y}sG_M9cbD|z^#(EUQEC_qv_llMnm(SYS zFya04RFqf6NDNXZiOVdeli?q_p2I`4oTb;_M2>Rb%db)`r@`oJN#G4|Ict74Q7sUy z+jK>EM*_LBYcI`(Crq+srG2GK+ccWJS~5}8Lo%)2bXp_w3KLN_7a&c#vM;_{Dw<3l z<-4ymn^#8Cz|llH=TX7NbE^xJg9`BL?{Cq(<*K7rk@sjUT`um?DC+-_NM8356G$MV zI%8sBcch!t#(O|4PND@+MIPBkBCah6)!MS%XyGR4xy9)M&0|$xTmu~ zg1P2oL5hhx26*NKf`)aPlyf0K<~}u^45eI7KZL14b*)-pE#0UyL`tD!19bIp1&?b| zMWmI#KWSOix44Sh(+8#BGWmBX#nd!H#}=zVN2Owh>Xj9Tx>yhl_-Z#Q@oGlmxVBw$ z)4IN_jKRyr80Rf4n~sdS8fq0yo=+I2vfFyixue**RONn%&+n7nD5P=S9AY4C4j5Qd zMytJ;{bVZj0LQ3@&>M^3`lnHcjoX)xA4DIQmFr@O^Lozz4@^L_zXt%&9!d^%n`&Wg zuvM)G?;o_dkEM4Rc_mu7fOcjk&tu^dd}Q;j-ZhSHAeb-`OYbCnjXzhLjs;Bq+B?P6 z?~FgnXUf+mt+_&1d-AK4(T8xII?%rZ>C=^oc-Q`yWF?;+0r=sfvMyod;9Ppo;&_Mk z(>NBm`H<_ozUCrCU$W$WNPfTTaT8oSW@vQT0Cf8&^df?95t==A5|cPoLeqC#6%_ku4eWom_G739I?2FdCARqb>Wivp${_AS6; zBtv&idcTCMEaIeUrp&T#;w5#Jpi66J*Il-Sfa{;0Z}KS$MUd=N9E z%GohKUaLtqCNlHb@`EAqhZ*`TNKDEf?EOgljmA`XyS;A^ji`saq=8!PmiJ6PY(1*z+fVr`S+$6`F3w7nR zB=lOCf5)`j+qd@ZqnMN^a&Fk)=aV@Op7H-^C>S_u<5JYwUyOFXnL_AQ<}8A5yvEsn zXkV)tauTaCj<;#({JynToLQE&JxX%db`GKRlgmR13N9dAOap>!xgjoz&FhmeqKn}~tv=BYJvW(eoJbL~bozdaf z4WCbG<3FIV^{j{potgEUo+TJuB(cVpgyW*0`h?QpV-Rdn%R9luNzzre!BInG2+nYQ zJK=-7qkQYlu;Z+c2;l{9&3RYt6)P}sv-AEjE!m9-3gB3m`rZK&{C%9lhyW zPEO}reoo}G5w=J3qa^)aRz-YWW#C{;QZxqugYPZXHw-Me(^o>N}GFDYqW z29Dp=p`#v43wJE?J}YNWRC9BLz(XY($6U(ju-vVWYwg#~=6)Agx1&_$tUadd1f&qi z^OW0njVZ(IR5l0X?`5mSPbrM2j!5DKVl}*V<+7c<^EL2^DKj9JU6%5?>vXH@P)sx{ zeHs5}@_ylm1!+GvElbFv3=s~8dLlVX!)ef+>`a~j@4Qnwhzs8*JDzDCvdYs<Y=Q7^-rL7zV@&H9ew0Wb^SRl!`shm>lB>!~>OK+ev9;NS=&KD^ zmnEZPe|sz=BR7YN)GVbggrpq+c{W`wTU6zsK7XR0lXQjxqw&yalnkhYI9meJ*xJ_R zMPf&T@`PF1kNA+`=e^-^=GN6diH+@d2A&RQGboMjIAX0#uayt|Eo{M6H;?xvUKhP? z)stOmIBus$4igvkL!!2dq;3eAqax5?5n4$kS(;xoLvJgUiZ-FQ^tf~A&<~zq_?IV7 z?aaUwvV(TYA{tJkyswW|wq3uG)$OetAp2rb*=7Zm?FTFlJ^H)g70*t4#{8VBHkz0R zZxdtB9mm}1+fRr3Mt(_J~bQvN}y*%$(HfSzue1LpG2YWD?gNDujYP;J5R+)1ls&-%vlzli~ zrU)>j)e$*zlS3Wh^w0{LUO>wBgVpjZZ-b&#u36 zr8;?-sp8{K|6w(Iex(4C3WifmCl9$#8|W9p5l4uXGoSa}DNDvD&XiBsd{n5K!Y;Tc z8RKg>#+#=in)N6+(v|lTWB-ltuHe?$O*BmiAryVt%^q*yebyv|Ky8drIpr3VW3a)l zxfU`$(WgWV!#iA!JMyjw{a++}H6W(Dl2mR4IiJXeZymFCDikEn#Z}q?Mo{@sNDd3e zYNHEjSh211Hxv@3)TN9PbMx8!Cm%=q8r|J9`%!dx1@`tBGF9V&TRkRP<9LIdPp^=Ml4^@h|l2c{d2uoH1V9iIugzd z>M?J-0@kWUrJX6yGNZY6Cj~&YS5q2Wjn?`Ry5D16Jxq6KODxhDW72j2&zZOO2x?^9&su3 zoe_)qKj)hX!|j3oUDsU8xSc>l!N04LiQSDtLjAlNg( zCfp=#a8hw8WEIp{w|{#@`%_wxSPPV5*jOP}X-`J~-Gmqr5Eg5W(h!m z06*E(72&(qa9U7Z6Ky)M$^~~1+9UvF4*8PjHk?VJfsAf9DGIRzQlfNN;LsrtqLY$A z*O6pz5Ad31n$>AM`scL}Fyos0opRV~>^&%ub^R`Cw#SXt>}Qn$&zVl4?CX2nXe0~6 zhln|wLgK=KrE9fhg$w(VmOLuT!o>WcmcCP-5UOp*>vz`xoYT6!D z@NLrrXMXyiPNMqh+mSgcNvxR6Kw+Q>;7T}Tp{ND;l9hswf@yT`dvdnBa$2U>^9fws zLE){Z6fpCpoz@16?PSTp+gV^{ooFaWj_d5j2KXzCgR@uht}Y3{+-U?RnzQ8}Bl4CS zQCScez=;%gXgW9;A1OBb-;`xi7U|>`HqV>kGC%&7pux>ND^%kD7uIbfX*g;TWbD)C z=&&`IVwYVD=F|7pCmQiG*5b>Sm*AjL3B_+RFAvxW=){g(CX~S!^uEx)U5t<}bt~(W z)wfvN?X>@z*Q6Cja33Avv%Ztt&!>Mu50hj{Aod~bxo=;-#eicikg|2v@(ibkCa5|% z$&vWpf!}fc-nu+>hoL3OoE1HbqvS7%Cjf5adaKv&ic%@^Br^MmC}d4u^rG3sr1@p# zX4MXsd}WL;vpDb87UNvNTM0ZBFK>dWR13B~AIoN#!o}qak~D z-kur6!t(YpUs-T3D&9zD9_q4ikP}1Ld+E8@zB4t#;sfHf#-6N)dq*G3dn5UbH1M0_ zPiJ*7_y>9!mrJWsZ%ClB$6N?QgNFZc4AE@O4&T>r0iv{4+>|=RJa9+;{ZQwb;{@Tv z9bgVo=SU!=mMrslK&_ZbY=-#!viPMZi|KH=Wd+nEyNeAg!X8hn(Q27YYuqCNp$~V7 zv>VaD3LT2|6tGBFpsLDUOGfHa7_20w`vIvrM?A(p z`hCwz3r@uaA-)T-k-k^Jx$PlAsz0_oH_u2cumCco*w0O7Ke0Wj&jVhCjK6D9@{&ke z_T65_(6r}UtSApPaEhIBc_VZL$C92OnnIM(j)9eI#rgf8yJs%fNC*snK`FNbNj}Eq zaq4dMT@n=!_&cu71yJe~4|PZ{O=?V$n7FY~(dhPj&r4z@LQrtF6vliyZg1+qx6YnA z_n(<>U{S%AN-J|zqVfJLB&a$_l2U^p3!&lTmvXkLQ^TVgQ-etIQ11}7H(HmCWV_Cu zh&0CU?y6q0rbQssBJ!S_1PoIFWS(+Ko8r9`W4bhx60+Ll7 zjB@oaz4do-DAN@LN;E9r^=FXs!mz0@ss}jcERXg}lRg#Q(3}xJ!7d2`Q0{|0*}F@~ zX4dl>*<^pp%VY0?7?^15j3&#mq)B&e144Zn@Pz=c_4eO_iw5=SGG}Bcb`*&BkD9x2 zZu70iRQR#!fde3%eYZsbJHes)JxS$V{!B-?x+l-n%B}u`5fVtw1X(g|_o>WsiI@&o zCQlrx6_>#RC6fV5cYX5=?;ohv%z=nr&fY{&D?34gR&oO*4>*-%6K%_uY3CGinlh+u zmw{b3^BS5OzZBOS*FA5#@eqs&`s!Gv3=VAMGWh`O(=iR}?g~wG<;&X0a*j*;fy8u^ zWy`YaKaQk5*=q}zFzTaz9$1lg57B0@Sd0!y^XX10$)3Ha z1ofh1Mf{d?Jme|-xpF=U8$E9m4EO-C{)ncJGHZ5(qHZQ%RB@n2=u#*6Q=ua}RHKsh zACZ}KJVQaXmGZT}Exwvlhy-5-d7IHh<%GS{yI*r}_6kT9ji6C7Il#e+Ca|_jGUw{q zt)yhtxCT1 z)YL3H6SOOUha=1rVe1&e3czNwi{P=IM-QX2Dl$MinV`xzYcQ3v=)1B?9rQ?HAx0nT z5$CYl>#dJ~x?bdaS=2^Kvj}tKxTJQ`J8MLoE~{ZHII{O`zY}-#(dfSPPiRPzS#B}E zaHiQ}Eh&n7*!8yX3Qns5_W!2_ET*Z+wKiSwb?^Agr7#|PWn*!PJr0?DlK3p7VQ^)P zx5>Y&AaK-WaJ(HShM~!W9)&EuLl1Hwx?WEl)B7|ic-kn&SHy1Eo_Pe_Q(?l6^37J3 zXONrJTF#+9#hDJ5t@;*jqV#V3_l|}i$xxV~sYyHcOd44Gg+(UY9E@U|)MkA2^}j!4 zdcZik`maH=gR1%h{U8>~htS8aF(7AV8cqU=iOZLTX%rfWN|ez5KRNRDio=qMNDnX3sxbWsNMu{-bWe{GbIe#_d0hjaq#Ii1K ztC>8)ZUMQ2`ASLoH6-Gl_7d$-d7!F&Ql>2znO`zRC`rg=(a^6^$K2FanL#*&(vU() z=AJBl;nU23k&3M3o(mF5i-rx>&)z8HS8gZ|?586J)F<6$2_ zhB2BYtUO@Ew_2}t=4R86D_;TZw*!#-b475M-aNuikfUs5A(}Yx^=q>zjJYs`}&@z{d78>MJ!T<1go^RF_4xf zf`#=N;ODIvrT9tjTxq%$XHkFtJbhK*OjO}5?&PPcBV!&CuV$fC5^NLfkrQ0C zb_z#cP`y=}_+V^vX0XuPvlFv08}q(qRI*LlVb7B;KL|-qjJ`ILUymmpy)EU)Q;o}w zi${oM;~Yk!J*Sm5Wol=73Ux#BFw{uw;FFnKFlZXcAd&H9kjM_)Exj+z`z4`1SdFfN zVo^4ToCeZQ&zTOuokN22Pz*cIMAW7dX5tks(y?H(U-(xU6lyMvrK46|5RSNH5GyfmFLe?vITwDsSL(ZbvYPb*sSra>|rs*3X1hK5FWQw{H{221Kq}LGymbf z1cG>yjSEk|xGg@6<9ct#!}=IlCZ zOsD3G(i{jKxaU>owV|XO;`)1y9l>?crpa4(AP*5)icD7G=ifcSvUv|gBdbZa( z5)D2RZP+X{$l(2=inUUd1|GqP_syet&*dwPBobmTYEsT2cS``+8u@V&$f$Z%+Hk<+$;sW-i&s?&!wq^q!1k4 z`0GUX#S}+Gi48o{$3hap6|Y8WQ=X{CELnA7 zYS;S&eiF`uvh`_+{nRD){mZ2#!|7uek77>*U{jF%%swFoVhm*|KQpUQ5I{UhsVmAU zv){xv`?fH~2%xvcq?{A0)ZbJUd^zKx!_p}PL}}vf{;_D(D!7lngxl(W-j1Ngc&gLd z4@j=i=W)0BA)cK48POW0JxXpsYijGr;0+2ZP@GLAj-iRSy!;9Tx#+ zF=D7Km!RG;e2C}v(Y^_#8h>}*R6siaw)1~;+=>q*CO1m%SF}u2m$^Mk-9XJU-)`YH*VhW@$Ju)4hF zWk6_zDO^sNF4S+S9FN#g6dy-nE_KrHWQPzZwv5w;D_7rfg#Hnpo(#T_O93@3@mCuk z#Q&{uOOv>&NbeR6O3x2_(1CD zQvYzaqq~&1Etx2vF%#Y8GyjDo9&d`yXaE(2+IG<+koWR*ec_{~zVPrlAS4xJa8-XtG%E{4<+;KdB1WQ*mx=&#hghzW_q`!u| zXKENd6~BE2Z1)9l7lnTU5+UDB65MZs8FX(qC3(ARe;{zl225*0kz;yPJmAGzyYCRD zBNP7u*>A0OCeXz?9&n1*+|GB31H|xy`6cY_h?Dxv7PQxOes%lIzglt@kp_`21@80? zE5IU;jL)c?w9~8jEyIr#hD2kI%_~yQ_x&Siz=kRm-)e)v1DZk`sn1onN7>Dd38S2B zzeCR_!pCQtqFy(m1n`>~2vN4#`?y<%=IjfT2q>jQ0&qP3dNuf%@8K8Bz6?oPb zhdtDm(IPC<5^xtk$RW0Fvzq@_*z9#zF{Z6WGP>?`UiuTo_<>CC4lOYgri^{O(tOLH z)(_2!7MBmB@Q1zacImseM40kmC(;-IZ{%qjWXB0z(%VR_bldfhcyA|>>!EWmfSCLx#e4@+L z(N1vKza40pxZE&u5Z7JG<27{ootI)BJ$|+l+i_2}gnMzvi)6gjEI#7Eg`r+a7HeLx zt)Qep(PJxRC$;{SzUSXv(=dB zu9_b$7Upnsta-nF`B?ozvLq$9$ZK1y6I3oA~-1w7hf zq*r|Iq;h)%O@CBwi0h#86MWh$_gqD>WO4DGl^)M4%K212!f3H(<0O@fsN|q~tKJ}! zZMDP3L<%QazA1uulh3@O&}%8_0F8yX3;>;=6V7Yzq4{n0ES~9y^_U37qNZ`9zZ5s=ftkX?;!wB?ky;TqZoSEv zKN>4L?+~lNq|)N+6taF%$_YY5A6Sw(Mx@FKgNd zEm^!eHf16VP`8A@G0=;={vOn)2@_dFXJP%gR*DbqbD2~P@mjp~(VN(1olt1prf%)A z=2sY!i5()^o;hwQGvwn4N$7|qQwhZ3y+V;B`q{Nr>Xw^OO#>So2F9N~OerrV3(47e z&44a4=DHle@T5tacGi|7D$v?2rhgA{K9}vNCk1vRE;#Le&;P2@C>h{H3Po`Fi}RWj zF%Y3wM}TweHJbdm!!L}bx}Bm-Smw&dwf(zkN6RH=j%on-yXOc{<784#sqlod@2PS_ z*%UtEhO*tR$aev2?2SsJBzP6d8)jHj4b#@Zd;18LQFRBBHdfw2$ouWF zEM!I{l^cS@1{ChC5GHz;57H-&z8-P%s@ zQ4ah;Q>(Jya`%I5Nate$a=txdc^nw`2sa-IOHn(pV;Nw=K;<7-iINjqU?S~Zme4#X zAWV#78a`8>F(KHQx19l~QqBV8VH?v8@kr7W800Sc9tHW8PjDs@c`%1&xpL8PleQSR z2tz9>dWWl;etNXgFdqT{b#2k6!y%#*e4yBx^)(_*0kFbyc5cZBq+i#Q`c1IdftL}o zsGj!@dMc~Uj>8GZu~h?Yd#&MnBHBWVVm)j8*L1FMG^w#}CC6JV@=W-~3*cW-%Qnwo zSuj%`5&(8w9s_qvx6&kyamj4mT9_A*KWF!%_QG=&20jCfwA!)uQHFWS+sm3>N(9PK z*&+y?UbZ&(%I?@eh#$p;r0YN0I@v&LXs2+aASPI$`sP2D$0y)kKpF`hk8vcFa77Ey+44vFR@dYpa93g*f z1U`14Xa0vraGpakJcHcq-OBCsP;@Xw=SIpttxU{r30=oLFU6Tassq>|1n#z|yaFPI7&6=3OC1q=Mg zd^pp^u^^os!X}?lgeK`P7!p$m25XF5nf!5cH20}*1}28L@KRqb8z;yTSOfk2s|LZX z>Z;z1V?mz&Hx>#~I(xLZSzFh7DfeA8M|wr>V`RJGEmWH(OvD%Iv0 zl6hqoscSZFhjG^-r+5SOmBPr4Ydfl2xf>D4XlI_$-y~L?WXn`NFw49l6YCKz(EeoH z($lEJS+`X;T!=hB0LN%x4l{_UD&ZmUv>p2_18^YhEPXcDB%>xMwK~nYu);H{A}7#U zY_1eQ9S&rpI`iPQU;oRX`%Ta&G*h?GqU3B#yxD}T0~3xACmK!%79;W)SOf3nZI3ZX z5}RzuAJAnu%mujj&Q6boqcx0;ROk_ID=)c;E%B|p8gBI>h|P-TeU{^S+!YPZ?=E!J zM&|{=Ftq`Xl|&L_s2e&+epy{!7)dCC zp?@Y)7>Sqjg*E_)3-;7=*${%6hcD>we6g4+ib#!ng~PbWiJ;@>ZP2?}Nzsb6{?fm~ zThLh$)|>tUf}bnqcGo_$Ji-Bh;*WHN5Qi+}y4PtMROl^-Ht}8CUrf!_Z_ET;4HOQ( zql)%1ZuE;TId!saI05IuZ=y1^zZeM-ZnPBA)72`2-*2_>$8;eF$+e+Hl1XS-^9$Z1 z7M-)jvYj&=>;XLXzIsZNB_~-AcZ6)SA zW<1olJ&7NN_W8o`w*_dN7Yb((cOa@fkm4AYA6)3IIB{7C)b8wA<4TaAIX>%2d6kcE zREZP6&A{ZVgkH5hz)mHy)OTlHxFCUp21{$B92IBf$d~A2V_lfK4~-}VEi1*N<7gwY zXL14*&-o8ez}Zio4vUOW_T#G}pR%&#N`PTxcivZqx@$6Y{H{gMVXJJZ5`q7?3BeuH za(N24e>|Jtawz$eTwBI>=U+oG*AL1W?)+(TskA+BV9SpoO1-b3}zJj0i9Xq-Vk#jI0Y_j-l^JK^_Epq#} zEKaUNB1>T#OMIlrCzTOeUqU|*488-Tr}NZGBg^)!k8$fHgPLVrnJN@&44WDSArqq6 zvbK*)>q+lnFN;dykz0H3h388EVJI7YjFXT83%)%lL5fX?BC-!K>o#mDzCTFu%*^Cl z#>0esIJ-JGWsIIy@?G0`kzh?C!szl0v;S>91AnjYfw|eb{S?{RV zx?#yi=y)eb*hu2IPpoGro_V{3uW${(Uf#(OKl7hYp0oVsp5&E9@FJ)E`J_=2fj=yl$=4lSZ{y z-H+W$`kQx*8y2V_;dpPksS}{ABRJidg|#>ew1U}079Esqjub#pYKoV%w7^NDv#?W_HP+G|N0@V!vc`o0MR_Gd-a?ieoFgT>LEPhf0KEwZ2&-X< zkg=U$ytz0w*>Bw^8wJdfoETovPinTi^P;84u0biLUeM=Sr2b>T4XjngMXR1z;NzhO z&KFR4T`=V*;u~Y^B3bn-AMg}xT94Jy*-TiWiCe^IdTZVBQHcnRRF}Aivx=nZC+ZCg z+QtM{=A$6TCDQe#XVoiRVH2_1r7*f!+a!(djqnxLi)-Vs;%$PKz%mgbR>|=J@Otf@$P4Z0c`Jn=oP7@X z*c&j!YUp@|7G#7q(aYL;xpU06G!~gW2zraypVRyP?sU;c0rd^j-e=LO6z;rL_8wD; zZ;4?FF`P5;-?W3K=YgENE>`{cS2@;cB9!i`y94AQZO@pG3pgS*q`>Vw`%8Au4UiZfk;2(>bQ;^ zn}9VQT8r%7YbpVQih3DvJRs&zaC0+-*~MHEp1MO1vU;uKXN+TB72KpQF3|&$VyrV! zIZIMp6_bOJf20Io7mo8*E1+gEv~wZ`20s2oY@rrQ($_GMn9;s=1Kf);drIXLu3q$f zwon9^v9(YDK_YQpt1Hy%46a=*vQEAt>CiJ0ULaphi;@28&EjX7x%)^2M}Id=xEOaE zyt}B7Ij`SdgDnnwcoRrMZlfOgyUMu?%?m{^^%1&C?ick8N1_U7kWfCL%>bgAj(rpa z{L!eZ5Z^%TxiQ~1QQXq{5hxKVVB)cPL8c)SiT66 z^a?{Z21oEim!w&N!FBjOAOL3dC94EY zN}hP1G+XT8OzD5pzMl|gqv%jL5$Q917KxP-Bs;l5#fpNhq&;IEr>@q6g^JmLe^@u{-0di+56|5IP!6>Kg<ZG*KOLbIe@;n7&``HnI>SDXWpzA%Us(-ch{vfcOW0SuSm?gUdn~TfL!>&g@@DQE{FJcTKPC zmZW<4f}HEP3fVsv76zr(%eR z0$jz{8SUDLlk@qY;{K9~&H9e+0Kf39zplN8gPCc_TdDR~#c2Z<_^O#r%bAhlNeS84&ruYkn^s$)x~M!;F93L5%{RMKIhX zLHBJ#bJYgdrxrv3UJUkSjjQqXuagccN)qGb9++qg)&*$dD?A0CSP*ZYg&3Euge5Dr z)SEvKm8yA&K9zy6t6L8FrArKrttT6ROx}X|x1GmrAN1{}GC=9AU>rYpgnav^?J`Aj-0-dhNb$sA+?7S1xH&U|&!aC>}1Mz%OGMtp`i7%ljG4N6cM)()}d6 zl3Qf8Ig(P#zEWtF&lV7NCAch5uOy8`=KpgsletWA+8Lk->26z8Ybz5T4*) zyRtPNyTijz5TDJj=bnjfIrLt2eH`1c2d;-WW_Ts2o zlIt%LJ*!@HKcG==ym1uEDcF#Lh#u`#HQm{G)$-yIJHqPbC+bw$K4|fwRfn52Y!)O~ zS5CDZNm%qzB^h_cgQ#c>!ZXSl9<&ln(GI z0T}1J|yH3`&SBh z&I`1put(Cbj?~n+C)|UzRf-L|?&Nm<6bPECH1U>UlQzhYb$d&91;&AkAwmh z46~1y5kXhnIO^i&g6mLnnM9m)L;B^hCX?KXX{{?5r6LwIzHeTTcPVg89I>?juqjk^ z%;RIYeV|F_zU9~^un&H-lg8pXje0S~EQIyj1gVeO=l{aqpJ8h**Bl{GnQP;mAvR^G z+lJHke~)U?m=`fMl^Y57C9{n=n*or$D2l9ZVOR?=b?5KxRfbEFH1CNa3BUGS%!wAYdBj-?nG{1&YeM|^LMAq;xPJ; z9WF+E5CH-l$<%4(m)t9g0kF_KXO52sMTQZ##$MU>a#)*)7~1QWOHQrOmH^(pGYf;P zW7x28IX#uTZDxCbvXO?{t&ZEiCnB8tnnsqA%KqP!fZVu+6Qf747iw$`eKU(8W}fV# z;HoI|`w{HL1K+w$V@j#?ksD4UB={u!#=wyGaVXVanR{&l_+%{pw&u{;yw`6Buv0aS zIwy^D@o-sdTSBtW9-rT)LBa%&Y7-TMF6c_s=ffxKaqWFi5u@WeB)O6%eaZBkMyy4w zh!J5B+_B|6H4dU+xiQU3u;gV{xWM0}R_ZMj|Ig`{Uzg+@9SJ$yjn|-F$#vINuKX7( znJ`JV)BpE2-5a%?wmLn9jW@+DXT8XoIk5CooytU36@qNqOiU%2Q0%w$pyd}e_=jBk z(SMCkd1LwE`zoW~lIPC~>$(6!4W0G_Nat^x*Q+Wq3P-^jkiyro)CO$Q8WBTA17zqr z_2Xfl&97uouywm&b%{H2kyYxm6Ur^((PFHMSEM>& zBFwFYV0GF{4(Y@~qZm2{?jY?X^RR=7;!g1tAwkMX1w>NhE*oqtbp~`+fSpk?&hmU0 zFU_8se+#OzBCiiCv4~H0v+B>9gT&FEEC>-~-JqMZW%uQjbiygGi{UH`>fv5_NAeMY_a! z6RB99>aGp)fTk-EhJBI*}p~))jfwl9BBZIo75KCTAa8-y)SAu%njpV z^nv3Ss&ws^9r%~H$@~Inw~?Wkli54zkHYt`R|=N3ESMfUeWeeh>}*t&nljgVfMRf+ ze*9M@TVp?gu0)jrvo(tn`S(7Z@+ZB$cMKkkLwa5{8GCxC!}FeNWkvK-FrTm6K2jns zb@W;qV@crU)ascEj8f|CcYfV2*wtx|?z@ZJMKPI}LeL#>>C#rM(6m0};oR8Un zi~V1i-(cX{onzATVV|6FLboml=Pb2TbaLxB|Cg$MM0Qw9hWqkts6N2KDKSA3^ZxI4 zomg&tvU?Ac9Jk2KMa@nrrSxOQF=APv(3b>Pis7sKi;UbA0v<|9P)uLNa6W0f&EVETuhvl*bdTy;Rvcs(^eCJF~#98#iM((u24IkG9~ zk`LH#g1*bUJQy*$@9D6lc$Q=LC|hIBLPpY*+gU-mz2K0>b@OoJc-c58c^vF+b35H4 zSD~fpnuv8!U{-7Yx|qX!yR3pMx=Iy^gy}VUokkJHCE|;luM-AjgHK*${IJw}K=nt) zuQ&MEE4p;yjO5oZLIQR%-l?C@CqMzg&B+0`1uoYgcL)wMV4ORPnd0<*0W-)v6h>Udms3(~iEZ;@&#N#&WA8ehf&?1_dwcM;D$J@d$}V{nV1J=M z%dao(3&F|g651Plpz{)u3w%!{&}Sw-{6g}UG`#{bxhf6{V#goahUEQ{=TVdFm|o!*6q=38%12oVAN?C$Ap zh+E-x?bD-?LG))+SLDe^@=9bLeF2325@+RZQ{$a+FD?di#y|qme(J6}?PiFS=^;wD z!!Fc>_D%2D{FKL1P_|%LWU|LeCb(x3$^GKXT!MYIj|nHd zl5DM;L$*pyVn{x}hOHxLlKZVsCqQJC=CCs7g>^iwapQHkB(veHmCp?M`zY;M@`;<$ z#Onkql#1u)UJdq)+*0dMwvPN&^R3(tK>;UL$hatNghfV#bWCv~x3seLa0mLlk1Jqh zA1N-Q!%EgAGB^~a%12NFW27;(-FD0S16~}<#wPfCP;Ga?o0N@mH)gk9S-ru5+k6GI zyiC6}gKA6(;Sn4_7!i`9d?Aj3AYn5C%dXook-k~+KYOoJ1N&WJk#$18k)VLRN9qvK z__S#G5Ge7;#;fvAYtS05g21M`>h5J;78QI0@fT&}^gbP`3}vhepQvUZF65s4Bk&Az zj}tJLGk0a5COHm)XDGsF2%NoRccx*tEE?OkZQHhO+qOG+V%uiNw$*Xcv2Ap$llP3Z z&X>K%+IyVea9?BAJ*#F_70@V-s3_{g@pa>>wv^zZXs49hKf=WdEIvy#bgu_^7+!zS zKuI9Y9_TxReYEGxuXkS_eQQQSw{&iF(mB{?trus+YnWwkdsu}EKo=1G!vJ! z*9yik)s4fQXN$cqy{IZJtbb1`$$1!FTPm(|#wO-@(zWdPXMNgX&^+hs!RpTwV}>@S zxiGcVHc6@818+`jcJEgN%LRk+H=^Vwbkk!?GwqAmt0#3L%4nIZ{eM{1X2ly3=6y=vALkn<4pc<{j&^AUq+ zT|aXrd94>0@1&hxYerh+!&?@cIp+?UD2M&9>h={!a_QFpKr$pv+|~4h;+ziTO@QAT9~x1%TNG@QH z^cipXWTGMGp^xfh%ZYtG1U;GO58QjMa@ivO??1R2(%3Ykmw|0k6KjcFQL#(3CK-i0 zyyO9hZ&M?vMrP4}*Ta_v!B1gjbjt+Uef++u1GerxV=51*pi~_l!h)R}VH|R;)8LB; za>gnBLXL;@QL5v$?Xv^FQzqRpMfiNi>sgz$s3*w)JCMoX=W*H}x;PBviLLe*)j;T! zq~0{O6__Pq>Y+z(jZ%s9v;VT!AABmy$vWtGJs-#C{-&LmLqwI4zH_jaWIIs{~qim zicFJ*>YTE0gFBp0_U+2&~L@7{E5bX#`w+ zyFY{a;4)NFgTT@bu#jMe^AxZl>?{7hT2UwW#Bn^$_ZN{MORrQ>9&q8*D5m&6yTW2> z{;Jq`h_-VRat>=jr~K17Oj}-~TR36u4aHKbTTC}XfWtduYd~n2ps_PE`FcFR^6;`;5i0qHvj}agnqb> zT5P@W=bX#pu&ZGuj3{CIYA`eZAwTf+c6&8T?X~eDTk#b{`R_UQ;l=qQbuUvEc&8Y| zDsBYWxz;NoGXA*0=)CYQPYmo9$%iPnakcG=kyTDWDEXIQf!rZ-Yt2-Mr-w0_i^qj8 zaWW3AndhFY;TTsnY>}#!p6u!f;XICP$dpY+2$q`H;Nw;ZuR6?f!IyqIEVw7sm(Rn6 zkp{sUSZ!P-vvgNZ=D8e|vtVymtrX$&ZbPrv#5t!HIu{OM!H#Nol=;8nCA0SNhcsZI zN-YX{&99jiFvKRgUX4_05lgJT7<^+`9oss5ZZ01%uoQaJ5cWhbO7I$x_oi@T^Vun3ttI;5mmg|uCB!%8YOh|h6 ziu1ZMi)?M5g1_i_U!b7m3o3+So*Qp*eb3@*kBx-{)d<`Rf_Oc|_;y?*k`9Vf+Sq<# zh<`2&^bi{Uu&!6eXN#`07Pl2J;O3aynb==$t4q(TtT0^_8njulZ^)n_*C}}i1w%W0 zzLNmi5GSY>eNNW%*-(d4u_1-c36^lzGAm7>`fAZqVn0PUPLcDWq*bDh2Q&%!nC#p7 zxJ4OuPsoDo+ep%lTk?T+evI9oA7t)=FD=pOQvJHxH9)ybgZvzRk*QCc70)Mz>Tq_| zbf>mULr&9^u8xQlPM`)B$Ci!V4Kb*V5QmKZSn`l2iKq#@M+}N9Os%fDUHvp%0Q##Q zHN3xkVOsB?CIjo?k1EScNFOxgp9$@U_V=gX*fJvq2V0oYiGjN5x%XMrj0XlKE9OXl zp<$}uxosdkuEXb{F)oWExM-C``K_W}{?wuo#{S%Lbr*?2LZFB*zW$S(-CbZXKoiOx z*i0-BTZm?!?ns-NUie4V9{F8+D2R#V(sC>MX&x_6V#?7HFegvku^~Bq+sm69NKq@2dj?NmA1{GWy;J4a8`#hNqrMj z009mR$|ZAx-RI;2|IoO^wIIvKg<-CXCM@5o`rDb|3r64K?ftJMhO;eVd5Dqf`D|da z%{LW>S9EM#pv!A{X|A8DcFz2Z24(;Ud6qk|siBBOT;LqB*U8&`v~XTh`4{l*&!1AQ zSxaHi;DT$bLRddm!1JoCbp`H8Pnpb-L9g`le6=x;7Oe-sLI9nuEsL!md{*@`MtQ)L zM60%$NCylA&#b>v@+9KNU&?f-{lJw=jc=@s6BAe^_6L8LcIoV-#Hg-QSYM%`0PXvG zbw8j4;ptN(PRn=2;BYXz`6q8)8Vu-#>i??u9ux{1?0?9FKZpLWOn4IzK46q%N88kT zdiPy`cXe4VNX#>3PUgH)ZQJj^#>;hVrDutqM{NKTBukmi*g=beae#<`R!Gf z*bH;35mCegO3emp%Rp6Q1T)Y0;S>s260K?|FDFc0YptSp3xBmF@p7{6j(xJNPFY69 ziDsl0ZSEr$kRAKApIj2Ow78!jd$h^xN<;JpStgoEatCfP zg==-g+TK@A@NLIjNJG9W0V^h?thewmyG7n77OS|(=8kN_V=@{qp&Z#Etc<-|ZtZfW zEjvjJK? zz-!^#aDV?u7>s2jSo9Vqz^#uGx{=akC3@ZMp0}y6fEC$qK8!|aZ^WJ~=XxznGpOD9 z)@W>VFgDbi)8tnBYTI@ze@EG-s1Nvv z70a@9s|lwFFx^~YVDc;3P{lQy+TwAH#^Jwxi6zc=e{7>cZDKm{DU5K+73MH&JH9nf(Fa|LVse??35&%C-3EOzecj!JU{h zrQoeLCm>qtG7mFB*#+RM(GkMAx8M=ozr4d?NwGG;5KGX>N*BQpx(+~NcR`j<3Ghg4uDqt-rER1rlwmprr(DU#eYc&cLC zeGJ|6>CSO=OaOWyP8-a&P?X`3Fr;}f690{dc=S`LlhyYk? z=S2dJM3vDmZ);?W+fG!pqRWAmwvu`k%VLBNBBNW9`$H!KsWx<{B&Zt>Sr$Vs{@?P7 z@9%GR_IFl;J50GIP=gNf)XUcY%##Yp|ND7j1^GYBlWWBPo+qH)|20qGWkQOr$1152 zg*YTFEP2=3MWL&{0r2DF_!){TGL7kdGD3m4TY9&sKgk+!jn+JcMXgBfND4FYHG(Q_?fiZ|s`)0h&9;?_bIRlp5Wi1j0FwR1349uoMndWn6j5ed3KWzObp z<{whheiCdc+68u#QCb~#>MdClobT+!Kxwovz&NcjJ9~#}*BETJIQmjPmueVoxuB=e zA2jL&G~wjf1LBW0Q|F(;!{@83_D3iiie{pi`(RgZGs#Eqwt2fCCH(*Ku!l=uH?{0!v)}3}sv($=+un8{7s7unh zW1)t@SCT#|JZcpZnMwhd&U0A+5Iiw>d+-gBcLy8y#Y(re8-GPV|v8`g!RHG zPZ&8Lt8Ta4$evzl8G&H1nKPpjOloM*6N`L6fF%&snN;$gUwVMJ&}9FtTDp}A16K!+ zCQoj-Nwuq-$&EsVdZRp3NfVZ}Zra4IK~SgKGB-mfwD_q1C?V~uZMBdYic+U6eWOG! zFca>!Zk8*%MKI}K9*c7qtAh|(`dPZ)2*ofA3^9^ZIo1RYh=9oy_a9STwNk1^UV5lj?5 zx#1=F*SFm8Tik2wwVXMag=oG#kPzIX#kXL9vM+h~h2DbVg#=G7tOx_xE!(3{C9C+# zkfqa*?X~;CVUJe*tbCmedJH{yx_FGb_Jo%vxX0zJQL~RN6!g;mFTczFaGy<>`_~6) z_RUN0CGBNiWz7!bzeO1KUA@kos|aPtnjfMlK_w;dbUZ(6P9$W?@gRN5$@px!QVrIS zp2V<0z^~xwC+cZH!(YYC>lr_WIW|zZUu@~|V?^-Ar4bU?2~Bq63sWIR#aZb>ip3)~ z8pw2go~IG`VEt5aSy&F7NiK*H%K4wcec`YL+>3{AU#Nt=*Re5_m&Y zwFbSOsQs$^@qLI}YKNx3RvKaKLE%1@F-oF<9Pe3c5^r6sL7?Us(?62{AHycM@>rK+0u7CMijYp5&^h*sTweqU| z5I1z31|ix+D;nq&4W_y>#2S=>)kehCLzmNbeQtufk9|nyeR|v0D`<7A-V=B98$6D1 zr7v}%6ij0-jaDnyS5oq&Ii=!P5D3CC2)NU5qwdu=P+8uR34;`*5BK|yVYzII)btiF zd_6A{B*z_U{S#E?CRT?#@R)RLpLKdBArE9`k!XfJTl$Dl3L}lu(io_?_Np_xfhi9x zfK=i3O|~~2fO;@Q$n{G>4P*WwrVWvB)D7VMMk^=& zTZoS|&ex5dfkSBa&Y=OmUoA~f&=WQ~2@DVrmFZp4)yw@!>3tJEq00>h66y=C#YRP} zxS^!}tTWd07H=_P3tW38MBA}O1B{eev#S6cX|Vi7s^D=qe0IoOEiAN%zRjK=-QqQ& z!ed_@@qQN<3pLWAz$^z<+@EgM#HVO#%E+ue!Dvh<{jnaInR*A|=maCcgL|fOK%m0C z=>hG9hc$i8tp*hrY^*86l!tIkUml}VK}YYF_c0&E$mMM#{#g8-4go?sk(7q78OilD zgYIcIR-GN8*J#uv9kp^q8dwM>ogun5@kW(xOYU|BH*k*lF3r$9k&ps63z^eWMJXI>n8%44=>D zrh$5=jbhmU7isWK%jBWOXUNurrQRe7enKEr$`=+pb0}Ux1-ig=Y~70`FSOzA5raS; z+@sqk&_mz8c*Ya2|FFtbUINCw4^Ra=;r_RXl2FJ>^7EfJC)dayoTi5WdNKIVfB)ua zG1j@kxK!al3v1MCR3^xl?d~_EahZf~qfSo12&LZt&lV{tAfOiT{{i3kVgC!?RY3k5 z-*Gp~uesA$lOpY1F44Ra+S`YkVXCA@>~f^=N%En~4)6+8@0t`oZP=A)`oqgDz-hpxJr@xx>QF?)CP~Y) zo+!($X}l4j!F_7`?ZeHL5o>&6&QifAw-6}dz%P~iInn}7kMO=JELrpeh2^?!)%duY z>fC3GbznC!ae8m!lx_QP9`0*GGR^fg4UJUqNJ7n`*X}ez+!m`wvS?c%)e!c$RtdsX@8*_oo3vRK0h zA4FcqD-uMe|Mpqj43y42me*_GkM!zVT;ru!`(jg$((a#+ec8JW0xf z+^Kjtl@$=$uUQG{zHK-~H-FRRLUJ~xd(X!~D!^JVw58=jd&4^$@2#XxPTwnnvN`{& zB!ds~y6wvt@O8Ra*Bm+{QbWxs^igAOdX=Xk&x%95{DZbUwhq#h?C^jr-Dk@1+iYF0 zI^K{mmDlh|c0=4tLE&ib;f3gIu$jo|o#0X21%XyiK~sE04-C}*R1SHfvAv>iIHuGI zJYA=>CIw%9yI$!+J^{x&h0Z}o@!Rkc=d07R*Qag}aVt}HSP{$-8kTN^-LfniRk`0t zQ~RdDP|@|@TDYY=*eG1{IzxagrnIH6%tWw#0QfV|GWJBNUCF6^f_j%X9^!t|y&+re zmwX4s)~;9=4I|A#oJB`~%*-OCEzwqUh9lPe@RV>z;+{;&18ui-6Qbx8-PP4JZ3Y)k z48T!+3US1KL{_0sjQU zlU0B7BsFB_%CALFdl~rK$jGcw+WBv`ed>${S#VRZHFIf$pXT?gTyIC@x{A{c?LF%m z3xpk)-kv1Y->yqna`ekJ)|eg!M<$ptYBUY*NqQd5!kM|v7e0q9NjvkcDJ_pQO%#~6 z5W@%HF8)?-AS`&JcH{oH>8Xy*B7EWZ`hknflk(Uya@=@4AbhzqWN`@cKv;JU7SZ0$ zrthwp<~>5z?9*OpEJ>%QbT^2XS)aKDTC9mS^l=V$_xlxGHSz$^&nMee2o7cyjr1Xj z9_2YLNL~r76Lic$M;x<)pXKw3Ewkw8*Jzg4^y=@7+C(MJKn}%N^8Vf|`tZWiKZY^` zs-=}{(^=;?1TseD(qAlc{w*00rlukAsyBvK=S`okT-0RyACIWiC6D z6kH=XJwltt2w55v3wkiS+z-f`pjsR0`7tP=VM&+i?|HdFpHY%s132%^rA;$rL&zl| zNdLheVhg`P7qMRyz;4nAV2%b;FyfkT(fa2 zmM}Dwv{c!|BONMg-F9gxM_h-T-tfd^#+2N)&F@-xeU#TH_MGKBJF}pDB7nqx*RoP$ zn)=dO{YaD$A54T{{D

    ZLmhc)2nfMt#C$Y`&=DNNMWZj?;r&g`$6sQ;B!JaI;c8B zox3?e)VfNpt{l39ZQ<31aAQ%?p1Ppx)OkBo_8X?L?V|cY(N*J`kFz6l$ysLKGVhu| zGgttjk?Z*WDYqH;B%tt*gmxNeg=E2#&6pBpf2MyMMHzctb+nDZOq=MvNH#3(=k{Q@7vI5JN}Go40SPmmOU9|qQ+vy-8LfWZM(Z>P7sM>P8K$3<-fA20Hv7&E``8V{`iTG2;XZMH6 z?}l)oe`rA5q1?L>RTzUb!iK%{T*9J|XCZY4piY+7u0E-a)bvs{#)KURNVKa>H!F72 z6x;w&|`z{8V(3O0b3{!KwVDXW{7BNcX9s4}sow)w# zU{`aR8@N!VhtJ*;#NYwj$f{;0CfyiSh4~VSn6N%K5FKkKUvXf!@=;j$MVSoKWifyp z!S~gj7|?GlhfUcA4AM`)t0Xx{%yypby;!S#daV9wrHJ-Pp$Qd{=7iU<>z=ji~Hu46&g0)4X zU`|`yzvN}xSA^kYvYXjNXa;y;Tho{mVF>l9qnZ1+eG8+ zdigBUeT9j4V0~IjWwAj;b$VtmZ{Yq)2Lh>oNHi|HPeeL%2h%6k1hYOdtuwfu;p>s)P0?iUc_P7FyNt)&u$Km-+6rml0>y z(9pLLfa$V3Jd+jTAMhj8nlNe1ShK0c*6vcT_S+20YSC7ei>JcN8HTCpzys)VJ|ydwMD#cNt%OOqJY5)++y6Pp#aPBn;MAKOvZi^R%Q zL$OOlM*M`m=TZ826ns>3^J*ozHkEV#$j=y1i7mM6(xFi;=4!`a&pr+7y+LmGTH+cG>aONq@^ zy7SF$s`Q;QOz`_7CF3(6g`r8{RPuG1+FsqFyJuggWcGrph;-5Ejnid4WaA}IXP?Pk z(m!GJtIaYa<$9l`aC}OUr2ti!SrQnmaR9W)$~-UjnXna39`kJ={Pra7S*m*m6wsa{ z=Hw}M7UGDvgk)|Bo{+=^YR#)Wddaq9pyie0otE}1OBiz|!=jaG+8zII|!2wXKxCOP06ycFC9& zGJzI6!Fo|IXgQ5xwbzwiryB8jzK>)o1fGJUwXxEmI}U+Z4kc)|6KY7myJ+><1dd8R zGjnt=^yv13&f@cp>0ISM7Qx8+$|?kIPBdW@>JI@S0)m#B-?VQGMAb(e>$&jvVjdk3 zv88i<1ucSs28nvpCMQn&=Lt)EQcHWZazR4YjsiiVhDwq_?r)uf9=VdSfD1>d?V&ce z;BMteFofffc&ICyw&;WpK(aNTq~K{YXH%imD*6QZ>yaMo+V6B)>^(jM4W%T!feygE z2iY~%X8)d`F5%_S`PXvk5ju+{9g(b|8p*(s`qM=t7Syav_3DXvnZfy+0$T_KU2qv` zbOV$^?I>T{L@7^Rqr4Tu-gk}otp zSy3u~;9)e}SJ?&qG8B}HRb)v*DlTA>Tk-Q(!^)7O&29YNu$`4P4DU38!#{MsU4HtT zXVn(Is_0yKuPIGN5vPc2icq^W>FI2Rap3Bkx8GYWxKCuxMo(e-mUpdI(T>m+22Js8 zRoX!_8_Q7)Sq_1RR*~uiIy_}*vcLOybY`66By6cN9nK@g(P1o}EM8({!SI6&08pyK8ur-POp-TjM0$6N$>tRR> z>vrthvT#v)G2f059>+3@8U`N#NW@EHSY28&6;6hNXNh;hNTs~4^*{0mU-4}zc_e<% z)Cz^$t;tEk46y>KY{n^}6L#k($YwV?RaPn{`!T2vbS&UGs`> z3~jI5ozh)Dhet*m;YG~R2JeT*3vWp{pZuW)M(&*@ho>Y-hU&QfgJH^P6Rl$3Wql99nK_~`1!hs$I z!JP~O_6s`U6ZXc`9&sq4pXpI%h&eAe*vVzHPIR8zG8eqRPRmXTfrZKhC$5R`B7H^Y zO6bdOkt>serY#6sTWmm-P5g9W(rJnW-)p64^WDQ=D*G-Z6cO?`#k>9J#0Kevgq@j4 zh5Dc_G`93SP1Lor(5{$+C_F*Gc_Z2D6lpfsw4#X@g+F)io=)hNBR($`$g;{o0X^Uex(Ul(i4b;Ab5ysg#sw%-_} z!Vw>Dl5mXw7#~|fJ>-f(kaXB(7a2>lKnOCDdhWOdU)?^BPG9$ZrSy*VQd)WDJMb|% z`YC{tIVq^KcTIg3wJA_n2`+2ORQOF6e}PxbGwwD5C2x+`k_QCc_?N5biElglf-Hz_ zUMubw%Jm<*JCK>Ql>n?b~`Zv@Byh*8x3F4r&E&NXXLxfCSlCU{Dhdeh6`F_Sg6`36qg^ zTyyui5ZC*HE@&@nXEiH)bakzNfB29;{FsA0XK2Z%K-rwQ)V%tFF6~sJd)oDxioPoo z*!|n}a(A;!)!k}bY8BWD7lP>BPO5FGwWELN-U9QdgFrzJ|5Ykb39lO)vClO8n&jlY z67dwRcV=QhXNwBJ)XZjYHXtPw+87W9a{zr)L2ZH;XJMfT0pj{O(iRQvDsxTNIm6v#c#LPo?hF7D?u0qQ${CvKUjc+U0VgK3K&9DKwiw9lLiz zT?HU_h#T0<6*y;3!=qg&=piz}LhC5J=K`eS(ASPqh;xXx@ZtNQD9Zca@x^iP)L+6# z`wF>Xl7$=N^Ka{ix3Z9XD8`NLeOqC_hHgOU=sIPJ;q3_}kZ0w-Y6In&)-FG<#%-uA zI9ww|9I{pK1tG5f7^noEH^A1Ao@_j}0`@IiTq z2^*d{yItI?5+_*Y;*q9tU}J6!86c7x`ADg=ZE*2LzwLG~$RnGs_VtUh z92#n`n#Mhp&<|6$?j&8IP{9xvoi9qAeGsx)&E0-N0{+DFwoUFWI9F)W+lQgQp895F zHm?B-=lZLYHpC2xH(=<0qqa-DNvM=d4h=Fo{E|=-6tsJ$oz)#Fgr4|*BEWEGY54Ue z1p#J>S6r_!_!DgyL#R{=oJ*$`_7_wDq;5|gWVn3&p_WtYK=a?Xhb znkt*D$Z`mp9v;|jFnQ5!{aGP2Rgmpqk!c2$Oat_cV_Vgla9|pp9~_yVU_(x^93+|5 zvteI90o!c^)3a55H7ZCDzUphhHrDO~CjXn4sYv%elnp;aHiP%HChTM^J7&<5Rr^(J zAR9ODxDT&6w#yu{L?>o|t&mghoD38-eC_ZDo^ zc($~RYd93>3l_RY;VIPL5Z7?Dqw{$|wZxOpR{f4RwZYI!%d>xx^26oW-dGh3O zg97B=v$N94ECui5`n|JP9cL0ofMTh`B8Z1XUYU2}FkS2@-ZC8#YTf*M-4ZE4+nIE_ zC-yCt$Y}Mv_l3H&GDms?GyNd>;^fh%j|vcK{7;FnJtV(C`(234DuWh=C()sn4WJxH z9BXlVO+j@BOSNIdi2##Gz_R;QlvZ0RT=vL=-0P~)QaggVfZK4}P&GSZcj6Hje$yIS zCHaV3Jt)xE>#t_{0Mp4;TP_B61HdYg0oi^rhs-O5LS0BABbV%w@=mmu|CfxocAisj zYf78O1s23rOpBa;o(Cs*yIL72Nv+`wQ#*|UF~J(KCvQ#%!2yNXNq3m+l+5roA)fWB zyNx1!B6EpYdK`4sT2InCN!Tr^m=8|XBE8FZfJ_r0=qKP7srlMA1s5Z`A^(QxbA$CY zC*VWE)f}(%X>AZE`x~~$D?_F>!Ajf;E-r52zXbVN90z1p@Xxu(LTSV(TuMvqzOdJE;`mJp$dj~08 zxn)1MVyhehi-XH}w+tK9s2F?Qh)n)#NJiG0>Ld6e%t2bz>sOIjx6rHQ$ z_g_^UtsCT`9EQ91beFP`rLsqH^((w3xo_E8uC|JNoS6`$qZ)R9g;ceIA^iKu)kF0T zHPm2_#i{N3ui`;+J|2*Abp)i|+xG78_9QMKV(9{_T2RKTGPWJ~O336j66GR4mhWpEi}fxNL=_ zLeVvg$7*<{KL`xe(3TM8ph8w@LG8`Tch3J=C;AWXNBlo&LK1NQ^~O*@K7iRjXiW*& zDaJT0jBj~V4_v`vCKfmdMi%G!yr)@vg=WvmfLM&(qz1|QF4iegy&>Y}S^jnv2G&I6mp z#tsER(6ES#0_ch~T^2KXpzUH7$61N%)9OxOEFk&&1!2aM{&vb>*W}^T`>gUKzf07} zCL|j_d0tYi9aFl&x^4j`+8{MVowkgEjQ986FQAel8A9Kh0E&98gnlubV(LTwS96k_mej}49ukL`G8G=112 zf;V)FW{|(ccZsFy{fj9ftKwcon@k+hYP^xUS+cPd)L$;8a)|9#EdtjxKn_qI zn^W#aQiJVJlo5nqKX9sUY<+vRJ(}uMPX2n;&(#YOC5aiQ~C%a8QXS z!|dXe9H)~yQb9BloLN7x79bklHMl-6-M5%407m#nqm1cS*zuRMm>^1;1EI&Zw9t;L zO5K=ikB4OisG2^j%Yy+99(t7jx*pb0cw7{V2X0BZA#Dd!atJrqWR0E-GvuY^Bz&HC2sfB4#XcC%e>ViqMH-67E4a|wq z>=0h+CTm1tM4w+yNY%4}Rfpe8?EiR7>cJYO2WXcS-F>G=S0h){9P5XYW5?3g1*u7> zmQNq8s7nf|C-C(7y3Rs zcnklbB4LzeODu2Z^`!YayDj2mI7xf?__dGbJSP*Ud3qd?3^hB)X>KC$S}}SPwO7K*;cK~QP`3yl8!CzNIUYAbNpZB?96GN?!3pS* z=dFT}=o~#QJdE#e_KTj)QQBb$e_`RBFOwX{!O-R9Fk?$)w>f;R*VqznJ^Ra#qH=O12)Bcu`ca?oa>B;am9s((5B?W+|s7 zmXNc!fD$ML2joG%SoOFAsRV=z)Po}X_m%|y&vW>HC&+;Q==EOk{}cY>{WtzYHX=Wb zybhH3wd5qW@UM%IppfFy0McM3FMgVqrA=$X>)q8{d~wMxp~b;YXQ44o$w%AVl1Z>f z!-oW~wYT(U@mm~Ba%X*eopT^x7(gh0{JjX8@0f&;#fy(pSrGc@a3;Wd(-ALeM0-d( zx5j$wexAfqpinwX+!2wA(X%}zG0nUGAaaac`aicq<1}yEF@)Wg>>to;Hedp}wAxe(U$pYNKRalaPOMMtG@X>v@ zPtB13`8EM0!$8{B*e)dFsPM0<*SDoYRQa+iGLvCDM8+Z}XTha?Z!iA9wlb|c$5h3f zFXfyrf)6(#ZOXPjTguKKHy>LDTxuOfXg2nyDo`zt(_aX;vcH-Cq#BJb^2C$W=ED zTAq;x`T@Dc130;5h1PRhr@f1NnLpZtLKD&SIXRqoC~Hm(n7~b6}AM4EhCRobIxtIo2X}3woPG^uT?_u=)-5H zH`A1(e7HN#~gGSBT(fyh^G2*yOiqvCUEvG>KB!31!=|&=Jpakxr z7xK*tXRMv%jVu}9fLI;32=EFvbO-Df)FYqI5vAm7!byY)z?h_zNmyZ`nszkNa%zhi zzlU_$C;=QMGmdTjunB9Z)?^`|<4>~T7zt%yO0NNoW`o z21=Nt`5<$W6s*73Yl0)4F{k_UEE#W%>=zUIJZ}&jXN7_*K4;YsEk>Rj$IFU1s-sMx z2+#JP@^Z?O@Xs$aGm%gpdY7@ZT@J?#LbVkbvnuepq9Dzf$JKi$0SJ66KEKAUzyDXkKVi&_q1M8!d8(vKu#`osH4bmoHz*b zK;?hIY)#$W*tHk*unDAbTAAuUX_PH07!G5muDDpnse9mx0GqkH(H6q4MW;v^p)@$3 zt;Z>8#8s}8H53R#M>v~dPiq@b-soi^)ltQs?wse2O?hbum!?_BD{6YpR6VerBBRRN zzU_?C(cR}1nmJC$R`Kz6H&j343cWIEux!S0oo5mhmaIfD->BF1MzwqYp;i|&s8B|Ab2!ux=htOPPV7;Aq zd!0!Is6om>XHnla;@sM1n=8g@tiSrQ+74%j@hrgL!QPS*yHeF!#ux)u&*k^vT-?iG z1ZkYY;|kijAlKRK0HkYu)*PIU`bSIhWRhxeAL6Zd-i_raPIwWftFHRS)fnDeP`rTW zaan`@$0l#CPZIrUrx0UG1c!j>l+1&@v+NCK4Bv&USQ;UG*u80P29%9w`xIlU<(ib0 z6|b5PI0P(}>qS;b|3aI*aXEv$qz3VV)5cs&MbH~`-qS9|(+n0(H3TMhcFj~=l=>En zOPy>u@DBwtvbI5(Xn2&m<_p7KQXzPU+Om|YeFCNH@iM=WM)z)ms<^Q5T@=q5CGZG#Q}TttMR6_QN78Fra)smCPzM$BZ zNh2DZ=*CRpkTQu0!fultXK&n=*a<0+W6=3Ou2r+XZu!Z{=yZ%&DaKXqL1_vV7|OGN60QXr6#YjY`@)HTkSc7 z2qNF|m*Y&Ed`M1FO0c^&pl#(=MtdBj4bfEZf>^R1n#W#Rb%WGH|cNuIn0i0N)|% z!^M+Y5C?7az4$5YoM7!RhgJ3M4v9&oFZMEp()e(zXFt>D7;q~aSu0A)IMx_u z9#7zO-3OTFfLD#9;h>{W=@T;jkrZOIHv~VLpuN&IIVn+isntu&KcSau&F!sAGuAb4 z7VUX}XK?n0Q3lU-(Ox0M=$&B$Mn*SRkLE$DTUp>kiaZDB!$#qfz3bp>?k739c}dUv=mFaPPWP-J)yqW|hFQsNUTtqc;N(ZLk1p zT(q^i))>u{0?5Ke{)HOXO%QyzS_uoAy8uLDk?ron6!8AG+JDEWMQJWM6jEvOFPzZg zH-2q!yCBYHiaE4aTn`s-cEU|M6r;J-^T|uHv z(t-QYZ-=FPY5%bi0e{w$_GO*x%GzM)*)ET-&*(Cv*2el0ro8%G_lg-j5nOx~2AG-E zqoOC+U{i!*=a1jsU9JVTl&E3V%Z_b$rmQdwr+~_%JVTG^9*1bLUagBU2fjH*ufI)- z3+OHey$pH@2{c#o7YFk#vhWVm7FiXyBDk(mMFB|wDCmCZQ}|6q{GWvM6+jNqT?_bl=mfl*w`Psb&3=9 z4f|$VW2{N%$dSSfdq1OgnOa_DVYds^$wKWd?9cwd=&7c$%43}PyzKmQ!HsTb?$p^wT0n*fWvgzRvbE*^YQ z?s}trW&{KD$Oppx}E)pothGx3jG4V!fj(IgFHqJDqm+2!3b~vD8&W2OZ`o)f@Y)T~4 zg(PMM%rVbUg~whttzH$lKcb6FSB7(IUiVh}Y5~cb8L5eH^cb4>W@xNu)}QT3q!6Uc zByE@^F&C%F$6gZ8b5A}z^L9mH1LMqj({|H@aaGjLse}Rs*JNkqA4^N4OTxcob2yCC z4tTB6`o)6Et?IE|XE>3^h(gJjN6#FryDRYx{RrD?N%MP83QFD>%6*;7+XMH`9GKAcGu}9;qX+VU3Cz8Gl@tO-cj84n3*dQk45QHXuq2L4d-IlTDU_hx>4ng9EH zyZ?oVt276eT`?wAC}W3{7>G^$^Z6ls{DW6O?@?zVh3RC|9Gv$ z130-r%2*MK3lt!7jp+X$+TQs`)HulUZriqPci*;c+qP}nwr$&X_ifv@-Fs&;o4m<}wXz#$o6IL_;o$Owmtc^IjnP@7yNO?h-5<3ybhll60Gc+%nm^eGv$vENnkNtm-8W&!r zvp&l_w@}PZ3cTcsD8gL!z`mOsf6^D~Y$3je1+1SViiMS2Fj-;L53=X%l_{Om{kAoU zRKAOu{1-n;E$5mf6m3cfp+566zG<@s%UR?w z-0wCfu7d;pt1>BRIrc3Lm_@ z<%%JV$E>(iuo<={qx_{JIqkBpL#}RFVyU0Ez~!XGmw-^NW;t3UzjM$`+K2GGz>^N6 z>cU5q^>v3@?j(UOx-si4C?vO{Q%)rb17H#6FT#CR?D;U(E#->Y)aG$_0-s&x&?VTJ8X z)jyLPrn8(3hVTbyRgR}d9(78?<#R#T@=2!g#y;Ugw;DO% zs!47Xp_FmCVZLr~pEYB-{!ntbAonSJreJl9_;Y3#d_KR{w63vfXQOtG=wyI>L%U5J z8$dv2i$Vjb(*OELwidxC_yqx>Thy=Gx|=Lwg%f_Ry5;z+=?57$%Sc<3J=r9ndhj#E!ax;2xMkRKZL|k z&rqMfJ;BwB0ncs-^G>aphnD_$atsjL8=9kFB(UbW)MvA!*t8@L5A33r9VbETYE8@d zPlO)=l7mbJX*K|3^04V-CF0u!G!iC9$132Jda@_ zsB|MX9qnDvj)q9L0%Z_J!cSqMhucEzNRG`(qr*1lg#{s)&vohD3_xCM?D^^P*bfv$ z?lJR|>tUb7cDnKYFv{?6S>K72$F2=*Jet~pY#}zK^8}RP^W?)vWE1i5cXxgUNz&K0`U@yB@4XM$Bc`Limo1?DqW_RiE{kT*v-&7%KV# z%KK<0_ku`AJ96IbgnW)tT6uT zXGG8dZ}$Jk{b9`MyFH``H~zjzOKox}UK1cKk+k55<}t}01@~Q9e5{%O*3bUi{0hkM z2Z|}_cuJz;erfQj4p91E$NSgwGNJy5c~&UOf6cR)K)wKpkFy@&l~{GicU&1|3AD*7 z2=#|`W+7wJSA@~WEC6;pC~LI;fS^{MlM-eiI6NJ|D`$s~V|K}{sb12cw*10VZi<|B zODh|yH9s?##BeS<(@k?kj)T0X`6#Z?uCqX--1f`-olOit??Qk$4iKLs!80f&e03@6 z#6;%^$3VgdzVB{(5ERu6Fd-~+l1Vemfq8E1sc*aS@DDC=cIq1Zf2UazZ);sPwns{WM&&t~o_Px?~*;T=vN3JKNodk!_SZw7FAuH=sr zT@~yQfk>?d?YkP0u=lAo}5YlOb07K&YC$H|56CEJoFOEk(rU@ z>FIM1X=_{4U?|jY=<4^dNM`oIOoLQ_I76D8KzPb*JL~GirFf<`=x13x@QU0}7??=E zfGo6tk>?tJm}LJxcKeR)*nNmpxEn`Ih2TgwECWgKqQbp%pNjR}Atq|zSAV5!N;Aq)U7JlX?-EEg)%v}HOMF3X|+ zmpa`z1Pxgz1CrDqd$HeVsV4o66gwuQb6IDBBWeF9UhhpzqbJ>)m?$S=(k(zNV@(^ZKG7-|Z-6kLMUTXJ%hn9_sJ-2`sD^LS!Uj ziZB0>)j}ES%qn>aNxy4y1EWpsr5(!%ZpJ*S#z-ub-hFutkFn5z^D(o5%Z`Tuo-Zg{ zajjH!BYTFFRk3+|(|kfGcHU!P?g**eAUh*g%)!HU>)-8VMa+to)rZZa@Dx)hN-8Bk zeg_GXjv(xfO?_h*P(>Z|)DT+Q4#tE*-ckI5ZXLu!a`bRagBi3A_bpELjNW1rq8)ck znPxp%rY;-idAas*gzINd6BOa8IbMV;0w9Hmx>(u8Kk>*>vaC$ysAFF-_f|>=7@jMgOs}tjdc;V%G zQ$#sDGMg&PM;S+!SFpCnLy2|xb4J095EKnBk7Z7dr5Id7 zWFkyK$sjEF_xZA!DXhys%QxiJbD=`%#9n%{<08<#hO+Odkob#Ni!c`{OdgYSX-uNx zVkZsgIDpg=x{14k-%^5SbJgz&x3&EG%CBaNIRP9I}gHdpaTL)s653r7eG(T-Mo}FIh-J*_5i(5Pq5J%FB%!0 z*2<0-%3VWduPOXkm9RLKm$hqk9l?v%Cf}-ve<;~$geFrRJ72T4>wEMJ7dRpUgqk2dC@`fSQdLrqNowx^u$EaO z=^GnUV%~DgCRk2S?D<~vMj!OJB$Y;Z~a*ZzQ6T~4= z7=WybVT=ZA{o`wQ*DQB$CN5q7@EJC3HpsV2_4(CUL6w3P-Izs^QM8W*jp!BMA z@Ate&fMj`mzPMZD=&RxpyW>&bXIlA-i;XM-!Of=g28(J;jNvS4br6aiV~hY~Bv>8% zVuWf4=^D>p!iS}!Hb@odJ;I7J`(m(S(Q;m}yP}|dT3ROCkJWP|kJ_LDzT7r++>FwT zBI#PHeiRa-d$K$+;)w~Tt7C5LRD4BbV5ToUBmS&uNMSsuu+wDWhQrEAg6qmN4r!X>YX&Z3<78b8_xHylBqLdU&@;bQLwAMWF zQqc~>&wZ{Yu??<@WeWhiYIph9!A*?GG+?JiwqBD;IE z`vpkWj?!@(9n`MM{hZQ(Q}pr$ws_{3;_?(7F0tDWxpg+_ev^Nb#C-{Ut~qbSbfW7Y z?tMwv6PqPLL3?UyBO&ASZZEA@!Ok!KL6B=7_|jiSI4|2@qA&W|-TK{>S!6i#^vE+Y z$)`%PbK5_Y_ur>m5K~4>W`6geC6v*tW+hJsuCfzSrevsad}qS!bpaERf;3|Vv>K6{8qg4qG3x9Sn_4o zBFuQVEVI)XuNjp`JB=vboA3!lX2YN2W1I`I-S8!KeaGt!-o}Omh<}X|`h3Gqw?Qm=Pa-zOq9;t;Ek` z|1$}Av+yCmt{Zoy#0FKNK;+V`FEbwL*F^eN?rjX@*ug0s=?;9EboLL!Y^BHe>qzV2 zfsiUtEy&Fp-#w6cg)n1a{FWY((+xm3m|o&}3QaNMb~hhgzdw`WL#vb(c=zvL{CaG! zNzWQ6-0PH_iM~KS?2#65Ek6`5V*J#e@>=DaZ{Ta$4(1JO*W#4 z`{bmjW4o7Q_T&mpAP=KUuMw3G0T~J2`b1PLw=YJIHvJ-?%M17JG=la0EfsogMYKeg#~9<6uVfcZ-&m<1DF6RX~zGNw8u4X=5$!3TEl4=R(%7!Yvcq{SL}fHkhB;t1R^ua z8p=3i$nxFU*6!+x(Ub05Ie*{c&+16-aEOl^f_f+yJ%Oo@dht;SIE1wDrH8ha|zK|TytrOY0r?ocugZI5IP5t!UHVS~#$OqkJRhcV`B5rk%9bO$yH zY!u6xkDkt)k#&!5=br}oJ%gPXMwRlg3PEvFMKusl<&M8|P;j)@MMz<|e;qz~zZtHp zSe#6Jt1y6L78ASNlZ{aPo~28C6_Z-up}W`0CqQ@~rY@VrylLuk6sxqD=N#8r5at>z z38NYe-;12Vg|Wmz?xnxZlcAdvUF$RSok!TrU(zp!hR(>SKfQ4vY$ekX8lvH zWzVpDi*Gcg?SO!V*&r#2yMl-wz8M8=x6~G*^^9$`M%f`qzeD9YA=A*?vy&P4U(s5O za)cF|lek&?cJEy>+N-1Gg{)3{JhFGYWAk$D?Ex*Q|0uxWK84~i_m@mik#&*(t{) z-Lf1v7(hs+O4Lm|M9ysJ+6U*Y333uS%)|r(wv$^BxZE=4q zBo)9Edkm=B!bxRG@zc$@?buB0Iiqjj*&9R0TtxFOg8Trn=JIy&8-nG<_rzCUlUK_)T*FLJfVie%mCKO~*IX3-Qgj0f=K54fT$HAPEH+<_3n2)^z^1 zDAL%f?cG7(;Om{*sK1mJyTn;f^F#AC@2$?v1x4H^GqBGmX zB6Nk?rZw9`0~4Cc3ipzLcrl`}QH5#WtePN~M*b!;3eCM@m#^AM!d@W-@m5n^dqQ51_dUMB&^Jvwa!sxLQ zZmABdxbp{Q;<{n{2DGD9S5i>y<1~?dlR*C23K^vS&FhduP!atsiJyrN#QQYuklYrF zURnLf5Te^A+4C!8|@GhDH}zZ>%l;y4Vg` zdaWLgaEvQ4qz#SZWYUvYw4bj6@I4hEb82UsBnf~O7+wnx&%hhu2fwEP83FZz={$=I z^A(jMlgZt$YHcdx;fca@I;^d1*P^LzE){wz6(WD36aVB!o8{h@7!P{(Sl2Tb-$?<~ zuJ=ih@wcs8I=zfgfZM)U*n7#+H8k~GrI}@0D)-5U00+FP{aOU5h@I?UqPuUFJLLkF%Ka5epu%>0t!W% z#)PSvFktZm(Yvw?nJQt6M&yXu3rkmdp0Lz>14kQT^la zw5Yp)3u7=uYJwOf`Oo<0$UPCG^79SRWuluZRgk`E^R9vy4Hqp}~dwF>dB6n52WAv@e zwrm|mA#4@_h|W>5tZ7uM#6uOmi{2W(tYHqpz4#H?>gyZ@?I2)r(=djDy#fbhCtfvS#0tXtVBB$bXDa4$D@alms(V#h7uuY59of zJDpI;lWWlbFo`(wth7>!t^v+*9{@A29Xaw<`i3E}3zj{L{cXI~cBl&8-s-`TZT}R= zhA`#V3|Y8>MQNz+QOuDFQceZ+x9I>ti!md(tAyjqG7dp*Bb7WXOC950$8n0=g{hPRNI1R5YRQGNJ z4MgZMpX-i>MkuZI8kK$TbY}+dI=8T8xM;d?pAxbaDGcYlzjsJf0I4dG zIY1v#ELiXx;6zV9@+V7Sm?+TxUz)SBEEg_Q>$P48ytAl_)zg-snKL)O`ovj?CEZImo|zOS!XGIy?X2(kTL16a z*v2J07GqH5c(B6lZFJKN>mc+_-PU%Hg%7qD4Y+#YrWz%#TJgOJ@|0sS9Ppyb2~&(=A9PcurH#lea5<~j$gYZ((dTHrP|XJ<9$Bv0TRTcBsqt9?K=5DA+QRZj z?kJlEbILFZCE_n^PSL_<=yW*b&E#1sWaBO<+#Af@9}%stPL%(>vq(KFpAI!5um54VpWT3rncyO1P0e-m>3K-$qFwaOmkFa zxc8l<0L|p})Ug9A0j8wD!TNVOAOw$K4QSMAZfskRSUqRv-Q`7gC@@YqG+$}#M<++V z_4mpcboe^+lNC1BDNcB~y=C5jEymA!{|mve}cxNTs4Djx1WM`UNuT5|&WQO9xnJLZT1 zJCw}0;>aQjy1qU(U2kg=e+%v2KRw0vZwVIw`kFdjsWZ-$LA0x1dscpjt;##OYO@xDI1mB>Y_`!)E});M6pPiF9;gcDz3=NftlmMW zI@PvY)XWOumyXc@y8RoPVjuK9Lcu#+Yk_C>W;gDcK4tuk$|B(B*e1?3PzH&Lz3jNs z0S0+n!z#$ve-i-ZJ$!(pg9W~7{lv#;@)-67lEUbrp4*!bnVnelFS;05#Kx&h1C^W7 ztuem=eq%pjx7Sjg)hryDZ|kB1FHbihd<$(>5HO$ugN!cM!%VP#SZxrmc@-*Ho%grR zafw)^Dlv=xEGMD;ZNA8WWt(5qdjYMDwP@orb!jMJfp`4ep06Wa5{2dQE^(YDe+%NMaEO%-Qh1;-O&l=oGAlRu+n7)$qAO3 znB7R1rDb!^y#_JtmbS;6*;>{WC)0Co4P^3>&ABKol;n_pzI$|UP#GPXAXjr|n06wG zoL?GJvKQ94u;Eh!61}u=&b>x0(-0wxPQYwQwc3Go6&Vb}d zU}i)R_sZ_FkV+a_m-Ev2jdRN*vk}Yy?d2)5&%Ko7`)0s1^+c$)$wKxeq3&rBXei@zHS6EfBhD%2f;9~ zhA#6v(k0XQ#jPv9C`;0G;aM1-_6Ctu9IlDq#+ROIS=?WPtIH*0a?a}Pu5Ezm;o#J} zZX0~z945fF#TI~*Znn2!T&dk>4`z4kd=57X>?o|`eG=#os98q~g=+~6P0G=kT=oU! zRO{|-)a~{k@T!vslyoZlWG#^1=Lhsu#qh%g$3}2uua`?2N3?{Xw5t7yI*YQy0B4#s z<_yNfK&s=t)uV^q*{8UoLaZ{AaQDItk~(ju#!Y>xp-3dc1e`HjntkU1tTd`NddV;W zMbuYuYB0oO_6rD8G+^x>`XbV zk(3Nb=CX#^-s|!tHw@g7Bc0ZL%m9XC9w;A<`?P^zeWqz)78lg8gwhg9SD zuJ>7yu<2VOibxxLFU}tLGCXX&I$}!Cnf=7Ol2Y2C99DfLs)}C_7mpM>Lh&pkqYMnG zBOA~O40N0QsMA}hyMj*k|uu0C7^cHB9YEMdb{OKX87oC8 zpz#^arwM@L;pDoT3cSkhkqze>J)p;kDp0w&Jit+?K>YJ&Sj~zZfIze<vM&qrHY7}GDPsUBl~NT@`x#T1 zR5u+%gItImns0L|!gL#-nGL~hC`C2V>`D#C2AKqWa))A%&}OvGRRS9Dr#% z+|qQ+E&-YRq8GmKD3JM!if^6?f%;;GD=Vqrf7`~<8&4QE&cJ(uXstnj@-J@yHs!bF zUIaj@?bT5@^e9oy1MCkd(GsnK(3O@$wP;~_!}7BvANqFpc}v+W3bI=tu`P?j80QSd z4C}?7KwsFpOL=k`dth5AfvQM-e2%z0GJKwY^RttV<;n|1R{;jQypaKQ~Poo z+4T!{{MC2|>5Q*XI}VeD&mrK*gNt7Z?mZ8!>$|rgo5OJrKWK#`Egfc{5-l@P(39$I zZN#dh+U|I=B2j(1lo&>|&|(!f0#JfDB#Hif`eyBjAdxqjWQ?8c&kjaR`8EV4sLlmT zq}kjt+PNw|m>(F$trR7ZFxnr`tfnFHPSFPeDJ;;>vv!dXP6Jm5D@&go33i!kNi(cf zvqo+vyXNO|FJq6Os{*&P^J5=7kzuBwH~01J*vtA`Zi*Czhs9j}81FB)Fd7J%r8+U) zUoy1(G*b6LBm59g#rb7!u}-+DpD>$FkO!(10(vY&{7@$v3m5b~EYZrT`(#!EPR|ck zUJvE^jRTa$Jhw*Uf)?}>PXjScrzqz&Y^5LRP5~C`$ zU2|++cE$zWIlIgoZaf*D9(}h`FbBDj%uhG1MvTz157{dK;0$9ac1Prq-vqQMSkoEl zGL{Hya5K$aF0{%BP}+yxQ z*C}LI?G!n#Hk|rqCy6*!$w(BqO~2+ITV}ayEDIbDwE&t0=S9hBknY!^o3l&A`PUoN=Kac1VY#RRztHRsxa z^$JQHw9x*|xeXdRzq_br%E1_ErKiB@#mn4mx=&Fy95~~i0Rg`VwCEfVv zOBVm*00jQW{@#DvHvVtEQ=0ezGX|sv!3t{74E{0~ zA>ByN_m7{nyNJWK`ehS@Lg^tIXB>VScDoZ+<0`f6=v>u~`8!BT{qLva=E*%TI)u0^ z&%ueyY6nQBZ-VIvPO}3-jVr_Az8AoW%$XxiD6+G3Qufpwj%UKp#(b-v+NWAN%=ySj z0B>GHM(AkcWIU+U2 zyRj1;r&rXS-SPbV;2u0Zswkw`C!Y3Yvh&AkicSsz8nrs97Qw8o1n&=3I3adf1(U0t z^B8aZb-wGZ4@QtF_SrnuCE_~TXBs!jO6MKD&*l{D`E;-bI^8i9s4}+L^~XF5gZTMQ z&=I+!umSa-J^1k!UQ;8`A~{g}iAtr}_d8==g%AGWs*s4I9QTwic~R|cV9GcDvD{?V zX9&Lf;T(C~VWjb)18^|^S1-|AB7Z5P{}te4>C89c9?hIUJ*puks9gJMC0H#~UBB|lEqZ{p)65!s;ZR6AH^(pqW0 zIH3J2dQL5K_g$KYo(XtffHn~JAX|UIhLk6|dPF67;ceTJjt_PKc4AqV=&Ax}cb(R` z(yb;1EvYQF$xV#MDz4d_*d$~pcwQE(pms3Z&(u@Mu9i~~M`;6jx zSq3*HVd2_O@!jK8vDQx>{hpb*7>h@|MLCQi+{|h^a`ij(5WgSV-@6M>si_9V+*Zr> z=CD>1hVm-Qa@JwX=4$!%2jJkR0ukA=<7Ko_d>=5A{A;8Z!TFJ&P4KZ)!BtywZu%&m z)SxFC_%L|dzDQJ4$wmlDVdgz8KU5o99uyg4JI;Aok>=dZ*L1be>o$MhKw}0<9J#}v zgMM<|bd2DzFDc_rLZqj?%f?Ik?Z4VC$-7oU{XVb**Q)rHoCEssF;3z;Q9Rv$VVH~% zBv(fKA%?ur^UcbloE` z;c2eNtF_XU#z2g|G40w>`t~X2l%OP)pAV^z$2FC;d3O6BB}0f$DRapMJ0Gc4x6Hq1 zl|}mgMyDjy0z=ixM*IOgh3fi7H?#jB#js@U*Cn}(3z8dE5XHQw9%NNFZdpJ0<)!F% z0Yx>=$#>FlSC{b{7KW*u+LF*|mwh6$?&=0DOX9WaLcMa{5WewX2=u)ayIXPQ@gG2e zjbrdEhGKAj_Cqa;lj%xE|7Y~OOEIYLKjhch>qtbp#1m_5P#;?!5jwbzQStbLJZ*ZI zEcGk%8daDc!t->-2y8-?!Bz1B=Sp8w`LxO;;bNxdiKXw2nlhltP53C~mF%+<{|d2l|O&#AkuF(DUC_!?>1(f*wImS6igt!~)EJ7>&Q{ z5+V3}EJu<66h;q^%_fr0oboZPLJA4YlCT}lbrh!#O3*w0C-KMKfkLBEV^X5qNQoNh zf=21!U!S&y_F3CwEiMMe()kYmi`Cd(b-2ne^CV}PD z@<~-BC{eTHSV8}xW_gBg`f}LGN+-O>{w%|dsp|mZ!q$kw2!!Kf!G_WAeb~Npzi$53 z1VYucVdht6m&*O-u<#G+OVGRijsmMjP68_N2_$*aDM$Aau$vULY|(bY#1HG8IP8r9 zTJ6Quq=a5)*m$`uH(Vc9eBI!91*RTSpSE^MhX!)Fj+??27d6)I=?cWI&2sze?}aPX zQ&`ar1AJptzV*i5t-+S?9c)no*DISAJ*5iNU#i2(b`toZ9n-6(oTGsZ8Q+URR}gx9onGl{m(&>uGhKloVH0-Ob>4sNjy0H}@# z;YqsHu>X!hLjFDX#>p$BL0Ck#?U9E6w{*0=re3I)B8?$zUTeif7ggCWPMJ;+gY^^W z_EP9Yu9B@N0R--)U%US{!`OLSwEgqMA(Gg-cl}wqdrIJi-2WxflL0{GY3sc+C~} zpoSn1|G;!w?RB9$H*_}v6zC{lt8vS+{g>z4Eq8y0@lFT_JDLo1q5nzrI$CA?gM}Bt z4qOsljaO07EUd){wrS3-?M{$dMqJW#gY7D24wHnpN4QSQn3zPBMSZdCofew7N2X&U4Wtb-&D|wY_m9epq zX5seZ=1UbIsTMCkN~?u)8k?D1gFAVAMpW#JGNQV9K)$|To{A$L>M{CW@9Bd|+F-Y+ zf&&6z-KvBPKa>|BrO}|s-QRX5}NK}Ow%Pw1BXV|T3#_CWmj$3V{ zje9)K0tVNo5{S_7O%&tpT8?!}FcUcPTh#QayGUBs3^6;f?OIn2@F;lCPWFk~=>`lM`j!m_i|>r%==z&j9CtjX zDn-ad0c$G%zylm*2H%Xre4!RR{OE}RCP32+Kk#coKOzCGB8pnRqgT1+Fx$F6>pISN zNhFt}Q14n#?{)X@XJ^b_wItg5s~={%pI~dj2-mZI85L|Rg%dAxrr|A}2J0ib@R3(X zUod;&3l48Df$q&8LOOiX)VDEiyEfUZ*d1wME@UbM+Ajr7e(8D0Rrbo_q5oORwR>wa0vD#D+wG$xG;E_eb#?i&g-&_V-%Df40C}Ho@b?{jGR(e? ze3x<3b3uav)BX-Mf;V!EEg2m`<)@ksiL2@W89n1Q8yVI8m>iQ*MM}{K~xt~mKrkiyZN~%gB>O695r=cUw zEPzhGM^M$ptz_m}6-*or<;zT@B;q{O8wqlHY0$N*DR-@3<(ez;*b<6=N^B8wYFP-l z0OE3$$KtwP)qfG_3Ia?D%Z#=qDR*)ZmA__`StjkNiI;>crCEuw$hV5T(7y|sGsoHD zT5L4oAznpU)WR2j1`Cyr1SObp**>$)k`vYhfB7P_gXMBdqN5Ma4XeFwW0g?(Tr-`r z+9M`=tWejgE_xGbag@04j>G--5!aT5hiM2;P?olMZanNwXvBYtltu1}E+O$uI!4MO z!a)lXStTiOCIJ}^A(EBX4f4Vg;{J*bvdwQ0e9s%@StSQ7g%qohk?5mDv;^wWzYxKH zcY0&MY$F5MZ69=7wgn($G^^e4>#i-w9`$Pcl|EY{CA4~jt1cB+WD~>|*zQ|@m$W2> zS@*g}-?IwSD+~-zvzzoxh@T`Zvoiub)Gm|8Dsqfak;44WF%=Q1m(_zSap5C-gZF&s zO@6FNRhYaGB#DZJ*_zuqm-MIKb=KA|LPG-U)~b^;xh7z(xizD^np}MU`q9f}(sc=p zpnYA2PfcDC`k^f|W{MF94-b?V4+Mnz_L|p3* zwenAIIQ`=ba{kA=@FNHjn;4@^G~6*;ElhK2x1`h#q`2t&K=t4=Tb_x9AQIq&`j`;Voa*d z$pGSdNDiVH@#@dIOxd{%Hj3nIP_@#uDIo|FOdh3nSB?Z}zyrm$X4hU%a|OVNpJ$G; zjhqw9a7|xx9Vxh6s+8g5vB!^faq|TVW$CYGAyAp1TUraRuaInMZTDH5{8q+pnRz%n zGn1aKy^BNXeMnA!;IA3SD-``$FFMJQV!xBd*kZ?@Y)ZLofs!_+n09MyXm;7MxW(jZ zW`zF%ce@hCAPvha+G%lo%ynq*Tl@W&7V$jVnQHlrHFXOV)v>B}FCRhAL0f%??$83q zhph&23C;{6k}O~Tear2y;a&5TBWx8O8l~K_V_twIMfyc8Lsrc@akqVlzyY5}Xn`*~ z=M`NJ*d?B%dpf9_Qh>BI5)*I47qM#R|F(ffH0kK-pGMB|vg^(T!2v_K8zQv6*T2+;Ts=fQp>gs710+{x(K9~?{NI#ojIFDw)t|Q z5)&2VOV>_)cqL-;VCvYq=pAHB_4&}_ib34&Kg;g7M}(<6utP;I&jZwQ^*n5Z^k3a+ zp#8t=Tuik8p~gh%{!8Z~L3;xtW$I1_B!v!~Rgln;J$sT9``$cX7?W6Pq|>*Z*7?`Q z{Weo&BaINo^T$KQ`v<~th4MYP>lDfWdziKt)rTzC056MK)L9ZmS>?$Id~W{$aEQ<| zrRwcCtF`qQyu}p9jkj}L3-lx1uK;F12OhXlrX|Kk22a>(eM`^s{G?}OqpPm=X|_k* zUXsEoHF#W9s|KYDS}L5EUhDt8EJy3SxSR9#B;vF=mS)l|Xg0_teS_Us+zD=8F_YS|uXobfQzfw|3I4yzLA@OkpgFx`O=SQX??Zz_|CB4#DAL4N$7yk(o zm|a8BEoCza`LF_yb%%7_um=mm5T`%O=qJBS`>k*4?KsANkvKn3gV)a2ZMF?I0Z#+3 z?yI_Gz|u?3?NalVIlr5^#%g*%h3W|mP~x=}{Yda&p1h!Nr?TB|NLGX^*~kcfSGey! zO=ecmr7#YOS>llDLO2cev^V&gxw4JU>+IRvB0`W;lf!iu<$I_TB2C zzDjwDgzS?LmfkR+Xz)ejM6%K&Fb5Z}&su(>-aYYwjydJFGI-_tM_hNhh1rUAgz^dR z08Ns2T>e$~^#a;6JL#_rZC1C##9Ei+Ce78NCykX-H3JPB9USpxi(UtnGlfUCq5fsT z(kFr~8QvlUbSUlhp=}$afmY*qr^V5#XgGE<#vLRm%z<@IVz!Qt`9j>`BT#@vH7);f zzpWQ}pm+ZS=0|q{f7%XRI5?4BeykZ7-Vq)!RWS1r)(J2;S=aIwdg)16N3Xuk7QEzj z-F~$ibNO|*DtrPNBaGfjQC;>$dz~HK*vy2VBdbd&VE4*%(x#Rgd4FQ8RO%U%P5@F1 z&AuC(hXm6bcq-9y%i@;MAgik~D9O1A^a0sR-*Xu#jO6SJY-=@`^2lF6vnjs^8oh;F;&0ub0*yzDKg?9tJkF&ojjUDG+r*h2=9|hLQ-~gs zg{G!mA+K?NB()D!GvF1khk#h`7$!eaG-qj|KRw|QvS1#fLehcJzZrqcr0g?_?Y-YL z5F5(dT4FQ-vp1}8A;WQ-4EpP6i}uGFg8)FmC!E;kBKBYgY+X+cFG^XM&0QVv4lI;8 z>4Qk1(sb5A^?mr|2ZqusiVBbFr^S3jIXLQ0*P4LM?q(uI!s$rTPPX8M*#IGu6`#_c zO~)8YF)FFZj=jJ91W#r|5a%bii{Pp@Mwf}(zgtlh$OuOBjerd1L~p1|WE7ivkyQ7` z%_zbr@N)^NTzoizd~nM0+)9DL#;5<_x1eo(FC(;H@QLyITEpyh8b$0jw^sbUz6TfU zb4WU9l>IPnTqhH!%B;JhLOfIgVKzKQ1)}ex_D+hZ3!COybnW&Kp1$224xm|Z&n!As{Q;WQ=blyoRxa9pIT5sCFW3jvlTrQ z0K^MHg_C+2E~LM+z3c{z^ghCan$CqzylFGp>-*p#2lkh^GjVNPO5qMouDqJQ%Do(Q zw4PkVfPAkp2S(_b-vWWop9i^vhU5h8+{pJ<*Uef*VAr26N5TkpgUlWLsXsnJoCl{*Wd@foIQk*OO5lcA^U!2=dlV7qya$PqKf zm*w>TG7CkC3V4vqCFU+7L%8eJUbnv^>luv85s$~uzPm`9dsU1_Ll%Bw>ex*F5nSa} zCsYhC2m49)_V9*c<>JxZHX+_eK;UKzTcD(ljvKYsb7ByXo&DTHOwus?UyPk&b1rPK zW@Fn|2ntK_`KwDvJZFv?QqQ}&}hqP-G%B0a5eCf@Q1 z$sj)TD*8K2bgu9iTeeX8U*;W0Yomm}^v%;fwMHy3$apRvP`?-6R%x=Opz}Eeh=p-D z>Q-G35^s>k9y#77yze*ognb%o7>^eq=HohTl7cCv<;+Z~xh@lyH>|J-*8f z{v&gR1FY9Hnwy4ar}v|83CnS7FMgvs9XiTPo#PdeK;lwL?Bo8|e-6xlSv|{um-OTB zAekTg^X0D=s~brsLpx>-=Xh+I<1EMtkt7vLL++z7nF6@3RBmjQ=P~dls zi=F8J*E4T-e&erYGQvqL#a3Wm z%>D(tSMI@zG%n{3kexzZOxTW>*SIDcCx4;Vs_Q0j9oKQh9drgPtXKS+KGCfOQ5P|~ zir5j2iJ!eF1&v}^e?Ur*xAZ;Zzz$`JSg_rXoRYprZNjEtT7;H-*U0ol6L%Oo1f5S% zw&8bCn-CW|RW`g=>&+*;TqDs%oq@c~R%7zBKk`rwRsTz&dBDEumM1obvSA>>dr5>6Ej&9CPX9SxCeh6KzQHhDO9D4*~+6P|F=Za1N)043Y^03NYW zSg;ou!%SXh2(GFzy2eG90Vb&Z{TAe_AGIbOWKzhOX!juAI%a?GTbHJz5haVcExq>F zucVqS-zAb+johD$1-34yaZDG_?=&k=w}DFTCIv~&td^tcNW6Vq)liSt1K4^9bsp23 za{KUE96nUOx(MXPoB}HLH1}KW1J=XRj%>CMv45hq=EZ3FmCj%2Rkip}ajp~jpqN|C zJw|lY$n0c}#p*512X<>jX;QwcK#;u2ZpMqfq{tIkD&g{=qpV?$&$}=HU|hlt1ViBJ zBl4I32X`n$h+>!++>{9*LImt+IOv8UZju=HT=jAX8_Pp>GnNc2@gP`CQSgaIVbQ;s zn=9aI*IgWFQ29ahB;8YAtzvm{O=>1W{uk>@67?a_U&ppbVPJ_lMalP=duvzfR3bly{o9TD(}f2m+D*hVk6qezhgj(*cz!;XH=|_ z?;m?rwS2k*R@*~WAeCHU-Ew#x3ZcyaNy*BxG&9SBD|Zq+hp@DStXH%jxfTR7F5*>G zK~SGV_Ddsy!SU_-uBCZ+(I~Uvq0z3HilM$sE>g1Z&Qr^JU{`EX(Yv$3GoBDTLW*~) zFYNj+@3%SD2qSwqd~oCJf4nM@cfN&j%Y^ivye{s0ESylrFlX7sSp8MJvQs+hKBurM z_WtgyR9om)GS|>%4mn86Drk+vY4kKEl4yS1w^89+L@~;RFRGd41SEn~4%5x5zh)4+ zm=Z17VYf*yr>*75?hsH7-`=(qU=Qi%>u}#Y9t5u_r8Lz|c;MF79z7UPZN;{V%HW#Bl7Z65Rpd+oMz@xdFAC61Rair@t z@~}|2x9zW~FgnO2VsU$OL=p*ohVAk=X12ilzxIOPMLoC;@!1|y$N=-I8(&&O=^2}H z%bBtayj~MtrO!V$Y+e*P=K0hk)G$C~2W~3w4Fr-npn`DkTKz3PH*W1NV=MpgHZFlM zFDi0H{2Hw) zO4aKG=TpbmN_0CO__Ntn9IKRzqz@pAHP9G}l7o$N4GklEJQta8To-1j`50!hp!6GM z2Z%OcetHppFUR6L@9V60;akykcEN_@oHE1J!S`iHQu(1#`RRQ7Zu9;fWG=e+TL4Lx z4gp9z%4zLm<_<<{R|y}%SiEVM+Ew(oZB-^{JxY3k(|R;a zc{h|kUi_)8`o1MHmmtPIBGN<}4Vf|HvvQ1(gLZmh8Ze=`&1Tn7nV z&+n~4AvIy&vWT;DEL`5`1!SAggGDhHvG3Kq;7L!a$slb?s&SG$0)!MY@=uLiH7D*D zAB7tMJgG-c`55dXMT4IIWTr#OXu;dgf=RZp2din8PK{6u-XLNW&$H6(mnQd!?M6~5 z>X)}5f=tp`@dR+LYpq3p^%yK2u`0c`l)BhVOzhsY#>ZUQ*T7kOEKwwsR3Ba`Iljvo z4Lq-)|Fn&V;cr-AZFy7p1b>pS+hYBG;GXi_2fHq+g~lxHc!I+el{4{K(Io>wX|A>c z0D=_kcW%Nx!Y)0awzQDbtfY#(Oc?ehM~2;%;cO=NSadBrJ=QCqm3JT?#O22zQ=I+L zk+}ODi)8RZ<9c=$^W{#&_~CVTN1knH-|995%v|t9Xf?IQeLQ%7$C$vFTdbS6%`-J7Vd?iz z@ic(YvB7fH$Z+`et}f9NB}<|1KlX1ePNn#Ff5S3#53(|;6g*Zl_;rL~2!5Q>lR}$l z%zxi)KE=EFD@8Z2g(z0NC`UpwB@i+2X%ofax(0PgE{kdu_hBvVivi4B+&;3>bZrsBKu>>=fAu#0z$*sEwS7QzsBB?EG9>+;$*op4Q_QU|jCn)>Ut7`` zTs^sSZrX%+_wc3m7R=LFA8P%)+(K$+(Adb_BU8|$$(?c>IVW;b7GitvRmMw!Tvs7v zgAC^_rG19{uM@EWa^+^!dS61IY=?5769g{wR;qK0`uDd7U{Nu5IeEvH%+I!ukB{Xd zKAgU}*pBXnVC*b)iaff=uiD&-9A<6LIfFYtd8T}tU!yKeM&GkQ@vwmpDM80Nzs4v! z204VQt5LU;8!e46VGWUeY-6QYHmI>at6EdzkhISy2sIS^at2^(Su~FZt4)5{m5L;5 z>d&S#rZ)A|NT1$EX^?PCj2lW55)_3rB72j!2xYmZcxZdC|ywfrSvE zJX24H|GiQbMv^6f=s`0W1rMoDeN-vxw^S;9>c?_2Lk=<(_(VJ|NE#MF{`VYx01&!NL|z=MxAZ1<$F)< z0oy3}V-hEPbk`n*s~k9ok}u+5Zi8=4tyah?*2Dn?0WTKTK&+-D;^FOEtn%}Px3WI_ z9@y{Cm)HbA4~UT$tF(%a9~Ivv4iHJy{Rg%MbJ9!T32FhZq7FA6wyyaoNOrpXWGnjN zwo#eJXLYEaW%y7;IMUDQ-j4=+r*GyryvzT*N2~dw*ZxU?wyNRXHYiau^=B3il2qT7f7#uBv~c6>>QP6$*0 ziX!q)9@ZZou%(k}9s)>ZmgClwtsa)h2I=TSz)7bO=`Qpa=M}5VAhHxb5}8z&PjkFZ zX8YmZK>SJ%!hU3x_#RSon|53mo4RF}1FPO8tJT~9+sJnSI&I*E^+b?dk(j$<+s@h;5lm5$u;@ikB!bB=8mW2^n_S(j)@|*OQ$z~0Ry-JvBPOsx9%!@M~ z_@;8f-GUyj<_E}54oa!l>B~o3p$yWp((y!sJxt&>e0X~A_^+rP>PUx>p+sIBr6?&C)44MPVBkF}1@eKQ$xTxp4qg6OJG(l7qI;^v2V8uG4RoV64~ zXG{w<5vb@B9jb^S)jy0`FXEw2du$6qpLRb{#}-mI=RdJgBT zpLl;LCe&i%K+|Vc<}FY0ON(@pT71HOyvWG>pH)VD2EcbutaN$zLjiw|a3>6j1=cM( zmX{8U5D}Dj$Q8`eLzgSij&>izUQ-tLsc{?3cIFsI`~`A)M3Y5d)Jv6#mNiz-?4d&y z@2YO)jEtZmvqStr@d{pBs1ukf>kUE{meE3lIkPTb0a^baZWL zl%fb08&Wn$s+HR@8Hwl5Q2QV99jF`mc4TH8W^3d@QgF@k>9ufnQ-0`i|0K30uQ|3+ ze>kL+f>n!Vf`c&JNiTT)+h-LE-Hc;W41DDf3T-e7;PB~3e6z|=Ia7Rk17CH@hjwo5Jv8 z-)d~g{0d6A_G>%2mZu&&p__W!_T)ZHS93j+OIZlz#1u~ZGFOK!sacF)J`?_BI+yt#Y8o(Yitt+w_1)`6GZ(b4p5-Q(jrn&vDypCP_$4c=w=>P?ln z%hc3MizJjzvo6TRi1d~gxwFI&6gOo0y^xc#xsg{^&9@@^7{b-ut1H_t26XZC^2HY$ zuBrhOh7aRUX0NG{h8@zJP86-Kaqy+a2;1&wEa~d;w(axU18LeNDM0ho>d7ijY!2e< z_aHBI*tQZxG_@6N+Y;2vd%6${|FC7hU~c?bXSJcA_+!Ak9Ylk(eFBz{qk^Y87Ga;B zL_loSFw-v*>L-kiFCYI{In0TjJ8{$_TSL!(^0NY>Hsx913BLiweL-Iy9oWL-Wo&EH_g?pJxbdQ@qP> zh{?H_L_~xgN9zLOqRFa$@8&POk{8t4IF2EUw6SziawW#@Fw!3!ja?G;jMu6G6Vu2WaS_@tqlkozVMI2SZmMRPyuiS`bcSvGI zdznj=L@9++(277e)}7k7lw_nvex6NqX`t{A9Hvy=U`M1aHwbUS1zNW(v+$jTsI@fE zr;c*1(D6&GQ&4ZD0p#q&1z&X_bpHh{(nJa2c+k9{>~10h(F9hyPEx)l=y$1lj0oz1 z!UD3NBM1$BRupZDY5iA#q6DA^pBqP1$HF5H=45d~SZi_Yn-q(Aiz{5ncB&Q%9)S;l z9rqR1<~YMvqf(8UVgnV=Eq2}WB6L{@wKA=vQB;?ZuY=S&Z)bd7kk9slA_2cSa!3~T zxE_SAlG4OpKCcn6y1B;v5bId9W{Yn~*KhY+G6q(QxR=O?*X#$%Lq84ejJRn#hs9At z%HVn}2l$gjAe`ea^yB3W-b{xU!2=Y{V%bT?3$&<`Mn@$6r?f9XSE;RYq1>68f-*$3 zdo1<^iTMp?>9J7l2(ElOr-8HPjK!zPegt~2*Q%^TW({?q|9qA?joZf7#{0zxkFVvysNK*DREc)ID(;AxHP-0B!xh2(Avsk>x8> zpza-LPvVK6;K0U$6C)u=2s>*a;NGOkezVsl2={0(m3ccRQrd0w`e1~kx$MkR+WOef z5tb@^NOTll#RpzN**b7%5O>6F7681A`vQ02cw#r{_=Up0#a&SX8+qf|y=x=_{C+UK z(Os$M?dPfY3`@Kk39PjMb#t1x1&Vu5E?IOMNubXWyInuSIGTF(uujTh?Z_CGFaM{v zS(b?{rmSi~@xbiIMj56uP=oSkseE6x`@B|}E6jlek|9;jHdkA-VtjePQp}ANY`$BXwK>KV#FA$OdX4O__CZjYORpdV}8b zglbE=+JGU%t6DD)Cv5eK&P(NlcfmG-m`A7=l(2b9hNITZ&HW-xOzrqZf9>n!`h42ebPnacm2}ar$`Ayi+LO&2U-ZQm{ z424N*BC-2vZ9_V?vvc@kiYF)oaFp~P)0AI1L!R1+hY@wj_v+Y1*KE##A}72VPcy~7 zh~Gn@yM2WMpHz{3O3ZxPjQiP+aR^?Rf+aGI)sT4N{EoWTQ?C%yjEyXNlC|5Mle>tN zGWS_c2Ec(guzMJjCn2x^7CnQDtsE;KZUr`an&zS2{vZH;2wVcGTWR`l_5{_A)gW4w zW#B0=BN`Jgx0r?u$XG(;|$wctNd=Vt1;Xy}~2 z9?d%v6ETeWb-y`-C=Aj1M`E^*y!k)TFHufh7V?fmZ^x8at3>6Nz{My5@d#G(LmpE; z`RJQWO#=y5skv%VwwTtT9ee6;lp0aG`9L0d$7IcVwIY4i_rL~&t^&EcwHeGTrvWBR zrm8D!h;4)7O{iF21{_7yKS69UJ_D5_+AWFS9PcB=boxT7F*w%`TG^} z8TtqwOx3&Qa41dLi!F!Hv~UX(9zqB>!hus!a$yO@7Cz#A*O+)cWa|+k<)~A2o70(8BIK-KSZ_N}0VMa|$i6ijsLp6j6P>XNM`cFT{ zkK0%t?aFVpcADUK+Mt(Ffgz`SQvKJO^-MJ;|IPd*7!qyS(*7yXOT7V;=I59bs2ax@ zrf2PWGcsCHz1k(FjVsx8RyB0f9}1jtorU{Hyro93i4-|L9|FMD)_o&I%KwKn$AOr zn*M|V4o5BPFD@^0oa7n+t?Jm%mD@VuW&y&VL7~?#A;O=IYe-*A`qQ(`E^_R3vgK{#K+XgV3>|ZDqk_TQ6b}!W8@d^iQ`*y^ z2iumRV78vOG_f~zJp*tqFa9j@Bs!2})0Jk?8G)SB%5e{)U^Qc{D%Xm?S72M?L}(dB z%1$Cv?JLxcNAbm}e${_l7{I<)B#?<)p|)w>@kaKqK>>&b2M*Tols>QigR=2ak?3vG zAAEdGf9G~Ya~vog`V(Urmh?(nzNot%%_4~5{-uo&QsQ>jo5W_ zSQuKkjWw#LJuGgQCoZOe4UsV@YGgT6u)MAMg70!u6=@7C`{6_8Dx$>NhLt*=ecv#fYSckjhwj+z^Gvgv)r@&t{TAeiRC zJ7k&6#eGrkNvtAuKP`eSvP=m)VQ=;iHKWQ+slunApJ-toijWjyaTsgw?Fd!Fu}#2C zZ6G~bXTTYG$QfcZe0pp_Oi%tZN`q$pQW^z7MMbTMb!GQjDm?8qh%LSc&uy9Mrs;3= zFr{fB^wIprZ&-O+VZ+VEs$UDa{{eb`NEreu-- z^2N`Bt&-!}EFjBronM|{Pd5r}?igHXeC}9!zUFJOuKV7Ik=y)Pn@PnzuV*;nyj zPQDbaAq`xRO1U>sl7Kn?3(XA%roR4Sa`HjO`f6SGAH#}*UA6=V7cv5T^qut-#GubQ zH-5ZVUXT@rvc|9en2P`}2JVl*mpRM@jW_PkX@f7EKl9Gbt_AnC|D9L7yb{nqI#ktl zL`SOZs~}~_1`qB*zSffQ?<-h{UiHZw!9!BIN<3>3zmN*Vi)?+qb;7}RZ(jO|vC1Bo z4a=-wa9+#F?dFp8HFWFvKU93|`a4$EQI!u9t^ul@i-eA+i-=kHYfFBuF&FpM5gK(P z?ISZbzbEW;hAjzP3{1Q>mmz6}hY_7u=p z?5-)6l&55sL_%R%V}^RZVi>R^-xr0z+Yq&*D$1&O=vMNj55ips=+B>cXYOk(#yR`F zKY$2E?D6Ou2Jx#--;ISY}Ri&|8H zavWG`xD8~OeBg7?>CiF)ol|A+hmtxpr(HzY)+7;p@~lBn(6j{hgiJDQRG%jlKbkFw zS^cQf^-G)oOIjb*st*as$Wyg-X!DsM&MOXOb$lYiOBS)>Xur_~U~3J2(TmN#3YtI6 zXbqk-J!+1!#&b3LAs|Ah?Vtqd5SY;~(uh}-J;g`aq~=rmERzLPL9(5DIA|(1Vg(t8 zJS8daxuL@+?@eS7>))nZr+iyUoL}u^1hh>&X_ zx8_JKeD1|bofNnzaTSQnvG^++jf3QECx}%$1Q2)6Te`+=mW?I=j0TigrFdXk`G^rW zJ6N)a4~bvj3N3Rgc+;RKL$$D5DS%YXzsD@T7})sLKz9r=OxgGBOigAeS0-CXF?afy z21Wml5tB9*Jk$}|G`rx7V8~BDYqGxowCj5#i=nkrv@Bip zt3s${b$2r*toj~w#jtH7wpTmS}~i`VMQX1`-_+_td}pNd*A)IUl*O8 zo2_FOMKQMs3e7=q8K0!v4~{Ga=-Z8^%hcbUS?eI$j1}+2G;{v1=BYuA7OAH%p^h1y zF2xw)!RlWD|G1mM`>y>`dD5d7bQsY={+*eQbH zlod^P5dA2uVYa{r7gwBooCv(#{rd-7k%vzZ0)Ouua7!-xwtdZSdJa8Q^Xf8JE$*&f zs5Qi~&X6wBx+2K3p4<&`u0PhF0EFS3Bw84D#}fbEyCrpWf+Fe8;MlJ_ZYS^q|r z`(GVqmKrWY$SgOEO<$;hhUvaZ5{fpsZyx%Z_el}BlFV9!3&AnOn;p;yQ)Q{J@%^1VSmr}s56YO8uQR)44cR@)YE!(Qr6Uys;PkY|&IL(xOa?SndUGX3|-I+_@^ z*DM<5ERJDMCPW?*+JFCA zGw9xw!!x6&j6mPg8swc% zF_$)A5egW6IDY9?w;*%vGs{6Wlgs*1iv2@hntffveez2XSzn(bKTCx!=G78+2PFL+ zgv)FhmA0uS_@Z)e2U!Y5gJaF`aKRGR>KO>^eRJ_aD?@s7pj6{kAASi%k*E2tHe4Wb*O#|P z$Kp<|s@JMsE)qqD-2kfwx84WG?WoQ#Va#Bcf_yIE3D|LjVLq9Wp*rKBC0U{1)YgPMgK`2 zuBpb)7t|!x-4u$G(-p;lKb@tz@DRN_7FhSV&ZUp z?9TT|mVyN{!^jOx=&ET+W3mi7zu#NajS(r*9?z=brD@+x-B2cVK>3TylI zMdK%<)gc(AjJCXT#FD^ZCO(_#;&lzr2wCWC=+)kyh|!T~^0R}4fT+fa?q}~%R1r!U z3gsmC9sCTq64KD0!uvvu6A02MelCPnhfViUCkivGwjb{--Nta`SP8YhG+I?0z(M8&Wt zIM9+u7pt$@6D>pA|0uFMdm}4$5zh@32I-|99fM@Zony; zo@nTTEm0NO8AAF`@U&h($|oFsvx{itm&wOHtlEfamWDBjOV_J?RWK!nR$6O!6K3MK z(opt~D)1>6jjIv~t!Ah%_c>UuGyLaad)M*|H0Hzt8T5lW#^;Ku1lGVk6ZjfkD+YHq zrJ5pG^34N_I#X;^nF>i;i-ZFvQk8YV`^8ws9Wm?uv3EV`td4WKm8XK!pn)sJ?n_q7RYFuD(j{8*!PGKT_pSlQ5z?RH}}A zfT586#cge9M0oT{hQnB-nY~d#@ctOONTIF;$oa`86g0Rl?%jXlV3)P7QuW7NI=d~c zA`IKv_UY?f=c9(WgR7&YG)d?1X&Q`kmc#I?Ey9l5ia~vazwUAl5?3o{hoxT)59EO8 zu^Pmifto^moD>Fvg5hq zA!;DTkdoGc+q5^#I`Ezc82PM4y~@sD-xHr}ffKkTIxwp4u?6C_gi3%o@pw|N4O67{^?(}FN1}1z0Afo~ zVJP^W5J5x7{+4{}I)Y8ckYIo~dXDYsqpGQ5jQVWt?O?P)iQN{YS8y)es* zZDFq2r#lEo#9A;D#95zO?XGrG#-ifmMxg3*l2rra%JK}hAWDp2E*+CgOsh7{=ur>0 zq_N9%1jPa#e^;;oII&J@u=}oX*`s{M3R?_1WM)K37pGG&w-rgn12C{7Tr;>_A5H!o zHv6>Q4}su>nq$9<{mEo5*Ma*)Ez-W4&?K&K9e6FuyD@{ggSXLDS_ytwq!r`gi;j=v z@3ck81KY&H<8$dj-frEfJ&qh|3r#gJ#*U&IVU_IzdpMYnD}+ji1#j;87v-;)7F^ky zL^n6Uhi7!)c)1hpEm$S}MD|-MNQChV0DXHX^lnS0*jgtG6~PEcnXdWza}7vG>gYX# zC_iImm6kU3csxT!irgvv)yt=sC;oU)Rr4@qF7L>)_jMa;(chI!P2hx zRKv>1^WyP0>}E-P*rp`>yi>J~U~=yA;P-e0*(BvD)3{NgjcaAGURdYbYVu*wJ~d*q zLbeJSiV|njF2>v0!n>io(`^$c^RE*OhxxY)wd&kaU@1y-wiNS{RcaJ5l>lQMpXfEF z5*|yRa3jB_-p1`;tNC7g-(NE}W1AUzlb~yPcrU{{;1n~_(SIP@h><~>65=FLP`URz ze1-l%M(3TRB$ohNqhyUHM~@W$ePl2NKf0fI`GAM*R*PCNo-HwGZBKs2dpECr0(X~S zkL9AOfhHzdy2-L|+G7#Yud0njV5l%f5hl0j@8=nY+?$Qcz=e}OHOS2oH7NN6%<9$& zCs2WNM`K*X$NNUw#Vk5op*{u^6~yF+s!e@bV__<)GE`4sv?pP(n_17pBjZ#|5s$y! z;AsdtK_*SEBFQ?mDiSP8SIU+4ChYAjsFq+fvQflEYfX~3W}oH6#!>`qJW#Giz}U+dTK*8BL}zFz>1FCKI+3yl%`)&P}@I9S{udpQp`}TB7j{ zxEiQE4eXh8ZQm?K;aKA{qC?xkl&eTgT77D=QQ5y+d|Xtpy1*lu5A_UOIs%zX*-@Vc z-fNvT2`qU8Cq;ol@~q#Xgu88%jEXs>iR4OZ?Px^&ls7YWe%But;b_09nm+iB8@BHA z1$@Fed#CKPfJw&GZDj|5p%`^*)8sR{M_AZ8tDHcepmkKTGthP#;WH#J^bJX)V&BR( zZ9w4LsA-XjFpOw798yHtD=A@UV%;I-#aS6>a@qu*` z8-!7a;~xq?ZCQ-!L1$2LT*lh6swQJS)bt7*8sL_Rus`kQqD!b=_eoXCf2)tgjFNv2 z3syJuF4(#60tY(6k)Y5GkuD{SD;J@x4Ql4Ms#r2)z*eJFwAj7q?U!OG-wHlKB;8j8Zr$Ni2K~bCk?A&%c}f- zK1R@ONhbOgd)~}zrOo5bI0TuVs?mH|N4IIM&{iGlTbc?TmRN*j@{ckFMz@7R+1_@o zm&X^%?hRGd!G*+f>-wvAvLX4gf_<(9lhy@hBsLEZ9a)~vgyN_}I3T83-+roMRE|OK z;7aA4v9u=q5OkhNiP-Q`@>8UNnj3(8osQr#Y12fG@}jv0GN(Bk>HeWDhFAlVH&)T?qu zWG?(MjkrnN%QRz^a=1?crOx6@q=wlqi;vnnWN(YT{U@}> z{q@KP?=MAneuuv91ih3fTvNYc08$h@p|a=(!+aj>b`%T~#ib%e1SA`)kqAs6Vn^zJ$fmQ1j;W@jTah>-F=_ zyh@#}On@!fk4;C)>tqTXbTPaFZ+H>~eRzPR*U5FTj13=b-sS7~F6360w5 z{He-Gw0}6_R>9=@H`s**piE(v%n|rZsznc6jby>v2@$kK4$i@BH0gU$NrYnvemZg3 ztKNh}w+;SqvTwi-p@y&AF>%Ry`GvGt#?r@d+>~+^*UCscI_BlC6P!wR8NgmnqVUYM z!x|bWOF0|nhs7{xqqvV3#VTwmiz5gJ=0H&%PynQNq+=*eh$$^Tn^wT zs!xpvs=KsnJCd)qN1CvdCJYc&&mK;!rG%C;X>GBvHZWa2uZu&ofQm0(>~n3TBS7wH z>vm9dxfj0*FFB7)atu+Ph-8w&14SQWV%bh(q`9u`x3fNS`xL zydfs>etrt#JU4;YgK57Xe)pyPi{)qDU9hv?X{|h`bW=xm8gn=cdA2Xu+D=0`D|;O@ z^~Q(lr4aQ-H!4I?5PX&Lkgo08x0-fVt@NR@)6!}iL0YhGDbPT9Dw3Dd&!FrQm~1Yg z#wWfq@lgkWACdcd~Df~b$jGeKjtJRQmg77d;HhiGU&4YqR#1Fm}b5%^5N z5X+Rd0x{wIBqPlXY2~X8AK&xxmCfIy^K7MA%$Q^us;x#fpVTtEO#OS5hrV!#-e$qx z$L3ZQMgelPUkGt4iW8!atYK;p^s>l|I3SB?;bQo>?Autop(bHdIT^2a5YcS{I6TDS z=yDfL1JtkjqC`JDeE1W5xmDysn87f6H5<5cH>O~s@ zU-m^i>Kes8*Fj{~HTUP6w8^i)W6cXjy$4@t$~8-tCQ%PZ-BiasuMv#9mgMdtkBE!$ zNaE^&DG7zR{b_Gk!gMmru>PSkI_Gq!;&q2sBiyn8=bw6f74f z)7Xv+pkZ%#fK1zN*td}Q_Fj>Q9K(&MlgvxtBR@@JIX_Um9doufC7yHIG&xxKhoXUt zvv7_YMGmQ_tHA7x+4T5hTO|Ua70#E6PI}M??7`1SHl;7dY@889HI>~`8uhl-) zxem_Tb2HDe{+UZ6drnYsc=r%Hj_|nNBR!wBBhglKV=kmgME z>~wCd+l)`BDN~LLab|)i^-1|f2?qltkzIi1anXCzhR*kFQ3wq0oRNNUm;0bc4wV3x5h1weH!@?5Q@h%NqOtW7Z)Qw+F>lE2F%R`|8c z()kdtem}q9En0a3kfDrcNMb5m@&Rq~2ybuHUMps2F*mKQI4oDdBxc=TN%->SoHAhx zZ?(BRl?RfUBCBM`#kbI>I-M;r%Hilta@4o~gvAe0`4r0je(hV^J$l+@FJ&_mb83nM z(EBnZ4KC<7rSiY<2thO&Ek@*qX?}OK@Tvh9$xQBDTcg}48S%I7$2t1OU^fya1qfJX za$~1+nq??~U(&d`1#s|7+kDGE!yD|Cq&Am5gL_sLhO7n6xVmd>x9f7+2V_uc07oVK zH!w~*2X(`<6sXgdbF*28E z1}}QwJv8mwD_d>yhX?L+3m}n_FMXv66YP8mV1$5V$}1LdK^wz0>_4 z)~He^dqbIREr>Y-F5mGIrzpD)HN^3tb53)5KU!N*Mpv5{y`#RoKt%^TYJ?4O4V^ff z$RO!IwZprEC!5(BD_I7#2Lo-rxK0e?gmWo;F+|<#z#OZ)dkDfL9>49-kDXW$t6h{|lk6#La&Ju}vlwd^jMQ+~QxOh%UhKx#-HM`bb5C4RtHW7Tk<=>@xL-R?s*-R){|C1FU zQ!FsnT220=s7Cp^Crj!lD|P5&^mCkQK>Iw_t0{Z(ctz3HT$jMv$(t4CD`QLglf+VP zgMaSMlu$^<`ObirK3}q<9`QO3NrOeBO`<~>F`R#_oRaFQEM5Nw6f5vvph2cousS*V zCkFd(1Vw$2b{TY|j#vvIv~ROpJ_-?_=QZ{HL*~qy6PeCA?|5jpKkc0UdZ;Bmk&^*T)k+G!sy~@e%-+yu`yFTDTD=lGSnBG;Bjqb zkUvn~w*(_#f&2W+J(CsdxqeWjB?V)-MxHVZ$|r9SY`+*(8uFsx$8_AYD_mvXOTmvd zy@^dIBSrO5sFgR0e(V+4-nt&se-zYBV!!7Ja=;0-6X_(O^PJrhC9!Hd&TwA3%NP1X0wVPV|sLFT0c#!sA2_Q`k}(T_rMBx%+?Wl7D>1E~Hj*w|M! zVYt?gim-K~;@NPx zGv`;aTBg01Ql(dxV9o4*?@^yGbW9q03M^#l*XdLcf|S0VptOt|vYvr2JT5|wS4S~PZu7kLetw#w!XuSiUOIUZ}&&$6Y0FRJkE zmfFHpt7GkuwW7_Jc@tvU@?!ECLyllg9p3X%;b*w0WSO=bxnF3)k0y(>Z_G6d)66l`?Q{yVR3l{$ooFHXz} z)XA+h^s@C4*dt51)hXIz+l^0?&WTEOZ)sp^hNtnQs^kP9j^}AZP-K$=M`Pg0wc-8( z5*@-Pa_+F&IH-CrNEsNhX_4gyl5p^&E0vdy6@2f=h1vG1VmpQj}ev~!+E%6tl z-JDDe(|`r09Ec>p~ftO=%hE){QWQ3P{1bBC#8?%&-~MLzE=Gd+{j z#2})*Y2Q5l%A%$9r4DQnsWwr3IZUTpL1f1tI`T##0=Q^tg7+>N1~ybWp2d#g41!u} z^sC@a%pNg$`f0B*B7<1Z^MP+9kHT)1Etld=U!Ty06E1te*TpP2d~paU(v7^b@*87n z;RmGwsB8HHq=J+ACkm+A=e}CY2;dpf)o++ArlAcF6qLbupp2_sq#BH?83=$f(wfQ5 z&(?R;UzkU_qZ%pWO>MTR%<{k}G{bTn2o|q1b?mo03_L;hqFjw%A4hFzp&#rpSBd72 zv4evpVu~O0%P62yj=E=?;z2|x0RqXpK4!9F?#fHRA0DuQO%KE3&HM{Gq4k?TeweuW=q+LrQolAXnSDW}ePz~83J*5LqtW`id2ricf~Z$M?cHlK+Zy62 z5O5@jZ!2gO3i9~yw6qys+%*sv2VDY{N-(cD-+%_I)m?|%)b>AU>GY~xN%E`Wjmveh zeo$)I9=3vqQNZFnkQYAcf9s&+Aj8=4)z!OjM`vT74Khl1 zv;4}>)}Vzu+D>R9wM5@@V~><0qOUDQfcn%i5&f(1&6z;Kt21I4d73VAs)j`ac$cwdgXI^Q0~fya-ip$d3~ z{TbI@0%_3n*1TzyUbCiiU;~-vp&6 z>fJGIoA;&84N`$OPJ#HVA0r?LL0#kBlZ(gE@lEu#V*6zBAWX=tDxN1l*WcTjM3{o_ z_-rEZf_L8Ct`q6I&*NllA?o8N8%9?;5_Hk{1)nGvF{yy!6Fwq;pKlLujYrLzORjMy z4tM^p%Gc#zHIJ+h97GG=LykT??iK9pdkU*Id0=O~?x=`*Wujb34wO8(eMu3bypD2} zxRDGBA(y$!8*}BNOO%@n;dn-r6_=6DE;O4-R$~qA6)_RIz4y~Vw_ll`X!o7>f2y$o z<`e?2|Ll{)A#t6fMIRco%lYRh^mr}BbPr59M_AZxOX(3{T|ugmVSVPoL;sp-pPG@b z3N5V}#{(M!Vqn#+cTetjl3>tJN!u)u5b0;ug!bnoTB93&PWfi&Q6g$EkIf=cD&6CD z!8ejM3p>C*#vvX=Cy?!EV~9sz#-iOsHEff&wIL*5+KJm+XGU~`#Bef$Cv6nK%zAxc zRUnf&0Ey*uEn1pY2s7p-6uk8>pN|xy5Ui?XWtmQzl6PG8t-WK8adrtgA!^tqgI@QXfQabqh_{}4cs5kGxS>h zXcq?QLHJl^o02-2ODtljQdH3%8ufXB5-v{(4G?*4%Qt{KBT~PXI+rP|q>N}5+ z3Mh?6U@frkK8&GQuy42VP6~M2r@)O5FU4E}(4DDWpdeN46(eXaiom6N4nWaju)=|6 z(5-8LHYkOyZ;HxVK?8^=tCD9yXkx{_2Mm=Ro51t9DWa-_2<8CZL;1fU9ZXXJ$b)*J+4WoTUYDMI5UhS(se}qd*iTrI(wK0GBdKcK?MC%@@yQ+dOSZFT{==U;ZU^`ZuVf{r^l2!j^_vv&d@Co;IPJ@D zIZ$uAq`~&^Wg3s9%1WstN?cOuc&9nLL>bQslAHnfJ<@N_IPh(E2iuUJb;HBa%#wUZ zMdr=f`#q(A6GtLCySpuo-x)~QWbq6A=(skC2*dNiPVwB2AvfY=baj`FJ?R*001G7} z7?#aN=JV7v=WBoiK7+#VwBu6`rQ0p)2kN$x)yTOVs&5BE1}*e;H=URMrww()aZ@-x z-DC?^$C&%EQPwTKOzzFQ<3xTVD9x$*4RyTtB?Db&x|yZX8Q(H4Bg8!7=rcjEB&!)F z+2t}1g|G+};y>FgH#~x3_6II?8Xp_TH`O(Yils;D75$;*NPJqGUEU=cZ^%$jDuuc* zN9QW@;nBL+aMwoG+cjfBLy*!lJ1MSMSe{NI&|~P=8jq?KCmBWv?w9lh11~VL?bAw= zu?%6|?_GI!@iCl*O*Nj_$Rs&_lRuqv(-QLOx)HIt7b0{Hr+9u&(3CsX{<3&R zZHOgSW!$@ka%)6Hn!au67F2-?lDY81LRE-AnL9IA64Jn+>Um1+gz~_Yeg?7Ft7I)Z z4TjO&e?9-i!Sg8fiWJ(ZyNr)5Ki2c?)Pe&Xx8%iZNH5+=Qa0NXt#-6)9(fmNj$7A? zrXE+jJu4mP*MJAft(_gI<}B~y)sI1$=x1Ri6_?n6?R6QOSzsF3{)gY+!g%Dl-n-v1 zj2W5dVLk@T3`~SA;m^*U{*?~hHc?F&_QVfR3^=IP$a`xY6rICK@Az9M@qs)GBRjUe z{7)!zj7!>&t*}RhRy3AWv(klbgC55<&NQNZbz1m2&r$~qIR}nVW0iua#V_!o6Dc*j z4yMB}Jk9?Kw`f}8$O@CtVw=_SM#x156B!(x5=*iJC`;LJd5q{yqM=I7MyR93JJ%qr zjX4(^Tik-Ld#3i-o2i&^8i3{DWz{-IJ3|ExqRtJ@kr3b;@Ly?JK~jC%rX-aORb>-b zP0+#4U4vak^wsigG~%S+-@U8Iy2syd;D&9TQU$4n4c@jHNUUOh(FQ7Pgjl6vTuRfd zJNCn`;uCE`l)_$-W3}Y8c@TNar4+`o-nj>?e1JlLY^Doe=T6C0M@cKWd~uH?h3cXI zPjI@Wt?kU7LJAb3)@(UPm;m0g5of=9ipqWB%fV;}&wL4+ z$+lBAt*IwKE zF=!P6S(w%of%4=jMa<-=zjq}sW8kU4Tf}x(q183~l#2 zpPf{gvuO|Ok>T-CdY(e4ZhtGz%Vmmq?l+b{J~M7RO1;+w5*W09#r7?F;Fl9(7`&)X zn<%V@hqXb-SO>l7rfYP#K62klC2%d}x;9}I+AClRTGrJ`i;`$pBRpBh7$LT<*AcX&CoK}k?LN+us z{q~Ylyohw(`jsV$prr|WAHHM&G&0)n=mjtF`7ciKcTm%;nddL(g)=)=lMypR)0}Hbh3a3~8uMVS&*2 zphQ?!vw@3#{+uJ-r%UyiQ)nqxqQSlf$G!HRv_gXHoiO(rw<^uUkOw-5`Becj<=@M; z@0DMRcxojiX^c(X^>YJL>i`~>KZUO-Qn83(TiueHdV!9XkjUX)#>yZ^?|26?@TRJwyf=RaKo9pcpxn1I(8_>i==aRh-DKR(ffS`u7t+v)Jns__B4_plil+<8?7Ip@hVNy9!Wubo2O&QTV+{o;Y!(1gfEBN=qQIP4czjkfIPRo|T6ql=**_xR=!9RP7zA+ng)ttV(&=k5MGq z@JVJ(Agcy`@NgffC}9Izb&n9`Mmpw|Eya6qMxgGrnB0nZ$i@p8u`y+c{{#B@-iM6*pmPR zrM=1KQVsKCCaZnhHq1vlImkKBEc~Op)q1KDl>a8K!T)8K)00jO*-U-$z5{nthkH%`t%w;6s_v&_t^smYRH_||0tCYXP@#i z7sqht#ay7@j5``Wn%0dPoxs)NiPC`gn)){)K{qs^V*5QtR$y#TKt@OSDaqg3ytpwS z8mGoCyWBBs+k_EtnX-%?Ebb|2`r=9y$u92k9!fG|7@>GZHkD}ZU;Jfkade40q5;Xq zpZ+*N99=vGXg#01PyyiG7!lw^?wUJBIyp_#<+nQ(x*t33^D6+W9Q$ZAeq<)cjZlZY zvAIKFv55IufK<7J3vmpx}zw7|G-=2>ng3x~8Azr8HE*(L1su|D*Ovn+e_q(}<-< zC!>WMK{Fpv4~0x5Kj}mjO|>x{3AL&7>8^uz@N@hR0HZv@HOmw?YrmPOuXyM;tnDNN z4%jE5fX!$m6RE=;R46CUomm>`x^FydT`5(PC8p1-6G~Vyzq_M!A7n-SPb?{!xe&I15rfT7g9h@*aMB7z9TC;jYJglRskBWP` z-suKXjxiB8+e_;L+b02w1%-VLpF|}loBmcz)(G~CNOWI*ov`JnDK-tp(MnR9BW5gD zB^haqz&=VJ*`f9YcU>n2h$LF?<3&C5Wh*43J6P=bj)Wq6eQ`UG4jp;4zd4&T@tCtB1!55B;NOl5o!^Tm%tF1hI#HegWPzlS4W(S4+ceYUPYm`#uDx$d z!R+%9EbO;Kg}P77QJjNSBE-AU`F)%+*}0s8hWl4WaSw!=M9dH#;MU!-#kNJ>W`k72Aya4MT1K^)0Xb4n`e8Qua=Ffh>2<7Tlt$SbMdt*Ugf?=(0Zys2 zEoc0TxO4^87fzh-v>O~PxEN?$y;4$jpjPF*D&kszEon99vxti@zXHS>CYI9#>eK!O z{lc~68}t!`Jdk7l(JliJsy*A4y5u53P5;kcsC6cMVMBB85)a>8f#R(fF zqh|p1G}xBQF9pTmI6xd-r0|?7VMiJ=Ib*=d#s#{NLBQ)*r36xoi66o+BqMPCXWYcYvpZI z4B=+2<;ogPS~R><@)~eBB8)h;Lm?S536>1H%K*#@9b&T!|75B<4$yV+fwRy^=+Q{d zyYHF|Z0xZtD(5S|AWx~_L^A$?Pa@NZJGAK#MFu!gO^rG=qEZobo5$V#^L z3jnpp!3(lNi4CJzVgcXNHvncBJDbnf`H!*PQS|wxsQB-96b@vp8vzI^{>q9rrC*Gn z*b7VgX>+RlmOHY4viRN6R(Ps;U~~%>08V3IS;x5C+-oAe%t<&6N*W4JMUnu`3vi$X zUH|_rUQWqN%uLT~-_--mUt5Xa^)I~(L`s(qE55TKWFYA_7W7RyNHEmSx3X{sCvye$ z7JQsok*bhsb5Q}xI*gO<^Z@uaN6^da1hNT#1g!7~puGlRx6wAi@A@x7fJz(24ffQX z95~%eKo49Zr_9a?hXy;H*(7o7F%}dOJ7hXrzY1NXwqQvNx9ovskhhH7xK!CLQ{HSa z)J}a7T{4AM=flNkJ1uP)Y)ZKaJ;JybH`e0i(8Y0lphf%Ydu6ap@U0!haksq#JPRg- zS5UJR5*h-Zb;Zf{6|2dV`Kg1V3u+OHQ5-0k9s6}-M+{BTig+tE@AD++fJ1r~GusXX z(a3aeqYWLD$Fo`d!QH0b#yqOIO-R|8>PpABG0BLqnM3C;PjO+0ayYE2htgS@dX*P=Wv7Nk5(u_x)2%rV%GE zVO4t$r~fOQ*w_M6Dh-d_#$f*Kb#{?5v0sErb+u&=QeozpN|J?}L^^vdOb3r13*AL5 zfB{Z|A2T*}$U}KhS`N)|LBR42^g;+SQK1xrxwmr28NnGD5W)VdT~G~?r91olfkVZx zizy$#2S2Fz5-HIaCT7b|T1gqcl^o zs!+wB><^7{dfr6llFx7F>V!Tt<^EBR%EpB@`*J zpJ-Rt(){rrK-QN$hTGOWaA0xD*B*ha zC*JEe{2ghqAbG)gXKfL$2ZenrlvGjNC=ADZG-Y zkE>VQqK85zcNvXU(@)bN9~N{lsFep8BYbc_dc6~|fj=bmV?zINj`TZKkBuMAV3ou^ zBN)A-ngx^gUhaLa?fl^zL-&}@GOe8;-B&_t(d{y4P4Mi+ymew(V%?Y(fhY*13&60; z;quxmUOJl7n`-EhN7*DjiX%3tVJc$?ExfkcGSc~m3M_4p+ge4qu$MMwEZRynIhl0fs(SV3SI7Jok_m`9%BlpUUL>^8` zBcC{B)1z4ji5lH&YHfpq53TzvTQlMH|8xA19@$>m`(`r3)(mv_VNi?=#HEjj+O{lgx%@v2{q!22N80C zPei`hzS!n2l%T9oG<~=!q$%EWFzvF&BM-Qngoq(OIC@K3hGjBkvZ}S2cd{)Bj7B$f zxvKY=zjr}bv?GXH_h?(u_>GX9lIe3Pi@cOfb>Fzjo7nzAXE_OrKXPI0G34$=^Pn() zy%H~^p8_mf^(%Ts{}KPR^CT!tiMAk^NPq~Z%#BlSv}}n$33*WoJEDK9RBG0Oyd?j1 ztETYLO$g!u7ub&26+gB(Od9NNt#jyJv$xp;AwwMOqwf?~R(UfV7d_%7$quP=UldH; zH;zNyp1{xyUY%yZE;lfsh_)bWb-b9%hK1Aksg!_G@8L+snsvxBsPXGdcQm9%Rv#4# zs8}gkZB;!LW2R6ZyrG_@Y{v3+eI70x9&Cr!Do=%}9w zMZlKz_YKl}#TXQOx`H=BlD!eh23%IB)GL9r72e8xu}Y}`6=loSjB2H|W`lc#Q8ue} zg{m#6*esL4f{=O>A7_UF?Yvu}Orwi}H&f?f&;R#!6gNpQ2k}o=PqwSbyV>S>SfjZz zz2}bBkyE4OsoVPHdRUGB#n>GRsPL)-toVjanpJ`^L`NsR*LKp426YxlUxS)?#5|p< z#t$H4;7tTylab|fdTZ?lnD50nCgNPf&SsN5!*tz})E1~_M_VTpIm%ut$52p10CPO# zoNog`%?Pe~cnJgm4ul0h&zydRDqoC?7S~ZF(R4cit%hJ_!9?$Sjbcx zq_);KxQXJjT^Y949b9k)yr5F3N1l$7{K*shXA`T=_hMY@aJ_z11R_QrhA2}0u+rOz z;~2}QBq+;EEY7;|nHh&I(4SMzUQL}gTibuJcWy$)%7;C{jUGT5A@3v5Yj;fTqxas6 znE;yjN&&sm_~=`Ype9G5fg?Vhm1p7SPmAzLZ!^VM#%*dI-ycMiLb76NOhf0Q-b|l1zDBbUIh`x+BEmA! zEJY@sVHYR>6Wz>{t?&Aa)`hM;mm@cTe)hPK{Hz`@riVX`3w~zuhBum(N z<>j4%h&>VNG~>D7b@1v;&JB(+pJDK%BGzX)|DU(Y0oDkwR6av+06Y#9RYSu4H6>6K z0lX-WOc+ox(TZpe7;4sip%M$UBIc4u_B3nSM%mx?dy1W-w2yu{!f+8(71L0F21RWK zWWBpnnWc%}hGa!s0c1>}ekcd`vbj8GD#*OzlgjPQ*W^J|egVX7--U9Wn?nCdX6?Ib zE=t}Tr*2#495EV&(wyztKjr06&VVHg)Ma>KV%DbKJuodjD}QCE{#c-NF!j3*f$=Kn zUecOaGqR{V#&M+(18x|Qz%}6ENq1kq7C!Qv>w9{hkp{77FEpzq20)2p*1EQfN6pCF z@zWD1a&#*-rOM&M)>Km&k0OqSA;K^M5G?hrU(%ZiMmsvIP}kMpDZFrq#tXk?TsZqn zfo-vE@DEGx|4NfKZPn(+*da2a`d_32)_M}b=oxGlIco#PGAf6jTZJC}Lq!rlTfIAR5VMR}~hxdyjtyf>4seU9jt>8-1qbNu&QZ@>6 z+ag^(n}OxgnF9?YR7jArXmr2~Za(J4mu>bq^*3ai8KR>G3rLK?yWbS*lgeL6OTHaN6XU1JzIt$`kB~3X_Hk9|p>HA=E1{CeQKc9sN%Zr}Tg8t@qaR(!*i zy%FoVOq~hqoDO(5;A>C+4FcT^ZzPIOWvu`FjL@20@5%%UiUByU!R(}jdwrxD%s{@WfCPlPnK`4jJ3rNs$CGS-_oHSkA$$vz6E)~vJlq>GxUn@6d6=Z-=l8E4XEV|9+0 zgXtRU+)?6N$SBNXdx+q(by$Ncw&qBsE9|2}N08zI`8~!m>dQeiakdfXSAqtt47^-n zx3|z(8y0$tFzH(Kmu^IOPt_V4FH+M347cCDCyK@rgz;5S5$_0(SdP+VvZq+AzLRVT!QHjy1h*(zM0NzUZg^)k%b2gaZ<4jjxW^9CWl}cHfzE`_tmyuQbb0|T0P67P>+bSJZAH)@!p3(T zFYQzbj(?&gfSynNOpi+29nIR7JUnZ{tQZ`>OrqFuJ5c41MU4=KnWA_qymFr|Ua_ip z%HS25PZSVFZY}Tm+Pu;Wtbav2j5!!t*$(@u{7X)BZS{|;JWD%9f?yTT8q?YNxMD*P z&GOm~hOScfW+r7MrLp>0m4wgGG)LN%ry za+ls;Qvequrji36;NU()bkGWz$Oz^whn-SgcrWjkPj3nl>SO8Lo zu3ixkK7@!qBGAnUyL?NY zK-z3SPfX7ON}a}c*1YVOr#1>m$Bkbi@mWmleKj3tVyr<0q}sIXFfxS=$5o~WkQC!R z$A~Tt3PZ}DhHLQnI+jhxr4`;mU2O*%I-#tY!Y`us@4_ljFDiK}D4gl?fK$E@4+%R% zTAH*QR|{E0yX|i8-b_oucXzxW!gpG4!CGx8Y|40q3?H&o3^0nnG|y%n+@}237dL36 zv@3qG8(>;1?i+(9Mx`Ig@2A1@>R1T|hP}DQ49B~2JTHZ7YAZfATgF4}V-?~DX!{}g zP4A|=Lt^|0@IkBxl|Z)Y&EvEGF_=YxV^k!}@KU}r88U|hw-u-?o|I_kEm{tl@fMvgW*1Wdj#pR%Z1hXcteNE&%?90giu@7tUg? zi@2g)$GZc^(RTu^KKz*R13NZ2Ru5ACj1%iSI|PVQLr@Eoxd|TUsR(FU5>{B|E?&Cn z+0{`c2X5otLKa+LX#SajW5yK&uhiKo`*X=;kIag4Rx25*L z^*nqj8*|CM8#V3g(C-!YxLF?cGHPP|>_gn`uw{^7SAz@KmOGBf{hdit2t#9_WFLU1 zOcGU{ct1llvr1B8X*a(NwGUSl?Z2dmHETsTCKY2&L_D}RQ3CL-&EB2!S(3GmvN82j zktzd}fd=ZSuRO5Npwk=JExca?X~N&ZbpOOg>0{KMgZKC6nhfi1=REJX9|bg$&i zAqOSE{U99DfjB$$`2|1BQVghe2;aDc`MueP=Yzb$*vB-K>evP#wA^g>k|#HIrl2jZ zi9@126vUwi>$F!wU%ZJ#a`p|54hr7<7xy^N=)R^k`bU-YOo_BUqT=N5f^b0ZgYC48 zT2*_Z*0QGttJ;#}G65jXv`6s6TcI}htWQWcCNW!wL83xQE%ESvccioaV+~EL*#bxOF9rPRDi~s9IK#`hz}oZ~x& zUP5CpDV=9sO>N2|BGdZU^NT5Fl-i%UOffjC>yl3(C~8pwW=B#nWvBV8u;JGL*DaMk zj2ziOv`BNH++v%V?6Rrr>ke9~h2utsg9)TXNWy)FyXH8m3Kf1~R;jTp@Z?o$BNcYF<8QEMJxiuO#DoIK5iO^3wz zyS}M^e!%7s#!V^CxXZo{YGJPF@^~*Dmc4|A>ZC2!&Q2| z{A+ZMFTXd}6$aod1Xr1M^jS0L4fJ8}V?5E^%3KgWnGTUNq&9}XVk*ycuLAm$+>4w% zuM`Egt*3U)yVupt>9ONq`*k5fO}X;1mQK zdBK?YmInPhg1B^?GE5l?y3N8|;@nLAquIsR{IW#|nNCxV`V}1jM1_QTPx5rrT>fRU zx!1%XXf>pG@^^1(&9$@_Fl~{S*bnwCH6iXORHZMjR&6TG;FrUO3#tM149fect|vGA zO8D?z7C5~JZImSYznaUgtEu;39eo7!Jn#~{~+G3<`=V`$nHo@DhwT9Y88st|bTr}YU)R9S@kg>46IvAeu5`RxWhVGyPhxr}aaewoZ}2B?XA!1yulHpn>-1%V z1#TNF;fUO^9@Ca}o3Cl`Y<8cnon;nApAB&v4p)heZu%+9Y+%h6- zpr_{*6x~wD(AP@F>Mv$4`GCeA%q`t?6ZvytxDAz$%mv^@@>|AS-1VN{m{uO#1sK3z zkc%X~VijXaOy3sCR$@sYZo<{dh)+Ufe0r3~scH`rdOF+e>1w}V>QyPwJ3&uU0DLlR zXNc=9!GHWZcP{ulM8`*Ky(4LJJMq#uptfh-?BkCfa(nOTh7ol z19nw8$LHZ#6Qo~OM9tdf6H(yW0G5zc$w#A^HFj}LADEB`5W~H2 z*w)Crt@|-4=)ln%Nb-=(kV@kgdb0191~HszBZ5Zti69YLW0#V)K+3{C%+E!Wjz9rP zSR9E4FhXHMIIGnhz%nu7tEy3{?IdAfBg`B@(hxE~30?;F~c1Ih*=cX=$ivsCsO~9)ud~i$2j$jVKP1l|esCCt{yH4k@*Q zEW<76_(h}BZ8_&<`v+s;Z8uxnISW* z!daS-r4af1Mz}K(dFVUx<^qqYF6j!?{r&7{T&IPXi6zU=1%W#o@1o5s4w-?RWF&!Q zzS&B#K2zJba+v_=Yz3&Hq5YoS-Z^);iOKlwKC`5BU?zIULuHz`){6(zP*2KkGT`fy zA_k7akWu&b9;!VBS%*opudQFyQZPN?SF>y5O0X+on#)NujFRRJn zfpRvZC==%?8aNN*;XsC(%gkPEKcfTH=9ug6Vl+@{3e8Bw}t zz&RarP2#DK+i%j?ne|$tLaJk>B+$Dy>9UdkW={zgPP1Sn9saxpwsFGvx|E7vN8R&x zk*ogy2$IBxk9;OFaE>b<1_6aE()$RvC`|+A21Jri4Fjm|;a`Ay8xz!fnBO&J8-(1# zelT!`+%@nRg?r3rDAJx5ZoRak2M$%p+Q}Y-ZDE=Taet-h3jhtHMyoaI$tkNNpHIl8 zM&|#!UW-~Alj1kfpN|qMn*$f`g>CI47T?0tQ+8uYJ`Q?MvA})K85ZhZ{~rr#Pnd!Q zVvlrlFcenp+%vL6-5?~?)vExL>$N_=fR6G_lSne769r3LdTc2QH!z)nZtbxt$01K= zroTpzNsJPg90Nb-neZy_fIoWSBwyD*`mpflk^k8)fdB8lL|#dRm+&uDhkBzBw24qS z<*hAvGxi2vnlDSXG&EW%b9nIm%PbWru@wX{`~+HV5EC9b`OB~R&N_m8b3K6(*_(UX zn_B$P#3g$vZ;iPm{X>lB_zziT)!rCVfv}31_IsRDPi~=hCRJuL{C-HBU?&rwhw5<4 zdwiaRr@3P~DAWn)Ast zovrTMe~$5WG!Ahg@F9cjyGE-2*_IMc#*95n|D`r{wGTG-^PV*5+fUMVCK*jQ9#;5by%&E*6TJYkk?qoq!=&QIBYwsibcqAX7dltkvWUJG!b2dm^+ja1-rd0eP+d?Op+Vl;wan@7K(_o#8&SZ;(Oge`poD-G^2`VAYwmGz?|Bqa-p(B+{x7Ld}J_CX2p# z3e6)dxL0`)ibwv`H)Zc>8jcMtRBaF@cfvGc$%H;bqmjav?X^gX#PbKFocy>=0z|cd zayYo+0X+c@6^bHSOdlP=eL@(t5avWG`m*>f!gCxL$foPVcMbD~JE)35kX*yhZj9LX z1jZMc*Q|6^YJe3N z4VJ9hrdogO1PXp?JcZ_EzFypxQV+JmL*&&Ajd zDOIp;LiW^u9?c69ymUDO(QNE0f=BQA2~cdq)D%&2*f8au4D-yymsb6NzQ(TCx}jK< zk$@E@tZgpb7;TmEPv`V;PF9C$ zjV@>ckUFJ4{2$F1(PmQm9mk$|`0tOO>R+L_YITJC3O9hJG>z3(% zBoy*vq62*Y-?p~>;IN#%lUCTith@6}f4qQ+#4v|}D|M~rYMtuq^(9HSYd_I(??nhYSOCfi8UVqW_*Di5xQNBG(%Pn1xdenfzEm7+w06+myj_;C zONDV)$4;DwsHXZ_GrSpz6BUUZK`cE}qjM~4oY(l~{61h;Q225|Obr~pKofhbI-I>@ zlPJ)VwOO`p+qP}nwr!lUZJn}h+c;(0wmH=?-Jjl>+Y__@!-`y)`^j8$)kg8=c(}UV ze@_r@uzv5LD04^bel)3c{m@w7XPWCr&92WH6GxIi_7nYC$|UYZ2ZO$elNhW77jQ{_ z*}Q1p4P3O&SyhTzZsmsnq=0 z>+aJDc8NzySwS2d8w(`QPG9tSv9b*Tx?Lh@FGTgtWmk8QehHs7_{a_YX11h;6Ee2< zxqK?M(kM~VtYA-n)rT@5D;*UJcS-o5x9=nRCpE8P>bHLg^P^Ge`mmi{|3GV&oOgc7 zI2VCW(HDnk<<&fh*9J#-K3NTo-H$g=0cygeUnMelT*P7i$(95VpG5I6NU5u7S+$CW z5y&sH@8=xKQ;5%gmO~Z8Y**s&1kGbwUQX!fyjI|=Etvh9M@_Zb2=ub-H2xQ^WU(yD zjg12`hXZO7^j2QGF6cK+pTm#DuVKhlXIZF|9~DKKElo-_5vkXeB>=Fi4dbXwWsBnE zQ~`mN+(i(EWCFEW*y4m;@EzQ zT!zG%APs~1?Ply@k%CC7Jp6?7!@xG3c~luZA2>=go6JX*)Lc>l2C!FqkMvTk>3s$kl121*Q@64sQlIV+1 z)a1)xoFNjXC=(TZg1+F=_<0RR5m4CHT1Jl3Vf)XGkIwe#jfBq2#ZufpBoMW))&?0RdG>x&Na+A6EWXdoAgFq}_=T5Rt0MD8GR}3{kE!JST}f zKBRr%C%wJ$$!_{t=#x7yC=0{kO}R+Th=A>&Kyh_HlHrFgq8TjLJKDEV{~fg?qIU| zv$BYTm|bYE`@WX-Ji48ty*;v9WFHqCek0x3$1|P1aTqf0F(Dx&)xg6im+r*B8T*mZ{fOpeC5haA}3Owi(ya|O7 zq|vkfVu3GDCMW_1V~by9CLy)jPN$(Ug$=*ojpTAUm*z$1VY%{J-ECB{_#|a5nX#`H zXu$XW<>{E*{4USGoNh&fcLjN(nO#(8Jq^h;3av22j9eXA8J&>^p z-1g3u7yeF zUPaFJV2r0o0JTvnYwEUBGcI+30()$MsX%y6hYwVZvb#7+9$%`&k257!vkVbc^h!== z!T(?^ixKt~`iz1N#1-T*F7tz`)S*bLxr_2k{$Ik@-<;%I zLV#C2000~y7ixzAm;gq>FtNDiw(P?ypv{p&jB~v)iTwU%=7_h544^b?mJ9u~JgF$6 z*E8zIB}<_HHCh??_x)xmdl3GIEM+vI|ISi&Lf`>-cVjLGB1~Ppf`}G{vc##+3X}Xr)1Wc5gWxdMlMsL{DfF}u5xS&HFRtF+o0Np2$e`S` zTG7$~CBr9UUnSaQ4KQmuc&y>A*h-spueMYgVb8u{ z(zH)xL6W1YbECO3b{RWY$~58rE*f{%-M_&KZ>X{-UAbAJX$$@%OY*`3P1Y7?*ILP6KOZG&83G^k89e*#!^>VX!!MR06S8^xPB zG%-p_!Wl*Ao0K-g9uYHDZ_yrqz+5aDh+mM1Wl)0E8}RxTI10}-Gc~6J3MV}hCUu*)DG7Zsh}>mt009x?K+R>i`2Fq^;OOFqnExVSm~x>9 zK(B*JaK}higFuS!D!PtTSh4<{M$Qb>m{VNpffjjxA+Vh~s2r8kNDKg~;)clo$#Ue9 z$X=Avp6exOO*90i^B|Z7*@h71I|0{KVU#HT&ycb?B-=F%B4^ zd6wFB2+@{gsD5$V+p}?_|KWKXT+6e^dJv*M$~3wB6ze-z(0Hs@s-U}v_qggBbQuK2 zvYDT~R(Q2ah^?oRv<}Qyee>iv$(T*Z&UjTMLrHfO9A2$El=%05vL+;WM^Fm0GmPTBwn{wp&1vl&s9(DThQ(Q-Al*cfr(8n|@g~f0(7{OdyQAyL$Ef zFfZ?(hnOKVd_2%?A{prt1-WoSp=2dzUd#iTd2Ca@P=)Ko3@c06#!HVnhri00cv3@{ zvDAD#`1T4>mr?>W>2r%~@6c-R<%i=M!vxtj0=j5<;UGGUO3<1iMT}i2_tK6i1Sva)a!XL@DOOq_aN31jb6N`xkHV zeSRAP)jDGq-pQEB>tYE1x?WwCv-z?}g}rd;WH8i2s+s14|2|LdH4uX3Mt9T2F-x+s zIH%qxzzaJ&+DcQ4pMX$N224+^8|c2Yaq`K_Hm+C|Q413Tdip-l!<+PcOWCNs#WHo{rsz7rZT8#&G_xV%qn z3;sgAmb)q(i~!n5$H|zeP)gZjv3O|RM(u+Aq4yulSUQz}32;JqZ`W^cP8`+5xO-Rk z%0o2V(lnz;scJrwD$z$Qlv#w{BHwRM6jRmnW&=CF-8)F9?!>{vC=8uhDEML-nZFdA zFDKa;MuVh&FUoGmrMddC$C`RJaYzw(f z)gId(eB4$y-m&fXgRWz$smRAgVG~d~^cJTxdrSrC5A>SXIZ#_5Xw{{}*_V-dgi6T0 zqo*Maw#w!q4<{J?v|V07zTt8LLbvOz;F;lwxACz>D$|AmHVU%Iuh)(W{W@ueX5-Ju z?Az_`2!ds(jN}%&3EhJxTMxD6|9PI~M=U+R_%h?nW0qjK+J(yk&S~d(JzJG2_$Nu0 z@RBgBVs4gs@H52%5CGDL{!9*EHQK1s8ma1@b+t;!qO?`*HyWu(AAakri8@N~qa63N zWL;h~EuCDtC6dc1k}n_6+H|x4ERxV{kS1Qq`<*y%{IVTn>EM-`+04FHBR<$sSaw$d z&nmB{A8$jIEErzZA^D+C$y+bP>mYISx%}xHd}yGwVKkpKAl~+$(F&U6+9$(VZHWzo0qXpt~uz zb@5a+R=oLa<*xg@wxCe>>!O^_#&2+dXJT?n`Kafm*L{-#wOm~zh&tfp91!GHaZZ3h zpDptVhqw+a=txAR0KQU2PqZiKkoWj^9X@MM9`&kmQ1j9ZX9%gGCpQeg@^5dOIo6+= z`@Bkycky)Eo}A<^q*c0VZG)a=w@?(-DYWQxm)-X}GudRWcCQ-Bf}dl&Yf%v1{T)|e zy8b57TZ$kR1<589x}=rq#l!~8O$iBn6Jb{isx)M5VqT44P7@J%<0GAEN($kbdl%e3 z+O{Sv#D;oR{3KeX{(gKKV>0rtmyqd{SZ=l%z%ti-1M2o@O?Het5E??T2AIQl^DF@Lew?R!wgrX~(g@cup zLUDnU=qBh^0<#$oB|2-@AaqB3$Mky;TZpLpJXayMG6QMMG)E?wuBfj#7*H#Er&xx8 zM;mou$-sPcVAv4qB7E#5rXV+u$?XQ!D)%0xT1FN7B5{87n8rGqsn#5(ph79wMO!SP z_%vF(2GPeMKxPS?uqKD2u#m*zIFRbsa<=6wcQHF7b+`7R=snd;Y^d~;9sCnRSU?wz zoE(mD4X}b~BuP6?o#?~kYU3ZCgsv@`85+^T)W!q6eP4#Cqu9@?15PkVLum*=Ue;07 zpzwmQ^zv`8;lc9GsxTY(0ecSyz`;ie3%{VS=bGQ@2MVF>7;2qD4s>I1+-IE+0}m(` z`;K=IyA4_&zWH&SGQ4H_ORg@#J=we-aPdm(Vop3+50U5?_y%&{O=1}`20Pu0R|6RMCyNhjM&OfMp>f>W^P9=q?*a#gki zdbH8HH0RUte)u$w9YesO zRK?M&1QbfkKp_-=eR8EIt`O+<6>MXmv76_=2u5M{3*4=BIFSf6yt&e|842`e!+FgQ z@nf%k*DP7)Fb$hI>AH_=3B&9oPkW~IAMuYw@B!#2rwU)t>ckHU&sJbbpY_CUE>*+h z>PZY`F8Ew(HXMHr78auB_#C3%Mar#lJ1JjUyl}t6!=V8iXCuwFtNf-s%092+h#B~M zc-9$O0Rgj74^w!3q6XR$1*XQNSfd|XWu@ud1EFU&oOs8@W#lDl$Dz46u{Seif80~h z^5?k8AVd{wL1IQrv->&8TQr_~l9)z@EZXiocV2SITbZW=1>MUQ0-4rjQxJV6t_iQZS}o$?SDCZyWBv6In3d&<(YZO9`2o6H_T^NkV~%37o3 zREhT|rcHtZq&N=ud0C#9aU`Q41FB_**0=e8MKUZIus$ z6g|C)vZ208{Mf@_7NknS37&|yxII!t^GW}2vT;LT~lA|xRa zc)|C>k>FpglD#fDuwrqOkIRa(nQL)YI8O?9J^tiAxHjpV$DPrxNA{k=$ZexHF{55p zzT$*}1!^co_uZoHZXhwSJRO&Zz*>+zQpS`vh7~ER30`JsKxIl5zt)7Z?q|o9ZDP<= zyJ}UfkXp82c5|@rXe=dMR97I+D(WbiW!2^iM`)FUcqi-PIQob_|pG{-h z%w??`??`o-*9blwAPN)rVlyHrsNfxabV=S@Ysd~FQ3E{?o?kHyZ&A>h1d z9q?k{Ie{lCRG#~WV*1z|g?er)5xne{=5m$O4IqB~jy`Ae%glJ>^g(Lf`E|!t6wN)@ z;E~4a#KsYv9p@N=ui-qYTGLsQ-l@{=9c)aXQoQ?lV7=7Y)VT3tefjX%?k|Und8b>U zHBOsS$ou0?#uIEjSmyZGI#?%EwBs>Pb{NQ}^mD;${W+usj~@w;X#i{=Sb{~e330J2 zZppJ%y*QF)-}1_ndR@i&X(^aG1ar_A<_~3alX}v6Lf;G1(bz#(7V9?^a#M{R6HJqE z*o?0xXb+nJWGfaMhySp8o^3BU54@c7c$gvxcQ);CI}#Ytk{((5T7=V87HmXv0dN5O zlgyR$Ys6M14(TOqtKDR1!rF%q^LL>4R8561XDy2h`f>-Ssh-qQ-iczBT9P*O^nK z#*)AQ+&n8^D70dNl|9A9;LE%pDTfmsT42`oJN3mciAZhuCea^{7sU7h%A#;s%J2v7 z5UmDxyOAm}pCWw|_Znf>Oy#UFye3)iPV5TWf}9~X5hJN>LeR}0tEtj-_67m2i*vHQ zCh9M%)tNXrG5u$-fJ6EK7WKp-5I%#VD8OkRyjm1~m*1B4z3DM-i|pejq^72XaNo=Q zkyDH|C)0)*4G8!HL&(L+hOoX-M#(u9kjGV3U@$pKS~>Ip?INN0CX8EPl?Yv?ztDGv zU?o4DX9I}!u%FXNtdf7{??mGkq*N1NX34e=?yeuJQIp+H^@lupJSgT;&d%aF$;QfS zvwr4if#sHk1GERw9-_2M9aNsA+epg5ERR-bnWZXH8InQqNe06iyU{kos&uzsKb2ia zO6~6#QvN!i{uk>|-m0`_$kLY#mfnZv$u;Wg^0byM%k!QazNy`~^*j~g`-LIXx6g1Mi)E>Tf~iW< zOT+!Y+QJPOZM@g3#=>+N89*oBOVqd0WK}sFWaULd?5}Bi1PPD6EK9F?q7oa;mL~>C z}9mDmkBsGxXMB#hBodL+oz^u)9Dl@9r95wy? znt&hx1mlO=G^Dqk+LaRsU92oLhumvv$4cnnL>k2>)-F>NLWfb!(6g-0$?Lp53|KDS z`HWNHZ5+X$zm`=NIP-268)wbXCVYCsRVFUj3@H99 zezJjlnEkhF)XM35$?QdXYF^@R>u92sN$RW)bnl81l2gk#!d6sEZuG1)>g@UInm|7T zo`1f2>^p&!*g5)oBqzge{SERlY}82dW!?t=V@7utS#tRfb_%`> z3cTq=Fn?!mg;;Ys9hfnK8Y&!L2zubWn-@iDN36?2)C&qG z6=TXUOdC=hj=^yopw3(bhicVh#nJ^;CuBHZ8iyd!#k_7TNKHP`e9Z=2TOJ3n5pHLW zjketV3Q4^Av?@T0E%#6KR>nh=0|~?GZ(7K}$F1!!^Y<{+b0DUB&Moel_hGeFJ-3`t zNCvqUw1p&trRZkh$oFCJh)AhKSMX@83fp{I5J3c?m|55oKBiG-k}ao%<*~VlxAn1YFAk{V+w#=A2*ZR2&stjPAxHb$oOm(95MLhw*HTACJ< zIu2+)n-nln1}>$pvrj}k&*R_u-T#SCJo{v=QnlZv(W3gSEBg2A4aRQMJVq0OeZ290 z5gtI1Tpt4WRZ`Xzz&IJpo&Buo2VgS-2o8+7|N0CmB*w9{TQXP05{{zKET{H#xa3Z0cSPuaLXuHq^Lm2Jk=u0O*9r z4uJzjQdwHgUaR_PSPsFI*^ff&B&P}F7*XkcX>aM7HI4dY&h0OA+#i=3b1E(L$O9Xo z;pa>V5LL$L?RZsTfIt0rF)FdKk295xk2_G>9N&ekay9BNKac4j-XLYf0DJCZ9FY6L z!tFmkZgzh)Ezb7daRyPqYleg+M-yM3g{aS&oiuO5qYD}>sftnH>~1;kkAGmil9fiL z!9S#CHuc6_o~T@&K9_)YWTm=eHTF4QnjRmEw%v-^`E|z}nwWK#xAeiMWBqAgycC~P z*|z7VM}w=$Lu=?3UeE{cFqX#!xA#hmvd=-(lu3O=R_(fN;bele@`HguqeceeAQ4Zc z!!J2x65Be#^J0B(d)xDQ_F8mw{1<598*Tq!-D|AksPLxILw5}>w4grGF)+CX;ejn5 zKT`dRmN_`$r2j`z_>!T(gq=V&S@#KMAougt^O!*YGl;CSbJ?yK6YYE*Wj6{+xPPi~ z2#Qp@75^u#b&NTqAz3Y#V)vrcWOgngedmo2`_nj?snqp_Di;KWozr~TRn$YZgXu{f z9=%XJBTQ=(7Pg(8U^+2`JC<4?SdDiEB@vZ=zQqPYcR@^Z-ov&szv9@W0rC zYjyWWMUxt1PfBC~Hiz8(+uMe*K2!K*V)G#GH^QO|Tm>sG_{cP;_FmoExfb;ll)-Okb1#29z!64U z@qS+?y{3&0G7hQH+Gekk=^?pkXBWM0ttg;*kXD-#4ta%DXKhWaEcL?|xgjS!f3jgM zuj-RH)*gP9x6AGHJ#O@JhBS{5ckZncSF?)Q5}f-m?|+t@O&sI4(a)ZPQ!b2g_qiM1fP)2H%tsB>i?*fZlz7aO~B66^7Z(hX1^lWo|j?lxT$m zdrDrjm6Pd$wQNZy9|B_BF#Z~iJ_TUGlLf%GpL>Y43pw7%ZI90g3iN$+X!L2xNrCo&*lu`qmvak$OxNA8o%d2%b#lJ5T1cf+MR9^#~*39Jb4@>l|K;Z_GXbS~VQ^aDVp){*LT6KyQr2R+8b@AfX z!p&MCUbypa64bdX;~T(p#nfzbGzErnV~-TPpZ8q$PqPhKmpjbp-x6uWxu%7jf4((po9uB!1=OT>g%)yK$z;=wA1%D9 zj~+nGNrQ!s{PL?%OP)w;nw28_1?B5~B&iHz9d#3)oOzn#0<(%&Yd&S-wrS}P8KhhITg;eBiT7KZhM~mvn86vpDwasrB zJM8j~savN{W+1Ei2CTjP^fc{%EDb-RQ{lb6D6KXImF8Q@H^MQiJ(sqvL}RCk3~$vY z{YfJCv|7(=hibxxYWmiq%`R4N^q5f<;tU!AHOgAbdz0QY^Yr|RL%-2%1OsW|e_k)| zwaI7_ot;FN*6Fq)_fOvNItA~?o^!c+FDf8ti5~a3DH4|imxlK=6rG?Bo2?9*s+WVf zx)}41c}f3>3({YX6MKnRiZ(+U>xDz&@qJ!gRFGbdYSue?8?I3-XBXV&Ev{$v@7+pW zv1l2$iN=)s9rDKa%qbL2z|$xu2JNX9y#FGx_05VVFkfpB-XF^kk2(KD;FD*w<9j+C zT2&#{oHs5QJ^~)(b`Bm<@Qh+np(Nz zm$CFirft*}*>)NZ8X$xdGNL-yx6?6(L$ z>`mfpS~8;!t5bn^=ItCG5x0;DthT5(^~ewtTRQLmG0k!d@2tuWUP^bqgH%sCoZzSO zxgSKq4t)EY#CMY==Bd5}`^k6qDTtS7wQcD5jD<(GzZP4%WG2sz-9lZFJvRf8v~d;b zF*TjU+V7gvCA`^y3M5+YU$6eO&Py;<1xuxyz-8TrHnb4J+C4O8$?%p6I@}72>&7*# z(KBdJw=I{&m-Dh+_2I^#g52vzrH8&vgbh4@80LW0=7Mn*pgToW7)QOS9_wAO<0ufO z4zjz>V+80c~(9XD5mPB2<~89$FRDq$Ryg zRQo+6Ra$4uEJKFsBEUa(BwyUEQu!&b(vOCID+RvFPFOq^)B#fe+noDmX-H^=8H5Qf zZ%`Fib#esHI*6I}kAEcB0q{)O*_ZHHCJNv*+HVJE#(F$vpoJ&hB9-hZBT@_jE?azyPSIR zL(uFK_mRkL&l$8@uzuIQef(HWCmiMqt6mWcC zk36)@`*3x7I`?dZ;|KdbURC$Fx2CBYy&>P)6Yu6i+K9s2wq++Ktu=CC;HGrCr3T5m z>A~R?Mm`EaVk#S6GC&e;X#x?-4=xaXdHE8MmB*dWR-H9HcQSN=&2GYGkdHpSINYBk zF73eA>S9i3Rgsgmou+Qb;yy~fuBdVvMz<@>5Cp}LqFAm;jpg%0Vx#$HBid@fIy(ar zs18F9Vk-2x8j4cIxVH0_jYBPio>=Qct!+lHH6_2)NwU9OGvAb>r%)dv!qt8f9)f7& zH`~9wM?EyatIU7#9%gX3QjSVQazWqmiP$cGkpFj@+c;9oA&5oV{;VYYW%Ap?Tuk4+xDtVbZ9~jWtEP{c)w||KwxqY1b%^C&ICj{XS9?;S|Uoa zq}28+vt(?JhG3fMe;C0k2vp`br9RfCqx7VBU*Ca*6KoZT{nIf__%lQ01`?6DVKh@;`*D*oQ$_yXC6*{zm7wOQt6T?xf*7yxt!j8ZZ zz&EgjQvY^se2m`7%n!YdLDJ0#T=?Bn)|OFn_yn->pR+y^Q$^4VIJ@0L*KvN-KbVg+ zf0v-o&C^$-h8^Q^I>CGwGPfj<%+)%Z(XDRh@k3Z&U_Lt=UU5gL>((uhX)8Vm^We6< zt|OKjrPXz@!s@$~E*w2ud)5JNJ-R*-a+(mp=)~R^>Xr}ya0hiF=|TED{y}rdKpOV5 zR}yIEMGcDX=u<%p(jT<3Vm_MXtJn?@AF&9V;GaVXCL(NiH7R4SgIIA)k9d)RAJv`y z?o0AGf%{6ju8|95gsy&YWSPmWFjr$KIF6X+fQe4>k<&*0U>PEfu>P1{#ch9{1I{L{ zMnD;2Ma!}ERG)&~VdaGJ^59wgIp;_x9gb8eN@vsw z`#`Y?GV`UXfRmGk^)A5j>X^twd`FK=Z73TwV~$r59k;PN5Ld-ZxpQ~5HQNU-Ez=9a zPGD@1qAg~5z5-lST#uH&6vz|tNGjf`>H!+@>`vt2w0?I$m7j#-2V`%`=y)Ce9)m9d z6TZ2=KOWANdt$z^Lk~s|RoKfZ!x*XBm|<9?(`V2B$9Hg;srAXjR%}(TW1eL1gL_z{3GAh9 zNzUsd?bG`vJNI(uKndb8m?*nU=X^egf1t-R({iMo-e1M1R^ceIldWayOd({zsLO(} z(_YVgbcPQpV5KZ9V~+>*lcN~41l1ZTigKJ|SHswV%iI{<*>(>Ui%zwb?f^aiSX5q3 z4QIIQUKJ)3^%LUVcKq$)njm1hnWS}ht`l#;rELB^1zynX*8Jyg@(P|4o5~XVEZMH6 zIqJNmuxk|OwlXb5K&+N{g8)Hyrb|D7G2R7YQX6#KI0X24mJDC8;8kon~O=U?B}XpaiB zB0e1t(p>EBK5HOJ^-Ke(6sMlSIT4z(Fm4kSd^lDJkD7&SIl}N6-V2U$^?MzcTxZmn zicwm}0wH2nq*)rnABi7!Fc>=vbluq=iSiA(w>I`zan1um{(mgA6!z ziPt1-P3qgQTIAD*@l&y~!I6D(BOGkgmpIfTT6P-J%Xp#T7)x}5Kp?}fJjNKyWqzRw z9{QVrFy+wkpDfZ@f6^MYs*nv{-=|gb0t%DUmbQAVY|4ly6q^R=-P~t;a|_)z&hiWV zmGa*(%<9mOetna`tRKb|G+2TQCM$5i7uBmi??R`|lb;DtP@wgYU4JbVC&|q5yfH1x z<4VX~p4?Pf4jsgFnSV1MzKg{ra#?;vBuAvXo}GcNyX){akbr+M^_J=F=d)0{^tWE$aIL`>uF>>`hSHwr7H(`+Heij;7+3 z)`W6i-EDnjC(x4vaZ8y`M5Wocp?xagT0mTterHZvZwc z`!m4zk_0PzwHbTptCbTB7Y*8y|Hvw~)5a@bUp z@RCJBm;+z>9(_q!Bk7Lo>XCj{S_<;gFuM+p8S%?#YU=pp`!O;AYYHf~86hZlTwBJR zJ3L7n-M-`4hhe6`ry8zk*=?kcgx{(OB+7FAbVQc=v13FY*1s)XVNEx$s9fI_VQGwn z#!qBDKl@K~c`K3!SDYlswidamxj*@S9J;-P^x4QwASoD)!?>MJ_&}{9-b4taxg5Nb zY~PleVP|c;!Zp+~4IUlhuJCw>T9kuRbo}Wb3a{=(jC*1osNH<5|6M?q?`!p3d*W{x zTr@totur`tC6me`eR&;Vh(|EEbz9AEt%SOX9PHU}rxo8eicuGoif~X)A8f)eLK#($+-{w??2eJ}Gtfr-;@EXi>0M2nagj1u*#@N>e z^DN;Gx!u^5=sq~cafmXFgG{v*dLVHAsrri0@)7l42@3+p@s8;`NKyG~bOe4N-r?JE2Mop=4L!NL+!8=%LSdw)ib}PN zzz!q&@`agjwehdhzrU>KH})n6==N#-6c+;;6EdWxo~dZ4mrN(%?KqeiOq}Sq`9QXQ9=uP`tFzu2h_nSk z@HgB?m2A;EAAAnu$UvrIGZ6Eg>PW#6{ezH8z;JmLr3ZL;>yEDc9K^)kc92goweblc zrq!k*OQSEG-RX?MuDfC4_My%K^PhjQDQLV@Dz+uuxmK zGOp|*=Rcel(jH;0fN_rrntYmU{L7Hw7h!0-(0b+VXmAKTa_i=VvS76g-~B{{p3aMhke1c>;3+3D~k;)#^zB$vzZbVDW=r}kKU28Ci*oZt{5{4&@806+it>#3ST zm7=;5%^gri)=#e_A^i32s=)v4+ksKLaSfmtgenRH&{hYx>Hkko`~M4;4RHtbAAEZW z_<#F$A;ACf?YzPBh1Q3Ll<)#BDm{*4a!H8wuS>Y&pEMt z`i+JZQ$bYpI4hW^$PlKU!??5xS#~_AVRWk!jP;U-VsgbL3z~x3uM9YFH?gcUswC++ zJqV_f*fpy10w&;VxV^$iG+owq(J2c}46Uh3LT-x6yOr)d^P$9GwVL)jRu%Z#rzWLi zyRNy_NamIJ0aqvOQ8B z1^Ms@ukS$b)Nr?$@joQ3J2e-NOa?2}HdG;z`Ev)}2HW)J)%=t}iZr7kHd3|xBO!Z+ zYN~IYgk&nq7r?WCF4f~+Q!C6mz?cXbVvx+GEhaXTTz*fyJ}5VZ+p0=!aGb@B3J;k^ z6U#BjNrz71Xti|Yvmb|Ox|x|M(2>Yt1giK0a;<7Xv*pLg4Yt3ymBw(DD+3!Tvr1BS z`PQ!I3kS$3vY{=|^BO@2P1gdr3?kZ}=8$fI-Mjg8^2``zg46R0KAs>0ypohtJ`^CT zTuDCDi?VD;ta>GT8TERYqa-PsUJN|>`0#+Xledt=mEWUtA4Dh}p!#w<>ym><`5K88 z@0_fi2kQNS1`%t#zI>)gzy@4bN***R?aZoJPuw9AMM~yfvO{+8{ec338K_6P^=+pM z`uZdE_EP1n=*?5fqEUiZQ?@M}?88<5pAF3#OcdureQB}G0!2?Z{y!z(*1KBk)~?2M zT^gYtCQq;_=VOEK7Ey5~u!4Y)gl_ZL8$U+p*Z}2xAQl4<2B^Q%njvOZfyvvEE#&Fq z=F%D3o?rAMCNSY3Bq&beLgS@E++7Lr-xcBsb#KKm`Fa}t=M+=8 zEB&0OMypKP+4Xq?_2u&*)E(!3%zqoV6u1y;Zc^FEZ{m~dHsJh$ewQ=C144X-7V%2g zOrPfkRqidm zT&{s>*;nI|cTZ0Xn#Du`&}ds9QOgea1?H^#217q!Hv70`$d@^CW$Xqzo~`4QIvyVn z6*`)!*YaQL-$k>|*$WXH*#lmavfXhUM*u}Jba=$$tMba4Fld9ON7i(XQT#5N(qr>3 zmb|y;=?DQJV7FSSl%Q`bLH_Z+tYUF}^5^O^8G-tDsAVctu`rq6Eb!M(7bK~6#d=JCL<1ykR$%O(aJH7{JC#%d)SU3V8IAW z;0APb$i-dxs$7$U;zfDA6!@f8wzd_%|cWwCK3&;X@dj+M&{&F~C;v1OGl z0r>$;M+j!E`gEM`8#V032WgK6>QTD>#v~6*E%eiy&g9xumne6Zpgc+muWzuthbJMq65v%@eH3S0W5UWrvGIf$7zc5huzz|A60YT!hYe|L5X}eb ztZW*K)_|Nj-#?KrD>FQLQr=Lob}SD-71}Ax$;XuTCDT8vr;Wk-dFO0~wNnjw8)f^= za8F;6fB5+Ku-H@Cho58uo%ifnNJ{+MD4{7G=ouV69((2ON=OO>IeGVM;U-Ql0n2r2 z4_H2*nBX{1ywi{IVlT}$sJECVO1XZbJ3e<~%}q%#d885sf}s4{;fRhef^1uO2nBZl zcVy3r)8FrfDb;$73&?Q#8Jbep@q@%&PiI>f{%gHh33f{s2E|+gOH*nR5mQ#=C;UWu zCEmYIYBa};ry1#a{j>tCKJ0l>B<0oD`ZsUFB{js8UmyL+w+w&u{EGcBsT=>_hTr*R6~#R%Q9;B4(U(wFQPIP& zkR3nzcxbw_!O0^YV2mSrO&B-nqX)G8Ftu~Cr?V`;7KQEx0d+G&?|W?3GwkfRl$6Bs zOR{7J5zlV1+QN^WhFHL9S@0dQq78uyN!nb0rltDt>|Lq5It#8b4K+5}mT@)favC*! z->@Of?X1{=%u=w}CKxKl-RxCE7~CV`Hsys897dRpnX>+!RHsUxR;V`%>x>#rXm|L8 z*AMw|)W@E|-??l1FQn(y{45u_^g+mtK)?>En^#D}pTTi}R}U+T4*n7!a5IcBQvrUP z0~t?_yFK9K&G`5l@g+0@_~mO6RmQqCSLJABKmhI_qzs&&h)Y*G#_a8zr`+2QIRThF zJl4Ag8=L8xzOK@ul&NN@o4po=Qv4y%z1Yc{(TsE1NrmlcjOOXXK3X?uHFPN7;y6bN zjW_W3wVZWu%MMusD)}js6joRV0={VhPn&X`X)RVU(z%r_FdDE8hB)=kDI(0NmB&_BY48=zfZJyvT+!j&(VbGx(i=nX{LkUIdP_zhiZ!XOD{U2cQ^Nn|W?4t=_9(qNZRZ^Cr zn=k};;I@aE=aQA1zBxpn$V;$RZL$ZzC?d!~N$&jJ?mNuM2jfdReP3}f9x>7`RVt*9 zM}pTH9sc^K>HJIPOX`4v9BOyoV$kS9B-U)~c}zB@xK@J>e*c+nWZu<>#y_$?tx7a7 z{=Y~&r!LW=06Dj9+qP}nw)?hiTeof7wr$(SZQJhYOeT3r);uKt;q0?&*RJ|%KtZV} zaZfdjgc^u)kO>=;4rujLiE05i=0-!}<2pBME1D}vg&LSzfUtuc<3tlCkK4uXD~Ev2 zR(Z>3b%jni9M=ZPQm)4W(Q|gS6|SL!a?g+s6py<(7tqC((&$Rbu8vDk&`N}bS+oxu zV|lKbWu?@kc;dM{sViB`Cx$VH-*N{)bon zejnd)5Ph>oX9?Ts6lujBdgk(6^1beY#D`U-L*geje;S~!XcJWCldYp7(x`m5qjT5E z+8IkMB=?+l5c=a@64{Qtu2UWkJqPlkG>6r-f0@1S;vT;JMNH;V_hs&reo?wLaI|uf zjhVLY9n9yMz2L@uDytu?H~y&rtV)sXbJD}wuc~vopBER0w5H%WVpR=Yo%B! z4I|2mPWP+G?BSGaYC%Y-vt5;56FP z+y`!DZ}+tx;^7|U!CC5P)KoCm#*6t08zc7Xw+P#DyJ`NsJ(L@8r`c5X4eNW6#MyRS zbwm=3uI-I{Feq0;NnPV#_&2?6vxjX&n71=k_X-a2^#ZTP?}1R^w%dm%uV~v8VNotc zBXNy-Xh55K5?ohOULz=~vBEWP=Yg)rN_uAGCqiFiEulq}@FP6zcgCMry{2Y6Nnc9)`_^ZkK^n?z( zwUv%~JW#X(gTeW`$cb};Xn~MbpYo%C&6`=iko2Gb1_c?x!VLmSN(^D*LsA{NbE$79 z5#)XBXwb})y=iLBv14N$qy908C;~)#Yl}Wl_i%oZ$8S8F13u%C1-BxG^u5=%y-)2~ z1>TUNRGed(?ZJU2u8O;;DHuz^XH0CGN zKGfMRj%cmP>WPKe^{~DV)e}p~7Gl&Wdf^x8Vow3xkdCL|hyU zKhXxkjxHwcDDp((;32#>Ay<;b9VB0w5plxNg6YQLNRtiiw~TeghpM3fI0nPzcLb`H zHrNj7#DNH8jY`dkuG)#>9a0AH{S~`p{_Yzw|E5JMEyi|mMf-vBJQ`=aQ$ZCOiL6$u z==bvu-Iu&}EM19y3vyNIh|Fp$O) zAlUMgz(bXjU6+k|S(VAaIahq)KeWqa@4=yL+f>NLceXaon z%lj#M?CPL~4PbdK^zOk}nK;_a?F&ko$a<%DeM1*cOo%hH z!xT+sJUn=fKCoi7ze%5JHH#rpg)?!{5=p#r*4@)UMbc%Vld1Rt&uc6vl6S zaqsr{(6J_5UYNS?Qb&WvXe2K)?~s(m1o6pY$v>!z(i7WvlM?}`>(WC+rV!ikJ-lMJ z_^nMNExhk%bH;Q!#V|k3xYoSLHo|2U{8Pl(QZ~pWc((-3O&6tdBbm^F+ zMe@rAeEM*zt%AYtil$ftiE1)V&tvFNZ;+sHXt3<5Q=$uu>MXL-!t?ZN)5e;dLx%Ca z*)JWNOwYO@U*_UNk+GCQv~Fsu9UxgeQygr3)982#zv~eSFVS^D8^peP+sjkie-dje z?Bzj6=rbH8N&@(v75j4kGDKG4UF{4vP4sV14;c65Ub`PW(yRVTA1yieO@1B`?3yax zF2yR|5wZTm-5t_0e&M5FRAx+xsRiGlR;FzsPWpnmQf0z(?j97usoCl5BPOjA9;XoS zhgc<~79BzHsFSUMB9j}c(cz)D((KhSQulM3UX&xt4=5l+;Z+&6WI5~!%xwat9zaL? zZsKP7406yG5ofj%v}D|~{o9(mVsv;r%Kkkm`8k48*$qh!l&Gm7EKhpOl%AYc4L$p9 zrQ2FO&GZ%)KFZxyUwNF{Kcg{u;O|&flqm5N7L$9EZv`R$Lz&dnrCKdPYfa%ou8nItO z?sITt9M0LAqdkC`q13pvMJ;ppD?jtVzE+(+N~#fX9M+=k^dKBq z)_JKuyx&^t+aqM2$781E<~s9zj%DmpW|epWn3YMqVaX!?)qO{j5S#c;E@zUZzIeSe z5{W2j$mV7+{uRZPkX#V-Es>(xjC=GsH719gkUE&e#1ddlQVkr}m~1Q>Hc8V*z;$V| zS}4qMXBw=xv`lm3_bw*)2P>n-#dwF>c@%$iT5V>6!2BK)YEU5W4s^ORn#(}$ttvad zR%-6ScPur^xat)Svy@K^z3zZx-atn=$uR<&uxOMcspSvL^H7*?#bEH0@hNiMJk=YQ z(28#LDAHlMKg|#<=hL0rHA1Xs31k-o3E>%ST&=$VIN;th*D!!eDWlMDvLuMBqv>R9 zaRKg3x#`<^s;hv6Q;FQD4Kmf^>tcTj)M*(u!BR4zBrGpMkK6O=KrREb0#nmq9b5{^ z4e3!@W;^Od3#mT5(zw(LpJ&JofMga}x`VcR)tV-NQhGmD)NpUF39jse;dmFO{h%pj zS7`+4F(XrfJbbC|iA%wrA@WFsX33R=#JUUt%iV+yeZHL;f4a`8yI&@7tECwgb0z&2idSoU_M5D48&u>#p@LY>~Vfn zPI`D+DUA@uuc69bKHwlG$GEghV8Y;rHTzrA@3n-1p1jhvSjj^7H+?!pIgQZOO8uS0 zVpj5#g(PKWOG)in%5TQNiypEzJsxPe`EJA!@*<2L~Dmrmkrd_4cV3xw=DfC+G>hfvpDeyIuo?OPF^>F+sFM#X0S%Z*EbA zj+TRkUA#CO+}5K2tx$dFuiNtC2|x`>yTO2JO9nA3b}E~&mY4=pk%ihM@EdU|x%?{~ z)BmMFnM2W5%a}o)ZN^`xBEM52rRDa5WrYWeS(&eCSdOqNuL?k)A>BXx%F`zO6g>7! zljGS#FBbL&>;&KCIWd|Z6mVf&K4XNmfgl@2fd@EB-u8imnA=>iaRPWbUd=j$vD#&0kv_+4H_xNzU4t2#54NZKW{ zu=kc zQx)%qoF$eS&lA$Zez6+Jd}Ll@Roj(XT5xjc`{!>O-{JMx3hbX*e?qI_&JgCl=+Lws zU^zylu%0|W0pIJ^HsaHI@}ko6-4oqhiqZ!tH#sdS7%qj*?Q!_ zC-HIT#U@eW5M#s=^MewNsgKb4oBF|3FC{2HA z{Gk;3z&bGjaa~Rpga&~c(VOk1XJ2fPGk$+HI}aU8>}68Kf_xXB@t$$B*h$ltn)*;b zMvnIvbkz+74Y)*^o`E}+7I|*Mbk1LYzTO7-jUP~y2_-~RjQyq`sJQ7t#;QEkEsk7; zX7GX19f_7^1hoa)bZi0&x{< zXs&C3ll>6hL|5`#ycRVy0JoCQcvcGqvrxK*t74-x9bJ6r3y*-rCa{EkN=nodqo&Zm zyVqlS0Yf&C;wudPt#M@$;h=Cv52@~1veo}gAf|sLa*>vGUykQ{@Vpd7SOCw|wZb-d zpL|53(Kx1kBJz|?YQGY&-g9wnc^|3GEFQbU5C~by{IlHG#jgc2;zscZW@k(7^1B}F z>BsOoM2Wy%G8)&0V`fuasT`y3V55>NbeO1UC(zrr(|$`J-TIlz;$z?Zgooo z_vG_@B(P`mJ2=2ix+i@ZW6XjuY%Ce!bv)m^YD1J z_5i)`V$QpUuM<(mL|g6r)?BqqL>Ib&b?BO&`Zg_%mt;+lLh$YVBpEH4R53@`_E(;k zV5bt`%pas#aerGdFr~x+@GAU)zAa0ryxQc`ZF`Ijwd*qH`XBBH?`@Qr6X&k(W;Dh6 znE*-W$pcz2a`!+F$~1Y)r-OdzWAMZa6xx~X&P0n*rd{U%=BSUmy@o)}2Pjl-qnN1LushgD$hr|;TX zgv+nmmQtK04#Z_^Qs^>=KYwCg8jVS;_uc?r*#qHVkjov*s}mu!tnG@X-)HL!UnMhO zCwxYzp8!TTVh88{9ku{An@}zUX&yRZcL(h)Xim&%UwKX%6d;*jU5NHmDrAp$AiXo$ zZAb@=t=6R)_Vbw@YD*~Z^!uX>9wqRc&?3Z8Tpzi`%`%|*WF;`qML-!(uOED~Z9T*UC7xc@iB$37iED?$^ZMT(93H`?KGHjuof)`Ku}+ zU8RxCB>zk9GU`G5gA-VPO)zpheABgb`qWXhmh$je)*+QxrGgx(vJ$6JLxD;ZfTvIV zAs22BWX{ai=W|hO9m~9<7>e|j)J`5UeBdok;*Jt{?=JL9&PpI~G%{D8`>s!?gX`@< z?U0R`%e1f6;R6NlY^?}z)_R$llTQS93NCBGqf@^|Sv*hBzFJ~@73d2;00*&RpspEf zDX5}2<0Vcp+pR!rGyPUk*^x28a!XJ~x6x0S*sKh`Z#|jBod8rd5XD%4jN6H_5z%t`40(s;xhLlUmswHH zr0!CtIyTMx*m-a#GlW7C?#_4UVWoxe!S-sK;`6p3h8a4ApRipN=y2>Ci2P~ZuE(gxFD8E=*u5`42CdQAZ&hFs&CL(O_;^p`%o+fXL78x1yloa59P zzEj`uHWsFUx&q=^e2thpI&dj^CTeUEc7Q&2Pl6=!y86;r#1kY%>uiXWP@TXkTvZoj zM!RM}LaiPY`t*Ua0zkLODE8Kdd;Wcyc71!uIExN?rM6Y?2N^`iZ##@qGnRkuZG_Sd zYNqeIU~UYL$X;O@=h!ArNKg41=D?z1Lp)MOvO4E9BbmzUUfP#dAw)Jpt3`+7E_a+3tFC6sC-xTZ@h^dt`#qK%pR^(b zSW4u6%ru-{zMe{bpFAFESb-AZ%9V#S;k~=Avy3vYyL1^dzV%Qv9m7r%SwTHW6HYIZfu>@2`Is#V2H1`vl* zV)nwK^Y!0HvI&J1+7p2@X2e7S2yD+9`>8tar1QevKV&YsM~lS9zwXOrjL`#0bk}@^ zd;!C6+M_BNjCHXpV3{r|{td^-K)HkpM0W3)H#gvx_q+rOsu^cRhWp=3l0xZatbi0s zB=0i%(cs^h_CXz$v9QrZGV6VM-U7xE0-ib~ z*KR=j?&WD{weww+itS2~cPkjLG-^qg7LIzcp_uf0X-9D_($R=%XAs^Axl@B*o#^@H z>~`{o&z(1n1T4&Rym*+QWuCmv1k$$=e`AZD63#g`$QRhi|bYufWI(lsLgpnz&oxVA2vAX9=K>` zl`;cFAZu=-A6N~CML@mLZGlgL=(8y%VxnyxpFV}lMI6IpfF0TGL{%2$*Gcc6oVewKt(DM^P68ux=`q#e? z`1SAqGiM$#kSLLlBNM8J6_fG0Y`{2AsKEPmw`U_A&j zSLK@aE*|(0vU{#O7$|=nNrC!e_HbBJUx4EfLA93<{aQO*uEpG6OPNT;t=Wo*bG~XSe*iT_mxPeQD1bWhG2b_ znE%zV_6lSqmHcYtk>=1;XqgfHehvO){a3SDMhhf37L~N>XAHVz<Nj>EXfXi1(j)72?WtFPA(+zP4{*`=@`L-9=zI%G`1F$vD<&clxwh#;1RVqp#EcjstcL< zC;694=Wx|F2HZR5L>}oYoY;|L1Sz^R!`t};8p@;L(%3GPN!A334bjEQU5dgIe#x|P zrtbhbw?yOHJkE2&3(?7b?hG`es0~G;ns##DY=%7LS1=P3?Lo4z&Bt`nq+=;M_>bz_ z0fpPd8&2#U5nXzbIvnXMk>+U0S^l%+P|*P;FLt)nIMB82?2N}p15<#tej;jfHW){jBC>;`p}-d zxFjd3&^p8`BrQSSv8|pyq=^>Uq$^W2bS08n$o>m$f^KdGTwW8RKI5VXs?`@D?67)^ zeipi$6NROSQ;FHXUHjXEtYHH%c_sbJ+$-3h)x$M&9m?=`uEV7tp%GXmrt0WwMa+Bt z4bgOiUbaZeDI_49?zIOD2q}g-8PIJ5J?B;*?WU?MIyC)k=Z-Htw60-h9z1=j3p*k@ z<|ny3YHih%vyf#W(U(Ac_b_^d$V6>lrgqE~v1+}1{tiD-j)-FvtVhvgPsohi>6mSD zH=n^F1ZtA$dq0Tk_yxM50dEz8%R9PH?V0&1=IIs_(Rm;^*z!TDjKInRY=Q98kVWtB z>wcH084Jf>N8r#p4qL}Ssd<{m^Gwmsa~_uP6LLRX7=}! zc*yZiuOu$kW+W&pSRvw!cO0P0F0MD$M$5PKA$z5|A$qA-wpgn)N@RKxXb z`|+E6g5dfWjXfI}r|V!UaC05q2%-^3^v=W6Ej};9KKv8E*=2}F5AUgbs`YQO`nh{s zv|oo^c$|p?Hr?n0(F>5r5va_4yoB2+1S;%PJ3Eoiwy}y z**9DHYgdVcy~021nL722y5$SS$7E`0@z~GMKLAHCayL{hHxa>8^9;$`nr#Co^$m?y! z03+Z{3j>`5BV#zoY}Mm+spNAlysU_3bVJ;bpa$^avAE(-@PIHm2uwX?9OPIy~xFq`IHz%2l7!Pfx==~0Xcyy!FR7DaUtqA)U zR_wiCD7_1ylURd3W24^ypIive_ukA5jqkDbTMRt*=ArKz| ze^y}FQExjmW;&d{K~(V;n@lcovddCcs@+WfI{n8g-{s`gSfeiJjTLh%)M){VYR0x^ zdOYP0PELV6o{^Q%20FMqwGDwo(S`yTxRV(TLk)0emMhyNJ{yd3#?}!Dv_eGpEW2Wk z=fMcYiOy;O{G;vVqS4&Z3#EuCtsYqxTTvDfu02=Yj-rp1Ab%e0vI|=ddPd=Z2ifsQ z3FJ;R!{jO+%ya}kjUlu3$Iu$<*wp1iFOo7;0fOFk&H!mNfdai@87EK{h!!aVJ9o8> znLo?VF;wFH6qri{HtC~@ZePu%9Jj6`xB#?a;%;QDBApLTvj{^?mJ|!ql0C2oU?$r2z^Ql|Qyc+0&w9#2I^l^WRnre0o#$NI(b|(Q2Po zMo`WvwK-XXCL~Q==FE&QzcE(Y6U3VCZyi^2t!A~!L09j4nNkKmifw5)%zFEGrqX;i zInnaw!4riiN`EeA2i9NJxF))5e}w8X-*bng=}wf`2>qb8e?UtghQ5vWNcV!$AkFn@ zUppRe_|^@79aIUVB>CrfQWO|ghqmS;CCh6wsOuIjCOMz}ZcXa;Ba3a+V{oR0BB7v! zH%Vci_JV{*IW7c$&6-Tpz{0q1y16t(tZL(i^Ip6oqf==u)b2{GkO0qqkd{ zPH2UycX}M(WUH1QHMoUBK)hs?YS30Yy!`+lE5C9@$Z#@GM=0Oa(8<6`1jlq9U~r#r z#|D+!Nb!qIQ+e`#4cfTav>HQKF*D!@1|y zkpX<&kMW0b;bVOJEP2k9r;U!~yas-2BcOu2mf$yW(ZMz<$8xNMRbQ6W!mDOAYi}|y zatIr8N+OcwSSu@BCFxU5I(rNtWgdeORlT#-Sb)BmPM8_^guToTrN)y%LZ{b@cY1)$ z8XVQ*PXR?`Y(kTuM~V|ADgE)};9a$Q$W)tkjwD0P=QLYhD+JuI+*VG-$(ckR#`-(% zqB@LwgtaOu;ErPLk8;cIKfApv0nH~Om$b=%P);vyhMxH^V)6#r8!H%yxQ+gf|VGo z3`xal((m;xkId8+7Kk2&1yywJ##2wg*k zA0qsM->j4so$ePPtyHuWUX&hA$f8EvR9zn}6Y`yqH#cw${ zJdSOIUU-DXLMmM)N=A&s1mg!0!ov()#bwB++=O%1rBwEs;#*UMxtNzB!v1EaoHw*J z(-uZb)$VMMvt^qVypJ_@=bpUI&-Y=2K~|SpuZ6M)VmIm_veMZk#j((SI&%!ChWg3g z=RBzMO~mX8L)eNU>1DUto+JmZdE`rpDY+y8i|*ArN)`9Q%5=27UxgN!L_M1jk0^yOMkx-ul-uIIZ&@wH$MW1Sos9(})5; zSM2;O((#){!!*}=yg4#%@llzGU{lwr1+==M=<~8E+X~DiIN${Mm;ub=8+{5u@AJh8 z-?XL*B`wSlrF;oo_MS|IeR#hOuBEE)V88DDuk?mwzs~7`ziC3TIo>SR>QgT^1t&^c zTW+y@z4EvtX!KFrO(uohC!@9pp9QHeD%e|Tb-U{Hl_cqXFB-J;2;E>6r z$}u6mh2#yPaeu8?Y9z|trn#ST_3mgL`+b0%Rm`e&EAXck`6=$wqatPLKv|gjwylbc(Iu@?VqBQCRNjpn8H}q9*?7gT@&_6J* znx87U{euHo3-N(Yv?oP9GbSFXf{c05ML6z7$#vN^?U_5FD!`S`JA$cESAl@T`*9oa z&ksXv%;y+G3<^!@onqvwc85w}vJeW>1-59T&bZBuuj!t|NyhNjCV715buG}Ca~jUX7zX~+lEJ}9x~4WHdXT!@#xXxLE}YK4pc z;(I%t9oxCDWl&4LF%r-TSc2corwvAXzsb069j3TDAu>ChJ;e79%<9}G9N>5hYoVFN zH)OJ;z8QqAbwYXZEr3rNYp;D48TLSnm6OL*$>EItQ6N;wjX&d@!Mc+Nv1C~Ye`OL> zXo-iCubdb%3iU4DZo_(xHxb8}vRo|4tekHDII!DaD06yGHb>D239lg~4B`UAtZ9=( z$V9XJO+H{v21~>CU@ZFxnpPLf9u)SuNtR0k#IR#sS%4a+|9+|!4I#A=Z&VIstN^iaCm?}|-ve&o7^q>M< z68}8aB#L*3pzQ@q$AFdp0b_U?_2{K~`vll|hj*$4oz)>aPyKb8y;oo~6cgs43`Rb| z1Z;bnWEeB!x7OX}=7`_IV5XyVspQ6@AIa3bo6}EN#78hkkHy2dABelHJHr;SqWq=Y zT2$;6sX|~n&=yc)WSWiTh&{Bw{}U+a=Eqp%fQ8=u=0V{Opqx23Au$_dbm=*4;qz53 z&&%oftl*Zf8oUmZc~`jJnZ6a1EWG{dO8&2+`x*t~)@>8tqO|jT0oyiUzd_laJku6a z^X?+#X5?KRG7|KTZx3ZoI(^LlU@;5IpiW`C{8mraIa}931rZ7CYyw+g0 z*wbHs=_~%leBkIRQ6B4c3o@t92S4OKZl605U4g8W&szY z{OWr$gB5~Zcn3`?%|kq|{+YSeJ%K<(^HM$}QqoMPljLIS)HYI4u*~Y+&^J{W-Xe0e z8lsd0lQdkpY}powvp1mzMAKTOZYkDSqzh5Da4Zuy9rNKcFXWx1v+dM+^@CR9n(yLh zX?2(_<-4?~a9Sxar)!sa%Jt16)I3uqcC;Z@7M_tWOeR(*8e2%5+~+9H$W;w*$dU*c zjao+kLo=KzAF+783JAkCCi_jm#;?pPnkEA-G zCjF6t{bngF^9DVjjtMqQZN^e;Rc&=M;*LdqkI=p&--UH>Qk=A?QU#I;=8t_2%&Z$) z1+WiC{z_x2altw=&=-tR<`(d~@Jw?>mVQaad4VjY*q_EfKvBvg0%fD9+rvSB?7YD6 z1K-;-I;5)tHVD}(ZUCV;HQIya*{Sa#{^LyBEVh^brY_k40*1B4xKXTa2T zhwuNUBCYCxrwm`uDs9F*vTb$AWx?+{0OIioG5q}sGd)Xbb5YTt5S156i_<@r-RQ#} z%-2h`DwY(jquv7xY&a&nqn~9*#w(D`Ypt};kM`qLr6!bVb-KJjR=JbL!!C$`eUhWV~jARiU8_)y_D;HjUWTISG+G0O>KsmRn z*QuT6qm_#YiV3#MB5FJUW*Q~3Dlk0Z3k7a&X~{01r!F1!RDb3T%m?G?+8)q{@EBz& z>=4RGUeE~D>D%?U>?zB`firfpuX?kRiKc2M+jenN;#F4ic!J&$^P1J>ZS$IlU`3XSP+iP%Fi!9BU!P3LBo7cXQNVcY@Kh_j$i3l6eO}BY4#WaUhkI z@2kLXd2#&|+OB*}d&A`Fr(FTK{BP1|iaG0dkH{nH(`NnGoCk{Pte2eLC+{PJ+yrC| zqVmDR+Ok$n?%N%noRa8p1qy|pl&W5lb0tU{+=#}vKIpQgLzRgM+Ue zcM&ASn44ke2KK!gs7XZBqn;0qy)){}46L{5W$$yerY7is1^z;A6f;L7W&r8FrC3tU z-Vzcx=e8%+u(8_y;^R>D35(=i%L4xO^n=K&0yqj4Hr|J41tau4Pxx7R`|I~Yh8s2p zW~ThxW>GVRNg5Z(*<7s8R}D<4b3QboFF%e~rs@Alx0V9mSrM}x$gJ}TrmOaR>`Rs1 z0)AO7^1`8#)xN5R!9BH|FhwOeI3+kTz?n$x8?=cfyE9g?dyHCPyY9X2#i95Of@+jr z)1qJN5&pI+dQhWtIczOWWyb?HP&(TyV(oX`koL}5Kr@R&(hv(N#Q8k1H=ig;i)aY-f;&i2qhtgon z&YF6LK>;Wgj+W_ZAV3ZwMq!zY1QLf8=*CB~$o@Uw%WhvXs=%*`U7?#wpu{j297d2B zSt2$86sY(re>R=FMpH_e7?1Ti=mu67JCtt}I_Aza;u?&s?Js%>AvhWVhy`tVVQd-< z3glWjP~-i>wX8&O)xS?%JA^cjSuR#Xg4zarq%gnNN&@Uqd{B_oPF};3*`g;t zc<7MT?g}rAn`GEpj&XM&8QSr$+FVaDAP8ZTm`G5lTV4oChIHJNaR!Vm8>UxVhwFPE zzWGF_R@SdaIa#VUW$3ty>c*W|QJ5wJvCZN6Atcu3R5#IaMOG0K+DYQF{d_3%$oa;mzJ0g~l_=6`7@VqZ>03f60kEB?>g=+BZE z9;NXFvuv6=a_V@sH*D3f51;Ly>pXb{`WGS*+zWcqMVI&rMmjB%D5&iG@ zE-UE&<-05WZ@!BUv16e*F|bdwxS!Lad5j0qSM@IN z#|6lxhJ9(2P-Jj~HBD1=c2+JHl12x=TnqV@Ff z8!O9@a5G61dOs{9h{Aq$syS?eWGuXZTvoEdSVb=fX{@M7GnOXuzy%tkGrZITNJNrN z@RFZ&GR-$ml7ny~ozTM`K@X3d>+p63)5j%q;1a<5Z2xYL%Rj%*rv*$%(_n)(O<0xIDX-8Dm!cwc=I>0tya1b08wuSl_GT=Gwm=CjN! zG_Ui>b{MYf=d}EuKC`m0jPrb{MLnZx5&CmQW&SI&dSw9`F&dAI?Z^VlA#>Ko$QW<6 zlVytN77imMx3*o1DF1H5rFGchXT-g7WvD2-TYRc=MjNBLk=3W}C}CKC9VSJ%v(O=K zR*g}@T8cMn9P}4p%y`M?>5htRz{y zRp3b=;ut+*cmIyry@P^^s&sRn2kOv>|Ed1V?t=rOS&9JrS?T~-L01<6&TFhj5%HQw z(Rk19jN?OEsz5$Q*3ckO63b4xABga@^AORyHzlY=nx6Nbi;4IlLAJ|${4Q|06RSoj zMm8Z?B0SBmK|LWFkiu9X&VEkXq3O$rCZFt`N04@Ou2}krp)LLyqP}Fmwuy<9s6wli z!Ry^6WPn}sFPvWBW7$hLe&M7dcKBwO<13KM);LTTe*j(OSVM*7AX!2*dH&gQ`^avh zYbE6$cH$kX9|1+AZ-B#^V@rI=466v~yH>_`g^Ja_+%lJdTtH#6LD{EYqZjm1(73TK zGs~K5bT*m$p`4u)%_da=fNeXNuwR9;sbG{=88Be=GR%w1BMl6zr z>e$^XTaE$r$>%!E4;3#l@-7!#Iv6?`5D9F%yA+w6*~yYIPI5i+e+yEeuiL;{LQjEyNd zk=~OlDU~yphuE_h{b4YnF8zLnC3*dKJ;rpSI;s?mz+*u{l7o=tp(X1??9xuj<@D`{ z_Zp(H9cM0fyNjM3i6cboM2DKMDs0cBH+#zASWxST2Tlz3H#uxuv-|p1(Pv=ArAc%{ z`(GV_Yq*Bez$e+E5lmO#m#w)Hl+wk-AanXcuw5{--DgbYslx2&U_dltAWF?k;ESpi zP`VgLgd!EEkf=-yf>CNy)Hw0%zn(3HXi_e|N~Rz>gb@GbvFgx=&J#go54rZ-Jg7fN z-Vg_ybzWYw_2@+UJx4E$+%B~pP8N|&w$Pnnh>=`TssVkb0}*En!th4N5ISsVTg!{` z#bqtKG<+x!6sr)X8-q6!g@WO#a?qASE1uc9vId(pwn{u3w59P?UC9;os-_U z#3}3v)XFq=DH!@RZ$lDAnOkem^l8cUtUPPM4?~UD!#q8 z)XIyQD=`$?MujEj;lTaQb~RCTbDW8MLo^VpL|P|dq%5`mObGRODJTkZUtvYu^&Wby zX}wC%oc^r7$-rf;%RY&>d3f4+mq%+Q029Ln{6g@fY32Ahmb7zMy4YPovhi-lR;KtP zhNuE?1X_$8aljwRE(MD~`~VPcHE-##vuOiaR+BWw2aylkvdXm4;^z#IC83V5Jf-9O zsj+PJuTHW;`-3OYgCkphyou#{TYMVF<-kd zhJavO(e2KVG?mvqQdOKRD|^jZ?Tr%7Yy|ZueL^6t@U4EQ>_xluU{9sI$8Kn76Ed`f z&rYQVQL8c0djcw zr%l`piM8i2s5$dEd9{cEW1pKRQTfU`X(S7arFs^uF#tc5NR1ZcQGfL#+QY-o(~@F{ zr05EJOZ50lCudS>vjG+~GkQvFbt$${X+-Bxpm;_VF#f#(x~w2i0u z1T~*+8zd-Or1Am1AT8wRUGt`X6xX;k1&1@T%fB0bUH9J5NTE-fr z^xCZQ2QwKrh%F{y@kZpM0X^e%M^xI&vhW_uiDN}e#0P!PcL0Ga&whP`Gam!#p~g?& z;B?+nR>@b1b9T(XH z)s^h9pcQAyXO+1o=>-24YzIz#oou00X$xf@nfyRYz+)K}WyF;<6j>bbgfXw9yd`RL3yc-}i4rN4q|(>ZtWsy-KPDY1>>je^%F8mvM}i zMrNr>5nhe~DZl_+Bd0tP00&C=UKtsdwfC5cmXWWjj3TxzKyJPU|4X0aZ?FVk=+Ft2 z^8o+tf#-*l`qk$(Q2&4WTnp;I>A9Mr{;ymNC=VdqZ6d`()9cc-SxdeX1(RZq`Hy23rm%;-AcGp%MQx8g8IXX z^-N-uvWoA*8Rb>cpi`{hfeB>rh=uTMVUl2DR5R*m8@J3h^c!yJRAFUaYT&gALKhkw zMEygO{yVfD1w_<7OldI$7=5s7Xs+BO>?p|S{ZW>-;Z6H`#&q%S*Lx;}Un@Sk? zJcxzmLZ>p6KjHJG;2^|r;RDcM?3B<{|+b#F! zuwQK|drQY?Y|KbL?$dy&`1{lh|pr{3rKZDk3mUUXy1?Ta3)x6GwGm6Z^ z07xBjnl2HbgV?k>M`Aq?`!rg)Xq0e44YcDVw6TgUHWk(h%{jwmpvn2WTgL)_gR9qX z6fElmBdayiST|Iy7kS776yqHifsx%;CtAe&Ye^S4L_MYd+UPh$oB{1&Su}ZwUH41i zi=t>~;q=wE@sm5Nps!$dV=1j43A#!?OQf-zN?Ly-IjW}XrGd0!C1Z*3gb}rS!o(dm zN(QOaOJS@VRGAIxL|0H&fM5g#aMgTUP-=ZBFBuX{<=FNdD_Lg(>MA`=2 zF-|?UZ`{APdTF2u|yMt6}N zOiAi?$r16;wuYoeTQ>!o4E<@#dCf5l`KJEMnoAJOGZ`&q(i7A(uXWDo5&Ds+ehiY6 zeY=JU6%^V^bwlhsWq~YZcTpyY(gGJ-GdX&um06R}=D%qu0V?ry#bG zSe`TmPwR%oaQHDyKJkvAD~-H@pRLYtX(-fkBgm)aR4GujDUecZC{R*^See|b_?b~d zoBNQkF*?OTlYa$oB@!zFymWS@Tf60!=M3fYKoT*1)g|5T_sjK$gAHiCZ8NyN<0JBP ztCg9oTQ3$`x*utT-CsJ}TQ1v(@NesCN zPYd4R;xLD0%a|vHLx@IhX*1d@WMUVSS!+GpbK`hvB<~Mf@KB-el2NBf-dD3Ll}>Ld zUUGF+#5xj=8%keWo4~keoOnQ!>k%9YKmw5ie}_36VQt$!zXI|;5;**35#KpFou&EG6vuHG{S$TO!Pc~A z>CjX6($#DCDJ*OE=eQ_2vlZl_bNmUR+LUL^X)ESj-NkrpM*k2{NUVb#Sdizrh0fw2}qYWu{_qkiFIz2q)dnW`wmM0 z96rJc?}o^X-Ln)W&AYFx^cq8gA9Ld`7J2xb)?chu9R-RJIsvK03G~YgZ}jnCtbU@Q z3%AScYXIZzUbe0cX)6cb+@Hx>b_(RxYPF)(bkTW)`8vg~sgN+rz;{NeE^Wsb@mF5r zeb0D@5(}RirAMghzeIE*=mX$+LAh?JWVLA6>iVD6Td478Wl3F%AEM3z7(FgX8h#zp zVu>H)etCC9Qr@%@ZA*}1N9aXdUzVY6?zZ%Un&PdV>)e>NWG#3jkyJv?yCNbE2;}h2 zbHU@Z5C7B&$`(Y~q$yJGhJ$gQHnz4I?p)I!(vC3r4V+%@!Z6b5PR#2EB!3Qv3jTw$ zb7~SS+?sTmUAAr8wr$(CZQHhO+qP|X*)=^e=Vszed>8Wv_SG9ZR<6wTWLkR*C@-o2 zFrKyz|Evkp;dG3Q&LGBPC}WDyBk;*ZY-{x&hYs%I0Ff^$41WsF4>Jp z+&HL|ttgSBva#XIUd~z!av@4bo}VJsIPagxuA;p|NM=F`kDYQ;X$Cl?`^^V5-y@5; z=1juWsIL)!iB|=FK~@6(bPO@PKJtnEEd54)xj^)9maeg~Bm%RMUh`mT3}mtpnKbg6 z$wh@cW499P3W*`y#V#Ii_Uc=cdyW+V6Lq@sbuCcja?oTvwlh-ybffd(EjPq1C^4zk z(f0uA!%?BvBnpr}GN6ldn&Cw6#)APE?dIEc*OIN%T*rXmN2d@ZPG_i;I# zHo?W7n0}}cWNcw6IlKZ(Dx1hgZ%)mpG7Lk1t5<$}_I483_e&V-+Iu<=#XWEG$I;AM z$8QB`G|p!iO>CM^J@Z#E?V(r}kmeuHi(qYsbF|yicGiHWK2s|xIwc00fl6x84eXzj zu`sI=6j07PK{2N5y+UpoMRwk#+{Fmtocd)j)?6?-EE3KK+7yawh9i7$hfW4Ic{$euD ziHVN8T@dMPEu2U!$zrfqgGF_?;bB7B2PncTLmjhh@utS$WtR?zbPml_Y)b3sSm+bb3&u0@QQkKjBSfuhY z_a;R9H?K+{{HHIz%h#R`Q*s$0lN}(QjBh{&sDo?v-)Fz2V{qWJohvy-G;HPX>m$6<7t_)tP$88kKp+R6)i>2Kwn71 z=v?{%0zgjF1CDl7$lA&wZ=Y)I$V(_U80;s>7%v?Cg@6(@hqX}{IO>|^fQ`R1T0%dE zn}xBGgC8ocGMDJ8Wo>9mOeX2FOM&|=UnS-{R^-DYddLo-$`RBZo?TVLYLcNq(!xR{ z1+QSx!n2g557u5SHkEfTt?j|8*WKJN1Kd&9G@zMr6gt=FALAij$iPFfld(LJ^=$;M zy|ZOtQ{TDwg3f{aExIwo+ttMh_73k+Tj{j=Su#qpExecRbGH)nut@Gr7DjhM-tU+N zJ$Rc*pIP02O2R)ObYX53qjc&D1H0>Cl}Lk^w9jJd}p_xu_nqM%ex z{37`TG^-_GVu2L2>&nz5UZlP1IFQfWfi}5_N2^d(|1vQ_Gc3}Z4YgCk2I94Wd>S8- zHHIqSr2sBg1S8gQC)T#ebl9u*rpaRIw}pdh`S&w}Jq9yumWAy!1`}uk@ft&;Tl+Nu zpmVknDPvU;t<*QFH3B0&%wb?%E-`ON%0b9ytQ5A@hJE@8m$H%%pkjk&Rk6ArCa%vn zHW8N#2O4xQxi9`VKh#X$&ftX+YLa)r!okV11Lz&0m4xyawrmPIvx#)KmfD}E)e1Y* zMic+alBGB1hTgQiuKn%|Qg_$%h6+43wWq+BxDsK!cLR*Rf;?OTz3UqibNk2+jZVz# zD5|a+sm?moSW8L3!36+_`Wig1Oz5O3EMH*n{fk?E`r_doA;k&tZUl}kM*b${U3gAG zxC>6RK=b0NLynU)KH;6HOtrk=noel~au~TNmz8-vLdw8l@=dcU(_RioJ)L4@3G%gy zaD1jsVO6L$ev}3V$USucQ#`2sGl5(goa@CcdAi@(+Yhi_amCpbrRe#U1aw#WJ@&|) zrq^af1<9?!NE%-3F>&)KP4*%c^s>}_bbw5&%{atz82ap&N9w{9HwX#$`9h zi95eJcD{eZJkG>tdLpXb`hC0SW`Zl7$H$yw$cQoaD+j$IGjtpQFmJ@@QaciX%n{7M zAV^Zqjg0SOz}cRTd>K5hau;uUot?du;IY+iV=6PmAh8L z`LDR1ipkb*bBYT9_&03$o@M8vxdn0g$>T~qScmqpFD;P zCDLI0FV8Z#Xb84BWtCmCo1RRMcDal?NnQC-GFsUDUh6Z7H%Pp%Ue>ut>xK|+g#g*C z>`3Jm4R3^jJw5k6iNcMG2%Ikhp{01T&iQ3i##CI}&(13>X(n{mSy)Z#ASyIdW>eVj zHUgwLNk+|ezQ8LXI^N`}I5gI7;OS#C9)3vzXpig1pKegg4|p&c8F06qG(5@eUIO>E z{FHej=1z)Qp+Ed35r0cLd5!^3^DBd-J*QiBrybLP%Kb={bwAE+D%mi#$-PABz4>j3 zS~Hp(v}pyGEZf_69~lxqDr`a#+9RmrgJ3^T!TH2*vAiRi(C~w#R`P!>(_ikb@8!>_ zb?=Hi1%fUKVqMxFpP_;vn{yCKTsk&eu0Jo^#c+I}P1 z=7SW_q}dI|+v&2-O4Pi){|9wAhV4Kj-q&+YGotC}|iM{!w#v-q`hg zD=50<#Xi(h;}=c^TQzxtO`Nkiw{TU=<-y{+y)}OwVXXvF(M*@rVQ<9zaICWc-`dYM z2o$Jd)qBU}j0F$rv2gVi$%#}d`HZNM#XUG_(2)g{RW6ejJa|z4p*gh~ywy<;OgSOw zW{!`W89rgm`w4z2s*OX~(9P+~V1+<|h#VM0SoK2iC2`4q0s{r*tqB?2pqaJiq?7Jp zmCm=X6W6Q~4Waac(THYPc#BBlZ>?_6CvNS94o2?r2Qk zjj9OD$+8Y}3!41L>YE1lk}bI0zc6c&ufo|Fq&nR=rl6^e-l2q%_St`9v04B4c|=GF zha>Z~>p~WR+e_#_%a0N+%#cN%~n zvDErvju^4v-X5bKv#nF1FYbicOjQLZ%n&-t4L`|sLVhw1PqdL0M?)J8__84jo&T#BPMNMnd zNzY^&K{1;3YS@vr%nZg3cRNKiRaQbi!R^0nBb#kxq#~W-7|~Qg@zUfDsYMDgQoMrs z+xDqoq@KBEjcWKXlm*?s8%fI9Tl# z!8meFVh(x|8r)8(8t^#>Dr8pK| z1lW|+GK+f^_{S*fU%&|C#hbr;JsXZ~NF>ZNgYWdp@n2g4Dh~G6d(wAffd!%hpsdvl z1uKN0F!+zPwu%)_Ar11=#h#%U_H;RUhH656`R@4RBKRkBTcOZF)f4hAjgKD~nc~#TY(YbD?#a~JjC@q1PYTzG z|L^7MXxO_9yidgtL**l$(CJTmM$?ZrYpOn1ndkb0ih}8tiF?B$&;8D4h&-#u4xjQ^ zJR(ACeOd18C+LFNFNWcK|3oej748X9t1Lg=ECFibCclAz_h}afei48wJ*1;Ga0@p1oXnla!E0N$J8!W0`4Ox+AOIRL;-I$RcJ%- z%3(hF_OwFZbdx`+t!)1WeQEHpZt=iZ$X7jJum{8;34zG^eKj}vy1mHyk}ziNn=Q0e z_z)07p*kpK>dK7*ozu3EQxi{ zVYY-2gp*^i0gC9HpTkplMKHI_jwJh=6Y&(B3wcJ5BJ+4vwKQCE1tJFw{8ebnXg_ z2^=Fcz!Sz$mTPv6#^^iQyD(@HmF*(<9})~B7yUj5807e=xq-v8;KiWE>;&G1F1WAX zIJM$-@4nuOgrw0DRt=cGb5_k7i2z}{1B_D2Own{E4+f2U2EK-tI>4A74ATrB+qV>K z-pESLBtoqq(%;Ro<6ZYC{%T7(YCS6Hg?|n`E=!V{P{p3Y@fePSY-3bF{Jr9se z(%-|`Y7&IyrvmlDw;Ky*gn@5lE1E5?IF7^+zwOjSX2=>8wzWe!!lDY+ev&!@k`eec zU%L+hnjxGg?Gsnn9g!a4rr zpOiG$m2H)dt9mygz*mU;r5d0ppcS+3f)aPUHdA21n_+1(HFo*8D zZx{PmF#TN~Nvx<2wjcxq3hT@4dO0_R|M4Jz@KJLC#C}vE0V4!_-Cduoszz&qxvVk# zPN1Mj`7u5e=>Q$81@2QaWa+jr<6x~!+1OSav`y57Ffa_Tv@Ov89q{xOtI8cQUP_A1 z^)y1vK>o!$4$<3q&+V@&!%DFE_OrGiLBCpo8`SsOf;Kd8I~j^sVcN?D$pFNaBXL#V zWwuiZ`bD`TF>$y@8!88ljo6SQSN@4=CU^1@+@I5^5)AFdD<0~u#X|a?O}&X;QmMfw zur)}ey;1wFm+X?)Md)joDf(CF$B277$e@xmrpju-;?)JFkmf4AY{NF01fjghuOdfw zKxux+#f@54!kccRQMjAfVGpOJg47&QCwSEwEvhF8i^G6Ap?=)}Ot5g1QIHONAGao( z*~nNXPFhom>sEuXbo=A=23A>eiClin280Oc9@)xnHosXw7}b%fSjLh!f`=>J71Sj- z@#KMC20ZH2=?Tp_ZsjeEnW+TIjhlC{=`O2A9vNqRqJM}>ie-6alEgPg0wNf0wa3OE$n&_FL7MR zFP+;^iv#2+LoW`94<(0cWfAFRPG2lKvB(dM;d?2II|0bXi?=)G1CdT*6m-r za8LIi|F7JNpm&&^MWl36XHrY3W)Jq?KBW=nKX>x~#ku{je4aCv{oo&e27xfqxR&

    md)wzeD3u7lf#oFXTOuGnR3F4npmi6C2hqe4<2916j)2E6D#B z9QOI6pm>ZlHJq7_34;tzo}$ui2r;|UZ7_{aT1r25L&~>KHUPKQzi*oFGKAwYtv*iS zwXmBr5p%0bK#wON0+@mpc)9zr>Ul7{z#^44k<0QT%FVVVAg#jmHPKvi^oXh!ABDE4 z>tP_?vlI$f^x3o-k-wdWhi{{c zkE)6hd&!Y+fEBezLIHy>C+^HU_fWy&$)4G6+H%%B83IQ6y-Gw~?iVJ{!E*E<411yL z*CrM14gp9Hz2MNcNJTD}*i})+A*UoJln|&IaWTRu^N6^e%Ao~^cP{F_i{=z!Nsb$| z01D+uQH;(*M`V-#nzG!18aL2Lv1-3HFK?aCxd^-LuYMZF`OL6IM*9V@!b@NGm;ZdZ^9@FP>qo#eXERAspiNsUS9y#AeKk9V8j zZdc})qW}`{*b=lK5=fRyJr4GaDFF}ju~)9~8i_ssLciiV7G4(hr`YwFhSkE2hC{>A zCu;evy!8`GvXDsGxB2f#c}XmZ4*kciu~fC1-oJ<>wAA}*@tn-r3>koJ5)aX_*pNUEtcp z@zIk8Qvf}_oc76l7UI$oAdJ<=c;*xCx&C~H)8Zn$t0bJL;e5>~?F#Mbzl$iGJQM*w zUUOfKkFiL(eBx^B0JR#41?}&T`5TV{Pe79y-<$cj}AP=Mpl&p%wB~Xwcs5WQO)VvvF8bqxLcIsFYPMm6S=Z^j3CLY@`7J5 zjS6M|ns>Xm&_ruLyZ#di2X)oeKTHwM(wYdp09P9`;z;9hPo{KyFmm)17fX(Yt8W6Y za<|YKt?6Uek>ebdf!i;J5N;`MWJ)$J^aY2Y7rGh0M&mhuSZ39aK;KuMRpXUi61=r` z7zi>(eQK&@d6{DcsRwmAkY6)~!7Odd`h@5C%g9<;E`nj$n8PSx1>vmkp^+awWm@*+ zYd7yM)Ia&{odE6_43i1RjFCMy_teqo&%LIXRUXSe0k1D1)7B$>)C-;Vx!4}tN z!OhQ5b&DQz8-pH)K&IAMRlgPZ*DmPlmtR5*6Lo6%6ec7^3;TwSq;hfY$;Lb%+W#s@ zB3j}is|SCgT`IZa)Bu_w+3xVUXu8;VWNx?mo0m>-%7(lC=#bODcYiI5L+YFG+9kF+ zAFzv=5+oQ^K;=wJ#mMp3asKj2O%0CViruf%%+F~WIi1n*^PMJKpJ?n~fu;*K#-dSd zT`|n}+`%H@focLqgCi9B9hdBt3^oH?1yZFc_-lLBLpy@C8*H8mkx^>~-bS|#&qdEN zwhCuSJeH7WT;=t5I(P?+HL?)g+(dt~d@S7sxn* za(SSi@rAqMqFT_3zlOf>ijh4v@@|i({I|CQFd7mNV=HaBNDRx5)#3G*91YF#X)GcL ze3<5%lTg=c{Zw>Li}aEV)c{cYL#cw2B!*#~tJS>n)`4Aps>CXHM+`}6me!SCo^))ZDKa5c61i5p68VQE zVutV>22OJOYINyjG`14aBflnNHG%5qsKh7^w+HiugYvQS^g`}bNKkg0r5}XH6#<(5 zJ3H+%P#u;88CMs+P3S&U@9X`5d)2{C*Nq$&^2siIemq6r-eN*Bs(|d92>Q~Kv2hq&(~o*-$R>vm2AeJ0f46@o%UWzI4%c z&LZijtPjh>Dqkb`DysansV1qRvEL>U6&X2@dXn=5m|=qh<7U{b!-G+50lOb{YGCtq zSonQQ7?jn$8ZX#Gs5-7o(POBl;FIvt?vc?zExZLsd9>Cxqk0PA9rDZOl|Gn zvdLOSSo72?)FU2i_R46p=rg=`j;aPw!Q+_2h_Oo2!nPWDe(!-$-dHja*0#QGc@|qS zVdcNneNl>k@}NJkJ0Th=AvrD%~k11bur+J6{C9P1@-nL4(p=tt9)*!!@{oVbbplRHPQM z(QW;|(8+$8H!+G$xQWg-Ts3_i_Q68+7~X=p`jjcrvvUGic7{&;U$vQbE$Yp2f~-c&=in?|hb;HeQ+cF4D;q zu8spp;xa%r_ivJA#0eE|hGvN3+)hNm+Z{@p%-=*{hX3g{Tv75QrNT@a41-f zUE{%AZ5r))85Xr4UfVQio0w~Ye|aoP;z`Ijo`HId&2)o9)g?$Z_-X8^6kf`ot#AKM zgiOVPf%UDFbP29g^UoE7M<0B|Evy$z$|Z{5Auu`_Y+2#aoW`IFn#d5QJZZKI+?UH| zRbym@SFCi1+O8l;E+2iP_b!~PEJYG5G*W-}QE~*ni=XqS_edYZ81t55 zS|RIaXAESqokj|(hntvcrp?qX= zNoe}>CPIQT)>iQr-F*V9gCP8tTcAsf+-7|MI~ecGe>#@`Z8swtNwvZwts(|gf5(J= z?V5zflJ4M>inKmzB~)y)=Up$g1Ha(@F~SxeMGqfwEHo-TQBqQPdI4B_v#&_;Qx2ON zA2z96iO4=r_Rq}x7pI%O^(hFk-%`L`Pz!IprQKc|F2^3f$7T6M&01LKX8hPb@obJ> zqIg3N?OoT98XkvvJt5?M$+&}5WLN~=2?|{pLC%^Fp5-tUdL7}d=3l`#p9WG7T23|A z6Vk%@*x}!h+ZU2AiqlXF5Voh0;muo8iV?RQF^$h0 zUrEXK(m5+rZ=)p7K>XDC*jBb@fL$QYME3|skkigsi4kc>B2CM^JJ^H$`Ke35DmJPR z$jtv^8gW$~YjUbk>4FdxIzc;e2SbtV2RPzREnMa_gVYT3Kyea{QNOf8EgLIa{UwR- z5;`M7A%N39Etjz3T=v+$Ne_iP&mmn6llQBv>Pjc2_pnyjlQ$#@FnCTNI( zKE+Tyhd3`*ful_oCeTQeJy>y#N~vk#q+UHAhnrBv7EAYcvB}8Gy&FXV(dnR9!M`Ud znvg%@Jwo^XOVWhgcV0O8TVKtfUt-N^9Fly{W!9pY_wOhB?gI$rOltMpWpC)O%+@@L zq>UZhmcVF~AS!!xX7S4lHs$YE&46yChwn}WCI$2=S*2s%R;OxjB>$ub{|k0hKNWy=mo zz@_oG>Q34JN@99occoLiIVp59b_|_IERoiK66_>`&Slx_sPz_H16dQ7bxq??b`bXa zV9uyQ_G(J}#EWmK@Ui6DNvBkz?k5r(941U0K8iWk{p$1I?h+3wCH(CK3fZRXF`p-4 z)_NG7(L_Fr++Q!NxzUGy;mY{p9P-EF#7pX3A(^Y5pFSfJ9TftY|94+v`(GgLC@F*x zba+c}Zs*&$YulVm%2DEp@m{?^5gwxz_|y_fU>-YyWWOHGqetCi=sz? z2k(;in5ICMGcYqNJh$Hn5eXbbRhrn>0UonQ9O7bMB{0P6F*D2BC&EbhCEY^tjRSmM z?@)(9c)Vw%@E|MbliLDq5fUWCA*vaF>ba@;J&hUjrTBD}4?qzIBUE$$B&)y<6=T33 z7iQ77j6!ae-1@xBT6X!%t%Q?zzj7aY3GHpBU%yUnKibQ8ruElOQ95{1t`TWNG?Z3I z*m!4Jy6A=oaB^%L$5#>9g6sr_kC@bj!4l%PVM6w#_xlKCAQrIs*OjD^&UYe2Eib&+ zQ{Q?v@b^UcCkO5;H&GsVAs7U%+FHGt3jc|aAZr}Q z)z9*6g)D;P{zX>w@MK#xQo+gWxLmd8kaoQfJf32!=914ixP$km!oU5uRU2ARBx7$Y z+q6fYtepbn-&f2`A#1UBF#8d_BeN4OnU^4&z{&em!W)I|g%Ws_Y?d-8WrmE|(*M%z zt)KgsJ||jD=W6$NX2O_0vm*)vwj7@BfGw4?{sAtiOv}(?k@h9XUr_RiH9y__zLhC|Hs<0gbV@h}<5@WbJuYDm@0;9WrDS42d zXG5{DWLheE98yCoaA>c+#%5Mz57s$b!(mStbp4fW3U+Tw!iTLo4Ks2#v!0p5SRcjk zC+6!!(Q3c9iwDV*DEV5SHTSQEU^cybx52Nce!K?8H<{;=lRR1s``e6AOa}T_nXe`M z_{QA(0XU`T2GuGK4Oi&^Q+8bOy_!koG8abvaaJMW{zNuf?BP6^3%s~fVNSqq@Fetl z2TvxArSmmO$6?vk?!-+mx5F?iej6mGbvt4>Tj@zwM5S-~b5yLUd1g>N4O(c#$hEX& zrV~G@?}Rt4eJWzlMnI#hSvWJnV23`t8;P&hwtMw#b7>F@E_6OeO&)6#gZ}O>m5xd``OaO2awfsuX>1g*~u>Bfi$BQ{m4EBi^Ojs^EX(nU>oo-t9^vqRobva@!qV*SO*;FzF26{ zjiwoi^?fJ{D4n?HOzaSqj+cR){lnHCDu^f+B1-K~j_SdsZaAuIP$A57>@G2*Hl_G+R| zZ@|TZ#=TZle8IT7?T{CYg|PU9Ozqkok0wsK^C0i`yhyK@oaP+keqQcV^VWq5RkK{$ zz+DWVyVZrwwnalr%16ptuuC5W7V5t0Hl4faekMQZUqOXFqa7-B1cl#;#o&bnD@gM2!n{{vf1nI?QG>N@jxJ0}8#b!z z(i?RC3OY$q_&fkuM_Z)GL9s}*sKvS0wrCsb_6Wsp0!XIhj6vvB8qJzFeN-h93sHC9 z^~0aTnwJp6^;iY-hE_|!xyW#9c5U*Nr{A$VVEg!?nnh-B8s8B4j@D{Vv|rvKesLSW z-Tkdypw&6m3CCP(-vKoUrmbBoc^$VV+rd0an{(5{SvtnxEbrzHtjri!QVl!OYxg*3 zAk3c8-}ttwC{-ZHRo|=$-3Atu-AYUxv7XSPgpk3Edw% z9F7QK{-&|P^K%mAtVl9-q%xB#Bx`?5rD%#?1zXM;so{%g&<;CY-}Pa1GW;W>Mko%& zbR=tZXr_xBSX1)?W#g~g@>~cL!f0Y?;0M|OXG3rn=x;1*vqSzT9lordgoGmD5|2)^ z!BYWBnDXJF9qZtnA}Rtd0&3m5e1G$ZjsS5GS_T-F!^!%j0Y}yS76s9zcg)86P|r~S z$zEaK+1D)csmplJeGq%ookRVpEi3;ue6f(9Ab~ag3s+cQk8Q6$)eUkx$j(eRjSdVeaI*ZA2O+)jtqv9e;^^pvvcx>+MSI$rCpY%WEe z)NQiPfiLqtyQxJ9Q+~woji6K*3s}bfht-XA?ah=5#0(79{AJ$ILpn7hVVma9w;c#O z+Wxj&@j@s#XZ&J5_P=>bJmJ6mVE+q`GP9JQt#f9(SaQBT1KABf707=REB`m?*#Fm~ z{NG2gJ6@6^3hQLaxQW67&tAE}|LX^HkN+Qba(3*X|2cz^!21}2SntpnRL4_YQyi#W zNhGPDfNnB~WA1pg2+|7gog+8V)7i=T@F{B46KR)Q*mssHBRt^D?Vd)yE@y!S(n`KAz{?6CP zGDnGATjfj_Ea*SxSIUL5dD!D+YNgTD9=eZ0+2oGl2Yo_$THzv95sHjO|ye1k~ zVZY$!H&y$9P;WHAM{1V=vkKi$ZCCrvIMj@%+ejC8oE#yU)KS2cDQv}G ztMl-5Y};}~e_`$mihdRX+k=*KzJ~1~2oFQs#|SY|+7U(Q&Dx zLe<(Vtk)uH+k^a5y>rH$w2Q)705E zYBm)Nm95TP^cBT0CRo8bkXRee@Xk?hPErJxZFvd(LzI{8J(!#{;&h(Q+coqL#nuq~ zTWL>8B>;(U%n7j=V`50gO&wiRsSn6%`s1JG+17E_v=x~=1khjk<4J|M!YUB zB!=u^zOux8;~2!K5@8L%fbR7wH>i2r)3Hx%5rn-pRJCd7{>4mKyQ30VR-Ah63dut{r@R6wNjJtXhR4*G8Xk)yS2oxkKgPX6Z+S#5=RkVekL z`2aY7??Rw^GuA99^Cx~UE*mJbRJk3l;411UNQoO!d;KXi94cDP(Y*hH4F~YGHyzQL@E@bhsx9@TJQX6Ul?wCsR@-Kd|k;y*sR`iO_HGNTa zK@h`nM{wRwkWAN3dv{Oz?vugD&!7O-n;DnX1p2V%=7h;+A>|7Z(2Xpj$3+2mL=2FK zLvAq>HyaGaE=tXqT(WYgYVPH~n@UqmB{=%;qn*v2VN_69geSBUiGeQkN-Kc^r@lA0 zm{brw<3JQK1Bva}LZN8Uk|vt0<>VUZ&Dk1WTTky*aGm&J179}pL!so+lrG;mkx8#Ny z+OkV~7M4eLM?(=d2fwSqeqQb8F)DMWRmLr39)HK+!fviB!n#&RA;X%PSOUQzn9CE? zscl_@>?viEJ%HWsPOh}h<=CFsp+)8fcMcqy6TEM<`T(PUOtUszgT{CI-BuB0Va<6I zIO5%$BjsJXhmB+G&i$6YKSR$kT0VD_)I&pi`cA65GdE3JutBWi1W)E2A@G3mWyH~bT3X ziPH+}VGusGcB}%99mi0Wurq3?=LyM8mUJU@_q5Y1VB1nTBYA2iyi#I`#E6#JUA z!WA#H8V<+8Ndqp+5NmjVOcMo6`lmZzrgC4E2aU$G20XX0b#E5tiQb=X(+n8{U1l(V zyc8hsi4lw)tFRIP4FC~uox>)_X){$~(8y=={q-;4ziE>lEXoK7)b$zx;V^Bf>LFzNQ98_WPpgX^1 zIYHIIJr5N$+@Z)Yp#L=m4_je|ZTPE8>;VDN*!{uo3sTx7hcGE(V@*{v1n zA*^9+b`z)3B$;syo&4^7#Wi2rIAW`Xw0+s8nNN$w9@8`HR>&Emb&h8h$(}$Qp==+FA>J@z$NO-*w%*Dc*)=8v^K%`CY=4`}FeuPS zDW`(*QLh$uv)PngNIKAD!0u~biVrN6k^wKQE&;KIvDK!ig$pJM&$6H|F6UR+9LDsC z$>EDSYid$9|7i|Iyw6;Y`n5chXCbte=}-Q6-EQW;7Nf_#fVPvoSpjH%vBP9DAbPhX zfP!4i4$KbMZGMucH-^0a6(&VbgW8{YFb_VX^;`Q^id(sHoo5l)0NW7B`ZB>vEdqCd zWMHQJE{+IUktizfXADHOjuRq;*mQ%pItQD|y57;G^GiiJ=L=%^`KzL&*_?8u+~T*G z0bw`!7vGJ4)h}0Yp`EoRZ$jR+f9pzy4HZRK>Z#x|mFlz}xkEw9SZb_= zN>9aN?6Me!@%h_B95@+yXOS;IeOjcTTdN(R$?uQOmiIL~H{)X%u#cQ`0idp z65asrlCUG5x%kY(lx)D8?Y*Dg;XRgpu4>&eUx zH@sSmAof8xSF%9HV6Oe5l=xVn!fk-QZqDcYKtzspz*9iE9p`6_?bVE=(ng^)#z*BK zPtD-Gc9sy1pJBMlwX+d^*I*CO07E;>Qjrq7Tk=OJ(6!?tm=u=s@)(Pgehr-;JSCgo zRM@M73nV)Quh$<4jJFJby|*rHo<`tmC&reXJ^qi%Y#=165CLiqsNNNTkpKb|6U2!e zjeCY62mpe`2W_|{ol%0V#gUBd9=U#vGVavpq_sTysr1TodEB(bfkU(`y(qM7fcVJxXm)n}T4o;I1aJY$TaGJnuGWPKk~d;J&kS{X zHK-DLVAm00Eu%@onbM!X&v{3|^=ID#qEwLzfT&n#^4ET}FrmNeka%n6L=FH7B&x!h z{>;qK-KUmUlOV;LH8)MLlXohe8wxHXMAWyj2d--w-#K52J~bK9t6>CG(kH=Vv^-UL zX0!hTPe8E0`3HAtVnwMMp5JJw(!C2jM1irxcFrdh8TdcqTl?-S2Ed@|$?IEq26UoEnw=X~asS8eo<7-av9oewI|tYm0-s{yILS>RL0yTvWLOAp zg*6vwG`rO}|FRkolihvVj;hjLc>)^C^^$`E+b18V7U+050jH0ggR+6tL;ILH^4Flk zwpGpf3j{5}O4he_3x2NIQ-eNx>A=Zf^}>?jlr`OJzyAcx6c)n_f75X@Em*~f9+aJe zyw}{QOit>!WXX0irbv|7Cm-fB%`qe+1FxOU-0KKQ+%-mlN$ztRa{X#Nc+Lk0>^Rd~ z&0iVW@TQ}Ks=1T3jjhZBM?dV{fHo<$8osu6YQ3Q4IanUo7#H0R{m|>ftV<=z2`C*DI{iUkV`{-EbCJP0 zc$OmeSl&W;n-rQSE1nQnnPAc$syh}(nbyMG90dFPtAaf`@K}j%!7>>6RT0~=X|ZE^ z?P|vni2jp!W1S;cvK`J8AJzRS=doD>Em+MI4o3P^FB+#~aOgKp@9(`^>GK%K9;71r zr>byqfIL=YC+YkN&kSnGAsZll=yx(Xt?DUb;99-nYtt_^s(5ZK23b{0mo|H|N0{oa z#VcIy*$=F48~l-dq>C6|c|KiUKh~G>voV;$+ZT9bQ)X1p4nOrDTS>f@JGmd%ytRnA zp#602Msn6wDcEG-UFH=JPe!i=WY3g7&AfCuECZGC37|GtR`3=hcV;I9(1}v$UmXcH zCVcWQ$NEslnC2?wG~r2oS;Jcb!dlTY{lv`9N_%BB3DrDBefzd7!Cf!HnBvh7{4b$) zPZ%EvJBwil&=pRmCjB~L4!6jqTfr)f?>9EXS5{95sbXm@k5%J^?Gq8Js5gj{JM0`g zdO6*fZ%gQ!1{xwdK-}o9z3zGLk|>}Qi~qz7^tW60K!p_cA+%Cxw?iesRGae^&90B+OR1x9fL*W7F>FS_vlMgP;~ZmT}df(m{(2Bz?ZB` zqFo~qMJB^2AF$G_Q`pQn7-~gObMR4U^A5_TOF4~vjKoiQ;w=3GxVduZR8gVFKNgvu zfk+=s;f{$A<&9_GFcd~}kl+?n9zlW(YHru;MD>3$tBmk+x>(%!{6%fRgpEb}TRb#Q z`hn9_1o+>R6b-3G*2?N-ecBcCzLHnKC7TR=9Kix+$5683vQH=C{DwJstiyg!qloDO zbT2bOzwmQHr+aT-RLw;LZcJSV(-JNzF&HGZI7OlBgW>c5NrIWX0H%-LVKtdrq)Jqr z-Qa2Tyi22#8B5L&KMxKu8JiXuErhyZhRzXJL<27)-JTQa%yrJu7}bfG;OjId3cn1L zANGiy`X9U%df9|zN*?$1N1VbQX|Pc4017$CO$3lP?cl}@WlS@xzhop+uXP8fqq>6X z=gmd3;eH~z`tL4e^*qdy7D;t$%D1+N*O)L-D@Y4B=0@4ZT+Q`EvJT5h*Qm z1?;Y$*V$lq$R*G`t$S8UWpPO60);%n0f#Miy>FXgX2Mh-7WbF41gu^%^s;yv)<^hB za&>@`eaq#1rA6?oQdU%J)wlO<;xWcAt-Xk+x|vSXiYNgZ6%jtVyn*lt-2vi!MTfUz zEnE=3^TV5}J(n>w0l2{z7gD*N<_){~v{UoSYwLCk*4_W5`X1q-}hT zH3!kSYEs4u#JI0-QD~?SLPz1034i zVQ(Ins(CMTUu8Zn;=^5YlO!GVc)<;sAtCMxpPuI64}wuEK*nynI>XKlHHkd2h70Sj z>K8AN5+h2zSjskeIT{^o zqP7Ti5L*LhVo0W$%qQdDkXja^Y|c`KZWq@tAnk{SX9cb!ca=gZ4(~L?pFyPyJ^3fE zS6~S2K0;S40=aIH4ru}$oxZEe* zPC=~-V(yh`Vrny|LFN_R@7iWDx~ANhDlt%Z!i<6>`h71T3$na#3D<*GrKTXkA9BzZ zM5U3whZkV3T>%Rf9Y*8WQ!#%z^FDHx98>E zF-4$}sdy#nlP=9F9^B*@FurRpBD_?6K4UhO9UOh_V{ILE^qf5G?B6qSx5fq=);!io zW_2$X6=iezo((yEKQwoOs#jtmfr1Kdo^BH;d-~3J6hN#>f3RB&xQ!Q?J!y9kqG+Ki ze4s{BUG-vfg~y$NXu0>lQJTgt1{e6k@y04b-)Rq5_W6-wq3}RYw0P|{gjM1%I=SD0 zmu9KblHGnX%_#|)bnZVVZ<4)G))+Si(baea>-D~QoZN{%k6yM|x5q81AOcdU255{v zx-z4Y97(iKZsxN#6~R1hCiK!gioetnNIE*@ZsCbCgZE|2nK*ox=bZcsxzdF}b#xML z{zU3Ib^wXTQEvCRN8c1K2wqw^?Mf}CY?6x zMj^YTbaH1J*oOu)qXZR`A*DHJ%6KzaRzzUa7zRPcB5^H&_-Pq}<#f zRdN`y3^6G5leo_~l09+Q;2Ne=2VT9iy7ZI>CB@wB!`R4YdC*l@?dn$k1On-vJ!lt)`*tNTK)Y9e@|k{#<|lnqI!s zXzfXnWVlWPbjI*Qq@b@8sRxeV1<;DM+}!Y;bxY0xS*-$_%X2QC&d+Er{ck4UCDHdl zWMjZe?YW(7r_JJ2oh(TSZr$jRCCnz|V+bK;2w`!3jq=vdtlN^d^ZjaXE5b9~ME49i z69w_vFaE%y(cWa?%#7_Zi0e2;y+cik=4hr-hUUDQ8L zp4~>xV{UGM;0?xY`0KW~F0+|odUk)rx6;7Tyaz5_1|@?;q{BKb49pgM(3qgXvDXKN zEL^@Os*x^Unx&H%*I3aN+>+oCjb!@W;hwMbu;jowgB!vq?>qD9sY^*Q+S&DZ*z-DG zNR6v9;VGv>6Za?6twF|ozp0HhB)-+56bGPc9L_%7N*FTezo|iQV&K|rT&N3$h2Wwc z<}S^Py>iNVTgCd%&6$4G(>_lo3={kJ$_Ty&)yl9>{&(N`>R|8ORF7>r5 zfZmN4I2Rmgl2bn<3Cb#3(A^%Hg;$v9vz)L_b&Ls>UA!sR^J zoHCVm!AS$FTqGpkfQD=ClHoT$((Pe@>A>nvC%MPP#Qf;gI_|>ORFUPp>{1_#`+c@9 z;f}*7Q>pRY(e4b?#VPhkN@!uV*gst!!QjDClH9i%!o>p8oalHeF&3SgD94(fDI%7a z!e{`qQ7tCqoGqILol^)~bt(C#+SR>+9S8??MK!wd(a2gXX&)67BJc3(M4@^NpLQL} zsl7Oq`0p8Z@2RDRw}Den1L=V=DHI2?PCTd6#Bwus*a8q^!$ zv7I&Yr$ie8>SzvC6D=0VFLa-mi$ZUxhUSYQqZ7?OMLQ{WmIXhAG!t4d*c-mdMsTjo zY*lWxXpye_;U>+*d4<-LN|{k)hpa63YI`c6plfI42H4<9v+~68V-2jOtj6riu(Q3& zn2|*JupZhh>{+wKsB-6Kfd+Hq_y0bDd37_Cs}2B)*Az%CT~?~$7u`ThkKwHCApmTl z?_!NE+HuDX?e_b8`Lp;FgWSaxorQd2#+r>7wKF^f}*DPV6`dTa^(ZWoxPasUfd-`s|UZ#CG;!pv${;YESGcA+M^ z5QFv$?ZG}6fSYguA?l)@MP^T1`yt5uMrp%w(VevFuhnh2z7LG6p)$*Q0xU&L<3>Ml zv31LziueZEqRGfuSZ460B~q*|<5j-*t(<6PF`6r!5&-eGpAr$mOWGoRY$hl4@Piru z3Vsll7eJDm94=Dvr}D5RWE+noS)44E4={yMOmW|J4_>irZTj}RD-KsGkQ5qPncoW- z&+TQ^;vDizDaEFous%sxVh$5#fsp-t&zR1qnq4Mp^Lw#>mtK5E1vL-EEjz9&#qKVB z%udcOPyKQKkb7YVJKyv?NAHetIs^lQXxMOJkwQeYwj4{~^GeI^Y+LbJET*C2^VW^! zEz|9dcnU-`w$dnOQZO?{60Bk?7e1?AbrR@8r)oQzDlJb%!LtO6WUVM)k;EJkwvovP z6??H&hTRmRaidgMCc{fkxt=DZrD<&A>UvZ&_?A-Nu*?~2ll;?L4BBwy4xyiu6+9A#~ zxkSK-%iw3~5oJ3>TOyUf)OCbj4hc=CI|<&q7n~C`Q{a+IbqEtC#ExA~kz*)Ubpo{Q z!iXdCWu;)(Ps|HTv`iTU;?9QDH9jbv`ym|~l=Bib=EWks#v1a;-)1-umpx1s{e^vM zY!s5~uHHu1-3b{m0O`wVR#UNGi?3d_NBB--F)MUKa`t<>rQ$=1^zpW~01a$u z@CbPp5i`3|0{^~JgLRyn%dz+Uz@+imGn^Qg?T5(CCED)D#DC$wS5g6+h@x6rqc@TU zOPJ_0F0Os{pgvMmRx?;Rdd3q3+&Yzn!Q5o*N4(cQoBFr`vCQs+`c&cmjGP@+FvSGzuU*1UNZtAjK; zLk1|~9CbEiIySxR>H$^`f$4}qjQ(dqLPc=G)i}s71$juQeMaHMX-U4v9*dZss=JN_v~f*7We@nsBJIwTqom~e@L;NLbeEMo1d0DT>9e= zOsm5Jf$I4vqkdQ3#tNX$4~juJNvNRIVW3D|lxiEqunQ1!*iUttaC#aM5R<77AsvpM ze;dMOU30E}+@6*^%x%MtB&}6`nt+YPAC|o(_p_#V4trI)y$X+n20_j^4z93&Kbkk z0y5)v)2b}RTP@45I;iL_K%;UcAR9&hJUhn$27&mQ^MMCiI7P8o>BzHs)M04hW3%e8 zle?wC%u7}SfX(Ym1{u;QNop-4?imdap}$Ogkv<7;YIjQS zYdK(m=*uX1Mnccl`U_R0KYKy4LTn3Ewu{f(5ySmk`8elYv=*Il+;A^6D}3Al!4@aP zOdZN}k87Q3+xng4QiQQ$&pSdBo%w;j6lj_a$b8KpN}Ozz9Y5%dc#wbf(!a z|3P|z>P-CGLisOqWS$?`kpaD081-jqq&C*ZfdR)wlx1`E10AVO*|@L~+}KDDZykz9 z6_rq2^A`}@d<^BNiB1^OU|+tfda$045jW@$-=pJ?PH-y4)|xJSDaDY9>*?Xf-vb$4 zFG$g$9Qb8LUf-o(h?ezByXFE)5Qg59SH~oY2(Q7Bn zeZ=~cB?+H^P$29c`CUQ^VOLG?7{IO$3`_b23_u8Q<|5w)E> zIhvV?yF?8ZSvRD>BX5;7B^7^KgKuIA(rlEkd)j~9(^p_={K8&Jjs+MFS`yt9%A$I0 zr3+VtHd5wiF>Zlz`GWa(Vr`HI!+qmPz8d>$vA8iT-@WJt|l1oQV+gf8x&eEO07d2%z(ggiVvs0Kk$UxA+?} zsUcReeMVKz`N2pe?m=y@nmmxTnb`Ux4ZZ}3hNlTAj0EC{XcdjauKs`fU&!IBsnX!I zk8x}9yZd|__r?~ldSAd7Z6Gsp?-*4JiyiR{JLQXaB;O`=c~ULu$GNZTIEIZ6tLFO_ zf)1;i*->7t2<_trZ4lZn*%LE|u4JZ5;z@{xa-IO{r%}%kF*C5Rtm`p}TLH5c{hX80 z4RKS<@?N)&Br2}8IJk{bNhR;k zTZ!kK=vdxOmikX#lopMoIBE_zuIzg~QN_)cw*#rR^9R5E(z24AIch&G^_(k=Ac_#S zURfP)2*i=;7ouz2_}u2o5nO|>3{|)A|7M(lKCzD8q8Z*VaBy_~%_5lWmtksEoJy1QnlIr0k1=xcXk1BP|vB>L=MP)~>0N;Pz`a;)^ zb}gO_P#&jLDXrE~&(|@T*ePRVfGzqd-P~OkiNm7%UQdz?6o)OY?;@tkKjC)8CT=8B z)3yeH-l8r6=lAKh+_7TJ2Gc@u^6=F#R_M&*A1YJgRT{H+$8+f6c%K0+KlF&&=?oR- zZ`$q!tR1}JaJ|R?!9MSZtnNb&lf)8?UGM1eeJx8xW#~e*yPt^4w^sU`Apiq-!ifZ; zeDN+Gimk5e2+3SV;AkVE8%$T`^PZ9}Z45Hbr_?GW+z23(8cV&VLqL>rJv7Uc*z&>m zpTEKETL`u92(3sKu`|8zQ#Rpv-Vz3;z{Q}^sdHGWKq96Gpd>$(gxWd8`&PS+CN{nx zyWE)sg|FJJn-6;f2E<8teIph7e!D^1DCDb99*4mYOX^u7 z>Yo$#Q~WAv?3<@Ec`P7YU)NR?IlX}6N+Wxp@IRl!jyp!boUEE(epCs2V}$OG zgM0UTt!%4t6`^g2h&{<|Xjlnuc8SR0&q&sj^hld3FZ5F$M2!Ai&&MYx6k)5&2zgKu)V%E+V@NxmY-2!WMYM zCb7xC&CO5K1T0bS74fdRZl(g|{Sp2wS3HDvD8K@Onv|Ru>063>`VXe8We6}^1LL62 z#x8#bXJp`i(8_f1{vprw+JZ7A%a7e$%a!2JC{p{-VG@a@kLQ@C1QcQ#F3I!gMKH~R zAkTnLJP3|Xda?%%y1UH*KH%^P!aRX4&TLZfPU9qyEl-9>#jSUD5fM+L^U>t1f{H#W z4e!Q_0Bo8p%GG2z2Qj!I-j=8blcpUl-Iul5<#9G&@%lUt0kSo{$n@+U(YbCr872!` z`v7G06tHqa-rUo5zV@w}Hn=R8BjBtt56+GfAl=!elzTTy!~wPUq^`;ripxHy)ouw_ z7kR4J*zjj1tZLg&o9Fp!CU@RzWruqdh4|kQ;H@T%*b7wwK8+`yZ<(A7Z~qU8t^QGi z+C!UZ;*78sIOq}=j-f}A*jKeAJ*M(4e5*EKQ}`tgk&S)qW!5MpIP3R~SGqGJY|AGxrW3@7xQ;l@P{Gsix)xMVU-#oT<=80`fdGVLU&kKqXL4R$5yLG zlLPSwzkVegM1CUg7B!NE=OH6(c*p?C3(LX)l$4u0>WE=S^^$!|e5$e6UEG znJ)w}T_resxIQNw)}e1hp#wMkwcP-D%V2BtrvvR-QQX&D(A+cySAZNY*_vN)B%bgW zGJ=p~5?A^@?kE>X=-a>gZUKF_EKXwX z8F*%`6+CXyssxalc?#vj1DMWm>mPP3*Aa058GfT@Fhf99TGTWr^rqep$>1AO&eBxv`J- zNSO#SbPJ9EO*o($pPARsR$7Rz0Jq6rROs+KG3nRL3Bq#2(1D+ia5Cb(4fHY$oN7`Bw|3_l=e6By@BsTRDc{a68UPtbXDzFKjR8VX?hdk*T~}&XU}XoCc|Tx;x&K!rULvm6 zX%ygH8eG9YTJ5OJ7H;PzV@f4L@9~s_nTx4%a`%U03v~4TBE$=bFJkx5U9C>7O3Pvk z+eKV_0>m70b_(~PNMb)D3|PkQE>;K(T7K8$jeYZ&30tWSxNLEEkK3Z zWhl1b%yhfuqG^`DDkot2!>51oSp?i~rUj6RNk;Ll^dua5R&o><9?c zdljE#m{`tNI{}?|T;Iz5V@V_DZ1&b7uALrDThyRehhb(efI+GDpy56+PxHVCJ8!|A zbw;>dQn39L{$yDE&&;D%Gs~HiDEx|L0X%O^(@AUr5WdrHo5ahQ#qkUH$1;mh+$c$J zn89sF!+Tpt3bb~Q`i`fxsUm;vm-n;kLBKBwk8>;Z8;GPOr6) zjQ1-Uh^wz>0sra{v7Gl%h%d`y4JEEQl((ic@=AtIXGb&L-z*w@9a*I}V|z*JUj<@= z{owU*ao>rnXNxSt&a|ZqkfZHR#s}c?-yr7wn;!F6Wm9CW6_yJg*72awONL-{aV-OK zE6k-}!!^kOeL81x)n8jecQ>>Bsx5>uX@s!v4%0wu?oghOEH>ZVD9+{rfc_{Kl?)lC zId?#3Pm-}y-LjXuF{21r55aDX<{wkdD1fYU2sWH?D9W`P6b|ne;@iM3f=RpKi8ShW z?6!E_WPfcRd*Imz*z2xZn67$?o48E37AocF7$lb`9DQ5t*jsyBu|HmUSrYlR-CI5O zcWa*IW}BLE^vE*jwA9&}h`dpY5hoNsO!XPzlp@(aLu}F0l#;|aArk%=;g;r`#Hb|e zvcKO?l9r+DTiSp!w?8SGRjusf7bo#glLYZSKSlSi@U^_8ACnj~`Vu(bz{*p@;9McH z*tOAUFXRX*+a20hVp=2x*7P$Xi99b3u@s?4$+?szY?zO+{tf@wFpH8Y1+yQDaJO|s z(djo6#qZ0zhglbKN$SU4nw|*VqmjM;Rx}>a1a1wOEG0obgOnx~xo#q3a%V%qC&M_+ zolm)B&>{||Pa*m>Os8MwJCRVY;&-MYqTN=F(CGQUd0-JGxTPox8y= zJjH&&x1#RI)jYbld_APKw!on-K*~Z0#mp7(H#FSBkDMB!r7eH4Ym>W?k-t1omX6(r zT9U-aj>kVl9y?4MG3R4@hEFPBN59S3fj{rFR#cCo*)@Ea9uQE= zyM&E?_>O*+s3U8zQwQfR@(7tOa0Sk_Kx{lAT$d19bSSB!lV(KM5TeG%_FNM(`Xe~j z9%=c~_=tf)RrKJJ2?yB=_5XtFpx0GDW3RI5yMVFJNZxv@DXkqYT~|8WcSpM>a9X+M zOYi0<2N<{dSX4%f#%aI;Z_cy&JtJHvM;u21aP{`vpx-w$_=!2k#fp#gi^c)f%y?l^l2NjADZjxufQ*kN-xnqBa)4W7GuavOqEI8(pOa9| z6JN^$7gdxGR?!2%p}tFPaLn+LE!yfRpZ$ur+4UG%q~al+fx>91&5{O88l@yKVxK5p z@DS+r?_??Lscuy01DWK4OgZnAZ_1k=QUX0r0fBfTD_+}VJ&7bj_TKTVM89{H*~yxu zRKf88S#VdVV-1!hePM>*P~#y&xdKw_@b&@2 z3X%w@!ZIS$KSRSVzTqq>MDs16y{Bivf)ILf3G&nNGiGM`k;H_Mn4sKP+`SJM3nts*zFYFR7Mt+!Vl=OMyI z!opWo0=(fvPoVL-E~_$fu`hhfRj?lm{;MlS$am9OA2D7T@$`xxDZw(+TsRH?@zgTQiKv;aRt@m-G$;)lAr*`wl@^9BZid)r*r+1iFU z%2eHVs1Uyj-2UD@)%wj0avKt)Li+kXYD`RfCv1v7#*t;t!c-#Wtiqh7Tp(2RbI1Dj z31uGf3-M~jRpam;8|~1;&ask-ElzQ|=p-NlO){X*;xzb~8rXXS{>?=jc|m&WyZ6xL z#9*azZ7LxEk~AmZjEHed22;Z&>BwrWSj_q{!Q2Oux|S7$D+Z_g6I^I6*M+70L|?>C z8Jc57bJk_k6Bk4SAJTx{jasUox~{S^goIkLss0N{vaGs8>zjj)9-WL$b7t!xmhmFD zfWGEgbb^e(A=FK#(k!qJckNnB9e-MCKd*W?#!}FkZQdDxDFv|kbk@>pJ4i >aos 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 ?BQQ>mnfG2+x5o1vX z`AS}ukpxz5fUI^gF)zIzCoy5;*9XCV|8F!?0MhrnG01052drKQigzh7pD>H+tP5Yd z@%EnoS-YP?!C}3JVAy8}QTAJX_#F5Qb^Kh~aV{nTo9{(#k5lZXORlYkyZ9_8)@ACX zV+%$4-_auzaeke6ts1@IOBrvT29uAV4)(>|v37CP)h*cuo@Wgg@7#1Q<z%5hKI&V371~o`#M;7lUSfco>QJhhwV38dD3~^N4v34h#VL(9YkVM<%;; zDAZ#oG7T}?xVA`r^ly7FqZuyf{n>_l{9g!*tiF`toDR({^kpPcL^FRr4_;Ge12lt@ z@&@@~^;<-Cfnc!@>6wPCBFm)h1^Lm(NV4@MRR zauo)~4}Jy=i+zkK|KqP$J8d_wa~r{~R&!L!FKRCT>i(B=c~Z!t`+f$^Ao4}>*ZMDZ z+OW25a)Ohr+BzBn;Z9BqJ1QFHT<1|0CS&HTgfcZIXfwD8NJ8#HyP~@>n9$yI$$}>5op4f{bG$>l3_2Fl8n(jhuYMS8s;tU z>Pec@ys>bZTxIwB3B*%V!Y2@ROQUp@)O6Lz$Pc2rFWWHsTDJF!sLqWl!oACC3P5Bm zgyOOjL@|*_S@c~}Z_ZzIrkM<9Ca2-Sv-d)EjnkCdI)+Ycvi2NJX-r_5=*wVqO z&PA|b;gl|;P#CR+-rBwMF$3ILGrx(-a`PD7H+z^Mi@1#b5Wnel79WU_J8gD0M2Zt{ zvNARKOy1B@YGcT=P(aK#(X3(h62z=}PIlS9!p$L1a(_+KBWDTRfJoHLpN~*WYv1Au z79;A_AgYB2of%V}vOXc}_q0Y5fd0NLzx~is{Q~3H-Hqp%&%XV6AHZxrf0sdB)A7?SI z*h(?S7-=3*yA7O*^=z{B01`@B&ft#_UgozpH%9#9#SP9^LAYq4a2(~x25dLvE6W% zfa|j-Mj&I3oFVKwn~&KQVJ^ITHlP~ektCrh^l+?d!MTgO3QCI2zI*Q6(A?`QJ59gh zaDQQWp4GGI%CL2U@!Xz*W;pje!R$02#}-;0j0aN`_RS2KJ-T)?pWWGwuc~FM*ux6P z*T)W^<_{Gu!SORE?OSnDAh0=G+8I~qM{cOS}rBl4klVTN1L$BGbYF``F%V#5xJdr2sQq_;CL8T>$px@ z5FWilQAezb9O}&H+L3c@r(DbG$@$L6F#fo=Xtj(;^%r*5X4>xmsiS(!&lI~~w<^x} z4k-i{UR>XqsM94`u*eVUcxyEVBmm4Bb_?+p-tDn{7$Rtgmu`4KVC!%vdyeU$Hx$A4 zxCCbQkRX+!I1o}i)er`s8jm~jhtF+7wsrRIyREb2(L3FTK*ZEG(;2i|&~lox20%3fvk3Pt8;ejf4L?5%7x!EZ9QfWGBK%Kz z-2FRwv;NPN@MHQKKaObC&d9M9sE_77nS{FzGFn{mGR^U*b^-46jVO(N{|t`ET+ z_1tzCaT^E@*I6X-kL7mh;bFbN^GGe!LH>R@toBBSn=gqhLf@LzJ+~J@ge#}J`lFdw zUQ@{bXhdE9sp~GpmYxS?D{>kuoHH%Yhw!fQuqzEM-cT|dGm=PJcm5;DKn|Fe zGxdN5ZhO7QppSQsU34q$y97!YZR1AG@{vSPxY`;k)`P7%(u6(nin?CJEOW+b93}}s zgBuIvEYDRf*BOoC6zC{81N78(_&K!S?=LoAN+q65jG#-%Gho~YdKkz_70TD4<0aQN z@7tkWA1%T-w`3xiO8XEfwi80geCdgrR1Plb6g(-6(;s6$Ct%EEOQ+_ewSo$GOM2|4QVu?1hv_WH6&VWu&=l!Qdn*^}3c>O2|4~099T%#>mfaL1A)e~? zGeRTzaGq7fh};e)_NCZZrBClv8NJ?;OvW%9)I~dvN}0<0;2dYOK!Rb)r5*(BetG@W zIm`>ht2Tz|Bp16jLq1dh7_c?W@x!Tn-I!OiE5My&merj@MFd`sbs9_N_U6t%vjfE& zlR6uV^v9!+cu0xuMteo1C@UaAJ{+MphEvUC^UBs+4aM=Xm!&H-^8%a}QkFfi} zE7qaq0=Hle7jqeCu<5N(Qd)Ime9F0Ys7qN;M!h}?2dHe0^lvM2U5L{0t~%Ltt|g9r?Wzu@LL;fA_%fg3|BFOmHF+>LX~E&7z4_KQUzYD$k1X*tzG zu03zzwEirvLi5gjEU2Sovh3hH7Bnrv(+R-Yo0L{25G*mrrJ@IB7-b0H!<75!?)Q|J ziwU7}pepf8Unqt_ePnC{-oqn11G-45VxqjV5E7wd?IQMOj_2-GzO>&fh(B`2(+1oQtC-TBD+_k zT bz8D2E!05<9WBCHrW(0AHBm}@@oL#2QH5&iK-hI!pFE}g!PPn565KRHqLq>!& zC)bAT9X+F9kqN*mje2^Lk4m4bP)@#h3}F5DV<(o%)WnylH(>VC%#zcQ{d#~8{}3A0 zx3};;m$;p$Zx_~`TFaaHZ|O$|gaeEI2_VKSeel4FuCR)D0}J$$uu7QP?f@a-~hd-rvpYFUGj%eCT~17ZhZ`!(#Q zUezg4!D9LxyVb(}w~^mtRk{cn`T`@wzWI5bsTa5qFZ6Epg4V?sQc;-8d;$+2*PBls zF-y7|CBrV!1UX(>1BAZCK}(KGqN*FMLpUYzuV=^a;s~Phc>+3$3Lx|Tm_ETR8? zq@N}glwOor{W!eBQ|S`{^|7n#(o~%&fg_A2{M)H%YZ72ENzYmW#_=;Y9w00TQsW8< zeox7TYp2y+(dwI9PRX<TU`qdepVrAw zgO=$KdZjYuw+dIz4#+aLN@pbLLv)yyz;;}*ZaHrVZ@rIKqrpFx7OBB4L9&$ZIEZ>^Cq{762w3eUzqWTo-wL(>NCPeIEBVMxjFPW zlRC5L(7pc-^yFQi{0wP(K=Z*p_gz(uW*7I5x^g!9lx#kDZT^5pW@l}I%1&cM; z{Tb{bPPkBZ2Or@VeR*Wu{o>eZXkd%!AsZ`tSZ}z+&u>*GLYxqn?!^TS>YZoS)Eev5V zCNm%`pr>uA8nm~H4q7Kyw1%}>vy^;qmG|3N(|QBa!HF35SmVi+B0b>~hDQ0HR0n-v7;&tDZi$;PID!UrzNZFRK@1^v@aazkyr;yTosK%%=4|AerRYj`o} zZhf-z)&^Oiw#Sh9uK{(>_McwYQ({E^Bb*uLa=2eC zxz1Dy^=N$~qMK|?La|!VeOY5^!1Hq{zec;VV>{v!%?zNJd8L|uA%mM;C zi$A%y!l&@o8lY(-j^d?pW@t*#u2>9`UHU|RqETVv^?;lImun19Y%}DVk-#43V8M)u zygs3Vmo-ZMKQ`e%*a7~`|K`8cZ{DsCMZTa6=52YOLConTaxy06S$|o-=5Vo z-^rN_&_Nw>@xQS+!~-=bZ&~x^Fick_p>l7hp)DWpSzx&!b%cnLs8Who33vhi8m|<0 zT>|xFHnOdjBMN7M9K!T@MuiSkv<-O^7f)Xco!Pe$;%LZ&g5G>JY^^7sTm|MV9m3v8 zeRLeWdxkP$_6JNk+hCG9>)kT{Sts21M3%QJn!jcLxEVDoY(;wn1+e@~D5A(;!6SLl z#GvF&Yv*@a>$|$Ow)M9%?fp-eEvVEmgOw`_HvRH-;JBb5gI)Sy0as`LuTi!H0OO@x za&f1#g4F5`Tj&G-?omlO{C=qhHS>BiDhr0OwKPQO#$#W{f#GB|x$b(Qtci9IsCQ+O z;=;Yg)v1~;fgp6!jeL&|{w+U(&26Yu4EhuYNbL=ihvHm5tTIid`7)OmKWVPEHO4TV zdioyTV?s&(QyU2=(wUkFc^}c)cRQT+9VIM!TIX`cN-z~~CV*}57jF)YMGd}&3~={| zLpL6LuxaIPU`qy@=aC1RFaJwrGyb17!$;PRwO=}kzI~0re?viH0`=z*zbW^>nje== zY5~{$R>~gYzScTSEVS?szeY94h)6hF%B$(H{FJ-RU$cogv_g;wQSv3oV2*k@$=MQZ|IT7M2fpy}(| z`#xM5M*TMDy3my;3ItAL?6ADhwUlGMu1DExmfQlM&mHFHnZUxSNv9V+DN`EtN0CGt z6X1;cHof)nfz_>}C(o+{1J`HzdfM;;u4ABvOuU+>?2SZ5Tkt0Ji|ob)GElstELJj$ zh91u+cBnFrX#;7k>UpEl!~gg{i|G9?-G4l`)bcpmG0NoUSxuprAisWZ_H-7^X==%D zo)Dyi3#EFBaOg2nCYnFodVB;SUabBQF)f7N_dT5MTjLI)QS-#ef3r=;MMHNy& zPZ`%BF>xIbNQm^_p(lj}zt6-k7Hml&)-*^$^&V7M8acg&KkVhxW40>k!&vBi7t-D6 zDjrJ@w^O_XU&#W3k9F^-*f?l!Xz%bJ|Cb&a<9JlJI?Whh)BcrGJ#%_W*MChWTJk0G zk6!S^g3npLt4(a>9^3B0F#D$I*5PKPGGDA5#Y?_m(toNkT&S^-v!iwOETdTjON<=;`5%$DYgtN{Ib#U}=0DwxRnE_BjS&%xIp z{9ZA=PWVh1!k@-R|Cff*P+j3oI=yy?1n)p_A97-iTkT2?SR2|FLgvaa{{hxjd#`d8 zK6Dt{t--b>tGgtKSc^<*YzD@$gn4P_=I@FpbKNYUJu?x&sk4&L%)fQik>ZB|Kqlds zJ*~*#YD4D?LzaX;98oWL28;(Xrut+is0Q4`$~)|Y+q+6#$;Jp_y%xUKoVaP; z+aG#mym~Enow-el>vNtBem#PnOBMlA#M#nqh9*+p;FjeWjin?w`CCTU7v z7OS}pqiK6)A;mUYg}dDKLCq=R0=@#ufGFr;xp9$0&dt%3UsFhxjyv?b4d*~5qmzA| z2Uub>+<18nQr!%wO!Z>qQuQ<1ww_H4z9BD!>w%e1&XZMB4ibbS^8%}1cnMmCGd@3o za_+QXmpxopuVBYa4ekm^;7yn@(Q9TueFj;>Hu9YHeM7^otj74s8Ds=^NyqR(2q8}x zy|C~@nC)z*PI{ggR`GP?zbiUla>b=Xg0=gFweNJOfb3!(82Tx>R8SBpw#lUiNJ2nyyJZBCtXo~mfN#h}C2%+& z)HC%6Arsif_u781$Z><~RTG@m+>>&2$j@hn3BS*ryHLca6yDCl%UYU;`30iuV)EeR z)O`z~9ERp1G!s-Aooo*m#LVJuqr?P1kq~T-Dk%?s&+lQ{7NvM*FH2; zY+*ydR( znT&fnn>UnBXWkh?xqqOU{^(O9Iqm=^GxaN9z+I576ZXi#vwD>V@bt(Efv^Z8 z*bkIEVwt9y6;14V(^f_NkC|ytubb!7HX6j^juCNDWS}f=IO{e&%|?t)L*f>;u}fd@ z;!GXK3=w5FDbc;TwukM^;#vmyV>crVp!FwSGugq-6GF0uvVYMwjAw!a$rvJ z9^V)B-Sy_Gh|0mGH5YngD@E8H@&_-PjY2Ref+O2keH2=)UGk+56hBz}44r2tr2V&0 zF?7ECB6_g)pzf>=_M*aYf@h*f@X)xpTSP*OmrWw?VOopj|FLs|06W0 zTrk*aM2y$oZgh~V#$XKrV{7%`f*3)k2I8!o=L^vPm-Sz))8@+d1 z7-{%aUdbW4Y|T%lTJ4@yzBD6aBNF0sz_U*~59#2*!_Q>a&+=|yo%bm81kPWc+ZK?q zeyc;#2N}$Doq#1DK(9T?Jjs{=vE>y`yhS&OcDorIEsn_>t!q*m6~2(IIzygIu?${C z{V<&yRj?gj)1#Y7i%L}^lSyOHAccBM1_yvuHjkoXgYLzh68$V^SEhtW*-ZIcSQ@?@ zWFK7pS*_kiN@Ww_ya=BfK!7JBd?n`5J z+AvVcYM8c$1wM$t@KBMqj|8!Kf%~}N37f49uz)z_-n#zE8CEP z?sk}VO%aFK#1s@TqFJCEiQualbcef<)ZD}B;rU6+h;dr6bA%N!E~Cyin2m1fYHQ`;RQSZp3}mUiEPiHz8FCQ ztUEo$O%Q3ruaRfP@pDGlpJXOK%C#@Yy90Eo|9lilNALF))1&GpruJU+?~vMit!Z`td%Sk~im44A(*N%_NUkbIvD)tWe>Q~ZAamDs8mr76*d z#Zj=*M)rJi64*qKV$@PN_phuV=)k>CoRo`d+w5!|f^Q5}+)F{_aw9~AfG`o6*#9n1 zEn^Uc!_D3sD)G&2$wcIMFb3D~z05kmBltQhml{Jc)+Z?hUGN$D^*eW701T%i@;(tvak~UM6v1jF{6KDNxw@F4K&(Pfgt7W&qDt@{eP0S1>J~8QvDs`$ddSSR z4n*o4trqh3wcYnR2S_;fEY=o)gely))r1P4gf>=rS9h)k`eEt@IC)$>&anWLLWKY) zZyz+`jYlZzIy2U+8zN41FCXV|BR)mQ>VfmPP1vlT2uC|%(eiLTH(EKY-&9_&DsaU3 zBDh?5Zgkf%k@23~pB~VdZkYq@Xo(;oQwy)VRVDPIkH<~0ow9?@(GOawDEiGAg?7nM zulFHRR4Jb$Jf%w)j>5q!jbXlD@-q1A(= zGpoLHkqcVvnr#{)*07pW(m>7P1fddEeaA3sShgtB_g(vCmV0CTv)j+!3|vgDPOd~$ zBA6ar<32&@l5N6jj=)-M zgw+}Oz9{c(G1Y9NqvF&uJdK6RE|VWRJaZlyioDk3&y^^ze;C2UgsBQvvY@03MxbCS zlU;i>?(#bbFOgl56!;{zCq$`@o2DK>Es~o>4zpcMogj$gk}=2=HLG^N9KZtQITgQ-*r1Fh{VG>4 zM#uSCl%o>lAIe2TR<&0fpu!S-7l{X5B>=!tJah%?l1VJSP@egc-1X`V8tJ9xu*phB zyfAI`NoeRuGVZW0JyT2~$Q9O?bt9YxnbHk!vV(edihs0PX>V;PJsBEQ9A-94@)8fE z4=NVONuKi!LP!=B@|oK$PXE}>iw*ZlUQ?&X;fx8yXh84z(0i?6oC2-*4+Zl!2hy^G z34HZn`Kg&&Op+)3)2#3d$QG$Ghw2nb+OR*Vk}a2pS+m#bTc904agL7D!5(5|suV^z zmD!y;*$1}Syp1leE?Nb* zy1Rn=vjWBR8SOGiCU-maFD?+qo#z@!@%^&Jlb%}EA_Mci_Z^9b0==Y?{C4$0_C0GR zxU!Ljgji#^Gpbt1upCaVaa>a=p&5-ZigXR(b%o_kLdtS#>y2j-FJaSr z70p{<(cwgXsEAK zSp$ZcTo5K1Phje`#hT$iqbNf)>l=G@LD#B=&k z9gMuU;gehkg~(#^4(MySyKVru7^PwZx*-OtQ4tg0aVJS^#u*g9g zrCqbQ)aeEeK6&c+39jeI32ISjCcOk;7bN!6UHdu=Qy(6qIlsEDbEZ;?@VP1ttQuvq zFG7<_ix>F2$lwmGtM9-v3(~#QCzX(S{-!pJmyK)E1+H_W^=?%nC8f+xzwfBOO*|IN9kkbBck(B{epHE3ck`Nmi0h%N{#dc;*1x4PeCU<;X zfoM1utME=ZBN50j-`Bgf4VM$uTjH4ap~P%5)g5#9K4UnjnB+L0(Pnf$L}t}ynujE* zN`!U%wYH5ICv(43Q7L5St+3tbD$^Gm$f@)wXK%+Z-pc6 z2?p$00iAO0JGf|8-!iZmQ0ks(Pp9T9OJnW>;E8i5u5TxU&bKeK_*z|X3>w)kv1R*& zl>0icYVX>a%&^emHM^*dujXVVTUdwH%M(ap-ng!Hu{HqDR$4P_WEVBG@VRC=*z}Y; z+ryL~1jzf?^WE@Jp#rQRo=PdPnhUh3_P|YBlq}1lDox1Ub!+0zzfz=-SgllGxOMga zVyUU(KvPIP4dvJ!CE;rXAZrP5(MaHZx};G>1Qu|na6)&wHCZ>W1X&#<&HJ8VL8+Ti zK^c58c*}Dzct9)$kq^-*44?vu~u`%_s1Gicz*0JQGclneL~BTBYPqm0{|kBM6{@)HEz zgf5+68DB@sOvw=2#(<}Ms3aVB$JbXpph#%M7Rgx$141_TSBO4J7et9fZ4s)z6&=ao zFDo^{w?Y>Gn+8Q2$As;NcYez>GKI=6k)A9X4Kw*Py*NUI&ihlJ!GXn2=2808)w0z! zCo{u%jG$MknB7Qe62rr!e15s_vLM+wdz*cm5f%l(%sc#VzzZ-2oz>fF*g9$)?w9IU^(N@;z z&$^WrKO(I{ZGc*UkmcGgVWPu4rRo|D_ImBA$I;^Bv<8a2w`RTICEFfJDn2Jf(vSvg zq$nfb@n*~8iNof94$FkMwGXv3@xCCzRsIeDJ;Hbv&{o?)zsGqMQ~1LecDqk&CAs71 z2^l*ctO729BpuRc1_B1z$@;7C_bBGJH7 z2{J`c_RSLL_2PC2OpBI5p$I0M{1XKT)T%?9C^f7ZST zb|T;7{&G3E_3!u_boWe@RnfTTX?HVa}?6!>vf+k1wpTMg|Layf3wy z_zjIiTGP?i9zMbO+I+~|3g@DZ*3pagzg>s}v~u6hBx z#dqT}6M}9`=jgr&xL4zP$oAWiZwzv zlTXMqZw&4jywmV)5zG)fbjml%Ewh3Dzv_socbnS+yl}fV^rga?D}H zLGd(YNw=#Har~n2Y6?fC`7NSOnnA-bRM&iIE;@2`?d1@?sleX*@Tv=G+yiwjj!81O z5Oy^#ze};O(H!le^PX!>yM~jx?1(=ovUh=QZr9sWO_@GQ6`didf5&2 z(yC2SkTOm@iQnfB^J*jtg2BtzqBU@L5=_99*^iAg=s`*MJ>{!%<$!(tLDxfH{!%Gc zYe38q4G|he4$FC^ogGr~jIgx0n(qqG%S^u+U1Ye>tZ#7T!^Y2^b>mwV%WO}yCX#k} z`({ESSOXstA*p~N2$1ow0&I_w+73<}Y{t8CniL`DHMDl-nx%PtCQaZQCjS^*RpzfI z`e5`Z58=zQe81Ly1F`-qBb_P#K`nULQ=P5OQx>i`*CrTb$MgrJdFCkEf1lW^@ZkvQ z6>1OWm6i_lxFiK9m=Zr@oGvEgJpYT4pJN;jC@|~r#A7fuL@>JKczje0s6P2}E<&37 zAeO4mJN^AGmu7ExlSZy zN0OWEfB&C|7l@MIj)4l4y@0hnRW0A{3r}oIf-lZ#s2g+SlNM5??Zj-ghxHtoToma) z21O)L@vbFIt}TlFr$H7CEJVf!7wys*8_mfPi^Jco9kDEK5#{J&7W&&Wl4{^pD32f*S~zv`N(=%K%RdF_ z?DJ?GOiM!s3Fo~%tI7U`*k-qttH4mnm8;064+2wzEpGM`0$!zlr@o}dgh9n>hchhO z|KmkyUUAHGg!VXfGC~c8n9K$Kn0DF3l3d=xAAttb26j3zz(?VG;!2f5Fsrd$v@EW* zVzB$sCy#1anDiKpyX5KqGeClI&N>S}){_5ISbpl~=EI$c2-)>~i!1&=Rgb3P4lUl$ zNWSj}c!o?k(N^ryKM3cz>i?ywvItMq(^DQ`v$@A@6y$U}B38A@VCNNSYPPaO=tPbT zzjW>E5>>;wl$=*yIR`TU7RqltBv!ZYNhXh>B&#FubQsYnxRSzg2V9pCS!`>wz41i( zyIDE%d(jqYHN{6f{~Jo4W#Fh#4u#?WprwnDbuP;op^k$dJ1W!WOBF>ok=w2YtzM$# z$G7T7nCwv45J+LHsYr?;uQ)6q!P3El&s zvAfNsFqH4vwSUJ~2G+0@?E+(KOj6Y=jMR%V&i5{?E#x?raR<2o2qY|54=7NcY)Fd2 zVrhdo;>m-97`1!9c_E@%zB}qXNMaOSt=fJ}rxU(uS7{d~u_ z87)ETEl|wU4?WpY4D-1Rv$_aK;j35of#WJD+c6sa1w%E|GxIzn_(0+9R%<9Vrr}K* zJ$aCWK!&9vi4Msrt^io6(29B5e)SbV& zIW768MD9QFV;WnITq-wtZp~oy3XagZsU}P?AdNL&ART457(kZVzI5*5Lqlx*%>WMmp;29KXMs(^!i_i*gsZSVnkeLIEd|JL5`+x7wuN&G0c}NIH`slS z0)xEqxrKAHW0@(I&o}9gdO@qt+`?|-IdF$NX9LQazt8>9!|$Ht%w!+c9wnhI>8DiN zJ~OD!WjTu88vweP8pEoRQ65-sm{xDxlli9l7&<$TlfLlp9f4rh0fQL124*R&H z^qZt@z+neE=MfzOOAKxdVoPhYJ+te_(rPv=E=&gUq((^5stPtAoALn=|L(ky(hZA> zSRP#B+Vls~QoD~+EcKY-=kMcVV$pY(o>B5Vfs%4>LQoMjzyaij{L*oQ6FVI(gA?$g zCVKnP8|dkf?CQa4un<0)Dz6sGz@hl{*kGP>=It{jBDvA8$byS(>?V z?BR8-jTm6T9}3j&^CJ{c8|$ei3Y?bF`+bdDYaUr4aZBm}K#9XTFVVO`Ie`nB&xo=vLs@H_< zl0bwNpX`X_ z&XbXqmg?=jgce#iZU z);L3UvyD;XdOrp3t98N#gAxI@y$0<8NpWbE^=A&`L1ZmpFFq7aCXQ| zwBrHBWiB8sVvb*$-4|$xXXsZ9PmPgta*3(rut}x(O zpq(x8^uohG?QRwU>Efk3J+VWLzsQ;BhZFa(MAwQ5AVAQu6Sm;3?ABK#HqN)PPg;3u zC7ErS?-r3>r0F2nL~mAtnL$f~Rz#c@=sueGZ$D_8#@{h23LH|nRk1U&w4>@J)ae7a z+Fd!3Vg}p0aK-GfQClF^`#JnsFnc4m?Eh^VRO+Sz{lq{8xdPqkbn75Sim(ZKMefc( zvbBaNmc@DT;u>(Y1YmVi>f$FhxNky?Pj}>L9S4N|t-LYjBZucR~j~$F7^XX4-yp85@ zZz3N$k#ON?Z$WrJY|JO)O^MYMApE=gsHNiMo$tFtoY0}kJe0NEc9Zm#*eVeI#K8dS zKc#=lfD4YXAP&2>_dE3@mIA1Iqur8&bJ z??m|696S!1^sq7i->0QIaPl+HrcDQTSrD+7GCD+_0#vbU-hWNL?g_|`w?s#89vus(S zXq`F4dMOz1N!FZ5HDz$-WG(-Ey{X1RFr)$oL$}UpfP*09mC@(NoToEi$12ld(riX} z*T+312}CYg{G23>g2fbMAQez41m*Hv4h6VP_HpM%;pD`7_w4*`nRV@+aedrwtAEmX zyOLYgnXs+;PR~wy{vlwDu&ORJcum}HZ2i^#&KGJg7btM&lG(zVJ3wU&o z!U~~-WGSm(7AnU7$ysZI1Vs%q1G9(*L6$;2f#}=x9=f`rOn={M2oQiRzpW|#oGWP91x+#7M zj+-d%He^+-5ucKEpRj3wD_N=KZbkAq;(5MDsUM;)FSX(aC7CPn>1 z12z>aQNEsZFAm?#tOa+VU(XFP25u}d5#NK)b92FwuYULZ2MgkpN{!8wLjYWxuFxtE ziiDkU$>Yk(`E#4qH$#poKn(`(d2BOe`_@V!-kl9qg6lOS_7JTA0Zn5<|F|>bV(JODjGJWdC7H=3W!%3jJ8U_|LU|;g9C^J4_CdJLl42f{ zwh_CBg3N`f-gbd$u#&rmxDX}TN>4%72a0sEq;^2pH&;Dbh3lj-OMGxSInQWa>~j<-x|y7yJ(;ym4Uw{fR*kI}ib!1PbimaBvsHSi zuFRp6^vhNs!ZJYSI1%>2q=!G;g-xKMgLh$Rxb?ePj~TDxJYtNN(akw~nWerP`I0ft zZKtb^7pd|z6&IACWLW2IJ2nCyqdwR@G`gJf2T{{t3gOp97z`Ogu*#l?v;=#K%3aj$ z%H-{sjEBHhyq%l%AJCf@+O!T0Z?v^05s3Ug5K@V+29G7d{{Iv0dpGGkMX z6pP;qg6UqYLY{ayv+Gy8_$;#PtNqEL8gbsj8~Tk{{dU1>$iZtR+S)*A%og{>8s>E} zOxZXgUV6O|5jee;ue9>UCBiLuoLhKbzdk=c9I{l2&-Ucp;^(hf6S79J^xW&wqW4&v0P+6t+xH0y>Y3a3K&5 zJ+Qi07J*~SM5{7sv!%P~PZ7d-KDfKjd>-f!a7o;;V<-{4$bN9#v}tIImpz0B`S$-O zTBO!Me;h;sAr1RqyA63}ebU4)Ed))i-w|mU>hT-Q6hku%E>$?Qg;)I%I~%ev!3C0Q zQbA(#qFUUv#48qUv z@k@;9>rLKVw8}nXOuQwEeCO&+53bWSHix9xr1X3gKi&0^bCAjeU$COWv4-Gx>JW1= zGkcNg&q#Uk9gBd!v;ulY^74YgxR1iU@{|Tvop3pC+1Rbp1g*hp%3?gh8r^2|I5x|H zmpNYMViCcete_CzRsDz)1)P6-pZGPm2>1~?6xTBp!;>_MAV)5XJAgG$TY&eoHn<7G zi`lT8?u3Q3(owhH?QpnA(!+lpo;%UeEeezyh#ROw^(j>#d$q)8rXzTIZh}vtt4gV; z{3Owxi0q?O{90ZMo$Q)s%R?Bu4>R=uhG3#J*lCwOejFBcIIDjtm3G&U@|pMD>ZxcP zQgAx5ILrCjMACTxU`~z#kzzCpCXwpLb9y71v;QN-D(P~b+UN!lLZjw-&eG1njh}4o zrwpv}$yu-`KisXAsUqYZt(hxMEXB4S{aX;dqwb4j5OS~~byANqGZ>=a0JqA*4-fyM zoG{KLrz$)qrD1ScpGXO^zrt>^gC&{6ors&;fpCm<87He7p`Epbs`7(DO7Xv6kXR)2 z9~~sr6B=74EXsc8l!dp$%fT>|D~W+;y{_z9Ynin_-*JHlt^*^Cc3dFo+xRle>Ps{> z4kv6nlUsqA=M~7W6x8~2Lp(QkJbb;nyXd+?Im4JM6%UM#BNX#*%=xxB)}W#k4=E95 zOZGqSZU=>Yo4v>S!>nI<`mIHndT z7xUTb4@c5Yo=0t+k3ZRy*liI`DI$Lb6=_nCbe0t%kcg$lV~xieLlT>H5!02DI`Z>h z6zh?RHd0osf*pU;%||M-BaUnCjZlgcIaelJ6;E4|2)(_jJIZzj7Vu>k>e8$>8n(+i zysU%!RP@maF``6`*KsJPO0bp}^`078R2zSDS;ZDbR?M5GsX3t$6yz1So?>bX>u3H{ z_jY`DTBPn;i9@AFlE5Jhu(Fo_hCw$H0SO!}g>>``(4GyGyyh%NMRz5q zj|Z&KK1)QHVkO93KU1=p&jnNR3~Uj4Nt`)CuR`%L?2O^U_wNP-BtQ2)LQG~o)d+y+!DC;ZuS7wCs4d?J7vaf-i?T0u_LgyEd8Mp~?Ss}7zbXAk^n&HTb%Zc2EwPFmc1CJa=Ja50K2-Sz8j{j5P@R%n zU8a3>MV?r)X2mN-Ac_h z(V?WE>x@qC@6PoOahTyYGOc~*UFEt5J zXE^OFiakv@nKfSE($8uEW+KE?hB>F{9uN11gEuO4L#*r4iQO6a^9D17rZ_7bn2sDpll;goZNB-ODA&s9}WGe2{b&f&qiCZE>BVAwI-FIxm)vT4_^m%5{QgS>AU?TsC% zd3*=zY@}h||CfHFzVKYsS;ylNqJ!PYg2S2AUQ5B| zw<01!G(owO0s3O^K%RFUftqwSQM6}ZI7TL44GScq3BThq$TAWSM|fcK>Xp>K$R2oV zN1Ou)J%<6S2b^|>WPuCR$z(06Enw-ahNRD0E~C@-1xpotumDt`E!gwUoiW-oeCMe` zpL@zdDW~l@*02Ed%MYfuyloH@X6Hnm?mNoyFA5>C!&+Ze^{pMry0t3yE8zP44!ie{ zvE?R#ODZRR1%ol)X})W8FvQc=5prGDM*dquu)hS1MGlwX)TNl~xx$GkaW!D=Ttf3n zCo8E;ww7^#lT+Y`q3uKBo43?>oT94I*$ic3GYjI&;ww(1=QaAb%^TUAZP%__IO*W+ z3`Zp6e=w`E!u}yE`tgmsrWe-Vx`W$$W!v$DOHA9!6dQ{HQp9;`5+xZkwXs24M91R! z55M%*1$#1b#t^`EQ;Pv~f)wEe*-0#7c&S8|-NKXiIVKW<9Iz0`T?0w3U`P1rfxo1x zUZ3g?HOQ_<_&#-C0#vzU^jxboCHp@!T_ZWRE-)w4+NLd(Ui-xRd<;8DXg?I3xkxlTPxmt5dd1{SUQgO?X+HRX!{7a2O zK1x2p$KiM3eLoHXeBxU0fg;{?!Zvmep-5*}D&$PP$uOeLqYeHZ3)Z#*R}n6snoB#C z;)Uk&rL9VzcwhY4Y&?^_8>6UVbFT0aD!7JSdX{`@JgK;UI2$e=wu&?{4yYJ+r*CZb zz$R^lS2Z9LU4^P^IL4G`wzf>R&S^*$l>6D$Xq=`eZgyZKd~$|32Q-S`gS4&j=<31mR= z4LJ$#6Je;)Fk{c@jZ?RpqDWoOVT=+5z0`BFZ}ySc=eHk9byOOU`la&5UoMYYIQ|p2 zaXLbLD`G`s5iiix&U&Ix;*U+R3jaFHA~^(Px(&0M8xtjWoW;$-i2T>>bw1QXg*3TVRU2N?@*5Ne3L$Nv+fr6{*a_-)TY)<`&SlV?eV=puG=T2 zvD|(VItFlMA0Gw(_lII()^m2)@r}vSIVq?4@Y``oIMX3bkz%P*OGo+{G@Hc2VCbP z4@rU49Zo>UUACLYqwcM* zX3_?FUsK3%H zzw!E}UL^kwZkHb~n(?lG;RM^nKfvrSZ|*BT zS>fn^4iC> zp*q0gzZ)PCz&rrtYyiD8j_Bhw(!w@@?Z)j*@lRQpnj?p< zqMkO39guVi@;_W<3+cY{F1B9P9bGCCEYl4l}8jD;1w9^93fO@qkw=iC-AD zjZh+OTLETSVRr}z06MwZL&e|$0^myH%JbYn`OyCM_#NiR&t(4^YLJxPKbMPT51TA6 zM_gpuQEz|g=Eai1?Z$p*B)y7e;_A}q(E~@V4)A-y2kmD=hOQ(3%H+tP|8<$b(u+MtxDa;Y5gR{{0sPr&z0N-GTl7Pg z*^Jt1>@>3%O$4_A8dE2^nmRdYk`}BM`#7ZtOj&*NtG!te;>@-6YN?ZusHy^`ckl;h zJjPlWqDoMGH2YOoE24YVsv#-5ih?xSx3LBhR z{Z+PXed)B}f1CH`0^XdVDSaWy(!TI2yzh{Z_kc+V7?G5ZU4xM?+Yq=&?V?-KaPYHX zKsLlXGO7`Gvu6w+Jk`2)Y)hjB2Ltcv^Nvaz5}s2ipJU(oK@>+R5fgNR6n&2kv&ax? zh>s*Z@I;=UAz%Sb%;Iz&2l0sZsF3InkUeLvDdq;);;pRNGMh-^VtiH1eC@`XRPG_{ z2ZM6@6O)wS$q8)W5JQOQ$cgk%szq<5G9L8tUN|3sV#U}<6kq@*iCQ)AHFe6EpXgN9>hy2b?W>N@lX~u!rI++_~ z`a|e-v@r641Hi6$XZ0Y`MZ2%y*yAadCwnm+4tIf=(HCqy#5$=qGc1ca=2Uj)kmUs= zQcJd4!}(N6&U~dZ3c=T(k1qtq6aJSC%VPhzu87)AB(QED3I9P7{b?)KE8IRsiz^4B zl;U}*_tW~`>UlyF?l`-)s8|~8NZ{KDjg4hM|3?C%>YG|H9f)T<|M3&jT z;gYhE3eFcx0xD|}r`AXjA8+*E4H%GuKij-?SKy<5DFq}I)(x8Zs@gE`bUrY(UGXoj za5xXA*PYEoaF|IcrSY|U@u5Zm6Y&pp;n(QtE8$6v=ZhK8;&kvAhP>%#E|z=tw>TUT zNs6C8FzjrMN(7Ev-g$*1@DtGrik>3?Br!)TZqhTNoj3&t_s{17>zV_t!>=W!G^g({|cuRu^CCz^UZvbcF>$H zRgI97t=&=x^E4BYd-n5`r~tFhZnJu9gw~emFC9j>#S$FFM+F_{dHu}{J7^orVZx?f zUuq}u+f;Zt=K7lS*)_~Y#BjANG#8P!q(qG~DO%r>RI(DCIfD+jg zOapOVjRbL<_IT3n6E~!CdD-N5{8{v4iqv-{Pm3c(`=Qjkjc*z znVAT90Yz`e2Yq`dK`pk>WG4@BxgGUnPknc@c^xdYxs=v!AV(GPD>H>q!Z6_J)hM*z zPBA^VDMN@K^(qFhmrnHv4V0ER??(T?N}&+Kq~;tJ(J1aOy}Pylo-87&1C3=yISh*( z7OTu;YT)R;#z0bIC*uqYmD!#;S2;)+ojkSWcvMxXbYl_w3-UaQ3tMQ^BSp)j15#-uq#4g_3iz3Bz4|9K3hO`hFnx0SHcP0sLiR)#=teJo~Jehymbm^g+8mm`7mO&8~*ix|T{>)O~&3Ao~vCTyMp6bdQrvq7#yXaC;- z0>c>sW4S5^e< zGc9-`9Tq-xDrD>f!cv<1crjvSob}wPP)Ys8UXv-P&1=qJ3~?mgbuwrk87)I3qao5F z&k${aVc1cSK!KJ140{gFAr1ml;)me6>(Nh4dYiVX+#V&IhuKy<#gJ=e@x(NYGCZy3 zlF>raj5y>PIp`MGY8yeh1m$hGOQT?xl@mVK#Tn`5%y@5Tu4DbQkvDsD8Cd1<&LdyS zPOfW*9ls^*^W>nsZTO(&M;V8XtlW{E?E&{@YO9V!Hx>Ms*{CB`*Q>$7-;|BRCx75K&fL5@Z!tp|oNLA{VywImK}W#}^*8$KLOK zMYf+o8>>YwS396W(-!G^Zky~FfvdupG>I`1j~b8zmd{W=W08BZQfxT{Y13Kofb`^1 zipF@raoepi9YuUbQbwzH8IicLCUj~{{cGh%o;h}>Rd>W)qL7(EaA3GXk#As}9Eak& z2QN3I1W`b34+3Q@j`b_C$PRdUba{W$9e_@t!(%<@EYb_$A>32@@>2{Nh2Q6_?5fb1 z{_cWnf#AiB6 z9kRg`Dnj>5+AUTSFA2&o0%VxS=UNGo4gn})%aH=L@ynY6Y=D90P8BDE$`4V?J<*zLZ4ZYn+iU~n@ z0`8}X95%w&wWNg1@YQ)#qVQ5q$N9XP)!Ge%$h~}Vbz;BS)nplJ*2q88JzTY~+7_l; z!F8QDzneW9$p(GhPVnhP*ACFI!H*XCN8k{XIpAaAxAd4LgRFtQEd9E%pIa#W%EMc`&(l=dETwrONCMg*7Z9FBuh>bg0AnZ%e zREC~H*6ELGPKS88haTNy_xF1fb_*`BwF&`4?8i_QLow)ZXp7AGb`h=Q=fQgLFi45< zl3rFKL|~8La&l#0IA62WS2xy`M3p0%1cGx{Cu3Fn;DsC^^lufNPf}=D(CC<)N5-;y zolbaho*p?oE6tPUT3qX%hCyl`oIirTMRX4W8c2O$c-w4v?-8_1gPd_$2kNS6Kxc^IxVA1$D5TY5)y_fr9`pBJ#IB zR1zQB(dudE`jUyk#6>Q&0*pC5nIkOfL5mHJ-b$29S&RUP&Gs>;T^od)_1@g8>Z*4H zMi9k>Y{OzTJf5C=NxdS-vS=E@E9~h_Z}Wz62X()jz38w;nx}xO0XgP67yS;V*0{ba zTK@$yzo6Qw)J&$-mODwbi~AkMQ9}B>1}9=|=i7sxxw7n%#;0HK-oQXmxdcz~xH&62 zsR&}+0di%)Ik9eVUGEhj`<}#(m75E=^B`lYV(i4u>E8VkIP9l<*o%t4`D}e1Xw6|{ zq1>RH25uRE3sg)CIsz4DUkdzg0Ai~M2Dbms3uFY%Y}97pD6G*Nf5x?ZDc%{|$la91 z?PF_Fgv#)=NE)-W;>P1JBNiE>IWP7aHPYYoouVVz&PTZ90I8r^GGU6g#ofk}YxWK{ z&~Z*<(5O%bls`6(9l=*y+X16u<`HAAsp2l9;y%%dNu}o(r!fy)Oa1TkDG};bUah5jW4`?VAXli z+3;qp8dckIPKlHb1G=KogySCppsQiLX$jK`b6T(x1T_hwBxZ|e4u;Fxe==TRU7dO6 z3srVwh=%?yvJ)FDKy`=7%n6J>Sz%<{YV`IyZAZmc+oGcD<8znpY~)SKida+F7FLf4 zv)q*-qbGLbE8?S3OvvjDfkDDP^Z}!B`p7^8-6nST(-8dKc%9e5ApCf9|4%F;>*bJO z_om<5PS2~_y*eaI$@QPtMKR*t&%k+H8 z$h-~sDegveH?`SxY6Z1A<*3;lAC7Xw>}kV?9HczD{}~ulXs&Rw*$OyTy>%qoua5@m zj6FDz`qGnmU0o^m)UAv77O0#pg<8mNw#Xdb$2fF>p z_ZU|~1gD>Qu#jmvD@Xp>nfk}D?r4~Gvp~3>$4byV+0!H<=ZJpYp)_|al}!@f9>|n&wyOfXG*MsA2>iL6&(Nx_AA1aFcdJ`(kuYxdXV}QH z<4v%eMAIw1hih2PU8fmQC9n3O!EAR@4)RXPAh=$V&k4i;phXhqtmgL}`W}BJphLFi z65N+D3KMk4$38tRz(faSyYmg8@qJ#($~06`RL%I<4_qZunI(mM-W#kp!)xSBTOyNcaJP z+icJ{mZ_Xh$Ugkt;D4|6QezLoZLs^phnj^XDtv?b=lLHzU82TTgWoP!K2^Xhs#4jtjECB(Sb0uG_ZN1Q67_~ zu*)pkQVU0bx#5jQwlRh6fNHu(2W`R}7C@nrBJ4{gY_;VJNo$HIJ5v%8und)jjo;^hGwS0@lk%s~}qTZIFe$R~EyG@6e>Lx0K?$Vv(m|hc* z(^v|64*kf1mH%QFjc8DOEi{O3h8L2RA(6JOE3^2Zl~dV>*mMWjJ1dy##9daVEU)*j zFSgYwv4zX(Qlp*#^2|VRhT$d?cuDKe*qs;(x*sV*6^LZgFAdA2U)Q6_2;Z6x9-FV^ z?lBofPzP_o6$&l&IV1BWPK=G;x}*~j21`4iY zOfkA1)E^l=5s+pjI!?w4!E#K4tOaCc)UZwbCl1rQ>!nUN^*J#^5S{aUoB4`ONJ`^& zULRpB)XQ3DGX%$HSBb|!AP>%;gzbe`hQ(H6T$M$E-gGJSSqnAdAQPK~HLa54y2h+3 z!9RW)$w~+HJ9rNdG+qP;4^0TNEPv79!k(-;o_I$G*3mncu$C!Wh`2e6NsfV77VR5* zAECYCI}?qe>D6l3r@nlQ%DMT6P<(0%bAU^g#OZ{7#BmAgia+BTCgM2GdYbxtcrtb6 zF$V?tF>@@e(>J5dVqFn^4~m`Rc*XBb_BU$}?1t#0ut?TGy8#1S)v{{6u)-!bR3{1D zu1o_bcSpiYgyC0j#RHbpDECPwC75Gai`YN^!Fi0adh|ZNUJ>-K^YUPAGTh;JX78^z zy_hAKA{)`^>^)z#VLY2mcJ$o>A*lBe?+tLKTZ8d)sWK!|I4`WCa_>183bpWRp`zBQ z&lOfMq(k8OCVq?%%^H<6(`cW;^7+R^K`-upMuG9+d2SVaYB<-FbaN{jGxEG(aBHEM zZpyf`q%UDpsg7yN2XI@tK|S@h@%70=9%=9byNTs5i6=q~w*QBs!Od|7yxIuxgfUpK z0T(4_y)$mmVxfM7(4(7ovE<5D_P=kUNi9wd*btTbUV(=IA~?o6_0O`n>zM-HQ=}C@ zj&{S&2Ov?C@+>P-=pfNfXLCB&%i*??4|t4HE3TR}5;>q?U5+hhXrHVZj;?$+>s|CP zo>MmqlHA@+AU=qTmGK?kIzn)=jRv!7{>oHwY1^VKvc!sME11b$*uttQPNvj@5j5Ng zW_*Bqy{@9|*|fm$DD#@+lPaA1u}c^!E-Y5|(yv;QkELgEa4{SVkC4YD#l0alecRFY zC^1JADA?{ou7iVgsd4Bj{0{mqDuR@=j?U)9?m88BAv3cZu?cM^;3&>;N^v^Lqa_%2 zo}pOEqk8kVfph(~T~7EwMLM6fM0VZwBgSajPOyURJ=pMYK*%*-7-uCn@-<_1FnjvGh$lk(>NL@m$N)- z;5(AZQAHS;Um(Vw+eF5BA5f~cn7 zDSsCU+8$dGk^+LcmyzbTx;OlCHr-(NaC8v}o(mqY%{apTpHsCF#ofVI05zo&ao;rz zFwI9ZgF?F8g-m4)EU{C%t)xp=Y=|059elt0R1XbuH9nOP0A+aGODT6nIN=g)oHjL; zoKGJj+-4=%Oesg4xQVDvUjYuZ$_KT=^Wg90E;SwAj_(WgeXZ@5z*}*V^{5R`bu6zL zl-##1+JA9r3Mpwm=6bMMk^4cTEAaJ;%$DKVB?c3ZY@TOV z-;52Ng^0i&+fem8qakx=;e!?ne)1Ctv>y_?2FOCR@xaxpoU9sv zj?gu6?JfWL0EqQPlqMQ1Xb17pLVd~)zCFogjCxhq89;yfHLuhaag>`IL-nmx79}Q| zfL1Hd0)QhS2_*E$7c}B$L{v>tPM*k?%70ucrEE+5xE(7>K9?n5&qT_$iY&eXOUD;e z6k=}fvTnb)D7tVC@_Zedj?OC>#9ee2ko%gTWQ666<4W<%p4tSrIdH-wE*o0GN-ap@ zE%2U&@ymnjlzL&m_1=a=6e*t6z3$pt$JBl%`01 zs!UDec*o7hPj-t9dLe*E#fF55xUH%q)~h3eBEcRaX)!W{GV$&H$! zk4pBU44iAF8q2CaTaK^v&rA{y*zhTpe@XQo7T}%)eIO?U#yd2us&PZT>u|4Y6N*|B zHs(~F;Z!Y4loz@=4F~wj3TB#pgZs2#Z!k8s-nVd4#@{*uTuu>Emt&3uHIJg9K3n-O zjx2gnQc~)tzzh^J^9wP`4K|QDnix4$!ba1D?0O^pI$0Iz-3zU049MTfOf%xOF3VC7~HhBGdAI0i5Q9G8bwoQ1dCy!nc;;}3!mp)YUM3JcjwWYVpVL74uUmtfIP zA3Zd$#)R^%a<`EF&2v%zi1mY&b9iHc)P(dW@0Lzn_Bk=V`pR4=690)at{YWA3PL1f z8`BLIQ56RU1N{G&CuC~@OG|8*XZtE?#crN-fOGc#ieR~E3W`qmCucP!T_H}r@}u*V zOgl@Xz*4FX^TsgqoS5&q_+u$2?t5og<((~ohp1u^Ml`ho;qxdh#RHG1(uC1CansUn z(f!=a!A9qAN~6t_af`k3k;;3#MIX+yS2dP^T8RNj;2Si)B}K^bK7`yV7=zPP&>hrQ z7LtqhyhZk?wL;WMGviEba%D(Ir<}rKlH5g&3LVy{AtYvxXj|8K`(XHsx3gVHEdwt| z_)u~;Q1rZU8&^Yic=EDAT14(3xLv zC*+Ukio-Z+7cyP;qb*BubD{tL<9W>;;G*#qwkb#rql7jOybrA{y20{m|Kj9GW{&cl z2#%M7!(#Cny_--PS#888e%_Jvmwa!?v?#f+&+;?EB4PbOlO~FO#eC=&qSLy9zDg)d^7D@g_>yA@cxfr1hIoW2+rt z;cXe{EdD}2z1lNoe+!qNvSb>HChNoyi1%|W#tPtrs%FQY)mzi5s-&~H)?%FA^n`j zo(&ar=n9hM2}M2zrGPC{^ba>5ge+(|U+-WuJZ@vAE$WcM zN@B(%+uTcc2G9S@LmhgoQBB-bShN(2W}Opkz(~4&n(uC49&kequ%xsv9a$uv=gkQj z@4*r-z&syPk!qpA`%xZ8h?^P*?12*{YvI-frT92@L7mw%0OTizAu7y~&3FZGSoI_Q8GQ!D zrYC$x4agM7DLqY>bG`)!C{};~Rmwj9WwnjzP3|ufH35dL`9w`isx%bcQTVW~R@C4Y zMDZrwD#CEidl~`q|2b;$S_D>@HsYGSPTKUF>9VbYn*4S$ha1^GC_i8YVmz~rBEagq z|Bd&FO!JZJPZTE4V_k89h9K6E!HLeD47MnAN~Rqxl~oENF3U2XgMo;xB@tFH9pi|E ztCaMzGb#|xQyQ;0zP2yUKjQ>HDV35KN^TNa1hQr0#`-_JuUB|)JY`*H=%c*~%JW2>~^6AW(GyQ5d`Hcc#*nFWXFC0h886 z0n=~f#a|z{2JVv&P7Y$VMUM@G(g`f%27Q5>&D*zER}HQ`hyrNId^Z8)Oa2{j-WV7c zC(`;kMYIw!Y_m}rW~Le$cL|n6v~??q(R~$JW~8(pd?XZTy4GdEU4|?ftifzGc+5dB z(Q2@j?6oT!<5x2=OMka@*D^C{#s-t%8xrCYUH#?R;gtOEA|eli{R=Z2Wv)Z1ze!$7 z>=oobAXQia*p8O!>&$4?^Qg29h^s6OjJZg9>oGY$ZX-LmwPPE;TmByMy$8uQ>dI37 zXQ5ZamR`x;+mEQNs-)TEcUMSvd(ahKio?n<5TkETs2X?>G{uNd*$%S7cF*Q)_P-jD zYmuQK6E^mU$XUZtfKy8ZaA*;QgLvpEeMP!ASRaDR_j))+?4pIneV7dgmo{m$w}`6l zk+%p1K}8pP)+!4C3LC_sQ&D^AC9QF4FPJ6O&}Js3Cf^<46v+;BR$K|;D@LQ@z0cRm z8N;$Pnm%`6BHG;vKwE&)sw99BTIGf!<{HfmD7gB`3c!w181%AJffueD@>Vq0f@n>+ z*w)O4h+@Wl{`R9J%wz*>`nZ7a^{c%x2PJ+8e1d?cQ=yC2tQHRKmx8rzL zLGg7w3r1VQ-)`x#S6g|W%1gN5-#|V^Rv4#3;@Bo?RH1W8Tek~26k~hdwGQnh(dDCv zMGfvxC<+{s);`?jAhpV((E> zS8Mctxat9t6t^>*!{DA0SfpOrYYkkia`L3*1qeA7yW-7 zfgJMwzeS04sKQ)GcXdL7)Z2@`Xa@y@9ZT2f_JW+fv7u+q<+6k9S{Hkm^kRa!62u9tQ{_%+k2|j4-ZCTNBkJ?15_?A4gcpzQ6;)<=_7U5}SU~T6~@$ zHPWgXwG4$gD}oUykLo?@Oiwbj6wj-WQ=8gw@^;yOkXbQxj4_FMb5xM$L|Gm+YUE0m zjl43vA=scc&2J>{0_!Ugtc%L5QZgy|R_DAbU@$SOFQ}|4lkYxhW9>M=Jry2{sWpQJ zR0ZU^2$W-+$k;(TQ-`KLD+A`6-v;`s08R#7>FwwXRj=;pdytI-9v%9L)x1znO%1_l z*rK792K1JJPQq5)mPVE@(&CUJq*wfk|Bx8v3>&fgwa@`a@CU3FOK^}4h*FipI!Pzu z|I(t2Uf?#R*}bkUyxDq&lX^On>$&@3 zceSzwmVX9j?~zAf5e;y@zGAeL1q?0SSS}|HpLJ3K*6%t;5b&+FrFYnWUuNWHq}P#! zXcVT^GpHEoyFv$26lXKzJyDPMZD*R-mMy~}k(d+)REW5NTe~EXI8@!YSsqk3g2V`U zMw}cEZtg>I2#t3_ZMwc!Qp*6rX^x+FI5uml?N0ZNkJlgm)fSW!3;yXqsWfG#LmIY|h;DOm zc>yS6*!|U2*=QX4K}r_nDhW78i;)r7V%oEDdc5+zb*Yf1ld81$gI26mAN;|x=249z8%lyXNZ8$&=jF> zV|bzbtP~}N%h3mvz|ziz-KLxF4J3&WcMf|YN||4)XvY0-nzr($+SZTBMQ!HTHd9L| zQ!fK-h6mL~o^ys!x}4zrMP^(IRzHd_DFaN43B;|Tr{WG>&eE_UN05hmS-baeL~Z?( zN}dGr9d!{#;4$Xbo|BN51%|w8?2M`_^615~i=|iI8IsEI5Pqy!!sk5SY&b8ap+@tUJ{SiXGjMC17Us)CYMd7t-KO~i)xzH_>fv#$J3oWpF3o;^ zjZ?|LOZ<7l6uFCYtPO}#b<=<}L$$Fe)bGKAp2ctiB+?qFTaM&FqsUBqjB2DZ{L5dF zFJIcsdaRw-tzao)1feFDK0;vT@X`k5V09a|GM$NTjDPw%)O4g1f(KVJ`Ye%4!+liN z)P{e%*=Mc$#PqrfqZd?LQhnTcZVNRgsWyBzq}p{SMoR zI6}PKiCs!SJ+5W2o2;xmJOjIjUD6VMDq!{gDI0re$lgv?LzijOl5M-b3{ai5u4rw~ zoLB%LQJ0RdMWdozVDfxzsiv$Dzhw@4vbB^;Z$Uv?6v0+RTfPJvILdbjjBbz5{u6N64#md-vQk6g{}?ta>wp?it{TctDrjE|$NVhq zS7yxJh#-cwNE>~R7+4_q1F-w~srXD0}y#F*@;BxCoew2na8S1P>;(S_%>Y2XLw3J_ixq?3e{=4*E) zXJcal*xaZfANPL@slmwS+Qjon%%R7h?SNo}R-gmh)JT^Go{*9b!7l#GRQ?hwv=`tx zWb$EQ1#096q^b>hJ1^oa-~_EG+Fz>u=e;PUtL2@nf{1{bK5Oro4HRToT?}OqW)kB>Xr0w=rv%!}l46zrg5nwA*k`R9$2;|9D z(`+PlwM5a5WU3#D(zp}n-r5I|xOh%ONm!tGg&bR9%CRKg8;Q!hVpcfEts0%E$Ja)S zN$$RD4cm&$AgVk|<;t$&v&r&fv*`gs-abrCD?Hk@Q`|{O2DOHl03r4S3sm>o`64;7 zi;A)}XgfyjV^`g*F`G%xhu6xtrFPif@7bn+XlmzMM!L^l&gDRzd2eXCUkwck8|rd_ z>;)V3W`_xy2V2tit)O>jE? zneka{xzBf_FZsI?7P99*C{?yUGo%Df;9hC=OI*5Ovl+eX4*=KNuFv{yXC1dRmT(LC zK40;7+Kx9U+5G6Qd_AJ{4eVy+1!xyu<{n30$-n_9xfofCbo~AK_Fplngs*6eL>Fgh z3{7%}K;PU8!r&rMn%^25BAjC0AVQ^Z&$AXRt^J{(q#{10QYjmmBjpac6h0{gUv8&R z82Kldxf*15+}f57k$x>%Kh~~?m>HMOFnz0zKiyh3uch_x2c)BtsTSP2zxsCKQK9_m4|i;jqqS>Y`p*Px^4By%5UpJ@d12`}FSLQDT4UThAA&tUFIkf)IIW zD)aSYkS(x!;!!Yxe>3;hPVn9v&+oYYvhE81*(GVxBQ@BNCfRu6j}!xbZoob!WXrnv zO;Q_b`-10_^}of&ikR<3ml$3)=UQt_J&j9?=5l(vRY(1t0W9EK-3ZM}DCpKa;i4 z+x>P2AFVYK;l(wuSuJVF=|bT=Pk8hKo*B~TUnNx zPVXv#^H)NpoRwwTWuTNYP|IPrW+LvfsP|%D3YiMy18EALQAzZ?AeONp&n;=xIjM0``^&T z5zYZ9)^UM#)PB98!*_cGaum`F>!ptA>T5K!4_JgFtm~JCE?8GyyF~l`I6hTkW191$ zE*gHRIicKG(%?P3Ur7uS<#6bapaNykcrb-7A2_XoqFSB@j6xUzl<|c*lE@T82p=ISX;wCuA=Wbs!O0;kU8>H@HB#r zK$WzoW0xy6-6o>Xmtw0U=6W$35^OUb%oE&hVFhWwW^mE5E!YK7$#g)#@p%(ymGgYb zrKVz}ED!|@fX_r8ITz_d?ZtM4E>3xNO142qd@YSfC!}4>n`Q5dOm*bCG%R%mr<+3jMHV+9 zah_p^RZ$|6P_eLr_+^9f>ptV8l&X-sW|a1N;43N^8V6!S;@h0FALNCVeP*U}tB>q$ zfpw=*pXe1^7*Vurv%-zknXj({%U2$In59F{^o?nEy{L zEE=pm4VYdfsJY-PI!uD8P5kN5q%U0t%kxM5%HaH@1lS;R5v@+RQ?*foL?&9lqv;pN zaM)KX^1qd`M}mg@(BGF0h-92zCe?Z5-5tGp_?WrvXORgedDcK%{@U+9OOJp()5^}F zeaRnuj(^nM;p4p}{nxCv$qH1)@fxYG!$J`LrBe*~bQ4E*Rh#S!nE!_~Hifz~fyiBr zh&HoBjQ$J}nv-nETV{R5(jF>Yv#C^N+^AF*-WP>wA5G}VXW*sj1N6rm?^H$;?8LUS zf4W)zOMGw!TDqSrGKiT{YGV4E%ik9ryt(_n@`c8~z!%GaiN2hQYu%v=uxc3pjS?&( zPdh+{;z7;AP9S6U{E<42B7b4YJtCz0Pf`7^BzCZ+%Va$EMP}#P9Fox}3B?iieh30a zSUE}CPaRnEmR*%fXFDgjy2X;`u}tT5$@Bods=Wyo+X$J}%eXSPN1^IBU5QoQarPHd zb=7baKc6RYucWsb%h}UN9)<$<4;`G)GJPgdMUYFkZ4*fm`nxNq88c@bM zfMQZ@qZu9q*CTo34JKYgM<)o@)ZfBTbDQ&2AqP1st#CjY-+s*HCXB9*lxg1Qormt^k>`~htU5+9tCVh@a~8}T zi1*Qp;xIaRPu37=656O8Q5y)_SD;Q47`~)q)crPm)f&ARX%?327IplpViW+pe7qUeE zTh|5ion%)(?PegRh-Lv(bHGuABNjM zrITFi&Qf)DN}K{!tB0iHJ|OCZQ-Yg}k~*{>8A&Xm6TTryUl;n>dcE3h7(tvCZ{8ew z$CNk!P)l~Ynqh)bpJrY?`-G9#tRAS*kpY zTJjl^qVX+xm0WkL0Um>N88e8c%*QUegN41ws=yylfunna^|OH}AfY9y9YNAIER8RZ zq$J%cgO#j(#TpU^sVC%~$QiXW$E~Hjp9F8%Q4kdCWjmjjLM27K6widzue7H~((s`7 z(>(>2DlDFG0x_3wG5hWB#Y-IZ;@|E>$vckI;%9%L2b=IFy=y#1Vex_-!frg0txpSN z6%XvRnkd}5%UfSY2qkm-Z9repkr@Oi`z_A%sL+hyLtY5mU_A&%{BT(zgiT9$HQ3hr zQ_K^SU(0w_06gWZ@G1arG{#$z3J_H+=~NHVR#P}5Rp{98PPm7NZc~I(a|0y&nl@p* zXKsA`RfOb(7(`FUMm6U2Sn961@>7{}yLAR#*3H(Tr5SM4BD;6$m6z1Es|02ldo)9M z#k~&eWfcQ3AL0Fcl6|Z;BfvAfmp?;BfnOxNQo@g%on^36aVwq(h>1q{pAVIWbDek! z{~zOnhfLZ^@V04PgLD+o-!>-^*Zwy4Rc!kdI8*U8Tx;N=r6>vZK(JUdN}T;3AJg65 zzv_)bw+`N@V8>Vh(qV5p9t&>4$T}M!Ij=g7I?TplcG@(;;W#>l1W9ACXS<$m;_z1c zIrV;N{O$%AuIGX4jbPe4U#|gKIH()q`4tw|DQAde4c*#;2VhWZ>cfcW&3A~2UHoh* z!{#Luwy67Il8Lo}jh(v8`j609lmx^RUL%RC1v*bNHmRm8ycj9DNxPW+kOF?a?9Q4= zf`{!v^|RxIc85J6*EBlxx!0R8H@JS`7bTr8Xx9ygUeWkdFYeyNAfbAStE`XP`1UjU zNj$*L=qiV|$WxoxA(UaZ{_f?EPV)BUl6lt0_~QN$V#VgG4x$5YM#gk7k};Y(bNR}v zWEb5&j=#kWr)3B5W&S!VEf9Q>xddTZ^OJ!l74Z9`OP6eXf%vC`{}z3NB|$w)H=T*u z;itlR$>4E7ux39iwYO7F%kyid7`syJ;J8^+E5+e=kZ!`QuM*U81z<7+FcHDMYmdA zO*mvHw{LM0MArC^n*+47R|Nw$8HJIjuTw&j1RNK5I>$CH@Zy*So6z?dB}?1*Mu_;& z$MiZ*P-%2<4xQnv8wPu~eQu7w*K?xVb}h{caE9(!(6)pmfd5ME=*w%nN%C?7g-Hpi zk*@Z{6u*#Rr>_xHa`I~C2eZGky{54FM2dw#@tQQe&X?ooj}L!K8jM3HiQrk7EYqWA zzNzK&+wq9zh7}U|;A#+3^eQzpO?A|p^KgM8hqR4RM6_?eQ?{B=UEEk0=~l-R<#sLa zRO!G49||G1*KYBne<=~+5Nfec-))c{v<{foi%#DW6163dy^~jdW!C9=Cp#FNtex*} zsZGFO80p~dX92b1lHE!rC|>;eS(fEHB*yl;c~+kxhU>#}^+#9Isa}u~H`+hKFcNZe zR6Iaw=Ce0(u&f&LYB}*GspCtAup-krWR_s*4I1$NhNfgwJ#`(3UDE2IMXi0pun?%Y z_7;UXS)P=CVlJlvz-uJOzl=&BIziP$a4HivbB1wuZY8#n3Kt|FEO#40SRi@qRIfEI zL_MX24ZAZljV8PENere`O7AP#f#hW#=-um|O&#?8o)MmApdqy%YMF9Jg$Y_9>aD7C z&{W)5JsptbS7!C{Uj9vB*q8loPo{!TJ={w$EkcIqcO5;fQ)!F(R#ekZulkSGh!mxX z|41q5X({KlNmt^y0EydpXUg-a>*tWoLXw8g=vK9A{3Oj4AeF3{7Th_>|7hXuX(Tss z@KM)Te~L?f)PM)L*@;c68^BV|gon-ukBcP2AxT@G9MA#YPKlL-1K@S6n;*J#COqYf zkgc%7d~OJia$>Zt+=`#$5#VzyN%S`YRbNt$DnW$_{;^-yQ$skMuE9MgniU`*-$hwz z{iJdmvw>&X#l%-O!=l;eI;>@x{XBZ4S3w{yMej0}@SD;;<0K~6>M&1cv68UZ-&$5P z2+7|RoPW-O2bfgwNOTlUh(PAs4}j5EI@W`^vQ*ZUPLFG6cRPjy!4Y*#`?tm9anQ^e zb3u}f(`viG#bX~N6IE6T(#~2_6BJ$~g-UBbqjjQr`gIuU?k+Q{H;o9Y(uOnE<`$c# z!goB93Rq3j;rjy_~P*ZHx&sArR# z5BH9F0*WA&C&e^PXENCrU*G@cH9@|X7?^i6ctwz3nfcT43O|7|rEgmy<6JPLh7`>< z;)IO5X+}g^Rp5uhxHLJ7?DN_30fp~ldqJ6u^8MvM!N|lMPVZnPF2eS#b=~MIS)X2W zG)RN*WSzww^_+Ng)oT;;6&<;gW+R?Zj4=IVDXyNgeYmC>nK(cg)ai8f0XGZ+#6Z0X zz8|JVZ|Uy4)NxVm_K6VP{fLe`8c($Smjc6CEmSz&lOMxsW=9-M2@D(GRyC!)64rOf zlf2}aJ*CW{0jGWu?P;CPZ=~56ZhejW8RPDo#g0UeY5zT*m>W`9yY#OtT{u;p|BDE> z)_=)XDEx6(v#J%)39lXQHb--SZL9sc^|zSt|CzcE$^LM9^M0O$HhWZQ%V%^&B)pd$yZWP)itB7OL*{dy^6VdDq-qcV(@v2@QV8 z>z0u2RFrPT(mdL;am6{17Rnj(?fDk)8~j+EWVve}axw!5XYS}q2bA5EGOn81ewNs= z9$o2NWLuV>LgY9Tt}Qmfrxj;*8Yk9)KjE)Z%s%{}_Dk4M34QU7jN zh4lVFXgjQ{kfx4usVt+!8;r#VwqmG**dPS3^iTW|b5u?xpWWt4o0sFuz_M%kts?i{ zK@-7)D4Mvx6!!3r?9+LgA+1%43<;o~CX~q0(!gY=3aDQW?{Do(r~d9gae981E@$=P|=}L?5IuvK%8CWhbtk6t#eDjV_g}nL_-u z!PT3rO60J(CEou(GU*1J%ZgKCZRCKVprtEc(wC>YE1cg74F4v*&v3ZjTyS=2<0gzE z(;IL;ZLfArJikxgePl9XH{%d4=^(d@=W6nNNZJn=MN9MWFCtMepnQt}7V+bY7skB; zP-8ninO|A~xek!`ZNo;z4daZ5_sm{JSnc3O#Ygt$>J>shXRSf5XM|9#75~<9bl?IN ztA4q<6b~u?kWwsK)Ku~jo>#skBcZU9Hb@^ZPX|ph|0!6O-rF2wH28Y$HDB_sX(;ug zpB+YTUQ6=leC!+If8lx94|Fp1g9EIDf=-TU(N*X3({w0zpDzPmL-13&%UZXtZBHdF znLx+bCEPcYla&0cR5~t?-cdv!l}3Zjx&ZGVa+-44eg_n5>iQK%xE`nD20LBCMG<@m zf5e^p3RSasCF$|o!1W#$j7NOhGlk)5_xg}hw!A|7nR~t=i8=65kFN`^eXLK6n&a=d z{yylqhMa~oW=lBHrzc@WBg>tiuLg2QKG*Np*4q@Hn<$XMh028a=Z-&{a;~s|8O=5P zd~pt|>0p%c++#Y{~+ zl=XVY+DiqAhF_33JW43p?vn4=wht(A7E(&1bMb7Iy)~iD_)pk^Y@oEp%;mwUSGEil z5F$*`5l{plYQ(paW&%>QrPjVwGm?ue%-erCRutGm+h>Xs1X+-|^8u zH&3vio2i;Ci9MVEBgIx%ZYY0ss#x+~X?|1%$sj&K-cqagdwNl*CuN)Yc9-k9rJ-SD zGs#IaIjpZ7x5D#6xlf;zFRO^iIH$o>tnaA zkTfDFpH9@(13M}hAxAKmC1k#+`xqBp-ThaM7d%D*%6zBn;^nf=q`HNPMv;JX*C&qB$na4*2%DLE_V%+w9WMh>g zUAB`HTWFaYGlTO(Ygx*WO>ElK(y8rOjpm#qYpmH5CE}Q|EPRBy@iz%WyJrofmpxjY zt#l2%HiexZ3$f%90SfV1=}3jxqQ2a%y0ssKxlWQfLCylKWetEi31|JPrkbhd|xjl%2-gQm>x%|^ozPkEdz25k+9ZX8i?RXlXTo5Ei} zld7OV5@^Xp37LWz%R>&5jrGL7BtpQ}HtwgjC);)?gV*fLKiyMz?;%LO`5EP|lC>#oUW}MTchW>%!ex_W-hH=X+nnaO~6k#I} zq%TXFYkyB!Ob$jJuQL95q~9V*Oz&rWrHKu$#^s@iJ@IzSc=MpJ;Pgz{=PCT~ztPXq zN%`XQ;%;l&c+_i7ujs(Hcn$wnontH+bbJ-#H_vkqgq6P`$Wt9dHSKpKcX&Ph)#ExT z-NUKw{?QMC0oI@NQjkXAJB9@!jH#l~r~mS~zZC!dUx$lm4<|>e2%UOv=87FrxnjwA z74OyOgfq@d|23U_bIRakCw1IAf%@`3L9MHBAi3c##J@eODwbbxJjFoGotg zC3d~J1DiMk&6sy=O9w6Odfgo2XxdG4v=>=o`dh>?wc=uYWXWu+`&;{Y;NpsS8HjPc8ULLUQfR)9LnUvFbLeIc6ChuPRL_^i=zD-Os)QIPQL@W%7ac6 z-8?o7oEgZwXepr{8tzz03r$)6wvmu<$>{&J>2p~Gl&7td&+{gK8!xb00;}A52lnu{ znAY!7^abX@SO>F{*60?vQ9cJjg}>cfiK@(2vdIgP1lA{%YHgNed~}f=c4$LqmKJMP z^%z6k~{W^vw)OtlD`j;s_)jj63KV>cWnrrLD=g`b$*-g>X@M?Brd{LW}(O&uYwBveQIQ+ex6sNv6{k< ziF3JC@3Mw-@U4xnt6-|?b!UOY$?O41lHmS1o#gh>A;(0p7eIm<2A-hpaCpoR9sD@~ zN4w(h#Sp9sH{K*Tw#%aSz2EO62Ynjdx|BIEh56g$`?H$+N^I*>SaMLo10{0E!+Tdq zspI?;lHBOj5QGZ~+h*SE0JR!%S1C1;w=W_LjXS5B^L{tU$Zae_2Fw1Q;f|P8hAFf<#kKE>Q1}e0?(NCDxQEb5G zxac-hSUJeX%JMPpmsbrLF`FgqVs5TY)0sn*DS#i5m#F2d^3U_1D3bY3Y}P@FlwD^? zRJGI}ovb&Eu=h?heFSKj*rh>A_|LM)WrEA@bJirlVF%ngke^}03D3=zxLJorFxXt4 z_vbs>QsS(N?`k?nj4Il8c__vNcXfBYnMmJ+4b2&>gDKB#iA1t8^3E z_LXEUi15;p2`VBP(|nhjmL6-#czA zH)oQXiz}OLC{ffsDIb0YP#7s`4NfC4vWPc}4IDSbHV={$R~z@>bmQK0ojtd@(+{jjduXa?r!~v4D$|Fr(*!;1hOI;)xgLWYUbb8fSP9Ghyr0LhP$y<=k5m=C1iO+Uq|V@=pD? z+u{8zUKxvXiqkZHFFa09tYL2}|d2XCp0uR>5u2R}8rlBBSeS=F2m((VM z=nZrwS`@~7Tu+dT9Vaq=CY8Q6;}_(rt{&*80wS_WqBvJRF7a)T;i$7!*%OoSB*PIf zis!jP_jk8q9+h)P!6d%?JL>!U_|fiQy0Q*5292`?Zga*IJSRKlToJK*NN}A1G%7Qy zl37ZQ+J&1l1z_wWOTOBl+^k zV&l`zS6*cBljq=?hhtF>x_o$f)fvwA2p8?PpPG#QHV{+;jHn^ZMAK7oQoV0Um&^hz z(j8sSYc;tmSxH(4#QN&b{L(uIpVP~o916Rj<} zINvAGPa;5Fgtm(XA;_r`XQz*XALbeFZCX87aie;2wkq2gUXyLgNBeVMWbDZO0dzVX%|Lv{xW^s+t-H1*CG4qz+@u4efS^bH-Ks>2515M@M94bFY$djZ-<} z3i$hztLs04y~ixhzcvK3Dv#8e?qG1C!IK6)?V=B}l^PD>Q_`LqA97{V=#e+*?6?4w z${lHl%vO&?PROrqINPOrA1JphU%^oQ%7p)7%g)#SiL2umSt4w^>8)BguGueNGmOY` zI!XWc$bX|Gc;1a~h2C*nyUCNDiNVoI-Z*Fno((qe9phS_O>KJP&ai}RUS-#t(l9dq)B+6G`_`xFbIK24*-K|tRi+EJlYCbwV zA;JNlZ~V#+T@>}d8?9~(xw@w6Q8)RK?bkb>(UW8FbE-4$z8(DOP4~Mh zi>B%n;i!25k(%^IpuD!#--HTl$}Cva|MbRiPc9IYVqgR=}B)rUkqkM@~FQSwKLcwl5D0RMw ztYsaxn8zn-L7^L#X$@?K$P}F-xl!}#?y{5+p``Na$C(fA9tbuSuBN|hI4}>t%X2}3iy8^kg6OsQ5hrj6*x&LYZ2EaINwC1#N@CBxfeK;+)5)6<$6LhkxlLdd*1lUqrNr_iMl_*~Jx@<)g%f}z zOo&XT_Y(O?M6=C~J(>_~|VuOzhHz!5+>zHm7B0?ZewRmJeA1IOM)#`vI z{|gh=h_Xm9?q&K7&6L+sL_nYA>Z9o5uHvA+u@rbEJ{Y<@&-CwOYsnON00-D_y#6Ij zDuIDaea1TEAi3%J&~YTB8l}e=6B^(ls;&Ez=;3u5L@njcKESpgxAKTd;-LPfHRMYi zTdorD=;pMDv_>O2#tLhbc}!8&34>`!_K?ydo-Bn4vHYrms_Pt<5^q#<$iUmv8D>Gcr-~W1&O@)JW`3 zdXhG-Bqad1?r$U~0~<*#&*n1!yLY4UnUA8K0KSR+OBYg!#)Z%ZFHCZsxDx;z*w>*U zUUVE+j0cGZ_I?BOfTuOoJxN1+^7AKwrV!R&E7hDeSxTmgWHPjLH_8>6`<;wsF4eA&V?}>r4sL>O+#rN;{eTkR zNRZnjCL!P&Ry-p+qUc`}u+mYEd9lyB<>(u>$frmkq~Obw`u?245Cy1|OSGrHW5xbB zk+%BE(Ea(Ri6|LU(P59Oz=EaW0`JqBaAMW&{w$GK{RA?*L!g;N5qc0S+u|VDV?2HE z0ONz3-~?j9a_c6)s7|GvLN^D5_{eiyxRS?|C)e%PJgnYEVLJ6L(ztUtr%GQ@=55?? zrSxvpwAkb9!eM{@j>O3_609T|n!$4kB)ot7X1Q_L1r1_h;P6qUFwe^)hhE>AHBwoK z5NY`C5{3v^6JNYqdD0GTwc1Gq8rZ+s?+#Cj+3<}3NkF#0Ly;X^{Hw! zW((-!xJ`FYpZ2IeD;dtNQXw#)0x6*Vxf?^ zF|t&Miw2g#0?pE8;nm`C11w&{Ha5>gqUrbUhg8OWe(wMydzMXgFmzffU{Qf!PJho} zXf)&Lk9F3F!0(5gTd|_0@zd7R-0Iw30@CxfagJ1!)XqrY5_i^LECLZUYauV80RIll ztL>`zGCg@*uJ%%>c?i`;#cQ73iMBK`(d+(<-6gj8NYP^Lze3pWdcjkqg}|1pw(8Q(dc;dI$Yt z4Xptmbm!?8?PwfOmGg@;-i1wKS2FK}0=Y&4@Gf|SRVgWwyMxRxeqxz4GA>keyQA9OZ)GagR_$x1t{^@@H%6`9D7%C$_iQxE1m(!&Ihs;gG$O^Ksjm#Y(A*6W!dFuO zS;G6qNw{P?Q~{+97WU<-1mAM)UA;LXrofuJIz!Bd9L_W5!)Zjv4?be$^Q8^ zjUOIUo^g&Z1f(=Wb;i8@4da3SZGp3~5nuS=nTS3{()|Aaa2K7gGHr$CRRaT`bv`vd zqHqo{V?Y$OH}zRB2hF%OW|>i35vGnBu!TgsQTo;7;r1G&N*IkPlptGt znK=Rl>uK7v%(|aXKdB?l6gbRh)nmb@s-ZUxETt}p#9Hs6RRUHZ=ysFnGfUpY?@QXx zz>a9UcF*LjQo_Fs5@^aXW`*FJKmrso&_nBRIS8Toz~icm0UDbyu;MCmF=rBr;Ap$u z5?%xHr4b$|=K&wKpqrp0<8S@y1rABC-Iq;}8DfUM`HTGSL#lTwS~gw;2nwU|0!8%d zLemSGN+j2sD5=D}w5-GT11@!io^?^AEU}c{`C|{?*0?p~K_>3Cq&rg4>jJ#neYzisbX0X{7fv^&DK~QDMGa z<6Uuhaveb{gO$yaw*ugj<74QhZJ#e%=SG$rEaR~4G#FE6$ekRKIffpjOAU(;IfW39F zAqm`)cbla&9P7WX_*AqOrtJ^$i~UE*D_4Y+Oy;Aa?Stqx*sxXP4dirS1O6ub*arJ) znmXSp3lwYMahZcPewU;wcQz0z_8c{cK5fbI8$&s7S8^2a}DD;REB!Y=H1WO~JcJ|vUX|0Q39@ygHPt_n= zPKSY|Y%T*N<`eExjvAz)kZ_f`=cJA6_cj|kva(ihF)jNWSALc~06K-q)n+dMpRi#TAX7-b|0;PYCbe}B3eeDG`5_dIF4+qRe+qX}wQnFPN7R-Wa9la#unaJ~CK9~cW} z%u}M}=X&!@VbdcA^FZpAq3U*!_XTJg(INuwQ2Kez;~z3CCTME;V-O6v!-$+}6^5Ca z4l(*sT~6?2k!?*gzx7(y5WlaWFb;=TOac2*$^L~s4$9sJsm2@5bhk|%Zo6ukpkCfe zGovszh5hJ^+WNo-bEtiaAiVuW`DBTJ26Jn{n4v+@UlwjVC@AZk`bXQqZ^ z=uv-THO)n%jOxFgRY>|nzX-Q5&tyiJ+WO(~#W=~Wz3DoIO95Nng%@J=qQ)W+lM?+^ zgMp3b5mZtBNOxw9sd2+emeOkQ>RX~bi+&#}TgYHTHgASCPPHNyah(K}daz({U^;{U z0uu@KfJw+enf0{xjabE(WZ zMx87Yj_hI}D2rV4pMp+jSsN#!4Us9WcG(L0p`#|7ztP|+)6Re4uUiE}cCDF(7s2G2pk#D}K zXL0HG&3~@ZDM?MW6~r`I&=1VAAaVTA*g-Vmf)Vu0DU$Jb2{Ha#3_Fr-xoI|3ue2XR z4ndx^(`h@*;^Bg>Z0)=C!L#L3LMM_UH&cx4bS(!eAi2$i{&;~S-#WTyOdVDIi}WiY zWUb!nGT(Q!MX#4;4soAvBxUNJzs)NLxw)hP+T5Knp9?Ng#uDFY=_<4b zRglDgo6+A>ojnJG5hpdyp&hPqGtHqD0QOngJ)`pKI_T*6ahs#SLGuo!JSK{`q(B&W znb0@UdCeg?92u_bUiCD30bs>_-SMb}GNVVF0aPl!*6)IfwJ6i#Yrc5cTLtH1mi!9oz1Cg&IJ)=aomf z8ipB5mZ`_oQr>(jFn3Iy*K!@ED>|A2#)^ZG<-@D78!SEAyq^_lGn1@B2gcNpwqL-T zL^zgqjp!F-^0M(ywd~o6);|0HCcq*+DGUMNs^3Ix+o^Yvg|_qjsKUB@`kiZ-G5s3( zRyy=M)KgV#SJ$tylPL%P{md!tE%+4?>lS^&TPTUncRyK6+On?);UiMAZaQn=e}gxh zihTNKP&5V4@_;2A5tVI<;SfyH3H=L9I_!aucCr?OnboWE*6cE_0#qHy0u`FQTE#G# z+c)hRydc=wAD+*Aff*C%DEca3^jYlIobI-okXh_S-nb>8*%ao=$Es^Nmb5f$#*f^b zcu7%T03S*GQ&VGU*T+Q9p{&2_SP|7x|30xwdVLn~3HcOwS?u=cRJ+i&^oBS;CxNQL z9tc6{OdgOvtJB?dC^jLhz;tPWolyed7G@eC0_cy&R6ej><9nPD*oAjeF+JBn+%^7A zj8IPjpFYy1sAddAQ#R(`Kb8w7P0dLfs38v|IG_jNKPuIw?Z zbScATPtYhieeVztD4{qZ$K84Y;dXkh$~XxQd=X{kjk5XM4bi}%sg~L7!*zGsf8oG1 zO6f&_BLDING;b%hC*+lmd&E}c>@4lncF~2OEO}a**g|Rq1H2@FEPM81N~eT|?r^;% z0qOXD-lS05wf6X5B7ExKh;xNNxj&WkRVi1Olmw)Xr+w6)i-{ksQNvUWDc>JZMMHIx zetg#Javt+MiW}sn8xc9?AAA=Ttj!jiBAj)2ZZpE31LuSGYL^-Og3F1~p{+@{mS(w4 z%!TTH%y(fmyTW(Quca&TZYk_&!=SRnJltSNBrv~g(Bz(#m=RJYyXR-MGr)&#{IGOe zfKY&r3f#1b-okPjeFc*S)gz_mE#ACKh7eka6syib1|!1QACLEm9cM6a%u$*$UtVRj z+>%?9B1jOR>GtTx<-=S|96DCtT5Ly4%gc!SI$N>29)F5khOR9~9G)zO+g7`$;5dqm z*3~U*+A-vSLGr-1=h-OhJNyl1RE)+;<5&Lf=J}zT+$DKmf1>p@A0daYLggNWyW2Yu zDPFd^jQD*SF?Qp6MS7I2=JY(*=4K?!t}e`m2S%0rnxXMhA7W% z@XwI92|dblz8Hp60&>BKhzJHMmc3g41HoMK)AxcY5dKTaA?0Ll95Q{PEWkIIt>Ve% z^Z|Iv7tHEzq^nP_Ejt)dOjXZLftaq8#aJ*XviQt6_q6MFhI%LZp32_5f;=UL;s0y! zXjH*OXR+WD5oPg=$Y~tFNH25?m1l{~ME8m`qfC9VN;`OR%3x%AP!S=5a<=TjLVy3% z2m2jTMTSHQh;P$aXS~r+AqKA-EIV1kw*x+U(F6y<;ZRbMktiYw5>>H@WL`w^K57C7 zQs%t*2hQ=%tr|^ovPZaItaZ%Vagb3Z9zPHx-dRqd4@tgCnVb&p$S&@SwddKO7zx_rFTsK7g#4_m zRbC*XGcztm-~Afg3nuy(uh4TBo?`E5tBNhbMp0iCW!4i?zpg5i?aPWmq-v}8a}242|5a5B@l0gie3Mfzlk-AVb8h2#Bd|UBZ?1U$yg{EjJ76rZy{eP?N%20 zK#$arMEm2*-WrWHmHh|Vt@W>0>hcBBXJ4bI{wvRW=OTdz%urks_EzK#OM8teNT2)# z2J-Nj4l5cPS;ElL$jU29G1yZqc zOgWnos9){f^L2$VxwJ}J z`+Cck(HoizJURB5zq1Wb9u@E@VEkk1-0!sqTHPLKlR%z0H43w!*~c(VRI2O?W0J%1VnP2J=oKsa{VP|ekYpPS1%Y9t z_V1?x1E58IUhP++fjs;M^>5jU?kkhjNfV_e$He?*{5r}~JEw|f@gn*_gIUkXs!GPP zeAaf1C=bMzPCG?V0S{0u%M;!AHs+P@J%k%xpTLIZ&HiRGFJjS3^U_4CB;G5xFK`r}9&`8ziTD8BFy# zc7-B*WVMgUX=6m!<#5DRu*&57r{tM%%Vs)9KrQgBr71I*bN``AN$|XLPK5dLHF`?A z8~XNJQLJD!F(8bSGtVpF9oLXnD^mVCWQ_e;roiX;tUEc=sAbk78`9zbQ{z5^q+UOa zg4HoN-WTVb`Q$h-^>sNv#{o{WqUMZGiE2!X*|ezxbtqP}aMZB-3DdTfD1(8GH&4<+ zla#VJVmEg_w3nde9L-)v=lR(AVQdk%>1YPUj@-@MztZbU-6FAxjG(!GaiY9%ky+!POhd?X}s`4*k$?;J^1y1X~?2DKh2Se!hVWk17uj}P>(9} zEQJe@E~_B5L^{s9X5zerDTQ`E0R=3Ar^-pPzPH1?p4W<;(Vu}P*50&Lk#33naDgh5 zA7s5~E7Yq>F)4RhWXGN9(YF(U91!p*Izw@BC1HLk4n%VYcIf3SLVdrGElLr>&{H@) zz06h8Km1uDrRC6KZ%r!roczDi2t(&E78<9H|7P0^YIq!aXAp1ti*_x$QG^Q-W8v*D z#u`gJz|%fj$!`SMg--ESzI#Wc#1OdlQ8z9bzxzc3%L(B|r-fj8;^yZbr(wsX%p6zM zDZIjR6bQCrBOODmVT`+0%VIZL8I^fgH45E%2$Q@QFj5eY7>Rk0M?2YK8hqACUGawa zy@eh8U8LFw*e_d17k?l0dctWuL{iCJT-If=7a(JXiau>R+r!!JG77nA%}abi6-7vX zS=+Pw3MJ0UOw;nUl&{10l(jDcy`-Ob)~k6fm$6q` z;~%Qm0SIS_3j}kZuml)fV33&;p9?i#Vyt$=GZWkOz8N|T)Y-|TQ;A2*{4iLCzAtYP z`Os-x;NyzTYo3;5=~dql(i&r@Rk}zSGLz6LL%EY$142f+HBpdmf7V1!eCk_i0u|N8 z1`gS|{%8koE_+a;hz$ogg+nyKMp@+P{*i?}C&8wCaIq%pRtEjRh&Fb{8VPP7R|}ab zyM3+J4kl;t5Grs-sO_RVj~4avn$O-DVW|~B&9;lzg!Ms>1OlJhnLkBj;+i)}#R^*n zHpVhcuhjLrn|xFQ)ACd068l3$89`Q2$0(D3N~{z#;X23*B*z83yah4Z1T#hoGC!t% zC@aCC3!4YQCeuYHv>MdZV=aU854*~y9wV7Hfz$2w#{C4eVBam2jhANx-Xb3W?yQ;$ zJ%Hk@3Vf)b#B!yGA!@_X2^{W)6n^EZRIl!5aBnKxAP1RiBoTPbB)B;m_r5ulBrsA8 z#X122O325)jBJEvPH>xkRQNX(VRC8y*feaZRZ7JiHdwisZb?YOUQ9TPst!DVA<_F2 znSw95>)v&FJuT~Ti*9bIJqkY*)(b)VvKJu~t16jvo(r+fa!T@vUI|zm=md!O7eEbq z)IwCT_Tr$3cF^8uMDNdCiJ6nWMyZ0>KJO<=@sM{r6dZ*oudF%8*fKv>h8>^-8c;Eh z2;9-DZy2Xa7+|@H3JHL{54I?Zgr!F1qA4rs;t0#Ic+q-Qy2n?j;wZ=Z3mL~kUiH7D zQe;695o~PaL8O5VT3|?pD=lJIXQEX44gC-I61s3y1^L0sU z_!|U2;;0l5lk6wa0s0_J>AzuA0xCZ-&e=(YJgIi3`yL*!iK143jqw`f`G7l&xlz)f z;B!LdTZh4TR=UB2ApA|UttWaIveo1#0R>%(8a&<*&wdfHQ~N(irbb8OgzbXb+sB({ zDk_nVW5rTJNJZN~c18ap#qov5eoF~E%e&15?mNNdzQ8ek7U*ve9KFpF{ynEI_xvXy zZFtX(b*HohqYhmuJyR?-A@zOMX|@FXKcWE>CSwAH1Ic--oFAHzX~ArkM@u4lSed0wZy0NpnQYhkUV=JR&XpDVdqZx|PsK zavd;|d`5rHW1LIj)GKntc%a)-_c!jkUiulaU*1UV?QJ!6!CMfJ3qC8MwAQPl&?`~n zWb0k4pMt;~qyx#Jq(PiI`cA_Or^46ZeNBK;h>rPYp26#B_M99G>rqWss3Y+*p&XSHN!OC@=Ht(DHURW0VuKeX;(Ir%28gm=!CU7nu0J54C`Lzk z%_U%s3`0-#_tZRU)Y;H0D zRW4W(+hjtW4kHe~j(+`p`OQ6?SLNFAz^Un{_iUbN2WAu92AGI@vb)`HxA0($2D zK;D!h(7)Z|NCqFr`1f@fmt@9AMn}pjv&3l{pVz(vZ{T$d;F@#Q;p#0SB2-MN(5*HocY(M%tK(&Uu%gigHTnMmfttWB$R@UPls~3FVFMu$)m$KH z|Cx!`spl!eqoeHTM0b*n5| z1rTKpwpPS8{7XbDdh&ir98e)r`@TPJqNSy8gZjW+yM=l|+eDYBU+Z-dauYw~;reIt?7LfORFjRJWid)3y`Xq?MO3jZattp%?x<WkS z;@OsbT`!tGgHD>agq2X03<>s@a_CHnKCMR-J>gO(q}D!!(9=wLobY5J#LWVKILz`& zvgNP!Icj!tr$A|gkb}&0;D@XK>A=ktMb4jnp=r8h5b)7f*9&Xe0J~$r8>8tnhM9jX zXk(4M>PL$K)A7I}cg%EVRo?17@3yjfQ%BUW%(j-3LP%P@>&snFVE!w94|elgJp3C> zx8A?ZH(6(YURZk=a0Jcg`-kAvdTBlkU>*mH+}c9tHiAx$hlq(UD(bmnh?62m4kMss z+~fOe95r6)w;(HclfdX2HM#pbZ+2{u2u`bHS1==THA!48;q0YidL!?4Mw=2s343H6 z?Eg?n7t(iknQa7ekf6kI46%h9D(DVaYGBNSVJ4D&EEG-R$LE$>(#MB>J9egA6n(w3 z0hikTQZpC)itZCWs(T08yXt+|^1-nmLeNV*9Ly7Z12#wpJGJbr2iAF6o4Z213qS_0 zy(fL!(@X+8C~kvkP0yDr+oVO~de$83bO> zJ$`r!9IiakZ>??ce0t;v4x9pzu;HSBYKbk7qTdwZHpwtW^rL~;-MN*WbFT%yeDp;m zd%625DjUp}O{zCQ)jlcIcFI6!bRysQgyLb^eG-sUqa#MXiX`@Gy$8^)qrs4-Zi^ZX zpaJOZ9$MUgx4)#jxl7Rn@eZqRc@pkGi%wymT@+$Cx0pC?5EO^+j_T6iGK+1BB}#Ilu#`_ z{;zzA|7?RdB!lz~XsX;c`_s3M(ZMqawz1UcN*xsHIW4X{&FdY@pT#Bdd@*rP9zAd; zo%fr9M#X4%Bb8kivU}Sly~s8ulHWnRXM|J_d&+yO8RE%EM{l^BkqS%1o}XsBjoUzw zcjbyC{*HH*{(T(C`z)uN`kH!|1IiL7hhjVi^bZR{e6Aw(L#2$yTPtiJ0P1_`DNzq}66aQ00rJ9R^LLM&0z?GsnAsltge`h03kG*2z-w7cbKT_|p z%e3-o`E^Ba*E_~V$}`Gojis`+;6+Z($M?dJ)^-%3Chce*VLnj)c=(Yva8#9G+8`jr zz$`8z^M|^MqF-e2l6W9_fsJzj#v-jpKUQ^%SQj%U&sZ({S^gKe1)AK!;X#}4NbDfBBO-LKomETvg^*@S@)fzqit-FIec0Fi9o2fcj{mF-`6!~Esy&W`cf z2!qC1L6!|!k-*&W)#31Ffhr~}D9FfX!%2ZE?_+BZ?`EDeY^Q96XSW;KI7E_gLa)kU zd=;%S0GWGP5Uz)#uVKan)Z>#Dm=tg5ZW+aVp-mu-#_2;hazAx?so%6-i_Q{h!)Yje z{ho4mXda5LPxfWLK3e|nGifJT-z}I1?~ucy!$w~$zgY-Hy1f#$is4W+@1sOu3|+a( zORXnJ>}21wOrkQzR&jxQv_2T!u?C4@_}iH2w>D? zHDAf_Skn(QRMrkcL2X5DU=uM2=KaY53!Cu2TX_3`t7~%%l>LPHsqE%vB|C|do3VK& z{rvV!=p~zgR;1?OJkLO-rW%%B?jCXoK^wZhMfaFpAXz!3hGFhqn#*h_NX!Cpb37en z!Sg7aLD{!am&QG9b;G1&-g0DSFIR*Np{U0ZVI%y<5Nq^v8 z35^IQ%cgJ4&JON+u7CxcF(^~L-dW(*lFGAPFWQeaR@PZb{8O#ojlZ1@wpU!wr2qwx z>fPIO!#%=IcD^4Kp#SFrt>9ngVXB4}zXSYxi6VhvK$$LMOlanQ6^@F$JgDLBq=idP zyxG!mcBpdS6}!Y>T*+I0w6H6;3PCQy4u_Hh{B|xaicEfdN-p<1*f-vN*bMvWjDnh5 z^CW&FkDpN?jZpW?_Z*DKy3%&Ot^JdjTa8_siH5?6f!=p2OZ2l6o=-HM-D%KV+GJCE zcT4_t-R4v&QBG3vz@Yk{U6{`i7b0fwInKx=plRmpG$I&| zov?OWzpmAa8kE9)XMbt(FQHXL3fAv-WTq~!WKcjBUn|}k(HdFs?LzS6igghC>Ft&a zOk+017YbEd$T39gIRt;A6~w0*4_2f)X!_G_#6P3S+>jaTjRq)S`+mwJI}2TuFE2Ib zu(O))+TA%Sx~Bx2Oq$hoxLHuJ}XrU-EaQKrUS3<_(MsssFf2%BEQ z&=si^NnTdobnXxQDB-!8cQy+Vw9dO$pT$rtc7+(mRJu(*G(ZO-!Y8+|#hJ8rHc=vF1FBmO zi!j}fnL^9imOKxX;!tX2$+px&S;kJTda*Dm)0VQ(m8k7qf)ywiNBMut0XS0b5)JtF zf}L8@g!EN&VsVI=D)T5&7`pZiIq__jnNT1OtJ_)@vE<+`Qzhr9tWlcg(}UR#VC~{^ugv|>CU8^jmqKY zMmBK{>I);vzyG849peo~fOGkdYzY@(h8Bn!t-n;C+zXYh)bXQD3JFd7GYX4JRYGQuq81K9PL8E*tsi?{ zuvokgpGWu%?buhno#SG33P#I}vKJEHZ6aUZmzjHzmyln*f|^37pP9Kd*)tMeufOv^ z`ADPc7>z7m}d3|I*Tci)KTUbp!ECy97{yCAbPokKm4gep|zz__Lgc2 zv>0BZjn31i(7mzp2hS0xMq5@qUOCeo4q+P_sK~B;KQjV|HWI4_eKPTN0HcX5zxlI3 z(wW_@$Z??95R0Z!<}1C8euHGK;lvvjlupEZyu*-NR{8>N;2l3sRVOil8%?;Rjptrg zv$q~Ycta2zdU$ds)UL*N-J26^M(G|?gF#?m(!wF5ZZ}$s8t=@H&w~dXnIw5Z^C&_} z(t2za0Sl|#BEZ}J`3#B+nP)S*&RuIe%d%pe$OF)T=Zk}M-lKP5NJXNK*h@`Nn@z}D zzV{J6eE00EV2d@Ys;44`N1*y=c1`W-T;j7ZfI$gm?Co@2L2X?(D#9j(9mc-~iK{dM zz&S9|btk4MG1wi^%9?w>JE$;?j}3ut%-+%Dc^VWqZhQ2$wo3vdM^3qe>-jh#C8=k| zF;exEnChS!G}AaeMJkI?-x`d=K9ND>KOB4b|lQ0P6T+T3CcWIM`^ur|C&`!3`(2 zE-c39+JvPlaR#<2(n0BOJUSr><`nu=C+?XDNk~lI2OUdBBQ)W?5+2>Imc7ZR)wnN% zf|qc}mbJHNfgvGf6S$kKzhDJ%x)T$m((Hi_A2Rk-P{u?2B_NS_5u_4b2G|LZR@*r; zdfmmJO@P1{(bijF5^psO=&bs7h!al)22$kuW|p^3eT3rJOT7NFN8woZgJ;}E6p}hx z@+JM*rDaSKpXqC$$yc^O*kAI7P$_Hx!eP+y>3mMB$mB2j$3^x_1u{-I)~hf?SOn65 zt}mDauGv5>FIHUO;Nv%)@$e7Ll&l>%Y3G28Lve36bIqR6lB9W19_x?B~- zeMh+aHG?3|fhzfuIo%1gxF_@5wxwsu)(4P^O}s9ZtfZc%*2taIhx9|NC_aog3wbve z?trgQ#<7jOb;J|tw0P(WF&5~N)8r2{g39pZZydr8eOZg^jE^JX$LI3 zX6YcEsZ9&T-dvp^dt{5AIFwc1r`uMT4Vx!=xG-pt!84XqtW1u??HqDFr$!S9!d3n!u4M`txDhxQ z^VuP6GBaGM^>@7n#E<#@?>vKc3(52^5~iOf?;Q!mly69)HiMkT=aBvhFN6WN0iFJC ztu#u`F3O^+?>2qcq;a10dF3M^Uq+%H7ByAPqa+#eZZRP%x>EM)%dGd`h5k0#RUM&G z2f9Xq6iOA(#@_eGSQs3Dq2YH^8-urJfP7i9=-`%$A-<0HaHT(i8r~CWTqfyP7>lTi zRdk)%wIz*b#Nqxl7rN9-hWPZm$Pd55x3{NPzgA#LW39)3*EMhF2oJ-N?Vib8%?`(% zch4_{CZAQ5&BytxV}G&SZB7T#{o9TEa_Ucf8JEdml7S3p)YnYu4w)i;{!%z#MqchPL6}rqQ>Nt>Fjhl0m`Y4TBt#Yf_w@i+lL(;#vy{DI1IEumnAxh96yJ)cCa(I zh1Z0#om^MCBP#GKCi(F+d>OQwu_9)H%&sl8)@W*Oxi7!kPgjBkbG!z*ReQ}gtJ2L@ z)_-U!|G@)sYK;D=7RqE`#&QFG<+y>5BeqA1d%O`yEvxr0 zb{IyXQNXaO9E}59>YUM2peX#%*4_t7t=f7f`+&e%<}i-T*1qpf3 zpxMB(3^B<~w$FoPp)p#c(B&Ne-V=%b#PT`h+NcU_itM`$CCsI?bJH{|=$v7uE_m;xnJo3WOjt%_?#``VvXt9v% zv=x*8vY}TxQzs|4Aa3sXd!ZyzJ-!@B9=L2 zEpEn>nGF8DwZ1zZ>$aXkP`JD91y4^+!oEA;dINT6BA=oT>`-+}#*bDuZx^*e5_pKL z5Zd(7WL+#{|J-8>_`OH8{BuIR?5gP^J`Iv*A zMZtMZ_Q|k8?w}K{xoF|$azST;mHV12U0HvBqbGG!BMn_SlyVVJM%JDqWvQZ@km=2| zg8g@l11+L`s9PS!We$ua1{6sRShY6f|Hf;5&Kd}ehYhb`|3(=lFTa{9f3{7~5TK@M z-X_to>=bie0KjxuEd`LG0)q+xxRjnemcpYGwtwBP>-PD(##gHH<5N|LBA(@Q0#pnx zUkP}#U=||tk+u16sY{2Y5rNB@g-n$OrW%k^Pb1&3~K1vB>vJ()i6vd&G>It^a3Nkoj2V z_de)476wPV^Q{pQsr4>}Vq|?{_3NTvzB%2Ow&e8xxlmLi75IM1#Mhn4E=t6}92L`* zyXd4G=$Yh*s{aGOwHdMZVo)9OHG$mLD87ePR;}zopr$LY-DrQf2-{jaJNZiIVcmSFUP$uR$ipRdC2x;{P zP_ZID9MFt(YM_4XaR*0f;P=PLL@IU*PG)mEZq zjRpLC7HROc1#m3leD--oo`z*$YmGjh_3W3qinoiUEa$nAW*Q<~Ga~7iZk%}25ti<4q%Qm!bM0iCn|;AggKd%mUny&% z`!Prdl}4)Bh{Q2Xf<-x*20|<%j_$VePKZ4R5Eg;EWY&Oin_)ZZF)roNl^x_&YcJX- zjI{gX65$0W@~sVvm}kRoxNNrsb4;3Xg}0)0Kt}cT4B}xV>CppMpx%Z_*3}4z)_x7D zJqa73YMe9)gY|H;j2+~n>$OAc`9`&6b(s=8^45Gj6PN(FW~*4?PxfL|jWIDwUJ

    *Tl6+JfwvBu&ImBswJUTD*Tp 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

    2%C(pYU3)9(8K{c2jcoZ2L= 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%0AtuaayGrt8WDD~a_w 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%0DPWpRWmW2eczKvKs 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%0AHkH5p>X>+7D)?_but+GPtNo=D~p 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

    IlZr0P;GK-=skfLn1) z?EU2)^`V+zHvd5rWJ%j`1$q@0jOr^zEvnugn3jjKih156lJ3o@OQu`#K{w-7KQgzU7`_Fz(M43Zb|bI0k1Ut*|rL+lm$87`H5Ei@4iCSB8I zJRlpD_IVDPGrZ>tQ3$F={7_|J zo+JiNV{;W2zKCHuD*7b?BO)v%BR~Sa1Z4JwYOl6G4THuxR8Wj$J4q=^{cx-9zPa?A zUA#iSYW^vRb8u{XaKXNuKv4_jL7uce`E_?W4fDagge?vU}yz!b>;BA zT)%#xbtIU}q#6srAP)#hwhQTi=2saq6JH<9^>nnf-so~3(1B`kaawq{)m%sl(@ui) zMtUros(XQ z0fT>V29OZ{F#VAT1^@@Z0nq=z|L=$}0!Hs2?f-5c;y2#_7zZ{BKm>%)Tj1fB`=!AD zV+uT83AY#kfB^700v(8LJOJP$5OF}50Kox7A{GDu5A>Ix007lMfCDj&3jmY=fsG9S z_yc_vAnJhE>MjtJ!0;^&0I-e;03ZYN<^jXQK*#{$4un52y#$DJU|u3%+#cws0U-iJ zE0Dhr1Rf*+AP0m$5buFl2Lcm#fms00@c{8?>!aO|bv>p%*70b=qkWHcJ#q|Mp#T;@ z*aP7Xgg+2rK*Ry@8i*_)3W2Bqq7H~wAbNoq24WhBWgxbJI0oVhhzEgtj$6hn%44Es z>{eud=%4jHw*RrdZ_XchjC%|LX98p(h=5=O!XJn@AhLh}&SG#t22lVgfD8yqAZUT8 z@COA{15pRWM<9Uzo(bp#q8EsMAbvWK#|Jt9u%SO3H~<_3926W392^`191_TSO|kU;c@7%&p^BjK0-U5H;g z{L>q2;s|`+`sw_C2L8@Je*Dhu;o-ORZ{gG-z&HQp z4?ng1H^P51^!PdO&rW~{8XWX@=KcBnzkeL|PfbAn5kLM@I^Zu=_{$T&E8({%-ee7KjRDh-kiS-f4BX& zF$nGt002L%esiPu-~H(y{{6RVAJhE5od5@VKijwbgLC}N|7qWM+T#)2|L3<$zz>i= zxRrn8{`TPv$o*-<&uj2|JwMC+&0YZL4`Tp-=ls93e_H#St$)V^&XYg6e|;_g%=J6& zkJ0f{gP)Aw{NHhZXYz07e;@iC_s3X6{!NkJ6M^Bsas9uaK>iO#=ij(Lnnv^|?(eUd zzj2Aamka(ER)5d)w{ic?PUyej3IL1xTe*)Bpac0Qt_%Nf%*QM6FADy4{(C1s2EX?L z(YMr}hkw|%zwWM|*?|6!w*5h?pBayT^1c=Svu(e#67+AE#ZTr>|9i0yf8hQ+_ZR+e z+(%;s{({x|&5Yj&zvcS-41eo4|HpIw|DnEr;}Sh`f#3RkJO1OtckXXB|3SQeoaJY? zf&63c_x`*3*0$f3>kkn4*%z(f=MsV8A9Ko|Z2&gzC-u)3e5d}gFaBvR&|d#P7x*Lo zeMmn1CM%HpzbW^(S?Bj7_D|*iu=hW_75yp8x9Im-2darNA!*ekt%vfnN&zQs9>YzZCeTz%K=UDey~y|Emi8ZVBzb)sFwEa{pV6{8iX5 z1%4^;OMzbs{8HeT0>2daA5q}@D&B8vd4FHY&-GN`Tk-&KAm9K*0C)f+00AHXKm~^X zYANmSOZxXtk+gL-wV_m^B2v*%A(9bR&{vR`krdX{7ZFqu{Li-R=j!UCw%=Fd;eISR zKBk}obq4-M;@g5H!jJckzB3=wAK&!{zVZ {|+o=5jc`*-7h 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%0D^Mo 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


    *8S(lrR*hGe*cTPnkSdR7mymQsU z!-(&*&a(+mGN2i=UIlVmUbHhEtId*%wr{XRZM0UnkQ645f(rNUWLOiA_P3}eVYj#s zoVh{n<$rC~IR`+dcj~*R{Kui}wC`NC1($Ocoed6yt7qYtFbgiZgEF`~QWu@BsDLBH z?}Q}q-$kis_qz*a&IbuaRz&NgFy#x+4=$YrWg4enMkQD6}m-iW=)nw3~|qwNZcR7jA?gB;UG?4HsNBa5w4M zfZ+k#AHfBcUhd;xd3%$0(rRs=v%+vhuBvxnQIuOpI~ks1mlB+iQDl7NmXCo8ShzM| zSu-0LE`qy}+75RNTDAiaKE)NXokadrfp*v~dBXm)d(LdCcPVr6BsC(qrvh4ww)p>$=uidf%R zog~xzusqsb*=BT%HigpaGsmX4z_5JwPI`f;>WV@G+yQl2<~ZlqDCupysubHY(!3)s zB5A{QC5EsM?GzS+t-|XuYtBd^<^t^qy1D%z%4%AAxALE^Jc(xH9La(Y!!C+2+RiDR zH=S=}?Eb#k6zCz%4RqixFBE_FUr>F-0a}kZ60J{zIIyTv{LECyoj_d@_&-!lyTx>5 zE~pKJQsFd@%HviCKMB?F8vOFVt-Dmovq#uQ-YXf-wNz1K_i6w+Vknfr)(~RBVTn zO?V04Ko-fz?#!WvaDaBW8;r0o-3gPD$WZrWAuXC_?OJ~36R?-cg)~GFud9GwVG|@? zR#|Sztn763CaKp>VJb^i>w02f9E2$_W7cQ5xqP<`qnAD`Zmtd=A=NQe*UC$^sMMlY zyJe4|leVZtn2HX@w?b}tT+JMqMI%XlVFq*aP1Dq|qP~mqhQ_~XO!+`32z8fpFjNuv zaub*xF6ty0DDN^MX_1A*!>(h20SXJO3GP6u7iMLGpMy=OOsV^r(!K|+*2EZjt2=+mE1ceUNrHV=XC2YLU278+? zE!FXtBp>kN5|(~Rg5e_j2(^QSX%F7c%-w~&qW!NVr{1@t%8@?h*?s$HwQFWdYS9O@rFSgg!f*^q(mWjfnFWw`>%cV}3VK>+{ z()f@XGMmrUKZo0R7x}<*swSk80G%83>VMI@ObdM?G>1grv9t{L8o1q>Ij7Yzh&BiCkQxF_ zj#Jd-F`mI0b51$qU>%Z3&Z1X?sz3}KyRrO|_-F`YwH7i4*ax&d$95X$uGmn6XoLE$ zz1*#%(5^+0sT4%ZPDBjs)7lx}Fa$dT7LB5=@+{F$>#4fI6B+P13WnfVk~F{gt8-5T ztioHceT~ig>8G)Q-y5)==?6R5%LCT4IXLL47f7Re8PxZve9H{{&sSsd4iX=wuz*aC zhpPY1MvI=vHLA*6^5F#=oLFZy(k{Y9fJOZQdM^S(ca?WMt=jl}bHp901{=%~w>*M<9uWb+S$ckfw6Qzfz!6>Q1{(3|iy&gxxTd}rP(wAejW^hb%nGXVRnS@S#DxYBTs7y=QiW}T z8h9xy`pXmgylqbFv;xJ!a~@mG;>9VY1*`U+(-r%9O%4TV!+l{1|&K{C!s8fDDL z2h_2zG*A5=pEP$lo56CFmHkj5C6yI1C?g7Z*$q!$9&84yg@cI7HpdC1gQSl)zZEu- zz4@?=tnub|K!Kq*ztc(952`~BE!lz42q&=9BP0SrVAL?%2QL2W#Ba>sIEI+o{VjT! zQ_el~xw}iVSY_9gL)&3HuCA)nP@7ssc>|e7XDY+BC8fffEPD{LL=dkiAxADvJUUgp zH(!sJ0W{Y82+9HNhz-I}j1Ou{p1L*exi$#>MHgtO6xI2_H>}b}Xb1l+92~2>2H}+G zg5YqcZlRS(W`nRt^a8IH&fQj+8(yS)D(trFKvca!ID=BM`zhiUv_UvR4zz<6ceio4 zU=krxwS#=6Ej}13dM+$cg_WT2NBC~*q}_6&A1qkkEXZLU`jU2WT%sTImsQifBq%@M zjs-AV6SVrzVv7gctY~$R5e=AJO9oI(a_lrWE{?)dCTber5j@8D8^S!CHAE>{8R-W1 zHo9nz+uOP-fd;Ez$>5`aw@sCO-jDEkhkR_Z&lcvRWpOr<&t%!>H_WGl`K%_NNwSZN z`9#CVv25EE(be&=+uu$u3%1RYTxPrd-~{^}Gq=r@TqcX9b4=JaemyI*BYixD7_n`l z^qs`M2XC`V-|_6b&$c}2TaBCYO1p9vsF$Td_!^Cv@9359P(c-GZFEDera}1RGB-^_ zZ69=p%iPoylub<7z0>$t2zTTBv#e|zaUgVQFuQE+gpqf!D#!lRf`$AoV;9))x>?u( z%=7R2TW}wI53Xyh+*51Q;39Z1R(P4(q!W0l;j+}awPE!%sdlY!4-}bTQQU!k7sG6e z?`g146>>yZqRywO1mY(yJUEWP=z(T#sc6{5wjGe}di zSFQnZMkoC80uhihbQ!ySsPHMikTq#yxz}zK_KTmV@HrJp`o+&?e2y&@{vv)I#n)Z9 zbB|@zi=xY6xC|;4ekp$K$CnOCSBak=beEu-=qEH8;zY0$7a1^%b8KeEzR?Jb@)j*- z{7mpi``8trXKlhf%%vb^%umnGQZzVAnH=fLbD7pwL;(8=M*w$4cp;@T@Br~}o)HE_ zcqEuxaVn#M7Acym<@9l$twXi4j&6&tM=+PwL!(gkO{v-DUOc%du@ zp18FG&r{wd(m5d zNnu&f+K!t9q`ePGQg3+;VV8)X)H{ER&j-X$>S#}+ugnrZsUx}24JYA~b!=VL!=R2x zd$bq;JyBP6FF9$1B+&^yTvwG3C$UTR5nVBsbX93^bw6O>+z%MBc7ra`X7BVIT8&N5 zuLHLStHV4^9oF^)#9|%i%_FRP^BBtWfbCPJJ-19Bw!k|*34eD`yW}MVV$^{=1=ol@ zNvBy~#JG-Ma_v!hrYT{+ z8Fu2K2h}x6p$I6R#QmUvLeV%LW!m4xnoiwF2YQ_AmM(j=+pnG#7~jPO6kK4u5`W*} zFN8k@hov8Ir)O#n!dnX#a6BArNQg(SJU`c!?pj3j-eZ0%H z2YhR+O*z;8E@36e8M+dTtinbG5B3AbgA1Ot+!iJwf0&1+#2?qVb{@s20;3n^R%rl# zP>8;i?5_MEs;tb3Yjos|!+*#kVI><=(eWv}UYLZ{KbwlD7lz`)(10*x2t!dyIc{7S>MKEI z0n3fbrO@dp7V+kAq=YauI1CxX(5+!8DGUt?C!VMjcHyjg7ZbN?>=w5oew+of$U=9gbI5z|g?UdRYz7=2^ zI)Nfp14UuET9>g)x7AG-gK!rEx~XgOa=V(c6iaWgYiBj)8aE1Hvqm@O4x0@i*xw#c zj!9p@F&2)SKgZ@~8uWbRCPABQ?j1-e3n^g@&#+a)JMopKfkI)9LHIFhD(-DVDGUv; zM}#=I?6SaRCz+2A8iykFR&c(!M{w7yVG0P+aQl2=3__I&pGt_X4mdc=b^i{lIeM)TU%SOu z6TPr9!vPJfi>=;>FYjtvQI^@GysI~}&szHQuBJ7ocXb_p?a^i4r`FTwQybXt2kiGS ze%X}=@9OR3u(}?Ue&1ui`|-N~6c>M5{KexBeRmoN`?M7NrQwP@iocoon~lHu=-LZCqY-U{s`YN3t6`a{dw!s0M<(urw@NUK5H~4GA zUpxLf@OKe^o%q8UQ~`xmf}5ePW4EU$jp#Ca8D9I#?4@`e6u&+wvpeziq4$jnOn%-s z7P4Pb`{;ec!G4#qUy@SwI$d68mDlOR>*8~dHferK^?l1TNwF^~Pur(fqL zuXD54S?hIfDYI9g(1*+HOYr(fnf+0`j+WVh{DNat$7cJF>2<=F-yg42_Qmw|xi25B zSReo^rvuh>+(Euu>6tSsU>yxGL+zQ933*U}X1HbrtYZO=1DGAKV!E-8M}P?d>qLM# zaJ2@kxd8K2o;mpe>m-1a0Zs{6rvfZMfN25ibbvO1g#qgffJF!}Ghi(SSOQl_pUwhU z2G@HaVGD3Jz&Qb{24F7)hz(fd0Ak$E=^e240jLA04_NyG><6%az#0$m29#_7Z*|mo zGSEjnPt(j=GksB-=N5bhtT(EOoK9a&-}LAo5QL zSO)&8ZN) z-!R%V(wC!~j74TZ;3$qcJ2?A6s`at-x7&8~aagvyb zZnM&#hDf(pR``BSl!z2w&O?$ldNE)9c#F4S9;K6vs5o@wi{~RX)n0ScqQ3*FuDUUZ zj@iXE-C+r;T@N^RiCCkmks~a+)s#BYV5(1*T8cKvMDY6KQEAh`w=<^Vx6a5CNZ^Z? z*Gz_CzidaG>q3cB>w0XEaxqeHLOj{^fDKR9 z%ITT@c#TKLfaNtF+3!Ct_@G_i!bY8SqQ z+r={Agou@LeFmj3^zSak=O{(SIvP{XJ2KYMKyu!iv5p3i^Jck=OW(0Ic@8$=<~cIv zEL&3Us$8aAG7G;kOK12BHh2q``LN3>m=6UI=%Ky>P0%L13YI?RY z3Squxa2vs{ZvmHkf8K$Qd)awCSTe*|?5SaS1cfFI%WWV2iyD?iRt*j+zz)L(E<&d^ z^rrq`vfZQ<7S9hXo6hx=1??&O{kFdD?bh^W}p>^;3d%Xd}0{p`1v*cY}guKo-6qjx92 zG3d$9%Q8N4-}L?^-PE)-xf^<|3;c1!>rXvB?1fuv6G!E^Px6m7*F1DM?)IXWE1xX3(O59hz6cjd*i9YznQZ3!23@wO4ZoL&R^RxY4?E%t2b5eI2^e5*xgPRW>GMC*I97FjKJ6Et-8<`lu~9$Em-*Fq&#T7oTDvUJ*7dWy zdg__oc+5BO&&Otrf99PxvtD0#YW_XOBL6xeY3ftnja#m>!Une%ewmUX5)~c_>#U(i$PAO)^lJ)1;tm(+WO*omOSa}w8c%)PcQSkaQ+w+ z{iGnLJ@sSO8HH7VZOf`B=_RFd`aQpT;?Rs1@f8$b zr z9tt&sIw>sVF2Q={4p*+Qx1PC+uz}n=DfG|`1G!5u$HI4};y%mYI2K-nlbL%nBJ`P+ z%-lsdf!uM)niNhYkh=u0V&OTQCb&3A(V{#eyph~F+{tsNavRBAf;YqcZz!}8Ic$cz z40~93#C5qi4+}5CmRo>4oTwOL;yFuVH@ptvIi%A7&vghd!#Ps;b-m)b94S1(`4R5< z5$?<3j${Zcs^xH(;br9BjM`wjSVry=tc81Ps4*0U2wJ$yu*SvW!j((VBz3p1W>^HQ ziGX9f;S7YA+dTu}!!W{!VT6}q3&NwE&B#k(LHIC?@L?F?WmwO`Q_;{jSa=C$;U$=b z7vU5Ne;$1gOpO!@FT)gGhAF%R8z{Wo$0)oEQ+OGs@DhwZgtAF}kCjJ)S$QOwl}GB6 zEPOKxhd#-|OE3#B!7RK8Cs25~uTpp!rtmUM;pINe(wF)$OJ9On`V!327vYT*Uhdlz zUWO^W3{!Zy&m+9t&o?7{7)JOojPNq-Vd*0;8Vf9a31;a_FiT&AEknDLhxEfR(htK(UxvArs7ol++8J^!Qv;@c=vlV(!5k@HHrAwk87$??U@2cV z1|!1fM}*Ih2%jGjemTM;E9y0>

    {!5k3qfybLd+@XgYgrSLLL;boY@ORyH< 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 w^V2m?-GAP#zpL7{ z@2+=#^^XSzrET4w)-%1&_^p#KU(s{!BTrTQu%&t3&P^A+JRp^3`uL#U=byU$|KH!! zmv2FwQ+{2DfBe>*{}(-mkIZlC|9krK?Rp&Rd>-G^=RTR1#?Q1r?|<(1^rzw;d0)I& z{(ArAdcLQ>9e$Yiez*Dc9#`)9o}O)Gn{&-?%5fFmJkv8~Ip?3~et&px!}+fqblyh< zq2%xBKZL~Dg+IyP)BkUL2!(HyBJFfU%ka_lflm48x4Upt8oq6l53u;PR}Nxn4VsG& zg3TAd7cAI4egnR8+9BWjGVYFk@yosvzA1{#z!o>y)(PK$Oq^VY7GXyle)G0F3-@%O z(x2XtA3F!%kS@UYzd`4WW92)R`iwb;~t)1;=+uE6YYn; zy`dsjRur2SuRDQtr{-tlTisxNV9vbgvkVZh6%)5IYR5<3nzZe6!k~PG3=fBj%o4U0vv1m`Mr1I z1Nie^Nqj+{xqJz*Xw$8()7AC9@G2}9?x%b zC*ur2+k92IcyCaO_p>-w`B4qJ-E{-eIOjBc{)FRjwh?wL4PUD{(@^u?I^4`B)n$|g z=N)|UrFEy6x&hQhbE4_7=A=s<%flazAMRf2C48*I@13!8sD7hNt!%m+pIgqF?R=Ak z_$Iig`9S6p3DPE^o;W^en#}ec#BQ>auabn-GWPwWuvbfx@pj8syDxN>z*b`W0wa@ zI}x_={DIv=>IZzSbmIbFbQZE-T6+G_dH3-Au!&*w?&0N-3f;p7M$Z}1?dOTer~3Jn z`ypHtz7@k(FOAu04adkw&G>{F!3!541~R^i4mk^t4Do5bWew;Uy^F$*z6 zZvn=0?XLKTdTidT_2Y4Nl7aAzw%3*EjRskFT3I(LNv+wn3rUfiA?*c!WQ9FDdQb~TT{F9I*z z9F2`e%4x(msrKer$3T`l&7+a~dXT|5qRmG^f)9sfSKfozYX{fCTgcn-2{q#QnN#B% zqs*qRjHc4G>#xRV{L#u_H-};KZ2!E@PXD}UX68fwY15i^XEdDBw0kf%i)%RQ+=gLI zy9X}7C-}X&yxFlxlrzCVi0A|9=UF7kSPh4G__lgIjKhcT9q|Dg0$5fCD@uLW-Vtji z0H^fWUB~n0?I-yqcPD;c4cX7*{vCe+Q7N(aR%VGm!l(Z|^P$ zM`u2S!dT@4!gMom637|XgrChaoIy7~n}w=@b>zd@T(}*sJk6Qv<+=w!pKprfv-e3Ae=8`5PW0gB4qKsYn)?9#-J8?k}-jcSt`*QXa z8vi?e!H}*>_67hUibD;@PF#@Fa1;ZLAld<7BeVWpeA&H_XEq+OqPiYC6BAh51Ki4vaX!G}}9=Fay z3;2m+TC5=)@-66%#uo8_p>)sI2H!QIk(liodO327H*%2M^i*1D=e0v`$S8g1`oWt9 zUWJ16rkgT+na#JMS=Nizfdja!hR}@Iv|;sGHBJLv@*}}>ARW*!Ci9_9aP~7|Q%i=` z=his06NMSch1eZ$QlikGTv%S?9Fr&vHJqMu+B7ZfMyz;*oCrE?&>eoipShfYFRT|A zO=h#P({np|qKkGv1EG+1z5fyfPC;lBM&nZ7|45LJDsxF8j+ru7Ztm)ryjeQ(Hk=j3B4MWQ3F~RZ zgz$y4N7m#-QB;#fVR|^@U^&7|xa5YNo+mEwyVmz-F}SSR*o=M2{Y*E8N2sM&evH(NWnT{-co+em>o1;*&=`ZG{`K_jvz<-g(eCdYcz6Jc<|h|DI1xn`)@RIJ z@AAw2(unE-yY-=|e@w5;a1+h)y{?-Ij z$^g?Q#l2u~qvjV80)Y(EJsscvXCst?$(CVz)LCQ?Fv^VC&V{^(vz|1CCrL<_#{ z2YWC+3y%314HAyLgrS>3Chs9sPWSokX}Bmy6?Kd^P+2+%zQ{BHL>Q8k(*KD z?8C6Y2oHY6w-fOXPT3ceW1L%YQ_A^+5Xs@U-K&*=|4RrsOfO`AJqx#D$ntsM$e2gX z2O1Fn8y%Rz=)5#`>;oG?IrUlJDDAp-PGp920lt;*o_t{A00?s_{OXK| zQ?(qzf&&{7_M^Ut!qXr;o{weZfsMHH`f>`#LU?;I<9$TW>Yj68W2j+OQQQ8)^Yrvr{>ea#H#B?PKx7O+OqyK%Ks zBFo|qv$Q`KLN|?Fx+3S+ci34DnJ7T7_rOPkaL~`a5hvoqw|g4qqYD?P%x zZ!+@KhKz}WuASZVgCS#XK=32<=Yn-#L&X|r54scfIYZFh%d*cI#%7?*9@ONFh%U*$ z1cx+j8o@mdgYc3X#tRApeSjvuEIueVu7>RPSsM`N1Y^E|qH`Sd7!Nbt9z}N%#TO#t zMG!9_G|RpwJ38JzH;424*xq#6C^GQU;nK&$xM*+AjAh4s2clUV9-+HYpb>#Gm*0XX zEW;v>iLlEde%?gfp86r!(c}%31tk<%`c#KQ3Eb3@7Z*%oT%Y~?lcV|UHNXu(2XzIi4RUCp!b7tOo7tNCk^O8;_K^Cd`?qsh+4h-roWE%$Z4 z8Hz0*$eMp;XD;uVz;h735yEGPf0O=fS70AHSeBL*ip`ka^vgMDR$9|9r=v@YpBl~8 zXpT*mfr2~_Jcl`u19O(5Xib+hJtT2Vyxp;x>4R)JjW*NSLZ@fI<=M5dyFaGVh&UGG zgFOY~o0<5va<0{52dLYrd3lH&dO^G^A+>2n2(O}teH(cByQ%yMU#057}EJ3jxR%}!?~7;^oGF_9kF{B zo|7{Yn-nunQXN`Y?)(us#OuLxDtGQjy6O1&I7b>{aSi0jY7S0do-O_haMW|HcE1hGi(ZU}Rms zw8a^MmdL?#=W;-ag5$N|ZS)RIfnEJp6yFGLww{g-VIp$?$(eTbJI*;cqN!(?aq(LowyO^~ z;~`^jUHVlNedrtu5ht-_@^%*DV_sxuIzxDN-#ko6@S3sfGUi1GWj-_wkuj$YI;ZBG zSSrGs$fG#+`59yblgoh!#R>T%OJAl%nI?#}?X+*t!*6!Ew8yyu`k z>z#9sz3G&P&Gce1x+UyQBeI-3sCX6HfQ@mQAIE;;b$5Y-Yn&&bpwh4S^Tn_QbS_xt zRO9rVOKpCdxwDar-Ssk(7M#j+6pe;C$uuLS&N#NF`R_>1vj_1e=0yiq0xHbQ?~n_x3@ZbAd5CXfjY6~t8lg&>8;JuV_?sIbe3!IFbckL5gy0McI>-2 z$Z12Z(oJrkE6a{uOX<%cjd!j%u83Wgzhd#;?+XGAUIaook_ha>b?fdC1RlqzLlHO& zg+PF1&Ur}N)eED|2bi0TTt^?f*qP@ScJ=r9KoBSp{UrRwnC-rrrp^HvAmU(HFQ%iL9=%E(!(K$G+^?QA zGadf+fL)G_tT8m;Bt0HUNq@C7)-p#k0Iq5zR7?N0W5Ic1Ajod`oLnt^F#6rm-U z*G0iSTmWPMN@pS{^4}Gdw2uu>5Rmi@urC6VuB2{bcasQ*foZcEhSiU|#OZ_(Auodq z-ofHwL_u7tA#gFW>S+ykuay?hiciE}h@-v{UmD)YKE}lF=I_*yYO->~bf< z$^q_3a;VD~YJNhfOB#kJ)MX{J=*uKRT~;R!ND6g1At6r+b;+4x2D%)@@ zc|%+}FTw;6-g2&qZ@CxoEr*@A;3b)#;V?%-Y+v;75d^p73faFL-0})kV#vvOaLbu0 z_}7A4GPo(vBEc<7O*>!|-r$xWq3gn9{*~aCU8sXj1bM2@;Feg0o@Kv{g$i^p5Yh5> zn5P7?ycG#{v*w{Gi9nV&GLU6KB9J9xwI;=}ycLJrjlB}a@)~fCh>r{tC5Wd#J&1{(yk{U zF86v$tchY0=k~>W2~CZY1p?z~rsfx*H;MUp93hPp9+rrbHPtbFHOIa9oA zSu8wf_JWbd;)l-cVVDW0B64lC4t;2Z% z__5`SCVv+chuvs){~DoxrQfWfjxR>H#vAJR63zD&>X@7mkzmglCgVHE;JHyu7H(+B zgJMYN=N{)AoE*q4MQp|pMl&Il;K$$nB&fh;_dd>W5@gE|hWsNr)Ba^hRPT3s;W^C- z%;~zfxaaxYLzljci+y_N(nw_9Jw;fKMc1uYqMyb?mtuHw=b@*_1OFb2Y02Kso?)!R zB!`D4Jn8_(Hx*nw=XH+3qn4&f1k@2)eW<6p){v=9E~)|}8~w{3be9qSN>l?E8NA>q zDd1?5&%sVRei2l*!9-OxPa`y|>5Bar3-^vk8TOo8g|L=9Cx=FiC~X-3WSpR@TwVym z>ZCIfLn>SikCqoLt=xw$uyAcg_a?Y<_es-%=y~^ZPfgR-riIfnB;sk_!Mvx`-@jl0 z-w~D*cE4mqN!|du$9pKBO7t><2fGmR zA3y+=$FD3Ao>e8c$%W%6$74YwgsMaz#rpx@P-1WD8IalhJDeJ8wGP+Xxpdsr*dsF+ zJ-hEQB~Kqxq6ELcY2n3b3kooh?JB=`5foigbJD~TA*+kaE;lk(XgC{(+2t2Q^>D+S zUk9R@TyTB_$^FioBzm_Uh_~B=!6UCQo#+FRVcmnBIlu!G;8+?ruUG8N!rq5`OTt-# zGXV#=wO8c^_Bwa!Dfc%u?w4EJzxx@KV4K9Ig>~3~j6GfMnOI(j%c4#7Xh)AzDzgy5 z`T>xTXPx`slQv>j&v_b2`1;9@pe9Bt)aKobkgn$o^X26r*?l$64es&#oK_?`I04h) zGM6JcG2I;zoCkVrDj9N}(cm&%4w8dKY{Nt7N((G|osHgm04)2vM;I{J?@tCJ$SDW& ztT~=)2+Auf=t&`ju~~@vf%7%oplZx_FkglqZNpIK9F+mR1*P(6{CeT!2U2174!D_$ zkz8~lAJ}m`A2m43c@K9Wk0Tuy#`tm(TFM_~CBYS50Pr(Tvvcx(sDEN-xiH*|dEMdR zPmHL%EbZZ?h^~(a&$1I7nvWHCY=m&CvlG+ewjZ-}4kilfxow^7FNw3xu{WOzHM$#v zRCaLkI?eVO>h2J)-@IIppD#S#@);Wt%-Jt5t8K-{KKRUG_PY-vaPtFmzQJZB$7_BN z_vsh8+rrth;)9L^!$I>*(Wy`NL}xzP``UqM4~_&M$_k~wY4gF|_X*q}=r9uSzy2;7 zRvLmdOJ0IB`?qww+f@;~@{KRm3;%>l@87xvL7AI>d*xqQV@mcZJu5!$nv!$vyWcIt z#~)o4xo@9&%s09!@+ZA_!7rss!BaQC@tdyl!kaD}#+^UArW74})mf)>O(|YpH}FoW zQu6I}Q$FgdD0}dQrel@mZv65OMs}4?9lLGUMHV7?ySFFp-wPeat4eYUd{07jS#n|I zP=E2l@FLv7^&%^lBSLAJw-m6n+TV0zIBmf<7B_}?%(b)l#RclrIKz41BkYlo_Znb& zJ-gq>A*f;x$6FQv#h#MUw4H+JaBf~w8(h4RCyCM8Xph z0U9UcUKicNJaP$HEdy4(TVh&ahr<8_QJ<&RI2CUjlJVP-u#bVL5wX?4?}K@8*0kf6rwV1pzQo6+r>hNS{wZUt81x;#FLAEC3nkd&RT}|Bu<<}=x+yMl z!YIbxm>;^WVDa_=rnta4$t_Ntd+Ju7Db96pk%*er8r| z(o7+4?FBo=vs#;tf+aO18Vj-NVCNU8Y5@;st&P5SNA{??`q~~%gJ@*OqZ#-y&1~DI z4}6rWP`;txEyE13wubiIXRoQF}!+APxAzO|xs&D6P( zU3TnJ{93U({IyqJ&h*Nw@HbD^5%c7Jv{dE3w?~?1>MP#16TN|v8QWgMk3Iuv5dj>z zL@Xw{wg8!Eb0PlP%|bpa$veN#ae{2K;NubJJEPcIQik{FKT{kL=ul7oo`c|@*EqIM= zX5HvYKC7raE3*!~awa6uu&w{)B3Q#pDjx4V1F<6L5sz?I^JvkqUi8M3PIa2|zgPzd zvdG22Q~M<6l6dW&)Y@a5Z<^XHay3k}DMmdS`J}ya4t}kbm$I47v=6KKa{SF($!p}v z3bmH1-1p8%W6{3i9lNMu!5yzt!-T70wo6fMgPyd zsi?@KBC$pPd@<25!E5A7(J=8aQF&IjvZ`n}G;9#>N)QwxRq=QyllLPCdc-4~op|?D zF?dNZ@D!fryof?#z#jB3Hx6TFO`Sl40bmSPf-jPnHm_ z*J8C);4)9@-i;w4k6P^Ez*WR95d#uxFYO}~&JD?U3V|xR_A$h{W zc`-7UEu5bxx@h0UWAa4L`u37!L)S}EKV2_Lc~tyx|6Y>M3U8j_Z<2c-=G=#AenpU{ zv9=G59_oKjPpMXrX4 zHVI$ROO~U7)=KJ`T9_qoSa~g0OI4oaC3~o0!5zKSFxN}ojT6C3-iM!LFFA)-(0*!; zvjm?dC_Wx>z7vC3@$ra{b7t{q!RHaVLr>v2XD;gi9~Qazcn&zx$&T0FkXn1JbF`_= zB2!y>paEeIZErw0Bu{xuSXjHtdCj89ck%h>iJtZCCFi5u^^(+2*Gp0!m3~A2UXsts z^wqrmjA2d%zKc@?c^cFG81I}1u_EXZk8rYhv>@0a7DOAOU(0K##cHX_le}cwbZA)CqZ#;#d&w45 zgO^-`pJXpt1BvO7<~YZ(&BE~>alUg3TPqyz5g+I5U+&&vo7|zNaGdi#3VDYta`EvT zaH8|4ct_~HJ&B%hVrSL5-fpE1nYWxEJ^#N(aa5G#Tn@d)P+JX$ntjbPv@Jk43l zIzW&`E`pu|PI4OJwOdkak8y4=wOQn97+K5o2;e2>BWHQ~wU+7E@)~(!v0AF~BroZw zhGlFEQo~#?*@|lLl5O}&_L5;pOoueb*|5yT$0N>nwm_`-c*Ms!KjzVb&wX--p2Bg? zO4b2BEOPPj9B`sDGhX}d)Y@a6*`_v&ytM=F8@y=Ok_v4*gAyx!E;t@^_ zj}`=13kIIT)0`Qs0|Z&*V&FO8Bz#Wc)?SrbdyF&6)Mk;ZVPq{Ghto^eA!m8|wU+7E z@)~(!v0AF~Brh4Fh6Q(IQNvs>*^X-Pk{$R-_LAk0*xDh@aV}Zv;^PtLJ6A%i_;|#} zIYm5L@L3^u=qViMSgZqlSmfg4Ip9R+9jxSO?b}mpk9FQdA#1b9)Rr-0K>DZJ-hl9Z zp7NITQnlBuqaj=7De^?m`u39a*{+wQM|Hg<j|j{?))W)`oZ(~tf!Ph?N+48r=$nA8bTM7(O)ilvmT!R}W1Mo1^eu`0oL8xpG# zC738rtVW!STw-$mT3L-4O&P8^CHxmZ+V}oz$oSIjb2CO_OC^7FfE#Fw%K)3O46uk3 z_TezXO|iHtjBL}w@ciqs4&YyWV|WqHaow>fvMVUrG&OyCn&vPy4?%QFxO)c#O&h1{ zB1fUaMFo71;Li55@IS)~aT2)@vb-$Y?Y(UGPSmi|?MMbDMK?F6rOA|a(`&rg(wn*V z880t#T2jj&^_CYnOH<1?dCPO1y43P6Z+W&8PA%W;Ee|;bspVU|<$lMXTE3O#xM6&O z!sQJc3nRF*O8?TOk7>>Ln#w=l5csfYkAk$6_+*)}Gi8OT7ogZvxBBgwTZ4e>jwK$r zs!XQ=AtFZV8eu`7 zYlOVP1!n`&rp`iLAmlal76xK9xI4Z!$o3z)HYiVI_dh((ii@(q4^dQr1s29DvCxJ$ zW)UY5iHdZ_eAuk%0r&*UP5T0yqp=>GMwZqh8M4}3TxukPZC3Xw12+c_-saQQDXM82KVbbuexrQ!7fJr_SF)2c%~O&aEDQYM?kZ!ENa zDBh&uo+gd(G-)K83C0*PVhA8L^dfW z-lT$flTPw9>10onPGOUB<4r1zqjajLNvC<5bUK@qA8!&iwlqyT!_%bko+eprQbD{) z#qlOh@HFX6Pm{jFCKbk;q&rL!rHP&oV%q{*Hpo#koL*=$m=GzshW zSh3qh&80UDMq~R$i{Y$8(dNBk0yrisy7DFWm~7cM8VBS=n_qVi$c?Vt=^l_Dt?rR{ zljPOTT}NRH$m-tC-2uss3T(EpOEdCgB|n&XA1EZob6GK-C9k?y6TX!+!q|%83~v}+ zxsO+9W@GU#pdFLMtK;yQqTE2|o}sP`x^H16SPs}T+LaDTNb^?8ZOSPEa?5!!-fZA0 zAFyEF=W9nH)=RUYcJ3Ofcp^Vq@WR)3BRw*=D zrACvP$y2+Nf`GA}9 zOr9v5rhPGbAZRkME_+HI-Hp zszmia;l_Zr`WkzXL3Z+%4QCep5 zs4C9;3_TCNlI(1mvW(BNvPgRl6tE$qqi!B-m28-EtOc2uqu1dI7mjdZjtRUH*U`Bn;&mvVhX6)F>@8d3Y)!4bVjRoIUC)YVCF*q(7CUwAxg0 zr0haSLc0)>WEVnZrVF7`bRkq~)EJgP04&iB?Y3#!C%tfJGDB3mnk)uRO_qcbvLva= zDl?j_QfRVDjV3dbCpWAG0b@NqUNt5Rt{O9)tj1_Cg`&oiP&Jk$)mUXlja3RYR;f{A z>a@aOiNa`KPSaRHQB7tqVIFab0fIitzQLz9s=nrz$*L;+(ceAFKL zt?e;tjBdHNw;;wwn}7ntK16$IMFGjF-ZDQ{@p_Ij0;Ft|#~bdu7F$r)2%M}h~K-mfI7w<_%J$m54TrJ;w?iq|10|l$G z=n`ns8DXy#*&D+Go2d|3OC~Y^zpGHnD*q4ob3XXaJ;Uv0N$kpGze$q2N4m11 zGF~;(A(#r#*%%ojb~=L*?3d?wbu5TYle>Yh$bjz?R$S_{I(_m`IDjuBzU=Z)J+-r` zX_qZaR%F0>pDR1cUMDgj-UGxx@U5er`_}OSvE`Gv+krc(L4N_k zSO2}^b3Xe{XSf}c#H*PcpG$JjNLMyg$LA^?!a=!AUddEq=kCF_j7vLT8w=Ifm;ED|3egJSk z^sVFL@~z|9V=GFyg@j8N!mgwXrCFg1Ns=y9X6QntpbM26x?l!FIh6)TPP7pZQAm%~ z?Yxm(lIemC!#XQrAzes9=|YmE3zZqVP^r*`O#R73tk4C=!=1Z?E+k31kc3MYDiylm zV<25j#jk>P=){7VvjA!6{Dkm^4p=}PYlSq0J&X*Xi!8w*y}ot4062u3b+{ZN#Qs0t zlcFjJfk;9LM3N*Bl^Ft2sSt?Foyu@s2!vDGhCn1q0+EDEASx9CA^0SaFn$$TOLSRh zlQbRgthrMs!Xes$1LBfU4pA8pmqda?NGZN`yaqUgJEOQ9f}R=!IRATQMw>)|Ahsq3ls8ra4j?k7_e_@Xh&!OxgNwS9|T=r0@um^D_drapk!~>`F2xYi6n4L$V z4o=#@`}K4RX~+}~!YI-E8M+{Q_}1}spbPFS8`5N_QC#3i9zp)w#Yi3C@WI(+MRc5nrEOL9j_!r~k$ zNkUcyw2RD%na=u{4oBsoN7hC@^;976Ai@6%X=JrGGKhe(nfA_3_MnwR*n{S|Kp@na^d7i4R^lL=ws&k|c+y%y5WGg+u5IZRtk~hvf1c z${~^@he*QZ5S0pt5NdMB#XLn{GimM&HaJ8mQ#nMEcmZ$- z_xmy&!g+-OGIPKQNX{b+m7I=!nIA2A9re2NQ4j^pFq=y69rB8MFbh7)$T9*n3qEWH zKEEP19HB@;=|YmE3zZqVP^r)b-61|AWmS$)B%yR6Nz#QRT)I%H&;_9;U0ljj$T;1* zGKPD;MB^gGHj6~s3YEk#;`?Y09_IQ-Eatc(7XURgxl4*93n(c4v~a% zh$P7&Dl;6SQgDb$4TmuE*;n_d3PK=~Py&%82}EUvKvXIOLf2@^I|xD`g*=B6h$KlM zl5hz`r9vPCp9E6JQwU;*&SARC2jCE4P2~_tl0zh+9HKHHE{Oz(kWzf>cnxp}_Xc!1 z1gnSO5KNm0hhQ279DOkl_! zl2G=LB-uk{hCNg&>_JE9PBX#Ki+B!Y4@r_eB;m4$N`*a$Guh)RopUzUu+W7hlrAJm zx=@*+3zZ68&=I=ROt9%NhpU%k{qHk!yzga4xx9n zWtvlZAZ0v0!A(C)8M5V$ZM4lY7kf+dbis*8DiC88ez#*Vg;SfwmxIJia2y$)@ zS~-M0Xr2oM!cACR0ujO{fk;9LM3N*Bm6`sAO3~j?saeQjMqi-Of`Bd_i4XTK=MZdn zIfv<_wvg(Q?KR0d=vk>Cnahp%xFh=LmkyF?)rPNI;65``p56e=@Bp;8cq zN)1sk^V#1`TzyU4eI}8E{_VMV;J`Bqui{0l2Z4qB6iO3BYZrqu1BC1iZmbnqA%y@+NOcLU}`y z-cTucL#2i{n9+Bbv>;%n2YS4uL2_|PgXv__z#Hm|$Qad&bV8$cQ75>9IVB3_ zg(c|!bngjaiRnaHSwfOz2}!stp;BQ9;tZCkUaH_6`sSQFp#YW;UR0KlBw0cd$`UFA zxROY)1WCi!xD*t@&97aG`1iglu!PJ|yQEWSp>jzlIDt7O1m=Ye=-6zTwiGs~A&$xh zk|Y~Q!es-M3L6kovcYo2%Mwk*TPvE7`2sAb@|^@Or{bLjw>ymGRKCGry2HAhDs13u zTn_W+KH;wU3;WXiC86doNt(aPjQOh+=C4v?{>*&lxBP0C()KHtc8cLwFYScYGp8oc zyx2Q^nC=TA_CAwPs=Z5+_AUw6-c>60PE={{w*#3&-&}Af31IBPZEEb2q_Imvja_BX zM@htuU34LWA7@3y{pvNJ2U#Gmlgzce2=$9J?}b` z6kK~}I?3LpQ)gE$7n5IZOn$kTJaWe5kr$Jv53^; z_U=UEYB0cg^NwmU48YaCfA@?CAN(#GzRF<-}1fU6QnP zNw}7-Qn7SGN=v`{3wuYR@orf9eEYnOuB8jt($XcNmM%$Jy2^~Ds}z>5Qe)}NeC8J< zs#lApuQryxS}YwoW9i7#($VLU*+DV$I>M@EE=iiXBwRCBshBwtrkUTTGap~fyAX}{ z!S?TsT-D{;z7Q>KUlMBjlBDgc%-Ft4Vf!jIw$IFGexkAK+_lect zXRQ7{v3lf;)gv!fe>*~T5JavuNJ6b%lC*kBxK^)Hv3lZ3t6!rN7N5tv4UKDH=J|u} zzz&X_L2{SeVCK@nR5O<(&0J;1%vB0ASE(^`W=8{k|mn6+x60Vu6RLq=^(#%`G$afeTTVdwS6Nc?~&0KqzFmp+$nM;ypt}?ISO?zZ$_bh$d}c5^DRBr0q+>wSAR}?Gs_ze!EUOeCBr&8rxy`qdV^# z>l(iHD`EJOP{Wrb4PRx(@Kp-KSE(_4W5~|z8_S=l@w~6f|XKWvNvHiPkPLiP0 zy-1xqCsan*3l{OEQoa<;ycjz%q_KB=kuMuGcEH&ESAAuiG4}t7Hw|jr#je|pUAK!} zBWLUyd9myJY|e^c_I-(3G=5>u3ziT#zU|CB4Y_s^t$2gZG<*TC5HxOp6;Hn*9G}nE zZX>K%5^BYgq!p{oSg}fB#VR#c%*<#0ny9ivthmEiafetja>k007b|YDIUjW=C=Z>H;5H)Fjl-ltQa|C#mI{lud!<}?*S`bZmbw{B*1Zb+=`K>6<05% z32)ZPgD-5kzi~6H_>aMyiLMo6f$HD4)?fRG*zY68ejgG0Mb6kS@?yWOb|oe>V86E; z`^Dr3AiF(ozsQUIE~ouIuJZ(+$0B~?<1pB&2X>zCx?Sx6!eAw#1}jM#tjdhRsuTvR zQe&{peC98yDmRP4ZZ-zHSqv6AW3b4J!M54en7e?%t}q6Rc@ChqB5ttAi^1MbgN6I} z;+Ezcx5HpB*t+^6*I>1~2ZNP_8muH~uqrbKt5O)ON{zuX^LebxS3fQ``?#^$$Hium zGd7F7*lfF9i|Gs4>?&iknCbwOtKv3`yx8mt+U&DB4e$jlxHmovYkl|X)9Ty~ws!8& z!Ip$}uqDY3w#rNgTczk=tJHL`nfc7C?X}y*inkjp#xC=iMMut9G4f)?9d;!qD`3T| zjTK{J10b%BTQTxt#j9w=J9WgL@}>2^zKq_u6DIuT&9^nUCahgKn6M<&ge6H6R+%wj zmBNHoYD}1!&tna}@>#LsXN?s@%YM1gSn>bF%6RooG1#5PV0VhaB4-R1c`?{W>{`q`z+mq)28&q= zpmtx}V38Mty_*KR>x*0U-UWlrTDWu#PcUM+_D@W3b4J!9HtOVy*xN+hzizn7n?=cQ_LQ~X4{R;Vx|F5w#RK2d9m3x+U))>ZuNOTto5CR*KBfo&f1Sd&sh@M zbCx7~&MGrKXO*JotWwi+X6Cc6J~P6dPnKg5;VxRku(Ea}=rgPSkYKl8NJ2iD&y{0B zBFXZJd59!SB-uU_y)s*}IX+qGkppr>lIs%}D3V-}}!FS)|HxG?1GKh<35 zKjK2a^NK6v){loq#|?km+LGCPK4uvS&&EQHFudnMH^MNKqjOKTiTa9IulndA3ngSV zj8ZHIy5V7QU=3chq|kGi&)Tv8QznRv80>ViCHgQTV=m<;j4BHyWCLB9KOsX<6&{xm z47Q$L@H^gCIMlg2+XVhaXx=KnD-3yr*ko9bbVCI5$RR5992T%PEO=1bo|Sax#ttC# z-Z}!w;4UHb-Y9p7gwS*AnYi@_rTN)Ow;pn3o?FKYVYp2k=ehL}Dofn@$oQ@2B;R_L z+z^D`TOZ{Ly|<1ia=;_UbL(T`x1O7P>uS#sdT$-kv~ZUYdT;$G6?$&{==iPYC*69E z+!AD-TR+B?d2W52$`ZGJEN|Vrq3FN7AL`DZ5A4K#s9(S9ua5zPuJX{}9p66_`=OqE z($Bty_G3TPG5YRaEq(5faCz*9I&to>_pu-9&b_A-OT;!lBe3Bh_Cvk$1dDcw z{ZNOGnp21UP;aej`=L}Rx&O8gF2{bTLr)97C{@buyWqq1*bnuX@Y-qK=4<@oa*04L zL41+K#=erAfSP6})N4hMAFJM=k$=y*S8TMtC|0=vWEG4!JFr-Q?S;XRvhAmLztzQi zcOp=5thoS&UgJCl$IyaY}% zu_o)fOgTK;^#xF45CxUYSCx%JqG3q(`>I1tADn&tcQlT3?fxj8ST7*$0nqz#SZsPI zC*s`jJ-KgGZrYfmG{LQQ&navHdiN#?-kWfx}z9UpA4 z*9~BCHgoKLoE}l3b7~yFxf~Fc`=5iyj295<%lWA7+LjBQH~v!_L|Ttlcc7+SkrAzI zmwWbeeVFzgj8?Zv5%#WKgYlm|TmtO2*#6Gl2+zFuwX}n2cn_cXS3#RCb{ecSu$ioI zFpVDww?v2AwOBbg+Q#a_u7M2J+-g;~0~txW z-KuQOtL(sEG|M+7!&loDTQNW`T-zqi8)sK{VAea(8Lb2$IK5v27PqK(!s+F@Kml&; zHFR}a>~n!bHgS*(;~m(RXa#UU=lf{sd=ErpYCEjj_Pp9P_=|@5YW%+H*4Xmla^dP$ zY2P@zat#Jwf$h;+K{*mMFo%OFI76U7m(vR-BOSqxz!)q6Y7CYH>NQq%M_zRs{u1h{ zps%t$jy0Y%MhC#U&0q}-fOW{lI+Tia2r-TY>(C)s!xYg;2G-~#3)XE`<(j<8R{RyL zL%!OMIM$f{L;HYrtHBx=0Ba4Q4Q%NSy;x_tSZ5uIHT)G8t$;O_sRZj*tF|q#wjF;3 z>nvaOnmE?zJ)nKSy4_$62yne@7wha)tg~IL>2_1FMqFx))`2zN9uTad(5-pZ9r!C) zXZtGK;#gw_9t{N6umsU-U;wOhT�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%0DZb!$%_?p5#0lH&o@-Cg1)6?dw;#QaAPl()Bj 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

    73Snv{WRDuOCu}oVt_6w^wGd4KEUc?ivVOL9F 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%0Aq=B3>g7=RV(mcYkA}Ug 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�dSGLI*ux1N4j50R7^JEA@*jR(JYEJ_h=f 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009L4KMEAxs~44v{yDlC{D15UO(TE+ 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 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme deleted file mode 100644 index 9018892be3c9906fba45af7b74863b884bd564df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292669 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

    xoQ0`G4xs&2@ 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 v@8qu> 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 z z`#B?|7NaTJofe*XKG_(o39`H$jpIPo_O2%OP_o1^JBHeYwq2$=9Sa0-?I9Z^KM$a zWXIai6$i1x|MPWAmW*{Rzi9KbJx^@8bmc$pf8dF;Uw-c?3!ePPKl}2v?^?a($^ZA9 zk6yoOg*@}d-7`khkIg*t$XM6Xizl|sY`N^} zciy+*-@dVHruY0(`q}HZd}YQ_+({=DaVU@91RdWyI5^HPUG`rJ2d2~Ucpvp)FOtUFym%)UucSk7yyq#VQ&by> z-Z8J%vc}zb*_hG+UhW+S3ljbP0p9K`7UO&t=&6BPacvBXCBHq2H>>mbrWi!=(~57x zd!9Jm$ZuQod**RG^63MnNU798g_B_J0lYOnFn;jh#(o#?6bGVKJE-u2e1||X?-@st zxnsugL1Ul)7Jj)AZ#R8GXVDX?@=6xT}u43RQH( zGKKGA_Z5q)&gkeUp4)#K(J4^6zrTHQyf!j&@Q20zjga2FlZ$hE`-_71Kt;4H_KzPJ z-%B{0X7t;9Hupnx6Y7VigVQHbjZavv@x6-{;dNJZrWL8hUmTzTisKDw7{mA^ z9;;nMS@wy3N1Wf+tq%MX6o=^SlV=D%snu}aP~bF`@yS8Fhm03!i^U%o=wL@jify0I z=P$3Vt-&XJQquTDungFl@|gtV6M7IOZV5lYCozZ>P;H!bfo~Q21op4*mg4tEHs+gn zy_>sG`y?H&8J`s6#eVOMba8xqV1P#l!YSwo{Y-10q(NlRIHt*<%Ca)@s0ub1OqHyk$Z?H8hr{ZHW#EPR5xNz0c{!z0+if|67BPLuOh;DZ={(KdK6+kaZ^$CxL5 z1MHLCd)X)aK7NDKgCpjA21L@_arjk%0UHH%#q$b2K^c;2pEzu?x=#+)IyQn|v378q z@d-CI^JMG(pU;f%ox%I|=z&oduxADyE_zdX3<3Ij);(7puR@YnsaPs~|Ev=8Tm!DBD{kFd9H1BA|ZNN<>R zfG)68cHK4mScgmoeOwGBGJ(Wh2NFLJ;uQ70qb~tl`Rkw?ZswtzIe*CQ%-Ktvp#dei}!{sfyoJ`!UOfhv}hAc=H3NF{wi3 zcn6lB)v$dWHR?Yj9*=b#lS-x1_&o{iN!RKpQ7GZ;&xp<{Pz))+c`Vki*uiU0tyb=c z#SZ?kR{Ntr>KC=ztIyzMosR=Ph~Ve$#}Rry%&6N5%0938RE6Lb0t;;a-k)p85ncFj zRSiKM=empR6VwpLa4qtIG2W-V^b+^va7?UepB!NM!VmN>mrX~{40zR3;1fQ}WMpHX zK%{c9_A-0;x(G2Gc-*e$;S;oUNnmoq2*xKIRh}+r{;VP*iIyhvN!4(U#+Xu} zPrxDhKQI>r`>K!kOvFB6Zr<)V^ogC(UxZIE$_CDGFN$@*CF~Pm-u&yv$7q6+r+lR^ z(6_jsry$nBY8pr4;1jX8?vsl437_}km{+{0Ry?;hf&*-7yOB<4Cb(#yfM&^(tuM@w z6M+wxZ>MCOeFAYKiAc{A)G>-MFN*rd3Gnb?;r&9-f+yb)J>gPc{a2VM>{vFJde$12O#(n&t0d`;r zw*4pIw=`a&@2AK4xqIjnw047sF;Pa=W_g|oWR^;r{2CRGKv;2et}t8z2z?Nd4ae86GI^|F6s`nkUn>*h1`laUTOKq}?o^K;<8C zz&yc~=Slxl9Dy-5u=?P6YgIhVInR@EtSU#E;FDzSj#`B+*Wa(r3wc>H9M;6V@XomC zB39X9@gcFI;As?4(x19d@GA`Mm?s@0Bj=v0BFjzlBFOXP;6c`m=gB7h69;GxWepdc z$JHx~8X3phWqyWXocRM^t5qsZ^Mt&rxj!+Bv0_KQ2R`|+lz5ftM4l&dR2ZN5>=WGK z3iin~#gclSR4^bs%oFH{c|x%cyp-pVl2y_v^htmJw`$LLe2i85M9&jQQ^puN_`_;7 zbwa@0;3-Nz0FrSYj$Lj-hXITG4m~Ti)#^Vv@I&|1{4$-u)pOah^*6%cV zbiOh=BN+X^kY0FB68&iTy@f>Qey+|-!xA4i^~9-02k_831>u=X==3g@rR#_Fb{Zf3 z-;(unkoTH)I710MbYGM@pW88>kcYo>?L;=@D9v!3b2K`Wq4R#|C(r}Ea_h~%~#dOqtniaMVG z92J1C2-4@kYpBl_LeAI) z22bC_v@V8i+L0^pxX0*F;xm;@8~(qDH$x_{R0{uJqJVB14nT?fVmg)qIYEYXz(Zzj z3-<@e%V-C@P{7|7_Va^fsBjADZe8Z<{>!1xp9CEepMTT^nlKq)CQS&Pk5Y(7O=?Kv zQf(CLCCUHWf}(v9z=Ki}70)A~6fj5vA0JoFo487@OLB1)3ULo*1u~fjfRo1;DThdV zPjW2;GCMSqzF$FiRg@V5nEY2T;Z)IVb@xH{MgNDr_W_fus1m-okVr!!=350fxp zAT>=BnlVDdBoG0Unzo5UUSvBV0}+)Bh%BIsSp*UhGBwR4G-F;I-RPn(uiLP!#^@*D z;;y^6&|pMlv%tFQx_=aO-Cadr$Sww0rxW*1QVj;>I5#>r&#d1ys}OX%&p0gcPRL^aV#LXUv?= z^G#g&@nOX~#JNMluL_2*iXR$PYC#8J+p_G$Wt5nzeBh5jAT?90vxgn9zs$QQK(1>g^D@rx{XlbolZp5}LN3dau6QR|8%ZPf~59 zrMJ^!zi3cZ9pYR&+y?t>_BMc;U}V<7qW`b@cv^*7!X0PZ0o$&evznFvLmd5(RL=~_ zZMFDxLsSyu!v}7lra$2$DP%+OV&_gCNd9*Niu|8&hSrfXq{y$3i534C`|lI^w~P6= zQ#ur>l2*%T%`|+VL3rU4wVLK#>Km8F{2lroyhES_Q&I%XE8!vz*w6Ea;AChX!mS4z3Gj`Ez5IL# zF7Rj5aHmi(e32b!(3ZF6{{_ze0@$lS2e}K=5ri*CQ`xu(o(Xl2jF!#KBL>r)-k>p~ z?`QL|rSXJgplZz(gUy+87gs7U03|M6jQVEg^7!^B8hF?quubSOF@s{~D~ZMgtJ_kb zSsLD3)FE6_(mX1FrEYOp@lqJ#?i64wH@#kS12;uhr+jI+03}G7I2oBHYc9}SU zM$-)!_e;2?8muyU78IVO@6I~I5$0Lo=%$-7qm&IldmA8v|0<_+)xmu}4RJpplmn1| zC$Mn9!D!$H{A(YJJ(#Z8k$NCJ;APl)6FkHVK&v~?01fnvDvBO*rd&R%l?Sdbkf(?T z`UOCIc}tT#w9P1Snmi@pC{0qk;(Sg$v2t7h%V1_GoI?gV5}9>4D3E>yQoU@aW<}0A?>W?8_^SNwTF2Q zTQWePv&!%?)mg`u62peiq?~aWX`v-fnJ`w$xduU*?^p@x19U%!X)R{@m2h;XyONa4 zv3$e;jI`NRdCaw@BD6PFjfE)`Rj5sfMQ}qD65?0ms?l25L?%XUkPox{*0SlF)@x-} zw9(B0BMmREgN#-?&^MzG>wH<W2DlDmU8B2#7BDCNxR%5Fj;6P4KpLD>?0B;IKng&sy5itfR~*r*Z9jma9RSVIvqCtFTKh z+&M}-2%*zG9k?Feop4f%!Kku3LjqIr8o49L1vVTA9r;5VlLfxRK#D%#us;Z*yfL{r zuFK__Ksb#iG7{t~w5r5XIdfEyXFt3IMr-Q)uDxyNqposbK9u{UP%|WEJ!1%lF2j3N z)IVDYqtJ@Lo7B#pUQHD>5>s-X(4s4XBX#nnZO|Y!Ef``UpabnK6pBXHv#ZZY#)K}= zd_oGnon{h6aZeJ;^w?tf(`xEwXE4H{sP5RF3n?x2sD5MEb~Xlrx}Zm*6kQWl^nhHT zz6_N0F45&!8mZ3(pKV9Ut`o+O!uc35%y&iDLou0Qzx?_p&f;h8N5~|1&FXLc;7KKe^ zK}~FdR@%+h+LAk*$s+$zZGNha$cdvmRpiQpu3PTdkjp;Ad&pg7pH1Gy@;y>qsu@9F zz6vU)Uj1!_1h`C!{UDH12f&_74?f?A&y! zDt5LH@;!A3iX}UGvLG=OdS|t_KwF$~9-y*;nQmn$;3pl%TtZ}{o>^lx2z@T4-4-AAM|Vyt+u;9bL^@ z7fG*n;vM~Aj0#4|U2o0K>+MhSkzreSw{_Q83&(~{!qSEHK_mst8Z?*T!Z?h* zY77Dt5!!woX5}Uo3-7#Cbn^%WTm&cZN+x9JbS}uO(}qLRHp4Ig2BK~#7931-&%(WK z3!=jT4e1$L=Wd1vS5I_j;wfH=)coPR(r>1dy-ox;ZR5e{Mc7c23s60=*SYkeXc zr`hI?L4%AgMntwEJ4CD?!+?P&x=pAt8xa=9(-pai-Q3tvK`cnRrww*mQLsRnmgw8? zYvO<*lsO087cuv;;o5EPFo|vn5*Ji-dXr%4*ti*VA7|Fprzn7tg<2-rN_3C!bUDh# znTBBbGC>ZL847uGG)jy4Q2+LlL{q_(apDg9y4Z}xbRtuwu_iNQT67!*C@-+rtF{K| zC{}UFjAbxumbC|;lZi$pv~Y;xS=FfOIsG2_F=fhWz(>L5BGpt10Q{M{)@R)$ourg6!%`whiQZXCz!x)bR@EoQ`2L zxAKjX+>D#sU>>16ks7diuQ}>T;dPi7Mgz{7q;w#z76y50h`pL4J$4+y0Sa1@_I4uLp99_!k z)?^xH!#yIS6NAz}7lS<=WqV_@)sQFT+qnI@XikD&nJvf<*!{&PB*@j2NSm|cgZ&gk zGm54XJw-)um8m;Pp&)g-XgT5y$f_Rz?}*ja#Pk$r8$3zz-GQmFXv_dJ*eNs2@-%N< zA<@tgnQ`5+Js-!ll3YT|B_AsTmR`&!xuE-Ei$Pe0p(&UqkDj-7LO+I~Dq>LacfFx%35#8g*wyc3?9%PsGHr^;)y%MM z`qS|?sc(1U%Ej%L+Vc45%1JmB&#BekH~>KALMvL3?G5MWholRNd8s(*$wqwPVHUB> zV(a7XjA)i8ntPI@NF^|l4dZ6M=H#ATYnfkmNVhGN7K|pfVTroRH4dj)ofORIo#t!_ zk7GO;I__h7c7W6xMONZbonzz=tJAZjm-51TzBp#hbeQB#WacSswbec=AWC?iiDCv+ zEIR83$uj9V+Mgj~hVs>fj$?6S*`Dm&bqT%<8T3s(g4^mzq~C!l@Y;k+mINoRr9Vmkb&P{oc#lYT&kke(7@ZVHb6K3D9xk0!65!M$9d6bPCm~0%))`Tb}IK zeb|kG8rAO+Ir=#f*I*??nFEypaT}YK6YVrwlma`w9UpJjGuek2Rv%`zz$~&m>XnkR zwvD_th!sa)WjL)0gO*E*83N~5beSQ?T>_SKeEP(~6YMBD%erZy4AJ)yXzDPyj|d^{ zq}NmP{dx!+LM+rE%0KCGSRe~4Uc%9>3gobzTDJ`Y`krP-bvFNKFF7cb70Qq=gbI7| z(~JU2-*TE>GJ$q2Js3MEW6bt_{K zR~>|K%KMqSs7s|H!ZW)h$Ht~dpu|%@X$-2qBr9f`#X(?-ysYtkMOQ4rO(GAA<*{xx zB#=>!XC{PtyAA1GPrk)h0e32d<&u* zMcph}O7wnt5-jW6CrOCia}}~wi*2u?b?4(j#v~ps;auR{LEzG&W+ z!`>msY5-X-04uO$Vy4su87r#MWP<#hd1U)_=c#n)7)g0(~G&^JS z20f0N=3%T#4zC%!b(6H*(&!*vexE+k1lpjJ3@Gv+Pg*Q8re;|B{Y39LMk+3 zXJvbjtJ?v(V0l*zBb7A(i$mM_7KAv_a}vSjh6q|u5TGs%-f zK@fhuyID!<;~UM}@3L{fnLF1^@EwVFNHnL%%DiHC1;NlI%*0sJRZnm`!qrjc$rB(> zdF5<9u1E3Nk}JIq>C(8QaZh(_F;!Hl9KqY>2x(~Pj>*tSx2aO@dCbqdEf&{0{!jrF z7L1zsUMhvF!f#AdmQn3CSRzq;m<>RK*63^^$KhKPQ>yq3WS5gIbCAL8%4h>-2?32d zR|I;(tfU!?A_g>g$REK=J!ZK8R2CzS1Y?sTbjN5Lh7Lw9(&C+N+9Xb9zBrIAqTD+{ z44GeeN{$9lX4zTt;G9rD^7xpx0OP@Y>4z$K;Bsx1#*v*@NzMtAgS7oPa?>KSz?xAA zqht@s?z{>KnuO`H!aB@5^h_P$|REaS-_i+p+=g~G`vr@$zZa>fpcJ#H!1icC~4A2rcO$nYC~uV`b2$tm+jzU&}Vfw5s}jf7{} zzjHDtc$m%`Mio;|&c8|Qr;{lYKQiR1Q!@Qw`=iE1`GO>GgTb@Rj4SdMM_&#yl)-jT z+9MN#$;m48heBtYA40-|+3>Al-=*vM@(ui(rOTOCj_KuVPSQn{4*v@UTCsM4-Erx{ zZnwF4dGFGR>$`(xJkx$qh6XGfo^5T&xb@NE=!7}p;V7s;P8-xLm1$Na+%Xi-Cf!|& z>DFu-j%E3!sOH#mAs-jNZJL)*uDf|EGUQnj^}yT&!c-{>tH`Pyt(+s}9-AM~*JOO^ zAseEd@^l!kt|xrgLb|8dl~w4`QVi)rgDtvt8<$k_Q7?0k>}Kd5PgdU+&lI5=?;gxw z5)bssNA9ec{3S{5MO(=?8_Cepp{D!%L?riJ1PyDF(DK;gY_J2yPDTrn+v$plE#`#h zqGFV+L87X4UFX<(#JhsH#2WLgp=jgs@Zqsw8!aWf)*4=zt{z&KjL*2rXY5f;dCfp_ z8?R^U9OKp>_4eLgmVUPMcDH{TXY4E%rYf1GchMBW!d=N|)~(IjC3aRCgLAVBB6`oj z_kTd2VLdPAv%_+1mG}5Mw@5JN+;GV>liD58gpJSQhnHY=9E5JF$VUb&Q>*KiX$hUY zRvx{iVolw5A#J?a*xq*dV6=Wo`JCyhuz;^k(`w|g_{7WO{;ZBwadmJkX-YQ1`jJET z^7+e8NQ~@4C2{wWsJj-JB)At+ix=_`5@WoJ{^B8~J*nz?q-;($U8Zzvd@@boxKX3m1OucfS9~4W~`+eQWE9EyupJzx4Vqe6M-eA52^~ z{&FinvFwJ$Z~4dXZ>xRz&fQ;m;QUkaXI%89o&W2lXKw#&_3tzV+6fS3hw54e$HLqR)Q(gY%BKnLVb5FZw||GqJW< zwWmG1|C*K8?Y;3&U;gaU%dg*b#TOdSEW7*32S4$5XYGCL@~__U8z1@3clWpC^c@>|38$L!kt^2p#dlh0mu)ps_( zwE6EZsZCE!-Msa=ohvqU9W%N@B@D^ zoIB>2BiGHF_u-sb`<34hAN%5|7p+*lVBWUt)@IkP$}YQRrg(n$3EBIWW*J@FF^_LK zX36=zpF3y&mMy1G4op7K`@r!0?3ueBKjUXxu0M0j;J#h|FtKIRk>|DEdG0$Nz4yrX zU30~wJ6@Prwe`ixk6!t@>o&js%cHg358qjN==RevPG0xZ3x58$H~xJ6(Ko05fw`xD@zi7b=KasBe{#&v77a|kY0^KV)fAH_)?0xHs z_Q~sh^1x44Ui8`bJ$}QP`!AWi`Rp$|^US>uK6>(Re{buxXP^Dmi{CTz)~imO^R7?* z?iuyzzrS>TDfhiOwMWWb&4(u4WBcEE<=&6Yx%rd&^^&=N_Uz{6FK@Wvb?@JD*;Svr z{@W*f@B6js+SJWc-+jYXS8ZN#(b;Ez{12{NyKv86JsD<`b?9X5J(oTE!}q*(BLBcC z`E2~rkFA>|Fo?i0OEWI=Cz;kjGpow%xZ z-s$@2KJ7P`%VKKrkDPW9N+hve0~z^B{cvV9rak; z_S|oFPPX#-bcd=!+xw6!GQJ;6F4mFIMY@}?j-whYC+mw?F8G>-I`zmdcLDob$KR=s zzBqIOt;YBWdy%`)$@qk1+BzY%)%E8*}}C+K9aFKzDJ z=l7Q6y$bWLTJ1$_=wz4bB+t_1iC;Ug!yAmMu2h9ZuJKl3BB!=>;@|Oj5?}Inz3IN) zi4bp5U-INXeph+!<&4jfuIHq9~NkB1*cNP9uPfubb^H#CbiaqjZO?4 zb?Scn@w$tdfPKc|z~ zYC})1`VKm|n=RFM%iQsCE7jKc`J8KXpg&Zrhzqj$Iy!j*D?2U2JJreI8|sAlK%}s^ z?dYVP&ZEUY9SEY6S^5b&p?;}OI8O;zBr>jotZEDKDZ-@ z&EBqn#f%JGreJkloH@$tAj(Uim5yCr9$j4-nM_9~&anj< zF$JGNC$LY3SLviAdXnuyoiKJ8Y@zf2yM+ytccs*0>`G;w;&#R^tZP&!9;rQcH74~C z)#|`)nh~47jp`fh8v}f7^t4gJlb$V@SKB|2ck%RK*+kh#_{m%w0!zuktMQ`>i&S&K zUa=E5ZTm%?p>!2!7F4iPRJ=BRe?fqHp+VZ>p;3?3-b%$M{)X{Z3rzZ7!wul7sk5+IEdF5n}VVS?wb? zW6#Lr*Q(9wIgk3(FsS)1PwgDBi;T2B6~)63H)^sVwlq-`ri_yzmCCdn&Wv zZ2P2nStlDkylp3`uN%`kfTwlQ_W>S{{Q5c?*X{2bALJ3g6Q}R&B_YaXiry-Gd_&km zv2~B!lt>5GRDr&yV<>gR<(vFCs2Jnx_(1fTOb8XmmV9q7r}C|Q9=onEy#M}Ptwp&U z9|C^9CD}Ts+woNe3Tur&@x=D++wTTHemj7>@0J!P&Ba|frTES7G##R^Y}`99%H&vZ&|@ugB_SOTEA`~43>5j#(T;&q zla%ik@)!Zyp2afDSiw|5XyvncKaUVj9jm;jT8W{Ibd18RP-$p^T}XV_uH0pgd?VO} zw^}b+JfdQL7gU&0r`?h zly2NKdD_VE@R~KA_8~XdF3;-(_$;eGTrd5^wWN!gT<527W`qS;v$^TCWf0vheOPN^ zgqq_lcbJ@{ZmEsi_yvuIR?~k8Bh?8EoRP&G?gJqb0TH+7aeqkn^W)flb_Gv7CwJ3N zWPDO*c{!GLwpY8Qo^_7mQk|UTbs|p#X}z#-pY-wYlNO{n81Wwd`v>EIaL0T_zYo!n zF{f*}I!y?j@Fk9s+{z7$$h%B6!sigsNndoD>I6&8zGchysZKU@org{~Y`WXhygfN? zVW=k`Qr@opr~2vu0MR1rKtJswDD z{p)_xDQ~X!6DD2StGf2sr8@a%-%nI0lzkel3!UK5iN+816CE1I$CG4b6M51q$93%5 zr3{>*Uxd9ss}D({vfT4{eGj5QClJfDp1V8M$=g*Y$Er?%cXTrD$FA}5jT<%lUb@9) zFZ}FhsJr6%^_Xh@c=+$Lz_9J8_qyMv@vt!lSA8S7Ja3!3SUJ(bOVvf%A5xvrP=em* zG#$H?pR}KJd7b1px6uit;I6X(YpR`c1XR40-hIDznAiNz<%-f zQd`7MTs}gx`olCYo6&q-xXl=|8M zCGHgQQ^u%=Ur{e^<6qIP6L_l>zPgR~XlOL5uIcZ;=w{nMt*|=hi*nXSI?FO2aYk5X zw&C5a-ZG|eDX{$Th9N-P&K}B>4otYFE>n~P8^(3##5jO{ znHb+-U6~Yq&af$lGzc_>L5>?ii7ZP>O;cz2o6vxQa80@N6{Df^(Dd$uuegO!bDpSz z+d?N4Y4lKMv^eAc+u)8ErIrGk=#TWUot3>1pts#Ya_Oo=!61t-xxH|tR{W=~;=MGc zcdkJ1=@ga10k>Tn4r!kA+L#B^(n2(DJ^P6@ZBX0asI*i1EQ-3QyDb5rwp~lDM~(lX z&0~Af)WOz73ZxJvfCN zfFHnBq=POLv~n=|uR^a%b7=wTW9I=@ZX;Ve!dl+fko!UQSls!zzZvd|96D}Rk-duA zgb&bc2SCtahg6?uR)eX|Jwh7`>6f7RqHY1hrF-ECv|CS#<-pKa2~3I|z!Y6hA!&UM zG7hNi6w`Gg|CVpaXCA1zM z&GDYnRTo-rvxb{@p;8Rm5iPUrX4`%{myV%rXWG7P`>*u0rUpsA68Z~bF0D#hU_}uQ zlwJM>=pJO)(u{>4O(tb4hQ@(hfjBQ{?N2IKqgh=0VvhvQk_3bqf*S$r?I90PAfVyP zY}v7$0kJcJ_tMd3^3b0Q1%_aa6gE*0 zn1#ZoqJnH4ouB}0Wc zVPcVu5=X@7CO{L9vH^tzIJ!edFRoZ8)^BNp6LgLkrW4c{FjH!am0Dc58xNVk?hEw@y%JGeBeRrd;3}3Rl?PT0y=c+b3iyu@+5HUyov?;8;!bo3hr=JD!y|h=7vf z(XgC?()+a6nNkc<5=&Gag)XsUbh$BA#M%BGX2g486xSWb^9{Q`SFyR9k=MopZmSsI z>uF-t)$VlAqfCxri6nH5!n76VWUL@@Zo)9cz^y?vO;TsC2*BK8xNts zne_l;JHRa>A7k`coFBl8Xx-q(0jQ{r@|k|)WsN>$5}K%1?KWI zo{7%kz&*0E;is64Y0fIwjS99y8 za}j5Uq@+GvIJvVo#9T16Rt2qxp^zyIJx>k{vh`a>5++eL{q+Ee1(efvaajXTre{PT z5Aqu>I>g*BBO8A{CN+XOR34UEQKjIFb4Eg&G{f7q8d-MfU&2dj&WVA6Y4G7L>2XkY zqueUYpK+XVLbIBHI};H);A}hOV0Vmg-3a`FQ0F2n;v5{$GD zHt}L&eAvJAN1)_YrV*{h1v0%Dp+|+th7ynVHUhJ48Vs#_=;~~ghMxeUysO`0tP&%! z9zM)H6y2=-(8D%QGv=(5Cfz}qBD1N{p{~&&-Q1c;Q${U~MuI$bQRhI5X9!dxAfe9( z7EUKsjTX0QS(+7FM3ms9*3EYtwrN(F<&_E?KvM5GdaY+WqWAcg?aBJ}F}Vk3X;6_A zBifU1MmqOgYpAE5aELhU8mrC8F|!*>YqoT4%U>`sDo2)7(G?1|g$f(7Unk9c(_pok z>7Ky25UE(~BK%%`G-*ps6Lz73sQ!D6ydA(EHuvFzh)cr4EnvpGj)hmwMm zAI7~CYkRffV*yKvj;gXx&WN4P(sSamF1bfsHC}b>ue;<9+q2cyBoM;{ko|IKVXcse z8*;G7CXonBL(c5Lhz#?w)l`Tfm8}4!Wi-;kdx8GM(le{)W%#>)Ol_B z)qsb9iqaI{NAH+Gjh0sxPK15k5tX?_T+O=XOx(loJlXK3Sq4A-3P90W8ciPN$x;*A z8}>NeQ}ujZTL$9+*R(Uz2wW`gys2i8<&@b*@U)J_U4{bK-c^8|B2>>0rff zD7dXRID4oz_Ho9$DR)yar-9*c==3-mYp(3u+FDRE<{HZDFa@oS@C zSRZ|jk)0(-yVc!rPQxGvUBWnHVL+X$!Gl6nNiHB5vhJA);Q&Xanl%job=sw*8KupF`|J4%?o27!?k5&+;5JPScnf z8_H~0c3wJqv&<#cYShnBa0;G?Y0moTi0Ne^kuGb^wKbey)fj9rd?4 zZT*;&80z7QGa^kE3P$rq)-UFok%`c@r@nNW0Ibn{qSawcb37(Abv_O-w9{mxompLY zS{A_e|B?(c;GKmTa??>Qnnu$3LHUHkn6CD)VVy-&7)41F=I=u5W)WX^e{5+^CJE=! zM5lSgOTr*QddbYTitN7HIBOG^Ma_mc9&xx-+^~ZkWgJeNL$i)kNXpE0T_oRI)6u>r zV*#Xg^d^8X+D6wAO!|qgFn(O%=Ox{4j)c<^&H{0HJrr48P=})8xWGE7I@Gg68zUnsZ=d56sH~hKM;hHEFScaY zp#{phJmiE@ZSh4Lxv-2D7VAJ4qQ4s7bC57Ojzkbk+!1zJAYC<1HzTuESqd;r;}#3& zhtV2OM$iV-seHzgME;nercRYjWI1!JfNoqV3YooTu_Tl3UQ?pAFgyFjE^Te>!&)3I zfNmEhITK2AaE{cfl{+WiIYis{LtCMj4zetwrOP=E+{Fg+ej;A zXY=R8w5a6!aq{%#@M~cyxF!tm)bV|5*h@ELunpxHnx*zv-E&R8)LAMJmwVwP@m~jM z`Xr);wfm;Ag4&Rs!kA(tDs$YQ++-1B zGAje*K~d#tJHN+J9nSE(nhoW$KFKF@GM^Y7FbFOQS2^Yb8R~Hp%oQpfp3o2h6Cf9s zS_9ZEX?;C^JR;ko*~rJ|SeR>af4nuvw=7UG#7b_f+F|gS9o>Fk8J0XESpB3iy^LcH zau5ODWW7&EwuOEfu-cuYAZ&!J+>Ny-x=>0>M`cgOAQ|kKn9@H5HO(84RutMkXreWk7>-+!w*pRJA(S-d)j9n#=YSUUO z9+YQoIX;SKT!{?bj^{rpAzMtYD~wkXnj8y3m`uikBpZHzc(0a6$tKE_n1PhDkeq%7 zsnf?bPaGt$6ZC`1>k&GJL>N9YR75;14Hd%Dx+ocov~AO$T){aC91~mF8C~M|21Y}S zwh-x(rjZG1BAF)AFM}IbAb3`$&=L0uP|#jGMqn%+PLbm*QQp z6)yxK%I76<0~8hIB``&PeeW5xG+F8>6O=2*NhK-d#2hApB{L04>;bf3Ub6vo(W(%AQ@%|wnAtaou85ST$SassuacSH|KE@RGA%=a&@&i>{0V85@!xh3I z6}ACmi&Mr#3KDkF7JOLNS$w?^Txd%Z4H2W;Qqwmn3MM(ES*0$)8+aeL(CUpVbx`J= z;D8^<3?NIKeT5p7h+dUCWgTX?tOnFR4aa9(q^1GJmYHf~oDZirR&;dI;~e9npLk|8 z2OWiyY3Bv#ScX{Ei(jW`s+8pz;z*oMrCN`}bl+cCj$>LR0iMNpGWUhbI!WH7I6eVE zL5#g`#8i9{D*&gJ4v7%*F7*(k^E6PQK`T1Y8`7N?uW>SQDP3hcjf60j=`m$qn0JMV zPI+O0$;K%!%0Q$!41e3Pp$eUkX*8mG;Z5!I)bpq$skAt)GG@%g9lcwv_mqJ{9Tm9U zqXGnt=?Ho_Ez)TK;Tvuz#|l>g>MvgeBL>zsuD+dkqf|#hOP$fjKy^xmw-$Vns2u~q zvFOW9lT&B=nK8Q2Fw21+K+#aVdi(1t zOtwcQvZj~~d*>}~3_;ZzXDUv_EMP%Rq79$b*$HHxSXTn!|)qM zij~q(c$8Fr1lMtywU1f9B&?P=e8rT;s&<0q%6Po`b-m}W8!azEJ`1CI$O|-!DCv*9 zRoVJOalf~Iy8?o&Ea^X1cFRM*wb%|_k*%rBW_C+)jE{G)V%H~#QrGOc!zV;x_mXp} ztWh|mn6Hs^OGVq&dI_rJNZrMQte>pO-|Ge(f=r&wY@bF5{c??E$(ZXdoU;1PIbpe{ zSxL^}xve@TPcF}zwdJ$BBwikuL^csM-Q%8#mJW?lU5BjuPl`}s>J?9h()VQjjPmDj?tW_MQ*mH*qSwI>}v zURnLvg|-qE4_jjN7)~?5TPRqNXiNW+;fqd;kNnJz{U1K^#w#B^_xan;y?ydGns0bw z|7#ZiNa!!C-ZafTN?I!WvV`G53Pzj@tL>*h`;HaM@4eyKXEtAR(y3QI_u!X4F?r;QKm6Mj z-~Zud%kMq)TjKT;q1C+etOL_>*syz*Z=TKS8sg%aP@s}+VSiIlS>wFcyPP{=&?HkI$KrBmVin-}=dI+1$5=Z@BXG zt1f!ObJtvd{Rc9oy_1t$woFb= zUbkicmK(NgxqiczQ-@DoaqgL$z7Wp+>A=wJ1^fPB>75G}9ChSXFYJHm=)Sl8%XfbL zwkN*yo;Ur=`}ckP6TN?N(!3{bc>I(1{Nu0RJ7@O`x1KQGIQ9eg{j_$+H}AgVT^o;> z3Cf3^aPhV4YA1}J)c50!m%6DVPC6+bANYVd@1(wWK63r(XH33y-Ea1Nu-tc2wd?H< zPX6_C`+jYzwd~g}S^4z`e`o8xZ+_sx_kH_?Z*RZo+$E>JbkCW$@4vLQ;`BQv{`8CI zZhFt*7wmuLTQ6O=`FGD)wC;r;pLy92UjFg9-@RzbI?H`}HXw~Z~YuC)Z^}_J@Z*){5S6q12m7iXF>d(GVKjywnSO37*54-ig z9q44kmMzDeJGQ2ED7^X(OLU%zyc zGbho>0rq(}WP7V&vZsfAJSR%*cz70R zvZqz|sIK(e(?{6!t&=l@JanqR-$c~Ux6!Z8la7By+xnx(dcu*q(J68CaG7*AB38Pt_x1B)~l zyKMJi(U>xpPUXtMA&vtkD+WUB81Fj-3`FHby;{9{8hcxl6>JuoyJY2_Ju6pEwp!P| zDC3z;6msX%)V47ix%~5C~cI* zeQfc?9*gqWqpr4@(CcL%?8t~(8>mkDHq4o`0W|c&DKwn)gibIZJTo+{!^qlHod8~W zZOKrri?6ZIM7OH8kPi4Ke$_sMk6tm=fbTxb|SM_1_N`9+ITo#>f2IKP*gIlUuD znS0jWm41sdiE0giPM%ktU+F9G*;>7H)Y$#(?aOC^>ZEuhbLbdrnoaH^5<4J~xC zR$EQFykh@9E$pBh$yPS0##gQ^t!zX0djHRMz1RCRB$dprjJH`>xqHus4b*O2%?vjo zyQ9a?@cG`<*JzC=<5qRT@uDg|@3NtmJu;Hp@N?>+=P0J3Mk9v-L`F zrweYwiYn!!S4{$>SFQS5^H+{wtJk*yQ%tN@e%?Acm$BzPzv!ubYG1kMP@SZC+xNfX zh|jiT4?T`r;$zF}b+T+(?r1$lF_TN}5$RFv=U%q&yyyL~lQ5t2bsZVM;KfawG8c>> zcMc5oblPV+X#_XIxjQ1yKYvgs)2U7}yQ*<(SlbIucWkFRp=KMn#?@4A6HWAJm0Gmx zkKfeyG;$jkJ834D9ikI5r#i{5;UqJy$1>k+Xj82c=W?>#Rs&^plF6K>MR}d*DVQrq zbnH@5c3lubd*rkY+5O|YO*NIOL zvUBDv%beFm2ZuGpa2h=bcfpHjZjN+u!clwdf~!N^$hhic@4ka$7kSmu@8USm$zY6M zNC=%YWLIV-BGT)dEjLa-v2yg$sUw0v2Qmrs3-FV?uy9!>2LBc($$(z6SB_3&^f z|Hb~Ncx(^7&EXJd9(tQU8c6D2sv|xxOh&PH4ESgX^mx#cRjhDzQ;Cp&IiAMpX@=mU zPk^Jaa!OOvygg!cDfW!Ou`?Xlnc6d^c8Y0S`Y-l&jbMm8&9Bj#?=~OnoLz~GD7)-o zdgGi%?oo#q zuo&f6CBn-@o{-Zs4i|rvahq}n7O2hO5@dtDA@+xAkErK0Vqe&XYh25Huec-e7QR<@ zd`SHi4|;99_fC8J#>(c6+b-;qo(kppd})5pG@P!NAiN+E4#sNJr<_$6cktThK??Lp z$1Qj^Db<(L|KQo5Ex8I?OKdTvqV|mH^ZV=A!u#~S#?)rbp>^|hz^*Y+0AgNv-@pRO zSns1U1-__V#0=grcc_2sZRMR^wZ(5In`>u&u*-ahkUaFD#=<=Ap| zDZNe|+P=~wpVISn(b41y&W^>bn0~5<#bFy>8R^U9`5lTrg>9CONP4CHn1FZx!FMB8 zl6UV<^CMD+D)UFRHQBl!7#-DLPcZ21=^XE9b!PeCOc$oj94fqPWqYLPWmSRoU|%(% zLSgPT4DY$0Jgues@eDs_G{$}h?h8NWE&P+dm5e%vj5Xa1jR|E+Q|p7@>Y}#j&X0e5 z>%nruG($*+$sb#-*8L9#fezOa?t59stS2z*K`tYmGiDiK@5i(&tqH2qQ}38JT9Pmd z3F9|M9_t+N)Q0hE^Ez5{dfrKs48J_|N}#LC>V~}0F)Mj$eEgYR�Xz(g^t)6$Dt* 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

    L;uF^SktE@xPNvw@~^C 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

    !m7y53;huR22k1ik)K-n08yPL7t8#<)>uf;ru2 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 &Ojq%Y*P$vi9m-n^7q2+fXRxWT>DuT|X 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 z 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%0D7ab$A#QilfQ0gO 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

    ?-+ya!$tzF_@KX-2g(6DTb2AiV zzrF%-iroSObMHVAe1F(a3{H>iCoBO@Dn+ zi&AX+IK0OaF-LqVa!MF+1=c5v#yOrGo`=kl*{!MmG7h?ZtbZNqcPlj;GoC2~bVQ>@ zHFW3d6S8{BBSDDU7`|zaT-n<=$xfps$RH>txQXCn<_;K4zZ`a)1d64cpK1n}&mH^% zD3sg>vDy~sq+}#i-J&&`4#3nyQ{&tf)Hb#0Bnk);EKvl_Gb&O;TQzujlV?(xg4-Q; z@Ol}T;2nu1bPt~y$sY>^b#XOpI2Y7FV0VNC!z%Rbw|(+InVqf_#<8Puau=TNSicy* z;O9-&yM(`4GpbhDvBhReKR%ae$!+s9SKFFspxjDq#*^q5$>v}lZ8Pe_P4mV5649Pn zr(#d3)^uaE*<*n-O$%8D8N46`U?9Q}RwUk-e(#ca!k6wb7qOs;sXJxF9^JdT1RR2R zwReM#iPzNQwDG#7Opw<7G$FdWnjV3EM5@wu)`I;Kz6)<2o#sT${UUT)N0+dRPe$nw$9flsp z3&Y_#>5Ge_12H2)&VRZ|u#1&8%EiyGKFR9Mq z(Sfp*^=i?NxUlBj9*lt@eG{up;$#~;`J|SPkCztywL5{>BRakwJkG3Yl-Vg0telSg zPf`}lva>$;k4(U@u?hrR44rN_Z>CU9vD6{J)J9=dGW2+jRF+~N5;fn6$YsKaq(w|V zOev~{#DQzZ=YTKq+G+^_BML|?`&+f?3;Iu}s!FC2!WP_yin!BufN-=_vmenU(BY&4 z6Lu=^(lpNSg*jhA$kE-X%du|a>28`-_=4RaQhMz0x2x@awIV!^l!62sm$W5nmr(ld zm^WX2`6ENL@X|BQSASWVN_suFRLZPQM>3VKRSZWLcxiJ_?T4u31_S$r(;1E^ExQCF zeo`~NoQ&eKT}hSW>Na0I-`xiagN6!F+fYHUA1b(@{j96$9|$JGrUMywU{HAvpp}&e z$MbVy&fL}e@I?MdPt5QW6!PN_%3K?|)R6kCwCC4;!v|R*fN>O}nv)>&7NEV4d#|CE zY=`t@kliP!{SUKGLy^8_X*kU&H3jd6ms}xB${qab8=86D1rEEU7*ivB;mhXW5)c%5 zy+8LB1Px6A+3qxu^Qp-NiD!_8Is{`MJRq5;R01Xm>FqPVh{_}*v$LkmNwUcGxR|$F>Tmljd5wVow5oW^ zmg8d(=JURdhgn|nU@!_84flSQr-?ydetU*u$+;hz3xy(?oCiyrL`S%2(ti(R=fb85 zk%Huu#A7_ggKFr+3dq>PxGz5%_yF&l0S;-zJd+9EMa|Z%YPDJze2BcK-2RMg zk8LT9JMBKPi|b^Dil+0|N^}e3R!jJ6!A}i%mvdwlX|QUEGcT>NKO8d3Rh!Udx#aI) zgnDXY8m8U+x^~roO!;yFwkj?$?b(!PxQp_n0Kpwk+6?b5dLy>qZBewLLD24>q;4T( zMo-^4?cq9n4lCB4+d=MUvTU!g5PeX<%0dA~@M072nZYd7mTdjZr)UNxX)+prlE>nbi&@`sJqG3Rro*@NmMYdPQg z0D{EiJ16Vyl#(Ed)PQM4$y*gm)82$U{xK%R)fdp=BLQ_K$!3^RM zPIJXJXbp%GJLv$6PtoBrw)xukVt1_bO(niZz68lQf&0XfznwgM=I;*})3Khyy$g14 z5=}ZG71RZ>ZU8LA5Yo*Iq0(ClL6B&YD&;##?PoyqGx~9^P~d!4wwIE(s>IqQa9b1g z4|K7Z#;dDX-?LP&FM#_(Y#m(cDl82kF_>4BAIr^nZQ&UL=F|5z48Zv3-tV`rdhR?5 z1^w+=86-gH7Z^C*q`o1BlH3_W9U35P$x~S*<)d9~50O08xxPJZEKNjp?Ck+@MlY_SxhNGXcL9*}-qdmfu-p-_iRV1|ikp}RUQl_I!s$fa z8%1W|00sJBag=x(vDZO!iTRp&3)2lE&%68N25B@_^9xxU%L zE%UWEC*O(nv>9 zi{2Ays>&7LCeh&tS6`98)F?HRg6qgYji)Fi@9OZS{@xaYfNwIb)t#dgaqbH)*6G6J1{XCjMZ=2$n%qnZkC`$eoK~ z{zY`LVP$q}3c4Xc+TzW@K@mMaxjJZKo|6nWhkJ-_U3@q)$vWGUqWYt1U~B?mnQN>) z{f^<(6Kb|uqsOQw-Sv;c((zp?Y#djgQuYYytfv4*&0mrHb_bk~9Ki$4pgnnz@3`U_{8=kb*TR?n8; zVuA`^7$@pjJ8n+Zo)p70ibJ!9za3o6oFMjS^?{=FI~?c9J$8D+t*O+<7?<{31=5l* z{!H*NE-9C|Og?81Piv23Q?`t3(B0ER2@-Al2}n_MZ5i#FE=>)l494Ao^Bm(K1-K}|WB5{-D%JZQw!cr5< zm~yJkzG3H^H7m7gRQv4LS6S@VtNZUQO#(huzw#uofH`ls6{I+O@mqfvHXoA;zEc{S zebPwholx)%%8T>veC;X{dXdMAepvw|+In$@87V%&m5~;;Aw6=*&CqB;v>23>k^fT& zuqfK~6b;xt;$enq(=NTA&Sk8i=9KKI0iv$40=$^oFLKY}Sv5{uD}cmpX=t9eo$ zXOFo#?J`bF)9S_;3gV@GO-DHp?Lq zenmBUomlU9IRw~rP~o+9{Ut52*mXT!uPQnM5Evlz}N7H z)Hr{`(upG*K$)v9hI|=g2=})mLSuT|f<|UReh9IlSGpkw$cPWb$g9>YHpYi-(sUr9HB$z7e)(jomVpaP7Todw@nkI>ga%g^+-oPZe*RaK?JrbvwC{C%|xYJn{hEwS0P&YEwMO@S|XY6 z#|KGLI>XcSEbcj~sk=YjyaTSyG1`HVm{sUyE3f}{hiwKc*>+QE2Mi~JdrR=3PQ2P* zp+<$#rh_E0YKaC;^@Af-b<)E^46;q1wrtTc6W_q3`RVM={|BPjz)l`q1f+ zK%y@|Pp(?Y<|eRK_ICKk~3#Bm@%dWJqaj>Z;Wn_6#Up!7`hpF%5?5VX`fr>DBW7#Uks zL8pIxX!x)T%yi;Zap=f*IvthT`3DFGY1celCphO@GVtP-Bd0#BRE!R+wIqpIm?<~A z)YHlFF#S0ihX=eW6@%`he4JC}6pdeaNq}H%Y-`d%78E6BTYaNom~_;`8ItJ_U#3vp zftA|Ap585AYj!tmMm*hoZvlPtOfN8F8Q{P2D9XwhE*f_Ud}aLo6B$IOGGrY=LvvQ2 zoQDCDiRqAl{)9E7CZL()2!do))-Ynqb(q{n)sMQ-kc+FJQ$6c7PpoC5GG9aw&u z3h$$fmPnOhz4c1*?;9;Z>BMT|gIM5l$YkO+yC)jKzjYKHbi%BYw(~+$k~&yvmLij# zP)QpFDwHKW7KR{;PFl(<`o6)eLxFslA^NI7t5$nZv15_;jO}al6ZBV3A+JcAk_T@G z-S&RC!N_|1V`Cbcq^)zU zI@UyU@o(q;r788!n44qJEdbvCG4`1j3Y_LROSy##|NX!@5)-r_HIWqz+G*2$t2ozC zT(Pofo0>YemBl&4G+En=VWV@%qRxq4@h^8~v}d;zodeBreJ&)Nb=>oK?Ew&C9^SVp zMU~2z+o7#HiLr%-~6t z*N;P^Q=)x7yVHWC)KdE-Hc}}sn;&dNIsl@29e2N?#{k9y{3)`f6GvwL* zLbe0~xxy10;`p=?lKSS6J8&sZ{*xx~&;2ALzxtzqL8YlB1ThyME~PQQz#s=3Qz>pv z`-b1B8Lmfi}Du$gArKU(+6#Gli4@p`h z<6I@26tmfihWy0L1yTv33<%Ao)Oqka6EQ;$YZZ(`uID$d)wc%bITNiEnd)Y{X>(9K zxo0mU4a|mI?jIhF`vyXLg14#@$GYQN$hx1Kws-b|=??>ro?5}PlGK4LfiUi8>}LKb z`dszTw@iUxY?XjB?qz#M3oy{6@`3>KqVy7&(BMTlNkt@wsfcuZ@1;5h1EV(?;6)nU zJRfoRB`*~+DSZBjY#4fxs&|E_Gy$V1r*V`Q#6)^b#EGB;?u*`ye-I~A$FOm_o(;tT zDFT_9Ec|w)r}wqr7fM2j{gOabP&zVwW8bwwQ15V9XR#QtL!GDY{VFhs1ia;qg7ldG zpDJj!#Sv8EiA&9ZmVHul`w0QG#W>{1P(AHJ>FzmhP z)7e(%L>UC>`<6b!AN=IXf{ZWsyw{!pLxvwK#ul7rpO?(^qkervluUB=n zPVvzeP1zs6`gGqAFjPa4yVPA2M0If~$vc8k;&yUCqwE;9LtT2h!iB0?0BS)LM{5>7 zz4SRYcUATrvLnVhEpw}eDmbWut>a;t$BHK`PPq}kvXCpUOw*-_vem&rS?YF z1&1&>ha1GId4lxI#5MM`dt~}IOm1Pr_V+YTF4wQ#YntTuLIHhz@)rVXo}-?FWM`Uo z^iXL*?z|M8-pk^5K~+B@X<@bH1PDC?goBl19Rs(DIwGh#f!0vqG@R7d7|!y21!SSa z$v@mS=WCXbPWU)weqi~6K-7a#l6jm+I6sMV4L-3PWf@%cjD=Z-vl^eZsY4*6rL-ut zXZL;Y%f9s+Bz>!Afcc+fd~Zx;#1=w7(K}7NxR4WF4Z6dn{fop;rcZ~4F94+wVCzFt5W(6xFdzPQlUl6-7PcwMf+_1x^X z&bFA*moh);|PxE^SRo7)DSHP|d_u{dXKienF zrY+-vtR4^}+D6BCVIjDsn;s5B4ES&cFXVE~jO14{go*@4i z7Wp2u04doO_E03gd##umxflJxFbr}8YrSTT(ttu)rSKX`xD%eDV?jIyj2PwjDh6G8 zn@gGCzrh&v&oVzoXX!w}C&4h`_U5Y{j$D1YO&ICobHx30VHr2#VPE~bMvpJMP?Syt zrk=2wd_lUpL_69c@UR{f0@(;gWhJ02?Z;|*afN8Y>aKyuLG8_pWM7{3yCDpbH7|2S z9*DAU4;d)m?7MM9RrN%dQ=akd_KPv;w74#*rmt+kndi0CLPVM*xN#uTb-|Z5-#QQu zoFR*l;E{Mcm~D_qjE%V~*1;J(uGu)*pP{Q-{xMJN zlau7{Er@C4j>Q6$L_*q!mHp9TK^qKzeq~dAd=l);QLq0G??Vp7S(>$}gDw zP0tFrXjjg`-`6Ql$6%9M^aEO~NRAgAzAs|-A`7KKgigpMIh3s-CL;4D9XS&`JJ6bDIqHV1`IVRC zi2VOj@&K*LF8fmMp&Ql+Q7l*=NRQSh$}5f|?nZb0>ew6%Fy&>7@Rv43CQxdpSrlLW zjHNqEXMg}Y#9Qe-(PL8|m5XKqTUFh1RTXrxMzFgiBc`Z8y2jSeDHjr$u=y&ZrWIZ> zbN~|{goeO1fnrnVS=|Px6?hzWj4SfA;U3kY%>amlbxb@_6r!DOMrHOE#2yw?I%&x{ zeC2OSrS2o#Ck1o4=)l0e19?apdMFVaMX6$tr*ZwX4)s@}Wjo9Sv?SrAeIT1hh>EF- zmy90RLTc3SN%7zJ7=E>f!;I#iRNblj2@B@1_642atkK=KAYOH1yScbx!ISpd#Ub04 z-5fwFWRhZ9IXEM4o zYSbHc`L%M?`8ohHvk2o_fb&h}s>{l`ugz4;^mMT|>xWrb>+eNsp)3|A8B6>XY6N`| zx5Ku;x{uLCHlp$q)cIg#Oz8Ey{(N*tgRB3DpbZu!nsw&M^Yv4{?A&24_WU5>n~R8o z;_rZ(q1O@1w2}w_BH!?5?VMy(&|lZ_NLd1lysQ;MV^)L=G@Rr%U068nk(VJU!2=Y< z6wT6Imn9iJEW*lJSLm8NRT*Zycp5oKwe0IaF*UJCG@=Nn(qi&ahHz17j_*gPX00~l zy>yHYf_Dbc*m8yKO!2(l;^Ow6$BSgxVU+A?FkPyoQ%pX~Ph*5#@R*~oRL#5-C7fnu ziYm(+g^2KG!ec10fLLb^(19BSH;gNi2%n;CEMW@%pUWwtc!yo;JdkrAiKzd-Wd^a5 z71{Ec{G1!S#nFxyvX5&Y3`)GC_u)4c6PTV8O#-02-?P)lEN?71%JFaph~7%e*2HVC zsvzfk_Ay#$!Tx2g{kA)~+~m6|=#35U7G3iPb^xSE;1hnUIdUPLrJ}D#E@bH^DSB@- zO-eo2Cj4rsqP6hmX0Rk>M0s>&Ow(?f8GO|>ZfR`awRC2w?Q0^CN^3EDqe_MI3VF0O zM>Djca|c$PV1Xim>ULg@;WyuzL7-5#Q5IlGM3r<}8_exdrkX28?4{lZrkHsP7)LWn zm7UCxC-7i6lv6*Wk!V{C@@!JYpMFTn6*1`d3B3!>BC4(T`yl(;qtLU?UU1)w_KYb| zkr;I==o+dxOKKc9EdYY0ns}m`i~Jg%H8-QoAogz(}6oJ9^^6IUXxD zmg=^YhypyrOw>Pxr$OQv?p6L1*X*Qkcwb^vz`Xj&*AAU0y;ndU(${jE~z7zXERFs_AO?l#kqgjFK}}OW8ZCs4m^jUA_|U$ zlF^tNoOUi5(v;{xgsZFTk$>folPHhJJPL5WM?5l<^iD6V97k=ht#Z4!ZrHy%);JUv zCTzr!%+x{+b2g6t&I>@H+5HJ42q_U$qG`N9g1psdOlNa5FM+Qpizf+TtI8>NbO?Na zN7eswj-+*WSS!3+Mra}|nN&f?pIr%RRD0ojo6;{4#fVgn06jp$zwDFOEzdG@K6gBe z!@6)R##3>nNXD5|rHmf>`x5~J7X?{HE#lqc%7Tbu$`ek9bt&C^A^RXGq`r~&>(cO2 z`!;N){Z#`|Jmr+@6*%)V!y-~a3O4eO{P`V*D61}Q<*shY8YeqPhZn4Yka8cLiwa}~ zW1jC4sn~^zV65`CTIO4iRk2!?ST9of@<-c3q3i9N%$W)t(0&!jDzJ{Je|m+WYyRwx zry5KepAPR6N_73KDVFh^rq*d|)-j7QH;C~l*Y&vdSJ`GyCsA&mw3ZRxWQ~60u9wu` zK%kngoS(ZD#D+HWQzD8_&2SW@XpF(vB_?(1G)JEdw%3*qG(3=ZSGF}{d7WpDJIGiE ze)9Jx?pj8atG^d;HXQumN+`8nrdZlDCO0_lC4rEsy&1E`GR-kMtG?mej-O?uY!i9* zoBBN{a&SmZzUxo6FK@niifeXzxkfo>cSxk0Z~$JE@~VV11jM&J>ag0ES`)osZ4Wd4`eq)wF)Wuszw4&jVRE%!)}yK&H;{~K}hs$ zC@>bgRx=x&xaP_z5HU)~(voPrY>MS*Uxgi7ljHiXf(JUeNO3XXU24SCY8jh3sYfh~ z!4`opw_JBhc^I)x%Tx>Nb78^FRLYeKfpM=;0d?D;W8zWKoUF(pmqcMU!S4WeZI_2p za9{@k*0Tqef~nj3-m;tQ$rdmMeuK_YPqem$3z`6+#zl#%0Vl)y=nKoUK+0j^R{)NL zJ`_(KO8(IzP&r$L!I-gBU*?UpKPcg5F@UAlV42b1(QFoA&VAY|=kcUkRquk4`DHYe ziPPg3d(^5{s_)I&(o0_&w|}SQs+hlh3`6jThBgi+B+!sVke@HrOGFl~U%3#GjKL1j z0=Fp_zvQnhWbzNCmd&O(;fmC~?xqD`{Ny@hKPu1IT|M$Aa5;zZ5icl)mcwKQR3=@T z5iL~#stj(=43~@u)q+-}_>HQV1_gZ;H%hAU8&#vLSpncm?p_!FHhxmn}ZjC}|Du0gJu6B!J`JYlz; zD3@%nxTTZs;UM_~4;rPm=>cv3p8&1V8{nTZH7x4Qb{ zY_mCOr%i3)5TkG7Sg2&w=s!l*=Uvnb9iD$Mg0D6Z_U%ZT?2Ew!O^Z@<|M;Id2xJ?4 z5LE)?P_CJ68srhNOU|cogEk)~kz|=8TEbGKkt;9zfN(h4#DL#W5(r8G)k&Yp_YByh zHIDrdJ-TpK3<7J5YW?XqboI`!bf%9zpNzf0cAD z2?;N&K>XLsezpNhjnqKNQ~lcZ1{oUFJyq7UYYEy$%LgyKIpz~Wk69ktJ6(KDVtN{y+*NTS05@Kz!iE7fB`xC>d@jlPnhYT={qtiE3Bb0{g8%w z|3#+g!Ii11$oAx1ieR5P2a3l&@L(@gy{e+guf(guQgt>h7QSp(R4u-*P);ptVAGL% z(Xvqri@#el#=zIB=>Qhp@{1N!Ou~B?BUM$u+YkRHLmC@V%$g5J{t_PT@?Y5Hgmcgo zVS8}q5g@+YK=0!COqM6z^Icu&f(PiBt?b<#@#wJ`&hjnbYKOYKZ+MpJDO4IF$fj`B+E`(n8da(rmd{0N2-9fc|cJax<0lcwR2K$BHvaDppOj@JQ3bkl>{ z=mx@_o{c~P9vdEvPm}+OM{au%>^p%sayxfKnXb1>Eb`@HgzD}O)#v%)SVzzD= z!Pp^^}odrLnCynS+mdvxNFv%q=uU;bixQ0G`|7mvkymm zZInC@Qv|wy`%kM(3$_i~p=wm_@aM#@#XTo$(GAFs!J5C8{z(zdm1HeJd`C>HAmijX z@}bvf1Sz>x^n)S`DpW_v9{RJ0V9|n7Q92+%zA}G_S@S`p()zvDw+5LaF;eBF5e(39 zTxx0)oU`UlYuwh?7pT@j8KvJayDrCnpJAoR5y*sg{`=W%@3;t6%QDkLxX-EOZy&}W zDeUTY&ud6KP>ZQeLFK>;{p!mP;jqFx9QjeMy-IV9rqgte7~{*0tYw|BHe|3LU-qj3 z<v>k7kFfNpm_#a*IHQ;zw}x38^M9# zZ6H8%)ZfAh#r*J< z@ISjtBDd9fN!-*N6u7q}STEf!Herl{DYi-=AkO&8i9Rw=xggSY>xsfDwxzQq2u!wJ zsbH)3-x>9Iw9O|(d08pGxvnWKRcCWzyF{k=hI>f`q_)zpA-dRL*uoW^hrB1>-h837sj2 zo8A>kqUl%B2*$v^Ld>&if6%TasW|QcfhVz7lV%u8n*g2yg79K`4p4yisHt7%RYkgl zuA(#r*`mnl_)^xIa2UTb{?jbAU+={#?Pa^`Uw*bF#s>C^E91FCu4+5JKgM1%K3qYC zzdi~WigyU9*`x*}8!_4{^1fqJ+Okp4Do(D^tLD&2BD%9^03PCgb32%#zv1$n^Ag1Q z5K#25w#gse`_4A4_aByAv#wcV1OEOsF&y1mDfnAVW#-r>B&>`ol8=|>F+{4?0k6u> z%}S|IuX8yOy@G!1XP#n;k5^c!=|H5vrGX(hx9C&JvL^6@GM1|Y#I!68$~_5_5CsKk ziilx5DgMl+^xc3~r?e5|!jLf@WvIxV>0keai;-=UjS#U)D@&){6LPCDbgJ zy*vLP<7fb=-C$E~c*9y>bU7CfxCwBI_tmh;G{ba8Ww|YY=>e^`JEyK+!w!T|D}Lpb zV;7i&NrPG0vn21IW2PeXHBB<~es(gM%SL;YciCE|{<)}XSl8^P1=67oGDk--U#Mf! zV#w`#v3K|uB>!0?J>SMQX3t^Uil&cX=Ehxj25#iN&**ojThI~mtuQT0 z&K+v-t%KuzAck*oqa{2hn@=ec$=-AalstsiFu(FugdC}k7+l3%jvOvY0O~h zsW%|q*6Tt#5J;h1eATQ}Qr*Z3U~6z4I3fGO3^5IVJ0+`cM`v)jiko%-qDY)wjjt9B zCy)?;LF-miofKZUa|7aH!Hm zKsgQ#v~9G9QPPoSx3EGU8;~mM6-VlQ)CKJvN@u|R6-A7F1;a6fu|-2G3v>wjQn|=m zZ+NwG#=sgZhNDvzSaR)sKR<*pg8$Ae!K4A1(pFQRDGHhmu_%8g4*{@a`3v{cE3Uta zE#%gQhCo2OV91i5^E<@alXK$#rHxJx-liM@tDK^%<3@{|QsUcEa|%K4R`MmYTrG}8 z+qviA2hPEce2hOq7OV>bL28FP7$trIlpM!b629IaYKbd5gh^ikrt2}Yj;~uL)Q2Ii z8$%Yxw`C`bd^}9?h$Wk0?Yf3is}mybOiAI-fy^(2agzGKt%4ic^^-5`$Wz8IPn zWI}!-hstpF_rH4p$h!h2S-&B&bE150C30yNC~Yu472`yfOVA+H1c}J$#V@wWeM3rb znIMI*-7Xp2RX22*gZk*JepTf9rB4W{e7P5DYI*nccBYzk-ZQq-%CQ5C69{)OWGJ3q zmJn@H;2B_#@KG_GRCT3*(f9r$X00D3y(Dyn7j2g8yWT|e{v3Lgm;x89X@B-dwEc9D z`yMRWs>iQ*;psaPR~nrDqy)>n);x%hOk(FL1Kc)yAea-_Sb}a!=T_TbfgU-F&Mzhb zu%^{Hp;9p%=J_o(b^-l_{Ol=d&(_WuZSpA9}x)es=R6Z{O z(PeF$b3!zD#%;EU(BJAhIB^jGdsWvJ6GyUH$+S@gSO(6vZY191R>!gySgP$$BMMA6 zGYnkSQhT#8Cdsa)FMG=SzVC31FyN`07H|vmco5qw_?p-s+ zRwjM)N;p%Jtl4;9XLGBh^po%mt3#W&;OPH2!A6iSPBvy9v2T%!`@OSNLauSsWMLrc z;i4TXS2X*!n{V*qltPAmf>j39$*Ptnb<|hMFKz>FbBJ)Y)ySCQ#ItD|g#SdTEBrmr z1%1pWm;Lj+bqj99Wi&-W4{~g2WX8g+M59cx7KG3^*l0ZvIy9p3&HIqSIi$N~^3zHw zuL%Z<7s#clBEffqtn4hucSU-7$W;(}`()dO>eJp67{ToeCo-tDpiXaX>jkj7LrR<+ zY+;8(jIowTu$S>ty11RcRjda&D60#+lsE9G&~r3jobumNIm}~%>*Hj-Gn64OE{CLl zE(TjWUve4VY*kI49dQ*ZGjK#?Aa3XEr^!jOqQTX5%Hy2wG&Zdq zAllxk=7I*B_sc$#LSs`;z(r@P3Ok0=Gz*Tl-|20xt8)~-J<&uJMH;ziso`Hs-daA* zMBqA%`O=B29llY~l)7-g#HY*&%Tb+G*$Dr3=bMEt3&v+cd}*S9Q+qQ26ePAeo0>uX zw%TJ^aUJWh$@`ce%(Kn#3%$95O>o6^gx<25S`p4h+<`%{4cy5Po0$1i#V}I1K03WX z-9D!W6{@S8C~0Ik@3vz0oyq0EG5d}YxPRp%@`X^9WSM}=Im@_zo{V3+scEXNPn zQY_g`DlLsBwa-5(9hr{=_+`FDMnA>s0aaH^pYmeF`e??hXsO6Ix=;~}tBorvKpZlN zH2Y^nF*F9pq1Po|)YX?dQ{^EtZ)ZL5;|wMFSBiEW6M3X0mrQQ0g*Ff6v9QN}hUboQD~k+res)i2`iwS<_E-}8E~l5X}0Rl#h3nhQUs zH(2+w!~OPR=+1NYLSClYN65vygg?FKby0)>dbur7J+}W6^mCS+(Jo;DkMU8V_JDzi z1iRd4vDod2S~d9nq(!0ZNw!!-pI^x5WBHi4C5r`xJ^y?m2`8*HPfe`D>sMG;A z%zz9Oo4&9UAU`Ke=;+#k{9A|Po7ZF7^*X{yH_bKb8@oTScrDlU3bInRC*+n5w(;}< z;j&*88!Ki{00rzG08c_b>D36-=B%TD^=B{1JH;aWQ3}bXn{{DBE775!70QAzSYkMw z#N1~gN@g%lnuO}-ZCfNpu7bQbn0)0w!hQ=-E9FyM3U7Um}?u&UG~gF)4xKEY8Dn=K}~S-4qI3vqTobh6{U9(*=b zj_Z01gGFtV?u#QV;YVQwd^ z?4}RLm+VYhKqX4)cr5_-$b~Xg1Hdb5`FNy^nSTE=w~mirR&lX%^jawVoMlL#SS`cR z^DjC)#pifMqSQZ%MZOLC1p1LsQj30FFuSG3=x3=yEkcMFCsD}-&%HECzmA$_m5(}+ zezW(sWVnm;5`x0dS_#lW(~AfMqv$;74G1;E_d%5!sF-oi5X(XTLrk+5-RiRGivY3RT!QrdXNYbq zcCoYhbC#YKgX1vZ&{6DC)qN!OEIyxut#VUvrOS#_U)lr|#D^W3zH6xI;dEBq4Og$6 z9m;0&xkV^(c;&+}KNjb$j+AqK6RY~ESEy4>&rM9B&GRHC9`g57)mLq?B*0hi-sS1s zckqNo?E#UkG2+z6lSVff^}IFsMhCIiEoj2jBNAC3^S$Kjt$jx`v!%gA4Bup0cx?LT zt{Wxa2wm%CdeXx53CELzV}bb6TMRCEPAlyYhPuQmqbw}ESR%k%C+}b8Y(Al}fX8PN zrZIi;f~WYZ_GNQ0|* zxtNqEtoMr0XF&eDmUK*te7Hy=O8hm3<|HNDoHQ>2f_?YVQ6d}-*K(N_B-6Uy@*ma< z1}^Gzn&$^2q#uL?D**C^i_7C-mrHKiR)iXRKJk=TNY8pRC_h&Js&~-0+I;Kx-0Q){ zDsEDz7jHRpRiM$4Ap%=bGhs>ES*U?> z;d9Pf5OrN?%L2W}WrcQJk|!(g|IEXqKP#np+kc6D-kbHBRwmz^1q-$0;-jPk2E!}v zxD^`#Zg#UZz}X7omoPws2a}Zs>hL(g)0AGM9DcuO~kJk`=!sDdne4@~Bop zS8KYI<+AhCAO`#?l2`NVaZ^I?Fl4%<<>qJpXYn&R?2um$FS^o9Ji7 zH_dI%JCAAhp@o>IV;|X#CqbJVtcL$Hbc=58_8#A`T@XZB{HUjz)Gp!OFc2WN53ZbA zBg;SVa6K)meukN~h8h&pl(^k0xOIB)fTsDJC&wv#rDMm8X6#&$%FhR(5-0q8MOeh zZHi^@sM$+N^FcRVo5I!rv$N8Y#ISrjcklql|7s#h2J7keg^-b7`2ihZ7=@$P2Hwlo zM(x)5*_>}mrIUcDO&#qpZ}SSAmDuUvvqTiwl4+s(cWcEwqaXZx+`~=68LWUrmfl># zH(OokLzDvY?X#iXUI#Pq{ExY_l+Eoea)&5f3dzloMD0DQD0t`n{1PEG)SK;8>nGu@ z+5lAgM-)adEP*=!eAUWp)(KbbK?7%N7ysYx?=VK<^{HXHS07SX*EuWPZ%M(A^N$l; zS{+*h7~&>r6;~~c1V_?QtUo(@**m~@0u;PeM7Zf#KyK{t$UyL? z4e@zf1*fy%Z!*nOsNzE^nqeq-5_ZjzU9_eCA}vXi1uo2t5#gIva#X7Y)d*P8f)i3@ zYjN+JsFhVy1wfnY>Fi;{Lkgu3s#2Syq;4lctq8+L8GJGh&qo)0=OI%gJK)skP8UAE zzZsYDm6G=ire!K<_t;0J+|N1E?NL=kbBK6%4QDKdc4JU*@<8nx@+Dl#SI~LPJ`I>y zqCs-F-~l&VIz9lx@qPwC1i2=AGlB^jg_r~m$i2f9k=KXwvqEc4-fZJAM-uW-UIEZ2 zPO3M(VhyeHjjAVANf`}g`GPKD(@|~B9LG%MN@&P&%M#8)F81O1?GIo6YFBLM!FVh& zOds@4B&WOuJl6^<$(UP8oZ7;@qSei6qW&hC=iNqJ+{$DydzvX?mHY163o4W_MuSe6 zkv0<#AEGdb5WqzfwAnG z;*1hZ!o|f?CQ|DHMu4oOt@wCZdM80GIX;c6Tt@E53CQYwZIz0r%S(gJ2Ey1g(0Omd zu11x>CDW_Axh=e&>z}z{>bUL9?sGVD42(W0wCd8;Jy-gn4SyCkL2h_wXwd#|` zO45McYlY7WsU+?T234E?vei9}+99t*0tEmtGzK~A()lA>7!{2a50&P2Laxw~9drJj)H;$TUTIijEK%s(2v|DBE zbgl_lX~Sx-2#z6KV>Jb&(qKaFXS91S^h#(Tq^FG6C%eG*fBmh48)MEsgD7MK1rM{- zaYIpl@k^?oG7shSY}V<=&r$R44mS$4kr#!Dz7>O7Z0*b=re(se;Iw>Az4D_12Exf6 z38@%HqNp*FwColf`>p{52R@d~KCaHE$X-ir{~3u2rOTW)P8z<@AzJ=5LKf+OZ-6*1C|#{1UyV8H28vCOAg?n}R!y{|-u5f4o*Mh~^^q+J3W}m=3+H z<_JY6(*#jYFH097{#$5OaV*x(wp*{}iMYoYGNR{3!%T8dG26lmw>X!=6@ws)PZ3cQ zXoa)H$eAc5G)8y_8>Q``2UQr_jYx8-_quYlZW8~IDo*;6L2AC&%%bn$jXlGg*LifV zSAug8=hllxGEkN#)~smWBBc<{c^7i0!<2wHu)y0$oI&0cE~E&Z1;bq@MH@9r%wv|N zOlyH}R@&25ZGCJ^oGuE9y4Fk%q&m1N6NAi@&-V(YJExu>-{Kb7JB5 zC9CR4k(x9K-fR8o+^9YI8xMaNI_paB*{E!1(_P&>Y6ge1+Jxp}4J_c9ptXz0zLL|n z!U1{X0pLkbG{?mOlmYtc#RM;q6Knvwa9}_4e7)KaI500G-4C+0Tqpy)Hzf<2cbbwM z#kXK#fM<%emPsAd56L9e`W*imW=;hy|5n?UR=Wd9R9&GX?_1gs^lln|PjxFe3NCAl zrklsy4ddw5b)@&#fBFtYujdRm+pYeBQp!LM2-7?8~lMrg~*lgoJmY&lco=n51?HN3OVP1p@% z6$twzf?lxl5NB|{C)RlgbD8?iQ&z`3M@)%UX6z1_*CAxJ=nvc1cbv@gZl?n;QLO&8 z$Yp6~RY|(?zGH4STG@;9GK|QHh*nnksh$gCth86zxZEQa!@c(Kqh5N|*hICg*j?kI z3LD?j17QVZ4X{^D>(5gdH^mUG#D%jg^&Ko(pj*v-Ff=x8fM?14Z= z<#onBo$P=2{%(Xz14@Er7y~^P-lb#lZBTWx3^R*m6pK1#U3%HzJ^l_X_s$F%T(d%1 zfx}P|idaZ07)n7-(Kq;C{#ovS;auarlNSm>z@rI-O{pf?{eF*?%v@A4)Y)=3@!*zq zf>p!vZ2*Rz0ghI;sXiX_0$D0@dXf~o$6%5jAES8U?Vdr8(qkcdTV-Qb+PncI{QssT z`)rJ&@45SbT}sr&WptqQfi#EVn+Rw~Z`|(CWhtO>tqPM7we#*0R2vk=18 zv-tyG*IKLz&l9ZYSz`u5i>Pt(kNLNe;YFG*gmi}Amr?lMw1Qn_;FZwkR|gQ01*h}%R&>WSgF0Zm z*}8zTPC}i5c_qS-+|XDN=Q=s5(C=@&+lxx+d^oJB+Z&WJ#l8HJ^F!OEr=~sJTad1F zNC?BaU@CZ2T5P0#0?m+d-g{wq=2NU8;H(`qCYurlb(dJZ%cJor4((Mk2EppqcXc<_G6kzpAPPfH37AxLg7CD@}`88p8AZ^*Y%HrUxI_-_2Q_EU$Y0%=CR1u7Vw7{5?WHhIRR_Lv}>?{fDk=S zBHu4uOLBB3`lC^rS7Bsxg0_d5giG!)46+sx=E zd5x_s1rPQ5;$Xs*A%7=m?$c^&4Xj1bzHYA(DRlN23@c^=0nbk zB~GqI+8~7%?pMJGpW2Brs6XG%n#_ zU)Bb;Jk{VB3z#?VbFU?@k$skbGjn+7Cwl=G0VirC`Eiy$<-%S6>5`oI?NDq1?FiUo zE}0MBm!=O6H4+{rB0$M*fGOdc!&zxfb7lDk5g;120rk01JTj-Nnl^bbyJ#_I(bH%* z6jB0IVyo@BgEoN`I&|^RJGggL>KoRVX>6kpx=p(y-izwS0~}jsvrG)x-BU^;nu$3z zs)#!2Itj+;bS5P`7g}6KFn2e2IOor--83!TvO?y!UHtrMP0)}vKZF(b_Sg>-;hz5p zA^#JgaPJg7jtY2@vE+TSFLLPKXXM;7OTAJptH!t2#YDVGC<5Q6paQl+&_$C0Bg=-x zR=q@Wmb|~^BEdd5?_Ll3{I6^O3uQY5!zXeGzba2~R901ym>!7VP z_{Oq5UC9Pes~$YR8v(BGclx2H1rU5a4!Dwf#5qhZv9BgvU;1XD@iL>LvD=W(0C&rl zEs)TY#w-^EdV~uX{eYq31KdJJZbJhu?fpC?^RqXjBZsmJ9`D*Ij!)jPpeTyUTs(-# ziN{t6`3e;g<)MW8~AfjoS&$A%mbKX)ajc7_`S^tbi)QPFIHon)#5+4L5yj1`PK+$doTYypqec(a(mKh;*ruj zY%p-Ho*BB$M@e@u5wt5T_`gMM{OIZXD|i-A`rBft(4a#7BIEA4NCwvKXs!bB`pxkg zH&nm7Fr3x{yXAGnw6+2^)}xBduduW4nqf)vo6;?ZruW*qr@8G8WSYPtYG5K89JPS^ zO#@Qi(AzCG6OmmL1YK_2sfILzVCk|wc0(21{(hFgRMrNcDNR){Ds@v@UblWm&3cTe zN0HlRmmkS`ra|r3A$>UVwlphXSJZ9S+!3 zq%^G?u~OtRxkAOdoRkkKwm-ic$q+fV#qaMTu$#2FmBT**4%D-&nS}DpidPzVBA_)N zwAb%B&1{%?O+O}8rN^pRb20cTm0;5;bH1RThll`Vmx)HNm_>Q{0?0aNP68uUxO(8& z;%d(C-U!l>7ce^H6n6&AsykbI11QS5P)y->LBi=h_qH$2g-&W+!-LrSed&?R)b){a zoIGn55sH)vCii$br(&R55FzC^NW{ zri%I>z!FgdccW`Eso~9~j}~ttu2WTy^dQ4x6pH}1|M8QI9I`ZQLt0NWZ`rET;FJMK zv=7J4VNfC1i|BWMZ(EHp@J`Z$1=Qh?=ScM8;&2ROJi?z5ET}y=XsU|8nd%p=#j}Wa zrcsP$>?F$BAhxQNY-HnEQ`VeSB^9#NJMszpjaOtTLK+ zVCe2-`VRes8TKE-9yZIJF&ty*zDPY;fL_q)0BQc~5q{9wz5zaChTAr6ge(Pf8n`^{ zv&7Yi(9_HQs1m*d@g4@%hkGT`xqWH93*Rr79fk*mWJwU4MB>unKbpG;!oT#buuUf; z%>sq(9=8MeoueiJB2ADofSO|@E?cfFm=E=wwi)?tfNL+riKr&#{M7RaI6I|wi*5w1 z`1eL$)-LiSlGH?hBZr*oUz2Q~NX0*5MlviEHJK&xD_7vKstBFpd}QDW@a88u zQFizlxpHrti$zy_vxnF}Fn>sqK>;^xEm&+JqPG`=LaSkz)C{87w-vk5m0In6Bu`K5 z`>>8T4(%I*uh%kvMThvK$?s=sw)sK^lD6ytqO$Ke3l>j(cFuLR0r5(P@wR3}c*pOm6O;R|FGC9Zx%g86y?6MVdH+ZZ8E3bVl_V`KY3M*|AC+aM@K z9y4RGTLh`H$`qqxSh*47{~m>B=&3FQ8(3f=P81``$w(w{24~|BWqazsikd@!? zRT&PNr8v^4s?yX9nmIOuAphmKU6ym+z^4Q3#;xGRrle>`s8}<~!U*;e(<)UudGnPn zPv-WAT&@XD7m9f}Yuct~$mmf{6MFFlN_a+CfwI=*BL@O?sy7m!4pbWnB{{j5OMgYX zj8{2B4DMcrGlqiv83JH!cU0gmTWIB#k4e$MpL1&!yh~PIue1O;uosZsDA>+9y`418 z_6jiXx)ddn*Fru4+~j@GC*`y`JfPBF5;v39TpmhQ)Xy~?y`hO%E~BB&zUI7f(T4IQ zjQ$35Uh1Q<32Q(tScz%2QzZF7%SHlhfn;_x@d|S83$DzoYRLvO%57|XAS4|`cn(;` z7QrqxL3)%&>M(yNYPB{|<~_6ucPtaE?&Fbzt`PD?*7xC>*h51&tYg}9_20>ky+Ps+ z=3b%7nqP^$D&t7q;mq=`qg^85A%Jkarj#*McIjkcy4IOhvKgF>B5(4tqigL}q-FXV zk|(nun1jP?Twuu@0eS!Dec035-Dk$ zuEZI|$o{h;UZ>i})^NfOkhGWXh^`zThLawqWNlTBKlH!bSg&8qB^d4(NOhzH98}g+ zQFhH<00oy}?g=+y^J{2kO8v$oS^(NVwr%)3p4*d6KHIh}c-#EekrE^RxyErus;QXj z@0Rwh+^ajRw#wxY>f>cwp#waIg2iG`O_;uKypXAm8{(Lg`y4QHjasUTh^Hk-i~FYu zw_k#8J@>R($_pUN_D*^Zqmm&}3%|h@kSmhb7yHh6J$8xo>*jfW+aOox$DZ?Kbw&S6Y>)wQ%)-YcPi#E< zX_ZsgcQK#Hi+2uk&%X9bsE@D&a(Y>-vW&pdTZsPwC)_c}xz2MZvEf7Uu2=xC`MuSq z=Xdg(M7*Az$zyJ?M8C-5fdY)s|c^V5HYkN zG!l>T7{kx!AI;4;{EU!N#>?5EzS9y?Y6c)Yh9x3%BSmR*f#U%)jG;gPm;ZcIjk+^R z999f5BH52Ii~%u-70e1fyje?pJ>QLdCVsYo3(n&vON!N-cqZ?eka50eT-M2;e_jCt zqgu2WmIo#==7-!Jz0{2L*G~nFlC0@LR2G$?L-zVt`9<$#!+|Zi;}Z6+`b||Yh|#WH z^aB5dR6r)bmazH2M;k4@$U0ubEsTxtTijc}f#2iJPuuGsc##KZ`@o^p?pAAYwl)FJ zZ@={SklFD;34H@h?{qsKpK%yB0>1hl9{?P53QbwVKZugBg|)uU$=DY_>cn0u551az znDn;%$ycHK(UvSWoO3*{5XlW)lJ4w}nJMq=C@FtJ#T(Aj9Q>9mUEvo}1&Q zD5Rgd-Z-?qlRJCB%n(2`6{y@qg$iHBlKTE{^G?@A@$|ynXJTQ|kL)^@pOZ(+iG$Em zo7AnuY|oVmZn8`f2NN+gL@?48k zdvGqxH%Pk%rA_yjOw5VIpQD9F>-%>85xun`oNK=m7 zxbUwv&036busE#)DRDFDPa7R)r+XS;%)qS(Gu1cj9s4j{Y|bK=@ghUQwx?>?|4mlUWeq_6SjimOZG2SKvsNumD;V{tZ7Q(P%!rDZ+kWE zZ}GS@T6vIcYB0bzlpmp(PY?H{CUZajTRPx?wUNfqzl86xG60jO_M3zE=0j8_PrD|~ zg8w>}uv7i~0dK{f<5h;oBf^k8@GpmO!UopxvDhCVmjHdIrclBdu3oZukS|c}Ssm;W zzTNL(gAYt-<9$;cqP@7r#NLl!2uOmOVty~mvTJ-n$;9BPJ1U@DfWFviWQ+c!dh9kq z5TjFD^Z9=OCo2@gywLbfFLhT^?aUdAleb*oRjC=`FHpP3>SPuCC0K@5cC2lZ%`#Tn z+n_5Id5wzLtr-<1UMwL4dTS#L3Lz9S^{K!L;Bf`MC8Rd~Q=UwkBI)T-V;rOu3~-X8 z<$82hiqJ43c1N8+a=2S1Or?4{`O0e>5%6}J+HH@2+Nt-_Ko$C)PuW9Cl%2m`rf^`* zw1Y@0)4v%QIAHYAiL|6=czZ{Zq!@5cW2u7`a5b?BUfXmqY#_Xj*-LEoZAUz8W>zVZ z-tt#baR8bUI;h|r2~{SvjHGtgsSO7ePcqxf;?&?l?rG3#+U3H4WSgSvR8rSI(?5Tw zlvq0$d+Dw8r1kg;e$haPazB=R1yDHzthxFNR?~cY8-LTJxx6o2O+81|f}32$AwfaQ z42{AJbZElie$l9dlUJlRoH{>%g`>(Ko(2*DS%`BRb+o=MmIG+#A}br|t$0fUhA9v~ zu6Tu(bV8FjA8N|iZR=yp9BSKtnf3Q4cj;zf=$+X-Ka)MF+{;fp;}z|RX3M)WFnwHh zup)|Ja*i<`D%01m%eH?}Pw=xFS%9x+^_z7G&&vDCO*_90;@MWZWE}EFGlc>H1d(BO z(BnKEtx}ly8zfNpkiz?0707?PBcdCQ@Y|6lS`9I+83wqvmO1VC2lvWMK!^s4r)%MC zKJt!hX0Q(7+K0zXz+MR_8}eRQ*ocwe`N77)B=~Ur%!fwPSZy6V7nffHvr#uT2(2D; z%S97NC7!j^oYIInMk}%qQG}0cMzj3VVXw#B3$f-t)sBBNN(S)<@aiD{!98oT}1_j?KRQh$+*o1Hj9%P3h6>3g)Z z%ht1+Uazbd+_Tm{6JCK~eA()noUB_U@*b0UU8_R2A>R^t&8IeR0HU8v9MA%T_FsQE zC{u|%xus^xe-)I%oVQH4*7wXuF4O06MFM3hq{?nPzo zn|m}!VhK;hn44XJSfD!2J_(iX#Gv_4QO9vOh~pxB z$|BV6K5cZQV|kACl6|5Y?(!m9-tm|H4*}UZ`-znqrt4X!7jB z--KUvkI=s^CZNxo#;;>*ny|g~6_Bv2bjEp~`f9ts0d&fG$N~SGC2G5d((+_zHkq~92V$g$IEO)XEEOCowh}7@K3XeKT%qQSm10{BrA)h0P1W4^>@+^sY zf?U&k<_orr96>TNXUdC1bg#hUT8)J7fWVh!$XB2e9?{vFEd7?pQk%V0(7Jxia(3wv zj<;wLsOxg)bY2k3oTrV~OVf}~q&D+R+79zbvHkY)49*Du8D|(j;1VYPEv|}J0juU7 z6gW7yHOzzv^#9avr22h~UQvIj_|=Did?2Pv?tR`2kXeu@T|5E^JrJdvmwz_P@rl)G zN5ibm&Rx2jBpdh5G#rC??c5V>yYL>gpkPR8j(o@ooM_a>bSZDi*$s@9Fj_jLx%q@T zRD^LaSJR!JEAyHIG|3U#L-o`#Lg30^R6_|`o9;hD0u`Q^?vtdC-f#BV{$orIn_K@3 z*7MvUOFT`JJ>0?2EF+q0PGen}^yZ}%WDB^p#*E+M=ES}m*!;M{QDS!vEfwK;EDd&l zkI4zYq?*b{y!Cn{5CSjOW6{ooDeM8y0Y#M}sF&&_trkUbCyfeF#R_b+>$s5vI&%6u zY%QA-Q21i;XdzFWcxL{FBx9^$EKzHSMI!oIUiy;C#O7*#ig36Y%>ppv?-Z9K^6`YC zd>l_is9Y-iV;C81C4CKsy1aG1CaMjoCvC0-TJ?+ZyDs>*Ca`#@mF|A%H#Tx+M$#Tt z;AEei)(c*UJKD-u^dPQef9oq-9gDX!MV%|un$o#I$+jx^T=FZJeL(%Sc2ZIlRR=_u zUqljCaEkW4)n zJ;F%Wf2tn1G!hvmOKWPYSK{uGTgXB9SDJ6(ok!c1R)FHub<-1)pw&!Dfkdm>{W%2U zbPI6o5?25ejo9Z8L(kz98OrA++(rxfbe;d#OoiZIj<~}G8ErTE&mkAK%FiHqXe$01 zM3Sf_$WvfO^DEL+3f`Adg-pY)DkK(dsdU2(gKOP&dM0Y;8VW<<$c7Y#wJ<`~Z#4ND za<`~r&n#%Zyh{BNg-2PG4qiTJo$Izbh`JM+T+<6;&su<|XShTP2?r zEAz7TQDb+gf1YtF!~$n#%1cB?g=meKP~0e()om#Vb(Xn7yaCqzJ9sd3r%7Q!KDRQ9 z*W@sN7omIodKIzxdzr-ltsqI1kaKkT;T#gHfCI&m278M-Io$kNMjkhg<=($K;uOM% zV{6$u3NiL~sU*d9+}_99l^n4OmLb={x2xpBijEA9KqX_9n28|h0#38`aZJ4r?_J!* z$pZ9%QRWF%v-_tQyA3mE;;IKPmEy63ujq6k$xJFhBDNW)gMQEKQtqJ&wFF}kMg*84R%T-YGSz?-= zb~00zm?!6v_i|v_g=U1mHt4D-Vb-=Qn$g*4j>92Fe#3`W_pR5x#4nFH)#3*!)j!B< zSU>%z9UyKlOS59t+z(#3ECXAov?b(7PCf1)H?Fed%kajT0X{G3;wKzq!eLrDr%ahH zq%29V*}w#}u)#j;B_EEU@ravO=S~;~H&SU-W-A|t z2t`Pg&Uc;Cbj&$x_GBVE*~HU)^uTNciiMc+Wj>P7>B<)qZ!c=0roc9uP|#$W9J)rxYxS%$wZ^8)T6-4YqL8- z>2!-Dpc|4IK7#U##^F+?%-N(E{wT4{YUYU^@W1m-6nb6-1}4dTgQcKDl;UF2^OtJ) zzOyg8zePt$Ox7^~=~Z^*k=`A!3v+lhH7cWH`h(K%l6R9em)?u*)kL`3C<3RgjGlIL z1JYcGj9(?Kp$Cn;dx(v^Pv;>!lV!MoC;U@jys}*Qq^}Z{Q`QVHAVZt{7 zJ(`1^>-_`vkd>rxC%Lw*19CAPq#|Ow)`PM&sT3lWWE@m{I!SBgnf>!Jj}u{gS0%Uw z4sI$Q;<>8%f%V-v;*K7gnpSU4Ij*NRN33JOaO`)RgbRU$C2nontSM@pc|oB4hX1A{ z?hY_L;*{nxUF`Wh+{g7o(QfqCsf6f7F4aE;46D==sdbb+{Zl-aSSjp-F3AVVaBiFk zmoN3(fe|Xc*L;SvZ0C+p5FFaJ?ghN@J%SrM=GC&3G0z%-Ig!sum(vpGQru(D!3drO3B7i&ca_iPok%?n_)9+J^wU|Aq z=w;M3#kttwN;S zU`>T98%AofH#FehrOonRWv&_Lhz;*YYp#v1!0Q*i;Cq?~wEDCnIg36wm9VhmoR`HQ z2}@#d5hXSvE)3{9@^eH-=lj1IA$#s9RlY7m`Dl z`5IC2AfYproX|jw^w3i<*!wQ3b^Gti>&fOZ2yMVn-gZ)@!xy=nmy9VPBDDcH0o?*f z7gCu>;zTGwTd1(@p>eTDcOulRK1Y%&;fS|hWy081?Gi$R zMftFJH<;}h9KP&ZGY%A(zybfm3xZuqqfBy^OT~!rw-`~6xXfoPHjfr|LbXWosoNo= z8jnN4b@sq9;SVCydF~6JYGxc>Yy~Qu0V4yq(OJKE_B>J;ZjyN_{6by_&R#wPbM?gd z(QRW(##cP#<2<>P%m0jj?V!SV@9VTmpmEZzU^ap=DJO#U80;|R5({|)y>t9=CX@{7 z8-uTbUvDQ86;Cd|EDqtlBNCEvQGC}XgijQ~SsQwn_=~k;s*|X9@7RZa(8}jVgoD2n zoj_g&_SY#cmn+V4_JF-gJvoaK?ga07{Y~bXk@<$|fj^R7)8F+qp0)#@GhY*o?PK{c z;}v5o9H`!^KC%bSU)=;{m-r$!HbT}3zsMO{ddRlnDj{p0qgY^oE*N#&hcz#JEb<0Q z{sqXkhl5~oQ)41TGL0J1^BIOlRz&A2$y|32HM94!NbX)@?r_zUiWaq^ydUgVm7{E)#Q-Dp$*{?M4i;1Qsz{C+H z=B)!CcVHt%-H#X?X;eM^DSA;r#aHr=C8l%7xOrTVteQW+jWI&^&8`UbF;;H#U!CZU z;+&aR`~^`Cw!Neu(*;luP!Na=*g)!B&hL~@Yx$U)2h5FJqPP(TYi2Fe5p9bx0%+3q zW!K7NUt6JT_Z!^HWR49r!rtmu6T-wmc^UNv;0;3zEH=zEi~9Z-D{p zn_nthLsWoH7qtLa9y5tP)ihCz;$B+i01x_kSJCq23K%5eUIMPNVJKbM)gi7j4n-9} z4En|{v~nS{h*SU=vR!K~w@|Sz>K5iZ@P9clcp~cHNR>GIRhaaHo7#r-Ffcuo^w2l6 zv#x%Msd>*akAiy9e}b9`q$VNjKrmKr(9dniSMkUD*mrd9FZ^3#r_hk5AIS|^V*UF8 zSd7PSqB<4q)P+RAq?Q&3pQQk}Jr2;0^ryEvO37`3d~;SI9VKB7`3Pmt=a zr1pg!V9)XA@$Y1~U+ogZkDg}qvPIpB>;i{his4{rj}H5+Q@^doydF71Yvc66Dg`aT zq2ZXgGYbENBw#_=<+`|_J=Q1K4&V(|Od$AW;kYdg?oxhQ2^wW_tdHy(cYa)u{Pu|z zrw|LdENU2kwAvg(9hDTd9}6|~4GoNKhESOp1MA=7{TY01X;PJn}zru&m!=yLC;@CaJ z{2FKNxlev)^5}wpyw}@vBE6VZoZXQ65ap~vcpZ3a9qRP%Gz4Akd4*9o@o$WsPy*W9p6;rry_rjxK4;yPPWwbE7zEqH#$w~T%KB##9>*v0X0 z_ig%&e7K2i&B|J;g}fUn7$iKxjsr%_kCgUSARDZ-SWm&?86X6@jEm(hA9gjXe5gpy7HpaH(6Tv4d_^g5pgpMrB`ck|AFo8qouR`EUUPAu5li zZZ>cy&;Tw`q0@Q51VwR!X}6_0D>=No8GXVr%-RRPm*wt_Rf_<{(2zw;@%SjR2;by3 z9d3EozfFtzXUr|bt`nC>f4E*u#hQG=X3|`4#hEfOk@4C+K~};{Fp5BLQz5ydbWL&> zf^Cf6_AaPXO_wJvEpXvQgIw_HS8er`*~A?}qu>=zO_}XQjJZii7$5FbyQmQP(_9mu zDkXDQ^2WHG@hgomo}^eR>0%LTx@0-Vz^5gOB?u$&EnGaI{dr1-G#twXe3ijIe5Vsc z_terGJ{wf9bb<7mU6JiP_oCGew!7G%ijmlBuzfQOhcVA9?s403%)bGtczOT(uvDb) zNLWCfY0|`H=nR!Y9+asZJ3xJj1GsxY!m6dpmXxwGE^A*Ch^r@-p6i~wU6T3MXW<*k zP5<=U2ftSb-Hi@Qf-iBS*fjT=CA;U{#AF*Pw^dO4!;mOk zSrOjM?)DCZs{9h(U!Zw+Ob4N_$ZGDRCZ?J0Q3^IK6#vVSFsPgui_|9F7M=Bo|LD-0 zuj!}LfP{Zya99B|YEERl2U|G1;}}vTAULDGbAMR=Mo=;F2cUNNhq$ zZoY{9h_+^b^i=F#&3^;w&>vO>ZOyA*rXFU7g2F!T*R2zUgd?s8$Yg=Xw6#)2_=#R7 zCE$ssq+eR&!b0U{&KmlAQWFP{;-xq+`n*2(l#Iq+!$P%;q9s66t!7cT>dl?L00jLy zQ8qw{5mEhevEaXy%4$TqXvlZu3dRQN1dBIjLgf~@3_u8ceRjKAZK$!2ZQ%HrIcNu^ z)blka4q2YDUaDG+3@t2dMI?9#t@JHP2gv^*;OGq#q0f_NMq%tOi4TFCT^# z)JFOhx~YzJ%0Z)Tv;BYpcW`-3O#%5O<$c=O`3Zzk!MFWU8d3OZQ57T0Rngx~^O-ah zZ;)+C=UKh9;B3V=^OMh=t(rbMb@%VOmh3<39*;_IC>H_lorK4nR=S-bG~o0l0+DOpTR7jWFY`sO%;3^EExyZp7OD?4r#N}t29IuhA>$Rd)dMSe z-){H*tRwD)0&4tVM_8W-6MXqSfzf_`Y`c!!1?vaFOold{Ed&-TT+Oa-WzyC`_Ak;= zyYaJhP`T%iVkKn<`#_pMlFeKigQ(E&WzelS+NG7@*raj(S(Sxdf+ zhR~SVzkvppv}29@>SRC5{8+a@%b9;tz4xqwkAvw{vc)k_*^crmHBJUfMTp&cODDn; zYOO{|&lpX_Rfs-28MSJ+U>x#$q}sLVrHJWjOB9@_;T6M}Kf9WS46!-e8Lo%c&~N(t z&E=S+N2*9jHq!x6zz#+_ z*|Touk&)wmH3h^7$OGQ7VhH<`vR3R(T`cXDUVj8*kUZ-f8%t%7cSG4aX*R0nERc81 z2ey)mk`RrKL_0DkG+gz6DwBiT8l5QTCdOHoL)}@agTH#}=Xw4*IFuM#2JPH4BOK#V zMT}g*^uC_j?*mY0zC=EH$sDAv{9afz_KGJ4`|GV;QDZ<-y=&R1A zf6txE{WMbCC%-+#8_)x$eul=>rYUidr493`$_svj_IWAW}*hktoscU~=Sh9|na38LB|fy=}neosxoIMYsS!g-`veO3eWA%5*nPX0NFs zcpyvu@MQlWm14YX4fb?%RuH$~yjas-0B_ffbURfx{1#m~kILyO7;= zba|krdac~XUv6F^E#o#VDpsfQF8e&@CINF+Z-X3!%c?0{xM^di*R}inqK%UxC79B5 zsOVy2a_1k;kAWgtCqa-YJT1fdiF*@)u zils>VD6{o+`7h$Xi{{|J91(`kJhFt6(j1hd#Wf;Yim5};tKJb%xukUE6rP(x@R)D*YBz{tJppK z9DLR}66sg$)f6znkSqm61<_|IO%O)d5X3SQNWKzBw*7&JN3Ut%%A&k&%Mt4W9WVO(hIKfesu?XNWxLWm& zf|xu~wxHo&BRv#(2;9>oZX?#I3p^;8&I#NFiT04=WUFhd{b#VX?J+FK|e}hd0HZer0uM86=)9GnPj|8}|@1QhuV?quDf*XZ92jx0X(-p3q}VvS7lApXUcS zu>YEX)g+nJdysQ-Ei>ImnIHh)1Y_Psm%FD|CrJJ}ThS8+t3U)#p( zH+$j6%G6H|nzbq9Yf(>0VkG1H3_B!ZtsS_sg|dT_(?u6Ys()3}P1j+ouflYualefZb1x4CTUwwafn_`7DdAJ&Gq~ z!n4Nzr|ReRoD5tEu<+xxY2QleBV$er=?U7c*ez)uvLf4h@beVK)lJ)yh<>dj_q*s^ z?-Y@xbdQnexJGwAeR>UhpIG8qtqK0KuzBpZIOy}vXy(Fic4JRHgKv5f?GNUAUh!YZ zxQO(?*sMtVD$PT=xiY6!W9qJkH;%0o1%v()%I>b3+#Viuv!k~yG(@D&NPA9Fc-r@lJJQW8Sl_mb3G$~&jY?lS# z3CGZgi?2x)tajnT<4WyB-R!0vq?+1v$rxqsZ)L1PR?ZlsQ@#^_PlOiKrpli6U$SN2 z{fT#0*^6>IMpxecJ7^`-bcxS8B4ZL;;d!&&x49tmNzaNZ9*W~|UE*{KY(1Q8`_w|} z?5hd(SRGNI$YmVPT$ff>NkpLS_r{D14a|RUQKB6KAnC-(ixnR=<75Wgo^&S-^Q0pP z(=kr_$~xbE+UR*D_)76@g#(qT38-82-pJ|;+FfkLT6&a5YWGc;w4&1wrY1Bx;P&1o z>2l-;QXyohl#ko~o2KUo+1yB7Q60s}jZk_&Jq5RN3+YI`%`+lDh~J%4fy%y4?DHe| z2QQJ=`i{|G74nJCbGE5A__cfToZLp}IZNkH|D+;|-KBx2*!s`ug--qu0IdZ!)V~vL z4X$O7yS{&0ic@7iH9~#v2LVPYuaWQNZPogEo^(sQP|~L-wjbmUau|<9RH?N%5aW_P z`@#{d5BHV;!RXpQia1J2?GVrp7{QeT2Y3L2v%q*X`F$q`#6Z<}SMWK5A_p4+O|9tj& zf?avT5QjnitwV(s5i?+~#br8;Q>GZQ(cANx>AJ+NG~t=zWbdfCyXHvhI0w7`ujZpI z1wQ0-x60+}0iGm(FV~dm43|`McDBTce{}Ky!A5Fpo;kpSQ`{t9_5h7R^TG@+2qcNV~mW)8-#@pkx5E*-P+*h(356&@fr>dKq3f-)l&X9>K)SA2rO=X}A=LXuBHdS1Z$cvTH`vG! zKnojlm}jMpzRgY#0;hgj(SnVe6e48r+zOeA4cVE2B9+pDHJix>e?+%5wNv)aq=k_w z><+VGB8pPiB4uVJtx9;=U>Uy$MrMD3d#{aF3W-KC+jbkKrk*&MlM&?RTBTkSn>~YX z&QyRIBAl2$bt&B$6;gz`9?tFHcmVMVrzCL2H_t-zg;L|{H2Lv_O9rf@Z+WbbDVf>o zcNh*NvngKYxsvt%fd)Q*w8&ckmKq+Sp62NG%Mkh#TNGUx>SI{;3>*-KZ3@-CTP5#x zm;;LaFNI&TYmk0(rcr@fl0LSuDL*NcPEXt|7=B=Pef=Ps?hZ7J=6`1LC9li)%QJxr zA3WLkglt9G2td^2a81~0@a3E7`G{RG@#t`Ur7L$qZX58Qt?Ki})`tV5bb@2tdUVWW zcfVccR^VaMFlCO-9^{_4k9EfP93Fv{MTqu6<9bm1x@k>St#2uwQ)U3qio64Rn%z_AAU#=e~HjA~xpQkEkVAmfxZnr+cU0!K2aJKK@Q#yvjin48z(*sE(koCWz@m~!ZYqNJ`DmpcSSgiav!&m zZry0#30C9b8F}09?6EDEYbz@c7}FxB3Z($WPMbG+{16{E@gKo2S3HK6YjoSUxY4F6J>s|iWRf;9JvOx=?!oC9 zVw?A3rXCyb!mAy$p=0&Hi0Q-DpTA3^=V8_qXl-jv@JCcR`a?cpUOl;9b!3r^%5`pl zHMmDDB+t2Eyn-#07c_*n#ac3(ATy8au^OJ~SsS`;KD-YraS=dO{#%p#+v603l|gcLbi@3tk4O(0?*MTwZzm%*ck zTua)+>C1q~cmj+?N`iRQizc$cSBUNETgh`%rraKBdzbW!2%K!%pE0Ql)maRzj3BKO zf56GZQ%4OnUM?Mg=$_Y73(w=A4GiD!q=7}`Wq=;4(CMku_`$icC{SXijMyE|CIPkm zHU(8PIJ_Ul-BaMer3KaQw5J!hCm>0sZfIUQU`1@=C%R)Ps#XEcy;i&B7^sT_Nz5c;*3)?;L>_)ruU1Ks24{VgN!jzBNEqt zts>S%+Ux9EB_C&u*YZaWU0IG7@Oe5xsbs<;=Np@gK{4zC-|TFWD~z7x0lRHfggM($ zTZqWSxR!UKX%2Y({>A>&le>H@r*(S;KTmw4v{SM6(i zFZeyVl@~UD?I8m1#-IE#@&tHd939ql$CU=puUrcuk5qPcFRuqZyJ$|7X8C>8wqZgY=OkP zVaba47kT=~9+iz--4<+MURRUkGNWeIxB-`=tOTXEjn0fy)B95PNr>Y=YrcXSN+s_H z=mH{KR>lRP0Ya5DrY)Ox>d;Xp?C>S8V?u|iw``-ioX$8mVG4H|c{Nw+LxO=_%v?qL zM<_6nPeSdeDD1KE4scNIzT6 z3CV<+dZhW`dg{@S`dNIK3qcFE)hra}cS|5w8uIyOQ1Qlad~XxPIAH(G;I1c{6ihWM zc+21+c|RwINwBnZf5#!g2X|cAd$vXRu8B!UjACtuCn#7fP!VK&6wuC;86a9) z3a_X{_x0v@M>zRK7(}KbF#duVPEI^PCI`@4;~tVYj8OLPiS?BQsy&bL!pMpzKrAFG)KZ9U(rpM|RG~93B@79S#fX|v3rV&~2s&}s>fo+o(i&p*H!Z4Nn2%y6-tBltCN^5AK)`FQ`v>AzLQ*i42 zwaHg4XF^@16*(A`C$f}$h$jPd@=X>u3WnA@^gKngoIlf0DRj74Dri(|ypa|#A&Uwa zypAH+8kds6Gj`}@?u8d&)iQ+A;9$9vsV!uEzC!mpN0^P*Dys)hU(ar4(V+h30GUmG zEU_7zb#%c6Wd0WHxeP}G#Dk?GMV#$Oh~d!|(#0!HB>0dmR4m=_A_p&*et&!gvUG?X z<9t@;c|Y|h3fsu&`DIjjo+nBx{3uy#jf(>1eOT7JMHtZhA7(2m8Ov*oyP#w&sEL+c zC9~P391zY#*^R0!quSK>S56SP%4FHjyGT3#IZ0{!;cQGDQ;Rw0i)dcYa* zt`k+HO2T#!4cY8d3fejrOBCJPM}{ALuNnO z8ISDhBIf(;uTcjV&EpRqR;<9aBORN0t-9FkWY^0DhSL?zw)DOtIQMy_IeY)63DB3$ z0`h|4VwGIpva|wcO44{P=lCpAyrv+oR^%9yB}e9f)-@uxhPY9ZY5k;JJ)2)0N{Zi( zVEmid@jnZfy^pva_!K1OxzHG|gayCW<-s=FZ>0I#Rq>YH0@Ahjov;IS;IkS&{Fq%P zGlUh`rpxN~`2{WS7CbF{^%u@zyBYu)|A0YtGs%?oIB42<<@DJ7;#KcrAE>szC^MPUb|fkU6Y&jo4J?PmzTF6F@?CMb){~hY*4lkrXnL;|3cl4k zQ9Xn*OmoHB!r=%fI^|0-7&kfh4UPKr-HM1L*acq}2sj5}ufNVi8Z(Jkkzok`waYQh z;C{Z~P>FhNWB2bx-4&}%jf9fbG@&PbT#Z$I!&NX>uGYX|GKC*N+z#X^%yZUSbOg-` z{?<|=1<_wi^71c@bk=4eyTe9tUli@lB(kx;AGm)UWDW0QxZ(R_)&~V_%l?@xYvnY*{(0Vv^b`S>2s{y;t>XXuB@=6f51ZIN!4WhCqAV}ffB4pi;}~fy0E9>;*2oK_vH_hwi52P zNPSzCrmgyalR47z8+;cLBklTpQ@@jB5;bO!W{jH+-!M3?q7hJU0Dz3p@NH)opIIpT z6kEa*plLR&DpJ{Wz&W0?W`ThuUiO~9-EkxlT5rgKlYs0))JP67JbSj8q@e-$PaB#I z1v{AzrU%Xc!&K&+>)G2sr--HQ+&t`iET$A}Vg)kQzvk|FBsEKkuRBaQbQO=(QV;** z#D_sqX3ax6>KYzi1NLHPKHF6mPBp{qS-EeXF*+Pj8~{b^-IM371%^@9Mx1ReEf~~T z(TcV@4EJz3lz8R!w$iXPp9rbj=^NN$LNZ#!)QmaZq3BcBm&(H1hQ1q*7nOpZvx2Y^ zAUvRK`Tz`AkA4^1%|%#BaYS`Lnh}a9A1eBCA);|>pfDEtvmJptsCrZXO_a(SG^+LD zeXyxOEr!z7>;Znw{VlnmAZ6B`Ktv-h6+YV8)$%`_B$rQmMPX$yZ%w&Vi z8)nPe=K&NL9Bv1-yrZh^%^tkeAu}9jle~okATGRtJ2+I-JQ(eT&rQyM(%f?a=4&^8 zKdHAvAzjP6RWdK=>p#@HZe-;PsIYL+4GzrZ?fUc;U2Mku+{M=8a8eoh)iy8^oMUSHAWjmjBv!HCxu9EFGsUbIFVMo>T%t*`v z8gC4y`bhL)Fo=Oi9fqAqd&qs|2=1zZj%buRDmKSbXpo?B5*g9hD>bhayMyowbggn% zTUf&Swz7uF3l zyRbHNWShxr3aJn)(Pc?l?Lytso z#;XHf>r^htRZ+Oi{+#}ZF85MKCMEY3p?6!*EA8AHu0lSK`#z(Y!r?iBCPpKh&MwTm z-%5luK0Jx;pxw2iP~>%O9>k8%5Kuo9)4?;{APH2i{mA|vvfXF}MJI)lZ!~QN!6T)> zrwv@`q*F6PE{>exws7ti1MEOB`#M2vBRJ+d_@~%wnvhSK(b81<)WW1#s#AI#y4^Ir zWyxlq7o!r40+Lzf51*W7f;cv5h4SdI$n^RjqE=EfWnyOiGbp)cfs3&d!j&WkL}?3uAqL4}h0d%nX(sU8ir_v4#Kd2xQniPD5#S zlD#AHZ+#3vsu1m*-9i5`yI^n`Mya;2FL?e&!4~mK8awS-c4+=fhaR0&4lf{2^>6*P z6&(uD-knCS`y4}gG(iQ19J5JuBeIOz5h|IzbFjoVEw-C4i(B#NxlPVd1-w^G1KB(F zKld{B-3n>KEMDh_ohEc9V&!s>hfe9&@Ri!qtmH%kAZ`}##K~sNN>2@X^mxq^(0ucq z8@M;xNUBqhemu<#K0lAI(`hUP1LPfe-p}MgV<0=R=oVtu3KrYexQOick_$EVlyZq+ z$tuA2OTGFV7<5oFVL+1etG^_5_Vn}Cy9tCd`-G>)j zc4dBvg%t$ttYxtpV;JT5&^NE4SvKc&4%EkEXU8E!cT&26>6IH0Nstwj3Yw}#MMX{54bbGO&|_hf5D)3NIi!(dU`K}W z0nngQrS8g~)MdBQzirpmx_JK?z+}wCQ|z|W02auN-mqv$+cQ%q+!HbDBee6YL{nYj z0Y7y5AOdytBYtB3(}!K=immxZFj)N-W7;(>&uPVCD}|PlLCSyg5FPho*UpH zfE)IENFg8ve7yl}!gBmeUH#^=t#!4KY?@jB()ZntWtE_sq$wEicae>CqKBVgT)@9y zO6tn6%S<%4IbMuRGI%iW;hER*DK*<#xQ+$wJtu-IOI8=~4yl58 z05Yh=w%6q{EcLuDy)HaL*t^wMeBLz9874yd)>s2iXcIJ-gV{1f?w%3;{1MEA}bCk~bh`IL-z$>~3&CzCBrPNVn3 zg5hwLos$Z|mE2>=MW+5B;YmiK{&82$ej^y(9$% z#+0+K$mVPHn_+iT!w}$xoKd#1-D6_!>@0K66-w!)x*MTHF->Qr0iF+R`YbXtio_a= z@_o;(kPPGuzNm<35|!$FdC8mdYO~Y+xU5+O*rV5kdpqBPyK6wz!1dA?QHn;o!?q2! zMrJ80@elFfLH0dldy7Ip&t!TvDYR#ty0%eFxl#K5w_*2NN;r7a#2$MY-y_gOGZB1* z{idwi)8CT2;6BK*SUJjmYzzj4dr%~)m~sQWx9Bb<$(o?L^sUnoqk=dBQoq02faGW+ ze|8y_P6e2w2622actOI!^dC2zOHDxO6td8f{`(hwvJx-YSB!n2`=w&(2ucS zrg4#J)L7tNY*^@0V0EAs(m}InJVY^14P7kJfG7CvSEaXFXR}CgG9w+F`(j8^Q3Ur; z@gVCZ$Q*Y(SV7Z2!$DLG_qy4G^j#iAq$IqgVa?XDD+2{Pjl)DkgRs(oW4TURzpta% zem3N4?BGp_iu8x_M}d5if0U6ej?@W7AqJ&SCxHC&6Z6VdE#RtxDhw4*Yq*N6E+Qxn zTx+blxwD`oYt2ie$b3jMX%Ib-dya0}!q$pNS7HbaF7ZANeoq?~-Ka2Qt>tNE1K}_G z5y){ZJ+I#K@ddu(NtqM&V4P&FUvA&aguS!k2Eg3T48VU&vf8O4krHuxB2c(1Dl2to zRR$U4riFespA;)agI9TxYg8`h=~^KOC{E~~YeS{>Sa()lw|PV(L$%MnIL~4ugFyaX zT`y(*$KTG%41q>8qd<3kDniiBdQDTk{5-<6tN|~ZZLRb9ga;I6?#*#gv!9V!0QX{% zt*G(~Y(02S@0{2Wac**~hYuEz7-kV7@QZ~Has+BU)*a2z@iMOk;<@KVQqYYlrc;GZ zE?{zJMKjg)d#!V5;@@qjs`xfC^D=MLhZ@&_rrw{#>NkR+_kg;U0JRN{JlQ<3Cz9&Y ze(PS*tYS$jAfSZ~?7-??WZRT7Bd+LH3(GFJAzm3TGrD(*0cZM-S6a;{GJUzw;}Neb z+B0?5;FfNn#=RoI{GLKw8ZK`d^b{CI908Qzc(6x&umZ->!nMLlQIkso6HL_#t-&1J zHr3W@O!MG^+M=T>0{|lZ>obT3RV=HJbrx%C=6CL(_F{kqPn1` z@GJ6CV}WvLHA!>qK=3M_yVumd{QW10I-hooaoMp0J-6NRA!s^l{jh|PzSLR8l!{C= z^{+?mT5(-Ra8)n+6^d$q#bBJcV7;jI3pFJM_3!H>#7`+CQ_aLQ<=olUJz|HP>N4jW zcDv*sxjcsj8S=u`oqy0hfK=w5mrnGw07D!CayhYn?9V{C<4)p^G4Vj$+9%5ND22>jZDl7VpKy| zEXzjQuYoVwF742|G%(lzT+IMDpY_45Pxua zhB3_0FXk{#JdTzGG<1yA?kkRon1J?IIJ=y)84Bohp*jM2^=(-)oGpSxyq$#oe;pKx zQ#rJ5W@Wzam-gPZ zo!@RoPW#D{2DshQ_a2v^t;8M&xOw77u9s7ka0a2)qp3?4i0kMK6!otwBmleGXhK<% z!irXZ97d(Hu8`pOfb=l&BhF(2c2e74o$Qu?Wektpmc1V^e4cMEGPzUgh(Q5gm)~@} z>(BIK{ggyUPkJ!u=;S@Omu|_=C*^?tHfa2qpq9Bz4!On=6Khxo$SffR2taDMEFp=v za3$@Pg-Z=+XQ6+stju`2tz}gK0}Ueu#TgZqc^M^d=O38`VOhvk+^o+t;QzrlOp~?T zbPgE>_;~X*FM}wyk6Av5G^`_=k-BKQC$@Szy*@-V;)vSjE~OI^Xz}W5KWTn-VJW~3 zZZ;9Ibo5&hyxkfJ=X>1F8|lf|b6wM3hrkP#h{)+#Ft%3FLEmh%yy&BkdJrwuO>Ht| zE+y?U(!$}vIlJcYP4^?gkvP`t;Tm)h{}S|$={}a$)~b11IvD0yDjQznImS6xt1J$i z{C9sv)aHPJlZe(QwyrOO~5pAA=CV>?2z075ugBzxF z5&3?G6#e7!S6gUnsnxE0WY9E-$)fM%W~eDY>C;Q_W-B^is2$M$1~ zp)GS|L$S#aJdM-Ylw7!*^BIArtsb$0J~yk&q0qLGm~}Q!fFVx1NC~|8w+m2cp6d>2 zt3@v~eNyq%FHA_Ibt$d2iCSls4b+it4BS=iTrG5N$GBx^tredh>QU#WsfL16cf6Ef z5;^XJ=n=fJHp)8UrIN&d?X_9H8v+`7?;XpK+?Lg(XEnl8G-Ymmc(JE)2~pFjwn=K7kX2@Y6| z4+~*;K?6ipg}#=uYCJmjVcf zj+D>Yoo3d4@tu6A!BIULVQT|Z_Dd zHenmd7)Ud(vx*X~LJ&gGlq-VETD|QrOk%yqpKV?xRxM(~+kDqmoIcCKt{cF#&ye^< z)0+3c-wG*jt#e#Ii#~x){YO%!-dRrvX?AobB?!X?eWU|sBhbw#A6rIJhU&Q06^th9 zQLYTGIc^RG83H2nFoF#;d4D;q_;^dFs6jn3*+Uv1XbIqlOj;hs2A?SI?O8SgV(q!f zWh9$CbkcD#tbLZlT7J}Oa<~Qlb?XL!-Cl50yTu z*Qf4E1lB=0cQoHVLeZlc=C|-WGG1Uv?CiE!DxVAr<*xy(+zC!F%+DwEwRKyU}w8@vEi~jHOIz9(N18q%Zbd2;T1am^3Tgw;tp-k#Wb}UFG2j(K!Jw zgG0Kos$~xrUa?eHakmt{#C6cmC=j zv>V*i(RF{zmH%XDqYN<-FK3JgboDmyTzBhvo9SR9e_EF_u^dzvK_bckZgELd2<^OkpYzX4oW8L z|7ObvNi$96J(XSWWcuL1=l*h+UGI-EF|$7EASW5_WcX`%DY7vYiL{$%ea=5B>JKIEe>i`T$IL7E-=C_|?z%A; zYOnM2@N;;6GcV9H5?m!J2;sQ4T9iSRc;k7Q!#`PO*_-G^V@yC6qb8XRsu>)`0v#MX zi28a(DSM-ztQm-MQz%gBa;;wzqpQVByqL!;(nDEPQE74|kqe^RU6nfMnC+`MVm>Tr z0&blT)yI5mnb*?`q<(J%5T6hxdb8E$aYtxsaJs=dK;hS&`Iau!VH|?0@uC5|OrwJi zy^2+pB7fo>`O;sQ=I_$*xSljj!0XK5>=H?hibjOD53BRmld*$vl`3extJE)15$)2OskC9)FoRlsE6DM?%V|kaBXdWe$J6E zbM!rrc|iI*zKKemIv8slMs-MnSPi4m9#q*^ml034Zn0m-n=ZS?iCPWRN!*mvz~$`H znfL0+_Tef)n(=I>FMdEHh};Z~%rx|V-sy`IzV}&U5bF_`+>xHoDroU{W!t()t-qax!4uct{78;(0fzP~qvv-|xJy*9p7@50 zw5J#RZ+tN^wLOGavTO*5pMOOwo}K{;SqA>+uxH-J zvtOib#MgdAC(>Zc)JE+Qi7cnxlDaiLDFmwD<|uc9IS+7Gn;yE$q&M+}IRfP&*gWZU zPMb?w_M(2w1nX#NrurMM`$9fhdN|b#j+;Lu5Rbp&qzk|_7=F*I774{;JzJ@m1k+V- z4S{Gi29oqF!qD>sIx03_V#l>o#K5p9Z6v`;Y_cBj7kk7cNq)FW9I)w zdLx_uEBUNt$@GV4K!3n)n{kI~FMqKDi*zXcsda{9pm@*#$NgHOvrC zk~8%Q157nba_^jpc44;e1Q(cdV}DCp-38A|{w&0XV()`&;+{zN)(K*EEozM;GFI<0 zF&|>f8zne=7xgj7;5vIfU_e|TD(Z~O{2$Q&xi-w`3uWa{={cz$j)qkkF60Br&~iSE z9t3a7-LYB^Np75q4k*&i_rA6|0 zEx;rkkK2=Oi(UGb7u*)?hz-KN;&6B)?r6c|IhO%2KKRGD*TO9%nEVR-1ZLYKpM#o_E!*M9IL*)dc?Er`+Bc?OW5Hg!JjZ^B%)UM7 zAl5Iil21gE6U^sipDZSss+ZQUvxCrrVDp*mJ6JdAM|P7Qx*JQ_ z!myXYHv2H{I6ZfagO|d&1;@p;FO(yarsRzvZAQVQ9JCJ+M@SZOQwiNu?yv&5>~J9z zBh&|vZRRc3&3q7FG!{W4Y_nA}_CTMlve8r>9RF(!yT960)?RmW;>F+XWdet>WS=S#SRHM6BWIE zd+uyl@KLG`tJ8F+T4q0x-3g4 zC=$MZTCS2u;G(pJ{(7ZRivIIpfrVG%=b1kN%h*vL*To}O$sX_7J9hUENvm?@9GGI+s|TetFgk`T?Xw_{<{Go2d%raDzq88%`uOR%>{}z1h#FI2`|W@QM_miI zGo&01plXWT%@KX{1W*qi4z%DHnl$4|1tKqi{qT`MZEoHez6;aiR$8J7E`yLMz|T>! z()0YR)tjW0bnn~uIZ_DCaFN*A@nBP;7&MAko@PK6wnfHs5M77d=oul7(q8EB$ph}@ zwpX*BurakW`7Tk+IopLxDs0Fhy8(*RfUrb(ClTmHOto6kX46vNrXSe*6FL9H)ePCZ+Z_s71#!^Jp9aurTIJt57m+e1oov%3;IpY z$(RO2M@kG&GxXA`xNN;{wXu)k)ZsO?55L>%^zt}Zp#T_}0c*p>Y0a~vrfueUBS!4S z!`nt4-u4Es=Unmph)E5VX~?LIPNT44^22FKVFv-chCdx>LMOWm`E+c{&4MS{aWJj>SYo+>7_uHCwtEinIqhaKVVC)3xjz&eFqP$%^v$( zMQt<-W;=^i%qG7?Hr6Qx&Gm{sfDEEW*5X7ng8(*lbPwp;EPw1D3~D1s!ytz0YzeCG zz7M@4>YPyOPuKF~?Vylv#nidn)e|v&Kls@(f^GRa0VM#V3Nk!!sgpVW@3QPa`=K<^N9^*9g1JGMKE&N|>ho+TQBLT<}D zXmS&+*t(l=2XqMqWYu<5OV}8%o)oF)X^1(3sGeLskJ@f$u{F2}4sh+s6^TSX*d5p| zz{-x%KDJuM`s5^TJt?r8_e36!Q0vJG#&A8Y}bo zSSw*^cHeRuNjzHy-tKE>Uo9`uRR`}{l=lC`7n{mh{gyi>=&%pA*f61@K^7q)=Mu(FUoRD2bzYf@TyntW4=B>qK}e! zFU%^t$gI?CO{I}V)rMPue@oWT+aOlM$I9s~sj&3jJNMNP$a&k9~;V$qXSPQ~& zO@jV5cs0=gfQeOkX1>h{Xj=E5*uHc7OI(Y|8xEtUM%9EczOxV;U8W0(hdLlTeV4B! zJn&M{B7BTyF{N+qrh@|XIf-o$$9t2Qe&Hkr+v$U0G03=d%m zSdb2x8GM2bg}_t|0>}!$h*o)WGB$m7!#ngReqe-QC8el?(4)+<=F3 zC*GqTg^-dYhKe)+<)^8*H1jLZ0B!aXGP_1$kmHJ^V&P2EY+>&4g+b{wLGyrcFpp>3&F3P0n6??W^8)KF#`j~EJy}d@oUCjA zoiu*y;*yn(uA`NqQnBvAzLYyk7aoqg^oZ86aUKvGgjOi9X|7=- z6D_8w#;^FH&;Xj!zuA&aqN`T)DGxo-%pbYPmn1k4q2ztA)6dNBjj)#FVOj74)a<%B ztb1?Khn=AJhSs;hi6S1^)b7xscy=g|E{5SL1G$a+yuCpk2>ZV8c_ok>~yDXrgM&vwAv$Y_4Fc}59oS3p-^ zcMe)g!I1)pUXrEf&FKIrR=|M;a9(Z%k#H$CE1PD;QG7-^Kx@h zK+pvw8ef-z4-zA7V6IrYNn1KW*9Bcmmn4Ku?Y?=WbN;T339Vq?#b%sS8`dvWzh%6A zrPA{{D)Bc2jOk&4BjUO(covOdBSRp`zcaJ`xOU} z@yc)Bcn04wZ2g57Oco8uV^`Z@_kRoiX?5Z2CxZWJAKz2#Xk^SB z9`VH{b6GOvQzbj$R$gO#A+bqqEJA=SxIzdr#3!L(O?y;?rJKN*c?pI;K z1s!`2Hj^>=3Z;s@J&0E5qU7bY%n`B&lf67}YqG&pAu{*7lTsz6ne~c#r1NYU!Be1~ zl=38Vx^SwEJz?O(E7x$(vy-E5J1O^BkYW*e|BAi~@!`dDDIqCxB0-}!Ty)!Zz+9wb zQEu!D$>ZT3@(3>#$J--treE)A7@MAU3uZJ9?4~(#b zEfK4*%hrnQy@Zdt+!h#Ka_01KM{d^IesiVH%t1m1Yp6!IG^wmgF9S3&YwbSI#UpER z70q>_`O4J@Y68rgAvr12H=vinIJh(2H00Y}g%lmNB_2liD6$b%#KFNW<8ze+?)TTn z(Cm@qvRP=yuKB_=16{gF&t(e((GsGOxsAUd zDc=Jt0AYMm5?587dA@0^iI{oa^o>}3SQ`G!$e6=}n8DcG#?T+u3N;UX&LBWIydfFb z@iWHU3=&J!b~p=>I|IsZ{?hiTfKccYye~{H{|_6`^f3=^eFq^5G}g($kQ@fZI?jY@ ze%-l4%=iM2T0#2|7GR0F+rqYCb~PF#mf`m7GpNs7G=& zc}f0Cll%3$V&Hgc@_sw0^p=>%lq&r}<66H9iC$kn6|y)ufVLcCTTb=tVbHVJ)z5?| zNDBj?11~w^$0U#tFqt{cWi(-2^x$b|YHKN~Q)*<}z#dLiA8tY|`>1D6Z-E^&|4`j^gfF4)gHJSbVVP;9$ zY=bB?b4?JAGeaC(m>hE9J5T*OE(|36T|?tB}) zOgQa9Ur->BS!LTbyl2^spWa3_3j)FmEi4r}<&p*3v6D?K0Y`Db^rtMSW^d#DoT_`H zPiIF8d#}ax)@a?Kn$@}5Ssrj^LnLeaZ;N!TQ6_72*E!6#40yTrlo2GWt7eiNK?ij2 zxnhTpuD1F;RUBle)DH_uA*>TCI(xeZS2WOse)%a~Q1qTcvA^tvzqvO9WjA1|o>N*u z;JFMniy|N^Gr~i)xOI5_*wN$ z9_IFho$m)_@Wvup+^+Q)lERfS0Fu)&@=n`)ZnGk{n7yK7v9SeI4K7r z^SzZ#Os3i*58Z`{Ny|>cW+6S`DNx=?)dRP_F(1p=S<@P+od`aSB@EK=av;h4D$G4e zsU<<|r-; zH9O}(X$Br+gX8Q2W=TasLCvRAHRx;PM!Y)?9=6dep6QD+aoRk8tK%sh8hTd(vT=v> z!OUbU%=84)WMugRYNm>{lOwX%+q#!};n@+MJixq>!W@QdpX!ahD~iGM58WY9e8n~_ zG?(m3FN4`=NJyH$K~C;|-s|{TwLX}1fx1nDxe~OVgbS*V6~6-b@WF{kK)ZHOn~{5V z;lK~2tQM$_^Ai;ra=>pjoC+ILKxCKPuRHte30*|nH~<+e+hcG&kA2tVwkGO-plUX{ zc)^c6e7uKV8XCp%b4V+l9yY6wC;7Qt4WFHWwNH=+rc19Tp)pR|xd7;t&Ohu6ZV>Nq z&HqfuWh~JDvcGr?fkuoIK40jDC-I!zGP-nOjFU%R2$`D*t&FQL^l4o}7fu4EewQdG z>g98f2yXFoZ)1s&ix{@zS86i)Aa=K)MHbUm`3=qvdpNXWISadHJ#P9|f1g$3V{q!> z*9#1WgFkHggT*ngHqN}<(gyPudD5?S_6hnFqtz|+Hs=mERe}-5vAse*Y-OGwH8QZK z6)c&rr(FkI>3Z-8;HKoF0Ej_=UO-mJ>sxr>yQFH1yKN^tmCBaRr}HBKJdx_DUrR6Z zp4I}Cci@dBGNFgP2-TA$(zNw$z1vz}H6#c7lDiYJl>~POu@WAyT&%c@Io5N%D5xK+ z|K0Ec{6z@M~QHha1WJS(5*yd@du@F4iL%EY1vEprFMBGyyA> zX63VMdDz=4oE?UvW&_(;lGNOz4gcx_%r~tEOO%B$rYM>UOSJyBLW7dNr z0~4E`raR3jv!rc_Jo+`&wdK_LJ3q?Q`A`uSik0ftq?BJz{jnzV(@zr31pxYjN&|VO zdCTX@c;Wg=ytcI7YR=M?!57dH0rvb?7$Og!`qSzsnBrhYG^S7#N5e6&mNZrl>|NX8 z4jd$^MBn(PXp$Gw4P_bu%hk()k!hx8)LI4;emPvPW&t87ZnMq&FeGF)3k!fswZL`eAKbAmcNKfh zPYhJuXQ6{?@CdmF|J7=35sXtN5C-V3TnO$hh2fU-OVh9VBDdW8paDuDl`Ku>6o;S8 zu=OS8<9J}*AmuvXu`xcOso9~X=u2TD#rcNXz*t-*JeDVF(KeUAp>rn!5 zpO8=8FcF)F%4i92-V9z31s#!%@=LV+!|1K3^7`mG0tVZ*>=;&u%5^{-NTD#5A;m0s zMfNDvd|3VEuNrB<9s}KYZ~Q(566X>CbPKw{6~6n}qCJHKPAY-`*CL%|Xx;}}oQe{J z1-}!MsOJ-ITqPX&HRp{qN;pvCvDnq_MacvQ~%r#Yj>cIn8n%OCYL*^F9yqXV7#5MP1PB&wOu(|2)yEl_%Ka9?W2HMV*H$meQYJ z(I|Us0K|=(#2vu9q2r7hbV^SxnqA+xoc1M8T%7%(mMKW4Rn_dIU!QMFY=7vhbCJ>9 zutf`aG4QINCyNJkNx^JeVLRt}q4c1mvKP&dGOQp^HMcwjw|Xe5Wc18jP}*idpu@Zb z@FQjeR&@Z-qTOU~L2t-TnFI-eZj%5DIsB7n1)^RvF<_AHVX=2C7N`HEnW)$*SCTPa zs#}yfzEe?`2tGdOb+sU??oMax(TAK!@pt(_VhDUSb0W7==r5e;;remI@fxQs**5m<*cDb-2ny^m2VCNvX)yeJ>iTKWYgg#}y%8PoC@|4|StNfMU^3<|M zTYM@gYqD>NsrhgNTqzf4;Y&WPx;~=TXm)JcKW+FD&UV;}wc})3>Q9uz5f6vi;#zcB zW0O73r%UwYA9PzWsW(p}@i(>4O`qZ7`fjhjxcwXljFU&nMp3LRfsg*ZHv|EgO>!YH zMD^{+dVhHMd-C#rTnb)tb2{A-|0GSNoAeIWE}dUMuTEohZjnd-yx8O;hiGKy0hd>o z4(Bt5b=tDzGQl;GW&I#NbZ00wN)=XOD?0keD-qBm4Sh(-L=jp1ot>%8mMrzNlVR@M zsp9NN-ad7$bsbA|n?yx%hLqlNjMdSaTQM9t@%+2m(EyL|pMm=qgPN|bCZDO{1Ln>@ zwo~Rntc;9|e2!t1QJC8bX3Pm@C$UgN;e$U8@~q)(DjueHGtd+)>Rt}N(N!q5;e;6_ zd=JJ~IyJe_(JNTB7Q7Qghr7r36aeGU%EBObs+B52*bd)x1zPmMSqJ&Jul=w3`vN!~e zuo>BI2NV2^_>utQbWATuv{PnUp8hu>K+*K^-TR~wU2{pxARk__uL``J0Rmx?u`B#( zd$O4$EgUjb`*j ze(SB!T#)$HoWBwB$tY4maLD5|0Re;~a<`8|=b6wcZX1S(WQGImf`syrxF?hT*BC`S zOkXmo7A4^ht5#!`Q>f2`alhf{hN0KUjzlN~@`dz-*_I;J=oXtI81M&+QLjNowK`XV zD*0b4il!Uk=rl^R2mTQ0e|lSGp%0~5^zUuw@JfeGnc~6ZD$G3g=Ri{EwJ$-GXf8Q7 zp|@tDlns1|Gz;vMZjTZ*e<3CKHP03YEG z(Z{~E@=rOGx|_A@X1kOGc(UZ6WMfCM&Qbmj?fTNmF6d(=Srwr{bMunhqniV{ARi&1 zS9$!en)g>E@_ixfnxsG)(ezn@FNqJxz8WyK!Nv|Uhh6Bg#4hdFD=h09HIsAEzB_bt zHC9a@8M!y7J75iO@JkGF-3&xtigZ`f%|9NmM5@h;GbdMXV!eEYvuKTHdP2jC`etM( zgS3LMqn@D5woDDy8~_e{(p6^4ylu6HoUh>Gc~xon6yB(**(61^jz^%rP5q#u$ZpnZ&QZinynCJ1QHOo65Gw@^&BwY%CI_`;#nSItOyUa>ij! zo1~`*W4k!O-jn2-7Zm%%^w+J`s+F=x&Bin9&|3)viYq+{y##$8upZ zHv$^yFsGHxnQ)w~1;4&U{8UUpwWwI@`WBPJpyAr1gm;N8gQZL1;I9y8WB$~P$DJrI z-2^bhr(#~EO8NTM0%GH@dYln33#gPjVygwx<%||s{FNiLR>(RfFiA!RgZyE))3Yf> z1+k_5gNP8O83nRQr52+iVXX9BPP&)l4+ilX8DNZ70gI{y32zucW^aAf87TP5 z(^tZ6?E!^tt1WooX#p>xBkRVYNSy73R((=S;gZFBbe#G4{UTuFP(;TH!Yvk8sc;JF z>LA^X;l%2K(7g`(?*vc3N@?SLQ!N-kj_USgDY2do0E@D|)Pi0~zsu1E$F#96l%;!E zc`-SsFQVc+0TCOsr7ZhA$?Z#Ii;ks>$EV(JjAO=Wh6#u<&4T9}!DXBcIb}QkGW~Mo z`NIpN!X?g&3Oc$Qe{ul)PX)JwUj7dad;MwqX2WHBpgl#`PJvn|dx9s#8sSHO4D@r$ zt_h}eyS2UH2wPdRsP>PXrs(V0kmH|Uu#Wc^X(TOkkVR*3(;OnIZaN)zhY2=gO9AWC ziQ$D_gpc=szZ||Oz*(Hw79smQ36aGsz4hbgLDi$b7&X6p8z%%?tc235JjJk3ohuD5b(%{oMSUw(=Ud za$hWiq8+Eh82JF~Esw0)xf!iP!JTM@Q@_YN{127s&Ja384P<~0XU{U3l8*>Cw>MT~ zWu(t1gzXUXzPaHyG%8{2cdWcz5VwREC%HJMliQ9#{ZFO4J1^mnbu!KZ;5aY&A*^C* zDlJ#z;&88XkP0+4!M_4;@C*ixSmhfaL$ML@1rHGIFuir(yTq;aZc@&eyVJdvAvmo3 zV|%mNR;1ec2=o`^>NeR;{oM0GdRAdJQI*IapODXA`V*E2XnEbH?MZIM`ctSL6Ru^) zS2KogoDWQc-0jYnYi`f(Ns7qvS4Xe2IteE>sz7O3m`N(OhwGUPeF0cTB$DqY(yY4% z7fZY25d)!imF0(cq~(~rJ+@LED({I?ZyBi?4QxIJf4(cMmPA0rNpzo%tVZ| zuuI!Dt8I>;O%*?qIsz{lj^cSL$6G06;d+pvvMTREpFB1p)5|h1Rw3 z&C(fXAJbBwkrX_z6Ny(K`DI59{S9?S2s)li^?wqQC$+pe2mdw9rlr@gUZR}vRrI>B zPwNq+pyIP0#dp3F?nKSoFz*T1KU};G2GM4eVxfJ^at(Zq5Q@jk*0cZSh}yG zwUNE`~{{9vw9_~#)&Gp!vgxE)bz6rzGY z>kPaSFwFgGyEiT&9c{!FHC|uG7{XoK_W(UvAq6lM-b;tvJxhYA@7s<+Z(GtQM75Gk zh=(edeR6iY7&2(M|9z-{M4?8&eS?N=yG%v*087(0=K_W1=ra-bhsz)iR?4U})psVs z%He@PHQn4^Kl`GoK8yST_u!Rc)B_%5|Sm67Bt%HHce0{S{PHiYoVS3-^|^ zO}Gg&I;mD-n&VZugq&Z*vX5yla{+}6K6|l3Wb78zLJysq25GCoOTiFt1>WWe5Wqm` z%wuGGzrXKx*3uWjLx_6VBm@tY7kUBZ)t(-3?%sbilQ>cC#kfjHv^kpgwP0-fR5_2p zpCfZTOdIKTNJn_MD6~(sl3~C`f1%e4yOhvHt>j8!zjb%PP#2~3>_dK4A!&%4bnXsF z?XHj;yA%{5Xlungs(Tf`jQLTKx_Iup$zPO z7rn3fkM@KC2HXQwUF9_ZIq@GybUx&`VWxjupq=t1zrPE;MEyWgbmJsb#-i%N7eH); zt`O((F;g}kfnl`6CxV|6DDkhAZ|S{SAP09Ie<7~zCJqzBZH-?SvM5Z#P*4H%AZ`54 z2(qAb9;=GYS;_}N^@g_aa@Iv)=6LQFD;;xbS}<9I>wjEUHuB4B$Jb)Pa+nuYKCaWL zk@?Lj3|Z+IEmW}2wwr#Cm)=o9Z=d(b=!ammFBh_S zIgRNs2OXp0xO@^>D1v|(cvsQVB8HW|yPH3_j*OAvCMw86zJ);P3Y$Em{rlxs|5uGb zQp_6@4M};@nc7vZcAZEc#8ZlQnpIFd@Ko9kyZ1;OjWl2ko#E>aYMhJD{V3cKeCwD%^eVH5GGIc--`MfZr=J*d?IlgAR+L(Hm@@lTzr`kkXJ z@#ExU(-bib3Cxn)kck>}WC4la&<{_6)xG)G*&yWSHdQg%AF5IC(33z_o`Qo=Q3Qazjg-SW00l)+{ zc$N>9dlI9LU50q?S9U$)*TD*maTfz}RB1U*UN(n(QSOHVg;mrTC`c~sU#Ys}$>g~425H7)w2Xw_ z7`wvz)7%;@9nky92Gs;5L`7>sexxvkTwav-9iByT(*djGPmkq1a#>$TD(Us} zRZD2;bidK>{s9cS=O}4TjHfbX*NJ+O*M4fKj0V%3pSOBRQb%d@ zb`hxXwos<~t1--?M3`u_CN>D{J{5pW&?R=der5FQ!JWn_1k+OxNP0r`)c~|BR#1o& zGYA2@GiMDpA)7#8qPvtku6x&T0KBz@fxu}%JEk%jyJ~?Cs;fCvC+vm)dqQMqcDW0B zf`Vutz23?I{ajOvKLpBP3>gFvlB?%Eq|#h<+;Y;_Z%OVBbtjsJGE+i@jxk=7R1&tj zt@dCyS{kbM*8E@E={|8o0KeZRsGIBeR?&C}9VrBpY$Z)bGSNEyVlbI=V!A)Kn^$$S zx+V@FoI+^JTLQk1pehQyKie}0olx7JtBc|oD{bvT?3PfisZo2((7xGvKDaLwSe#63 zOpOfzpDGPs|KyqJ4!Ww&IWQ37qz8n$pyLrYmmHCX*`fi?a8>rYftP2d#H>PH%4~FT zsKCGtT&?ZgJm>wdkeMYxw7>CG#Bt_NyR>bSSSG?JLG> z4rgj)XedLo=kU890O|@JQH^4qplQJ!2MrwWtP9;jO#QM$1|vk>|D{ii z(9pd+9sTpW$<^&E@L_V66ujVB8sCv7Z2Onz6Hf6IYM)!sYSCSZ{R&DEMVZ3cT&Y!o zI3ffn&Psg8&w%~x%^r&S_gmpwahn|5uqi!~m~r-vALGB9*!WS(K50)MvR9;oQWqiI z#(`9RhvEy-UM|iR{Hd{V3E`43tEr0U>;M?PvunTp-UjH8>$ArX=Z(S{RUN)_(Gh7B zdv??n=5q^;j{+c)C^9`{u|I}4jKHG^aPs$Fur7FWap8F&ceTHpNC`u5r82UXv)z47CNi}d|8N9dCqDyB{EkJn_cq--GiRUCs zw)hS8gbZ@cI6lL8Un*2v=pHNj)=q z#4L-m(v5SPtQcEH>~Ey*!x1qb{vE;v@ZT)QFeGu$Xr2`~~7C%cGB*BRe37$4{! zKIt>qb8NQwNhMFtaCSWJ5uMwHfe?zckJ=#*6sQ#yRtKP5{V}J z*_{Eoqx%IdPof`2K*)>xvn)#9io^C2Zi#xOqFIC z-c57QUyDiC6R^WNU6=SOodCBau@ww=@bhL{|CSO)TP3x|sEfLtg|kwHDu_@64~!aM zbw>a?rUyzo&e-m{sKD!@gD&fL7K$WK(!3wnar4)S1~xo(tbtOD2I8x%Q@mhR=@&X2kj4p(T)*OkHQ&&r zO7c_|@Sng_ccK}B1oV7v#h_l^gXXDps(u2mhq@P^+P1JqBf%f+#DdpM7J{j4+?#On znqa_lyb!TwAG;|Q+-ymixswwxItjkmI&H~6bk+bLGxG{e89fjokBo#5>*{14JSD0N zZyhP>#VY?R6l(VU;4!S^Xbc&PU>)7wyAp!LIW{x?y#biBZAr)0fFHCzqVIIu)!yh1 z3SgEIZ2Qn49g`n7=ZBzZ-0eFOv>U%mvr+ebSEavXgx^Q@q9;gg`nGF54?d;Hc9nUz zzz}r;_)|998ZS3n`=kUR}< zeW_wVoJrLf=S*{#^v91g21u0G5$uRLFBCOje-|{S4OqVIFTqCwn*;{LT~(uPZs2qP*DhX2B{2*R1hI!!A1H5#vT5zW_PI9(#IB`^T zUWtJ&vbpBSe|Am@S;YV8_AwTD&AeJj`@!6rhuprmOYUKd9@)c|g+2=r$}m|;rvNdg zcSYZI@ij;KmDFg&t-ZS@M#tT$Vf>DmI$_UAVP$Y2wT7~~Ouz0&t5owMz-0817&$Q- z6J2So>S$GgJ<10?&$4+^B&&xL6tS2Jx|g&m02jAC24b+^AGqrIj}bk_2j68)wRlJXifnjCFU!xB_Cjs6K*VyDArAGd?ptM#qQZ2{ZCg4-9mfh1*r zLcuS@vU%`=U?B!T=>4cQcQQ{HuL>_bex*Pwzh_*$9QoaFzZM6<`ZqOi@*{|~vq7`c zH7pF!MBqUb0BeKSI2C}rcktW@c(4V<5KW_vlVyHl31DhhB)i>u@O`|9K7DX%3Xs~a zM!_!N!pO>GevV z*VCL75SCpN4acO3myzb8@bdw_2#G{P2XIKP}kJ0NW8SOG10KS_pd_5Q;p^?sTzy2%@ic9=PF?y zJ_T(!7atbh_*rs0`Q3-%r=aWVHjYAF7r*%QM%ehO%y!#>VIy~Za&t(eX~+Ck68w~n=1C9dC+-;Qd)6bn_r4AH9e96RWaSj4ixTzg0w9N!& z$#^fvGLG(JAMx1{I;2KUkoRq?I}dnJuxozv{zQdsER1y?e3?>-Df<W8l1FaW3mVLW*a52Et!4)(}W-(O|=^3 zZUdM(@xCg58PoYO6?JaY%_4V?q$MYBMp~;e!m_kmnYXOm$Y4@#)gAEVZM5KzYDCFv zKSej%CY!83{V8h(Hr}4~YL!)ySU(TgRy}j!C$V|Kfmw@NL)DjA*>gmV zmA^pI$-1xIF&5~24*!=?Rg4zh$OEzy^{3nmL+IzG)WhSsq`%#z9W}&>7PXitoB$J% zV{KE!0}pDitlGL@+59_svd0lRz6c4o^}mO-3V?E)6sD%>HY>b{H&fj&gQVo~u+|K? zKX6)@Wak9FcU1(%{*3>|V3vW;3;k|Pzxe@T205gWmTGej5ZD@-ZHE=U>Iv+B<;n4` zvajOlScui!?`?Gx+q}kwl%01#ZJKpsgVJFGZQp^^Vw0Idl|dHLb658xiX^Vtq-B!T zlN0Uo9JW3w9j?_@WwI|6cax6Xm3Ls@v^GQjzb_RdV{!y&SC4ek%x^1XW%VVLRv!b% zT&8oBXj9MbvzTo)bC#$gLI%E_M~2Q&W2{YFxkhysFLY}gZHe;8S~6umL`eidFM-?4Jv^woA@GT7q*)ACpOBc)gbNB36y|+HByqQq)h$5+TI+$d@)Pk4q!lb2@?EM0N!rXUQDd(2A zLC-{AL69qvbKw$~g`}yQo7BqG{o2Po91&~W5Co2dPXAs+m|HRS=r5qw9u6%1ludWE zDo#&<{-()J&E{Ry1xf<5ErMsNre_VjG=s_Stgr$KYMJD zf<%+jL0T~78K}DMi23r+n}V&Sz1hDQs#iP6S(oT|CsRP3aQ|6@;a< zzaD3%&OoLAv8$Iuag5RPG#%f+UlK4k(}{ziEo6sEJej#+P!q)JD0NRlac;<9GCY0B z4rk#d)G23z@8rZw6kWC&MI)<}70moQ8F!{;n*ldQF6*9LvAYS<4`W_Xv&n6did>Ep zIfl5qoVHxTZyE>6*+=75m-TQN`AB>ihRUFKhRI!Nn2&*t&r}coia~+el+P_=A|{>_ zUO;g|EPGsIT2zNsCYog{{F->QApr12q2JN?%6pOt~s&5x*o^3&x~e;GH13yxiq8?_K+Og4QVB^=gi zEDH>XdtSXoXVL1Ys1ns5t>A<`~+5<~l5~Wq~5&9K(A83}UwdvJ-9i-_G&F z!4Zoq0ph1>AO+EiK4*=|lB@}UNZ^5%C`V7&cxh%qTyD?IJ#b^b05w3$zq`JWFAEx) z#<_RQ_9hAla7{ifXh-$`xGE1h41x7K7Dfudq(*@*rN1yd1Ee1EoCe*jTRO7n8M(Q? zmDFFP((&Ig5h6;-o^J8qB$#-SM+D~OEu0DZS(CBZX``s%LJ5pQOWqcr z=K+KWC|jTrptQ2jM7_@pX@l~ww^mJMoFXP771gtSA|+fIOX&nA%?ftpgIeA&sa)Ur z!V=VtjtO4ynfb->mfg=rP`xKKc1O(LQWD35^jPj+y4H!L78fa&pv3b8a-c|5)M%SM zB3}x!6uM|?!@zYjn>w!nVwC5STUEo9)rHr6Dr2ujjM-Fi3?wC#roCpAS)Xw*$E&GL zjxIDbVl2$;nMh5aG1kZYc-jy^8SDc%3+%~W3wEF}pv;LuRtZc> zTwRUR^eUo4f8EV-e-v?~TbiPgi}fFUI7u;APL*p#S}0_QFE{(*J*Ppo5PB9kmpOR; zp{(>p>mHQRPvOuf<5}(D--DJ%8kIlc zq4a1p7#mBk>#GmBDfc77%_#_lA*#&SOU=wednQaCFT8UJ&@W&CowVR3NpEd;1a@VY z3le-m!`o(r;6ecj7yD?$_8A-ET}nHDp%TzT%H~sVy}2uAYQjNSYS`a;NE7p?;C81< z|FNNUI%J#ZycUsln~47uccF%pYl8^?6?U607rla1C8!JgGn)v#H>^cf_AR6J3xbuN zMg-36wb_7@;0PDq?NZUJ4fN-8`YRwam77Fmi~0vQZjqs5+75)$OtIYyj7y5!^HOy! zEfxisSkZ9p>LLucj;4&;Rm5mTgVm}!&i9Pvm+tlA53c;x6pXCxq5)GLDn7l`io}E8U zrR(qb-C%x~-;sYLB^;!J`kM7c`XCBeu#2m5GaNlt#QxDA&7B3E<$5NDO;oR|?uQMV zJ)+#xGX_~oxR&r4FPa%|hj@5+g-a^wd#P*j#jJWQgp5)PzsY-LbTc{xSL#NA*li7> zTisPq07MSKDNeMzxW$zC~50K5+C#Ae2n*(2q#>ZYN{t9(;E z(R82&oR_ycdex}Nc?2SRCX;{4?Hp?3@Iv5Z-?%A%%IvK z5gx}yQK=CZcS%jQ08`RawyXaqQToBjs_DMtmcUBb=ifUBgf~QtDMJQ5$X9~(V*aAA z^1)OJ)Q^3n6rOL)8U6^3Nh9si0adD6xM)AsnK!>cg9^9Ib)h`1N?Pa$D^O*{)t{ih z-j`j3onc}g7+1PyJ2iXQOYtbb-9V)fw`^e_iwglee%Y(V9_Ia771mPvX{5+Pwp((8 zVXzOf6A2&o-PbUM+E~~W&#(y7)Xpht-CR}Mw8jO0o*mO1fTzSLO)0I)7xj%XGYl!3 zzCVZan&hr@NJz1`PsNHX^0`|FV<0YBBwMd12xvmGv;IqUp+JTt< zY!OYO!N*#YWfdaSs=Pts<5ABHDb!Etu4*;yh0k&7e0)LZD~vBBy{V$2$W z#fIN==AVSUY1lHdOD?MhX%cqh1X1AU+mstIMB;l}@rwRRr76qT{3fA)H@oJVk`!Nj zMSC?mr=^A~@LfQx_a)}9$=2XYbHi}XE>|Zo35PP%spJCO3F<6duE}YjQITU}9>jJ& zv;OA1rUGppZArxQddh0bIONp}>e+H{_XxR{=F=X2#sF zc0MXH;*CW$zoZk7>Q8?9qQb$CDrJJnfmx!j&BB7r9w+AtNg|rB_bm{TV|ra0heO!L z{X~IXo?yf>(N2nGdRYc~6-6HH%uKpu0rmi#@NNMR($@8$kw}jN1`g}Zcl@Z*djD_3 z6~4!C1^!QK4pPFdJx=WJj*4?B!6yT}<%;odOSj|)ViV+suJrnjP^a+7zpR@Nh4#Gr z1Y!S-6>dlre|`Lk!EOGJic&}5RvxygU{`G|ggYdzhXR^V)R^qqUrf{)B#o<|T@x!l zP)v)-4#uOG46~$l@?ghZ6BPieHpQANVO@u?0X_#$;(%2egSUwYW>-hq`&V%UKOOW> z%}4jWC)?bbAh4IFyqDQ*!jc&;B(nm%wJcfJt27<%^z?$;&@MlaYXNKn>gd;2qEqRL zygoz_5|*~Nd+^3d3rPRI;&ba{`l^zG6%Z+6%Xa*XMeP71Dg#;JDX=N%E}Cv|#L`V# z?)24($&L)OE1*VSVse(fCD;%@X2t6DT6Q|y=^*zk=p`Gc6RdpXP|>hf_WU2VgR14S zX+7pKf(L6i2((Z31Zg@J6ih#hIPFk_Wz+>8|13(XPRx85f^CR0Kw6okOpkEU>O4%( zeeHZuEIJwdw4Q`EFfoiFDgHW|p~e^t0FQk#*MCjct|Vyzt)SQv zl^yo$?Hn}yB6?j*J(eW;A?k*o$3HbUKEtJw52yHxd6<=^y4iskDt6%5()s06nsymw zBoK%X9DNbaK@g1>ylK6@0MdgpyEiIICzIXkVdsWEl`&1kp`GJs zCZTh14@%?UP}xwgqM`7l^49}rv4ADY(B`?A$aIqb0Yf|~Z5 zNDY?0hDVtUzIP5YoG`&sylI7t53jR|LD~)YD6w!qtwY0+JZ*!yr|0a{bNT#esmEP* zrz>frUz#T1=W;PB@13_-zb9Sv7rf`%?G|n68<4%H+!1sTroA2Vevd6SsbMpseWqpV zkPX{po0+9wmHqeJ$`mcXdCB(Ut2HuUfb~5aeQne7dB@IPQ?$}Z11a6IAf(*}X}may zjBGaj>VUzEz@9s#3WKOs5uqud)TA@^`wQT7`x=kv0qgVbj{Z~1G(HQmJXceKC#&{L zY>SQuVewkWZsqD-6KHb+0sMaChm&sg5_6~r*zG)719S|DXaJS?O>7F$Btp(93(*(B!PppRKzGZ#B4R&a+IifSxf=SoCg*`00Q9 ztTS?|rYd887F`6FK*{?(^|rDlD4ffBx~vj1TWZYKDO9A`Hn8(L$tB|!PVU;pYu~fA zZPhdnEZU$}^9JdaH@njr+B%)S#O#kHT=VkD38}|!i@hXDSb8hRqGgKhmtmec_=9X5 z@_cDhKcuN{NS`ToKhabUoU|pu$uEp$36>u(Drtw&P3G!CZf4GbYO{w_eV$xxBD{D& ztB!N`YSl`puGx zA}IuSn@SXP6l5HR+1ec;DA!l+!jCkH19m#Uj;#!E^l}W1AxR4@_Q~@-ejsz}A6y&T ztG-2G!mlvYdfJkzj3Uy$OHm!2tVAn4jfy~<4eNdFW0I91oZzf*lz}_*hr|6$Vq_~m z(R+YQ_6irNVUXc=7{mWLC!$;uzpOvSz*~Ot;?78LjSj&Tq1ZB2k_Kkc(ABc#Ze@$Q ztrR|1F}$R|8CA!3TZOSu(IOImi=PY7SzIWhrqCLf|p&o`j##=nUsvRqU77{-#JNVLPz0?OM!M1xc&Gke#pw8ZuDqbqY{`?CEz z)fuU)t8@D-F#V&Sv`K!TIC_>20Q* zLB{Z?ndL@JoaH3tR;dM{3lJin&4O-`!wgD)`;o}Jk~8a>7<~N+KzM~7Aia5IYL7&( z#PQAt?pl*m5;|*KF(Vs2Fnc?&bU)3GD{t1Jf1Zs$E-&D741B{KYxfL{B`C>39ux8H z9*76od0@4Hck5J_=85~uBUF!cC-q}I>3m51Nej%AmgXRsHG&6?na3=8PrF<1vc^Nm zme@}fIWCdj?Q{=~dAIsYrK`am(1R1{Y|}-2>Y_4hl-}5_fv#W=(&_%y(ivgu5Me~> z-Kz#B589h%inlV*Vt2S5?%R4NOMx$L4WO(lA#DJ^q>{_vT%c{mHk0_$PP`ksH|_E; z+pGq2>zsHkj~Qxl=H2pLPMGSpws}8IH0c6n6m@n!EFt#+WKcE7PtgKmIAHz9)-n|= zHnD1{gr-1c9T9iAh>3p~-=n{lX&HjuCIL*!-_di42-?wW^Pj(rQ~Aqv^@A1F95lIJ z`RLNCc$9>gbCk8hf&DWAT5jBCuMWq`nX3{pkxIRfMo zg=j>F9)MaJ<-i~Ego0~fK?J+xC4LQ}Mv+HY3GE55Ftp8nl{>yR3pc`J4|LN6Hvp~& zwVu!t(n8Oiw)9b}v>{MvQw@Y47(igA&jWi)1k2OM2;x}v0@c`8OhTG2s=&NLCHobA z1ha2lDcP_@%VO~m0@#p%hf0qOe4KMW{yH3_fVzNP_X!DjPK^QE5(9%kco(dyLg3u} zK=hFJ9Fmgt;&UxzGA;#iJSv=lx2KnNhoR3ML1Z>RP(72(Yl4#bvx21!u5hw-3fTEF zn)McMQfDL7vIq;AkNx6Jn{GD`TVQB6(vHw2B+1mkMuWkJN4B-uv1V~+rH(QrHjpp; zof03^LZp^lPxketL{4{VFfMr34cKBVJ127Q&VVbxxL2CDk!f&R4<{T>h(qpNkXtG9 zth^0W{Y?s#rR$XKsmZ}K`1mMt%HhVk48Sv?)oF*B>!9^Bpg*w+Bb4Bur) zF+iBN?S5!W4<9Y5yXDjw0Asvp_2=!)O>Z2m2!%S^RfG=)@*v}qH7p5~bFrV1a+ww> zfr8D}1rX0efp9X=Q0dbWh>Uja*B^NzpBq)w*&XNqT}L3&kKLzMenYZ%tGC7AAjki( zJPWE_n>4v~Ac*D}6L~d5{O>BvFz<^KDse(F6+DDA?)bDvlz~`r7Lf7qcBs!7?nA6~ z#xDtoB6>R zE3Sh0J4QI`PJdo8Vm9Xc;%Kgbz%&z-7!Wya>A5}`aKDxK>nkMKv38;EP%T>XS*iHT zb*JeLthT+OpFg;`MS49xK@$D;EnoZ~tiZv+BXYWePthDt6H8M4ly6RGhQ7=-8W0Dp zRIsuxk)1d5aH@Z^AA>O}+P2>+s#2b@6mBHQe_EIQ`*o;=@)o244kl zd?QF3Hn5+ufv$e&-V(s01}Zb{m>PpRl;H#GdnoQ4biK)j1nYRBuR&O03B^L^BrTaM zD6HVw+mw}b5!t~REB1K2rMb3viu+Jlb27Y}zM0dQVzz<(<(5B(oo+7^5^B46St%#g z?~TOCSworW$fIb`U_!H6#&i(d%bOV|**E@y?n>ax5)m6Ix)rHA3rg+95~YnQbo-X| zTnK5|mWC`f+pwH9FRiBcfB`v+`!|A4-<_}p&&Y$ULn^Z~>tO!a(1_5zJ;QEkDtm~W z-p!S<=P|b^I)+x%8@k;pP3VvLaG&{%QeI+*7~VX&K8H%ce0{W(V1wir)Wjb`Hdy&f zH^dWC?jMcuK!wuMdi4O4l+<0l|>2<2R6-+K~j`PDFxYJ#b+v6nOOmPyP{*lUfm5qpZeEQfLUGt44%0ly#<8DrNxrjkIhF1m znFw{Tk?|mMY&R-aF?fwkH0b&kMuRG`TH|ttug?RTrg66yO{%g-=Q0bCo zK=+#|w&w{oEOn6>1nEg4nk+f&^3BtvcWN>~%6u}0aCt$6e|=z#x+^$1rM}^x(3rl` zF6>%*JcG1vc+Jv|-+lJ}TrrfQ{}KCxh%dT81N5Wc%HVr+TlTE=Q7sOX;Elw1WM;7- z>9-~ggHK2{sWCEfb zotUgJ53&`Kt9hRkht~yt3!dPLq+Sx3%7+I2yn!$YcZ+_83+5NM)JZbUZy#a}mOSO@ z^83L)z;mL-o(#=@xAihr+W9oN$vm1e|Mv2sk5rr=Y5QCV44SK1HHfo91A#hx+ zJP^=l8O{PcCW?LMjiB;>(f$Pw1`!&IcgODWlNT4-)qi61BF#klV;8yR%T~6$+H|r* zodi<@TD40jigUY2O4mddYc-KfM*FR@G?(~Hgj5cl`o+SE)6N%5hwcVFaWt#Eq&lsG zC#C-YI3TC}sqMJk+Udu{mlRly55&L}>fK7$qm8^h`mX_tUnpi(Es|S<-`_TNUGioir@3?or1;2hwARj9x zx{mS%a_N9reUyfaSpOI#hx_g$!e%&IpHiq6g zF|Oada9(GXJv56MH~9D<{HlNULsAq@uv#8j&W@rTc(O$ZjNw;N>nu89Z_TpnGG83B z&Bio|e($*SFlX`Xj3IN?=Ch7%udV{b|K>OIgG3VZ#9=3eMSe!FcrCOuxM+B_!o-U3 zF6_?G)j2S%dHj-2*hnc{2#w27`DNN3R?cKDyDuM5d(w4ZAC?HA`@rn{tVj!w-VRM3 zZtPQOuOig#O?< zWNDLN%!f-6QWDAr$^Dl&)y&XE{w7BzqG0Y$yK7f|@|N9+-5`swA5Pyb6FA-IwYDRL zWnbz4D+(n42f*~BHKnf zzHG`q%ggwtW0^lQHQXoH*ds?OURFj6RLsdhi*ev&{K%T45h#Iz*!=Ho`F)OPd0Nq4 z;wT6KF6f6=H6~iU2dK^`@Q3hQN)%$oNm$=K9^z{)^AV$(x2WmkT$QhTw&*i7_13B} zwR>QNT`()xc!tJ#VcS-K{rI2tY26HX%d!jp=ptyam2e+$KZwKfgR1WfQUiK&ki9Jbd4HVwkZ_zgIeQ4CDbRR}c35>A|C|9K~+%Ui@ zxTLzlFJd$)V0YEY4yxwiS5ED_;mS_uz8&kaE#j>LQ>yY|SLMNsMnMfa)w2ybi%D_v z=%Z&0|FCpgMc8)2u<3i`y;XF~^^B4F%bm}*MtVX<(zky|j*yTKL4zN*P~A{6EO?bs zieA;>R4=f=&H6YIGqo64AHGpNIqrN1F}N}Ld7U+@)Bf%E%MH!nt=Z{HMryq${#%uZ z{(o$lxI;Nfzsi

    )uwFKI9;kdT2^pZr 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

  2. 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ⓈZ;aw+Q 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

hPG6Y}7bvAzo#q1=)1xmX%)uaP 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
PkYBN%g^H(=Su;6S)`kN z5I6;5Y6s##*Y`=l76SI51+;`_;HWuuDx)WCPNW47S=-TSi0CiHS;KMi!0ea6Q86}_ zg`OhZ-K{$+9En7%NYh4Mwm0eRZQuu zKDKi9J74#Oc$OrxWR%Sh?CoAA-04J9YYH0+z|zS_Ejju{vf(8xT17a3;tgO=Tt`g~ zycX5Zlit1-wKY?w;em;N5Ijrr_^3*H*~6s}hy&KR#*rEF!^rMUl6F2g`a%XWO#KgT z8VyiWa0y7=W48%FKuYz_nbBBfX3H8d@Ep4Ms~Y6M0f!#`e1!0|`?^ zS&_~TfL!_KkP}t{+oa_6MeZFDsMMt|3-(eS0%mSKgP=?;91?@elL|G`1f=cjHe$%n zr;07PDl93yX?IH(jm#Sw5Kca*LX}KW>Z8{Be%;ve%>$Avnia#P-u`07x9lzUP1%i> zU8A9?tA1vIlmXWtm8i04Dp2_%qfgXIN6L!v@!&_(P2Ej9L+$bT4eBo1E2*_ z*e)5sFzOzpgxDc_4U4iesGVN&wh`dTG9tl%DjUeXa0o}XFW}Rk^-3m-oHuNqV)HI2 zbu}4itamXSZmRC@(*A_JXkc~ai*6007O@84t`chJwPcg3 zn$g(7girowa(|Y$wB^x=LU;DV>0U6L>iwm=xSw7y!w@t zl*M!D@+pGPvFi|`(!0#BNCTnV6sa2%dc%R%24s^bVob@e*sVnu8Vjx1#ZsZ&ZxV;O zdB_K=+tEq!%}`emEOV>4Y$}>H%zk^K8#0ITL!(%wiqwKCFm;H4u~62)&!*I+*64V- zA^dF+SIiofAh4Q}9@$BWbsLyr!zzQRQar}-Cdg9Sw=)!vU0map%nkeFnX+o7A2^#D zZb86!Xz$>HH&hEV*?&g7`~5ZBt+&8Qu$AInWl~`?FLw@*t>wHFW3X;UAb2vqMS3c3 z7lWVUycSjbLFY!B_|P{VvGJCcqK%cWL8yFl+-@;>dNY7OCq zKGj;IT97##?}#B(Mu&rLE*`rWM55#&L=sO-=z%7RV?4bD>=BhTMK<^+!H@zwpp9yy z8KJ#ve4P^1T$dT96Q@rwp`%tcp`nyegquk-YvNx~*|=Gu5E8-}TPp{@1%4S^JRl6;26)56*{H@mcIeLnw_`^s8nrVG%;2AGy z%?viB8z3uv=Y~KLWFJ|*kek4~4 z4BWT4q>Hbh55J8Vf3z%O4P*-FC~bGs_4$*Mo`>{AZZk%Qf*sZ}#LYAg=0eFp{aLjB zjS?=&^sNfA-sJ=KlIGWC(FU3Et!eU^YWKyv6XC%yNcukd7fXVoalv$%nDXS5F+7nQl0ZV33Gd$y6Af~8S~vkuOZ3iZsm zFe;~vC$1%6=Q+2P>Y(B^yPZA#o@KoNAGB?@+3c_F9^bYYg;{5%W_7gD&>lFjbfs1n z?56Gvw`@(g-uF%d5N+Jcakg`j*H5dFj8v1k4f4@?c}uDx(UkXl&H(#@dUroPLCx(E z?{)-T=wHd!CQ#(FLU#Ptyu{UP8yY2?t}8F3m&?&SWmO^0}a5mRA@xZnl2yW$x)1 z_a^<&-5i>&V(1PblXHcA6gx!cq_FxB1%Hw zl)wtnbY;OMX=46>oOEq4)~T?2a)XvR@Wm0mj?U5^Fi+%I#W7+Q(^!ygLBjXx;N@=> z;EmMvaG1QTra;N29>@ja+y7OTs4m9JjhRvyrF)(DRSF_gno-T!3Q`zEvPo04Ui#x@ z)YHmcd^hg15|*m4%Gs4A|2hX;PpYeme3+$$^xD3@-l)sbXHJ@tD;~70CyBkq1yR>P z_x)KZ412?2CMC(Cs1jYp7jVyW6LNg*$jE3nO)Z#0t7zp{tS{R{ca#}2Miz2w%K*g~ z;z<62Pj3@eGDGA#I&so$+gsUH8XorbdN3~CvW)nzq9FR86z^L;lf16egTJqvV8sNv*^o_$UbgF9><^pB z-)J~Zful2MgpQnDqoDb1oi@PJXx|ZR$cFCUom3lWIr{Rr)Ch?-*BgFfl;*(AQmOl; z>9G$wtljAkP&JIDW7)nmn1f zMvXd&K(@)m=RIGx$T=G#nd{J&-?R#DHzY?5Y<%no8WHEl2uN0a(%vpGmS_iaX~b+UDwKFhV)TW5Q?M-o5)Dd_$7~G zhk4(H{nmBc4NN%i4^)V4E;+5FAvI8nROJSV;sdhXOd)u7;-GHfpmJ}(Ww!RZDFzzW z@^qj1QRinx$G$#D<@SIY3Q)EFtd|Vw`TKI;R$5QxHn2w2+a2U{Le(%gLM@gzI%byj zX@y2?Kclm2$b}u##L}*1vrL&{rb;7_mOzJsA5o+g!`+7Ai8ij>>5wDgPu6w^A-SdT z7bZ!iv(z(#1|zYMH5fOo+qD2_9AHp#Mu3ay(!JfnJjg!YKtR$@(~Y@e#CChObx0Ky z8gk(PXALkv`BBuB@bfZBg1R<8kvDR>_v227)gkl2rj=$!thE7>wp0~MwqHnj-&jPHa4}ofow= zv#8YoB5i`mNnR^~%aG`%VY`MMs|!%wHmro>YYt*f zk)XDFC@tq+D5Ffiopd>^Viw9d3CK{z3YbGiu%W-^!BCke12Yi{)AeKduCAb1K92j=g82p(4k3n-DUhz*Z3Xp zl}#+cN4I#jTz^z2_O{jC#Qw-uir%zDn6!Bs3X>`ZpM0wC=F0R+XuO3S zlNL0)@1*ow9DT$o64^xlvJ$ukeaZex7?hb&QY74*n?f|1dRC^Z00>D3ThWc}?kk(_ ziuYHX23hFOKa{a@#?lEMWeuYra(CZOq%8SMj<81M#pnG6=2mem2@ z(nj9uD|Zd5^E6jUh!pZ+iBIdT#7&nioAs70GGKgLGr~TzAtFG83By5v6!bFr0n$0f z!W#o86%!Pr3!-v`NP&l1rks9OZ{5(76*y?iX9BK^j<(PbPn(mhSQa?oY$ZT^lY~mn z2O2+q<59L`6^ag%fPju-pYco}#SWu%Ia?(QX`r| zKM>G2g)0^<0RRe1iRgYVohhBInNTCZqs9yxjwm3dio_>YM7JAG!cxDWK~)F4Sy8XA zaG7{%26bwchC07OUN%PB;-S^Z4-xfbK+Wfe(acH!hU^59i%$Y;QQX&Tjpjq=WIGWR zKFgzc;N9EtW!#|N46}Hs7yqJDW(H@xG6CULMO<3CP<7Jq7FL{^UvI*Q%Rz$h1xbw7|q?0&eejJ`wLUYr7O~PCs@RAzCY?D=)5DJ zfVGfj~XKu|1rax??B9`8~l8^QDvV~VL@`w zFYwU#5hsyp@&OGX2Ny$>lP|4{Gn!J8 zw6zWi$t*Tw7F{!=Sqkgn8$-vA!wfHU6Jq!SA)`-q$1ydoQOsU*^X~X5j7D7Jc%Q2j zR8MRdnkH|K1(d)K&%Z9@U@Pd944*pV?)OZners#@`1~Ff)FdcGtgoDD&L2H5e_q+2 z7I2hBdY_YAOFb;-8ft}i~6N+Fnd{g8zs14VYtly+e-&HQsrhkR4$UweJ$Ty zR%JSEET`p+uxOC=Y7Ac876+E=6E=#vSvwBQ|Do)C;N>W)ME}!0J(IqZA-Csd5-t#+ zX1Iw%j4&aIL}in@!z5f{)}4f0WLY#r%=*jv{JBy71W`%NFo}~8;SwW8R$*XKvJp*G zRMxC8V001l2rBCO2NIEe&t2J&w;>Bc%)IaExdC?H@AvWdtK?31SDiX_>YP)js;lc% z4c*SihlD9hsv$G>`Tz8NC&R{mKR-~fj{U$kGdJ7I2JOT7yJ$R4yn=6=Z=K{Zj7iv^VaWkKg{N0Nj2LYbhn1t-gNqSl&-~}x) zj}%%JNu4$Q3#ZPK!0k?1lZmd2MuW~&6I>vZ?dEicNo|ozd5K&a6hGVeMJ`zsRyR1) zVW9NM?>d*hEC_Puax7fho?=XD@aj@=leBqz&7+^*;||`FXd$5QfR*(HD@bQ5K~g796o9J4*oMegcgTGdwS zr>e`dzcKfB=Ch2MVuW z>B9pvFIj%>>KmSZ>kSL8d+?6q@1FjFNyna@bkE(76sK+an}7bs<17E7|7Y)Bd;P`J zKJ@OZ-gf;tU!H&MoB!MMzdgS54?p|*4?e%}&L`!JJKy<{XJ0vf{K=o6yZ)&U|6$?I zSDxCp_2~QF{^Q^O>ZY%Jy&g_&eSBi)g-`z7Pj{Y`*>%sIlcwHs)0;nV+kf17^0oW^ z{rK+>-SpuXfAG6EocXn%-GAWc-}urU*S+h4pMU@CFaFIpr+q4%a_F(^4_*I({*Q33 z!@6((;Q0r>dGfa(y5q&KeR}6lzr5q2Uw!Uxet+#RKK#1}Zvn%?A3H6s*lbp0?)u&Rh0U#PAK&mVFT8ML`^R7U!mnMk;TrXi z*MIF2uHO9kr~Wnl^{w@ffBI9uYm9Ahsrn1)@P)0LZu{w^x4v)7xxbqCrI!!9uzJC| zl|Q@lt?#?`>E~ZMuxadIxar9+%gmq7c>IcwUi-##yJsFNUUAz4FW&Ir4IlgcffxVe zl?Bh8vEa|=RFKK?nahLqH{9^@4TPtUKfU0c*B|@QZ_fGhfBd32cKV*9_x$LKSN!!Y z*M9Kjx4*TzVBMaN&N}p&bsu_u|Fjp*Jg{!h=k|X5Z=PIn^3UJZeei$2@3~{YyZZkA z|8ew^UtH5YwD{;3=REl7H{JA=&u`jvTl40`v0t6`rJvq%&KciWaOb4SxAb3d{MflK ze(Z!BuedtZ$XE!9DUvTyPA6cL> zIj#8Mr1cBmcIJZ*e*E4SZocW$U-;tF*WPjGf#b(N*nMf|4GVAC_kaIv{~3oq@X^WN zc=sdSC2v@`ZsjYF-FegWkF8(-C%1p=Tc4fsxz8mV?%8GaAO55sIHxj6H}7W&!j`@- z-;&|JsZ*EPUaMIapSJO`3^oIA)62$i=cvosW z2`0?`*UesT)29>B?>0wCyyUOhym{`We|Os@3-0gUyx^DL{Mt9a3p4*><)K|ST>tn_ z7oGZI-{HvJ)x7COPL5z5xG#@Ah9997``Bae(&neDC0XQ7V;T>q&3OasRq=bN_y^*s zt}gnNbt}7aMIy1Y`-d-Ov-jyT%6V{lgLoAZ-NW_xsfW+uD; z&+g_ll>PhLu1ZWcyL4ZnaP+(B%`4xzbYGm|v~K^LtRAPv`f*`6FGhL-ZRh4+$k9+ z&!7AJb3Q2tJ3ZeoZpXu%g?fX5YC{_hLSMKKfFVARV!QQ#xhxsOxkTuW3lPS-qrQn3C?v< znZ*4VcW5Cp*|~G)7crIlHH}l*R3@xg?w*jzo;LBEB6L{7wCT>-$TQZhXEAU&IoTtluZ>8J7u^Arlr{ zv!0hV@|1k~_bTDDab{$KKjY}=`RAW`rpiRuN_T--J}wi~W~Tx^H|sYCeFpXI`20m< z;>__+PbMdx=bRPS7{8AbF}>@#vtD{sU$;25CE**5gRvU^h_AuUo$8AQ*eg4Q#lm7t zL3yb(v7R}xkG168{?X+ur$3g7W%6Oisjv;$nN8R0I_xzxR?(JFl6j-{M{{7E0FhC}{l3H=UCKHy7 zuRmPnRw+&0 z$~D(42Tu|rK!`gV?Zcd9{I)U3g#5J{QRAVz@Wh?^PP`_QilQUn%Ro5G%%@vMCYN_h zylN5m|5GM=o_)3_6WYk(SjCk#id32Stnxp`47S*pU*@bEqPr|9$98oTL_>e)IChNg( z43hw{OrCiLorJr;IqTe6ugSz(${i1{mq~29_Gm({ohaAl94?iXFaOQKw@r*~*X2?Q zEQp z#ppzN72(W6;>o8k>x5o;F`hU+_5~!p=My-7RXU5be&BN}$rIBuPLujGmh;pF+@I-P zRmTkWx>p9*Lhm`oIWP=-T=)Ns2ioH)c$(+n2nA_=EoY$2D`@mzd^pFSwZR4oXCSN+ zouIjwuUEcNp1@mpK7NHxd_0*R6{kG*)%TBU19U5kq`@00Xrwzy^hoHYMn@reL16XU(T!f@G!#Sn5)^Y^1oim z?nlu$&*2r%>QBivPIWoeT67=5R?;(X zd0Tq@Lb@)D-ocJSjqYD3iAu8Ylb?+4Q#!lP?BB)fB35l}sX~L@b8NH}U_%~lF}Tve zxp0ZZ`k0RRdHko*82%2Uu5Qb|K9>7G+Lz<~#8@L9SpmLB=J8vYv#*P%n(k466B;Lc z?;BkePGXv zN=1*3ahZsk7XteTbl>(iMWH@*w)UKx7t@y9a3fB%^y-R|y(#$^KO$b=wrq@#r>dMyc=ym0>c7hObcRTVnR zmQ6{vT4;ST!EjmOwVq$o&h3Bg?IM%oKJ7$hvTq-5!AFiBEiGhp1WdA-u3Nx~+ADJ*(n)6ya>AotHeH5dkEJhh=9p2zU*|Ie}6Gs`T zw<%=K$jInuPbL@iWP+R+ccmbc5-01(Fb>EhzIND}prUurbdX5}nXK%u5YZ|f=mE&+ ziFQJP|0nNHv=bfa#0XFP{1KV36UQ!XC#}|KobRTa=E2=(j;!mtTkwLVD$0e!K>TN! z=ng1KMNcNN;pk+uJ=@ijiIVG-6^i$8r(0O3bgN8sh}z$;wyP%-q&O}UwO#C;v5*`p z6V4(9L2SGBcPIAG*|jj1z}4$slgSC&1*hT~t4z=qMwdHd+oh4nL@#r!r4F&}DydBR zGnoW}oce*DOuqJi%A_-TSY@*BnGUv#QS!O#7sfI<_S7*&*y+gx_uH5MUu4n%3VN(U zzb^a{nH)m{d$y}5lRbM>CWr8Kz9p8)AFh#WvUr+imn~Y9$;9s{)EPZqY;`hnQ(BuR z3qsO7@_g&~m9q(#GMN^9rT3irUtubS_kAwD$cgh3KR*uto!<4tIg79Je_W#ZX8f;l zIB)zq?!$*aWI5FG@h#MAaAZ9F@6$GZ9`{8IW~a-F=T+ZBleSRd1%F4~x5jz$)M?3o zf{A@9dwFP3>hDN0{)N)J0&l6xt7lZ6@VN|3x=i6-U_!u2S2)M>Y*t`!#Xqr!CqI52 z_fym}DdVqONpr<8v0h@`vv=62j$KTnYXK zy{r28t#;yW{1=|-a1)QtP}dHOT-`89?OXMCbi^;^O8&$@_446|Sd8QG-2+-;|3|Kq zM|#hKFQ3MrINMNt{MPWOzJ)ceC;TSW|8cR#Ki7j--$5Q@pFzFq*@qR&^>Mzo-F2_= zdJgLv6#^T3V)N6xh(-IT&;!#gHZ?S0HYju$&z$-oD`NZ(t=2?9>3CaU5LGYN9 znzeieEDFD(UtyMV=ZG8OE0}E@M3fqkFfsaTB>vXeCCsJ$0&n}L)3>fsz z0>D33d6X4W1JA{!6jla_l0{6#xBF_g!orCTsn#-^NA8;CL6iBXxOGEn4VJ$ee*(PK zD+Ah-?{#fHZH94*v-&SEz9os0_!|lIPCtJ7e2KSGwl$5wkr3>zC3Y|CV|d!j$h{K= z#*)UODJOm>?O0MM6$rwBj)>DQH%0C%@PU-aM4v2^@%$=#w4{#0mVJs_Dj(oC0Bt2z zp?XfN8xhtFi-Qttjcqw{ghqxecvvvOCj-xrKYlUf#(GAbSZdS*r69uSk5qg<`yfX zMx*&7RtZgMtRVt-7oe+AQ1&RV3XIhxPs)b%D14D(4LtABI*CaGh=#KXYRU$0dEaLt zLFD-)lTwqE-xDU8{XCWJRY!coq?VN!DUvq6N7*c|C5~E@{Rt^>dnL=SM)>W!(MiV_ zLmr&vBaAea9)gwTfC0>xL13*o;v97#K(lkC>wO&0Yab9A03~Kb03@r^s0M#^?rsXF z==e2+L`xK;#uo_`E(lzM7pHM_p(aba&Li)2ZJuJpid;j`y9jtX6>CYer~MEI)Yym7 z^$E4WNN6&!CYFKY+f)>=R$ev}$;VP@kFmx0m=@SZB;z$BEpJQ!{cP3mV$o4s%UJnQ zYBVMTt_`W|o9|N<$RH3P6N1$YV(0^$P#F7Lc_jyfKbrk_9p? z_fmm6M(07}wQ3T(3|D}hp*ob}@x-D9u*5wi`tbx1RszeV7utZC^SD1ts|M-hR2k=u zmM!|rA{R16-gLp+BqmE!R2G(0r8SGESLC6F+@H!?`kV0AKw0zy9siqJ1$+{@@6}u! z@q9~EB!5mr9JQ4SBV zPU9`jp9^a&;;=|@C5@p(j~{Bq%C-Q}{}8%kN%)=;)W;u-+*pPXm%(o?7Kz3)YVf>a zm73kwjQ-RHJZl*$XFc9bYtXmJqfS0ONfb7g6BX;2c-Rp%CM^cSqC~q_q8O!01IJ1* zn}dboUX_wM)VL*(Qx{%JohrwQ&~pCTUJ^0R!0Ch?6pm{{AXy_0!6+6X4T2y>sVV!L z#dAd#S2rE~H?*V^M*hXK5M+!26#5Dgz^Zmt(oZ$`WlI#{3W?E!bKI)!djR@~*FE?{Izdz3n{a(7*4cDpprN~y z4k(;$(m^OmzBU_|2$~zjY0+M%V;Uk>W$3Kc64>RvAu~tHVyw!5R^?O^>=@aD6*Pw| zvG*sjFUnrB4fA9hA7BQagRC=f5y-o z8DzhDn;Q;;El`3HM0kCm+eWbubN_wWPX5r{=$Iq=Dg5woh+^~r)m5U3HO^!4cO?Ce zA1uq0AFmn*9&6LvJja*uDQIWJvXtPIA<#&^lhv6FZLK2hMdGfH{Njj+k#IG6gOkL! z&JXgLd6pW7vO98Po17G!n;uo9S#1RyB;!1ywfpJ|ni7CRYC&bg#r3=DVUFhD(Dca9+j#CYuPW!J#+Gsz zd%!qDyBVp8gM11``e8Qbtr&$?2Tdw$RE4W^Kx$XVVbb6du_$xYSrnMnh&~wg2b)xKjT$c<18kxsnpvuW%xY0YKS}>h7#R_?2Y!B zoiGf;du8Q0R?8S12p6bsO7GsALX)5RXWw-YS5w*kxE8a)m&mo4o6> zBmWL-+id0UXa+8OSxPoifdWck0Slw)GSC>q)bvSyqYMVtau=_wvtp3F4A>z~GXRhV zgpN5X>uUi#8c?(vz0nI!v@8=J5qpoX9Y9-xk-*6q(`cMg5U^e)9AF7+A;^dH6+w;T zDU7cuCHyOvGf8%21`9ELw~8fKX=w!TJuqe%fHvBc$G#83CJIGvBRFPCp4^<561eFm zpr+6weg7EQjRH6P#X-H5ysHsSH7lBhO<5UnX}7VliC(eM2-_CQ&)({za_QWdL=9iI z>i&2^w!YO_P8ngHtgH&~L_!_RZ-ZYA)#hCV8H3;1PWav?>hMXB4L9{eCRiwTAd$fHM+#Cd z&zHPq$+C0Ck#l4yqYA>JD;_jLCUcI3U!jb}MX%@_HmRXIokW3{lhWG4GkKue$;{xY zKI8nLkkedVRQ;?3WAf|a^aTbW=x2fw+PRu0N=Iu66wpfagq1UD@h1=QE!Lr46`y#5 zuA%dBKFc8pQ}ocOw(=o#cCm;51f^iqawan@E-53Apire@_gIFpb(=AwVt6eikSQt& z*_*wFc&2KSRat{>$QH08+76r4P#8LG@KLgIxp-Q|rCIy)s8#xE@nCTr( z8e@f8Vk`*9%992gJsU8Ba)Th@wHsk7zeP)cGpy&8nc(!ZaEoFmzJ+6%FtEmu?pb~& ziEqcMSXM$OF%ukq-N;>#V!&Xf;d9B#g;bS0@$KEbrJaovku&0Vh{_wMB?Z_9$(dq1 z?U|Fj&Z_C<^pa-9NV(Duf~8UB6shi*Z5I2!eCmp%$t7gl5;+OxxTr3=T|pDCH^iYu zh@MyudgmOQoz4jIZbcPpi=l-bVsn8RQH6}8I(z7`=4Gad{FaUVyIhII`95p&PT_RH zF(h8TtGo)Q6tuz6m-7uvPP$Kq#sqdGOwlI&O15V6exZUd9WyUqKwS8iqk z1`9Tsdm!hgZw$@JneAHYG%w>t1mOQ7|B=6P;=};T4fLo8?RcHshuKR zm!ZsXJ_u4(ZSZ;V3@RZm;3$WSEuC}{HAEKM#L(TJE}vh4fKAk%QlMyhtwr|XvD`BB zHh0lRmM^h_dTFw^V9~u8^xg@U2?>)N3Fo$cgn%B&N120p*@|9;RRqQ0q9s#s_`^au z?QZAC3n9G5$aG&0x-r)(w`)>ML{a)Z8*cne^l0`*V~VU<2l+rDS{nu%(5ualQO{sW z=qS2vEQf2rhB5uzhSrHqWGT63u${&&T|$?4lehCOY)8qS>8Tq*K($T1Cfv9aZ7 zB&s2YqV>FGFllPvMS)lH%l@_}jB|NjH51rV$1$jX8AzwKENotWcMiAZ%$O&O!{Ul) zNhRNa4lgoA3cnG;TIJAgh7N)+wPJO+%-8_tIx6AMNV90elC)+iF?Tma!t?OUawGCr zZTkQNlA_5M^B9NE`6C@2s=p;k7o*~Fl3YxC49~JtMgq_0bu2f58HY-PrJ+uom7vX8 zhNzqi0I$UV$tHOT2Xf-*f0Q|`yUSjKF3g8e)g7i}WI__cqEa9=O!V1R8RolJl#DX% z?OsRHtIOg}ZoIP9hK~+8T8yRaN0I|UFdS@ICQ~k)WPfB4jyGiA+we-3w+sg8q4l>0 zV-RWWls*@F+Ds(zi(raen1oq#C9q~nAj^Ud=4~hE_pY{*xp*Vz2K%?-?PTD zWar-%6iywUG*vRbmypf4r5YdmWxwo8hu7)F1CI*h8auogEFhzj6^{-6(f7PpVbJGC z;a*f~YQTz|iWRd)tAsX(Grj0ZaWnn9aFN+86CDgF_EinseuKSx5~8g(1I?)?Sbuy z6wseyf17XlhREQDEHtoDgPwI2Z3l|n$lV5|88m*Y*zj9SyR?1BcudaoJZxX5d9ck3 zV|t>&`Oc^91t_UYZ{3NsAVJv!i+AimNYZu*Cufy>dm$Cg7a-j+>W(B+-vYG35j=(u zGDSJv$ut=6hUttqSUpp)C_#98BRprgb>8lsKCj04!8P@pFd)T&g1t-7AQ=$VUK)Am z9y8~aU|*AiFh_FpvEIC#h!~^#2pDWNDbL47IEqA7OxTp6z4*x}-#lXcz|dWYHDQfq z%JjtQtti1zC?k~6=LVY=2Z*3%X8I;vq73t$j8Xee>UI`@lxGG8(?lJm`Ud(WTQ;OJ zz}}cvzIemD+AQJ?w@^}@9p-#CPZ+r4mq+)dG)(>^L=;>r2u=yJ!&!&y6EFlL0jn~c z!0AP9xlA(CR?n9 zASeZJ#FGmhKT zwsLvcc6447s!`79FdHrOsYPMCtKHOa6ytkqjQ6Nt8Spz_rOsiC+6ET3ThL-D`LTmu z(01q+^F)Ev8A!y8QGg6%3zY_UI-`wtA~as-9#9&oP@kvMNk8lt!=wDvr*S3~nmTVs z_m~{nIT_dFu(BNvXz^?6o}olR8N5`nXvGYLSdie?(FP(N>(9XFY&DqeX$e!m88Frs zimJQFo0e~z`|Jqa-&`>tvcqhOqgoC^4d`>VjYnF>56Z)7;}|nKWvdZ~s8OAuPyoyf z%_6Pfl&?)gf$)L__+d5=S;`eOoM3tMeA=)K>EstJgE~=zU~CNQDKiYU$1TGc8(a*4 zmnhPG$YrH!ZY@@2!tFO2t6MErtcQBjsM${`z}FY^)knwZ#Fq^^*C2A)zFabQ4(YcEx0zvMm^1J+eb)Gt1@V5v`h5 z2le82V95SbtBP0p?h5<0kQ8O1TKymEz<6!yYNE25Badj2i;2{(oJ9R^Se-|#i^@@9 zh>kHG;#kji7m6duOJ&kRN zhKWJN-=qU2+3O7JFIqy88aSW~nt`|Rqh{8|ITLER%t9aHVB%jJldd`S&r_?yEvyAY z9K~+Cp_##hb3x>sjau-=Il4_uGrZuBVLUej5T@)>J1OJBy@ zN=}@COzR^9+O)Rd9x^A^!g6N)u=*k9-KbbJz<+UiAIV;zeMKIpV9&%^e*73tf3QQO zYUvtBf&7vu@a#;!uD5rJza$m-D0gB66h4Ny)yvE;`=}VeHG?Ie5-4S2dYuFsNl2xz zB8s@hgQugs_*ukQ##N+m=T9FC;FJM z7`1Z_$x#J`N(LS7gn9&C-iYH4!osXW9zITXeFFKf1@(>#98rp!0RIi;^PeuCzc|wA z)9V7@4JY1^dD54kM8U+X89w|IB{KIUXm25IjR3W!V*FWGn5d!O8vB&=unI<#DzfTgwO}TJ>*q9%zHNmr6480#8hTz$@I$08vX_tNl!&5C*X&j{}8#Mpd71V?=*95-mx#3A{rNypDvLiK7{4;Lc zIyaN-^9Bd^7VU*4t*3%6x2arU8`0#9zdQK5Tz-{ozJjE)gE!wj)?V~;8-<-DqhA!E z5)Sz=pL)IPykf_1-bkZ!^i=v0d*A38i8=gEr6*;v*Af);*y-BD;`T28y@r$ zA4-+_uAmcXKcUzt#>phNBxs6^8QJ!zUyXMA-(%djW!dJ??)AfMSu@<;4E=pW8O`9= zP1?8IRhhRoWm9I9`He}u40xr1E$JfXMdvD<8(%CJ7>v*Ft8I>JQ?=N1SIYTO%HGcx zCNpAYa^&}YPyqR8@-f?=*HM=@19vBXwghwhnlIjrGK8Zae(CT zY6)K$NWDL5^qm!*XE-HQ&JwX<&D5KIq73gg6guL{40N|M|9h(OBL8L?p1}vJpwPl9 z0KqIc<2IiW46jiPFMQ`E0*SsJ&3sdk&cD2Q;^t&Ee|dV-IWr5(hlX-8b2IIkSSGV%tDc|+%lWU?`h&iQFx$WF7ADDIMy0;&ldHvU4x$r0R zyKg=4tqaaM_K}+p9Y1tK@#`P{^-p$h-t_5B{X>&(Ie)4Q+_*aJUwvt@dg*DkQt6Uw zzc)B(!GmYW)K4U@I&#O;A1+NfYeA(Dt-s;&84o_b`J)q`x%tDD(JQ83{@d$QYutjX zC!Klo6W{pn@A<&{ufE|&$3A}Bv8nyv{q&u`{OU*VSpVnW{=?Hp|8U?he&6{@a^Jz* z-gwzh*S~kg`b+{IB-}O^heECanT7UnS|Mgej ze0s~uTYmP{#g{BtckICN>(A*9KE3Dp8{RtaR}X#Z>+cDp>#tk$p(CI04_rDkNFAMV z{P^FjTbK>Ee`~>cm(R$qop9%h3*S5cyu^F|F=Tx{XQ635hq{ zcH8E}CvWzidgz7Y=iboWbNtTk@jv<4E5BTD=fWEnTzby?r@r<2oeR=$Jty_x(~qCI z=Gt?+5B{#x_J^75~Cq%Zo?xepzB^2o=!@BR6fqu-s7 zc;^gn$-d*)E?K+guY_szufG4cU;XCCPoH(?zy9*Tw)21drGefy4Y z?EUsHKC$bTZ!UP>LoaoI`;p_9rvCbu2OjGF`<@H_;+uaLy~j4Mo4@9~d$-;8%}Zwt z1poY@W0(KphHI+nm+pA$d1su{SN-IdYl{{PrcS!{Kem{6&baC38MigDU44FX8>6FS z;%{%;xG^!gnf%qf;n|{^5;BYrwK2sjCY|2B8Yc8l;7|?;16pyVBKF_9qe&KA_h%VLC+7h+ z$~6fNmal52ck)iH*UF)9y)2oX-6Jthk)Nd14QBm%O`}JyaB1s3CsBM$m(nH@5B2+g zza-u%^dM1mDXkqf1$1mu2z;F?s*zcxRmqq*5Oq%N2*)e*=#Ul&cgP79oGNr z&OJ9#i5J;2CZo7@oo;{s`tG`Q>(>#Wl(+-k{c%eCz@dBKUXN2!Cq8pc@Zi%_?3U)H zYI^O+&*EC_?;d(yvuRm`l3@+6di3=|ARNWBCtK-0weU<9+NLi#lI$Ki>Rg*)#M;CB zQc_%R1&0?RS6%hcEj^iVMw6kA)sWw#J(=*{5Qn(r-tCFs3AaqRrN3KQ%CkWx@^9Vl z8&oEzoyG}-^VBPo(;0Uq66rLR>eo{XE69YyBj54z%j6kdzg|fpb6O8N>MdsuY_~#D zX)VsROFL!f;iHvxU1YLyH1W<3u~BrWa7_utvAX_vTqb}kpL}2AS{-EUj zSD75r;<9{E@)4Vay?>zMxd^X8<_fE!2N0M^nsKW2u+4J?(y~H@I zhj)s@M>M{B6+ULHz|WrE-QR9&jE1A%O`%zV#j&sdxoH1I`}^@ZWW7`ine_kj z%I+H~>q-kxI}MMAc?(%*uQIvh67_}S7^xF7ffGCNB`lSYiPnv23|-R>6YlR`;6>dW zDvV5U+B+P}1d80DHArwEDMR8tz(kdZ6l}TF9zv;yIDZHa=%>QGh0m!+Wg7>E;51Q{rew!C~nef z3z12u0}&muYJHSh$b{yt{OQ}?zl+kka|+n5U7QCx1DO!7r>E_9;Ot_%jv2y{10{09 zcx)Go+!cmYWF6yyM=FzkT*a|n$Rw>TdKW(@AbT=7Kw8gs;lX)UkDrI}b3`T*%S6%2 zu3Z+Hbl2hgqbJL%?YcxydecBVr-qm-&Tpjk_9Elop5Nf=-Wi1IAIK~c(%~FNFUsTN zmusaf;rAH-t1*>f9n)#3@>Q0p3-oilJ~9M8Pp_m8@(#ZE;%4kaIQ7J{=F|A`=Q8lV z;haVF_2W9AntK4= zQEtE_pD6E?H&llu2pXbZUATeACaA!>aXOR-Q;DW73a?+1Liu2`KA&fQ+?Q|MZxKJl zwHq&=_R)!p*Ytev^kuUr6LB#;A{#H$;@A&W^T+u>I`xD0HUC6CzwtWq6Tdj3Jg)xu z8HkGqduJDxuj=^(o^h4rHUThg+-H#Tls;+^`xvTUq&t=N!ugE7_$x~~X{(bqgFn79 zj#EFyo)4tv@t9iG=kc;xT^nOKj(F>?Sb<*{V>S(VW5w<1$ewPm&+P`_m$)DA z<JgUQ#X@YwhTLOAKTx3C>}t`9Go|C$?JZGKE7Ig?6KZiwsU&t#8EZQil*+P z&qjdb<<>u1Rjh~vuQrv*qsW|L0jDQh8;@btZoev%j2wQ6Cw34xA(O7kr2C&_a-=7d zdGnI?E)&ph)ILVuTiB~&I1f46Y5tM5R|{qNUC$&6(Xlr=V}=a%4|W-(qT@jHvPOx?7Fuj>R$&ho2lt@ctqA z4xi`5e)Z@WeZ0nVv>bu7IB5MjA$^a;GTAfdgiIIh{OMu!i-sHoDJ?o-r*b|UlUX+*EJysn*8 zRF`$XiZkE%+&;ZZwcEd+c9PA`k(CGh<^FPXtUqoi{m-APMD5wlkh_x2UK860YD_tt znn*3@FkXy(1c_3aDDF~+_4A5X|Hi|*!@ZkM@6x?JmPtmIDW~B5cfNy3BCRJA8U(V5 zqHceQ_boi5cdqX`RwX>A(CB3M*@zdBZr4ln#%kBV0XZM_LR@!5!Aef3H{%b3HHhiO4yQCMGb zT9!1Zzu^+wBu!xyr|G4e4e7Vrw0J|~eu?-k4x`jwbZh!T0KMSb=$>mHX+d=D-W`!zbAse7n+$Ne2&^~D_L1$f_Xg-^w|Dt_ms zK6S4V?2Z2`t{QgSYieA4u50v)@18!ZAERDl-@o{I9RBB^z-WvJi^7Kmias1N?Z({gZwH_PCuUFvI$I#=~vkW2g z_#*N)%knWfb-jN;k?tk$umc>|+mttP&peu+-g-(V`|alMIjrD?nlnqOOszrD_N zye^KL9rqR&x4G)sl8(>uhejgE9cW-UKMT=YsUEJ?jvu_hBZ;z)D+i(@N1YjDyQchDNWk5jm_ z6h-xo9U%rp)*0gTUmTd}?nwN(P0I*1mhbJaMgUi+$w8pY{ON~V$CsM6uW)2A4ro>m z@ucCD2V4t)UfIqvGj2uYX2qr|tVb|0ARAV9hyqoMH3inTz*YmN(8GOuZ-3NZTO#l=~%K1gB@L!+rG z4)9P_kdf81`dCoSH!0)S;^eHR#bs&^7H;y{gs3>2{9z!m0eqgEpzqRRu}2C1NcFrK zq)BoLDn#GdGFD_RWm^!HYur$%(rdWrZ;2NgAN~d~SV^Q|i=A%Bu$m_; zzI6hSGFtyJCO9$EMY6^a#fLP;%XFpIQaLM{g`m*lJFE8^90MHUd~Rt4e7q;d`Hm-? z9#Dq|$gD+*6gi%UYoIfA7JVKg&he*#H!!5?e9L_XCUc3uCHjHhIW5swBT97Q=3 z#wbxsb!i!a5vnsl_)SVDA3y9D>f0EXV>yl4YJ7FMWtx5|xaE(|c~A zR7n(sp%2v3S6rSox>7^L=?{TRTn4v#9Z))BSplNtp#%D9mT_2Y5Y)dfM~Xp3(@kLy zVPLAH8~zA@g0UCIUcIB{ap_i5v&b$ECjK4MU#tzEWsS7OxR~W^C>+UdC{hiCdB%ZE zWeOF2P>KW$6f1pND8kxCloseTMs-3VR2B`uvy$PCPso&Ww*vSPTB}ke%QA6R6U6^b zsW8nbo*)R}(~v>};p$p}$@by@LMnr=UL^Fd$r$ZkmA`qJ65fv0f-xiR2uQ-$pdXT6bCai zYD14tAC=NFbvn#h>nnkN!f~>qe#tfz$XW*fY8r1_;>BDh%6|>sVf3ZhYJ@b2vEG^u zZS76x>SJu-%tr49+Wd~8go5I4aim*DoCCdwZJ5NW1F6Nb->5A!4?xDzI7EvC$fX1J zTqjoXAS~qO%_Uxa9EMnPx2zmg*z%oWK%Hf|URu2ibq(1-(a>MOCwhp{ z(_@8BRO^D^qS90V$U!jH^6TP4nP-aaI!qDC7E~RK7#!QNAxWT=IO<>+2#Z{e|Cd}A zS&YWe*78q%Wm>+6%RQ1RBt{>b&EnH7C4)xb23~S+Z$QTPBIjVfRKm< zPIgG_nB=yJ3~RMD3v1X|2It&Td?v+ujg#(?Cwx0haS&w{U|2R*r)RALeS+A%Ct0R- zJP$7^fV@E0%`o@OAfObt4?CiCfVZkfdYDoIvi2>uoE__;HaTTRQy#U>&r?Jc$VvO4 z@02Lx-$P+elAYwBES*l5P~U+5Zc!bsPvINBw<+(5sRe^|zvc?`Byf?{lfz?TpuAOy z%Iywuh7!@zbltLy)1jq}q+to`ELIQII|$!l@~WFyitmQ*dP3ZmhSHa71|4?RwiU^Y zbvBA^I<0%wZRm@@jRUCLBqE=bCIy6%&wZ-gM)vhw&`{R8+@?@g(`2zKaF$Su>WnYy zD7_Ym$63H`&Zvtxs%@EI!x2%^+ov$ZP=K;3@q1lO7T;E*Xi(f*ZeYXo&dRMLeXC~% zV{J=z38sUuT7^~VF>knDbwgkPci)h0dN>Z4K=WZsQeh$Q$n8ipv_rB%+&!N0$7pX< zWEJc{iYP~rHx@n7P>uS=e2H!yi&_=gz_A)FjCE3)AQ6Nfu_ja}2*aZIoB}*%+Z$v6 zHT7o((gwXJ&b3Snj@5$Ue9NmrXArQ;L~_G;rR23l%M`gFBea8-k&W(Y4bwM7UX5Re zW9_oA4KZaqtX)eW(gv$!uS7j7zT0f6T#&Nu%QiM4S8Wgrs~dqD&s26v^aaPZ{$!w} z6;R}-orv$IRD4KkIcAc@r^fzrWf}CAwblVWHARU(;sq?=N3SBWQ)MKHGc(B|tH6X# z)BXmdMmE~uHT5i+>M*q^8us8?CHY*r8j6kjaEiq5F|zH(av5SwM)h_73dk(fjBn+X zMoosz0Lno^EdVVl5O`Czicr?zwX8qQ2VQ7$cR{6_DRsQpPYD}xYGaCQmEn3J+Au}R zzVBLh4-LsiS!EZGIEcx%K0hNx$LH{TEcnBISP5D5H3Q+hfxNdG#Z0%ii_}MqR>k?Y zF6Elmi480QDC5W$SA_l6vcwIu6Q$8ViG!mj*C7DwGwCPHl@(&WrVbdrGON#BQc@yU z=Ca|4$D05Al26$pHR0e+#9QO|7Om+)hV{bc75QY4BRlKkA)-vLsgM#FGe#_c#M{CgycCB&*EA6B6T1FLKzY&kVzlEZ?W_r+TxPT#j=4#XNUJ?4Eb6th&@3Rvk}ZScwKRIPqK3-{K^!c2>69$WN0U zT3oP$z; zEDj2sgGX(K7?BIa%8y(sE~3IO5cEw&f2cIen6T(T1RBszkasW)2>(@v5a&z^YS9_A z0@*8>Pc&>Wf`DW)b+CSE+Vs#QPHqQ&vHfhu;!*LJp`B~$I(8XM<3>0*;>RUb(o?oM zsy6RxJb72#RrO?xnQr|lnYp_WvJYv&!_;f8$A><#<{m5*{GN_EPsy^DXO{5Z!b(Xo z9T~}sbzY7gVI*0rXYKsqz)Ep#Fl_Of>eSH2gCdvSx;7Z1dh_2i*35YqMSxb|5r%@Yx02;>F9P7=ril~23X08Wj0GEUw(h+r^q&Q>hO>RpJAiwEXe%U zl_M=g@YZOVFGD9iifS22MPrOW>B~G>~(~Q*Sxxhf_@0 z9>6Oo76$kX7wmc?@81_Kon^~1u-u^sg?uX^j0!iwlhi;XQi(#zIzV>Xz^WwrE@0De82Pwy^?dL)_|oh$o)zBxMon3MBvbZ6EScH+W9%a5Cr3)BdVZyYmHWU1 zD?^_DmoozFwzj|F9fQ6d>DV%_w<{!=XnEThWix~@5&FhejBO?@WfP{p6pmD}#y*2_ zl-y>6eDK~Ok5iKJyl+^^(C&wWsNz>#oz8|RGkg(#x>%~EpUsCu50{XvO*C0r?d9ke zqh>CCSIzlZcAGS*j@R*q5^|{vylAqMB`$EuYSd9&ebT9c?lQ0CrG^Sl zPI5*pdlwjS?6c6(m!-aXjPKq7zCG}Y-rqwm2arfYYhAcYoY+(KQa%)5WF>iQn2(xs`<~$d@WxzXi zW=RTSJ>Qq<114&_I_?Q)>42rw*zBi79=My9Y$(T_$GC{0mw#<1kkg!4bS*p&Gc!UH zxX8AHD0EG!(amACo>1#slIcMvT~UIgoacOC($Xk-N(H^9emTweip@E zCq>L1Q=ahT;qY`?RMGVfwLRmCeQrn`-E`es;jJB1fX4V1I+Ah}Gu$+m$fzVnz59j& z6pq(4qQuu90@vaNzWDZyk-(OUcbN`8;`o6O+lG*9>cW>RM1hZ~#)BbpslcTxp3}*W z=x&^aI8@9qIIx2(`Ie-SYKv@67#c{xh)MCmIMKqR0=LobyvTWN1Slnh7+3*lld58V z#Yp@`A!JPh^TH2@!m{t;=@A1P%n%CM-tnC&jNV@6#e$gEUe*xZ8&+s3T@P zIBs?2O_IuaCM#^`;<4I)8_8u(qQ0LVHOytQd5(qDOt4286d)8A+-d`v>CHlUwZAf+ zSQW1#raFW~{2TvhUMY84=NM;;f%A*LVKgC*GcI5PV`rU}8}LIL)Kr$fg&g^A*+vy3 z(QxpE%Y;#3b znOUe>2j;0-Eh+1S6yxGZf;LwM2U;^iERWvRnSe3j+#pvB=&1DsP>EJk`@jIN&~t}8 zT3cC1Q=W}ZwafC3ty7*9+(~E^eWkF^gvJH~VXGdv1`|gxdO)=-fYFV(EXWu`{$V%} zKCyyB8wV_OV5S$p;~cOC&Xc3<-7?i2$ zyi(|r@F{~Monj81uRC{P6u=|E#h#lKYLrB#Nqr}2-g?G7FAA6WRtlR)@-*k0#+)=P z>a6H#5RmCX=`xy!_+>w9G@==A>K2qC+~@caYUX3CxT*o=HL&Onc2tcXE`>Lmq9;y? zfE=k(Jh~zkeW_-L4Ox9LCLo90N$31BEs~eKK-`tmI_OK@%E?s7l4@J<-;c_$FSKl9 zWX1D_Sx-W_;S-plgHrbsMRh34L-5ih-Fy_}-Qrm?9~Fb>JV@k}-^+X}&Nz_LN?@u9 zv`X|WoWQD@9UEfDYw;BHEF5CNP-UjBRNSq|wIP1h zL+?Y3EJkbvamE_zjsG28sgx+z;Ebohh*X1z@c@lj$Tc>;nH${53+`o1)U+;he|6zk zvXZWP1_kB6XDOo(Fmmb;;Y6T}CY7YcyIyFXxDrQeb%4gIVMR+*B}u0Z933zejg^5? z9-%|)k0w|30a#jfJQP7zA`W?<#~)yg*tLAj1y=Eo|1qL?^?m>-a?&c$cy<{QRAf9D z)RjcPQZXr_PJd9z>0wt0z1N~O#tOq(E{kFV&&(VRnge~cl%*9Cgk zlKs^Hf2g@NO=2S6j~yx)F%?LFk4h=UQY3m12NVih1kw(%y-0nj^1)Ib2LTUdDw(f^ zhSESgTG0%7%STrTv~eS<1bN@YkYJ%n#JBv!R!L}eij8T#OKCrGT9$0q(jG>9nTu`} z1l^8{>u7ojU%4O#RQhSqr0E@4$fzN4qP+OYuxC`&npjs~{l;`yR)r+R24c3(+2ih1E8@B6l>QGC;;^0a#e<>zWlxiwv z8FUpXo$@g2Y-d8UVR#+Njl^meEGxm&ABr3gu6L!`6d=@L!?tF|xS8%p#^E-e%C!N^*}DogL&UO8T>R~!>8o9*4fj)B^(n^M$k zBrz0?L8zZfvnA0qCZda6&Z{oysO)FVUiT!HWk>Drq8*JO8NuQFrmFVUA!fKg^^NU6Q zGAotaEhEgk+J3z`dBxD#(bi-iqei~hjL{t+`zbY;fT5Msk*&O;Qm>G}J>t=Q^ z(Cs3EVJS{Cs%LS~>^>WNY^(=?D+Ojn-_Si-Gfx#axe&3q6Y}#_c#M$|a z=}c%&sD1CBc<%I~3^fBM%~Lb8u==Z_vg%OX1oXY0k@sj@RD&ZyolG=?+vP*B%jUwn z2W6l#^5ygccrnV*UYdYK#Ac=ms|A@o!OhQ|?FVlbF;;B8-i|JauB>c-vEjB$?J_9f zgkBlB*fTR25CvXdX9$>`RBpjH=jdfzHjp`Y2kvd*8WXwT#;WsNJGG?bWs+wjlsD}j ztTp_T{L%>CyYyn;tI9_sb5{67l3@?Xv>s@6QtGuv&<3TR{n=(TJi+>2>8$$DG&j8U z^pt03_;$cJZ*Dkrs>H9~H?qHG6a}+wIZ{b{{2i-l2d#I`w8iXDbn9&Y0(d)6lc2dF z!T0|XK5Qggp;7IiDz^?lTz&YCTi4zC=I)6zp8l(G zAKr5PE#~P5ZvB^6cb47XeqqNitL3s=TV5~aYFXC0wI4b3(+6+*#(S=ON)SS zWgppf-#3>`f9itsetTJZ>Y`&$&VKZ&YtOmjs#Tx(`aQeS@4o29uYY9!&ZVpV%~MC3&;7&Q+g85bcE<^4JUsiRk2in);`QOpPi>v>^Dpo8zVO4_v%em3<=Up( zZ{P63f!Y^7_3-I^zj*ZVH+rre1%&;0E1J1%?7TXy2K12?Sx)}d#v|K{|$ ze?EG}jX%ALDrF8||K=mtuK9~U9Dny66B2%qxcAP@Jziqmx^*A>=T!ZvZRHcbw@kKQ zGJVI>dtX|2_@tlw_Qr4g>apSHpMK`+f41Q34}JUOuYKl`v;Xk3_M1C)e&+ErCwEVo zH2maqKfL4<#nIgt-L&t9bN;Yqdhx^WK6mJ=vmZVDl?QL?zOujb@q54Ye9uo7J$v18 zlW+WhnQ_7?CyWFfN7p?uIe9(DfXLM3ZR=p%!B_wKaP!8kpV{^JH*Y%b+`nCS(@k^V z_|B0lci+FedEzzy_VK^#+Mev)Qf}XJdS&x%{`&QaP4|EEp4@jnS4+Ko=)M_Goi_f% z#iirr9n(H{<#pGMHy31P{&A3?pLpY#MXVJLep>SVBS)@3vUK&2zIEFhS9D!*!PUF& z-Zj}jVe-ruzkkovg*}<;U%%=T<5z#Ad-zvhIh>x^{`ob3d;YtgI)CNCgOBVwGV974 zcOBgG;Nc@5d*;NCUbg!i%a*QMc4g^Z8*Y9_;&aok>Am?2=~Ey2b#HWY%^QEqhSjU- zCo{%1U)uF#^P)d{?Gtx>>y@D|jlXxt*T3KU?ki6F!jvM8FWp`Uos#EF%5srbj=bK8B$u62L7{WsUY`4|6m|NirKeg6BqpZe)*!#{a?=}kB7 z{>i@`p1J0gpZ#Fdg4)-%bZkZ=e!cU9YCI@)qP;qdmgHRiT>Wmk8>;N+aJo>nC_DN4 z4-P5Ob^+nzG*0J3$B-7=IPMBcBoMV^)VX1O9~$AnL;Dix!EfjG(LQF(M*2|ErZuIC zXw5(L&?`;ujO*;;HbB9u5{1)V)z|EkdR@z&i*7eokp(SDK__J2Xz$sK?pB1s#S|yMv66SmOX!{d8n8QUVM?*=3y*;_HFNbrMdmbKPEg( zvZg%0Mhh9UV8oM<1jV4~uXahz=JWd#JJ9l;i+`@t3Rl#4(!~yIDD{E2i^E+qN?PRn zwau6GksA6Kk09vld-f1Dl{01k#WBTV?O%ZlktP>4I#3PuCMvK%?=tncpicRGpRQnr zz>q(6qfi;Q42mf}$0c^OXx8EhD!`q@^!7<%jn0ykQt+gXho+;n$tq8X=qu=LKKo*x z=#77Rk6%g{YT*g%`Z1n3tsBbEQG+&sMFu<>B|AK6o_*}G@C2AzilI3)o4=jG`28)S zn%|$u8-FxzN7P3#)%){0*Pvrx1Sgc+lqW|Xt36MZ(LZnTMAJd^IJq(fR7abgiB4$z z$}0!gw0MFw0zA=sZ-y|vQpj)dg!GA1JGE76X>Yj}PxdvNFJYdcJkfUz?C6TzZ008C|Wx&-aZo>f*E;s2k(SnoFom*JG-y-RfCt zUjU|kL-3??ZeO#oMpI*j*l6{W=2;q40Pl(K{Q&{2E2vI$-}hslK)>lc&ni#i zJanhWYWT6X7~Myci*4iprmtfc^MppGJkjXgyg2-Z^5l7VLLTDUsK45a?1y)KeKzJv zdK#X20BSBx#)*`wNYvEp#(fhbj~FQxI)mkW!G5=Y+!nOYw#p)SLn(kyX0DUa_}Is z3k``bnV_=k|KQ0mvMW}aALV99h?f{`ZvWWu+dO##>*yf}^vjd@?#rTKfAe=NMvpq` zqcp(c0r_*VCA;FPK~c4Z+DAVe-PZ)Wp<&Uwws_*+sxh+bC{H|Y9X;Al$b+LtySI3v z9hV!JlqbrHmg}O?s!w@BEo^g$3L?9%ZPpIa`if`56DUU!t$#;lSD|&^VK?hhZDHL5 z5^+kMWCx@-{a>Ccg8VeCP%_HD2u;b^5MbIx=vy z91YVAgR$~Xp}bj?_aC2W%|DhtC`h_y)Fv@5-zdB}OtbZ=_LJb${<6MPm}7M!Z_h{L zJgqunXBgWP1}&V}2j$*I-gkpL`Tby}=8rOysRCi%M{!-@^-|K-j>Hs_V5h`g3f-zseKbS1$)#bS-VrdESSu|1<2iBc~Yi@s~BwRh)(U<)b^ znx4(N*1d{q6G-wxkF@i#Nbg;&&6$Bs-wjdg8Hw({>s^TM*lF1Qakt`St#mOQy~}XU zm`xzX(aI(DlU5z1(6W8hye(MQfV<*!O$%nag_EX>Z7%(5s_Q8u*m5mTXfa<}Hj-(j z1zS+89@clq2VM2LOLa>s!p1Yk&9Cu zm`j%r&Pu17cQv2oGTv9{CRxEg=NVM%PFUM<5|_%+=w=(Np+i}?`3XIW>jTRL|Wm} zY1r}~oRcFD>st&gJDto8+``3!k$Y`W3jd`5ZoABnNILA7Gn;z=u=h=p4%e~TwAKlm}U zcJlA}n0Lw}eWO$1mM@VQid%%vMs=j&#>h_AZD%p;D^GAOo~Tb9bMY~E#l!-`Pip8{ zQq4}pHm>GFZ^Bo>}c_XSw&xqC)@*{*n3b>5Q{f#GYft>$zIWLKZcj}N9&sg~@*niNw`fHsr*tM-En@U-q>jO_!*;>YX|kJ>My zH$gI6J_Y;2P-W>4)XwoiPwz6+aBeI<`1i5=V^6hLjNx==v~M__$Q!;ZTf^;z+Pv9eO1N}f-| z(K{YRK9lSh!m~cd(-H4!dN0O>My&bYs}bp2lLG@!0(UL%*_jP~(1H`)k(?jHJBE1j zbH^k>-apZLN(_(i81B?LE)N?`8^a%~3wLC;;9$>K008!bdBd~vrIvkQ8#ZF=@7U&!PX>C=Vu_~G_T5vYBu3O`utfTku-PloMvvO;#rf8eFEs{l;X}rdF19fQ zj>0dH-oJY6eOxZ^emWKg9?7Nc()b=p`QxKup7TQrE#5~y{CrLKamoo{=7qw? zWcsKJT#66UhN%)i0ZGK^f6}Nhz^@Pe_@N%huR7a$qgm87_;dW}i@~vE1p9%%+Lsb&<&6dRSV*5dzBSYdqt{N)5%Idtc8sYsfMXjhlZ1_E)1kmm7tzN zVbB@t$b|}pZ&X!)X6>p{1uCFYF0j6ph0YPMR@X>Y{#oDf52Q*1)(&V0syXZU#7F8Z zh%31qe^#vFtrC@gkZb^-x^DhyoQ+CtzBQhqlPMhd1s)mo;Eb5as3!{4&-t7!foY~d;TB#~W`b+HjnreOmo_MCHFl1hVg&z7u>Uu?Tq$8fBVyyc49EIOk zdIHolQtV>M;}Ou@7K}VC%FqQ!CKC>fz0q7j8@TssTED9;CuyVaREf}VVH+iNY2CU4 zbU66N!l#n{;CyR2urf;zDfV&`T>F5re0;IYr0jfw`%yuPD{R_3rR^kEFjm2(`(gw= z@HHR?8U6Mcx40rJIGU3$`Yn1GWXJ#&86X?}HiMsUGzdxo$t*d+$S5r=e@cZB@l^$b z|0G3u9?Ii72x+aH2F4!$z_X!nqm)(KMDSKHT13&ZMu0DdCv5@eOC!$Q&wHamwRz*I zZ-WlqHz3wC#9IM%MOGcW6p#--+WI4*9Vtq&pS6dx_{Fjl0JXIw@QGcFE}9$! zT&hu|{cZ6JBI}$JOI)x;e?(0yv^;eRImaIYBX;j2r>4;`yfu@Q27sq@k380;uwWOW%2U| zDD|b{JuUSoD1umn-X#e&;DB0Zi#4l>iHzM8j2^bWo#X||HfV)mYv}hP`wa#uAZ_SV-z$MmOmO*-V%4uyBW3`)k9XzhY|nJd zCg(e`yv?UO_>~nGd+ip{-C;_W$yEQh&9(1L7#fRbd>hM&%r;LL5HT1S{JBgVcsJLZ zJs~HNq)gXyG(LkLXTjZzec8An`$%aTfodW9d@2!8iP6DCFQiF~g?%N;6v+Sue1bSX zPfPc;DKwK|oqDZw)C&^5m&7=$zuGLc#44@V(t|`?WNieWx}?iO)h-&xqO_<|v*rFp zCyk<$9!suyZBdeV5QH8XP%V zUCofpNV%f8xCr`5==w|wV<RD& zsz$c!0AQ$0@I=? !V)8uI0WhE=4>PK;M-NbOFa9`k+#tqb}Q11_kN2TO2UH)Zjp z*6nO0b*c8(QB2@+0jg*y0T>-rFY9!xvTQ3+JL-E&R!p~+dv&a&yPz=Tc_r(D&@XS-bPbn4XDXv&6F&Pr6 zvshANs$s-IE;_YX*Msel zFYsiMi57Xz*zP5gFVK%}2A^O>WGrWsdlu{4!Q7IB1i+2mri`agHO3H>t~kTqYTp=< z_DZmvI)iT*RokU@DXEaDr1mB68ITX*ctpKv72>*#4n;=lR_?^I3V@V*v*ci$H&2Pb z5^YYDS9?kxty)}KRJ$%)w#(6S&l_us1rvZaw2EK^BCc8sx+2BXsZ#A$q+vdASP7J* z_5d;?D(go>$~hVNq2jw%>&SCbb~;h%C}yyOgPy|4vKYDqo4LavI2NsBx=2;l`(VXE z5H?8q?LAIS1i{}?ljuQod~7>-qOKQ2s{%_2`c>F-K8J6Ik_Z^#VjCGnGfY(a!|+%~ z5+zeTwheb2!)^MFPUso;%@hE1f8TR%F;a1P=zVnM=T<8xV5Bx$j=t&Sx>jjvLby@N!ea=}pOAIb4j8o76#a`?$k=xeRxbW7acgtXj zQhTr`v?L_P_&o6w?JORuC2A3dWTU+}&B6=<(+?}hd6x8UBnyeHFY~aaFlmPoE$^dX zp)(mVV!E%y25ry;Mh0}uj0R*yCb}|fzbrbmSkK4`isg2r+;n0bf|1V?TNqL?B%Bq< zBnd_n9U06OAbD6wg~kbWD7v8Rd+VoUjO6oh*xKGq7-mOGc`0y-qrff94??3{Ho;(8 zF)!WHuA{!sOYqj`V2U~oT54GX(Xt5wSK{48a;#XojUTqjG$AVnc;tW!Y_yDs1zqT1 z7H}-SX9@!PToGe*iPna3U;rJv!zpUCN3u!=Gwg-3drY~pR2SN{MHcnA zdI(zK*V;xTSBKxS0(m5>u^kHB`m8j1q9ow~-;tcLEF0A%`Z;&I*}*OJv5MI4L7jUb z0V2;$kovm$Ihl}^B)B#H#C#hXdxo)vZlX1*$%7%rA5hTFg2c=;rV|JU(2-Zk?IqD* zQ;`vFZEP@hfmnn6lOdy=Xj~XScx0T8{;f_NWHJr}RHyGb# z2aL!Ie$MUeUyk9)l5T<{n}gej5xkt+N<66*Fn9i%MQvmH^Lr9XX+0uL~MIiG-~KqL4>bjfGUd*O={J z=nqDVqKwZC2Wg|NDvCzDsBVIYbwRYj^ZOG47eI6s&q#Y`6ui6o?H+DlqHAy}iCwKI zapZ%Kyv@x~24Xw+ot#9s*80CZ>6B`wBit0yJLky(BmLuD&NR|i8r;cj+_+$ht4g== zT*6Cbt}c3r0s{aYF@nia0^GUl4Pwe9+EgK(r)fYy&z4iybki{V+iShihTdr=Gos~& zK}P6e0b_IeNfhJ-SqB5Ws0(q%i7rLwk6^uGjS0%JetMgDpUL7v#F)8~<}BF*TnmXQ-?NkN69E`XgJkTRVjNtV~+!MOv6Cv4TN_UNnu?JH=bb>Uw=C=*PzkMNRY$5bZj)+0l16_rSYibUAbUIde__PD5c$(= zMNAOhlB~!&w-$+mnDM{u+YQpuBl+S6sda>fhHUoB^}mD|RuOgs-S4N3)m+B|Qa^Kp zYb%*cWt)_kP5C01pK-NeQ8Y2X(EKp*X{Jm;sjWiWH4(>f_>ReLP`_wT)sy;3zSOJU z1|z3HWEDurY~K!K(SP@$;gVqTNV2GB9&m|lBzCGdAX99ZOfD+6i43@TQgs275O$tu zOB)AM-Ut_U1RblWv*CUUf1Sy-PdexCfD2$6&48r5B?NqFn=SJU@{fR5E(OcshFof* zX_3tEF_@9=d%L6n!hs0)R+pLF(>2i;>^*Q3^rzI0UYyxo`FqBSD+OTcIgC*HM-O5Vo4^o~11CPpfJRwyI ztWai|$%=ei$Ayj!e%L#Go&SaO)`kTR$!jwczwUK)l`4sh%cPmO zSvi@}zUa4e_;oPf8*z1MxFGQZdEfxZRzQ2NYz~8ttpgJq_H?Nu*5^C%;I84#gp0&C zP^N zbu<^EIa4|*S?yR>_Dk5rYsX3E#<*WGuaROm>FY_vEElr|ENae9$CdwBy(lDmnP#l zXLNdHN^#NUr}Ug=W+8k3sM0yxxr@Tti^7o?x`t*+oBhS?uAxGC=_Hz(+~8+0p)EKV z;qA@#o^)m<@Y6T@**qw&7k03~g=S7&C0O)bc@n&(KIqpHdA@lk+p77z88n;E34#G< zx4|nEib}p2@I_pNX4(exfcOwPD6=u>$<#2KPoad3B(rDel-ka80j8r6!IIalttaAmZ;V<$1wnBfG(ZnO-*mk1d zZ#7a@ya-z+pYxbNlzN>sj9E#tM0|vjlR{RL*!l6Aq`%}8gm0`u4QawH*K5Ok(a*rY z6szmapP3pwsQub?!&5Q`d$Wj87&1q~x{drz=Wh$K36P@lCn#6QM~7%fL#X2b1F~mY zEQzhhl!Gk4Bua5WM;%OqsFtT*p~nm9oPh`^u+>UAuBfD7&aE%Ja()ErX$<;HZI1QA zU_eb7xP!VqhU5W@7k0vY{^|c*hpl0LRfD#^o0DPc>kqc+fj|~$QgS20Cc{qh^#=U|!j{E`)e`B`KclgKDK zH4lV_SkSJ^kl4kr&aJ*!OxU0fW|I~wQIJhcZ#+g5->tgFm+z`}mRy4+pty4C%@dpA8@maVW9d1Cbfo6bytmT%bnm z?3dB|d2_4r9LVfQAma;>}kZas{pkOLIe84O43IQ4FN+ zArWZ&GZrwwJ>YX(O+IEi8%va}%tpG3so7wDnV6oaT7YBm=DQ6gf9VWM11DX_DS`NP zvF{L?B+LHp4aNj+kU50S0AQg7SU%sj$xS$UoPXgaZ}173ax?c_zEBtxBoco}vG%~( zg&yA&1_pIQxsdeICde9kK4%CphWW^`_Q>>fRs9id1zMjrX@eeN!WYxwJK(?zkNE;} zB_M%9M=pY8{-b!A=!@>*dy=~|ZCD*!qjJ%~W5dHqz<*7Kd`$K->rCe~WH1opus&LZ zx*`o>{O79VB56>8OVFQup_wSO<51V+Tb(zEZM#X!X4mEI9GL+ryP1h8JK_<*?vs#N zn$!o3vd-0mgvp;08f>DG8^EP8$e$p{WY36=Ztij!2@1q^JP|_|tftEsB->?N&@KV8n`*`dYUTc; z>(-to$#yF=%P3@Kg~!BmoFX*_X4M7OIa)+H5T4>dK7P7@=A+32eZ1wMV(e^|2PiQG zw@eAuL(>#`9ZlF+4W6t&G4?PXZ=IDXsJ2Ea!Zvgq5YTeY#?MCtsm?B59B4&JmAW87bnVd9;VV}dB-6_vN#6K>3_snp*dNRj!-STWJ0IFc8Xr%AL<oSW51wt83!w^Jn1~DQPLoL9NNW3i3QUZXmM?oweB8)MTL9$0VY5lbyfMel zEyXj+EzNqXeeAuIq(I=iL~h&ocYTFvbSAlu`3dccEz6O7zDpLQmm@N$+boLkJ94Ws zMmpx1@y;M9*t&7XQcN)Jfhlb9THE6gr-2~eZiy)dq@wTp8(e?AkPj;}q-}5_#DGh7 z6cK-!-XPg<=0flCTGRl2>sU%N;zyI%BQsFt_-Gd6%O+^)%PDexcp-JlSF?sOzJ@vF z%IUr1BB{w_X|uMJe1z=bU40j7vpK{kU6adEJ?<)xJQ`KOOb?O^>&5;p_y@z!9&o+` zd*mPA42lWg%8Tr%bMaz2e`&|WenltI9zGrv+e%DX1|l~YC4=+NkUz4InkBL~4He2JzqzR)|~ypPRt4hHB&VKxyl(&WUc8MT-}C@f)( z<%OhWK;FH0a_s@RYWswQ+{Ex?Q!Xo+EJwYL*tYa%k)6e$E0j8@%s0i$GHyK0K-K!I zLFn=?1hrxhhLk&L>S2YhwCey`*WwQjfOSK2u~-ZjoE(Xzwz7|-A?$)~ut?M;SHC*S zd^wtWfQ{=x2K2lQIe}urz`|V69m<&#q~L1oU76^~?b&{5jNc2Vq605xjqBMopu@{$ zecISdEnDG|J7Bm zy|{MT(>vbz^Pg91`G4Hee#?umjyF$locXJtwBI`C+7D^20;5=1og)Zyq`F#m)(vn*)cIerVy(9$S6V_E+!jeRk2Z$G`g1 zo|7*9qfKG*MNBuBe(m}rU#`D5SbO4M?)pah)A#oL_1V8z`0$cXJagr&M{3*tX8Xf} z7UJvAU3cSEbBC|pTa%~KpS1^W-1W$lSDe;!?<*gEAvf*F8}FXkf79Gqmvzkk>b8IW z%A03r{&2}TZ=5jqBd@Q%=AP5+!mH=}>e)RX*}8J+yL-RhdBxJ7{4}xa($kL|dE+D3 zy#Dtm{`SW4=Pi2u#XrCLN9XlYjTyd$#|e{pO3;+;`uyp{JWCtlc&Dguw?s@S}hI z`K!NQ^_zQ}h5Lv9{6jsjeB?VXopakwN6z`p!*i~F?xDm7#{KKz6Hi!n>a>Hm+_tCi z$#0i~fBEq@&R#HX_KqFz`sS2_pM3X4`)|8`&CCy;IsC0}{_e)pKYs4ZUvK{Y))PK> z_ituTzU2#-OgrtWk6m}mw0Sc-|Mg?nZOA9a&%EWj)wkr|cgoCvI`@Rz&$+blTyyG{ z?LW-5Z$9t-?#Zd%%cF@a7biFP8@_nq;j6DY_pu}Ic;nX-KfL>cr>(o`@b6E!aqe@| zfAGcZ4>$Jy?Aycl?EZav;!pOzHa>i{-4vIeJNnbz51)9>xhEdGt2eyoQ^!BK?a(8; zE?susg)i=`ux;q;$_WWe|+ek{G|)8n)9pYe{s>5_8k{q`mTF> z4zGLtlJ8u!`qh1po%uoc%CaMueei_$|KQcrfA_iP{`$xz|M0i3{cQK*HGlZ(;Ol2U z^6f7_HvHY@t`BZK{950ek8l6lKiqTHbB7Nd8o6TTKeb2y8f+Mu=snlW?c06H!RBSZ zdGg`&>^J{nwv(a`W`NU%&jmEzdnRs`sS$ zC|Dw3)v3*L;_+2eo~yVkQ0nW#`?S>N!?K53KPUzOj{#%1QrKJ0s5{v~gD z-`mSJF(4%y=jCTyv-7YMColh2RIH-Lsg`1gQ?jjzwbky&!TBk*rF;38Z|eldsfgP_ z)c*aU48Pn&J9{`TL1E0DJ9jt^KuQnQJ=u>X}Fn9sHJD0T6%8hJki*)iv*qo zC>(OZ3n$$&*`ht@R0^{J)rTJ){m_Tj3~k@ei@wgGSAezu(Cpca|Hb2QnojH3Ik!vH zCaLp8p8(Pe|WfxUB10r2i;9X|5jQiQXL7 zd2z>R$LIx3Z$jUDI-A@&**sA&)WUks4s%Bn*I6Fr$*FJg1TAdUv&Cjk?^x^XTSlrj zd3@*S?=%Ve!_CDq^CZO=o;0W8S~TS)j%ylY41f88+Ovfr7Ig4L?V?cUZQj0-9dZwa z+s@y!oI zT9I@64$kK0u(rOgzW2S-9QxpJqN}Uxj5C%k8yFz-{MK~wM1czCvn$T zo?x;!Dm(UfK0i2!rZ^bJJOL}^NpmQfRN19i;%GCy+E1QWp2V`tw0IK2leYauZbnks zwO#MVYEGEY^&TiObjg~z%_vIDoH?_1IN3R=a|oWC74zhh&R%M$ZRsda8n8c`9g2A( za{F3Undj!B&R39KzkT8VizkY-!kIZkWtZLzHYU3aZTHQu?qtP-bn0x*Jn3lb($s2U zyjx`#JfUxmIm$T7lVOe0l*^V;^D!6mgjS8E_gg%X?K`@ZC%ZNE8GUEz&0+9F-iPr; zIGuhnOw_2U9mSr3t zvoEZM1I*mMgALze!hzZb8q@&_QJQ|Dn+WXm@cmis7d^rQOyilzpE4l5N9`ZqdXirH zTg$Qe{nE-$Sl7GrDX)7B?wuLnGg^h77_}Y5K22>4<9i;v**6=|u)bG#JQYvyXyFCC zIU3eG5R-*)4$I|~egva$tZvf5@6Pgr63^Ox83z19@7zV% z!W}zBY&g{xvplCKNKd}zN!4!70*i&%)4I#@T06Ua>Gbk3csJNUrtwXQd^ZG= zhPLG!G#%woC-GNB@jZ=&qv@$bH@J?`Hnv}!qxOxhyD&qg4P@+)9;vpZb0?LqT}*|0ZEr)#}Oo>xaGK74i zkhq`lmKcsVP&xrAcCCKWr<|e09h|SC=|#tK->21W7pretJh^@UP&1Y6l9`=Zcyjn~ ztDnG=v3_D!x8M$SX5dNZ+~eNvC;I^rDNlyvW!4e@ZyV|^wUdM=%!J{|vbjS;M|l#n zSX%w0PPhQd68b@DkqvM0|v&?ef$q@Zy@$ce(vYoP_SyuT1Pm0BZ^q&}0{f&KH zUli>pFNGASl+?e2uW^pZp(Z?O)DCi$W-GSUhhBU!Ci8Cn1?t;80YRc-o(%Ox@&+&x z^pj!EW6^Xfxa^_VBz!m2YdIh?d`OzjHiTZT05PwWSXcl16)wYk$U_JmfFPHplAh=`v| z1w7e=9V05Mak`Lh-8YsV8$AXgFK8PJf9^j&(?3XB-;w`QEt@``ak=S#Y^B4lu~p77 zWBC-Gmiu4B4{1Kb-G;0g|79$%=+l4eUdFfV2(>QYWIUdOl&w!(5SPuzI_l`Fg2mb~ zJ3}uyU<1!nTth9}OD?eNoyRz6-M}eH9ooMzhWpq(jo32|kU{Ms7g*kF`Z)hxNiEL{ zzS??1yQ6Sh&nFZ<`MMr5%=tv`E;M9NyFmef+T3}5>#1RnFrDOWJ4I~pN~FiW(Ja?| znqI@JG#%lEJZpFs@I=euXgGcxNELDVpvKl!1&CK)nu=UN)ZEdWM7tNuMMgWw@SjPo_!mCz_b3s$>DTx^HvNdG;`Wfyt<_jzgu)BFe=CvR0#4x)SeNj`U7_zH>aS zq~egXwUov>{@M7c@1*LaLbC)B--2rgUjUFJ0blKmW!rycHn~>@_b>}K z+l?{dsvt{+Of_&>>o!pJfeN{kVk;E~^=+NWW35)JgOCqp8dggj;3xJdTyYv@HLU-V zl;84^929-x3dD%7f2}GN6nS`H?O>$Q>OgRXHC@cljruc08M5lPL}K_&NI##F^^1?b z^E~}@NSMU2^ZEhFm)mZ#MN;C^0%HS5|JMYO(w4X20Kw+yhfuu`6MnvogC)H!&K`RE# zf-1RuIe?K)XmaEh{2=y%qU5DeSUX)gZr$}w2mBtjIc#%Rp<9nvxqZbV>5gWsNb~Jrz*D8RN*OX6-^z_4ra$dyH<%H>mk|dL6A{W z^b@RWH(=YSN{v9Yn<#1;D&86R)`R5d(yO>xh-On)EBT&9iVM1Lp*#VnFR}}lSO+fD z#%?*mp|#Mp4t>oCbQ1mXI4M-bDD+4lb{=|=L>0~7v$H=n|Q;?iA~Bc~lr5p;N)Hgp3gr-*E3`&)D2s)z;}v(>6c75?hN z&a0lsEhd3#=?F6jsOzVV)|rMM%fv0@^usPB4P~K?S}sgZx*k8Mry)6L8GT3>LJAiI zE*xNIo1+X+ii>T~eeH$VEuu0*Q9MvPCS~YNif(qO-YR>%gyaXa7`kCJ;%y52imiJz zQNVgq@dAwVC}kubaDuYu{DNb>yqx|T#f9HY)u3Tir)yiZQbq>@I8IBX0?vk<4PgCk z)F_WyU(HzYig^|51CC3(jB{n0B0M$JMsLb+wtQExVS{!P3EUTglMDU*&P%v(akc15 zL+g{0NuoO*hy{rfi^Z)cr@aSR8?N$fR^l?(F5J6W(tCYS25fR7Agk58KrtUdTj0)+muZJR<+D3t0+` zH;h+M8v?XB;{^?vq=7*RoZvvkQ3*@qWZ(Ww zf}W33-YUN!CF_UQyR+(alPAiv^bcfRJI&ms<_Af$mm84++wXY>n)wi`VytHxBij*$ zbd0X40mkSN9n{N-r4u%|j*kkrp*tU#Z)WhioFWVEy^}%E`N7?mezQL43AePhKUqK( z45{f?X-C2VL=w@9jL+w`lnrb3 zz_^ZpF6Y|wHP}ppl|;b?2$v|qSC}YSJF{IXe*gCAWybkgH1!Fz1?iQ%-y2}9T|#Bt zRO7~(AyaNdC2;e|Wa zVL8wa>TU`$&l~KbLmM%SvHjdu6-tR>dspPe(w?}Lt=2nuv&VgpT$Y&YPGme+Ds$*V z<5OvGC3HgSf2!wXJC9n2JxLu#R@7jOD+H%kuwc%Pcu#goWx!aoExAY5b!FGeNG*uA zp5a&==Nfm^ya4gTr(4XtI8$k5!v;p`ZEb0P#2J@EuY9^}8>xDguJy|oz2F7a15B9e zw1AObN>l{b=UoPs!pvq@Px{}L&}KT$@SiZw1fi*IhJW8j9k zM;6p%L`)ePPtR}bX4u+bZ6yuF;8kxLjk+!s3=;Q*;k>VK>*9enqk7^}#H>=#r>*$m zAaKn<&L`nz395E%e0w(7`?%B^1aFi ztTZ=Bb;Zv?9CG-93#k@(NS>e<(9KN{w0#oJ;JVVA!3gQ<_deh;`e~M+EPs=w2a_XF zSl{NGgfH1o!G6pH&794ot&nbjJ|zJ=DO^#eklH-$Bvl%>Fj+~w${0`yyeLb_mIFaf zo@$Y?Ci1qPAwO`MaclQpa+sn_ax#fBACzR?#N{N& zpzDxl{~|K0-Me5jEvc+BUVPi2ej>(1mBm2;yGX9j@TA!9FeQNlGIGG_{@XF(NM-$k zbVu^C1taDHmoG|Xx=e7D;)r+5uNX_aj#-@W>p@lCDQg`w@{)~04kF11QIE?qGX1Y^ zBgHR-CSg{IYx@u=E?{=zTP@oKUcpqDvOsq(QXH_Phob6&rQCR@M6Fk&HdDxjWT1^` z8!BPu7hoYPX1Wh;bC6e(BZ0ns((P%lC$bn+g}&|eliV2XkD$xVVKrHdS9~#9=jM_8 z46jyMPbI^^rc@%xPQ*aUm(o^jXu~gwvc3%0mJY;-lQg#rRGWraZok+#n8*@*0@2IauA117wc0%ST1qX%Z4_l8ynlJ zh=91lR_Z1kJlVkLa0bUKR8v9O#iz&B>x>N$3`nG&d2(@F2634TqQoBmiLJrB3P)|c z(=A`J)?P5=EiXE5GJQgO_$pl@?4_~!sL^+nUffv0R)q@JYW?4nOyn@pkqVtV3OD^k zHa}3QaI{$iT^ZO@k$l}7G=n5(P&5EzVp%s)+$Ef!^=-1_g@^&HK3E?#SQ<+%#Vs`5 z{axJgrqigPj(B${Rv<)u|10J2yPUKTu(kT*RRQ&K{wIBy&%7`X6B8+M23*xeQJvrR zoGng1CG@O>4@$01Ls^KjMmo8GbJ>mQ7b}GW7d_}m`N?PoOpE0hm#*8$=M}SgIA^w& zm`xpv0hKO(o?^Vph*U~}6OPZY@URVbaJWXO(@T0oA(AD$J8r3@vlSvdNw*Uh1moLL zATOBXO~e{K^gT|2!FG(Z{AKY0+q;;Hu+|4iBas3VD9V-jfgrCK9x6sukz4{NrXh7_ zCKs6%A?Y`b8cJNqz*=%PKoG=h@Bqo9^v+&~$l&te)f(KmdQfa(BBS5d5ICW0i$WGF zp$|PFu%vw(%ETaNEs4dVx)M2*De$v(41j9h*AW8B@@GV9Rl5gogmf{8m%-pv+N5t5 z8*i@xTQPxHCd$*z$^Lw3Pz<<6M~R`E8sP(WW!~xF&l1HLqxj)!SQ@t*H^9gb-f>Bc zf|*GN&RCd%B%ZB(*&Cb>a<^f86sT~O#Yx6W>G)p9rR`~|?*Ysk@maxXZpBm*#u2xY;UhUfJvph4oGL^KhCc0)Dk z?$C*oRN!Bw=8kEXW2Vv)X(2cl4KOWVq!Jl0bxB$xCzXSeV}@nK^TK|JD%GMnrjA)D ztth`&MOvNpiDlMOvdXnt4y(mnGIJTlROKX_G~8K5@z|!v6Lqk`XH1lFf!ip~Q8pMz z;J_F2tFYu7Qxmh)(b*zWGjGgDqg}Tl*bA2nbh0*ab~><&!}RJXQAB^oary>xoy?4V zDSK?mZn2R(=_#}i(>66FNJt;aNyj2h;Jj0KRkEv?7}g|Z+yk7%7fF!= zdHO{fo{=*u#&^a{1dgTIbz~c$i$QYAFeXm3p~c*eiGw3DaIVUzDXzUFuAJ{k<-pb7 zAOM63vP9Q5_f}w!qs2PQ2_I6DqmE!`ng7QBvnD2r7oN`R4oWV_a*)NtnJvym%e^W2 zpU2HsNa<$*zp}ln8%ctJWpIX=3#TV7@kbwWE2W`U{s8URjTmD;;qrVel3;^q0&OdfbaKY!$3^v-Qu;!+2qau zIPBGM?G={ewp~St_@*7Ylof7?i;)pB0Q6j&1XqiPEEAKHdDf=+lF6)sV9`Y#hK7(? z90kB7Ly4}fgu`)Xs`Zk~C2*jJk=+7D@`~=B;gZZafp2y zvYIN!v3tANB5zWyL5ftsYEg{@nyDB1sWbsT_!?s9-c*I)+YW9rb&l9CmH3p6_zkR8 z+yF>33Ud0;_^=*(K*lMM{y3f?rc$`9-54FGkjla87(L$cB$Z+^=3*fFLsKVSDW`8E z&rn+2ker6=J`GJ>+}vX*PWPXjBCjsm>8heZ3o5b0Kjugg&qjDK@H<}6D0`pOfxO(F zbCjb%w45L?t|39nDVD;_hu^@F%;q(X7qojiXDGXP*D^4Jz3YT2dP`QNLyFEBQO7U; z)lK=OXY}c`VC596U6#cytO>%3n4RjQ8f?PlawP4Ryfgh3s_P|Npu*rPW0`9ixmhyw zFvXDp#fYNnlNWP1Jzz(R5}$1-CL08Fnt+Q2O6|7zuJfIa;ksE)F8CUH)KLm}oGD=Uj%4?qs#-m1>D> z`5Q$rXb<-KZHrkEEb9b|CQHQ$fjePHJ@zXTBr{ zn7QkqI^0C!}fGLw9@_&`UOaz841`CDtpcm1x#8%-uC__WYqO>H}gQBG9A)1tMj%f@SYVXNr&@lY}>Qoq8~>+#i0M3 z>CCZGzCZZPiR{JY!r&xXJK{ggxiCpM0+DNe%J0fg1+K?55#*Mlvlh`ge9k+2*X<|V zH25hu6maZ1dO8T~>bh-hY04^Nhd! zFZU{L_v9{^Hu{-}(Hs?7hja9RH4#gXIx^rBx~`r~m^k6Uopc@Mv|dhY+)eg7|>J@Wg7#osTx_{e=TZ@Oq_b9nZ? zxz9iS7q8mCd+q7`yVgAaZzulr$lST7&HY64rbqAk_cwQc=P#On`e)}p|Jc```cd=w zKY#uYci%F4$Bgs;(SO&Oq5t$r`LE?SJo4#|$?F+`KX=O`uioZAy?x_vPdM?JJ==fu zqq(2h^_2-%eCzn@@4o-p`N_q_D~|ldWr_EkcLD`3Cd8ZKu5VLsPH5@Yowhmt8r0(-q&p_q_Kk zd*;aS*)#w6pG zuQ6TO%4>UjuKK%=e)GZJ-rxH#kNoDlSM1&Mm+yM#Uv9ndwlCfK zThD*mt@_@=D<URPP}RCI`^MXT=2}M%U<}^E06s1y}jO#-t{+M+Irqw zKk(?*4VPba#|_ti4Vf&s@4m0>UOKdJ>FFakZyP>*$!{$?X4~s(xii=PhueN<$@dF? zdd_#Y<-Yu_w*P+M^up;4^rQ2Rb)HG`)90VrkgeF7Vqgj_86;0<@w&^v#iLh z?dkOP=W+`lw`|?IWy@TyICQX2O^_`tC=JqO<#0+vxD@NOa+}B}SLj;Pz0d9Sq)m$iYRj5% zIr^ZkGCo+$Z6JLQ|B64)>QvSkW4zafhG`7Vir{=28$ib7^gpX%F+Zn0YEk<+P9J0q z{PdaY>bl~dWwp3xpWVz*s_U3@XR4p)cu4i-*#muw(-4>aSj4?rCjV)U<+v>LUnF~0 z3=AzrCQFyf9yvHKlNA%w`}6sdgd2+Ak!cpLQxB=7GN~hzcf(9M;)px<=z4Dq>nLS{ znMW#<-5lVwl{NGSA3nI@F@40=rSMdax_gI_-g+u%klqn@-ucWk$OMLbf+sMJ!}=!eWHJ9^wYG$C0r%d^<^H^2ouSwpH4RT05vr zGQ5)*0-k(wZ;{HRgDuJdWTGd*rfmyZ0!uxq)59x>t)*uiX_$sY`8X<@`Y&E+l0cGx zT@+61*!l6nXErFeCMP=++IMZ;df>4=$mIE6uAnlZAKOo^ww~`Plclt7npvN&y*@~n zw8T5_#3B%*Bl;Ekx!w>m;V7Q0??NW5Cl7E8n&qSU1_nVy#keV4iy zWuo^mYF;K-4UnTyNUeLZ7oOzR6sH7b?PQU2lWsTb@+W&LnK!*ClZPLkP@-P6=Vc{+ zO5LkvLWgr;jJIVvU)2mQvnRAQ{gR>QArf{Z*0Qq(HEaO0MDapI-N|QVe)e=$$?#b0 z7{9LZgqJJUez*#L!Y0K}vc+EVI?5T|n8ufg&ujqGa?|ohwLDsUVxp|vQ#2nlQ+-9o zd!mGGhYaDRpXGeRwTg?^3|`avw5mO0Rl_`L=pN|MlBWCYtVstBwQDr1h~FHuh=TWF zn|XGqX8De_ggxv$=k)BzRekv3jGi=J zc@2-${!*%a8&c@bWWZcGp)hb{c7q#RnVsO3gilKC6=&e#%k2|0yFy+dXuI;4q&`KY z_Kt&+ox3=Qjb8go>YpSNZFm;zS&3KbGtzsk+U(hz6hHYnXHiyb`5#QnwKsi`caB+k z?Kf-r8Jy zX}Omq=~$WlJ1@aBj~ZHIh|#VyJ)7t^omIV^!R zB9F;m@o08E%>DEmY*>IZnzN>NlLvQWFu!%hhDDvP%A&7-egFPBV*dd%@U-Vy^w?iu zeI$E2XP!wO?>%EaC1_4{Tc&gLE7}J{AMN)9vgOjBJ{dD2_V#Wi9y{#ke#(vw`}ds8 zy*lPZPG$2L_E9>|QameqL)!6nbSAR3_sG_t_G&|ub+sm9v|;L?BM1&2SZbx6RB|`6 zB^GXL`6&$wk~^2(5wIA%_~KJaHNWWS+!4Grf32oq?)cYu6Uu2-S3P%K=W9%2_3WZ5@fSKD~PHp}wy)brL z-R{uP++1&|&SNJgZrIlCPO>A!{!}Ih{h>p;#}LCwdQ~1n<&(TyS%d9Zsy9RsP7|O* z{hu=UclS8PE)7vl(YDL&Gdj|AD zO#NO@WwK?(7G_xDCXq?XSnC*3{X^q*g<1`tH&?#HRhm(nD!Y ziGQU`NPdo^?0fq=)N8(-IL-bTL6wQ#r!v8xoMdC1OeRAml?iIR|4{EaTK|N^v_oV< z-<9TpF#K1^q?pU?q%`fjPTNug-=VMe`>wg-?%mo>RQol5NBgc<$YjG;4{cx%`k30}DIB(at2AEWV-0@;Ul)dAuc+zs zc+|d;ZacLFO#Qwcqo$`}e8ifjON(+orR9YeZ2;$O6Scf4;3UfM%cn%%ermt0AE?i_ zY|~GhnTJu|MfT%a*l8W6z>TeCpO%zX!mB;+1_y2@-O8B#EPj9{wdv$W;SFKz7E^ew zqlT03WMO+Q{`QyZJWr$jaz7nANP%|6llm{&i1y>Z;M^2#MC}M;Al~aM>ygQ{~2?{_u*C{d-D(2=vn5ML%=CKwuC8uZ24*$ z23~#a8q4ZmP5OMi_$)mwcMW)RtcvK{0H$;WO+UdkD39|Q9aronStIeyl%}jM%tWP~ zrHR8=+Q3y~E;AoLyj|15z2<~@TAYLo&K*Y`%J9H(OxasW%|Qu?l5)93jbuhBT)=|Hb<==Y~G z?DNVRUec4Ie~x}5@WIOq&hyS1FHGSzJa;LK!|!^&4>meOLAu0QF~Npd6L0}EH7aTS zL!{x1mvS}6BQ6bvEM6L^_;ghCygKJ|2aqiXVOC32pspBES4*#r;9=Ini#6ceZLR@~ z#Nl-98$j-1&LUka>RFk5OQs9<7UT_c83U1sie4x60mv3`a&G@(Y zBIN^{w05`2nh#JRaDqC}W%+i?dWi34T@JQ(+$4kL7bZHFsKntv2&ervwmz z^Li-(l5k7B;z@?r@2GJPy;!y3)9;~HF)#{o_UC6M@126(+Cv!0M|p?{6M?vz0!MB{pP=ujydlDYD1BWq zLe+89Bu^^qWM+v3DfrYeRuR;w6gTuq7u!~St>cJMN>qRC4hc(cOsy?hN5euO(shYP zUP}sr-dLRagKmY@vBvlOK($#GF zDFq?xtdb!s)8=Vy+M*KM)t(9G_<7I&h;XnOfuNO9nh7fznM{w%)CSIz02OSWn|2%3 zfE-IK-_~dp*3bf6ncDLjflBM5t8o%y;?cz*YY9{k4@(Jf&T(1BPqi2fpwxTs@VHG$ z<#8XfSaYMM8V215HOW(KOI4Dy1qD70kMi?HQ=LUBIu^}{lbzM6Gk2J_ROonUBOy1@2}-If z#h&gW+}@BXpbbvQ(iRXJfo+8!7|Lls(swj}7aXO8!BUiNC8;MQ5GIDdWX2Jo0rRwm zbIPjJp^si~LjMvXiXoUA+odt|3aQ7bbLktonQ=jV$P}4#$QTVKt7=USrW>(^v4Rad zB6OiFXb-#y6cT7SGxSHYqXK(Z7PUv_W#l;)8U{K%(fe5$M2}S+sH@)47Te-=65$EZ zoZAv+@mmgk(IGGP?Yp{_iF_B}I{4yt;I&N1$F(3sV^Ztt%9Rlq%UcRW<74@YWQv?X z)xo$CEQK&2h!CCgA=(8+pG0C)a$@M##c*8J=;EZs65y^xle8An3OnuDMUxcc5Jgp1gXZG}+6WPrjUc(q3f|~i zv_HCzx(3LaX~0vF_#s(OsMDEE?g$~7rM)P8Xrc00`$&A91Qv6)BbKwVoS-i_7PouS zQLrlUiR`L%SXk++O;7<>b>35VpEuUTkpy5do*?gyZkF`n8jA$A6thl(s&&=xOvOeP zmWev14p5M^9jtS!jISG69e@wf*g!+pmyQ(Y#_5)Bl=12qa!VC|AX^PQ#+-o_6k%A= zTbhCq8B?kvXX`dCpBO+>P;ML?Knv`c6KD> z%fn@)n1^SvwybNt1&-wlsz8CJ4s+z1NZfc7qH2BR#wcAsRyEQY&|aaY#(B))#%MJx zzF&m_p09>LruvjP>;qv04tg>5#GkFeDqoS+z9lt}U0TKaq)~!m0y||UR8h0iCJLv) zj>e%K8&bf;vd7L2qOp^UDwcE(!QyhIC#e4%3V zl}*7LBTe+L8C3_OXwZ;9@Ee&KG`yj8Ec6Xh@Q$sp;I#6w2>*^)7rA`hYQ;m{hrl5e zu!C&lHi(rPy+CJ4Fx;}zS&CJ;E}kx}MIu1?;XxMQ-dH8g<>kGzorD_u&zUd~7yaPQ z=yuSE{OUR5yPDi|=;2z(?T$*x*T$>_+W`q>)c|9E@q!V}UTXXJmOy+_IwIBb@j)6F z)1NefQWZ8yJ~r3TW=3g~FsA9`Ec$l7fs7_5r0?-(86Je9Aeuiv1u}$#8KgL$&Y9># zM-z`-or{*U=ATUjb-#A(F>V1OcpV2AiVOlLim-|GlojMz7RQ4v)h15cMM-NA^^zjqfjMC2RH~D-38H1DO4cIRFiO$ErgN{ zW}gLBM3XV%18UdZIpy7IKNI^4ts615E18+<>gf(*BeVGA zeuJRxNK_l}n^>^C(gtTI7-Yl5Y=_yRH#KQwg4I%3>)56gw~Ja1ja{hIeg`RNEIp^5 zufl|hLdCV>W&12C6ZAsL6zj+Mv<9TBzXfT^FjtyWf+Bz(Wl6WRcPHuL?nsuM7 zojhYFMmKfcEeHHg7sh$MyAkVw#k!&mMGD7#_Oe^YV@^%G=#PAm;oomWs61&c*y2?G zney^zrH^B0plVGYeZ`J?6_IDQa;&TxtL5WCf4@ZIQL^2(mBtb3Vgu{eqY*5Dx%(!E z_Q?Z5TU0AD#hsg0+vpD73%^wgK~|CHhgIM0N@LAsD=9-n8s~V~`C#x2%4~*1WypdHhzF5%hDrVL+0WYp* z;SLHNRS^ND585i#9b!P>FwKZLu_HQgUmIF@UC34I-*WrdA)cp}WeuWpZOd zLb*^ij#{)agVZrz#-@~6Q!JfdCYLa-F_R-^VOcL)dg7911T_@koUo(2^(Bh+ICf>O~+_prqv(*ba zSab5YtQ)AU3jW3l+aQe4pd|5Lm4CNwOpW_1-Eoa1u22R2d9fs>@2Z%1x!@p=^LJ(+ zkV>oQq(KcJ9-{@r8=*qPfq_1X*H&AnxcHR8S+YJn#swQt%b-{8dZEt=%^^A34KY=S zhaQ??7-6s*;cP$#c~w1;+LVD~jNNSv;~!$z5Km{&-dMdxqh%JgHJ)#Nfkp;xm=NA5 z2N>*R_KOh5oYR?b3?s(!B~T}->^_p?9vZn;2J_tSpg*Y7@J+ayJoru5=O?}j-ZLiv`nrxu|9PNf4!AvMGBs+i$5h_KXD`u zcVjRtM?`F2#*cBgdf>a{J|mqEAJL|48F&~W43`EPg$a%; zJI6XBU1h(aW@NNYi-6H{dIdK6DGeHC-a8!;@y5}>+cz)pi}57DiU1%d>3)%9>Y3aR z5;z#Sy!O>~J5&)~74iZ_m>UUO^T5y0k=kk*<7vdfQiKb6SS-Odp12C^C*ZMRwwqtk7yDaaBaMh~Jirya36=6Pl&4gvXu61cHuOD}?ZSwtJT~DH zyQ!ETF7F!e`e@gf_LTNG8-)Q|mcw&lmM5xsBi1xV-^YL?o9-h% zv2>O_qZ1wKxJw~)+Qb@rFlS3q99Ap2(O$h5E)`v-zr<;dSON%+W$ImzUWRPXJ7n;(`OixF1J*^KNj!-dH0abVuxr zbKN?J9gD~Cl$ga6XI&HBKCZaDbg3vn)XOzl`rkn(1{c6E+&g0WvdEw=)OP!Ojd-Kc z($vdfV&cJyq=3U0YR>>}_)&$Yl&gHpiwl0x22A3jiH$6Q(s+8_#5K|ObgH0z-)Jp( z7)J&Pu)(^soXi0nmPIA@IZrISe zx#g?88Mr#+LRHi2^HN4~lY}({K1JY2jid6dF^*xUi+K)m*U8tM0dlK+4JF*Z*ODd83T2cxZ{w0 z?CZ`+aAYE82+lh&3;>HPXg`r!OC2xc%;(DDI&6o)CL^D>VUSr_X#$zi|CZta(#ljy zO_v_7Ez+47&)bLuu+je%Z%k+;9H>S)YG!3@VWOOvk>e|}oa%uehB_`FaSf=@nI6}% zI9_Xp+?0z)bt*4N0<^L8oyP}KQ_1Lz7u(446I55t zJg%Of?TT4IoKZ|@M&G$CQA+r^e)%Msw8UsQrNIz-$#wlWDw$D4KXBBT7O$P4RI*lN z*@8$((7ITq9ds5Ho*VsXT8-a~b5k#)L|`Pbsq=lm>-5I!h54sXr#mSFHAcy@bkhtv zV%cOa#ca8HxP>qA^*+taHFd!|nAlK`S$!zR?;{V<4=|(<32*62;|a7zXLQ%t}XH zv^F^BK+aSw%bdkgp5~Vs$0Y!hVdb2{GPgF&=apBv_i9T(DbpO9)~|oWUO9w#?4whO zx|)JBHO0M5>=Zc)PNS5jV8XR{G(gRh;TYJdnDk{R-;<$$3tFai(%xS0csariuM%E# z)JroJ4(|l7n1hpYnwa(q+_^Lq((6l?ZCc`lPa~R?$&Jb*sLvo8hZZ-AIMzw8zD8C| z>i{4^pfGcRig2etjY@LP0f%XusdtiN?%w{IyRANRtmB>A$l$~WyYV^4(LG+>8ia+m zz;;A;?+8?n$ClB!o*T@adiX`*jyePWj-h=VYIWEG7dmwry}B?o^R0$R`Sj~)G3g+0 zZi1ah)G4%%$z$n^^~O|(S@*D-#jO*CifMwhd;iH%p%GByq3-b7hjNB}EePa{nQDis z@Km_68HZa-=gkDZh){dG&@oBke2iQ?vJ+v#fapwli(N?PW|G25bRBSm+0ZI&4I|qY z!VT}osq=+jDT^)n3iOC=@I7ai0am*Pq0JGNYs5W=*Da)8GVyZ}kd0GFxz-H&5{@rc(iiU#}~qlg;Sf*1PieC;4NETC%HE`K1ja9+5zp7 zd0V{Xb<4jmKD4cQjeUoMXSg8Y;I${6DyNJ^zo(4XRw0Mqyo4k-ayX+(^IEq`j`M>{ zHuGsLSq+bPz(@v|@h^xZS?5M4*yb@l;Iv<5HsFPwQGCpEUEPD-`PDKqh7fs3ll66Y zwf#e**ZIi(PQx#sNJicG`fB}qCvr<_?-n5(1wjss}wT|TXzbFxl3F>_^xZ& zs%YlB@h7Na6bkVvw0Jotxg*)R_WkZ8su9eI;#<;A_CY&eE}K@SOz-rc{K30F_SD`D z_g?X6`}AbPM?U<*3y)p(!GHO0-+S+`{osvH-nrqMr#^At>8JjgJ^1DA&2zzx#cKW?PdbE7OC$4(io)<2E{bkSJch?=A z*DXAH^x(E_zc=8z=e}#`wsq(4T07GF(--dBaK`ytzV^Boo_O8Dk6!g(O|$kuxc~ki zf3fgXtNi`%Eqe0wOaE$7@4br`=7$GpCr{pX+q2()L-n`*)3tAS?7rW;>Pu-m;aUHM zzkUAsD^Gt@Z|~ttzWEwUk03{#zvL~oH(a^y9j6_6`hB-8TQ%^;#$mTzvFc;RwSRH* zwr_v?-ow{j@zhsFmTvgwhc7$nEtmbq@;{sU&ztTlZ2k60qksI=H+JvZe^z_J5AM2> zjUWH|18aXYa@C3DO|@L%ovW^@`|}Up_rgd2{>mdi@aR>Sz2(Zy=l#YvFZgzxQxmJkweEZSc-f-awAOH2!?)~Qa*FE}IhwuE!^}m!qwy@#Z7yjV*Q!o7Z_ip&a zQ#b88<9ly;Yv*};2nxbScO z{F8Sd+P?doyLO-c=#{_nkt1He_o_#(c1znlp(GczGv^TK_nUnRfXd(GEIZ`+N%CNddVyyU9!g(sc&rL$l6_B}Tr zfBu3KzI)hJA35*biN$CC!S&bQQuw0-t4{yuzzG|^vi!U|_Fg%?K6&kd&NiNww#V;y z;y>co<`a)zb&I>Ob^CKS+_w9|Q@-`dMSt+i?Guk!xO?jh zfAPfD|M0|f-#z?>ea*pKc>we|2zrNsWAA0{s-}ZyS_ET$5jQ-?7(?0m! zvK%NLbNc5myk)AeyQc#SXXe>s)Ag3yx3}kd8$wrlFK{;F@BjV{H(>uWA*IJ3*EOII z_I5o#J-z3%(XqRp*Hx}GIOfFGUZ8hF?7j3xdZB|)KmBwszvyY2WA0Mo`!1hPZ~We` zGSe7({`t*1snFG(X}NvBx4HiOo?I=RaDY$O_j8sSE|I28;to56o(MfRj90|RXVgBwO~~L zO}I(Tip%4Uzz(Ze%n9>DwZ2-BB>+j>^yMp9`&;^up1wA@Wx9vG+Ohx%eNOSZ1?UM` zl&(p|I4aHivWvB84QtaXlS21FR?1Q^aogje>0alcJhKp7d-sMLuw!J3h0U4DM39N} z4iN*#ke1ZnRcH9Vphu8@mB}1uxoq7!oysIT+eeEnaQ0eSyyv93uJ=RFZ(UK+^GseP zldT(`?_@HWcv}j;C$(FZqvVF|g~CK8M-r5W_e_f1byo_-Wx*DiQ)X$}8_OyC#m+bcKEIL_|5)o>2ZeT&y`8M27TDt zE2z5Y`g^F^Q(%$zZa8JAU$1xfUO84}Qp#jPJ7HP=xs#K-p6?(NJ(ttDb{m;=Yf$;d zC(nPZHmx$*n#x3RW^TiVJQ4)c)b^0d_JUriiS+m5>zJh?hv<=lbjC2D(`#l z$!sF#WkR#tT`JXTwEw47CY%D8%7iQ{H2>Q3zw^lX=jRrwae$UiJ4Gg2w~|B^H{-ul z(AirF_s%?X1BP|;WzYMko%UMnRNlJvr$5!a`}glI9Lvdub@7BxYcg#Ze z9((N2+oa?k2l3Vid$f<~MY*)^DsUF(Jt`Axhfp|`$&*i-ZCw`mKizxdBBAekNha79 z_hoYL-P(6ua6w%gFNa$3r!Mn3t8plWOXIlA%Onv!gHhXL=Cqdjd#Rlae?Y^$44_}b zOrzg-sfEbgoVJsUFI}JZU76IiYv{XqnJ69eGST*;?WDKj`Q6KQubESsa2ODFm}zt5 z@TgbzUA@cIe(D6|q3+%91~qC^-!Nac7PW|TV)OYk&#eE9c9O|ta?3{S0eO^KRmuEn zC9}y}#kq%V$C9|r=1)I~=$V44Kg|3uwGkwp_i>4;JJZnAw>Go+OTd@TTghigAFj#h zhwxc_n1=0qI<|n{a1uYjdtTB@OEP#c_w(axel0)s`*bbQ{Lo!}32yW|8W$yFfb(J; z*Dr&*u^X?9>6w#j(IKUUe2(;yHel60F5pIPi4s}G+pqO${x+M>iLA=(8pniu8Q%8% zd5rxtEYrFhXy)mn&m;9S+O-@#-;wf@%pQ{RmTP*SzSL*x4DVC>$7&HfLNc%VAa;km z3F7?4^gKm9uTkw8YnQO-4jEu~*gp?Zt{nv*+L+nsUBc5b!By&)6+S&z@kRSb;8MFq zgMFjYk=g>{fiI1h;=cB1*_vw6wnv@F%^I(Gq@S+k&%ruwSNrLJ3~uHu z$y5)>o6$Hi5Tns*PpIc3){+U0=X}IIT;EUa7GDp}4`QDokZ3qb?HJSZ z7s)@!JCm6!DNr;X8VqmEDK|a8aXrx^;2EV{UO#1Zq)zD>m3>}d=a}+hMC%HCZ4|$3 zOI6CFI5FvYs0UMveQbxfY>Cd(QJPju8`id4*NIi?()Nm3KPNC_V53p@U^_E6E%)s2 zJ$7J&_G&e$efi7GPxdfZ!7<5L!3kh*vMU&8IWJG@*roM4&!0`B@6x(y+LY4kFjwgP zkls>pKK$&KNg7*;ods5C*vg%EVn8>sr+4S`r4lk zBkhOgbRIChLLs&c9eR$o zTdHvac<#*Ux#DZH{+e zoPYkJ6~b}Y?98CiiS*y_o_^R=cap)Z{Gwz;82#o<&YKhCgm z1oKviPXidjO)lz9r!v_TAmu zWWvZk_sAnBoS=ZoOYVZ1arGBx&2F*GS6VbW}m7t5^=^Q79X0gy?ef$ z&`@4=RqG_}fW}0c8vv$JHF8g086T@6{3;cr&O3-!^E!xe_C_3Su zZ`p8@@pc1x(OYy5@%X^9wFvt049_1anFoi4v_Ht&2{C(WHTsWk+hxUEKcgo zj&qa5=v!iaeP^Fqm&zo|`L?;Z(3i=Ni@USVOY4%k{re9cVz$jDExpMN^c!o z=OdG>on$h}X8Otp%IK}wkhPO~eQs_KTde#Q?d0HQ*`3N{ZjZ`@UZc2sn%-$&msZbr zFKj+>$Fs)=?c`v<7Fd{(&bJel$>qIEX(!r8YCDNWc1tFcSlNZU^iss8Zt|H$p766z z?0!aNqO_#ZnirYe!|X9@C#vn*PIjwIu>4i(kt;Gm_jyv#cETFUyiBv6a2Y)?@wk&S znP@wqhk_n`%1K?xU+OML-l>e1feo4LOl8trid|#cPEI@RG^x|0GeRZ#h z2(JkJ&j`3zB6(Htm5Dz$w7s9wZx)BAZTzJ;|H_P0uMGa25KUy>x%r!y`}0^{g3Ipu zVbg~-;pLgQpKrRYSH<%hI*alDUBas)+$$nzPX8m9b!sm`@G1Be?$zm8%h#{6^X^|M zpgs@x3ZL2FE8J_(dPVS+$v=aJS3u9FyBA~U*-OXrGn^ZayhiiMKTUP%RmAuGf6bdO zZ{DZ3ddcZzsqct3#YYzR*5IfATyWMinx^k_rZhV6 z4wC1aE;n5c^JxH~u1%g=tqV;oY7=jWa^%JD0*B|iVt767#mo4BlR2qYn?cwq(a4Zz zicZ2BKV)4H^= zWZ+wY@9{gMu*mz;m;7J{9A z2$g|rB$omiO~p<##U;_$JU(L6M?Uo^LQD0IOTJ1r1TbP38-4hNmf@Tl)t%O;a;>In zmck!F;;C9jt^vOscA182&iEW~lzFVup?B(>_=d7GqBu{`5OR&QM9~ObBPE<0km$8x z9A4(ktc3I~<%Y`ZMa(j*vk4)czd=o>GCcgGf=r<_E{!h(HsvF|}d5VYb!rey)PUS_zb!kOWlCpC4m zvP1n4z^8C&2J)!*)#-J%?`wFTYQ4iaKnCmVFPstyM#>B%B+g3>Ki1GJ{V@ALP`V}s zy;}Y<>|pa`3pS2CZ1DQlLszfJ=q&Y3S0#Am2)PEeXsj8@7}c4RT4JfFuHfX$IgVzh zap2>>uKctzQ}dn$WWnb!Qc4jk}eG7rFaRCrH-uU}4ap0ZpDg65$uF0HmBB~6bU z5K^8@6U} zRgpx&X_UH@M*1EABA%Tb#fLP$8e!1W_XrDh-MtLo}9umC(F0w z7N7U|l-lA@3c`o;Du;LQEWUM4~Fy|ScYy8 z{I)B~?jX8@raHwQc(yMK=$-LR6E{);Mp^ z)?=ZifUJIN$H!UNscYH9z#l`m>;|Pl`O!^68789oZdc(2y3# zv(;I6h?}9S6oll(>mWv5eYDd@#w7u6l%!)!F_>nQ*bv}s)nPE=WXDV=av`eJUE?^- zFBPZCG1yTIkuxph5mFFkCch+dV_N)5>L!$8YEegvQfWkvb>@a1Gys_=Y-Z?wT$Yol z3P+jM!oZLeMEdz;mAx$8qp>nRa{8M{0>35 zRItLj_%KWP!?dTSs4zIS1q@+au*#B6WcH%HUy^nX1W52T62TCV7qD7Vg5o5MXRP4z zLaV7w z?JYYhhl?0|N@BbsztT*B2~M&FKG=dP$Ur4I=gt> zdwA%k?jXb+*R-CJ_ssjG3G?%j97z!r>IWV ztXq`7qvQ#G*3nKDv(o~|s}i+8?8XFbE{;*@%2_+e!I97v?|gLl<73QTXyNq=xhi#L z%%ieyt-B0>bz`84ps&>?ru$7Nx@r-XI(%9$^^R$!kBvG>f=q|BiDJD@Qik244PAo!+iT>@lHB}jvAw#A)J)NtG$e^j%36w91ZTTgP6F} zVC#hCQQY~haXD*>A@@Xi(EoRfXRM@;9Ep>EkZcjI7wc<7I&t11^edf}i8WJ{9B)K#;s+uNFT6;33?}=r02!TfJ0|aVTO=@KiG#S?Wdv2z zXqfG~v1K;1{2WIUvU*lm&DnaaNR8uALOD?;{6EsUX}Z(-tY^vsYl@K;_2SsVEn0%} zQuMSOO=S5J^(3mottJykTi~lakr?Gw5)Sl~+RA=TQ3GNetc#F?fB7c_jRyhw(yW=U z{d?woniEr4VrYG`j`0C_uk!*;(q}lFQbX?*DOnkbvha8%nFhy|Ic%!J3JM>%Kgav* zIh6xM>gTM4G@$cJiOLyOC4dG%dEWaZqP{jWKq^)$pwtq*=XgBL#t+Vrg;oWr zonMST>9Teym+-kOE#nc$1u3gJOj|+<=}f6(+T{*SL{X8oRH6wvomCa#I3XLG37@|DIdn6!fJFsab)V0XO{T4quT#Ki3ZQ851Os z$CWjv%(7urIXEh$nyEI?WuTXpI&F$oDqV@y`+RuL*b&Q4Ab~9?(OiJww<~20`8AZ* zh!*d}m4i~^+GVY`-UUkLz8uOaAX!<^t?g8Unz_v{8?yRQqyh2o?teKBOfVgTsK{}d z5JwALv?IH(ypgE?P2AGKU!02k|D~NQTKJ126aR}t>c3N(a^Pq5YoBtYOo)H)|2`~Q zbmA{oU4DMw)|Z!28T~)`P4MLVukoNiu6+hr`)b&qp(nR!`RK{RuZH~v4iEg|(BAyT zA@$!WO*!y0+R&|z6xt9^pr`!TUlca!M0kup9?x|#x<04s?Mzufv+$7zLWU__ZM_37`=FI$j7tzgflesl_uwaRM%*FdhSOCr|^0{NQ!4i zmVe+J4ZD}(ugTKq;pWfy&~h|?c5aB#GdJE&#>ng-R^v-qJ~xy3lE+uNp)*Zqm^tTt z{j?(fltklys5rrOO<^@akz7-#GG~qKf_XTjc}dYQJ0H5j8Cs|D>oQtQhFhR9&2PSw zv(|h`*6-_I?iWwM{D}wx3i$-H?w>5 z&deX1f+lD+NA_tPBA(ohe%a>zGlX!}FO(z3Iju|WZr+@JxL@}e_&DQ*0zv~XZ2Pp+ zIl8|GFX8_ABH?O1i$%kCX5~xu1Shx%TGi(RSc=b8`(fp|2VcJqX`KPn9UE9J+2!J^ zGQf{bOS)(a4l;d>FN`L@C9ky+?|I3erf^TR?{<}pRjI`@X{aF=Y4E8tgTKUhKgI3w zAqxwd8}s=$bNcBeNS88d$f2de2;PT&s&nvhmRT3?37>Ni*C1RpH`{amE9B2mQc&-Vxp?VN5_=-K6FgZ^Y zAy18*_;q}{axlmN#%DU?Nl2l|<+yRACKE*A>wn6pfS);Ctv2rz19Xc`S7U@kLP+%n z22c=bo*i+d?426{l!y}PV3+=Gl#~cZBp7y?an6w;#fZPl=^a0tu7u#;rR9!TUF(}c z`P6smHzlP>W4#zVtM>-9#6S{usAToDz{^Bhq$#cdXY@;s)1Z{$F1nSW1vrZ}ijA*u zTwqyUA!JRkU`E-pH3bvg=D(6i`$leTtV!rykb(~+WMn`>+$15zs#+blP2Cf=8X0hS z-V>rR7_R}<=d>7Yyg}=uv=I~1qf^+lj+iKtpeZDWNN;el-9fx_soG{yTuJ3ie>9Ho zG*mnz0s?$|=H)|ZgdSPKELMyR$~A+EnTk(wjEnY9v(%m9%}Bkq3c8l6HsfT@%m zb(>{LSs*UbQuw!8lGmS=lOwsCj4B-K#)wPwf*XOJ*v?9D`pK9X1~GIsQDhhEVmfdo z0Wb?IICn@o-laI#Dc8qs!lzwWL!9#2r9P#OrPZQQg@^=xHnAbnRQ;tSLpAyWIXkri z>Odd45}!srb>Vw7YND|O@S-*=k1z!0bGfoKVZx!zm55$V{^=-|?stgGgax0lAH~ZImtKFN`M_M&D2C->4TQkyWEc0mu z1h!(=aSVg(=B$Gud(Vm&sxh`xt^>v?T+m{7DxKfN32ooYHl{rogpP~ zTbF2iUMYLfOKS?U+x}`#dC^ebb8JYM0Vry*DCTg~^E%>_8o6l5Gf9}zN@<_59onJ( z$Tl-pNcJa21Cn>wq5}+9b!B-}Z{ZC>9+f=@jzi=9+(y!(#dRkDYzJzmRd2&C14gzS8=93Fxwbk|E6<)}=wyoC9A?|iG9}|G z(MBsBUGpJqr0B)YfT1l=G~4nFDM*O5k5D5c0goL`SE>hZ95oH>h=;zC5_ez->;B0Z zpbK~p%HU_ijMO2B&2)wJGLE`=VJL()EOk6>tm9HjfEFoP!_~#ZH#S;z8=@vlEQdQf zL@*LS94PRDZ&bh&WIWhT+iAmqL3KJVr?FN-AdM6|ME-PwX6 zV&F!W5rEh@Kim70YoE)w~ai7F(q?8EC?>|jHObzSi#idxVqrY45U6Rc~W zUO}6i>GB53bd1xjs1lY0>yxzdNvaF*tOXPDs8iL38C{MQF4AYKqofd2>`{lH)CLO2 zR~lnBs+Ik5TC02%hjI}G4~rwIxO^Sf!!1~=4kAKqY@m4z1~kS}Jv+#9mdex&<2M~$ zJm!J3{8G*^P2g_8Q*x3Z9MoOO&hY{^eFIYQM`!`+5p?#N~29v#u|}D zVd7b@rfRKg}VeF(Q|UJ>J8bxTZ^GAtbVK%}Gs@YlVCeGv<(J{p!}f zZHfm3s&@~Tq&q-A=9uIn{p=SQ>Srml4TRT?5`ky^sxEf262?QvQ_c($=27zcWbGi7 z+(?R02>=jI&VgRmTJp0t%ghtE?L7j&SFe+wla7v8&Do2X@3s1@w++JG-Vo_@fLMRgCwuDM0pw0f*Tq>=Uk}7xozGq-h4fc zwA!`2jCTG*;*Xc67Zy7(jTl&6u)6+QmRVWrholQN)yKU&fN>)FcM*HB1P`QmuDE^a zwPCGxci2P8E?W3Htw@v~2p}L*e_hMIs}qZT6h~t+B-O`xevSf0jIvrv^{IyJ8}*Ih zFnsFc>;-JD88~v>H^x`ezE(xF!L#p4Q_({gORVfF)$lX2`1?b4Sz=b z$9=ecz;f_RFl}!Jm_)$twio~Qj1Q|B7prCak9i zAD*?7aHS%@Y78T=IfA)aed5~k{mzV5W3yo8IkhHylG3~6vc;^1Zi{J%p%|P`-hlL& zUAUEqe}EWcYZEgoO%xgH{{}(o>?;7+qCI3&Q}@p7Gk_n9wr&;tE@w2FtQa zwhT{b7yg!-2*scjmG`^B4it6h$D|8WA$s8J%K(aXsb(0z*bHtG${q^2YI7HQ?3mg6 zHY&bv^H6xW9J^}GN1k00*~*r*Dz$CR1Yb3(Zxv!>c@mNV4nm-&))I!g;4QQ+_O{C? z5cJ`!%1I~MlZ(9-c^(E_la1vAPZ%wBO%fw-M*F*729g7$$*j2yr5VscA#!tTUdPTWt@12mO)A!oYMeqoF3aKa+#3>NIl_B ze=5ijX`djAK0~kRb7YG`WIc%z1W)h$I(l>FGh_vCH3YnHO%3FcLwo9ZS(Cm{xZ`MT zLsn`MNiOkVt<+^`xP~Ry|Lf_)DKHrsz^1A1v^>pU1eB(ctrqqg^| zn@fThmV^rwBt>>Bp~}WadS$dzfiyGv0I;;{I(-MXm_5=*p7n#nID27;4zcT8yVH~g z3)P`kT(~G|hEg-?J3AoB)wE00 zw!!98>-{ii!rYpdO$jeJ;t=0~#HwW2$n?UblPj^gc1Q1u=fn`iyg4!A-w=nw?K&yo zt%UKeX__T!mB?BK%vthpV`K>UhF`PfnV$L<4>*u3*1@42fmG&?B;ypyd5G;$NvQW& zNbrDUT(HamI;3_L$e{%ccb~GJuSXGFUd41ajw_CK+{G^P4Bi7$Kc9@)J9Z+BlN>wc zZ2E}|fI$9i=(uFaYICW4}-sXfR8V)p)S@s8D_E*bXqW6>5@0JnwkxNiS%y50uP zt>QZPKKJTM+?8eT-9N{OIOFb>3SJ_#fsC~ax##w1PBJS`ti-?UGfwy=qTq&%&R&YbzUb7syK&buZE!BsLsXwt_zjnrdN)D+bHREL0$q zzDFuiQkJ^n5H|;UnFTIlwBcJMEHV;(Sca;m?uF4WWwc0P6gQX|DH<%qzi5m6y#dpbMP(@60 zKJ}78S%?{eTNK<<re6ZS;O%0%*M&h<-fph3~Y|HUm0`7VO<3%%lYUMd^8X&4lqIAmUh65UlP3Yu@-W|;v$TI8D zc^>tN(&?Ec($BT<)9|+uk_XhtNInx}eW^GDGQx1$i}sk181eI(bpA0J`b=iHg>n>C z>D2OI(k=<-Vber%W@v-AcB3GK!Z1sMwxqm68Pn<<0z5Z?F&3L+KBiXyr{+h|lYuus zx**_+kfkh6fCgL)o}!mw1-u~Q6p+c~-y073o&h(UPdi~=1xlIDrb9?uGT;WLA-&}$ zXJf&hE49(4Of=)0pXdj}rxl9tAMY6;I7*OKIP3+4^2N^3wigCXT?>@sp!9u_Um?|9 z+$0eWLYY&d#vGCoTWpDUtciAWZzwr4KOEln0Y{B}BPKd0s%K491WTnhgzLGc=Q=Vh zfhl25D?p1-4Jtx*)6hkhrFYVUy0_62Ij013qM``~LyrcZb)r{6Ma8GRhJTC!X#k6H zoLw1C6i`E!ig+14GD0@c11pB`^|rq7wnAU9i&>>|OMdRELtfdZ*9*(JlqXIufM*h% zbl*^RHX>*1G(r^XsMP2h3NF|%*l{k?E`~dd^SPI+QVoJ&ZdQI4v_Ss;|ELCq1so1S zY00og`+ic=xAhI`k|aWE=}YOD5ZWe;LIzAJGtAf}{WQ2yho~I&<%Y8q!(1B)w@4j} z3fN9W2I^Sx!V~LhIDLvZgQ$X8`rFj(nV~+W=c1EKN6Vb36vc(Zrk%pDxoE0}_9OF) z?OGpL7@K-h^ng#=LO39O`Bqp+Xx=*C2i((`jv2m`p-cSwE?+fkP&W?Ukmno+K{A5X z;b=+1#lqS1C1_Gdx!R85>>KXddQ&`Sb7!p zA??UQC9X+4ok>&ecwl9T<4+&hhlvY#i5p#^XaFHbA9?-p^#`6< zvA*!pr>F0-a0U%K*9vo5<@fke$)X1wMEhi2i2<`uZNY< z1jetK=^|oW8LUKl%nE6eF-&fMLfBiF-mBB z4)BEIAf|CW*Y*{KX6)g&Zwe-UG9Gm<+Qh<))rDwMdkz@G`~)ojnqDFVf~+kT3wwV3 z)mKG{(x|mlj1_E;E-|jW#yUNYnfhUPfP$cy|KXB1tG5MGYB&XT1E7*9hZgR+P|6g= zonC~~K^jZ24m{LRe2tRU^n3~cr+CD}Pk|Xd?-X)zG%H7n`DmQZ^NiH}JnxE_p=R`U z#L^bj8UD23fEG>-8DYdhaaI9*ZYq&68)=+TeL@nYe6+nR!Qj=ctZdxm%ikAkUz6D% zzU6FxqQR%&%$=i>9&Dw;@QRcKiw&a|Zx5>P#B?;vx9Op6oHG*+`ppK#1}TW(J@fi# zgx)00pqH%;vI=%;RUWcMDumTw?Zhkws#F&xl4E)J9T{n(*Jx}fj7bId?X+z_$OS3S zPU}Iw#u6)u5B`${la$o{hB#E*H1gLbv2p zKO9}%H*~Q_yB8LjqM&N1gel%8j;6UR0EVTl`v!X3J$SOVyvkXnITIgSc~=@gagRhuD%U9@!z{9KUnqUvH~ksw7Ipb=2qnj zv~2V!G$K`Mu#j(7vSea7J%mE2UV`8b9P_b5qxpgI*EZU}Bw0C<(LQSm#i3;+T$Ia; ztcW{UZ_ZiS^j%rx+^x=XZE#8wKe#7M_9Y>C#O3p*zOY)&xkiW5ZY-LGg24;u$;_zBC9Q@#;Zgo!Rb#u<` zZPU8!=DW}Po1Kd;y>jy_N3K2f%xk;bH=mZ8vFc0ywxzG#p8m(v9-MX4kuTm*e53F5 zZ-4h2XWj9QcYX6)f3WxT7r(Rb;6Fa{@-MIX#KRB&=dP_s&b_(*tzUilpPqR0@UOr8 z{Oem^`<*}OKG41UH+wh#>L1Vj){%!!dvWjQ=goZ~wfOy~o-*UUZJ&D3Kec`0cVGMR zr!MQCd&gO~|JiBppYeq+?VEG&J#)7I*(v}2i|&@2F8SB%Kk%Qg9(nN9>*l?3+PqWO z%y{^Q^X6R<hS8rdmB3J*;)+^@a=XEDfzVXUOFJCwOhyQfu+Q)x>^Ld{b{K$=W zuiyCW*5#*NbMe-5&)xdj%9`!6qP^heSzCW~&5i3ndGljy_k3dZvKy~id1Gz;;@3Xf zxb}YE*nNxI|MK{u58qt=$nQORUUyge{qOm&WxsgooOgZmrQ3e}TxQ#xhadR#4L{~) zkKC71FMPYY_MiSVx$lbY+rRiX-+17>?rV>}Yu&d#|L*bM{PNr@uDf~sH~0MP2OnB< zQ}+k2zy6v3_|3(iJb2E(9r?))z8Yd&lmt-1GRn%*|kRb?=ske(&+KR~$3@BLlNmZ(RD^x~=QZJLkOFORpL#p8lI7N6G`gGd}+2 z)-Ns}f8wSe{@veQf8q_<$t}w-JMZk9F8`fHXWhFsmtS=1ir<-4kk;_lv#$E`y|XV_ z*8cqXiJv)d#kAKO$8$NpDjsJARx+~uIxyn3eRDEo}dgYBJ?c=XJ z@usUb-e7*e(*5Y|*S?nW?Zfk*`r(mRR{ZWqu3)664M!g7%Gdx)GBU!6ujvFGRf2Bn zv92UJ(>SwaiR1)g%vG5X5Tj;3Hq#)iQmVa9h^^_1}Dy6);Gp` z>6eZSoS>(v0+Caw_3Y>~&+H$mR5-?IvO4hk-p+xMNfdS#fHLqrsj3VryNY5Ec&JNj zWpbRef*of8k8xh_^gpdlm3opyEPokJ_0|)v4|cozfE||?Q^%n3P9h0m;Yt#QtWUaQ zImoR7_RVumMOGl_}0tzZm;_x%i*Y)`7M8b(oDsF!XM#875cKf>P^qlQ=@KWXAZPzQUCtoC${bcbUKPVt0mGPp{j$CH;h ztXom`yx;8Y9^fXS9#7;j%T>z$MT=-1$`ca3%@2Lklh741l+^sP{CVl>8PEs&`}gTx z9^5lBlFKPi_V0iG`Q_vNiS#-M*o9o|;u_%Q53aOeIH5dY+}AsjnYPE}JDYnv;mm0q zkyAW5N99u!%gIk%IX<>-Y~Av4@PH>&3~8&bgC~cLiCd>UGQuhQi2P*Clf)z^$6uOG zfAz5PL|a&+>itXntM4T5S_>q_>RCu3>ucF9fB z7}qUVo~Z6po{YpiQQf6Cfb3g-!eb{q#tHmNzJ7hnWYX!quXE$g6i=q=2t)e&Ip4fn z9oV~f@=dMwu>-B{z5}YeCabh>J!U$s(z$5S%9T{OTctS7{kH4ru4$go(*FlfWUR-N zZhULhz(8gt%PH@tASOY|6HW+6cd0kMF6f}${^H#-V+P)sCsbxHGd*-yw;Qmrh10o@ z>MqT5^2uYHB|WyTxQX@=^Mt_3>bf(}O#FF?=@V0fGC6d`07a~3P{N-sf=Gbcd3HEE zJjnBq3H&)cJ0>tZhpz6$$9H9DI^uYcDqN8K7XMBP?U7tI^+jLU+e zWu|TPI|^$!D78XMysYP55KXUe@RBdS3x#}BIJ5@$P^W1>PrWZh;mWh=rrrw@`(xZR zdPZmI7B}tZsdy=VN^?!G{&K{f76A42J`i2@z^~!{#;H3mxQioVj_Yrs=*2<6 zy&v23c)u0+<9kH5MBCzfKr~+AX!zowZz|ry?*_?FxiMTOV%v0k8?z`E@x(dx$M=mC zpaYvKbGtQ@eF5#H7CBECE4_YTbpzn);F_mVHra6%`>w9^#EXv1a zQD$5Q;R-AJF{>p|M$4_$^bz-wDD3r8Uq&$bdN@Y9uFm}-)3o6k-xoqWtIWChPL>$X zRC#*$3jX-s5)GGPy{HQzTc++_QTzx!ir;(Rt!i^RT5J!?p)f_mZx{*7>Voy9iig7}7A)c`VOAX>LlT7}| zv0!@gu_Kk2Mm8rBm8Us2JJxZ2j;f9@n#}1~g@ZN~ppD~{MpT{A7;gps<#N`2Z&p0W z(3pp{b=pXfvlI@{ElU#@m!EucbzSdWmEu$Wa`0e4@itHJ|9^Qhg(djS;5Hq_nqgI3 zKSsTzj`Rja#%anEze}Tv=})If5#2i!9_7bjoph@+lIZq_qwTha_IRStxY+of9}Opc z%o8a5MC?1Pk_1n12Pvq(`zkz9Iv@9;9#1IgZJs=~9QV>o?;Ga^i%F$x?=BwY$hiK% z7WlMI$GuKR|Ceg~2yIN$Drb7`*OWO9PsT=O&g3eVDW1GKGM01>t-1W!7yI?vJiQu( zn{Gt*JMO{jIY!Og^f3i#L{^TUbkZ23_%3(73_Lc{UCx+rO7>!&aJx&)AI_T8@DNI1f|c>B6~r)7(A9omaIAd)bZW11(i zS30jh)}aM(xlT`aWn$e$aWVSukKyWVaggCCPt?Ep*FD{(P?RS!`RbWmS4SZy-0^Cx zyObxYyU=Wv6CPu3Q9N+qZJvDft6HydMOhuV_jeQP;#YVwIim!2kx;xh;>(S zxpdPOFmKx%#`cOv{qG^dQ`@~zhwj+;O{e>9fAC;0yl009od2CJYrfQ~UieXa$AKyT zom0;#8^dXPM7047$rpUC7aw?2&->CgGfKGh{MY~j-l>fuPr|>RF7=*_MZcCV&2pZX zowm)?GBoekduj7=-KfhHY?;J6;V z;7_KW(>Q!4#-*M*qZcm!FctslDZkl_`c4nHC^XK5Jb^F2tM$wtJFO2OK z`4WS_V8UMb3g!;}f4-eA_J426o^d+-0P&7?^pjq?qc(#(9xz&f|B+s}+CAbG|F&Lu z;yL`t+O$2S|KGiM`Os9lhqN5-F2E)+&bI|WUzeus7_k9lWlFFmWM@b5fkK6M_uZ+q zw^4^UF7})HMZIwB7h_mzKd9Q)-|-G3)D;{G)WKrQsZXh6_qaj}Rd}RKTojkZ?y@-E zdy;sasZ8VG_TUFMU(-*~PP6-3M+V(KG>iQjk5=iG&vO*KiAY@hfY|^(iItWvL-^1W zgP}K5Uk;GgcRi0NJ_NESAYTzv7T<;}*;vb_1qVu!>ab}Kfiws(s3@AU!FDv0bv!#Z zB>=X%#&4a6ENRz0x`G^31moV2X9wZ#G7 zB?!PBhw1`KN4LlEBW~);x-o$mhumu{xjQ;Z4r^AV8N+2CktQaf9mi8uKkqvp8_MX? ztDDwk$QF`jl#+!&#Q{wD71M)CN9bEIlwhZd*+6WElw`B|u>971LM>I2JU(QSJ&(I zra^D@`Y4x(j@{%BBnG2$${2(@2Ow+82FT)<80OoAMI5vw1x-g{O2CXAP^-L{_^%f> zXvq&H`H7t(9lK5Zdc&I7`s)Kcy##Z2N=beE86Gx=tzywmXSXt7d{5)!e>&2Y(>iKpNjBX{^1ON2}2Bj7-SB|p&E!YbSOqVC?9ze zXJ7@AyihN(9vduj2FzEr2&0M3AcaazWP!E?+O1*g9=lbNE&>wMdFLtD5CywTw za{5(R>x?u{=yQUC<0Sxb7C}Nlm{m!Yo}R{HNUFJEnX)Z#OmkpV{Ea_yiY9IlD2Auw zugahA?Xn74ofQhPPG919)iVeee>fXVXrLLiT1Fg`JRm+n(+?FCsE`e(!` z;lor|9OL)mwP)5DosvZ7&b0bAzh!94qf^&ZPL6*2b?Uc)QctRuPH88}bWw=xG9#o~ z#DQ6iu&)Wlx7P8{1hIoEaIfmzlplEUKME1gC1OVEq!NDelMKChn*(y-d7^m~7yXc| zPCGo_OiWK+gJDdB<2awRoU*Exe%NV|S+X8J{#m4h{03yndKZ(7#>?`2%DmI z3_rlj9~rIw#7_OwF8=7v{Q9?@cQfk+mXIDGQ=;mcrxYiupz32l#5Q{n>ACUf`-B!l zS|i-3;u)<4e(QYi(q2;byQ+xvX*!&u&3@G+$LlKBW0@Er)bXnBE@ESkQAP+Z&>#C- zb&SI_tJg3rt z#B7!Jf`%wFF99j`$SfGPt?aLuT3>8LywG~8#9cI22X?xTjpib)`{)Ldikj^-Dzz z%8R67oDxnnsTBE0-`k<(yj+xXkkt@OsknI4TG~_n6&3>m6uj;+gUA}MKeqScD{w`w zd4W6`l-T#;0>(e^rBo?-L^&l))H0eZ(p-Tr!_L|Ut%@egi52W$70+nr*D?vT8O7pb zJ*XDC?W~Cnu@hhj!-kCOa~;}+!CJNuBRTP0tiFp6F1e%f(ESjVYR+tbvPrNn+y^n~&M?*SraJ2=ND0YG5d%f@sxs&@c0wbf< z9YDe=wIkSX%K0#%8HRNV6f+DJWugL|o|;LLrj${lE<6_Kf^CFBfe}X$RVt6(^++w2 zZGH8UBpj_Nh-%Vd&nH=>-T|oXC5&-}!9^;#yAcpw6Zco8WId{N04EeCEr3!Xi0nLg zKu%>7_hf{TvtUVUg%bvf18qGASUb81XG3GyFXk#ub{fc7l?C5HOFlC}DODhpB67jd z)~E!~iQc7Pt(1e+aJ|~pq=iZ&90t|as(QngAX`>dqp2V~QP8Y4k1yMaJ&==j%J?Rd z54Z`Hm|%dVKp1D)_IBrBWEC&y$BsFgx$``>UjA;t>FXq+?|esJNaOfm;Prt5=`3;- zen`9u6%UfWb&;u-B7eaywY#d(38)k)c2VH-7~oB+ffS;&mm77#PJkNc*@fk>;3Iw! z+f`tp4aAwXty19dgpDA)%(vpF$`I5Wm2J)h!v68WY6`jlf1+8%_z;U0zv93?oM;Qk zvB7qiM6*#DAjv9eknGE9zI(A<47)&SWCE%y2h zq|9)L*$rIrra20o7;LzEfMQfpv6E0@=+--$`j1uva3o; z`rJj%-x(Nd6(MkmlA_ybX_v4x48k?2l>ym?G=`O1w|Pz4U66NbAZ}^lIGA1Hm&ppd zNljptwpRSQX+%N55RRNdX#Kf@iG<9FYYjeZ28GnfSG?6$;c&IJ@$;v^Wdw3MsvRT0nW8YqC!6{sRJ*@23R^c_F z5f+yL?`RU|8Bv}(!9nj$NUzswON~Ti_RDd&EMo#eEeuH1>641XHP7SwX&5+XNKxEo zh?{as!Byghef4WiA+zF|b{eu&YZL%l9Y}a)ji7E_ZGoC5`Of_>EgDjs!oFceE$uIn zKSm-O0rpyc;u*4yN_}{i1iOM_@caHnZc(x-;Xg>7n2eN~o?i~KP%_%Di@rLd+E64! z6#NGE&n7cktnaB%)SYlSh3`WNo7}!b{3ekbguH#J`w5J@@fS-{Zh|5M#wNf}*N~UF)Ii3WiHKd^ zkU#-_k=^ublA?u0Qjv_wPMAzk2gefaUbZ0=G7P-zU17d2RS7e}D%4*PpinQUkgvLQ zO>lnJ`rG;JLJ@aLLQuA0MOLk?Jf*ExI3=l%^8elw3+X_VVXGVRm}ZG%?*|m!hiWn;BDYhwA^^-8D_SAO~X+N zL9|wT3nLpl%u(Q>h1^CuqtV8WIAa39WoV3qhyJi69+X=)(amAP$VNHxS(!1Eb>`W8 zn$a+pjnVpi6%#iauRUdKIKuKga|}0d_=)QAG)-y1pE_OJ3bF=G32bR6r4QZinUa3E z9q^V8Gte*yLB?sz1W7JhlU*tu8N@ki!_-AHW!52wh)wtfW5aBbNUCDVQ4e7vS70YX zH_?(~LvMRj9+f|h)`ojJlDw<)eF&2_{<3RjQ}~RdIr(jQ$}1K$qY{)XJ`pA)Ge zW3s!=MoybP;1?dx!&$VV87>gsmiy~o?Xp&|eQsz^~t6rC?QVOWS3zrVqT=6ovK z;Cw7^=x&mzMC94bj)D)pG8<=ufUd-^@X65nRo@kZ1VCsYjBlWtG1<`7eV+F@!>($_ z;4hu>(*@djpPvgmba^LIx?J6mO<&37j9;4wjB6u?jAvXbUH8y7e!~fKZOJtDyWA4v zo2O`$x4B3<;X)4)3mRCiB>jL?TA~c)C3D}cvyS(ec^m(Nglp)x$rJ;UU_wUy{@iT0 z<6kT}n_wRpAhgft5E7xvuG6}|K0L5Qocw6+HZcyf)#F!T6%h^iIz}ibJ)gO4@nK9d zXk~oA_Gsp4(ZOJ?ZwI3}20i3dKLA-__r%&JK?Nngx~TQpj?NG0k7>PbCh`)31}tJ5 zw(?w#+d9{^TJ=TS-E32k(C!EylqMW**XzPnEsh)J-ISl~lt@epuu_ zk@-QmR4>;Ema0We-LlZqRHLo|7u4y6#Me^}lBuMxJLk1?bpgHl&zyYW`_A8Hp0#~4 zE4md_1>+tFy;HxfQ?&`1OR-|TV8V;;qRYLw5zwWBK8getNhORACVFaxM-!rnFc7Ic znJ)WbCx?n}N8C~8_T0TYdFGN?515+&Oq-sX|D)sxS{sa+-!P3^8pkfA0b~96N9DRh zMpm(oxpK*}O{@S&<2{*%A`xnLm$qV-g*z3)RP=HG$qo^|>FvlEZrz=l85Zbt5`|*T z35rAjCVnkg5rAm{iuw7Rk-!aua;S(0JDW5WKiUZ#v--~$`zNhR&OV-q+r6dH?C93g zvE^2ZojwTYjOhGNKZQtfSxSa!F-Ixpj6=e`z|Z%zhd_IjL9`2NlRN2+uI;cUZ~YEi zyUAuj$z?pb+=7K1`E%&CGVyA;K_`sfN{jGjB$k)Vm3T4m z)^HB_q5@b2l1I9+o?>uJ7=x#Dp)Us?XgcO;#DzgzL3WrBC7aC^gA(ITX<##!hFS;& zx{v7ryz)qI+vm*nIS9lWAX6(jE=GX*GJ!4U?EcZxLWiP@!i*=T%|66F-=GPR&v2r- zcF^=yLrGX92)y(^BvHzX@x;cBCjqWL5#c12@RAf+7xs9Na3gKHF{+Z4&(_WXf(0XF zW;>|Rjy?2pG!Xho#o}3>MdH%=63U}coad}rJZuVv)KHIML6jgnE9R8x8-DnE77i*( z!>NfRaiPq-7z0xJ5YO|IPD^s)UwaYTncPJTrt?X;pL^=~#t0?F&UI8~jUNsS^>LFU z=os&V7t7A#H72Snj*@$7cu;%WaCg%*=|$;z{uo~T?)^d91&$>e2A*FD(q3Ncmod!1 zS68@xvuHv#j&!m)kSsVqV}jLzi-+Wc>AMCqbkOp2u(s@I@y3Cnhh)l(cTr^Q>;P*( zI*hMWrL7?gcBWert)55^tu6NLE%iN$FSB#S|Z zCob@$5;F-V>&?j)bbN8-GnaP>vh&+M3%2 zAjDn9G+&z1M6kvW5aZc3iwa90YGK|m;Zl*QBiT*()okVl9YBrdV>FbMLNEhHw1X&` z6%`hr!bD8b6g$LQ4zh*;S1qY-;CvFwnC*w#+SM$GnSeoW75H*NK2PlA=)I7@J(Nal)N2AsR=QEi(L+Ue88rCxb z!ILJ;lQ7c|iMeMuiNehcUGQ;8@klE}C+drl1mmc>b^r?VB1>W67F#MRT1*LZVWZBw zbS$_CCaQcj$Wtq@F=Arci3c1lp>GsM;%XAq+5lT9jL76phg7f-Kh79!$B4&*z#{j}Io6)|jX5%4s*5{i_U`e`NK#>hyB6o9k0FuQLm<#7ULDh7eFGA$M;UIF1{DV< znFIUL09=;98;Fad@f+qYRJ;d;35Nip=d`k*ikBD0VYbX9$9Pah#AIcclLD0Lj7nv+ zs6&0%%Skl4#ZBGd#3>FhD}7O_X-RSPH)?R+vV|CKhkd z1yj9 zKyey?4sG&3aHNeLZCqxFN5!;u>Y8B8?tVU(N33V4z^bU3x^s$0pXt#c#*0ccXgnG+ z5r8IfR?`!?C@#+ntyauBVkF?FkD0BS`R$DNKQE%eSYkpBvc}MjufN$~RmA|rGJhn- z8W|>@N2XnO^;K!-=CtOPKWT#Ickkykwr10Bmz+m)say<42UpGQ$oD&JPGx~+_V$gE zT)Fd7-%4aJU-{K))uB~yq@g+gu3g_fvoqlh)UvJ8j84@y`aU=0N5#RxiG>qP&HVjd zVL`Ne=H>Z*=27WItHOoNLF2^U>Yezc2-b9*$o!4@#|MLaZb{S2Sa(PjFzjb=skE&Y zQOOKb{N&xNXdb(I!a2`j&<$;mJ-yWNNLWwhuJqT}sGc|Be0j<>@7&c`Tvb)>0F)ji z`;y4p$ndof9c#4P4H>AQ1TC$VCAq?V^h|yjh^7k^EBYwEyifqfcrM_om<0&6sMAp%EN-jSW>2#)g6JqA(_K%uur+jy%&`8&! z1&*De4> z`&p^B7DV}cF}b+h*I9IJWIq%}Y1X<2F9>(cNk>fNCErBLF;5N5b`^ku;H+7U;up#f z(}M%chJti8dM5l4ho`JH7pF69hVYEDTNto(Obem#HkyTEi`u+6i*z75h9;ub7fEC2F?B~p~E-F2v#$Yr;;nUGokV!8d5zt~p4w7>n* z3vZnL-SK}PfA|-#f9IWlzwPsXbl=}>tKZW6!pC3!(&TlQbx;1qU%&C(w;%uX%g^2W z`Ct6vrYGL_t2b_Z^@c~E8~^AVM}EEYlQ-Y|#z}vB?N7G;=4=1-&DXo{U4H!!f6@Ku zk$?WfH~#F2d*|M>boDo%c;bg&dGz+wEWYC5<*yuh?VG=Q?$&t=PoMX*b<0=&<(sF?8J~N$Jo8E;-5Ct+Wy`)j z=e+Xr;Ib!Pc>INH#>bBwI`mU_+q1Wy3Q4*@{b{}Kxj#DQytnrLpAUDR`^|e^`C4Po zj~{;Ee}Ci4Wsn{4sEaRYM(y)oFn%>{QiXxzx2cO>Q(1#`S_PU_R4n)uRi>~yKkyp za^&U%#y3{hyiJ7XIkL{%aQ9{PfoUmebGOb>y6Rv(H_A&mZ6Y_`RpD zIcfZax#e}|F6{otksB_#_=)}*<1fB&XzYBaNlJIUw!@e ze(&b1{+}1R|MmK5i?=?1!*?Ek>&#=W{O0>#{^(6N{=wzn>rP(vUt6ya-f;W>DQM?e;}Knzitb&%Cy6(VB<7@BE*;_nwuy^pK zeA2uZl7-7ISO-sb_VWqom0gX(AAkC^!oQmB5B|fRFMjT(t+(gl$#u_NvgG%V*6_pY(){`Qe)ethHXhd=zUhqi}f3x_}X(wA=f_~ax1e#(&# z&pY?{iRHI{<=%&$JN=4#U;op~7i>*!x#Mq+T=L9{kG*4l_vP1*Y`wYgE#=7-OP9@F z|K`s&jo^zJ1;9i|npfnAKXX zqfZBZ-IvAXa=pE&fh-s78b^rQNL1D1_&27jYS1*sHfb5?Va3VU{Ikhqg6$!RG5W38 zk+UCcg#GPPZoC^6c}>6g@>rlWJ8t7~8)Y()&}iWHV>78+*bdU1nEo%QVSoQYWD%`66^!9;EvG{Z+efi{MtM$H% zbIg`B6YqsJd}Y{U)@*bQM~pv69`l@5m8$Imd9;ee|OpO`%T9Q%lL7 zZ+Ry9DtnQ~OphnkWa8wL`(aeiUTdIV_bJ0Ic+&sA$5l*fwU;K8v#%Ncj$Zc;A1kkY!*v&H4uOtO7^tiRe8mDg;csuCZ^iDf4@0}j!<`GPNTC2nSP)PLjr_@1 z-g>j!ZMW@cIurBcIe5}7$^wnW#R-)s2iCo>mnRO1b8EBi@#HN{$-m8;yYQs{=SO)G zOUJKBJ;jr*+PuDbU^_hdHL#T@nT(e6Xj~FJIoN}bl>{Nc({KiHm_5T2c33<7Rc~Dq zOV_cn88eh8iIL~w39SL1j0`Lv$LcNFA6pteMk`gzJKc{BPq60uAo5_1@?;&@Vh<9R z(}gP{7edMY{*zzaG_E{ZH?p~3+Q5vh?UX04zSYxRRJ%K}Pk*s40d9Z4FI8GjI*sOn zCz+ThaI3!~lfTj$V2-T~r3mgp0t_DQZiWuZlYc#w=A*6hL=LD}VKfL&o?wrh+Vhg2ln8jj;* z+rNM|(IH)crYw*je;huYe^B87PoMtulXOy=vgy-s1Qn+<(b(2cpBld`_%#yTv^{c!Q4+FY9~dJhh=mJL;spO^hp3XY3_`uXW+6btsqkC{7(# zu#l+mrPS)#F%r)tLCRa0OBI+JPCchwo0v~*U@34CeS489k9`kTF1jBst$KR?op73eAMdEw5 zhwFuX6wGF( zk3B;;OT-^*DQ+RS*HvF&quI0djEePT3G#30)lusl+jxS9%C}HnOcTW$udnJ!!+p6l zQ7qELD@pVK=5O5taX3n&l}=x06AUf7iA*MeCSBgImc<>-#?jZ6%FLN}+<_^NY7#~^ zp?#Wg7-^FO{Rj8$&^{UcQ0*=UIB%MY8I)Xqy@rb{UD|s-uj95({N5TFQJd`VeNPVP zV(#I|6HXXWjnW+{?n`D4B&IYC1->|~uUPNuy#3xCN$vv@IK}^<(3@}eO5RNA-F2H^ zBrju`<@)GWHtYE7augl^)b*ac_h`T{jQ5OM)b;+6B#EVE6sIm84To^*2K-}saMVgI z3{|-ub(T7C6h!r9EQp|lVng4-*zVEHNWIOITnm#c z#!QTk7g(q6t+ip^x z|2|)%Sn=g) ziYLqayEY6@$H2BX-mO%|#yZNAJE||~x^axZKHo7ma_QlIEE$z2oQV+AY^t58gU6oATr+}chwFp)UCYJ|1>-)<)!4PqUM#=HHAmtv;; zcX&cMkmP6_TBz$KG_{rvvazF`z;D%E=OBFl|2*kQ zA>%#rV?oLxEd8px5FV^r4=`<;Dks^^y#wZX$>g!e_UhF|cb(or>CaG(9Bn84)x9d9 z6s@f}ZYS6r(@wD4?H?P%mJTq}_a(|e+LGv~KmWFEU>x4F`Qtkc;VAlEI$gQ_OwWJR z=I^IHIBK(}>C~n$I{)9vT0Tr z3Rm#_?Yjo!^gE`~9q8Exs@|&P`1mIT_a~ft(?lUm?uu}ORVS%uvW}iBUf`D zqa^rZq_&Z5g0U;)S7cP5tl(!9=c>#HZj9T9NasY%js==Z9CnlF)%bo!;$340@Eth* zJPsH2ON&-J4Yx)(&JTMu!Jg5?e#&84O5{U%^-5qd^Xrh#+KhD?AeMnsrUNzzPuNkf zG%XX2plmyW-#Y8_bhQSH)ok+A1V&fiJG_9iP2o+c#xojVA*Ek2mfarsXfwoEjleP7 zWToGk-ndNtfh}u3Lt5WT96~-z459ppmO^BPf*d}_bmhc<1TJVa@sAP&ioC6mGFkMk zrdu6(0Xhueq!Qi@;f!8)beyat&X;W(=KC&=;fQbvI)s-S8foL~B(OHHV!_!4PFzQ7 zzC!8M%!=Tv363=U`nFxOc}pf)Nk~TnWAIK%qAoAK2H~tyhHy!gtuIRm&S}?VWC6dv zcyT}F=gREnC7ypCb@8P{LO)UT6a;Vc8PyLPQ$h@=Y0j`Ew}^S58H@%ik;!cki{V^} zOHw>Pm#~SPVfm4gc!-T5==TotlAjXA#(_Z`LlRDPMkx`8<97j%>Tnd~i5LV^Lyp+7 zH_n&iZ?G~SsHUj1U)+2(sZ8;w6tn!6BxQXqD4GwroLojh$4J?)velhvbE#B}N&^@L zL~)&}Pk6${APgyb&hP*XE&>Je8A{hplj_0oF$ifwr-_FzhaX9%1z20_MOz+*9m7_1 zYZTEW%o$?{?!oQV8G=*@dfNdpc13=*XqIi2iF_JD#6*6e*^#gbaTm)jU#A$lKQS5{ zi~_!E@im?=a59vo*Y=%>vknM5Jsc3C3H%NI;-Y;m0etz>7qI1zJrHu2<*873k|su3 zOcZK-OpLVtvc!SEO71!DjeN(ujz!ct7eC^k9Pedv{RMxZ?P&Tj0##qjBX?XKK08ij z9-Of8_jGm-5M{{KMCQ<~niAw0Mwzr9Ibzu!F@+CbtcjoKCDBl6x+zZ;7;%U`C7vjX zPR1v~qNW&hWK`HzeL6k$jK@B7FXD1O4e&~Iy*xkb(RpHx=&4N>JrA4t5=loI0)Rhp z3Tcv(uY*+)NuVKx#1Z7Nf#w3&dk38NWLR&rPe_^SN3=G=^hiLhDS#9jPPs}4^II+s zk6X85t4>3lzR<2ntAJvkN{YD5Ve#U6`ON{MEL))_rsEUVkT#4FBuhsoT#1jUymAr^ zzjZ)CV);syuj3Q!C55^HzhZi{g3>yY>6O<9(n_E^d&p>8^56s?-${XEF7A5uR9~c+ zum@Ct74whORudSlL7u%V1czAHC>{|tp!4C6_Q_vda|&Rm7m3pp*eil4*-x}#`x)9U zbTrl84qY*P#5OBQr!=7~x1R*Vh_{Cqc+nv6EFaNNp{N2dO9&|7_>7<>$7JQRI$JBL zvLzqg0XYmY#2F)V;y2v^sTIo7Obm_lYe07h0&+&1RFWuB`_2qyb-;Ggsr()C5~otB zZLtv}6yww&x5) z&5^uHIuFF}j||ll#2Cy3OCDdb(mG9*NG>Hh7%5ITN0lYdVv6D2LYX+iX-px`m}%kR zyNot?M); zlwWnes{~Q05hq|D@9w61)^igE|7|L*k=1>|xWFol{}(~(4F+H|v~dy`EC-C&?z7hS zOx-7y*Qof`l_HDjjcn&2a#;^*E1X{zb1_5u(V&Kc4JrdZRzgD8<(gt0GTUVP!l)KD zSV87NxDOIoRMi|a8qv%?cy~<C|( z98Ay#O)e{*(W-}a?9o+aHe)f8or1x&~icbTj`lh=%fG_MQ9ubAdEs!7^4Veo#-7Q)@@wiieF*1+`nz`d0!6dKzx<7&dR(2$yU+@N9D6RXYVOlQP0;7gAGLbc&ZB97G6V)(ml+xQ;7D3sGl_d>2 zja;+IO(BcVda#iotgQzFMl-$)Pe29`p+1&-U(j3o0B^No7Q#hd_c z$VR#<=T{g)+CixYk#+0{LX`mn!eaO-EZB=oRE1rY+Vv=Z{lEp<*gd@IQM7infWkC{ z${-g!$UoXPB=l`+h@^=KQ-?-zRDh0-3>uDp4R``q zF%O0{5eSk-|69jv>?~4TgG5dXYLUb^iVaMIe%DHNXm<}lZ!cf9cS9S-B49omL%I(6 zXGbb!vHcl{mUe87Gc<4?l(;WN%XMagA`~4EVlR|;J}=KyfWZ!MBUY8E=VVdzRJyo3 zY|dt>DW%}`JIL|32zqMJCBnIqtT_i5W2%zNSE^<;(8%lW#!$=V9(W3mn_&1GaBXKN z>u>Ai4U(TuRDhN`w7cT`-G0zO&lSk%jOXk&sn?{^7RcpTf#`UIdu2fEpJTD?p%#vv zcT@p!^wRz^I9JJ26^pDgkAIB*o)1xmcghy$7(4_~djla)Yc6or&?su#j33A;YB5Ae zLk2B!(aUGyne#g-8>gQ6hn1qCGbE=bB#li;FbQvfFP(srJ)5e@sFPtU#oJBu;*OIF zaVml3jufej<&S`-KnmC>j*)}qvuqV^1k6)9N^+dd+2bQBY{P*4*AkopKbkThxzn$E zR`%P#(pWF31%tIdFNyXmda_1LLIPJ#+?xD-XIBqCnSGMJMV{Q|Dr;;TY=u48Ya~Ir zS_QD@{3gt1!$j7~x#C(<+SAN_FbXJUFJ{c(0R_0AEBU1Ob8^}qTtbd9K0=Mg`3n@R zp-2NJ#sZK!p7s96R~uO?8l^0WdHnSCdp-fZX{PstX)wIE<6g*?|IOG~+6sR^E> za0ugje}p|wkpfG`18=Yp7x?5dVZa_SacF?`751)EYSwHlqlv8&CTiN8Hn3>aRD-HF zaQu9>-`b1lW(KIgbiA6O(2Z<%w@mDDt5HbUCs70=%8*eUZK&pG^B}1B#``am)R8@2P3oz>Pq}obOp6TzXS2=nT^Si2Z8c?4 zOUJ~=AZct(9M1WE^WRO|&&aSVPBdJ#waxQF7qt`Y8kCyvXB%hDJ>`r&syQ!Nbj!+t6uWl(KFRpsgNeLpEXZkoT7$cc1Aa_9l$d$oqxW?9ly)dWTo zp>&!MHucI1Y{VLHZ-U&=mtJl=0yp0=(hl9;bervn((thr%qBa-$HIcFQI{J_zv+R}YrOk;R-3;KvN z=w{GNJBo?5^d?fLyk|S~+#-jXzOij*r0tN%Y{IhOVqjz~9UULpvdAbBbPNTR<$SLu zosLLl7g(%7BUf{^$jQ^$$_5NGY_MQxkvzHfzN`Iuwipd9YD&eIsO8Q6NwLapx%o8- zX6~g4PR&3!uhR|l0XllI@;u(50#8;Z8GYsKv-p@CTNJ)SbAQ40fa_gjU*Z!83cUDz^ZDeh* z(U&jm;9P|2zwP(y_bF#~krw>Z!wuBA@yis?=4+j}j7maG<~|u5VoPm45>%~7*+O%q zF)e*-cyxSNgOmu;9GRL5qDKljg)veTl8J#rVZYSHd3T$ctf6%hU_t&2FsB~Wh@Q+i@hB_+Bj;Riw-bcC3k)iyo8R{ zZf`Ui+vpt<;W3Mxp5)_Hh>U3ihBR&Q5lDwF*FmDI6UKPxe$RsPyu2hOcqVA&ZFtv^ z+fU*pK%MuIJ^VtS(Ci@dQ@PMMq^&JtYWIDW2w%`WjF@N$99|#`81tJnT4XzF>_h%Q zFpQbCh+!p&S^Qydl$nwTe3_^`!+HGRXD zSO!OIj}x}P4-4c+()bJk$DFs5o}?pwU@NVk6q;teXKqC|x&gK_xcn-Hht|)|3Qx-)a3fk-ftl}EcJq3+0try~@YoV!2%D5Oz5CupJ zgOH~4hia8_7Gz2iRpO#UQ*o&>c`FbmPqmn!NKg!Bq`2aTZR-muH|KlCHVZRhX%qx? z%=L9?1pP(z#5B2>Zl8ShETR)bBypFyp2=WL(_fD@9M=ZGLbss4mkLS0?9nV`ta z6#zkyjG$yp%`3Kh{-qKlFKYjkZaWF|Za;$;H%EDiJ4wHcGA@99Qu496lv3y*nH|(M z!=x2|z3)2c5tlR7OxTw$Hlfx9UYRV+;e`>IE?^oNrLFb;$HWAiNhK>_i(E+;uxr_| z!9>@A+6BXGWO0E^Of5`}C%Q=HScAgUrbe!g7(~Q{j1pj9-izU*M&}_n3`UqIRS?Ml z3n5O2Sz!X%6QNi=I^1C!O)Tqk586Dkt&~Pr6ktifz3;5Eu*{HeOJ4LQfrw4|@HM|! zTL;q3;Ek_oWp_cf?HuEllJSb(Ep$xi2&&d$pXHo+Py`R|*7OBHSPFRYuna(r#lim4 zaG=l8-Jld8j1EzxkmvKC`D;=(d~^*JoNb3|I}i9hMzd$s$b&4PrWr#c%P=s!3|LdsZp0w#KqE9D6wtI3nJchA zEc}v;v8HBdQmO>WU)|S$oX8bo#_tJ4t{HQ8!Tl&s3a;U5_bpnoF`lWnIQxl1#GJ zFILe80;b1gxiE~3hMmwBeS?hEV1?B^hNlgR3?$+}Q%|D8bX80d`)~L7mS{rfj9&;l zvM|@4)LBb23ZPcXN>~LF45bE2+?yQ4rLN#>n)*Gt&if;iMo|;xLFR&(B4Q%v!y%|Z7Vp#cuTvG$dNyFF7Wu0Ky>JUCG2Q=iVOZk zYB%MQQee`dpq)YElY~0(UmJB$38mgq8Ap$5hu(B!N2H#X1)dB47RZG2%>?KPVpV{u z4g#r&Q!gO?s$}p`fdogkQGIhz_6g`Jif2g3C(Avp#WuWzR>PM5&HSqG0(+Yl!hQAk3XAxP`8KRJpL9fTT#?fLg8iLXqehh z1hqA4R6eePl6CMA=VmbSyiL>SOz0ATGX+h_(klzZDh_pyU&POSU4+OG}uNLUC<}ra7H=Uj4`-Jjd%9)mLIVnwV z?=OW*W$%D}+;*4?m_`+~a?H*oIBkIo83bxBSlP^Mh|9OjAd}>f21fJ61v03xCT75X zVJeDHhsFCi8xzDQ$QiNgI%V?am3^iJ-HE%YH=0z&N`s%X^C6zKA2YP2a#W@iaX#=Z z$=d0oM=rhqCIBKKoasHiB0Mr#wzF1=zHEXyvV41ZHVx6igm7o%k}f9k$$8a6C-;c9)nX*B<08b@Pl7EDfvhi00OzJvc^nDl6U$>iqcG`@9Lh5gR1r#eTzHAn^S$CK7W+)8DgS~ zuNYvN)o0`S?A%&e;0CXgK=m{Vz1PusWNzQ7)nt(k_pWZ7m1EW8sK6(gx5>o`55NM( z%b0~+RFP-^e8njF>~tR;!kx4%v1|pJcZ*wRc$mT1Qx1qC_Ro||(LjhgpA z^5^gWy>~Wef9>IiuQ+t&#!J6;><6y6_PT4{cXzn(&Z#4hxOwqMAAac8Z=7`Zhc+I1 z;q52i@QK#LFa6t#AG%@l7w_D*Bfq8dE$==4j&pDC{ilEYK;Hc72Um^nS@@ApZ99Fg`-dlH ze|bk3CtY0+Kl*P{Huzz2(8UcC4t{dezK@s&Hia{1}EKe+0wkN)1r zzjeu9{QQ%rZkbH}@GrJaHFm_wEv>tb`PrVxL^vcn@-#T&V6BGaR zvFoy*s%46mOV8ML_QRj}_!Z#~Rv$Wa=OS+D__(z|GAqLi7l(3WF>~(ScijC zyWv|;|KjtnpLErl2Z941&bn`Z@r3u8199=&_rHD5%IjbH>a&kNbNTCc%&}K|_+#ZT z8@(sH`pD}S=U*K@W7F?lx%imX()p7zzJ-}SBU?)&i%4}D&3r& z@uD9r-f+W#+cveHdibeV-nsGIo43r}5`MCFbG z{=rd;vaLBLvofC{Z0k#3|NdA1>G#)P_0OL; zr!sx#vv>UKRR`ZSarOWB&Q$$UcfxxbjcoDj#gm@@`GwEzYyIV)UEccQoa*a4i*v&G ziSq_lUwO=)!5@Bn@fE*!&f@&yxhMT#^rEZ2zxj%Iu>8>l3+D8l`?urO-(2{wAHLz5 zkMhNe7unf8M&IK*L5V!LZ)~iybHgCo!fVuIfn$?*4_}FUZ8rN^$5?de+Kg|$=`PPV zxe9ae%gWJfAKJg4eV3KS!6#d1c5Y-(ZX#!PzW5?LUMYvKki6R6U8%e&-`K>kY9rkv zO6(Y4{z8rS=qA{nmtKxuQWw&0k%TjE;O|~S1>-_WIDub15 z`>>&=q5Bv*y5nE6d-l*vVuoHD`^_`;mm6(79G3!seY_l8!_)IfcXwf2&*|t~ddAH< z0Sd;(hI9K+MXh1J3@Q6OgPK6-w~QLnzI(1)tlZkHkP)BxGZXZSVL{Vo8d5ndZbq_a5Q<>=Z1vUT4tzF&wX!9xS+A{Iq z2s#cxoE}mfMkX%pC&sBPab70l-Kk7`Olucs6;vkPHRWc#?~PNQavDH++w?L4=0hL4 z8JTGP`FbO#2baivWH~Vb_q|N^H<8KH)+!ElFZ$DJ%V+ut{Sl57IG%@04jz<=ef#(r zQ8y<5kV(gjDwEc4%cT4vaH~6N<I(C;zP>iI?^d;5Ea^#%k8{zl_ZC!5w}BQnvj%A}Kz|Am(o zHWoH=uHlKH?ueG1%H)}6^qZr6nrKX(_05ql3hBwoAx=&FzGjEVL){lm&_CNU5igVZ zzMm8d6`koQHU&i{^qAJKm>SU6nw$?QjLB=~co&ttQWdbjK34BRZTNE;>s9bR>lQiu^gen!jsnl&Zba#)as?|Lj z>6yEzEb^q`%$|k;jCg9LlYe%a&YVY-rt#+%{W-*Wz&A;s$8*dgcU`cOzrQym@%jS325f1S#Lsm89Q5T;s#xl6C&fU}0YSTZqvc`MNi+ zsmGS;l-AUHAIjFUOWJ9|y^Sk!{m;s4HBLF_;snqtd3df{U}8 z(QUuaw;=mI9Nn3oW0ZNYFHzg;4sv#$-Xs&n+R9nGznMiQZ#cd$H>BSh=G(k&nGo}c*XqcG)9tcf9^|JO zRVJuwl?nb`1^xIS&G5;MdgWvs%I5 z{_DI<=LW-vWun$0y1Uylp?UH_K5&A$yD{EsU2=(+2?WCeFB6f!{7cRxmU%KpAE5MH z@}xhr*X}2sovBR9FM(x@ep2q~IYOR45Qe)P&4yl($gw@Yq@Qr|SLXzS^b?fQjC+(Z=NPc_(igc}! zt_6mM%S@eL_x)t{=gPUEK{)|?C2DR3arWF!KcUXN>D{3HBu0knuDnve==j{LGyTM4 z17RVn>n?4t>DkIa(teWGr{fYOW$w7{Xw!ZIEg|a=ZJWO%6AptYD2;}G;@2nLjQc%3 z4`$`%Lg7jt#WbF6P0VFTZ!r6%KAdJGhkiCukL7h&wSM&+R%Yt;Zgf|9c<#4-De=#m zin!DF6HYL`_?I+HuOmgR{Othx^_@1ekiOia%{X|K{dX4WVDw7Ef>iULw z-%pT<#-t8SHS{vAw9MD1HRdvAKFDOEoy^B;pOroQ5Cyg}=qGKNh|~*hD>FYT4-XCQ z(ta|CF^@6rC+C;>q|oI`#;Ww`oMjo6CUdcvvIYoQ!kR=PE=;kt z#S#)jSu$n0pa%7#ko)+pv+AFjZRjGw`Go>mn}WanvjlK94SIjh=M$w!T@>oo@^7O| zij!+-EGq#|N5qw%^?y|&Z777RA$c^PUb$J9!{?lVP)8UDpGp-qR13i$Dri+NL=6zB z)w9Y}Ey?od(+J}m<(J@L|Dn|vIr?XV5D+sEhK3MF`Ybmh*cKdiWI`RkIvB@^!e{2D znG{3FyQ2abIwF7~{t`V`}sa#2`Ojoci?+^lHZqO^RRPq1xIsNCE`U_yHs!mS3QLO_H!e z6+)`u3ntMJnNnu?t{G{>@XFuA;`hk~1gsv4^(n9fPHK$ttj5zJA-HVEppvA)#CT6i z1722qD(J(ms6JkX22K|X3%P=fom1pX6*%i1eZMNCAf90Yu0WTR-SSoS{Z9o$Z%yR1S7p`qm ziRt&bG_QX*sht+EcG)ojIH_wXb-bqahbLi#le&t`lhEjGQ!?EyK$pz$!F7Q)j+7>k zweF*Ndg1GqM2f|vaqa80gHn%lCSGCmKX5LfD}V{7D%qy2ue75e$8YK&1>?qUL;;m5 zy({xN%8m}(Mv*#bE$VHl2-wsauOuXXtVJ_`^KD~RjphV6% zroURk8?Fb+eQ)A<*FTC>NU{7zv_(0qS3AN>LZS}4riUOZ2-4D(X^voI6lPjwlpgI2 zl&_k18d9}fUv_khZ(1;pG-84ZAW!x@rv4ppLJP%dKBX+m^C3zNx{8li$y?%qZaY$E z0-6b;oai$U?*f6@CPk-=W#eFv3Hqgv=PgOEA~QXWkdG|T8yn=HO-*TSjQUMH+2ykb z8Vm~(h;h6?Zct@+N~6yKNxI{KhrUzsnS{-*#Cd1ZrjRliN;KYSO43lK)dTf=7-zT} zLPqg;7HE%}bGfomV+}d^C4Z$C?}0C zcsR!u2$Z*~N%WP1$A)M)U<^0aXbD+-|5bmWkuw!$gNah)D`FbNdgloHa#3(%c zi9~=p$vOXSySc;G6gw>>pij~xr(I2JAGydSwLm{ANdIxhIajMYJ`hxKPWvrk=cdWP zEvh*k%_QO{5zvZ9yIhV_Nkr;rL1h#eQpKry(6af!2E9+Yt5N`>?Hs6*Xp4tRqZBRt z@IMEw9gjHt+MxB$s1Sjc@Qh=R5nktidY$H{sm?}<#5;=AXq3I>It|vyhXZ;x0ZNNf z^!U{|cK2CDtBBydQ?BVQ1;R;m;fW$eXxw07{r)b(_D+FY5%R8Jz1S91iCs5Fx z27Xv0Rk1QaKW0l6z_!a&21w1veL-K$h6wF|$^Ft99Mw0VIgUSGx_BTQ#SNBr;&P5~=l41MTq4*IIE$209`(dz6VDU~htCq$Gw+@Yf)#D9RXy zHd2XV`!L0#xVc+&-+;NVE`Cqka#=7U&}rpYe=z`-N_|VP}js z5v2`mNggbTAQ65+L+|QhnuODWBXJ4OZ7-mZT9>+&ja!qmzDgpzUqQ8hxTbr?b5knKlExHcTdMFcMbm zyE6-l?*i;yw`YeAo0l3HnD&B`Nom?MTBVZkoLuq15jIqaqE_X6z4S z7_=eZAQMC%PLd?n>4h_YCUI7yy#oQ<(OCixRbZ*3<-F3`er?DGLY+>g`&9K=4ZDup>MJdh!_!qFz)$%6P~Bh~gj7 zAuoYcZ6wyZ#AZiC9cds^p5S#3vNcBI5T6nMA1d(-_9W|F0#osKE;wuS;(zyPLZjhB zG&t@RqbXw44>Mdj9<)ZWF*V~eu$I_q8?fCjsHiR#B*B!c;x~(~iK443G#4p%IL@&< zRX$5QHO5> z>H43#w5p9zJ6x3$6R11Y`h^&(3Rr&EHc(K|4vjY~`$X0=4un&jdIFyTJ&d8zX*os8 zRA+Pju&ZxWiUyh1M|>n($j>q>L1<*8$HYZv@C}HqrsNopL*N%v@0cW%TdI5 zdDWyB620>Ud7n)qD8kD;3XHv&xwy8TX)>}Y7P5{yaKv)EH?aMc3+=kjHQHFdzb@fv zD;;FbAJc((SvIOiFM>!$I#+CsP-C)UBw0jTsxW%5%tfwa*?Vn|`A$kxGgyFo5DIf%Ems?nsN?c`;2*T05 z9rd##rM1gU7dcDZ)3v@YT*P7e>^=8K1N{$=_Kn_Q&NpnET-(FkXuYFTRjNr}WuzcQ zo%hk)j+36r%VXKe8J*JJB#3R+2DI_e#??QuGzIflL1>uMt%KP#_!IjUm{C8H)2@Yo zwg*#nS;KFXUs;)F_={=(l3(AYktqEi=~!SivF}eaHkA9T8Z?F$YUzn_!4zrF=ET0F z9v1t_O=?#i2%iNyjohhdjr5B#WeFe$8mT+5L0@sJ0VFQnAEMxMAkvgL-YWDQ*i5m> zPE%ip%5)IYm(_!qGJh}Xu5zvn#LsfpT;!C59J!{P`70@Uib-2;}$<5ipl^r~b6Li10FCr+W$ z3qU@NW$4BDG+G&;d0~flR9ZuAhmTZ+?9nShG(E*@g;FxxaVdTUgcfZ%`mgQA8Kc^g zfYIL8;3RLsk-*GE(-nkQ=G;OKFBG*Q#|w)-`~BqPWqKSJ9EQ-Dz_JKx6x$<_Vg$Kx zvWE}8cr=QNWGza)Y_sL!gLtwBaE(=Bbo7(_hfJDDBcxEw zaxJ3ydA5=s8t}l-X$poUYRc8AFYPoQQOwgbjng@jDW>&yTIJXj? zE`wrF9=%?4gF>g2UEj@G659498O=YLT|$Jn(dpyoW|xi<_O>=d?w?V3r|IW=xQ=#y zlU=G|j?Rtve7CpbgZBML>78`IJY0GYJbdSj-AinEE+yd&dzZHWKPo}yr)fTHTzUM5 zZH~^Ae-EaVwr5M4H`AZOX6|X{`D~g8`=7qdC~VUzX&8H=OEn+;*QX!8W2-akpk<~m zbKB{Y={>o)9sa}YyDdw=d7o>CwH)QuA7*U~-WeO8@=xvbb{%Hyoxa(&sKU$EFBnmW z%}nM^BK0pAJZada_p3VTiP+xMO;E1us>BQUG)X_j~dK#jqx)i>`QFiW*h$=QVW6l`;nzH_!y3UlPyugLa zQn)b7y-pb3`FPEbdJVT>Q&h{j{RC(Q&rBV)?!eE~*_k);0Z+NKLZQp>0AZ<)rpA^d zLh3@|tK2h6pc8BC0ZUMw)zi!VCRN)cTT?=bbciQbmc-UZ%`#z2*br3$flrA6p3d;!T~a$C7Kn6h}Z|jYL*5)`xV^Xlf)u z|8K-PU6I5_vBi;=+{#uI)=8x3(<1gs&K+LFcnUa+)U+u*hUr2Wi1e?c6qprt zkk3yJLf&3^3wH!VCJco^CfOYUkH#gO+v}l%aK!W1=o73^;i@xOr2{XxlH*d0i5=(& zDT`%6N74bXf@@Euy6Sp#&x$_HD*2!sFa4=Ur!#F}5AI{hruj|#Cz*tU_r)|K@U#sP zs00#PYVIS*q68@g&2l8HVRRaK~_mxrPUR>cSB&R(+n0IjN~{ zB+xBKnlP=ruyU%($8iyFC&@oA0T*ewnquS+H>mR_urkwA5qo6;oKr09TIH&D9mQB_ zXn=L2ejy3Mf6nPOB1Z(?tA;LVKbOxA-ML|YV4FXXyrkdd$E5pjvA2#4~0a0gfG z>*0eWr4tZBl!VivQghO*-|VbL@k>ThJQ{HEYi$sh-Z3Kul;P(@9dDj=<)*M+Xq^;c zZt=V~CQWaX#ge8(%hJeExrcfiEvA#Ym6fbY0HL@x;X%J6j<5nvLvxQ#tBkatz$w!> zsiqZA^f3xy0Qsdzd_{H5+~i~9{%qae^h;mK`E6;M6zQfA{wa-^yCVM~g|?n)I+MGCB$;taeN zr)Zn}a0Va{$pNF0`g2H_8;($~1*;ZBE_IHdXKdiRto9)h*7&YrM5?;P!QG06s(U!Y z=&q$hM>A>SxAdfG6ZZBS^unotcY%9avL!la+%K&Acyy=5uqqGib{F+vu)tBjgkx&~ zbB25~S~@Mb?>5OY323%Re0iWYRkvGtpHQnMuBHWQci+21{>I5xaa4&>lDjlIn?Vf> zIf-O)XT9uRQqlLck*tjaE<uTPy0|*(Coqx}r&~$7>x)s!46@<4is33YL83KvR zkS3j$+&nyC!^%=ACC&s5SDgy$2}AK(1xpveV6ReM1UH1f+latia@od+u(mbQA5Yx` zW@cprm^P(*1!j~W`aZ@=4QS#jeN`|e4XF*`6%M*0Bb{{g6T|f?mj*K{9h6<e?FX&%x&!gNecDc$r6(sz^`kDkyEYJK&V=f)FtWSaj@y~jZsD; zix<3@^9=!@5H(0-lW=L3_P&t&0@hbmp=o`OVk2K>@ z-@#yt2Wv!LvyUo9H9P_8Oc%24r#6;p2}W*oRG^DQ4v=ca9#5l5T~vcJ%AKjG1aQtF z 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μKuLvs9ko zF{BX4>`{KwP5UE_1RNMCR&hMnbR5!(sI#QKRkLXqz-g}7R*}@8O!xG3E^CS99C2Dw zKze;FD{WMNpzQUE14fxt&eYRAzT1d#;v%i>PE)I;9hQ-$JMd--JyBLJhe%oiuzK$; zM}bm@>6%tfeOw@*bPquTiT4UvbmHEyHw+eRu7{aZeMG^xG8QiMoIk5BEEiP!^GH-D zhE>E&Osu~VC=sK6!@mZ2pvpA})iuCekpG>+>rH%&IeEN|szM_%!>>wjQGa|hYM^KM z&mqR-$2si-j5@y41o{$L0x=E;!C5_D4s5Uo8u?S(LozKDkhf;`r-d6Q$JNDz4XILj)d7)9Vx2#zVkV*FGw8;d`J907Or zJG?Wh5aIq=$Y``>l0H5ILUMm}FeE2wf2KsmJ<;843?kM`V3# zad?ZNg&%s00sbed8}X6~@-W1_<#ina(6qaPBMxz(pHwuJN4$JZJvfyK{r#T1w>|nh zL@-e$Q{t(fM7jJ<>QvBZDy~_6z71-Iq55}G z#c#tjOt}ox3*RqB3m5hj7c%IaI6jgId@JF?JVRFEe!JA~V<^4st;R|zqkl>UW-GGL zXNB`P>O`eB|Nn~asPy(4S!of7k?}ygM$p^)RyXr^2v5(scx#;=tH6)_MXVM5Ns*sA z!|!*hJe*d+6rAp9m~tkSEwn4k;K2A2J5`{+=Wh0;Z#jZy3L=CtCZSB+OMa&e(Wk|D zJh3P+TTZ(`d83~m78;L7QM`O9(3szMH}luO6AVoPHM#liDwHMg=y&7_#<)VEU{dE6 z|KaUdT=ll`85hpUk3T+p@rw1=cP_l*oNShj3;6pTRsR-(o%PCF2rLF=AiMq+GLS6H zFI@Qc%t9Sc7UuK%Oqe{|y@hp7Nq$rqbM%nH(2)H^@5*(5`lEf%f3$aG;lTRJ`cI^L zFXTN;5WBaq?%xrp>36=>fTIHANg*mQlvMJ?N=5QT>vVLNo&56Vt*-BX4{wTP|NCse zSE<>??-e@#$H@Gzv}P&m_kaA$AOGw3aj)$E)iWY^ekJnCOTT7QmbdRe zOYXrZGebHz>*cJF5Kr(K4O8y1B%Sj~iU9JGb4u9Ir+wZDdkZYn_{p1*atS2VZUHKbrTyBW;|Lb4#YqV3FI~c~hA` z(mI0FWSKT@MbR#n!c3aRQZRgr%Cxo$ftPSljN^Fj79OyN!+Ld>Zz%_2eEyTMwarPGwZoY}Dwq>cpBR@Csx3pMHX0JZOW>-aMh zPu;0HdB!?2@rZojpi6Mvkx@LPYuNFpUx|GTM-6@(=dqx)hpO~X7Z0-Qvn%1-8>dqu zXc}#TeMqz4!cX(rn6DaReX%x(=LTGDyo$KVy%Hq(0BqZ5kR~ z4FDj$RP@S&z2&a?;=Gn`Ka<)0X~ark`CtjW_^AeLv^2l8T3AvMj)E!uhxp8EV(7_B zH=dKEM6w_6CS>_g=1afkRi~fLw5V7O{U@hzkNb^Hs1_r}$`%c=6i4s=Qk$D9Y>45R zjLP|Vrht5Hx;h18pu4Z_zhg)ep{xhd@5cD$R<#)PyQ&+>PDeXl+Z;z$pvA|%{?jUPkiHGtE_dP-;C zkgr`LiZQ4q_4D00#)D5=u|=#{{@P$v_V3e=ey9xypxjdA_*@yk9BtP{46b?v+Hvg~ z&Tc~G#>u~(I*E9k6kpmgmU^0Tg!WpkN@2O!FCfMSk#VYClJq8V_=^%Bsz8>&5q1iQ zj_y1H_!8$PJ>mi*Q=Mii1L;J^j@_K}?i`m8nT|87_Dr1CEnd4(HmO3ZLCkWRRK=_J zF(hB_mY?CLPEjJ-k8kwL#FNAlSB&G6=EYvmO*KIk2B9fu6JMAVo&q7drmUT&IBX|d zoESPhi|}hmf4*m^KM4`bo1-MnlBWG5abpRvI5PAQxKZP%Ry;fXR>7QiC2R5p~X!^80MOt7q zX+UTfOfkI8HH4*JqT|Ib2VAmQ{Wz|Ka{T!Sy(F!W+svr?S(ZtynIxL^kD4RNNItg8^IZ_;RF+aK z85&X)Ad(`b>Wa$nM;=RUs0-nD<>4MpSI2@->9BQj^yDmpgBy8xI zus99K63U$gsm^6(iFb2UW+~Y1k&Hq~-n@?Tmk$E=QER_gv&3tq+9`mkpOe5)Y}M)x z&^D0G!aa7NfU_|{j!qdc(-IS$Od?xZiDiX#3O4>1DaR6xcw?veyxiIBNSY2 zRZO&&M5^Py1vR%2?jUP1P@KKqo}mGF%5IPfnhm)k;|PfiF|w3N`Z6+at`|t z7wy?+3E=Gu{4sM^4?7IO(P3TS%n%c=@msFA`)F9dm;F5xsq%|b>_qi5sD-*AET@0~ zp1H@&ud&WY%hC%u3`S~230PoibW>yOHJ$d9ShJY1xbgA)&cM9hqXNaSNOs>vp<#1!}{Jl$Mri++>aCbp${$ zqhKv1XX4t%Y+s+8$5hZl4C4UaD2;)cp%!QQp@^uiInu#-V)Uwj%y5O<5E=yR9+vX3 z&Zf}F9*fJ+5OTNjA#kkk(e+$3y2b^GiOY|Gp+=J3bwV>(QuDoIwLWx==`>Dvt+q_F za@K0(7>h1lkKLY=z-L7n`|#4gsle8`knWjG+WDqvI$RA&b55*VL;pjTJE0b6`w=T~ z0?R4~OI6ZieL7#CR}Y-zJ#W5s!UF9G0!o-;4_D?g+OK_3vZHJs7 zmTNFH{Q)UdyHWgo@_DU6vI9$;F`g_M*eYUWk292B7n~acBI=-S7P1aoh3%7ken+*Z z#!Cx`=ogJoE$HYPxW_e819f*ob_#neo${CBdCtozp3)@uv?oMeGrqb9iq?wttrV#t zN9zQ-1zeAYmJU&}4nFzlbJv_zC1zAU*NCL*{ASNuU+#8d13!)A%^S+IZdMv)H>@Km zLx6EhP;UOF`HvNb9+LiTB?tTAwSVz|R^hocb{+-m2k8zOpvGvst4R&vsG$v(#g&86 zeWIwdLw$$OtiVWra4HQ}K8N1CKDMzfIInC$bW^tuXPA5#F915deAJyPp=CjfV^teT zo2*y#%F_c`!y`sujr5+sJn9Jw8`J3O-YP2xAGJ0hqxjQ?sG)XVG3Yg6;PNu?AhAo# z3L_&ezBk4hAQs3r*n^1@g0@7IUn;w?TzYZujK^LgiL(0V z)IaT`Qlq0I3+M?MEi=4F%Y9Zh+LWbj{Nd;f^u$tNXnLB=fpW{!vDZqrXu@1mJVXBl zR0$+Hf_#OCysCG%6Zen_f)0Qp9-8c;v1OFL<@@P6D}_hPrWRdr)PUy$voh>k@DLOC zEeV@$GtY0xLYd=PXn`+#Y|a}{0+-BD1IlMf9hLHXZ_Y70>5qof!!)hvOi!41VAd1b z?KG=emF2#vFb;)gsll{IMnQ$e#avlvUJW5X%AvZzaL$bjeZ(ScD20sge7mE$M^`9T4bY94v~LV`3IUF9 z;D%^Z7CMq7#tdA-sZ0YB*|q}7 z#&A}9Cwt!BEn)2v>3NRb7WOp`4F(kGAb7tyN ztgi80Q~@6e&KIe;;auR!Um#mCTGfto|JFFQ^l>&#=TmD7&x}?ww%Rea84?)K*T?Ll z7_ZF5uMIaWtA}%*4UJz9Mn7wvbTomEdg^Zk%n9$)e&?7-Mo&f3Tay)Aa+WSQe^?umOyV#iW7`|)qzh(MG$8I9dMqJ zMXp3!bC%Wi{8>?FWjH;vv@$Q7g{}4nJgfsevw$ApDV*pbDL?85?<*hwX;0pcE&^KJ>ftdqN70Rzpprp%msu2-GKFakB1Z4G#yZ>7Z2eQd%SdxdetT`SB7 zB#7?g6vbi~7W39e;8gj8z8?hl*>xpDAs6_2tqW1TQAS+TF$Q=pYSdZA9@Q@HkOF%N zBh#$!&B@)xK$<3CLw0Ycg?;fMi)_DiSDq$1b6fW~G>e9iS(6FK=r`0Kc7lT$guh}~oR47{ol2wR*i~UBFnum?VyE{r|1dni*}PveP1zEV zVXPQLm1v`!#&I5XBl2i9W1S;`&4fqM8Dhq2((hS+SbQ~88gr*usX6*tr}Si2WO7AF zI}Fh7QuqhhD|+FkRBdxA%Gm}OHjq&M?-@0zM}y5J(5>9;Y_X@&v*R{%e*Ya~O2?pK z$9OIHb*2guZmhEpFyg&+-VQns9-VyD4VtJ=nxnR}LXau8S;uTXtQIK(drm!-Tc1cV z2+6401f?59dCN}i9@1+OE+O+=Ts*>Lo#Br7Gs>Sh6b>70Fi4s z?Vuytwur9fv0I%#5V>X)Sg~H40@`O+I`q1W^gUOQr+3QNvqbcu zCZ(sdaY~SD=sdz$D6qG|5klz0@S38LV0%v(Zsmv%Nfn}@%}lc71MFn($$StnezoZU zp9ySFsW8xOhZv#4PR^=wL4FT4X+>M92eb&m?|3%B5hwoefTcH^ns}gPwmRwCWa30H zAhR_qsiecvB694swjz&i8Ay*?1>{^^R(LKCt{5hV{bpkrggcF)!=FB<8Pp_oH;2ob zd9#ez;r_2OSY^EB;-N_ui#%625IdAy+VT{TFA!7r<~b5;n&QJ}-aSQ`u`v#yf;6^2 z@Dx{UcJw$-&7xrR4T>v9mau0W`jHGhO*zpnl#X*Fq|tRtv28Bo#`LTqvC;fr^lmdz zw9dD_rCdP;r|w;H+F5Q$K%?o53qBLLzHrQDP2nLWOqnD7UCv^+GQcxK76~zbqg2*XU390;= zfQ~ijXEt>;=OJBVF7)X5E3&1qi7JskMEJOz?X&=sxZ?uO3~bMiMKTSwWVN400gww) z&q81^fvSI`->=JkG$?+p-`VS8`+L(_@uZ^Nt5o-nML*Q)JpiUofU7G@w&_M^OTWIB zp-!)0bwpSmjV>3P>7?m42p3@cYok7Qj1=Afl@cSlvEDFSqG42jVo(ah@=+HB=7Avl zoW|)BeaGi-x-gqRUh={BnifSQ%QAjmz36>m1qAKPnFEO^bl_q_>#6 zB~w@%${?7%)&{zu3XB_^!_;xRmDt%iYsJ>=>-tK2XAkh_=Ie zvzAMKG6zY4>U6#94abB-?Wp3gdlRZA`Far->V2kcGc0(DpT9M>(W5o+K{DrDEGS4Us{s45Y*WW$__>+#pxm zIi0XgIbSS(=enojlwt~7$2Xqvhr@^%#TVWp?H-Rq~V9 zc6!1>vp9`Qtfh#KAdIK_mI|yU;(W=81H>qP8#gT;jY&|P6f5WSZuRE0tj24`LMG0R z$ZL#&+uX#pe@UJ=hZa)j6-_KNiKr5x3B!;}3UnpL1>K7ehm_&s3nPA5Q5W9LgI7hrZ74ip#29B&)1BL?hf|CnEtu&*>4i?3f!)x{0nwxA%<<>&iL zZ!vc1Muh0AOPR!lemRucwK3|nedWAlx+}$hDfDF(rau&i=dP)KEMkDLo1 zQXto+)4g&bCa4QdKfLn?eD6=Zp3Kr2{gGcj4Y&c>ayMMs$C27&V~nvS+T5`&?g5z6 z_VQv)+jp~%=DaE&ZR{%h1`mW6IpI)O*ej?|Gg#iMK4hq!x4!g!`F?+@6o3ErpEC z;4{EnCi(#S(@}|Kw=Gb>wx(xRkMm0|^TbM@`EHM##_;<;!U2I0o@}{bSaK=pOs~mi z&s;FwFxxz{JILxm&%Vp`&N)%?(%b8nF~n5Pa`&Ds#~)>KGyN}a@l7r)J-EI2C+@C# zu=Q5WewWRx^miK9Ctt0jGUjayKgkrwrRFa3iaeEen)Hl9PuYCJmu4ZmBI?LyS7t&! z2G#qb%*Ek~?1|y|`Cvua6B|a)_swd4S^~GM5)I6V8ip+?SM>Vs0(#Vaj1$F&{DHiz zlx=Hxd6pes`mq0iJO15I@VHp+l?Uj7k+J^YU-jI+XP2Mz^vAFM;K$Bf{H~kcbK~I` zc1?fh;q%s?FYDKTGyk4!__6oA{iwNL*!J0-KN%RheepMDy|C=e)$jdA$TM-i=h5Fh zx%K-WXua!=FTHy0zGbhxxaQ>#eQMSR>j$r0J8{lOSFL*Q2Y$2fwby_B_r-5N`|&65 zeE*-n`c!M~Eju6IHLK^&Q@?!GBj>DI-TGqhCpI3ncEhG~>sxsQbDncfV99R#%Kh&+ z=iaw}V9VUsFFfhoV}5<~igP}=_>|wwJ$z#(w=&)T?4Mt8!}{;8ef!BTKXcCdk34$~ z?}h*CaoOyg-mtrP`wj0n?jAocPha@WM?QYTjq6%>9^QTBO{+it>YX>Vp1NRn>-B5? z`{5tlwEHWc3hua-g*ny#UU_)skDq^K;+a+7di|-nA6op4>7U$mhgbXb;=_ygT)p92 zC*O1Ds+W7NtX#Y5#Xajzy5NoL{`$}}Gj`qnU+#VKtmyTh&b{Q$d*{6PomX1x-u~%J z@A>xgXU}@&Yk#!)U!VGKBmZ#!U*3Q3`k(Axf6T9LJ@EJw=l}h`xs}Tv`qoSL{^IbX zuN?aD*T4V6+1EYsfsc>eIBWOgwc3uJg~g?RcEh9h{M$_%uKxIkUb$rL zhGTBp|I@>n)>WVR)ottFBdZqI{`@^>oi(uf?Cjj54&AW>-L>%>x8J`fJLi2%Z_D`d zpj`N)!TV=?=Z}B=mFvIq_|NwhuiN*tp-1+=^39tMzB=drk6qkx(W;|gfBB~`y!hZ# zyASwg(qD2?wjsB^YFE+u6$$qCr%6BzT)I?{DLdiuYce2n^qtG zhgIjC{oXILzUznY@0feetg!o-zq#VVzdmtAe!=c#mw*2Jb$9Ll@*9W0w=ng!uW$L}?RRwE z@#)q-{QdVA|8eiLuYcwK8+z6iZu;yi&#a$w_{wXKx^?~EynWlwUElrO_JtSU^Uq!D z-}THnKYVJ#MNjQ}V(S~Vl8{$48#~ z(VmC?^-uq;d1%$4L%;s%tNUL(eE1_j{KuDGJ#_Z>7CgTG@qe8m-|Sszmm-rbbfTmg z!MnSr$zoIq?_U-Zk9JF+o*Gnjl4gHvv@g4~@|lroC@%JsLWX@m6r)-Tr>9q_nr^Mr z^{gX>0^7i>@cqF9K@gukVA;yGtQnuKALP1${gDr_74Qfp3R5sOy{qf$vXrE}zcue_ z4VTztm(8^=**9_BNc6V!=}e?_i3^f3GPt27(|9v_Q98j)CdS7n>Lf~GA~^Zv4Xw|# z-uME*TZdYU7pK#_dtk$1g_*kO;r)8ow&;$xt^NBSltJbU?Y0T$uymnxQYoL&DV=^) z4*bW}vcHvnkR$cj89IP&%p1xREyo_rIe9%Z;WUPmM)qskMC-j>7p2(kx%Kiv$-KDF zUmDG(rKJO{1Fezn1HySQN_gD~*HQ|c+UGpP=Nyp4UgO%q9Ed6Ch~Fei`fy7TsL@kFI5<_YMv zd7_AR@fKWpLJL|GGVvc*w-TQ4I--8sX*z)_m)Er#G;K%Y&>`?FG5>=n3_S(QnHm?R zTFR4&@+Iugj+^Ak#KZwYDd|$4Oo;vAK6z2(9^k}I@BRsjdh0sGMJY7_R$X03A3ezv z8q>x8--@euT(U=c8}EY$Mn?9%Q8tJ~7q8GMtQ`vcfd)?s4UJ29(%s6K3Zd9N{qzw$ zX}q6y6n={*Y(X94*J|_RI?gJY`@z>Q8E30%`f*_po^Tq;Bif@}oVWM9boXGF0zbgk z^Lig)%j=V0YPDW{_1R~acekR!RySZZ<={b%*yu{7UXMfCuBVUU+>QOMgEDvoPa2fZ z%?8dz7b#EFv8^}#MBBLgy8u$2{8Zpcz5eRK_H3Ni?|(^}+>`{;`jmR;25p{9ysY)9 zgM*wwbddej3zk&U4<-0eRIxmPJ-d<4xG}3&TlSlmmhYn@2Gi&+c(SX_ljQspt8lg4 z!BoPN35!TIh=3F`2{(N+-nx(D+H7e1@}6KsY+kdfQ@+*Lp{g z*i=f-57Hn!d0KhWl^(h72;J4Vrf_mDih0u2m5%paXTxxMDLffp3|`urgeO68-N@@1 z=VV{0M3$F=KzC)|4^KE3DyILwSa+@NdXp#7oRSQlkv>Ct0v7Nj(OpBFd&2CJK}2md z4M%|Y!u$SNLqvp}eZhSZ_af(yuxiWKaG0qPPU4rA;5Qc@4#9_OeODQ9Cam$nWWLETxPX@l z6elP(s}$qPU3%*#Fj_8dLlTx*l!peI&Rb=cu4-7}LL<(G3BO{&J3A#rHn2jvw!v8&6o6jBDf>c^GDdUhci1k zijeb8+UJp6Z#Q4U)7{c5YnwUeB)H>BVY*Mb>t*sh6sNCMOKZh}gT}{UU*a=LM6L`r z&+c0zTP2C-Opzo#u8;gt!5!Q8_1;;Lbr(}!uB?wPN^3mz=$)wVX&kcaU%xIsn}sO7 zhtj<_TuZ?32IqXx8RM*N1eX{m&Q_rB791z;!Xd z(4Ji4$MmEdmr5~9VNjB6D#d+}r(-tfCyX-Fi{`m*Bn3$*rAKz41unRtbe)XsdxSFp ztYo?}PBlYeLu;h#f(z>PeUBV^{m?GS4l?$0;FuQBs}81e%Po4HbZ4{iwY zxWJe*(y0Sr_+@5Wu^T*n>kme{GOKw$`KOUYtim*NB+Ue9C$7bTDX9<) z(PtXZe;DJhElnI6_Tawe_^!pA~~uu5hpp6bGcU^ ze}U44LN<#!J;I%FM$8jNGWdMJOq`Lv;K1&d@+9WHoPPSd-+fW*jMfP!{J|f*yDQuP zp-)^Kmv>Ngm;d2D+RAt_0aSIZ@6rZ?XM8_A8E^B1@dTbsyv+G($`dAQnsWhQwi5+sJ{Uqi|>VQsYFSvjUC)_amz;O&w*LBPjkr<># z3m<(q6~|CU+Vg_A4?>1mDSsk-&A^i+jzR|%N^;ej(>ycmT0F%Qcv>puIP-^oQi$nJ zo?Bc}S~;!myKSCi;R)SvAG4NL;X9g=@T9!D*-Xxz(YU0aFf)KB%z|47#zoHJQ^yId zd3rKXE5U_!=}~QM-30~Vi)tadY@)m13F)o2?&5oraxR_+4UUW?w1{~Umm2BP`BtpE znD<#+d@Q1p3HhTxB|LdOyNlUs>pR~$P5U``;mY8v~+Unh@bh;f7)T4ItXoFf*8xH$AfEWJrSVmR}s2~T#b z?%KCvh4wS#eTpYr_7j@;)W%p(i*rtk2q!n8yHM>hPtaWtDo?Umj>ANEaWv&(T0rA6 z8Tyv?7vwzAUD_Ju2_J;^oiM&D<_Scf=;FLS8O&IKPub>SqgN!ti*56`^X)fI$3}0d z#s^PLg_HQ(Gt16z5dV$;6yFZ>Dm~8Eu_?1GF8{M6%zN!W(r|1O$hpYaHx7xypM>*; zcK*BCaQ`K#zvBz-e5WMw@<5VLZWg)ZPupooW$jeNj&+Moqq(*e%o#md&Rh%(hxo9O~Glyi*9ejoupBB zJN)mH@ri97Hh+ft#lNL}|5E$jm)s|9{if_3_fal{+kf&!v&L~JO!5EaF4Bgx{fl{% zP8dHC>KKbzfTHcUv(q7Sfi1Jz=HiATp{~~wFQ*R8{|0mve-H^m-8LcC> zN7ORlW(c~})j~*r*B(OD~-`P&b&XAx?+A~h#GKoX#Jlfudulc5IKPT-K z%@KHLhBmxO8c)(pZ8H_$*ftbhklL3Q?R{eTB?zl02`ZwoGx4=ZMjQLUJBgx$hbQ8_ zr5*2!5-P_R9xciVCsu*8ZkD4!{DA~qozLLF31|)9JmNYmK7*(-J=Xyi=iG1%A_*~d zCsdgXh?~Mgqihl%1*ZTtZcGy48zavp-Z<9qtq&C1U;H$|CaFaL;*4JWBY<0$#8|>L z;;Z~@$=56tlO0hD8tXhcLiw)SGZ3)6MH;j&W-EPPgt{7wO!m)B+h6&tMB!O;~qJEyo#F&Skjd{0CdKGT99cWHQ z#`lD3bPXV*)BopnKQ*T`4XC4G0#i_BJ4YlpscPFb34f#ALzU5B!PPw!N>N^VNj3ZVbr8}uZmkjcDi5Me! z_}xfq2B$EbFGi`PE`C$>IHf28U>8TW>5%vVKp}N;rjEmk54mwhFQM*!8-pc`ofc6E zx=vFSVqh%Gq6%?zoJ3r^F!!We7>(e`%Myb(ghWXlISmGVInqp0p(advlNe`2+c)X7 zpr@pYA^21o`aLO|z$2PPAAZ$~iz2=rVT=pBA-zY^EEDS1sBSe$DSJUWrivq3k?-wC zl!t7@QpEu^6dV=C8R@}x%}>+Rh>Og`7)NK|0juizBG1pCC%WIY1(0hFhn#SahpgEYH=zGtts~w5{)W51O}?U0#Yz)XF*{S;~E2C~#tZ1wlgx$cV=e(4QSv zIa+Z%aIkJ+RO8KNC9>D!msR%sS3)0r!#W6*Tn2)(e?Lo(6`04cTSSX`Q7x{9(jGtq zP3jb|jd`v*M#+8(oG0l~`bfowPG>y< z!jTS*O?yK%S-a3hC0+@OsgskJwizR)%u-9w(Kn*Co~t{E;8>-bHl_+Uhi!~c5Ls3_ zDC)JaMnyC*2rqWLkoIcI5`vLe38HAsNR`#1gweGQU`!h#+wdAj7cS0^X9^Y0+9e0w zxh!}030qfpLe!ofNEa0I8;R1});gK0sYW@rW8-Sokbm97C zrpBmgST@39YX*$z+KRd_wQ7`ifZ+>zP|rlOJgGXVD-o^I0TQVduPRD_Ko6&5LyRTm z5ok~BfFDpbZq)Z6miTOvpJS$EXfreRVUL_*Ji`KBiU$>yHzT7BDHulzX#kYzvDb0E zJ@#?Ya_X$)oKp|r3eE&^lrO`?G3r#jYKO(^J4^+7>VP)v3!r(4>xSo~Vg02+<}#fz zHR(rrIyEVZViozw(-H{o%`)-)h9|E%Ar%D%UKj-ymRLuRDpeOa&V3kmjUa?~eGH0A zb`+!*1V=m6Zxt$II1##Z@3dYjUn{qS15!=d(?sm0&wE#}D)c)KMBW`;K_AU0KK@QTIXvvNp@Ksij78>c z%+oAqC=5d~BoZZIf*s25yhy26JCf&_z@{Hfj}d|Z$8Sp|N^0(1L#9K-BEyR}(`}ac?!VZM&@)38D;^39JrCo7m%Sj`JSC<;Cg?7#r+%gLVI%M7jaM~0q(A7oEDbda9gsRCRcv7j7T7(ogM?n+XHGLb#`z z^W`pcR2{LZx<-%d2W2uFV(qf9ZqUlqwU z{2i=%HA7oWXCoe^<3kusox^B+Q=Q*;m!opoD!EMPH}lR=n=($$cQ9~EzY9BZ3nM1U zo+>zi=0n-?sGr>_ZUyy_x8Y;tKuT3Q8@|a)PIT3M&`IUS7v^V-s1^?LN869;!eu(L1o@^GYNH9;$952q+cIIS{j8>m>(?IHTqw*uD5XpPk z8D#G}J9%jQs5OLrTSJ50CLQKa+@>(kfW*NsGRHZ@Q{K^uU2&(jjOHQ}+)R8Wi0k1! ziKBj9Qcem|S&#Z1G#&OcjYZ?+2tRs!ctTD$6QE(kE`(6kI`pS}U`7=p)Zw>94Iy-@ zBwj6!$eLv9BMI!%oRiWvH!H*vN1_38TlzqGAup$hkR}me*Z~sJrnz9^QnwsaO`+@k zLN@a0K-GLQO+*N21!G;0+{bGkmoy?vlUS>z9oOqdg+%6fx(f#hjuO$S?S($*!;lxI zCSY)Dz_!g*Q>*mN+luz^i=8=MWK|34$l1XB+{}jD+Nyu-rEI<)+Tv&~?A<1rAuPM4 zV^M@%ITrR8(~Rx@u!K!SRVOo4fzP=n>J}OFGU2dSEh6W(Y{t^-m_-?ElbfA z^0%qW_?)epYj0rx64NqpFvy!`51L#+4iaz|?1V-OTdXIa42KYtOc>Uz?;7aHV4L`R z3>hKFmQ6>W+4x(4L{8-M!stDQ{ikQVUbh#g@pjc-C7M zLn9);6ItIV4e1VfJSbT@6rxSTI%P*T<1rms)C6bmZkOYPEc&1H)q-BH!%BTAa)v1$ zqRgnUgxfrNgEtmQiCG6tDj9D!GEIBU5Y0Efxvjsq2LD2xaaU*;)5ZqE766ql%yUe? zFLcii-!l+{_7EpK#eJv@v!(A1FEZ<-r<=vzL-fkJxU~#zb#mGPS&~e+G6I2&6GKDl z!=8mRjZ@_m>p(4Bb0SP-?HJ+`_*Ub$5V*C5) zGCpQfwlelv423(wX*=Y;hA#tDE&fR+q`yDeX^E5h7wc!ruom_OqtFtOo#W&_e+^rt zsQ9u4gRxARZO?NqJc`Guzyf1P>q?{E;Q!EhVtj`mZqSeQ~5Ci=+Br+vKuG<*jOoyg^x?Nf~-cJ!B@OeZC0T(vOM!hZg>gSa{3a08q@`yCh&OT_A4v- zplay(8e8ua-)Yd?^o0UWle&kU^WJdAjPqvOk>J2Z_-B7730_TKXHq zyrXj~{ElOXR620|4rKD#&Zvj3%B;P%hA_mE&$v-(SPaaDhXbc)eBNA&94UeA@T8v; zxB%;+2p*7tdfC`ym{A@&oBuBP?K@dRHs`#Cks4J{y$R$fL)|7Eut8gRNkQJMYN4{X zeIPx93DT0N*zjxV+DexLZ?{MO(93(hG78hTfSpT^neA!oZ$z3?b-jc z@5J7~R3$Gx54Z~(;_+(5qqrLij#s)YpgBr7EGs+Gbq0no8V%~+Lo65f^fWd0;)Bv9}TNJ%4Hreg8|FXuui-R zY#1GuANiN_w$BSqXXsm8T3?-{hD93eg5eE^1s1M>+C0%ob0N^@MUgv-Fbe3dsR(pH zOpsTXVX1v7@q(DTDnBqe(mkXTEC$%LM#h(RYFVQ#8lS--oxtP;nea-1zKXFkl^E&^ z!fFK16%kxh!TTU%g&3b3&euygBe~aCmY+jV^G1VKQ<{dnD3ZB4#U)PLVr)FRClM4@ zkI|pRA(R`U!~3ls8&^zj{sOUae&3QWhEjBR)G!-2T;t+^6gcuR zcT@Qc;4abX{H;kB1YqJQW`#Ky&gvzhbI>c77Bomg;HxKb`id*YTC*XsYM3V`o-d^| z#?y3z<*q+j$|*Vwx1=^fKX$qqg9|j!?dG>@WCjwaiLcv|jK%&~6x3%WGzy;wG_pH@ zSwlmOIK%80!)B)w|JWTJSF+r*IU|J|!$*}Ev?QADK?z?;HS2vQ&WU%F8Ul}ybA)*9 zN^_xP3`&K8nJeH32Kl}LWTs7?m_{&1%CK0`m~wa>@ZxBZToUh<9Ucnh_+^!(fYd1E zGcFvCy^dJp@FII?yV4NPxp7V8)iQvNui_=e#2*#e9_SRK-ws>8i=OW!due|@YYp!) zkE8eTMmAHfdZr}XnVix9eX*==s}s*;>`_fCy{_+rA={0dbX)WJbw<_%M{h5VZD|f= zb8_FXT_(>l+7_B})O~d(;|S>{8J6Zf>}t`s!0u_x&SC5=;WFzWCExZ6b84SUnVbo_ z9=K&xElhC15|PG=+O^WVC1)~nO7vWMz?q6!Fgoy>Y&^cl(ydQpdq1`&Gm$(sW3P9- zS@-Beim*TW{jXoXBanq@G_;ZpXBMtJj@ez!tTi%rA|tGGrMqNkcJA&0CQ{y*$4vxMkpOL7IPm^yhmQM{$6cVY0TZ7}ekRc7Fe_6~PXt5@d!)y01(4VhOf%5WIW z>4;YP10CniWeS};S{h@$4BEk_=q|D84-B~|-T7nN5y_5>>{%&6?$$Maj(7B5ke;d^ z&Xmkm;T_f*Pn!0ghU5{R;@Wj4kaef_ykj;3F)MqexKYV&d7HTY^uX*OQBOhD!D7F3 z6gKj6>YGeyN%z3Rex9iSqt$7=ur6hdm1;E8xAQa6LMGdLf^gW(81n2f(Q#?>us0S; z<1UWlTzJ$hSvh!V_O|B``+l1?b1-!5yi8X0Ws3+OZ!mZ}3l$fhbk9=rPAUJJl*h`` zoB8Nszpux)l6f*c9u@0g6aKMzj5me#v41=^sK~;e095?IYmAh`4Er@;5Q@^I<9Xqn z*)wcLQa^;Q9p$-lZur1hChz+@12cSacXVlR))lvJmAj(uby9f!;L3D z^7HH0uYco9H{Ec~JN|s-?u%D_>dNo`#V3Ef>ywK=u>IHX{nk0pr2A&x!PKC7bI(85 z7e4rhZ-4mxhaUdQY5)4{b>DmPg}+~X=L3gdHRrr|(o;YE*xx<*&j(g*nEUeKC!hSt z|J?lUhtE3nM~m;@-+Afo?W?=K@K5Lc)r*H3U%m4)yFT*LH$Qvb;tkoyo`3k|AAR`R zC9fSm^MS1>k0 zFFpCI2VZ)8(;s}Q>lr&^WXXYhzw^vRmkwNe>!HOv-jR9N_q;pqm=VsrdHSp2UmjX{ z($PKt^r1t~|L9D!V*QgZ+<4Oo=iGSJsrR3G$>Q2Y|K-(B-}=e&tzX`-s`lNty?Dc{ zO&yzisuFChMSoYTj-0&Z&%gK6*KYsjk8Wz6^vsiMU;4)LFa6nzU%%-K*S)do(69FW z;H)!JuYc@{RcF3D=WDH39=`EU5C8huiNBolwk6+s_`Lg`xaYp_J@d}*{p#6QX0PAy zZ1$_qFI)Hd1$%El?Q{3v|2KdA#<}aibMG(T_Qs2wyy=-)2z>hE>ks|%hVQNalh!lW zzVhVT|NWh>yfObfS6zO^f=?cPV|@3AUVj3+-wi)|e9^kKfA#MNj%|JXnZ@5)^UC8d zR0od!(nXIya`@VNkD7JT%uMjNyo&0~oOR|&SFAd_>)A{0UiYyZ=5G6V=4W5uvUBM! z1o8Dl*S!DGjNOO7@tt#idd}jnZJhDwg?ZcihpYbMhW9MqaPs;M_rK@R`rh@sU%UA5 zBgfoy_WPeZbLS;Led53V;47~@`|RosU;6ijU*7f}_r6bk;+&gF5P^Msi);G^~qrA7`J!psRH?7IE>QEWf#$m6p0* zbe}QZC}@$Z%Y3;3MnmVcx$)hly{Qz7?bA=URD~bB=5gx5D6xP&7GoRBeMhb%wNTLY zq4A1e(tx>-Ffpap>ecb;&q@2H)r|(-1ze~NgjjcrEzm=)Di%@)Cax*a^Y2i-x`Fkd z`&x@xkX+JLw((yEy`bwSnz#xmq(?gRC0QVll`c^PI$`Pv19zy<4Wyh~$Ow z7SanXirg$E7H2Uykdp6q45hYx$*Dr-Annj9DKU90wRx$JUt>! z>MyWzR(ZlR{i_G%;Hk=!3DFh#tYhZ-2>cn$W+$+%GDhtm+BRn+%9GtJIqybRrg$Qm zRxZcd_X6{-^AnyV)Zfs0Ikr(#xS5Azepsv?$O4F%Cp2u3#r^OkK&IZ+IvFchmidPF z-N)y{)Z-(7oZ<;6m#?{LyrpZJ?Jx;IndFIW&A|FHm+PA333pw^9P>m*GL2Tms(N@* zAI!2}%)L~iYms9ZF;58ZgC`1;demK)7>@WCsa(S4r(>Rs6H8v`#T2ls3;VytXS~Wv zY*yFDRx0w4Ri40s7hBix7O0|&-f2T)Tp9-%r|KBuC{Mcfz0rav*_bDV=5#q2^8_0~ zc!G868%j-Wz0xk}CrH2`qKV7r+pq7Plz{i;bLlQwO(&!GXIeydy|Rk zN79%H5Wjz4LrcH2`l1W}E7GBL#yOhZOe zEec*O4aILlRSGd=-;E7ss7YYVe9I3nBuwYQ0RI9Jm2j%f5 zcxpMid;9_~n6%+5mHUdCkMhNS?xeTjMZ9y8p7UzGpCO&Q!VmYXk=}1l!qs{PB)kgA z0G`?oN)Je5^QX^4eJd2Np?bIuI7L&A!{qDvb`sB9C80){_SrQOD9j$UH>50fg?%wh zZ6k{oisX;GWYSinZC4zN?K%U^7l#vj#h5l)r>0W_IK^!tKD5LKv>7`{qqNd;OV=d! zl1dwet8K|?I&EnZ*86h?yUBK#DBUw}iU*osY1?ys+isA@keG&g2k0zbR~^e8yTj^i zwb>&)Tg$IaZ27Rgi*5c&l#gxt6prT8J4$=0wBb>%k8=K%*dg*3!;jV}eBZyiR{t}# z{cGpfo`gFdFkDX=^C$yVlhQQoT`Z|2So9Ib~C+=}LAEWwEuM5S@MkCy^ zOBLWqVUSl5EzGHRDRla}{sylu<2j*g+Nbt43v$n{#;#1pHKl%V!@h~uc!|<{ZrM*3 z`QUih>8i5^UlsY+mWe1nc*j}$7cONeU9g%UA{#e} zhAJ%8EPBIyj_8%@jh&XnQPeMqdBWI*SjRj8 z!}0Mje*{k!53bg7g9lNf0L4m)`{0JvlvbX!CJGacUH9w~X-r_V22ZeDr!E@33flmyuWtA!>(3jAV@0tT33^sCF2ZwW8pW&e-cWoO|zk@1OU1@73;fRh>F@>eM+^r>eWFs!!IjefO&(|Il_`+YvgUB}`7< zn^)P&v+&If1cDsh@!~$iJ~?*WZO|IMQ73N8$&+G!x_fkTw6C3>tNa9~_^Okp^zBuE z#-Bzf>_~f*SqruMew#-`=tLz1_aq4$_9=mVis*#h{+Uj$Mkk}QYswqFt=<-U(_Sn# z&jGEpC!TJm*Lx2e&FQ%hvpV5jH}?jrlSb$# zI@i=aw)?m2Z0`$gntno`qyCcuMf%Bsmj77Wt5WDED<9ROIX?wn=B;78ZpWMz!pR;@ z_67ECX;1F0R`=?}(ji2(TY+YEL$<**O#ZYTb=;%v4d~FOSu zG){YUn(97F;vplaevDRSPy5_+E%!H9hEg7ABjO_cL~dwmuFNUWNa!c{JWYp*$;msJ zHFr3m4u6@+l;dvDiDUjb>Ne?clr!q6M~2LMYP-V8&)@5wPsP>bN zPWABSdy>0#(6s*`p{Co4xsujU>L2GDxo zm0L(+2lw24yt4;S_u3iWrgZk$&H8iu4Lf@T=l1H|+{wq@Jk%P+&<%c+A0rwq?9ef@ z`xNZ3ow6WzKyga+bF3qz`p? zJ0c+~v`q)zl^=H+5Bm;TYruZR5T7mk|Dxah)qGj$%+_`8o0d0c<+8srD`%Gf+yC5( zy3Ss^Yro6)85^`Y_6f?g$hErH562$9l6djguExiyZ#{ukS$gzevpsqGUBz+0=JOr@ zA4pF^ehZi}jy-_t|1`^IPUz(O^(;QS$M0AAN=M7bH=D?Z&z{7RG>G3$pMG;jLy}IJ zyF2k(#(VvSEUx-KZKW(CLa>l3gAcY9@%$Zhb72=?M{d@4 z{R(UazFPvE$Mc%l>iAhKBzuK-9B#v0C?n-i&#GISpTj2CL_Y4PNM1ZOV;x2DN8IH!}=D5Np#oONWh!HCZS@PUP@ zMBFhc51LNKaOL#~GBxg`im9gop=npxv)A^C->whl}Us-Lvmzsp?H>$ zbKB(j`{nYr^sGE`1=k@9FoQ3?aW-Yne*+OW2PWXi#8??Z!P83@FP_91YcdE;iCemZ zV#x}!k=0wf4$er%b|%3r+gyHt@CYJTM?g^vQUjnXmI80INProNR0!fgLrXSj~S zGDcFS7On&7@5o0>1O60!^LAeH=_)3pJbRWoEt%~lo! z0f(Y-U;{livd)6m(8Mr2H;K`7Odf_|14`MbK(d!8;CaI8d_ck2s|(~yWFZii^$U>RNyI_jm3=}_m1Bu&TF@Pm?JRXIV=-ytr^#w>*$n%{u6Bh=>* zcoM;iu7|L*1PFv&Tr>wRwP>E^LITTG6=q7b*Jzys#5ywJka0r#P%I+35}>r2R0pn9 zxWH@5jZ-`jFy~Pkh&Zx2?qM`{tZ~n;-(4q36&_e}h}62p#nJF}!pm&cQF@)?$S&Tu zn--A7*R-<|%CW_Y6VsIi=iFm~VC21nAEgZ~Ek+`jtLQEVLdJDF))FmL#b-R&h^i_V zv~~WvhY&8drXt3LGN26=*Ws2RIjI;A>aZ#-P1k&BJe|t1?DZ)`EbK^GDHM8#S{cej zl2a1fZBXa_l3FN9ZDSsRAx6lAtq;_{N~BBPtsjesjzium5+2>j6#R(u{B~(|WW|{D zd+6!nEHyr?E+yEVZoSTp#oSvr^(kukOfg=(an7#2NyL7doQ~o>EL)nObqkhHP>6$s zO=_&4J z0Ao-jpVM?@AI^*0dHkUW7UsumsXX#5yT|IV;o17Nkrfe8kL(l+{R4Z| zF}`cc4A5${;#n{fi_EBKWoWR61xTeCU+*CiM+&oJ{5a9VqM&#IQ?xm=s#VnCKajh6g^iJ?kt!C`0**S(Q1N=HsZl=G;BAa zjebYws;ACTKf#=>P4zk663wO*gLn7)#PWY5XpBd{$Dh!T0Hq&RGt zMy$6yb=0bxvvsazH6x`M?TP9zX|SUca8{nFh_x(rzSpC#X8r<7#>JahgU<^f@|z0e z@xx{nXwr*3jVf}5;X+^?^wxr1a+7|43DGpX=2s>Ro5nnwz8(yNw zu}FA=f)guVqSn&7mHKqv$pTw$RVeQvSk!qY?b2Gjq7DhEn<5KvAizXtF$!f}l*7sb z>v~Xrf_$i|0}+=*lw!56j^PS8um)h`ml2{3*<8y(lpk)uRLI+KY&b|QqaS^%rFjhE zpWqzMZL)+4c7uJM&FDq8+as(NtMnvswuW{~`KIm^iR415QIeQ3Q7^LMdSwmVI5$Fk z#t-RRFso^7N9KcdUM8qp?AhSPS7~9Y$}n}3YZlToPnE^}HkLmaIByV`wg~#W=-Z}Y zi$JeH3bh=RoY-==w~po>NAmedPa9~KQ*59U-|+FqfuUB_QAdu%jN_4Czk&(WfXP*3 z>|@f5^SV&iwj$XjD2bm$)#ywHv=+tQ6;n!>afp-X#0n%G6>#2StkbGyh^QmC`m`3T zo8YQ&x%lhORN2&GJh-jUq06vUKe~qajdwA6$@+=psH2m3kWrT!A_8so6q$3BllqO# zq$Lx~AAI9xHj%{i0>=Q8bUV_Ikc+MW3u#W6kIe8SW~L_Ri;+u|##rne!jgEXF$8~J z&X3~7)rg@)Dm3$G(8R-3U}l?#^NOdj#dMQ++KO@VT|}PuA~gL7Q(+sFOLO)0`oncP zm*wMG+8U+E+Q`IOqjhKo1Y@oTQx;L3)PMU&-=%|K8m!#J>p!wue}Z9!(Xg3cm-!D5 zJavnCNcdb=d4@?c6r;CQudDKLl~pov9lQ6)`=FJj0{1PR#U=8L=V&R*RJqy9()k%r zu`^wW-;a>lJ}hyaQmvQzO}$Qb)PIz0N8m-T-Qe&us7z8fsyn{;>PuA4xL9o|H9;WY z;0)Di#GX1z)6+DxziP_ci?zC;PE$oj39p+vB99H`E6zKndf=#D-#&6Ik6>)8iTy@q z=1-HD>~TC3S^D26Y)j-eWRP6%6H}Fn=bVBf+fl@(Q+2JOchIwoEOMuf@z9XkOS29S zG?ln9-Hq}c@{Yz_Z>)#pGVy{tcOH8PB3ni3&V_@0*r;d*ru|7Y`JQRa^J=PJjE{?_ zY}4f}h5%$Yoy;pZ7tzKbGd4zft`ZH2<4;`w?|1p$xMC{uc=Qn#i>9)+61EG1Cb_@L zSB;nH*icDJo2BW%dNfX&aaOC6w=og7HM+qY*$!v48J*YYz`=(c+0Esp$$Vt6x4t@N z_==>JmjMq(PV+$_c0#)L0P)_7X;~w-31Y=H0*VtQo1=W4Zbk$1kIXei$`fO`vRNZ# z;{>)O=V_zUvOWW!hh!~(=Sk$# z4?f`sS`}H-^6pyEFH4o_5XL^I)&?=^_NYiJIQ*@%DhrZAG=ySe{o<{u zbHcMBW!_7Ry+mpA)Ui|8D!Vp4;(X22)GfrSk*GW*t7QT~wGakUl~t-aYsJKGenzFs zs$yxulRA?gXKy*l@(Q1h8OQE3mWgN5h`nq)v>hXMjy{`qFL(WWMshrlML;Uj99&m-i1eB zdj7@eQ3@BhBba4-XI)%^9k+*$C4Ge$f>R@orxbKl$K*g~qPbO!Qq_|jMO8+^^I@GK zh{QD!XCvjov=X+U!94P*h^)nui1T!@VgbZ~5A|MrNwLC74t~fi&>^CbBy7tk30}m| zf62sPI}}sl_*f|`nBv@oORQF&Rxr)AVs(K(=D*izw1lD^cM4ZXt59XdLnPhkVk{hF?YCkhMKj7l&st1@Xr-JkT|wTF!Z-nOCk@(Qj!J;>Mk;dy5db z3x}0=CUGH+hq(6%Vn^ESG5&IMYd7&=!m;mQUs!WaC0#D^6s=7(_*m^^MNORCw7;C(1&ff zFl-q`#plx2nh_6&t7(>1p8HdgXrz%m7%^8TA1ON=HUtF_b_iU|af9*LaExheN;iaL z@R`WkS~Qfp5vbFgd?8`+skZZog_$uBsfsQ(qjN(b$LV>!LnRts(qCfh)l2C*z8NY} zDWbcxr?4QybOxC$TQcnlsCfTNu-7JLitAL{cvX1 zrG8lyE%1wU@`ZS#La)aVr&cvCaRiPai0&gCH#Q}X*1~!y)7B;~r^cH$eFN3ezTaS{ z5t(U4nA@rNT{Cs(qkfJ@P$ESzkH8-ZP3uQ|=><8Bz?0i1HF0UPa9r9?!yq4KtnM}7rlRRu`E@=a7#f63N$gJK}J}I z1||nU)kr6%AQzW3BZZqhH%f(qoZaxyJ2USQfd$!nlC_Y;#S?gayA)rYnji|)qN1|0 znlZuHD0%JyIE$uejDiP^BaP}ZU(hK`Vyfl@g(%ay7!pqhKTDp9S|*!SFretABNaR_ zBWg=XtCl%sK^=XA&Y^)2jrEhhjOF568c$o!3jZOqmNkYEM@H+`!FomFNfA#|90CC& zjf=qa8qnhdpxw;kbS6be*u1586CKCYgOW_dOh=2Xm9<8}c`=^P{fb8q86;NUc7v#K zig65_@~4Eo0vu|De99b9TCm4|6wJU~Xaue5C0ugKff_4E{0_#m9vG|sbW*>?MqJA8#1 zXV%xtL~$AxCo0A~ZdZsI;x4}bG5hHSCX(r1sSe-89I~+KdYViGr_JUCJl!dzUufCU?x-ZOXF;sdFV_!D-NXmtnVcs_xMLd$4b4wUa&|)sHd;{g zrPcG`se54Jad8~vv#lY;{_6bsQW+fh&HjF~@a~6r*p%p#C4-6Zc|QAFVSaN7N{#>G zaNB)!QT)5lO5-XI<$KTZKCSe)>b&t{`j+G3)lzs4p-&gpNz?+5d4OuzUCUwq~9H$UEb{oeaeTl1C+7oU9Jv&&Z;z3}UO z2R47~>dXFh@5>*lT)6pnKYYwnU%6rJ`enP;y>6*1mp}IQ#a}#S{fXmio;vv- zj=pHiifw;z(fRk^Z~7j%@4x@zvdeC{`cKN+?s?^c9k;I9u;S9^7M}mgyWaK9&EGhE z^=WT@`osgzwGUj-^NVM{{ZD`MpRW4(mQS7djf-x*=%RnSYsvHH|C-)7EV|(MSFXD3 z!{;BkZ~uGiKl{7eAA4-$H{bP(@wYCn9NE3(l!P zJ1&gsOnaxidEwO3AAa=Y&Hr`(C%5j4mQ|nJd&RBa{^;mME5C8a`de3|$wR;Mmv?{o z*IsY`=ihnffjz(f%Ga;F`g@Cdf7krrJ4;Tze8>CW{(EB={`?OwyWseV9h;UcIs3`u zo^*$O>I++|cYJ3}-{$+@f8fJ=|Lv*cmwfGeM=zRygWI z^3(|NiIl`yapkbDzHOfx}+EXi2($-jXHn?OuMwn*2JOUv}2=+xMP+(WX;A zaLwk+kIC=rK5_lz+K;Zk=$g%Kv*nm2o7XR|u7BCbKd!#HJoU+E2l{q)FKxU!e8T%K zcz)y6FTDJV=MTI5iywQBIq@SGy>rQ7N7m=Z#`t+3IOhJJpL<$z;eDqpdY~|UZ;9GSb?kG zS^3*XS*!i%S!YqaE~bXhu)pq@549&>zO%hWclLxoLby@gUA0p~v+fy|Si>1ETMIfl zc`Q4p&a6Bv4||2;CR z{wAY+vY-WAj+%9`!!(PbvpvTs822HBSv~*o!{7EcT^)Y!iyJl^eRN;nzMcE2hpo-Z zM|Y2*6Lh#TNa~g9;eGk@I8wX*OQ%h?V{pCOLcND>w!CNr?y6RH)QMW_sxP2^*aRx5UZGjPEJ0V z?=JyqxA!81+$rtRS7H6d!1ZUe7Nk`ABj3~&{OuCH!e}ZTV)_M|NeXSX6sqo+kg`+1 zzk<_UmDEwc`~(I1PkUA;nT&Ss#2-CY_PvtfS1LJO2;JzbK)_tsdsg2{a=nC3CebC6 z9e=fcm=IoQI&ia>)Q5NLS9Y`)OS}JRzS|{j_A;tYUPC8^bAfAyLv*6uh`3}r;Uh?s zxxanSd$OACd^HYfNSJlptkAA#{>Tlum^SX)0jnwMFfG>XO{QFZ}Y!D-#;AFieT z=;&E&oz^;r7#CKC<6e19ud_PAa3~ZBwRWpc#8I&=P-?%Tx>$K^n~!>he9u2WZ&oMR zu1qJ|+D2{A30a>)=7EQ{o1p!Z>lGHx&-Rn>9mJp$wOy){qYq&Gw1WS!P9T{3TV%h5 zfb4t)Vu6>*$tycL@tS}eJtcT2%LdhnK_}ADNp5GcW4jdN&~F=6Dvvyp!*>09H;V1j zy3M-ciCtZ)lU$Cv>Mka17d?G+Rwu}oI?1?H6G#6m^Zmnnh^v1K@rSZ~ibDg$8~N#E zoNpiYbnqISq7-wtQU;%!&ukAL^z@Muw^3nVqFj>gDO^~|_DK$O@W>PJ$;lIP@GIoA zM7VLi1^?gURdv7PkZf$|K1wqVDn8|A{1VDPH^$Qso}rX4VV~hp_Pxcy4$dv`u4N7o zk24;u^30uL@B?0l7ff;BX&j!6;wzjw$=Gz*vl)0JU*K8kXLwfq0n5He@HJn6Yn*aQ zM9YWJ!G#W@ZS3)pyT`V@VIpkdjri!s{Z^q zDUN@{)mf3jHxSuJSYm|Ul9B)i<954fa$UN^ zxhrR~?^5v2n$H;1UfD9tlXwtkvTwb$Pw8W$O)wzfG#jS9^^X)$zbh#HBO@bh z0$RE9XN-cqeS8G+f%L58BJCEcHc%tA#yqoA zJG*_mH0yTch-9*KW>S*vGEx(4R@?_WHu!$-bZOdr{BMXnf@>FYZ(Mfq70}*t5t^ zyHnJnrBZnbXOYoXKIxQOxr^P*$RoB1ZyN zD6{S0M0L_}?U$KAgdK${>E_eT_P6(jBt|u!{^^Z2?o}*#43(f0N(Z!Czw5V;@CJ0E zj@c!g_4So}rZdf_n+A6pC;zG^Eqv;2q>rA|*EOm-sq$Uy|2^PvQJuWbJ}l={C#}}X ztJ`nT$(EH@PwwQy+8f#rurEt~8ulj!om@Gm6H0^94A)ox$d%UqOQqrPAojuOS>1i%vd2 znx-4tpP%gN@9lr`N%{$*GeO3adMBa%gtBzVQ46S7b|fmh!L7_Z^u>S=P{V2B?kG8jN<@~Lq zxupX6pkt-ZXf*|-{p4s`=1cOgC(%^zy?0%Oc_Z?Ct0IR+bo}vdb;3b0^xzk@5+l`0 zwYBfjS6JDzK#}@;+xI9KYA&>X?J~jXxTpQ3i$iU+pR%i!_*cF%ik&fQVg4L2`%<-Z zx#yn;PtlK1+qFUaN&m|J2OglGpp)@L=U3;@#^!WF%T{Ojjbu6r#!LGN4xMCf_b%@E z`iksB*4EwRThrs`QbSpxI?+ANv}cho?_9aE!W1df$x71u9@T!L4SWOrWF;=>g!b6! zf(_kw%Xu9%QyzZO1loNgqwSsCT!nse4s_Fcm9w6M?HZ{(`nQkn-hC!z^{Gy--hDK^ zwQP6jPQsiOonRX|`GaS%Yq{g==)_vt{~F(N1$kw7E2Y`~U*I?@ z_g6aiE1~}ZP#fLjjWrD%h)z37dmyAa+?a^U}pELlE(LnI%QBp=@!crD1-quCQNn#yL{> zn{`erH0#`K;GnO#PHLJ-oe9_3ptIf)o@I}aS3KuJ zl!1V%bK$C&tgvWg78C@NrB>#UW&@7E2pD!Y-)zFHPr{s=4J(t{U^CXT@`%pz9@;Wc z^*z5J^QqZnRLo*wg?bib5k85OJ;cdQrdcAI@0T2z!fo^+;E*SjHwScw56y)`Afrop zbBw+*J&U#82%KTz=o=h$ZFHFP61^d5Hj>iD{)ZLN*6p2m*4AmBjBj9_3d{sTGZ~wJ z-{9CZppI(<8&8 zjD>@!ZwMViVvgJ_%y)-pR4&U9&4S;MUnA}f5Ffbg2uD+*J>jZscz!d`K`p_#jvumU zve#;A>LK|x*m7Kgi*!<*IdVZu>1J-0DlwHY?vQJg)J3cUJwI;AiDu4t^({Y2QqS;) z)mSj{-V=+6t5Xjs3-}50M7IkHq*?C$Wr$IOXHi^iM1Z*~Ari7uJcVj*k}O_!^-xh} zyaImN>G_B_tEs8wk{L<7o?mDrqf>+_t-eaA3GqXOW&s^^YIU?UoDbJnuYr1qhKub` zK^ zUaY*KQwAWO2L`7x&+2GiC6HX0=90lPKlZRkTEwEg*zuu>F$l0?mrE2-r<@dcHgq%n zr{KsL=_NQGLqdZ^%QNB$d4LOo$MRJzOX5&=U?`B%Tne7ii+GJnA@d~qPKc(mPWjjJ zLp)^Ypa9V2iu#93!&O7#eF`;S1(J#*erPHMg>DBNhqRO{uocT6s%~;ptXwBCDSXII z#~E!6i5BR5?BhO4I^1$U(uZ*BB*r#Q&Hq^^B#tgk8>;YSv zQEEKh3t8cK(C}4FV){Wq%N&c89>B!)r`3WlZ4$&3tm6w)I@KKiU{W(#_$?N0@kg_X zEpba9MI;Nd77QMr0O+_7Adljuw%DVRgL(<7vA4>p=EwR2-vl9?E(y_0oapO|u_A=Z9}@^sS5 zG9C}u20-1I0Y4-PsMF~bU&=1Bk@Nc4uEydh=p~z6lLQwvymPMZB?75NC+H_=W?az= z4UEjbKXqmX(L}X1&~MV{0+(Zy=OQRT#jg!8QqmgHn<8{e(-Jp?4=3R{u0&)d6Mw(t zA|MOzkg+LCyC^F~MJ%U;gNve};Ll12?pdN%%Mz`C)gQr34a%TIG&{%VGB@%V1C%tf z&d`;`@L#7MN>#%$v{86`oYqa9T;6r~GFD#;2(h8ez8A^PBkah>kqW?hT{yu2yPd)Y zP}We*D>W;%aW-1`T4*354z3^*$4G@$G(Aw7l@%$Cz|XwbZKpd7@IMI#$3T;;)H;Dk&(Iv!D0K%i{YMt8Av zdKQCEX~j(mrF$1rb@??tRnaLVP3*NUtd#O(RJVzxwI!Q~mmN-ObbppTgx(j~a!*0} zZPcYJqrfD)*K3#$x*o~uWPKzA)#IA)N%pvZ3)=CNm@{ z0=33x5u9-nfu$g>PJ!B96e9v^G-~M<3SrH(Ebpmtc0dj2@a)~7Em&-I1NKue=~j;V zW2RkKvjbgaLhNXNd+G$iuNWQ}uf zESYd?2L^{^VkkA$>fzDQJAT6c`KjvArzKgd#?3q3c8cVuCSaFlLtDi~a8kvuX^9kEe)_@t|Z`;XrZLi7$wSNMCH$tXd<;UV`B-Rp=d(hP2Z%2KuZ7B!MgTZm0YfC zDCnQ|7L7?{Nra>>KxA{Jt75y>oY^3o7gG2vY^P~BZQ>il9G4wdV@YJ!G5c{?>zY%X znETXJr!rP2h+j%e17vsTqhI%6_4neF<|3%LjTAkFn2%ukWch4}^jA$!grTzRz_YAa zEG=gMYm#Il8b3l!R1!%f47zMkqZ3(&n7;L!i5;?wT6w7y&nqS+R{vSPc5eEKe zs>AU~3^rXoLqm3TaY%;wRL`C(8gRgO8mzGIBRSSu;mfObqgcBN`RKUjHX+9dcF!+S zDhfIuZnT|u+*RSI5hAfvtY9g8!hydZN7LGK0jkYK^sar$XKmf zj9`|l0<5*lfQpLu-?6O%QwNg_=#tc|eH$NrP*lw)#nLsT(r`+iJq0yehI+jy=q>~Cqph5~H+*p+^62Y7{M3TnT{KHpZ1w7{zM``0S{xlR^M10l3&=<+?b`9jN3$b#C@W^5PEv)CQyk9th%~}~ z%rA9dG0G}LiA6Eh$>vxYdsK`)jd3~&USL`43PM_qEIEQRB25Ccz2#ytyEFR6Cm9$NY_S?vTa`_;T`cF*jaD6CQlVkBiFu|gnB_b{D-ABJe-ExC zTV;nWf=iO_G-u$0w6-Ar6JTVsnpVS$@5z^V%?@`>E2Th_Z^&s~kc|$+ggn3C ze8(q)mdMZyBk%_t`gGD{dr4Q)<21KbG)koY|G)cxoCHS1M=%vxE+b;;h=V>0J34ah z_PisZ=ft1o$M7R_bN;Le{KDro9!2SA@?)qqNQZ={(K?VlOE(>#qpw^qP(8adQU4(AEI!M_f54NT zZ>sssV;NmNtMd(X{w{;Zfp<=e0bjYu>Oy({+)4k_j{ns^x1`Gvdd_5`cID4Ymo~Vk z__t1c>z|j#J@B7$W@iJ7_Xu&)Ig7KTCdzR3=cStd_nk94$u|x?gI`mh^iAr2C5!9% zl>ts1a5(?cGAS=Nvhyp$S)$j%aOd31*|SAw&%KP?!F*)*0iHl-HTL4%EKQ)5(LP>z z^z~14{GU$QkWkLjl{dxHGAin?%6OkGOa1Xqy1-M{cMsw#cn%L<6;ID6Rk*pGxIdUa zSC^hFo%2vLyxxw#x&xo}cPkZj&Ib>YA~g*@LqMFR;`r)x=ut~an{py$jdUFIUXo*B zs>5Ar2CUB}DnXpZ)H<*@vzpj0smN*?0Xc_>l57cg_M3W0_^fO~fDgJX0+gpV8MKyp zTnnz4g^itqQMhq%-cpJNuu*zWjk_ln%9*m{~My(IQrEkAq{wrxVu%Y>Fs#hN-Lar~GY;0*uDu%Sz# zX<&o`+)DQBE8r-q;^Ml%3qBJgh0N+C09iM(0>sXNl?t+5;jLPi9Y9(d*K5=%B@{*2 z@ux`?iBmM3n+;eZBy_s~afet&ndDGwd>6ucJ?L^BEEPcJ z9G+#A&hW9Jnm>?a>JL{=mx!u!Lx_$kWt}gj@cSbXe30^xOfKCySqeu z_z%b$#%T@{LV5`y1@YrnObZ7#m) zOES~Zh^ITLE}DtNb|QJW%vw(nyheQBHI|a1z_y~6I~B0pPiVi(npwt&BY#tCJ0xrz zouf?AR>e1Hwdw_anK=a;*7VlSr}UbMCZttMz&%$QyVX+xh!8a;C9G+I58ijBQ^0x7 za<1?U1%zb{t8w(zE7hZVnBHjJ$$SMdWxcA4qempBJ_@zr{sZVf7D>#eoNL! z3yj_>NZOGxwcPMZ#6vQ5YIOCnS1$5HW4w{ksk{=X!fz}O(v{#m)G52~zdOZ1V%QmA z*r@9QriFBHG?pqSy+MUzM`a=JceJ?Fv)$SO!*z%gV$owPt*Tc8q0pI>aS(rx7$6P` zT8bCiER}FPOX88O_fy;k!T~_AGn!cANM)s5Dy6Zm$f!to9W<5j7OF6)PX@@u36uB} z24Dn3|mKV^8RD+Av19Msd4;tIKG z;KoH@61G4^e~n`FCPzKlXLue(r%{EHY*aH7#uaVcEQX_fev|SehVycgRtH>^?=ID< zv^=L2B1e8)z1U#OagAdx?Tl+igFVJJ&6_x`$NTB)3zQ6_L)v3`>aXvVs1xG)>?Jzb z^!px%k@k^zf1Md)_GdA(Y6xdo6hpt;DKebo$ipcwC;&$YS$>`XfaRE#X0RUkaz zu+4lG8!l9lx|_pmePhSE`_~nw78kL39|6_J!4bHGp^(b7dc=L)#kpNky{Qx>PcP?i zzq3Om$rq!@5`@S^3+j4nyob0Q_P)kuf4K@VjY!d1i9OGzW%`kLM(+uz!Y$xcG^8d6o(QSLmxSFDUu4d?lRXT!m&byd6R1qSN`TO!-Nx#bg=nDkAZ=*x1N&}H_jK^GMEE! z$1wgFeM!`L9&sY4Zp3Vnme`-bm?I(f{5W~1T4DGYaNUf~kihASFoUbPsLX$y6GTl|7v=8f+Z}@>;4s26kk1 z5ds#(PSf9}#ib)wV&(lTO02H1%sbP}pTjP(n8$$_thxll!V8Kw;|w#(r;74~gZHX84ebuK;= ztQUeV7t`COnZ`2 zcRh7qZLz#S7Orx9m=~a?1+F@By_kzV`cxlv3fAcyK8#{m3Teh40snBgCjZ)oA&5MV-cw*1< znwc81LhR*gavAGy zMv^8tp3P#O0ncZYyz_2*{Sz_pk=>HqG(};(RJl3RG!0*#e>0W(We`jQwX4c$h3Dg_mNp*On%q#@L$Sl73_fH3Kx2! z+1q58hGuvb5J&kucN~5NYjjpg@!CSSzg}vCxjaXraLi+L#jw=L7tUgd;%9A9yc0(c zObk_Un1%+DILUQyyaZz@TM6B{6<#8!# zEfH0yFFKD)un*u99@~xYag1CAU!+y)QPXndbGe(oD??^_gk%ev413yBaaplPmfNKH z44EWOX6#K8`^b{R3)3FqtU-^=D2`Ki&}Ne+bB0c9rfbr*U1nS`bCBfNclu0fPw4gq zW^Tn5E3EjYXVmIuo-IwCkU+Jp21R&H`wY`?;!=-YPj`eRn(!YdB}$ItbWDjV-3YJl z=<|-*M2skXESFBZ$Ctv4r%@oUPapwp9{qAt!eXmdZ>*#b!yesayJrSlP?%ogu{vLJ z-NIQ*QR_FQ2Y!3RJ=}$0k|@udqAvDrypJs0!$CG{XLw1Bx{D$-5uH~{C`^v6HtCzO zTo+9Ok;A&n79DE4kl}%8sndS6qhhZ(WJ?8Zq~=hM>;7G~%Qkh1dc;Y-%zqwqEuZFQ zsF57`MK0FJDsQ~D^H_{4r~NE@nr5++i_$9?NTRwVw%p9q1DVK0uGdElti$f4xEV7r z>CsqeRO5APyqz~+QxIIr-GuZw^Q~ySY|CBNKdx^Vk4u}Ct{yL?@u>Wx$C*oh&yU{_ zc_+NspL&-}+%;?mIq^*AH6HG#tFpY5O0V2T-ncH^{)bk+q<1yhT)D10hpDi~lIPa& z0{vkM<=d=G5tCH=OjS&^maB=yTz74h7PuDmJ|m^p6rhxKdSb?GSr@rgk4|M@At~Ci z8OHAf@u$-aFv5IX<%C#=scYtR1ZA?IK&b4ZDTy>;dyU9yM;Ui@l~a*;v5e5yV;eW9 zQ4ic;h%F6*=Je|fR7`4U(h3C0^UhP>nR}AE-*iN`-bnB+IF%!$4;wHcRYtZ@WSXoQ zTNI-%Mi;uPPo8m6mt|tD#!uW`-Odh7yWYaC$h6RliM^MbX}#{ep(&ZR^-5~{r+mZ2 zn8{04BS6kJM|GS@?l~(izFwNEs(zqy8!acn_Q9H0fzvUaV^*Qu3m3hQVJLN5d9m*7 ziIO5kTc#4R4EM@+-LSQwo0;?o%$aPoDPo4sh}?1;944VEw$DXbUfGX@Sf zo$81-j2x`7tcu9>NA<%zue5P`hM$0A3;KNDgkoGahSr!RIV2dbJ=t zx7QmHEqoVg{Z^V3C1bkKUw5&r;-)nzU6z!+#7wg1nGsfk#4ho+r95(f&e^rmJbAZJ zi#nF2F7+SAEjeL0PA=dMpHYP;9uv~?Fw!&VN05H%J#&?OdWLn7(7JXFW4=Rm|AOw> zEk;-WT4C`;sU#0GZn4()g!mGjDyxM+Eat8xH%*`cpc_6S?4k}YU`C!wBcLI?$a51! zj~WL8bCp!jgFOk;>m3rnB@^+CWhe(<9|6<`xgBC*uJXmtZS$ULA9SukM`ZW_q6-_i zMTvzjn&&kF#)#w0;e<5XPkC{4EY|Ud1@X4`3nQ|)pmV0AU%3?H9jA6Fu5tOe$I(7! zJo%=p{hr&&!qiBM+f(&`0S5%tRa zGH7K-CpMOr(vU9C$f-<9+ALGIGs`2fsh(Fg+B_{_dxW+ZFrKBP)@kx*Mc>~j%?uU> z(~=$PgGjalBPUI;<5<_+cRRiwOl+gdK^7gERINZyZs-1+X|v}t0W~JtvI7JgdRV^{ zMf@;Jph$SzG|2^dXY4%ui{`v*$NVI0dZw1yp#bxccWpE4pd zk=#OW>ovB)Eef<)&5;bl+Tq5z0N{A$AU7tKJ=inox+=!&-L$9Kr;t}^!?#Iq5=-!}u z{%5@RjcG3GrW1WYG!`ky&{D6=AwgVK z+Ysf1so0W>InR#Cbq&xpK zT+}uK56)p~2^q%&?#KbsNIyQVq=j1ozb- z=_NQDu8|T94n;Vv)pg>0JTEGdGc+Y7$B*0z14)Kk%sj3P9bA|3!}e1w&%t~EIqpyX zo2oKLj}Kh{lr++|u4Hw_2ah%>t;QO@IVCfk6tbn7nnrp3k=U|8)Os#nq1-ho!?s5o zU!)LcNX3S0m?w=%O9Qhmi4f>Pr+v`#A0GrA5*lXs2vJ9A;`redGTq=Dd#r!eCY%CI zI5DfPD#%i&iwDUyu%-uY(p57qX|`mjmCsR1Nxno@*oWJGi=b+ztM$xbdnS6y$)y*c zI?a>t8iHm_!<25SA>s;8XB1r@INK4=tnhkPf<1F)eddX--x!aRJ>9k-H+}LjmNO3S z87`(zEKiP37e7-f_5zQW7bccP`H}dtc z4*O_Tj_Xy)q6jZ=hF|TuORh)WB|n3_<%X#GS*u-~>82m19bg!HE98m)I{q^hP;ZW{ zZ9Tqg`&|~qmNXcqQ`rU02TQS%?n;_6TpP2VW}7%kTRaF{Jr?C{ok`ha?(SN0 zxQ$rraCf(?m2G})a?L;Xuef*&H5klAJi?H&%w8PR(2yJi*ddyfepr||Dz(;p;ihGe z$cc@^^Sz}Nh4Df(WvhcxvY=>o6zOpTNAJAsyEN!&JI1YO*G9d=3vO9W(mc=jhohh5 zv3C)Cnv3(R7MZCLo(9BBBq{>E?b2cw$4;&OjmM`)8ar@-=^E^} zQv*-9?d6ldG;QL_h{TP0+2y4*b6xSeLMe%&OWyR}*etiQ?OPvS)U?UEq3^lk;Nwxh zd+^$6rchB_w}sw&XTeZ|;#&v8@-o=JqWNf8aI@X>o%U7E} z*i__h0)all?J$j|6czcxOtLQd=gr@^wjt{+U|5f+zdv43G z{d0TE4_@1_>YCsA#XSd3-~8h1SN-E(b$3nGr>6hq*?n7^Pu%|J|2XZZ{Iyfpf8v?D zuHEr?B zC*J?D`!|38#CKlw&3FC!sY@?^>+f%V=e7CM^2^G}viIF~RessuExYr-{N$7W<#Y1! zGwFj@yyv;oKKr+)z4pQNZ(niY*(aa>8#kYke`#&$+&v2>w!ZY&rSbHI)9=6h#uFa9 zWy=p{ZawAx4QHIb`L*Yc-0*9sKfU?D2M=ui(5p}X`0YRV`I}Gw!UN^+-~aXR{pF{Q zZy&h-`@etu3%~#S-9Px32fq5vy$4SF`3K+k+B;r7`|YPc`LQkgpMLfF-J9>ceSGiT z@4Ru_jwk>4sn_50+BNgv@*CGSrqj6YKVJA`{)u&^*7}}b{LZKH<0me^cH3=ROY81f zcI7WF@7;X)Wq*9x=DSa?TwFf&`O;U;J}s7yKJ~Q&gIg|ta>sivdhYSxntW-?|Molg z-+kIeBa6O;PQG{i6&v?2&)@yn?N6TDvu5gyQ=gmp@cVwa&o6u8#y^;7uKUTR+wa-% z!*4y({91DSW3N7Z_cb5wJN~bJdgs0aedFg}-oEe2KfI=WflGkKOXo^_S24*hSa$6?lVLmSz9^#J>Epk6(BE z&wg^)gP-oX`ExvRIP$aue|X>@9@zWA%}ZB&Ie+2}W1oI5x%;!r)=ypcqpeSTwlw)z zd*yuxo>=nm-+$oj&G)bT=#~%sv?Kb9>=gBzw z{DC%S333`sd#fI4(w6+B&O*Q)-3h+*P0DDsdiB*CUc4J60pI-;C&B5NJ;iR`b2?6V zs&XOt>d?o7P%t6U3q+;_(uEc-JuSmMO zVh-*Z8PW58*zb}X$?>u@`TA|GT{(J5@y8W;EGN^(`C;R2gU%vBEaa)j;o(;qSP&xDw_4iHY2<1SS ztxvz~%7IK8owVc8tAkG9u0780#!N1)Xmo9QGCI%#)Lz7wVFLnowW?wsmXSGQlB-i>Z( z)t`GHpFePtc0F`5x}k5wIagghI_W^wHq3F8?H3NT2xoD0IvIY{@5*ZX5S=VMjurt@ zYqy@V8r-ZdW_?l>{s+4|I-wb6RJEv(L+;(FhisvfkxVE1_hmY%+Wz*+{kz{I&C$_{ z{LRav{Y1|XZSogfwaU~Klc7!XjXK#0d2OpBt&>CBd&Y({j8q~Wot$+R=c*yP<{NY( zdd%tJ*bKE@`gMd(J%UcKUG!79)_yYDRgo21J3XAKeb|>5e6^z!Y!^pT&gsNvI?1CG zjF+~+S=Vl>PDVO9$!u3~X^|aYdQRAe>Qz^bqV+}1pph+G+7GRs(J|)az2vij{+v#H;BhWp@f3nPdpGCaNn;D`WYohkwkhZY+qGM{oV8uDZ$+?O zsxNfXzcMH2gcG1--YG#R99(jUPTF@q3g*6GE^=DVL8owH=%k9h{pksnfYjdI-?3dm zC({0M6WgVwrAJ_W%eI=GiMcVHiJ2d_;fzcZZ=5dhi8QltY`SnyzLNYk@p~*At}{Fn z^9XMT9UGqwU}9+{N!fA^<;6UKNn^9LEF*lzM~a8|;PUcKGP;*=#;4L7)5kkF;I|N8 zI3|PVDc%2ryte_9tEdwG&%J%SxzjY6o?#M(0HLNCV2BZ01|qsyQqweHKvtVD36Vw8 zsJedS@n?1p$(Y1d;emFUvZxH| zLaef0t6?5Xm5>S4AonDSmzK(2CY;bG=b0vDOVUHf4OO>no-g-r{!Gwr*-9OG;ir5I z`8X|ecwuAeWL&xAK|RBB>4FP62a~fmw_fsKW;~LC1((~#Ww0AMy5Fr`Te9F zB##B$9QZP+jE7%&%uQWaih53|J|A;D>+GR3QCH+5pSK`8si_u}Vd0Yf&hWfkYUgRV zOLr0Hj(R%y`7$MEb^0?ul>ucr5Bv(`P&(}DUDb_0)AJ%+)xn&ciM*`)^6@J^!Z~>K z7^BOV7j#VHv`(fUxaUYbVy%ws(k>P&z8~uL1G7bKzw~c%5`P?|Sqx?8-F__1W7fCx3$07LJ?Ea=@WKwQzKFJ|-)kw2A}b3Jez; zH=cVgG)m?F+UF>rr%01}P8kHUp~6IBm7`FHac(CE&vA5ec{yF)VVg8rTi)8cqa`2v z*jw7qlYpb$+fCzTL3QniIg8H844eNXb?&ZRg&*;V$);!IQr^et>3;9g;bQkc%6kgJ z8KcX0on9=Wtp)=Vr+!8a(X%`sMsyWLKDYf3+WCC3$jOjCtT=_;EoQPJO+9lxjfUB% z?aRGzVQ-pQScS6*0kw(82OOgceebGs+TyJBBRl-oF7N8VyPUI^Vo<^+?UVdT-(lnK zyTAEO9-f(Ydls9p|By2@Uy`Py!z8_)U+MKQUv1K8QC0L+POn* z(k;}l+2jdI(0-8U`G>ZD{_JCY*n|@f*D|->c$iKHM%$z9(>E^XD8$2*2Rv8JzVM{l z=QX~xyEZA#KGSOb;E7pml78LV=62R0d{z9#JiW$V3zftzn9SnDP2gwQH&C(->nApmA+C!A)Eud)fw`uklrX=AbF zo|cNoe^NKn>HOhId1hwf*K?->UZpA09Jyhjm2BJ?(ibTITm;^tEhqs$eY;x}XJa+AUGjmFN?6KOTG2hM> z_TXB|Sb6b9DQ{}eGOgl0!NDAw32%Cj(}~Y2F;l)`q%QqLx1Idz7k|Lep~$tWkvXV{ zmNN`H?L-eWfE%MuzWuu2&`#*Pded3T!511F%V!gt&`uK#bgtZMXgk3soD-}Kjds%h z=3||9qBi;6?c^*fsOqHcZL%xfX(x$I3I)DN;Cr)Pot<{(^$6a6xlMjRJ88GS52vX5 z@Xy(8=^L@h%wg?WOMW81cwts;f>BgW^j#{(CTpo&&v0Yx zd@bfX7%a^>-df*II1N_H^Z~S!C_4PeS!_Z(DUO~F3zm5S-X=`Kd-t`Ix32N#YQ4Oj ztnEGaShb1P!%jQl)K{G!)23-BStOwozBh5B?%unh?3m)C|IxvJpcC%w^^?9%x}Xzp zI&NoA;oM%m?q0yI`=!o)#*Zd0`yxv*`D8B1mXLqn9>30h$>`s*XP%|_8#?((B1bnI zeIdbz-xOIBWzVEAL3GFdw1EtKG{JZG5oW#=LI(6Ddnt84BcYeJ+?mo%eUdpGte-d3J{O|abAs_Mk1RZX&*Ur`c6?{w&*4caK z@r1+cJ~cx7k=jE^y6}H>-0PA(f#EOqFOxl(&Z0dhipAb`tbaYTpj*hnSFjS za&_|^@9?9sHN|SyF!7hrs-s|9^rg6@Q}EH;5k&Z%G1Nu}FMa@lr zp0ju1qHdBQSv_h~a7#FKs7%7alXtwv2lV1c-?`AsJXXVc8|;O^VU*Goo#Lq^Q4?&FPqc*3aV@v>X11RWkm{k{k~3o{;DloLX7(kPWTu?C(lSUfHXVC@e0 zk{N_6fv_R^=C-Lu4d4w_mqugM?`hTJo0{>yo4MY=Pw)8^*rEg3w7dnsu1*RH9_?c~ zK0{4O3bKC=U9zrg4_)ECzfNPjB>P-nuL(}?6LDXp_aTa^M!6*%hddg&Jt&S_SOujF zY{x^IND)4{Y9Mx52@e#Qeq6km^E{5vj@&h=~Bty@FVLsAg~TRAFzQb z>%2%63WknE`w_nUAOXzvEN4Fm%%?Rm1VFKyMLisMcy!(p-Hwxi^m6n0^ zl{M?cfr+k;kbr+SOOQht(M7SMK$Gy|TN8E`guvesv{tYDDpC&gnU>yiu`9B9? zP*=8POpl>4D2k_`NW~LmBWJTxot7zXfu2d`G#Y6mJ;6xC@slP$ONS2H@#mZS!t2y- zj^akxMDsxaH(VWTFyd(fL%#`E6Ixse#~=u7t%3a7M})@ai9mN2GaH1d7gXAQLx(Rl ztf=6KOK#02WBX)C2B(BfAuL(+&Vol56w*dzur4m-BPvrJ3fPJvmoe)qD+%%xEwGlU zmNvZ(lsfO1|l|ND$ zUCXJ_oum{wqpQHc!3cXeN;D{9j7(`*GEhc+Y?s29cbWb)Qt9$m>?p%B7Ft{^l0HL> zmPN8ulL|P6*g5EuoER;%Cew}7sGifTw?SnM%cBRLVpoH#JMN-FX^K6P2$&CiujI@U z7qn0cEW!v&0DdGYP(ZjkGSlMTSR{xphH-KT0|W!ku~ciyP{HGR9?_vZC>*15(D5>S zIG*L}^Yx+@(1dIQQXVKhM$MG2rWq*YUu(VVbMij=CWi+?#aSnHX-1(1r8>l{ibaE} zkQzPdyWuYDiH!IWK`QMK5J|xrF0}rvI3x@2aufy_f(?bCR0FW1{vx#|cC;r|_-ol) zfCyL$l;#_fuIa)8wZgHJLhIL!BKO09+NBWW-89aK`e9LxZ6Hl*ZB-SSya#D;%hL$P8qQf9Ff$9&e6*_3hohd_&uO&g373$h9$T02!kzW z%z#K*rgP5NxaY3c7H95b69!la z>RX6op9ystZuHdjAS?*Cm|CMzy<^0-A!CPxb|~Z6?XTm8q3THbcCnFVzwnrhA8P41!Kn;* zgTfG+O~7Kh0cX7?P6K5FeyV!dCeS3+F!E^c?pb7P;Pn=gw<1tJn$45B#)oVjQ6@p; zCn;mm7;DcN=peJg$IX#SlSE;tjoA(e{RxA1u-?)Z8SLS~g}Y_PuEMh&r0A_j2ChSQ z;o#xqgq|>x$~a9y-H(G6tf8E+%p2}Bnsr)FVMtT1a~K!S=&#(+VpgM)tu&+pjHxs* z6`r3UO`}whRsoem5yuznA-NQy9`;L3wG>$=y6ZmOSCc76i$8OHK}K@5sI;zhwZ+)B z-%9rCma4++o)@QK6gKrFzsO`OV$P(X;giR>)?zv?paoBn2iZ?R!6Y!wxmYd=$0?OF z>)C(=wnp)EH87*7Q)*C=s~L;Tk%_p1;8kTK47a)1T-SiaX|Y%k8ZV(K=$WCyYsH#O zJN6;fjN78Cz4d8FA&j?c@l8z0vb9DHFPrsZv9Lp? zz~>W{BSa2r;NTvFp=EoVJm|&bQVX&S|0H23tT`u}3p6Hl;977nvD{l{zGgVk+CgmS zgsGYoelUopn7h$wsqAXuU@DzIlq@4<2E~m-+UJJ%W-L-kNwx+uZ#c}x(o*^$)gon@ z#F!c5=Jy>@<@2foP3P#hHUQQ>vSo z-At)$NE-#J$Z0nvB}A)GF2zT@>VG>4%H+f-PwlU5*>XAtK})`kR;>(1S0ma7qj&Ju zrUu@|ykK_=hBD2%$?q0wOrgmj=3EPzXsm8?be7z_Ih9L0x$_K>D)tCXU5N2V^tVBQ>U)E14C$PFc2cAvPak5^@d%RsjY+${W$fYE-my%-(npc3#yZA zh|8N?O{)kpQ>G`!_v z6RF1kPD@H_3B%A#lW=}{`)eb|A_eUsr;vj-oEzbQfcNHQUc_{EfI8AY{u!Nsp4cCn z-64myuxmL$4fh%UtZ*@DgLP|U>nF29iO7~)E)xw++$m8Mr>AGgt)jbXxNWr2&DNVH z3dFE4GLpbzK~i)8_3Na7p*b(E+&aTrjkBe`YMfooK+O|W*ja1zZU!4)4YBs@4(AXS zM28X8-_jJ;`)t5!o$?Ns&kUP5JTRWNCbLjN>ko-9hgQ-w016sLA!AA@TqqliHZ$~y zofw<5&gSaU6U0%?S?&_zI&HKWkiW<{(hfL;iu_j+@^x^g8poxe$EosZxM8H~;|Gxx zFd+k|RHtDNb1eXHdl>eW$8E~e$Iy&|DmgpwTF=svEv?SFVPaZJ9_FX>hFNS6YwPVe zdwS7Yz?vND;mGQ2S%S0V{f#L{UBeKu8<(y5Y4ep3Rj0Ve3!-&aE~nKyqZ!cBkJau{ zQXN@z|8<2)3fAu!CQQ+TV^qq^vUkp9(tTb5{4 zu{ItH%^y)#%*qs0#8ESp4p26R^L^P?I&P0&G9)24FW`-EA1@{1t0Fh_L@4DtR~+Jb z0FeOC1=ua4`8h()$u?wSo;F4{Iyq$)#{ZdujG==eja?xcfhqY#jdA8ob~s-Msx|B> z5%W$*f$zV8`?mbi8P67ev=p6jFk!yV#K#Rsd6N{8OyEBaM=He0(A67fY1!$-BF=lD zcw3nB_r&!PhL^Z3%U)}V&JRnyFKR55p@ID2`mWRr#}&y<4Fxvs#;&Jw$u^l_KCd@l z9^y=aR)P{$DRgUElbEtFCL>22uoJF~p%giuw;bcN9u!LB=2j6~lPq z`#ar&Y66{^J zQ&G#7ND^otMXu>cvNdyl94*#7VWMmUStntIreGCC&Jx(q;u!{2r&u?SNZAHWRINOU#h9`5}qUyh(l}Vu6vw@7aDs zvD!$V7}*@BQ&Zg`^sv%ei@JK^6dgO8dfEF#%Z&$$bWcYQqPc)R%baX(D^KO8=={#e z$v`k1(PYOootP8Hg$<@ZtkTlrpvO?Lc;=%T>tr$V%?KgGBsVR{H<=^S9{`k)gCL|_ zG*sdM`2(97%pZPSkm#VIiS&k)-KZuQU(cxpEduLM106f56?}zF^y7q#6!O+4)iQvP zfkhYxw^)q<%18|d{#B7Hty81|b7$*4PQ>D4exa!y{f~2E`KjwXG#zs?g}OK|2j~6g zvq9v(a&`70x=ymsODzw>zxavE9wDs&PTD=|RSOQJe~O@pZ@nm7d{L94XuP8f$YLoY zeU>rE#*WU^XDV+tug1hzMrAI9^-~OUOe2t@=sjnz)D)2L+=|WFKfE!Xe!lt&D&n05z%;rqQW5R8BjI!YD5Fhl_azjsrLn8-jt?*DMN9y1DIN)H`l~b8JGl|+A}<_@~RUaoVIp+ z@j{u3#AZ3!#{{LgKR+1uhnH2xr^9y{_omozHpYQg!uu=E+VYKgZo1{(Deic*D$OtS z+rd8W##0k{DwW1jC7M1r1OdYQyAKZs2i0(g=OBq(airg1@_8dj)LNIXzdm1*s1Z+3 z4@JHpOapjMkdu=m!{8}EI;znTO`9c4#!X-U z>g&To>1H{5Bp5D~KP%~525MUZ&ZA7{TP~jPC%kD*adP|3Qn$m7S+&AQ_#y3R;(>ID z+n5PHi@=9zY%Qu<;0Ant_nNdDATD|}M>y+?mG`H8i!$=!`j{yf9(wnZ1_{f;kf-4bv8Q14UsKeMIzo!dUYxxTg5oO0K^?z-%;3&Q^S z%fEHrg!f! zcdueRd0@@ECnwYIz2c$|p0a4^yyF-2{P14qrrZZMH*u(*2W+}x@}UcsPd>Kysy&kz zPrm0n$1i)^-V2tVdHGi-PdR1LdB-1ez~tn`(-%x`dU|ql&*bDWhpn&Ge!Q~LTJ?j! zUUub+=7{fo@A@sDTye{{R(ywqLvJx#CS%eEeNMo@m5( zedN`d+H>N*yn69Dr+@n!4?p>auYTdeA04@4@@;>7)h|CXFLy{32I=hke|*o9^A}(7 zhflrhp5po24_WewdrmxY=UF>m{}VU)tqs38_Jc3p^P^ur_s*Z}-8=d2!@u*~A3wh1 z@x32?=szBtch47>PTu;-OMmr=C;s{iD^B{w#+{$MY4SDiZEt$V3z+W$|&Vj(bhu`>yzaldjLrUy$uT;LVRdI{D10 zvp@U%SNC3j>DnWHddmgp*A^|lyzei!@7a6t*cXmF$kpbBQV*)vT=TY-TUrsTb3ZX~ z!sI=Fdc`?!Ik!0Pfknq3KKR2Q3O3pNf!n-I0jH6mLGrQg<<&Pifiru-rw!rd)|`1 ze`;U9W!sx>uAj5%*rn?(_-cLC$Jc)M(R1F={Ezv!{P>3K1$Xt$$MD#sR=WMsh0m=$ z_JubrlJs4Ra@*hkjoh|(U%7DUk@tOX(c;zDUiZ_TZD@NQ%NJ5PR$B7?`N--Pp%>dcXd#$RNsB)P z%Z}O2LuU`E8Ua@z#!xengD1E>Iec4&rvBNp3 zeA2H7?d_eORZhC!(K^1qE~~!AQcd7XJH4}N)##=tSfL8FwYqrp$Rl+RPv6^CFZ(lg z@su~t?Z)!tj7@j6+3}{mjbGg_8%fk%OPi2fYx5+3r8J)99 zBn(w)sQ%;o$|sj=VH1%J(rRfI*yLfdlz*H3{O7UB=)vcbvm9`M#_ialbG3q3eJ>cm z3i}HDB@R}Ih(-iuj#LfR!V9XHc_93n;wUEpG|VqM=88bb*x%``e}8O!9slsy_BpA zpP6aRetu@pF6i5*pB_cb6547LV~xeQqufp-w91Km9+I@9qigeRwaKUhU#40lkgW4( zQ8_kg`TL$x;&aQ@Cf2rEjq7IfEvs7(+7w#k^SRmCSzL+)F3qk;wMj(+FsAy!6gzi` zEqeteHmP@PatnBNRI=YO2v-$pCsaaMbTqOToBVR`%uKMCZKG`op4>x4o*5nWHhJ!s zzriL8Z||+>UKzWg%cElvW!eFiQGd-Om%hSlG^CKopY{0fw@*}5LoW*K1WwvP$0lqT zHfobqt5+}MW=H2Nx`}oU0%_4s*u&Ufwd(ZKU-!Cd^%-nZT)xjHyB^k+>HK$6&DrG0 z9ldH3#qVn;GxS}ax$nD};>pv*_w^+*SRW;Sl5?`o?}FqfC(zys;b)F$kA%$rpY@3YCKO`1Q&8QuAFZ6__Yi9ESy`SNbx z^;~=BetlQBogDU<_FZ{wl3w-Nr0x8+cH)}se{nQ^-94naB{tDIsO{vJZMvKNKy9LH z;ANHSiN4F*B#*7wam1s9T+vtQM6r{eduCGW#y4W)}$bnxu?(>;Vrm+x11 z%-;+N@p<3&lRbvAy?sLX_-D><{YfhxE6=hu_WN>)gA?R%w}fuh6}h*>d&)_CB&FGro@`T1K+b z8#cI9;x+1$oODL>?&uHDfSZ|>RoQP43xQKBGXSkcLh9%qKqYxA<_?c{t z@a5K>HxdtN?vuA}O+=T09G3?w5cw$`5_k02|6yJvf*X-blvWB0l6{Ps zn^b1*y2FdaX&K8GN=6yTg$;&MbrW8GzoCXZ`xP}$FKcHXBl{d{KCF8$wJeudm4!o# z*rS=ky&V1{tPiHlYgA_B(ECQ#sdaQw%uvl_f$||6_CGdGR$Y?L>q_}W9M>z&<%?;# zPte7tRh~|#E|nsqlEUeuO2F}BI&w4Sv;Vlb3NK>^*x7B(iCx;Fi^U&I$V{OiyEf4| z&CINlxBhDO8J#z@+NlrHCEUH2U00a@ckHPfZL|M~Vd439e34Yww%_)))!O5=SM{wL z-FU$K<#Y$__7z~{Grk_TTeSc6oc06rj;P9iX z?A$5sWjc%izGtGPNP}HoK$_iKIBj{4-(A!`_#dgZR^&UowI6jN-$?B$7SreTQF1Gl zY`H-Ht`n6+CiYPFF7IXh>pKiCql~7jQcv$GjE)*Zn0}0nmc6N`PdbUcV7;Tdm#nu~ zT=gEd(e=VG0d`N)S$dl=jIdd#J-T-J)7XUb4Nf23nAjwEEn7&jNpEWTs?k(>$Btte zD0V&nY@Yc~yKU{wzRt-mRRiOIy!EYWlNoICFgB69A0m(cgiX@a3TeN`m)*71CNCf) z5_N2{di9I#$7#;;^Q8RPq&@rWEUzr9%dyF?USx09D0Ult_SbB}NSsy+s7;!)1HeXpiFi*`cy181Z!M^SxOeP;A-Y4>6i=V#>q`@N^5X+P=~ zzrI|mQr)38SvxzsTX*Bp6z1!&DOY&CAdo`4*nalejp$8=#wWN zT}!FJ=|rp-jQaCFp$Z7b1MP&Aq)plhA;x-U(4F|yIZ%P2r(v?GlPqlV9w|abgx=36 zpuc9fouu@BhPLNZvd>P+F$bz3=v+HtGc6~$q>q)^nOz%KsYvB#to^$avcN9pTRJyu0&p%DodGB&; z^4KmmJ#rcg?c~>N;!w(_xpqQRZZ9inxZVB(ikv{D%^Q49)AFs!--PCtN&E00%s!pV z_3irbmbGo}Q)q7qHNAFmKbv%R%KDQ#=4`^e5bmi|t0leK){=J8u?d>)w3GM9@=@J6 z-Z;@u#1sDi-PiEHo8j-^mp=G+5d0sDeiN@>bUNqvX5xwu(^Hocd^i5TAVA0F|AiF) zIa2$dBm3{7N+(YS{=3-y7x)})s!Dy~u^m_Fb``qeZoEhSCoa}FsQ88aDHwn4T&zwj zUIIywHxC}$>H6@iF9zGv2>m5starQg1VWFnNy@W)KyeYN6|CnZNMr~l#EMVAc0Jy8 z5Li+qppW?XgSn9151DwAG-e;(?enSxb6~o@R@XD<>Z=hC#wXC+Ojmc|E__boBg3W4 z&+#+-6fD0am4+l&h05a56fP&%SVD`{G6;*0bma+JSvVf7pE+j6m8Zc5N0I^tPP(E)J3Ep3;?bUo_6 zB(Q(P{#-(oCYGNnqoWX?l4%YqNuca0l92VKO8n&{nqnFMZjV1qcda_*2lUV)j7~qP`T< zjoXbTJy)c)AniWBOz3K!%=l|R%hhfq)*&kx=<`kIW0D6!lf651r6zs7ygb# zn9YL5x|+9csM*vKQPs1JpRP@FUe7dFN4Nl!fo+5R`%+J>zJ%R*?ICfH9ZYEp=0jn@r&lN>Zkq*Ih zWg>wfsPOp4lWL6mcvf~lT=-X_G>)@`G{$;L7B0Ao5{p%$I&=ZCQ1bZ&5P7Gm!6+z2 z$4R`zc5q^Sl!#M_{3g2jr+10FDfJAx&uP!c$V%v$ zL-7nX9?>&J9iM{em%>POIMWlcqAfP;Hqk#raXfFGaTy-lB6gmwY_K={e2GLKGbUjW zJx~n6y1P<697lK4H>3! zt5WSZV#Bb1gbZo3GzCLH>1r6vsTPbO*$@{T%V0hfu-H5@`l&FM%0T7A%{xVx=z#B9+>v zho?<20(~4-YXxNJYlfJD6+;@WV5XgR7Fj#&EDS2vW1})pdGPT|hl*OM@>4D7;sWx> zyG|_X(1&v51_XV@3lll>Li@2v-A2{U+7eqZwDu~_QSay+=YTWljRpdX{XHZ~P;X## z6DN6kyqIL37JAVVRQDPfeAC?!XW%?fvX=u10izf8igtW7NJUt^{B}^9t}TpHzVUJw>8XV z`FSuVU+j1xFnAq5w!A>8p>d-(4Y2Q{&oWiFT`nTjGL8xni=*2-S;oQfIwiPptRbda z4M?BXZs)-`9P<5=_hu}P=xlI!bnAqw9+XSq4jLy6DZdAeXGyIaP zRSy@0=rN zIz!`-C-La3DyJCNFXevrzNKmr#^N&s#jwND(w8?CcJb=B5#1P> zm_L%fgW|EC3Wdm53x@Um&HU83tf}?~;mW8l;Jbi)D;Qfm+t*(WXhQUzhUy_b_EcTE zPu^P2(H4yz@v>Ge5OgfyYmXL2!PiD#7s=QojmJZ+iv-cwkb3#=KwvADzKgso9#g^J zjo(MrA@==RH!<80%0OhXg3lO#$p*;SH^6}y}3z~=IalV6rC{Md-XKS{)=An@jy1uC*f`B8Z_lxez6=r>3aK*c=xlXLsyjV=(C>1T zF#>)xqkpd?Q&o@A>ZW@ase<0iR6^{S2K&y2(-`fE4Z#%4+K6$4)YkK2MgcBA2CZ&* z1*|W-#Yb&c&=GPDY~mv$JYxxgrkMl0d6;!zU~Si@d^|*R7)vW>9^MUW3HF6lieCqi z2^+nV-s`E8iZbbRNlS6I3|LEZsc0`kMPWeK$dqL%`>?dcn(@E}IeG`Oi6GEeyk2?e z1MO(`lyZU?^}^L?CDnnunN%VwnK7YRjJ=wCqfkR8shviQgw3om4X9~M{%(&%iZ_HB zTKP5H;H4H-65I%Nab%m;Pg);QRIH@3hmKHaAnCw})@}Z&t?DR10gXCrTU9U`xj(>7 z!Sm_cZ4jxO7>NwLz!-@aD;pqo#{0N}Rg5(JHMuB;hC+^T;a5Jc_pAQ|zjI#8< z1{4U@8D75DdY!$&U2U#5X|joI3!;2{APO4f$BcMF2K(6Hcn6GBypWPIkY!~tOtcS# zhc6l{iB&3i{{ICQ?f-1$|7fAKGXFNnFCo?h-DrbHf2#K1M|k!XE3_eJ!=G=J!s;8} zDnXn=L_w!53crU|$sgrQ{>ol92qU$MU`06MU6%OH@0FG570i9!Wv^i7ovf`IM7OV5 zMI;R)GV1^RgoEyWrOK_{mi{ds3FC~8-65y%%y0|BV9)%52}1JsO3C-i<-2J6E0woC zN7v`A6BD*9c718WPE16rxXYa2ZeYN&qAKD*z~n*mD<$JAlkdS#yfXQ|Bv*5?J}y5o z!O?bjMl&y&ruk{^OK5)&0!RGmD^^HD&iV`8G~)?&@bj(_hIx?QB)^AqE{ZOxDZT#R zfS2E&=uNf$7B8;db;=tSzG3mw#X6oW9$vg`FkZZ9Vcf&rpxzMv-od0hxMm+j0kTINKpif=G-%R59K8gE-~EOMYi2zkzJGG2 z=W|EmcE5*`IXj8ZOm*_Tp%XrPj^3w_y5CDVSn<)m{5#(W$qXgwG=EX~cocq4vm@(A z5?dcyimkg|pk?YMk<#Ax_B_~CZHEh6KjSJ+NE zNBpNd;ZDBYZ;SZvrYIfXO)-w=>}Nm+J@F&zhCk_~la70)?vL;IM>=`J6AlvU_f1qr z<)N~_F~O(KI@Xs-ewvh78VO!ys%pCJiA$ON_fx{-2zSbQ5%DUk((UgOj542{`(}$F zJXdzUhvLKGc^&snNxrHZjZk-mcav$G_=nFR96yCvjCZ@yNr0=O5lq4PtG{?m*um&T zkmJOBL>TI`?*uw-%ZL1xht~D57KvC*0pr|Do}GhHY$qMQ{egF^8noSb&MVz7x|=2> zUcvfnBEGct1-f)#jAD(aOs?G$I*mvma^sG&I(g8CtyRv${Kk{yAdHO1_xsou269j+ zHz%6Pk@a|_G@v`sl3}M_m%IVuPP7Tcbhvluae@RB%3*)B z4>{)xyPW1QT@OR`F#f6+vxAK0Ua2JmxxRAh0=|7k_DE=~72SHefpC?dv3gZ?THJlW zst98V_8G+uQ3{_qsex!rucA8AI3KBAAV?gpVdCpJNg&biOZ}bZqCzALlW2d9q~=|g zu2_A~L)L`#HwV*XV0cws6gP+ajh=m}y1vBS|4KIfT{inlvX5Oi&d#BX_jNfYXqL-N zJG_=Zg_r3TV%~?&u{YwNkf7M1^$r)?^>lg^;|ZWtaQkT?K?SUF)R^(QRmbT?9jA`r zXFJPtwswrv;Y7?F=%O$WWAW%uAxs?Sok9|L>9teCb@4|BNYhHZ9h^-<9f!bg zkS8G#cf?ydK6Uo-+~?abI`O_#D)(#gAj}-nc6^GlT@~O@Btr5IIEf;+Uphrcq|j6? zt_o25r(f1*pxmt3%9xL{x{%f2b($jL>U7C~$x9)w3E*6<$yxPA{Sdl>7S`dn4aR9j z0%cz4&gn`$nlvO^zm_9X5{_G>{i-kCPhCx=G7^u2gCC&cHR?{ib3l#?u2WkA{Q67K z`gT@bYuDCSS z{(Qdd^VWg_mLsNK3wKtsLE&Snxu6}^0S|Fj z3IS_vlGf&IT^W&yUMxhBn-We}o6?1=};=Q6RD*+2eS}Z$py91g<*$U&No$7JK z-#e~Z_HnjdAg`xF-dhe;<62oXI$&j4n5HAubJ$&0B8Tm4_S$|MR)W68G^DyAbC!-U z)fu}+>RU66MVXbHgDgy(@&#R(g*>h>04olHM~He)HYmZ~jz@^dVxRPxx4|t~4;$D= z11I4_W=Dk&&~^g{$~H zbv^_|$KOEPmbD;*U@N+w-;``gtO?=jON6OxKk5`q-eiXRQm~Q{TjN+bX--j)5kzX* z)40Mnw0*%?vkF5BsDfHdQ5gu2g9+z3O2!^4kqoox0=0O->X;;GMi#A6#Br;~aR*Ye zx2wQvGY=(Wjl0d1&6#%4YQ@jG0bLblV~(F|bacaFq@h?fQATqzI1&V97TGEAKFv`g zRzOl5%VE$+t+Ngn^nqtg!rwsND6}Jua%8NE7JwKhtNgGgHF^|<0*jfZMhvG$go-9> z+CXF_q45~fc}>D2u8k0g@hSKQB=awJVhLG8;=ts|iRO%@sm$=C1bV_=kMf{+oS#7! z%F=MPy2{Bx)vqjA)(lbTf+@|)R58a2_(Ctnn28!IcCU6$hFDbUrc9W24qhc0JGWoRUe_8b(?ZSYmT5$E7d_wfl&wjke~B1m3T>{H41<7ch8LV=1j>=zWFS~Bn;Jc9Ha*~(I%x}`S&qc zHBtoDR?vP@24q?W#`~$;va+g)P9<-1babbYa7xRNK;&4*3#4Ss7@O1xI-5T7%xBt(89H@S>7He&Du4DanwqPqn&X6Ua?wAnh)1wvKfQA z#q>l`ojLpcb$F?1rZ|Lo+8RPZc%7l5Y@<@LcJ(qJ5W=sA*<6>S;kaqKGzmE#4hbf6!Ism zLo>dGLD7MlT;#H_hYz;X##Hh#Q7J@lwsoL$q#)@!jyh+T(1Wa6bCAb_;Yg#f*|;Ud zMp|o~3##*umOu+5nXxh#laI}PQB{WhQ4SUG*nsZ8Pno!7@-PCm%AZ9 zhF)o};}jWjv@3Wm;|~tSK$-U5J{O>m(<&L0rG>=9fsLfK9==sX^^5zQxoYuY&9c6wUOB3p_b)XoMN>hwERJp*2V99>K%qKXZSMFYdFv9c8)Fo?!q zB)T{-MLmEY5G7Zuqc8qQ!?bj+nFlpLYyviwEZd9}uRj~XN@z%(^mNBQ1j0}=lnEH$ zBAdR>f`ImHhm~Z)!pEvspk}<(-Z>hhuO(UaL(Qvo(qSk!8nY)BcjqsY^=I^*=4EH? z-8w!rG;DGRW^xPjCS{_!U2srS_ba&pm3XUcZ{2$%f>qL#Q|rVGcAvUk8puWnMzcD1 zqec9rHtd?EVztmL^cd!~S_c8wuh$kwMYH;K7@a%Ys@E}gDc8T9ERM_P!oX(ZsqqmH^i7sc z&t3C_ITgQQJqzm$&r=n9zs6;)(O%452M79MzBkY?dS^gcXuspAr-z6G1LLSYauDWh z=lYHt7)T%G@`={B&GiF!O&#-f(2u(fi$&G(yh}f(fu??_Cy5v0Vf$ol?tErI#U+J zQN(Bq^H9oKOU#6wt_I`MKNLGxm!?eJ$0oM$n6V709Q}qxm+A|-E9Nq0;1iOrnP z-(2hh*QmwL9upR%n95}9lwGoh)@CVIfsbV-BPZnvqto)Pa5Y8Ld#-RE`RXZETeY`% z@KWNsxaayKOd>FVe<(PF8T;W>8IMcO?o8`eUTay4TAtUjVw@XRK zv{Z>c2~9fJaQ(DK%{|;61)-H%D;xqtNw;u{T-lVEu``Hd)2XUeGKHhV&~kr4^;XE6 z8(K_CW4Gc9%<`{8iQH(BUgwbjm%xM=Q!)d_s0|(%x>MG1zY~o#qd>Khu`ZpdcgnJAMzv1HR2WS0RO9cjt~x|JpzwqdR)$LZ+I1e~fIiM7L=Voz7b zM?9=>MjZ?ccVu+T9uB!Qau#2p)zO7OtsK{@J-X4O5RuQ;0M-l+lH+3~G4l#>S_G2E zq6sDTPnIbZW4b+iFrT(m=Q31fy}dL2#^Mhp9b1d7G^Yfvjo?9;j(vAEK%-IfPRSpa zS8;oChV#9~r&CBftYsCwv&Jg1?bjBBIcoHghwE_Z)_{#{m~qpNrQh&(5Kv_t?VTLx zBr-BaZx^G9feQoD=ko*Hv4&7vDfknl5X8NabKK&rvxhote5#0TNc9ls=-BMIb8cEJ zCs4~ZRYxa!(2`ugtS?J$D)TibyKSG#NcEADADDu=^&7?tI^#4cvWjk>?sM~)UcLjg2uIm8Sd zh;X^jh=YoJTBg|^wtg^Q8$OZZTaL=bNKP9#ZYd_wsb8tezyTPTy{(qje{?=>d_1CE zn%(TrDK-bpWz{~aZV>X%7?i&+8cqj1?TJrTDZ;_1=lsDSn99ck`G&MYQy&?o;K=WS z>jHeqa6)fI$3_R`!pJ{{=9!Q|-~J(3QvHtj5cj8WqyR%$izp^YOtSNG0`r>zxl3ry zCDb*J8jxT0E92|R`b4=$8g!E;j*i1764wXa>Ea%MMF2N8lnz+UYwvF;dM#J=$XO;js3I+V^i2!-tocd^$0?Y3Rz4+V4QL&)ls715G&1!J@G8#R!J@ zDpfw#1L_#BnKVjuIXW`W}}w9w#uG78zHWXquZkB z(r%oElp{i-eM5%&;U zU-X|^8ta%00~9RTNbWQhdOxi)*XDvg!+1yS&JWu$HmgSg4UCOnLnMd>%vgO$ztROa zhY=J9A7kInLyqGZRtp-VXb&oiwN&w!ekof&~ zU&DCXVu&0#i-#thr}mM6;a8~=$cOarS<=1)DtY?Fr8;B;jVyv9s+Tmci*Q{OYH?~| zB1i9yTXaAUWiiH4;ijmu#7_@(Sq^kP-le_KMJdFtq4S0=goCa|uT?kV!15!nh>dTA zDO`)5K%wR8-sK`4y2x{gg9bNK&XQIuqv}J!QPHiaGK~gt=RjGYKg?$E=*~tB##`0t zLPDw8k61uHRsxjUlW+JaGt)cK$vWC|c)1wY?;N8fn<7w4&Dh{&< zCB>JJD1mB|xo)B~KAA*dfNDPxkYa(zy(H4oG96GlFL7Wn)8Yx=rzjFdDvf6(!MHXH zg@V;;s5vxI0)-!_ok&p+3S5Vee(@2G+Hod~2c~3k+2;NzDTp>llA#;p#q}4$NaDr7 zXEjJ|sV8m^PXgeng6Ov*6pHXLxXxEz#qcDNU!s|~xSN^L^pw{Qr%=`?h?BoRV-Z7R z7@W6R?<&r2DktX#sW4Ilp^3c!(UKsG*<2=1H<63Z2**zzES|QV`^m!A3xgoL#BE@j z&v0VN|FXBHQz z^CzEN$sc4F=Z_FGFo98~^ebLG2k`|*s<1@yRAQND<^Ip2%I#8*YEdc-Q~C23Z`+W+ zhzW>n9g3I4A7z@cyN97)QUmco|3SBp$$*Oo0xipg;lrF^ZX2o&`^J|JE?Qy6Xi0VL zod(j=%x6dXt5F%!aQH&Lz-1~!$5>LTZK$jbjfm>Q)3O5Ho+*cqU)UJTRuDKWjU39h zyOnINHv`e2)sduS2iaFg*;Q_-p-EQ}GGag?oL|&Gp3AMQF2S$hnD^Gx#^NnVBrO@2 z8a-3K=aGecn8cK?o-*uhWe$yPpb7b~wG4kDUeSotgM)T3b8`NHOgT=`)Wt>@xvdh+ z8$P)>Zu*b9u35dWn$u_ zs3N7s#~7Kvy}D%~CaR!-Yifb1^eyf!-XfJ|PRs*L%yYp0)9^ z7d!35eRRu~tsiJU@b_ojI&*k=-A^z0mt$^`)$hCWjo<&cYkYLs1%H3_y4uz|?5F-} zAijpfslyLk^-tLscgB1E@`6pD_{y6Wt$pE&y^Aip>h23ZcJaDz|LlD~+xyusOzyes zo(qVN|_@0^@`>dHU7{Fh&yH*~5;_-LA`P^ljo_c1*2jlO4=G8y^_A^_yfA7F`w^7a3I{N%)~kG}u$SHJh2 z_jGJB^`$M1`%iD$ufKKC;&659n^!#X&~qnV^w$4a{^A>MzU$$W&-&0uZ~KSov}_yB zL?71iEB(3AN8kDM-@wr8F{_|M*Z{L1#8z2Tcb{JN*U^3_LjJ8m6&_VFh!UN+G_><@O_x_9;Vf9g4M z@kNV{U%j}OPnAr*clq&~UVp{=m%e(%^1H6O<^AtnEtdy>b-N;xoVftCLT;^4aRx zcbJqc z!`_ukua8&sOx^Rjd-g0_zGTtGm%aDEk=5anw@;jS;K(`09e-guO3_suaBVc)kOQLL z!yo_hx0kFv;?OriF5ORtj)@Up2@pE=;&(s zD|&o#J}lpm=#mhv{)1;{%X}ZCGFm7!cFBwMdbYh*((O&7uagwty?|!Nj`j{cJ9rcR zlzw*ue+T@zyGMafr#D<=t;kQ@*PmzFTkh+eC45zT?JE7YM!UUnZQsu|Ri!dII&tnJ z(yoZ?@@GtE`d7{LYFw(leCJxF`PB0}cedB=*ocHA+_6dBySXaB%ZC-mmn#y#d`*+l zIX%r;$SU=ghiBWn+JD(DAlhS%dhex`K0f=$!P(5!^qM5lE)SS_`cejiytTVH{kd3V zTpXZxgvT?K`M;(Pt zp53);d0PjvqmELWcquqnefHma*XlPt+FAo-*S|VW7G?(5C`kJX&H|Tv5}TOz&o{13 z5L^ABo_r7Bh^*@0pod~+S%Qr3G zw0612t1;Wl_p=E#s4dH7?eewMW7^5_$7g#bcZ@GMEZXwyDzZ8~bslDzZOZHqo@jfU z$Wc$LO>#^H$Zd8u_f|buJP{*l5s5tQ$5Xu$wC`E#zd@tzq(ejwR5k*w`xEIG>{6Q; z30~}$r`_JP)BBNmpF3w0u*u)(vvA;VX69>Mn~-^5(C*D+leYZ%^WtbHk2K`cOZ&db z=`h*$vLHW7rA*|-CLX-bo9#>6s~+CLT`t&lRwLS!k9Oj1GCF$FN$?~g-}TYI=6*Jz zjlhGrT^pZobFzFFln%fqd>n+jj7@sqT-;De`Yvx1z9FDA)J>h8;m0P$%C57#P4>*R z<;7#9)zZ`3$veG@bG=W0m;&s;CX%N`sV-$l3Y+9|URTOUTTTK_9V`cAg)_I2w0+fn zHu-r%b}4-3`Yuq}AJccKTraL|?^G8an|3bO^7Hrq^7bz9brsj4_u5RL_K{^H zz&4|UAhJWu0r7AGu}0$HC@wb~zyeCalDUM>A^8y#9_C@Jkr2*7afu+5LYoT*E@>Ry zG^T0N(2#=Qa#L=vipgytX$m$?UrFf2N{oRR<8%LO_Bpal)297?-|rjg?0KzOvu3TC zHM94gwFiG#eT}{4^UILf7%!8D6dSs0Rwl4BG~IqoDpTW~#49OKE#rYbDiPEj;C{q7f8FFE@-lAfmH! zAI+-nN;<8H;_n)K+PUh=^xPA&^xP56*K<&KUy#D1^!>Rg8t1u!K7!G+KzI)~=Fdf0 znBphy>(P9+I(fLLY(N@;hg-K+#Y3D|o~-Y2Ed5!*v)Y%|`!(KM_c?!sJn+Q`R#%~s z&*y#o4V@B|xp!&?diHqygGdPOZj+F~1LZ6;L(*BLp7uL=_k@Zr(sVfrA=gf}iK5)P?;j>5@ zSKc|=8T&Ity11{q*81~MIO}7}(ONF4p8?|Gw4A$u;`9T57D#w4cobh!aEbbXIL@Vq zulfW#P51sy8~iyfMb2AMI3Aaz@SGv={&nRo$h(PiO8mJctMuFw+FqkM^_N0BWua9< z+HzC-_0fITjg>#R2*1VyXlu+W&FeYWq$_GF=AKQ@hDi$L6)=C{b>fb~U&7=62k=8} zqtd8nwWwc@*XhvuxQ!3jrS-BuD6M~8%FBCe^t9FB;mP2!3_J8l%{Azp%2<~0V%}hJ zenCc(7dX1q=}#LA4VvM@VYfuMim#tp-oGdRc!gru0$_%u!?(vpe^56a}J-JDejAFH=M zS$)oyftxFnww5_EnZ==a>iAM$uc^~jkjkVUXUq{~9@Jy?dgsankxbM2Uvr)gtf7xf z*~T`NVRvTx8D}hBoXVt`HI+YDqb?K93qDjPdQy!_u~Jd0Q@WM5oX$KDmL1G*)W!6L zRXt;F@hf{c+lIb*grC(FP^TMQz3jk1rNSvF(^Fn1r!h`iwtsd1g`8!meV1`!G4R>Z z)6y^1^O&|XC!efEwY)tq^;2vyDRsPQs3sH6czfr71YRaP^$Z-PQ%}jOkCUUOkjWWZ zRT*WjWHsSj$?9Xv&wTH7bbY)gWCf(f)te3+E4)F2g1R7c8s!Y1O&p4x;((mcj`WbN=)*tjD z6FH6G;>Dadq*@2{oG0#GL9g0k$NEW+R4TsFT}^eD%A~setIcy|5+jr0!C1~ak5U7B z_d-QAI<>oc9x`b`cNGe%yYew-FXG;+?i$u{g4#xR<;$wO-g+1M&|Qe+SIA`Ey|>+_ zXUnM5dsN00aBnf%l%+kKv#DuMaiXXC>JI8IKh#Na{OCnlxoUKdOi0ur&cf*5K2OI_ zu`@MX&5}nZUUzZQC%TJ+8TEJ|4r)qea)|DtT7TCE&>3fBE%gOzhlq@W==W>!zs>d% z4cZRc6%v!%Lsf>ea{V_LQk@XLEp`=Kszt zd|EE}vJrK6VoO)X{|Rx&q%w^k6aR}ZcM*3^ee!R|wom=htzR|>W5fT%M$@GEc%C=! z^+`^7hOgx`9{wn86VG_kI6Ny-kMhp*4Bu$I^*HcaPCmiUYT*C11M9DHQ$Eq?HS|Hf zxY>{tLqqzM7%`!dh@U!-%)?tB_m@boPVvlQvYIs4k#ocrs}OZ4_g=!>TzDV0{~~2J z;gG^{JvK$Y;TJ=W^Tfu_IpTFkV+f9tH-+DCS?J+Ug^pFHcgE-N$~Y9upVP$7h*xnA zFl$9LnT?Zpbr%xQpLfRM1rWi{J5%#}=fpa=iPgKhhC36G&(nS_->Cql}Y+uV{W!$PRaVWYcLdojGD7G-{2>fn>>y8 zYmtM%v1ee73f|PIV_Pv|oABX-moyIEv;_w<-V+KxPC^ZdkSaOcAj@$JCjp*|mBKUS19o;7`4nho)V1XDOHvXFp`!P5h9MhqtvPSMv{gvrS11 zi7=~%-_-*(deY=t=4@U)eh}Z>kYcQN8(mVVtLp_Hra6bEXnd~w*YJa-`D|Z0g`SJG zR^HU{{EEDK7Jgd898{jmnreNXLkd}A1s_+8A{t_RST9pB-1<0sg=SMdG$^d`S+xvj z{y&+85!d0tKiMO)3C59 zK-GDCwC-oaQQc@d$1HPLp4 zv@aY2jzZiXmGBZ7p{(vsV&7FW@q{v@gOO`doZ^5UpOhgV)Va)5t0oil_2MO(MM117 zG})4?shZ7BnZ%_*O;fVCBS;h>zbK+@+Fnhc?eSJK*iKi3O!k_Oh&)ZU9mxebWu96= z1bsmOSFIizGcxAdNTrk{zvF3TrpqS zBo|0>uQP$`4EtRZt%;+2+zEw|3p%>&mLv~eL5S?qFqTk-!F*-l*bQBZd@pkjY=I+7 zX$b9zkue1WSIBC@fD5vqlO5lT_ui6=8Y2VEK_`zRJ19mNU=!r~1Fgx)xwx<`2MWue50tPk?aAIBCcOCoD3j1d4| zEn!Lfb{JS$M>We5SB8LCx2u`HFb>PhY+Tv`WdACx9VxankO_8-CFfI>H9Y!eTMCaz z{NQ0{XQI?jgtG7+@`boTHp(~nxlk6EM4AwIo5md)2=1yW+88917!6I1vFUpjWs!Yg zL?5)n*Z7fi<2yB%0_(^N*GC%vqB!+e;fHMveUGPI2#Z_^pIX5tJQ#2L0QmCVs`IHH4F z8>*eccRKpocqIXV@)M|m$856K;r(*7LS40MZe%Hoh#5`lRmbkU0R zcbGOqs$6f_ab5_*CJrkwV{8j%+xLk`&ueJx!tagdby84Fo=z%@;xHavuXsZ3ptMms z=mbs$>Z6W=4Yb@dHZYVUo!*cU{|p?`oM?BM-xe(p zqn&{a2WVlL1(^}_44iV(RjYMMaE)b+^$`l;Lzw|;9L3m6FF%fwXR?wl!_q=1QzS2A zXT97RXCq#3+dhg=wd;eyNx?YXVmQ(M99uFmX5f)Gy{1B+bIt`I$|9=vNE;YZ zRa0Z0joDCu+U(@rJ>%SHR(WI@y3Sd@$)4wa6-x^bH+<(kJVnN-m948<-K*I!A33c$ zv`n6S8mYpJ6kcEgFHG%vAeW$|q56Y6xor*&??qDY9kC9vAcZ#}oY< zosjN{c5%kRqoCt>=EF)lD`i@-h>ryu03`lQIiRob(($U$q87lpv^-zms$2)wsOD&171ca#0ea=s?CDlTu>J4 z9GuYgS|DR4$$cYgwN@6H39Vz4GK!HMh|CEIN7<`xN)&;xrr=skH4G5yqPB!C0m;3( z(T(oSB^gLTm^8^cdJ|)VCLm_40wf3$&WiFyW3jAKlqov1tFrRW5*9Rv&KEka0yK<{ zfIu>Q@_!`Lq4infeL0$FTgzOFq%5$?L5fPlXXgiFO+(s1ChYUe)Sz~N4mlqojfb}{ zIP6>rIy&Q_)mOQ2bmDLsnV_yram$@@wz&hisL&XE{(hkdTC^-}=Nd;>iMMfPcg1X@ zv(Pu?$D>ZdN?tI``U+DqTYgR6F>9Hl4RnulVbGfX@E!tTXhai8sZ1=umS9v`9~s}q zFmR8=4<;cvsgC@3Szy{GvpU?nVmHB3JCw*kiIJt-sJFuIcR_$%*r|yk=9B}73%hQw zkSoIcE{39j4HI!E8F|?f zEJKozoyVeY%!Hh&9vowmAy;{I!W|a1PJC$u(*uLaKt~=W-qhM;qA?kZnX<#%-Ixv* zI>cu~3$~~iSr?$0_g_kjb~@G}r~!FSf}@i$_!*kjv3;LxW0@5;vDO(1EGoe{)1LGh zq$n9ST8gqal+{U2drZ_f2Bl`G!feJMYA8wP1Y0>7`$4>%4u05)!t?(i&Y=}Zg`Pyl z&6s4EC3y&zbU|PksA>t#;U+vLpDo0bP#2;RaE~H-Kg09}P8z}>iYJZ9)8pe!Fa{8( zP%w?FIie64Hj6qsr!c$bkKh_)qY&8^U^!JOD9Z$z>KM>nqjVxe+0jR=$==@BM%x%D zTVoSpr^H7)Ts%SUrTM1O%0khHiv1O<+*z_adHWY=%v)sB!OXWI5p~ZOBc3JfeAx6vvjCS z`o4!!E{kJuO2)ukmy{ptiefr!nIqG}apm&rzSc_Edc0U!c$W^Y3(#WsTC|)2Osx5g zQwC62FjI;Mppbioo6vkOELNB70lxztS%&8RP{t}q>XCb-FlCwyvR7^vu$7YIDjX;5 zGC5ZEKrHb1KhOx6IH)7X{X!646K;h?cxc>p&A|`^ABoHGLmo73qs7%AGnuPn725 zipY&7Dg?(f3cI+InJU3XCq6eOt{9_E(|Ku3Kgd8K zb6j+^SrlFtufCJ>z8Z(5;6hzqHWk7mG!=cJ3a#)D5*mA>hGJ7LV9_PE&X9%UouJ?k}q=3LaQ`qhmN*L$J0=XLUJsB>d;174dtyxR16QF zVKtES1%=+u!;5_NBZ@O4GB%|Jk66?^G!H7rqYK1dA}>vhg*HZkO-;zQem)J-873T? zn2k3?6ExctEw~)Le&il|KV!31#)WQkdk{=9*BLT9IU`f&(y(2hPd1KmV^L;1y2GXo zrvxSw=3dB(%Ent4@d*}44M|blQJ+jC$z!@MqsLx(cqmP!)?(9;_Uft5N^gRx0aJI* zx~=xqz)rYqImzkN&B>XO#79}($|4`{q-~HV@_vzLwDI}tr)&~*HQ9*SshP|nz+v_brLs_!;McVE-p`tjKEDQQ1cD? zi^oD!w5&7MBcb7n!D$Msw}kuA^4+%sJ7nedt~CT?lmlLmjwa1SK4N}HK{;vef|g>X zecn%61(VSWSU+AMru02IE^z&$D;`c_mH9PJ@k)`_luFXUw?Q~<4q|Xev2MV#qSgsY z4?T43OU=oI3!<|0>7CrGfu89njmy);(J=R)IDxGBfKM2} zg~(mG+Bjj-iF46Jlbp;N%hEE+t;iK%L7v&fME)~46OX#E(m3Ym1xe1fms#gI`hPo1 zrSgOmF{G;jK{{ZY62~cnabqEpLVHJr*-NQ$T%~;h6GH0P`sK1>SF|Nvrxa^D@+VG^eRSZ7UjD%zQFh>Hb2EbPFcC|OMh{%~fm=&)XBXgpu&1%k{H+c+nqE#YD7t!5vG{$9|z&+f~1&_EqdpUj>a}tR+ze!M;1wYQjCp% z>SoPUpY)$gpY3(*a~nFUE0nDP`>ELfb^Iv}@)(n>$TyikmF?Vm_OYPMo>NeQGtBYo ztIZ~|4U*e)3NwQ3%T%tc^;0u-#nNems zUlbWbOjZX%GNe)ilJ48vC5O$I3DeIa{*CZ{vxG5cy1YqWpJUzX+NF^@pQs&VOT~ss z5|~j-J12Ok+xTN>mB>-=h~ygs=4N6UIwXxTUVCVe(V;x>^FChP!AOWx=RM#Fa_zDs zdJCZK;R*t6mG1y}TA@1ilF$YrU_QUtM;`NNh;5Br(%#s}kYRMu$s}+r)TqPiCPHPFGbx;sFSqzh59FO34uHPw7hQ#H%T;rqhvw>*sMmE;hE!oo_mb2bVdn=a`b130j~L ztqTH}zl_GzAskYj4~Jyy6I2ser`>R*jZ9jxlxCnK9GU!@q~FSf7PvQQrQ@9ADb|O( zp;PRjpLG*jS)kFR2nLi{p9m6_XFUj|J!*L6&{B~;lv8p#d~Re2J1)(Sog0<9o;&q( z5z9m-8H5`&w4uPbt!gw|TBpXYAD2e7NR-cB&LqG3g`qGGd;7MG9~V5nE@qWjE>h>x z@kL!jeX9>|=jJH5DCsTzRno}u=AUYFSB43djgH*G15yTQHps4NH4}ZMQ@IT*C1a;p z)783~Eu_o)f82HWy8L4WH?MI)eD>)VVKR84p<(uix|~lMU(YM>2l}8#nuWFP01-BS?M^|(N_X62vYZmcX;Zoxw$78L? zE)1h^8TvR!@vzCPqijIy?(A3-j!4iMb|`YA0hM z%*6deZho=rW1q>7MaMVUkF)M>7Ax6)7;TnzoZCLHv3Oc%SEFs@T}&KDtGG4mcc+%O zg-h}>Z^bc3kBhl+YwY|fpf)2*?r)ASXbO@|=8_GWXsGa)+3_w(x;U%6V`O}b&Vj-E zx&JeF_xJbn$sSJVxp+~$u+Tc*JipMEm2*GE3Yej-9LdJz{2dfnUu+#m4>pxMO}3nA z+&WY;<*ruw99y;-C&!I8jb~rT@p+Bt-1w6C0XH-i77YxUC?wG{hcg;rNziy@Ht1OW z`3?5s6FKH|UPon~OU{n^k^;AaL7yFMYG_=i_o$(bmbOi?un3l|h`9Ua4THP#zu&(? zHmvIMqj6bu!OAz+F1h}!eLcV5{NXKMTXVu6K6&DSch0+L!z+8o$A7-?E8o5NFTQd8 zc-N8JAN`-jtLF`$zTxEG`1z}=`+xC?)&KPT`yc-0bua&)x9(s{OpBmo#sh?f{oijI0?x;>;$oQLoJ^cQaZ>%l+b>ELR zpZ<%humA9$ZN6ps^1+&>FX1y?AE$$(NU0eEAK>4zJvK{l=b~SMFZ>`?ub9@`rfdbC!uTZhifeKfPO+m{mNGsz5Sz2ufMzeLv7=q`}s>> zng3V&|L&drzk9v+{=RWJKl$^aXV(AXr=R}T*FOEn-?{Zu*PnOe zwwG64KXmhfO&{1ly!+VAzy0=2e{}KN@7(;>hyU@-wzbzR{Omt}>=$F#6~DdfttY>B z&S^*d`KRB%Y|WCc7X~+PvIkmkx%HnmU%vUkjl-MYzjO2EeO;gaDOQaCYxmm0^6-HJ zJ6CSpwE2U-HTa_+=5O2?-+Op==Ay3Bz-2v;Kl!nXK5){Rn>Ov+JlylQPyU}}+m|1C z6ys#UqyPP`Ef+P&g~5M&>>K0j|M;~}-Zs2)`59|BZ~V?fD^ET4p~c6ZxpM8=wbxv> zdD%q7vxA`VV@t-7Nom2=1E-9~jY~i9)6NaqI}cla*H5p#e*7!*gYDxdpZdAD;eB7e z`L(NmanzGP`O`l<_pY~J`?Ko1Kls`6Z`}LZz|5^rKDe{zw@y0t&n|nh`sSu5U;O!x zwr~E2jn|yD`{mES_LChuemVHnTi(9)n(wSS@~W2(9QD?cYhPS`^^c$W%s>C>yZb)# z#anJz_NV_4e(sL8uRQbF8~$$Jrn_%m_4+9jr?33Nvdh+D`Bd%JZKxSWGc)h>_8u%) z2&EP)*z_>N=zl9NCSXlw#-F-8~??|5>UP995HogPUAu_Eb+&zce_kduyrq zFEz6TnY0Ydl}Upf+k*LjL-#;8#+wZ-IhfV3N39#DEHdd%WnzbNlbOlF4aMS~ci0S! zOa^3cIg3Lk7&NiM38st4WMEb%YT1dM=ODhyq+0F4s>>0WMn>?qq&IN6`CcaB;Gj~M zI)tp0*Bv%jRW)#vB_B{MnykFn{lRlxnyM*tWpc5XiENaO0|RuSny9m@`&(XtCF%wS z3X*AQ;cj4X*L7EvYBHIr$)wxMByMhQ>82+mlN~a(_uaQw$jmC4u70fgSszN@|DOa;qFB2lH{`@ZWnoOqH zqpf?jtJTZ#v5_UTV_L_F?v(F71==o57UWNoh9jB>B%5XD^Q^13WPzEV8`!%{Wk9D- zWpX(8<@Gix?}zm=>ol+K2D(4*$9=VWF_>^(CNe0IMq!7v&&p)4juS7FmL2EY5_`vu zfrBM>i&slVkXS*oEfGVhTHV7Y?e0B$_dXX73?P%1NtTJ$B3=4r%XS?nRb(H4VeOpTg-&cHE_bxP)I<;F=g|&;H<~_yVAYo*p zV5F?^@O#mp=%_(bu&)$k(v|8ihX$_cuF|D4_1Di`SCdJqyGo|T%Ve@z9B5%&T!&0H zzO{Gn|2kYXUwLwSi^>Fy)k$)^Oyp!_@^`NuDihURn2uuUs&uw+r-W@?BCA;6Kkf+? z-luV6eI@pV9Z|TjcdTt&withRU0L(9tFY~R+(hv+Jj4M`M|*OL-W}lku~3xu&zQ(8 z##)Y!wd)!{u{FZF6Ed~6AYHLNcW9lZ7T>FpP2x!!W?{p7C#F3yg1D7-H( zC2!BTs#iZ#sgHsrcLZU^iu6Hq85+L}tlAN-f|gc~%hzc{?GtI!GuTKzPF;Ohcss@L zggz`V>lqs@X)3yq6PqVjc?C^Gf-fj_) zloyoy4EGSvE6+#-pYm8A_NQ^BmvpLi?d_zm!(Oq0$8y;4T}rq1Hh^m5cax3!qc~i3 z?Q=&`w`(T&a28y={EDAP) zfMNT`vmoz#8^KU*2Z51Lfg*faWiJ-oh1(zuovUtYV6&ll_`Kd5xAPi;WKm-4C}uhADy?#nK7 z8*9&~w1SZJ5FYl{-Fe9l&gw7{`6vOZ1T#5S9tGx=lAM-#C70r?lan-^@RPRzNcz5oa##-pxvIQfVCKmuf01dP~bz zu?I?>=Ih_URmV(jtZw8x6Ti;Z2eZy;)%O@}YTZvX&vb8Wn$Epa+@TtKdi(C(^2)#f zYX7U@s^V1*nU;nYCW&|7ou1BS(TWAuGgGX+irj;*s%DGDhW|P}Q>dPdMI&=QwC&kb zEMi*MvO}t2wdM5#G;U*D%{{@|0C(}l3RE8N8OZe@nu}-Y$I7TKlb%8SZh@D{-dDc2 zxBDt&!uJi3$rKb+k;&8)l;1E3KGo2=)|i=<3G%AR1UtIxE@s*KzLpD-NzZV(Oo6y( z`1xsOXlmEp3^_()_>Qcj@U&9tUMo6M^TW z%A_8zx2ak^hT5^W{53MER*{J+{c53waHjgi#EdRgbFXaNp-h|Je%x__CE29Re3dBg z(sZ3xt-kWg^mH>Oant)*)TvCoQxBOS%kJ)ZE%SA)CVWkxcouwtLS!@?l@uLLIa0~cURxRcc8910#E&yr@r}Ay-kc0tn7-#Uni53 z@+uRhyudd{SQS6Pv-^RG>4t`)rnj(ys?NMSaQ@d|P`FC+yx(k)(s{*qt8sa9a*f(4 zdcG?T^10j6aiZTiI7QnAhS&3&x1+iPJ=KF`>N0^*>byY8<(7e*)^Nx;smr8gkkwr( zlfB>jUIrcKWr8jC)ILV46pInZLQfi2TB%IBW$_*zM>kj&N+O?cX+|bJRm-+es!xE9hVIz0k(&l|l~)FLH8-Q5bV-NPFa&e|cmTOfa*zCazREb<0l8uLR7=*98HAGU zRbS5tRR6ta8)CahI`5xqws-Y259?1c~AVRBN-43#Dzc`D(AuR{Q(AnS0_QsTrMzZ!?eC!kJZTbxhK-+)M zTAyFDjl}M8HR*L)rEWXfcxNr$x0(E0TF1X=!%x%nIsxqQn$9!uwEkL~8^IH6 zeRtG+Y)5^(Zu@zAS}ywIFLyyMyAZ!@#L?HL@p0bXkOJ5%b}=pMd5v9~kL{iJM{D+t zbz8hqEsxW)4Sk?yOQ`27YC3q+@=MdWtUeSz{8(B~7@r_oAdE-ULy?Ub^#Th#bkxt0 ztmCcY0V0mCz{XK&{@|DMMSO1yS;jvXnzU^B%U!D+V(zci{i!;w?=w0=fj2<0g(f|Z zvCa!UzfqIxc9F9-m&z+G_Z&X>L+~kFSjYd>G#=E>gOv4Y{SALzv&CGW`m?s5+fw+3 zzfdeS7uEy+F24qCel>8jPY!FjE?vlLT12@+DyqY1=ArHoutT$cMJ&nud`_yCRY8P^ z*b@Ga;X<8LMnZqpkav#M*ymW4ftwn&irb^cmrVJJ=^=*!t}vJJ-M?UNK9II zwoQJ$U(e+=uN7OEje3dBiPd-)`lNb`(%4+6df0P1)EkOl?X=_}r40%Cdr!R(HOG0Z zwfNlddvMJuQ4iW=5y69H(oiJU0~G6E|6xBZ|Er5RadWFof#&w}TJ_D30q3QXX3m0; zrjJ@vSEGFb*h8F?rw@t$nn+!AzXr@_&(=+BuCUA@g-wmJLlXZTk-#lJxdx^c`BwW{ z=2rFZ!1Hf{7zj5&us=ilmz@iINIkV2Z3~~LmME!%>OO^<7*&glnY<)_Z- z#c>To4H@g^p+R zMsmoz-U)+SS@|n+Xpz8nSVP1{O*F*nU6Y|tf>yB4OSfP^E}Oy>Cg_W_@xEnFsbPl&Ljn;0934)nU>s|+I|4B>G387#2{Q>9 zLGZMf($vEWfbczA?*yDE4^pH0w9b~*+ywh>RKw{2vT@WIS1g-1G1!Uo;yS}9&uDXz zp?2FSc8G&ZJpX85;}HGV^sN)MHVSxzYO(bimGh~_$UWf@zGY`5kb$ibc~ttWlZqqQ zE2Bl8?%K|rluSqhyHl}#>eG#ufJ2b+FAE?yjL5YR-funG7*#1yr$av91{f}M;87=* zcO|Xd>9a;sozaMl7|be#{bSOf8=>QkkjgklfKl8>ai(<6^2zYs=3IW;(NmYr$J@44f;j;DaLRTQ)6Q!FF4ILqZ1{XJB<3#VG)}Y@P3-n69 zx+Hsv&>cZN#)A+Lz$3aqG!~h2mTL2}&KqAUUpgUE%L1iMXQL{YnC;6^6gd(tQI8uR zr~7(C&O=I}%}`*eCBg=PDgpzpMgQBwr5A&j_ETNGK1!@zE8<@vzOEp(*Mv>&7oiTXvZ>)9H+h=r@4{ul7N06ULLJNyRC)?EKKwTcjDjq6H@KGP#y`>y%@ZyVxBTYN_!4k+@{?toWU@^11+r=-9w2C$rCvs&S>o!q?+9 zufk7jiH#9c=!7q}jC{&E#*18TC)14!90Q>h$Ij-~PT(CyM)4UlaYHDhs2$O=Z3BgAc0;7kGbIG^dd@}Of7j`V>(7L#;2 zU#-K_hGX8Wfr&g1f)p16V0?;A=Ao#vHkcLz<3Tu7<*ptY|vivcem2(By}BF(wcuZ8B$sXu^{Fo4~pWjXGu zxy`YGIU6>EMdTW|kDY2KI~X5_AM8eu$I3CLf1S`X=90#HG&^7%{>w8hUEf z=>(BFP+0zOY*a_W-f#$Lhf#MDMD040QU$LI*}aybo3kDHsLU|}seM|C1;*3fhXcKI z$>tIk5sax0%<(C9m`uThAPR%p!%fd2V2N|p@?6_8$^s-5B#QzPqsXCYG&cjkaZbls zFIiAPPt^-9rw|;Kq2<6A->%Vv*&@crK^@V=C}Bb1OK1WC4WqaG4?#&ZK|iM}5hQvx zGpc2Ek>m_xsLxre$q~;*7f8p*GfLzLZy_UaVd|;HF;aoKLGb9!j6i({Mx#5Mf+Jay zMS*hPwU)&FQH-&Xgd>!o!Cg_KqZdS`^@!imIL*bzmTSmgS&X5SL~a7AFgMaz*VU%H z%{{U$>n5}Z31?t-w8l9(R;MG!Vwu7Twij?1HXvmIplm*dXXU@wc%c z14rxDARK!naZV|Y?uh!_XrxU#G3Yc9+e8bTq0uHAW-IIf4SfBEF65|6{}weSjafY- zjn=_f05k{1=$^aB5zzjiEQVd0J9?*z4Ey|O+>wy>%r&e;lhvGR7h8GwPDv`^pRj4# z=-vzvqw~vgIiBq5GLL{DM}&lnXi>n!9CCcGsCbseq?;hxWleXWQ3f! zfs2Px0v%x=afatmjoD_`IZpm)VI^1SD~m8A2pt2mIr!Ok6m0 z17Lt~tvq;VFaEt{9Dn!oO$0 z4`m{`!y!;z3DJZvflila5=!yw+GeBkjf*sY*>O}^7T2gtF=Ms8{Y%N>3*g~Up>dG~ zoc>yoemsukE3AsUDcla5c85yUI?BIn6)IIYouRC&fO0E^p38MfO0XNU>znT zOu`>+W4(q*6lY_$-(l~=>=Ttxfe^#{_>gtk(FOpFML66u&mNc7e2y*v?O;S(*xuDz zddYoUblDKJQWTAX0+9+|J1Wbv2D#l4*S?siBgy~JvI6t-agnB5syaRzB4LQ-KC53K zZ9XVHClzV6@}Gjz6zj(cV@=2;1KV6a9C9@FIeLKDNUUXtj5u~(&97h-I76Q>uiCz* zlKCO+m%=HXqkZt>*+5EbD(6f}dxz&&Kru!RTy&^D}7E7eWM&~%{Gf87( zQi937^W+jpjn9^Fi$q3{q2UC0r8RaRr87?H2*lA3`O<`hPlwK6CtJ)0NmnD?`Wb09 z29d=GWlHD4$2waXZc|gCu1&9Oy*qj?F&!P9(KB|mmvo0`!y076(SmIazV2im|rZj8OS*&uLix=9iAZVY6 z9A!tESvOIYgT#W1i?kq`?lclrw1I{{5cgA)i8&n6V82z6@SNVrEhl4)+#H8UeVvvc zAr+-p8x;ZPAX#znX{Cf71CqpHMcqaFmFCEj)ey47NRn-EkA+_cN5$JbKUucWeVg7o0&^#&@?#CmahupteLwP#o$?8NDcbVg?mAkEbHW*rCi=%3z z*xN<1QgTQ0id^SO1_H1F4nwp4X=e>nXkyxXC3zGn1VJZHO?u=0DH|+9DAM25cLbL2 zY-C_{aBeJpMi`{Y6-h9rG4a}e$Xes z9p5)kjL}Nf@l`Gs3DmE5O3e`?O|mCT+xMLWU9OA{*hVJHY(QZk73;;Zx|B6T@+@Jk zKlEQ0la3_LXGKMw)l}r?vmL?KkWOVJYq*VarcqBfQ-_4KNqSX3@RdYK2j$S5aNB1j zo;Qs3vq1=2qhJBb6sqXbNoawi5qfh*AJ$x}!~(=K8Mz$1$*H6`g=!A_(^i0mhFxs| zqfz>|{lMzOohz$*uSu5vq{S$> zrqGfZ^qIJ86}^nG^qP9>`!q^X;I+r1y*QCk8Yt^~AgPdT@YKbqw%Am>7EFs2eL=7r zdLM96>p-?Ykn3dKyz9SzZeYTJVw)6Ktg-VNH*{j#Wi!&Z+|Vx$j~1#*NiN&QqpmPM zs@FLfHqp31#vTFP!i88JHwV9Sugu?S&J9;3%d?MO-5JambGU0`&`exOKZ|7M?2v9( z=vyR@E_HV8{kJdLF$o_rnRZt!>p1Pc_fyDa$I6?{~qs z_6C{PoDEM2?^$&JsS^HXTRFTU?rTu3BTK$3nuHyaZ+ABz$blxI3fY8yy{G zos_*B5zr65HpD`sEN~Oga}W^FOfyp)ao2SViU8|2g@*oWK99rCgy8XC>H zWx=B4-pOyTKkJm}k?kEXL_b`{CjtA*U$jgwE9Cb~#hNwD^sci%i0m?vSL0>03FR7Y z#mKbNm3jEn|0iRmXIdpU{`BA4q*Uk(E|YAZm3wUP7pvP^SH`aS7|uLAmG6;EbxpJ$ zy<+L-a%o$g%dDOVfFmG;PPE7S4dctzRwL!@xXOa$@I@#oAk#Wr!8!}t1-6n%+bjTOot-7 zNSfVHvj2T1-~MbEofx73lab?OiO9>vp#O#AGs);E`Z;n7~!M-Ttl&7XYK{p6Bwzp!NSl6(Io+?rX~v+`?S`&jVMu5bNd=RdB^zqN1oJFnkz z{Ws4zeA6)xUiAIu`(CK-`_an5mHYo{`QXZ(n{M3v{ij|#@QoWc-~8blv6B1rrZt<^ zKDhb7MZ-7$?JZc(owf1uf&G7W;K0hYn{Vn_TiyNP;mtSw^?}W=pLFw4!@CDByXN%M zuld2tPd@qP1+U!u%WJOLymsTJpZ}6&(doyI-}vpzHoo}UgZo}S`a91oUGn&MR#tw0 z%Y);8u;sH~Z~WXBG7sPP2UDwm@RQf}{(g1)@S3GhwJh4a;{9uyK6=9695~Q(+l}9R zV?6uD)Y2DTI-Jnbm%e(^?tM$ns2-?3vGKgy{_LjGws(fBo2z$j9=__s2ljO~-nRSG zzrTO_M=w^t^MhM{a$xO?mz`MM_~hV2|FrFeH+CNT(8|I2Ke+9(W52lT+t+{az!|q5 z*tc`}nrrfc~`wN01otR8vvkG`87c&VklaN%c1;>^3ZVto1GF>vZQ8u@&D|&Myng>Rmu&6-PvxE0oN&|951#qp>66!Y zt~u)R{pHs`y79!{d~L$LddY`=c-Z3b!O6z0!I9PPOgumD@P}T0@~Qnl+uVBbL%VnH z-FIX6Q^yatj34M*e$Nj+zVr2OEbQ6$+OD3{mz}bC?dY2a4m`Pe*Uddoy|(Yoi!a)A zwaVmU$NuDjO?Yc>%M9+^wg14e8?Raa;iKRA3*tK)>={H{Y zCp#Z}a@oJe&UB7NFIFrJ5N?Vch`gC ze=@oC>tFcX?~c57U+Z1{dtUv=9d}iqT(UNK`1clFxq9*1j&)1^<`*G|G%oIo%M&WzjfK)JhgWFfm>JXf9v&6?wlUH z;XC2Ie>D2Q?&@csnzwxaOFifQP0x`Je)pyFzz^m<_~3nqjc$qm@$>h**>lEYPd#Ui z$>-IQ=*acbQoyw=E*9Ac%Gcgl@-#GXhBu>%Fnfau@YeO`gH``wJYqnl`I0GAf2;|) z?CyV%fkd`frl+w;9Kgo^98FiJ_CBn6T~GC_DU@r1W!=vvC%5%Xv-`CCdGfQaGJ}$y z-mh>cVBoU|ZBu$h+PJy5m^ww?1?xBn)85QABs0rUzMI(-lr$H&D>? z#B`smcWJq*e55&tJ=AI4ats^&b6NKDx0D(hO4VH_v8%jP!!Cl&KzBof8g22ucTut^ z!)DVKcHCCwa+Z^@BU9~Bycv$fV-fkf?wE}tC~DrPlw(!6=eklUqefh4NU?=N4pXW# zGSwDr)Ar4j62Sx!my`Yb)K5=#gj#UWtYcIrlU^pnuBAFP)zi~5!0!K^Dl*~gC?BcI zBszn$gFJ#G-mRuG(G~}J%p5g2Q|Lw}-L&+)bFf>i?B8E+Vx2R3W}`;{@+ryZ7cD|2 zlk9?Lf3O~Mm-Bn&6{35O~L?)2f!f|hG zyhkR3sZ6kPQ>^R?{zwlpX*sRCdd%eF?kBP!Zz=8B<7L9SyG}4h5PQ27USHGHWwK-X zjW?#JFK;f*aJbJI)gC=!NM$l0`5&uH4m%99SZ}|GOr}6u%6pm6-)*7F`7rQ?_NOwL zQX2-{fX6B_AL$Ygf-7XgH_J>9NfbhUUCwE8>lmNg@Kt_nP>{* z1PQAhsMb3p-5BJRkQZm^z`A_?jOxHt^|0zk0P$z#sCCD6DwAsUx?lXl45{7CtW2`i zmy;=mh;(%|1Mh2`QJHY2k5o@1evHZlj`g&3>o`Gr$ji#Bgs}hdx~sb(mutx&m%@6Vyi6D;?{KcGrwp!8sp>A7 z-akDZ#b>flU*vLRUmdQ=q-s1Wl?hn9Oh}+u@myY5{xjo*FlNCu-Q|H*MUbj+-5+U2 zCNnCNfyL9gL5@P~9&BhBoI!UnPUgr&x{JkAvDHmALtQ4cD0K){Wx_alqDAt{Gk-a- zry70aBLi3|SWEM~OuX*8Ze}Kx$zTh*OUFsJitbXG#PLCy?AZf(N+o(#j_EDOC3QOxF=eLzXHE+T{+%BkH&7Wbz2~LZ(j($zSORfN6^}Fh!6K+lY)Sl5q zn(u81g>QkEsb?X0dGF?J4D-OV5Y@*ZMxf)SKssjQHG4%^<>}LOPY=GQkFyXjFj2?C zk0xrvNKMlCwDGo+9>)rF->Oe|+e=w^rMIyR7p634pIMili`d6EWgZVCYkSAMEoWcg zX@LjWJJx8|Hbv0wY3@}Y`###J?WV15k9T03r?e4YWqkQCDq`2D<B~+j9sgXdNw7qVGX{5FG=`_!h70TQkQAC(I>h8HMZnoc?VNa9u!ifgC5p8Kf&s-(aZ5C5!U!DrTujli2GxwbIk&yc+K+44=^ zE|GH()&4NoAN03XT3d55`;#h3Yd}p&rNA=~&S``P>!GbH!fp|JNNt+r zJIvwKvTAZtPZl1oJ~b(43|x5Og+Zpf)LmV?c;m*LM9pO3(s8UI?-+-)NZ&jATyBFH zvzk+#))`kUKTMpf`zSaix#s2v$eo!)uMQM?irzA;;X<`RK3U{>bhcboJ!9jf<8?P{ zfU4uQ<8Zo8%dp<6?ki%%-o0nQmjkmLxqf6~PgiK!BtKIX7V?mW_yVFjq%tWlUs^6-9300L% zlHGsz`YXb+Mo+Ppe5s^oCLZ|3i>NNeGkE!1;7XErZ@?bTV5K;-%TH*7TH&5Q)_D!M zFx*hu)7{)sU|q9sUxtVMY-^)me3@aSHs7xB95;QaW!+e%*d^(_;N9;3`=bhIg1)JxMhFUo)FdxlO%X67| zB9aRSPB~-E#mqaCDw9ATcX~~Jm3}<}mpNk?P?W^5N)e|rd1ab9kZrzr9tE(PXXQ@r zuv5Fg>TU(gz6qmu!|m<6ur5^|L9+M3$J~$8S!h-!yQ*Nuayl6_-^<7 zh6Z$TO(uI!o2;Iy#lA%;zA2zGVXk1to$+E+nTV`B<;53MnPg-Aaz~Q<>B%aSINk$t z?&nLpXaEL;UMADi`g9AK_{Y5an`tjk%Tt-e@!r#_GJpQ-R|zxcL77Y;6Fsy}Z2|d0 zMh^>X+1_34#-wy0VBI;uA%lO(bg6VB6A4tX$~LoOcih$0rE7MW4hD=jpGal${PR-L zFHUItIrOnvD?%o|KCQ9ZJinTQnYD2edfIzXUERBB*O_N3(W-c~i!xdV=tEv6bn8?m zBnJ)gnRtwkmoc?uwN9^BnV`GirVPBUU&O&JU;aQEuD@WimX&I6-&OX8qjGf=z=cFWN9iCUxDV zGI3zkwZ8COiCuNwrA;Ok&CGkBLBfppS(#*ziR!M0es}wq6h>w8I?~uPGd+--E?#vV z0Ozf%O#b=GDl##~-$zaBsk`*=cT$;fPlimc^D-$ESj{u(&gw4i z%bS~%YPOfk4%+PfQPyf)?(h?E5QS+xYRIl8BZ&Sg)&!JSdOl-%)*$Kivk+&`EDZa= z5Xkpx{`ockcWVCK^|f z*Zs8ooP1Bu@1*tA?IY_x^idu7zxicDf0nw~HUopNc7sLAs*Poe;|~-J-0$-^hx^xj!zl2!oOh)7iXKl|Pu*U!?t41PZ$J(GD~_4yP-hQD zod&I5<~lnY`Bfp$>wj6OUdE+?gC&1;JWW*&rq0#_@T~1$rX9@vcZ4i32Qh1b*vtK3 z+LR`eX1$+YebB?DAzqf&0t#lVOi4K9A5ReV_@|yB%@6^g?5|cMxb&T&_2EMvq@hA^XgW` zfJ?9H*;p^bRI+vX+F1l{Hgss<;E0NABhCU4dsdRC5s95= zyj2Jff3W4XkW;W)c^{m;nAy;*+-Fm)hU&QLzPwkev*5obFjxA&2DFy_D{ETxPqkbn zNLy=b@&6Azqd2TyXm;xRNUdK-HD+}BM9pVwg%2Aa_QBev-r7jFU(}%L`Sm<;=}52l zhFM;Fz=M)kxVrS~ul~Il>>+@@JHWF9aPJ7?oP-8XfB(|Wsf5hfI0eyiX<3c^3uk;T zSMO8|3!bb+{*6+efW&AUu^>s|{f4(%(YZYGXly-08*ge9X-TJIXCH+#5>Bw6fF$LR z#go|9TU7VK6={y+IyK7$s2FmZ>>XQn{0^2nUG;SD>sBnld(R=px}oN5pm=-vS$0Y2 z&J$mYTIbC=i!Aub*lY^lqm~q)=*wGu;EA*R0x;-blP2JLNuBbc$kt|rV2m_h4?c7F zoaZ~1@>U#xN@tOp|C*n|l4kL6nSgXs1E`(r*sY_bxd)b#CBToM1BABKO9z(n(CG8v zgKu%0j}^TQ+DQFl0#>&ZvDG+($Fnfc8IN8oP?zDco%Ij!B4Yd$7yG^Lu#oRmOrCG- zWE`p2E^KU}Uy~V%5z(L3kmDDQS}<5r$+f+#7?mp5=M#Vr2#ll=!d@btpB=< zq}OV1^6^ncPS6@a7{C@IMqflmC1k^BC?j;jyknCbBSImp zF@fUyT{C?SPb&Pv(1Ohps)V|>ah7n@;Yb*@RQrF~dmlKts`769xo7WA?oKwlca}|< zgb>aSYZwBCfenyGOwNuYth|&?LN+QzcA+#M1RJ6PiGaIjhapZ@8kQIp(HDl4N{k9> zvGr98t5RP+mRhL(`UeYYUu#>n7+e0d2s^*;bI!dpv$M0aOR^!s^6bt%=RD7Ip7WgN zIsfjRbLO%tb@`x~C zQk5oRYQ!-K`OsLxJ<`aQ*h3`P3&?LiOqd2xYXF!XZ2m`a0{cLh;9)i1r#Fa_S$9{D z;F}?TAte<2hK-o~5;#YTd-yRmTMBMQ{gyk;Na1_{Mow6(m^1T##Es%ThIsfbt!`%A z&>BTihA-Ouag413(D>xEO>jJfbirk#)&(E+b2aDyGyN&9Jp)=AKq4nTq&S8vL(#h& zkL|`(P*Mt^||Zn?NUR)aKp;tH@5 zSm+q%#-Ax4(k4L;MA+5=Qe((us{_%}su7TuRtjH%VISgpwU{jn7rBHFYLg8D>fpMP~5sa7tik{!A>qN z#)V^TII-C3fDPYb@uBuSXVB;xA44Ub+zvl4@`&wVy9wdqND_4?C5fnLV;LE~FmU;f ziG>%l#4rWf+A%|m!Z^ztP#KyrrPx+xlIEgumCykCIMS5}8Qd0w0ZwsJ^Z3W$I$#EO zE5{{Ubt58}#tFYcU|HCl70{I^$I!+wuNuZcV)Sv#5oG3iRp)1-b)IE2H2g9rDRi2k z#aar41Bc8I?Bi8`&pYLayiMPKDR}*9dN+b$iw{u`57gYm4Otm2+{&X5#@n22W6o!vY-sX z=^QfbMLzyWJ~Ua_%i|UF2LsxhHuE&5>zvdYVy%Wn2reQ?TIX=3#fw=EbmM#+ffCFv zfz`SQT@#FCJ%GiP@t|t(O5mBuc+BI-4hr{YP0>^iV!)Iu_=4q*?CaLL03P6rxgw6= zDe)+2obdzE*}HRT&YXlBkt0f@%u)X{qG_v!3L^9=B0_D)a#88?=p}At1R$b$fOm}$yZka}dvWcU;z%SFK787mV^XIC zB18qu%h;!0#G_vJ2qruMDne!H7(pPKt&uOHwJ^oSM{DUIfFz2JBLvRXSdOJ46wzki z^(ef^JoElk7UU=_N^DV$YDoCFh%rXO%E$^HQtrq+E-Vq}nrl|sjtP=u8jErM z@{XZ^l#6gdhr8RM1um?J2_A^VqY14rbBb2RIC^>Wmms5y_Gbdnjk=9g#d~nnhWQVB!0w5D29%~YY5FWjrj<7 z3Dl`Ll@m(91`eW*A0O-BohBG=;?cBlF!bxUbR?iH*Buj?r#0Ft##q7tMi|8-9XKaR z&K2;#77Nbc{w^`k_;;e%Of$J-7)6u|;VQcv#)p!e4Z7hIDdK9NxyS)tfkXr6q+604X>b>iQ~*zR(XAR zzq;iNtEE8YJQ5jj&(T75IXb>Sl&snf8d;*m-@zJkDBRE$Z|tXncz_@M$Fzc(Vq z7;Npj($OhM(FHKEGFw(CZ82+qqt2CO&^F|0SQGkGGun4D<5@Z-?*aH=75Z5;HilgC0h!d zNyjwGa$8!!kirML;0hMf_$a)?3teg-qEJXlQ_RAD8&R-?G+fZmXr>TWHE*k}101Tr z;{hM2haTNhkjz6AOKO37YzcVnNH_T+ z^O-L1_RBeEY60z*X!H^PL5-5evjy}B%nC|M&%FotGz!AOsHB3nB29`BXL#gn zUVP_nADb+ILlcL*xadHfI!D_y_!$JRE!b}`PZM7mG@1z4VH(gFQo*G8oN|PE95=0%}RtOza^@C}e@=M=msf z%=2)#k+v$nDgVhXQ-=BVfDt@xb-BY+>HvX1D-#xoF#dP>6iEnYWid@SfNQVFF)Idp&~ zgxZWY2$`BRVH2L|aT-G%7l2-eb7Xk(?T|ts@obMDsf(AbZ?WUe1WUr zz!C^k5^LdOIE`$Mcl#dEgvAX8@Qu+kQ2?kSi#)t)WXPgMKIxpyAOp(6DAv94R6`Od zW8A@eDgk&%htcqHZIrQDeFeN}F9^qt(h81|h>da$un0u(7AU1XYJ(Iu80b>sW*xdWsxqu0gcYb@4fd*7^aJ4FHUy~m*#h2ND)o^d=7wN zb?{mYX!1nojx)UT;j+$6IJcDfAA$&1c3u8%Q?geYZ7X26wMJ>K=#H1|73^ z(7m?Hr&Ckj!abUq`-yYG$x30e)KYMl!ptl-V&IF=PUk23-ZNTAzOCcGF2Q+syd+Sw zHuDGP-}-GI!|MJ|Z@lotggQnQMMgyA=qgWRa)H$fqp&uKjF->RDGFs5#$dU0I`6O6 z8T?2_Z{)%SgKKb3Pj}!sr5o+cM{%>!m)%9(i(C;wE)9P8yr|I{kTi3MuiLAV+>$jm#BJK8?2?R6!ll1tW4CYfv zH1Z&rfnDUH7@<&khO1En{3@0A<5dd_Xtjx6sZ5CCvGR8@79%Gz@u29%TD{2T$F_DZ zd~ffdOt`e7>tCak+YJ)!l#8MoN3#bnCw-6p(V)cGmBBFaxkcx1Tye!aAjUZkukY&c z*5H{O|6&`t&ixq^C$@|4II$sNt=7W0I1r&gnd5$SGl&ZoDMJMth!_TIeW@#K6D zV;5%0*q)Bn)RjxSeaTe3Q@HU9KewVU)(IE$k6_^b3aiH3DR#@=Nc38?&*qQpCV2@x z*}T|)gF5xj&ZakNLbsrGx62cH$CxN4t#=s(zNV^Wgm0rxskQkKRtB(Q0clGwrt;g{hDnz4z&Hp zo>MNq-lrN^$YJ`HgxIQ z;hSzibT8L>1THiMX!73##=7`r~JP4x9s0AI=?BsLU(-l z`9cjPr?z<*BPs^nrn0RSu`1_GY-<}^Geek1B>_b0o+x7gWQ^t?|1BWY@)K)^-t}J(y>VdpOYeI*dFAmR{_>s`+kf$|ADq~=WMb2)n|6G3bQE1B(meY8 zXSK6wc?(Q{cB%CTe{t8Rc3ryR-+uT5R6Du-WUSZNC(g1HmfS_~$tBOMedhR~7k+=} z(xIX2SKRo(@UkagTD#>v!>e%6cM)dDAN=c!PY-p_y8@pCfp%`egHi4$m)U;eUVSEw zddJRd|M7Ka7HHEc%P+fZymMmX+q|y4x;($%xgS1hY3iIm_LdKSpWltS z?+?HC@89|K3#Yh$^ztzi6F0AX`GymsyV^xlq5W6zNyi)i?ky9)9GZC3+NalTf9C#Y z{@1b3{_xspZWZ1W+xf?%qpLpR#Xj^eyLLUl=ak-K|Lo3vU%6z()93x})5F_;F>%iP zYkt0C%W1#3;lw|9``7P$@jW*+U;W^-D;9t5M^_E+8lBiQZ_|fv8IA6NPj30}_YdS+ zI$HJ_pOAJgeBY+!A3I}cfciI`gPrB*m%PUuu(inyI-55qa=e$*rw{h;-;b|c(2=Sk zhC_9@i>Y24RFkXYi7zgLaQr0(SO0=RsJVH#=Su<&jIi*`D^wGXn5#pUrU0QGnIW}i`j2|g6+Lr7JPz` zWi{gf24?C)pKE+_!0z-v>7+yg#s)z{=Y=O&8P!*FCxdwanE|EJH~uPxb9mc~Pug(~ zf_;J`Um5lZ=ptyIflspZB5qtVnNVU=rm!F7w@++BKbh#?RPHBc!#23u6Nv|m#d_## z;7qOS=Y92Mus%8N75N19H-J!=V>ZH9V<~nR`y}KwKABkNOl&&mF&y#T1Pcasv_5$k zJ&bp|96#@!( zaX(@HZ5X?-s&V*juTq8*?AUeOjAK_ga3N>0#P+dcm)1tma9}HwfT@ti;l)ZnVJ+?0 z<*-kJu?zJ?KCUe=#wS}*Oe{^_*ch-rXzQ5fO!0{wyHEtmvi*ch1S=ouXtrY)=d{pY z;;{=p!3SrZ>x^AN8-I-8I_{&VzZvIR%RY$?RD6OrzU{}@1xvCpYuR?nJ{2{H@Umh> z_TnD8ENjm4q0g4zmxu*Dp+Cmc9)8cWH^76w+UDfv;%wUReU851bOzs~Nqc^g^Sf!R z8FBlRNaG!c2$u(8y|m#&ouC7rJ>iC#LzHLqkU_aY=;BP`|B-I=+b9Z;DFIo_$8R?6 z%~~AJCmJ0uqxg1a3G+JWOc1K}soD04)n4jxX6?Oz^{07@3 zyc^_KY4HnLTTV z#^yDn6Z!!jPnZLr@N)y4GekZPka&u<;vCR#hIZ1_-Z1XFwSU~B4JcE#ruQA-H2}ZsjkPJy zcjhz?pBJLj9(Z5?TCT%5#dLokk5!oUFy7&$6GO?txNKtPf|G!F@86&Ni7A^gICNGj z&70?G{7QoXUVk$5^kg=}6DY;p%X&Bj2n8Suzej)*b6H;9`Ac1wig+XkShsHJQvB-S zWA3fv-@@TAoOR>JQ0;ifnV};eexQR?>F@s@=|n1Jb8*f|;PIQ_%05AJ7%)D0UzJaA zBCdUScwilTf|HED26sE&k&SVf#woE4KcetlU7y%`9kfr_!mQaB;S-LX1GPCFtkugt z!Hd1&v4PUSu&vkp6Rl5p4tmD;#F?N;K4Du;_6eWsy6rZtUwFaFsQ3iyI27B?ufD__ zZI7X{PjDEmC}nD$;U5QPoMYJm{0tH_bZ@05KJ^Z{?oztwBFw~0H$FLs`rs29_qakx^bKk~Xorry{6(<+NegYS@uWO$-kG%fU+4Q^UH@rGR5Ae}G6ZqB$4CekMfnPTO z4C5`~#+q3kSGb?}0OsJ9j|WY+y0;$q&lvddhI@Wodw^vr>yzss0E;QpPp+G$pWrC( zHmp&m^GOLl>9IcHegYSK?P1g^=;M5cWPSh!gjxvN+Cln+rGH&0=DcE?nR}A zI2dWiE~E^^x7YR)*xot=r|T{B^i=xCQJ+=LW&sEueaw~k2!iip9$J%~^wd*+YLr&_tR`N<%c5y#p|I`QLllr9B zu}9JZDLiLE`HsXTg>QaHEfqHY)}I448F=N<5M)E@?1^gjth3^DJ~KVrq_Py*ap$*3*f?c6uSPKLij+#WBTtKOSwHyQpmn4gO#UNjC4$gp)w+3WQ`cRYej-9mx z1x`6DZsufg@sao_6GNmS$Qq+7W!TF$;DufpB*zqArUg-^=yGf}kuYBv*5r{j=}K~} z5^WeO*Jv89_WU%2TC@%jVOUE)3~8&ooI$dsH>{_cLBt`Fx#`U%w3XK;vy$4d>SYNk zh`HsKT&=c^hdkv>7!;=BLhAGs!=XdIxd?g2VhBTqPrVm=4w&?^m%GHQA zsc0mo$k$aIn(UuJRY|pXclGY^g3KCX4L|=nEkgs|Aj_2Tv$~yxJO>pPX3AA5Nr6@A z8Tg|w*Dxrg0~xxS#Q01=VS4x}a}#Nx%b?3K6G5X3q*ii*#p1C0!qNCjdUBSKpSOE} zm0WEx3h`=iXYz;jT6nb~9;s*+VpG-P5SN^0N`)H6kgu#4b6E(fwZsZOZzT#?lEAiunEJ)9pViV7d&S*(GK78FOKT=t2uf99I^g5HDjg!H4Rtlem({7s zab=SBTA|eG9s#kIvy!KA%o-+aE)`zy)JlAAW4_rr8}<&Ct;z*V(!;SSJ}b;I_5{Ze zhthUiBkvotT-mY=8_8Bltsza93{E}-0_#mhQ(MtwS&itjinW@r8gE&usf^JUjq8bZ z+OZ{C-9w#231L_kP>xKc1Q=`0kT2{Y_M04FEm!4=a429iB%Ro5CMgm-oyGgggWyZOhXN7%B!6i^EujzuAEdq(EwD z&ndN-BrD*OR35t;@?&#qeXw|4MKp3`S&d3RS@NrC`$<)HE0A+ZTc{IYXgZLA=CG!z zjDTI0VNPfhI6R}9=8FC6Y+dw9mGZx!KF8h z)D1)XJ0Uehgz2fFnu>arF#aRc6l5&PG&K#w%xJE+4=YTmznMWQ*f544P3Ii=Qyi(Z z%rFL7mQqc#n6kQ@u?D0`S6T`C9;vWR)NmsSx&;|V%3*?IWqOE~VPtX`cACljdNPwu zi7Mp6d#e(NN{x$^F?l{I7<@=U3${{lH8{z&oCMNP%wt=N59tBF$&a|y-1qP)SXqcO zKkvG?IZRkAm%~KlGS~1DO99^BB5J~diNY9Djt#=yE(V?Pdg+buV9BL~_enl`3kv zR4rn5X%XfN!`Wp!c&&bK(CYjGngI0L>)CPS+ zlV&E#m%|5+5gks%HRX)eq~{`e%(HVLWkwlXBh`p&sx!+NYm@5C{F4S2WHq`b9`cmY zWr=0Xu+8k93ujS~1#9`8Yn&$Y5N}H{vXDBNiBCFyD8=X%7*=hC)N}aBtiUsMj!N*{!U6ZRKmzb5p@1G?$7Q%AJWmwesa&J(V;UnEBtE z3n>RDqt#@S2a#FV=4oUl6cDztFr1XViarVd3KDhYzJmNAtCh20O_=^4AIggFs%@dG z6Nf22*{9CB!&FQ~tgJ-q#%7||W_qRkVg4D0u#oMb!eG{H)LqNZXJ^!7(H9R&henxZ zEVEJOI*PLkR8=`Bx6Ya+D58pQQlZn~Coxqg;$N>$&1w7<=+dx#Rg_Yd zsEy4sUv0KmoSrafa8aWeb#TR>s)Kbod&!*(clhMpRV{YAHur*sfunyglUtQe6jh%2jG)wbCQyQlrWr5DCl+TG97;vezy5$;tT0v zSXD$NDl5^$9J^-D<70MP5!CFBqDOVS2aNjJ`Cm~jEWkssy@@nKj+pH7c3KSC$W zRt}Nh0K&TYfj3Ya251h#d^T(|zY|qOKJ=&zMAU}UNd{l2Q(cx&PDl*-!!X3Z9v*cT zsIzzVQ*ayhuBN{=t+EXp19Ba1`m~A#gem3YHwa#9Fr^N!qylmV=EF^&p?EX#w3~Od zP0u-#j??Fy9i>)&ZF(jtv*kCp<_&H?Uln>)WojQ4RF~g0Ud1?v(Yj?ekYCGR%UVmX zu0t*F)UW_M_Hoa1w zRkM-~^gAIpN&mS>)Rs|6*Oxwfy4AVDU*E=cN|9xpF2|}PvYgQ6San2}6S^F$j>vLC zmt)ltSx#sZtE4TVlGZ?YbH7f8)X8O3r$MX(vJS2qRiSHxu1y={>zAX>0(I8OpJw0T zJn?C&M%!{aL(PhsNh!jwWMs-*uP)teFSO+weX6z_PSG!VZ>VHh#{hvkRArnLH5^Q? z1{EeMW!Bdr;48}y`B?ye0#IQjq~qS(*mO!ALdHpqeJT2ljB zTLYTkfEH^&>u5kbrU9+90c~Le+M))uV;j)o4QPuS(3Uiy9oK-iv;pn-2DD`jXeTtF z$p*Bp2DC&2+KCNl-3@4OXh2Igpq<=+c6$Tb?gq4vOiy#i8qgY)=Qb$MZB*W#2IYOU z0qtWAXdiDtyQ2Z^6Afs0HlTfSdRj|^F{Guz7}C;U3~6aFhO{&oLs}Y)AuSEYkd_8x zNK1n;q@}?a($ZiIX=yNqv@{q)S{jTY?G4&>dxLh}-k@E#H)z-G4cc{kgLd8Cpk22& zXxHrx+I4$_b{%VAmskV4#2VNo*1#^Y26l-xuuH6gU1AOF5^G?WSR=bM=02E^g317dL31iyO4h#SPl$;s)(=@u#Mrs}}$72DG~x(C)5J z)BN<-k+=lwaI^l$J=)>>ZUAMyx*+~x?#oj%h^(d8rfaj;(u1_F<$FDSv{|6ea}HNR z$rNSYezfU&Q2KCXsM#L8IVb_M$y9lSI2-O)#ACl;oYmKiuSo8ZWHz;F<`+O7MyPzT zcNh!#4HLcO-SsPU7~6OK0)KGYnhx2MbhI{siSfcF&540;BZndmcQ{~t!4aaH0y_?v5y8NW6+?=eot{!(QZ072`5W^!rq-5uIMd;45oRtUd?iFJr+-(7sjXFQ zI^=sjJVXo3ICdTLkM&EKbYG$B^OUhO(aVglNB(D7pw4rbb_o;Ie|C9vjRK)IVK}|# zBA=a^hjUNQH9ckeQmZMm&EJ@>F}1q9*W<6A1?u#n{`xO>(aFulApeZK|UtysK&E8G&p!3$xxcGPK;y1=a1yd9EvIo+@N)Drzn<2RG-; zr3QyXmTlnTin)-j=0eEa$vB$S(dBBH7}^p-o(FK4&tMR(fu?sF3h1+Jd3x#*x*CyF zlXE#0$*JOjnT*wSd0s`NJE^QN6^4_DoTz&G%)e9>`-$ZU`ISvha}BweTpbVD8CMS< z(yPN7J{{8V;*Ky{6Hdl+D#WOAtR~A5NE)4j2Cl;L`E5wX@@_(zm@5q*zjU1O;lyBQ z@s9==i7@n67y=bQmkG;w9pWotS0KHDnQhGI6KGhS$CehB8HO^@G7N1FS)K7n$BjcY zYvJ(dgAczAGaQF%2Mwfyx`pq|Y{hRGRC7CuWsx@5$+0pjjD-2Zv<;y_6{0#`g+AzL z*q{ztK)sBr9&!$FVLO5-Z5o}Gscm4Xevkq#^j6CUEJO8GTWXb*YHIzsu8*#dRrS#g zvGueGYSl2`5hU7gmP1QdLd0aK7V{KTg~s?3mU$E{d#EBMBa?zgDkwR$x1d4BIKoq!xPhU^E5-n%t$`ENEB*sdVX#r8cvSG1 z6Ia7yTc!e{8Wc;@)fgK$gVgM-W4UI>TU(H0`Udh!{8gZ8l&BzQ9aFRBoCTw`Av1ck zQ?We_xGg3K_F72TIH-wBItvekkU+lGY-3Z$5X+&eP9P4>sSx_rP$t`GD)aOhqmS{B zoSvynspbjBt|{7=nU8S9>Ic6Bv$RpiHg!amNmjQei=j?q3_~?NYKk{3=@nd|K^3=& zm(>Ues)}K@(OMa^&39z@OgjsU<~E~|u%_0+^c88SXvqci84C!__YI3LAj~HLza%Ok zt`UZONS47X=VsJo4$UaZmuh@CnhZ5_l&|0_FAae6djvBIR*6^MZhJ{+{|y7 zIjd*gSEE9<+_@>~*jMLW+jFDr3{u!9zX{;Kw$?ihOg_aUvH|l^O*&@o-v@Ps>KjZZ z2!i?KHR}^vd4xF$-Ue7e=7T}59 z?SfCF|8H|H{0IsB5k-w?xye1?%iX){maoa^yrE)-<8wLm{xclf{=`Cx~UH7b<`nPKq!;>qfri>$giRb zKiT5ApRj5ANI5(o42I5pbbElmooM3=Htv48%$sIj@Yp=32lyu@hmjEf5dn6<6GCx7 zfiB3;s|Uw*JjOZ^DHKAY5i6IzArvPmX61(ELvC+%9o%09&|p~BH9bdj*Id* zq+5)%qu??ktrGW{u<6nJWCjTF-!?5qk=95fyaITpBOvjaFeEzmlpyb8LEh2(lKk+P zd6-%JYe0V+LR7v9d>n>&F*?F*c$Q&9BFk^e&>*~fIWFM$MkI$MtX#tnIg|!}Qy`bg z-?=ZD;qti-T;2s%p5fziKWFuH)P3??=Klmj#=}uZ3y4q=$&vE@g>g;+#?2KMeqJBI zIFGik5Nl~wS4EnXHVAvIqJb2E3L{pIvS|&hjUhtbc&L=p2CIQIpaT9d z9fUee>&f(SBNf+B9>mFIEytT#04F{NZABmC)e8GIX8c10g6-| zE;Y;CzRg_4&9$hkaYES=*f5T$0flRY)8dZY)hX9OvJ&M~Ij$I827EUhuxN`@?R{n9 zwDq#QK@J{J0;u+Hh|^(YQpi~TOb43KN$W#s>oBa(HGTf+_zye2+86Z;V-Crrz>qB* zXG49}My9)Rz6|=4D%W~SS+b0gQ=4!F0|@|OuI3^uQB{tXWrdhBqQVoB%AqXBj)Dkk z$j#P%Dh)VjlosI%Sk#(A6ZKWJmK=?K$slyO>Lj$mlrLB~A-9%f@d|cDq70IWCRHVx zHIhJj9t|4F%)y9ikem=obHEpgKUUd(tj0y80p@FLd{Y&bJVr@nkbGfY1GQR*_*XCF zdYZa=xb{Ld<=BVrjRwnVk=YzTmYT-nJ=Ir%yRC9{q;N=VP?U-0@0%XK$r$C#v+wMuabz6_643i zfXPS)3U?Z6MB(c@P}n25w^1Unq0~NU%>xrCTID1QR6d$_M-C-AUC@%yyzwP1xD0S< zB*6t_04CxfKgv+Fmv^M4HDqF8BF0!<6p&MC#Ds<)k(4=H6g~jf>4*ZXETMq5N(hNG z;!s`+qB!X^#qQ}svrWr5W7c~V(?SV~bfTuN$O`G^?akbAULOk)u>#SOSTiNaMH2ED zsUtR4WWzv?4?GNpj-fqjfxp13vsl_iz};-}peK$A7yHt(Eq6rkKpyh;u{7|Lrm=@@L`Wg`pAkAeZtpKgV6LH*;TB<=G@k@j{j1G$m z9cZ&DeFb$0-ir!5X&8^vP`2CahVBxz=_FGh;4Q$U^9E2&jCiQ0!Y&?e>8L9JGyuB@ zV-f}s#vsl}25nlrHgT{5?~QZH)1K=p4+1?#DujsRzf&tn5?%zdG$~COc5yAkm@sd8 zGHC?|xuaPVe*=vp6oOL_NUN;l5OY~J?#MJz&Rl_;1Zq<1@F%QhY)`vi$~G=o1V!r| z)V)Kq#<#*68h?&%C2q?()DCk)Q6%Y0f-6JwcQ&D3obOhy8Rb*~UNu&PAjly0W*!(< zB3|UX&pdDMXIq1UPRyGVUnNPgiF zq_{UI(|_F7v={`3&vP~yGsb4FnS;=BS;E52X5$SeidJ$kHpM!cx3X;n*y&O96J*rv z8FG|1MuYtak%VuJulzW9k9aAf){F)QV;5e_=V2LOnzcf}akUivgx3QAK?;A|PoNu* zc+CVFX?7TwiWG-F21Vv$t*}60@LMd0l>;2=YA_aIc&aX{Dt`E*Tw{R3M|%kjJ!ocL zQES)`pHYFayBiOYaygwRFOl2P*5nKD%2rtSGl)bJZO8|Ha)z;b+B*sfLhY7997Vy$8LquM0jYLpeZ5zgj;mepeMiya1ez~q96;Tb&htRH;qZ%1Su|b!wd2> zj0ew3?ZT2p2&N{V`-$eR2N0S|WL{zx^hiDrAT$=@IU&Se(n9KP4SGuvXy`(uz>Z!d zIa`kN9BByK3a>vpY0pSEtRjWq!XrI{KjwYAR2fxICvjH}Q zO^#dV2;sn^DYSGlc0)yh0GA+c#o)#ugtc}zTKpG)2OrFV@-c>Rj9eHV8DK@kwX+%a z+DkbBm$bmtR2;K&u59G6V|Pd-M`ZiHJGY;?cxx(obUvu=V3j-+u{3$XxW5p;JoaRyIc;CorFi&-xt zC~&a^hideP4(J4Kk8+)l0*lcPW#W4%^jQ3-=$k}~eXnVRdKJh=3t02{+UQe6MWmop zafi6nZI!Z+0-`CAWTKab6+62Tf_(|s59wu}@jRu>bog$+#l6g%U_0s4=^SLoDLE4_uyB)dua zxVur-jwZ9CIKarI&^Tcto3vM=x3C{|tAmozEL_*$4Xcr}1YUP`B3lo@3)&gM-rY@`SJ=0JQe_+68?|4N@*}E{AWxBCAavN@4zyBa&IeLj{H71 zbW+j`Wr#s0$>6w_pm(6+Yy@K!CMkS~?irzulQDwHM}e_-Ef{@>vY>V0wOR!(O(v;p z#B-duOrZ&Y!ubs-TxH(Dco|n%5`e~c8}QU>l$7Kez;mrBi42l6c6-ps0y}rVBPG!v zg{XjX1cN%7KtT((O-pjvHahr7gdvP@a%XQthjx*3RqOPl13YK3Os)#=6qPL)kPf*_?lG5N9f3$!$hVks) zBhN)Lu30xn^CCu*P;3$pvB0{VFwlIiE}*q(3@{huP4`I-5^c)#XSHQ;NHgn5m?6l= zM9r4~k9IAQz`O-#NFM`Hd?9rkfs_?-uay^XS&8uv8pJ&;(HU6S=7rQ3!6avSJ#S4D zJx(q+Br7`E%R+-x%s!<<3d19=%@Uobs00SMqX#f#VUEv1GpOiXslG4fH`DFAe-h6| zmOOHX9%sc1v~#P3V{SPaKGD<}!GZ-tf$!}^q+?8rq}ZUJ9NE%MGVLY09{da2($MIg-ne;job>?N} z0!qX-s`$pfXy-9!yu5~#lO8Kr#hVkSY`Ei_y`O)hJZHpP5O4N7 z`@GikTg;l7XD75?Ph*e(jG6HU5%{JGcBECFAH}pKDB^b{X^#`9sMt!&6X~nOwX`~U z#` zHs|LXO3$Bm+NJ+}_fPMf7#jMQ7jp;xxRCtb=k|a2z>ji;Z~ozDKK$UBqb&<}==op% z!YCaRML$`#{%im7Qw5V)E=0^b`0NaNDN$?Q%rhigjzB-m&IyPCez}b(apV+w{Tb)|M_GS~JwK zeZ|m3^3n@B*WP&PRl`FUue|n?58beK&A=INZd#R!5*Ew9{ODEBY&`AZb+<(>-F5PY zuZQ6Cprncm=>(AM-^lwf* zsWg0o8b15|KVSQMn}@EsY0ZCazv-csLzk>RYxvSDZ@Bi7WkU}SZC~55;nYvCPrS}s z>90TZ(w4UmKm0qp+%0Vy?964#^i#v!)u4G8h&cg-J9RD zXQkuKJHfjv*Rh~8Qu-bE_AUXGY=55RB~NPWS)&Zh3Rp5jAAj9ffn6={PBpj^U9TZ*7ba_v~2S=rE8wI^s1}m znTsI^Y=SU2;&BR5@qw|i{SW_em~ZSDPyiVFw4y?BFC9C~xZ%=3>6l|;F-`sJDP>h? zp4ZewP%@v#BH*#%VQ1Oq$B6p5ivmieg$wEIjr~~k?r-lel@J!2!43JFd!Fg(*}wmq z%{@Kq{+cOA7xd71a6xP9OD|cyGJ#K0srL3}zBiEjALH2oJ~4&}9D;lJ1*xZw@9)WG z+q3;Wr30?pk9sfLT)L)C9c52lpQtN0d;YkT#Ru-bdp~T>8c3r?^E_=r_+;;}!Iw(I zXbmw~_+9t}K7oa^Xc2$*XYc@gFkyUBa#92qr27}PpSiI=Wqh&?Qi_33p4r?}VxP2A zPfvUMLS{b7;5=wsYHe)|)G7@OyeX>Gx^?}iO{t^?txrm&C!Syq+msKyh-K+NJ{9YS zKhZLK=l~T0pFCfupP>6OADX}6w{d&*#|HtSQ}vrhs$T5aGHUF{RgQyPXwXEOKx{TJ__?32x<)2&aAwY=3D9m#kwcF}pLd5In< zqAzUDWT=$QvQM%DRI)zdaj8Fnt=4Ajf)(}?9XNo8U*8NzF>aGoXs3tJPo8JvO$GQQ z18g0i5SNuo(Zd6rugE^Jay1#BVASg0)`JpCbc}5QflpEpH@_)M(QH1Sq-@V{$&OuE zSt=#-aJ+fW0&#CKz~n9&trAfX8bs( zJ2KQ+koZE9S6|aF+Gq+ zcnr5XNF(f`%WOV313rBJ2>zo5w5jKnq?fQp+Y!Q^84i&Y2rowE5$;%Ws!Qhv_;Y7Cl>qlf0;b} z?HFBnwBS*P=$iiaex7`*GSx&ojL%A?b>KO`>%N2p2ahJ})@3p=EWg@IimudGYC3T2 zuo`D}yACsgP#VUxQcubDoBsaI7>T(2l9|6ShtrA`J!ga0thX?64Pc@8!g=Q%fBbOi z;Zh>kKafmbe6f*r6kf&;Y~4y3o;UvE49qGF4Q$Ee_O~?s=lb8xWUxBe|EAUKlT!aV z@I|#x*l07!A=*|NwmxC8fG8#{_DhWBHMb+w_&b1kMU9i>Rk2~hr3BMY_6b&i#wT_a zX?+4oXNNv14H%!aAK%YXI4{-^N3~B1So4mLe-mSjfpXo0bZwAp`p;ke+9K!kxIaFz z2|jW9HWGq zPbT^|odM5qTGE@a<}z{9PgJ(F4$mJ-?d`lqM7PY9O51orcC-SIT>#(zZd+^X5}qGs zQ1;lt=bpRgvz&+MFCWEa+}Tt!cF{~@7q7Eyd#(5+3ahWfXIR;>%k~rQAJ!+s6}@^A z32Gl^&l{hFV^)sQDLEiGY#PED#5b~KxE(>QR z&o{CvWf{DCY(T$7a2i9GNGk+5e`xq4WgSE>qv;zVf0?d;b9G;XNlK4M4*2{bH$9QG zp`jzqc&3Zi`;r`CI@=;V7fCYEi-PlutS`%feiB@$3!d#D{awy;cp#hxrjf1#JhWgC zn)&fDD1L}-pmG zhM_fTaGk_i&ZAVBnbk3M2t-0(2E_vv2Yh8<9?NHvxX3W_>V;xzQC26`+QfJ>h-E?y z5UOu++}JCC=lX`uJi5#o|4WVsLIP%OLsy$h+rC$6iviX0;5vO;8?myM69}{CKKzOd zwylw&tma1hR5?5HP4H;=nT~qwTfkoHZg_kI6fTWHu!TUsJd7mR1k`za^|n0=8I%5!I3U*1TN!psDm&n z1u9p1we3TOi#g{ER3Iq`S)m4?3{CSD-%%;lRADz3Rxhy;QpfZW7-N*C3PG4hRTo&ivfCh-(j5#KXy9`Gw z>;=OV-e!bgb(+C~-9gx8 z4o8tTXcuL~APOUD3>Rk+(!ilhkFVz`Mj^`JQ^x6JJmfd?~=|xfkiqU4x7FU9~hfR`YJ)|rHNrn8Fr;)u}|}|qEJ9F zxGJVyH3m-j4Lu0LyL?9}1;rI@#EyHQJa4&uvWNI#fUt8`i`LZ%SUdz}B4~@UfY^v+ zqu>ig>TWS(OqYy6@11TMHR|s2uE4gCPC;)4Q;Up^C7j55LGS{#e9{@Y(&;KjV>Af+ zz(iqZ9$k_}N5Z8<_cm)!L=+w( zI6J@)aY;ZJww&^i=x7!LP^K%o*a#*Zpaq@G`(hE5cVLBYEU{c8FPF!shbX$&chPXW zbk5{Q2LnYSKA7l@byLP*5ALF;%Qh{+s8u!vXGi_eN)2FF4mJ#;>-Q2I!e5>g*aE(E za-^M{>JWL6pb^gGV3(>9W438Y%3_G1rYnKMQL7?pu^U{9=Z+L4xZcNzG)4^BY|3(r zS$yp-y}!_AT7gM~*7tw~8)v}LCzEI#$j7C_SZMcdr`SiWkhyTYgPOboVy+S{>w;qP z4)GogoCrrvbex}Ii*bCq9gwvq7jA+)ILBoS*A7LZ)1%i*37X#lB9dI1cF=I<8dx@p zF;`r47zx8_1jilk7F^Ntb~>abY1eZlHyk(GlydQXme+=1x>=$|-J)9;!5~Od4p}c8 zgE>(dQ)3kQGIq+Pxw=i{_PIb8@+Wc$?`BFpxb|eoAOg~ZSpgiW_IO{IV z7jvk+qNWVj3tud{umNfeTgSTHyt9*>4(vG;&bgwQu!r}JI9ofGPWfY^n6)jSb4BjA zJF_mm5q0AESwYSMIvuh;FK(yiw>psDDS5KhuuBRS!`?kmQK;0^HSTrbEiBD6)}p^+ zEZLlGapOK=DY4k?bTslcyPX*OkdH9$$C`T)6*+|~b>Wyyv+ePivs(BD7kxH{GWcwY zF*0i6;71Lh1UEROEE+yRvUP8gnKrtLwPcBN2$~50^+8QRbNM$1g8}+-$Do&&7-;3A z*m|c)o?OT#h(-#c%ae=F*W*;wBbpZEu&JGL^v$L4nRXlp4SW^)d-HF{sh|skw7;WQ zjA#dE?f2n)0j0Y!KuUZClDI325rcnT@104nAlo7s+jxl#13Eb^Nk=fQxbj{eQ?S1p z(~ESA-dOv+5{Ky`Ir3KQi)wH03UsEZmn#ZM2_BJn5P~9T^IUbAB&oC*1a7&fbxl)Twij;4Kll3(Ru^EQmj>S59MmM!X)lK=KDI&0P7C z#|NuKFQ!Rit7%c-jI!&TOp7|Pa`OFC1(s%toHM$~T|{nNDgi^|1h8;Bo4l2s{z;C4 zlW;N%jTsY*cJD!3bo3i&cLv_T8i=q<7<8X-q6kB}1Czs7^mxRlBGw1eg_T*UqHKbp zH>_~CIvtB7?E5zkPtA&FocDr`_TiwBECvSFgwl#}&Rd(iv9UWr_bhM5sc>F`_;C3M zw7j`VXjAaM`~l@YAvxR0!3P^cOIad-7g< z^@N70E`d~~F}Ean_5zQaykn612Gjl^4(WpEjbnL+mB*?C&hW+Q0vxJF&%GS0CEpx! zNMOO#f@Owp^CJr@f*FKVUq(tn3Q0wye8Y0Fm(F!7i2G58CJ8)>OeqX_&;)~=>^+fi z-mCmD01R^nc0oRCd0Yw1ak$&l1dTS3PSJPpdq1gt#HREYJgInZq5mkgcEtLqwaW*i zvly)~{RlD^ech^IOo)lz<&wKnb+*ER>R$)FK40d=dE=h^Ch>zp3~UmO8%J$jMcCj)#mA^SBNavl2pkg_`xr79 zl@A|4L1#A7RkDS9JZ`s=;${)uPpvW;@AALljI94=bZ1Ty4e}h3xCAqZPpRf{Nh7FQ zZ+s&v^B2ppEb2l*FkR$oAID4MAddgjk}kNwmmS$odQ>GK13%RS4(0Ogw<_M7eDwY? zFF}_{2Mtq1yhmNP*)L${7`7SBpNGba-r=Ukbm~gn@!Whfx-mw~RakN9d*6hH-Rq8H zx{yMlpQCJ?mGcp$jEn27e&$xnCovvsiT3#gjBT{kEW>=#xc$JL6zVFyKG)BSzEo>L zU%`GP48?hffqoH)noEEu2o^RXxh>8J9=AGxpZqO~cXNwZ8#_i|gW{>$=?1~;#>>qT zh>YAyUP`N_iv_HsT#=McEU}YogIcnL7j+-EgES1=O|4tgsM~TCaX?lXjABGGsJX^eOs_7VSG;vDZ229-J`kq$}N4^n)(hgkRwBbLh9Oi?)FLP07=ar&x{yE<^oWQ0p?jTlQ!+LEQCMUgt%09j0DPDQ4cf|w#qwz0O~7NmWk5rQ zMA9a~7t=;Z(%^TI^3h{D&f^%eNdy*f&|1hr{0OeASFES84zoG1D}j!(0#6gi!0luF z|A~YSaN^2yBgeZ3RBp$uS)eT@+7g z3{nzD*I-dRQjQ8l9AjO>fxHqCp>lW+_w-OcxfWsqDxR|!1`Z3BM~FpfsmPHU&BwdKMY4-qEW}Z(r_{Uimk&CQ z;sT(a;t5b0lWDn;o&eh%fl&lS zVyqS;$2fT`E+dPg>HgSNi|CFn_uHB1q6LvQ7`ChJaS!bdkH%5o=t)9SiWX}6sH4tx z$Nt8-?K^i|5?hc=;EbAtZ(xv5EhF7>BAZuIcg(rx9gZuLs^tsGrM@rKS*N;qjJ4ug zJk`Zn(zqD(REh?1FcH7d5?i%Kq(tla=hNz}5_B(q_#?5XPdt*GkELuECD&6fK5*{F ztI+hnvT9u0uIcllBIn2Vbar$|Y@c+yyE}bJpZ;yMnvef64PL*YHIf{p`a6DGHJjy<^*vm7dw zOtr-659SvU`@p?Tv_DbcLHW=jFgtvJUgGG{(eL+n(Ocan!6W*NK54u6tXx@z`(u`d43{ zxb}v(zxiLTx&Nz)H{D11;;<-f;2t+n>9q|K&gY?=9y%^yC{Je)`Uv zhTr_m3ulgwKDel5Ouy-SPv7P5X?gg+_jhi(`i51D2VQ>quWowJX-}?ue*0ZF4V`)E z^TVAFy=TkHZGZg5_kDWV@2?vv*)RY4gDXqd-#GmF6V^Tdx6gjI^wMn~ z*|Xc-(F~t>-`aBjGeei2{m?+^spp=){`nvL)@`Lf$L_*?_r>6oNQU;p~HZ$CY;d3g1KJ;(p;cdkzS?Z-a#r)$?-yz+*3Kl$~QTNdp;u(9;i)6cfv z{pHmk*!JR0?UxSz`)6PL`i2{B{K@b9&cqq}5^Mi^=b`!I&~sxP-D47E1l{1KJV!V=La z1{+26aOt9cO}zJ=XrP3t-7Bs;wlo^uzkk_gZ0i+c*-t!%#RR53;+07|(Zzlg5>)*FVXkY8kRzA8FB8oBdexGw^l0d01R1*7pcITe|&w0-Cob#M>?>)~wdJjzf zwP(Xsikbb8`6A&IT3ydC(Oo4MT(8v|^Tu}Vo4kZ#AAGw#`*ickOlB>uWUqQ=_9@+C zn?hE8yp7kvUM5ANo_u1rT9yKR@0wMa?9le^+-Xd2?@xbv&vRsw&+nJXtRfumdvZxC zG4oo*5Vwt&31R`Y)w+rGbsJ;?G_k1Ti5W7PApFs_AK9^}u~O&c?c29YpH0_@avFWX z?-52OZG;4dIs8UuGo2mWL?e@HjG=)F+w<6_4E5GD0`rX!O*UMB7K z&Yf%fU@&gEvoBpqEy|j>Y-`Px-Y>Gm?CwvS5dKEHy=Q!Ouduhe)zbET`qTHc)wJ;d zq%yH~?`)e%R{EYWJAC2+nXHsX0|sw*uI}J0sc^HIH(ZsIa9ag{?JDj^*Q(`13J-o- zcG`~rH2E~~45YYJY-ha%Bn3wlnU{t%cj&kR`n*uu?L7G{;Wp#^mk*(w{dUz|)@EK% zceT-7lJOj&_a+O9a_Ny}I^;@PIWGA(pLAT;igEr#yZz4b+1YYA)m_M>tui?nGTExs zsB14qteNUa-~TyIq*~P+BZQ0aMrEz`Ch?eY@DUzOw8Ic?wfXk!GdOTB9Vem8)H?l~ zG8l|M&N%W<97c@h;vXI8b=O9bpLS$2PIPT{$C-{YKwk~r#g2MnJy2gqT%CyjnA2TO z4>Yv==(M^+>g^_||K~tz`!~u>GkSStHA&!ri8M^1O8RII&UNCeGDw{Gbnb#zR`=T? z4qk$PUi~32+YAvoPUEufSwI1rNj5gHnacCgL z^|D;Y6iZ@xR`rsgW51ZV1*HRaiu>&tg?L5Rv0o(K+b{a`B~je9Ya~bf$+w9cWJ*=r z#|2TxeU0)MJ4MBzc8uz(O(f1r9$2wvU}{QjCVd@*S6&Vt`Uj%w?pH|5OZi6dsJ-Ik zGV*y>yWZu~d>PS)bK0*8$p*#m?H$*o^HqumyG1YKw{bfKee+X#VzrCJY*Ki8;OT>& zUldYXLB5paRrC0GALCo~?8wp=hxw_eG~c)!b<}Qp*~rK&ThNG@)w%xh$A!3mI!D!P zd9CVXZ_yO@_qR75brjmT-6yk_M4ZdL@s4!$*$zuhmviJ}V>Ct(e5M+jX}de5$=hMjlLKm5fsz zda8dnM777;v-u>cc`LoAo+@fN+bNGKg2;&z$dyhO+ZzPkgj0NG;`EKI4MJ6ORrx{R z_;x%-mMel^44x;Gi(mEq_CB3gJ9FBLM2@ZBQO%}WAGVL3eOfu_x$n90PvS&Lb$qEF;66wOZ;qEV`X*ze7?@witT43$in=Y|Z zne6d05igUrWcv=5i4*6kP?>Z%Ju*IWDywAX!QC*seQ8@B!+MghEA-JJSFA9kbY=2L zzOSDZxib41?OAD3DibobRSfEGZ13#bzWw_If|p+=T#f z#*KY_3FCxWb@rTdCfY|m9){dKSTeYBO-;~7bX^?lw^l|*j*R8&GGaAV;i-N1WV4w} zHoKvw5lmcKTh`T(>s)r-@liSM@Y8$@l(f7J=HnMf9aUD@KdGS9VfGX)F<)`_aWoD!qD|F z9Dkf~@osma=jV~^Ewg6bkSu^@?&$!=sq;F(n#MdXA#di^Xp$}1ja z-OUJ^nA3h^JHt2u_sb#^Mf2hz)~r15&9Ah$T|36EZDADTD;mE)+_f=0K2J3HJK^Ws zDC!v^Z~k_ERP)%5y<+#A#OIgEb!;G?Z^syQ?G!t9j?uj5))^fYp07k;&!|oiy&-kk z*Wkl)gPzA21cgs@(s@}DYrZglJ{g$&JMm_J`s+0wIz8R{+x!u*A68i8YYQ898lyh! z7u8k!#j1uMyOV`w8rERf#xNxP;BePQP;CJB0XzK#Ss(9UYoF>GFk1Pph|Ebfhay&>D7V*7&N@PB~IVsAr|RF?gMN(s=A0 z4G)ccx@mOstJ}r*EzSF%0(i5V(t*=DKoQM0stfc_WLRun2>SqzLdZ)doFsd)-zwpg zED`$CtMjh+c747o%N$keR!WM~R4&$tv+Cz!4=U}0TtpZ9u_i=hNOSmTF5VRn>a`lt z(o8RvMSCbdOXVaWE zEw3@p0pdGgx}Jkv-9T{w4)!02J%ql_P&l}T86W6!{{<-Oa7~=ZjPI4UTO5z^{t&!& z;r>qVd?d^=U0B$jMhc98dKA*3oL>_N?6~dh?)<>sTywUSZ zrY-cD^a25<8*r&dosKt+_~l-^Erbg5AE1QgtO8iv5$EbAR0Zp=%2xFmel>oGlzbMq zTW4gZO(eTCHq>-VTC0xH%X7e_A>G>G%MWWUE{!y)!`1Hhb*tDPu^*}H7CR{Ex!xBj z``ipKZ)ksYtPr0Eq3#I+;$f$b0=u5s2!$t}!U%*Sp>jlIN~4TL98R}U3*x*0h=^TS<7 zx>@8R29ZOOF3vTl;n`I^^Fvu#v9yios-KPHnXC@5MxM47WUMJhwOzqkcER==9#|<- z<7)F{z73W2&0uU4TH=|C1d4{K%9+SUHaD#yp$iSEse-Um`DR!xVr6pJSuy>k%}OU9 zmJZFR1e3wdBq{3$&oO%V20OQm4aeeS)tF_fGjdhJMkyo559f-sH*WIyn*0>_C4jG# zw*H=W4fZXULIX9NO~_qUP+(6DAAL*0K`90%OV^Dp1=#&&!{OM%#KnSvT`8<2PMQPj z2Bd`j;7v56?|U~$7-8lHDmN3aV*AMDCMgb?8}$@vUJNIrlEcaT*WU0UX_!nD?gIiGjL zn5OYv!%mG3%6vEMh!0=!5A@X1+%heS-B{KQ7-kl>Ifnx*oGc$dniEX9h_|XfgBVG$ zCmA?8nOCMXqoh0>(sHy?BhY3JE`$YqRS=JM{#N7<+aWX9I(Q4k1DxpY< zW6AB%V5WKv77{kZlEInjMCqi{xNvTC3PX-cjSiwAE8!A4RVYDb6m=Ea#AkHmdDu+y z?6|m6hyP4al4inTctMU{r&PU9FLXx9nVQ&b|467Do7;>T)`|`*m`-hM!|a(-nnqz( zV2v3Nl#!Hf>+PX?Wfo?t5hi;U=o zOn?zJ@>0P>4II!(Q*VPEfg-;l9^2=8LeAJX~<$$x}(8 zm7J64wq7+5joGFBC5fV~3=*BIDwT+Z02^1MY?5bMF^b zFL#BTr(DZrwjF5-A1wYs7?qsvZx*)WTtq=*-ZvPI=EF*6Lrml5$y~bMOzZ~2hKow* znXzOuJZRaWhXc*dWNfT4%-2&Wie!iX_`J%MZMGOrgKKN z21l1$VU!Fn46%4hU~MF$G_*Hp%0t3DIgp*qWFr@a^fD9VY;v+3&H8E1qpW)7<(OpV zFn44F7xYltV0bze21bWjE{e{q3TZRFr63?N>c?=>o)Tulo^lp0=3uOZIyo^PhqBnP z*;iaNq#C9>JebV*5zG>Y zww#F4U!orcxM>K@a#d;6OuG7`@e=b;&jwj2i^Mo%B;In18NFp#%-|)F8*q)y&cX4| zXUq`Fs~`Wa0h^RdH^1Tz_T-j_=%o4E!+HI2v%wk-!zs?=$y3?TvSQg3gNC#)*vp%# zEkQUf;kK4MoHSrHqbj`I&CSK(=VUV+hwLbTg%V&P8kM3ZEF6^$L^Ha8KOMUvw*61Y zpNWh`;Z#Ovxv3(p3gi1+{sZx7>2?X`iMdOrEZL_{WcCCl;xw!Ti5ZOJqLnhf!wWi* zC=6+vkx6W zdrN70Zswa{VjGAf?^rxZuT8R=gIEb-;+2Ee}WeK(M-(*wx)l!aoA={e9DvyEUo<1FFrI%hgfowFR!=4i56HIenkCp5jt4Z+-~rwN;! z?ggQF`OuvxtT{PFX@;1$TD%VZ4H41q|}Ag0Y-aescAzQLb-mvaezKvPjiFF)ae%sq3$q4 zV5l%Kg}{F|DbgEmy2`@%a_xVzYb!jZFT&Qjy{=bovgip}7L^-4N!E--ky~a>9ECSG z9+jDy*xVPE91X4W&4|~`;EAPyDf(D8dmFN?l^#MOsv9U5Cr3;L#!gZ@-_nWLzr#G+ zydCwKTroK8Fq5w&ttInM<6|Op`zu_Fb%RCxES+On(;p=R4cnY%L!QnhD4OgkuADSt zTZf)`vLFhkr4=NTi~;UaXd$_<>n(?J4gO^sF2oimTZDjZIy#F+hRvkGo>?L)nr@O{ zSSsKgUVt_a@$g^~%hKDgEf=9Ll4;BhXR6c2T=Xbe;;{Em%cBupXlseJk!+@|(RW*N zTxDT4x+zRY7%iaY?7PmH$mXS(d62~)?udp4 zd-MYx@V%M@#fB8h@z%ghBYX=2xLPVOwZA5Uk$biK`Q+##??gHE2$0+pN*hn06vnc;rz> zaysxC_BKG(XiRFmc0zH)kRB( z_=F2cStv+U7v~6o5DK{uLNyb%6#XSZC>C-XVzC=9Lqk~ig!DRrFlEU!KFvT9x|X{? z4LZF@NJ(WktjN?ClXX$c)VVAgf~a&`r5TlY({(oEAmG7F zQ!??5p^Y+EMlF|>AighhazQ!D9aR{;>Z16j<#$KrD0$mzI~re{yJ1NZx$@1sUR$z9 z43)U~zCtbuk}In@wk_3GPhS_xdYRW7T^!yQCChU%_tndyAb3=sm{!G_B#W&n#2ly@ zE=uI~xwTwqm#<_Hfw#Qr)DQjb55DujPycdL?!vwM9=q&}>mOMD#rwB?`$O;j^0!WUa^JpvPu_jb zz9%2QPv8a>L)R{mxguxaPF4{MQeC@YaPV{qJAn zKK`_KesA5=e|XWFZ+vuL{D=R2<%xIw%b)+{@2q*v=C8ef_RB|;K1` zZ+`OrAAWz+JC6OyvRgJ?@SXg7+n?F=uG4exe$!7^@4N1@cU^nSpJ1st@!&Jpp0#Ps zzLPdx_U=FU=gm)l{>1Tz3M*c>{nt)7Ha_FDuZORlzvR=G{pdTni#I)X?ayxAcg=g( zefr%ez3QwhH@xz7&zyPf=8tZA&zr9Q)MIB|J9mxw+1B}Q`OekHEdQ;;DiA7DnJ}y~ zdp`BR_ZRj(w)SW5IA!ALi+eZy_ccHI@UkU8y!2;ZxbC}m{>o`<-+JYWldjo&|C~)f zTKE^Qdh_*b|N60GuWo<&FCTyK9n0@|;IieX|MdOO?%Q+b1H0e5`Lu6_D{lSYe6{ZD zd%m}R_EkSV>&{y@-#Yh0N5AH_&)%{1&t9?p=EpbRmz|6s{?J{0XYakW@8T2sCO-e{ z{U4jVV&cy~`N_VuBjo!$2MLBk2Gf0w!ZO&KY zqhFd2LS=%z$KYe<@ab80yxw!E&g4h8SwL|zN~AVd)bIa#M>Ly^@43INb=PVe*uuPr z(0@88%~F?jN2W`a4Tal1Q}$%2fwY8Hm6 zOh#l!uWl7aCeq61d;7}lWPf%qpTgMF;2Z2{!ai+FB48>37Zi0 zMrrTZt1?km&+fg1jq6R~Rf4^+Sgi|^77vaa^u-;-Oa58C(!w>VOxWbTW9JX_S%%>Q zGn&$iC7kRyGk=P=;q@{p`=VG;!d>|5O-^OUxY`%0Om^x_jXN^3KoJ0r(4N0>?JC3W zfK0ysq?ZYU{kbyH63Xt*VKg#}OtdCRWwO>74fl_X^czrTvVECYN{;;hS!9Cl648@# z&?>1+cBt+`CVjKBDifmpcbB!wQRSpuAAl~Wj~IzoYvK$NnO$hS814R*1I)-UL$sigV&g7Xh3T5 z2A;K4t{^;AI8JHQ=c1LaU8K|sw_yKBm+0V0)5VBCzj41yxn;hbujH^^v_p6sKAdoU zYM;oA?4R#qi`ZDkLq{G=rZ$P4cyDXC#M?XGsCJJXd&hX?`qUP&%DU_B%cs+_YOmKZMpDD2D6X!jTtN5e#QSu`b2+pT52!sOP%B+c?yiH_%3fuUaNSzZpYrz_XmwXT%g~G z=+;$YN?YDqFDvvsL{;EeM@x0z4>8Lbk?IL2WHQxiUmv#C6Ak2vuD(9fOe{Ich%ZhdUE-0uCo!9zP5Y7ez{?;Ft; z=yQ|?Hs9xd`YGs>+O9qZMPt4#DHM>t2e%$~lH zDy!^~a~sIS$=b(v?$D+e?@j zCLAocQklq4+f{8UJ1%rlz|)3IpUR}h`it)XK<`=-AAHawIEW~Stf zOqNn}=|CzIJ;>0@gl~6f-@$SeNGdY6GP#$TwMgq&XC3pUFQqckd>)i5o{MRa zbzM46=mNnrr)7_!U|jV~E#9Un&zH zf6%3+{_WdUCL?P*GIC-Q`#QW#y7j5z@B240d1Izmo}$;P?%Hwgr(2%B*7$hTk%{WAi50C`N{5S)$>S;g ztg{#=7WptvOt%VKvShIuRNXbgN)qZ25lchM%?YA>(y!D~X){hVtE%n(7B0Gr?@Fj# z4iDr=kIv7L;y{O_gVt{Z)YFW0quRNKUAgZ$VeGSEn;Xa0n<8u52+AH97cC^YX%+{`yp+`f#4 z)qW5Nccd<~loXfzZ5o#IJLf3gMLaNdR~nzWpyQ6=l0UpD4L{#r(%UtX9%wzZA=I|w z%0GAVUy|16+f01se`EJZvV1`=hY)(17?ciSPf1#h3F*A7TO1b!!%uS<^*NJ{eDNB9 z3vv3BVRYFOmWJUsOgzqlSR!J!*zjS`%A^09G{Az7w^8J9c8nJ@mX~MNaJ8fWdex93 zE8-9Rj~FoyuSAehVTDDGZ)+NxU`Z=l&8bfs#Hdd_MH6;PIYO5I3T5&7RO`IINigMr zcP&8$>#tml_k>(8@V;N-g_d_9)u{wD${rxrhm6j?5U%e^^|hA*SD%&32KCka9xIu1 zinW0zgu1IIN?8}`XPgZ$TeYCki(ak&PyJkpD|^RZ3O4b{Mng5-MS1`{8mhBQZ=<{d z(_%x$aMhnenu9Xd`tb8Fb)zv>F9!;xq0W`EhY}7(udGq+{Cu#_iPew?r&s^x)R&8O zSPOd7VUUVOz&gg8 z&*wBEN&Q-mBu%mWG=-nzPa$ofQLnx+PRM9A@O*GSf~)l&y}13pL+??dJD_dofa!Yn zyW~3%X?=7|6MgZtsl*+G;UKT(9(cF$N@9kG=f1Euw^L5psW*3;uPaXWf~DCG#2LKS zsRn`+-uR|UXus-VkAS8C#{W6**PLC(qoj;RaTuE~bli?aHTob@d@#Lq72QEm zFSnO_qE4ey7KBt_ylTbOHLQlhm`fhNf;Nn)r^>jjLmX-%MBjqw~xSLIFBkeaSkpqSKW{8jOn z*bJuc`iUgDd*8?ajP?16e(zk17L{mRz{%~+RSk~kq7LU{{AI@1(g}x_+>lExdOeWq z5c-r=sQ5^$s8J=mb^1Bxh>+!XPEhkc%kCX*(Qp9y{rK6qKORu;EnQW+UUW7(=LtqJM}YsGDncyj35k+NUOp2dO~z?8+j62Lv%*1Drf=yauT8w+_zR-Azni%i%A z+S5EffMcT)lpr(;D!RiKkBsqTjID&Iq$pR2Z=~JZWGLVPt6@(YeeW1MEOt>cT;g!0 z2K~X3>Vv__8W^L|xKiTt|MdVr+xe{>WY4tD=}BOagir(W3L7#Qt#Jf}@6juX zF`o*&A;8uWBO`|1`dlOn=-=#TQd7$&!{GSPxvW@7io)m?p2=%tAW6cC1v5>w1s6vK z*=R*q{GngX*9gfxB<|GH(cEJWJckCN4%)6uJub9R=LAZPSQ{}8fKqH>DLoKs4b0Mi zSBgF;LlQK_jA|Yo<|HR(D2yW4a*UG9fYCNP2^mrYVMxB{I|v6wPweG}&A1oQ>!upC z&^l%Vo6hL1I!P#yhg#W)I|9~NA+lJnnBbN(VGCYbq)4eCbTTj%a=ws7(*Yho?i9a} zEZU(AejR{8nni{skiR9eo`4_RB2CYGvV@j!!-AO`9hpLaWC7Tl%9VIzOzlSF4ik6+ z9hEhtQPih~G%=oxLKjB#Y3syU;f&wpu61^b70%7_#Qf1{>Q(H|(iy4vaDbkvHLRsO zOE4xD9))(SHM~V^6ZT8^#h6B(AC6)DA*-g@ncHv+vyMf)l_M6nolhfvl4IMvi=rFXm^eEe zUXeJHpN=L)T>N*YTl9Q+IlU+AY*~mqoJHfW{w((!b z-my*XIkPZ)VBI$GS7wZ4!rN^q{bS~jm}mx=Z7MVt<>ZcJ(8`}@qgd^P892^tp-3Za zbU49UqoTSNE}FWy;+7`K;&`UjW2R)?xOV40Z!^Q%8RcRTYG*gU2S#7=lkX|6xLuiT; zV*8!33=o|ZbQ=jb5^$qzIsX$w=qM@0s~Ad2NlWa)0zD~n|6P(won9*hB+HbL6lB{< zlr>KpUDjnd`Y2KhUCBNiiW^(bXP41~)mW`mSOO1V9JNx{U3^Ewy<%WsY{v9P{Zl5A zU^2dKUK7b+R2fN6K2umHDx1iLp-aM*(qi{~GBn7eg21@3#71r%I+OkkjV2m9k-U&M zRwF{1+_Ffdi+~Kr+f*Y=1HxdK#ux6kPI6Om-pcW#JQ`hufcxWIah_v!AayV-46^!4 zle~i~^E^cli-Zm-Fb_~09E=K>+N#%@!4l*i+l& zDPMrW?hXT~QIND)xY~0V5I4HqR1mq=H|m4d4KF^sW}S=eD68eUk0k-vosn-(M>iED zYQ7%b;=X{+xN#nXguA(QhG#fYg%cB1$c3SVg%Jix^o{AFRi3i!07nbnR-w6<#6n=K z`Jpg#Iqpa}s;nXfYu^&dQOVbHtIX&H1O9Gb7|s)ln?dUh zGK%ES2e2{?E5mge8`w~L)J_jfFSRrEy5W?LC_Jp6n>oaQ*@5WU&w-!2!ok%9Nxk-iWC)9ZTbWYgQlL<#n#qx~_ z*ge{KM7a3`%33g~dmR_p;rq;^Mp;-3W+vllZZ=7s$xPj1C{!MHwLz&z32XR;EmIyS zEQSgcl?>UNjnQ=%(#J(syT+~vMGS>?)h6awgO>D}E25S}2{$#W2DZk@R$WyjH@U%n zDYg1_$R7@%O>|Ibm0+4{Jf(D|Fkdd1K97MrTutOW8rHmg(u%A(PI@0=0LgKSYb}m5 zYz3J?+Z&y3+*AZNRG2J+;%SQ=sWj~|6p^EMCL3-^!mW(D2&-T#tO#n#>){$_#96~R zbnL+ldcF{&58G1yQX@?q~R|QR^M(*)wp(uB|>2|v7(=mk>p|PGv5d}(E+@ypWb;yZ} zq+tt?CS~4-msy&hCe;FZrzXN1eSlI)=2SF1oK~X*c!)5{w$zqZrcuGLqL5lX2n?>2 z$4Ju{4tKWX%QIu!<6!MB9jR!k#OXkyVAN|Nj1`+IX{`5su_SOl5uz-f#BgsCZ^eMm z5$b~TE$W62i|d)IHPJ6U&w7M5DdA2Vt9>R?Hj7NL&I1B^VGg3N%5x z2sLO9*dCcctB0?=F;h=Zz}R7Un20+lVl>hxC>|dZTQFE7V$%eDybo4@MHzjN{g1H$ zsR`(FGh|DP^NcgiMP<%8BgVC~&>@8aq-yUq5zil(PQx|%Rbt*F?!&OWx5tEoH$!l3 zVRNyKTjYFSy?Rygh{xi|(KqD+bEL%Ujb%paY1FKx`A2*rpB%|_w8l1hz%ob?zNaz$ zCWJSCPJGLHDqA)h+A!iNjSSr6Dpa`3{^M2Mr+3LMj}3s&)GE;(LfPuR22jT(dKQi)zN6d(*{($rI~j%zV&|l{N&w zd7XsTMD!G7Hsj@}e#s%saJak<_OPv?;C8{ ze-^ix1y68PuDocJTZcJUOs|@%$+GYSGyllUK$ZFP9+{R~CgU~neIFYdIBqPE#;Qeh zx@cSiS1%uRWBiu+c716;_KileypX%($l+eO{bX}XRC(pcf{^;0?ljLk334`WQ@v$eeC9~w5cZOQwud5gJ%M)G`gZib`xE?FOipN*~ilsr~oek;v+bMR<*BD2)GxEaPr zE;Fl>oD8J#^pbH;4S;U{^Z&J{HL?~e&^~3+rR$!PbV%s=dae@yZ6a! zzVP1QuU6dq^uAxs{L#i0e|^RSA9$d(`x|3F{>YC%_E+EfKV#phd}Lqy4LqxV`uvaV zy=wW_9(Zee-^%OXvmm?g@h@(lSUu;m-QV8#%stO++Bf&B@7eVIcea=Q{d@L3e%ack z6D#fYrnJh%=dopf$O*Z`qjBJe&y)txwjv^`0Q2pKJ%6hS1){b z&&U&>I_uTvA9M7+^?y9|zwWO6!Gnc;XD#^ko>#wh-!c0Zz4vWTp8JDueP+eJw=TQt z9s54~&E?mBV{XYSo}*;x}u zZz@>jY|06&7$&Y_~@6T4e@~2PseEm!ysIz1?gwXmHQ4ut2Ort@;m0R-U-^T(?mzvR&z$?UKiYl&5BA;q z_}<6g|Bq|mwdu~2zP0hzlh&U0D|6fT-g->+q?7*i{lVsf%$fWzm)-uOi(h;6-_E=A zva43Td*Uts^0hlQSN_M&%Q?&Q9V<3nzv=TQUHPNG82j0E&u;qW5ob*N)-nHe%iQ7{ zo1+)~*|XO_d*!PyU3}KNzV*R5)uYbZw6FKNuWh#OuWo&8dErud?Z$6CxNq)zO6|4Z z+jRe`@3w#Z-FMx3<98Qd^ON7aF8Sc5P4D=P-R;Gj{^Hr2|L#!B#ONkjPMTqU1V)Tr zxBoz|&jo9D`dy!I$nc%mQ1{YnI#yfE<2?WCXTR+ZmdeuGcPjTHQN$kAHunWP92v4% zN1oh0&y4TB6#diw!n04+M5kQY_ZX*cP^i3NL^xTH)6X)Q8dy0cg^jNp=lm-sa2qye zPw&$Wz>w$9!~oy!J(OdQ=tbiovO9NQpeBcfP&G+*BMtcjQ#RkGv|U=JPbDmZ|m3nZN>)mW}A%f2;=BW1I3u=aKBa z{k?iB%Atk_y-d zn}J^0vxnWb9hqoc|8`wB!T7t|9l`;Q02Kg9UQc!sIZ1S!s7$J|G*p>r{ZGxZ zJHEv(d--O&Z*A5W(Y@mtw(n=Ll{+(E#3CgfCrr7>L`#j2Kfbel;j`Mu1$lDTV6k|N zjuT{}<7CfQBvhHO`{Fsk>3(eC-!GGmZ7&mc@cYx9IF73$lkxHXw%THhcm*;(zHwv! z3hi@;8d8~LfK(>N9FU1IFwL((XKhy|8P#3Kmfwj?W;2=os?w*r3;uH+;yw4Kx@)cK zE@a|J#Q+=V{hu9~?AKjYIcsj8svx;D1luDFr$A)hd7n&j-EncJXyuCmy-hOew zL^4p-`>Qm(lu`q%E!CZ`@oBn0`;c(qQ$yZXvCtrXK4pGP+$|>JNf}?8OL6$T5oNo$ zyF%hLX~$Ev1Y${27xgu|wq6luZ?Ct|L;>^A?Aq_+h18@fy=F^=!A*dBaeLJPN;-m~VKOb8fyf* z8QFrro!Rl}22Z@&yg6?1O|={RT1@(TFFa@G&e>UMowUTT$m6Mud62sM#)#cfeFFSe`;LytTaW>{G%f?1XlF%C1cH4Ex2)10-(haaEdX_!j{!dfdUM3qia?jA->DP{$^Uy=uj&sjF^*Q6@!H@6Lb{2L1 z&txL*Jp8>!v3+mm4MbJLFncO9J$DJ#V)oY`Y3}mKgWLgdE?;MyF#4I}-_C`T&HHnd%OPs#*X8e7~T1`l+Yl z+b%yNEhBpJ^0OhIGPp>NqbK+ExfLU??CblkW1I-%#Og{|=j-k`0f~-?D%y%k=bZ6e zE*&TA&tQ--PM#WX>hRWaqR%gj^i;liz*?iPFC#Seu)#s&q%BMlsqXsBef##PhUi5h zRO#qQgmJ>xHk!x;ShXs9s>aXSS*x9?Ba@G-Ow^W|C@f}GCc$<;PUxQh@&rNdfd0=D z$HALw)zS$SHy><8}6oSrWXgv_qt`eIDP?~ z{*EU|X{&eLF1~I!FrKpdGOTu!>`EOl|}wE1!$?&9mx+r>ks!wYC`fR~5eKNg$3 zC(?DiE>+k_fy?KyU7l-REPsamMmg3dHp$DPty%K1ju_rxlR}zaBFn}9 zxP+zxp-!|_V*Qm=1->Kdf7%vjNTnQq#u^eeEMZlz2erkAUam`u`$b@j4$7mGfrnsD z*SFsdU|eX#l7HBgt%NqDK`M#r{ye^XDDf@CB#|bAhY5?_R>T;ivE&)v&nRL{4IH?d zF=KT;vg~@{oCsnv#8J`+D-N((&Bf}&zi5U6JZV|-8vmb)$A}+Xnma8+IKZz>wVIQV zhW$%?bv>l`HBT3Oo^Bv@sq+_x88FO<`+0b@z5XwW3@&R8=n5PJD}52K&3&rA80F<| zVkGqFAlT{K^)PLo)^J}_ukiFAcrXcjqk&;|b14p98#~>UFm0l{cmHxfQ|+fG$0w-P(sV!{7`rP=QWnxJ>|#@$+xe3A|!f z9}lD(E0WfX?J_TstujFF0lF#71uVZ7<@6@r(RosEVDGToEem$x*V>EP9a6qJr!j#< zT4yIGIXu|sI1(Pzs0yVNhhnq*9Sl(?plM3Wp@4%(`M2nsKFauO2}P}}2b^EbOyO(N zKbuh2#BZ9nGa)FQ4WE@L{EqSQ1iH)xMU4QOl%Dh(8Iro{DHo4rVB-vI*sSS>ht1Bx zNxY64$sU7f5L_rJ3E?eN7_Z_Sm_)4dTjS!h`Eoi1v1dpmE2HEhWJm)MSMn_Lf)C;k z$BFSqK2TQo~WczmQgTi^i(ZYc9CJrrf8hs9YbOlu3KwX4eSq20;Il#h<% z*$WAM|H8PjvUQHv`WU#Om!7ko=SQyqwt;p4rEP@;R--6&=dUjS)2 zvCWV`zc0Z4_oNDYwcjon(>X&G3%x!?C!8igtFvalgsZkvx*<1In20JUvCF5yNHbrN zAF3GLgiEc1`N;)AX&6?NKtfDdpMe2RSyv>BMO@f0=tm<_LsfQ6qV}RDyZZ=7#1|Zk zCAK~CD1>K;vDGPORDwD}^g7MuBeupgokYeNdP3dN6X0oNICl%jYNc6|7)&79?j;dq zXp0);B`~e&E^92KhB`c0go7vX-J=uti#ee$9@^B^K%id7u;Vo=i8Wm@` zdoD`OF&6AVkPR#)*x5*Z1Hn4{w;7C2F;(qhoHk+hjM0(80@#T&q(|(>WLv*To!CIN zSCA~4?x#eRj-*);Jgq88XxaHQG+>|t>@>k(3L`;3+g57{X<`k#a!A6KF$@L@!K5Y6 zkXMlj7Av5l#Z&@^Lg{hfaiOK%FE>EiK@c49M=Aj(Th&WY64VSdu<0ya5l)j8q)=byHI7ogFlA*;3XgZ&>Zxq=&;#`Mi z^!Hj6F(#^((alj>q;W=y?g^YGm(k&9B*+u3h&+_^N~`(}%`xO55Yjs#Ss^e%#`vvz zKKLKK(8vxP@O5MMyBUL*pE}y8CLTl6m=C2w^I=us=zW%0HXdU4p`?;=j7%t|lN0Z6 zlFS;JU#uBv=cCfgd`;LnsxO=t*Y!&)?z{2X%mOGQYjW1s>9J*b2)k-0wO(cU`nZ91 zWPaYoM+7Y-RppVuAWelxNb1qoD|N9`^Q_gFmQmg+6Q4hJHP;y%@iL-Y;n*^`aUMsXLO4|%G6=vN zKqKTUWck=OeP>1*{b8vP@RrIDYh-bDGIVnSXI-tL^ZZzmRwl*r*x7My8-;ttmit*K zotPClIjq^KI62P7Cm;8TBZE`Qu%i*1F4!WAP)<95v4mz+E$|{r&q;L|RwxC}* z8p{*hFEP$BBuh3#w&BoB%tY}GB4xJJCxtkit0-%X?;0z@nC~(eN=uNz%u*uo)IjNG z24xrNwsj+Ej4fcAj+r+)(qCq<2jO%0ZD|=5(Tjn_u`!&A>t#XP?G)66V~Z|QmE!7A z$e0SVaa(ACFJtkke z37Ma^)S=Z%@l8qcx}-lISaNN=+P$TTCX&%t%$yj+7s+sOGJbU_G+&3iXU9KeiDAnI zrT*weSXL+<(L9OVKwx-#TpljxY)F4*98RAPXB%ThM^miJ)%)uM7T>4Pmi2x!*svyO zGRv1_vtcsC7E7FSjFZG9cPD3uN!05FDz3p851Gkg*9a#|LukE{L*ip9a#Te?Z}e(V zL%%S1Q490oeoXs)`#t-U@bFUJ$jNv#b(rp`)8vr4j!!b6;H}6gFUG5QqfyOA1SG?I z`Z|jvRFVxMd{#@67+u1~Tn=2!N<^3l@>3uH4cV)S7)eG)(RuwA!v#tv5xusb!vl2# zIW<$OVpCYnPw_9jXtjY-+aEDuGYleBi{>JK5C#2Fp(eU2Hi|7U{#Yy)3FI-FFECs@ zSYm3LQ$immtuDhF#wP(9SN+sLCt+0o0-$P7)&ajJ4`oaZ z=NR9X==enD-ypt?ZL~v@amDyH!***r8{O0tx8X6M14C?zp*XO0&`se7NanfaaBtmM zV_jX=ODU`m6DRe+n&OFcX=W*BT7r3qR7#DIAzQ-R)QO_hpzo3ww7T*w@v$2W_Na~{ zni~>gpBI-*kGzJehn!56SR0d%!%QFuI-Gt^eU-E9r>L-AsmtGmQ@`(miiC@;S;cy4 zaHztHa%{40Mj_+jo*Ki#*B8qB5pc;#t2kDQdup6bUkhltlJZLd<7+kae}2X=#nbsX zFARN83aQf)MWX(H540;D1V`}JZ-0~_0X;ZoB5>L?TE_+O^HBb~i4X`Mby2rp;S=+3 zAsMFDE|$4cq_QR5jJl=)xah*cGSlEeU;7b^$ME~50+hLw3a9--e+E@zrji`Ac3Xw- zMZ-~Z_P5Gf+N@}(1)N3(EW?8}0`PN0@`7E!bg&k6VeY#(NQ`1S00yuA(&VT!>^e1h zb+^BTao*zoscgqeX}B2pFU0XSHiUNIg>@;;wCI@z8|$nqnom@@YtKGJmJi&Aj&@CO~@ zUShMKgZ&o^s6_Zn!b%t|UR((mhx2V|yW}nO#*5d7y(~=?UVJSJ{<#cB{e>Y1qAdZAlWguWLQJW$>lLt4=wnjN&w_ zExq;^z^OOY{1OYqW7dl3uL}oQ*Uh(jwY`GRCD_$=^=hof#I7Ez^8~pXb)Z`kx87-U zN$Eo*|G_pNgz@F@8roY{L^kpZqo}Z+EmbB-ZXQP4qJf>RyIun1Zu55qs!^i`q^Xp} z>Ks30>4_!UoaA{L0l)|kFP^?M|I2q(0%;!XD@$OYdp(0=Jh{DY^qDpd_N2W8`i@Y8 zbp_^fRM@D+614!X?ZgfcZP$Ymd@li|Vl(^@1vmfPK}kReIo{e_M%d8$P4 z010PD>zhjTd%4gLHJ{b>KdE5VHk+!+Sz;mWrIQDemkkV0^U7soDwT&%S^PWKEP8d{ zrt3@F+h^Q=&5xGHix^dZl_NB-+pqAj={&e z*OgKKdkf>W>sODaI0tIi*r>4jy)U5G_m@sRNaY|i_pS;72>Z|1A+b-xvAO55Ds)jeG2?kA3y? z-F@sYil|`l<;JP_zV-R(SX)}`_Jqy(>f-RoW`-{(G;w&knZmYtt_M%$wKUfwo8 zmzvP}@I!GPPmnYD^VN-x5)A|1;an2G!6zThpMQa-^I(7O(tL%)Aext+d%`&;Y4~GlnQmD<4@ETJ z$@$l7+3p!CQA%58xO1k;aF^CU@8J1FS}u2TN?V~r%l>mty7hGOQP1m@o}^P>x85#q zx^DDw#TNvHE?vJ5b^jrlG+HdMi^MqA8S$OWhrky^yeoHlCo{H4RuZl0IMO|HL@v0~ z)HS>#b;HN*H0w3|KRe+D`D4nxrE_-4Pwp%!V)umG>jjJE%g~|dr4IUElMb!EiCFt2DQ~vT`*DC z_cFNE=i&(MfiN{j5Te9bTC52hG_3wK%oSQlF`5X=ZD_@YRam6@1u$s=_3{#Fez-_N z%fs5V1x&mPo@E~u4_89X?M=MH44$&)R|xez*|4vmuBaqDTcdHUTtS3^u@<*3Dd=3D zH3E)|U5DT3oAipo#}?xx@cE34l8pz!QcTN{oaP{w28HBKV~nM0>w~T)!be(`( zmLUmDH~ccXGagrZeIc}C2Sq|gN+-0Z*d*~OT&|(ah3qQPp|5wG|A4F&=6fWR`<|AU=H9_ z<}1fKt+Dvhu)5lS&RD=rn;-B-6#9bWe45W|G;zpdfrIC8@%jNin%m8tX3*RjM)Dv_P}6GUMv-A)u=%v7 zx@m?1YvTqqLM8^aWChE_HV|w?jM3CIjob(Y28@Z~ICk?9TT%QBiHYNUp$6kToShii zah$AUKz8zWiQ~oc3Q&Tv`u)$nJpyO5zm3P)_uKb=uV(tz*Qryd&Z#<8w{Csp$*jOz zK1SQqtU7`=AE7C9#=)f=8f~X^rxobc{qNGO6vnt1fW^4QNp?sg(U47DrzV0r073^*@(4CfLC2@ zy^^A!x-~;!1hYg`Pbw8_20-F8zUHfPHb0EF-cpj}1U8GmEiL_G3uGMZie-z2E!ht_ z4D-C%VXPEkqqmM0!AbC=c7Eu4fqfo*9n4f{pRBg$yk6l+EO6W>pQ|h8fYG*~rATcF98cvN?c!;KqBnUYNz`+I9UnPJnR|xPq z@lW^=o>b#72-==j5V+oJ11F)kLv{8Z4tbIX4M=vH(1M{UGa}W8M=2&bz5bgdpFvy_ zyhE7Q4A`d~+!nAlxMB^6V6PLoE!WsJBPEf?a(FUMCgC>-nHY??71kqw2=+pg1!)=O znDx5$A%MB$6MzGlkQ9p`JJ3QAQz}9LWlLw=N~{oPtnDlTG`fsW5`qI@U5eqHx*aK# z5QHqHUOf)MDu5EYKm$5QQjaclgUx(%)>J2@>}Ul@-kBX54KW_I5x9)^32aCZ(F&uE zob{lo)Oinqp5y#U${4MaR^;xe& z%8*qyl@_(i3#KefP+QpKX(E>8SnCjMIFPZr(uUB58lNWY;@}8DdS4OL162}Zr8i}L z@Sx_>h(gsPm>Str4{gE5rF2D_-6i5EAeC-?aEZtkyrCIn0kyY^hy|aLTj?&QMB3g% z2Ln)1Vx4udG|b`|lOfsQmjl)B10jigL+p0cRfbc2z2sO;l#^aS$~AIAVYWPZ1glu7 z7k(RG_l)C)#02I4%ZCGRb-L9vu3!kl4zm}u#|;#$(UEefN;#;TlTTx4e^$T%lO z()>&&vQ(d03QlgOEj{o9ZiTbd0M=*k1~=3gmM~kffOx=_&n-CN{47sZ+4OCer;{12 ztsd^&jn}Z~Q^%rpqd|?Zbtc#+SYZtU-|A&$I|nP{!CS`eozS$bMV$Z%T!==%>+L<@ z95NCWOt9Im^p%rVa*efwGZy@$WbC{Im8dx=t^#DCW}QSX2R4MpsG81WR2~*zgD{D= z#55O$HoiGy<(}SUEEY3v%?Q~Cb+f}oik7+>k~41fuCaAicMnNjq6Z1lj0;*jo%l8n zy(gQz8h~?>=YJq}fyTpi5B^!sq6!s5h}OZClI%pU6E&Vi#bH_6=5b=E3QGJ!P1sFHNi(pG1*DAaz1g`o>*|s{t*88v@GMZT2}>}sx@l-4SE@uDkA1&t ziOjA3r2lJp*T{)BSQ6Pk-yvbcpEFxNUmTT%kwnc=vqR%T#}z3#u6epJJ_@p8*G zX-T!53%@c-o0N^!hr{S^HdmX=dY`Nh6{|hewO(ip*FIU&o&eTUk!EIi2F}sHNZiK# z=C!lDsCZsk8+tQ~uAc+|nS=v<;gA%LJ5_?vFRq2G_{vI#poJQv;%7P`59{*cVZi;~ zn0SZrbwlmSk!!ALJ;X$G_}|?Dyw6M1dFk;~6vjEF$4t$;9&HCsCO7(P_vdiTAf8|p z;Nj8BeH^#>AY!a%k3vxKf#YcYdn5!`_@=gM?_)?&h(_;sbQbR_MRMQnysk!Mlq+Gg zT5y~)JE#L1J14IG2h8tSwo*yS##w3XvQ6Vg-L%8q&3K$aS*vHfw+@%BhzT!kPl$oZ^7QEX#e|y6&>Fx6aqJ$C>mY9eu0rT91@|z1;ir&&iiLp$z+#= zPFouTF2`LY8s&UI`*OIB-DON)=o(SLjSY-p-AHCQ6PIF_X(T&5dJ7{y5ZjD6G{hx% zZw+BlJSbt^r@Zo(Tn#wUz*K*h%uhfG1`-4_;w(*08bCHXFyG|Bz z%yne5+U+x35o1=EtZZ7<3I=7cNIx6bM*WQ>XF<^8ipEYBVK6J!ZH1YNn&-)3%C1z+Y(DjX}Vc9isnwOZ0xaAQQB-F?{-DSY}#QBS*Z2WxFw<5gb)9= z#gMiq;qRX&`xL;E+!i(O!5@4I6~m_-+PT5gt?mF>}~vrRdEm)0`s zeeBCczBHp2iU`bvAIXIcDPEjt<3%#GADZiQA)s`3RebiNrgu1gM>6IiW&y@fRIT?m zjCgq+m7y~AmRdyxi;NRd=0X^fAC>_Z!jjM&8$p;0Cx>du4VuK;5jP3~Z9k;ZfJAOM zVt$S$ccui^ojzJY)|5bkGCXv$E_C!pp)9-D=*xASWcE@(k5gp`1NZvErK1db*-E%d zn^Wk1jzhj&b;x+Kaw}5Wgy245S~`k~IVYdyvNcOtxUhiI#V#iWUgNY-=1G-Uk-3L* zh*z)O3-U}E0|X3~Z4$gNQNO)R5!a>^X4rYcgxXtWXiWmCD-L6;eo)88Iy2#SYD!3MCwHj*^nB8yX&fDuxoFmNpU{{TE}?2!DHp;_fdV_B7TU=6g2xt0IW|6dwn*$Bog`<@uUo%fTBD9LBv98- zP_FT82z^seQ~GQ`*9K2R>b)Jki>;${{WJhWUUxHAXu&ougZ54Jpmzp5cvo{fo=$uY z+u3E4{wnCXJ05MuVfmz*l&MGI3hDK=8GRw1>EjZ$(uHVg+75UwVkA&HksV*2uV_)! zi{e0HBi36x3m%xH97zny7h^2^4A|eN{9Bl@E(paqnRV0%xuhD~z7b1aTqzRCO2n;O zlbQloGqlv-7!y8d&Gs? zjabiC;L{p3lj^mxoj6a>jG-YBZ7xXYjZAB)qi)NLmGvT%Gb33)5_;63dH zYR2q+Wws6Ep7;fu5H`@tqkL#X-2iJLVl+~n$>;Yo`KlIWs;G`3eUC>^B>AAPxH`$i z8D7j_x!)e*!1iI=t7$b7%lpP{uDXNv{U<4T2s8apyo1TpIJLaxkx`cpu^E+;5vTuC zbk&Thp$20hOwCELCBoubi_G>p9MK@ckR#w)hlQaYPp5&79qvh(7C01VNuj||L>zdR zp_&sCbOfX7l&mPRYON}ut(aa6`blKK%Rd|BfRju8r!Thyc1H2=Q+%G^!VSo^Xhtgf zIvAHx5@hO>UL+C7#yEf4N;>r*C;&*cQiY-%EAm-X0vl-lNV0@&GBjKu9Ap83F$VoB zI^w^kDty$xr6Z1@E|<3BaK{j-$5bP#UL)XF~sI#L$^HVUg=L!;_QhIzv;e z_UZ>yWk`RB@}018wWr32>1QWL5X)86|KD+0b@%c@iBnwsU=}fCjpo z37?4Fx1UCJO)?6WcD#&NSo?4--aebFMl-0*J5Uu_*(lE2d!O^BuWw{6tuKm(REO!t z#X;qdmFS`aQ; z-AYuRZVLX|y-PXo!iFPqdQ_+uC!10Gw#qR zPlRiO3%@H_dJU1Q>2P3m@g!G+<#rW899_vA(vHh-AMJIYjpLdv{JcyOW*q(M3Ax^! zE*QMHH~4cCGkthwYc}pFQfq@htF5?bwh?9IZ-yrPh}nk|-+IFjfAqJH z9vaP<#gXg2@q|Jd^n`(E(7zxLaot2btD@gMPb-tqCve{jS5uIn88 z^7N|rZ#d)T|MHRS1ts}XW_syy+tw`#r+(#+k9lU@TaT}P>hMdy_xcOI_}hGAdgQ;} z^ztM3zU9uB{^pryKC$=X-+9zU%ipT_z>MPIOy!hIO-*w>8Z+-Ic;op7qzHN_Q z{D*~gZ+h46zklkB&-}w5|H0?JfAfdeJsLK1_s~v``q8p@S{?%(h?o+>ft#@xLCm`Qhh2`1!{k+WW#YSN+p(e|Xp7JCFLaHwOJL zzyIZRH_DAqefUE++;s5dEz@89yTV(q{^3jG6VH4o|Mrc~z2&UW9eDpmPk#9MKlt#= z<5%1?e$tN~{m?t#ar3V{@X(^i?=6<@Dt+L~s|8YSAA(2`8L}UklZuf__ZF~Rp z)j#*#4^BCJcx=NzZQXWw+u7r5PW{EFe(?PFrl+4d<*m~{`odY4hi821gyTP+U3Ap; zhu*qv+qw^LxaoTrue`mu_LS9EU$?pGk9y-nC$0TJu6Wr=r}XeXFBeFE=Udf?x?9#j(&d8vURUpytnmxpE%*O3~XQb z@b`c8y+8T;zBl~Fv#)z;&o!G~dCBFLU%774y@O9Za^)U#>2rVbPgnlg7yjdqe)A7I zzhC(3ai3qm=#hVTZt9cI9sd5G|I%+hbJn^WK9bq7V<_u=_Q~Uqf8w&juT@vQ_vEuL z>i?xP7k}fMTQ-lsedIsAeE5cQUw+{&hkog+FHJo6!Y_X5#m@ivgx&yV{L|@&FWvBllWyMmhil*b{eQmq7mok>@$X)_@jY+-+)H0S`=(t> z+kf!w@4frx!FO-?$HO18@BQ#|kNsozyA7FYU;VjuQlexKQI=LNS`tAKK zySTIU1n-#@<_zD<4$xg3NN*0{G?^H6I8Df^{o zq@iPhskwfgT}}?{-Lq%BbBHr!eT&p%iebl7tM;gka-oCjyu!y~H2BM>(arwG97jX5 z;k`c$8H%0JKbGEGK*tTlDL;_R7`F>ZKWU+*)7iO`({Q2 z&ab>&y`Et~J`L~V{O|s;WOUu(IHdtSOZN?&!F}}GFYR8nL0=MIOhGs$xR2Ask5V11 z+Hi`)ZKpeX_T+N8yc=h%JY_|uolJL*zv`NoZib5fJCznD;s!Dd+ZJl(=n%JdJZ0_H03 zP?-elu9_Pg+p}kH=OCx=wpu_^8e}4RW;SMCCOD^b@F2(jD!IZZI_Yq9G;_w3^c+mj z@{V~2KjjBwXQZ(_bE65x%7@H>{PX?e15YdOj+l9wk&bLJw_ zMNg+P*`wzTUpl4*Azx&21=ly|>DF^$|D99FecA{u=xs;a|^y?iX9a@P}uJ=pyKh&!3 z*)!GG=^JTua>#@-Ovz!D$(#3Z6Go@Q9VDdTw0R6i*(de3*=)CII-?rK#bvaU{=6bq zKVJk~|M*mAUMB5!t#--}#?RQP?L;o+ZW5&%ocf3Bp@#;ZezlQMo&*V%B)8%EJ#0AX zY&f)4g8u&L@pI=o=XA~?N%Zt`p8ap2&Z$iH;?{GcEzNstB9qP;oC2Rg6r8WlEkub- zL^fd$L?4l^$<=j8gSspb8hhm!CfjyhNNc4fj**qk+<%4A<# zbLqDq}n z=4CQIe#vWfm-qyG-^&|bqq}nb*N*m&%|+)VGFgsHr2h>xZ)9?5a<2UmnH+UzMb1Db zk|7#1rDCC-P`s^)?m{MhTHBDelg`caG653BwLD3)zy}SM5omJ9hpLkF-IPJT)9?~+ z_#z`+TSL^ZcZ#HUh?IG?V3sOh<~*OSt^Sqx`Mk~Pb=(OOg&Y+u!&-$yy@SNQdIw2a z@e^O>E|E>-GswLThoOP?B1?!X5|-qp%jDFrxPS#m8n0FL$gHjX+GG$oU8B+0e=vWgi=)=MBq>1=I>Q0$xt(hWunv=`eK5= zIrv5LFY7%h^gNVt=!;rL;udB`eIgUo&!i%VNA=DT%qXKtOq|{!g3TKqW{cD{{>Ysp z*GYOO$#ujd19LqGpJE?>z1;KbItj0LhUgt38-XL;(EJ@F;8j1fHF_sWWb{rG^)uPN zf;&;pEW&#YD~7%Ed2v5UsCf|Xm%gzZuX$eANZ`3AMei%oLpEN$V?}A5_baXVIo)dJ z%x=1~R)^ueH&SNuBcJA(M@2^)%C58wZHYZ~ByY3~85vp*~zkK)u;XUeS4w16_Y(}-pG&;(Q2N60f(a|`!^7A~e(9wtLFa;PN zUom!$x=|fEO8OuCX>`{luzhE6MOiYNk%abK%4m)BozCY!j}lVD_~5u_lSx5=Nq6EiNj2%9kP|`z>ekV7t{Ka2L{y?H^G#va>;ljDfgr$9kbU;k|tT^@^Yxt_jL6j z0ZDF6&4CV6i3pCrY7TuhrKckynr6a{E*t?1Hk}TgDJDgbxKj5R9fRUeWYX!l1Ymsp z`mu2|t7`s#n@kk*oSZSPGEsS}d96$&>915Kxt_QML?V+;B9rCIGcS^@8y!D*P*Vy$ zS56pAVN@osfV%DlgY^|iAz`)dt zV+T8zDP`Qb^_@gq^@0C!Oj0<=e09ocsKkwn7YJgWO;&*H`;hCS%i68Ooft6SU1w zw3913?E?qp?HjJ&+6V2%^i&U|?WDt-NFozWr%2PM%1mfydKcQu&sSvm)A{==PxKtT zqOaRd6f}`Z>Og#n(RLC$a*)1(Y7Z`Q%WsWz985b=-NMyHymK9CCkYN(%+D;7N@e_r z?%I>;E;36D+AGp}i%h1E$fPqiD&O1lz5i)D+1t@k+d*Vf0U7r`b!9RQuX_$oP3=kU zKKcCTi3Fg7O!~ePw^SzF`**#{B-fX=6TTpf_aIFm85!kdLn0GxCw-kP(6fx2Ydmf^lC&6#!T33qiMErx0{)EcBw6ia-2~Tv_uC@8izVN;j^X z7F^{u8uzLnQ2gwfbbM_N7pL&yU#7H&-TjEV=Q0BB2n|6O4w^MQ{PnK?OI^E*hjbSu zv{2>*j&y2E7hb;BrTJ@JxF6=A1AKp)`qRChK_Iut0?lWvChVDCE+{_kZdB~7#YYpVy7mPTZE;tTa@X!F3jB!q`6;&<935axBzN-{p0hc$+3rWO&} z6xVd^ntsZ)Pwsb8b`^j;Kg<&mO|dQUVmd0<{aeZWipXXHBIALv{G2N@jjj}y`}hni z`HB4`YdbM6n`eAvB3s^(04DI>I}(A#iL+%&MiOVq6u&11+q9iYT`uv5X+Ff%5`S_% zo`=woG$cr#*hGe`a7oEhr1+h8p-G|)5kIZ5|9S$=u$mxsU4SkLKM8IUFRNIbspx8( z9;0)7CO86>0%-l~n%V$g=&W^klQ^4{*cvONJ(;ougC(k~F|z!FJ#v*>;a14&q##F? zwV>~ko~$0*(32MyStLv_Jsg*bD{y&R77Gc+#z_nuWjTZrm6!9eSppMit^*^1I0-a! z$g~!FMDlutd;w>irT@?fCiztpsRK+}02eUqpmJG0kdmv@7>v`nQsPnsi9>~t(HN_a z|5e7l1~FXV^-&j%c5^=x$GjbXN|KgKVXPPjbu*0vUlo{Mz!RtJOM*u?%|nanaDPc*NoL@xC*86SQ_GR z&znk`Xx_U3+ox$9R+*oR8kVfmN`NNQI{OoOB>N4NAT&r|gE+8oi27-j?<9>34V?mb zQDoR%d0D>JYi*6geCWk#wd)y9ia!eEXphXGVw4S*e>yCzx0Q_zlCtw5Ju(E{LcD45 zn3c0F4NzCBkQZGHi%tb>mH;m$-4{k1J6aV9%m=@rEc5k>rE=bB)0V(8b;nA4ax{+Q zN;bi28WLHNFC`kPR$8C;XhiB3=S}64ct;+^wsIh(xERmM>p-1>_nto7!|+HvF>d~&PVarhF81U=@1rp- zenbZ|vEMfnaOQHj7-qTkAzTI1>prh?y9*w9?oa?*Fxwlnl@N-$TyirdGE_ndyahZg z@aZGj%y6K>G;HvauUE@x`zAGqxviWhb}|6l%&AI+a3J!9tkPpJ61o5ctXK1(=f37% zo!^?FpcaDKFyEJkX+}|iP@Jzz^Cebtl$01XDmh=M_*I6hXIg+XlPc?bop^ST zc^1-^9d&vZNLLM|HOmZqo>oZOQc%GTts9(B-dhCA_xOXf0$5!$GTAKqNzzS%wxs;z zrVi_Lwzq0&e{mFEXdKZodL$Arqi)N1*o7-*?h(^B7)*25uDZ8VhTB< z3%Ip1FI3CRj%XQBYvJl>&{9-jJbxj_ zc!j1C8dJ!@U%89P|6xBs8FB$274DOEq@y9QlFk;wa61dn4Wd{pTPDQ%?A=!RgjqbH z=iv4>U4yM+HLy3%FCk0Ty5;?>RC_(+s8GV*-f%Er6+G;VT|p+xE$fDzScc>w-TkoV zc>Q8=(po8QhCcd~Y}ClsH^bv%C1+R)e(Ug1Fd{9zZAfK&T$pvF+!2)}tPIB-Yi}qB zf?~Ph5MrzgrU)UN2kq1?p_2?n_2iM7Fc(uD%FIQ10$dunfTyJ{)C5#G&`U6iY=*b1 z$1@L&R2;ecm4Zvc5UXoi@LQcuA8M>Vyl`4ceLrg|4a*HRL?diEV4)7R!knfH7(#h% zqYin9(~<}0i?t(6ocyZGgh>yMlw_qf9*K*y^gZ;?vO{xqq=YK*&PL&6jV3|hh)?KY zX{cfko;<(a16)|tgRL$b7!hgpc4HS}c`~xzQ~Bx?K^H_$zFmreqlsQ%vkBs8xL!FmywA}!hjO&|8IqhgIH|*2 z`f8ay#zj&awVbX(AzT=;YN|~5>mQY-@>ms_5ckL({u1GEVc8UH1ptVq9CCWfBru(Ph|6q^H67oNNkiBCznO?Hsk(mqXK+ zryj`9WXK0{^iic4Wa`-7=Wz^$P6eVFz&O^(5rzqUBdkc+r=`r|cg+TxJ2VecnRoWd z&IuUrS%i;T~~EXZ*;B3_R$IzTx^jsn0`_ z1&ZB>KOWhdNPCwJz(*?x^@I>Un)1nw!gC!|^6InEPM6SMR1=?! zmn+VX2ozJKCe-etCx`|Yxg8|-6qCTk=s4C_szHB6v>AOu@>cfkCP>y1E1JBOb!V1 zE@{BK`YKKpa2By!@3meP`E2~YzHmu^3H57YqQYb!QTqZ<2kVCXNrR@{dPlw$-N@p5+(~FLjDFw6-#X6#WzJG7~xz zajD?EkaVF24HG!Ad3djqmcjfQnUDr9*x&Mq#uDp)F9Yv2kUm5kFAn{wK#W91;lzN! zmY65*W=GHvanKmtGcurS%>(gbSMK!A%*dj;GtD}w!Wv8z+css%mW5$7i2@6xyk5KY zW?qc5jGaycdqBSJylKXh=hBQ!!wLu*`OL%g+R`d;k`1ynva~qd^hEKRgEpzponLSC zh&PD6?P+d`Tgd8I0e2Moqu5i_Vyw9P@!RT#(?$M%wuiOiP|1LrZJc5Fi&PMQx0fQV z`q&*ZFiZNO78=ANtvvbE6CT)Mx!)oi&6z3@N4_WQk$j;=z`~3<#%YD9wu)lST9()s zeD&)FK`gEJ#UVIDak{V|=qu_5y7+V@gn9*6`SrjY3hRYF(uWKMy~uv{T-B+uBaxHc z@WyAvtsau4E99aUh)jHJa1?+q4X>WPv&_+1@)s-TBkBTUk}%d`UO{x4 z0PP5%r5G|9Nxs(O6t2iYo8m1=mO6$a}lU2CI}XhG1}>CB7ty(I#^6bwd-o%}LaRt+*ZxJYIq8+Fj0D!la+mxZI_wfUC^K-{;FckaWEiJer`>TNt`>hUZ6R@da3AgNaF~izeV(;$?tkfx{7&l1@q8(P^5azrP*fEYE)7KN8 z1fjMx>q?9~tmJI)(NjlehGz=^&jhDS==p9rWJv2GI@=jVdcI@-EFqj-AOnA}DOfGF z8lsPx*0}99B%Ms(&~N*OJS^`mNML7qm;YThf-4`wSqJXHFr3MdXl79egJ{9Q$VN+_ zd^Kn<3Xcu5*|<`#A;`@BAnd(>Vzm}!EQ1aC#F%_tf^r=W?+kq)CtJkCgbIdHn`Ef0 zHt1_vDjZ5JGLzH;D`FjWO91n{k?5oXu8=7RUx4nY2`LLS@x!CMIk;?N#Bwuh95*?o zV_0*P0+mpaMgyLEsA^Ee$W|OGW<-OD2$Zo&)1i-sA{$G~vHcoIS$ttS-QtqmR+4k)WQ*b$O+JwryVhpq=qjJ$% zQW2728Q%0miAKzu5`k@sc1cql6L>rlJmGl?fGoW-KeY5S>T*CT(~@wt5)a*@qx1Mp z%?@Z_@and0g+xIP(a~V6(<*5B#RHBA&rjyfd`kTAoJPU;ql>)@!Yh5^3RC<+fa+JH zosdgh-A7-N3GVu)@zxWY$A zTY1;eS~tsiZzE_B8)}cw3xMZQcr^TrQltmc8iAthd5Rh|89A9@4t7 zDYy64orDwcWVS_Vn=|q_C=p-T`UgP=+zF3+`8bDFAUG#2*x8W5HIevp{HQGXxsvVu zXtTDR@3qa%SsS+cf-M_wFIeSVFzIRVIXS&~4|D}o*+F{i85xDZXocJm`F*|i+Gt&D z*Q|8C8zrbboQ+5A#@-9<()`rX^}vLSa_`Kt%hiN!i5PzKQ;NL(+RVtsS0OCHX6#rQ1yYKwK>i=3eJnSI6gsqnDQ*hOgh6t1Sd0_cW*l_T3ubv zZcZ9)`GhE!l|_=V3}o;NGN8M!m{X;0vq+5b2(_t4BeX?lS`c-q@sDL+UpzV7ZDq~v zpDBKAfA*xHU43Ke6EjimZLWnBsY&-TM&-nrfTfEFGO!|1b&(9;vo!82mKb|{oVaAYm1Vv0Mmy>l&^~zC@0B8(TSLyhg{U`IxHlYew1a(5x@(1* z%4lSm3y6E-Y;;fSwCoV?ns+q+=1NvUXZy;lWa!NB_VUS__qq>_M;~7~)E~U= zhT@{~6~)ke@N=uy|H50>uKWF4c095K6>wC2d)BaGV9BB#*^kuCQ9sN!zx$WB-~F`> zoqs%h<=(B={rIW9&wZ`)>G!?;FF!Q>?q_e`@Z8&;d*Pd(ow)Pl|NPC~v8+l@UJpWNK`$fJ)e+Wprj(8nM5g_jQBd&=H*Pi?JTbof`--uwqWS03&! zyfD4{_YWVQzVP6Md;j#>FC6a=@A>}3Bfq$(Z~B$LyZ!W5&aNxo_TFz_{YduZwP*b5 zuf;oig7B7)ee#p{|G~3=`sRr%pV@ZGvgzUP960N_10UY-$f3jUe*0T~bj8TT=imN? zb8fokeVvu({M}!j^UbgQ`4ii|b>+4bd&l1zezn;je|7wm4zQ6m%H!eEqp7&&? zPuuc=n^s=8ZGj?@SEesNdDREMdHJ2&UfIT$#$Wl=^V`1g%HWo-p0M=e$D2h%M{Qlb zedRH$tCxK9lS^;BV%a;*@8)*cB~d(-ZDeWXJ%L$t2O|%2)B|^9zxmg{bNAQw{=(k( zFZ%wEuf67X_MZL2AAjyof93nHyz%Wn-rM`ZA6@_4$=@Em^PP`B^Obl0e6*$au7{Dy zj@yFo_V`@&bMz|~_vy|5`4cxD-f{TQ=ic)Cf4Jhk@4Eek5A3jOM`qrC$9EsT=$Y)zzk1I- zcbH7*KlO6so<~3R#y`FCrFZPUe%tg3FTQ-!2X0vX%;BwvJJ0>&HETZe&Oh0E`iD=t zY5dtY?cH?6DR+MDZzr~$eC49Ei+{TG^zW~E{gOYs`V*i2Z|fE>Tl3>jJ@oA>mtS$$ zH6MQY?5nQ$lmB}AHP8R@*Khjb`+i~itKZ7q@brBfufC`@wEBjBR^9cLYajbBTR-{o zx;L&V>59z-8CMyD55lVPOUE`$cRI~GFTZK;k7W9qj;^;@XKY9{mNPibh#E4*+6P^xq)TaD4Z zb}W{+Qya8wtO=eAR}#x2eSJi7ZvTd_qBkKVheH)m(z9)0GKC{Og#Ei|KAYmt*AYNtST!c&*?IYOknr%7vz_U+}9UNsvd*|k< zvA#a2LnhVgzyM=8(k{$QPrqqu?%TQtB&7(gA;x&FX`1Fx{>@3ObUyF@1P(AbM_Qm68qoq_Pa@3Sfs((-q%Z0%HhKYoo54Vxbm znP{cRPzn2^Q%-3e7*A!=nFDLPedkkvrZQo$P%Iuikjv@jW0lE%8x5NM)k+w8ie&b?55d z29a}L{=xHeuZ)h9@uO2?ZNyN<|&BK7f`H{Pc%Et8t(6Z^8u<{VY`K)7;BWx^g+jc<)*kjYaW)mMoTDZIafN>rZu86y?}UY?^uGSJ^5p zrF~!^DymHS`tr@I<`^@|)Sk4RgmUgf5AAvS$Lw{OV%IPGHdC4Cu3OUSV_~M6>`N5( z?j@fXOUYE@NXXm4X^IfPP7AAjCRUlfdRpJgm2`h1U>wAVncrhrsYYeXUP0p3W*U#v zG}X_PuEOy#V3$5C-93w&yLJLcBxA|rK}yLjF9LB9(6H3x{&4byDCA^^G@MC=iEjJ^ zxCoaJoAl(COmL`Q+DbzjexwWvXI_QJmF#CEAMyonS?z%Rit}YFrF%WWo9tVZjS^j( z(AON?rSN3CD^PkHL%W!vdYt@~C%`YvY!naAVS)HqG0gAnV>O4$Kwr3%c-;et*Tl|W zp4dsaLTEhc(mjOiHLMRp4Eq!P($(-y@vEQXz4b$>1Ae{2<1bqFCU*BC0+$d0ua4ch zg|vXMKT-EHvd_>dZM|koTFfLIoXLJil6CELk0qILX=k!06S(b4%S0T{(>TBHF^#{j zOS|T$`E<*W(2jrN)v|5ZGFO=2yb)X2-#E&vB>Nca@6fVQ#`Wrl&h^Y9tABX-5z$HR zg_-H`@#)Um>h6{%?{qklBk|fj`>S z*SCzYfr~G`IMb2Jz*S?NfjRbbPlrbhaEOEILwbl#KA+ogvTnrhn#|~begY!*KxY#2 z*k4?L{$IMZUz&3=Cg`#CdrdZ^&^bpz)1hniy>(^s!yjLe(8bEOQh^b6!H6#xHrW`!@`qxW` zFcm^See?m&yl6W&weI-mg))uE+*~#D^i_;wI=}wwBD#+;J&ysIyaYs7CI{Il$w(%t zYYACD){kgj+H$>2T_IB|$YBKq zcP`0ljGc#=kJC=t^2+Y%xmoI__@2w=_Gnl8KCbJK3Y{g!c~4B6+QOND<0s zKg+&F-CHL;1Bbu8hzl^n(+4hQ%#*egYVDpq2a|R}^<~%GQ#?sF^^@)7&|lH9Yp^~f zIOYPLalBz_Pk)T-1%$e1&l*Z1t)!jQ*y)(m2wp3ushN)L26 za0EZ^P;_UENzW%*E}rTnJNB-JrZ!+&dL6Sc#!1`Bo@v^N`V*PZLLQJWf0^?+RSt3H*9j(qtZzyF4{i~16o3=CYXT4TPQs7wH8&C5hbS^1x6C!fDda@tNd zBs87+mJ5=)IyTmlnDLpm`MJ62t@(U=zqS*padgfoZ)lJNE_7|$PT(y=y@Ae#4I8GD zb~4ou&9lAmV=UEON~_(Xd$1GTb@RG&U(!;mO!SBD;!i{VKVpv8{{3e)jh_`kH$5|Z z_TLHB|C`YquY_!|MCcS}#FwEsn~bhGf>njw>Px=T;abH{Y)v0YPnZtE%P43asyo6d2&N5UH4ZW& z@fv3we$7Wi)i}CY=W$RDhb7Raw&mvt`*$|(2tGUSI^rO}@axgnm$*dUJ*wx^5RG6X zR`OQn)NK`t4wt_kDYJ-^_bFZGY?B)S_%7mr2;!^-otmCYtcFOuam4Exk+MxT&BXp+_RvK?X?4;p)UBq;&q|*4 zYH3J-U&)$(CQjm5vh79c#34bep)u*|>cD6U&xbNbro2h=>wkvDJIO~{eHl&-Kz#mE zKoWz^;>Vrj=3*1&6}K`nF;G*(f`hIK1{i6*o6(;9r8pc(Qsd{sxD3J4Q53rjBny7+#) zEMU_4F;JaJxT=17koz_5pmMZ@zB!YY!37dh2{dPpt#4@pub2!c)#J9B4GSYhoJO>C z>di}@-=IYk67Ko6a(A~#fg!!;FUhY*eHc~GGm0}YzH2Ys3jb|M=NXqkchmTkB0fY* zgCI6<;+miAsZvQjpL{G#+cM;2)%b}o;{a~Prm(!y7ld!7tArp*Z@lcq-1+)eQ zG+76!Lq6^0k{*wQA#-J#C_@Uzj|MYCYwgR-Lj4d}n6nYZ$Gl*u_Dt2|0j@iLNYGDZ zQeNtlU!)l2$kH6Gc}M;=A`+`sYEa%dZ1VG3(fJz8Sz=Hg-^%Ksq4+pfi|&Y{ElXhN zQVNxYyU{F*ks7FiJd5DOOGtWFTSvPkvdS1!)2*Nqy@ld|b8`Wn05yOz@eRuba;`#C zDe85iQKhBxzm{KMr67=^ZU~_8mB`ZCwu+y)=HG7$j?4_V! z5zEepDsi3;ETo;q>zkU?1ulT&ERi9tC&05TsaQmb7FhH(NX@YEtWG3Dv;%~d?L`Gc z6JUmQ>UDvJ(vVVrUE{Eo%0-r`o~s!<6)?el<2UP7DO<+S*N)*$HE2g6d3p z7J@f@P&8%_p$lVU9xgirc)^K0J0q91U@mmajgBS+6<Et{0L>(k|1J-$Y&O9}9sgG`CZT>l%HgmgY9-{Q{e!v{E|yUqI|I5xs%!(W z;QV%A;fBuNHwm@L6xB(CZq!valOp%*C}Hri$Lge$o;VOY6?JUIIsnMaVLR$BO~$!i z4^xOwl@JwGK`b%)U^HeUt9`ljjyUTqHHJ3awBpkGoRB%{lN2Cf7qB9Nbe5(m0&0PN zh|z{7BLFCN$B*KWt+2M%TWW0APL_IV z3r{JNlF&CANDNYfhHFyNNP6>{J|{=G79%Mf3#S6g5iJFJP>SrI(`?!6lUT83v?I#; zV-8(}Iw3;pcd(QiyXh?4H-x#oHG_1@)*h?nZU*cj0oD^W$?YWU3hwihEl(N}2D4ae z*?&wua5PFM!rA*$vVMdJ7uTTJ9anDDa#x8PNrn)B$VResvJ|uyt}xKI47PO)z*(4y zacDsckX2~fl$Lyzrjb0kCN+Y@(6?Ztog%DyHNA4ds@J}zoj9i<7{^cRfNGiKnGv4^ zS~+WojS{-~oC^vEF8!Jv8V=42Y<0bh;~Z_GDl?;tsY|8IaP_-ff9T4wYaz^$N<8|W zva7n-jht9!O~Tx%s{Ot^5Zz54=yX=}(QUIo@l8SgU9RM!>iWsnCaF5lVVH5*MFWq? zBPOO5vdabDe!|+Nal{3Jlh&P@D-R-1_HVG>@i>!r#p-Z0y7PnIKebqkFXx;B+GTXk zNUbjGsWR8e#RIOW4YRt6QNelf*-?uXfnn9H;`3%zMylb)edT~}GSXL-h+&?UpaqqE zQXLpAd9WGh^&!H5?lPeXkYPHA~#ICr83wY`}Vx7AC7Gl?jBe_dDm!uOH^|~ zvDiCo*VLlbMYoIh#BUTmEk*IY$2pp)n}JJ{ZdJ7?rJYu_%W>9o?#J+|nb@u24mA6Y z2lH~VmE!r4-SVUiA<1HkE0`$y*<@^K_)dC97-QJ*q9EV0BerCrq%R7XG;LCD%$tVS z`rb6#;UhXciCNGCDpTWEjq_S%h_4QSz>yrPE-+4PcFKRk&zS>C{Z3jn^*=iL1tTkSc|SF z7y{J75Q6a1JDhBx= zRILL=JpO<4za0lgc~yg`!17=y5=c3dNNQ9ZisHufV<>Syt;so31ljN895p0J&!0^F z8a{s(XV{a%g+bRI=%)MOzetB)(+$m^?a4Wq37%tf<%n?3(@bp61Wo-PJK|5^jmAeQeN^@Cl%_H%DtQ$@lqBNdh2?|}>6yUI)2HEdb;0Rq@`ahtSWTyAbWU__ZT87on@#LF z;_)9jv-3SEyu7WOj`J#$blr0+lXQU3pY1t+o~HV11e?!x?Ph9gd=ieIXtql-Z+v?f zr{=9;JFsC&{kK0;RR1lUm8rJu?#6#V^(!t*@O+;0wDf#C4c9VEbmJ@7E7qjxlk-Wz zZ%#`6Nm+Z87W~*+R!yg8f2xX`=S7kZzR#a)dgRQ}N#MOCC%kB~1sVI_rAkBENqFi` zoJStv5tkNjGV!$&*@?7MABFVN!X1Skj^gF*Py9p;Tl#9^YHd}@+FOdV?NF?FDIy3%KbIwB@t28=%=p~2uV29j`Sq{$~Jj97pz3|D4jsDG!Y zZmR*KmVDK0Vr}%uwI*M%c*tHc7)uvx&<1>R#GRE3t{rqsG%u(Gqmi<@_%97?WHeZ^ zr5+}GdxAjZR7=)*zEtv)Ji}Y)Qp{XGZIdiw9aP90xX&!q2r;n^i-`h*_7ZA__z@_z z9`#wW)Ql}|Y+&tRP05HWRon?l1gqhfLpt5)!;a~{|ybN+B3 zA=WEE!UOgcCM@vIQ9%CPv3F2FfzKH{>H^Zk4WnDI)fBoZ6UkZ`B#7~{@J1OH0Bbjf_P>`KLmjBJg}{Z zZ7^bIWP}hkVadxQ*cJ8A_?)HcCpFp=pokVrykar-K=NS#5-pf>tdkBsjzQVis^}E` zh`$FQ%TJtuo}_sEEHcCiWNL=I+FFWlNH3vl^~HM2}uD=jg*_zmz|nDGgJj-*W` zl6d`*z@(0)WF$@)gYgLyAXmv#ljs{O^^_4>uwsm4qe+U^=e2zNYi&}?CV$K}1y_RX8f%u9g6>q4J?*xz#=h~9!JejfU;SDj z>GS2x%ZLrq89J|IH^oJ@wylJ;OA@Y!*)R{jLoJn^@e&_@SCQV^yA=zh%m`R1q>gXJ zTGP@{jJElZ5a!D?#(Uv47CJRZlZh9?=SDdZX_e*sjnUxs4NiV? z=gGrF#S^9i2u-$6LJA}v>bx{&grYrGrG!!V*nXd>&PeLmtALK)iN*)@fj1RnqV-$wcBRX$zT5$&2pc{OfSmX-QG8m*-D`7E>B%wDzP81IbWIt zYvgM8$|aFlsPIzfV|fskL$r#^e+(Kbr6DH6I2TPnv>AI>O?Q3xjWncSM34Vr(7?*w zp?a1&0FiWLt|_$1Dn7rxAdpKDw7_m4mZj@2xzJ2N2;nxA?F5S17uUmON#LFaQCJ*=$y{$eBSKKB}a=9eFTg=5F zpY&!xU5MQ}tsnPm-OX4D!lom?Svw4hvhi|U=D6W|q7#RQ3$93ma4s4Qf(ygSh;_eS zSn8^GLlA3TIA4cOAfNqo4d(yfyuA;ATve6eecr2AmDiOb{i^B2P7L98rHGX_hK3FT ziplMwhz)~U3Ed&ir>0;SH_Nz8R3xY|xm_t@(MHl_BI2KsN;W7&mN5QT7*ZhXMr9@b zK^+H782x4(WFd|OW&))4cV1NjxU)OoCd_xb>)m(%oqO*&_nv#-efONl_zVJSPmAFh zuTn`7bIaoc+aK7Tdk(_0_zX~p+ocG`jtK5%zRQtbZj?#&pGCL za2_W(5vLvOB>=fQe#1C~>KHgRT50V`3RU%VfXdT-^H>NdSeaRJA|@6(;#lht*~z0@ zcg3`sX^w`Blkzrw=~obu=8eN@oQdR2A4{-s55t8Y>)#Css0ub0Z@v4y8 zh@<*}F$gm&BZO$=@GwnhXnv)Z$SEmxt|4pv{NA2g>3)A-pta-+R`n~w z0amedr-ssxGBesH>eos>*EV^Uf>YuuWVYHI2NT;g^wxiIl_4M6N%P z%bkB+T|VK;VI%7|_2DFR;mllej?S;ce7$;JIXGach>;w9#EoyK&YYEWOx-c?8B53bYJ1s@x(pgOBs1&1= zorb(p%>~X`fmGrv>y-}TBhF3dUj4@bR_sf2={s9TfK#%^5U8|ZoT`k{*VO9cO2?}? zP3BatvKaMTM#ona{X7zkZdob~S7f;2_&Obj6eBl;Kpca> zu{`h^Cl!d08DC{SqM`T6NV-%;nP>S%UHHp|!$o=1^zq(IY8q!VN2W}-?tX9Bhe~O= zut!EoGks!u;awyBQE!#yQYhDdkCRQw`y}ONReL{MGITrmzUk!9O^P(deW0SIl0C^c z&23)5M?N#+pJvjvtnvJ?*SqWEI-hU#Z1y%@g@)0eQi-6luZan7A1kgxpAv_4QMhJn zea*nHHHO7C-5PhAg(!YmTXVc%U~~f-R-O0^Z(r%$h~-y-I>UAIBIZ~g!353|A}c&; z`mC>L*QQ*_Nn;#F_yr{m}^;K){ zVe{VE=19Xc9D$iUzmR8md(C2yEsswGnZB8>(m?E`DkUE!Id|jxyoxU~doaB>FbOkg zg-px+iG+im^^@b$U^YqSY6*wDt8qsT`6L_ap-X<2FfEtW^(S=v(nk zWCpckoL}v)O~PS=G|B`fQ=1)3_2qg_=c0GJwAv+FRVpr=XQGFnu=%-hm}_m zk9RWrzZKmSi*e#XVF!d?mrTotMm`^YLTn??Frb|KWiXdE*&tQYwff1BRr=?{;G)*W zx$<4Q_QJZ=JYUC{Ey=K)!Q1D72ZEBRK(m|gqb1Vgal+D0(o(-^>wzZ$bj5tv@)ENj zO+o(w-bNoYil54uD*afIrw6Keh#%4*nQ%19ux6^UBNNaagC?OF#)vaWE0ap! zn4E3K5loT`O_BLXindw|lBU=TTO{MsIo5UJ+YDXlc;RNcg7yZMqsAJj!{Zh=x@n+m zJ^CjM(W@g3kaTX+CsM)J3;t!YlF(>>H+xZnu=Mbj1~_gja+24%(y67u9=k6 zhnQlyyDs0?@J1(Zi+ZB15HY(bWU4yDOp}1o1O&Z)4h1hBK7yjmm65%yvE3DEnp2dY zq|8^0n7%S4j($UYsw)=CFm0}orBbp5lXBotYI!!zc`v`qqz%}TdBHfoI2Voda_nn< zu$&Hyg;ug3Cs^tIIki;@Rid_zHi8Mq-~j$0O(;s3Qg-^Gj)M_0h@*u-m1I;7CpnwU7dDzb#*f_0 zsGg@kd~_1&mJ-j9D>aL`({`8+L-X2LoVtssUuF`C z>?t7uE0!Rq@+r`|Q)$gZxaLIx#q(KeDPJO+F||pyA;H^|_dI3K}e z=%)Zop?ZB-L}JL@Kj~S^H-xX3NwM0n1dC?YV%F=&)8p->v=Q!rkPqH?h%6p8>KBN{ zE80!H-{!Hf=y)0PM^$7}$oZz|wq9|`g0thcl8D!Fj!ByI7%)q2hw|KaZDY{$)JU0q z;xN8fp7ic8+E@-X-ycMiuqCX82qjk5ga>_9wa@cH-=}-Y&#A0>-^BRUQpDpVmjW&I^m8U_2NRFA)a&WJDGS z1HIBG3owD>VV>19c?nl?$QcySS=h~#`ehR6Sik)(K@U3{7ewJ;Mvz#ZmF1M&MVWyk zz0?re)2}0|^%ytwK5MB+G7nM9e8Kp5A?~T=$P4wkw7fh-kSL2M!W)nS`#jDkGPe^D z_;Cqk?IUa{P-+L9ce6 zg@QKd1gm59QqoHYC{1FfSR&(;Au`Vdfi;~J1U5AVE>W6Z`d4@2jykq;({xVDcz`Ql z=v)9D$*LPr5I1^{8bAzIi!8gghpQ*;`(aXXF7d^PV=4YW-Y^7xznwOvj^PK-7bVOf zyHTToqufBvI_ZSkNvP>MFzMQ~6UfW0q`V&@@8U?KSLaP0kokJ|zvd+{Lb6am4B_?S zL$vH`*gS@e7*OwoAI)pTVN*M%tH!*PU54pOLib`BJ{xl`fk{K?I_08UDcXZ&Fn^S$>ifTioZnO6 znL`&&y=Ba8N<%UD^G6egqk`0`^d6lZVMhQ{s#^c2sjSrsYPs;Fm;OQBoenTrdEusm z#q-Vhfosnx4;w^cKd0fnZ8z#$-K7n7^o#Xgat5X%$P9+NFfz?nD^b39z!cwr?E2dL zkDYHXS{a-l`i76zZ|0GD9t*JRPD+@`dbsA+ah2IxUhxJgN`V2^yU*I~N%bd6g%fT5;x$#gj&y$UQ6t^8R?u8%fI}U0dabyO3_%_VJbw_RR3*t$s2WZUbpl z>E}yGGO>Vnz*20!E|B7bvI&9C}{iHvVu4T%6xPgY)nWNViD_7>9@Jgd>nqWu5Dhl*78QI`59EF6j zo&>KtEm_WFRoO#kE_1SI!6LImK6>kMbnxg%P*>(8a1;~0pzrD#0r8z z!>FIXTuzGeOk2jual+%Dn{%XhVb%Zo^*8)zI|-L zlTR)@Z%*#)l%LwA5LE!fmQz)bpL+-+$ygZ+q|0 ze)o~{4u0?-{<3xZpFDr%x~D#I=;6!#89%%If_;QJGp50qEyl4Ho&%bTU7Y=Tkx?=ahCqI7YrqA8{@l&V%hcA8a zKVJRReKj{;lW~`P_J;78;y`)&17rX6>kmHu{LJ0I{^_n;E`$L z`s=@5`jM57PLz%W1I5#){r2hZtG>7Hg>QcA_4ht4r(W>OeOHZM`NY8D85@@#nYI7) z!acPgZSGz3pBDb~nR`CH@S<~8FZ$5ayMrfIJYU@Z)Azk++jDPt)nk|MZTxukycym9 zqkHRspPt&i{`rCRv%kN4(ZodWj4qcQSa`3$`HjmHADO*=_2M61`^a&!1UoNt4zI}n zWc0t?P<{QSh5I*!2Y*tPhyD4j*WP)}@^99|IX`{!^|RkKkWOt%ZA!qCrzg@+k9Nt5 zWI7}8BsuA1+Z1?`OjK*|q}uxP9~}Psw;lZCWB>AvYrk7L_l5mWedzEVFFgA2=&!0P zE^YkRWz(;$_a-EjTytRJic-NJPHvni4;Map=?iaq=3R&0^#8zHNRG{m<4vwf?84p0Z)vpKbX4C2x7+bF<%f@8=edzRrK>2ao=8%e?1z z|LvlCztmj(mYaTY&gitO*3UWh@w=|t+PbFj%-?uy+BEMF14@BR(b z&RFrwciq&u`sY6w8~FO6oIUV?%ImjndF0ifUbrHh|M)Y{54`KG|Kq;t6ZLH~#$EPp z-@2)qId{d1Q)gVU?yA?W`7g)IlXBTGkQG!{on=J%EX?-s-S=H{-YxQx7B+G)?-)mE z^hDq&R=1a%a0uGq5gh(w1eX@*Uoe;aBl6Z5BeTcS^YDw#DEtUy`<#G~xEm$|y+EYp* z@lY#!ij;5J5E%)-{&mF`LyT93lEBfR<8jO74O&~E%@fY^kEyTC6D;n@x9%3BA%6(i zlX)3D82b)As&<|*u7f3}WRB%NyNiS0S^{1F&pbI8^Q1+qk_(e(A3i)dXbOXnI(hbP ztbHm^q;>dAE-x$7#6B{?bP?0K>svTst9ANZXvr+BJkiQ@Z|Mf4d9b{y`_i#;S*@~T z4~V~*Cxc@{>F#~|<-wRISQ%{dWCN|h=FO7#zaOhR9iGsEslvoA<;k86vy9@=vSa9G znTKsH<;lOcMm?JB-*Vx}hIX2vxQnz}XQ4h2b$HUcx7E7)Zkimo`Q^C&EuOUKp~{mo zJo&fBNvoA<9Xh1#i)MB&Ngsy7@T5d%jd=p5yV^W)G1`|^1yitb{VJ`m?$La$)&heG zu9hxmaj?<0WecX5R>7e6j~yFlN$og*-xymm*8PSh(Wyf%cmfMEOJ4oz?y)N+CQe(WhmTBW@Hz`W2m)+ae{Xb zJaMk&{uS9p&(55eebBb1pV}SsA`O0Hx#S-+t^X90y^o6?R*-~8b5}%+xGj|?(D4_R-BxQD1vWB+s0@A z4E2+oa*n!@&$5~FVq2k0*>xIJ9C03rZF9;MbZ`@dKNzkluJAi;SD(%_FLkQ*E!R40 z8F(op^84{?Jbs{UhqPTcGvlRgVD(+RtZko^U7k4IQTJ#Y)s1O$ne;*vU*pxUwCKZG zdSR{i`Zmpu+5lDCo<40kKHxc5@y0edaZ1>=Tp3XCdym?y#NWpJvUKb?yv$FM>MTun z?O-Zh2!fkBb~LevxoK9OdS5MW_QiqByILk^kFW>!QkQI$7vr0uv--8M{m)~zIR!hP zXDpzN*IGA=2iJ}({%X=`nb^+kV^XE8*cK-?JvE)i$F@4kIN-J2xdgsHB~&&BrccyD`$U&jr-$-RjbyX zt@3hcXv2oKylGFP*yF=6v?AU0IF~^dEfm{^I2{r#_QiI*_3lt-&S|Ob=6X;^01wKp z!^{k^oxXz?4K`buq1KbT;(Vo2>C2or$zbzYXMaF#6Dm&s``K)n2_kVRfhx2*PIp`) zvm27JZHK$m+Ok|W{>h4v8OS*@$j}8s_mujBmYr4DBs}RIU#~@HCj^yObf!ZMl zSf3_$W2k)$dwR@#SbM))|Khk4xUlqSl}E)6U9xsV>j)37FvZF)E@VnU>#fFO*k*;^fw&yQCEJME%N>Ls;rNcrY4l?#c`ue6m9yQJ%CitgXh> zdbzgycLz6sYxdl1>wUP&lc6PwqfG$iNo=q47*F2X+UPP?d6dykqfpnqtR;t7j%%%k zT4%+!KRY~u5AL0CPI*GC@?>{{E8KYWf91&#b~s<;NoGm2sX15!IA$Kjt}CAw7=Az0 zt!oS{Fs^O$>=t%!poE>FivY?o5Rw((|q)#YW4?N-)x zMg{%4BeM_1`N;mLF3uTLSY1peAB2ucIYh|B;6ts<@4KI@wMiWFL}ywhPY~=o*gTlU z);%G2X0yr@o)9E^DlWU_3Zx_S?y1Uy_B{XA)}DLBo}@g{ug7%KF;0@@_-W?QvvO84 z`S>ols`zvt-hi~kxaiKpAj)E#06I?e`f9N7y#QUkFir?bzJ^+i9c-)E!`*SdMV}!sj+ZAc8HO3P|V;%yE4C*C;Qtxd9d_lh6W888cU}aEoxyawLMO} zhfh8AeXO*)SG~v+Enj&uH1=|yeEF_ShbOF?OR?zEagtoc@)(k>?LI3WCvtIIx1-}k zc|x1oy&Rjg@i=)IPrAGPONsCBM4x0bOQ=FTPE18tXiA6}LsG{{OrSx=Nerhv$_eKa z;fW##(w0lC&&c3@QLk}(CtO`a_^oM72#6=2Xonxu;p^xI{-KUvusuDjcxAkU2OUGE zQ7`D|HwJ&z4iCPbzNqN5TxefOUqod*^cZ6|_;EW8{eXp0 zz48R%3q}#Bj$Wzbs%-WPgu9MgAb#%`8Wz82+v!z5k!Ju6kJI56H2pE1!nYExcsja* znyw;)V&AwL9@Mjele-3=$B$TV+TF0#s8B#ki$L55yTs5&LF-78^M?=M-;b_+*y1CJxIEk|aLKVts1@Ges^lL`0sS z^#c-TvlS7;n^7$)A%+(+{1VhE2uvi#aEP8NBr(>n%_t2T@Bx-UEvpDF%TGLCBPff& z7F5D%R$><$s2SMKo#^K#M1=eAv^~ByuFP>+X1iK^;pF~XbhE^N4lgg;q=dJLAab+Ff+$DfG@i@X? z5B(EThjA7|2|AL7a|QCber`%#vnlar3yzvz@& zM}0~u5lX+OJvVULuSxGY3KJ*Jh&O1(BPT$Ak9R*b4syi-df%odn<)eh@~auS(P*B2 zP+L;gBTvsD>cjjbHm;QJ&X@oE6{-<%7+S>Ol8%xmgPesC))4q}QnpVA;EQE^yju1& z_!R;BGAxvC_)${aICfC9LY#BT9oHwj=53C#mPg_0hWC)4FPvl}Dhn63Mx}L>v=xJI_ zhhJ;Lm2`AfeC@>6YS|VVkcv~8`c+^@i2ec_dc%^`)*#D0`l`JQ9}gWK$^qU&>IdMXE^Ss#X#_~*S=2?>1 ziX)Nq_^!t%v*WCZFv(icu{hjd92mzU=((tD=U1f1-t7J~((W5oZrdsbJ;YK}L2&pb zsYHF_Vs51qs|h+U&)%VRRK4OxwwECzrE~m^!-9>;z@qP3iB)nzPVe=qUR3O#9HzRE z-jbN(gyTMpEzwl`4O^=^zn>mueP{K!pX!%Z!N#9=8k)Z*XSwxz^OOr!lC|R zWZPE!{j^uQN@h5)T~=fuCn?T)Y!l9L(;Dd-g<3|6lzECL>0sDT5r90Z^A^Ruo&Ik* zu|-18o6@i8gB%4+GG~RoHh?%(EwrbhhzPvPn`4ONrMxxeb#aK* zxBhL7lyP0OS{g}L&cnyZ%S+$Ppa7-h-vOYUp`l=onE*YG!p``HLJg8O=9tkV@_Ksi z-Ly|ft#fgu;+)KrWn%Td4>blH{{gKtRHxZf8@Q#0VOrK7LVtVBs?_HAUR0JdBaT-A zMX8q1C884^DA7NvlTzriZqRXrXR^NCxf*>gA)@6TcTpD-40>cbjBV62$K+(~oT_p7s#c(oL zqz3Zo?~lSWDWay!pPGZ2H7ZaK`WPAh1sD-_vZ-`&GAQ;&=*3GD3jUBP*f6?Z2M>cb zbaSUMs+UXL26{@3qN&Ri$0S$_g1XCtG2B7gkrb*&?j7_knc*%lbc6z-5?usGEWN}p z1e1UFEsn1Z1`LAO?0uugAY~Y(FtFfR=b?!gNv%pD&bVC8f&}m|c^TiF(BAnk%P~i^ zWXasT!UATQS5mM!NoQpCMA|^zx5@&znI(ijQ zRg4kqm}VIrQg?K~!bE*zIYibnnk?OBo?KU-TixEcpx`Df`C%e+M76ryv33>bo2|kz z!;xx}fdUp^XyMeya$zIglzg9yQcdR`$RYBOIFseRbL0nz?vXw(Va`j5efuX=w1#)3 zMjXJ>IP%}RQ14MucLO+}Sray!d~nv_RE8%Z%?sYg#R-QF+NHK34U zU1o-*JaMte3#^|%#nzbJ^Tp~9^Ig){UoD{P=Tp&&T;y$DnDMFYfpl2#J>;T`cy-Ex z5#9A-KrZLLDIJ-u+rm@U21^?qvpSyEU!tiWzZ`R zFob1k5<0r*Wa>(Hp50&YvLpT46C}C>qugTe(+2yCs+C1vRM(o2i4B>gjHByr^Z5I} z0gc9e)%qx2SC`MEnzV3Yka}i(i#6$Ge5ys)AN?|qhMzb%s;b~}R-G7}H(q5)h zMl#i~NgeW2yj);sjQJRq#`1NW)8|pM`ye?sGmN}ove`6jBWo9_pcdK}`bjTn>lD$6< z#2M3c{z!qBDpd))!aTG9A!Io*pp+O~+;g;xh>;8Q0?>&lB!;lY18yJXAy2wW34I9D z8e(BZ?m+ZJQLr=6Tqvwz0)T-I7!tdTpLby{N~N?{4epaXY(CkTC>Jh@Osyh&WyFgm zT4t?eN)R*{%v6jFGSl}ql)ilf^uQ}>>E0$E3dnrV>&xd+!0k2QTO=mH2ulu|#6=7o zLzvT2lp6%q8Ity`7z2s(QGdvD!=hmCWK=-2?F#BW=>Ku=pO)2Fs-M?3j`aC9;}!fx zs3S_vI_)PFf7}(Xz22uCV5Sbb@nV+JIYf2_IeqiO0JPXLp_>}9JRLaW#BJ7;CkU>c zUj=;|blqe4*|HuR*C7G;ChCFcq0D<%C<#ex5PwodZLsVyw`ff&{A`JFe;u2t3_#Br zTZ!bNoOc@|X+^K~JuiL)^?9CgzFArE`}2IwPr}Q{`G)15$(64gFM8R13v4i5yy3mI z$;yEX#Q#dT>_+1!3>1e8KSEO>M1cW)EcDil*X&9ZMb41O?v#}_|0Ywhd&O8Yj19Zl z1;06B3fs2F%|q;7?0;J=YeT*Iebw5u$h#PV-i2|l?wthJ;f;d^ z1_wuhn&0yXm#b098xkQBnc&~z#tuR5@0`?oUX4IC237XIzP;C3&zc z>N3HmQnu!W!GfJyMoh2h{+@kuU>M#yn|Tb{piBtCOJXN)B3E6`8?0*2cakcH2aru~ z`IH9*$n5tOLTXV!`Fp3#uh}G=N=P4H$Ur5bt9Fvzs}_q>p4%r@qt_c2Pl6qE z3c2{gtY4e!o4lCmQgW{3f_eG84LmWC9YOCTGQ8cAtA_~?<54728D097f~r$Yyo~Va z9FUv|o$*OoDDmjPz>9mcCZgoFL#LN%?b|Rt!i`hUD8E9mbU+4D;|yktH^Hn+EI%zq zT>#RzN1Rp6J%{M=Og5~;k&NEuR;6JKabbpA$Fd>dN^Kmm^b&ZZNihA9D*6Grw|9{U zIqZ_rjV7>~M-af;i+EDaj!+Pw4^=T(^I}`#v|ud@lUj-iWJWR)OHU+aujPW=z>9YcU;1|vIs17RA&rod@kE8NB&m`is@D)0 znhyfN63!y#Vr-hS4bB+7i8CV4>*|3oEZrO8ltx8OSr9Qy8&o4UI=~H09pRBN;S=ht z2Dl(FL9n0?*+_EDs#WqF@>t7cS6N#Tv8vHK?!&ld6i4riLlW`zgf0$p0Uo%OPTsUK z&jTWPq*7VRDQX>qcM?@9vI7#CG()IBjbaLvuubHLMXxt2qv7guzn@>)E3o5&!sw`9 zdV^OVE#y|F&)+f;%{~)#j+NLDE8XDvWS*?=^;6dQ(GS;5E|jppE6OJx=zXC2`T--+L@=!& z=bfW{)}FKNtv-8W7ma_(yb*Lxn@hb1Ss?~sa1zd9&X=ECO52_}Rd z^XeW+tI>dsQ^r}&jmw!+x~{%mrb6>BjP9)NJDG9AD4jNQYgVjGGm&ATd^NiE%S`s< zKpx?l5!Rh3IPD6I@2Vn7-LPh!FPBQrhSjA3JtZAA7%G8BFJR8ku>Z7NwStrS1V%P5 zJ6k{3z>+^aQlR@VH*%gCk^imYz(9Uia=n zUNK+1yHrg3x+lGe4jS^87pbQq%ZUMU-YIdXhZ8PAKdF>yMm%WXWs4zwXGB|NO2E`}cq8k;5O^a^#<<{qzxe!zXtYPG9%6Ig8g{ zz2v>?o_PEnPks5%87G%r-FoiXcRc&`7oPvtksb4&+VUTNc>8Z2`{RR)AAR)nuN-;d z@wLzGdHx^Dd)Gd{>$l&!>B>)kY3yg$JiY!stKZc9yZ>-{Yw7OCub#2u$$|_d;rH`aJp274ttpSTzWB*K z6F<1&`cppo^b4PUuIros<(7Nz{lN>*-T0c{efHF=XT5RuqnRV;Eq~41S1(%?EIN|- z^k?)W<%vOuC!a`9M9Pyb>#s?tE-mC@o)pR}(t~#~#|Pe$N8hm|STXIKzg%?9w5gX) zc^#IM;E8zqXV3ZC^4G1nZ}B^itP4N1a{Iu#6`u|NdR5rE^2qvmPwjc`o9piV{NcrG z_uR60@#1%WV8-7}z2?evdd0N)8}2-O)wG}P+VIBOBZL3x*?TWw-E~##AOC#+r+@z! zt)~uM^vDPI|MHxNe>HOG7uWv$@m6cm*S^2x>LcHNf9sK-&Aj=R{i)CY_$S>zfArdW z?|jcY&b|ACw_f_xGY@=j?c#5K?yl!vzv>%*)Oy47&wH7x{^igwbN}T7f4}~}fB74W zk8GHh{KBEXx%(r3yL$bhC8xize*M;~T94;`{p-g!yl3_5UmZSc!Ow5$AGmk@H~x0T zx=%m#%(s5I|J27$e{RnwcD?VG4_~wAj=Mj*;@*#c=G&irVf~UfX1}`sYj-@k;qG&< zf8L*V&1i0PYUb*Db5lO>hU{l{E_lSNKlBPrC@*JeH{Y`t+3+lE(p<;Jaijv+&!b;RH7!%=@O79rh^d?*8%q zAMZy4D-(o&xnbGZo;{lPz=4xbMquwB8`>Lk4!8Vca`MfTU3x+|K4ZG;tsG}f=JtG9 zkBRPW?$xk)q3*5 z)@@HdnT4a?Z>9TijBH6Obh+>$otM!B@-H#spxSrc?-LZRYOxwk= z_)ANr`XN+SLk`nFpMxj6#ln-fy$zlWu3f7E@iYQf6(;lSZckXPt#cr#wX68y%kP+0$%F&Jy2hHMlnU zZHe=4-pnnbN`)t$XqnQJu|D3%TivQ5p)n)yq&cVWcO2t8$Z0zLkaC$F6BDzTFrH!7wZxrf{PW5I>-IR<&_ zg>uH*N%vOD)rp6`9qUoDv)^|%&tiUmV0zI{jP(?+psO1U)FWq_Bn>)sjs1#S(-DqY zk7I2(N7GRk>SSm`6yj3ns2z?=-In6-^LVi`j1`wQ-ri63x9dvV3_+St>lWjkp>AAW zTNhKyS3lp^jnpzt(WC9@T3FQbz+cq7CjwDNM{jkro8&R+5f< zQ3Gq9voKju%Azl*d9y)1T0k4Gl_~~%1RSxRqR;UOEyE`-G}QUNty8&L>gUeabm$p^ z8(qyfoP2G)Mci}1x3rUQ2L3Y&LHH6~&KMs#wa#Iz>q)sw`y`dlL;Gt7W4%aqdlm%Y z(#tyKpyC}K=6tHU)R%ND$m8^5~(`W-CZu1N`HtPDXSv-7#Kmf4e(Z+r|UFk zh|pXvpL%vMinXF8d$-zy&_z(I$2Vhbg+yJNv}Rk@FlA;S6wtL9$<24PFf^cG;+;)d zj@)}__gFWd5+_jQVw04MM19G#b$w_J;Ty#KVuC3v*L_xZH$n{T-DoalckMe!Y{1M- zt;k}>9&WYJ5@P0PG?*1w9_&82YvPXGtel!!N9KdE^s2G6YR~Zsba3eXx_)Rqnf~58 zo^Li2@gg_DA_80@g9)Y(wQ81;lbKwH#o*6J77T zv^XO%FXRY3VMB7os#R^CXf>4**}Ktn!X3-Bdb|j=PW4cAhokbl%@f5q=P#ds2~X~L z{?|_`Pg=W~PaEmRnJjlQt)?tJ#*3r-59qZD^ItH4~ zhAi#je)79AtsMG;Y~O-Gd7^H&juYU_!?)GnDUTBev2@tQqmw&bbDRBJbezap-CGWe zYwPz7Wp&-YCkUQ9+#1`=6NJDMSAVb-wjO@8VSfKl8`es8_rcaf@i^H9mLVM{{H2p} zYCKNFitUyq3%eg$)q*E633Qy)wFZonyVpuNnM;%yCjf07)P}us@DiTv(H=YmPhKj! z+9Ni{dgW;E=#;I58))yuayNFU!xORaL;;P!uq6$izj^|TvZS=yJlR0hTGr3>ymmv< zcV=2c+$VP_$~I4sLc4kBNDJenA@7XG2|U>~gtl#WY>Y*Dk~R-tCk++^XT9wq6)Z<} zll56D2=3lBHij9VgpQLsn&P`!k766<;6GttBCF#BJ=HpaEwmCDC-6j)x?)$>Uo01| z8XL;B9$M9{JYk$rX|=*4C%4DRAh&o{twlSNjPT?{^nPPxT+)^c`h+_1;+nP_NP0N- z|4Z8qZq*$&@d&pX9+>n++^BwH+n?yTe%no*ksijnr8nbuZ9m^ajMJez7~@4ZFm|IG z({GOP7@qxib@F!dP{to=+%a9rkG9J^rc>F`FHHRv@3XWn;8Zutw($ht?1X1K`Ht#I zzN+Kzd^2(ex|W)c?=8mev2RHJuv6FZPW*LkH+bw1(slG3dvDcpz473$V%`yXYi|zp*lyuT`2W-dY|wT4OJaOjm9l# zIkCMdT;&THg4{NWc0#>L-hGz7=-=TkjNgI`8Ee)JeCczx=uuIgg0{sX_ZU3D@w-oO6;kWS+> zUoc*kcYinF`Tq~B7NwE}uN=K`%K22Dznvk%jRCHgRYYaNztQG6qkvK(B z+f6_euH(Ho$3HB2G{)k@i1j@UTjAEp{krzoaO*2p$#62XIl{d)mK+TUoN<=3GE%G< zu|+MG#FTBtw|lV$CqldlE#>&JI#9+ZJ!vYwV+BQ0F-?&L?UEZ}9bqL6*LM0ub5qb7 zYTL-e42zElpX>nLDK1p+{~aMZhC41=eKDD=dW-ms_%v25{|Rd=+*Y`U0A)$o1b0V) z3<|b=LO2*fu7dp?3^i@9OcDT zGlsG$|9l|EE9L>d}hY)0vH(6Rs^=d13YK^!vys_25R|qCMcoh4;4wT71 z>FAE}UtB%XdI>JHQf~*j7)?U2)|(jGE}01x+b%(0&CwdOPhD|ye&#pgcq3=vf?+al zGIvp4A1h6Hl3kQx0w<}0ugJ<;E}&GJt~b_MuRpJM2Hhl2;#<;cAMjlWMoay5d~6jC zN|=}%{VZug$}fg!k_v4b7a8UhxM_#6(c+|R)ngqO%5#DGj)HB!_t%yY_wNVVe++*y zA>(4&{j42kj`as6o%0aV02e26mm_aT?mR(LjrdwuY4~iv7>*0YFID26oygJuq6>xg zrGBIRZjzVB$O@=}jjWijX9Nw73b(hQd}&~t*!7!A1L;!(XH&ZfoSj4|@<4&x!lX_H zL48~{;*$o5jpQiSdo4nc5N}-5$2FC}R82qCbL^T~gFI>yk(26nH{egQ_K;llwrT-a zDQ)5!w+AEv+J2g41Vh7ZjBPJ^_k`)U!qrfGmP}$-I%$-weT(mgqsUnolldHu>l^n*@wPd) zvrZ9cDJTQ>jVDJw-{WzdtSnWIpPdv-{=jNEz1~@TrUmIVB7D98%!pm*b#W~z0cfqx z+SDsP%mX^clTKX3kY7ix4TwdG>N`J5BjS~S+A&0Jgr*Kw=eQWX2@o7sC{UzdtYN-% z?LLF$YG1Qj4vR+P8qb?ZXR%!!2<+5eN_)tNNTC@bRgxN{#xeq}>Gz|a5=8JxB;8*a zOI1A&6<;cdVs?-EXm8ApEkWRI^x&+9gAyo zdu|&gZ@O`0GCqf6b>1nJ8eUgd(t5(8VLY8H6s_%d^de{Nb3v$|J4N_gkAz6Sn5gh8` zz>Cidi!=|xiLd&>+xdc}^}<{@-Pb0gM=c^_d;A{fFYDvj4H$NaG}xH7Qlut1>d8@B@eFl( z1;D->M*{+}7f+z0om#7k*LKA(SK|OKmKByChvTV2I|b(;qt8q-s2mMt*kuP@UUtqX z>uZ%5TUqvPSSF{um~>3&P&QEqI!8J1Z@i5YmJ|$h zQ7B|eN&i*~3gt0xssxFmm@d1I-s0h@TXkK3O}-)THN^rg8Ic<~T%=Vq`7DQ_`&<$E zLvN94z=w3GQ4jYtM7(A36GtdHeQ_}9_2)UcEcA~x+6<4S8O19ibXauZffBS)NgZb= z#fd;j18iqBC_<<05ZO+FhA1Vn)M$T9MD%)vQ&AFBjWR+iDnl!fF7H@qLTkJ^(KkMh z1Z17Z_;H|uykI>5t~>c%j6ap116)gOCzU?^lEygQBXBNZqpSoDnl&TY*JEG5Qv!sZ%<{z$9$n_I zjFM(NVaz2_4y1gIO{`Z!8?llJJmY*fm0{$&obkfu4sepqlaWS$D3t?zFu-{^llPsQ z>p~VJ;?9(qJS>!bLjwxdjffPiyfSc%C$5bTI#Ha0#z4h94(*C5YY_Gt7_>vUcd%_R zC?OrRPAsKtRJXkmJ=&=RGN>n_#w?*__(52U6aq0^&T|4kIh?WIq2I47B%NF?_jy5- zuDz`(exvFVh)5@^Nv!p71Hqcv6&dxmDMeVzdVHFP&rI#CTbCc)TH#!&j>00JT#^|D zFTB8o%T8vB&P+EoSuoch4m~s$yPEz5>DSSm_sFn^5T)+dOMh+CqG<20CGaBu{qOZm z-#PPlCNi|74#vjCeor}c5765#ZhrS5y)~>&6SGDROombI zH_fhb$uv2EdhZ%%)i?4d3yAcL-VEd_AIO05pX7q_@#Q$ zgnkBXupCHSvMVQi(138g$w0mi(a$x zu*lqzBA;^ zjKRF8Z_zu-T7$G?QnI81Y_d9OR`yHN80x@uGCDkqJD8p5@n=P&)yct4Xn%!U%V!N5 zi3Z$B-nUWv8o_WukGzis#758e|41{4Urt;wY@?Co-dv`q<{GGMy^zmlMZWBl^G6f9 z@?o5^(Mf8?Cg!Cn2cPqd&IKn7VW(BlB_0imou8MbklOYb{jf$*K1yV))A>O-74xiO zuzJ!v#jB=#N3N)Xs4*@b$shGJn(S3r*e7>|JNz1)30SG<$46*c1#YKZF8Em9rsW(# zLdkS^IO01*R_KGiFt5Pg)#hriF+14bYviU?S-*~pKh7uR5Ef35N3PI+vlrC;Y=Xm@ zAzzf0i7C-3<1S?v4cqGH8<|bMYqI2MxPr-E92A1wj-TQFPkp&>QSS2CsV5FbCcsp;O)|z$rOC1IN$ClQdB{e&|Fje-YnYWSST@JX*0o*W}$AR8}Fz`@=l( zfs?>i#TyBf>LMdp-yq%ywbh|W`{Lxb5P(3!$zHM(l5jL)CU?OVe3COSh4L_OznCdJ z$-`h$SeCb+2ICm3=?DijsV5h4 zEzwR4mwE}}UNLYnrb-82qziI@6?-n8U|I7~D$CG(-A`kUMa!n;*dxMtCk=&WD#YgH zO^#rQOIC-0xs(r0X#xQ}3Jj7|meLZRX-5g`=TXtj*nWt?iM32M0ByhyiZF;}~lg+SPGzXiM5Y?U|mKut8wRNgD+t&Zz;okXnTLL9;NN7T6j- zzCprNXQYx2^PzF*J0fXy{|aS|xWzf2R1WJBLB268UTF9x&ER!*Sn^(p7^OuJGz7Zx zzKrD@alb4~g7(}kO>F^S?WY|P;A%MabKizQe!|k47p4F>d==VOxn;P)@zqf8G*2{q;W9D-ELG9qjJhh%)B!mR$$~k(>YOeJW5U&l50Ccy!D>Kd^0<-jID>^4YxGFLrJ1pg=+J`AuQeN7)9F1TIjf09ga$+7rdG#$~L=hz>ofvoGA$WEJJOXV0Zw zPrbMNC&VhD6g;NKV0b((@&cqQogwa5LJ}Zi)GGr1$9+#8paQNT;r%W-?i3o=#g20| zO=tUQucNG{rgOqC?_ARX$I=l<%400)R3i>Lu8Tia49&3!n~Z>Dkt7AP)}Uib#7qzc+m( z4}I8;O68JYtQ8irKUWAEVm{$+a&u1(#SSc`MSve=Q%h}h+a-}VKbu<4F!5%GpQE@m z3$OIX*}*wm9WP4Ku1C5^-k)IJu)Lmp=~&YF1}!2|BUGMy+O~w_y~s(Cq3r$ zgnZ{!i$<}`=!y*wjyOFgfqZbUeTG!;6Bm1Me2>r~UMW`TBlAj_ysPrrm`7^pCx&+V8r{fJ%Bn0Ks1Aekji zE)^x?hkEW$0CJMvq5WO^8{iF2_y(5P&+urN%1Zh-GI0lMVC9I0GjwFpwCNt|m1)CV z69nroS~Rez$eXBi6qLh(s4_Y^uN?ILRk1p1=}C1rqsqz_CZ`7^>lMPn!c@_?f}OYv zd|{Y4yYidV>@4@mp4?}6nH!ac*^)`=LZe)-4N|fDd?(iD3+45dd>5c6$*gY+D%E?X zXVPaYeK!5xF`qaCWx~1Tjq;UB*C2!6B^$q)-@DIvUs`CcxAVVy@$`C%9p1;pPUY)$ z69<<0*BeSQh_~>389zUM|297-Iw<(dG~qad@bbV1weM9Rk_%++Fmw=GP{qYWoKm}7 zukZvUK6ztC;T|{4otpkyZ`X~;E~hxWH6Qc&N_DjCmK*N8Y1*s8El=FC<%M!?-#bUc zaLs5TO056bysO`}6SLWXZZ~WcK1;Y@4=X;PktnUU%=pm5a~& z>fcqLet7(o+jf6)&QD7NZ;rBy(hE~3XU{!#{Z%ubTzljE|MZzX&m;#{cAdK9$dSdf zPdyiYKeXYNd!MPDGWyQ$tzS-cWlsv%Zn@#$x6?P?H|JZkR-{f}G5hXShmVXdX?<|U zFP~Zbx_2!cf8^6!KYP>6t)H3GefM`hx%i#ae)m}V>DtJ%Km2;_E5H7u^ZsVpsSiE$ zbnA6%kNkG~Gf&NZ%KmlhBbOfD^qO-&{M&8!{dWA${ZIYl!Ms?NP5ZZj++^sjB^v|uf?|Yj*b&}!YZkJOXkk4 z(@vHxN3tJlttjm4GijbA!t&Vq{Z}4YwPe-Lr*x;^7tQS%dsobptIBist?x~(xbyTq zPprFl@rr40`s(8oSO3i2bln#}GiS%rg>UxGC^1f6ojv!4tFC(e zTlw}|_8fUUwfMvEr0d?rx19IO&zo&N4)o7S8^uN+%vsr;f?Pcn03!DPT9P5!_dxWes<40G7tRY#$O-k`ud?~@4n}m zSO3+_`)<7H^yiMeX-@0TuRn9uZ~y!AZ~7l^Ipy)st-bc{-!`BA?azPs+~ME8H*tOc z(*Emqj9szu`b*~T{15)iU!h=F!MPv>;HViVxV(kQy_+N~J20{`-bOt+i?D!&!@N@EW{PBTuAh7wP zx$mo<5#abPzaNsXcBiYW>eZ`P^{QS~SJ&(J`roK5&zXyhZ$hV2$H_7AW$Y)fHA{DV zpy%donSgS90<{}Wtq_Lb# zB?~i|KFyc?RQteeOLNJ+_kFg1?>#biDq|g|xv2oKGLH0Uk8>&)O84*2WE#+*6oG{) zSoP+{fa|#ab&6>~Y3N41cK;XiWOnw=7M%Z%Cmbc-)0Q*Ol(gMsU;Cx~Pya<AaW zU#cox%9Gd0-u`xFogM~Oo|F%Go}dlZ7M*pwJW)+C%(iIBziggRP_XyOjSm0iaYDJ{ zD8*@a@s5M^`^U$zN-67ncq_-BuK-BfNB_J+A}O2+_dM}7IfJQ-F~g@V?0KTC!oudm z+VfI(m?u7XK%Pe~h-cvm(TtPVsnWwJS`AYiH-GC}hYnyDQ%|>Ju93I! z@HZXmShwk$np(FGOs`WK$b5wE7mt&!?0RyeKGD6*lfA0Dkn*Id1<&sL?0zgM;@0Vf zzT4hfMEB9t=IP^9Jx*()<78?!9VhTaqtjW;L(Kb^{{FOEr{lyaj?{Hz7g!tX+Wlx3 zW8-XZS9Ss7?VP=WCx{ke4=7Jmb}3K#`brxgp*J5msMPoMDNp(i^W?1i2;S31b|nVp z6YxA4Koezrbd-TJt2`;9kLh{RFX!^zB>H8_6V-BtC+GvoQQ^r%CAG)MnDzrc)ddu} zJPk+d#p^3F>9KG{k8Pr&?}H2vmFV(mn3o^;E7=s|X;Aoiy+-m6{g#Qs1ry@+8z;g0 zRjsM1#GBClTe-dwTjc)AG(5~iGWV`hsxK(uI$dGGF{%E9M5=~|~~BDJGPy#Mx?h8qTb#7S1@Nfa)bST* z;u5{bPjwEtClUQbzDPzoKZQ@QX?WJ64@I}2&!~Gh;gvQmXMJOOG#eKdT={U1=3KD8 z-WWY5Rum`H&{Oogn^&TDNZIH_UZ-!REM;8+FglZpdydx|)UfI&7U>U+wlp7Q7S%>1 zdWUIxN0-uGcPX8EWhdV2JE}h75OAjguX>WI=lDT!$1ANLl%1a-|Dr1!zT8mjM*MEfrVM)#mhq$a0rQebu0a3Me&(=MNoz2!V{QmEM;uEv8Jv~4BnZmIVqh9Aq7lmtnWipm@G$p-AXS&ReqJfX~=~0?V z6=~ENekYtgP*8T?iyTS6IY16pK5WgljM+Q8mro&F%o-6(e!l;!#C!yuqA+~qk#*SS z4Odzj8wJ5w$jR=lsN5ZR`o$Ls>$KIEEModa7B+ksDbt@j`#-V|ojn6O$5_Ap2X>@E z*{R0>bvkm_?te8;+EdIg?O_nBj=bkdd;e3_T@DZ zwu5o)_TJfchbQ_~M#{$i?jtDNvnYQAZO?yXn-HF;Zdu41ax~4_?WadavC&ylo}@T* zhGK5kd9Gjm|Fg~RlqU-Pe}>bKG$?-h&(Y)wJB_KEo!z)s+dTc21T|m0_{otjh z5ZhD&{heQB`1yYG=0>B{iqjqlBa}}xuHpdxj59FK^j7rz$5NHwcK<;iI>b+C6` zo?ylnYo=5E$gaKTjQe$x=gGi{|6h6XAIq+;1U_2h#LJwZ$D}o(&spw*sH=zA3Cja% zJpS7N2s*L~Kew{1@EyIz!@7psI`Gq}kB(r9cSp{~3jYVWNyQU=DK{bb`D2-X{wPh8 zYdd-VtpoF4(=arx(md!L;*s~X)R#_K(Qt0kr=wpOv#H$GgQN@(FMpe+`}i_=R1Y!4 zhbB?Hzn}U&|CIX4wzNFpC#{%3KGsS9x76>#N1gnokLBK0_H=>mh#bA!F;6tQNIqB8 zyRMx@)zQ=R%-`VS)IOsj>`#2DC!aGL)q8||;P85i_=odQf;@BzJqmS>o1%dteRDxEyua#a@^F4h@~r!JC~!E@GX9l+<}=7ZefMhIH5 z(5vx~+|mN;(!+)$8N@arLUEI7xRGL0ui!MmS#m|10@IAgph>?(M>!qr3BJGQ5-JH| z1=2&FS7cJ7ObU3|^EZ|@>cphUTs55OgfKk5l#6-h^zol*T?T-f}!VDO(R|dvfP0gUs7^+-S$6F$^K?oY=D!TA^Y8ih`$kNCfL(WZH&bLLec zeU5*XgGfh&#kUceb1EIYbLqpSXf>-3nwZGZ{x;IF)s(|7BEMLOvE<`zD)!Qh;>0_q|bP%tB4r> zhp7lYKkdz2Bfle{Fh)kK5lbsj9bER`jP*CcV9Cp;z-Tq~QAEtNUe#IJnAg3=mO7p=#( zoOUYmXsw&nWC)>TiBahy^7>Djz~DPS64dsgqUYQ~0i=@uWCNWW^77~?fdOhr5<6(Z z<1OC}cEnXkkiclmnF1jSa|RTa5@Jro;I4OEv`xuxWRj^@76ud()R-4SAR9wAAUS$C zqU10v-OMIV=#1mo5aVW0c3Y)skrppfty#8`oP(p00}HO>X%!v#hAGuBjdey-V4MOS zxl=a zo&E-P2CevU{hR=hdft~+fD5)cEh!&7L{D8fNqpj1gjrwsX>|z<{XXBPV+#RAu?z-? zO4vmNJEwv^p6n)vod3W8DvG$2#1ckqz-!5~g1&)Tqm=<095+m>?ld=qyr@@LrKA#3 z7%0&I`!++;1_6)#aRm`u)oQUDDBFzQrEP&njHzhWOq>mvQWM@a>TG8u91diV3R#dJ z1?M`5bP!t#pd~2XIxOO8=L+d%QlVIgEYWEh9`Qs~yQ30EY$&pxT~~=tNhX~=rMh-l zN_2UP@mNRl5|H6$3Im2_vmE~|-#SCxs>V2L?Lo+tHJft3y((} zIt-_5ry{l?b@*QA@JzracT$OW5Ay}?z(!Z_9ri&EFv;qPc<^orr{32kHS7=RXuQe!s^=Q(p*tJcddtUH**;R!&Fu1gq(M#n$x4EGuKcrgPU8N+?(LQWp%_52EJTxRJ0FHprf+7gS@gxJos`ELl&UxNYMyTqX zbyU`r7^Pu!JnscURJn4&ZqAh~4JX04DmUbcy+&$bqz5Y_?7jsS`Zyn-kF;A?-Nm;i zNp@glh;t@EV}wHGWaeK7Nd=)#HE)gvXz*sVgn?HbcIdi5Yk(e?QtXVGtV&poa#1)f zwc+ag2`2!A4BpFkIEY>-OE|I{RkOvN(J35N#SW3kaGClIo-BsdG6hDeh<6m6;yUc8 z1NTlZILFWM`?kLhwlqTJbB;DiU`35I?+nWri`XH+14gnsGTfhRIiRBrWeY?;RPJj=CmlnLHN3WPjM|y$hj+A$xiB#d*n=* zkYIc3W377d}tD}mi`8q?DVL#?V3shWW^be2Z3NiT* z#|@G=0pB=1H)ym!i3x=)OVK_71ygOkpkam+ZM(@~NYL`!qa#)x1e)AA>?@bKae-Jz z11c5P_f8nNZK%$n=1hF6Y&WLtt|P6ru}q6sqN**i`8F((n~VmFwI!P*GiXdtGSe!D z^l&(Z#0$NcrQ+5+ki&~)L)aLaQ%opmAQ-9h&Vh2J`IQQd-pf~zFx+GyMrQ78@}Odm z37zFBGqhTZqvsMWM5|Au;4CEA$lpgRw%aH_;-iVhMJqWf>F*RsvZqu;E=ctA7sgsd zJu(mBI%H@*x)4b7JGCE2JpmkYwh}}=1Jz`1I1$BiE3Zh9T~`>@?vhx*~X8&tc&^?A|4Xamimq)iY zTJVpGkG;>5ecUSkT^8aq)MX#}gQ6Sa%(jYp!a?J4DZlL%V;-C)fsg4%u>L z(v)G7rQ`_-Ov@M(4ENOnXL|b3nQ7!2So&aeeC2xAi2o_D3&WsX6Kt!^+g&a_d^PU` zC*7i^qs+gQ1%;kbGZRR>GMK6H5YzmGJH@Puq7EWJ?VUkc&B?J8g1e3wK+d^%$h+Kt0^E{~wJ zl$GU!PMoC*03Izzp;SlbRcGXJY8*n54%mie=}CX2Uh=z%<3^wBK1R8L9FOKG;#6pm z?L;_Q!pUy)%_y3bQyOM_K_97R^=T4mwgT=*4aDK~s~UExdp)gav-u!eKtkX0s1Xho ziaaqanVBb%`>!{Ibwq+`HWWKXVRpORXX1vdT?Y^D#vpl|TcxYS-8`6X4`VYU^Lg^1 zzsJox;&?J*l$K9-yGLaG(%KuA-ZALT8kXOUn^B<^_ucFaZ_aO(2E$}}bYLN;`;kFV z*N_nFniBCdl~W!bYz4!|B;}-Ou2nt8K$`Q)C&P&j#P7Q$Dg=dX40`X zjqCul9N3BA)X7+p@fOt!)TwbpJ?eD;FBw1eE!4^#4UYZ7EKP`YtfH3BT_y#PA22L zG)m`7a$Qmm=eEK?vs!fJP6yM_WZWBt7idA{O3X|)31PQP^5uly>rEUQL)BUHMwxpd z35uZ!ilS<)EAuOaFDI0sChiMUJ!oKGyGzKLn4imUv_|>z206t{TH_?nvJFuU&+U`- zl~7>^1Lk4K7fZhGB>m_ZB9#D*@?<^;g%bQp4zIv3hG0T0@RTQzKJmf;q0 z*ZWVQm1%B`BFkwjm2kK?s_?}WIvOHr*s!M&XB{n|?IU?NnX^Wl zfoax5TkQcMy^{iaPlkL|a`f#a@j*UZBT+LZf;Be)H%k?jPaCPq5|_9~>NN2p5oQ|| zk*N#hWQtNvJ!{26NtHeki+!@$J{|~~*2N`p zu#d8h9H9e;&S8?lh-8yQMT#>#g^d;^Rz`}9PD2GPIAVN|3OM@JupN?K zgZR?ODoA?g2Egef4C&Mc`>w`?B_8DX+|B8e5U^TnBAJUN>rB#@k-ywMAp_HwD*|;v zPgORtn8ExREeacZtm(T$dnQefn*_w@W0C6%?+6n^B$_@XScAILKq#m3yq}o0M6f9@ z-)`L%RHD=PI?4s)6o_+AIGY=)+7QiqVun<$GM>lG!(LmJEu%Y@CUVTFNqmQXWvXYl zb{V-ss#Nl{(kS(6REe54wJZ7>ftgkmN9f|5eIqX$OA`o z?gv#?#4I;`wpv3YliooLQUk-G$aJb9(NbS+Hsb+Z=tP`s(pfp;GhH|$yaNop{bzTA zWV71Znj6QG+B&c$fn&H046h-tFT0bjc$BomjxOvsut5;XjH1@LpcK_tr+70&jHb}q z7bx8C8(Dd{iKB@xA#Q%&ysh9WBf0=9KxnTs;V8?}jvKC8J13Hjy4x~n__&$S3~8IC6;?Qt z0>>HdaybiV8mCjbI06oT;R+&0faG4+aEGg|O`N(xKjXulPT1jl_V^64#N+a5CPm}# z0U-nb#)x6Lkw$Whb9!lrxtz^@ZG9Ib3({z#-9a-D4t!F?>Yp2H^wK5J32W+E#ta=s z_$E)6-N3w7w>FT{+G6E!_BwMzTv#1na?Yx&R%F&o{PBDvF@3?3$C49bJ79CinN3j& z?OP*X;^{IDnNtdQ149UaQ!9~kB^QrWpxnA-37u5Jmi4(ta*K_GWhTWtn=~l%rHh=O zQ1Wk2Oi`yJSv7p8b>XxLEX^`V%Y1T`@>@OmocUjz}6%>8aDAd@W>D z%wVg|HZE+=O8qRUO%#*mgMsWUH>PEwkznqQIq@a6$3)HzgRJD7M2%-KHOyBQr&%>L zu~%zB*W{yBNl#;N`BL^N3#Y6e41=4C;m#RW08U0=$paL=GcxY1Mavu0N#)iYEcrq* z*t6DlI}li2qhpb8Xk6_G-UZtWI>`oivAiEVb>Y?3D{@QbPMmhRog4k|%K7oR?uyIi zjm8Hq?3ov?W#O~7w*AiKr>$fvd^}!Q7=i(eX)G-ejaf%ckTV0ZG_{W(8$NXNhZfUS9=gHW9V5|>iRfJU zR#|Qy(G^tq{z;i}a#uXTX8Z2Rvp;37Z~R_pMNVx^8i_8n@`Kd$95E0qNjPV!##PBi?>mn0FzcY6xAuho61H+T8PMYT|ox{uwswEU~5 zue;#T_?C}u-TFIMzwf2{|LDCR{*`O~)4qKBBU_KZ`jM@Nwk%)x{CgM73x9h}SXuj( zC;#Z#bKai&$gxkp@BXttdd<*Nxlg{hc3JJ4rS03FS#$kk6Dw|8uyM_@wUs%~Y+&0m z9)4-zdH-|8dH-$h&KJM<#m2g&$7gr7>a_>9eU=eXz4rrW-MhQ*S7zV#&(B_b&pYn> z!;>B&_F^~ZEnoZbZT)s|&kI{_d-hkyx2$;238&^S8%@@UQ=Wv=I~OcSZdkBQj@y3Y zv-!fBzxz_}_IrC8F8h@)AA0uC)+^rg<{!K?`Ru+Yw|(>7A2_df|Ia@EwX1*d%x}JU z-UrUl-usCAO8?(J_k%|co&VAO2S2}m|E{;2MOXjT$|stay`x&W{Zsefzij{AZ`rcv zxpk}de0kZKU%B98N$33&`(l;%<<}E)x;kGB&MBjdl0kr($-L2`; zC-ci}-`a`HGr#5H$)>yJ?E63Z_H*`q>h>28-M{dn@X!9K@L=>AyK5U~iTb|$!S{cu z@t!l^@WR0tpS=6TkN?^E&&){ttw#U&p&y@jOmEMrFU3+;o37sX-~art z_q4zG;#>Fs!@KvlcOA;Fy8o%a-Zrznb=Tg%dGWYIUt4!*-`)T1`9GX3tv&a@eD9G{ zcVBi{X=wkAfB)sL-To_o_Mh*0@0q`L=AmEt?LD_Wnf=;#2M*>MkA0`;9{YBE%d=m< zeapW6fB($)erM$)|NX`MWeYyEVd!^XD=+?c`TU7m84KEbHglR5jU~>h9`GlG<*A1r z8kmIY9nVk7Fzu`~2rQhCOzX50;)$sqspu%N#U@bR<^D6OD0r)h0=jd6Ye} zgL>GN6n=fj;ggnmYi3H1pk&7g`}4q3;(hYez`%E(6Z6@7BAG7(AoaRez^l{Ewiotb z*G_RAc27SI^?m()Pd>f1-J$?Ol_tl@{drZOh@=cu?J9frV3B5^M^88BIF2-+D8{o- zK7r-5?7+YW+mE8D_??z6Q92YU05l#LR|_}WS1w|i1X6@d|6X@f^EI5GS6$+DNpn)HF{c34U?oi(bM>xM#km%OL>x> zGwv3j@Bc=z`XRbg(Jsu9`{_7o2m9M+!jpfd&9St{I2j8xrM*r| zNC!xlCnE3!ot2A7haCrA%@evJ@r)CwS6?FKi8CjjxOp>2?8lWS&M9AxIl14%Jo@O< zQ}5&sdo`Slrv=>D=7D|66KH`aOJx4ID&D=!6OUK^VvqKa^gg{lebJlx_oDY#XptLb zyLa>-_#hqn1|25{{wKt?l%{4AO$KDxSa%m0cuVbU+O1 zga2N3QCHFn&2o+qAT@ML^XU*BB+eAjMGA$gk3R!jCwO`UjRhbK-)Wxwjj zJb{s*LN50~wPxgHmzMJ~PcnP45a~HUU%)CAJdv?}j7A-y-J;nv-9ey=eiXWWt58{Hwyd8 zB%XSbL4#dIaPy$9PeHl^X(G+9@f|!Kj%30~Nc@6-?<>4n&?$fAgx6y{DY~GZS6f4S zyX6qRp8OnW_4u*R=;uz_N;k8mG>ng2Ua7PkiA#hnHC5ji9_IzZ_NR73+C$DY*juJSuYoH_SV?$-Ih zg%@JCx`*3R<-oWfwXArMMSHMXohzW#gk3~AgRUguET1r!{+niJ^*yN=5-Xyq)fLueqft~?)?_E8uuQ)(;q$kfPCNVNHWmRzu^>2+ zl8Sc}La@xn^lDB-C?Hd@V*EKy1zq0i!TSe|$w}10@$3NZv1MJ`3w@&&G zcW(uHP44G;^5jNX)K;DhKqb65@kQl{m%oy^khg+b9}7>gk9=uGj>(4Ju5xzsx&oYK zYCdqra!x|YEKj-8h9`bFnJ!O2-mXo2qJ6CND^KA3-VRUZd?n?{6pEsxwF^uD>0fGx zTZp*$+=DN*&yD3d%=o^{6P=yCV+BwWR&1W~K1&NTU$6w9s#MZBr?5=Jg+eAXDoKl5 zU0RM!L z`@8%$w<`w5jq%pz2;J1ibN99nb#(+qp4_;xy&oF-Pkd5qX4~x-&(#@>d&lsw_^hq& zg(_(`nIJRJrtN&s=5?E)Pe*X7BXErNaazyZ~v+)K%o3g5Hf%M&S2 zmMv?)Gv!GqA9S#=8W^~brwz)yPuIftw6U5!^)x&g-$NhuJbA0<2~urV8>FdqQC-HZ zou3i%j5R$eM{@c3af0lke(+>YdvjXrjPfK}Csm5k9)i=?AT*x8=K@LXdkQ(8QCOaj z^`GHI74h_U>ELkFbo+n;*E%W1K*)kT72XvgJR@Bv>^(DXy zcrq~1;Yr1hlTqafva2m`Wu*(;$Os*6uQd0x_wY2gxxJtI@8POEQAvKZUCx4$iPTFR z{M;%cg6JSHr;mF7cN@Kt^^kXz~Tb@U(6gPhRvqA&4g z>)W~WH7);l9b8>K#!QEXKh911^lo14Drz{@Kjbvo$5VYm)mMxaCuNm2ov`3Ti-(W8 z_#a5)BTxG)Y)N+X7=cgme4^uT>%e#QBUK;rmH6kUVfi?*N7a4Kr0AA(u%grFC|Gp> z@m0T3hlsb!sPU@bsNu8M?Qibdf^whtd9+y#`=riq|Q2doJLDgBy--ztqVQ4wG`+G8x1;@oA|aR z9jCcS47KsB-l}7V-kPdo;vh>o6sfj6+1zQ2rMVQ^8uiT;dQY@-Tyb@MYoLy+!E+Xb z5|*W})I+f98X8Mnk!ypL-5SKzQja7T>8drQaUFT{U^3v`uae1tU?AdWm(Gh({!;88qJ90~d_lUAcLT=_R)WSGQs zos6@3;n}2G&>MADxDCRLF;$xubG|W##t#Tt194(FA`E2c!2w!h6Trhee@5|hUIq+iO#XkQOq%&B3+&9s&qB0(puFYXlsL2tF;Y&tp! z`b64M4}~~mNOs)FvU5J?zoZ&tRYEC8*Yf1)J=a1mbcv7H1C9j7fe;JUFz_9#rBW#sqm!NpXYQ&KX zGSMTl5-bW`7=;6%(F$;^Sd)$LD{-j@oN%v&;RvxFF}+L^e@V`QSA{_2@dtVh45x7> zdKcu(?q*9;Fh~Mkk*8@4N-Jj zo*92r?`v$3_#t4Kx^~EDCC_#M>XZX5%96P360eO2Z^TZ}rjd10qWgl94O0!tC@g)DOP30H|B4 zZ%eB=GtLmy8t@--N~NU6Z1wb15RA#lkPHrrZo&PMTto3%ldRBz?x=Mb%#5tGh91Rj1nLOoIOJ`WRZM* zLYs7M4TaB!iNhWaOKGo;I73R84Rn**dF)vi48e#IaW$V1^I=3SG`^HlE8qm!_SCBw z!7?*aUXg?)H^D@bm~xX;Tdo%vO!>jsh9i+Nmc^3`qXjbGHZLD=tFyMKTnI0ij@VkI zd~3~Y(~yU^5EDkxH+9sTYIC=?( zc@SKB6JEy?WPw!D9btcg_-Vv9A!QW~s%H3wmN^&SFHGrDia_yl;AnC{`{jgOl2u`t zL;Z?#m$Yo~#fbI;ONcUE*hJEhA1fU(Qx%7QSr|n!bg`HwNBe*qIyq=mR&D_2Oph$2 zv*v>GP%)V{N#5mU;Xpnfq`-1gFmc27GQjJVXmGIDLnLZg8>S1{W|ZrRwg+L}tOz*m z$n-Qkv@j_SL`p36NroE+zX#cC!nz$HCK^sy7>tBTafq>D;wWNBNwOecVMtDJYL%?W z)}!KV2TPYZMyC(Cx$aluoM#W~Djf#J%AD$ZWY9|dNoetG2|`;x#hf4NaOTA3LvW?0 z+~~Tpb0!?!N1@X< zU_&psAR(SP2|8mLi49GbO_?`QN)l5I0~c2@y)kIZVbDV{kR=nlXKawejtx{eYV@&7 z22STA_g2nnCYCutGRc}KQ;MT)Ijme5Hwr;*hQcTt#h+NJQ%peTu!5_JRK-k~ z*aYy3DejhG*R3xT56iEk?~F3WDPC^U_M>h$bc>bR8%7E)8%+)?R~WH;kc1w6g=VN? z(d{uKi0nNasf%2P@H9>vKdc|iYD9&-ILivT zVNY9WC7RA7t3kZ_(7*$hp33A(r@I zYACH$C&@|0z@pGu#&Y4!6D}9J1+v0qw#y8C5kV5q473EtB8^r!s!rMQveTzDFDKBK z$}nB_TICaFmhA*|@Q|*c!35s`V6H{X#=LU!qU~CJeDWfI!QIOmE69#8=xvtyzohfI z1j}q#((ctGJuIdc5EXCM1o+&0JlBq~&jV%Xiv@?ymN z>f{Dyx(fPoVQIQ%&06PJJ{dD<<7gyb2S+f$+t0NYOLvltj>7H{l#2#jzS_tp!&A5%<9*+dNG@quvQE+|r zSXu3wL11ByuJUv&y}A*p(`$3Ko9*z8Vn#R6G#$Id#xZ&)8T)@Lr#D@^+k`dQfJB2Y z@`#x0OjBC1l|t3Xh93<(1ns|sv+?w>ktcYMvfHT*Czs3$3Z&5|ijE}>)H^hIHn<>s zjP};|fP8~?C~45=YvH!I&sD&Ea-TdN1TOrI^53|f(i*rhsgzqXlRMwmv`^HA3Ip!5 zeE4Q!gS!BI^*Ifuspt|kwPp&Z?GCDw8~R$cQ6s0DoU`aqOvnlMo+PzwPh(MdlO&Ia zvdGEOI8&-l_ZA1Y<)b?bHZDv))VDh}yBNHQb9bAQo%F3dtFiPAD4m#=8$2d+@Aq4D zq~&qXoJq;JY=~wsHU`5O=ScXaZXol!p1+>&!JUu_i$njd`$hj3}UX?#;_uP)pLx>LRNs2c*nNFyqq+TF`1W-+t5bVpnW2Y3pE^tK*mS4tP41LZII(i?9q0SIO9y+ zqt#_aztz^9mh!Gzbb>?|PEUl*ky{)ycjVwp$k3JtmnO(oEs01j1=!09=`4kNmw&5n-2=q z>!48Egf@dlU0|XaF+)j)$pO{Eyxb{sgM=-Ukp;Dd7>{+^qxjPjHnyvrAF8d+wB+Q$ z)8dOwqfza9*u{lrRA7Zy$ToIq*YB}>z@&b2Gi)@2xr1TU%+w%Ia;>OV%-QW??h2cZ zTAX^TD#?o82XRx?GNmqcQ*$iG#N2DmL(b%a89Choe6$_5s(f=|vyVs92=vwj512&4 zh?5c8G|R3Jqd{vUv4R>EDMco04?5UHUJJ{}c_A7RIr_V*-{q9^y~;-4og1eQI&2QO=t90Z!2-sWcE#a})gj+=R=5mlquUt!~ ztt5P5C6%HYIZ~AyhC`>&P_Rk@EeAK;6c-tuK6DBWU{`^4lVoQYNUWLNe7ds~8jcZ? zjL7TgW0NgMvSVu=3^Na1jf*{*UV3rn;AZpGfYD%ZaMM&GR?zvxSnEM zQft&3;wZl!1Xc8fX{~bNMr{~N-!OedMhtNAOjs1u7A7bx&?0M*ELBn2r;|e7lzZ7| z1i0SHqs)}ld#8(X79W8@w#viSS&2p@%McE1Rf6(#k{~PVVjXjb6UXS$3iJ#@I301A zsu@dvB!3cJF<40AlX4FwE+?l%_J@EZuCLgcRw?1=xyaD7s9?l*36KF=S!GBPpDe>+ z7SV8LgEc6Wmt+W{U9Ukf3~GDhXzLy`ozRwu0im(Oc$#Z8NM(#u{+jj3pue$n=4Kr* zi6&{Yyxz%RX_s*0L}f})VjVS7eaQ60L!;Q^$p_Sy{1RCkSaZ3=tz_8psO|!vN5txX z1O#x2KA6TKqF!9)|`1%3ig=hlqMT<@q5k|Vtr zCy}mwvq($1rQ>pWiWNW{->i_# zNfOfdu@VU~ws~w`$~_vY=qIND@)aPA3+X(=6>&4%`*IiAByY*5Fp+gmfhG(Q{29KV z#q7f4mje&P=|(aAi@F?L$2<<@>XOjVuyH28boIi}$^&9XXs2menhyhQAl#`DZNjbP z?^Q19;D`o_Y088c1&FjacAe83lU^*7@xP=2jbN@qc+e8wMMx8F24d>%+n?(5xhgs^ zJ0`?vzM6-gmep}9?<2V6?6ic)cwBvT|~5NT4U2s{gFo$-f$Ep4xpCj2ypkdETy*Y{wZTBz?^P|P+(hH)8bD4aJ zkK82xwzw}mzYiPa$z(q2X$(nax$h5iPBR5Qp0I(Q%O@40`PrS2@^+s2ndBq*+kbhv zC?yUT=Mn~%iMQopwF|RWl81RHMu2F8#ly5t`!Pd5Z6?N;k;&wH^Gth0LV;5#!W6E1g4=OpK6b;9EN1hnpIaqM?J7=R_-9?lJKZB5(b7F9xK zl;+Ti#9eV=(la_QT%F(1cYW!U2ZkyPAm$zi2W#PQ$Ou=S*fBi;w)mI|gpr>7qsO;xy+*lcPRN=msjg zkUM>Ye6kYZ`_(6wBEE;i2fno_S~C$!?F**(mfqJ-JL}AXyx6t#V4VX^PX4|bg!2~Na>A{B!IcOaS$IKty5M_gXqFas z4oOtMeuQl>FqIZAs+;xGJKz0yz3iH+)-D(}<(^?1*|=6%SeZ8xmaofN8@}!htC$}n zM!y}b$L|lMRoix54>om2&XD-@hfYE!7uf&oxl@|EqT;RkFtE{WTQjumC*i3#En6QA znM#gEu;00=te+flwBONn^YRONaww24x@OC~E$bHjAa~!hAGq?@KYHbJ`+uvtp)a30e)oCr*>dRO%a(oUcYgDl^WJyfiC1qqdvR`YIB&sm(VIO~7D`1}>|4PUwU>uWC= zD_+BVd-^k1)E@iN?zIPhee-)SZN2}6pT6$c-#>5h*ROuhjrU(R@~QW=ez?8y z_jmOF>EiSD?D>P+zI5;n}R(sGA1v!~mKe(RlERZ(YgccXm&+~gnYUp6o-eLkIPbFjDg6rgmg`OJntd+C{voY($w zG`{ctGe5WKJ?DKj*Y|t>Sw^>?^7nTfbI+59Za-)LvhjaA?+qV$+llYKWZOx>He^@k z%B7$A&ZmaHd(-c}S#H{%nY;ba_doqtXI}HOTYl#!FaGGO|NQ;$Z2d2P^7cJX?LYY8 zPyf;9w`_g%rHjA+Z2x7pu>YP_)4OhYlg0a-Tugue|`R*yMA-WsW1I-^QAAo z@Z8vqU;W;Fx1ICp8~6O^Cx^cLv#*WsxbX{zzP@Mw*YAJorY*NGyXL%~owonBPhPm? zr{DR=HQ)Nl=+MsE(dNmzb$WhzY>bn$FDzZksm(p9rc8gP|Cw)aF0-vqN+O4{2Twm; zDhj(X3=5?a26a3sWA~kNPF7dben}0BEq6M(8h$DSY@%9EVbL`C`581nLVt}?@QX#9-aErrjvV4dQl!-p>y`Zy{)~HdlU9N?!y|O z^zYkOk^AnuVedgq)!lOsr@r4DumdGyTNRV){~cwwZtK_wl_yZzUOJmn%;{N3?tkVd zdgQvPty^iIafa4KdD4J_QVG2PPswK0I;0`6G~*d__*k()y-sPiK7+z`c|skM11yI> zqwV5(0^HPh-a7?Xre3%2b^8XssWaSsjy8|a@00$ivCaMCC!CPsytJOE=M?=b|3C~+ zw1doYj5p=UD1~Ll`>kCDPY$4YdLcYftAOwXAPi}01=098;RN)!JWq%id-26bAMHa8 zzsr-ut-Y^u;6Awl$a~tGH&-h1=0nO0Z8KU#TkGgL-)>51JBBCy?U%HDrqIab^NZL4 zgmmxl6!Jc;I}VMxj#E2~{FhZkiJ$!A#^Q4XD#Zym7KjTE* zfl7Oh+yhV0e*iLoC)fiV*ZW^4PoDF#>n7!iU9sY^12h~p>FNe`Su-#uCLJf9RxT+| z3R32coW^=<*=^s1ej4{>c@qO-fuM^J`m0jcQ z4BCd3%GjSGM0^)H!?$NQui}O$dp%EnEbs)8h3ukum0dKxI^_vnTX`by#Qc$J<;AJ?C_xac(Q8-*`k5Tm-eK6_xE%*WHo%G0{PpNpQ%ogr}4b^_) zSAiMiv4$rI0Xnr2Ijs7PmQ8ekNKXQ9uTlA{dXS-LI`F)-OhV1a_Rs0SEhvfFV^n>` z*b+~jd|d`py~Sbbn%_O*R} z<#&{wzVm|`-LO}GQ)(MA8SN<(%&Sfy`|2cgY$m2~`78aqLXq_yTZ+6#zsl!F&ry91 zYum@zYeW~&q62tUF_O~yhQ~`v|2NjxH7?qjkVo5Hak3+uzXF{~g$>FbH@G5bac6{YAb{>7c5POT4XkD(7s62!% zNiC13bo42`9%L!SBPAZ+JMnJeDbUfi=SV~448!uO(VkWKD}kfjUxpjg=Qn2U(U#7F zv$N={p&r-VFVUX%Zf1R^Tf{)nKdw7QW-|ev5u>e}^+OV9mK}ENM&Z&c!XZ{sMkrUQ zWV8O;MkoaFm(GaD7QQ*2)rAk=k3hETj*_Yq!u-cFVD_#%bEHPNS)3`t?)poO!vYm5 z)&3cjO1$v51Gy+dW-^^*v+tcMggJJ!SzU}Oz9~6PZA5#Q#SY^MW256t(daWm33dG8 z4>c)~$_Jm;dh@`W!K&dsCp{{&O#~*T7390mJ>9;ixpD71r`r2JxLH>Ls$F!n9mIHt z3AY0nB!(w#S**39ZmJ0<@70+hz+@#XNkO@8WxDe`X{Ax7!wniOZS`2^a@ct3x^~Ulk%WFKEC%KDY|{yX?~8IEfloWlqalF+OK~- zJW=JX8^)O9D<8~w&YgIo=gB>fKB~);t-kGF!4uYCsyyFa(|7`o?xit0s`PevqV2(= z-q(Of5qvcxDotOe#`+Y2DiSpkp7?e{4XxAaDNm->jgCM4^qaPx*`9j6!m$ADH2ASU zVa-AtAN1oy^#|#*9+!SWK%}KK_`k6+uXF6iS(mw2w81){;R*A5%9FibZCx5K?IRy< zAKZE*Cu5BUD=(l_`%rQRu-CnLbIKDXC*=v>ut4Lt?Q|{7Y8N@)66HzX_zgGA&W^#8 zcKc0GwV$=WjuVsseO?IkWodaw+m-gdk|!9f_Tz;0$5Kkte##SLR5egTokvK?_K%Kdvr9i3wZ-#<1q;s&nts9yDNj1%B;|=Fpda0NGC0f= zRr%&gV!n>S4$BEEPhKs%&Y3fi6FAW2Ng;gXd6i1)bPY!TQJ&yZ*_HA{Wfwg0vWtUh z@TApHo~Z1CCw!2m&{UonDQxgO`Ao`_itCq=0z0dV@~jDsBRKKtt+6 z%LV7tQBzKRbOSwHk4eK_+l0|)e-7@nSTigB3GeUdz<2Z)yE=wl8;jAGVDcR)Y(9G! z)@t79chfL5P7)Dx?J*vvxuY|wxMGFx&>DR#&8P4_zN3do+1`%gf^I&q-^kYer#tXL z>UZru9;Wq6x%0LBuD!?T`VL$tzH5ULnqQ+^(#iLF-7uF-`Sp6zUjo}jH*M0p&v`%m z*VI?tJ&jOXg_;lBglT?s{KOIew}jPyWQnFqcs*h8dR;<%`H|OEbk{!If&WRGuKJ8Y z$G)QMP0RASj*8>^KI|yl~=2yK)rR7@m3|HcJZANOo zjlfAR&FA$S#YpWR(|pvyXmZ!yV^?3YYZp@elBU0y`rUA<4~bsm^_u&a=K4D8m$U%$ zzc0s9r;fAT8jka_iaVThE~@b}KG1|J z$DI`?^;QdX1iYi88E$&gkf$l^-XF1VI~Y=oFXMgrP60}yFOM`%uakNW`30sE!>5-m zw|t-`eQul7z$@Gme?N$j=5&IGG2PVux)rhdQ>4{ywCXT~{x}>yiNq&9P0tt`o`;f? zq!L;ZND7Q7NOyT`wV`=^uURI23aO^kHqkBxlbY|yM;9&Dr4S|v(Ke2jAo$dGlr_Ptz4IC98nsMp%)ptJOaGE{> zDqIlo^CYW}Gc#Pe+*+YA3Z{`b*1FsVh=xuTA`fYa&c4l97HYz2qq#wlB5>5cr7ggX zW&}IGmijYNvJ_MCWd#Np1E8LkvmCbuLQG=Bc#>wwKdf04gC4>O6j)DSSWy6;#zQ;_ zllkDYGl(<`1w~^)i=4Dvfq#r_{+x)0I*t=8+&Lc#fKCzm;E`YKt5G;lHE~E-$m+K8 zq_2b4!pQK_?~7J8~2913)`IFS1=rWS9s&Utsv=^Km4H z(r_A(sse&ekG;q=m^#jcepH1uaig86r82=?fSdw>!8g`uNr=FBZc=VW+^NJ58!3y> zZg7;m%TR*+iH@b_?xc~c5h7Et3tUMcRbLq>sOa-kY-*PN)`Jsg?As$97DB*)1Z z3lJsy>k(XRnm6t61cC`7I+6Y+>V)|^utr}V2^L_qdH7lS8drq6j_?|BXgp{NX&l7n zYWU;Z|L6fURAMs_Dl??zIgy>XAfeiljPx$5bNWWJNd7;8DXS;5JW7sXY5^oh#8{I! z2(=?LW(16;87_Q-1s*N88yI8Wf5^6bVSq~xs zYQ|nzBCTLA#{$#raq%=M=ViGb4-j!90i*u4kx)$)&q zn+QXXhBiNpPAl!iI-y5e{-)_RJ7$WWkWwl}gbh5=mdRI^+_5c!K!}|m_GFs{Gf5st zpAQ4ed6vn$*xA#L8_;gH?n39_le2+yvfAyOK@pTTy^9uhmPx}zP1{f_T5*+l#Dyx* zk>5szYEr|xsSMO9xyqkiAH@tALNbF&O30WfIhFrwW{zJ!U@Z+uD>+?dp*zQVE~tlA zE~!j1rS!<1e%)1Zyo($RZnizAB=x9l3U<)k!ui@-1H^X1F4q{@% zN!e9eBZoL(M?Bz|9!GF0#MCMA2%R$gW#_=&b%q-bkf$!(pnX$6KF8ir5{i+MPf*@< z9RuCo;T)|kiSj2m2?8Kh=yP_8Lsipwkw(QqSRgVAmds*1g^b)s+5zEPLl2wSI2VlA z5o=UISn~96bmNM{&dNk+CaeLFV^&cV(vLXC=u6-*s+9p}vW9LP1_q>SR+%{386^Xp zP?|y4q!!gzaR?_`!c2luHd~Ji#-0)dgT_&K?}&^{#AYaH)F>}7cWg6*Zg*0?;<`Y^ zC-YOP)!T4MI6~KmRaqdU4umZaAiZ+D&4?aAq{+Rx z5+fG|#Ar(fG#ESCkm9u0@O(%FW51U~(*g*OA5GiBt4qCsbfH5JOIW4(H(5tw7`Qs` z8vmN*R>Yy*hMuM~ZpI>L!r9q5Qt1JT!^Ac$$;Y^B@Y`j=pw|0@EknO!a)Wq)BB>hl zdSN&-fs3`3FwC5k4C@LjvOP3ft!kXONaBx1+BrtT-Ph6UJ&lp9Ad8GTD>jfjN)+OZ zj?kqfS5!wJE9L?Uk%^`b_PH{nRi4(EsKJO4H$fJG_}A*fPDV5XXnK>@RO1{4dFOjC zG`XBkZUteM42(1yuJv-O4Xt!`)JI!orDy^i~32(T!)p zHVoi%P*5r7#ifG2b{CPArZ{}aD>LF>00N=oDrd4 z@)L$c*I6+{kP^FGjltX06>F}xD=fP0QpWI1(aEF{+h`=!0#DtU*cp#Q;`c#X!Oa?R z&OU4wZm)5$xi)AY5!Xn^wc~lsk4h{U=bPJ$18!$;vWx!yLn+2`{)D*eWC(R!F%oac z&Hn2Z*oqizxhm`mC#p!AaETP=NKlKyPvoO&Uv)@!YyW5nA5e(n;l}6*_O$BYuI+a; zTBg>Ru1sRrs5vujb7d-O*w(Qbeqp#qzL(eq;RHrJWTxfJ;LhGKY8_uGPd;c0A43&2 zX;yYAW^8@mSP-LwLcZs)GR=*fXEGAeF3tuIg;;+1ycqjFcDv+t5n!*)rA^2(R=*jN z$}SaShh2JLxlWk*Bnb=J6Xg!c3^(LchBxOng)BPEO71T1V#-#KIb$WdA*2vBZqdQTL!W@utAuec|#v&CYz*d!t-`vnp9PEtl7?w<(q;S+} zgEBzmxIamP=(L0>mer}&xST`vBupU_Mo;X+ZnZnG4)&0XqAzir6%PEq3fel zeeA*i#oYS<$W>K`|L47ZJ9#?{*|*CiE+Hm&$0aT?!oUWIg4w&vkgh3}0kRMg$P)Sa zMdYhd5Kw7ycbLQ>rnvGAmTHSbM2jm*Y!Uei!e~=VDK)`jrB(#3R{Q<7uoyrD%zQuR zzL^kE`};~lf4{Rk@BTmc+3)s;zp!kLryIj2fW!heZv*K`mIKUbE zDeY7Cp^W5t7VnsrV%wO6Wlnip(j0{XzGZ?Dy#n4rx_Y1t;u8BP4ssZ7HNX*ujjgdI zzqm;kxgbitN?9GeKK&Zg)t)a^!%&BjxGPQD&hUXvefbj3-BIf9$R47#2-=8FRqyATw9UAH(9 zl_ikz@*rvz3l&4Cl&fp>+6F_1h7u-x4vE`|(VO|ug{+H=8Zj;OBSzp%!W?F#2?_^d zu4kC`jZH)!H|QMLMtDqQq6UXr;zs#I0Tl-_8gfe>I`USr;SAm~Lqq}-E^`cL zri|o94rkQW8CYX=&hHN(mUw8r*44{m-QV2AZEu7;a2JSdAD}GX#`(J8121KEbB5;i zZkHQPV0I+iCU%*km{Bb*wjyYAVIZ@y)o^m@W(h5PndBp3{2>m=^0L6ROF0ujXcAqm zt@Ty5QX)qqUC0PF13X#JbJa&zuZbAehCK*9je>?YycNyfPb?11i{gKOiFDRJoXo4`;T>_qEckxq6=rZdM-l(0xJ3PW z8N@k$?DG1()D9^8@_|`O`To2rK+#7qW>AS}L13Ya&L@>UfH-nj1`gHcqMxP15uwH8 zkST5teYXy{jt)b#bLMD?fFHk!~ahM84N z%+!R9qfS%Tb<;>vXS&kGFxxdW-&8KTY5?UOqyAzblVnoRC)8c#%7TsNdY2p&^%pT= zAIhU=K%SfMJvC6ULFe`8DoLH~WKA1g=j#Jg+K-b_Ts&oBLWMJ$yxg}((aA{zm1gI_ zU6>vJm4uCQtzLD3-BOi-T~HPE#DlD3$BagrN7Wo@Y@ptk2mVlv7A-Lol;Xmsa34(c zr3PJ9`Q-soW%T~hsDz_0wG5q`wKluz-n-Lm5zpux(dleZ1k7lzdkKvi8uH-$l@?HR z4CmmrX*^fY#<5O((8dg7*y|9$6`8P^)Pr9=fo_}05`u-GLZks$SZ(K!K~_XhEZ;#R z33=;qMAi~%GqN;Y6T#xaHXN?%F`{4}iKB>BDmC3m)WCsWeG;fJ7+g~dEBR0^)Ht8X z$G`l`pBXJ1h;}qGy45vt0Wt28;8cFiHz`e1*!&tIXfWhot z5$FFk;5%048-uSS(F7&Eo~Bz30hS}BcZCO47@mD4nBZ9~Ab-nqvGXHlPLJ zF;5--+tlD?oev!!ckxk#DQXS+sH}^8wWvx21UPN5QNPN8@J5Hnud4=+YOabIq%wVc zP2M=NY)AmdukNN8t${N}$>G%^iyaUQPLv4wEI#68U#KaZbJ|4jBG%OC%yMi-jc>Oi zoE=xAtCsNX1msdMz|G2y0}JHvtulM;Ja&L=YpzGM4N7>>`2U(ZvurxD9ZT;m=)Q~3 zLGiJG(@yDKG$_&Ha$uy!v`O;Y2M4#Z{#vJ$hfz|6t#risn|XeS{6ci)!b5+S1V1@q zG+dR`Mm}exv^c7k#|E;xaUIpJ61S4ATg^p1QDWtk&cxhT&Y40~pzB%c%8YjxALHgF zb#~5&F6Psxk*$tJ+!)1i@6go88B*oMUUj2PjWX$XypBV8{XKs{X-_&nMJ&gz4$YCmr-( zMhSg+kj?V6L!xY$$)S*rmBzxRIDK^C@%2P;Zyw*|;@%bEyeOD`PQ{#8UVMiX%rT3@ zV-6bRQzp`p4=$L_zgzmp^QRdn^B3h=`#6h;VEKBSu zek{4j-8-+U)F-v#kuf&`v?YJyg{5SG^b>z5W-edcIyopGGp1I_>%~5UmF|DIcLs_k zU2w(M*Rr_sjoAi#?ah`0iCmV(+$H3qtN>48C99(qG z)P-ZYA$;RrU+(?fcfeq5R>}4dHbf(^y2`24Td6^YQ+iPFHD_lGf z^wiwMJ7m+yXk+jVs|PdEF;Sj-?0L0~&&Df%#M-ympvH+3{pPt?PgKj&=X~xV!S1e>>s1^*cBH>ospb{(ryo#3!G= z;mB3PJ^3e|9=z+JMQ{G@H-E9`rlS`B*)RY8kv(7h;#Z#d&cAJ**z?Qgb8q>l$3C?F z-|t!Y$M65(@;9BgWn=S?Rz7yz#ixB}>HH7hkYqC*?LPdS-4;(4p7HJ*j+`6Algq9d zJX6JJ3JY`BocG5^%C|rL)nndr$ngB0cmE3g#mn!0X7&fyA9Ex;x#$z|+2QN*hbT|h zU-GMa-uCv}?j3&j^4Bk0_1JkAUHaL#e(Ux{>*rp%{+~W=mfp4Lu%1KT^wqCE^QUim z%im8p=O*2UH$8O2*6o?_j5+`I)#a|k|I>fI><=cMe*DrOJb(22cmL&QZolkXZ~o3VU%zDY@&(5|{FSaJ@40<(^O@mS zKmN?$-H`q1p7Ce??(dq9Z1``xzkKtfPyS-+2Pb{+r?+l6=Zm+Wx#3q&-~FcbcYUGx zmfzoVdf|Z+mTx^|c5?7s-J9$eVCs)87bj!yR6A}j!2Nfcn>93!J8{Yvq0XUVJ==?k@Sbw9qoZ^=dOS)aOS3;8>TOvNMgZs3 z*$2885g3oaB}2oV9EMiaDsNE?vE-q0#3O$Bkata zrKNl)_w3vaMa}M=r;*luD@95>cXr>pX3flW+qRNJ-%j)IFL<7Sq}lvEnb{XvldT27 z`Q{p(gudG2@Z`DObvmL@u#Xln1lP_EPuwND%kZQCPj>Fq_@16MEuM6zP4Z`UIp^!$ z7x6@S2t-@Cz>`Qe3^m~iCyLQOfH!POm7mcLH0j{Ua8r4rT9XQ%Cs<9w+u{ifDeJj$ zc%s%wx`)(ii#DynUCHy)crd=WmnWy>FmiW7hz&pb0G>39)6>e6Tuv42E-(yRj;hR1&)Cu}2UHYE$c6gpNkzK@EE`FX^ zwwVW?Ys@7>b!dfO@C2z8%TRe(u;SX5T|D(59lepgJOKj$Pq-HN&HD(Sx>FH?QPg3t zRovo9q9a>@VNd4V{mPTYi}ehDB=E%g#1>CFP!&<0B=ef+A1F_dlDX;ov)Ll&S&stL~ zv~4Rv;n68AFYh{{H?zP<&D%so1bBTz6$LHeo&*>X|13W$@oFSsA!dWG_x%y&ml0Oo zz&kV_<U?Jb60FOXZ76{S?4 z5gL-dY*kjM9-@ijZ)jb9ejM@Nb|Sr#s9K^ z4p;i+iglCAaPmAhx&oy=y(LK@wa+N;m5hc}Ur~89_k2lp4EdCtmP0qt+cXs7SEu3B zO(rx%`n{7^sC!{ce-V3(S1ieeD=tLGP~%m1QC+6p`>_4kH$TeHReizN!xQT4(-ia$ z`=Xe4QRr6k+$3z*#X|wFKL{>d^cNE!E-8&#?!7k6e+6~%XwBPYBznc$tDAb!oBTL> zjPYO;m&k|x#c*z`jbW?aJmuz*PC0#$)wSZi)mm|h9^C;y3~1{;t~kHuRA$h3X}wza z%Ym}4TrUE?d%h0@=!OmPWrXSJS6x^rjLg~4+#TJ2zmdZ8%9;~SKy?ZW)hQs=SPFG1 zCx(rWu24+)3pJI!4+)&zQCU|aLS+|!oqpvfvB%3mgj3(|cbtKcGScYi=SGl*dk>DKewyxEY_PU(h^Ba$p5EYUwUIdlQfq#`^+Q9ao_f?# zh;nbGvZFiXTMV6Srae!F8X)TKG$~IoCZ~AWMfvqd`JsQEPo+9@ojtl&&~>D1i+A_( zq~~G7w+ph<$Lh`k>*cv&EoU~om?x=TUCI-xQoTFn2{>_Bx%cG>k6o1~_ZR5A`<^|@ z^Q2=M?9GQert6gS@B&Z1v#W8>I3pF^xw`TM)6J4?&dikLyj8lU@*Na-!Z*d?iMI*4 zpFBzH=L)}nGqic4q^e~|c(N03v%w|hNkhiqiIonvLyS>>gVXIlY+~VwI5KLQ=gINS zmThACRsW7Xc3+;Te&U?Bv8NiZn?^&2!}$0E4^KDO__0ZNJj`kz^SzM`K9#kY`-#^U zE*}O&{!)pAD(su11^Mv(U;2`U;mJ7CpgFuo``d58HtXYX6$sgE6RYqFzfhj2)~Mfy zksV#yJMSzGOLL=Z+{2ztG1Z&RH5;tWHPjeoNoF(n#>UpH0WCbCp5v7#UKcW*t6Jt| z10S>eEoD8y$gU0U#XRBFII>Icm!gJWl4KSTpQYdWpJW-K{>}vA_ih6bq72C24HE`xxak$z1=;j9X_eha@QD(~})=J|n&yz3S zR6H?`@oFuFX7iY#fP16^#gpuawtnspQ#X^2FO6zJXuYRpix3-#8V;f-eEuNwnKX=U z;R+H0>@ue5E#1MkUB~Eur15RN$f#|5@yjWmsGs8un_FeuHXFgsBo3k$PPr=0D-XP+ zj*eEiU3ZJ7w%(yYv*Jlwv}@S6p{M1Zl+v#D7&Sg~bn432TW*W?y}Fx+wDNr>yOIKd z{8cL-_+q8^YOw4Vyw>Rc%j@FR*h&n(6xpQF7`4ObU33H0ZR_@haVtFb=f;31yqPd~ ze7d9Dy@ZLEoBw=J<163tuA9{Oc0SzjTkM;DoZ@QPUvyWUg1%rZ?kd%D1V@Pep{MoD zKAy7_xJt~*v|P9(b$#7Lw_UZPsQKFV6x*)+ei~nS2--FMb1gg`at}Va423{8VKXQai#JnV9j=uD;R$l^|39*Er zzwRUP@!l%+a*E;;BHtij$tdFRwb2<~cKCSmHZ-qF)@E`1D|;Vg%ln&XF?z=z`J9@qphbX?pT_bFG%OQD&Hr!Sn_jGUCb%Or zWFA#CR!eyZ3!znyzu*=o29Wmw_j(q$--f23$wqg2CNR8YG0F{SG(;D*%EJe^kQtbW z5~@l1jRpWE3^0kHoah%xC7}(9jl?jdc58%VQfYHSnFtG<#XU(n_Q~BY^$NN#)TZrf zcWb*9wAlW7TI`p8d~6qsQx zG=y7N+G($#>p1{^@1~vXTV&Fh|D@)~w0lxBQQo#(b?BB>3&H8;wp;5HjK9WHs?X)p za=vz=QFdek09Lz+Sibe7!NAV|o(u%BPfrp@tl@+`C$I3?R*yL==5#$1BSu2@Q&VQU z_%nr5LV<`Vg&r3)6on4mAu2i0hY8 z-oCfMrLIj&8#0?hug$7Q#P?5K#STHIrS+#YT8|+JJrx+MGsG(trDig+#K}O!*=!;b zj!c5P06TDt#5k2-kmHQRRSkpA0)`3q&34yYXS?hvEInrP!KQeT> zR3OL7q=V*{v<5Pkwv$S`F~H+Jlr+8@^khT|o@UTfwc(Mrg%1;lwM4hBVX zGcI(2z(`;$gQ*;h#YZ4nPL3lt%IgeSI~7Qol3{$h9ShKoi_bq_PZ4BBtd=!AJ?yT?sMiS(IK80FBz+|wA2GpAO-~;ha1R=y8P{RH z!s}D%8K^AQ36GxEEK?eboO4MjQZ6wbF>e`R&1`~$b-7Gmfok}q`8;gc3AKI9a;9k_EHg~Vn_m?6b|ov2dVQ0$%8n6v zgb+4;15##xY=S7LW^S6dINU0k5{-{0%SI<4X5I#ARL~njcU9?hBG=P8rl1AO0fQEE z`(J|4vL;yKY!bp3hYxBDj`tH%f1OUpiJYOA>kKeA(2G~&cnRY%(>sPaN8AXpfDy)I zHT9E?Oz{m9s1J#*B!{kIC9TC79^()St5Tr57^bo@jw(V(tH(%6AX0NX!bV^WQBgJc zF^+;W7Va^>BwLpXG+W8oEt8}`RHqZi=}FP=WxG)Cx(iXYuq`VCScEdQkq!ax#^6!p zuF=DeQ*v-(oXZ;rqWt1`RGWeN-e;#wq{s&m88Ru+;b0=i0RS3DZ;SCQeKE>(4rzaR zU|ec9OIC|yi=*@oqjM_EGO8TCX-SJk?^Fz`wMj}{;B*HXh>OR1@(?$KU zOi%-BWG1R~(wb-W7BZ8Ms$h>gJI?GG8?~9!3$fy*M!?ymU_!UU%tsu-{4}}&d;Qr{ zJ>fs)sJ;^CT!kW;FqmNFxX|$;0hadVzWMejszN9;9b}tm^n`SBUf2blhn}`*%A^Rp zjLTtP=19A85_OGGoS*{9Nju$UjmV8s&HPB-!DzW~vQBMG6IyR%SNv#L0QUq@`v<c zS!2$7ivM~7CSfHgD2!1V z0w-fKgZeJdC4EV*cg`H?uk@KY1y&fA!Jf{)KA|puV4y7Q$#>1M>2^es>9D#N?v)B1!L7cwc)!57w0PY+hM-YjT`z!%83B%=f>3evMm3F-gUStBW zObuqIKnToT%9EJL37vFw%~F}$cGcRTa74W;?5dGoka}Mr+cy`)nQB~NyPCYl#k0j+ zWntJM4A+Fw{Kmp6He5yaAmd;N9d%&ot}t2+D@8uSYQoL)r|QRGEpoQo)D=jf@oheO zaAXo~GgMJ^uG;&1Cf5~b?whwGWa+My56XM;{s;T$f~>7O7gQwotwHEip)ts2KsA^p zWGr34neaLmC5hip04ueIfU1yhtBEtVkpPR zO_Y~1b4acHgiQS&gY2pkUIn>0M#N@ikTcw~SeX_{I1r3TbV%QHI8vG6*86((9!u=0@;7?Pn^X>?Y?b{q>_g5lFy>O0|0q9! zh7j|eeemQ+BrbrUUg|`@B(a6g!#ZWMA+}KoR~bKnuI*3X>*uW4IA?hp78zEy3xX+> zyfS*Q`w+>LnEM>IrE%14Ce=O=Hnk&X4**BBF$!qOq`j90)2m@fGRFJp(z=)~9WYeM zeq*z}U&p1`ei+J%z#3;HqocVZ##o(R4kZBQ)g%q7Q|gxRX0}?VcD-)iO3tgJL8**L z|74u~z?Q)v91}Mfxq7uuZv>w)pX{t`f2XXJ(fWXk>mwINVgKObG2@D^Ag`%(Tm@ES z#CBwHT?Pi}3Fanj+D~w4d5`BeA#;pS>GYWpGzGRZ=o5^h|Jr~VQjn0=GkcMvQ*uF3 zhz(hftT3OF3SLfNXlHWL8$aKnN2I4mk5;extl!LBy zmE0DItO?^%J+rvv?0^d)B}Dbiai%c&$9jmj1-v4!o*nNk(Ew|x>LH~obQ?qi|f>5l6-A^!^fPO|C15iTY~f9g9%YM%L2RF1c3+elL2pff(nCeP#FtHb0bQQ@I#z zic9E3ClO4u{bDDlNDWMX!+j1RLVHry>{RKLH|Mg#Fl(BafcjwFVg7dgBee?>L`yb`mCMHdS-PCreqW*qL{7V z0DFqn{SgDmYIXY$Dgw0zwK~eZa+^7O5z`0!GdK^z{sPY}Cb z8%gh>L1N;~+FiZE&d01U;Fw(9S%mn-2z}o zw}x{~;4Dgd2oq&moi2|$q{rMLsDRW&oEWk*R$0*)o^=*N!=Hm1;geD&6F0gz@fv-`H z^bF=lqeBp8#P^%%`!`Bv^iqIYd*X2fp^W*4dzR7(faP?g(yImi3YA2LWS>UV z!4Gl)sEMrFBPqZ|JkeM!x!11RjCb&A!EUqgc>(7Lva;Zy*QBtOpH)xDuZ4NQfi0xw zjz|oDItVox6y)XED>YiFrDeF6BEecNB}I+jaAEy&^ms^O5HPGXJ_HkdVbrvn@Pdcv zmk&%#EUZ!9L8+4S+hEXlKI7f^#=3NHv(XCeK1CL_{CY@KZ_)f@(m11B-3wKOq&5VZ zq@c1!4r142G*WF5CTzDgWu5=*2p-RPt^3L&LayL5tsc;BwnT^r%@?&qu=88OkuY+M zC#UN$&2)-aAA=fky7`zA*kOnR2KlxcWRq9{A#L#f+8{}A724FN_!WaO60$j=S@kGV z-q2#_yt}`bvf_%vr3gxV?xpA^9hE}cvf1(Ms?4^z+2&rB4FrQBuaoli)AJJdOP(bf zDZ~?3k5wRi0GdxK?y4m7E;w{?oSzNmpnu0$5ROFW8v>Lx6PvTA^yz*&EUrdEa33EB zPYhhU%1rQOm2Vq;jiD{oR$pMV$SRW$<`)K($llVFcCZ;N#2IBwl$__rbjU_7wB$E@ ziXZ>@05w1k&Ufn~b8J5yi zc0`c4UvNz{ceY_xW-Hv+&5ahJK}DBN z3|ttQJZpk17%jwM?x0<>f-sS>!OSxgGI4z@tLo*ftZJ+?Q;nLex^GbI;2)s^%U&bi zwS&iye0$8?BunM$&iK+eQXY4VLz$rWc<4u>YhEvdH+7bCPEN=M-L4$vJo(FOR979mxO3nC z+=nXBv$CXg+C!IL`Sa=JZ+mLt@GbLa=Qnn|>xWN{jXeG4*S_nfqr2j%+=oB#!Mo2s zW&ZqMt-JD~yRLZCg@?lR*Z=gncigaMruo_hz2Cm#%Ex{=5nc4vWyxi?J^1d?_1{>3 z@yvstyKB$m%dULq&G(#g{qp=D6qi5y*yg!ieaj}kaNBveU-7l>1($BwR5^Vxob`U5 z@67$&1K)jk=iS#FbB7}^W;(Y?EG%`Kc4rVExCVs{Nd-%`PZ-f;~$>+%$U+5E(P|MA?H-|*DVA3WbY`@i3P{F;0AyyNV{KYPzT_bk7CVdk&}!Bv~9FeLMm zF8rN?*Q`2jwh52O4sY7LARG2~b-|LyH=MER3m^UL z(_2FK*}=;m*|UD`$A0zx;+1I}R@Hv+~wk)tmerm<8*#mztHTcZa ze|qL=t8;}#x1IOoDSvy^y_e>;++H@}Sx;p*?+8CP`M}pcf6LwP`OxFPc+Yo#@aV10 zAAIdoo1gs2g631F?zuAe^Wp#bf$Pt{?0erk=wE*H(=VR$*e~Y)bsE@9SRLhrerB535x(_JqG&H^5x-f9~Esu z61NV|_8fwgTgX9ZZ1wSBmA3rs6suV~k#t-;J9=cORATqisbMevSOuuAhahL4J2aj% zskEZOLqp1?H4(yOSm29rs#{N;mJ^;qlYP7!%PZsKd(JHU38YNRxSp)n>J(+?v0Pdx z@ByR@asJu^R8BwsFRItaseNn<6B*0QJ5DHLRSTy3&-oZ9Vqq9@+ri9cOUr|ioU>E78>Dyc42izm&Ny~dO$=*1~d zI8P5pi!*8nD%{4X;PC}KNufg}vz|omUXvul@C@BK&y(gjJmDmBn7!oLe4G>VRN+th#xpbB&2saRM`omOE2oFy$xw+T&yzzA*$p{`!kX@x zr*fR>rti-x7CBfiYc>?uoO)`RUYUOA6ztZNIWqhU+S$FZMfd(Ymn%<7@I+Cm^_&-j zYAGs2Tkg+IW8>&@wY$P$`D9^vjoR568b1Dbui-%lr8(1iGSl4o@a30xFfP;hGuk|9 z=|QgXJQ-Gde}JBO&m4ir%}Ar6ea3)fnET`W@MIzF?cBZR%oFc#?ioL`IsWjU$gifS zvum)LiG8PWIZQ_fz-jn>poIUD^6r@yPZ~?i&d0NLo$MG0%N63EqbgS}t6s|G@B|Bk zMhiDlIBgCcLgQxGCZmr!b56<=Xj14tYFK%q^Y0<0Q$4@<1@SMcTXVi_xZHT2lzt0O z+GpIAC$$F5YOPZD^-AcH3&&o_s5pME+D185Lq74p_$_y|w#ABQIl zP`Gknd16xAhS5N(&jM@Sefjj{1=lxCJ`wTjMB~e{KQ60o(q>V~B)lW3& zD-zb5VSP~0t9p+H-9mMxrztc5*|)#sEBk;T{7bTY8USYIBhr^fI;=xl!i^!skot)dCCO ztono6F4b#{;@5>*HsX_a?-kXV>>{2peSCgVY4$pneOgk>smrbG-Z1%84^fHtF8Yf% zT#;;2`-&^D_lTaNl+cq*xIdq(@$G!-(k7ZJbFZ*&-jax?(y5*#`irUlV_FYii1hWv z;e}Gs_XH&o=f?zP_Y+zhE05*3+p$ahO4HF%xZLkP$bD-nU%RJM>3{61vs4RkcmoSA z)Ol#T8bI>~yMHZ>AY5IT5oGYLBif4vpZEUg#&4&-LZ@`F-ggh(^1Rw5ehSUXo#@SV@6=tJ*vEgOqw3aMAAMBV zp^5B<=DJgpwVvMnzO;CPU1wcWe;c|)hL3mB@fuCHem>o*dn%egjg3IH*Cx#;o{$a0 z8`AYcyIa9p@BA81*m3dhl^b+`p4@n0NNUQH`+KIJSyrn#NB>KYjxp+r z`9{U~!{enj&F=UqMc&-Lz3>hx96z*kFHh){X7}(;_JHXgRP3oIH$zsGTOS1p;C=y5 z+yUf??mHM|-Pue2GoGZ(N_j#{YLJ=o<%wU*HDeFram|qOP;eH$dwrN7_;|vjq5&6%PWV0h?S-qSe^s zD-wJyg^|Uyx<%9P{8IB=b%n3rru)i!k!8-cEp!(fAOhdH=c+wtwmQHim*`lp)s7$D ziQX{A&Y35gr}KEVrhV(Jimhl@TK%}p{b;K)Kk6QfCLFMN(&9<_C787975_^hO;Fk8 z=~AAgQQh)n&rrR7?6KuF^s>^g@}_3ei9$ZVmC{~(k?bnMle*XU)m@yz+{>dKWq88) zQw{@sS4FS9xZ&OtP@bf+%k#u|o_N_+99FHyWEVGEo+mS&Ctv!~G(3REa%V$bk-s}= zdV1Tolqb8nQH>U9e=Di*#DC2r>(MYQ7U9Wb-Ckm9 zU)15rhO|$#ssjjFOEZG#PqJ2#s%=8wtTY_#)kkdWA$ItD!CoE1R8LVd?@i;Qt6J%8 zTZk>2iILY?41)X<*^{U!NFG4%_uJVKstnq?kI~THvSi`yRm(QyUi*yDrtz{d)N<0+ zN5rn8CFJ!IW5xFmX_z`kN!W|0ty4+4l^Wj;V-M1YrKQI>8tg4kHu8Nr?IZLeeZI^S zG10^ubzTW*>E!+LwO;>Fb@f(Ijq2+8+9p!Bti5d>@*t1r?hD}-0aH*N=G|h7t*Vsd4;BL zA)ixxiwJ4hJFmnA`K>z_{js+|YW`nBJEyvBKkfdt($TNQ5MlUr)-6|fLTTrHI96iy zJCDeihL1NI1z7%C;JjGY=xS$pKN~LHtMuMW%yN<|km`=Yr9?m7C+3niB6)C+W zc_7i#pQroiE?z)uapV6|)EwjURg=!Y^}oE)_l=y~_9+z5KiiQOBZqHYnN*&C@j5T9 zETp{UPpcpjH==R9#G(axz(H$CL2pdkKy3Qoj=0bnx~*QS^I>yrm^y>V$0+6c)#UJUuZWfxL`8%>@p}{U6=aPach00ZQ8c!eAhah zOlhtj>#MeSog`+AH~&+bZ1`EY&1+_ocurw_4o5B$T1XUw$3hi7fgvP{Elvg2iibnui=~tS{(QW zHDAq*a5Xwoos9VooxMBamOICH;57rFWyoTU@T|D%qjYAR2ycApv~R#mQV=-BR42bl zXGNPlo|Ay!3~F`KMU|aS0_B$qpZ?I);Y%MG2s4-<$d3Ze?1+R*WOnKWoYBYzJ{xk3 zt)uR96$$%16a`1c7gX>5gWZe5MnZrgL>odL;1IA@8^S+8&|lFY@ctf+LM=)-Al8%b zkz^!Dv+$e`kNUC3$N?6(L%Db|P}&nAFimgD0PJ z&d_UhTNx8O!9sFM&w5R?7CG2&$xzxx{gl-rjG;mldg-;69leEM%hB^2(SW3q z(xk`MPu@BwK>F2s0CWmh6BxYv4LYn+0H+Fjj6KkYI%Lw0Ph4JGXIr`Q>CPi2AK)bd zeZNwIn_!4@^nmj-rHc&8(iAudydrMla5nH~rAiZ}sLGts#>gS_c?&S1nWIiUV+0GS zGjf*3nid{vOmSq$HtOUP9$_>ZRtY=BqOPKgaJXb6iBunqv&j;f$>@4?fjHmXcOz%$ zMpp6NYz}Khj2C5+;jhocQE*yjvIm=XT84fu1fPdC++;m)trAJ8nVyAN45( ze2OF^6=(3$K9!G?yz#}?F=iQ#>pX5t-f~?U2~65{FK?aW!Va_?U^VoJk$F;9MED$i zq$ErbN?|m0G$ZePEj3cA#t)?m3wMt(B)}n_Dv!>UxFbIzS34=X8Jfl2xHB=<=W3yo ziY1@zpb2t;Y?pu;Mora@u_(GAY6z1U%_Pwk2N~};tQ*<7uT}HyH@LkR94kl${B0<> z(04x)32jTjSjmP~=~M`<=T68&JGqyrgbXyy==9g_OD2g3gA`Jo&ttEp5G729| zuQQbDppuTi303ml9FaZBl){ZNieh7j%wZ4PIf?ZcDLbvfN=~t}7`SYRt0zTcmvL-e zt%<4<)#=SCy3;watLdzddNGD!9TcyoZWm#=U)T{N0 z;l*g4qIo|e#O9HLE@ z`=EO$#!uUNzbYt8x~#KEHYA8HX$?A6#LRY5z)h$HNM|nVgb&fJC6z=K3w6B_bt$H7G6SM%~vfb2JJ?v1UuLfL_;!aC%(cggD-T4K^rG?{ksu|Y4#>eq6HHAH3= zT%@NqI^0$7?RfNh`NlCD#a%0fTo`}5g9=K!*yR+00>f`zG9e8Ftf8X)hG;Ja^@ZW4 znm9TljfF6WO!zPf8bL=-`CE?);m~scnPy=TN?frPGKTH5AV>y7YaE(4q>jX;a0I@X zM(F4O85tdcZKH9}2+ZIBg)DuaW3-uI!l8E*D$M2IKc#s()#tuqlac0d(uu=9AiZUF6+s_P-lmO_1$S<9!Rov@#vvRc zXLK^f*4R>S#msq)G#(si(DiG&D@4h1nbw1H(-HN?X;*FDUudovK(9`oI-o`=k zx-ivm&US`zl)bzMOEpkJ4`6W8h~w)DolJEB7v#J`pbhY#W6gPXM7sMo0%?45C7OtW z+F$_^2K9>_3Skl57&2St2~s0gb991gFIU6OdD1m%!L&BR80?LczQ7zEvvmR)&8Wh% z0NuIo6(T3rftFJKZndBE5WhCn#xj5tiA5RAkdT#mnvt(IYl$e(x_lOQF!x5I#tZwB z8pG^T@0w8FrKr7X+(@$)qfRI3rtR zAmUZM?pI-3DKIFp>u0@`DPZ*k+x%4DR8+9YK11X(FwConnLqXR7$5y+DL6d_ZM$K0rl*yfIoS ztJzm(v+O5O@vz0(RT z(0rN7#BQ?KRkW7JZBYcz#f?eB>0zvrY+e$(t1h;tSX{C$8KcwLsPwWDh0+->Ia!g# zWmBk&Djs!pBpsQ|q*UWMSlF^6hNr~2NPGc zV_b-HQO4pLejdo0ddymG%1r7fIoZ;OLaig5ZdrxWq>?#u2p<~kL|cux=BF9E$bpcu zM#Fo-VRn~N=}gmY7}Nxge`Gkz_}W8k0hZL$RDc4hha8 zXgye+@Z|w*YOm6wH$eT68=5p-pY|ph?{8rAKK~Dm6E9 z?TR}P8XTkQ@(bpR32a1!KjyoFzLT44l|GZzie|GG8;{u*KxS4^O9xFR3>3SWAhn~MBEgda{a z!Kzi25RbT3kX7JeM?8`5V@^&j4_GBs&}INrp=sY&zW^7YkA&HqS{S0QQ! z4DbZj=T}a}cQBKKCAZU~1y(zZXVRG+b=}DuartWAm7&gLWt26;$W%27*{?X+9-Hsx zOtySn+$9UxjH!^Fy4UWimWu@mGn?&17+(8fBbC^$8s)2l`K3HN2(sH^EO5gZ8HKR} zVNQbC>qgDs)T|()@j+O1qycGrQ~v?HR=F$tm4xHT$Y+|NomMQ8I+xi)ZKu<8LTnb=W|I1}Dmj3wt*+&eLGTC{7W zn<|Txf_NGtNhLoqN2D=(X$4`h)D(>EWw&3Q?|2p?tAE(@hIq$PyXCJUXQHKt zO21SO;iD5eS3S@O{trA{x4ANP-PMy<9hC3PN@e4$$*0$E&Sq*+=e7U1CEHW@{LVEe zUbgTTl!4ubIqD`ABu;$^XpS}#(**+kV}RX;vGUWm^6{GKnKdDwZKzq)4Y$G2oZ ze$7WddcpS1ula8G>)&?i?T>umE$5wi&!%}lcxd{Q|MbL@x3B-w7gv8}`3>K^?0v(3 z@y9=({qzmb{OZgv@0q^s(s@UpH|y3tH{W&M%0+Mcw+}pb?>BF|;F{*ZM~=Mmvf;rm zee{oxpLO-rob1-EFrpf;|9(aG!k#CS@T7WOR;q5+bx&Wqnfus*S@2}>s}_Iydu!gk zcJ2rAS8QIlxDc5o*;yHtY+?BGJ-1)8e#4i4(DmePaa_ISi0^#r$~_%tJ+SKanZD`F z9O=5~srr3C`^vWl7u@jfpIv$7A09q)k=ylPoH_YB7ykZ(Prfrcnf2tscYS7N)PDKK zi@&h`#Jg`f^;Lg##J_*wnTMNSYkv8d|}#e3wA zLqBx!!AE=|UY>;V$vwHL+fN&G51zC2PdA@Y$ei&nZ+ZF~-Dh0>rh~U{y(W9zmXB=Q z_2ler-`(<=d!Af>!>^|He0a~DAOHTs;p-lG{Hf=k|G@gb!%ltnpRat+SvTzbk3Dza zH@@btPJI50%b)K(cE$J)?!IBc6_>0y=O-Wg(EP`qeC+X^=WX0`>H0Uk?klrC{KuV> zs9kneVt?XQ8)cF)l+5?3ipogBhx{$r!1onlXEX{i~tl$OkgvZjMD8Nc;;|6EBr%8KB> z4*X$VQJXJn*P}7~6pC!hljdRN8SKd@Pnv45CFRLQGQ3z%K|eW@_Bn@apG9AACr$7T z9~x4gaA3RX)0GP^{CS=%_++O){@vN^9_Q4(qt9B$z|Rn6<%@XYC3ugX6Ne|w@%x8V zZ|en~5CpPvYpz_58bg;fGzd?+7cRx~(Hb0>DHhKIY(%y?&w@C!Ui&)JWUW4RGMLDg$?dsWoP$p5souF|6o~S12iBdLcy~huyJfY3GMY;uQ zffd{KzM^hhc4;Ne@#avY(fI;Th->kLKC5dMc%pM=UGq+_*NDZc?q*ANd7jj1%@Af4 zyD?*i2moG~CA3@HdhidCUE@+88Y+$#Jx`Ebgc*%!8f%fgJkbDf7$a7Bf_+3nI#1d> z(NV25)t~oAOxM)w$`gmJB4pPLvg`Pv-O@l+mmy{b^$dc_u4h|3=~>v8UCNUpJSnfC z_W8%dIFA^-|CKx`ag%FQKhf(SN^eQ}u7D1xPIU)^T6hOf!R`4k=oac;8AY^&2idAS zsCtX4W9RKJj`FVR4oyG5ny;DEw&EQ+%z6Jryq;u9U7{W(kJovmj83(vjSCx+)M1F~ zTg`=us``li(MXFX1u7;zVYClOa8%DK5pY_3w9TAXiKUe zndUdd%M5M!CSeva&6ihv^pOwyvKoJ&L3IO{sBJ{-Celc5E&P`v6NZbnFVWjO0?B); zlU|=uTDpX4Q<3Lf=>DbU-Wz3Ba?b(nsor8TA!FzU?hT(`tzFS~X|z>cZco@uzWQ@& z%aKO_;f2^!9E@NyWtE02Y{m`fp=QC$bhb~YX?Xgu>4FTMF~i31ST9(jZn6^tM&QmMw3nvE#x=^2{Q^cTRr;5~r8XP07>j?&mzxX!V_rk?xt%}NO|1sXlfr>>v@9j1)iW6q&(q=u2ssDr`kO6>x6^D z$AWWsxafIOX!C>>#q$KqyeUt#u3~rhVR9Dxkl(-)Y;2-<)!7YCW@b{JNNqdclu-M= z&hzBlT*?!eF5gLcB4NF|h-Jejv#}(NX7sS<34DBoLHAkv&J#j@tiX+yn`JH6kbXr% z_eIQJ4}5FGmre7JzjeW5^dHYW_{@VsibuKW!@G5!0K55KhwgiTIhqHISY=H20ms6V z`+btuV;ktV9cx6bA}(C0yVTC+_)vi%be7LELq&Yo0<(a6#Yl293VdHBTBH@Wcxm>A0oM zlXA+F+Oeseh_Q9*dBV1hyk#~+`|@P3Ag40r1_I6VL}t9~f;04F+IcP6#pI=pLo#%H z2}7VMPmpqZd9o9p@Npk_atnO!mhXILRdhl&cOtTjGSajb+lrR-e4m zPJ0Ht()FbH-~3kxq8{xxg|?f9e)sF|Uf%xhmAsr1|3%fbNW0+WkoeLvrWLWj;cO&w*A#!X64e#izTtF;K`riCj<3+)F zAO28yZJ-gFtD(LF4{h%MXPBYG!@jP6nPN1$9qY5a=wb-j7sdDhheiG_y<6v+zEBR* zk=Gu7MmN2C0TR=Y(I|guU2%+0BGRM@VcTPf&?rvQb)=buLogaQK@n==$!=PNOeyFM znSRFA13C3>MEl2Rb_3V+R?((aa!hH$=llP`#q&bxFy{Z2ny%lH!)DX%lP1#xj;m3> zLfRwBoT?8yVeA4GercM9oL&g4n^MHat5(G5Yyi=QLflzXHwr{|V?>o_&Egpgzb|yY6Lxn}6nSF6CO! z96jDvt&P34JH7o7nc`>F1C+grqtBsbNb(#%dAU;Y8*b}ukArzk-CpF6d1JWaCPJ{{Ss)# zx;UeKPvu;R(=_$zyLm$5u{rewbt0$0<9iP2udxP{NmL2sH3kCv!>QJ6ue6%94cAnZ zHq~cHa7V&zl#@s=DfYO9sr6zaO*l|jyBATb#=YUxlg4sjnD(oZBA`+Fvp%FTF9m1C z5|^g$lPmIm*J>S#PzgE+S~!yY3)xbizeZM5HQQbwtNMva4+VNAv{GG~;6qh$N~!+2v(@ zujoX9B!DNT6+``6mHrGrPeGa-k>rE^=^uxOaLE?WA-YW+#|>zUN6@E*`y7{gic&Dd zNQxmQ|4SX%p*GvsN3BLR6SO2PE{tR}7fH&5#QPPeuiyGUA*5*m*Q7k)(ww?xn+OS( zI39QhSeA=Sd?+I*8yT|9Ra-KHiJYz&f+W-rPJ`ahF`I}>ri?gHDh;H7?K4R*NKmz5 zRJ#r^emqVXs{!fvgT#9e$i=;Yg^CEYf30{EY6QSA@@_JM6WVY@#kRxGF-?o3k(T~d zf{i*J5CTSrC+#jMf>v6{2McL)Mv=0^2?L**tVTWB@G&2Qh7K;#F2U0#!6#|Qk&|do zMdTx?Aw|WQ=e=N(Yzq^z^??})RDitxDjD^ZkkgT$0cTb^GnFuKA+@fRP0~ra{wty> z@b^+n1^-(m&q-<}wMWnCK~pH!Y2^ci{>#Annv^)!vlnVLsdsM-Lnk6&H5zvW$L^b7 zV~r-t1X)vwqoKYN_1anIX?eT2N8&U(1>!}FzAOOz5amRW`U7%W2|}vssuQ$6ho+>2 zkmmiAB_iNZk@Bwx9;lnhh#>=u1_zT`P*N5%-F(m)96wZiZA>2@ZDo|wNJ1YvT?~J= zHGX{5fxT#h9lt?-Y2)#vU};GZulB7upA%RXIxI(`@hVZ`e|n)!T2!O(;1B^m4R^Gn z{U9__(0siEAy>c@wsU1U=Z%!p?1KiYJVcH9)z^j=G6oV7$0sV+~LP*ABEnGygl>A}8W*L-I5}hYujrXZ4TKg=4JbpcxqCz*4 zx`WVwhVfJC$Yp(dxgJ>92cZriUk`2?4PmrUY3Tny?7e@STt$`eeeUhsojaW&b7#^S z#z>NyW`ItJFpxwe#-wI!!Vp>QgbW~?B@K&gR2IVuhQ*N7G(+r+EKV@85m{`qtioxL>6(hLqqjs-3i{@v`nxNeSSjmc<8+WlctPl(sGWR>|W^aZ!m}G5}OJ|R}ii^yEMD^Yv z$PB`@mH9zK67vJOfY)gOWmH*ku5*D{{y`2PA(sDZ$*%@LH+B#<+IaBumjX5P18ExS z?TJe&ewxbt8pB7XxPYJM(gdR}A8@o(w4_(SifbY)Fp8f*V#Y}(sOkxXu|X(tT!j)h zV}>F;j>N0AC(1xkNQ-1KrB$p&j|#?X&Uy=z^fDBK*{`iftvo1e`Ctz3zMzTt+v|at zfei+pjr7Eq$^zNQK-fpka&!WloXwUWo~RhaPj86(QL97#e2^lNOUyu<5{}Fdt0)0H z#jV)>s^A51UL~-{(hUgt2=xF##1Zn8t|7e+R5Vs0XkD#E5`ayA>ZB3$o`CO$1-vtA zMR_-SCnz4hHOEGRfQ~rYgH&%RSjtX)L@@~4X6R^v>PtiEwM@^Y;}0;U)%P^4lmLRP z6iBd&G5|+tEXXD-m(`NA%s{f1vr0&=@GHPIcbNFn=^e>h5&ly?HQw^`v^6kQ;EoWA zy)QQ6&vtA@r?FyUZ{U5bHh7}>Fqbi6njMO4KGI|4op(%nH6;fcfmr*PN29awKK{Yb z#5$)j9NJLw2x96Yjx?~sTIfAKud?NVh5m42Tp9>TWO=d%oH#yXqlFOA3jq!CtK-X; z*r2IEisA7|JVtCjUQi-PT#1o`A%uMSdLDzJBZEXB1e0mOrb*?Cz#nSi|{!Ptr3%@fBQ^!^3k)JyF{L%N-je@9& zm-BTz%2(fwO*%VL{M={rt0;(--f%G`Frr=8gGrs{^%NiUXLf2#{T`#;TF=wepg+Tt zeBqVg;T}2LQ_s_Mq{p~*(m5y7)Bj8}taONP;p-Wmvrjx4XP|ZLIiH@!_efW0Yr3s7 zJ8vFo@_tWAlf&(4dgi>;J#wb!{ARel>E4{4&DlDi6#UZVj{G-62i{~KcrmlfbMGky zW5hSl01Yqp`7vTmI?(m$gbmq3KO4j|m7wxC3jaH;Grxq76ict}XjTk06RV@)|Jv8} z#WekBhL*1;Ci<)_S+OrKh^&q{8;b!m1@KMFA6xaMTw6Od!P9&n(~Kpo`O|b) zf|74hp(9?}xso!Wep2`&^m3v3q^Y|Eo>Y2$WvV_cfDb?)J2YoN>I10xF_2<`Vtpjn z44zi3kMkkJ&BlAvpppxX<(JNZC?qgCG1Gi{Wg27^l_!Ko-J~UIg8uds{9)Xd`U*Rf+EpC5PDqo@ry!>Yw$ITi;OQe^7xD?p0NsF6HXL; zs^R4_O{tszT!>ZxF#LF@%HyX03WBszS(R!EwHCT*d8FfKTHhw%AL zNR;ADuM}ceT0V;iw+S5mO0kTK#-7;CQ8^Z8@1}QBPx2Oww(Wjt$7R1N_d&DkWY3cs^{e-cD*N=`Ok7DKTG! z67s;)g=T-N5N5j`9Z^f;$EUs24f=`JMD38CN5U4r2@DZ53vk07O;Z6AR*WTjJmo<# zrW8V@=3a@UPa&ZsrkPAk4emI{ge&0r#k?BzI<7}sAQIAOo&Kk|r1cX)2&96(8;05h z&W31XFo2t8w#U#=z8I&DaF;T~N4Ax6lPbvy$_YQG{xpqrXFM@YqqHt~QLebz(JO#4 z))Sx8E@uR)3BSnT#a?-+_DnBDNfARDkh@JwO(?~wOJ3JROOb!4>%fuRzL%y<^H_FJ z#{xne%G|_I5C7cYDzJB3?}*`Vuso>E+hdbFz+H0l7T8x9bgLP(4(UZ(w^K5qM$LMh zkS17kskMX;{X-a`=Hcxtx7lf1E%)M=5oIHN64Xgfz2%1yPy$QHKabOKr+b1@^YH16&)K3zHpPZ2&`+I)G{Xvpq;4O1-lBz6#mRkwj0)387b|`aNC^VbTPD7_h zLTE!s(Ge|0DJ?Q5Y?3g!pthZ|JOfs?%b+j;fXr-~A=F*AM3Wthmy$}mY zkz@YxISHIE6KV!a|I!R?XQM&SAdyoG7ION7Nx-VBe`&B{h|>zz)rB#ea%eSzj+M^) zT~XinRTaZ_adBl4&dVCb`-n!0p?QkK^;Jmgaoq3g!>ZIjq*X>Ogd-PK+XR>pR^3Ok zQR!M~@TV^=9kU=SzyYp{y_gBm9?S$TWjN0zUMrT6!B>SkjfTUG5--%q(-TdiB@NM{ zY#6~@>$XcfieSVi!1I9Hqizc%-R| z>r(`sm8h#sH@v~%G&ar(G7^Zf+K|$8PbYFS^i?_ULjI5}#;4TOByxx#BP^|p=GrVX z`?a#8e2!y7V4jg6wD@WNE|&9<2JASCsEkJH{57->LqE5?rC^D3lWNlyGDE=O7YczN=nqWX!}})46Afd_#X1{%3mm!G=vg32R0^# zHjd_Mx`@glcIPm}H7uGqehfJUK^P{AdkDnn+>k@$_;0gLWHj3LFsS>LMu?mNUZ*)S z$X(#MK+6uwl3W@bpiQcwG?r~CS;%W6He?W$5RB;+HX<%z8gOJur2R4sEu4on>CGZb zxDEz2Lwg?vh>zOTrR*Y8xrx&?u!%IYVoy?Vq4ZLD7xhTrEJ}(-B1$K}k#!os#zKMG zCq>GeA_$?Q;%q9~*UJdws`f>mvC}*q6#xwfMtqc?LzcqbZj@AwkEh3=h35Vm0l*Yt zAISCEaD-~1CM}3|>?p`FjdtM#8Hnosw_06IHeR&`)^H4qGP7GR6c-NWdu{u^;?qz( zug25!utZO&8GZimYRXnc)o-LR9$6;mN=KoBB5WkWAG!x0)+XSpfzWM;Rp9jiN3uCvt26S!9qTD_eVI5ZR>W$) zseuL}3Sn9y(TmkFzDx&if!Z!kDbt|g^|eP`Bh$*-(v2C5O}IcCEr6Y;0@XO`^qFMxazjuq=T2HR=JolT6|f52xfh0Z!! zLN3@FXw*;=np-CZk!ncpUXfnP5DU=}$DA4(PV;K!@rIU*(a{FTE3LtYWtApn*|JS9 zqvIxWf3!I6hwxxrQ{0TE_rZHK3fZXWXpOwrvZ3tM*|dwRXxJgOwp~%aP}Di|RDm_H z3Ne}s{HQ2AMA{N)YW@BeOr!F&#i5?Otf3#Vs>M)K42u|Y2aJ0(9m!#XA}b?A(&nf_ zq6guI(bE$w?WGa&c005T(U4f3FjpJojkxq&(wlTuC^&wn(K`+foas@jNtN3`*ht!! zITNWMVUfjif`EKMJRGmurS?pVXt{Hx{2}a08*_^s*?@L>$zV3r6z;RSEPZn<8lop7 zXt-DX8nnXg)lg3C0$vk$vgCymZU;lTY=B%lZiNsNOm{PZl8`SZpT-Q*cZ(A4p`S?O zRwF}udb*Ct4wT;s0;JM}Fjl#yjaif>%9C)La$$A8G=xXN_8A(qgN1;~b8;U2m*s}W z>iw>mKA({UJ*SR{ugCA;uF`~lx1d1^7zpy(!9Jc@S<3r9nUEeO)QOg8BDkF84B@%S zBeYp0t874(W3A%$xGiR$6vsPE2w&CqaXM4Xfm2pa;;xW>+=pFMgT=fK()@7G!)!5R zC)q*6a)Wpv5PzN(ucWmc$+>!Eg$TD2@T z-??vf?4OanEn>D)LC;eLo)_3pnex0)JfiXU#v}++8?C10F$xb<2#s(oAnmIM)=hCD z7=jmjJDOlnh^-?_J#T5xQp__5Ru`9&xNkf=lq55gZZq`hBC6%t6)r@+`w?m}U+hdcSG?{Yn3 z(i`=tza$l%XnK`HJK%1t0E66zVFhXwG*#f>+0(-6qYdw+3F3(pS0tEfi=rchiLHsF zdV@ah!A+p6e~f~>E)dqKaA<@ofDD(utwJZr#YN-W88Oyr?PEQyem*B}vxeeB^)j?T z&@wlOV|rsCpp``fffKn)q)*?6z>OgoJdM3U({0t_9B3J=6;cGf39KfQ@YG&Xte*e4 zFqs862GL0%uB#1wVG6r@rHu*Rj3j5ABV%BsK5(wix23Ea1&Mds9PJ=XA*sxWsv?R_ zo-+Yy7kvpI9ggA5Lb-3L0nb2XN`U6aEz+Kn3K1E+B2D&MYa*RQI|f=fNm&;*1-8r z%25hgdcl}aJU7ogivek&({WBorNk85X+RlMlULIKkTTJS+MPtR?9+su#@l|J=pwI2 zrIWFiygHDD{A4_d_eyR+F+*87)KH@ydb6)lQv`f93F^nd(Le+%CRJ6xKJ+^qrqH1% z^KL|B#G7o5z|g9!ygA|{8Y)#lM-w%%5H`wc2%zK-aV@I9 z5Eyk5W;7`{3J7R#ssWcqeK2S+b_K=-7_!v}PX(s^dWvAJ^@I>K=VViElX3wo#2AA8 z^ie$iYg9s+9^}J9C5o5IL|$AlA|rPV)m#$PM#|hcd7&=0NQ>tjUV4Zz&x1X8(bAHb z1@qZ`kl({(N7qeNzFVrqlQP zS-e^dS)-MoE2m0dKDf9okS?<^O3sy1bu~?T$WX+Ng*zMA(Hpr}8Z}gIMt?pjg$O=* z2m7vA^i`!Kl&kP#YaUi%``A+#dD&1{jA6 zNaR24yG#dClkc-QYMZukCI+*eE2HW3ll+2Ou$Hf3vYt(5imVP+7B`ric%p9)L=lfe zEF)+IYgEEaKYXs?5&54oHMnwZ5|tk*Qc|4;twS`;!I%<9+eC>eo*DLC)Y(2Kd)e%$ zkQ9!C*Jw=~mHQTdvsz~T+}<;7&=t?mue$qIX&YZyEA`}pOoC16ag{Tf=JE`lB4=KC zH$#<;)&=x&t=?Z7$_Y*?1a3yTPu99zty+JJE}E@8EQQPHStmI|hm)MZ3*1N{9L=>M zlD*fB{@w*$ZD;NoLm&g=ajEAr$eqA%N?`jn*W^oUgHpa=@@?HQUulS7H*_D(hmEe1 zUEBY`{FxC8-TT_Ve0_fL+kY>gyWpBD7A{?QaBu$Zhqg!m@Z68bK6hK&w(q?E#08rR z(|cybTdo>wTRZKqW*74dI2^5K)5o7#zU9RymR@yR_0Z|ds(;t<^97~XUlK2Q|Di*r z3!Z#p6J_;ZmdxI=ZfW$yzbzQMySx7N559TXc}u$n|1@}R=~;)P8EY?Ee)tQgExu&l z=_^+J$?T5x%jR}$d0^-1YZi8FJ-qc7mu)KjddA_c1AqL!8{W0xZ9o5;Wqga?`PWT*KJeB5c;kn^`>8l4sq8@~i_rg(Iij==&+|W(8{T`-;^V&fH}~c57|nj-n=js89Gu^~d~Wx> z$9K#ef8b}od3ODl$+vIX`?K|Dwg2+Teb*nlYV-2pDbtDgvrahWC&O8dQps?Zia#Ib zKXpQmG10ir&WITSqfGPc8}H&LV+wmYx9K2%yeCW{Jrl==%fx6juj74M>b^V0cm6&1=ZA(+YPkyjYBVn_QEZ;r70#IxX-_&TKb2!DOLU6(fJ&vGp))(V;*lPHFZTOjmnCx zs*}BYeHp3~&!azUj65x!49l;IsZNwC2@GCZ>nJ-stUBpXoe0NPlEOUYLe9+syiRO( z(XjlcCHEyWiQl_7JyLA%-c3b@+E$uo`5oc#1xQmd^$R5;^{e{3YpDDsIWqlCKYTRlID8?O3~@X zm%ai5XIBmn=e5NG$d?n2Xf5=Ut&^1ld-pzrB7+x$2RRVRgZ6oCO`IMkdiLW)aldw9 z3Q|y=aEjET+_d50=awu=b+TyFieZXTon%kZBi9Z*rJADL$=@Iyh0KzflQP`Ds3W84 zdx`NnF`70N5U5V*hnvS$C$uNZN5Y+NctfDClA7}KZmJWXtyuJEipkGl z2s*O{DEoe6Ez#Nt5f8d0?WkbeEhBJh)<^o`uOR(;)1y^O zf#*)mJ6YcF09T8hvpxIHI)4tKP^lruPQQ}={xqT4ukbE)F#`IaSKv2crjorZDy zRVA%3<)!gSD}MH0A4wb4vofQdX;{V8qQNFZ58J$}JosRLUE5RPYMWE!?yKwD;JIxj zPqmb1mPe*|$G9wCiS?OU7d&!?r$6&EE3kz}p|dl;Ugkv8d<>d8!aOH}W;08caCZ6wJ}tEvl+w}Rad^~6yjl&~ zWVNa#;nnsj$jhU=^aj;7GqEccVUtL=llN&-XXin9xLA)NR4drdsN=_S$zzxLAxT-8 z46#^2KUk9NJ(I(k@WRQh8lTJqkFa8PcBbcBZ{ltWI4EwbTF|pa-so+qk!SAXaM7a{ z)1yuOWqA0}$?~QZE6TFJ{KOOc_h&i$kN^F8F5x-nbaDi=>SWQP2PfbDc9?JfgW*lr z>JgDGo%Ag+_0a~}C`1gYsUuxbBfs*@RkX+=X&$CM*_OLZdBn5>F?das13PL86h zMjo7e=88qMhrN3zqywFZJn_U4o$Qs4MJseBpwo!q{H9bVbmL6slv9eE{CtB#_3T5m zlIp~thj~;d!nvjX08-gBxyXQb@Zd&HGxu|zHxksgB9!~;>x6Q=49olX)4D}8OCvbA2y`KE2@d~X2Y$s7MI@w#-NHr@SKys5SCeg_ilTST$tWKVLLi@?&A`Tjd zn)2MfVm)~_t(chD&+3@6oPWORBrR)^p6I&B>*QA|TRnF&nFqU*!-RQCI)`J(0a6Uk z!Gi~zItkE8zFm1oCr`YD`)Y%iq1rAALML#j@@m?ymQMEWEhDIj3FY|Zwo7$lOg5We zzi7_lH}t0}uG0sIw|2OwI?;(~2kV7ZC+%oWb)vfSDq`Y+P8wQG{qBQrj~X}vFM*-u zV!KdJ%XT#yot>#p=o?K@(47=0}NR`8GRMf|AGALM@7$`>j*-f)Ljoz|YiXqL#jdqXW7sie5EBA-)?UmUb&H{^ z`y-q5S84gtO(`GUOPcwb{J`JJA<_#UZ_4P%&;<9t6Wn72M*Lnrr|u~wPmVo&hH$WN z#9XcsRqzzvbx%ng%c|OO>)^9Tu&nw21N=G*K)ylP5&qac#(3I4H}u5<{u_GoJPSCHTRc!auE zm=h~E|F402#ggD(48O4H;{4ZOUnx16x9w=OQ7_-ynou{iT#f}TQ0KDNyLxf_EWZ|* zrYCi+*w98`^l7x!3mu?AtjaGk{D`$pVH$iB68f?g*M(ZrD84G?Xqo~_Ap{yRM*)Ax zZ|Wg9mShkS%4v*xUJjv6U&S_GTfIE-m=I$}3e*6|Sns_25=#EeRuRT0rPqEr!VVsd zv;2(r1uWGNEPdFe@lj~>#VkSPD#b-+M$?*LbcSq_z{e5LN@=xNqeqB^K|Vn)|q#F65tDboDHj?AqRJ|giZRE(x<#ymm``Oe}xi`2>VEyJ>omY z^YTbS`Z_zUaI3DuV#Rdlg3s5?(Zq4ydZ-*%|=Fjn&4vckNZFxN3GL_*rcmc;ANj6nQ_@+@R8tfBpBh5 zhTOV?bz(rYL%B-91!)1z>6`!SX4a01H>ofuwr&t zUdsCA0?Znc!0uoa)xC_4Q+{3@aAF{AC|+B%!yo7Ls&$C@bD?wM?vmS)OVyY(DV?wK zbkwN0XxGN)G!P==QNYBwrZ}69A@R6>NduIr;ARjjflA|p$=9zmoc3?kwecm%3Wr>Wv- zO5_=nHeQi~?M-B0@aaMs(L~kq6hiZT2)q2Ev_Ymv_P{ge_h>oFTx_jGTKaG$YwaMb z4uizm)mod*GWjf6 ztfKrQAh5#A1Ocnfg7K;^#x`WcKdy}IXt0wEQD6e64M83Xvfz6TsBl3ySc>DP{EXUG z$j4~x?+#iROj$}xE^P$7dxwvt6L!YSgSMCyOvqyEgeIzt+=Z}BY{Uhorc;26VAfcY z=vFSV$QFAL7}=dD*F1%Vv}#55tZ80!jwJp;Hbiv%b;y;pfMvsCu{w@MZG*tbq>R1ic5OencJdV@)m-85ILeN z@NQxOsG+AT9T%!FNo+!wca4(IZ3_l5O_ZNi)zX?{6ZsRL5_yeO$&;&{r0K38g9uCI zXU1cz=4e)LWO`}QvFIoK!Gs14NofC=#_x0pKc z$c$t2!u08H1IPd7i4LbFiUB~sdnHgS!)9s zr3r-?+#x#bxooo;pkcU3b+HG!{fa$R;QWDs%AyB?U$0l#q<{&Ni<}Krc9x2`W_lc8 zyo?_w`K+~x!#=0ut{Za92UTs()j1U#HhU$gp=D<@Ygp8^csz9~VswZOHI83A6E(0H z3>tj%ERra08)F^z(s@BaZntmANDl+sAiu!P_r#k;m7*UbhyV3t#fPrZ+(mWQa(dmOYdP`h%gcx0dnIx!Gb{hyLG~5YnJ5lig#c;@+dDoZ4 zRpTtQvKP?^!K0*EousHv3RaL)XQbx`dL0I=4CF|8m|?G^o-YjLKzl7YDV^cyTsa`N zK!Z>tEQ~QWa%k1KFe2Y5dt5-o_(~8NX$0o?wi9MYsjFs_B+Glxc+M!D{$@|{04=g7 zif0x&rFA#!^oFK_4kz$|8#WrwIr@MpY8X5Nk9EA{!zBhc-Y5^N%W`cajs@1J`xVqR zUw?Y+GM&Tw^pW^x+>*hl&3cWA%$Z^Ltwvr?GmLbigQzBCcO#>_8DYOWsK&QBq^}B6 zp&$yQgowc_fxj|h;=PZj-WsPr3LBA3#E!Y#V9^G-(9(Vbnn+Z>#YVk)l!H5w11tmy zR0WNU#rdZZ8_MBjJFT0znuU}>%=j5k0vpgj86q>%`*4PZ#8q*0IarW~gIdmRYgCh{ z){hZj+15l)H0Yu*2`1?Lo%8|N4uheOL`8e@ZtKJPp5KtLHkK2s`9N5pN_pc`Iq%Zj zXh+f3SQ)f7a6zL$5rJh6#mtW+LkC~$(3S!7R@UQuqhZ-raH$=-^}M)!CmRFVw;2>h z=8h-f+MW^VuSwA8@21jLW){0L{m@vYolIA+BR}msK*-=jK%&)ch)>6phN(qtTafng z*tw+cZjIeg!1x+{ZInrBzga3nwrC=Et7&xYu|>(co8BQwfvxM2>?B`rEUFF_x8dse z8NJfy={Q1L;me;JECqxMN)5_n+Jfn&>BCE8?3m1;6LU(0qbDMky$eilD5J`=ZlYvL zItDdUV`)W31|_&X-dTvtUCb>O7Q^HWiko7HBnL%mW25`y3GAv|W^-r-Y=k&XMA@hPB+=%Q&yIRU{ z*O}L165Y8MMou?5D5W|~DVUm7PHiLuy1YM;yTgV=BX+h7QoF`1u_|rp>IzNgMY%x`2$IPc!W{WrHa^ z7e!gr$KF9hIEA?(v~F^yOL8?P-9R|8VV^{WSZAyeoW+;-M1A%+$MDkN4UD}T(~Izp z)l%n2p`L@{jMqabP#`87_MT+yI1DDM+Pj8WN)(Sz+#JGgAM-s~x9~idl{)haLw^{u zW!CoR9%Jgu5#4zw3{sxcB*+%Tu=kbC8+`V;q9rD4&+O`rYWQ9?fL){ZSF1$92ULvO z*bD=F95K|o&OT~VOBrA;ALkqr5I4w04~DUV>iXigC^8WenJ6-MMkUn2>x|}&l)|Vw z5{ZTIoOgLj;{^|+R2?-tGb%GToRUQzs;}AKui3~~P+^BM! z#M3lbSAJ21cUX-^Heo_&1J%+ho`}VreUa37*kz0KOntSiGeq=Hr|au6d=ol1+Bp=3 zOLbyLbu_=Um7u3Xc^Hec;D>$iVh3quQQK7BGKSDr^0>yTAmYG;1EsLn#C@oON~He` zWjpuLI}t_(#P(sX9r~~`z^e@-L+4t#ygD&m>XF>ORHELx35}ry3et;; zrY-1879s+fgBU3n2+c7uoB{E@5RP(u} z^Zg+Q1UF`eRK;#H{k?@g-x1xUZKdQCtp$d~n8pjpk(S8lh-;7* zsBs4jKIX)1;0mnqF-I?Hc|6x=mYTWDj&pms)JqIe;qp&j+O~?@AWSn?_QAhJ0AkARYFnatjNN5MD0FULGebO3L4saZEF0U-3 zVQZ=qFX$s@XbE~w3L<@=5FiT-5^hj9^E9hn(2ig&LE$$=kn-wTrYz2P7->8fb$zO? z`xc$p;rIXr?c}Z@?58%&DK9GR{ljZQb2)t|5_jNkH#QnP^6|T@vjIK0c)P*IWIi0c zsekMns#)O zsSoxKBpAX@6@ro1Z7?Rw`^ksCZiO*khN#Pkm4o*;7Snf{I`$?0ZWo@q`Zh3o;R4)x zy!+jG^Ts`EZRZ_fJTPNi_0M-+7D|qKO~+_3!K`4eeST`vH_#ZhGu9ZHUUuTzM`vxWG-TyvCa8y5IpO%8 zpfY%1NY02%soEHt(OwXGdq_7uiJh>slM@P9j_~A(!Kib*5xP(IlGdN;i=Bc6NlXAZq* z^O_CUz9--K+WgzT_4$Xte8*S*ooB<~K;xtp*DYN>Yu(N{Kl$dre_`_az6-y*?#UnhbNQizFC1R} z%-#R7VR&kFBEf4Hp4L4U?%MvVU+jH$#g||DkJsMWefXgn2fmYkwl80Ld|~N>xAxDN ze*6rXeaW&zo36S3eLs3n{yW=(+rIVHf4}{XKmXc;pZ~$rHfT)Ted5Qj+^{RU@xD*5 zc>eZhwmdbt_3TeSF!Qw6U$c68AG%25I1?4}L6nmVH$QpFsap=SW;Ii5Yg``BFPG-$ zuRfTM*Dfs0J@n%E>DkZB|G>8E$Ikpf|7Q;$df@QZ!#`hs+r6Lco*B2_y!E9A?tJt5 zxm$0!_k(Zhy62*It>5zeRXta2+`9bG$?d1TWyPmH@XbRHEWhy6%cl1?V(E_JeAl`= zPtCQrfBuU7#ZTJ5`m6W+=2=0~QxQclp)iSDaH zo~o0H32xZX33X}egxy`Lll@*N&mpxZbZ;PQr#s4CC(59%mT&3g!cFP=^9$FDympZ) zFI>)QT$Ki^s5@CbEt6g+_3U%##C9yo4j(+Y$b=c%$mH+})c}LcwXAhNR4kh2%J94t z4e^Xs9UUjLqi)55L)t=UFn-(m6851jN_C?2XFfGK@BGRB$zXV<=3yN)yBV3I4QD$z zwhfff&iy!EhK+a7QzA3Z_vNd13ZSKvN!1B^ z;);}k+z^aHB&TS_fM4NSi$==E@T#$?6Etu5HIowShn`ov7AjRG__0 z(zx#_Ry`{<9KS}Nc6b*x%{teU9DaMCx^N@~QJ#kRPm{$-YI^iRL`0 zI+@(GUiU_R*y|*_Wb*ujpl6}7e(R!+*S2&bizfH`yO~L=^h{#{cfGHdFZ_4Dv}{*L ztDiu-x%Y)pGSSK?);Q;hpv@x>7>2ArIROK>SP~+ z$ezZ9>r>m6+<`?P2ZpPi4l{iI`N4@V(}^5(s+0B!sP}8$R430oLx(v=CmU7d(((3G zC*JQnid7@_D{Pn7Nfy4@sqoZ#wO#qp>!f1^+lN)gaG_dUvEtE3?bcH|R3{CJQ=JT7 zs}n}GU1kGOV5`YTC(ttpW@>ek?%lhzu6y=m@Li)lgN9GD4zPzWNP6|&IpGKN4C(dK zdSO?7G`|vj_8bGZhs@cd_sF){9CETUvD+?&I;+_B<39E^#;@IvJ=DOmhMvzA z3gn;79?YFrTXzxpp&JdcfAY5Ltkb%dbsrYN(_y;~9ubIX&Yd|tOP zx2hDKe4F&^KFXOuTv=`bhhfP}-Eh@7ajo2T*JOxvOb$9M9$ zbBS7;>U%ex!zh70oMfY%gt`l;qrBCz3k=K^E7J1>4zB0Eck%+YR@j^W6?F21W_UQ0 z33n^6@J=l zo@B^xC+}22suO>9f!B%hr8;3lS!1|4_tLWbGd*4#v1t)tJz=UNc?0-Ibuy>P|B4mQ zEvna-EYVrzE9qn_I+4l0MWD%xO7B?cD7SRNj7)U`Kb7@g`4BiQoe(AR=q3vDYF)oI z%^~YmC!WFK{*6ayE*U1DLRz=Z;mo2<>(6=g!WUAVOm--dOfc`MYqyHL@WMGAI)jJu z3XRv9OG_u|Sqk%>8fMEwmUi<$8ZH(L7&eT7<= zVP2D>`Plh*X z9Mdjc$tCd%Tj?j|a^g=0m|XFd-}th)**Sg#)91=2`Uz7hPI~BX>ZI_>{UqH1jH02; zE>j*hE3b~9M2|?&!Nxt#QdoZuFg!dX@28&D-*u&R@>iC*B^f24cRU#$9MeyzUh<#o zs5t-6AnhlU!+M^C+OB3lK_?eCG_D1{^=SZ4HfWkIf)Sh^)ybTuPCC|S7sYY*InVto z=){=UzSeG?NoD3;*eaprG7X#1|LuVZ8C#80mHO{$aR(M{fVHQ3zhf&A;! zeuA`)uuE*SpZFcXq-Z}W=FiDocwti~X)p5qq<#N|7h=24p%*uA2bSn;((}{2J&<|x zGQaAFEL$Km{r7WoOd}FG&*QY}FcogzDiyww_*OiDd@IBO0w2#Z=G0|>;(*2$THi8k zrnCRiYJBwBCVq3zANwCIrj|9t`BfkU;0>yKWS`>>YW5q=69nC7q_kV#bYx#)n&-0` z&pPmLDW3MwG(KmJgjXs7%1ZG+pT@Vo0m=6heZHtkKldMLIjwz+>3&D@e=Cje{#Jfa z>FFNNICXt~`AGWxNci(IAl>8Tevs0akH{3mDMkrq_MgI|X&A91J}iUxc(?VK4+z23E3)_r}-&Z{>FI3WufnUct~oR zz`U#6UboyU;J2a1yo#WsmX29KvnXCeb0el;^zwhefX4$hb;)jjD_i7W+;bZz^M0X7 zptK+@U*GZ%TFZ38$Xk3;6)ML2LUm{yFw(1D(Tipa^(8%5W2Kl>@hTXTB2b7SlLi!v z=pt8W7+$CvUa=ac@Xf-(5uz-maCSG?mKfq7?yrOuJhrKN|EqejzCoB{%20ocS!J&U zzJ>(S7=H~ypO{{~mx~WYO|({IT1DmyDxhN^ump_nU_O>YeA&*wsFW~r&MPDs*JM(m zt_3KP<#!aqR(PZt7xGjl1<$#^!32l-R|}k#o|=TvBF<`jo6|DVB1F!1ET}4k5OiRK ziV@*Dev0%ef_(+re(7@>AG|{Hk*Jp^7LLTzN@>4Gf=8<`=d&8w(m|WYh>}sxZA|W)KOBSyhQ?CZ$1S3h;}pHA%@c5E~|LyhesMX!sFC zSEsT1!5U%Zt8%O_RvfRDM~uwOkB1RK2?yN-k$E18i&)vfm8p<3R4WM(j#H#5f~YAg z)xPC#z|$o*FzQp`aMeq%9%WXEZ3TZ4@PLI?!mG(u2?FJk9MqnNfx&7zrnSF}dI zF+zfN>ZB`Dz=S><7<_!;VwH$jm}QpjX%%c11T97%Bz=@+E86BQVa-U_s8p;r+OstX zIURAeh3gmN*yrGRjygw_eM=yetg|dC#XA%S(b~vGj$E#+I*hG;$1$h|(I{P@2c5Iv zqo7j?<+Pzo+vPE>B4x2~FJSsEX>YDaN=Cub*oRxOSs zB!g{IZ|umCT#DmS%i+4Zk|M9B zBAXQ6L8!vVOy23(Za9#w7Eu;*L}q0~n>Y<}MRg{SYOh$y4)Lf)C7oDW_)twMHOtU7 zNCY`YTvYAM^_Id)P;mpin~@P03~duTM2(yiBRRv8TGz`5T0-8>>O=GKI9P3a4a=>L z9;OccDFJwDT;ym*luUmxv}AgSvfpKW0ZzAT;B$py6!qB1vcXcs(Cx!M-QiqdH8DCk ziSx+uurz@O`A}$t&`=9y!bn*3i40$Zz<5X;hvN(vqr3x{jP~u-o}}6txi-{JP5=RM0i))Zsy1WVq|=%zEyfYS+La;? z`?EvB&92YTNRGIovn<}h;JEfrX^ao&QnQOp=4NTj^M&b>Q#ei)r=r4_L=YY_7ASrbs za*2CI$5vrGDpFwxWH&%8W%-d(QNaVT-j#ub&f`cdEsfBJtn@o^j$FVAms)QNvR$4-yI^CpYVU{;=+LNoX*1(ud^7WScC=KtXv9j5CAQ`C)m2^E1t;Fnx?D25QHh zBA*r(pVFa9{phXFhL(;xDh*=xgtPIT_%xkhjTT*Uh;(}%{mP(lnJG`B{04e3R{Jak zT8M588xW7<-HwpE)rliWQgJt;8 zVqMN>L1QmFIzG+$2yBu}`Yjx7$VBHdZFpxP33TYn@;7w0tjtI`(WwoJKrH-{I^{W* zw1YG?P=}0zsF9tqGwRnLQ%3!$MQKbYKBZc)peFe`!=c`F@r9leD1&li!;mddfj4OK zH8;Ou8r8wD!OJ3GK`9e9E@ifgpLQ&LMm?s@ITJCiU^^Djq@}%sQ*&div(qhbCx%5= zT6l4c7HHwJ@8JbHr=renvFsCLTqzzKr}W#OjtrR%BQQhI1{Tel{(QBKIUk7!tF-SR z+z7i?J5Iy0lo7LKPi%bX2WLoduC0%of!(uXSF)jPD~g;rQ{uawtgW+u>%>b3A~X2I z{#s(kSM}85i7Vh?)QQ-3SL8r|;@IAjXwfHf-A6+#GHjk;2uwB9gu#yb%+}9Q*3@po zgq9qa9sRg1Cw!~2w-n@hg4oJG&^Tk0xSiRY8;mEy{3ux$gyC&AAtPOy?_~t(mQnUg z9Umtq9KsBlZHTukv<{^P-4j;&cxJdy-a@-P88Hqe-4O*p;-VjoIUSM9QgCCE`D277OpnXKXHv}#SZZ+p02 z6Env2`t^=dO(@I}rUpVKWAxJ2kEnG(h_hYvem4Qjy_t%PJbWstjPi2Q_}OfqO@c@I z?(SMVv_S5U^FfiDulvJz4{PY@#11>l(w=D(ST)DJFZt?wT|C;@O!s;wZOX3maf`aHMxwAd1G%sA|EN5u#a*yzCo(K4(0x6`W`u%UL=8RV_RlF$$WQ~ zt%I@Qv-Xh3(bwwbz8iZ=mCL^*Mb}j~SiW$uhcC9pLxqOaoCMXl zBGv?yFtrf-5i;zxkhMBc$WmXQh}~An0c*J<(Hj`c7EF;U6QO89T&yQ93VV`9Jd-=C z8`mcN&LBn z+HLJ>b@ zTSg14pb7OOgQOe!d29|!hE0sq28y%$#h^Na9!N%GvasyRCa{q+P~Q==c6%@!pfXll zl9Mxfb`+yhB8wN6xG7MasRm^ksEAqldSp_thB_H~WfJL7U`#JBI;D)AFo{Kfbz{wt zoO?AlbK3^8#^}_LPgFi6xgp7#kcuTyXiIKwPDUychj&xWT!ei32W7M|ABnkW1T4wC zU9g(;DuepXD5dJWKb~Of7U&HhGKy8g>c)0lU@CEI2v)*!ANMtsiiiwSPVk1kg!ob> zG=mIbIMK;d=$E_lfxig)VSb#6iUa{OZQ-_far^<@;QWq#SVf?lVr5LS8CSLlbp8F&VJKg)Gpu4=sa#WCZi{)WG!Tnfr%sA8P^eH z)Z2%Ag}VVuid-Chl1Rh4qzI)e)Wq$;iQGF(nXU4OD2aDTd^ySbxB(zW(JCr4r_$3h z=yt}cD-!~zbStF_7&MH{I*;ydJ|=^t7?pH%c26=69rv`)j=@l5OSXJ9E*D7I??1jh+bv_MXM z&(Tjlo0kJLN4|hnoRH`>U{#S2yG0X+*!Y^3)>_(ZBQUNnX!MRqdmK5&hUBDj|DL{v zC5MEdfZs6M#JLxwbC>l~m=U*F0p)6y;&EpS;Cg5qb=pn!euu^viLu(5fQ$_-j%p8J zj9Hu;O0wm6=q+M4^d}AL=sp2uL|sAOtNRd#0(N#tFfy|L`G^cBy`wf@^WWx9cg%##w^Aj zy#x2)OlQA(Xv$p2v?Pn&*HSbxtjXQ#_Rtml>gyt*yN4uXc<@ z?=GD5Q>CELB#o`|F(&9u!m@88RE<$$0t8xGWHAje-Z0sleGj>ZnTO8m&0f5+@dTX8>aU&&%|5d`*zM#J40(tH`HpsM^r=ePpoB95zL zUc?W-UZCkKGos!Jy@VV@1b{3v7w7e{%2B8`yh6xC?}&Lw26%Bs#HdosP@ONmVpTl` z8gEVFmDO2sK7+)%PU;D14kyO5d`8XeDXBwVCHmK(E1YKgctA9;&m#J@xl9mb zFd}ZDFe&?-lN(XFDc7X$r@>e|IWU2U{RjD6Rf1c0Gkd8S6U47c6~xPI)AY$_v8 zrn_jQ63#We(rrJmw%e7CA6i(*cJ10Qjj=rVz;#Kft3Y9LLY_xJ)2>ZyT%;#eX&xc- zmQ@R5B0sQ$d&YLJon^BKl+x`5ici!~= z!^>A~INba08y^4im%lps_^;*%&;IKh&-x#mF6i5G+2{W7XE&TZaq8jR`Df4n;x(^- z@-r(IzWGBtKQ~tY^P4{Wm!DhvPo=w``NfA9=IbAxJNIMQu0QDLe*WgnZGU-c>775l z`!mBA{m1r=wA7t{HUC}TyW+j`uiJRtzrNUg>fyU*ief|wk4PXDjFIN}y&pljP`7Pg1 zMrt?y=J1|tmTi6GAAJ1p7ThPpKIySZwo#dYTr^F1hBDt9C!X_tNZD@1DD%^vI{){LJCy_fCF)@}KPw9{bs!e&v5$`2D`a zdk@|4=;Z3J4R7gQf85po`s^po54N24z=!%iS8Ka*`YoTn=Gn0yKmW}9dzZ}_>;A+E zn5o%YJGNc1Epyu^OBXJF`0kCTZ}`|xo<1WkJ$B1|KmGpy^~bBPEUn)D zOSWA0`1}9;gkNvI^MR|jo_E8#8}2-`W$V0afBBBBhi?DrpS<*g^}pHsz?Stt|F=&} zzW;nE?|aRipMLVXYyR=K|J^4KeSXb%Kla4o|L{jYzH!CFfBJ<|{;7KTqFYra zZZ@;%t~=v%SI$gb@Zrzi@uA&+(0uh6;l4obW`sshV`cs{EcfLDwbYpqb z)jzs^`(-a5(oX-6VjC{f;-E0cxy(&iNR&fMe3?m(gkTowi9k zn=LR?jACNLCMJh8dvI|k6D`Z0m$}@(TRjhRC>)0AirBEw8^G5#mKJ~}J1L#h(PynZ zlP#*YE>Shr58cK&L25XX)48cLJ@z)zm3~$N-}~4MkHE1X z=B>tbUD}?Rx0NEj7An~+I<@Vt4yxw%7(9HSc6D8sDe~By&FX=K89Ctu<;@A`wPw|x zsjI)*13j*Or-RPFOJ%|c>3T8=dot;ak77_(3_2CDGFJ66K?>98m5+@b&Kxdc(KtHZ z{{)Q2jb%>#?M!C(N4qlVWY6oLJ};X+5-!Tz1Koy&%vX{X;gy`?;|r*cjc&~xPGy4C zYBBq{{I;>I)fyv<{m4X>*!$aQoelX>*5#}m4$tg7+_~=H_c=Fc6ELt9@o75$W3tu5 zt6s34JEct^P-&o!9(b7?StVL4{!)2#WukD%MBl5bLncVz2r^lf>1=xTq=z!HssE&6 z7MzsU&69#2*DI(MJ9Y%8r+72{&`%98z*Lu(4Ma!UwllVAywlN|A1f2=$Tsyqp<3#2 z>xn=9=j@SBJVG||oY&zT#If^^oOj-3S6+VDw)PkW`)z6#>Qtz>72fe z#*a+Y(qQZX&n@yd(fC)HP$L2)6u-pDrNrpi1wBaXCT#Hw z+cMGAD7!Fr8I?&Q=V{yVGEv^B)n=9xx4Lari#cwt!h?^&hR~!oeaM3M&$x;VO{RXD zzM1qm3fJT7W5gt*us*g$6OGi4u@^tlwF%TP>)=V!u?bW=N%iAD!xnI#&nbm(P&Nzh zaQS9zB(*GHu#E(!Yd=VQlLtODW!UH<8ipoSHNkbyO9YqZo9w|)G~=!LhQfGd66%tu zIK?EX?dG)@`I;#IXIc)l93VgV1zSya5|#Y=UimzLdV2VZ<7w}OyLD8&%7dsP19xct zXvclyck?R;0zvXW#c>DW7xt~P*gZ~FLf3!jS40A6hb)ozg| zwYbc)NY5rv!=#65Gl;)F^+Wt<3b+bY+QQqZ*q`~x`G{K9jaF?V!}ZCihWq55kL|o# zZ6`NlE2)zXH1T$&PY4fb`rEC~$6Ky6e^PCZMsX?JOvB=Z+~5}QD_-m-*Qt-);%HWu zFHg^33_Wc={;}q$+9&qP*Rv$)aQ@86Gol!~+BE!5Zx^X{m7WKK$*8+Z^B-@g)>-Oq znr?D}?F?hV6Nh|+xF4i`=sm2~i_FgbC2WSYj}(i+soCu5r|a0lT-uKnJ68Uzxzu3+ z&$XZRm!^VKb7uSJy3{ zP3s9TE*XWv9nv`-XQ@<2W~loH4w%izrTy4m_Qqllaa=Cc%)1WO_`aUfK_+@uuKR&+ zWTtCQ)p_Qb%suTVR3@W`m@+fF{+Qb6w2J|xj;_oC$YgAc5g(_cx1O!%>!}gIG0U)O zO{Z1HWSXMRN?jM|sw@3dne=bUTt22}R`wUL+D9fo2{J!^#LI*!o=IP3Hg)=$+c}?6 zW%4lfnBKqtCSr8Hc#+c+%{3yMHCy{PrDYU!2aJ9%lOvi|WF_A#U#?V{tSVv~@AC!U zK_+9hu1w6#t6!Z(^qG6?r6*BO=swQw1(|rFI*}&>j@pzSkt;o2dV-{viS`QS#wVWm z%YQCDwBK`a)7UnaJTzSFGY{i*ZPMv)Kk>hi3HU-@=d64qT=e{-TlLEl?vIg)xAjz+ z0I}@{o^7mlk;zPt0ptBgPrmM;?ElFjWX@v|33lzjX-X#>W~WP1d?vrPM=$+^y+fi( zOus}XjD%yHzBx0~|B}eWk58~XzurPv^s&5p3pRbrzmva&h(K=c`nRU(oKcv<-I~Vt z>=f}8PtdbX?AaFT*@r@W^wDnqw=)o|%ui^X+7GI~fa8!=(?eVGYp5e~h@OAz5jxisbJs*z^pZC|?R~F*K zCVmqi8$XTr_Ksa&!wdF}2k+CMguA-_SGxHh=bIK~dK|k`T&c|@d-`K{=)bF|O(o39 zOs!^et2)J@$U^KB)lbXh1H9tFd3!_G^_#q7=gdfr2QH-*I0Mb58&5tT|A${vI3AC+ zTo+jRZ}*kg1NVmqfxj69)RDQ!mvb#&{(5$eoLTAVOZEZtQaeKd`b%B9?9%zo5TQT5 zb*Wrla4Cp+A>x=j%e^5B%*E&XSkEQ-ANOwY`8XsV=7qQ@(tFn{U!cGjpF&to^$;3v zN_!#A0jLSqYRU`F5|7rRMmW9b{OOTOEoVc;t?61hbdH02&^|zA?5zvE6ue#sjzu|&~xCu{mDER7(f(Imr65Z3qL5w0Z zP%y%hIQ>$a>WmPrDWazfh*jNIvib$I(S$T(7?}aXQ>=!JUZawFRx_$Ie7@AXk_Na7 zl?J0a$3{eY%|q)O%JWbjB!TKD^>B0_69@-~_2NG-bg|Sf@kbvbHNm9iN zEm)kwS_!%KWUY6{+qoAIrbR7;t-te3UWii$s`FP*_zN{6I*sY38U>8>A}=sZ+@gJ5 z96sfki<_sqsS5)`8DR5mJB3d%v41`cMvsB?sQ5W;)=CY&Wv2x0)$uYxuRfktoJxc- zfM%|d5S+vTUm-p89);|Fv7hR0$euzwPLTGA)XGR%!gCawVrA1~xOez_b#9NHdbvcuz6LmGqX}L>d7WAC75D?ouq) zg<^q#L_e*urWF(+frIBRk*4W_8s)IY2Z8lNp|g$<`uZpW;^Kf@#sx<4wLEneCk+rgy;w{BN33s(g!>-Y$uZB9;8Zr^PeEu?7!Yi9`94!ec{;2IGSX_=z$C~`v@XZXS#vC=mP@E3 zF=|NYQCQi$5b1qQ}K7CoQNA$ZDGdW(5n_+9b@u&S|1XgAFUv9Hd72&eqT+ zDuSM%tS~4@1=>UdcY8GDUyqk8X90dLmRdZQgz*&iaHbXSiNhhzsU5`bD|X9EVThKH z@=CtS{D*Nh#iCLEI)u9?U}@kkLPm71&MlGPE=!^x?{xTv8`ycV$5Y^kGp&)bV?e~#{fZ?gWo_Y7H%1xl;{pY1E4#{AbMKHA@o?2& zX#?b~VfYqWsn;_TVGKF>5qbwqMpf649yw99Z9W3ATr*SX>IDEr%ozM}PeBu?dfLEA z(r~WABP99h@(2V#3ko(i2ts2+17J*J90_F@EF7pQ4QUoGu_#oV=s?*G94JTN z4_G9|U|&rFNRF$s3oJ18;2a9tN5cpyCeVc@LrOZO#uLC@g&jj28Yq$W6i1<*5jU8= z38NnDFbQ=qCr|y%CFZs`c9UWp=hZo8XdUIBYYaLkni+=dWj>iMPfCk5465xp(>8pn z8VnD#wTC5($(lUK2#T&@YkR^10uoSk|*+or7v`gZa5j&aU42+n(G+bmt*q$yv zA~{D4Oy%qX=4o_W+<5C~k=-|nR`${r*l?gSheRB`Fl5kxJuvJwwAUyU zKB+YVsNEQB$QD=9jp?g071~e*H!L)IYBh|ajScJ|2%_bo4dm*?I60?ni`N#Jw4$b% z5%Q6@;`P+ol_6}&hIly-hn4!Ed@e#z=Uf|c@N@Ro3cXM0tx^Xw*pHtBXX><_8HW~a zoz~^*Zf}VQ46ouat~XnBg_f+%n|up6LzgJC9BrNhNMKH-7lk4Yqel}C1Z!Y|cC*k7 zaYyfWQq$B@k;^*mdjSJ?T;ETFmi+HTvR5KN_hrC3Z;Z}fMsqOF$I{$Magrx@>~7-( z)T->O*Xj~l=UmnVBOj?Z-HvEhnbLwg%vzCyWaJ5f2u5oqQNlM z1}7UMU&oBPtuRu3kjcda;l6SOYJ=O_Q+&W)>$G@=HdC5~tWdt$q?9sUzZFtSe7Ee- zhQTRYz91lvgR>sTgc?BMVq+M7XZ1FOb@McVz0wLszhROo;F?+3Uzkktfi}T4o_J^y5Tcqy}wPMILmJY{@i*csG(aZ+b^;Qr;mnf7pJR&3<>S7I=G58DFxBf_Jc~Jfd3h;YM`p*@!FP4go;Sl& zLebDi!=NrO+Hng+xK*2d$^DwK3|5#cL@e3GeSWyGS<0vS3<^(^4RY9kp3#RGN{u_@ zqS?~|n8(wFgofRhz<%m!BXr71fKN!@cRAn5c1d5^NXE$@a&)k-;xR7O<@GkCxfU@ zL26$sR|n%9J#;|KmLzLziB8uSwZcgnO3h$2e$J&54Cib?3KN^N*kKq-ll6l|txPct z0$(skY!ZxhB_=Y7G-dQMNggKF%)C7jeQ$HWq6nsZbC!_6fdL1yXW`2R?BvE!a*v z(S4X)2|@T|!?oC?8Ozx^^wP|Ml@SbnvW8`oIb%dJk}uN@f^ccvI!#-;z>cN!tmpz22x;4a)7b*vjpkS+Eiq#1AZ%2VkIj~4cWmh}$({yqU^4W<=(%}uwcC(F zH4KJcYgfj%MLJhVrUI6}d^``?+__QL=8AOKR4R}qx*m|WCyu2e}@~A64lRHA}R&QY0OoQ8mMfF`N6g zl*KfoEH;iKV#^2=E62D64pw{FP`e=j2VkdRiVF?hVGCu?jzmFWrQvN0wakRd>~$zS zh7hdF8*{g@mOg6-EST8r!-cN#+GQi=R1?Ul64tC#KUk7nB$?4Rcjikn69m5WjzR$|H->R~_yG(?#b=62l^l{urha4prAyxqj zSJ8{(Wso}RV%4Xdwg5B4+XX`pvOtKmXea<^Lj+U7W8=m*Vl;q)v z^v)B)U7MkAAXNIaD4b!0QvTuSCJfJ3OC^?9SDV2LiR%1Dy;E^8L|4&@X;d6J3Q;lS zd5QuyisNAens7=fQ%rbmZjdTCEFIeo?PF^-LpIj90gyLoUB(Lu#Xo$0m z7CC)c!PY+|xjuY~692)hiH%KyWa^gKgsW%|)d^R=%&pn*>(+!UYG!%ZC{@d~oy%A? z?aU7c@1r9nvgA{rFwRP33d!|rlW-_<(sqXTS%aUdu&l<}=EaC3XgcRuMrNLz$X^VN zL43pY*Q^|2Yc^J~x>9GYIk=ANB}vB4UL9_YTs0S$O)x=TX+OvFs+Gy|qZ9WAcgd=u zfQ^catpmDa|glU~nmGQqGGc)VT1BP<^%=W~ODaXY4Az?`&{hP!6P2s*k; z0y(2#nit8et!!jG2gHpwpB!pWm=%WMWNqoS4B%^jWP;UF*B5krH2Q9Sr_DBzlknw( z-B}V0uM4{-^GRg|uf{o5YulsJYD;VWz^wd-UAn8^$*ormvi9V7+b|hC*S=Zgs&jS! zrxWLRuN05OuNeKEudQs%+lpN&rXou+We_EDYOp^){pT|IrqDhZ%NK)}2PH8`Uk3b= zNLO^wz+BPJAfu{{cKz_O`C(UH(x@TLpzTg8xbv5fMDP1h+_X=IY|~_QoC|07gfHJ} z+M{uX!_-<6eXODjABaw*VYv&F;8clD6-K%!K1uN(SC`wVFGIo$e{}uHf3*A+>yE_v zr=KoAx#89`bGOfCZg$`L(e@jD{F<4II`4h!p*w%=^nbYi&ELD`ExX()_qPr`{-tOB zZf4De?_}?%Gq?TjSy$b7ey22X;op4v=zH&f>i3(U_|e=g(+_++Ke+VFTt1h%>yf)| zUs_zc>m3)~aNYR!-}_ti3|oJH|Gw|o2mk1A{_zvf-@kok-K$Ri;Scuw$`@yUWz%m= zj&8rHI`hR{U)p~D)i=K7u4gaYvgog#fA_XWe&^^LzcPQ*Po97HmMvF& ze(rz#`B&$D_r~Xc^e;F4moIcKd}PzB?%MwFXF9L{=!plv{f!Hs{-h_uO?{1%Y z{zF%u@!@}Z?0esQci;D3KlRk1Z+>Up(LcZG!ru?KlrP-&8)sd8M4h3_MGv>eQVzEwr^dy{8zX9?%fA|bm8_JUbXeEN8Y&hy?33t zX8gxTzkk6eKlSTJk6v)-_kQQvvu3t$-~OI~kDT>^Z~es={-N(3|M0S-M@~NDi+}R+ z;QC!}-eU%W56#`l*!A+$zcZ14b5yQO{L{?0zIO6^x32o|58v~VQ~&y`_kV87+<*Gv zZ~o7HZ@crJ?SHg==Z_!$@|WKFrT09%>(RCi9&P`>vk(9EO^4q3KM#NYf#14o?Pve? z#D|_gv+(R2UVZBq*8SDPH+*vDQ!}00&Iq%oU3JRwmIez(ca(_ErnX*L zU|`R~{Met(GUbhD?kSbV&|pVvUM*ruRaHnuvGb&pyf%IRs#TS3#UhV*CC)TcD;!H- z#}&k{+1jf*ul&KNk6HdfuM4Vgo4w;C!3Q{D@N8NL#dSKR5;kiPrX}}u*TXU-r->FV1+Q!dryKfWZEa)8zk2hdQZ4MPCb-eHj!_49A5nn#T7tzxhEG^-V{x}~!-SO)EDq=LZ)slfzMv7w@mB|sWyAGY>QDvLg4EHjD1fWmHqac+@ z=LhKc>s|Vn;e^AVkx3RR+u>eMl)|Y@rZdQ-UuANn(3Od|as(*TQL&6>Ik(QYUCq~z z>Ds%Fj6$KxWZI)T&X;+`x8V&cldgueMs#I@YWp*vJAwsZ|9MAX*jVNsbmmcnhmD<+ z9@?~RlMks(RCD`aKe8E1Wimd_37XSw+g5CdmJ^f2+HuZDJmh7IIpMP5*OOCWogxC!Kd5y6X;sS`KTZZ0*rV0viY~lLr(JC!?a@4V`*MYELFhpbNv9 zURaG%%tpBi=iMF+a-FTnMW!ksWagGPfA1jmocfIRD3iC2~354QB zl8#;R&&p)k^r}_bf~RS%`L0Z0$$l@B;xsZLu%A`bNou!{%H)NyOJ%ZBYl%#>ZCYDk z?D7$E(sQ0yY?Ps4wbP!~)(&!xRK#?!bb5E}N@b!z76xHZarvg|=;{4dWl|M$`hrY2 zD)mJ&ktK^39V-*9B$P}e6YaALGU3jTT`H4yH(pZ%#xrGjz%jGu;TMChZBSN_31gR+ z$xG2u(nst{*G3S3lH!+}YHCY3!RH;(rKP@@W%9x1&!5AX+62CE4x_^H)V-dOATd0t zU&|+Q;0MzDGFeH(dM4r>#N+y&zE;$(kn;k&_Kd)sLwLYo8Kw4%*H(w#p^yP~huA6F zN)k_MI>WlRl?q9#ZD`HsBzl)(>@HyH*WXGviiF`x6EeNTTo*!wnPRfhP&0QN$rSUjB#gDBZ54AY8Z!E)G&NRFl zWq>_z_qKx~ThjOi`$cd22b`v>J!8+`EG{8Dm>3>gSkWbE{!sCPe!bd1YB`AgQEVh{ zJVSAG?HS+6`G-szp`P2Qb832SBCim5s~*LM=gpmbOV)9{=jZfEJKP*Khm1t?$ZAS~ z1Mm*sSh|f5F|nS{*gI2F?GiP;TgQsVm!s199vpR~&asa_Bg);rxv8{rzGKs!7~m^C zT0V4WUBWcX`HjcjrQ_8zR{c(=W!@?ioL+BNJ%R)mMME<9WF0*(;yDw4xSt6;4llu}n_s9A1#g zyWXX?Z|n|$E&p$0!PS$=c>lQaYpgj}d`Qb-UhJ1=R3^**npV)sJOOVwDw&g*f#Z}% z9G3aI4#0#|Ls%oSj{y@!=ai1MDL)YhZU*SIC5??4&PSH)m=Pei)hPYODB6@fl3znX16} zlE_4zK@#v8frhG zR{*~%1>uZK=eQkX=t`i5e$t=K^q-n>YhIopx-ywYCVuSd zi66FCqHL#sT>DA3gG|zLHQo0U1}R*aBh-7o(Va8slw;c}lKtF^WMWp~UQN5ye)7x6 z#82Eo&ZK^KA}6dgsLNX}s4k{{FT8N}AnD``uuHsTDur852DLr(e(#LKp8aCaMv(Z6 z6fU(X#6P=R&L4JtWUyp&darhjd}a!g?m3A$Z{HZIP2_~qCQqeh_0Co7**#*ZLJ_3T zrZn2w{3H=-ADPDgZR$th7meTXqAP`Mqsmlk}eLpq`QF2=7bFk#Exh>goLsaIGgT^Lb#>ylQ7?!}q0O z;?b(|v>7n?vOTUo(kUZcLw@2*N`oW3JIxnDvxb#+9iQ}^#f32N;iZJt>DiGxfa{&l z_`0+_t)nIn>`Hx8>%!xkn?>F%(^`CciuntLb={e9vk_hdrzCj zgvUgiWA0lo+$%^Z;0mhdg;>2awKNPw!Ex*K(%`3LIV)DArljHu@^R6yI;)IP7e;n% zdZ&^4Cy)6sHxlx*q2t00xUEE8T$S)SBHN*r=L}K&O*+zP%a5f?Yod7Aw=$_LvLS;w z@ZP!9`~U4~DLA6Et@t`sW;`LZx1Vz9G-`X4D09#4JQD}_fR%b|5H#jL|Osw&tQF)WkYDQ79us$j>B-OOIH0?&j zS)TZngf<9h4P3c6v@f{Tn<4ETQr3VvM+q+Sw-f-WM1aGlF?d(;OCm=tjo@rcy7f^n zOam~XuhQki|A~Q$E`P&dR$~Isy4yw zC;9{;4S#%-CkdxIGSNIYK_A%BV6H|OsmYUS?Lc1QybG(6aL=0wr_F$;154m|x^9J! zLFr?(QJD!JTb0N)#ifG?vg zkrYLI8rcc@iCO~9;0p(tAte|!Qxu-MTzzw30yOJdX*eL4V)3M;;>p+2BvsL#Q!ZCH zfQ2Z>KksD>+eZNy(qT$;{rIFf@@g*E=?ceV=}h-%FA9I*jEoK-gRv0T$9ti~L`$UvDz65HihQN&ab zHNwz`B`Z@Y9?Otq^{hn2N`sWapu*jR&&h=b+NM%Xgp4eoLHvMcr;z|5!AUi+47dW)moXkqzCkRJ|yOTxmjP zSJT*ftM6>GbQ|6$MqD&-J3p~2cDqiJqVC1zDmdkRtLQ3X` zvlElC8(GtLTNoAhlInc(s0Mqn_M)Z^xg?XWWwaM2&@C&(I*PoW*aU zF1ESk>}lFaq9h0%u--LBT!6evvmrsW*n)C5;TQFy|8)k}fDkd|L~?kTZp{0xzFOEU znO=eVweV8Z4tpO)HH?I&#Ear#nx4*`&H{ViaXUBDxKT5W0@ZyR zFh+uVP2yT8+d8FYGYS{!7IP4U5u4U+0KfhU9sMRXu z@`GrDxsVP}<2ln2#fVy$ioF$K)U9O&EA^Xsm{Dj1CJ`f6IB%oK(J+#nMX5H52Er08 zuaRvGupb_f?&9!79i{ajHxY4#fX_j-ZxS4jp6j7uUEY69wGHGw+P-t;aS4xm`q%lc)3$rW6l zVbMs3o4*1#CWu1nIDpQ=)y5_k`h{I zv|+*`f1v2s!G=|UmC^)q9SYMl30*{A?TeaE&fXTnpLm6oWaF&U zfwPvffXqL?t9L;uLAle;zL3=t_TqLv&M6h54RonQG`G5h5>mn3yv9x$85Nmt%sXwG zY&st+(@2iQNqZnKyWL67Kr0f$F85R#RDLS1uTbHb&`6s^$(oi}AshKl*sj({Jms08 zgn}K#+cMZ*HyXRkayeI`+tLc{KSu zI9SzMxl|fpt{2==_h`Tw0EIi6*XyEV5(45TAD`n17rQp<+2Vp?7^4VE&L^eCbrGEw z4^+8Px3n6E#l2+-r)sF2NA6z3NEfN*o?$0{E$_Ivlyr~ErT4Z%wb&X1qd&SSvj8)8 zLX`Dv91xSG0Z)pIz>q0oix!Y5O2XZ4H3m=z2EuT31M)OUVBjJ(ZtI~Ge-_YIPep6K z#J;QU^ZFGMM$sm}3kya22^LR-Pg;{ubh0t1Cx5UZGE6B>D$7-O-zJsQY#Cb|` zd+vB@2f{wB5>AZB;;@pi0uH6!YO_Wm%LzektFbF>5TkleJKR}AG;zfui)B^HYs}6I zt!&V#ywvslH1rExo#%sQa6Xq_Ef+;-NYj?b1>KpVoao9>WZOLRpp@bGQdNE^KVN;AToT}txbPJ0JSSOKCT-&vREpU*9whQ0H z3Pi&H5!c);Mm|oDBY|TTbq)W`k{ce7^PPmHfv^y-G}Ryqm&(iXQ#v=%(4u{A#Sy+- zGSWG-^$RRsC>>K+xN=zo;jw-R@0-jv^S5sO(DM5F5Q{z_Twvn9yzJW=2NVTRo|$bD z{}*$0ar|k1xb3J7owJFo@S$XVCK`GUT0{aw3|os;gt(CAlba@nY1pp{n|_w?bA0mM@ZJ4_Y@V^Y%75+YJmYVRkW`)$xHR zK_QLhf^=tX(B{aM$XMgBi!gMNz)Bc}(J&OzZRhFGVc)e$g%u&14pCSOZe^~B2ZPyY zts}deCT8U9=szxN+3!N{ zFXhsFT-(`hey2i$*4V8V6-mUyt0jV^dAu%+98XE{-S+)vH!Hz%d3f)x(vAnIEyMAE z5jW3lVzAyYJXti9FR?D2&7{joWbOQu#bxd>ckW;|EIV;E*OEWw5Zb_=js7$ZvlY=> zhKBD+h8CANG_Ex7`b?wX_FtPDkv)~#5Z%Pp2QY&UO!ELu<97bSvrdWqOoOOLfSt?V~xBOrA(|&|~D6f1ML_ zgyM2@7F@A&87KQ1Ni-*=WgJp#_QDJvE-~QBFD=FE9F^Navl`)mqJdwqB3I{w+5nYa0 zXztM7!y=Ql9Ksb#TZh4`M|t9jqDP|wsl()&lKiFAW00fV3j~c&C|Bst{cr*!qH6n#QDL9S-iBA|KdfXg%8X?&g`fE^kX`cfGfn8IM0 z9zsS=0j2g*DIn@f)Ms~4gJ06=NU2rz1;2oUgM{HN@o-xVq<=_a&g$s`1lho}1iwa^y}RIa>{Po3D?wp!m{(y-K33#3lCWPQ+qEoX( zpWi~!EF=y_5At^{Nn`h7qV=LkYDt9bTR)UtEtN09&3BN%e zZEO$?=ktafW(ziX!r4lL(Na~cXT1snh4(+@Yl5l?HIdA{NJ_H|wZf>zyqG-iHTM@{@g;ZNtMhmhj5CDF?aG3wGRNqQp|#dd&I6Y$ zW}~I1xTwY~8lOs!sT(_QxI%~K6FVF^YIhospR_VFd9O>Rq!g}W9I!?gNByo8Bn=!+E(e9+7U<{(g6~;iI8D$=X5j-u( zgn{m&W#AC=x=@!B12rb8YaQwJFl<*XFEqkpG<0k19w0I>BF%Qv4vIW@e_dpFN}L#e zksGoFW0|n)(+D1(o4&2=MbU6)Co(kJe4D0-3{P-S!&q7G@LJiM+i)Op1C1HG~Uw;(2J z3OqWl_JHh0L>S0($jJaR2MBtWi5+$1jjvhD`h%|Xi#n*u(5fmvpBMg5W3ZkA9W2Gx zdWpty$Ir#aatA#l>gn90j^!mSjYFjaA3XMA2pH#BZD}m+Axa$Cy>q_i1PqTcukcau z$uS?0f-q9#`dK&_)v{HBMG4z@LP_0ZUX?2If{i5^%$I{@9#1;s8>$PKULzm9kVi{M z-C(QE%`A&&2_0yhA&8anRGbgV*sGD#?qxE1;TKvic|@agud-nukbScgBMSu)`wKZ8 zD(TAvy*^Cyl@WeUk$^_rpItCVle zN0rLPjd8hUS^p-Ne4NHo5@Yo>Nw~IJYuUD$b+ZnxRpnzN(ShhHsn=Ya_0^+P;Q2&` zimSIkK&#B-sJWtESyBobRsx3VDdnUIPTQETvU6Q_N5P#vk*tyS5)&1QHlMe5&aYc% zw!#|SAZQ~~F3T)Nt$Z?Q8H3u%)ds|g9g!u>U&Fds3;d!)EA2)K@*s}6vGv9tYHqS+21}8Ww9K)yL!lcx~LqxB{EVCUI?;2ZZ^XT_7Jm#~4HR z4@X=aBn`7UF$3W>y2xAfM>`t&2EL#hMcKh7R9PL!P8qVW&lo%VoRkJ9nNAlCx|KCX zl)+KmFN+g5Ka@YG9EGEEbFVv~g6C}Va5B4M-HGu*Bj#Q+buJaw8Jv|a?~&=MgMPq< z?aVV_yZUw0<7svnE;Y_@jYc)jNKsX zlgi8UmzCppuX)wlbFP_;);0WeMTVc-sZ6rG>bW7Gzu}5C8!n5&{Gc|I9)cU1b2lt1 z+v#r|+4C3W`~KuPswk1u`Q_9wr&|LJe8`ybz#z5gxq?|1QvvcGJrq9lvn}2B`a?@>Ga*v z?SqSxW%&j&VV|Dy!qBHqSeje*iQ8|Fcl<#%d*>q$-;#OR`*!@-YrlKO(V6rAW!3vm zcxyIXw&B_)TOob?@{2g)e{VL*>RT&Alp< zOt9!*Kl6>BeE+6jeamnCOJq>zHQ5``P^Iod}jOFpL~7$^F!0cw;ny3|J71* z+O_rVXH;@C(_hj`5#TrH9Q1RFXO+*>F4bylUK5QT9fIkXYYVNMZJomFXjt`vcXwdWU8{bQe3=S)>&Z>P3|nGBORC(}f$(UrCTp5U%6@1vf`2@ThS24tkcV+)lwaL<+sX2#>P3@>1SkuErd!}b?mV>KvuA-^R9PM z)(q>evoK0TRF|tvuu$#(F{(GTCFpVV3}hm5xwlk!!_15_7MbLq$}aki8D!EK>pw;& zl#5KX0a9{5ZE=-ko~dq9nTT7E$=aSw!1ew9{_&0+;tou{pJ4K)vU@=$ovuvwYos)v z@kXumlQUDHNW0xUxcdPbhR=mB0Ym}QmXznL(e}Zzqeo1vk~tY z=FGy^Hq>TM22#7l_&_CLiQt{uHHu99l-*)4-19ek-8Wf(ZP!+j@k+leMim)M&uPS- zk;cYibJ0f1*hiUv#uN2EU2mE+ui6v-SEb=v><1}wfI938lKgts1p_H5sZC_>Tt?!C z6lb7zj4rkl!dC?UULrkzv6AK^ZyF97@nwdupu}t4)W(wXO@xmfWIRdv&0*z%x8;;c zeC#JfEuUuv0}ni&sFI|-@-+Pd7v3;T0j_1MJbV5z7~BdCsGT9tE_^|4rZ#&%%o&E9 z&}Q@cd@X}iTqv1_YHK5yT6BesHPXgqj_B7LQ_^iDmikuukBk!Z@F z!|3y3Pl$aZLi6^56b(%gb$G?{&C~(jD=k+kO>Y;qPvrXsWe@~s034D{W_gs1sjItM z;W%Sb+tWfAdq{x zmdPU@X9!|r<;QAPNNStS&I8e7(iXNd<|EvBtit$D>0%DEb-CgK&Pk*^UHEV^NMu0678RHUY*_%4~=FhF&0nCZA<{=sB0b(x&LzTj!myR`0FS3T>GvQ^TC z&b^Jz0jR>o!qyUSOSa9740ZmWG}F(24X(J3dhXxP{KxwxWTKS3$aOl+%0rlGc^ZF4 zCTI1Zci!Q{YV}m;yz?-_byp_E;yB#AyuVO5i;0L?R@Xk@NM(}N*%yQ1)3Gwa#B^Gk znb*MkFM64%+>yy9l}YleZv>QgPe!$H*k@M`>Hp zo*CaX)_*y7XPpHQG8qR_I``beHW=M@sD!bXM1S!KZ;$I~=M-%Cp)$$-RZk{I#{AX* zi`!l%Wa{+$1xDtH7V84ILSyapBNN_p^pB5&r`u1ixZ(l{IuEm9g>Pw4$&LooV>Q?5 zXfLL88qu*%CAURoqCJNDC0-_Do&HQy;!71WD)8zltvi;nDicKY5W%biW8TS7B75X&mObbeOC% zVeC?w@C>M9*TI9MSS~77m5Dy3F<3!8^nDFEQiMHFtZGE~^ z$JnJ_CZjUZfs1zB-yOS<$wVrXC>^^xH*o}cS0?O4GM&v>w~2ld!~CC-30MvIr@c%{ zl0K;`}0WT)CtH1|*vQu-$F6RRzq&y;&W$aSvbUGtLzj#0CqWfQZ+F|vn$9G)( zyd@&Y4d*Z6Mr{MVk3Hjr#&gD@5BF^Sur>7X5w?J_=KEwC#um}T_3Rvbc8|clM)5`` z@O8FZM(*qschtl6*9$m&nb;$GTs`~2p8cW(UAUW5e<6KG8Xoy%esW67>YfP+Et8hI z_Rfs#`SOSPOBAk`zZb9JnD_;iFhF?j; z;Th_i1)3Fa1vs^Hybib?{$8Clyq@IA-Q;6V@n=jbKI|Q}+!{8Z9{=BgZ~uy@cp`rns-?1H7O(|%;4*P zXi;h8&P-Y%Gcib!dvz1U+sTN)2|VanQf$d8Hh}ctBkznw!o+~WCSvh4`Wmz|!@%E0 zp-NR!)g-9VRx*sC1d<7ee`#D#0v7aCwa0;l!ZiM8W5sE-cjV|hc5J1V-ISm4LYlA* zPtlm8;fga9#ec;2P0bi+30b4JymHCTFAKDvMYCDBh~vyW?EqcL z@~Y!p7Ii$f2OANLLKuEl3LEGO#g8D0ir8CibKaLh0Zyq?T`38SsPfG5a$tMGX~05C z&yO7uAwP9ZB@)U)!;gTv7jW$j7Mgsxc*bq(Bz=?P>t+$V9#s4u7~sNVjA#M2MZK}8o+KOXx;$ZeDC zXvm-v>(#Z4^6v_k1;nUS%wkUoP?ITLkU?%m0H6fMIy|ip!L>e~Gn)b=y55c0#j~;&aoSvmgy=r257Lx6&mR4b_CD(MS3kZ3E3}un(lMJhma4C1bD)1VOZ0oC7_B>Xfad$EOb3Sr|qSc4{OA z)bVj9Wwh_V`hw0zj;rKo6tu{?Z+j7{g@I_3EnODe9SzOSRv8;|63T2YM5kUNa*ENo9*=Wd|XyYhq1-#1rODiXqY2l%`R+7|B zHdz)K!y85Ttb(*O=+!bpn;dE)`_1#%;u+aE91d0jBUGT)XRWA_mV`A4?O@o4CQYAI z=O>A(X(i@`Ha%-L=SotauyPsfbJ4}2b;aV~1RdoXsoK`SZ7nE3xq`-KQ46MM+JmmA zhLM_f38Ajw(hesTXHX~|RNb%;BCwCt*yH2ui_r`ih7K*XNnt2R#do80)d=S81TCU3 z3I~Sd-lT89Ou=oP=3HpSK^107O|hYqT2p4lM7K+5nt`$+p6v@l+mxKGh@C=`*HZ_B zwOox>4s*i(J{O;MdyA{%NiJUFcCv;kNoZGCS^@(RG7BW$DS-@K7R+jE(Gf?xFDb0)`(DA4x$pl(tH>2Pj=R%Z z;u=<9a>NfmZpF<4jh&G_T7sBj)x1-!Oqm}Z5tbX0AsM4+ykky0Ky)CpS-j+un950W)M!&k#F;z9P&}s$)~DnEdr`Yw>=1V#dyvrl zYdxNpVwx0pAenbG2>np9XzhG^C=6=6ldo1Kx&&pqdg4wfvo#0O3l_)4!N2NUfVJ(`B5 z>QHeprmoH3Stiw5&`_-OZ>l>m#{ljUu!)-pE^(ANYGLKlyBHO%KCe+=p4<6w-Zd`0 zO$OV2(n>~#P2WD9SqeXU)oPxpsBC>FS8QC3Z1wF*FfW zI|E-Vh{}_?#L+G-D$e%S<1Jwp=_l zk(Cwd5M&bTAeNUW*Z>090xBO2Me9CNJHTZ4ns2t_!0|$ApZp5S*N@vRlHI&vBEHSU ze}Ia-mD5IeC;R=_#z7ShC4y+8_|j=6g5klv4Ld>kP}6dc7Gz02U_2Xi$!NO|LV~i$ zy>YaW10KxN63J_eq3$qHOp3E89N#g^beH_;%V;-Y{B`sP#j%c%vnwM{+H-Y4s{j=Z zWLp8WEsmh-Q@Z;o+;t6$PR?!C9r4v_`-%Ur1yfyTH#a89^VX@~~_*){7ZVPsxfw>dN+x9-iGvT{mfjbU~O zo|_Hpw(epScul#Pjhh$C;=Q+)i!LU7%w(4T-cKbbwJSNi8d43B{3A-^A^IlMhyJV`STTaXxxuE6$Y- zJ<5gEdY+c>7-sE*@%q_&v$K`rqM_$<#?e$BKM+(7n25dyzY5H}b(=Kyu-uk;u|a|W zY2+K21S)}hR2WYtBYHj-O|=cxLgiNJo04VWJA)(}k6;2{fQPN2KGTZpN?pE`FLCfpUP^7bWNkZqJa3IY^_kgt zvEhI!hV+$>uAZHIEE*`}4XqJH#F31S!hJ@ZQMN5TweDJGsSLFX&I~VeBcm=HZL#R9 zIw{i+Mx2!#%6N9}Q95LPSHN*zg83zjBj<)&jvhPbqLLY^e=X|U*PIixdo`>Y%I}2! z)2NCnt;|bqM?S{EN^Gm=F6cE*iBjH*x*_Y%1<#mitexQvGfPCRSS?B`2cvNhgF zTtX9}IaV=ws#OsZZLrqFHbAMR!%Ys!9pNY#)^ZwX$ujRCVVZO{ie|sf4b$z2aT00V zykwH9LFewwA$gP*i2&GGxXC;=|5#4M8V)HBX`~`GW>CjmY7i6Fj8V1`G1DQJ2G`46 znLxtQG;!ew5%6Xmv|u2~W4$9n0@;i7qjylq{Qt+>yTD0RTzSCf-mY$LHw}GzY{mh3 zR5v3IBP)#qN_;TYZG$b#CN0b$8f6;7y2KcRuYggR>ZTm?Ey{l{eIsUCVOD+z4bbEs!r9ZN7tz%e6*>j z#}*Y-t_Gt^BUOf)N0XWYe4Cr3vJ|j^>nL<{^F^Wze0D~FVkbcb31pzH8E-_h$OA}` zW`&dGb?4vV1sWJDIz8GuU;`S+n(*$D)^4l;^Phr1b#+cCL+j5LFbX<~+$x6l>hydP zN!!W=GSO>tU#Bs?|pz>cfJ?dsW{ z(sWEMmNboU*oL1yNg-HTNhNZeTuJmglFRU$CNe!uX-g!tB$a4#<5tPG6{;2e2t&LD zff`b7%T`R5MHNa-AYnqKiAIv6WYg-Du;UrBu`z5B9x*890SbmV{+beQ7MOmLWM&H& z{+P94HDZX+h#)b(LLyKT%KCQ#&Wpj#JJ?z%8y!r?o6?6=y0~-QP(~cASp|Q-**{?4Rdq?4)F|H|iHXP7_uo2ngGW zU-7aT%MlDFh9$@f^^a$syAjjL5z&-HY7w`+K?hauARvPYhvjZa6M~*E*ud8%$Yv&@ zj6dw{SZEnJ#6!0Q(fExnNGYUqv1iKdSkWBkRsu)j=^mA~^ORP?Zbt8S(5eBf z`D5tWT1oOj9#>GW`nGi{WJ#2;IgOi{(3pWe+mxpS$x}24L2fjK{6k2C!w%-Jjh3zB zaG~}jDDczH0;C+t5(QZO4ZUDrl6G>36)bF#2@^`ys2va(#a$s$%?-_|xSR{RT}uvu zW=om?ivLSO(YdI6FAh=yFg+7ii}~~(PDKmNgbg;>b%fr#38XOToD-U1of=s%-lk4X zJcVHVF})04e7w)M@QrFfAoP8dWTuu(6i$n1@eUGD^#_dP&ZN+lEQt@`VN@w06s7Qi zAa)~(_G2$6EiwBds|g3)oDA0vhvD~0NE6FqT}>P4f!3C|(9wk9QLnx*FS2YxB`bJR znaLxmaQO<7pfon55GGMfI8eX?fbIZKa-z<%Jk>$Q1AtqC6#V%Q(8NQLMnZ52PR3j&8BQXOap3+OczJR8gFlVe zY|n)!R^xbLwgiRqCfdkxwFz86)e^oN6t--9>#M!KteW=|Y_s~@}E zNm~YQd-dWb_vg&fsL*)QJ@Pvk7>6~W$vEgImJ?%dmXVS_T0jVFSmtP!vZb<~$-{4u z!RrlVL(>nFnX!R}QBK%#TU#kq0+pXu8k?q0G`Y!fd&*SB_Ntix#bYZZJ;4{{tVb+G zlbKu#U5fB~T!W+Xi0Wj9uN`)qF37nEkdpaL$!so=%x4L;_4D1w!N`nF6LlWE!d>XQ zH-ud=p$97YQOcacm85WOgb>-86T;0+$#dwwNw&LSX-g41<&RAlxSXt5nf^dLu3A@^easdZgHn$sE#3bn(!DpnG;?;Jl~S+S+tl=qC0;oFh;~k zRGcBXM|?64UIr~G=5G2PUx7Q%1zSXdcZ(qyES<()3S@yQ+uV;R9?E9ct-wrfut67% zgd#g+crs)Aj2YqKqng^cZ{L3R+OOa9!3~eJjydhjF$a1>>z`Y*^ZCh*hu=EG5uf?r z@4tKa3;+3(_O8vpyk>gm=P#Ljuy)CaNt*VJ~yvf`4+;*_-nmx7d?i;p$?aI&j`erQbzVYzq);@UrEs5v*5_cWEe0%r8 z6)V0z_LB$Cx}^KP?T14vFI^G(6p#JABhlyx9RycKrJALqBSoe7n7T z>smQKFg`TmL9#}Kf?vG!PsP^rnVhu~J#=x$>j%%6bN*}j>Kf4zWs{^-b8eOEU|QsKj3+L+jl{61G12sS>73I%$_uU6n4@s`614Q!1SBhS1w>v~v3WN%;DavWh>*F&tT? z5hvnH_;}>^re9fI#mIt?yhYVxGXKcK^N*iS#e~P!5jz#I$K2 zZ*+)oO!OI1YM{p&!!x>$a)YT;)$^U6fEM9 z^y$9+ALdEKR82T-^d}6dNy8HuX7Yu@ z{g`+~Fi&8fbanYy=fl8Jp5WBj{{c@tO-ybn49mKw9WbrQJJ(#RK#S4v1g&U*C$-uD zPx!>S&sVKN=g;tjG2moA0M;APPpVa@*&z<>BT?`yoRQwaC)c^3RI5tuBEx-7gK$g= zP+8DzfX%G#$~g0N!CrWwz5$YP)@r#N+k~nhYVZB5b=eMFqYO{boqL%lUO!=;pp8@$ ze-a(I-O;JFodP`DxGOBii)jlR2>CB4aOyc{0!^j_?HfD-ZnL zd4iMVlX>0;v0_L}w)-DPE!6E>lHrMwUEm4Ju3Rn$?aoU&GnqMapa@}jg0{B{HBjpU zhR_LUc}Z|;Kl22wmw6&#M~p^pMH5`dDVQgi%_t79L!BpJXoSk(i5|yV#sKDtJ`%UR zJ%^g+)bG60+siybR^W-pTl84i273PtB zh9|6v($RqirBj_b{RkXW^B+^d^nVGev&b^6S1DD+g@B`Y%xm282X^6N9fFAKMRduAP(yl zG7f3%DS`^nW>$LS9tZFA0Ii6(!4b|Zyvul}v4_B01Q1P_2xGPknlKOMqPPjTQSEL* z;+NhGH7$m_k>de7zj?{U`EWW6J6`-F?g2eYYFfeJoGdgg*+^h*fqI(`W2AhV5C{!I;kd zj^7A}u3!Nu8Jzj7&&c)>Jv)g!0@v*yDlg8WQu(?T{9e11R4Cjq>HVB1?cj`Kr ziN+?yG$!l;+CT&AVA?C7Z|J4RJ_3wmEHztRlv#oIMCewoKs?Zdcll#2u*-;De@+K| zMZvZuGgQ}K^vc9~lVy|zoKmKa>?>6n-EyE!bI4$Ur;EI+_CrVjfEXCZ&`bgN=?eZi z*no5Up#&5;iLDW%!}|MnK{E(C)U2Nc%WP7zju~_pVedD&3=+wV5_oF(eh45R{J4<< zax8EkykTM4X#Bw7@R%|4d<4xUHqguWLEyH}T}+EoJaVvzy4^_bY}O1WaAWj^f+3rVn%%5F2V=|?aj%NzDKr3L!F_n+Dx>WZR}fz z-ZG>uzE3!c$An+ERKnCjE@1HY^&qu@%1QlvGyr-wb$Cl)eKMi zra_`(&eeDBxu_55wzJNh-#>Y>4=QdRPujbW^290E$K*On9_y`Pu&GSe$Dme-3ptEt zTpOJa?a2MEYj}eDAfRPQr?Wm-ohM!3yeGMtC)j}jL~32k6HEkZC)8?t+G{ms#v4?V zDN9Xi-AhB!N5)Hz55oCHv>$)WlgaBeJ0pDxKj40tC(Oux{QU(_3{!fUCsybDOM9VD zW?9C*CF2=9_;a4H-WqzeThD>}i3MZbZPBkIq2VuH~{j`S1us581AHYl&Z#*+cWHoyOqj|Hll+e*jvE;0g3>5zai}9>TLO-0cFwj`owzwyru)dYLEfdyn)J&&F(R3#MrF z!MlmXul6A!c(RLMP@3(GRBK(4uI^h_u{&~$>Ku*hN%-49Kl6m)FL+}5Nv+Nk(@zGG zC+N_oZH5%T0~_n_f9JQb2J{aD#*OelhEgUzY$&2$EbPRXbOXA7u){bT9-Pj^gRMp7 zFy24b<3&T~a5&tvOuXYT{n=d)`-PWA++Kg*8#-4(B*ZK)oc^^Q?*Z>UKuauI4=>c; z1NIe<>R@^_vTkJwwAJk}4!i^R*3;eU(RQRPOf&YI#E-l(4CrQZxI?n8-)LJ$Y*>DU z1_>rOq#+K1-)h0n5M*!pmSn`x?Q4O5)!0{LcisQPx_%i40cFJ32xnbC2H0UVA7u|8 z+ghBZ(Fs^L5pVltypfLaNVw@qtbcFt!V2(X8i@1aIJ-PON45pYdD)y7z&G1_ugZGy z=rzx6-{<97tkd!l9ZXI*u}&LkWT&ymh!^9{;9b1W%jbw5;~d0O2*-OC$3wWpo5N>e zlI4Sc22ArY9RM5h@c#g~h5*_;iKO?IAVh+wBOb<^f50=4=YjyFc@BKBtNy2Dm>HR1 zCt%nO=7nyTpcV`qC|x~qMcR_2%{duQl12Qa$nlDZ;d$dImnc$m-9eAo^X4I zeDaFjNXy+;D!3$j1Q1?TRXiCg_;buRH&jJ=xYscXoTHVbZ2klaREU)L*4p?ecvSGm z@BdR!$PI$zNS+pfo<9RQ;8p`418;AhU{WYAor!`^A74RFLlTnR7y zEDt&AD)Qrv|DHEq8N>xia=h@0k(cZ;bDspGSB54*%9|k5{|$JwfJiQ*2mECXIL!M< zSarZ#4SZd7<#EHf2j%5fwlBcaW?ev5(g7fNAOYY8!r&Rs2~+ zZTFBi5x9Mp;;1o+08>YbfB@|n@hr4)KB#3$5}G~)@PaFKD15y0I?k-&j` zb`2uPBe+aCK%)kk!uYa};x7mP%v+k*haU*AsYQEU($=K4b|qSxK_pvD0Pn2mBHA%M zYTTBV6^!x6!(npO_<$tWl5k|GQb3(LS#pvnGtl59iRSDPlg%t34k{08Mp=aKW(g>l7=H{^g1?4Rs$7^XEFgRdwN$_BzO>1ISu!GN`;Jh;$5?0rw*at34sw|y| zIAKtkfgkn^`6tS#;^g?Gj6!4;Lo2jExRr?~{j^9}Rx=vCg~gzx)yPpvXd57TWS=Gc z9h`73T#TY98^ZM!M_#gPPOu;!i!zG{Uf4oXcrO1i|h;VfygQ8rbG z@=6nU^7)F+UeiswFM&8E!+*OV2LX;c9+Uw{_JCDP66)}EOQ6uHH+K;ojKaF?{Is9AJV+%A%x zvT|itWtS2oqWnldw*>8q25BqO3SDqLXi`wN04WMxvXnx+0Q4IDJX0HdP&p50QJ_B) zDo8kzjom>O6j4BdvIR)0Mc8`9+0Isw$P_D5t2vzw>#{cZDXD@M)c~U$0X`*16U8W- zYp(+~&}gl2;B_0$^I;OS0E-SZ1R8ch0eGxp0}O(SSqU8fuuHBAfQACj8$)i4s@T{D zCM}Rz*+Nzn-+~%IzksI-I!>ca6D(=xPIT{$*?tWfDoYI%huK?~av8ce69@^n3HK`p z1=tV;duVNA6gLmrK}n^uwdPjX#rzGsWl$GsL1#L}c!v(8h22t-Itt5GAOe;+!O$Lj{>{KO@ewGoi;w<++faNmVQxW#8)&7b`0Qm9 zLAIhI4BSq9>{p@#!I?w-IHrnI94^2ip%tz?7cwP*0KpQmQb0GQL)4_C3eu)>%Yw85rM5)p1!cM@lzp?*ii#+zqle!q8$=kj+T!Geoh>>- zY0`+<Jua^BRZ5H_u_t$HAgkvj_)$+G+M%%}$&o z^n{*G!z)Y*jU1dWD#ATz3}^^tO0@FD^R}#HwJtz2GH3PR7crckw3Sn!B9GUipiiTRYI`l~Um=P;nxEVEtfsy_tDC1QIDI6})$8TbvxK5$UP{#}zCy4!EG^eb{p;!vUxw$NKlu;4| zWgN0n_S{>=SJHB4W16(3D0OEAlDmllS_iWM6aiviP!TE9kG6^)yvIHdES7y@P;>}^ z0SS^$$S|dd7RA4ZUO`dkCVyZWo5upgEm7#<`*1BEZlKJjWwSG)#I{P@RC0t!i6C@K zh{v8Dv}WDns>ef^x0En;%e$M%y1JAmjFv$^M5&ZFtGxc#}4kYx%uY2^4-Iv{~WX-8%)u!oe;344e`+cYU|nts}d05!ec(rLgk9XEmyW;vnz^*Fi4=uCN1%xxrQ-uFo)~XjNDGa zED8#`0aeye!d#siG)k(iCZ9^|mXK^2^eG}7?)H_}qxLB*!b#g7aQB^&1vw| zMcc(>N5}$oq%ncB&v#@dW*3}1vK{pTq+$ph#5k+KQ5EdnaC_eG=J1Iwa~#CF4c>{J ze11D%ZUFIz9saeQR>i&}FtGx`JhnZtiGFxo!}#jH5nqQ*602z_Dm_K6d@N%H-O>JG z7F7f_#qJEJ(y@e2S>w>_gnU)$tV3<3jF#mP zE*TiEg9;o$I~23rj7?k6vzn-)Bz;lS+6fX@(%BeKrdL`Bl?P46vNI>4hoOImD;2S| z3_B&Rp72GSR`*2CdPceH)RuRDlvG*_PrhS}vT!Eg)e zNKSMxhAeeu1?>{yYoXB#{o(5QtCh2=MHoL3C$ zHewTH3_C4F`k38ZErrOrGa!aGw>TABCwgXcqm(oBD^*_+_a#VC^#Ki8=-yGDv^YLX z$7IYx0|X6YNtUM!(Kb01SKpYBd`4h!0L(C8;i*CzvY4HiU237h{vZXGU#OXFq~c@^Jq69*v;&~k99tQX?Iw79%iJW;F1}9t95DU!(j-TEpROl59erVlPHEgHtEcg7m>YKOb_~? zY`o0Y%cLepTQm_js%yQbDL)a@5DKZJbDI-$zG(YYOo|3F z%{Yl)!ek1`AhHRSVc8m$k4m=CMt6akjL3rFN9WK1c#oYZkns zfEMf0usptTxE`OS9t?1zh~Xid1&xc`GlFS%HC90y?Ms>RpQq;#Mxf?01VyXB+#70| z<6A%m%2NTNoO_d=P8)nAN`fZv{Xh_@GOduQ7}6|}qeiU30n<+~AL0VxDatWROOOFQ zYO)oykatr_mZFeur3G$?uA;1^!U(#_Eg^u@XcU_DbdUg8!c*{s53Y*G&kd!29!P_fOJxRbB`9NE9GwGC<23YJO)e7 zsB-ZgobDM7x#cA7QbtLQSS{s|8rD2vNx52TD$d*x+=+OF{D}mW7!`up6jLG<3ympf zVbx9&8w|i?kA}KvQM)}*{Bv3?F!^g%f%H zsN;MAi(AOVyp$>+wv=QK-_H|uQx2(?3Q3f4B*r(|+=7jjq~Aid1u+bB^$Ze(Py<9Q zB#KT_YSb-M+z6F!K*u0fn7%Yi?JXGQl|(hV%H? zf$a$|CTByoMn-_I@dKS7I1C!gu@&kN?fMAFjICnYLerp~$W9T&kk>FJ_H!8-Fqm>6 z6SNBtlfmAM>jY2$qUpr`Hl1o#oRFEMEvkaeJw&>Ktg*lcXi$lPPFm>tf(ep9S>+JF zPzcue()h;#Sx1|ac?7^~kYFgu4uYmYydo{@JOz4~aPQ9$q$THsTEylNK8%aW!v7D^ z;*IYGRI~~4B9^5=1<}jXV4Hfp!jPl5Ubx~g#~yPDssMpJ0|W^E4>!|*c@dV~=$!08 z*7j9(x@-sm#=FIuM$Y;`^HyfThVN@1<$vrG#xg}ourBdzuD_g zqZ(0LOV;kTr(kd7lu4As3~E77h;mlQQB_Kwn%}w6#)=|)JVmowY9J(QeI7mO^`$oz z!#(o3ox5@2)Bw-ypTLdGG~9x z&;cXTgx1xfORu=!?rFF7SqXSk#cv%l6KNZw?fx(z6d8`bXoA1l?zT>gvq0#(i)vyMIA-( z?)cm6oI^L~LUA`=wy_EsA`)YZCP6VvJa>?bq%i?cCNX9R*yY(+xeR_@K#YTXyEXo?A18Nw_s}1DhrJxx@tFhF-(7d`f4fgy^sCHOFFy9%*MI-W*Vpa+ zY8%nGSO4{z_M7jSd&0+}ue~>Z;-2ZppZ=#;zc6Rzn!|^0d3nmH1y{ZIvETH*wd(r2 z?y4O={PsofT=MuY_g+?B_%F3NkH5M$`KMRke&DHhR!+Kn`Ne0ywsq@|*L*YeX!o;k zbxa*zJGkSw+kg4p+8_43_R`re-uZ>^zwqYQcRl&5cWSk7-?Qys_CG)EzYqQPtV1{c z?8W!?ynXndyRJXG`=P$nzhC~r_ip{lOOG5n^!eK1-~N8`-GP-WZ#n$#i)-(?e)8jE zF8S|`54}{ntMHqTZx1w`_Ta)BZrFF-qRZ!e`Kfzuqq%;Z1{@qF>`t`1$$tPmJ$(EX+gGl< zYT?9hy>ZX`XJ3B9MZrm*{c``<>&{-aYvu1hcf-GRkNe~^V-MeOymH^X;cx!#x!>)2czf+P@4nUbo0Z+4nNjQe%-@EeWf8PGTzj$EOn7+F#9E@d*HZOkQd}^c?jSe}Na>zP&J8ajuxr%07Kii9wGz*`CXdr>qHbMZwdRgS1nL4N*yITFnf_h7 zuzdD))%soPmvk+xix`Yv8AFk$h3I7KH=Iv6I)(>SXrY11!G+%5vv#43(D*Z_)}a^G z+1b@~!0-geb#YWZnN!_R@~kD@_6P=U{9~x}B@*5#-sm&z4u@g$Br0}!JTV7>=MmP~ z{%MhRw~7d;M{puy`|M5N$u9U5X4^rJ)S(Xe0ih` zhv&Q6+H&x$R2UbI$k!g<)#iFfzl{G)qBdJ}K zlSsX*wi`T=(jST3f+XDZ(7yWnH9op){ag81{k43qA8Hi^&?G73wY8uz?1MguXqUD!D*79y&pIjYT*QN=@Ew30S#I}PUiFA3Ai`7 zz_N>L?;gXGd++78!m?|CC+*1Yuki$hjd-%l*e^3YiSEHkcw_PhBI?`R_qbiN4v8nb z(E2;cy5It@1PxajyNqhf9 z#g73%K8|@0Zg73~a}Np|o``iUyO<}451zoXR9&7U-Z2B~00K$cg5IITIyqI>ON9H5 zkaBjy3+p;65NqBX`^)x8pDl8RI@I}xaLnuVa(&!Kx zJB?UJfBlF)WBI5(Ml5mY$|qpM@xfRO_7_=46#9j%XJ~f*P7rjm(XDI|Vm;@HVB}H0 zZW3%-vK}ISX5)7jdCyu3cZ&$J{vyuNn7kX9hAWkBLKzy_AHO@WEy*ePB?jp<^d=p| zH+qd9dJCscJLq7$j3!@N>c!(WJ2=4hty!+1=ia#e#_dq_0ba~kYG#fF8_}?fh_QFb zN&YsJPhm(%KzoNWZJ9P`&vYLp0?R)SJoy8BMn;)80{ERY_Yy2+fe-10aK?Xa9FJ!PcEDR*t<61>92FR;R(m&!oUqJuW5K|j^^9`n1{Vr1l&Tl)Hr@)p^1r zVYqGs4_r<9_Cq&~fvE=mcWN2_7&JIM_EKyDb8ERLW{l8CWgHQnDHHlh z7gH7iPw@N%RW70(;E6FKkEwE7SF|0|tv;TRCx6&hE0?p`$X)@C@cb>ZcUNr=Y(n}l z1C5|HM%v0{PZw{1Cz<8Ult^T-d15h7>avTw3Ag%A!xK+-p`Ai;5vtaG{`;9&=NQvarL=1!2zfb4=d^o=v8pFU8A4BvENBRYNo0#9B_Gz$S1>@KD_e83*#5j%_b*38@A_cNii zNk?9~hDSrQ*)9B@+pfohE~4i@1?!TZ+lT_F>md&42SSI^LXSJnA+d2lNhs zi__yMYaM44^F_|{4$sZu>;`^QCfJUgjRfole&|cqZAproj^N>Wk41Nd(pf}6`ZUKE zMvqb!Ouh(5e1m6z4)HxuaZE6wp88voKWqnY2k$R`OB#mwTfb#;H~#b;eZ zDq{)$;z!*D1%D0yHT87R6*Tyu0|<0DhT`cCvVNn~aQ_}{b4fvxfjX`y>S?#s)4*<` ziNJb@4(V0@>A8>S9ddlYfW9HUR@Xngt{xBJvrsnHKjet4e`wxwOd0g50ov~LXk$Ex zhWUqwXFwOzSJ#6a$d{l4$`J?LxC3D@0kwMswE6O$M?8;yNRpmI9rYveVTbWYXHM{k zo#2rgfBa-XdRtP383(}A74K=m{vg7J8<6MNIFJf&0~*gIrfCqVDqKjQsS02I)L})6 zzwkQ`o>b9z0WiBI{Em(5Pgo?KZ^Wx_m-HNe?U^wZgTkYp zgpKxP3mk(3@#ravf9nP){2%^tW#i4?#&@9ZB{y^q0BF^MXOBsf#G(Lr1^|c+*a}^N z0n670Fo2ncyij%cLL_d^?Cp}DsBAECY>uO`u;nj}54Wd8f?Z4ozo{8djgHP;gnjU% z7hW1qLxo06tvIK_g^yz7nvj1j1N~7?P>toYS0@8C^N|?psLLv$cN}#qWKjq0znv_J zQYKJxS@#sEq58L^@yhrDLmi}r4@4cz^-W56Ua!8ziCT zb3g`Roo0Dy2zH7x$#NKd1IACJVRqtjO&gKpF@iuw#l+wr$LPy9>>EpzRg;SD< zK(U{A9H#)%Wn%OdYoFq?BbJMeGbO5&vQm~PFg}-Z8m$%Qgc%p&0Ag;NR-B205gp@< zl8RfyvngnUSy8`E5mhOp(FrPk)l7OO!Hga#rmZ*%g+%V7gxqk1FPIhXPes{vIwq12 z2-j7WgaSj4Kttdn{FK}|DW%*3@`01Va?JpUjz^`Vip(bH|JMWb7?8*ZeH?l-z!>0j z>8_xn0#}5l3KPxYe8|rcI!=;kHD(;>xCoN`#NitkHgt84E5t7+Xp-@c=m;F4v}uXV z+Bx*SPe;@1F^)txqb29Tt&B?Jw5<{u)S^O}^2mGi)VTuZPLP8};Vc`!W;o?mOD`$e zc@mq@R&&S-O~w|ba%g0+$J&?%Z3%Km<}#P9H#J70xG8w4)J4!BLrb-A5F?E=w84!p zr3_3)P*0jh@If?qE?58sAj%{11bgJby@Stk4pUu$Ky1Ame>vrL)JV& z4Yz&@0sc<`nKH``VUz$Osdu06Y1N+PXDNF9J0W&$Y!=t-FMAO&gwhhIphYzP<4 zNFx7)(&7uJKGQI<5~7U?cx|*{krOb_VB1d64y1zqX8byAi?kJ&pk|G7AX04Xq|a7p zI8pe4thue=MWJZUjp2BUUTrA}#MZ4iVCFA2#hd(=j7y7(87NlRQQNx7D#k6hoNA7{ z9df-Uxk0RjIU5V4p0A2lv(;!x%A>XL^rIsh0$D-VPd2j4fM1T)VPzbg21OaUogO22 zqPD^%!7mKbU@Nmg$WqwJpd5}QiH2+Hi|Y(VeF8FQqrOmX;uJnbNwg`)Nw_f5gzABR z;bIVHDFvofsV8TpaI_wY<07x5@T#|cfD zg(#XlI2vQ7*?G7L^#xBsIKN}NvmSMwRi7&UIu7e`?hsmxFxO6i!l^bI6|`N4xx#9; zsfeE|wZh0j5>afcDVa&gOn{a^lLdvr;Eh}gO*i3SAm5U&2tV=%s=UvkhoH>1i(#yY zQ3VI=EH_mZ_EaG9>$HwR%K-EwveW{^e-m&CKMGC}ekC*jP-P0tvqc4=#7?c@t;6_s z5oU?vt+stLtA>`rGQu7HbPcz5Tj^@3id0o>9JZialq?#~-2Fp<8;%SX1UY&IKODL(c17jS zBe}*=Jwb^kOY4_HR~Ux*3y!?grQChrQvpSl>*R}4OeCJbo`3uC}BxQZ3dmi24^*$ zK$eW!O8g|C-4Vcdj9}H%3%p|(qR_fIj)bIuL&lL(+)ueH zl-9y}G&7Yt9v_ujENnG1_13lPM1U;OTYx07&^;|VEtdD4WBagHB>yh-p=ELW<}tb& z<<8VWP)1SHXmkFVpQ9h}8StW7rz@w(CLc~~>z+xJ{&ZLuMovL_Z^Pg$L-CoK^CwlB z7#ne_TW+*EJJzqSj*t)P^M)sHtu87%rO_%pM1g(yd9PdwqW`#$(HM;LEj?tN*z<7t z+*@$UGD%IcMK=T4-vp+5IVGQ4L>JJ-P{Og-Ql+e=Q?@nwyA9dG0+kymm7ocT7KVR% zZL_Y}J*^;5XQhS*l&NfVCks2Kb|ryW0R?%q74a9SBIPypG+3MRWWT6~;s_}AXDOjW zNhDFwv;%hQNv0-ry@KE)93U4kqA{NGqrOxmS!}S&X+`oCuw9ZUj~5#9heF6DxmIGi zW49D#8RDyVA6RZDg#9rs$`MCG@WVdGs-g`#7H8^9#Jg21t+H5Ptl!L^49dfDQM(R z*le?e$MOH%oDA8yD7VsM1Bt3-GKgO!6`B>^kP;O%30)+gqkAM|vsLsL#adx^AW*=F zH_C#qVdy-P#gCW@L5{5m%C1$UoIEbU!01UqBnq20h&Jov`P+C!4RSrnq4*~5B}s5a zx8S}N7GPSS_aOvD#NdHr#u(JlW^zS0m4Y}|4N!XzhjDxG4HYMxqJUDw=T9NZQkVkS zqaS?$N<}VAMQ1EvNP`hHHmr`fFt>+$Y7=#Ye8Aju5~doKqM5i&BpZhU>3O5iao)0E zU=}5Je+tS|gpmWH!SX8$ZG_HoZ_S6vuVh%;4Ud)XO(7;J@gS-5sb@l9nJZ5~timkK zviffYU_hhfhr%D)i6H_X1~7M0t_})CWsMf@R+Ppj-zM6^p^lIH2Dp{LcSzD2X;I#J z7^*_?i-yw|QwoFig_V%ZLij>8K?pD?;7e3A@Ou?78RE65HMi}uipobAW}-RT5kzuGVl zjVpk@J)Y?GvSYV|(6qulrek(xpDd;A^vLY^RWd;>=rXivm>Fq(tN})rt=&v`D7A8b z!T)0fh=dGo5=k^=w@~KmK!%$<6j@N|>@oa7YcBEmd1cfG|JJ!UWV- zEe@t>Xt3PL%2E-Gx8WP5v8+O%88diG$`Z+3SYbU}E`kF(#o=hPNMeC`tRL@8wM$L| zu7n84Fj-cM$erq{9MNnH`pVLIn^%_@l^~b|dNs-pQ)-mqezlYoP#X%+M+GV_iA!sn z89jarb~aEVSaR~t8gjFir1H7@1Ud>`gf-zMF}+b}5JUnY9k%-#*;pr`>{c|BupdJi z?2MJ4leAcEc`bcuBaxCNdkacOsI4?oSyJaT#Y*?0LW10SjuGO7!e9xTKs-$^7`nQDUFV`_=8hPLB4a4Jz}mf|XP zv)aLq1sA0noHrA1vOYy6MoJd9L&3XG6qyJ&FNncSMGm$sR2YIp3W?b_EP{tD5~Y?& z2^DN)g%Ll}ZAygPAc#V>Ex>Qbg{tkebXbKApelLJ+GPzaM+Da2k_2{L;$+cT$Yhoy zFmV&h8eK@*F!^juwu@-#B=t>OP^P>@4+Rkc(37;hX79+E51oH5Oh93W1!6lI5~-K4 z{%v-1JmUkw8amoZ>ZyX_DBQ;cag+@VaGMPljas6NLkZn!MS>zS-@gb1O!#%#JpM*&9D|~nZhLjZpF(tjkmOR$dzcM5*gVoRNNS+ z5@sW4Rqhrs8Z(G0VWz5q-bwqJBSf2MLkbGfH41Yzqx4QezK#Wkx) zz~M;BBQ=2=@oczBmzASn{mDXOD_I~0vGcG3+2RZlYGV%T_EV~8$s(vpZ}!thix)P> z2CGpzS&~!*O7}#}(v2aL~JRKa+M z5EM;Val8<$@Jb_e>ld+#nqE*=Mb5F5Gjoni(h}4$SzJ7BvK};a90&0@6iSVdo(PQD zT%WMwg#|0i11(4*u9&HdRjf9^$kQij$8BTdeMy0STU2P;<7=p;cqh>jVw8ct{;C~E_EOPk6G+b^~t zPXMS@^kj#$=c4}VfPo#N1SEM;xJ}_J4sF2@)_pRK8>;zzulEWZ@N`)|j zmutJ2jv^+@b(UPv`)xrA0|)>~m>6+onbu%Kk`Z*}vx-QXIHn#I^ot3-Rbs%Q<^s@C zN02aAU2iC;M+6#@7P>V~XyP*m%mCz|@PR@*O0kFFcm|qyq()0n?1C&e_aCtUpeSuo z?xPLTIGTl5P>hP0`L!5gxqGwBJ2nt5I%_M)lY~ljTJsg*tyD@3*oV?9SJ2dCC$ zE(pazs0rtcS>AGCPy_=KQCJ+H;AxcG!A=GQoTgx~h1WsNT*-bdQ5zbO*u_gAhT|_M zEd322z8SsXU^-A}O7b2WpaJ^P9|C0OG)jfcd9#hQGS!}E%*`ClB$riunJQKUYP7}@ z361E{5jo!S<>3aPCE2P8b2lDjm7Jm>A!DW#z@fc_ z_j1Hzg54^HlLM{37p2@HgAZKLnjW3R4U3|2)&lM9l;_WCi{D9UpDggsl2)bRiq4#b z-$ij3V}N{+A>ptc5Kwq*x_>KTP;7YMG|=9WMrp_&%2e#e0DAp*)IUt!9Cn9SB(=mG z1En8tJ1- zQlR;Qo9V|w)~Ryg1g9Z{rT%@n(0ZcX@z5(g1+%U4XeS`-aA9jXG+~5)MRMy!4h^fi z>*JUlNs`a0H%QE~hFf|wv#L~(r((HFG%YELQ=x+q3xzhUU7Kk--+58rx@PW*ur)`l zR>cN-G}-*P{U4!3_|c{(u-B$4r1PjPs7i(wl-0;p$HWjM4owIxXp%7{=FFWdI+V25 zC2Tu4DG09n6LyuR?|d1Sc&~BDw^qYmw9;c+6(%{Nr=dw=QciOd_GpxFBxbq89T;-_ z25?5Dg=?<_;jV@?A74|QsAbAJ6C;troql5)0}c*hW!CWG1hWG__J_bqfdA2P+&e@V zOQU?KwF9QB8@GnV2$gd5gurMkG1?KW)X_}NB2w5a*3KDen&gK{3#DRDjL7+AN9eh{ zbmPiG%8m z7b@(?FhP)1zGmEf`JD;ilxU`&S(OH5P2G8({b*B*m@YGlZx?HM)*6a2sOYNFZ4fm1 zkyz2c+yWZ(O`HdN8L>8Pirt7K0&$YhUe`EJMwe8*A z%O@6YUc2+FTQZM7z3_?;PFb;H@()Li`lfwzjP_nJe8%MAXJ0sZ!5iDd;nBhGqo15F z3(sHnU@V*ce(32pZ+^ME_fOaTTld+A-@g39?zg&UoN{M-_6Kur?q9#wY3OstJUH#k zu(lDzRL*KY<%}7lhKwEc<;A}SPsX?Wa^(*%KKFv`%t=qrSh%wNgM}A;{M*;uFr$0u zjr;mVc)bpu`Q}rH+poOpvxh%-_xt1KkGS&C%X{BCZOVHG?)gpim8tVD`|Q_egd0nZ zku~qV|I*o<%cGZ`=4Lm1P#oa3Y)h7 zZsq)WA1wdjkgrW$?eiV~!QI=o_gymX(2PT0zT=ja@89{kgX5n6;O!SKeBqCeycvL+ z;}r+a`e5#5FI@e*!Yi-8v~AB#KYTOv;_IJ0`-Q)a6Gv11_sX#=7Ot2v@8IQMcz@C* zA1pulYN-^oAOcmB#+?UzHlyH^xWUc0$b&)<3f%GT>wUO4rFuZ+xryCtW|qK{TY@9Dj#(Xug$vkQdAxnbjP2vbMjF?>{r2$I z3x=J1?r9It>AW%XFDqZTqH*OpZQU1-SqZq~GoRYJG8{g>>~zn+>Wxpd&p5qn`Iwix zR(|%rLl@N!F1`4Vi~jLX+n3(Z_Eh)HXNB$#H->LM^#1*yA9v%sXCJ)&yoYamxBIJy zE+6;mwVlgfIPk_53%hO{_rfciOT|L5^u^CSbj{nt&$;B<)9zY(R)g=h*tpB?dE=$| zH`d;K_doU@dgsPH7rgP+H)ifQ{Mzqo?SB|vYh8Kq<1f9|`ni|?sjq+QWiPGIK3kjd z!%N=X^P_Jat=+%zYmT4Vu6Ch*m4E~%(sakJ_S!qOY15W>YN{;{-=BguMt4{JjA@O^ zLx$j7ydUa025ACE{7 z5cVcaCpk9yd+hc431d>M?UOt;30ox8<((L9KXAZ;|A-MBx!lgj{e{y8WJISXc7g1B zYmvU?A?Wt(V0`1-Fgfgx($i1Ffr9OSx)WNBPE+m2&G;Y3+-h_Z)?A`tUnVknS+c99$r^g?0bp;NgUKHtS?h;! zVp!!du48%3!9iT`1O)baXqYF^_4BiRpw8tuIZVCpFE=_62sb>zx%dMEJfY5A;7KR+ z<@l6wCPTE`@Ptngqrj$&;0f$mju|sKLcLI}2T#sro&dlTo>Uo#;mo%8rBvs%Bml~C z;7LCimIP0TlzQ&D-q%r&HBaB!oZ1zM#9?~E@C4NX8W_j;HYtq`o5vHq|LNzT)tE46 z%}vvr7kQd161YG&{txh^n~x1gqu!b4-WNkP@T5kW0|$Kl?&wPl(<)ybYEO@ehH^Yq#9; z31g#CRZVOtv$eG|>zF6YmxCu=>~CVTRYv}N2ADecjHyLn$r)#~+i?~n1IWj z%Doieba!`lP61Ci6;pvp)(+-LclUwkdV8^{V|Y?V115#GWKi9E?~i{68lb`p4U-){ z1oii$|Dbn*```)JvJI0!oPh+bI9*TWGJa!2M}d=dFMzdH>*}gOCzy3G0WUs;H`> zV_roYHL1G0U{}%bgbYv6QEGoYVEMbd{394^*)(g&E_VC{PkfQujyBUzqBPU+#Bn^H zgi!lXtg3JyW$g;ct}^sdcA#WOc#_M7!4uY4M2mRwDX@#r_8;L1dOYOmWEh(SrRRUr z$S#6#07Q~cJ_*@%wMUil`dc5kSldf#bO9-4bOZSW2YwDh<4u*DvUsN#5lwf5tq_hq zC0;xmNt1>S;=@=srs2TBgJb}Pv4N!fyTH%e5Ofc+@`dI zE+yR4+3lr+kJ(p&ZYF3BWkNqe-R|a%GtkQU<2QkN`a0h8O0hMJr%rpLmk;PHHKmbT zBl~;#Aoa0Ojg%Qn*0brL!K>WkQoD!7#R02|N`=m*wm zp)1Q8bsTG4WN3tLWU?^b@9^0XJ&HRZ>@_x^f^9OomO+yq{xJvk6qfC9wR)lDGd%n7t@b?Jbwp2Q)rwmVB3?c zM|t{l`+IiAMA z6k)l{bD+#}-+{5C)8j;QT4q2DOn2Mg?ISm?$^X9c-^lWcyg+>q*z!2-t zp%HS=fZ^HE(DwFzSgmC#&Ju~rH{T5HARZZNd0ZRN&3a@J(ud!Yl7%{3nq{pcXj+k! z0?SjPg9p#u)fai^olmG*ZOD+xZ}N!w%ro;axqxKi@rLCx{-GzT+(n^_+Dt0si11vl z7uL^=xnI!+9ql&SS!MmB&IFY`d%qZ|jKt+?#JnQHm3eHyW0Z#mH3gnzmM6fZNJQ2% zIy`n5bn0Mpu*M_r0}mu2YEfk9p+EN=a<1(^P-C9d&ODQO!m{@$Pr3|GYMs*#?4P%P zzsHk=$CG*~fB+hCUI}8qg;3Mp_rMdjE@4IdC{NfQ)~@S3VLEy2;|WiH{{T-A1$mH; z)CPExOrDFG$pa5?+yS2Kd1l^zcJJ>$$`jP8;vCxE;V01Wqw;!f@6(_X4(7?j55Kd& zmv;1ZF3&Jepl8QCskQCGjDZav_ScS`Czv%LW34IbjZI!ZxdRQkOEXC*?~#5Ije7mW zXLLI2{lt&Uu%VFZIOeVbjExEtB*_J0Ei=sDe6ZH&n|B;W0@#R0uc2h5HZcEXzX6CI z9QgX^8$6*eokZ%6&f9ONP#}PQ!V_rVmlTeij(RQMg8oBolDfYf>g+c2N3SsC^^M3^)d>CM>B!T#wFQ>yeckPdXzsLNeB4jaZF1y)qKfg2hS9QqqP|)V85*8M zpwPGr*A25^Nq`70hSPa1(h_8+LpkIfLHc8aqk;mNU}iqhPwK4%Gh>e@NBaqAfnCbw z%j^Bb-*0$w=9$bBub*JOXn4Z6>G%(TCkK4<+8%&BhJtqjTEF0lX@Z9IHg4q%_FLZD zJY9Y|bO7z-UdLfs!H%b@71fy>q?P+-E=|& zf!r>dP-HSvBtas>(6`$n7MX|zq#-g$7uhTmSwG?j1QFA>iXs#-YJqVk<1$*wqQ;CL zafX>yQD_*)VKoZl>i97RGVaWdIu5czMEOYV@7$^mGBdmTp9KG>yWYE>=iYnHz31Nh z-Z}5e`v~Hg)#ac4>}Jlo-Pe}QCFRL}iC_0F%3a>&31^lc15Z3Jg2-eo<*E(fxZb0W zbp5logmP=wA4xA=?;c?*sOhnP^!fDsMem=r3H0$n5dL*`H4(it48h+!6LDyMHy`D6 z%caLHSO*3Vq4l>1UR>r8J4VTlhfac|XZLu-wz5}tW~7@>?F-o#svV-@J5qgvOCOu%xLED zOzus(AGUt#pFL|38@+<|IJv!-u6I{kL7`&)tVFF~&wf#D{z{~;|7|aQ^J8>h@bzp3 z_1s3he6q#g9cL>RDA&2wr0IDUs_)TerV}&xijm@u{>7_UZ~gZL_
b@h_l!z$)ZI{?(rA?<{Oe~JeFzbh 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 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme deleted file mode 100644 index 67e17279ec256b8ef1127e6efe98a9b8163ef1a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184174 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

pVhe&!kY`ugzL31SX~CLSjz$4>m{XJos>I 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

rZ%1AjzGt7AO) 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 a8{+j6p7C#D)8&MhSLS}o@R%wl?D;=;mAz2_ diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py index c33648756243..307b0d0581d9 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/monitor.py @@ -4,7 +4,7 @@ # * PSU # import os -from lxml import etree as ET +import xml.etree.ElementTree as ET import glob import json from decimal import Decimal diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json index 000635894793..1af747fd7317 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform.json @@ -185,7 +185,7 @@ }, "fans": [ { - "name": "FanTray1_1", + "name": "Fantray1_1", "speed": { "controllable": true, "minimum": 50, @@ -196,7 +196,7 @@ } }, { - "name": "FanTray1_2", + "name": "Fantray1_2", "speed": { "controllable": true, "minimum": 50, @@ -217,7 +217,7 @@ }, "fans": [ { - "name": "FanTray2_1", + "name": "Fantray2_1", "speed": { "controllable": true, "minimum": 50, @@ -228,7 +228,7 @@ } }, { - "name": "FanTray2_2", + "name": "Fantray2_2", "speed": { "controllable": true, "minimum": 50, @@ -249,7 +249,7 @@ }, "fans": [ { - "name": "FanTray3_1", + "name": "Fantray3_1", "speed": { "controllable": true, "minimum": 50, @@ -260,7 +260,7 @@ } }, { - "name": "FanTray3_2", + "name": "Fantray3_2", "speed": { "controllable": true, "minimum": 50, @@ -281,7 +281,7 @@ }, "fans": [ { - "name": "FanTray4_1", + "name": "Fantray4_1", "speed": { "controllable": true, "minimum": 50, @@ -292,7 +292,7 @@ } }, { - "name": "FanTray4_2", + "name": "Fantray4_2", "speed": { "controllable": true, "minimum": 50, @@ -313,7 +313,7 @@ }, "fans": [ { - "name": "FanTray5_1", + "name": "Fantray5_1", "speed": { "controllable": true, "minimum": 50, @@ -324,7 +324,7 @@ } }, { - "name": "FanTray5_2", + "name": "Fantray5_2", "speed": { "controllable": true, "minimum": 50, @@ -345,7 +345,7 @@ }, "fans": [ { - "name": "FanTray6_1", + "name": "Fantray6_1", "speed": { "controllable": true, "minimum": 50, @@ -356,7 +356,7 @@ } }, { - "name": "FanTray6_2", + "name": "Fantray6_2", "speed": { "controllable": true, "minimum": 50, @@ -500,5 +500,238 @@ "modules": [], "sfps": [] }, - "interfaces": {} + "interfaces": { + "Ethernet1": { + "index": "0,0,0,0", + "lanes": "25,26,27,28", + "breakout_modes": { + "1x200G": ["Eth1"] + } + }, + "Ethernet2": { + "index": "1,1,1,1", + "lanes": "29,30,31,32", + "breakout_modes": { + "1x200G": ["Eth2"] + } + }, + "Ethernet3": { + "index": "2,2,2,2", + "lanes": "41,42,43,44", + "breakout_modes": { + "1x200G": ["Eth3"] + } + }, + "Ethernet4": { + "index": "3,3,3,3", + "lanes": "45,46,47,48", + "breakout_modes": { + "1x200G": ["Eth4"] + } + }, + "Ethernet5": { + "index": "4,4,4,4", + "lanes": "49,50,51,52", + "breakout_modes": { + "1x200G": ["Eth5"] + } + }, + "Ethernet6": { + "index": "5,5,5,5", + "lanes": "53,54,55,56", + "breakout_modes": { + "1x200G": ["Eth6"] + } + }, + "Ethernet7": { + "index": "6,6,6,6", + "lanes": "57,58,59,60", + "breakout_modes": { + "1x200G": ["Eth7"] + } + }, + "Ethernet8": { + "index": "7,7,7,7", + "lanes": "61,62,63,64", + "breakout_modes": { + "1x200G": ["Eth8"] + } + }, + "Ethernet9": { + "index": "8,8,8,8", + "lanes": "9,10,11,12", + "breakout_modes": { + "1x200G": ["Eth9"] + } + }, + "Ethernet10": { + "index": "9,9,9,9", + "lanes": "13,14,15,16", + "breakout_modes": { + "1x200G": ["Eth10"] + } + }, + "Ethernet11": { + "index": "10,10,10,10", + "lanes": "17,18,19,20", + "breakout_modes": { + "1x200G": ["Eth11"] + } + }, + "Ethernet12": { + "index": "11,11,11,11", + "lanes": "21,22,23,24", + "breakout_modes": { + "1x200G": ["Eth12"] + } + }, + "Ethernet13": { + "index": "12,12,12,12", + "lanes": "81,82,83,84", + "breakout_modes": { + "1x200G": ["Eth13"] + } + }, + "Ethernet14": { + "index": "13,13,13,13", + "lanes": "85,86,87,88", + "breakout_modes": { + "1x200G": ["Eth14"] + } + }, + "Ethernet15": { + "index": "14,14,14,14", + "lanes": "89,90,91,92", + "breakout_modes": { + "1x200G": ["Eth15"] + } + }, + "Ethernet16": { + "index": "15,15,15,15", + "lanes": "93,94,95,96", + "breakout_modes": { + "1x200G": ["Eth16"] + } + }, + "Ethernet17": { + "index": "16,16,16,16", + "lanes": "97,98,99,100", + "breakout_modes": { + "1x200G": ["Eth17"] + } + }, + "Ethernet18": { + "index": "17,17,17,17", + "lanes": "101,102,103,104", + "breakout_modes": { + "1x200G": ["Eth18"] + } + }, + "Ethernet19": { + "index": "18,18,18,18", + "lanes": "137,138,139,140", + "breakout_modes": { + "1x200G": ["Eth19"] + } + }, + "Ethernet20": { + "index": "19,19,19,19", + "lanes": "141,142,143,144", + "breakout_modes": { + "1x200G": ["Eth20"] + } + }, + "Ethernet21": { + "index": "20,20,20,20", + "lanes": "145,146,147,148", + "breakout_modes": { + "1x200G": ["Eth21"] + } + }, + "Ethernet22": { + "index": "21,21,21,21", + "lanes": "149,150,151,152", + "breakout_modes": { + "1x200G": ["Eth22"] + } + }, + "Ethernet23": { + "index": "22,22,22,22", + "lanes": "153,154,155,156", + "breakout_modes": { + "1x200G": ["Eth23"] + } + }, + "Ethernet24": { + "index": "23,23,23,23", + "lanes": "157,158,159,160", + "breakout_modes": { + "1x200G": ["Eth24"] + } + }, + "Ethernet25": { + "index": "24,24,24,24,24,24,24,24", + "lanes": "1,2,3,4,5,6,7,8", + "breakout_modes": { + "1x400G": ["Eth25"], + "2x200G[100G]": ["Eth25/1", "Eth25/2"] + } + }, + "Ethernet33": { + "index": "25,25,25,25,25,25,25,25", + "lanes": "33,34,35,36,37,38,39,40", + "breakout_modes": { + "1x400G": ["Eth26"], + "2x200G[100G]": ["Eth26/1", "Eth26/2"] + } + }, + "Ethernet41": { + "index": "26,26,26,26,26,26,26,26", + "lanes": "65,66,67,68,69,70,71,72", + "breakout_modes": { + "1x400G": ["Eth27"], + "2x200G[100G]": ["Eth27/1", "Eth27/2"] + } + }, + "Ethernet49": { + "index": "27,27,27,27,27,27,27,27", + "lanes": "73,74,75,76,77,78,79,80", + "breakout_modes": { + "1x400G": ["Eth28"], + "2x200G[100G]": ["Eth28/1", "Eth28/2"] + } + }, + "Ethernet57": { + "index": "28,28,28,28,28,28,28,28", + "lanes": "105,106,107,108,109,110,111,112", + "breakout_modes": { + "1x400G": ["Eth29"], + "2x200G[100G]": ["Eth29/1", "Eth29/2"] + } + }, + "Ethernet65": { + "index": "29,29,29,29,29,29,29,29", + "lanes": "113,114,115,116,117,118,119,120", + "breakout_modes": { + "1x400G": ["Eth30"], + "2x200G[100G]": ["Eth30/1", "Eth30/2"] + } + }, + "Ethernet73": { + "index": "30,30,30,30,30,30,30,30", + "lanes": "121,122,123,124,125,126,127,128", + "breakout_modes": { + "1x400G": ["Eth31"], + "2x200G[100G]": ["Eth31/1", "Eth31/2"] + } + }, + "Ethernet81": { + "index": "31,31,31,31,31,31,31,31", + "lanes": "129,130,131,132,133,134,135,136", + "breakout_modes": { + "1x400G": ["Eth32"], + "2x200G[100G]": ["Eth32/1", "Eth32/2"] + } + } + } } diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json index c7b0c54b48b6..8fc136f7b9b1 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_components.json @@ -2,34 +2,13 @@ "chassis": { "M2-W6520-24DC8QC": { "component": { - "CPU_CPLD": { - "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/cpu_cpld_upgrade_header.vme", - "version": "16210909" - }, - "CONNECT_CPLD": { - "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", - "version": "50220304" - }, - "FAN_CPLD": { - "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", - "version": "30210422" - }, - "MAC_CPLDA": { - "firmware" : "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", - "version" : "01210804" - }, - "MAC_CPLDB": { - "firmware" : "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/other_cpld_upgrade_header.vme", - "version" : "01210804" - }, - "FPGA": { - "firmware": "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/fpga_upgrade_header.bin", - "version": "7a640436" - }, - "BIOS": { - "firmware" : "/usr/share/sonic/device/x86_64-micas_m2-w6520-24dc8qc-r0/latest_firmware/bios_upgrade_header.bin", - "version" : "5.14(3CNHU022)" - } + "CPU_CPLD": { }, + "CONNECT_CPLD": { }, + "FAN_CPLD": { }, + "MAC_CPLDA": { }, + "MAC_CPLDB": { }, + "FPGA": { }, + "BIOS": { } } } } diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf index c2aed55680dc..fc119184d5c1 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/platform_env.conf @@ -1 +1,2 @@ is_ltsw_chip=1 +SYNCD_SHM_SIZE=1g diff --git a/platform/broadcom/sonic-platform-modules-micas/common/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/Makefile index 578d65b3bf3e..385dae0884fb 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/Makefile +++ b/platform/broadcom/sonic-platform-modules-micas/common/Makefile @@ -30,7 +30,6 @@ all: @if [ ! -d ${INSTALL_LIB_DIR} ]; then mkdir -p ${INSTALL_LIB_DIR} ;fi @if [ -d $(PWD)/lib/ ]; then cp -r $(PWD)/lib/* ${INSTALL_LIB_DIR} ;fi @if [ -d $(PWD)/sonic_platform/ ]; then cp -rf $(PWD)/sonic_platform ${INSTALL_LIB_DIR} ;fi - cp -r $(app_build_dir)/module/*.ko $(INSTALL_MODULE_DIR) cp -r $(modules_build_dir)/*.ko $(INSTALL_MODULE_DIR) cp -r $(app_dir)/build/app/* $(INSTALL_SCRIPT_DIR) cp -r $(SCRIPT_DIR)/* $(INSTALL_SCRIPT_DIR) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile deleted file mode 100644 index 62663efdbbd5..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -top_srcdir:=$(shell pwd) -include $(top_srcdir)/Rules.mk - -firmware-y:= -firmware-y += firmware_driver -firmware-y += firmware_upgrade - -.PHONY: all -all: build - -.PHONY: build -build: $(firmware-y) -$(foreach dir,$(firmware-y),$(eval $(call compile_dirs,$(dir)))) - -.PHONY: rpmpkg -rpmpkg: -ifeq ("$(CONFIG_CPLD_UPGRADE_ISPVME)", "y") - #$(RPMPKG) $(install_cpld_dir) firmware-cpld-ispvme.spec git -endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk deleted file mode 100644 index 5fb5a09d34fd..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/Rules.mk +++ /dev/null @@ -1,42 +0,0 @@ -CC ?= $(CROSS)gcc -AR ?= $(CROSS)ar -AS ?= $(CROSS)as -LD ?= $(CROSS)ld -STRIP ?= $(CROSS)strip - -install_root:=${top_srcdir}/images - -install_header_dir:=${install_root}/header -install_adir:=$(install_root)/lib -install_symbol_dir:=$(install_root)/symbol -symbol_files:=$(shell find $(EXPORT_SYMBOL) -name 'Module.symvers') -# -# symbol_files += $(shell find $(install_symbol_dir) -name 'Module.symvers') -# KBUILD_EXTRA_SYMBOLS += $(symbol_files) -# export KBUILD_EXTRA_SYMBOLS - -# top root: install_rootfs_dir -install_rootfs_dir:=$(install_root)/rootfs - -install_sodir:=$(install_rootfs_dir)/$(INSTALL_SODIR) - -install_usr_bin_dir:=$(install_rootfs_dir)/usr/bin -install_sbin_dir:=$(install_rootfs_dir)/sbin -install_etc_dir:=$(install_rootfs_dir)/etc - -export INSTALL_MOD_PATH:=$(ROOT) - -BUILD_CFLAGS:=$(CFLAGS) -I$(install_header_dir) -BUILD_LDFLAGS:=$(LDFLAGS) -L/$(install_sodir) -L/$(install_adir) - -define compile_dirs -.PHONY: $(1) -$(1): - @echo;echo "building $(1)..." - @$(MAKE) -C ${1} -endef - -compile.c = $(CC) $(BUILD_CFLAGS) -d -c -o $@ $< -%.o: %.c - $(compile.c) - diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile deleted file mode 100644 index e8879aeff5e7..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include $(top_srcdir)/Rules.mk - -firmware-y:= -firmware-y += firmware_driver_ispvme -firmware-y += firmware_driver_cpld -firmware-y += firmware_driver_sysfs - -.PHONY: all -all: build - -.PHONY: build -build: $(firmware-y) -$(foreach dir,$(firmware-y),$(eval $(call compile_dirs,$(dir)))) - -.PHONY: rpmpkg -rpmpkg: -ifeq ("$(CONFIG_CPLD_UPGRADE_ISPVME)", "y") - #$(RPMPKG) $(install_cpld_dir) firmware-cpld-ispvme.spec git -endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile deleted file mode 100644 index 0add28cb9056..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -#include $(top_srcdir)/debian/rules -#KERNELDIR := ${KBUILD_OUTPUT} - -PWD = $(shell pwd) - -EXTRA_CFLAGS:= -I$(M)/include -MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) -FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../include) -EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) -EXTRA_CFLAGS+= -Wall - -firmware_driver_cpld-objs := firmware.o -firmware_driver_cpld-objs += firmware_cpld.o firmware_cpld_upgrade.o -firmware_driver_cpld-objs += jbicomp.o jbijtag.o jbimain.o jbistub.o - -#ifndef CONFIG_FRM_PRODUCT_FILE - -$(warning $(firmware_driver_cpld-objs)) -obj-m := firmware_driver_cpld.o -all: - $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules - @if [ ! -d $(common_module_dir) ]; then mkdir -p $(common_module_dir) ;fi - cp -p $(PWD)/*.ko $(common_module_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c deleted file mode 100644 index db72b369465a..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware.c +++ /dev/null @@ -1,144 +0,0 @@ -#include -#include -#include - -int g_firmware_driver_debug = 0; -module_param(g_firmware_driver_debug, int, S_IRUGO | S_IWUSR); - -static LIST_HEAD(drv_list); -static LIST_HEAD(dev_list); - -/** - * firmware_driver_register - * function:Registered Device Driver - * @fw_drv:param[in] Driver information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_driver_register(firmware_driver_t *fw_drv) -{ - int ret; - - if (fw_drv == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); - return FIRMWARE_FAILED; - } - - ret = platform_driver_register(fw_drv->drv); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: failed to register firmware upgrade driver \n"); - return FIRMWARE_FAILED; - } - - /* Adds driver information to the driver list */ - list_add(&fw_drv->list, &drv_list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware upgrade driver register sucess \n"); - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_driver_unregister - * function:unregister Device Driver - * @fw_drv:param[in] Driver information - */ -void firmware_driver_unregister(firmware_driver_t *fw_drv) -{ - list_del_init(&fw_drv->list); - platform_driver_unregister(fw_drv->drv); -} - -/* - * firmware_get_device_by_minor - * function: Get device information based on minor - */ -firmware_device_t *firmware_get_device_by_minor(int minor) -{ - firmware_device_t *tmp; - - list_for_each_entry(tmp, &dev_list, list) { - if (tmp->dev.minor == minor) { - return tmp; - } - } - - return NULL; -} - -/** - * firmware_device_register - * function:Registered Driver Device - * @fw_dev: param[in] Driver information - * return value:success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_device_register(firmware_device_t *fw_dev) -{ - int ret; - firmware_device_t *tmp; - - if (fw_dev == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); - return FIRMWARE_FAILED; - } - /* Check whether the device file name already exists in the device linked list */ - list_for_each_entry(tmp, &dev_list, list) { - if (strcmp(tmp->name, fw_dev->name) == 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("devie %s already exists.\n", fw_dev->name); - return FIRMWARE_FAILED; - } - } - - /* Registere device */ - ret = misc_register(&fw_dev->dev); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("register misc error, ret=%d.\n", ret); - return FIRMWARE_FAILED; - } - - /* Adds a device to the device list */ - list_add(&fw_dev->list, &dev_list); - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_device_unregister - * function: unregister Driver Device - */ -void firmware_device_unregister(firmware_device_t *fw_dev) -{ - list_del(&fw_dev->list); - misc_deregister(&fw_dev->dev); -} - -static int __init firmware_driver_init(void) -{ - int ret; - - INIT_LIST_HEAD(&drv_list); - INIT_LIST_HEAD(&dev_list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver init.\n"); - ret = firmware_cpld_init(); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware driver init failed.\n"); - return FIRMWARE_FAILED; - } - - return FIRMWARE_SUCCESS; -} - -static void __exit firmware_driver_exit(void) -{ - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver exit.\n"); - firmware_cpld_exit(); - INIT_LIST_HEAD(&drv_list); - INIT_LIST_HEAD(&dev_list); - return; -} - -module_init(firmware_driver_init); -module_exit(firmware_driver_exit); - -MODULE_AUTHOR("support"); -MODULE_DESCRIPTION("Firmware upgrade driver"); -MODULE_LICENSE("GPL"); -MODULE_VERSION("1.0"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c deleted file mode 100644 index 18ec509d0f2e..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld.c +++ /dev/null @@ -1,384 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int firmware_cpld_open(struct inode *inode, struct file *file) -{ - firmware_device_t *frm_dev; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Open cpld device.\n"); - frm_dev = firmware_get_device_by_minor(MINOR(inode->i_rdev)); - if (frm_dev == NULL) { - return -ENXIO; - } - file->private_data = frm_dev; - - return FIRMWARE_SUCCESS; -} - -static ssize_t firmware_cpld_read (struct file *file, char __user *buf, size_t count, - loff_t *offset) -{ - return 0; -} - -static ssize_t firmware_cpld_write (struct file *file, const char __user *buf, size_t count, - loff_t *offset) -{ - return 0; -} - -static loff_t firmware_cpld_llseek(struct file *file, loff_t offset, int origin) -{ - return 0; -} - -/* - * firmware_cpld_ioctl - * function: ioctl command parsing function - * @file: param[in] device file name - * @cmd: param[in] command - * @arg: param[in] the parameters in the command - * return value: success-FIRMWARE_SUCCESS; fail:other value - */ -static long firmware_cpld_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - int ret; - char *buf; - void __user *argp; - char version[FIRMWARE_NAME_LEN]; - char chip_name[FIRMWARE_NAME_LEN]; - cmd_info_t cmd_info; - firmware_device_t *frm_dev; - firmware_cpld_t *cpld_info; - - /* Get device private data */ - mem_clear(&cmd_info, sizeof(cmd_info_t)); - frm_dev = (firmware_device_t *)file->private_data; - cpld_info = NULL; - if (frm_dev != NULL) { - if (frm_dev->priv != NULL) { - cpld_info = (firmware_cpld_t *)frm_dev->priv; - } - } - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to frm_dev->priv sysfs info.\n"); - return FIRMWARE_FAILED; - } - argp = (void __user *)arg; - - switch (cmd) { - case FIRMWARE_GET_CHIPNAME: - /* get chip name */ - if (copy_from_user(&cmd_info, argp, sizeof(cmd_info_t))) { - return -EFAULT; - } - mem_clear(chip_name, FIRMWARE_NAME_LEN); - ret = fmw_cpld_upg_get_chip_name(frm_dev->chain, cpld_info, chip_name, FIRMWARE_NAME_LEN); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get chip name.\n"); - return -ENXIO; - } - if (copy_to_user(cmd_info.data, chip_name, cmd_info.size)) { - return -EFAULT; - } - break; - case FIRMWARE_PROGRAM: - case FIRMWARE_PROGRAM_JBI: - /* firmware upgrade */ - if (copy_from_user(&cmd_info, argp, sizeof(cmd_info_t))) { - return -EFAULT; - } - buf = (char *) kzalloc(cmd_info.size + 1, GFP_KERNEL); - if (buf == NULL) { - return -ENOMEM; - } - if (copy_from_user(buf, cmd_info.data, cmd_info.size)) { - kfree(buf); - return -EFAULT; - } - buf[cmd_info.size] = 0; - if (cmd == FIRMWARE_PROGRAM_JBI) { - /* JBI firmware upgrade */ - ret = fmw_cpld_upg_program_jbi(frm_dev->chain, cpld_info, buf, cmd_info.size); - } else { - /* ISC firmware upgrade */ - ret = fmw_cpld_upg_program(frm_dev->chain, cpld_info, buf, cmd_info.size); - } - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program cpld.\n"); - kfree(buf); - return -ESRCH; - } - kfree(buf); - break; - case FIRMWARE_GET_VERSION: - /* get version */ - if (copy_from_user(&cmd_info, argp, sizeof(cmd_info_t))) { - return -EFAULT; - } - mem_clear(version, FIRMWARE_NAME_LEN); - ret = fmw_cpld_upg_get_version(frm_dev->chain, cpld_info, version, FIRMWARE_NAME_LEN); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get version.\n"); - return -ENXIO; - } - if (copy_to_user(cmd_info.data, version, cmd_info.size)) { - return -EFAULT; - } - break; - default: - FIRMWARE_DRIVER_DEBUG_ERROR("not find cmd: %d\r\n", cmd); - return -ENOTTY; - } /* End of switch */ - - return FIRMWARE_SUCCESS; -} - -static int firmware_cpld_release(struct inode *inode, struct file *file) -{ - return 0; -} - -static const struct file_operations cpld_dev_fops = { - .owner = THIS_MODULE, - .llseek = firmware_cpld_llseek, - .read = firmware_cpld_read, - .write = firmware_cpld_write, - .unlocked_ioctl = firmware_cpld_ioctl, - .open = firmware_cpld_open, - .release = firmware_cpld_release, -}; - -static int of_firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) -{ - int ret; - char *name; - int i; - char buf[64]; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); - return -1; - } - - mem_clear(cpld_info, sizeof(firmware_cpld_t)); - ret = 0; - ret += of_property_read_string(dev->of_node, "type", (const char **)&name); - ret += of_property_read_u32(dev->of_node, "tdi", &cpld_info->tdi); - ret += of_property_read_u32(dev->of_node, "tck", &cpld_info->tck); - ret += of_property_read_u32(dev->of_node, "tms", &cpld_info->tms); - ret += of_property_read_u32(dev->of_node, "tdo", &cpld_info->tdo); - - ret += of_property_read_u32(dev->of_node, "chain", &cpld_info->chain); - ret += of_property_read_u32(dev->of_node, "chip_index", &cpld_info->chip_index); - - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config error, ret:%d.\n", ret); - return -ENXIO; - } - - strncpy(cpld_info->type, name, sizeof(cpld_info->type) - 1); - - ret = of_property_read_u32(dev->of_node, "tck_delay", &cpld_info->tck_delay); - if(ret != 0) { - cpld_info->tck_delay = 60; - } - - cpld_info->gpio_en_info_num = 0; - /* Enable through GPIO */ - for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_gpio_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_gpio); - if(ret != 0) { - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_level_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_level); - if(ret != 0) { - break; - } - cpld_info->gpio_en_info_num++; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, en_info_num:%u\n", - cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num); - FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", - cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); - - return 0; -} - -static int firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) -{ - int i; - - firmware_upgrade_device_t *firmware_upgrade_device; - firmware_jtag_device_t jtag_upg_device; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); - return -1; - } - - if (dev->platform_data == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("platform data config error.\n"); - return -1; - } - firmware_upgrade_device = dev->platform_data; - jtag_upg_device = firmware_upgrade_device->upg_type.jtag; - - mem_clear(cpld_info, sizeof(firmware_cpld_t)); - - strncpy(cpld_info->type, firmware_upgrade_device->type, sizeof(cpld_info->type) - 1); - cpld_info->tdi = jtag_upg_device.tdi; - cpld_info->tck = jtag_upg_device.tck; - cpld_info->tms = jtag_upg_device.tms; - cpld_info->tdo = jtag_upg_device.tdo; - cpld_info->chain = firmware_upgrade_device->chain; - cpld_info->chip_index = firmware_upgrade_device->chip_index; - - if (jtag_upg_device.tck_delay == 0) { - cpld_info->tck_delay = 60; - FIRMWARE_DRIVER_DEBUG_VERBOSE("no config tck_delay, use default value:%u\n", cpld_info->tck_delay); - } else { - cpld_info->tck_delay = jtag_upg_device.tck_delay; - } - - if (firmware_upgrade_device->en_gpio_num > FIRMWARE_EN_INFO_MAX) { - FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_gpio_num:%u configurations exceeds the maximum limit:%u.\n", - firmware_upgrade_device->en_gpio_num, FIRMWARE_EN_INFO_MAX); - return -ENXIO; - } - cpld_info->gpio_en_info_num = firmware_upgrade_device->en_gpio_num; - /* Enable through GPIO */ - for (i = 0; i < cpld_info->gpio_en_info_num; i++) { - cpld_info->gpio_en_info[i].en_gpio = firmware_upgrade_device->en_gpio[i]; - cpld_info->gpio_en_info[i].en_level = firmware_upgrade_device->en_level[i]; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, en_info_num:%u\n", - cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num); - FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", - cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); - - return 0; -} - -static int firmware_cpld_probe(struct platform_device *pdev) -{ - int ret; - firmware_cpld_t *cpld_info; - firmware_device_t *frm_dev; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_cpld_probe\r\n"); - /* Gets the information in the device tree */ - cpld_info = devm_kzalloc(&pdev->dev, sizeof(firmware_cpld_t), GFP_KERNEL); - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc cpld device tree.\n"); - return -EPERM; - } - - if (pdev->dev.of_node) { - ret = of_firmware_upgrade_config_init(&pdev->dev, cpld_info); - } else { - ret = firmware_upgrade_config_init(&pdev->dev, cpld_info); - } - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("get config init from dts error.\n"); - return -EPERM; - } - - frm_dev = devm_kzalloc(&pdev->dev, sizeof(firmware_device_t), GFP_KERNEL); - if (frm_dev == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc firmware device.\n"); - return -EPERM; - } - - /* Based on the link number, determine the name of the device file */ - frm_dev->chain = cpld_info->chain; - snprintf(frm_dev->name, FIRMWARE_NAME_LEN - 1, "firmware_cpld%d", frm_dev->chain); - strncpy(cpld_info->devname, frm_dev->name, strlen(frm_dev->name) + 1); - - INIT_LIST_HEAD(&frm_dev->list); - frm_dev->dev.minor = MISC_DYNAMIC_MINOR; - frm_dev->dev.name = frm_dev->name; - frm_dev->dev.fops = &cpld_dev_fops; - frm_dev->priv = cpld_info; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Register cpld firmware chain:%d, name:%s.\n", frm_dev->chain, frm_dev->name); - - ret = firmware_device_register(frm_dev); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to register firmware device.\n"); - return -EPERM; - } - - platform_set_drvdata(pdev, frm_dev); - return 0; -} - -static int __exit firmware_cpld_remove(struct platform_device *pdev) -{ - firmware_device_t *frm_dev; - - frm_dev = (firmware_device_t *)platform_get_drvdata(pdev); - firmware_device_unregister(frm_dev); - platform_set_drvdata(pdev, NULL); - - return 0; -} - -static struct of_device_id cpld_match[] = { - { - .compatible = "firmware_cpld", - }, - {}, -}; - -static struct platform_driver cpld_driver = { - .driver = { - .name = "firmware_cpld", - .owner = THIS_MODULE, - .of_match_table = cpld_match, - }, - .probe = firmware_cpld_probe, - .remove = firmware_cpld_remove, -}; - -static firmware_driver_t fmw_drv_cpld = { - .name = "firmware_cpld", - .drv = &cpld_driver, -}; - -int firmware_cpld_init(void) -{ - int ret; - - INIT_LIST_HEAD(&fmw_drv_cpld.list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("cpld upgrade driver register \n"); - ret = firmware_driver_register(&fmw_drv_cpld); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("cpld upgrade driver register failed.\n"); - return ret; - } - return 0; -} - -void firmware_cpld_exit(void) -{ - firmware_driver_unregister(&fmw_drv_cpld); - INIT_LIST_HEAD(&fmw_drv_cpld.list); -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c deleted file mode 100644 index 8252c2a39bb2..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/firmware_cpld_upgrade.c +++ /dev/null @@ -1,1879 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* CPLD file parses the relevant parameters */ -#define CPLD_HEX 16 -#define DEC_VAL 10 -#define CPLD_INIT_CNT 4 -#define CPLD_UNIT_SZ 4 -#define CPLD_HEAD_KEYWORD "Header" -#define CPLD_NAME_KEYWORD "Entity" -#define CPLD_INIT_KEYWORD "INITIALIZE" -#define CPLD_REPEAT_KEYWORD "REPEAT" -#define CPLD_END_CHAR ',' - -/* TCK clock MAX 16MHz */ -#define TCK_DELAY (current_fmw_cpld->tck_delay) - -/* - * The instruction format of the MAX II CPLD is 10 bits - * For shift_ir state machine use - */ -#define BYPASS 0x3FF -#define EXTEST 0xF -#define SAMPLE 0x5 -#define IDCODE 0x6 -#define USERCODE 0x7 -#define CLAMP 0xA -#define HIGHZ 0xB - -/* Following 7 instructions are IEEE 1532 instructions */ -#define ISC_ENABLE 0x2CC -#define ISC_DISABLE 0x201 -#define ISC_PROGRAM 0x2F4 -#define ISC_ERASE 0x2F2 -#define ISC_ADDRESS_SHIFT 0x203 -#define ISC_READ 0x205 -#define ISC_NOOP 0x210 - -/* - * MAX II devices support the real-time in-system programmability (ISP) - * feature that allows you to program the device while it is still in operation. - * when there is either a power cycle to the device (powering down and powering - * up again) or with the execution of certain ISP instructions to start the SRAM - * download process when realtime ISP has completed. - */ -#define RT_ISC_ENABLE 0x199 -#define RT_ISC_DISABLE 0x166 - -/* Chip ID */ -#define EPM240_G 0x020A10DD -#define EPM570_G 0x020A20DD -#define EPM1270_G 0x020A30DD -#define EPM2210_G 0x020A40DD -#define EPM240_Z 0x020A50DD -#define EPM570_Z 0x020A60DD - -/* The size of the output data for ID validation */ -#define VERIFY_IDCODE_SIZE 0x5 - -/* Erasure and programmatic delay handling */ -#define ERASE_DELAY 0x1024 -#define PROGRAM_DELAY 0x5 - -/* Chip instruction register */ -#define CPLD_INSTRUCTION_SIZE 10 - -/* - * Currently, only two connectors are supported - * The size of the instruction register needs to be changed - * when more than two connectors are used - */ -#ifndef CPLD_MAX_CHIP -#define CPLD_MAX_CHIP 2 -#endif - -typedef struct cpld_chip_id { - char *name; - uint id; - int addr_register_length; - int data_register_length; - int eeprom_array_length; - int first_blank_check_length; - int second_blank_check_length; - int first_erase_addr; - int second_erase_addr; - int third_erase_addr; - int verify_idcode_addr; -} cpld_chip_id_t; - -static cpld_chip_id_t cpld_id_table[] = { - {"EPM240T100", EPM240_G, 13, 16, 4604, 3327, 511, 0x0, 0x1, 0x11, 0x89}, - {"EPM570T144", EPM570_G, 14, 16, 8700, 3327, 511, 0x0, 0x1, 0x21, 0x111}, - {"EPM1270F256", EPM1270_G, 15, 16, 16892, 16383, 511, 0x0, 0x1, 0x41, 0x221}, - {"5M240Z", EPM240_Z, 13, 16, 4604, 3327, 511, 0x0, 0x1, 0x11, 0x89}, - {"5M570Z", EPM570_Z, 14, 16, 8700, 3327, 511, 0x0, 0x1, 0x21, 0x111}, - {NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, -}; - -static cpld_chip_id_t *chip_cpld_info = NULL; - -/* The following variables are used when cascading multiple chips */ -static int chip_num, current_chip_index; -static firmware_cpld_t *current_fmw_cpld; - -static int TDI_PULL_UP(void); -static int TDI_PULL_DOWN(void); -static int TMS_PULL_UP(void); -static int TMS_PULL_DOWN(void); -static int TCK_PULL_UP(void); -static int TCK_PULL_DOWN(void); - -/* - * set_currrent_cpld_info - * function: Save the current device information - * @info: param[in] Information about the device to be updated - */ -static void set_currrent_cpld_info(firmware_cpld_t *info) -{ - current_fmw_cpld = info; -} - -/* - * firmware_upgrade_en - * function: Upgrade access enabling switch - * @flag: !0:enable 0:disable - */ -static int firmware_upgrade_en(int flag) -{ - int i; - int ret; - - for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { - if (flag) { - ret = gpio_request(current_fmw_cpld->gpio_en_info[i].en_gpio, "cpld_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade EN[%d] GPIO[%d] failed!\n", - i, current_fmw_cpld->gpio_en_info[i].en_gpio); - goto free_gpio; - } - gpio_direction_output(current_fmw_cpld->gpio_en_info[i].en_gpio, current_fmw_cpld->gpio_en_info[i].en_level); - current_fmw_cpld->gpio_en_info[i].flag = 1; - } else { - gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); - gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); - current_fmw_cpld->gpio_en_info[i].flag = 0; - } - } - return 0; -free_gpio: - for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { - if (current_fmw_cpld->gpio_en_info[i].flag == 1) { - gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); - gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); - current_fmw_cpld->gpio_en_info[i].flag = 0; - } else { - break; - } - } - - return -1; -} - -/* - * init_cpld - * function:Initialize CPLD - * return value: 0 success ; -1 fail - */ -static int init_cpld(void) -{ - int ret; - - if (current_fmw_cpld == NULL) { - return -1; - } - mdelay(10); - ret = gpio_request(current_fmw_cpld->tdi, "cpld_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TDI GPIO failed!\n"); - return ret; - } - ret = gpio_request(current_fmw_cpld->tck, "cpld_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TCK GPIO failed!\n"); - goto free_tdi; - } - ret = gpio_request(current_fmw_cpld->tms, "cpld_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TMS GPIO failed!\n"); - goto free_tck; - } - ret = gpio_request(current_fmw_cpld->tdo, "cpld_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_upgrade TDO GPIO failed!\n"); - goto free_tms; - } - - gpio_direction_output(current_fmw_cpld->tdi, 1); - gpio_direction_output(current_fmw_cpld->tck, 1); - gpio_direction_output(current_fmw_cpld->tms, 1); - - gpio_direction_input(current_fmw_cpld->tdo); - ret = firmware_upgrade_en(1); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: open firmware upgrade en failed, ret %d.\n", ret); - goto free_tdo; - } - - /* test GPIO */ - if (TDI_PULL_UP() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_UP failed.\n"); - goto free_tdo; - } - if (TDI_PULL_DOWN() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_DOWN failed.\n"); - goto free_tdo; - } - if (TMS_PULL_UP() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_UP failed.\n"); - goto free_tdo; - } - if (TMS_PULL_DOWN() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_DOWN failed.\n"); - goto free_tdo; - } - if (TCK_PULL_UP() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_UP failed.\n"); - goto free_tdo; - } - if (TCK_PULL_DOWN() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_DOWN failed.\n"); - goto free_tdo; - } - - mdelay(10); - return 0; - -free_tdo: - gpio_free(current_fmw_cpld->tdo); -free_tms: - gpio_free(current_fmw_cpld->tms); -free_tck: - gpio_free(current_fmw_cpld->tck); -free_tdi: - gpio_free(current_fmw_cpld->tdi); - return ret; -} - -/* - * finish_cpld - * function: finish CPLD upgrade operation - * return value: 0 success ; -1 fail - */ -static int finish_cpld(void) -{ - int ret; - - if (current_fmw_cpld == NULL) { - return -1; - } - mdelay(10); - ret = firmware_upgrade_en(0); - if (ret < 0){ - FIRMWARE_DRIVER_DEBUG_ERROR("Error: close firmware upgrade en failed, ret %d.\r\n", ret); - } - - gpio_free(current_fmw_cpld->tdi); - gpio_free(current_fmw_cpld->tck); - gpio_free(current_fmw_cpld->tms); - gpio_free(current_fmw_cpld->tdo); - mdelay(10); - return 0; -} - -/* Loop waiting for */ -static int pull_wait(int gpio, int value) { - int i, j; - /* Timeout time is two seconds */ - for (i = 0; i < 20; i++) { - for (j = 0; j < 100; j++) { - if (!!gpio_get_value(gpio) == !!value ) { - return 0; - } - /* The first loop does not delay, normally the first loop can immediately return the result */ - if (i) { - mdelay(1); - } - } - /* The CPU is released every 100ms */ - schedule(); - } - /* timeout */ - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Wait gpio %d pull to %d failed.\n", gpio, value); - return -1; -} - -/* TDI pull-up */ -static int pull_tdi_up(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tdi, 1); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tdi, 1); -} - -/* TDI pull-down */ -static int pull_tdi_down(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tdi, 0); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tdi, 0); -} - -/* TCK pull-up */ -static int pull_tck_up(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tck, 1); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tck, 1); -} - -/* TCK pull-down */ -static int pull_tck_down(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tck, 0); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tck, 0); -} - -/* TMS pull-up */ -static int pull_tms_up(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tms, 1); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tms, 1); -} - -/* TMS pull-down */ -static int pull_tms_down(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tms, 0); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tms, 0); -} - -/* Read TDO */ -static int read_tdo(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - return gpio_get_value(current_fmw_cpld->tdo); -} - -static firmware_cpld_function_t function_fmw_cpld = { - .pull_tdi_up = pull_tdi_up, - .pull_tdi_down = pull_tdi_down, - .pull_tck_up = pull_tck_up, - .pull_tck_down = pull_tck_down, - .pull_tms_up = pull_tms_up, - .pull_tms_down = pull_tms_down, - .read_tdo = read_tdo, - .init_cpld = init_cpld, - .finish_cpld = finish_cpld, -}; - -/* - * TDI_PULL_DOWN - * function: Lower TDI - */ -static int TDI_PULL_DOWN(void) -{ - if ( function_fmw_cpld.pull_tdi_down != NULL) { - return function_fmw_cpld.pull_tdi_down(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_DOWN.\n"); - return -1; - } -} - -/* - * TDI_PULL_UP - * function: High TDI - */ -static int TDI_PULL_UP(void) -{ - if (function_fmw_cpld.pull_tdi_up != NULL) { - return function_fmw_cpld.pull_tdi_up(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_UP.\n"); - return -1; - } -} - -/* - * TCK_PULL_DOWN - * function: Lower TCK - */ -static int TCK_PULL_DOWN(void) -{ - if (function_fmw_cpld.pull_tck_down != NULL) { - return function_fmw_cpld.pull_tck_down(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_DOWN.\n"); - return -1; - } -} - -/* - * TCK_PULL_UP - * function: High TCK - */ -static int TCK_PULL_UP(void) -{ - if (function_fmw_cpld.pull_tck_up != NULL) { - return function_fmw_cpld.pull_tck_up(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_UP.\n"); - return -1; - } -} - -/* - * TMS_PULL_DOWN - * function: Lower TMS - */ -static int TMS_PULL_DOWN(void) -{ - if (function_fmw_cpld.pull_tms_down != NULL) { - return function_fmw_cpld.pull_tms_down(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_DOWN.\n"); - return -1; - } -} - -/* - * TMS_PULL_UP - * function: High TMS - */ -static int TMS_PULL_UP(void) -{ - if (function_fmw_cpld.pull_tms_up != NULL) { - return function_fmw_cpld.pull_tms_up(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_UP.\n"); - return -1; - } -} - -/* - * TDO_READ - * function:Read the TDO level - */ -static int TDO_READ(void) -{ - if (function_fmw_cpld.read_tdo != NULL) { - return function_fmw_cpld.read_tdo(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDO_READ.\n"); - return -1; - } -} - -/* - * tap_test_logic_reset - * function: reset JTAG - * No matter what the original state of the controoler, it will enter - * Test_Logic_Reset when TMS is held high for at least five rising - * edges of TCK (16MHz) - * The controller remains in this state while TMS is high - */ -static void tap_test_logic_reset(void) -{ - int i; - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - - for (i = 0; i < 5; i++) { - TCK_PULL_UP(); - ndelay(TCK_DELAY); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - } - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_run_test_idle - * function: A controller state between scan operations.Once entered, the controller - * will remain in the Run_Test/Idle state as long as TMS is held low. - */ -static void tap_run_test_idle(void) -{ - TMS_PULL_DOWN(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_select_dr_scan - * function :This is a temporary controller state in which all test data registers - * selected by the current instruction retain their previous state. - */ -static void tap_select_dr_scan(void) -{ - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_capture_dr - * function : In this controller state data may be parallel-loaded into test data - * register selected by the current instruction on the rising edge of TCK - */ -static void tap_capture_dr(void) -{ - TMS_PULL_DOWN(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_shift_dr - * function: In this controller state.the test data register connected between TDI - * and TDO as a result of the current instruction shifts one stage - * toward its serial output on each rising edge of TCK. - */ -static void tap_shift_dr(void) -{ - TMS_PULL_DOWN(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_exit1_dr - * function: This is a temporary controller state. - */ -static void tap_exit1_dr(int data) -{ - int j; - if (data) { - TDI_PULL_UP(); - } else { - TDI_PULL_DOWN(); - } - - /* need to idle here */ - for (j = 1; j < current_chip_index; j++) { - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); - } - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_update_dr - * function : Some test data registers may be provided with a latched parallel output to - * prevent changes at the parallel out-put while data is shifted in the - * associated whift-register path in response to certain instructions.Data is - * latched onto the parallel output of these test data registers from the - * shift-register path on the falling edge of TCK in the Update-DR controler state. - */ -static void tap_update_dr(void) -{ - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_select_ir_scan - * function:This is a temporarily controler state in which all test data register selected - * by the current instruction retain their previous state. - */ -static void tap_select_ir_scan(void) -{ - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_capture_ir - * function :In this controller state the shift-register contained in the instruction - * register loads a pattern of fixed logic values on the rising edge of - * TCK.design-specific data may be loaded into shift-register stages that - * are not required to be set to fixed values. - */ -static void tap_capture_ir(void) -{ - TMS_PULL_DOWN(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_exit1_ir - * function : enter exit1 ir state. This is a temporary controller state. - */ -static void tap_exit1_ir(int data) -{ - if (data) { - TDI_PULL_UP(); - } else { - TDI_PULL_DOWN(); - } - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * tap_shift_ir - * function: In this controller state the shift-register contained in the instruction - * register is connected between TDI and TDO and shifts data one stage - * toward its serial output on each rising edge of TCK. - */ -static void tap_shift_ir(void) -{ - TMS_PULL_DOWN(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -/* - * The instruction shifted into the instruction register is latched onto the parallel output - * from the shift-register path on the falling edge of TCK in this controller state.Once the - * new instruction has been latched,it becomes the current instruction. - * - */ -static void tap_update_ir(void) -{ - TMS_PULL_UP(); - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); -} - -static void tap_send_instruction(int instruction, int ins_len) -{ - int i; - for (i = 0; i < (ins_len - 1); i++) { - if (instruction & 0x1) { - TDI_PULL_UP(); - } else { - TDI_PULL_DOWN(); - } - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); - instruction = instruction >> 1; - } -} - -static void tap_send_data(int data, int data_len) -{ - int i; - for (i = 0; i < (data_len - 1); i++) { - if (data & 0x1) { - TDI_PULL_UP(); - } else { - TDI_PULL_DOWN(); - } - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); - data = data >> 1; - } -} - -/* - * tap_rcv_byte - * function : Receive data from the device side - * @data : param[out] Received data */ -static void tap_rcv_byte(u8 *data) -{ - int i; - u8 rec_data = 0; - unsigned char tmp; - ndelay(TCK_DELAY); - for (i = 0; i < 8; i++) { - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - tmp = TDO_READ(); - rec_data |= (tmp << i); - TCK_PULL_UP(); - ndelay(TCK_DELAY); - } - *data = rec_data; -} - -/* - * tap_idle - * function :Used for state machine idling - */ -static void tap_idle(void) -{ - int i; - for (i = 0; i < 0x100; i++) { - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); - - /* Timely release of CPU */ - schedule(); - } -} - -/* - * jtag_read_data - * function :Read the JTAG output data - * @size: param[in] buffer size - * @data: param[out] read data buffer - */ -static void jtag_read_data(u8 *buf, int size) -{ - int i, j; - /* JTAG state switching */ - tap_run_test_idle(); - tap_select_dr_scan(); - tap_capture_dr(); - tap_shift_dr(); - for (j = current_chip_index; j < chip_num; j++) { - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - TCK_PULL_UP(); - ndelay(TCK_DELAY); - } - /* Receive data from the device side */ - for (i = 0; i < size; i++) { - tap_rcv_byte(&buf[i]); - } - /* JTAG state switching */ - tap_exit1_dr(0); - tap_update_dr(); - tap_run_test_idle(); -} - -/* - * jtag_send_instruction - * function :JTAG instruction sending interface - * @instruction: param[in] Instruction to be sent - * @ins_length: param[in] Instruction length - */ -static void jtag_send_instruction(int instruction, int ins_length) -{ - int i, j; - i = 1 << (ins_length - 1); - /* JTAG state switching */ - tap_run_test_idle(); - tap_select_dr_scan(); - tap_select_ir_scan(); - tap_capture_ir(); - tap_shift_ir(); - - for (j = chip_num; j > 1; j--) { - if (j == current_chip_index) { - tap_send_instruction(instruction, ins_length + 1); - } else { - tap_send_instruction(BYPASS, ins_length + 1); - } - } - - if (current_chip_index == 1) { - tap_send_instruction(instruction, ins_length); - /* Gets the highest bit of the instruction */ - tap_exit1_ir((instruction & i) >> (ins_length - 1)); - } else { - tap_send_instruction(BYPASS, ins_length); - /* Gets the highest bit of the instruction */ - tap_exit1_ir((BYPASS & i) >> (ins_length - 1)); - } - - /* JTAG state switching */ - tap_update_ir(); - tap_run_test_idle(); -} - -/* - * jtag_send_data - * function :JTAG data sending interface - * @buf : param[in] Data that needs to be sent - * @data_length: param[in] Data length - */ -static void jtag_send_data(unsigned int buf, int data_length) -{ - int i; - i = 1 << (data_length - 1); - - /* JTAG state switching */ - tap_run_test_idle(); - tap_select_dr_scan(); - tap_capture_dr(); - tap_shift_dr(); - tap_send_data(buf, data_length); - /* Gets the highest bit of the instruction */ - tap_exit1_dr((buf & i) >> (data_length - 1)); - tap_update_dr(); - tap_run_test_idle(); -} - -/* - * jtag_program_donebit - * JTAG programming end point */ -static void jtag_program_donebit(void) -{ - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x0, chip_cpld_info->addr_register_length); - tap_idle(); - - switch (chip_cpld_info->id) { - case EPM240_G: - case EPM570_G: - jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x7BFF, chip_cpld_info->data_register_length); - tap_idle(); - break; - case EPM1270_G: - jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x7FFF, chip_cpld_info->data_register_length); - tap_idle(); - - jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0xFFFF, chip_cpld_info->data_register_length); - tap_idle(); - - jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0xFFBF, chip_cpld_info->data_register_length); - tap_idle(); - - jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0xFFFF, chip_cpld_info->data_register_length); - tap_idle(); - break; - default: - break; - } /* End of switch */ -} - -/* - * jtag_rt_disable - * JTAG Disable state machine under Real-Time ISP - */ -static void jtag_rt_disable(void) -{ - jtag_send_instruction(RT_ISC_DISABLE, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_instruction(BYPASS, CPLD_INSTRUCTION_SIZE); - tap_idle(); -} - -/* - * jtag_verify_idcode - * function :JTAG internal ID reading - */ -static void jtag_verify_idcode(void) -{ - int data, i; - u8 buf[2]; - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(chip_cpld_info->verify_idcode_addr, - chip_cpld_info->addr_register_length); - tap_idle(); - for (i = 0; i < VERIFY_IDCODE_SIZE; i++) { - jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); - tap_idle(); - - jtag_read_data(buf, 2); - - /* When validating the ID, the data is compared to the corresponding chip value, - which is retrieved from the BSDL file*/ - data = (buf[1] << 8) | buf[0]; - } -} - -/* - * jtag_rt_enable - * Enter Real-Time ISP mode; JTAG Enable State Machine under Real-Time ISP - */ -static void jtag_rt_enable(void) -{ - jtag_send_instruction(RT_ISC_ENABLE, CPLD_INSTRUCTION_SIZE); - tap_idle(); -} - -/* - * jtag_erase - * JTAG erases the timing - */ -static void jtag_erase(void) -{ - int i; - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(chip_cpld_info->first_erase_addr, - chip_cpld_info->addr_register_length); - tap_idle(); - jtag_send_instruction(ISC_ERASE, CPLD_INSTRUCTION_SIZE); - tap_idle(); - for (i = 0; i < ERASE_DELAY; i++) { - tap_idle(); - tap_idle(); - } - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(chip_cpld_info->second_erase_addr, - chip_cpld_info->addr_register_length); - tap_idle(); - jtag_send_instruction(ISC_ERASE, CPLD_INSTRUCTION_SIZE); - tap_idle(); - for (i = 0; i < ERASE_DELAY; i++) { - tap_idle(); - tap_idle(); - } - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(chip_cpld_info->third_erase_addr, - chip_cpld_info->addr_register_length); - tap_idle(); - jtag_send_instruction(ISC_ERASE, CPLD_INSTRUCTION_SIZE); - tap_idle(); - for (i = 0; i < ERASE_DELAY; i++) { - tap_idle(); - tap_idle(); - } -} - -/* - * jtag_blank_check - * JTAG blank detection */ -static void jtag_blank_check(void) -{ - int j; - int data; - u8 buf[2]; - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x0, chip_cpld_info->addr_register_length); - tap_idle(); - for (j = 0; j < chip_cpld_info->first_blank_check_length; j++) { - jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); - tap_idle(); - - jtag_read_data(buf, 2); - data = (buf[1] << 8) | buf[0]; - } - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x1, chip_cpld_info->addr_register_length); - tap_idle(); - for (j = 0; j < chip_cpld_info->second_blank_check_length; j++) { - jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); - tap_idle(); - - jtag_read_data(buf, 2); - data = (buf[1] << 8) | buf[0]; - } -} - -/* - * jtag_verify1 - * function :JTAG content validation - * @buffer : param[in] original data - * return value 0 validation success; -1 validation failed - */ -static int jtag_verify1(unsigned int *buffer) -{ - int j, ret = 0; - unsigned int data; - u8 buf[2]; - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x0, chip_cpld_info->addr_register_length); - tap_idle(); - for (j = 0; j < chip_cpld_info->eeprom_array_length; j++) { - jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); - tap_idle(); - - jtag_read_data(buf, 2); - data = (buf[1] << 8) | buf[0]; - - if (data != buffer[j]) { - FIRMWARE_DRIVER_DEBUG_ERROR("%d: %02x, %02x.\n", j, data, buffer[j]); - ret = -1; - break; - } - } - return ret; -} - -/* - * jtag_read_buffer - * function:JTAG internal data reading - * @size: param[in] Read size - * @buffer: param[out] Pointer to read data - */ -static void jtag_read_buffer(unsigned int *buffer, int size) -{ - int j; - int data; - u8 buf[2]; - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x0, chip_cpld_info->addr_register_length); - tap_idle(); - for (j = 0; j < size; j++) { - jtag_send_instruction(ISC_READ, CPLD_INSTRUCTION_SIZE); - tap_idle(); - - jtag_read_data(buf, 2); - data = (buf[1] << 8) | buf[0]; - buffer[j] = data; - } -} - -/* - * jtag_program - * function:JTAG programming timing - * @buffer: param[in] data pointer to program - */ -static void jtag_program(unsigned int *buffer) -{ - int i, j; - - jtag_send_instruction(ISC_ADDRESS_SHIFT, CPLD_INSTRUCTION_SIZE); - tap_idle(); - jtag_send_data(0x0, chip_cpld_info->addr_register_length); - tap_idle(); - for (j = 0; j < chip_cpld_info->eeprom_array_length; j++) { - jtag_send_instruction(ISC_PROGRAM, CPLD_INSTRUCTION_SIZE); - tap_idle(); - - jtag_send_data(buffer[j], chip_cpld_info->data_register_length); - for (i = 0; i < PROGRAM_DELAY; i++) { - tap_idle(); - tap_idle(); - } - } -} - -/* - * cpld_read_id - * function: CPLD chip ID read - * @chip: param[in] chip index - * id : param[out] ID point */ -static void cpld_read_id(int chip, unsigned int *id) -{ - u8 data[sizeof(int)]; - if (!chip_num || chip > chip_num) { - return; - } - current_chip_index = chip; - /* Send instructions */ - jtag_send_instruction(IDCODE, CPLD_INSTRUCTION_SIZE); - /* Read Data */ - jtag_read_data(data, sizeof(int)); - *id = (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0]; -} - -/* - * chip_num_init - * function:CPLD number of chips initialized */ -static void chip_num_init(void) -{ - unsigned int i, id; - unsigned char buf[sizeof(int) * CPLD_MAX_CHIP]; - chip_num = 0; - - /* JTAG state switching */ - tap_run_test_idle(); - tap_select_dr_scan(); - tap_capture_dr(); - tap_shift_dr(); - - for (i = 0; i < sizeof(int) * CPLD_MAX_CHIP; i++) { - tap_rcv_byte(&buf[i]); - } - - /* JTAG state switching */ - tap_exit1_dr(0); - tap_update_dr(); - tap_run_test_idle(); - - for (i = 0; i < sizeof(int) * CPLD_MAX_CHIP; i += 4) { - id = (buf[i + 3] << 24) | (buf[i + 2] << 16) | (buf[i + 1] << 8) | buf[i]; - FIRMWARE_DRIVER_DEBUG_VERBOSE("ID: %04x\n", id); - if (id != 0xFFFFFFFF && id != 0) { - chip_num++; - } - } -} - -/* - * cpld_reset - * function: reset JTAG - * @chip: param[in] chip index - */ -static void cpld_reset(int chip) -{ - unsigned int chip_type_id = 0; - int i; - /* JTAG enters the reset state */ - tap_test_logic_reset(); - /* Gets the number of chips in the CPLD */ - chip_num_init(); - if (!chip_num) { - pr_notice("There is no CPLD chip or the chip is not supported!!\r\n"); - FIRMWARE_DRIVER_DEBUG_ERROR("chip_num == NULL.\n"); - } else { - FIRMWARE_DRIVER_DEBUG_VERBOSE("enter cpld read id.\n"); - current_chip_index = chip; - /* Read chip ID */ - cpld_read_id(current_chip_index, &chip_type_id); - FIRMWARE_DRIVER_DEBUG_VERBOSE("get cpld id: 0x%x.\n", chip_type_id); - for (i = 0; cpld_id_table[i].name != NULL; i++) { - if (cpld_id_table[i].id == chip_type_id) { - chip_cpld_info = &cpld_id_table[i]; - break; - } - } - } - current_chip_index = -1; - tap_test_logic_reset(); -} - -/* - * cpld_program - * function: CPLD programming interface - * @chip: param[in] Chip serial number/chip index - * @buffer: param[in] data pointer to program - * return value: 0 success; -1 fail - */ -static int cpld_program(int chip, unsigned int *buffer) -{ - int ret; - int counte; - - if (!chip_num || chip > chip_num - || chip_cpld_info == NULL) { - return -1; - } - current_chip_index = chip; - - /* Enter Real-Time ISP mode */ - jtag_rt_enable(); - /* JTAG internal ID reading */ - jtag_verify_idcode(); - /* JTAG erases */ - jtag_erase(); - /* JTAG blank detection */ - jtag_blank_check(); - /* JTAG programming timing */ - jtag_program(buffer); - - /* In the process of upgrade, there is a problem with reading data, - * which may occur in the process of reading. Some bit reading fails, - * but the reason is not found. - * Avoidance resolution: perform multiple checks */ - for (counte = 0; counte < 4; counte++) { - ret = jtag_verify1(buffer); - if (counte > 0) { - pr_notice("Verify again(%d).\n", counte + 1); - } - - if (ret == 0) { - break; - } - } - pr_notice("Write chip %d cpld success(%d).\n", chip, ret); - jtag_program_donebit(); - - /* JTAG Disable state machine under Real-Time ISP */ - jtag_rt_disable(); - - return ret; -} - -static void cpld_read_buffer(int chip, unsigned int *buffer, unsigned int size) -{ - if (!chip_num || chip > chip_num - || chip_cpld_info == NULL) { - return; - } - current_chip_index = chip; - - /* Enter Real-Time ISP mode */ - jtag_rt_enable(); - - /* JTAG internal ID reading */ - jtag_verify_idcode(); - - /* JTAG internal data reading */ - jtag_read_buffer(buffer, size); - - jtag_rt_disable(); - -} - -/* - * cpld_eeprom_size - * function:CPLD chip capacity size - * return value :Returns chip capacity on success, or 0 on failure - */ -static int cpld_eeprom_size(void) -{ - int ret; - - if (!chip_num || chip_cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("chip_num:%d or chip_cpld_info == NULL.\n", chip_num); - ret = 0; - } else { - ret = chip_cpld_info->eeprom_array_length; - FIRMWARE_DRIVER_DEBUG_ERROR("chip_cpld_info->eeprom_array_length = %d.\n", - chip_cpld_info->eeprom_array_length); - } - - return ret; -} - -/* - * cpld_read_name - * function: Gets the CPLD chip name - * @chip: param[in] Chip serial number/chip index - * return value :chip name */ -static char *cpld_read_name(int chip) -{ - uint chip_type_id; - int i; - - chip_type_id = 0; - cpld_read_id(chip, &chip_type_id); - for (i = 0; cpld_id_table[i].name != NULL; i++) { - if (cpld_id_table[i].id == chip_type_id) { - return cpld_id_table[i].name; - } - } - - return NULL; -} - -/* - * cpld_upgrade_init - * function:Initialize GPIO and CPLD - * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int cpld_upgrade_init(void) -{ - int ret; - - if (function_fmw_cpld.init_cpld != NULL) { - ret = function_fmw_cpld.init_cpld(); - if (ret != FIRMWARE_SUCCESS) { - return ret; - } - } - - return FIRMWARE_SUCCESS; -} - -/* - * cpld_upgrade_finish - * function:Release GPIO and CPLD - * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int cpld_upgrade_finish(void) -{ - int ret; - - if (function_fmw_cpld.finish_cpld != NULL) { - ret = function_fmw_cpld.finish_cpld(); - if (ret != FIRMWARE_SUCCESS) { - return ret; - } - } - - return FIRMWARE_SUCCESS; -} - -static int cpld_str_hex_to_dec(char *str, char end_char) -{ - int i; - int result; - - if (str == NULL) { - return FIRMWARE_FAILED; - } - - i = 0; - result = 0; - while (str[i] != end_char) { - /* Check for hexadecimal characters:0123456789abcdef */ - if (!isxdigit(str[i]) || i >= CPLD_UNIT_SZ) { - return FIRMWARE_FAILED; - } - /* Check for a number between 0 and 9 */ - if (isdigit(str[i])) { - result = result * CPLD_HEX + str[i] - '0'; - } - /* Check if the character is uppercase */ - else if (isupper(str[i])) { - result = result * CPLD_HEX + str[i] - 'A' + DEC_VAL; - } else { - result = result * CPLD_HEX + str[i] - 'a' + DEC_VAL; - } - - i++; - } - - return result; -} - -static int cpld_check_upgrade_data(char *src, int src_len, int *dst, int dst_len) -{ - int i, init_lcnt, tmp; - char *ptr; - int ret; - - if (src == NULL || dst == NULL) { - return FIRMWARE_FAILED; - } - /* Pointers the ptr pointer to the data following the CPLD_INIT_KEYWORD */ - ret = FIRMWARE_SUCCESS; - ptr = strstr(src, CPLD_INIT_KEYWORD); - if (ptr == NULL) { - return FIRMWARE_FAILED; - } else { - ptr += strlen(CPLD_INIT_KEYWORD); - while (*ptr == '(' || *ptr == '\r' || *ptr == '\n') { - ptr++; - } - } - - /* Converts a hexadecimal string to decimal, with 4 groups of 4 bytes each */ - i = 0; - init_lcnt = 0; - for (init_lcnt = 0; init_lcnt < CPLD_INIT_CNT; init_lcnt++) { - tmp = cpld_str_hex_to_dec(ptr, CPLD_END_CHAR); - if (tmp < 0) { - ret = tmp; - return ret; - } - /* int type is 4 bytes */ - dst[i++] = tmp; - if (i >= dst_len) { - return FIRMWARE_SUCCESS; - } - - ptr += CPLD_UNIT_SZ + 1; - - while (*ptr == '\r' || *ptr == '\n') { - ptr++; - } - } - - /* Point the ptr pointer to the data after CPLD_REPEAT_KEYWORD */ - ptr = strstr(src, CPLD_REPEAT_KEYWORD); - if (ptr == NULL) { - return FIRMWARE_FAILED; - } else { - ptr += strlen(CPLD_REPEAT_KEYWORD); - while (*ptr == '(' || *ptr == '\r' || *ptr == '\n') { - ptr++; - } - } - - while (1) { - /* Converts the 4 bytes before ',' to base 10 */ - tmp = cpld_str_hex_to_dec(ptr, CPLD_END_CHAR); - if (tmp < 0) { - ret = tmp; - break; - } - dst[i++] = tmp; - if (i >= dst_len) { - return FIRMWARE_SUCCESS; - } - - ptr += CPLD_UNIT_SZ + 1; - - while (*ptr == '\r' || *ptr == '\n') { - ptr++; - } - } - - return FIRMWARE_SUCCESS; -} - -/** - * fmw_cpld_upg_get_chip_name - * function:get chip name - * @chain: param[in] chain - * @cpld: param[in] Device private data - * @len: param[in] chip name length - * @info: param[out] chip name - * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int fmw_cpld_upg_get_chip_name(int chain, firmware_cpld_t *cpld, char *info, int len) -{ - int ret; - char *name; - - /* Check the input and output parameters */ - if (chain < 0 || info == NULL || len <= 0) { - return FIRMWARE_FAILED; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to get chip name.\n"); - - if (cpld == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); - } else { - set_currrent_cpld_info(cpld); - } - - if (chain != current_fmw_cpld->chain) { - FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit." - "(chain = %d, current chain = %d, current name: %s)\n", - chain, current_fmw_cpld->chain, current_fmw_cpld->devname); - } - - /* Initialize GPIO and CPLD */ - ret = cpld_upgrade_init( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error:Failed to get chip name when init upgrade.(chain = %d)\n", - chain); - return FIRMWARE_FAILED; - } - - /* reset JTAG */ - cpld_reset(current_fmw_cpld->chip_index); - /* Read chip name */ - name = cpld_read_name(current_fmw_cpld->chip_index); - if (name == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get chip name when read name.(chain %d, index %d)\n", - chain, current_fmw_cpld->chip_index); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - - /* Release GPIO */ - ret = cpld_upgrade_finish( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get chip name when finish upgrade.(chain = %d)\n", - chain); - return FIRMWARE_FAILED; - } - - strncpy(info, name, len); - - return FIRMWARE_SUCCESS; -} - -/** - * fmw_cpld_upg_program - * function:Upgrade CPLD(ISC file format) - * @chain: param[in] chain - * @cpld: param[in] Device private data - * @info: param[in] Data to be written - * @len: param[in] Length of data to be written - * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int fmw_cpld_upg_program(int chain, firmware_cpld_t *cpld, char *info, int len) -{ - int i; - int time; - int ret; - int target_len; - int *target_buf; - - /* Check the input parameters */ - if (chain < 0 || info == NULL || len <= 0) { - return FIRMWARE_FAILED; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to program chip.\n"); - - if (cpld == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); - } else { - set_currrent_cpld_info(cpld); - } - - if (chain != current_fmw_cpld->chain) { - FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", - chain, current_fmw_cpld->chain); - } - /* Initialize GPIO and CPLD */ - ret = cpld_upgrade_init( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program when init upgrade.(chain = %d)\n", - chain); - return FIRMWARE_FAILED; - } - - /* reset JTAG */ - cpld_reset(current_fmw_cpld->chip_index); - /* CPLD chip capacity size */ - target_len = cpld_eeprom_size(); - if (target_len <= 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get cpld size.(chain = %d)\n", - chain); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - - target_buf = (int *) kzalloc(target_len * sizeof(int), GFP_KERNEL); - if (target_buf == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to malloc target buffer.(chain = %d)\n", - chain); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("cpld_check_upgrade_data start.(chain = %d, %d)\n", - chain, target_len); - /* Remove extraneous information */ - ret = cpld_check_upgrade_data(info, len, target_buf, target_len); - if (ret < 0){ - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to check data.(chain = %d)\n", - chain); - kfree(target_buf); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - - for (i = 0; i < 16 * 8; i += 8) { - FIRMWARE_DRIVER_DEBUG_VERBOSE(" %x %x %x %x %x %x %x %x\n", - target_buf[i], target_buf[i + 1], - target_buf[i + 2], target_buf[i + 3], - target_buf[i + 4], target_buf[i + 5], - target_buf[i + 6], target_buf[i + 7]); - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("cpld_check_upgrade_data finish.(chain = %d)\n", chain); - - /* CPLD device writing */ - for (time = 0; time < 10; time++) { - FIRMWARE_DRIVER_DEBUG_VERBOSE("Start upgrade cpld: %d.(chain = %d)\n", time, chain); - ret = cpld_program(current_fmw_cpld->chip_index, target_buf); - if (ret >= 0) { - break; - } - } - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program.(chain = %d)\n", chain); - kfree(target_buf); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("SUCCESS PROGRAM.\n"); - - /* Release GPIO */ - ret = cpld_upgrade_finish(); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program when finish upgrade.(chain = %d)\n", - chain); - } - - kfree(target_buf); - return FIRMWARE_SUCCESS; -} - -/** - * fmw_cpld_upg_program_jbi - * function: Upgrade CPLD(JBI file format) - * @chain: param[in] chain - * @cpld: param[in] Device private data - * @info: param[in] Data to be written - * @len: param[in] Length of data to be written - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int fmw_cpld_upg_program_jbi(int chain, firmware_cpld_t *cpld, char *info, int len) -{ - int time, ret; - int argc = 3; - char *argv[] = { - "-r", - "-aprogram", - "-ddo_real_time_isp=1" - }; - - /* Check the input parameters */ - if (chain < 0 || info == NULL || len <= 0) { - return FIRMWARE_FAILED; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to program chip %d(%p,%p,%d).\n", - chain, cpld, info, len); - - if (cpld == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); - } else { - set_currrent_cpld_info(cpld); - } - - if (chain != current_fmw_cpld->chain) { - FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", - chain, current_fmw_cpld->chain); - } - /* Initialize GPIO and CPLD */ - ret = cpld_upgrade_init( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program when init upgrade.(chain = %d)\n", - chain); - return FIRMWARE_FAILED; - } - - /* reset JTAG */ - cpld_reset(current_fmw_cpld->chip_index); - - for (time = 0; time < 30; time++) { - FIRMWARE_DRIVER_DEBUG_VERBOSE("Start upgrade cpld: %d.(chain = %d)\n", time, chain); - ret = jbi_main((unsigned char *) info, (unsigned long) len, argc, argv); - if (ret == 0) { - break; - } - } - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program.(chain = %d)\n", chain); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - FIRMWARE_DRIVER_DEBUG_VERBOSE("SUCCESS PROGRAM.\n"); - - /* Release GPIO and CPLD */ - ret = cpld_upgrade_finish( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program when finish upgrade.(chain = %d)\n", - chain); - } - - return FIRMWARE_SUCCESS; -} - -/** - * fmw_cpld_upg_get_version - * function: get version - * @chain: param[in] chain - * @cpld: param[in] Device private data - * @len: param[in] Data length - * @info: param[out] Version information buffer - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int fmw_cpld_upg_get_version(int chain, firmware_cpld_t *cpld, char *info, int len) -{ - int ret; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to get version.\n"); - if (cpld == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); - } else { - set_currrent_cpld_info(cpld); - } - - if (chain != current_fmw_cpld->chain) { - FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", - chain, current_fmw_cpld->chain); - } - - /* CPLD device can't get version */ - if (function_fmw_cpld.get_version != NULL) { - ret = function_fmw_cpld.get_version(chain, info, len); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed get version in chain: %d.\n", chain); - return FIRMWARE_FAILED; - } - - return FIRMWARE_SUCCESS; - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("The get_version is NULL in chain: %d.\n", chain); - } - - return FIRMWARE_FAILED; -} - -/** - * fmw_cpld_upg_get_chip_info - * function: Get chip content - * @chain: param[in] chain - * @cpld: param[in] Device private data - * @len: param[in] Data length - * @info: param[out] Read Data Buffer - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int fmw_cpld_upg_get_chip_info(int chain, firmware_cpld_t *cpld, void *info, int len) -{ - int i; - int ret; - int target_len; - int *target_buf; - - /* Check input and output parameters */ - if (chain < 0 || info == NULL || len <= 0) { - return FIRMWARE_FAILED; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to read chip.\n"); - - if (cpld == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to get gpio info.(chain = %d)\n", chain); - } else { - set_currrent_cpld_info(cpld); - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Cpld driver to read chip: %s.\n",current_fmw_cpld->devname); - if (chain != current_fmw_cpld->chain) { - FIRMWARE_DRIVER_DEBUG_ERROR("The chain num is not fit.(chain = %d, current chain = %d)\n", - chain, current_fmw_cpld->chain); - } - - /* Initialize GPIO and CPLD */ - ret = cpld_upgrade_init( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to program when init upgrade.(chain = %d)\n", - chain); - return FIRMWARE_FAILED; - } - - /* reset JTAG*/ - cpld_reset(current_fmw_cpld->chip_index); - /* CPLD chip capacity size */ - target_len = cpld_eeprom_size(); - if (target_len <= 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to get cpld size.(chain = %d)\n", - chain); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - - target_buf = (int *) kzalloc(target_len * sizeof(int), GFP_KERNEL); - if (target_buf == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to malloc target buffer.(chain = %d)\n", - chain); - cpld_upgrade_finish( ); - return FIRMWARE_FAILED; - } - /* Read chip */ - cpld_read_buffer(current_fmw_cpld->chip_index, target_buf, target_len); - - for (i = 0; i < 16 * 8; i += 8) { - FIRMWARE_DRIVER_DEBUG_VERBOSE(" %x %x %x %x %x %x %x %x\n", - target_buf[i], target_buf[i + 1], - target_buf[i + 2], target_buf[i + 3], - target_buf[i + 4], target_buf[i + 5], - target_buf[i + 6], target_buf[i + 7]); - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Success Read.\n"); - - /* Release GPIO and CPLD */ - ret = cpld_upgrade_finish( ); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to program when finish upgrade.(chain = %d)\n", - chain); - } - - if (copy_to_user(info, target_buf, (len > target_len) ? target_len : len)) { - kfree(target_buf); - return FIRMWARE_FAILED; - } - - kfree(target_buf); - return FIRMWARE_SUCCESS; -} - -/** - * jbi_jtag_io_ - * function: JBI GPIO operation - * @tms: param[in] TMS signal level - * @tdi: param[in] TDI signal level - * @read_tdo: param[in] Whether to read the level of the TDO - * return value : tdo - */ -int __attribute__ ((weak)) jbi_jtag_io_(int tms, int tdi, int read_tdo) -{ - int tdo = 0; - - if (tms) { - TMS_PULL_UP(); - } else { - TMS_PULL_DOWN(); - } - - if (tdi) { - TDI_PULL_UP(); - } else { - TDI_PULL_DOWN(); - } - - TCK_PULL_UP(); - ndelay(TCK_DELAY); - - if (read_tdo) { - tdo = TDO_READ(); - } - - TCK_PULL_DOWN(); - ndelay(TCK_DELAY); - - return tdo; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h deleted file mode 100644 index 3a6ab117df5d..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef __FIRMWARE_H__ -#define __FIRMWARE_H__ - -#include -#include - -#include - -/* Debug switch level */ -typedef enum { - FIRWMARE_VERBOSE, - FIRWMARE_WARN, - FIRWMARE_ERROR, - FIRWMARE_END, -} firmware_debug_level_t; - -#define FIRMWARE_DRIVER_DEBUG_VERBOSE(fmt, args...) do { \ - if ((g_firmware_driver_debug) & (1U << FIRWMARE_VERBOSE)) { \ - printk(KERN_INFO "[FIRMWARW_DRIVER_CPLD][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define FIRMWARE_DRIVER_DEBUG_ERROR(fmt, args...) do { \ - if ((g_firmware_driver_debug) & (1U << FIRWMARE_ERROR)) { \ - printk(KERN_ERR "[FIRMWARW_DRIVER_CPLD][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define FIRMWARE_NAME_LEN 48 - -#define FIRMWARE_FAILED (-1) -#define FIRMWARE_SUCCESS 0 - -/* ioctl publi command, the same as "firmware_upgrade\include\firmware_app.h" */ -#define FIRMWARE_COMMON_TYPE 'C' -#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ -#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ - -/* firmware cpld driver ioctl command, the same as "firmware_upgrade\include\firmware_app.h" */ -#define FIRMWARE_TYPE 'J' -#define FIRMWARE_PROGRAM _IOW(FIRMWARE_TYPE, 1, char) /* firmware upgrade ISC */ -#define FIRMWARE_READ_CHIP _IOR(FIRMWARE_TYPE, 5, int) /* read the contents of the chip */ -#define FIRMWARE_PROGRAM_JBI _IOW(FIRMWARE_TYPE, 6, char) /* firmware upgrade JBI */ - -typedef struct cmd_info_s { - uint32_t size; - void __user *data; -} cmd_info_t; - -typedef struct firmware_device_s { - struct list_head list; /* device list */ - uint32_t chain; /* chain number */ - char name[FIRMWARE_NAME_LEN]; /* name */ - struct miscdevice dev; /* device */ - void *priv; /* private data */ -} firmware_device_t; - -typedef struct firmware_driver_s { - struct list_head list; /* list */ - char name[FIRMWARE_NAME_LEN]; /* name */ - struct platform_driver *drv; /* driver */ - void *priv; /* private data */ -} firmware_driver_t; - -extern int g_firmware_driver_debug; - -/* Get device information based on minor */ -extern firmware_device_t *firmware_get_device_by_minor(int minor); -/* Registere device */ -extern int firmware_device_register(firmware_device_t *fw_dev); -/* Unregister device */ -extern void firmware_device_unregister(firmware_device_t *fw_dev); -/* Registere driver */ -extern int firmware_driver_register(firmware_driver_t *fw_drv); -/* Unregister driver */ -extern void firmware_driver_unregister(firmware_driver_t *fw_drv); -/* CPLD upgrade initialized */ -extern int firmware_cpld_init(void); -/* CPLD unload function */ -extern void firmware_cpld_exit(void); - -#endif /* end of __FIRMWARE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h deleted file mode 100644 index ef69655a4b2e..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/firmware_cpld.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __FIRMWARE_CPLD_H__ -#define __FIRMWARE_CPLD_H__ - -#define FIRMWARE_DEV_NAME_LEN 32 -#define FIRMWARE_MAX_CPLD_NUM 16 -#define FIRMWARE_TYPE_LEN 10 -#define FIRMWARE_EN_INFO_MAX 16 -#define FIRMWARE_EN_INFO_BUF 128 - -typedef struct firmware_gpio_jtag_en_s { - uint32_t en_gpio; /* GPIO enable pin */ - uint32_t en_level; /* GPIO enable level */ - int flag; /* init flag; 1-init 0-not init */ -} firmware_gpio_jtag_en_t; - -typedef struct firmware_cpld_s { - char devname[FIRMWARE_DEV_NAME_LEN]; /* Device name */ - char type[FIRMWARE_TYPE_LEN]; /* interface type */ - uint32_t tdi; /* TDI signal corresponding to GPIO pin information */ - uint32_t tck; /* TCK signal corresponding to GPIO pin information */ - uint32_t tms; /* TMS signal corresponding to GPIO pin information */ - uint32_t tdo; /* TDO signal corresponding to GPIO pin information */ - uint32_t chain; /* chain num */ - uint32_t chip_index; /* chip index */ - uint32_t tck_delay; /* Delay time */ - uint32_t gpio_en_info_num; /* GPIO Enable Number */ - firmware_gpio_jtag_en_t gpio_en_info[FIRMWARE_EN_INFO_MAX]; /* GPIO Enable Information */ -} firmware_cpld_t; - -typedef struct firmware_cpld_function_s{ - int (*pull_tdi_up)(void); /* TDI pull-up */ - int (*pull_tdi_down)(void); /* TDI pull-down */ - int (*pull_tck_up)(void); /* TCK pull-up */ - int (*pull_tck_down)(void); /* TCK pull-down */ - int (*pull_tms_up)(void); /* TMS pull-up */ - int (*pull_tms_down)(void); /* TCK pull-down */ - int (*read_tdo)(void); /* Read TDO */ - int (*init_cpld)(void); /* CPLD upgrade initializes the operation */ - int (*init_chip)(int chain); /* chip initializes the operation */ - int (*finish_chip)(int chain); /* chip completes the operation*/ - int (*finish_cpld)(void); /* CPLD upgrade completes the operation */ - int (*get_version)(int chain, char *ver, int len); /* get version */ -}firmware_cpld_function_t; - -/* get chip name */ -extern int fmw_cpld_upg_get_chip_name(int chain, firmware_cpld_t *cpld, char *info, int len); -/* ISC firmware upgrad */ -extern int fmw_cpld_upg_program(int chain, firmware_cpld_t *cpld, char *info, int len); -/* get version */ -extern int fmw_cpld_upg_get_version(int chain, firmware_cpld_t *cpld, char *info, int len); -/* Read the contents of Chip */ -extern int fmw_cpld_upg_get_chip_info(int chain, firmware_cpld_t *cpld, void *info, int len); -/* operate TDI */ -extern int fwm_cpld_tdi_op(int value); -/* operate TCK */ -extern int fwm_cpld_tck_op(int value); -/* operate TMS */ -extern int fwm_cpld_tms_op(int value); -/* operate TDO */ -extern int fwm_cpld_tdo_op(void); -/* JBI firmware upgrad */ -extern int fmw_cpld_upg_program_jbi(int chain, firmware_cpld_t *cpld, char *info, int len); - -#endif /* __FIRMWARE_CPLD_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h deleted file mode 100644 index 865c8d352174..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/include/jbi.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __JBI_H__ -#define __JBI_H__ - -#include - -/* JTAG operation interface*/ -extern int jbi_jtag_io_(int tms, int tdi, int read_tdo); -/* delay function */ -extern void jbi_jtag_udelay(unsigned long us); -/* Debug switch */ -extern int jbi_debug(int level); -/* JBI upgrade function */ -extern int jbi_main(unsigned char *addr, unsigned long size, int argc, char * const argv[]); - -#endif /* __JBI_JTAG_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c deleted file mode 100644 index 064d0ae50ec4..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.c +++ /dev/null @@ -1,438 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbicomp.c */ -/* */ -/* Copyright (C) Altera Corporation 1997-2001 */ -/* */ -/* Description: Contains the code for compressing and uncompressing */ -/* Boolean array data. */ -/* */ -/* This algorithm works by searching previous bytes in the */ -/* data that match the current data. If a match is found, */ -/* then the offset and length of the matching data can */ -/* replace the actual data in the output. */ -/* */ -/* Revisions: 2.2 fixed /W4 warnings */ -/* */ -/****************************************************************************/ - -#include "jbiport.h" -#include "jbiexprt.h" -#include "jbicomp.h" -#include "jbistub.h" - -#define SHORT_BITS 16 -#define CHAR_BITS 8 -#define DATA_BLOB_LENGTH 3 -#define MATCH_DATA_LENGTH 8192 -#define JBI_ACA_REQUEST_SIZE 1024 -#define JBI_ACA_BUFFER_SIZE (MATCH_DATA_LENGTH + JBI_ACA_REQUEST_SIZE) - -unsigned long jbi_in_length = 0L; -unsigned long jbi_in_index = 0L; /* byte index into compressed array */ -unsigned int jbi_bits_avail = CHAR_BITS; - -#if PORT == DOS -int jbi_current_variable_id = -1; -int jbi_current_page = -1; -int jbi_version = 0; -unsigned long jbi_out_length = 0L; -unsigned int jbi_out_index = 0; /* byte index into jbi_aca_out_buffer[] */ -unsigned long jbi_aca_in_offset = 0L; -unsigned char jbi_aca_out_buffer[JBI_ACA_BUFFER_SIZE]; -#endif - -/****************************************************************************/ -/* */ -/* The following functions implement incremental decompression of Boolean */ -/* array data, using a small memory window. */ -/* */ -/* This algorithm works by searching previous bytes in the data that match */ -/* the current data. If a match is found, then the offset and length of */ -/* the matching data can replace the actual data in the output. */ -/* */ -/* Memory usage is reduced by maintaining a "window" buffer which contains */ -/* the uncompressed data for one 8K page, plus some extra amount specified */ -/* by JBI_ACA_REQUEST_SIZE. The function jbi_uncompress_page() is used to */ -/* request a subrange of the uncompressed data, starting at a particular */ -/* bit position and extending a maximum of JBI_ACA_REQUEST_SIZE bytes. */ -/* */ -/****************************************************************************/ - -/****************************************************************************/ -/* */ - -unsigned int jbi_bits_required(unsigned int n) - -/* */ -/* Description: Calculate the minimum number of bits required to */ -/* represent n. */ -/* */ -/* Returns: Number of bits. */ -/* */ -/****************************************************************************/ -{ - unsigned int result = SHORT_BITS; - - if (n == 0) - { - result = 1; - } - else - { - /* Look for the highest non-zero bit position */ - while ((n & (1 << (SHORT_BITS - 1))) == 0) - { - n <<= 1; - --result; - } - } - - return (result); -} - -/****************************************************************************/ -/* */ - -unsigned int jbi_read_packed -( -#if PORT!=DOS - unsigned char *buffer, -#endif - unsigned int bits -) - -/* */ -/* Description: Read the next value from the input array "buffer". */ -/* Read only "bits" bits from the array. The amount of */ -/* bits that have already been read from "buffer" is */ -/* stored internally to this function. */ -/* */ -/* Returns: Up to 16 bit value. -1 if buffer overrun. */ -/* */ -/****************************************************************************/ -{ - unsigned int result = 0; - unsigned int shift = 0; - unsigned int databyte = 0; - - while (bits > 0) - { -#if PORT==DOS - databyte = GET_BYTE(jbi_aca_in_offset + jbi_in_index); -#else - databyte = buffer[jbi_in_index]; -#endif - result |= (((databyte >> (CHAR_BITS - jbi_bits_avail)) - & (0xFF >> (CHAR_BITS - jbi_bits_avail))) << shift); - - if (bits <= jbi_bits_avail) - { - result &= (0xFFFF >> (SHORT_BITS - (bits + shift))); - jbi_bits_avail -= bits; - bits = 0; - } - else - { - ++jbi_in_index; - shift += jbi_bits_avail; - bits -= jbi_bits_avail; - jbi_bits_avail = CHAR_BITS; - } - } - - return (result); -} - -#if PORT==DOS - -/****************************************************************************/ -/* */ - -void jbi_uncompress_next_page(int version) - -/* */ -/* Description: Uncompresses one page of compressed data, using */ -/* data page as reference for repeated sections. */ -/* Overwrites previous page of data in buffer. */ -/* */ -/* Returns: TRUE for success, FALSE if error encountered */ -/* */ -/****************************************************************************/ -{ - unsigned int i, j, offset, length; - unsigned int end_index; - unsigned long tmp_in_index = jbi_in_index; - unsigned int tmp_out_index = jbi_out_index; - unsigned int tmp_bits_avail = jbi_bits_avail; - unsigned int prev[3]; - unsigned long long_end; - unsigned int match_data_length = MATCH_DATA_LENGTH; - - if (version > 0) --match_data_length; - - if (jbi_current_page < 0) - { - /* this is the first page of the array */ - jbi_current_page = 0; - jbi_in_index = 4; /* skip over length field */ - jbi_out_index = 0; - end_index = (jbi_out_length < JBI_ACA_BUFFER_SIZE) ? - (unsigned int) jbi_out_length : JBI_ACA_BUFFER_SIZE; - } - else - { - /* this is not the first page */ - ++jbi_current_page; - jbi_out_index -= MATCH_DATA_LENGTH; - long_end = jbi_out_length - - ((long) jbi_current_page * (long) MATCH_DATA_LENGTH); - end_index = (long_end < JBI_ACA_BUFFER_SIZE) ? - (unsigned int) long_end : JBI_ACA_BUFFER_SIZE; - - /* copy extra data from end of circular buffer to beginning */ - for (i = 0; i < jbi_out_index; ++i) - { - jbi_aca_out_buffer[i] = jbi_aca_out_buffer[i + MATCH_DATA_LENGTH]; - } - } - - while (jbi_out_index < end_index) - { - /* save state so we can undo the last packet when we reach the end */ - tmp_in_index = jbi_in_index; - tmp_out_index = jbi_out_index; - tmp_bits_avail = jbi_bits_avail; - - /* A 0 bit indicates literal data. */ - if (jbi_read_packed(1) == 0) - { - for (i = 0; i < DATA_BLOB_LENGTH; ++i) - { - if (jbi_out_index < end_index) - { - if (version == 0) - { - prev[i] = jbi_aca_out_buffer[jbi_out_index] & 0xff; - } - jbi_aca_out_buffer[jbi_out_index++] = - (unsigned char) jbi_read_packed(CHAR_BITS); - } - } - } - else - { - /* A 1 bit indicates offset/length to follow. */ - offset = jbi_read_packed(jbi_bits_required( - (jbi_current_page > 0) ? match_data_length : - (jbi_out_index > match_data_length ? match_data_length : - jbi_out_index))); - length = jbi_read_packed(CHAR_BITS); - - if ((version == 0) && (offset == match_data_length + 3)) - { - jbi_aca_out_buffer[jbi_out_index++] = (unsigned char) prev[0]; - jbi_aca_out_buffer[jbi_out_index++] = (unsigned char) prev[1]; - jbi_aca_out_buffer[jbi_out_index++] = (unsigned char) prev[2]; - length -= 3; - } - - for (i = 0; i < length; ++i) - { - if (jbi_out_index < end_index) - { - if (offset > jbi_out_index) - { - j = jbi_out_index + MATCH_DATA_LENGTH - offset; - } - else j = jbi_out_index - offset; - jbi_aca_out_buffer[jbi_out_index] = jbi_aca_out_buffer[j]; - ++jbi_out_index; - } - } - - if (version == 0) - { - prev[0] = jbi_aca_out_buffer[jbi_out_index - 3] & 0xff; - prev[1] = jbi_aca_out_buffer[jbi_out_index - 2] & 0xff; - prev[2] = jbi_aca_out_buffer[jbi_out_index - 1] & 0xff; - } - } - } - - /* restore the state before the previous packet */ - jbi_in_index = tmp_in_index; - jbi_out_index = tmp_out_index; - jbi_bits_avail = tmp_bits_avail; -} - -/****************************************************************************/ -/* */ - -void jbi_uncompress_page -( - int variable_id, - int page, - int version -) - -/* */ -/* Description: Uncompress requested page of variable data. Stores */ -/* uncompressed data in jbi_aca_out_buffer[]. */ -/* */ -/* Returns: TRUE if successful, otherwise FALSE if: */ -/* 1) variable is not a compressed array */ -/* 2) compressed data is illegal or corrupted */ -/* 3) requested page is beyond the end of the array */ -/* 4) internal error in the code */ -/* */ -/****************************************************************************/ -{ - unsigned long symbol_table; - unsigned long data_section; - unsigned long offset; - unsigned long value; - int delta = version * 2; - - if (variable_id != jbi_current_variable_id) - { - /* initialize to uncompress the desired variable */ - symbol_table = GET_DWORD(16 + (version * 8)); - data_section = GET_DWORD(20 + (version * 8)); - offset = symbol_table + ((11 + delta) * variable_id); - value = GET_DWORD(offset + 3 + delta); - jbi_current_variable_id = variable_id; - jbi_current_page = -1; - jbi_bits_avail = CHAR_BITS; - jbi_in_length = GET_DWORD(offset + 7 + delta); - jbi_out_length = - (((unsigned long) GET_BYTE(data_section + value)) | - (((unsigned long) GET_BYTE(data_section + value + 1)) << 8) | - (((unsigned long) GET_BYTE(data_section + value + 2)) << 16) | - (((unsigned long) GET_BYTE(data_section + value + 3)) << 24)); - jbi_in_index = 4; /* skip over length field */ - jbi_out_index = 0; - jbi_aca_in_offset = data_section + value; - } - - /* to look back at an earlier page, start over at the beginning */ - if (page < jbi_current_page) - { - jbi_current_page = -1; - jbi_in_index = 4; /* skip over length field */ - jbi_bits_avail = CHAR_BITS; - } - - /* uncompress sequentially up to the desired page */ - while (page > jbi_current_page) - { - jbi_uncompress_next_page(version); - } -} - -#else - -/****************************************************************************/ -/* */ - -unsigned long jbi_uncompress -( - unsigned char *in, - unsigned long in_length, - unsigned char *out, - unsigned long out_length, - int version -) - -/* */ -/* Description: Uncompress data in "in" and write result to "out". */ -/* */ -/* Returns: Length of uncompressed data. -1 if: */ -/* 1) out_length is too small */ -/* 2) Internal error in the code */ -/* 3) in doesn't contain ACA compressed data. */ -/* */ -/****************************************************************************/ -{ -#ifdef CONFIG_64BIT - unsigned int data_length = 0; -#else - unsigned long data_length = 0L; -#endif - unsigned long i, j; - unsigned int offset, length; - unsigned int match_data_length = MATCH_DATA_LENGTH; - - if (version > 0) --match_data_length; - - jbi_in_length = in_length; - jbi_bits_avail = CHAR_BITS; - jbi_in_index = 0L; - for (i = 0; i < out_length; ++i) out[i] = 0; - - /* Read number of bytes in data. */ -#ifdef CONFIG_64BIT - for (i = 0; i < sizeof(unsigned int); ++i) - { - data_length = data_length | ((unsigned int) - jbi_read_packed(in, CHAR_BITS) << (i * CHAR_BITS)); - } -#else - for (i = 0; i < sizeof (in_length); ++i) - { - data_length = data_length | ((unsigned long) - jbi_read_packed(in, CHAR_BITS) << (i * CHAR_BITS)); - } -#endif - - if (data_length > out_length) - { -#ifdef CONFIG_64BIT - jbi_dbg(DEBUG_ERR, "data_length(0x%x,0x%lx)\n", - data_length, out_length); - data_length = 0; -#else - jbi_dbg(DEBUG_ERR, "data_length(0x%lx,0x%lx)\n", - data_length, out_length); - data_length = 0L; -#endif - } - else - { - i = 0; - while (i < data_length) - { - /* A 0 bit indicates literal data. */ - if (jbi_read_packed(in, 1) == 0) - { - for (j = 0; j < DATA_BLOB_LENGTH; ++j) - { - if (i < data_length) - { - out[i] = (unsigned char) jbi_read_packed(in, CHAR_BITS); - i++; - } - } - } - else - { - /* A 1 bit indicates offset/length to follow. */ - offset = jbi_read_packed(in, jbi_bits_required((short) (i > match_data_length ? match_data_length : i))); - length = jbi_read_packed(in, CHAR_BITS); - - for (j = 0; j < length; ++j) - { - if (i < data_length) - { - out[i] = out[i - offset]; - i++; - } - } - } - } - } - - return (data_length); -} - -#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h deleted file mode 100644 index 4dacdcd5d773..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbicomp.h +++ /dev/null @@ -1,37 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbicomp.h */ -/* */ -/* Copyright (C) Altera Corporation 1997-2001 */ -/* */ -/* Description: Contains the function prototypes for compressing */ -/* and uncompressing Boolean array data. */ -/* */ -/****************************************************************************/ - -#ifndef INC_JBICOMP_H -#define INC_JBICOMP_H - -#if PORT==DOS - -void jbi_uncompress_page -( - int variable_id, - int page, - int version -); - -#else - -unsigned long jbi_uncompress -( - unsigned char *in, - unsigned long in_length, - unsigned char *out, - unsigned long out_length, - int version -); - -#endif /* PORT==DOS */ - -#endif /* INC_JBICOMP_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h deleted file mode 100644 index ef4699dd6db3..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiexprt.h +++ /dev/null @@ -1,224 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbiexprt.h */ -/* */ -/* Copyright (C) Altera Corporation 1998-2001 */ -/* */ -/* Description: Jam STAPL ByteCode Player Export Header File */ -/* */ -/* Revisions: */ -/* */ -/****************************************************************************/ - -#ifndef INC_JBIEXPRT_H -#define INC_JBIEXPRT_H - -/****************************************************************************/ -/* */ -/* Return codes from most JBI functions */ -/* */ -/****************************************************************************/ - -#define JBI_RETURN_TYPE int - -#define JBIC_SUCCESS 0 -#define JBIC_OUT_OF_MEMORY 1 -#define JBIC_IO_ERROR 2 -/* #define JAMC_SYNTAX_ERROR 3 */ -#define JBIC_UNEXPECTED_END 4 -#define JBIC_UNDEFINED_SYMBOL 5 -/* #define JAMC_REDEFINED_SYMBOL 6 */ -#define JBIC_INTEGER_OVERFLOW 7 -#define JBIC_DIVIDE_BY_ZERO 8 -#define JBIC_CRC_ERROR 9 -#define JBIC_INTERNAL_ERROR 10 -#define JBIC_BOUNDS_ERROR 11 -/* #define JAMC_TYPE_MISMATCH 12 */ -/* #define JAMC_ASSIGN_TO_CONST 13 */ -/* #define JAMC_NEXT_UNEXPECTED 14 */ -/* #define JAMC_POP_UNEXPECTED 15 */ -/* #define JAMC_RETURN_UNEXPECTED 16 */ -/* #define JAMC_ILLEGAL_SYMBOL 17 */ -#define JBIC_VECTOR_MAP_FAILED 18 -#define JBIC_USER_ABORT 19 -#define JBIC_STACK_OVERFLOW 20 -#define JBIC_ILLEGAL_OPCODE 21 -/* #define JAMC_PHASE_ERROR 22 */ -/* #define JAMC_SCOPE_ERROR 23 */ -#define JBIC_ACTION_NOT_FOUND 24 - -/****************************************************************************/ -/* */ -/* Macro Definitions */ -/* */ -/****************************************************************************/ - -/* -* For DOS port, program data is stored in a set of 16K pages, accessed -* through a pointer table. For 32-bit version, the buffer is continuous. -* The macro GET_BYTE gets a single byte for either case. -*/ -#if PORT==DOS -#define PROGRAM_PTR unsigned char ** -#else -#define PROGRAM_PTR unsigned char * -#endif - -#if PORT==DOS -#define GET_BYTE(x) (jbi_program[(x) >> 14L][(x) & 0x3fffL]) -#else -#define GET_BYTE(x) (program[x]) -#endif - -#define GET_WORD(x) \ - (((((unsigned short) GET_BYTE(x)) << 8) & 0xFF00) | \ - (((unsigned short) GET_BYTE((x)+1)) & 0x00FF)) - -#define GET_DWORD(x) \ - (((((unsigned long) GET_BYTE(x)) << 24L) & 0xFF000000L) | \ - ((((unsigned long) GET_BYTE((x)+1)) << 16L) & 0x00FF0000L) | \ - ((((unsigned long) GET_BYTE((x)+2)) << 8L) & 0x0000FF00L) | \ - (((unsigned long) GET_BYTE((x)+3)) & 0x000000FFL)) - -/****************************************************************************/ -/* */ -/* Structured Types */ -/* */ -/****************************************************************************/ - -typedef struct JBI_PROCINFO_STRUCT -{ - char *name; - unsigned char attributes; - struct JBI_PROCINFO_STRUCT *next; -} -JBI_PROCINFO; - -/****************************************************************************/ -/* */ -/* Global Data Prototypes */ -/* */ -/****************************************************************************/ - -#if PORT==DOS -extern unsigned char jbi_aca_out_buffer[8192 + 1024]; -#endif - -extern PROGRAM_PTR jbi_program; - -extern char *jbi_workspace; - -extern long jbi_workspace_size; - -/****************************************************************************/ -/* */ -/* Function Prototypes */ -/* */ -/****************************************************************************/ - -JBI_RETURN_TYPE jbi_execute -( - PROGRAM_PTR program, - long program_size, - char *workspace, - long workspace_size, - char *action, - char **init_list, - int reset_jtag, - long *error_address, - int *exit_code, - int *format_version -); - -JBI_RETURN_TYPE jbi_get_note -( - PROGRAM_PTR program, - long program_size, - long *offset, - char *key, - char *value, - int length -); - -JBI_RETURN_TYPE jbi_check_crc -( - PROGRAM_PTR program, - long program_size, - unsigned short *expected_crc, - unsigned short *actual_crc -); - -JBI_RETURN_TYPE jbi_get_file_info -( - PROGRAM_PTR program, - long program_size, - int *format_version, - int *action_count, - int *procedure_count -); - -JBI_RETURN_TYPE jbi_get_action_info -( - PROGRAM_PTR program, - long program_size, - int index, - char **name, - char **description, - JBI_PROCINFO **procedure_list -); - -int jbi_jtag_io -( - int tms, - int tdi, - int read_tdo -); - -void jbi_message -( - char *message_text -); - -void jbi_export_integer -( - char *key, - long value -); - -void jbi_export_boolean_array -( - char *key, - unsigned char *data, - long count -); - -void jbi_delay -( - long microseconds -); - -int jbi_vector_map -( - int signal_count, - char **signals -); - -int jbi_vector_io -( - int signal_count, - long *dir_vect, - long *data_vect, - long *capture_vect -); - -void *jbi_malloc -( - unsigned int size -); - -void jbi_free -( - void *ptr -); - -#endif /* INC_JBIEXPRT_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c deleted file mode 100644 index f013100eecb8..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.c +++ /dev/null @@ -1,1679 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbijtag.c */ -/* */ -/* Copyright (C) Altera Corporation 1998-2001 */ -/* */ -/* Description: Contains JTAG interface functions */ -/* */ -/* Revisions: 2.2 updated state transition paths */ -/* 2.0 added multi-page scan code for 16-bit PORT */ -/* */ -/****************************************************************************/ - -#include "jbiport.h" -#include "jbiexprt.h" -#include "jbicomp.h" -#include "jbijtag.h" - -#define NULL 0 - -char *jbi_workspace = NULL; -long jbi_workspace_size = 0L; - -/****************************************************************************/ -/* */ -/* Enumerated Types */ -/* */ -/****************************************************************************/ - -/* maximum JTAG IR and DR lengths (in bits) */ -#define JBIC_MAX_JTAG_IR_PREAMBLE 256 -#define JBIC_MAX_JTAG_IR_POSTAMBLE 256 -#define JBIC_MAX_JTAG_IR_LENGTH 512 -#define JBIC_MAX_JTAG_DR_PREAMBLE 1024 -#define JBIC_MAX_JTAG_DR_POSTAMBLE 1024 -#define JBIC_MAX_JTAG_DR_LENGTH 2048 - -/* -* Global variable to store the current JTAG state -*/ -JBIE_JTAG_STATE jbi_jtag_state = JBI_ILLEGAL_JTAG_STATE; - -/* -* Store current stop-state for DR and IR scan commands -*/ -JBIE_JTAG_STATE jbi_drstop_state = IDLE; -JBIE_JTAG_STATE jbi_irstop_state = IDLE; - -/* -* Store current padding values -*/ -unsigned int jbi_dr_preamble = 0; -unsigned int jbi_dr_postamble = 0; -unsigned int jbi_ir_preamble = 0; -unsigned int jbi_ir_postamble = 0; -unsigned int jbi_dr_length = 0; -unsigned int jbi_ir_length = 0; -unsigned char *jbi_dr_preamble_data = NULL; -unsigned char *jbi_dr_postamble_data = NULL; -unsigned char *jbi_ir_preamble_data = NULL; -unsigned char *jbi_ir_postamble_data = NULL; -unsigned char *jbi_dr_buffer = NULL; -unsigned char *jbi_ir_buffer = NULL; - -/* -* This structure shows, for each JTAG state, which state is reached after -* a single TCK clock cycle with TMS high or TMS low, respectively. This -* describes all possible state transitions in the JTAG state machine. -*/ -struct JBIS_JTAG_MACHINE -{ - JBIE_JTAG_STATE tms_high; - JBIE_JTAG_STATE tms_low; -} jbi_jtag_state_transitions[] = -{ -/* RESET */ { RESET, IDLE }, -/* IDLE */ { DRSELECT, IDLE }, -/* DRSELECT */ { IRSELECT, DRCAPTURE }, -/* DRCAPTURE */ { DREXIT1, DRSHIFT }, -/* DRSHIFT */ { DREXIT1, DRSHIFT }, -/* DREXIT1 */ { DRUPDATE, DRPAUSE }, -/* DRPAUSE */ { DREXIT2, DRPAUSE }, -/* DREXIT2 */ { DRUPDATE, DRSHIFT }, -/* DRUPDATE */ { DRSELECT, IDLE }, -/* IRSELECT */ { RESET, IRCAPTURE }, -/* IRCAPTURE */ { IREXIT1, IRSHIFT }, -/* IRSHIFT */ { IREXIT1, IRSHIFT }, -/* IREXIT1 */ { IRUPDATE, IRPAUSE }, -/* IRPAUSE */ { IREXIT2, IRPAUSE }, -/* IREXIT2 */ { IRUPDATE, IRSHIFT }, -/* IRUPDATE */ { DRSELECT, IDLE } -}; - -/* -* This table contains the TMS value to be used to take the NEXT STEP on -* the path to the desired state. The array index is the current state, -* and the bit position is the desired endstate. To find out which state -* is used as the intermediate state, look up the TMS value in the -* jbi_jtag_state_transitions[] table. -*/ -unsigned short jbi_jtag_path_map[16] = -{ -/* RST RTI SDRS CDR SDR E1DR PDR E2DR */ - 0x0001, 0xFFFD, 0xFE01, 0xFFE7, 0xFFEF, 0xFF0F, 0xFFBF, 0xFFFF, -/* UDR SIRS CIR SIR E1IR PIR E2IR UIR */ - 0xFEFD, 0x0001, 0xF3FF, 0xF7FF, 0x87FF, 0xDFFF, 0xFFFF, 0x7FFD -}; - -/* -* Flag bits for jbi_jtag_io() function -*/ -#define TMS_HIGH 1 -#define TMS_LOW 0 -#define TDI_HIGH 1 -#define TDI_LOW 0 -#define READ_TDO 1 -#define IGNORE_TDO 0 - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_init_jtag() - -/* */ -/****************************************************************************/ -{ - /* initial JTAG state is unknown */ - jbi_jtag_state = JBI_ILLEGAL_JTAG_STATE; - - /* initialize global variables to default state */ - jbi_drstop_state = IDLE; - jbi_irstop_state = IDLE; - jbi_dr_preamble = 0; - jbi_dr_postamble = 0; - jbi_ir_preamble = 0; - jbi_ir_postamble = 0; - jbi_dr_length = 0; - jbi_ir_length = 0; - - if (jbi_workspace != NULL) - { - jbi_dr_preamble_data = (unsigned char *) jbi_workspace; - jbi_dr_postamble_data = &jbi_dr_preamble_data[JBIC_MAX_JTAG_DR_PREAMBLE / 8]; - jbi_ir_preamble_data = &jbi_dr_postamble_data[JBIC_MAX_JTAG_DR_POSTAMBLE / 8]; - jbi_ir_postamble_data = &jbi_ir_preamble_data[JBIC_MAX_JTAG_IR_PREAMBLE / 8]; - jbi_dr_buffer = &jbi_ir_postamble_data[JBIC_MAX_JTAG_IR_POSTAMBLE / 8]; - jbi_ir_buffer = &jbi_dr_buffer[JBIC_MAX_JTAG_DR_LENGTH / 8]; - } - else - { - jbi_dr_preamble_data = NULL; - jbi_dr_postamble_data = NULL; - jbi_ir_preamble_data = NULL; - jbi_ir_postamble_data = NULL; - jbi_dr_buffer = NULL; - jbi_ir_buffer = NULL; - } - - return (JBIC_SUCCESS); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_set_drstop_state -( - JBIE_JTAG_STATE state -) - -/* */ -/****************************************************************************/ -{ - jbi_drstop_state = state; - - return (JBIC_SUCCESS); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_set_irstop_state -( - JBIE_JTAG_STATE state -) - -/* */ -/****************************************************************************/ -{ - jbi_irstop_state = state; - - return (JBIC_SUCCESS); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_set_dr_preamble -( - unsigned int count, - unsigned int start_index, - unsigned char *preamble_data -) - -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned int i; - unsigned int j; - - if (jbi_workspace != NULL) - { - if (count > JBIC_MAX_JTAG_DR_PREAMBLE) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_dr_preamble = count; - } - } - else - { - if (count > jbi_dr_preamble) - { - jbi_free(jbi_dr_preamble_data); - jbi_dr_preamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); - - if (jbi_dr_preamble_data == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_dr_preamble = count; - } - } - else - { - jbi_dr_preamble = count; - } - } - - if (status == JBIC_SUCCESS) - { - for (i = 0; i < count; ++i) - { - j = i + start_index; - - if (preamble_data == NULL) - { - jbi_dr_preamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - if (preamble_data[j >> 3] & (1 << (j & 7))) - { - jbi_dr_preamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - jbi_dr_preamble_data[i >> 3] &= - ~(unsigned int) (1 << (i & 7)); - } - } - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_set_ir_preamble -( - unsigned int count, - unsigned int start_index, - unsigned char *preamble_data -) - -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned int i; - unsigned int j; - - if (jbi_workspace != NULL) - { - if (count > JBIC_MAX_JTAG_IR_PREAMBLE) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_ir_preamble = count; - } - } - else - { - if (count > jbi_ir_preamble) - { - jbi_free(jbi_ir_preamble_data); - jbi_ir_preamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); - - if (jbi_ir_preamble_data == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_ir_preamble = count; - } - } - else - { - jbi_ir_preamble = count; - } - } - - if (status == JBIC_SUCCESS) - { - for (i = 0; i < count; ++i) - { - j = i + start_index; - - if (preamble_data == NULL) - { - jbi_ir_preamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - if (preamble_data[j >> 3] & (1 << (j & 7))) - { - jbi_ir_preamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - jbi_ir_preamble_data[i >> 3] &= - ~(unsigned int) (1 << (i & 7)); - } - } - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_set_dr_postamble -( - unsigned int count, - unsigned int start_index, - unsigned char *postamble_data -) - -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned int i; - unsigned int j; - - if (jbi_workspace != NULL) - { - if (count > JBIC_MAX_JTAG_DR_POSTAMBLE) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_dr_postamble = count; - } - } - else - { - if (count > jbi_dr_postamble) - { - jbi_free(jbi_dr_postamble_data); - jbi_dr_postamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); - - if (jbi_dr_postamble_data == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_dr_postamble = count; - } - } - else - { - jbi_dr_postamble = count; - } - } - - if (status == JBIC_SUCCESS) - { - for (i = 0; i < count; ++i) - { - j = i + start_index; - - if (postamble_data == NULL) - { - jbi_dr_postamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - if (postamble_data[j >> 3] & (1 << (j & 7))) - { - jbi_dr_postamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - jbi_dr_postamble_data[i >> 3] &= - ~(unsigned int) (1 << (i & 7)); - } - } - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_set_ir_postamble -( - unsigned int count, - unsigned int start_index, - unsigned char *postamble_data -) - -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned int i; - unsigned int j; - - if (jbi_workspace != NULL) - { - if (count > JBIC_MAX_JTAG_IR_POSTAMBLE) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_ir_postamble = count; - } - } - else - { - if (count > jbi_ir_postamble) - { - jbi_free(jbi_ir_postamble_data); - jbi_ir_postamble_data = (unsigned char *) jbi_malloc((count + 7) >> 3); - - if (jbi_ir_postamble_data == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_ir_postamble = count; - } - } - else - { - jbi_ir_postamble = count; - } - } - - if (status == JBIC_SUCCESS) - { - for (i = 0; i < count; ++i) - { - j = i + start_index; - - if (postamble_data == NULL) - { - jbi_ir_postamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - if (postamble_data[j >> 3] & (1 << (j & 7))) - { - jbi_ir_postamble_data[i >> 3] |= (1 << (i & 7)); - } - else - { - jbi_ir_postamble_data[i >> 3] &= - ~(unsigned int) (1 << (i & 7)); - } - } - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -void jbi_jtag_reset_idle(void) - -/* */ -/****************************************************************************/ -{ - int i; - - /* - * Go to Test Logic Reset (no matter what the starting state may be) - */ - for (i = 0; i < 5; ++i) - { - jbi_jtag_io(TMS_HIGH, TDI_LOW, IGNORE_TDO); - } - - /* - * Now step to Run Test / Idle - */ - jbi_jtag_io(TMS_LOW, TDI_LOW, IGNORE_TDO); - - jbi_jtag_state = IDLE; -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_goto_jtag_state -( - JBIE_JTAG_STATE state -) - -/* */ -/****************************************************************************/ -{ - int tms; - int count = 0; - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned int tmp_state; - - if (jbi_jtag_state == JBI_ILLEGAL_JTAG_STATE) - { - /* initialize JTAG chain to known state */ - jbi_jtag_reset_idle(); - } - - if (jbi_jtag_state == state) - { - /* - * We are already in the desired state. If it is a stable state, - * loop here. Otherwise do nothing (no clock cycles). - */ - if ((state == IDLE) || - (state == DRSHIFT) || - (state == DRPAUSE) || - (state == IRSHIFT) || - (state == IRPAUSE)) - { - jbi_jtag_io(TMS_LOW, TDI_LOW, IGNORE_TDO); - } - else if (state == RESET) - { - jbi_jtag_io(TMS_HIGH, TDI_LOW, IGNORE_TDO); - } - } - else - { - while ((jbi_jtag_state != state) && (count < 9)) - { - /* - * Get TMS value to take a step toward desired state - */ - if (state < 0) { - tmp_state = 0; - } else { - tmp_state = state; - } - tms = (jbi_jtag_path_map[jbi_jtag_state] & (1 << tmp_state)) ? - TMS_HIGH : TMS_LOW; - - /* - * Take a step - */ - jbi_jtag_io(tms, TDI_LOW, IGNORE_TDO); - - if (tms) - { - jbi_jtag_state = - jbi_jtag_state_transitions[jbi_jtag_state].tms_high; - } - else - { - jbi_jtag_state = - jbi_jtag_state_transitions[jbi_jtag_state].tms_low; - } - - ++count; - } - } - - if (jbi_jtag_state != state) - { - status = JBIC_INTERNAL_ERROR; - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_do_wait_cycles -( - long cycles, - JBIE_JTAG_STATE wait_state -) - -/* */ -/* Description: Causes JTAG hardware to loop in the specified stable */ -/* state for the specified number of TCK clock cycles. */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - int tms; - long count; - JBI_RETURN_TYPE status = JBIC_SUCCESS; - - if (jbi_jtag_state != wait_state) - { - status = jbi_goto_jtag_state(wait_state); - } - - if (status == JBIC_SUCCESS) - { - /* - * Set TMS high to loop in RESET state - * Set TMS low to loop in any other stable state - */ - tms = (wait_state == RESET) ? TMS_HIGH : TMS_LOW; - - for (count = 0L; count < cycles; count++) - { - jbi_jtag_io(tms, TDI_LOW, IGNORE_TDO); - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_do_wait_microseconds -( - long microseconds, - JBIE_JTAG_STATE wait_state -) - -/* */ -/* Description: Causes JTAG hardware to sit in the specified stable */ -/* state for the specified duration of real time. If */ -/* no JTAG operations have been performed yet, then only */ -/* a delay is performed. This permits the WAIT USECS */ -/* statement to be used in VECTOR programs without causing */ -/* any JTAG operations. */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - - if ((jbi_jtag_state != JBI_ILLEGAL_JTAG_STATE) && - (jbi_jtag_state != wait_state)) - { - status = jbi_goto_jtag_state(wait_state); - } - - if (status == JBIC_SUCCESS) - { - /* - * Wait for specified time interval - */ - jbi_delay(microseconds); - } - - return (status); -} - -/****************************************************************************/ -/* */ - -void jbi_jtag_concatenate_data -( - unsigned char *buffer, - unsigned char *preamble_data, - unsigned int preamble_count, - unsigned char *target_data, - unsigned long start_index, - unsigned int target_count, - unsigned char *postamble_data, - unsigned int postamble_count -) - -/* */ -/* Description: Copies preamble data, target data, and postamble data */ -/* into one buffer for IR or DR scans. */ -/* */ -/* Returns: nothing */ -/* */ -/****************************************************************************/ -{ - unsigned long i; - unsigned long j; - unsigned long k; - - for (i = 0L; i < preamble_count; ++i) - { - if (preamble_data[i >> 3L] & (1L << (i & 7L))) - { - buffer[i >> 3L] |= (1L << (i & 7L)); - } - else - { - buffer[i >> 3L] &= ~(unsigned int) (1L << (i & 7L)); - } - } - - j = start_index; - k = preamble_count + target_count; - for (; i < k; ++i, ++j) - { - if (target_data[j >> 3L] & (1L << (j & 7L))) - { - buffer[i >> 3L] |= (1L << (i & 7L)); - } - else - { - buffer[i >> 3L] &= ~(unsigned int) (1L << (i & 7L)); - } - } - - j = 0L; - k = preamble_count + target_count + postamble_count; - for (; i < k; ++i, ++j) - { - if (postamble_data[j >> 3L] & (1L << (j & 7L))) - { - buffer[i >> 3L] |= (1L << (i & 7L)); - } - else - { - buffer[i >> 3L] &= ~(unsigned int) (1L << (i & 7L)); - } - } -} - -int jbi_jtag_drscan -( - int start_state, - int count, - unsigned char *tdi, - unsigned char *tdo -) -{ - int i = 0; - int tdo_bit = 0; - int status = 1; - - /* - * First go to DRSHIFT state - */ - switch (start_state) - { - case 0: /* IDLE */ - jbi_jtag_io(1, 0, 0); /* DRSELECT */ - jbi_jtag_io(0, 0, 0); /* DRCAPTURE */ - jbi_jtag_io(0, 0, 0); /* DRSHIFT */ - break; - - case 1: /* DRPAUSE */ - jbi_jtag_io(1, 0, 0); /* DREXIT2 */ - jbi_jtag_io(1, 0, 0); /* DRUPDATE */ - jbi_jtag_io(1, 0, 0); /* DRSELECT */ - jbi_jtag_io(0, 0, 0); /* DRCAPTURE */ - jbi_jtag_io(0, 0, 0); /* DRSHIFT */ - break; - - case 2: /* IRPAUSE */ - jbi_jtag_io(1, 0, 0); /* IREXIT2 */ - jbi_jtag_io(1, 0, 0); /* IRUPDATE */ - jbi_jtag_io(1, 0, 0); /* DRSELECT */ - jbi_jtag_io(0, 0, 0); /* DRCAPTURE */ - jbi_jtag_io(0, 0, 0); /* DRSHIFT */ - break; - - default: - status = 0; - } - - if (status) - { - /* loop in the SHIFT-DR state */ - for (i = 0; i < count; i++) - { - tdo_bit = jbi_jtag_io( - (i == count - 1), - tdi[i >> 3] & (1 << (i & 7)), - (tdo != NULL)); - - if (tdo != NULL) - { - if (tdo_bit) - { - tdo[i >> 3] |= (1 << (i & 7)); - } - else - { - tdo[i >> 3] &= ~(unsigned int) (1 << (i & 7)); - } - } - } - - jbi_jtag_io(0, 0, 0); /* DRPAUSE */ - } - - return (status); -} - -int jbi_jtag_irscan -( - int start_state, - int count, - unsigned char *tdi, - unsigned char *tdo -) -{ - int i = 0; - int tdo_bit = 0; - int status = 1; - - /* - * First go to IRSHIFT state - */ - switch (start_state) - { - case 0: /* IDLE */ - jbi_jtag_io(1, 0, 0); /* DRSELECT */ - jbi_jtag_io(1, 0, 0); /* IRSELECT */ - jbi_jtag_io(0, 0, 0); /* IRCAPTURE */ - jbi_jtag_io(0, 0, 0); /* IRSHIFT */ - break; - - case 1: /* DRPAUSE */ - jbi_jtag_io(1, 0, 0); /* DREXIT2 */ - jbi_jtag_io(1, 0, 0); /* DRUPDATE */ - jbi_jtag_io(1, 0, 0); /* DRSELECT */ - jbi_jtag_io(1, 0, 0); /* IRSELECT */ - jbi_jtag_io(0, 0, 0); /* IRCAPTURE */ - jbi_jtag_io(0, 0, 0); /* IRSHIFT */ - break; - - case 2: /* IRPAUSE */ - jbi_jtag_io(1, 0, 0); /* IREXIT2 */ - jbi_jtag_io(1, 0, 0); /* IRUPDATE */ - jbi_jtag_io(1, 0, 0); /* DRSELECT */ - jbi_jtag_io(1, 0, 0); /* IRSELECT */ - jbi_jtag_io(0, 0, 0); /* IRCAPTURE */ - jbi_jtag_io(0, 0, 0); /* IRSHIFT */ - break; - - default: - status = 0; - } - - if (status) - { - /* loop in the SHIFT-IR state */ - for (i = 0; i < count; i++) - { - tdo_bit = jbi_jtag_io( - (i == count - 1), - tdi[i >> 3] & (1 << (i & 7)), - (tdo != NULL)); - - if (tdo != NULL) - { - if (tdo_bit) - { - tdo[i >> 3] |= (1 << (i & 7)); - } - else - { - tdo[i >> 3] &= ~(unsigned int) (1 << (i & 7)); - } - } - } - - jbi_jtag_io(0, 0, 0); /* IRPAUSE */ - } - - return (status); -} - -/****************************************************************************/ -/* */ - -void jbi_jtag_extract_target_data -( - unsigned char *buffer, - unsigned char *target_data, - unsigned int start_index, - unsigned int preamble_count, - unsigned int target_count -) - -/* */ -/* Description: Copies target data from scan buffer, filtering out */ -/* preamble and postamble data. */ -/* */ -/* Returns: nothing */ -/* */ -/****************************************************************************/ -{ - unsigned int i; - unsigned int j; - unsigned int k; - - j = preamble_count; - k = start_index + target_count; - for (i = start_index; i < k; ++i, ++j) - { - if (buffer[j >> 3] & (1 << (j & 7))) - { - target_data[i >> 3] |= (1 << (i & 7)); - } - else - { - target_data[i >> 3] &= ~(unsigned int) (1 << (i & 7)); - } - } -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_do_irscan -( - unsigned int count, - unsigned char *tdi_data, - unsigned int start_index -) - -/* */ -/* Description: Shifts data into instruction register */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - int start_code = 0; - unsigned int alloc_chars = 0; - unsigned int shift_count = jbi_ir_preamble + count + jbi_ir_postamble; - JBI_RETURN_TYPE status = JBIC_SUCCESS; - JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; - - switch (jbi_jtag_state) - { - case JBI_ILLEGAL_JTAG_STATE: - case RESET: - case IDLE: - start_code = 0; - start_state = IDLE; - break; - - case DRSELECT: - case DRCAPTURE: - case DRSHIFT: - case DREXIT1: - case DRPAUSE: - case DREXIT2: - case DRUPDATE: - start_code = 1; - start_state = DRPAUSE; - break; - - case IRSELECT: - case IRCAPTURE: - case IRSHIFT: - case IREXIT1: - case IRPAUSE: - case IREXIT2: - case IRUPDATE: - start_code = 2; - start_state = IRPAUSE; - break; - - default: - status = JBIC_INTERNAL_ERROR; - break; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_jtag_state != start_state) - { - status = jbi_goto_jtag_state(start_state); - } - } - - if (status == JBIC_SUCCESS) - { - if (jbi_workspace != NULL) - { - if (shift_count > JBIC_MAX_JTAG_IR_LENGTH) - { - status = JBIC_OUT_OF_MEMORY; - } - } - else if (shift_count > jbi_ir_length) - { - alloc_chars = (shift_count + 7) >> 3; - jbi_free(jbi_ir_buffer); - jbi_ir_buffer = (unsigned char *) jbi_malloc(alloc_chars); - - if (jbi_ir_buffer == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_ir_length = alloc_chars * 8; - } - } - } - - if (status == JBIC_SUCCESS) - { - /* - * Copy preamble data, IR data, and postamble data into a buffer - */ - jbi_jtag_concatenate_data - ( - jbi_ir_buffer, - jbi_ir_preamble_data, - jbi_ir_preamble, - tdi_data, - start_index, - count, - jbi_ir_postamble_data, - jbi_ir_postamble - ); - - /* - * Do the IRSCAN - */ - jbi_jtag_irscan - ( - start_code, - shift_count, - jbi_ir_buffer, - NULL - ); - - /* jbi_jtag_irscan() always ends in IRPAUSE state */ - jbi_jtag_state = IRPAUSE; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_irstop_state != IRPAUSE) - { - status = jbi_goto_jtag_state(jbi_irstop_state); - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_swap_ir -( - unsigned int count, - unsigned char *in_data, - unsigned int in_index, - unsigned char *out_data, - unsigned int out_index -) - -/* */ -/* Description: Shifts data into instruction register, capturing output */ -/* data */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - int start_code = 0; - unsigned int alloc_chars = 0; - unsigned int shift_count = jbi_ir_preamble + count + jbi_ir_postamble; - JBI_RETURN_TYPE status = JBIC_SUCCESS; - JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; - - switch (jbi_jtag_state) - { - case JBI_ILLEGAL_JTAG_STATE: - case RESET: - case IDLE: - start_code = 0; - start_state = IDLE; - break; - - case DRSELECT: - case DRCAPTURE: - case DRSHIFT: - case DREXIT1: - case DRPAUSE: - case DREXIT2: - case DRUPDATE: - start_code = 1; - start_state = DRPAUSE; - break; - - case IRSELECT: - case IRCAPTURE: - case IRSHIFT: - case IREXIT1: - case IRPAUSE: - case IREXIT2: - case IRUPDATE: - start_code = 2; - start_state = IRPAUSE; - break; - - default: - status = JBIC_INTERNAL_ERROR; - break; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_jtag_state != start_state) - { - status = jbi_goto_jtag_state(start_state); - } - } - - if (status == JBIC_SUCCESS) - { - if (jbi_workspace != NULL) - { - if (shift_count > JBIC_MAX_JTAG_IR_LENGTH) - { - status = JBIC_OUT_OF_MEMORY; - } - } - else if (shift_count > jbi_ir_length) - { - alloc_chars = (shift_count + 7) >> 3; - jbi_free(jbi_ir_buffer); - jbi_ir_buffer = (unsigned char *) jbi_malloc(alloc_chars); - - if (jbi_ir_buffer == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_ir_length = alloc_chars * 8; - } - } - } - - if (status == JBIC_SUCCESS) - { - /* - * Copy preamble data, IR data, and postamble data into a buffer - */ - jbi_jtag_concatenate_data - ( - jbi_ir_buffer, - jbi_ir_preamble_data, - jbi_ir_preamble, - in_data, - in_index, - count, - jbi_ir_postamble_data, - jbi_ir_postamble - ); - - /* - * Do the IRSCAN - */ - jbi_jtag_irscan - ( - start_code, - shift_count, - jbi_ir_buffer, - jbi_ir_buffer - ); - - /* jbi_jtag_irscan() always ends in IRPAUSE state */ - jbi_jtag_state = IRPAUSE; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_irstop_state != IRPAUSE) - { - status = jbi_goto_jtag_state(jbi_irstop_state); - } - } - - if (status == JBIC_SUCCESS) - { - /* - * Now extract the returned data from the buffer - */ - jbi_jtag_extract_target_data - ( - jbi_ir_buffer, - out_data, - out_index, - jbi_ir_preamble, - count - ); - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_do_drscan -( - unsigned int count, - unsigned char *tdi_data, - unsigned long start_index -) - -/* */ -/* Description: Shifts data into data register (ignoring output data) */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - int start_code = 0; - unsigned int alloc_chars = 0; - unsigned int shift_count = jbi_dr_preamble + count + jbi_dr_postamble; - JBI_RETURN_TYPE status = JBIC_SUCCESS; - JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; - - switch (jbi_jtag_state) - { - case JBI_ILLEGAL_JTAG_STATE: - case RESET: - case IDLE: - start_code = 0; - start_state = IDLE; - break; - - case DRSELECT: - case DRCAPTURE: - case DRSHIFT: - case DREXIT1: - case DRPAUSE: - case DREXIT2: - case DRUPDATE: - start_code = 1; - start_state = DRPAUSE; - break; - - case IRSELECT: - case IRCAPTURE: - case IRSHIFT: - case IREXIT1: - case IRPAUSE: - case IREXIT2: - case IRUPDATE: - start_code = 2; - start_state = IRPAUSE; - break; - - default: - status = JBIC_INTERNAL_ERROR; - break; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_jtag_state != start_state) - { - status = jbi_goto_jtag_state(start_state); - } - } - - if (status == JBIC_SUCCESS) - { - if (jbi_workspace != NULL) - { - if (shift_count > JBIC_MAX_JTAG_DR_LENGTH) - { - status = JBIC_OUT_OF_MEMORY; - } - } - else if (shift_count > jbi_dr_length) - { - alloc_chars = (shift_count + 7) >> 3; - jbi_free(jbi_dr_buffer); - jbi_dr_buffer = (unsigned char *) jbi_malloc(alloc_chars); - - if (jbi_dr_buffer == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_dr_length = alloc_chars * 8; - } - } - } - - if (status == JBIC_SUCCESS) - { - /* - * Copy preamble data, DR data, and postamble data into a buffer - */ - jbi_jtag_concatenate_data - ( - jbi_dr_buffer, - jbi_dr_preamble_data, - jbi_dr_preamble, - tdi_data, - start_index, - count, - jbi_dr_postamble_data, - jbi_dr_postamble - ); - - /* - * Do the DRSCAN - */ - jbi_jtag_drscan - ( - start_code, - shift_count, - jbi_dr_buffer, - NULL - ); - - /* jbi_jtag_drscan() always ends in DRPAUSE state */ - jbi_jtag_state = DRPAUSE; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_drstop_state != DRPAUSE) - { - status = jbi_goto_jtag_state(jbi_drstop_state); - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_swap_dr -( - unsigned int count, - unsigned char *in_data, - unsigned long in_index, - unsigned char *out_data, - unsigned int out_index -) - -/* */ -/* Description: Shifts data into data register, capturing output data */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - int start_code = 0; - unsigned int alloc_chars = 0; - unsigned int shift_count = jbi_dr_preamble + count + jbi_dr_postamble; - JBI_RETURN_TYPE status = JBIC_SUCCESS; - JBIE_JTAG_STATE start_state = JBI_ILLEGAL_JTAG_STATE; - - switch (jbi_jtag_state) - { - case JBI_ILLEGAL_JTAG_STATE: - case RESET: - case IDLE: - start_code = 0; - start_state = IDLE; - break; - - case DRSELECT: - case DRCAPTURE: - case DRSHIFT: - case DREXIT1: - case DRPAUSE: - case DREXIT2: - case DRUPDATE: - start_code = 1; - start_state = DRPAUSE; - break; - - case IRSELECT: - case IRCAPTURE: - case IRSHIFT: - case IREXIT1: - case IRPAUSE: - case IREXIT2: - case IRUPDATE: - start_code = 2; - start_state = IRPAUSE; - break; - - default: - status = JBIC_INTERNAL_ERROR; - break; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_jtag_state != start_state) - { - status = jbi_goto_jtag_state(start_state); - } - } - - if (status == JBIC_SUCCESS) - { - if (jbi_workspace != NULL) - { - if (shift_count > JBIC_MAX_JTAG_DR_LENGTH) - { - status = JBIC_OUT_OF_MEMORY; - } - } - else if (shift_count > jbi_dr_length) - { - alloc_chars = (shift_count + 7) >> 3; - jbi_free(jbi_dr_buffer); - jbi_dr_buffer = (unsigned char *) jbi_malloc(alloc_chars); - - if (jbi_dr_buffer == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - jbi_dr_length = alloc_chars * 8; - } - } - } - - if (status == JBIC_SUCCESS) - { - /* - * Copy preamble data, DR data, and postamble data into a buffer - */ - jbi_jtag_concatenate_data - ( - jbi_dr_buffer, - jbi_dr_preamble_data, - jbi_dr_preamble, - in_data, - in_index, - count, - jbi_dr_postamble_data, - jbi_dr_postamble - ); - - /* - * Do the DRSCAN - */ - jbi_jtag_drscan - ( - start_code, - shift_count, - jbi_dr_buffer, - jbi_dr_buffer - ); - - /* jbi_jtag_drscan() always ends in DRPAUSE state */ - jbi_jtag_state = DRPAUSE; - } - - if (status == JBIC_SUCCESS) - { - if (jbi_drstop_state != DRPAUSE) - { - status = jbi_goto_jtag_state(jbi_drstop_state); - } - } - - if (status == JBIC_SUCCESS) - { - /* - * Now extract the returned data from the buffer - */ - jbi_jtag_extract_target_data - ( - jbi_dr_buffer, - out_data, - out_index, - jbi_dr_preamble, - count - ); - } - - return (status); -} - -/****************************************************************************/ -/* */ - -void jbi_free_jtag_padding_buffers(int reset_jtag) - -/* */ -/* Description: Frees memory allocated for JTAG IR and DR buffers */ -/* */ -/* Returns: nothing */ -/* */ -/****************************************************************************/ -{ - /* - * If the JTAG interface was used, reset it to TLR - */ - if (reset_jtag && (jbi_jtag_state != JBI_ILLEGAL_JTAG_STATE)) - { - jbi_jtag_reset_idle(); - } - - if (jbi_workspace == NULL) - { - if (jbi_dr_preamble_data != NULL) - { - jbi_free(jbi_dr_preamble_data); - jbi_dr_preamble_data = NULL; - } - - if (jbi_dr_postamble_data != NULL) - { - jbi_free(jbi_dr_postamble_data); - jbi_dr_postamble_data = NULL; - } - - if (jbi_dr_buffer != NULL) - { - jbi_free(jbi_dr_buffer); - jbi_dr_buffer = NULL; - } - - if (jbi_ir_preamble_data != NULL) - { - jbi_free(jbi_ir_preamble_data); - jbi_ir_preamble_data = NULL; - } - - if (jbi_ir_postamble_data != NULL) - { - jbi_free(jbi_ir_postamble_data); - jbi_ir_postamble_data = NULL; - } - - if (jbi_ir_buffer != NULL) - { - jbi_free(jbi_ir_buffer); - jbi_ir_buffer = NULL; - } - } -} - -#if PORT==DOS - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_do_drscan_multi_page -( - unsigned int variable_id, - unsigned long count, - unsigned long start_index, - int version -) - -/* */ -/* Description: Shifts data into data register (ignoring output data) */ -/* Scan data comes from compressed Boolean array. */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned long shift_count = jbi_dr_preamble + count + jbi_dr_postamble; - unsigned long i; - unsigned long j; - unsigned long k; - unsigned int bi; - - if (status == JBIC_SUCCESS) - { - status = jbi_goto_jtag_state(DRSHIFT); - } - - if (status == JBIC_SUCCESS) - { - /* - * Get preamble data, DR data, and postamble data one bit at a time - * and immediately scan it into the JTAG chain - */ - - for (i = 0L; i < jbi_dr_preamble; ++i) - { - jbi_jtag_io((i == shift_count - 1), - (int) (jbi_dr_preamble_data[i >> 3L] & (1L << (i & 7L))), 0); - } - - j = start_index; - k = jbi_dr_preamble + count; - - jbi_uncompress_page(variable_id, (unsigned int) (j >> 16L), version); - - for (; i < k; ++i, ++j) - { - bi = (unsigned int) (j & 0x0000ffffL); - - /* check for page boundary - load next page if necessary */ - if (bi == 0) - { - jbi_uncompress_page(variable_id, (unsigned int) (j >> 16L), version); - } - - jbi_jtag_io((i == shift_count - 1), - (int) (jbi_aca_out_buffer[bi >> 3] & (1 << (bi & 7))), 0); - } - - j = 0L; - k = jbi_dr_preamble + count + jbi_dr_postamble; - for (; i < k; ++i, ++j) - { - jbi_jtag_io((i == shift_count - 1), - (int) (jbi_dr_postamble_data[j >> 3L] & (1L << (j & 7L))), 0); - } - - jbi_jtag_io(0, 0, 0); /* DRPAUSE */ - - /* jbi_jtag_drscan() always ends in DRPAUSE state */ - jbi_jtag_state = DRPAUSE; - - if (jbi_drstop_state != DRPAUSE) - { - status = jbi_goto_jtag_state(jbi_drstop_state); - } - } - - return (status); -} - -#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h deleted file mode 100644 index fab2dac0266a..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbijtag.h +++ /dev/null @@ -1,146 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbijtag.h */ -/* */ -/* Copyright (C) Altera Corporation 1998-2001 */ -/* */ -/* Description: Definitions of JTAG constants, types, and functions */ -/* */ -/****************************************************************************/ - -#ifndef INC_JBIJTAG_H -#define INC_JBIJTAG_H - -/****************************************************************************/ -/* */ -/* Function Prototypes */ -/* */ -/****************************************************************************/ -typedef enum -{ - JBI_ILLEGAL_JTAG_STATE = -1, - RESET = 0, - IDLE = 1, - DRSELECT = 2, - DRCAPTURE = 3, - DRSHIFT = 4, - DREXIT1 = 5, - DRPAUSE = 6, - DREXIT2 = 7, - DRUPDATE = 8, - IRSELECT = 9, - IRCAPTURE = 10, - IRSHIFT = 11, - IREXIT1 = 12, - IRPAUSE = 13, - IREXIT2 = 14, - IRUPDATE = 15 - -} JBIE_JTAG_STATE; - -JBI_RETURN_TYPE jbi_init_jtag -( - void -); - -JBI_RETURN_TYPE jbi_set_drstop_state -( - JBIE_JTAG_STATE state -); - -JBI_RETURN_TYPE jbi_set_irstop_state -( - JBIE_JTAG_STATE state -); - -JBI_RETURN_TYPE jbi_set_dr_preamble -( - unsigned int count, - unsigned int start_index, - unsigned char *preamble_data -); - -JBI_RETURN_TYPE jbi_set_ir_preamble -( - unsigned int count, - unsigned int start_index, - unsigned char *preamble_data -); - -JBI_RETURN_TYPE jbi_set_dr_postamble -( - unsigned int count, - unsigned int start_index, - unsigned char *postamble_data -); - -JBI_RETURN_TYPE jbi_set_ir_postamble -( - unsigned int count, - unsigned int start_index, - unsigned char *postamble_data -); - -JBI_RETURN_TYPE jbi_goto_jtag_state -( - JBIE_JTAG_STATE state -); - -JBI_RETURN_TYPE jbi_do_wait_cycles -( - long cycles, - JBIE_JTAG_STATE wait_state -); - -JBI_RETURN_TYPE jbi_do_wait_microseconds -( - long microseconds, - JBIE_JTAG_STATE wait_state -); - -JBI_RETURN_TYPE jbi_do_irscan -( - unsigned int count, - unsigned char *tdi_data, - unsigned int start_index -); - -JBI_RETURN_TYPE jbi_swap_ir -( - unsigned int count, - unsigned char *in_data, - unsigned int in_index, - unsigned char *out_data, - unsigned int out_index -); - -JBI_RETURN_TYPE jbi_do_drscan -( - unsigned int count, - unsigned char *tdi_data, - unsigned long start_index -); - -JBI_RETURN_TYPE jbi_swap_dr -( - unsigned int count, - unsigned char *in_data, - unsigned long in_index, - unsigned char *out_data, - unsigned int out_index -); - -void jbi_free_jtag_padding_buffers -( - int reset_jtag -); - -JBI_RETURN_TYPE jbi_do_drscan_multi_page -( - unsigned int variable_id, - unsigned long long_count, - unsigned long long_index, - int version -); - -#endif /* INC_JBIJTAG_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c deleted file mode 100644 index b8cab4857074..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbimain.c +++ /dev/null @@ -1,3362 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbimain.c */ -/* */ -/* Copyright (C) Altera Corporation 1998-2001 */ -/* */ -/* Description: Jam STAPL ByteCode Player (Interpreter) */ -/* */ -/* Revisions: 2.2 fixed /W4 warnings */ -/* 2.0 added support for STAPL ByteCode format */ -/* */ -/****************************************************************************/ - -#include "jbiport.h" -#include "jbiexprt.h" -#include "jbijtag.h" -#include "jbicomp.h" -#include "jbistub.h" - -/****************************************************************************/ -/* */ -/* MACROS */ -/* */ -/****************************************************************************/ - -#ifndef NULL -#define NULL 0 -#endif - -#define JBI_STACK_SIZE 128 - -#define JBIC_MESSAGE_LENGTH 1024 - -/* -* This macro checks if enough parameters are available on the stack. The -* argument is the number of parameters needed. -*/ -#define IF_CHECK_STACK(x) \ - if (stack_ptr < (int) (x)) \ - { \ - status = JBIC_STACK_OVERFLOW; \ - } \ - else - -/* -* This macro checks if a code address is inside the code section -*/ -#define CHECK_PC \ - if ((pc < code_section) || (pc >= debug_section)) \ - { \ - status = JBIC_BOUNDS_ERROR; \ - } - -/****************************************************************************/ -/* */ -/* GLOBAL VARIABLES */ -/* */ -/****************************************************************************/ - -#if PORT==DOS -/* -* jbi_program is a global pointer used by macros GET_BYTE, GET_WORD, and -* GET_DWORD to read data from the JBC file -*/ -PROGRAM_PTR jbi_program; -#endif - -/****************************************************************************/ -/* */ -/* UTILITY FUNCTIONS */ -/* */ -/****************************************************************************/ - -int jbi_strlen(char *string) -{ - int len = 0; - - while (string[len] != '\0') ++len; - - return (len); -} - -long jbi_atol(char *buffer) -{ - long result = 0L; - int index = 0; - - while ((buffer[index] >= '0') && (buffer[index] <= '9')) - { - result = (result * 10) + (buffer[index] - '0'); - ++index; - } - - return (result); -} - -void jbi_ltoa(char *buffer, long number) -{ - int index = 0; - int rev_index = 0; - char reverse[32]; - - if (number < 0L) - { - buffer[index++] = '-'; - number = 0 - number; - } - else if (number == 0) - { - buffer[index++] = '0'; - } - - while (number != 0) - { - reverse[rev_index++] = (char) ((number % 10) + '0'); - number /= 10; - } - - while (rev_index > 0) - { - buffer[index++] = reverse[--rev_index]; - } - - buffer[index] = '\0'; -} - -char jbi_toupper(char ch) -{ - return ((char) (((ch >= 'a') && (ch <= 'z')) ? (ch + 'A' - 'a') : ch)); -} - -int jbi_stricmp(char *left, char *right) -{ - int result = 0; - char l, r; - - do - { - l = jbi_toupper(*left); - r = jbi_toupper(*right); - result = l - r; - ++left; - ++right; - } - while ((result == 0) && (l != '\0') && (r != '\0')); - - return (result); -} - -void jbi_strncpy(char *left, char *right, int count) -{ - char ch; - - do - { - *left = *right; - ch = *right; - ++left; - ++right; - --count; - } - while ((ch != '\0') && (count != 0)); -} - -void jbi_make_dword(unsigned char *buf, unsigned long num) -{ - buf[0] = (unsigned char) num; - buf[1] = (unsigned char) (num >> 8L); - buf[2] = (unsigned char) (num >> 16L); - buf[3] = (unsigned char) (num >> 24L); -} - -unsigned long jbi_get_dword(unsigned char *buf) -{ - return - (((unsigned long) buf[0]) | - (((unsigned long) buf[1]) << 8L) | - (((unsigned long) buf[2]) << 16L) | - (((unsigned long) buf[3]) << 24L)); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_execute -( - PROGRAM_PTR program, - long program_size, - char *workspace, - long workspace_size, - char *action, - char **init_list, - int reset_jtag, - long *error_address, - int *exit_code, - int *format_version -) - -/* */ -/* Description: */ -/* */ -/* Returns: */ -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned long first_word = 0L; - unsigned long action_table = 0L; - unsigned long proc_table = 0L; - unsigned long string_table = 0L; - unsigned long symbol_table = 0L; - unsigned long data_section = 0L; - unsigned long code_section = 0L; - unsigned long debug_section = 0L; - unsigned long action_count = 0L; - unsigned long proc_count = 0L; - unsigned long symbol_count = 0L; - /*char message_buffer[JBIC_MESSAGE_LENGTH + 1];*/ - char *message_buffer; - addr_t *variables = NULL; - long *variable_size = NULL; - char *attributes = NULL; - unsigned char *proc_attributes = NULL; - unsigned long pc; - unsigned long opcode_address; - unsigned long args[3]; - unsigned int opcode; - unsigned long name_id; - addr_t stack[JBI_STACK_SIZE] = {0}; - unsigned char charbuf[4]; - long long_temp; - unsigned int variable_id; - unsigned char *charptr_temp; - unsigned char *charptr_temp2; - long *longptr_temp; - int version = 0; - int delta = 0; - int stack_ptr = 0; - unsigned int arg_count; - int done = 0; - int bad_opcode = 0; - unsigned int count; - unsigned int index; - unsigned int index2; - long long_count; - long long_index; - long long_index2; - unsigned int i; - unsigned int j; - unsigned long uncompressed_size, uncompressed_result; - unsigned int offset; - unsigned long value; - int current_proc = 0; - char *equal_ptr; - int length; - int reverse; - - unsigned long debug_cnt = 0; - -#if PORT==DOS - char name[33]; -#else - char *name; -#endif - - jbi_workspace = workspace; - jbi_workspace_size = workspace_size; - -#if PORT==DOS - jbi_program = program; -#endif - - /* Resolve compilation warnings: the frame size of 1664 bytes is larger than 1024 bytes */ - message_buffer = (char *) kzalloc(JBIC_MESSAGE_LENGTH + 1, GFP_KERNEL); - if (message_buffer == NULL) { - jbi_dbg(DEBUG_DETAIL, "Memory not enough jbi_execute \n"); - return JBIC_OUT_OF_MEMORY; - } - - /* - * Read header information - */ - if (program_size > 52L) - { - first_word = GET_DWORD(0); - version = (int) (first_word & 1L); - *format_version = version + 1; - delta = version * 8; - - action_table = GET_DWORD(4); - proc_table = GET_DWORD(8); - string_table = GET_DWORD(4 + delta); - symbol_table = GET_DWORD(16 + delta); - data_section = GET_DWORD(20 + delta); - code_section = GET_DWORD(24 + delta); - debug_section = GET_DWORD(28 + delta); - action_count = GET_DWORD(40 + delta); - proc_count = GET_DWORD(44 + delta); - symbol_count = GET_DWORD(48 + (2 * delta)); - - jbi_dbg(DEBUG_DETAIL, "version: %d\n", version); - jbi_dbg(DEBUG_DETAIL, "delta: %d\n", delta); - jbi_dbg(DEBUG_DETAIL, "action_table: 0x%08lx\n", action_table); - jbi_dbg(DEBUG_DETAIL, "proc_table: 0x%08lx\n", proc_table); - jbi_dbg(DEBUG_DETAIL, "string_table: 0x%08lx\n", string_table); - jbi_dbg(DEBUG_DETAIL, "symbol_table: 0x%08lx\n", symbol_table); - jbi_dbg(DEBUG_DETAIL, "data_section: 0x%08lx\n", data_section); - jbi_dbg(DEBUG_DETAIL, "code_section: 0x%08lx\n", code_section); - jbi_dbg(DEBUG_DETAIL, "debug_section: 0x%08lx\n", debug_section); - jbi_dbg(DEBUG_DETAIL, "action_count: 0x%08lx\n", action_count); - jbi_dbg(DEBUG_DETAIL, "proc_count: 0x%08lx\n", proc_count); - jbi_dbg(DEBUG_DETAIL, "symbol_count: 0x%08lx\n", symbol_count); - jbi_dbg(DEBUG_DETAIL, "\n"); - } - - if ((first_word != 0x4A414D00L) && (first_word != 0x4A414D01L)) - { - jbi_dbg(DEBUG_ERR, "first_word 0x%lx\n", first_word); - done = 1; - status = JBIC_IO_ERROR; - } - - if ((status == JBIC_SUCCESS) && (symbol_count > 0)) - { - variables = (addr_t *) jbi_malloc( - (unsigned int) symbol_count * sizeof(long)); - - if (variables == NULL) status = JBIC_OUT_OF_MEMORY; - - if (status == JBIC_SUCCESS) - { - variable_size = (long *) jbi_malloc( - (unsigned int) symbol_count * sizeof(long)); - - if (variable_size == NULL) status = JBIC_OUT_OF_MEMORY; - } - - if (status == JBIC_SUCCESS) - { - attributes = (char *) jbi_malloc((unsigned int) symbol_count); - - if (attributes == NULL) status = JBIC_OUT_OF_MEMORY; - } - - if ((status == JBIC_SUCCESS) && (version > 0)) - { - proc_attributes = (unsigned char *) jbi_malloc((unsigned int) proc_count); - - if (proc_attributes == NULL) status = JBIC_OUT_OF_MEMORY; - } - - if (status == JBIC_SUCCESS) - { - delta = version * 2; - - for (i = 0; i < (unsigned int) symbol_count; ++i) - { - offset = (unsigned int) (symbol_table + ((11 + delta) * i)); - - value = GET_DWORD(offset + 3 + delta); - - attributes[i] = GET_BYTE(offset); - - /* use bit 7 of attribute byte to indicate that this buffer */ - /* was dynamically allocated and should be freed later */ - attributes[i] &= 0x7f; - - variable_size[i] = GET_DWORD(offset + 7 + delta); - - jbi_dbg(DEBUG_NOISY, "symbol %03d: 0x%02x,0x%08lx,0x%08lx\n", - i, attributes[i], value, variable_size[i]); - - /* - * Attribute bits: - * bit 0: 0 = read-only, 1 = read-write - * bit 1: 0 = not compressed, 1 = compressed - * bit 2: 0 = not initialized, 1 = initialized - * bit 3: 0 = scalar, 1 = array - * bit 4: 0 = Boolean, 1 = integer - * bit 5: 0 = declared variable, - * 1 = compiler created temporary variable - */ - - if ((attributes[i] & 0x0c) == 0x04) - { - /* initialized scalar variable */ - variables[i] = value; - } - else if ((attributes[i] & 0x1e) == 0x0e) - { - /* initialized compressed Boolean array */ -#if PORT==DOS - /* for DOS port, get the size but do not uncompress */ - long_index = data_section + value; - uncompressed_size = - (((unsigned long) GET_BYTE(long_index)) | - (((unsigned long) GET_BYTE(long_index + 1L)) << 8L) | - (((unsigned long) GET_BYTE(long_index + 2L)) << 16L) | - (((unsigned long) GET_BYTE(long_index + 3L)) << 24L)); - variable_size[i] = uncompressed_size; -#else - uncompressed_size = jbi_get_dword( - &program[data_section + value]); - - /* allocate a buffer for the uncompressed data */ - variables[i] = (addr_t) jbi_malloc(uncompressed_size); - - if (variables[i] == (addr_t) 0L) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - /* set flag so buffer will be freed later */ - attributes[i] |= 0x80; - - /* uncompress the data */ - uncompressed_result = - jbi_uncompress( - &program[data_section + value], - variable_size[i], - (unsigned char *) variables[i], - uncompressed_size, - version); - if (uncompressed_result != uncompressed_size) - { - /* decompression failed */ - jbi_dbg(DEBUG_ERR, "uncompress fail(0x%lx,0x%lx,0x%lx)(0x%lx)\n", - variable_size[i], uncompressed_result, uncompressed_size, value); - status = JBIC_IO_ERROR; - } - else - { - variable_size[i] = uncompressed_size * 8L; - } - } -#endif - } - else if ((attributes[i] & 0x1e) == 0x0c) - { - /* initialized Boolean array */ -#if PORT==DOS - /* flag attributes so that memory is freed */ - attributes[i] |= 0x80; - - if (variable_size[i] > 0) - { - unsigned int size = (unsigned int) - ((variable_size[i] + 7L) / 8L); - - variables[i] = (long) jbi_malloc(size); - - if (variables[i] == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - unsigned char *p = (unsigned char *) variables[i]; - /* copy array values into buffer */ - for (j = 0; j < size; ++j) - { - p[j] = GET_BYTE(data_section + value + j); - } - } - } - else - { - variables[i] = 0; - } -#else - variables[i] = value + data_section + (addr_t) program; -#endif - } - else if ((attributes[i] & 0x1c) == 0x1c) - { - /* initialized integer array */ - variables[i] = value + data_section; - } - else if ((attributes[i] & 0x0c) == 0x08) - { - /* uninitialized array */ - - /* flag attributes so that memory is freed */ - attributes[i] |= 0x80; - - if (variable_size[i] > 0) - { - unsigned int size; - - if (attributes[i] & 0x10) - { - /* integer array */ - size = (unsigned int) - (variable_size[i] * sizeof(long)); - } - else - { - /* Boolean array */ - size = (unsigned int) - ((variable_size[i] + 7L) / 8L); - } - - variables[i] = (addr_t) jbi_malloc(size); - - if (variables[i] == (addr_t) NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - /* zero out memory */ - for (j = 0; j < size; ++j) - { - ((unsigned char *)(variables[i]))[j] = 0; - } - } - } - else - { - variables[i] = 0; - } - } - else - { - variables[i] = 0; - } - - jbi_dbg(DEBUG_NOISY, " variables: 0x%08lx,0x%016llx\n", - variable_size[i], (long long) variables[i]); - } - } - - jbi_dbg(DEBUG_NOISY, "\n"); - } - - /* - * Initialize variables listed in init_list - */ - if ((status == JBIC_SUCCESS) && (init_list != NULL) && (version == 0)) - { - delta = version * 2; - count = 0; - while (init_list[count] != NULL) - { - equal_ptr = init_list[count]; - length = 0; - while ((*equal_ptr != '=') && (*equal_ptr != '\0')) - { - ++equal_ptr; - ++length; - } - if (*equal_ptr == '=') - { - ++equal_ptr; - value = jbi_atol(equal_ptr); - jbi_strncpy(message_buffer, init_list[count], length); - message_buffer[length] = '\0'; - for (i = 0; i < (unsigned int) symbol_count; ++i) - { - offset = (unsigned int) (symbol_table + ((11 + delta) * i)); - name_id = (version == 0) ? GET_WORD(offset + 1) : - GET_DWORD(offset + 1); -#if PORT==DOS - for (j = 0; j < 32; ++j) - { - name[j] = GET_BYTE(string_table + name_id + j); - } - name[32] = '\0'; -#else - name = (char *) &program[string_table + name_id]; -#endif - - if (jbi_stricmp(message_buffer, name) == 0) - { - variables[i] = value; - } - - jbi_dbg(DEBUG_NOISY, "init_list %03d: 0x%08lx,%s,0x%016llx\n", - i, name_id, name, (long long) variables[i]); - } - } - - ++count; - } - - jbi_dbg(DEBUG_NOISY, "\n"); - } - - if (status != JBIC_SUCCESS) done = 1; - - jbi_init_jtag(); - - pc = code_section; - message_buffer[0] = '\0'; - - /* - * For JBC version 2, we will execute the procedures corresponding to - * the selected ACTION - */ - if (version > 0) - { - if (action == NULL) - { - status = JBIC_ACTION_NOT_FOUND; - done = 1; - } - else - { - int action_found = 0; - - for (i = 0; (i < action_count) && !action_found; ++i) - { - name_id = GET_DWORD(action_table + (12 * i)); - -#if PORT==DOS - for (j = 0; j < 32; ++j) - { - name[j] = GET_BYTE(string_table + name_id + j); - } - name[32] = '\0'; -#else - name = (char *) &program[string_table + name_id]; -#endif - - if (jbi_stricmp(action, name) == 0) - { - action_found = 1; - current_proc = (int) GET_DWORD(action_table + (12 * i) + 8); - } - - jbi_dbg(DEBUG_NOISY, "action %03d: 0x%08lx,%s, %d,%d\n", - i, name_id, name, action_found, current_proc); - } - - if (!action_found) - { - status = JBIC_ACTION_NOT_FOUND; - done = 1; - } - } - - if (status == JBIC_SUCCESS) - { - int first_time = 1; - i = current_proc; - while ((i != 0) || first_time) - { - first_time = 0; - /* check procedure attribute byte */ - proc_attributes[i] = (unsigned char) - (GET_BYTE(proc_table + (13 * i) + 8) & 0x03); - - jbi_dbg(DEBUG_NOISY, " proc_attributes %03d: 0x%02x\n", - i, proc_attributes[i]); - - if (proc_attributes[i] != 0) - { - /* - * BIT0 - OPTIONAL - * BIT1 - RECOMMENDED - * BIT6 - FORCED OFF - * BIT7 - FORCED ON - */ - if (init_list != NULL) - { - name_id = GET_DWORD(proc_table + (13 * i)); -#if PORT==DOS - for (j = 0; j < 32; ++j) - { - name[j] = GET_BYTE(string_table + name_id + j); - } - name[32] = '\0'; -#else - name = (char *) &program[string_table + name_id]; -#endif - - jbi_dbg(DEBUG_NOISY, " init_list %03d: 0x%08lx,%s\n", - i, name_id, name); - - count = 0; - while (init_list[count] != NULL) - { - equal_ptr = init_list[count]; - length = 0; - while ((*equal_ptr != '=') && (*equal_ptr != '\0')) - { - ++equal_ptr; - ++length; - } - if (*equal_ptr == '=') - { - ++equal_ptr; - jbi_strncpy(message_buffer, init_list[count], length); - message_buffer[length] = '\0'; - - if (jbi_stricmp(message_buffer, name) == 0) - { - if (jbi_atol(equal_ptr) == 0) - { - proc_attributes[i] |= 0x40; - } - else - { - proc_attributes[i] |= 0x80; - } - } - } - - jbi_dbg(DEBUG_NOISY, " proc_attributes %03d: 0x%02x\n", - i, proc_attributes[i]); - - ++count; - } - } - } - - i = (unsigned int) GET_DWORD(proc_table + (13 * i) + 4); - } - - /* - * Set current_proc to the first procedure to be executed - */ - i = current_proc; - while ((i != 0) && - ((proc_attributes[i] == 1) || - ((proc_attributes[i] & 0xc0) == 0x40))) - { - i = (unsigned int) GET_DWORD(proc_table + (13 * i) + 4); - } - - if ((i != 0) || ((i == 0) && (current_proc == 0) && - ((proc_attributes[0] != 1) && - ((proc_attributes[0] & 0xc0) != 0x40)))) - { - current_proc = i; - pc = code_section + GET_DWORD(proc_table + (13 * i) + 9); - CHECK_PC; - } - else - { - /* there are no procedures to execute! */ - done = 1; - } - } - - jbi_dbg(DEBUG_NOISY, "\n"); - } - - message_buffer[0] = '\0'; - - jbi_dbg(DEBUG_NOISY, "excute pc: 0x%lx,%d\n", pc, current_proc); - while (!done) - { - opcode = (unsigned int) (GET_BYTE(pc) & 0xff); - debug_cnt++; - jbi_dbg(DEBUG_NOISY, "op: 0x%02x(%03d:0x%08lx,%08lx)", - opcode, stack_ptr, pc, debug_cnt); - opcode_address = pc; - ++pc; - - arg_count = (opcode >> 6) & 3; - jbi_dbg(DEBUG_NOISY, " - %u:", arg_count); - for (i = 0; i < arg_count; ++i) - { - args[i] = GET_DWORD(pc); - jbi_dbg(DEBUG_NOISY, " 0x%08lx", args[i]); - pc += 4; - } - jbi_dbg(DEBUG_NOISY, "\n"); - - switch (opcode) - { - case 0x00: /* NOP */ - /* do nothing */ - break; - - case 0x01: /* DUP */ - IF_CHECK_STACK(1) - { - stack[stack_ptr] = stack[stack_ptr - 1]; - ++stack_ptr; - } - break; - - case 0x02: /* SWP */ - IF_CHECK_STACK(2) - { - long_temp = stack[stack_ptr - 2]; - stack[stack_ptr - 2] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - break; - - case 0x03: /* ADD */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] += stack[stack_ptr]; - } - break; - - case 0x04: /* SUB */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] -= stack[stack_ptr]; - } - break; - - case 0x05: /* MULT */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] *= stack[stack_ptr]; - } - break; - - case 0x06: /* DIV */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] /= stack[stack_ptr]; - } - break; - - case 0x07: /* MOD */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] %= stack[stack_ptr]; - } - break; - - case 0x08: /* SHL */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] <<= stack[stack_ptr]; - } - break; - - case 0x09: /* SHR */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] >>= stack[stack_ptr]; - } - break; - - case 0x0A: /* NOT */ - IF_CHECK_STACK(1) - { - stack[stack_ptr - 1] ^= (-1L); - } - break; - - case 0x0B: /* AND */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] &= stack[stack_ptr]; - } - break; - - case 0x0C: /* OR */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] |= stack[stack_ptr]; - } - break; - - case 0x0D: /* XOR */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] ^= stack[stack_ptr]; - } - break; - - case 0x0E: /* INV */ - IF_CHECK_STACK(1) - { - stack[stack_ptr - 1] = stack[stack_ptr - 1] ? 0L : 1L; - } - break; - - case 0x0F: /* GT */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] = - (stack[stack_ptr - 1] > stack[stack_ptr]) ? 1L : 0L; - } - break; - - case 0x10: /* LT */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] = - (stack[stack_ptr - 1] < stack[stack_ptr]) ? 1L : 0L; - } - break; - - case 0x11: /* RET */ - if ((version > 0) && (stack_ptr == 0)) - { - /* - * We completed one of the main procedures of an ACTION. - * Find the next procedure to be executed and jump to it. - * If there are no more procedures, then EXIT. - */ - i = (unsigned int) GET_DWORD(proc_table + (13 * current_proc) + 4); - while ((i != 0) && - ((proc_attributes[i] == 1) || - ((proc_attributes[i] & 0xc0) == 0x40))) - { - i = (unsigned int) GET_DWORD(proc_table + (13 * i) + 4); - } - - if (i == 0) - { - /* there are no procedures to execute! */ - done = 1; - *exit_code = 0; /* success */ - } - else - { - current_proc = i; - pc = code_section + GET_DWORD(proc_table + (13 * i) + 9); - CHECK_PC; - } - } - else IF_CHECK_STACK(1) - { - pc = stack[--stack_ptr] + code_section; - CHECK_PC; - if (pc == code_section) - { - status = JBIC_BOUNDS_ERROR; - } - } - break; - - case 0x12: /* CMPS */ - /* - * Array short compare - * ...stack 0 is source 1 value - * ...stack 1 is source 2 value - * ...stack 2 is mask value - * ...stack 3 is count - */ - IF_CHECK_STACK(4) - { - long a = stack[--stack_ptr]; - long b = stack[--stack_ptr]; - long_temp = stack[--stack_ptr]; - count = (unsigned int) stack[stack_ptr - 1]; - - if ((count < 1) || (count > 32)) - { - status = JBIC_BOUNDS_ERROR; - } - else - { - long_temp &= ((-1L) >> (32 - count)); - - stack[stack_ptr - 1] = - ((a & long_temp) == (b & long_temp)) ? 1L : 0L; - } - } - break; - - case 0x13: /* PINT */ - /* - * PRINT add integer - * ...stack 0 is integer value - */ - IF_CHECK_STACK(1) - { - jbi_ltoa(&message_buffer[jbi_strlen(message_buffer)], - stack[--stack_ptr]); - } - break; - - case 0x14: /* PRNT */ - /* - * PRINT finish - */ - jbi_message(message_buffer); - message_buffer[0] = '\0'; - break; - - case 0x15: /* DSS */ - /* - * DRSCAN short - * ...stack 0 is scan data - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - long_temp = stack[--stack_ptr]; - count = (unsigned int) stack[--stack_ptr]; - jbi_make_dword(charbuf, long_temp); - status = jbi_do_drscan(count, charbuf, 0); - } - break; - - case 0x16: /* DSSC */ - /* - * DRSCAN short with capture - * ...stack 0 is scan data - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - long_temp = stack[--stack_ptr]; - count = (unsigned int) stack[stack_ptr - 1]; - jbi_make_dword(charbuf, long_temp); - status = jbi_swap_dr(count, charbuf, 0, charbuf, 0); - stack[stack_ptr - 1] = jbi_get_dword(charbuf); - } - break; - - case 0x17: /* ISS */ - /* - * IRSCAN short - * ...stack 0 is scan data - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - long_temp = stack[--stack_ptr]; - count = (unsigned int) stack[--stack_ptr]; - jbi_make_dword(charbuf, long_temp); - status = jbi_do_irscan(count, charbuf, 0); - } - break; - - case 0x18: /* ISSC */ - /* - * IRSCAN short with capture - * ...stack 0 is scan data - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - long_temp = stack[--stack_ptr]; - count = (unsigned int) stack[stack_ptr - 1]; - jbi_make_dword(charbuf, long_temp); - status = jbi_swap_ir(count, charbuf, 0, charbuf, 0); - stack[stack_ptr - 1] = jbi_get_dword(charbuf); - } - break; - - case 0x19: /* VSS */ - /* - * VECTOR short - * ...stack 0 is scan data - * ...stack 1 is count - */ - bad_opcode = 1; - break; - - case 0x1A: /* VSSC */ - /* - * VECTOR short with capture - * ...stack 0 is scan data - * ...stack 1 is count - */ - bad_opcode = 1; - break; - - case 0x1B: /* VMPF */ - /* - * VMAP finish - */ - bad_opcode = 1; - break; - - case 0x1C: /* DPR */ - IF_CHECK_STACK(1) - { - count = (unsigned int) stack[--stack_ptr]; - status = jbi_set_dr_preamble(count, 0, NULL); - } - break; - - case 0x1D: /* DPRL */ - /* - * DRPRE with literal data - * ...stack 0 is count - * ...stack 1 is literal data - */ - IF_CHECK_STACK(2) - { - count = (unsigned int) stack[--stack_ptr]; - long_temp = stack[--stack_ptr]; - jbi_make_dword(charbuf, long_temp); - status = jbi_set_dr_preamble(count, 0, charbuf); - } - break; - - case 0x1E: /* DPO */ - /* - * DRPOST - * ...stack 0 is count - */ - IF_CHECK_STACK(1) - { - count = (unsigned int) stack[--stack_ptr]; - status = jbi_set_dr_postamble(count, 0, NULL); - } - break; - - case 0x1F: /* DPOL */ - /* - * DRPOST with literal data - * ...stack 0 is count - * ...stack 1 is literal data - */ - IF_CHECK_STACK(2) - { - count = (unsigned int) stack[--stack_ptr]; - long_temp = stack[--stack_ptr]; - jbi_make_dword(charbuf, long_temp); - status = jbi_set_dr_postamble(count, 0, charbuf); - } - break; - - case 0x20: /* IPR */ - IF_CHECK_STACK(1) - { - count = (unsigned int) stack[--stack_ptr]; - status = jbi_set_ir_preamble(count, 0, NULL); - } - break; - - case 0x21: /* IPRL */ - /* - * IRPRE with literal data - * ...stack 0 is count - * ...stack 1 is literal data - */ - IF_CHECK_STACK(2) - { - count = (unsigned int) stack[--stack_ptr]; - long_temp = stack[--stack_ptr]; - jbi_make_dword(charbuf, long_temp); - status = jbi_set_ir_preamble(count, 0, charbuf); - } - break; - - case 0x22: /* IPO */ - /* - * IRPOST - * ...stack 0 is count - */ - IF_CHECK_STACK(1) - { - count = (unsigned int) stack[--stack_ptr]; - status = jbi_set_ir_postamble(count, 0, NULL); - } - break; - - case 0x23: /* IPOL */ - /* - * IRPOST with literal data - * ...stack 0 is count - * ...stack 1 is literal data - */ - IF_CHECK_STACK(2) - { - count = (unsigned int) stack[--stack_ptr]; - long_temp = stack[--stack_ptr]; - jbi_make_dword(charbuf, long_temp); - status = jbi_set_ir_postamble(count, 0, charbuf); - } - break; - - case 0x24: /* PCHR */ - IF_CHECK_STACK(1) - { - unsigned char ch; - count = jbi_strlen(message_buffer); - ch = (char) stack[--stack_ptr]; - if ((ch < 1) || (ch > 127)) - { - /* character code out of range */ - /* instead of flagging an error, force the value to 127 */ - ch = 127; - } - message_buffer[count] = ch; - message_buffer[count + 1] = '\0'; - } - break; - - case 0x25: /* EXIT */ - IF_CHECK_STACK(1) - { - *exit_code = (int) stack[--stack_ptr]; - } - done = 1; - break; - - case 0x26: /* EQU */ - IF_CHECK_STACK(2) - { - --stack_ptr; - stack[stack_ptr - 1] = - (stack[stack_ptr - 1] == stack[stack_ptr]) ? 1L : 0L; - } - break; - - case 0x27: /* POPT */ - IF_CHECK_STACK(1) - { - --stack_ptr; - } - break; - - case 0x28: /* TRST */ - bad_opcode = 1; - break; - - case 0x29: /* FRQ */ - bad_opcode = 1; - break; - - case 0x2A: /* FRQU */ - bad_opcode = 1; - break; - - case 0x2B: /* PD32 */ - bad_opcode = 1; - break; - - case 0x2C: /* ABS */ - IF_CHECK_STACK(1) - { - if (stack[stack_ptr - 1] < 0) - { - stack[stack_ptr - 1] = 0 - stack[stack_ptr - 1]; - } - } - break; - - case 0x2D: /* BCH0 */ - /* - * Batch operation 0 - * SWP - * SWPN 7 - * SWP - * SWPN 6 - * DUPN 8 - * SWPN 2 - * SWP - * DUPN 6 - * DUPN 6 - */ - - /* SWP */ - IF_CHECK_STACK(2) - { - long_temp = stack[stack_ptr - 2]; - stack[stack_ptr - 2] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - - /* SWPN 7 */ - index = 7 + 1; - IF_CHECK_STACK(index) - { - long_temp = stack[stack_ptr - index]; - stack[stack_ptr - index] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - - /* SWP */ - IF_CHECK_STACK(2) - { - long_temp = stack[stack_ptr - 2]; - stack[stack_ptr - 2] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - - /* SWPN 6 */ - index = 6 + 1; - IF_CHECK_STACK(index) - { - long_temp = stack[stack_ptr - index]; - stack[stack_ptr - index] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - - /* DUPN 8 */ - index = 8 + 1; - IF_CHECK_STACK(index) - { - stack[stack_ptr] = stack[stack_ptr - index]; - ++stack_ptr; - } - - /* SWPN 2 */ - index = 2 + 1; - IF_CHECK_STACK(index) - { - long_temp = stack[stack_ptr - index]; - stack[stack_ptr - index] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - - /* SWP */ - IF_CHECK_STACK(2) - { - long_temp = stack[stack_ptr - 2]; - stack[stack_ptr - 2] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - - /* DUPN 6 */ - index = 6 + 1; - IF_CHECK_STACK(index) - { - stack[stack_ptr] = stack[stack_ptr - index]; - ++stack_ptr; - } - - /* DUPN 6 */ - index = 6 + 1; - IF_CHECK_STACK(index) - { - stack[stack_ptr] = stack[stack_ptr - index]; - ++stack_ptr; - } - break; - - case 0x2E: /* BCH1 */ - /* - * Batch operation 1 - * SWPN 8 - * SWP - * SWPN 9 - * SWPN 3 - * SWP - * SWPN 2 - * SWP - * SWPN 7 - * SWP - * SWPN 6 - * DUPN 5 - * DUPN 5 - */ - bad_opcode = 1; - break; - - case 0x2F: /* PSH0 */ - stack[stack_ptr++] = 0; - break; - - case 0x40: /* PSHL */ - stack[stack_ptr++] = (long) args[0]; - break; - - case 0x41: /* PSHV */ - stack[stack_ptr++] = variables[args[0]]; - break; - - case 0x42: /* JMP */ - pc = args[0] + code_section; - CHECK_PC; - break; - - case 0x43: /* CALL */ - stack[stack_ptr++] = pc; - pc = args[0] + code_section; - CHECK_PC; - break; - - case 0x44: /* NEXT */ - /* - * Process FOR / NEXT loop - * ...argument 0 is variable ID - * ...stack 0 is step value - * ...stack 1 is end value - * ...stack 2 is top address - */ - IF_CHECK_STACK(3) - { - long step = stack[stack_ptr - 1]; - long end = stack[stack_ptr - 2]; - long top = stack[stack_ptr - 3]; - long iterator = variables[args[0]]; - int break_out = 0; - - if (step < 0) - { - if (iterator <= end) break_out = 1; - } - else - { - if (iterator >= end) break_out = 1; - } - - if (break_out) - { - stack_ptr -= 3; - } - else - { - variables[args[0]] = iterator + step; - pc = top + code_section; - CHECK_PC; - } - } - break; - - case 0x45: /* PSTR */ - /* - * PRINT add string - * ...argument 0 is string ID - */ -#if PORT==DOS - long_index = string_table + args[0]; - index2 = jbi_strlen(message_buffer); - - do - { - i = GET_BYTE(long_index); - message_buffer[index2] = (char) i; - ++long_index; - ++index2; - } - while ((i != '\0') && (index2 < JBIC_MESSAGE_LENGTH)); -#else - count = jbi_strlen(message_buffer); - jbi_strncpy(&message_buffer[count], - (char *) &program[string_table + args[0]], - JBIC_MESSAGE_LENGTH - count); -#endif - message_buffer[JBIC_MESSAGE_LENGTH] = '\0'; - break; - - case 0x46: /* VMAP */ - /* - * VMAP add signal name - * ...argument 0 is string ID - */ - bad_opcode = 1; - break; - - case 0x47: /* SINT */ - /* - * STATE intermediate state - * ...argument 0 is state code - */ - status = jbi_goto_jtag_state((int) args[0]); - break; - - case 0x48: /* ST */ - /* - * STATE final state - * ...argument 0 is state code - */ - status = jbi_goto_jtag_state((int) args[0]); - break; - - case 0x49: /* ISTP */ - /* - * IRSTOP state - * ...argument 0 is state code - */ - status = jbi_set_irstop_state((int) args[0]); - break; - - case 0x4A: /* DSTP */ - /* - * DRSTOP state - * ...argument 0 is state code - */ - status = jbi_set_drstop_state((int) args[0]); - break; - - case 0x4B: /* SWPN */ - /* - * Exchange top with Nth stack value - * ...argument 0 is 0-based stack entry to swap with top element - */ - index = ((int) args[0]) + 1; - IF_CHECK_STACK(index) - { - long_temp = stack[stack_ptr - index]; - stack[stack_ptr - index] = stack[stack_ptr - 1]; - stack[stack_ptr - 1] = long_temp; - } - break; - - case 0x4C: /* DUPN */ - /* - * Duplicate Nth stack value - * ...argument 0 is 0-based stack entry to duplicate - */ - index = ((int) args[0]) + 1; - IF_CHECK_STACK(index) - { - stack[stack_ptr] = stack[stack_ptr - index]; - ++stack_ptr; - } - break; - - case 0x4D: /* POPV */ - /* - * Pop stack into scalar variable - * ...argument 0 is variable ID - * ...stack 0 is value - */ - IF_CHECK_STACK(1) - { - variables[args[0]] = stack[--stack_ptr]; - } - break; - - case 0x4E: /* POPE */ - /* - * Pop stack into integer array element - * ...argument 0 is variable ID - * ...stack 0 is array index - * ...stack 1 is value - */ - IF_CHECK_STACK(2) - { - variable_id = (unsigned int) args[0]; - - /* - * If variable is read-only, convert to writable array - */ - if ((version > 0) && - ((attributes[variable_id] & 0x9c) == 0x1c)) - { - /* - * Allocate a writable buffer for this array - */ - count = (unsigned int) variable_size[variable_id]; - long_temp = variables[variable_id]; - longptr_temp = (long *) jbi_malloc(count * sizeof(long)); - variables[variable_id] = (addr_t) longptr_temp; - - if (variables[variable_id] == (addr_t) NULL) - { - status = JBIC_OUT_OF_MEMORY; - break; - } - else - { - /* copy previous contents into buffer */ - for (i = 0; i < count; ++i) - { - longptr_temp[i] = GET_DWORD(long_temp); - long_temp += 4L; - } - - /* set bit 7 - buffer was dynamically allocated */ - attributes[variable_id] |= 0x80; - - /* clear bit 2 - variable is writable */ - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } - } - -#if PORT==DOS - /* for 16-bit version, allow writing in allocated buffers */ - if ((version > 0) && - ((attributes[variable_id] & 0x9c) == 0x9c)) - { - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } -#endif - - /* check that variable is a writable integer array */ - if ((attributes[variable_id] & 0x1c) != 0x18) - { - status = JBIC_BOUNDS_ERROR; - } - else - { - longptr_temp = (long *) variables[variable_id]; - - /* pop the array index */ - index = (unsigned int) stack[--stack_ptr]; - - /* pop the value and store it into the array */ - longptr_temp[index] = stack[--stack_ptr]; - } - } - break; - - case 0x4F: /* POPA */ - /* - * Pop stack into Boolean array - * ...argument 0 is variable ID - * ...stack 0 is count - * ...stack 1 is array index - * ...stack 2 is value - */ - IF_CHECK_STACK(3) - { - variable_id = (unsigned int) args[0]; - - /* - * If variable is read-only, convert to writable array - */ - if ((version > 0) && - ((attributes[variable_id] & 0x9c) == 0x0c)) - { - /* - * Allocate a writable buffer for this array - */ - long_temp = (variable_size[variable_id] + 7L) >> 3L; - charptr_temp2 = (unsigned char *) variables[variable_id]; - charptr_temp = jbi_malloc((unsigned int) long_temp); - variables[variable_id] = (addr_t) charptr_temp; - - if (variables[variable_id] == (addr_t) NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - /* zero the buffer */ - for (long_index = 0L; - long_index < long_temp; - ++long_index) - { - charptr_temp[long_index] = 0; - } - - /* copy previous contents into buffer */ - for (long_index = 0L; - long_index < variable_size[variable_id]; - ++long_index) - { -#if PORT==DOS - if ((attributes[variable_id] & 0x02) && - ((long_index & 0x0000FFFF) == 0L)) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (long_index >> 16), version); - charptr_temp = jbi_aca_out_buffer; - long_index2 = long_index & 0xFFFF; - } -#else - long_index2 = long_index; -#endif - - if (charptr_temp2[long_index2 >> 3] & - (1 << (long_index2 & 7))) - { - charptr_temp[long_index >> 3] |= - (1 << (long_index & 7)); - } - } - - /* set bit 7 - buffer was dynamically allocated */ - attributes[variable_id] |= 0x80; - - /* clear bit 2 - variable is writable */ - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } - } - -#if PORT==DOS - /* for 16-bit version, allow writing in allocated buffers */ - if ((version > 0) && - ((attributes[variable_id] & 0x9c) == 0x8c)) - { - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } -#endif - - /* check that variable is a writable Boolean array */ - if ((attributes[variable_id] & 0x1c) != 0x08) - { - status = JBIC_BOUNDS_ERROR; - } - else - { - charptr_temp = (unsigned char *) variables[variable_id]; - - /* pop the count (number of bits to copy) */ - long_count = stack[--stack_ptr]; - - /* pop the array index */ - long_index = stack[--stack_ptr]; - - reverse = 0; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - - if (long_index > long_count) - { - reverse = 1; - long_temp = long_count; - long_count = 1 + long_index - long_count; - long_index = long_temp; - - /* reverse POPA is not supported */ - status = JBIC_BOUNDS_ERROR; - break; - } - else - { - long_count = 1 + long_count - long_index; - } - } - - /* pop the data */ - long_temp = stack[--stack_ptr]; - - if (long_count < 1) - { - status = JBIC_BOUNDS_ERROR; - } - else - { - for (i = 0; i < (unsigned int) long_count; ++i) - { - if (long_temp & (1L << (long) i)) - { - charptr_temp[long_index >> 3L] |= - (1L << (long_index & 7L)); - } - else - { - charptr_temp[long_index >> 3L] &= - ~ (unsigned int) (1L << (long_index & 7L)); - } - ++long_index; - } - } - } - } - break; - - case 0x50: /* JMPZ */ - /* - * Pop stack and branch if zero - * ...argument 0 is address - * ...stack 0 is condition value - */ - IF_CHECK_STACK(1) - { - if (stack[--stack_ptr] == 0) - { - pc = args[0] + code_section; - CHECK_PC; - } - } - break; - - case 0x51: /* DS */ - case 0x52: /* IS */ - /* - * DRSCAN - * IRSCAN - * ...argument 0 is scan data variable ID - * ...stack 0 is array index - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - long_index = stack[--stack_ptr]; - long_count = stack[--stack_ptr]; - - reverse = 0; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - /* stack 2 = count */ - long_temp = long_count; - long_count = stack[--stack_ptr]; - - if (long_index > long_temp) - { - reverse = 1; - long_index = long_temp; - } - } - -#if PORT==DOS - if (((long_index & 0xFFFF0000) == 0) && - ((long_count & 0xFFFF0000) == 0)) - { - variable_id = (unsigned int) args[0]; - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (long_index >> 16), version); - long_index &= 0x0000ffff; - charptr_temp = jbi_aca_out_buffer; - } - else - { - charptr_temp = (unsigned char *) variables[variable_id]; - } - - if (reverse) - { - /* allocate a buffer and reverse the data order */ - charptr_temp2 = charptr_temp; - charptr_temp = jbi_malloc((unsigned int) - ((long_count >> 3L) + 1L)); - - if (charptr_temp == NULL) - { - status = JBIC_OUT_OF_MEMORY; - break; - } - else - { - long_temp = long_index + long_count - 1; - long_index2 = 0; - while (long_index2 < long_count) - { - if (charptr_temp2[long_temp >> 3] & - (1 << (long_temp & 7))) - { - charptr_temp[long_index2 >> 3] |= - (1 << (long_index2 & 7)); - } - else - { - charptr_temp[long_index2 >> 3] &= - ~(1 << (long_index2 & 7)); - } - - --long_temp; - ++long_index2; - } - } - } - - if (opcode == 0x51) /* DS */ - { - status = jbi_do_drscan((unsigned int) long_count, - charptr_temp, (unsigned long) long_index); - } - else /* IS */ - { - status = jbi_do_irscan((unsigned int) long_count, - charptr_temp, (unsigned int) long_index); - } - - if (reverse) jbi_free(charptr_temp); - } - else if ((opcode == 0x51) && !reverse) - { - status = jbi_do_drscan_multi_page( - (unsigned int) args[0], - (unsigned long) long_count, - (unsigned long) long_index, version); - } - else - { - /* reverse multi-page scans are not supported */ - /* multi-page IR scans are not supported */ - status = JBIC_BOUNDS_ERROR; - } -#else - charptr_temp = (unsigned char *) variables[args[0]]; - - if (reverse) - { - /* allocate a buffer and reverse the data order */ - charptr_temp2 = charptr_temp; - charptr_temp = jbi_malloc((long_count >> 3) + 1); - if (charptr_temp == NULL) - { - status = JBIC_OUT_OF_MEMORY; - break; - } - else - { - long_temp = long_index + long_count - 1; - long_index2 = 0; - while (long_index2 < long_count) - { - if (charptr_temp2[long_temp >> 3] & - (1 << (long_temp & 7))) - { - charptr_temp[long_index2 >> 3] |= - (1 << (long_index2 & 7)); - } - else - { - charptr_temp[long_index2 >> 3] &= - ~(1 << (long_index2 & 7)); - } - - --long_temp; - ++long_index2; - } - } - } - - if (opcode == 0x51) /* DS */ - { - status = jbi_do_drscan((unsigned int) long_count, - charptr_temp, (unsigned long) long_index); - } - else /* IS */ - { - status = jbi_do_irscan((unsigned int) long_count, - charptr_temp, (unsigned int) long_index); - } -#endif - - if (reverse && (charptr_temp != NULL)) - { - jbi_free(charptr_temp); - } - } - break; - - case 0x53: /* DPRA */ - /* - * DRPRE with array data - * ...argument 0 is variable ID - * ...stack 0 is array index - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - index = (unsigned int) stack[--stack_ptr]; - count = (unsigned int) stack[--stack_ptr]; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - count = 1 + count - index; - } - - charptr_temp = (unsigned char *) variables[args[0]]; - status = jbi_set_dr_preamble(count, index, charptr_temp); - } - break; - - case 0x54: /* DPOA */ - /* - * DRPOST with array data - * ...argument 0 is variable ID - * ...stack 0 is array index - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - index = (unsigned int) stack[--stack_ptr]; - count = (unsigned int) stack[--stack_ptr]; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - count = 1 + count - index; - } - - charptr_temp = (unsigned char *) variables[args[0]]; - status = jbi_set_dr_postamble(count, index, charptr_temp); - } - break; - - case 0x55: /* IPRA */ - /* - * IRPRE with array data - * ...argument 0 is variable ID - * ...stack 0 is array index - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - index = (unsigned int) stack[--stack_ptr]; - count = (unsigned int) stack[--stack_ptr]; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - count = 1 + count - index; - } - - charptr_temp = (unsigned char *) variables[args[0]]; - status = jbi_set_ir_preamble(count, index, charptr_temp); - } - break; - - case 0x56: /* IPOA */ - /* - * IRPOST with array data - * ...argument 0 is variable ID - * ...stack 0 is array index - * ...stack 1 is count - */ - IF_CHECK_STACK(2) - { - index = (unsigned int) stack[--stack_ptr]; - count = (unsigned int) stack[--stack_ptr]; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - count = 1 + count - index; - } - - charptr_temp = (unsigned char *) variables[args[0]]; - status = jbi_set_ir_postamble(count, index, charptr_temp); - } - break; - - case 0x57: /* EXPT */ - /* - * EXPORT - * ...argument 0 is string ID - * ...stack 0 is integer expression - */ - IF_CHECK_STACK(1) - { -#if PORT==DOS - name_id = args[0]; - for (j = 0; j < 32; ++j) - { - name[j] = GET_BYTE(string_table + name_id + j); - } - name[32] = '\0'; -#else - name = (char *) &program[string_table + args[0]]; -#endif - long_temp = stack[--stack_ptr]; - jbi_export_integer(name, long_temp); - } - break; - - case 0x58: /* PSHE */ - /* - * Push integer array element - * ...argument 0 is variable ID - * ...stack 0 is array index - */ - IF_CHECK_STACK(1) - { - variable_id = (unsigned int) args[0]; - index = (unsigned int) stack[stack_ptr - 1]; - - /* check variable type */ - if ((attributes[variable_id] & 0x1f) == 0x19) - { - /* writable integer array */ - longptr_temp = (long *) variables[variable_id]; - stack[stack_ptr - 1] = longptr_temp[index]; - } - else if ((attributes[variable_id] & 0x1f) == 0x1c) - { - /* read-only integer array */ - long_temp = variables[variable_id] + (4L * index); - stack[stack_ptr - 1] = GET_DWORD(long_temp); - } - else - { - status = JBIC_BOUNDS_ERROR; - } - } - break; - - case 0x59: /* PSHA */ - /* - * Push Boolean array - * ...argument 0 is variable ID - * ...stack 0 is count - * ...stack 1 is array index - */ - IF_CHECK_STACK(2) - { - variable_id = (unsigned int) args[0]; - - /* check that variable is a Boolean array */ - if ((attributes[variable_id] & 0x18) != 0x08) - { - status = JBIC_BOUNDS_ERROR; - } - else - { - charptr_temp = (unsigned char *) variables[variable_id]; - - /* pop the count (number of bits to copy) */ - count = (unsigned int) stack[--stack_ptr]; - - /* pop the array index */ - index = (unsigned int) stack[stack_ptr - 1]; - - if (version > 0) - { - /* stack 0 = array right index */ - /* stack 1 = array left index */ - count = 1 + count - index; - } - - if ((count < 1) || (count > 32)) - { - status = JBIC_BOUNDS_ERROR; - } - else - { -#if PORT==DOS - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (stack[stack_ptr - 1] >> 16), version); - charptr_temp = jbi_aca_out_buffer; - } -#endif - long_temp = 0L; - - for (i = 0; i < count; ++i) - { - if (charptr_temp[(i + index) >> 3] & - (1 << ((i + index) & 7))) - { - long_temp |= (1L << i); - } - } - - stack[stack_ptr - 1] = long_temp; - } - } - } - break; - - case 0x5A: /* DYNA */ - /* - * Dynamically change size of array - * ...argument 0 is variable ID - * ...stack 0 is new size - */ - IF_CHECK_STACK(1) - { - variable_id = (unsigned int) args[0]; - long_temp = stack[--stack_ptr]; - - if (long_temp > variable_size[variable_id]) - { - variable_size[variable_id] = long_temp; - - if (attributes[variable_id] & 0x10) - { - /* allocate integer array */ - long_temp *= 4; - } - else - { - /* allocate Boolean array */ - long_temp = (long_temp + 7) >> 3; - } - - /* - * If the buffer was previously allocated, free it - */ - if ((attributes[variable_id] & 0x80) && - (variables[variable_id] != (addr_t) NULL)) - { - jbi_free((void *) variables[variable_id]); - variables[variable_id] = (addr_t) NULL; - } - - /* - * Allocate a new buffer of the requested size - */ - variables[variable_id] = (addr_t) - jbi_malloc((unsigned int) long_temp); - - if (variables[variable_id] == (addr_t) NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - /* - * Set the attribute bit to indicate that this buffer - * was dynamically allocated and should be freed later - */ - attributes[variable_id] |= 0x80; - - /* zero out memory */ - count = (unsigned int) - ((variable_size[variable_id] + 7L) / 8L); - charptr_temp = (unsigned char *) - (variables[variable_id]); - for (index = 0; index < count; ++index) - { - charptr_temp[index] = 0; - } - } - } - } - break; - - case 0x5B: /* EXPR */ - bad_opcode = 1; - break; - - case 0x5C: /* EXPV */ - /* - * Export Boolean array - * ...argument 0 is string ID - * ...stack 0 is variable ID - * ...stack 1 is array right index - * ...stack 2 is array left index - */ - IF_CHECK_STACK(3) - { - if (version == 0) - { - /* EXPV is not supported in JBC 1.0 */ - bad_opcode = 1; - break; - } -#if PORT==DOS - name_id = args[0]; - for (j = 0; j < 32; ++j) - { - name[j] = GET_BYTE(string_table + name_id + j); - } - name[32] = '\0'; -#else - name = (char *) &program[string_table + args[0]]; -#endif - variable_id = (unsigned int) stack[--stack_ptr]; - long_index = stack[--stack_ptr]; /* right index */ - long_index2 = stack[--stack_ptr]; /* left index */ - - if (long_index > long_index2) - { - /* reverse indices not supported */ - status = JBIC_BOUNDS_ERROR; - break; - } - - long_count = 1 + long_index2 - long_index; - - charptr_temp = (unsigned char *) variables[variable_id]; - charptr_temp2 = NULL; - -#if PORT==DOS - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (long_index >> 16), version); - charptr_temp = jbi_aca_out_buffer; - long_index &= 0x0000FFFF; - } -#endif - - if ((long_index & 7L) != 0) - { - charptr_temp2 = jbi_malloc((unsigned int) - ((long_count + 7L) / 8L)); - if (charptr_temp2 == NULL) - { - status = JBIC_OUT_OF_MEMORY; - break; - } - else - { - long k = long_index; - for (i = 0; i < (unsigned int) long_count; ++i) - { - if (charptr_temp[k >> 3] & (1 << (k & 7))) - { - charptr_temp2[i >> 3] |= (1 << (i & 7)); - } - else - { - charptr_temp2[i >> 3] &= ~(1 << (i & 7)); - } - - ++k; - } - charptr_temp = charptr_temp2; - } - } - else if (long_index != 0) - { - charptr_temp = &charptr_temp[long_index >> 3]; - } - - jbi_export_boolean_array(name, charptr_temp, long_count); - - /* free allocated buffer */ - if (((long_index & 7L) != 0) && (charptr_temp2 != NULL)) - { - jbi_free(charptr_temp2); - } - } - break; - - case 0x80: /* COPY */ - /* - * Array copy - * ...argument 0 is dest ID - * ...argument 1 is source ID - * ...stack 0 is count - * ...stack 1 is dest index - * ...stack 2 is source index - */ - IF_CHECK_STACK(3) - { - long copy_count = stack[--stack_ptr]; - long copy_index = stack[--stack_ptr]; - long copy_index2 = stack[--stack_ptr]; - long destleft; - long src_count; - long dest_count; - int src_reverse = 0; - int dest_reverse = 0; - - reverse = 0; - - if (version > 0) - { - /* stack 0 = source right index */ - /* stack 1 = source left index */ - /* stack 2 = destination right index */ - /* stack 3 = destination left index */ - destleft = stack[--stack_ptr]; - - if (copy_count > copy_index) - { - src_reverse = 1; - reverse = 1; - src_count = 1 + copy_count - copy_index; - /* copy_index = source start index */ - } - else - { - src_count = 1 + copy_index - copy_count; - copy_index = copy_count; /* source start index */ - } - - if (copy_index2 > destleft) - { - dest_reverse = 1; - reverse = !reverse; - dest_count = 1 + copy_index2 - destleft; - copy_index2 = destleft; /* destination start index */ - } - else - { - dest_count = 1 + destleft - copy_index2; - /* copy_index2 = destination start index */ - } - - copy_count = (src_count < dest_count) ? src_count : dest_count; - - if ((src_reverse || dest_reverse) && - (src_count != dest_count)) - { - /* If either the source or destination is reversed, */ - /* we can't tolerate a length mismatch, because we */ - /* "left justify" the arrays when copying. This */ - /* won't work correctly with reversed arrays. */ - status = JBIC_BOUNDS_ERROR; - } - } - - count = (unsigned int) copy_count; - index = (unsigned int) copy_index; - index2 = (unsigned int) copy_index2; - - /* - * If destination is a read-only array, allocate a buffer - * and convert it to a writable array - */ - variable_id = (unsigned int) args[1]; - if ((version > 0) && ((attributes[variable_id] & 0x9c) == 0x0c)) - { - /* - * Allocate a writable buffer for this array - */ - long_temp = (variable_size[variable_id] + 7L) >> 3L; - charptr_temp2 = (unsigned char *) variables[variable_id]; - charptr_temp = jbi_malloc((unsigned int) long_temp); - variables[variable_id] = (addr_t) charptr_temp; - - if (variables[variable_id] == (addr_t) NULL) - { - status = JBIC_OUT_OF_MEMORY; - break; - } - else - { - /* zero the buffer */ - for (long_index = 0L; - long_index < long_temp; - ++long_index) - { - charptr_temp[long_index] = 0; - } - - /* copy previous contents into buffer */ - for (long_index = 0L; - long_index < variable_size[variable_id]; - ++long_index) - { -#if PORT==DOS - if ((attributes[variable_id] & 0x02) && - ((long_index & 0x0000FFFF) == 0L)) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (long_index >> 16), version); - charptr_temp = jbi_aca_out_buffer; - long_index2 = long_index & 0xFFFF; - } -#else - long_index2 = long_index; -#endif - - if (charptr_temp2[long_index2 >> 3] & - (1 << (long_index2 & 7))) - { - charptr_temp[long_index >> 3] |= - (1 << (long_index & 7)); - } - } - - /* set bit 7 - buffer was dynamically allocated */ - attributes[variable_id] |= 0x80; - - /* clear bit 2 - variable is writable */ - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } - } - -#if PORT==DOS - /* for 16-bit version, allow writing in allocated buffers */ - if ((version > 0) && - ((attributes[variable_id] & 0x9c) == 0x8c)) - { - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } -#endif - - charptr_temp = (unsigned char *) variables[args[1]]; - charptr_temp2 = (unsigned char *) variables[args[0]]; - -#if PORT==DOS - variable_id = (unsigned int) args[0]; - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (copy_index >> 16), version); - charptr_temp2 = jbi_aca_out_buffer; - } -#endif - - /* check that destination is a writable Boolean array */ - if ((attributes[args[1]] & 0x1c) != 0x08) - { - status = JBIC_BOUNDS_ERROR; - break; - } - - if (count < 1) - { - status = JBIC_BOUNDS_ERROR; - } - else - { - if (reverse) - { - index2 += (count - 1); - } - - for (i = 0; i < count; ++i) - { - if (charptr_temp2[index >> 3] & (1 << (index & 7))) - { - charptr_temp[index2 >> 3] |= (1 << (index2 & 7)); - } - else - { - charptr_temp[index2 >> 3] &= - ~(unsigned int) (1 << (index2 & 7)); - } - ++index; - if (reverse) --index2; else ++index2; - } - } - } - break; - - case 0x81: /* REVA */ - /* - * ARRAY COPY reversing bit order - * ...argument 0 is dest ID - * ...argument 1 is source ID - * ...stack 0 is dest index - * ...stack 1 is source index - * ...stack 2 is count - */ - bad_opcode = 1; - break; - - case 0x82: /* DSC */ - case 0x83: /* ISC */ - /* - * DRSCAN with capture - * IRSCAN with capture - * ...argument 0 is scan data variable ID - * ...argument 1 is capture variable ID - * ...stack 0 is capture index - * ...stack 1 is scan data index - * ...stack 2 is count - */ - IF_CHECK_STACK(3) - { - long scan_right, scan_left; - long capture_count = 0; - long scan_count = 0; - long capture_index = stack[--stack_ptr]; - long scan_index = stack[--stack_ptr]; - if (version > 0) - { - /* stack 0 = capture right index */ - /* stack 1 = capture left index */ - /* stack 2 = scan right index */ - /* stack 3 = scan left index */ - /* stack 4 = count */ - scan_right = stack[--stack_ptr]; - scan_left = stack[--stack_ptr]; - capture_count = 1 + scan_index - capture_index; - scan_count = 1 + scan_left - scan_right; - scan_index = scan_right; - } - long_count = stack[--stack_ptr]; - - /* - * If capture array is read-only, allocate a buffer - * and convert it to a writable array - */ - variable_id = (unsigned int) args[1]; - if ((version > 0) && ((attributes[variable_id] & 0x9c) == 0x0c)) - { - /* - * Allocate a writable buffer for this array - */ - long_temp = (variable_size[variable_id] + 7L) >> 3L; - charptr_temp2 = (unsigned char *) variables[variable_id]; - charptr_temp = jbi_malloc((unsigned int) long_temp); - variables[variable_id] = (addr_t) charptr_temp; - - if (variables[variable_id] == (addr_t) NULL) - { - status = JBIC_OUT_OF_MEMORY; - break; - } - else - { - /* zero the buffer */ - for (long_index = 0L; - long_index < long_temp; - ++long_index) - { - charptr_temp[long_index] = 0; - } - - /* copy previous contents into buffer */ - for (long_index = 0L; - long_index < variable_size[variable_id]; - ++long_index) - { -#if PORT==DOS - if ((attributes[variable_id] & 0x02) && - ((long_index & 0x0000FFFF) == 0L)) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (long_index >> 16), version); - charptr_temp = jbi_aca_out_buffer; - long_index2 = long_index & 0xFFFF; - } -#else - long_index2 = long_index; -#endif - - if (charptr_temp2[long_index2 >> 3] & - (1 << (long_index2 & 7))) - { - charptr_temp[long_index >> 3] |= - (1 << (long_index & 7)); - } - } - - /* set bit 7 - buffer was dynamically allocated */ - attributes[variable_id] |= 0x80; - - /* clear bit 2 - variable is writable */ - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } - } - -#if PORT==DOS - /* for 16-bit version, allow writing in allocated buffers */ - if ((version > 0) && - ((attributes[variable_id] & 0x9c) == 0x8c)) - { - attributes[variable_id] &= ~0x04; - attributes[variable_id] |= 0x01; - } -#endif - - charptr_temp = (unsigned char *) variables[args[0]]; - charptr_temp2 = (unsigned char *) variables[args[1]]; - -#if PORT==DOS - variable_id = (unsigned int) args[0]; - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - /* initialized compressed Boolean array */ - jbi_uncompress_page(variable_id, - (int) (scan_index >> 16), version); - scan_index &= 0x0000ffff; - charptr_temp = jbi_aca_out_buffer; - } -#endif - - if ((version > 0) && - ((long_count > capture_count) || (long_count > scan_count))) - { - status = JBIC_BOUNDS_ERROR; - } - - /* check that capture array is a writable Boolean array */ - if ((attributes[args[1]] & 0x1c) != 0x08) - { - status = JBIC_BOUNDS_ERROR; - } - - if (status == JBIC_SUCCESS) - { - if (opcode == 0x82) /* DSC */ - { - status = jbi_swap_dr((unsigned int) long_count, - charptr_temp, (unsigned long) scan_index, - charptr_temp2, (unsigned int) capture_index); - } - else /* ISC */ - { - status = jbi_swap_ir((unsigned int) long_count, - charptr_temp, (unsigned int) scan_index, - charptr_temp2, (unsigned int) capture_index); - } - } - } - break; - - case 0x84: /* WAIT */ - /* - * WAIT - * ...argument 0 is wait state - * ...argument 1 is end state - * ...stack 0 is cycles - * ...stack 1 is microseconds - */ - IF_CHECK_STACK(2) - { - long_temp = stack[--stack_ptr]; - - if (long_temp != 0L) - { - status = jbi_do_wait_cycles(long_temp, (unsigned int) args[0]); - } - - long_temp = stack[--stack_ptr]; - - if ((status == JBIC_SUCCESS) && (long_temp != 0L)) - { - status = jbi_do_wait_microseconds(long_temp, (unsigned int) args[0]); - } - - if ((status == JBIC_SUCCESS) && (args[1] != args[0])) - { - status = jbi_goto_jtag_state((unsigned int) args[1]); - } - - if (version > 0) - { - --stack_ptr; /* throw away MAX cycles */ - --stack_ptr; /* throw away MAX microseconds */ - } - } - break; - - case 0x85: /* VS */ - /* - * VECTOR - * ...argument 0 is dir data variable ID - * ...argument 1 is scan data variable ID - * ...stack 0 is dir array index - * ...stack 1 is scan array index - * ...stack 2 is count - */ - bad_opcode = 1; - break; - - case 0xC0: /* CMPA */ - /* - * Array compare - * ...argument 0 is source 1 ID - * ...argument 1 is source 2 ID - * ...argument 2 is mask ID - * ...stack 0 is source 1 index - * ...stack 1 is source 2 index - * ...stack 2 is mask index - * ...stack 3 is count - */ - IF_CHECK_STACK(4) - { - long a, b; - unsigned char *source1 = (unsigned char *) variables[args[0]]; - unsigned char *source2 = (unsigned char *) variables[args[1]]; - unsigned char *mask = (unsigned char *) variables[args[2]]; - unsigned long index1 = stack[--stack_ptr]; - unsigned long index2 = stack[--stack_ptr]; - unsigned long mask_index = stack[--stack_ptr]; - long_count = stack[--stack_ptr]; - - if (version > 0) - { - /* stack 0 = source 1 right index */ - /* stack 1 = source 1 left index */ - /* stack 2 = source 2 right index */ - /* stack 3 = source 2 left index */ - /* stack 4 = mask right index */ - /* stack 5 = mask left index */ - long mask_right = stack[--stack_ptr]; - long mask_left = stack[--stack_ptr]; - a = 1 + index2 - index1; /* source 1 count */ - b = 1 + long_count - mask_index; /* source 2 count */ - a = (a < b) ? a : b; - b = 1 + mask_left - mask_right; /* mask count */ - a = (a < b) ? a : b; - index2 = mask_index; /* source 2 start index */ - mask_index = mask_right; /* mask start index */ - long_count = a; - } - - long_temp = 1L; - - if (long_count < 1) - { - status = JBIC_BOUNDS_ERROR; - } - else - { -#if PORT==DOS - variable_id = (unsigned int) args[0]; - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - jbi_uncompress_page(variable_id, - (int) (index1 >> 16), version); - index1 &= 0x0000ffff; - source1 = jbi_aca_out_buffer; - } - - variable_id = (unsigned int) args[1]; - if ((attributes[variable_id] & 0x1e) == 0x0e) - { - jbi_uncompress_page(variable_id, - (int) (index2 >> 16), version); - index2 &= 0x0000ffff; - source2 = jbi_aca_out_buffer; - } -#endif - count = (unsigned int) long_count; - - for (i = 0; i < count; ++i) - { - if (mask[mask_index >> 3] & (1 << (mask_index & 7))) - { - a = source1[index1 >> 3] & (1 << (index1 & 7)) - ? 1 : 0; - b = source2[index2 >> 3] & (1 << (index2 & 7)) - ? 1 : 0; - - if (a != b) long_temp = 0L; /* failure */ - } - ++index1; - ++index2; - ++mask_index; - } - } - - stack[stack_ptr++] = long_temp; - } - break; - - case 0xC1: /* VSC */ - /* - * VECTOR with capture - * ...argument 0 is dir data variable ID - * ...argument 1 is scan data variable ID - * ...argument 2 is capture variable ID - * ...stack 0 is capture index - * ...stack 1 is scan data index - * ...stack 2 is dir data index - * ...stack 3 is count - */ - bad_opcode = 1; - break; - - default: - /* - * Unrecognized opcode -- ERROR! - */ - bad_opcode = 1; - break; - } - - if (bad_opcode) - { - status = JBIC_ILLEGAL_OPCODE; - } - - if ((stack_ptr < 0) || (stack_ptr >= JBI_STACK_SIZE)) - { - status = JBIC_STACK_OVERFLOW; - } - - if (status != JBIC_SUCCESS) - { - done = 1; - *error_address = (long) (opcode_address - code_section); - } - } - jbi_dbg(DEBUG_DETAIL, "debug_cnt(total): 0x%lx\n", debug_cnt); - - jbi_dbg(DEBUG_NOISY, "jbi_free_jtag_padding_buffers\n"); - jbi_free_jtag_padding_buffers(reset_jtag); - - /* - * Free all dynamically allocated arrays - */ - jbi_dbg(DEBUG_NOISY, "jbi_free_attributes\n"); - if ((attributes != NULL) && (variables != NULL)) - { - for (i = 0; i < (unsigned int) symbol_count; ++i) - { - if ((attributes[i] & 0x80) && (variables[i] != (addr_t) NULL) - && (variables[i] != (addr_t) 1)) - { - jbi_free((void *) variables[i]); - } - } - } - - if (variables != NULL) jbi_free(variables); - - if (variable_size != NULL) jbi_free(variable_size); - - if (attributes != NULL) jbi_free(attributes); - - if (proc_attributes != NULL) jbi_free(proc_attributes); - - jbi_dbg(DEBUG_NOISY, "return status %d\n", status); - kfree(message_buffer); - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_get_note -( - PROGRAM_PTR program, - long program_size, - long *offset, - char *key, - char *value, - int length -) - -/* */ -/* Description: Gets key and value of NOTE fields in the JBC file. */ -/* Can be called in two modes: if offset pointer is NULL, */ -/* then the function searches for note fields which match */ -/* the key string provided. If offset is not NULL, then */ -/* the function finds the next note field of any key, */ -/* starting at the offset specified by the offset pointer. */ -/* */ -/* Returns: JBIC_SUCCESS for success, else appropriate error code */ -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_UNEXPECTED_END; - unsigned long note_strings = 0L; - unsigned long note_table = 0L; - unsigned long note_count = 0L; - unsigned long first_word = 0L; - int version = 0; - int delta = 0; - char *key_ptr; - char *value_ptr; - int i; - -#if PORT==DOS - int count = 0; - int done = 0; - long long_index = 0; - char key_buffer[256]; - char value_buffer[256]; - - jbi_program = program; -#endif - - /* - * Read header information - */ - if (program_size > 52L) - { - first_word = GET_DWORD(0); - version = (int) (first_word & 1L); - delta = version * 8; - - note_strings = GET_DWORD(8 + delta); - note_table = GET_DWORD(12 + delta); - note_count = GET_DWORD(44 + (2 * delta)); - } - - if ((first_word != 0x4A414D00L) && (first_word != 0x4A414D01L)) - { - status = JBIC_IO_ERROR; - } - else if (note_count > 0L) - { - if (offset == NULL) - { - /* - * We will search for the first note with a specific key, and - * return only the value - */ - for (i = 0; (i < (int) note_count) && (status != JBIC_SUCCESS); ++i) - { -#if PORT==DOS - done = 0; - count = 0; - long_index = note_strings + GET_DWORD(note_table + (8 * i)); - while ((count < 255) && !done) - { - key_buffer[count] = GET_BYTE(long_index); - if (key_buffer[count] == '\0') done = 1; - ++long_index; - ++count; - } - key_buffer[255] = '\0'; - key_ptr = key_buffer; -#else - key_ptr = (char *) &program[note_strings + - GET_DWORD(note_table + (8 * i))]; -#endif - if ((key != NULL) && (jbi_stricmp(key, key_ptr) == 0)) - { - status = JBIC_SUCCESS; - -#if PORT==DOS - done = 0; - count = 0; - long_index = note_strings + GET_DWORD(note_table + (8 * i) + 4); - while ((count < 255) && !done) - { - value_buffer[count] = GET_BYTE(long_index); - if (value_buffer[count] == '\0') done = 1; - ++long_index; - ++count; - } - value_buffer[255] = '\0'; - value_ptr = value_buffer; -#else - value_ptr = (char *) &program[note_strings + - GET_DWORD(note_table + (8 * i) + 4)]; -#endif - - if (value != NULL) - { - jbi_strncpy(value, value_ptr, length); - } - } - } - } - else - { - /* - * We will search for the next note, regardless of the key, and - * return both the value and the key - */ - - i = (int) *offset; - - if ((i >= 0) && (i < (int) note_count)) - { - status = JBIC_SUCCESS; - - if (key != NULL) - { -#if PORT==DOS - done = 0; - count = 0; - long_index = note_strings + - GET_DWORD(note_table + (8 * i)); - - while ((count < length) && !done) - { - key[count] = GET_BYTE(long_index); - if (key[count] == '\0') done = 1; - ++long_index; - ++count; - } -#else - jbi_strncpy(key, (char *) &program[note_strings + - GET_DWORD(note_table + (8 * i))], length); -#endif - } - - if (value != NULL) - { -#if PORT==DOS - done = 0; - count = 0; - long_index = note_strings + - GET_DWORD(note_table + (8 * i) + 4); - - while ((count < length) && !done) - { - value[count] = GET_BYTE(long_index); - if (value[count] == '\0') done = 1; - ++long_index; - ++count; - } -#else - jbi_strncpy(value, (char *) &program[note_strings + - GET_DWORD(note_table + (8 * i) + 4)], length); -#endif - } - - *offset = i + 1; - } - } - } - - return (status); -} - -/****************************************************************************/ -/* */ - -JBI_RETURN_TYPE jbi_check_crc -( - PROGRAM_PTR program, - long program_size, - unsigned short *expected_crc, - unsigned short *actual_crc -) - -/* */ -/* Description: This function reads the entire input file and computes */ -/* the CRC of everything up to the CRC field. */ -/* */ -/* Returns: JBIC_SUCCESS for success, JBIC_CRC_ERROR for failure */ -/* */ -/****************************************************************************/ -{ - JBI_RETURN_TYPE status = JBIC_SUCCESS; - unsigned short local_expected, local_actual, shift_reg = 0xffff; - int bit, feedback; - unsigned char databyte; - unsigned long i; - unsigned long crc_section = 0L; - unsigned long first_word = 0L; - int version = 0; - int delta = 0; - -#if PORT==DOS - jbi_program = program; -#endif - - if (program_size > 52L) - { - first_word = GET_DWORD(0); - version = (int) (first_word & 1L); - delta = version * 8; - - crc_section = GET_DWORD(32 + delta); - } - - if ((first_word != 0x4A414D00L) && (first_word != 0x4A414D01L)) - { - status = JBIC_IO_ERROR; - } - - if (crc_section >= (unsigned long) program_size) - { - status = JBIC_IO_ERROR; - } - - if (status == JBIC_SUCCESS) - { - local_expected = (unsigned short) GET_WORD(crc_section); - if (expected_crc != NULL) *expected_crc = local_expected; - - for (i = 0; i < crc_section; ++i) - { - databyte = GET_BYTE(i); - for (bit = 0; bit < 8; bit++) /* compute for each bit */ - { - feedback = (databyte ^ shift_reg) & 0x01; - shift_reg >>= 1; /* shift the shift register */ - if (feedback) shift_reg ^= 0x8408; /* invert selected bits */ - databyte >>= 1; /* get the next bit of input_byte */ - } - } - - local_actual = (unsigned short) ~shift_reg; - if (actual_crc != NULL) *actual_crc = local_actual; - - if (local_expected != local_actual) - { - status = JBIC_CRC_ERROR; - } - } - - return (status); -} - -JBI_RETURN_TYPE jbi_get_file_info -( - PROGRAM_PTR program, - long program_size, - int *format_version, - int *action_count, - int *procedure_count -) -{ - JBI_RETURN_TYPE status = JBIC_IO_ERROR; - unsigned long first_word = 0; - int version = 0; - -#if PORT==DOS - jbi_program = program; -#endif - - /* - * Read header information - */ - if (program_size > 52L) - { - first_word = GET_DWORD(0); - - if ((first_word == 0x4A414D00L) || (first_word == 0x4A414D01L)) - { - status = JBIC_SUCCESS; - - version = (int) (first_word & 1L); - *format_version = version + 1; - - if (version > 0) - { - *action_count = (int) GET_DWORD(48); - *procedure_count = (int) GET_DWORD(52); - } - } - - } - - return (status); -} - -JBI_RETURN_TYPE jbi_get_action_info -( - PROGRAM_PTR program, - long program_size, - int index, - char **name, - char **description, - JBI_PROCINFO **procedure_list -) -{ - JBI_RETURN_TYPE status = JBIC_IO_ERROR; - JBI_PROCINFO *procptr = NULL; - JBI_PROCINFO *tmpptr = NULL; - unsigned long first_word = 0L; - unsigned long action_table = 0L; - unsigned long proc_table = 0L; - unsigned long string_table = 0L; - unsigned long note_strings = 0L; - unsigned long action_count = 0L; - unsigned long proc_count = 0L; - unsigned long act_name_id = 0L; - unsigned long act_desc_id = 0L; - unsigned long act_proc_id = 0L; - unsigned long act_proc_name = 0L; - unsigned char act_proc_attribute = 0; - -#if PORT==DOS - int i, length; - jbi_program = program; -#endif - - /* - * Read header information - */ - if (program_size > 52L) - { - first_word = GET_DWORD(0); - - if (first_word == 0x4A414D01L) - { - action_table = GET_DWORD(4); - proc_table = GET_DWORD(8); - string_table = GET_DWORD(12); - note_strings = GET_DWORD(16); - action_count = GET_DWORD(48); - proc_count = GET_DWORD(52); - - if (index < (int) action_count) - { - act_name_id = GET_DWORD(action_table + (12 * index)); - act_desc_id = GET_DWORD(action_table + (12 * index) + 4); - act_proc_id = GET_DWORD(action_table + (12 * index) + 8); - -#if PORT==DOS - length = 0; - while (GET_BYTE(string_table + act_name_id + length) != 0) ++length; - *name = jbi_malloc(length + 1); - if (*name == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - for (i = 0; i < length; ++i) - { - (*name)[i] = GET_BYTE(string_table + act_name_id + i); - } - (*name)[length] = '\0'; - } -#else - *name = (char *) &program[string_table + act_name_id]; -#endif - - if (act_desc_id < (note_strings - string_table)) - { -#if PORT==DOS - length = 0; - while (GET_BYTE(string_table + act_desc_id + length) != 0) ++length; - *description = jbi_malloc(length + 1); - if (*description == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - for (i = 0; i < length; ++i) - { - (*description)[i] = GET_BYTE(string_table + act_desc_id + i); - } - (*description)[length] = '\0'; - } -#else - *description = (char *) &program[string_table + act_desc_id]; -#endif - } - - do - { - act_proc_name = GET_DWORD(proc_table + (13 * act_proc_id)); - act_proc_attribute = (unsigned char) - (GET_BYTE(proc_table + (13 * act_proc_id) + 8) & 0x03); - - procptr = (JBI_PROCINFO *) jbi_malloc(sizeof(JBI_PROCINFO)); - - if (procptr == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { -#if PORT==DOS - length = 0; - while (GET_BYTE(string_table + act_proc_name + length) != 0) ++length; - procptr->name = jbi_malloc(length + 1); - if (procptr->name == NULL) - { - status = JBIC_OUT_OF_MEMORY; - } - else - { - for (i = 0; i < length; ++i) - { - procptr->name[i] = - GET_BYTE(string_table + act_proc_name + i); - } - procptr->name[length] = '\0'; - } -#else - procptr->name = (char *) - &program[string_table + act_proc_name]; -#endif - procptr->attributes = act_proc_attribute; - procptr->next = NULL; - - /* add record to end of linked list */ - if (*procedure_list == NULL) - { - *procedure_list = procptr; - } - else - { - tmpptr = *procedure_list; - while (tmpptr->next != NULL) tmpptr = tmpptr->next; - tmpptr->next = procptr; - } - } - - act_proc_id = - GET_DWORD(proc_table + (13 * act_proc_id) + 4); - } - while ((act_proc_id != 0) && (act_proc_id < proc_count)); - } - } - - } - - return (status); -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h deleted file mode 100644 index 28669dc81ff6..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbiport.h +++ /dev/null @@ -1,45 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbiport.h */ -/* */ -/* Copyright (C) Altera Corporation 2000-2001 */ -/* */ -/* Description: Defines porting macros */ -/* */ -/****************************************************************************/ - -#ifndef INC_JBIPORT_H -#define INC_JBIPORT_H - -/* -* PORT defines the target platform: DOS, WINDOWS, UNIX, or EMBEDDED -* -* PORT = DOS means a 16-bit DOS console-mode application -* -* PORT = WINDOWS means a 32-bit WIN32 console-mode application for -* Windows 95, 98, 2000, ME or NT. On NT this will use the -* DeviceIoControl() API to access the Parallel Port. -* -* PORT = UNIX means any UNIX system. BitBlaster access is support via -* the standard ANSI system calls open(), read(), write(). -* The ByteBlaster is not supported. -* -* PORT = EMBEDDED means all DOS, WINDOWS, and UNIX code is excluded. -* Remaining code supports 16 and 32-bit compilers. -* Additional porting steps may be necessary. See readme -* file for more details. -*/ - -#define DOS 2 -#define WINDOWS 3 -#define UNIX 4 -#define EMBEDDED 5 - -#define PORT EMBEDDED - -#ifndef PORT -/* change this line to build a different port */ -#define PORT WINDOWS -#endif - -#endif /* INC_JBIPORT_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c deleted file mode 100644 index 396c92caca2b..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.c +++ /dev/null @@ -1,2518 +0,0 @@ -/****************************************************************************/ -/* */ -/* Module: jbistub.c */ -/* */ -/* Copyright (C) Altera Corporation 1997-2001 */ -/* */ -/* Description: Jam STAPL ByteCode Player main source file */ -/* */ -/* Supports Altera ByteBlaster hardware download cable */ -/* on Windows 95 and Windows NT operating systems. */ -/* (A device driver is required for Windows NT.) */ -/* */ -/* Also supports BitBlaster hardware download cable on */ -/* Windows 95, Windows NT, and UNIX platforms. */ -/* */ -/* Revisions: 1.1 fixed control port initialization for ByteBlaster */ -/* 2.0 added support for STAPL bytecode format, added code */ -/* to get printer port address from Windows registry */ -/* 2.1 improved messages, fixed delay-calibration bug in */ -/* 16-bit DOS port, added support for "alternative */ -/* cable X", added option to control whether to reset */ -/* the TAP after execution, moved porting macros into */ -/* jbiport.h */ -/* 2.2 added support for static memory */ -/* fixed /W4 warnings */ -/* */ -/****************************************************************************/ - -#ifndef NO_ALTERA_STDIO -#define NO_ALTERA_STDIO -#endif - -#if 0 -#if ( _MSC_VER >= 800 ) -#pragma warning(disable:4115) -#pragma warning(disable:4201) -#pragma warning(disable:4214) -#pragma warning(disable:4514) -#endif -#endif - -#include "jbiport.h" - -#if PORT == WINDOWS -#include -#else -typedef int BOOL; -typedef unsigned char BYTE; -typedef unsigned short WORD; -#if PORT == EMBEDDED -typedef unsigned int DWORD; -#else -typedef unsigned long DWORD; -#endif -#define TRUE 1 -#define FALSE 0 -#endif - -#if PORT != EMBEDDED -#include -#include -#include -#include -#include -#include -#endif - -#include - -#include "jbiexprt.h" -#include "jbistub.h" - -#if defined(USE_STATIC_MEMORY) - #define N_STATIC_MEMORY_KBYTES ((unsigned int) USE_STATIC_MEMORY) - #define N_STATIC_MEMORY_BYTES (N_STATIC_MEMORY_KBYTES * 1024) - #define POINTER_ALIGNMENT sizeof(DWORD) -#else /* USE_STATIC_MEMORY */ - /* #include */ - #define POINTER_ALIGNMENT sizeof(BYTE) -#endif /* USE_STATIC_MEMORY */ - -#if PORT != EMBEDDED -#include -#include -#include -#include -#include -#endif - -#if PORT == DOS -#include -#endif - -int jbi_debug_level = DEBUG_NONE; -static long jbi_delay_us = 0, jbi_delay_count = 0, jbi_peak_us = 0; - -void __jbi_jtag_udelay(unsigned long us) -{ - udelay(us); -} -void jbi_jtag_udelay(unsigned long us) __attribute__((weak, alias("__jbi_jtag_udelay"))); - -#if PORT == WINDOWS -#define PGDC_IOCTL_GET_DEVICE_INFO_PP 0x00166A00L -#define PGDC_IOCTL_READ_PORT_PP 0x00166A04L -#define PGDC_IOCTL_WRITE_PORT_PP 0x0016AA08L -#define PGDC_IOCTL_PROCESS_LIST_PP 0x0016AA1CL -#define PGDC_READ_INFO 0x0a80 -#define PGDC_READ_PORT 0x0a81 -#define PGDC_WRITE_PORT 0x0a82 -#define PGDC_PROCESS_LIST 0x0a87 -#define PGDC_HDLC_NTDRIVER_VERSION 2 -#define PORT_IO_BUFFER_SIZE 256 -#endif - -#if PORT == WINDOWS -#ifdef __BORLANDC__ -/* create dummy inp() and outp() functions for Borland 32-bit compile */ -WORD inp(WORD address) { address = address; return(0); } -void outp(WORD address, WORD data) { address = address; data = data; } -#else -#pragma intrinsic (inp, outp) -#endif -#endif - -/* -* For Borland C compiler (16-bit), set the stack size -*/ -#if PORT == DOS -#ifdef __BORLANDC__ -extern unsigned int _stklen = 50000; -#endif -#endif - -/************************************************************************ -* -* Global variables -*/ - -/* file buffer for Jam STAPL ByteCode input file */ -#if PORT == DOS -unsigned char **file_buffer = NULL; -#else -unsigned char *file_buffer = NULL; -#endif -long file_pointer = 0L; -long file_length = 0L; - -/* delay count for one millisecond delay */ -long one_ms_delay = 0L; - -/* serial port interface available on all platforms */ -BOOL jtag_hardware_initialized = FALSE; -char *serial_port_name = NULL; -BOOL specified_com_port = FALSE; -int com_port = -1; -void initialize_jtag_hardware(void); -void close_jtag_hardware(void); - -#if defined(USE_STATIC_MEMORY) - unsigned char static_memory_heap[N_STATIC_MEMORY_BYTES] = { 0 }; -#endif /* USE_STATIC_MEMORY */ - -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - unsigned int n_bytes_allocated = 0; -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - -#if defined(MEM_TRACKER) - unsigned int peak_memory_usage = 0; - unsigned int peak_allocations = 0; - unsigned int n_allocations = 0; -#if defined(USE_STATIC_MEMORY) - unsigned int n_bytes_not_recovered = 0; -#endif /* USE_STATIC_MEMORY */ - const DWORD BEGIN_GUARD = 0x01234567; - const DWORD END_GUARD = 0x76543210; -#endif /* MEM_TRACKER */ - -#if PORT == WINDOWS || PORT == DOS -/* parallel port interface available on PC only */ -BOOL specified_lpt_port = FALSE; -BOOL specified_lpt_addr = FALSE; -int lpt_port = 1; -int initial_lpt_ctrl = 0; -WORD lpt_addr = 0x3bc; -WORD lpt_addr_table[3] = { 0x3bc, 0x378, 0x278 }; -BOOL alternative_cable_l = FALSE; -BOOL alternative_cable_x = FALSE; -void write_byteblaster(int port, int data); -int read_byteblaster(int port); -#endif - -#if PORT==WINDOWS -#ifndef __BORLANDC__ -WORD lpt_addresses_from_registry[4] = { 0 }; -#endif -#endif - -#if PORT == WINDOWS -/* variables to manage cached I/O under Windows NT */ -BOOL windows_nt = FALSE; -int port_io_count = 0; -HANDLE nt_device_handle = INVALID_HANDLE_VALUE; -struct PORT_IO_LIST_STRUCT -{ - USHORT command; - USHORT data; -} port_io_buffer[PORT_IO_BUFFER_SIZE]; -extern void flush_ports(void); -BOOL initialize_nt_driver(void); -#endif - -/* function prototypes to allow forward reference */ -extern void delay_loop(long count); - -/* -* This structure stores information about each available vector signal -*/ -struct VECTOR_LIST_STRUCT -{ - char *signal_name; - int hardware_bit; - int vector_index; -}; - -struct VECTOR_LIST_STRUCT vector_list[] = -{ - /* add a record here for each vector signal */ - { "", 0, -1 } -}; - -#define VECTOR_SIGNAL_COUNT ((int)(sizeof(vector_list)/sizeof(vector_list[0]))) - -BOOL verbose = FALSE; - -/************************************************************************ -* -* Customized interface functions for Jam STAPL ByteCode Player I/O: -* -* jbi_jtag_io() -* jbi_message() -* jbi_delay() -*/ - -int jbi_jtag_io(int tms, int tdi, int read_tdo) -{ -#if PORT == WINDOWS || PORT == DOS - int data = 0; -#endif - int tdo = 0; - int i = 0; - int result = 0; - char ch_data = 0; - - if (!jtag_hardware_initialized) - { - initialize_jtag_hardware(); - jtag_hardware_initialized = TRUE; - } - - if (specified_com_port) - { - ch_data = (char) - ((tdi ? 0x01 : 0) | (tms ? 0x02 : 0) | 0x60); - - write(com_port, &ch_data, 1); - - if (read_tdo) - { - ch_data = 0x7e; - write(com_port, &ch_data, 1); - for (i = 0; (i < 100) && (result != 1); ++i) - { - result = read(com_port, &ch_data, 1); - } - if (result == 1) - { - tdo = ch_data & 0x01; - } - else - { - fprintf(stderr, "Error: BitBlaster not responding\n"); - } - } - - ch_data = (char) - ((tdi ? 0x01 : 0) | (tms ? 0x02 : 0) | 0x64); - - write(com_port, &ch_data, 1); - } - else - { -#if PORT == WINDOWS || PORT == DOS - data = (alternative_cable_l ? ((tdi ? 0x01 : 0) | (tms ? 0x04 : 0)) : - (alternative_cable_x ? ((tdi ? 0x01 : 0) | (tms ? 0x04 : 0) | 0x10) : - ((tdi ? 0x40 : 0) | (tms ? 0x02 : 0)))); - - write_byteblaster(0, data); - - if (read_tdo) - { - tdo = read_byteblaster(1); - tdo = (alternative_cable_l ? ((tdo & 0x40) ? 1 : 0) : - (alternative_cable_x ? ((tdo & 0x10) ? 1 : 0) : - ((tdo & 0x80) ? 0 : 1))); - } - - write_byteblaster(0, data | (alternative_cable_l ? 0x02 : (alternative_cable_x ? 0x02: 0x01))); - - write_byteblaster(0, data); -#elif PORT == EMBEDDED - /* Output variables TDI, TMS to the corresponding pin; As read_tdo, return the corresponding pin to the variable tdo */ - tdo = jbi_jtag_io_(tms, tdi, read_tdo); -#else - /* parallel port interface not available */ - tdo = 0; -#endif - } - - return (tdo); -} - -void jbi_message(char *message_text) -{ - puts(message_text); - puts("\n"); - fflush(stdout); -} - -void jbi_export_integer(char *key, long value) -{ - if (verbose) - { - printf("Export: key = \"%s\", value = %ld\n", key, value); - fflush(stdout); - } -} - -#define HEX_LINE_CHARS 72 -#define HEX_LINE_BITS (HEX_LINE_CHARS * 4) - -char conv_to_hex(unsigned long value) -{ - char c; - - if (value > 9) - { - c = (char) (value + ('A' - 10)); - } - else - { - c = (char) (value + '0'); - } - - return (c); -} - -void jbi_export_boolean_array(char *key, unsigned char *data, long count) -{ - char string[HEX_LINE_CHARS + 1]; - long i, offset; - unsigned long size, line, lines, linebits, value, j, k; - - if (verbose) - { - if (count > HEX_LINE_BITS) - { - printf("Export: key = \"%s\", %ld bits, value = HEX\n", key, count); - lines = (count + (HEX_LINE_BITS - 1)) / HEX_LINE_BITS; - - for (line = 0; line < lines; ++line) - { - if (line < (lines - 1)) - { - linebits = HEX_LINE_BITS; - size = HEX_LINE_CHARS; - offset = count - ((line + 1) * HEX_LINE_BITS); - } - else - { - linebits = count - ((lines - 1) * HEX_LINE_BITS); - size = (linebits + 3) / 4; - offset = 0L; - } - - string[size] = '\0'; - j = size - 1; - value = 0; - - for (k = 0; k < linebits; ++k) - { - i = k + offset; - if (data[i >> 3] & (1 << (i & 7))) value |= (1 << (i & 3)); - if ((i & 3) == 3) - { - string[j] = conv_to_hex(value); - value = 0; - --j; - } - } - if ((k & 3) > 0) string[j] = conv_to_hex(value); - - printf("%s\n", string); - } - - fflush(stdout); - } - else - { - size = (count + 3) / 4; - string[size] = '\0'; - j = size - 1; - value = 0; - - for (i = 0; i < count; ++i) - { - if (data[i >> 3] & (1 << (i & 7))) value |= (1 << (i & 3)); - if ((i & 3) == 3) - { - string[j] = conv_to_hex(value); - value = 0; - --j; - } - } - if ((i & 3) > 0) string[j] = conv_to_hex(value); - - printf("Export: key = \"%s\", %ld bits, value = HEX %s\n", - key, count, string); - fflush(stdout); - } - } -} - -void jbi_delay(long microseconds) -{ - if (jbi_peak_us < microseconds) { - jbi_peak_us = microseconds; - } - jbi_delay_us += microseconds; - jbi_delay_count++; - -#if PORT == WINDOWS - /* if Windows NT, flush I/O cache buffer before delay loop */ - if (windows_nt && (port_io_count > 0)) flush_ports(); -#endif - -#if PORT == EMBEDDED - udelay(microseconds); -#else - delay_loop(microseconds * - ((one_ms_delay / 1000L) + ((one_ms_delay % 1000L) ? 1 : 0))); -#endif -} - -int jbi_vector_map -( - int signal_count, - char **signals -) -{ - int signal, vector, ch_index, diff; - int matched_count = 0; - char l, r; - - for (vector = 0; (vector < VECTOR_SIGNAL_COUNT); ++vector) - { - vector_list[vector].vector_index = -1; - } - - for (signal = 0; signal < signal_count; ++signal) - { - diff = 1; - for (vector = 0; (diff != 0) && (vector < VECTOR_SIGNAL_COUNT); - ++vector) - { - if (vector_list[vector].vector_index == -1) - { - ch_index = 0; - do - { - l = signals[signal][ch_index]; - r = vector_list[vector].signal_name[ch_index]; - diff = (((l >= 'a') && (l <= 'z')) ? (l - ('a' - 'A')) : l) - - (((r >= 'a') && (r <= 'z')) ? (r - ('a' - 'A')) : r); - ++ch_index; - } - while ((diff == 0) && (l != '\0') && (r != '\0')); - - if (diff == 0) - { - vector_list[vector].vector_index = signal; - ++matched_count; - } - } - } - } - - return (matched_count); -} - -int jbi_vector_io -( - int signal_count, - long *dir_vect, - long *data_vect, - long *capture_vect -) -{ - int signal, vector, bit; - int matched_count = 0; - int data = 0; - int mask = 0; - int dir = 0; - int i = 0; - int result = 0; - char ch_data = 0; - - if (!jtag_hardware_initialized) - { - initialize_jtag_hardware(); - jtag_hardware_initialized = TRUE; - } - - /* - * Collect information about output signals - */ - for (vector = 0; vector < VECTOR_SIGNAL_COUNT; ++vector) - { - signal = vector_list[vector].vector_index; - - if ((signal >= 0) && (signal < signal_count)) - { - bit = (1 << vector_list[vector].hardware_bit); - - mask |= bit; - if (data_vect[signal >> 5] & (1L << (signal & 0x1f))) data |= bit; - if (dir_vect[signal >> 5] & (1L << (signal & 0x1f))) dir |= bit; - - ++matched_count; - } - } - - /* - * Write outputs to hardware interface, if any - */ - if (dir != 0) - { - if (specified_com_port) - { - ch_data = (char) (((data >> 6) & 0x01) | (data & 0x02) | - ((data << 2) & 0x04) | ((data << 3) & 0x08) | 0x60); - write(com_port, &ch_data, 1); - } - else - { -#if PORT == WINDOWS || PORT == DOS - - write_byteblaster(0, data); - -#endif - } - } - - /* - * Read the input signals and save information in capture_vect[] - */ - if ((dir != mask) && (capture_vect != NULL)) - { - if (specified_com_port) - { - ch_data = 0x7e; - write(com_port, &ch_data, 1); - for (i = 0; (i < 100) && (result != 1); ++i) - { - result = read(com_port, &ch_data, 1); - } - if (result == 1) - { - data = ((ch_data << 7) & 0x80) | ((ch_data << 3) & 0x10); - } - else - { - fprintf(stderr, "Error: BitBlaster not responding\n"); - } - } - else - { -#if PORT == WINDOWS || PORT == DOS - - data = read_byteblaster(1) ^ 0x80; /* parallel port inverts bit 7 */ - -#endif - } - - for (vector = 0; vector < VECTOR_SIGNAL_COUNT; ++vector) - { - signal = vector_list[vector].vector_index; - - if ((signal >= 0) && (signal < signal_count)) - { - bit = (1 << vector_list[vector].hardware_bit); - - if ((dir & bit) == 0) /* if it is an input signal... */ - { - if (data & bit) - { - capture_vect[signal >> 5] |= (1L << (signal & 0x1f)); - } - else - { - capture_vect[signal >> 5] &= ~(unsigned long) - (1L << (signal & 0x1f)); - } - } - } - } - } - - return (matched_count); -} - -void *jbi_malloc(unsigned int size) -{ - unsigned int n_bytes_to_allocate = -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - sizeof(unsigned int) + -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ -#if defined(MEM_TRACKER) - (2 * sizeof(DWORD)) + -#endif /* MEM_TRACKER */ - (POINTER_ALIGNMENT * ((size + POINTER_ALIGNMENT - 1) / POINTER_ALIGNMENT)); - - unsigned char *ptr = 0; - -#if defined(MEM_TRACKER) - if ((n_bytes_allocated + n_bytes_to_allocate) > peak_memory_usage) - { - peak_memory_usage = n_bytes_allocated + n_bytes_to_allocate; - } - if ((n_allocations + 1) > peak_allocations) - { - peak_allocations = n_allocations + 1; - } -#endif /* MEM_TRACKER */ - -#if defined(USE_STATIC_MEMORY) - if ((n_bytes_allocated + n_bytes_to_allocate) <= N_STATIC_MEMORY_BYTES) - { - ptr = (&(static_memory_heap[n_bytes_allocated])); - } -#else /* USE_STATIC_MEMORY */ - ptr = (unsigned char *) malloc(n_bytes_to_allocate); -#endif /* USE_STATIC_MEMORY */ - -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - if (ptr != 0) - { - unsigned int i = 0; - -#if defined(MEM_TRACKER) - for (i = 0; i < sizeof(DWORD); ++i) - { - *ptr = (unsigned char) (BEGIN_GUARD >> (8 * i)); - ++ptr; - } -#endif /* MEM_TRACKER */ - - for (i = 0; i < sizeof(unsigned int); ++i) - { - *ptr = (unsigned char) (size >> (8 * i)); - ++ptr; - } - -#if defined(MEM_TRACKER) - for (i = 0; i < sizeof(DWORD); ++i) - { - *(ptr + size + i) = (unsigned char) (END_GUARD >> (8 * i)); - /* don't increment ptr */ - } - - ++n_allocations; -#endif /* MEM_TRACKER */ - - n_bytes_allocated += n_bytes_to_allocate; - } -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - - jbi_dbg(DEBUG_MM, "malloc 0x%p(%d,%d)\n", ptr, size, n_bytes_to_allocate); - - return ptr; -} - -void jbi_free(void *ptr) -{ - jbi_dbg(DEBUG_MM, "free 0x%p\n", ptr); - - if - ( -#if defined(MEM_TRACKER) - (n_allocations > 0) && -#endif /* MEM_TRACKER */ - (ptr != 0) - ) - { - unsigned char *tmp_ptr = (unsigned char *) ptr; - -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - unsigned int n_bytes_to_free = 0; - unsigned int i = 0; - unsigned int size = 0; -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ -#if defined(MEM_TRACKER) - DWORD begin_guard = 0; - DWORD end_guard = 0; - - tmp_ptr -= sizeof(DWORD); -#endif /* MEM_TRACKER */ -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - tmp_ptr -= sizeof(unsigned int); -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - ptr = tmp_ptr; - -#if defined(MEM_TRACKER) - for (i = 0; i < sizeof(DWORD); ++i) - { - begin_guard |= (((DWORD)(*tmp_ptr)) << (8 * i)); - ++tmp_ptr; - } -#endif /* MEM_TRACKER */ - -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - for (i = 0; i < sizeof(unsigned int); ++i) - { - size |= (((unsigned int)(*tmp_ptr)) << (8 * i)); - ++tmp_ptr; - } -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - -#if defined(MEM_TRACKER) - tmp_ptr += size; - - for (i = 0; i < sizeof(DWORD); ++i) - { - end_guard |= (((DWORD)(*tmp_ptr)) << (8 * i)); - ++tmp_ptr; - } - - if ((begin_guard != BEGIN_GUARD) || (end_guard != END_GUARD)) - { - fprintf(stderr, "Error: memory corruption detected for allocation #%d... bad %s guard\n", - n_allocations, (begin_guard != BEGIN_GUARD) ? "begin" : "end"); - } - - --n_allocations; -#endif /* MEM_TRACKER */ - -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - n_bytes_to_free = -#if defined(MEM_TRACKER) - (2 * sizeof(DWORD)) + -#endif /* MEM_TRACKER */ - sizeof(unsigned int) + - (POINTER_ALIGNMENT * ((size + POINTER_ALIGNMENT - 1) / POINTER_ALIGNMENT)); -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - -#if defined(USE_STATIC_MEMORY) - if ((((unsigned long) ptr - (unsigned long) static_memory_heap) + n_bytes_to_free) == (unsigned long) n_bytes_allocated) - { - n_bytes_allocated -= n_bytes_to_free; - } -#if defined(MEM_TRACKER) - else - { - n_bytes_not_recovered += n_bytes_to_free; - } -#endif /* MEM_TRACKER */ -#else /* USE_STATIC_MEMORY */ -#if defined(MEM_TRACKER) - n_bytes_allocated -= n_bytes_to_free; -#endif /* MEM_TRACKER */ - free(ptr); -#endif /* USE_STATIC_MEMORY */ - } -#if defined(MEM_TRACKER) - else - { - if (ptr != 0) - { - fprintf(stderr, "Error: attempt to free unallocated memory\n"); - } - } -#endif /* MEM_TRACKER */ -} - -#if PORT == WINDOWS || PORT == DOS -/************************************************************************ -* -* get_tick_count() -- Get system tick count in milliseconds -* -* for DOS, use BIOS function _bios_timeofday() -* for WINDOWS use GetTickCount() function -* for UNIX use clock() system function -*/ -DWORD get_tick_count(void) -{ - DWORD tick_count = 0L; - -#if PORT == WINDOWS - tick_count = GetTickCount(); -#elif PORT == DOS - _bios_timeofday(_TIME_GETCLOCK, (long *)&tick_count); - tick_count *= 55L; /* convert to milliseconds */ -#else - /* assume clock() function returns microseconds */ - tick_count = (DWORD) (clock() / 1000L); -#endif - - return (tick_count); -} -#endif - -#define DELAY_SAMPLES 10 -#define DELAY_CHECK_LOOPS 10000 - -void calibrate_delay(void) -{ -#if PORT == WINDOWS || PORT == DOS - int sample = 0; - int count = 0; - DWORD tick_count1 = 0L; - DWORD tick_count2 = 0L; -#endif - - one_ms_delay = 0L; - -#if PORT == WINDOWS || PORT == DOS - for (sample = 0; sample < DELAY_SAMPLES; ++sample) - { - count = 0; - tick_count1 = get_tick_count(); - while ((tick_count2 = get_tick_count()) == tick_count1) {}; - do { delay_loop(DELAY_CHECK_LOOPS); count++; } while - ((tick_count1 = get_tick_count()) == tick_count2); - one_ms_delay += ((DELAY_CHECK_LOOPS * (DWORD)count) / - (tick_count1 - tick_count2)); - } - - one_ms_delay /= DELAY_SAMPLES; -#else - /* This is system-dependent! Update this number for target system */ - one_ms_delay = 1000L; -#endif -} - -char *error_text[] = -{ -/* JBIC_SUCCESS 0 */ "success", -/* JBIC_OUT_OF_MEMORY 1 */ "out of memory", -/* JBIC_IO_ERROR 2 */ "file access error", -/* JAMC_SYNTAX_ERROR 3 */ "syntax error", -/* JBIC_UNEXPECTED_END 4 */ "unexpected end of file", -/* JBIC_UNDEFINED_SYMBOL 5 */ "undefined symbol", -/* JAMC_REDEFINED_SYMBOL 6 */ "redefined symbol", -/* JBIC_INTEGER_OVERFLOW 7 */ "integer overflow", -/* JBIC_DIVIDE_BY_ZERO 8 */ "divide by zero", -/* JBIC_CRC_ERROR 9 */ "CRC mismatch", -/* JBIC_INTERNAL_ERROR 10 */ "internal error", -/* JBIC_BOUNDS_ERROR 11 */ "bounds error", -/* JAMC_TYPE_MISMATCH 12 */ "type mismatch", -/* JAMC_ASSIGN_TO_CONST 13 */ "assignment to constant", -/* JAMC_NEXT_UNEXPECTED 14 */ "NEXT unexpected", -/* JAMC_POP_UNEXPECTED 15 */ "POP unexpected", -/* JAMC_RETURN_UNEXPECTED 16 */ "RETURN unexpected", -/* JAMC_ILLEGAL_SYMBOL 17 */ "illegal symbol name", -/* JBIC_VECTOR_MAP_FAILED 18 */ "vector signal name not found", -/* JBIC_USER_ABORT 19 */ "execution cancelled", -/* JBIC_STACK_OVERFLOW 20 */ "stack overflow", -/* JBIC_ILLEGAL_OPCODE 21 */ "illegal instruction code", -/* JAMC_PHASE_ERROR 22 */ "phase error", -/* JAMC_SCOPE_ERROR 23 */ "scope error", -/* JBIC_ACTION_NOT_FOUND 24 */ "action not found", -}; - -#define MAX_ERROR_CODE (int)(sizeof(error_text)/sizeof(error_text[0])) - -/************************************************************************/ - -#if 0 -int main(int argc, char **argv) -{ - BOOL help = FALSE; - BOOL error = FALSE; - char *filename = NULL; - long offset = 0L; - long error_address = 0L; - JBI_RETURN_TYPE crc_result = JBIC_SUCCESS; - JBI_RETURN_TYPE exec_result = JBIC_SUCCESS; - unsigned short expected_crc = 0; - unsigned short actual_crc = 0; - char key[33] = {0}; - char value[257] = {0}; - int exit_status = 0; - int arg = 0; - int exit_code = 0; - int format_version = 0; - time_t start_time = 0; - time_t end_time = 0; - int time_delta = 0; - char *workspace = NULL; - char *action = NULL; - char *init_list[10]; - int init_count = 0; - FILE *fp = NULL; - struct stat sbuf; - long workspace_size = 0; - char *exit_string = NULL; - int reset_jtag = 1; - int execute_program = 1; - int action_count = 0; - int procedure_count = 0; - int index = 0; - char *action_name = NULL; - char *description = NULL; - JBI_PROCINFO *procedure_list = NULL; - JBI_PROCINFO *procptr = NULL; - - verbose = FALSE; - - init_list[0] = NULL; - - /* print out the version string and copyright message */ - fprintf(stderr, "Jam STAPL ByteCode Player Version 2.2\nCopyright (C) 1998-2001 Altera Corporation\n\n"); - - for (arg = 1; arg < argc; arg++) - { -#if PORT == UNIX - if (argv[arg][0] == '-') -#else - if ((argv[arg][0] == '-') || (argv[arg][0] == '/')) -#endif - { - switch(toupper(argv[arg][1])) - { - case 'A': /* set action name */ - if (action == NULL) - { - action = &argv[arg][2]; - } - else - { - error = TRUE; - } - break; - -#if PORT == WINDOWS || PORT == DOS - case 'C': /* Use alternative ISP download cable */ - if(toupper(argv[arg][2]) == 'L') - alternative_cable_l = TRUE; - else if(toupper(argv[arg][2]) == 'X') - alternative_cable_x = TRUE; - break; -#endif - - case 'D': /* initialization list */ - if (argv[arg][2] == '"') - { - init_list[init_count] = &argv[arg][3]; - } - else - { - init_list[init_count] = &argv[arg][2]; - } - init_list[++init_count] = NULL; - break; - -#if PORT == WINDOWS || PORT == DOS - case 'P': /* set LPT port address */ - specified_lpt_port = TRUE; - if (sscanf(&argv[arg][2], "%d", &lpt_port) != 1) error = TRUE; - if ((lpt_port < 1) || (lpt_port > 3)) error = TRUE; - if (error) - { - if (sscanf(&argv[arg][2], "%x", &lpt_port) == 1) - { - if ((lpt_port == 0x3bc) || - (lpt_port == 0x378) || - (lpt_port == 0x278)) - { - error = FALSE; - specified_lpt_addr = TRUE; - lpt_addr = (WORD) lpt_port; - lpt_port = 1; - } - } - } - break; -#endif - - case 'R': /* don't reset the JTAG chain after use */ - reset_jtag = 0; - break; - - case 'S': /* set serial port address */ - serial_port_name = &argv[arg][2]; - specified_com_port = TRUE; - break; - - case 'M': /* set memory size */ - if (sscanf(&argv[arg][2], "%ld", &workspace_size) != 1) - error = TRUE; - if (workspace_size == 0) error = TRUE; - break; - - case 'H': /* help */ - help = TRUE; - break; - - case 'V': /* verbose */ - verbose = TRUE; - break; - - case 'I': /* show info only, do not execute */ - verbose = TRUE; - execute_program = 0; - break; - - default: - error = TRUE; - break; - } - } - else - { - /* it's a filename */ - if (filename == NULL) - { - filename = argv[arg]; - } - else - { - /* error -- we already found a filename */ - error = TRUE; - } - } - - if (error) - { - fprintf(stderr, "Illegal argument: \"%s\"\n", argv[arg]); - help = TRUE; - error = FALSE; - } - } - -#if PORT == WINDOWS || PORT == DOS - if (specified_lpt_port && specified_com_port) - { - fprintf(stderr, "Error: -s and -p options may not be used together\n\n"); - help = TRUE; - } -#endif - - if (help || (filename == NULL)) - { - fprintf(stderr, "Usage: jbi [options] \n"); - fprintf(stderr, "\nAvailable options:\n"); - fprintf(stderr, " -h : show help message\n"); - fprintf(stderr, " -v : show verbose messages\n"); - fprintf(stderr, " -i : show file info only - does not execute any action\n"); - fprintf(stderr, " -a : specify an action name (Jam STAPL)\n"); - fprintf(stderr, " -d : initialize variable to specified value (Jam 1.1)\n"); - fprintf(stderr, " -d : enable optional procedure (Jam STAPL)\n"); - fprintf(stderr, " -d : disable recommended procedure (Jam STAPL)\n"); -#if PORT == WINDOWS || PORT == DOS - fprintf(stderr, " -p : parallel port number or address (for ByteBlaster)\n"); - fprintf(stderr, " -c : alternative download cable compatibility: -cl or -cx\n"); -#endif - fprintf(stderr, " -s : serial port name (for BitBlaster)\n"); - fprintf(stderr, " -r : don't reset JTAG TAP after use\n"); - exit_status = 1; - } - else if ((workspace_size > 0) && - ((workspace = (char *) jbi_malloc((size_t) workspace_size)) == NULL)) - { - fprintf(stderr, "Error: can't allocate memory (%d Kbytes)\n", - (int) (workspace_size / 1024L)); - exit_status = 1; - } - else if (access(filename, 0) != 0) - { - fprintf(stderr, "Error: can't access file \"%s\"\n", filename); - exit_status = 1; - } - else - { - /* get length of file */ - if (stat(filename, &sbuf) == 0) file_length = sbuf.st_size; - - if ((fp = fopen(filename, "rb")) == NULL) - { - fprintf(stderr, "Error: can't open file \"%s\"\n", filename); - exit_status = 1; - } - else - { - /* - * Read entire file into a buffer - */ -#if PORT == DOS - int pages = 1 + (int) (file_length >> 14L); - int page; - file_buffer = (unsigned char **) jbi_malloc( - (size_t) (pages * sizeof(char *))); - - for (page = 0; page < pages; ++page) - { - /* allocate enough 16K blocks to store the file */ - file_buffer[page] = (unsigned char *) jbi_malloc (0x4000); - if (file_buffer[page] == NULL) - { - /* flag error and break out of loop */ - file_buffer = NULL; - page = pages; - } - } -#else - file_buffer = (unsigned char *) jbi_malloc((size_t) file_length); -#endif - - if (file_buffer == NULL) - { - fprintf(stderr, "Error: can't allocate memory (%d Kbytes)\n", - (int) (file_length / 1024L)); - exit_status = 1; - } - else - { -#if PORT == DOS - int pages = 1 + (int) (file_length >> 14L); - int page; - size_t page_size = 0x4000; - for (page = 0; (page < pages) && (exit_status == 0); ++page) - { - if (page == (pages - 1)) - { - /* last page may not be full 16K bytes */ - page_size = (size_t) (file_length & 0x3fffL); - } - if (fread(file_buffer[page], 1, page_size, fp) != page_size) - { - fprintf(stderr, "Error reading file \"%s\"\n", filename); - exit_status = 1; - } - } -#else - if (fread(file_buffer, 1, (size_t) file_length, fp) != - (size_t) file_length) - { - fprintf(stderr, "Error reading file \"%s\"\n", filename); - exit_status = 1; - } -#endif - } - - fclose(fp); - } - - if (exit_status == 0) - { - /* - * Get Operating System type - */ -#if PORT == WINDOWS - windows_nt = !(GetVersion() & 0x80000000); -#endif - - /* - * Calibrate the delay loop function - */ - calibrate_delay(); - - /* - * Check CRC - */ - crc_result = jbi_check_crc(file_buffer, file_length, - &expected_crc, &actual_crc); - - if (verbose || (crc_result == JBIC_CRC_ERROR)) - { - switch (crc_result) - { - case JBIC_SUCCESS: - printf("CRC matched: CRC value = %04X\n", actual_crc); - break; - - case JBIC_CRC_ERROR: - printf("CRC mismatch: expected %04X, actual %04X\n", - expected_crc, actual_crc); - break; - - case JBIC_UNEXPECTED_END: - printf("Expected CRC not found, actual CRC value = %04X\n", - actual_crc); - break; - - case JBIC_IO_ERROR: - printf("Error: File format is not recognized.\n"); - exit(1); - break; - - default: - printf("CRC function returned error code %d\n", crc_result); - break; - } - } - - if (verbose) - { - /* - * Display file format version - */ - jbi_get_file_info(file_buffer, file_length, - &format_version, &action_count, &procedure_count); - - printf("File format is %s ByteCode format\n", - (format_version == 2) ? "Jam STAPL" : "pre-standardized Jam 1.1"); - - /* - * Dump out NOTE fields - */ - while (jbi_get_note(file_buffer, file_length, - &offset, key, value, 256) == 0) - { - printf("NOTE \"%s\" = \"%s\"\n", key, value); - } - - /* - * Dump the action table - */ - if ((format_version == 2) && (action_count > 0)) - { - printf("\nActions available in this file:\n"); - - for (index = 0; index < action_count; ++index) - { - jbi_get_action_info(file_buffer, file_length, - index, &action_name, &description, &procedure_list); - - if (description == NULL) - { - printf("%s\n", action_name); - } - else - { - printf("%s \"%s\"\n", action_name, description); - } - -#if PORT == DOS - if (action_name != NULL) jbi_free(action_name); - if (description != NULL) jbi_free(description); -#endif - - procptr = procedure_list; - while (procptr != NULL) - { - if (procptr->attributes != 0) - { - printf(" %s (%s)\n", procptr->name, - (procptr->attributes == 1) ? - "optional" : "recommended"); - } - -#if PORT == DOS - if (procptr->name != NULL) jbi_free(procptr->name); -#endif - - procedure_list = procptr->next; - jbi_free(procptr); - procptr = procedure_list; - } - } - - /* add a blank line before execution messages */ - if (execute_program) printf("\n"); - } - } - - if (execute_program) - { - /* - * Execute the Jam STAPL ByteCode program - */ - time(&start_time); - exec_result = jbi_execute(file_buffer, file_length, workspace, - workspace_size, action, init_list, reset_jtag, - &error_address, &exit_code, &format_version); - time(&end_time); - - if (exec_result == JBIC_SUCCESS) - { - if (format_version == 2) - { - switch (exit_code) - { - case 0: exit_string = "Success"; break; - case 1: exit_string = "Checking chain failure"; break; - case 2: exit_string = "Reading IDCODE failure"; break; - case 3: exit_string = "Reading USERCODE failure"; break; - case 4: exit_string = "Reading UESCODE failure"; break; - case 5: exit_string = "Entering ISP failure"; break; - case 6: exit_string = "Unrecognized device"; break; - case 7: exit_string = "Device revision is not supported"; break; - case 8: exit_string = "Erase failure"; break; - case 9: exit_string = "Device is not blank"; break; - case 10: exit_string = "Device programming failure"; break; - case 11: exit_string = "Device verify failure"; break; - case 12: exit_string = "Read failure"; break; - case 13: exit_string = "Calculating checksum failure"; break; - case 14: exit_string = "Setting security bit failure"; break; - case 15: exit_string = "Querying security bit failure"; break; - case 16: exit_string = "Exiting ISP failure"; break; - case 17: exit_string = "Performing system test failure"; break; - default: exit_string = "Unknown exit code"; break; - } - } - else - { - switch (exit_code) - { - case 0: exit_string = "Success"; break; - case 1: exit_string = "Illegal initialization values"; break; - case 2: exit_string = "Unrecognized device"; break; - case 3: exit_string = "Device revision is not supported"; break; - case 4: exit_string = "Device programming failure"; break; - case 5: exit_string = "Device is not blank"; break; - case 6: exit_string = "Device verify failure"; break; - case 7: exit_string = "SRAM configuration failure"; break; - default: exit_string = "Unknown exit code"; break; - } - } - - printf("Exit code = %d... %s\n", exit_code, exit_string); - } - else if ((format_version == 2) && - (exec_result == JBIC_ACTION_NOT_FOUND)) - { - if ((action == NULL) || (*action == '\0')) - { - printf("Error: no action specified for Jam STAPL file.\nProgram terminated.\n"); - } - else - { - printf("Error: action \"%s\" is not supported for this Jam STAPL file.\nProgram terminated.\n", action); - } - } - else if (exec_result < MAX_ERROR_CODE) - { - printf("Error at address %ld: %s.\nProgram terminated.\n", - error_address, error_text[exec_result]); - } - else - { - printf("Unknown error code %ld\n", exec_result); - } - - /* - * Print out elapsed time - */ - if (verbose) - { - time_delta = (int) (end_time - start_time); - printf("Elapsed time = %02u:%02u:%02u\n", - time_delta / 3600, /* hours */ - (time_delta % 3600) / 60, /* minutes */ - time_delta % 60); /* seconds */ - } - } - } - } - - if (jtag_hardware_initialized) close_jtag_hardware(); - - if (workspace != NULL) jbi_free(workspace); - if (file_buffer != NULL) jbi_free(file_buffer); - -#if defined(MEM_TRACKER) - if (verbose) - { -#if defined(USE_STATIC_MEMORY) - fprintf(stdout, "Memory Usage Info: static memory size = %ud (%dKB)\n", N_STATIC_MEMORY_BYTES, N_STATIC_MEMORY_KBYTES); -#endif /* USE_STATIC_MEMORY */ - fprintf(stdout, "Memory Usage Info: peak memory usage = %ud (%dKB)\n", peak_memory_usage, (peak_memory_usage + 1023) / 1024); - fprintf(stdout, "Memory Usage Info: peak allocations = %d\n", peak_allocations); -#if defined(USE_STATIC_MEMORY) - if ((n_bytes_allocated - n_bytes_not_recovered) != 0) - { - fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", (n_bytes_allocated - n_bytes_not_recovered), ((n_bytes_allocated - n_bytes_not_recovered) + 1023) / 1024); - } -#else /* USE_STATIC_MEMORY */ - if (n_bytes_allocated != 0) - { - fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", n_bytes_allocated, (n_bytes_allocated + 1023) / 1024); - } -#endif /* USE_STATIC_MEMORY */ - if (n_allocations != 0) - { - fprintf(stdout, "Memory Usage Info: allocations not freed = %d\n", n_allocations); - } - } -#endif /* MEM_TRACKER */ - - return (exit_status); -} -#endif - -#if PORT==WINDOWS -#ifndef __BORLANDC__ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* -* SEARCH_DYN_DATA -* -* Searches recursively in Windows 95/98 Registry for parallel port info -* under HKEY_DYN_DATA registry key. Called by search_local_machine(). -*/ -void search_dyn_data -( - char *dd_path, - char *hardware_key, - int lpt -) -{ - DWORD index; - DWORD size; - DWORD type; - LONG result; - HKEY key; - int length; - WORD address; - char buffer[1024]; - FILETIME last_write = {0}; - WORD *word_ptr; - int i; - - length = strlen(dd_path); - - if (RegOpenKeyEx( - HKEY_DYN_DATA, - dd_path, - 0L, - KEY_READ, - &key) - == ERROR_SUCCESS) - { - size = 1023; - - if (RegQueryValueEx( - key, - "HardWareKey", - NULL, - &type, - (unsigned char *) buffer, - &size) - == ERROR_SUCCESS) - { - if ((type == REG_SZ) && (stricmp(buffer, hardware_key) == 0)) - { - size = 1023; - - if (RegQueryValueEx( - key, - "Allocation", - NULL, - &type, - (unsigned char *) buffer, - &size) - == ERROR_SUCCESS) - { - /* - * By "inspection", I have found five cases: size 32, 48, - * 56, 60, and 80 bytes. The port address seems to be - * located at different offsets in the buffer for these - * five cases, as shown below. If a valid port address - * is not found, or the size is not one of these known - * sizes, then I search through the entire buffer and - * look for a value which is a valid port address. - */ - - word_ptr = (WORD *) buffer; - - if ((type == REG_BINARY) && (size == 32)) - { - address = word_ptr[10]; - } - else if ((type == REG_BINARY) && (size == 48)) - { - address = word_ptr[18]; - } - else if ((type == REG_BINARY) && (size == 56)) - { - address = word_ptr[22]; - } - else if ((type == REG_BINARY) && (size == 60)) - { - address = word_ptr[24]; - } - else if ((type == REG_BINARY) && (size == 80)) - { - address = word_ptr[24]; - } - else address = 0; - - /* if not found, search through entire buffer */ - i = 0; - while ((i < (int) (size / 2)) && - (address != 0x278) && - (address != 0x27C) && - (address != 0x378) && - (address != 0x37C) && - (address != 0x3B8) && - (address != 0x3BC)) - { - if ((word_ptr[i] == 0x278) || - (word_ptr[i] == 0x27C) || - (word_ptr[i] == 0x378) || - (word_ptr[i] == 0x37C) || - (word_ptr[i] == 0x3B8) || - (word_ptr[i] == 0x3BC)) - { - address = word_ptr[i]; - } - ++i; - } - - if ((address == 0x278) || - (address == 0x27C) || - (address == 0x378) || - (address == 0x37C) || - (address == 0x3B8) || - (address == 0x3BC)) - { - lpt_addresses_from_registry[lpt] = address; - } - } - } - } - - index = 0; - - do - { - size = 1023; - - result = RegEnumKeyEx( - key, - index++, - buffer, - &size, - NULL, - NULL, - NULL, - &last_write); - - if (result == ERROR_SUCCESS) - { - dd_path[length] = '\\'; - dd_path[length + 1] = '\0'; - strcpy(&dd_path[length + 1], buffer); - - search_dyn_data(dd_path, hardware_key, lpt); - - dd_path[length] = '\0'; - } - } - while (result == ERROR_SUCCESS); - - RegCloseKey(key); - } -} - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* -* SEARCH_LOCAL_MACHINE -* -* Searches recursively in Windows 95/98 Registry for parallel port info -* under HKEY_LOCAL_MACHINE\Enum. When parallel port is found, calls -* search_dyn_data() to get the port address. -*/ -void search_local_machine -( - char *lm_path, - char *dd_path -) -{ - DWORD index; - DWORD size; - DWORD type; - LONG result; - HKEY key; - int length; - char buffer[1024]; - FILETIME last_write = {0}; - - length = strlen(lm_path); - - if (RegOpenKeyEx( - HKEY_LOCAL_MACHINE, - lm_path, - 0L, - KEY_READ, - &key) - == ERROR_SUCCESS) - { - size = 1023; - - if (RegQueryValueEx( - key, - "PortName", - NULL, - &type, - (unsigned char *) buffer, - &size) - == ERROR_SUCCESS) - { - if ((type == REG_SZ) && - (size == 5) && - (buffer[0] == 'L') && - (buffer[1] == 'P') && - (buffer[2] == 'T') && - (buffer[3] >= '1') && - (buffer[3] <= '4') && - (buffer[4] == '\0')) - { - /* we found the entry in HKEY_LOCAL_MACHINE, now we need to */ - /* find the corresponding entry under HKEY_DYN_DATA. */ - /* add 5 to lm_path to skip over "Enum" and backslash */ - search_dyn_data(dd_path, &lm_path[5], (buffer[3] - '1')); - } - } - - index = 0; - - do - { - size = 1023; - - result = RegEnumKeyEx( - key, - index++, - buffer, - &size, - NULL, - NULL, - NULL, - &last_write); - - if (result == ERROR_SUCCESS) - { - lm_path[length] = '\\'; - lm_path[length + 1] = '\0'; - strcpy(&lm_path[length + 1], buffer); - - search_local_machine(lm_path, dd_path); - - lm_path[length] = '\0'; - } - } - while (result == ERROR_SUCCESS); - - RegCloseKey(key); - } -} - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -* -* GET_LPT_ADDRESSES_FROM_REGISTRY -* -* Searches Win95/98 registry recursively to get I/O port addresses for -* parallel ports. -*/ -void get_lpt_addresses_from_registry() -{ - char lm_path[1024]; - char dd_path[1024]; - - strcpy(lm_path, "Enum"); - strcpy(dd_path, "Config Manager"); - search_local_machine(lm_path, dd_path); -} -#endif -#endif - -void initialize_jtag_hardware() -{ - if (specified_com_port) - { - com_port = open(serial_port_name, O_RDWR); - if (com_port == -1) - { - fprintf(stderr, "Error: can't open serial port \"%s\"\n", - serial_port_name); - } - else - { - int i = 0, result = 0; - char data = 0; - - data = 0x7e; - write(com_port, &data, 1); - - for (i = 0; (i < 100) && (result != 1); ++i) - { - result = read(com_port, &data, 1); - } - - if (result == 1) - { - data = 0x70; write(com_port, &data, 1); /* TDO echo off */ - data = 0x72; write(com_port, &data, 1); /* auto LEDs off */ - data = 0x74; write(com_port, &data, 1); /* ERROR LED off */ - data = 0x76; write(com_port, &data, 1); /* DONE LED off */ - data = 0x60; write(com_port, &data, 1); /* signals low */ - } - else - { - fprintf(stderr, "Error: BitBlaster is not responding on %s\n", - serial_port_name); - close(com_port); - com_port = -1; - } - } - } - else - { -#if PORT == WINDOWS || PORT == DOS - -#if PORT == WINDOWS - if (windows_nt) - { - initialize_nt_driver(); - } - else - { -#ifdef __BORLANDC__ - fprintf(stderr, "Error: parallel port access is not available\n"); -#else - if (!specified_lpt_addr) - { - get_lpt_addresses_from_registry(); - - lpt_addr = 0; - - if (specified_lpt_port) - { - lpt_addr = lpt_addresses_from_registry[lpt_port - 1]; - } - - if (lpt_addr == 0) - { - if (lpt_addresses_from_registry[3] != 0) - lpt_addr = lpt_addresses_from_registry[3]; - if (lpt_addresses_from_registry[2] != 0) - lpt_addr = lpt_addresses_from_registry[2]; - if (lpt_addresses_from_registry[1] != 0) - lpt_addr = lpt_addresses_from_registry[1]; - if (lpt_addresses_from_registry[0] != 0) - lpt_addr = lpt_addresses_from_registry[0]; - } - - if (lpt_addr == 0) - { - if (specified_lpt_port) - { - lpt_addr = lpt_addr_table[lpt_port - 1]; - } - else - { - lpt_addr = lpt_addr_table[0]; - } - } - } - initial_lpt_ctrl = windows_nt ? 0x0c : read_byteblaster(2); -#endif - } -#endif - -#if PORT == DOS - /* - * Read word at specific memory address to get the LPT port address - */ - WORD *bios_address = (WORD *) 0x00400008; - - if (!specified_lpt_addr) - { - lpt_addr = bios_address[lpt_port - 1]; - - if ((lpt_addr != 0x278) && - (lpt_addr != 0x27c) && - (lpt_addr != 0x378) && - (lpt_addr != 0x37c) && - (lpt_addr != 0x3b8) && - (lpt_addr != 0x3bc)) - { - lpt_addr = lpt_addr_table[lpt_port - 1]; - } - } - initial_lpt_ctrl = read_byteblaster(2); -#endif - - /* set AUTO-FEED low to enable ByteBlaster (value to port inverted) */ - /* set DIRECTION low for data output from parallel port */ - write_byteblaster(2, (initial_lpt_ctrl | 0x02) & 0xDF); -#endif - } -} - -void close_jtag_hardware() -{ - if (specified_com_port) - { - if (com_port != -1) close(com_port); - } - else - { -#if PORT == WINDOWS || PORT == DOS - /* set AUTO-FEED high to disable ByteBlaster */ - write_byteblaster(2, initial_lpt_ctrl & 0xfd); - -#if PORT == WINDOWS - if (windows_nt && (nt_device_handle != INVALID_HANDLE_VALUE)) - { - if (port_io_count > 0) flush_ports(); - - CloseHandle(nt_device_handle); - } -#endif -#endif - } -} - -#if PORT == WINDOWS -/**************************************************************************/ -/* */ - -BOOL initialize_nt_driver() - -/* */ -/* Uses CreateFile() to open a connection to the Windows NT device */ -/* driver. */ -/* */ -/**************************************************************************/ -{ - BOOL status = FALSE; - - ULONG buffer[1]; - ULONG returned_length = 0; - char nt_lpt_str[] = { '\\', '\\', '.', '\\', - 'A', 'L', 'T', 'L', 'P', 'T', '1', '\0' }; - - nt_lpt_str[10] = (char) ('1' + (lpt_port - 1)); - - nt_device_handle = CreateFile( - nt_lpt_str, - GENERIC_READ | GENERIC_WRITE, - 0, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); - - if (nt_device_handle == INVALID_HANDLE_VALUE) - { - fprintf(stderr, - "I/O error: cannot open device %s\nCheck port number and device driver installation", - nt_lpt_str); - } - else - { - if (DeviceIoControl( - nt_device_handle, /* Handle to device */ - PGDC_IOCTL_GET_DEVICE_INFO_PP, /* IO Control code */ - (ULONG *)NULL, /* Buffer to driver. */ - 0, /* Length of buffer in bytes. */ - &buffer, /* Buffer from driver. */ - sizeof(ULONG), /* Length of buffer in bytes. */ - &returned_length, /* Bytes placed in data_buffer. */ - NULL)) /* Wait for operation to complete */ - { - if (returned_length == sizeof(ULONG)) - { - if (buffer[0] == PGDC_HDLC_NTDRIVER_VERSION) - { - status = TRUE; - } - else - { - fprintf(stderr, - "I/O error: device driver %s is not compatible\n(Driver version is %lu, expected version %lu.\n", - nt_lpt_str, - (unsigned long) buffer[0], - (unsigned long) PGDC_HDLC_NTDRIVER_VERSION); - } - } - else - { - fprintf(stderr, "I/O error: device driver %s is not compatible.\n", - nt_lpt_str); - } - } - - if (!status) - { - CloseHandle(nt_device_handle); - nt_device_handle = INVALID_HANDLE_VALUE; - } - } - - if (!status) - { - /* error message already given */ - exit(1); - } - - return (status); -} -#endif - -#if PORT == WINDOWS || PORT == DOS -/**************************************************************************/ -/* */ - -void write_byteblaster -( - int port, - int data -) - -/* */ -/**************************************************************************/ -{ -#if PORT == WINDOWS - BOOL status = FALSE; - - int returned_length = 0; - int buffer[2]; - - if (windows_nt) - { - /* - * On Windows NT, access hardware through device driver - */ - if (port == 0) - { - port_io_buffer[port_io_count].data = (USHORT) data; - port_io_buffer[port_io_count].command = PGDC_WRITE_PORT; - ++port_io_count; - - if (port_io_count >= PORT_IO_BUFFER_SIZE) flush_ports(); - } - else - { - if (port_io_count > 0) flush_ports(); - - buffer[0] = port; - buffer[1] = data; - - status = DeviceIoControl( - nt_device_handle, /* Handle to device */ - PGDC_IOCTL_WRITE_PORT_PP, /* IO Control code for write */ - (ULONG *)&buffer, /* Buffer to driver. */ - 2 * sizeof(int), /* Length of buffer in bytes. */ - (ULONG *)NULL, /* Buffer from driver. Not used. */ - 0, /* Length of buffer in bytes. */ - (ULONG *)&returned_length, /* Bytes returned. Should be zero. */ - NULL); /* Wait for operation to complete */ - - if ((!status) || (returned_length != 0)) - { - fprintf(stderr, "I/O error: Cannot access ByteBlaster hardware\n"); - CloseHandle(nt_device_handle); - exit(1); - } - } - } - else -#endif - { - /* - * On Windows 95, access hardware directly - */ - outp((WORD)(port + lpt_addr), (WORD)data); - } -} - -/**************************************************************************/ -/* */ - -int read_byteblaster -( - int port -) - -/* */ -/**************************************************************************/ -{ - int data = 0; - -#if PORT == WINDOWS - - BOOL status = FALSE; - - int returned_length = 0; - - if (windows_nt) - { - /* flush output cache buffer before reading from device */ - if (port_io_count > 0) flush_ports(); - - /* - * On Windows NT, access hardware through device driver - */ - status = DeviceIoControl( - nt_device_handle, /* Handle to device */ - PGDC_IOCTL_READ_PORT_PP, /* IO Control code for Read */ - (ULONG *)&port, /* Buffer to driver. */ - sizeof(int), /* Length of buffer in bytes. */ - (ULONG *)&data, /* Buffer from driver. */ - sizeof(int), /* Length of buffer in bytes. */ - (ULONG *)&returned_length, /* Bytes placed in data_buffer. */ - NULL); /* Wait for operation to complete */ - - if ((!status) || (returned_length != sizeof(int))) - { - fprintf(stderr, "I/O error: Cannot access ByteBlaster hardware\n"); - CloseHandle(nt_device_handle); - exit(1); - } - } - else -#endif - { - /* - * On Windows 95, access hardware directly - */ - data = inp((WORD)(port + lpt_addr)); - } - - return (data & 0xff); -} - -#if PORT == WINDOWS -void flush_ports(void) -{ - ULONG n_writes = 0L; - BOOL status; - - status = DeviceIoControl( - nt_device_handle, /* handle to device */ - PGDC_IOCTL_PROCESS_LIST_PP, /* IO control code */ - (LPVOID)port_io_buffer, /* IN buffer (list buffer) */ - port_io_count * sizeof(struct PORT_IO_LIST_STRUCT),/* length of IN buffer in bytes */ - (LPVOID)port_io_buffer, /* OUT buffer (list buffer) */ - port_io_count * sizeof(struct PORT_IO_LIST_STRUCT),/* length of OUT buffer in bytes */ - &n_writes, /* number of writes performed */ - 0); /* wait for operation to complete */ - - if ((!status) || ((port_io_count * sizeof(struct PORT_IO_LIST_STRUCT)) != n_writes)) - { - fprintf(stderr, "I/O error: Cannot access ByteBlaster hardware\n"); - CloseHandle(nt_device_handle); - exit(1); - } - - port_io_count = 0; -} -#endif /* PORT == WINDOWS */ -#endif /* PORT == WINDOWS || PORT == DOS */ - -#if 0 -#if !defined (DEBUG) -#pragma optimize ("ceglt", off) -#endif -#endif - -void delay_loop(long count) -{ - while (count != 0L) count--; -} - -#if PORT == EMBEDDED - -static void jbi_init_mm(void) -{ -#if defined(USE_STATIC_MEMORY) - int i; -#endif /* USE_STATIC_MEMORY */ - -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - n_bytes_allocated = 0; -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - -#if defined(MEM_TRACKER) - peak_memory_usage = 0; - peak_allocations = 0; - n_allocations = 0; -#if defined(USE_STATIC_MEMORY) - n_bytes_not_recovered = 0; -#endif /* USE_STATIC_MEMORY */ -#endif /* MEM_TRACKER */ - -#if defined(USE_STATIC_MEMORY) - jbi_dbg(DEBUG_DETAIL, "static_memory_heap: 0x%p(0x%x)\n", - static_memory_heap, N_STATIC_MEMORY_BYTES); - for (i = 0; i < N_STATIC_MEMORY_BYTES; i++) { - static_memory_heap[i] = 0; - } -#endif /* USE_STATIC_MEMORY */ - - jbi_delay_us = 0; - jbi_delay_count = 0; - jbi_peak_us = 0; -} - -static void jbi_exit_mm(void) -{ -#if defined(USE_STATIC_MEMORY) || defined(MEM_TRACKER) - jbi_dbg(DEBUG_DETAIL, "n_bytes_allocated: %u\n", n_bytes_allocated); - n_bytes_allocated = 0; -#endif /* USE_STATIC_MEMORY || MEM_TRACKER */ - -#if defined(MEM_TRACKER) - jbi_dbg(DEBUG_DETAIL, "peak_memory_usage: %u\n", peak_memory_usage); - jbi_dbg(DEBUG_DETAIL, "peak_allocations: %u\n", peak_allocations); - jbi_dbg(DEBUG_DETAIL, "n_allocations: %u\n", n_allocations); - peak_memory_usage = 0; - peak_allocations = 0; - n_allocations = 0; -#if defined(USE_STATIC_MEMORY) - jbi_dbg(DEBUG_DETAIL, "n_bytes_not_recovered: %u\n", n_bytes_not_recovered); - n_bytes_not_recovered = 0; -#endif /* USE_STATIC_MEMORY */ -#endif /* MEM_TRACKER */ - - jbi_dbg(DEBUG_DETAIL, "jbi_delay: %ld us, %ld count, peak %ld us\n", - jbi_delay_us, jbi_delay_count, jbi_peak_us); -} - -static char *get_exit_string(int format_version, int exit_code) -{ - char *exit_string = NULL; - - if (format_version == 2){ - switch (exit_code) { - case 0: - exit_string = "Success"; - break; - case 1: - exit_string = "Checking chain failure"; - break; - case 2: - exit_string = "Reading IDCODE failure"; - break; - case 3: - exit_string = "Reading USERCODE failure"; - break; - case 4: - exit_string = "Reading UESCODE failure"; - break; - case 5: - exit_string = "Entering ISP failure"; - break; - case 6: - exit_string = "Unrecognized device"; - break; - case 7: - exit_string = "Device revision is not supported"; - break; - case 8: - exit_string = "Erase failure"; - break; - case 9: - exit_string = "Device is not blank"; - break; - case 10: - exit_string = "Device programming failure"; - break; - case 11: - exit_string = "Device verify failure"; - break; - case 12: - exit_string = "Read failure"; break; - case 13: - exit_string = "Calculating checksum failure"; - break; - case 14: - exit_string = "Setting security bit failure"; - break; - case 15: - exit_string = "Querying security bit failure"; - break; - case 16: - exit_string = "Exiting ISP failure"; - break; - case 17: - exit_string = "Performing system test failure"; - break; - default: - exit_string = "Unknown exit code"; - break; - } - } else { - switch (exit_code) { - case 0: - exit_string = "Success"; - break; - case 1: - exit_string = "Illegal initialization values"; - break; - case 2: - exit_string = "Unrecognized device"; - break; - case 3: - exit_string = "Device revision is not supported"; - break; - case 4: - exit_string = "Device programming failure"; - break; - case 5: - exit_string = "Device is not blank"; - break; - case 6: - exit_string = "Device verify failure"; - break; - case 7: - exit_string = "SRAM configuration failure"; - break; - default: - exit_string = "Unknown exit code"; - break; - } - } - - return exit_string; -} - -static void jbi_help(void) -{ - fprintf(stderr, "Usage: jbi [options]\n"); - fprintf(stderr, "\nAvailable options:\n"); - fprintf(stderr, " -h : show help message\n"); - fprintf(stderr, " -v : show verbose messages\n"); - fprintf(stderr, " -i : show file info only - does not execute any action\n"); - fprintf(stderr, " -a : specify an action name (Jam STAPL)\n"); - fprintf(stderr, " -d : initialize variable to specified value (Jam 1.1)\n"); - fprintf(stderr, " -d : enable optional procedure (Jam STAPL)\n"); - fprintf(stderr, " -d : disable recommended procedure (Jam STAPL)\n"); - fprintf(stderr, " -r : don't reset JTAG TAP after use\n"); -} - -int jbi_debug(int level) -{ - jbi_debug_level = level; - - return 0; -} - -int jbi_main(unsigned char *addr, unsigned long size, int argc, char * const argv[]) -{ - BOOL help = FALSE; - BOOL error = FALSE; - long offset = 0L; - long error_address = 0L; - JBI_RETURN_TYPE crc_result = JBIC_SUCCESS; - JBI_RETURN_TYPE exec_result = JBIC_SUCCESS; - unsigned short expected_crc = 0; - unsigned short actual_crc = 0; - char key[33] = {0}; - char value[257] = {0}; - int exit_status = 0; - int arg = 0; - int exit_code = 0; - int format_version = 0; - char *workspace = NULL; - char *action = NULL; - char *init_list[10]; - int init_count = 0; - long workspace_size = 0; - char *exit_string = NULL; - int reset_jtag = 1; - int execute_program = 1; - int action_count = 0; - int procedure_count = 0; - int index = 0; - char *action_name = NULL; - char *description = NULL; - JBI_PROCINFO *procedure_list = NULL; - JBI_PROCINFO *procptr = NULL; - char *endp = NULL; - - verbose = FALSE; - - init_list[0] = NULL; - - /* print out the version string and copyright message */ - printf("Jam STAPL ByteCode Player Version 2.2\n"); - printf("Copyright (C) 1998-2001 Altera Corporation\n\n"); - - for (arg = 0; arg < argc; arg++) { - if (argv[arg][0] == '-') { - switch (toupper(argv[arg][1])) { - case 'A': /* set action name */ - if (action == NULL) { - action = &argv[arg][2]; - } else { - error = TRUE; - } - break; - case 'D': /* initialization list */ - if (argv[arg][2] == '"') { - init_list[init_count] = &argv[arg][3]; - } else { - init_list[init_count] = &argv[arg][2]; - } - init_list[++init_count] = NULL; - break; - case 'R': /* don't reset the JTAG chain after use */ - reset_jtag = 0; - break; - case 'M': /* set memory size */ - workspace = (char *) simple_strtoul(&argv[arg][2], &endp, 16); - if (workspace == NULL) { - printf("Error workspace\n"); - error = TRUE; - } else { - if (*endp == '.') { - workspace_size = simple_strtoul(endp + 1, &endp, 16); - if (*endp != '\0') { - printf("Error workspace size end\n"); - error = TRUE; - } - } else { - printf("No workspace size\n"); - error = TRUE; - } - } - break; - case 'H': /* help */ - help = TRUE; - break; - case 'V': /* verbose */ - verbose = TRUE; - break; - case 'I': /* show info only, do not execute */ - verbose = TRUE; - execute_program = 0; - break; - default: - error = TRUE; - break; - } - } else { - error = TRUE; - } - - if (error) { - fprintf(stderr, "Illegal argument: \"%s\"\n", argv[arg]); - help = TRUE; - error = FALSE; - } - } - - if (help) { - jbi_help(); - return 0; - } - - /* Calibrate the delay loop function */ - calibrate_delay(); - - jbi_init_mm(); - - /* Check CRC */ - crc_result = jbi_check_crc(addr, size, &expected_crc, &actual_crc); - if (verbose || (crc_result == JBIC_CRC_ERROR)) { - switch (crc_result) { - case JBIC_SUCCESS: - printf("CRC matched: CRC value = %04X\n", actual_crc); - break; - case JBIC_CRC_ERROR: - printf("CRC mismatch: expected %04X, actual %04X\n", expected_crc, actual_crc); - return -1; - case JBIC_UNEXPECTED_END: - printf("Expected CRC not found, actual CRC value = %04X\n", actual_crc); - return -1; - case JBIC_IO_ERROR: - printf("Error: File format is not recognized.\n"); - return -1; - default: - printf("CRC function returned error code %d\n", crc_result); - return -1; - } - } - - if (verbose) { - /* Display file format version */ - jbi_get_file_info(addr, size, &format_version, - &action_count, &procedure_count); - - printf("File format is %s ByteCode format\n", - (format_version == 2) ? "Jam STAPL" : "pre-standardized Jam 1.1"); - - /* Dump out NOTE fields */ - while (jbi_get_note(addr, size, &offset, key, value, 256) == 0) { - printf("NOTE \"%s\" = \"%s\"\n", key, value); - } - - /* Dump the action table */ - if ((format_version == 2) && (action_count > 0)) { - printf("\nActions available in this file:\n"); - - for (index = 0; index < action_count; ++index) { - jbi_get_action_info(addr, size, - index, &action_name, &description, &procedure_list); - - if (description == NULL) { - printf("%s\n", action_name); - } else { - printf("%s \"%s\"\n", action_name, description); - } - - procptr = procedure_list; - while (procptr != NULL) { - if (procptr->attributes != 0) { - printf(" %s (%s)\n", procptr->name, - (procptr->attributes == 1) ? "optional" : "recommended"); - } - - procedure_list = procptr->next; - jbi_free(procptr); - procptr = procedure_list; - } - } - - /* add a blank line before execution messages */ - if (execute_program) - printf("\n"); - } - } - - if (execute_program) { - /* Execute the Jam STAPL ByteCode program */ - exec_result = jbi_execute(addr, size, workspace, - workspace_size, action, init_list, reset_jtag, - &error_address, &exit_code, &format_version); - if (exec_result == JBIC_SUCCESS) { - exit_string = get_exit_string(format_version, exit_code); - printf("Exit code = %d... %s\n", exit_code, exit_string); - } else if ((format_version == 2) && (exec_result == JBIC_ACTION_NOT_FOUND)) { - if ((action == NULL) || (*action == '\0')) { - printf("Error: no action specified for Jam STAPL file.\n" - "Program terminated.\n"); - } else { - printf("Error: action \"%s\" is not supported for this Jam STAPL file.\n" - "Program terminated.\n", action); - } - } else if (exec_result < MAX_ERROR_CODE) { - printf("Error at address %ld: %s.\nProgram terminated.\n", - error_address, error_text[exec_result]); - } else { - printf("Unknown error code %d\n", exec_result); - } - } - - if (jtag_hardware_initialized) { - close_jtag_hardware(); - jtag_hardware_initialized = FALSE; - } - -#if defined(MEM_TRACKER) - if (verbose) { -#if defined(USE_STATIC_MEMORY) - fprintf(stdout, "Memory Usage Info: static memory size = %uBytes (%dKB)\n", - N_STATIC_MEMORY_BYTES, N_STATIC_MEMORY_KBYTES); -#endif /* USE_STATIC_MEMORY */ - fprintf(stdout, "Memory Usage Info: peak memory usage = %uBytes (%dKB)\n", - peak_memory_usage, (peak_memory_usage + 1023) / 1024); - fprintf(stdout, "Memory Usage Info: peak allocations = %u\n", - peak_allocations); -#if defined(USE_STATIC_MEMORY) - if ((n_bytes_allocated - n_bytes_not_recovered) != 0) { - fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", - (n_bytes_allocated - n_bytes_not_recovered), - ((n_bytes_allocated - n_bytes_not_recovered) + 1023) / 1024); - } -#else /* USE_STATIC_MEMORY */ - if (n_bytes_allocated != 0) { - fprintf(stdout, "Memory Usage Info: bytes still allocated = %d (%dKB)\n", - n_bytes_allocated, (n_bytes_allocated + 1023) / 1024); - } -#endif /* USE_STATIC_MEMORY */ - if (n_allocations != 0) { - fprintf(stdout, "Memory Usage Info: allocations not freed = %d\n", n_allocations); - } - } -#endif /* MEM_TRACKER */ - - jbi_exit_mm(); - - if (exec_result != JBIC_SUCCESS) { - return (-exec_result); - } - - if (exit_code != 0) { - return (exit_code); - } - - return (exit_status); -} - -#endif /* PORT == EMBEDDED */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h deleted file mode 100644 index 5e5c5332f385..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_cpld/jbistub.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef __JBISTUB_H__ -#define __JBISTUB_H__ - -#include -#include -#include -#include -#include -#include -#include - -#ifdef CONFIG_64BIT -typedef s64 addr_t; -#else -typedef s32 addr_t; -#endif -/* typedef long addr_t; */ - -/* #define USE_STATIC_MEMORY 100 */ -/* #define MEM_TRACKER */ - -/* #define O_RDWR 1 */ - -#define stdout (1) -#define stderr (2) - -#define puts printk -#define printf printk - -#define fprintf(std, fmt, arg...) \ - do { \ - printf(fmt, ##arg); \ - } while (0) - -#define DEBUG_NONE 0 -#define DEBUG_ERR 1 -#define DEBUG_DETAIL 2 -#define DEBUG_NOISY 3 -#define DEBUG_MM 4 - -#define jbi_dbg(level, fmt, arg...) \ - do { \ - if (level <= jbi_debug_level) { \ - printf(fmt, ##arg); \ - } \ - } while (0) - -extern int jbi_debug_level; - -static inline int open(char *path, int flag) -{ - return 0; -} - -static inline int close(int fd) -{ - return 0; -} - -static inline int read(int fd, char *buf, int count) -{ - return 0; -} - -static inline int write(int fd, char *buf, int count) -{ - return 0; -} - -static inline int fflush(int fd) -{ - return 0; -} - -static inline int clock(void) -{ - return 0; -} - -static inline int atoi(const char *nptr) -{ - return (int) simple_strtol(nptr, (char **) NULL, 10); -} - -static inline void *malloc(size_t size) -{ - return kmalloc(size, GFP_KERNEL); -} - -static inline void free(void *ptr) -{ - kfree(ptr); -} - -#endif /* __JBISTUB_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile deleted file mode 100644 index caad44948030..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -#include $(top_srcdir)/debian/rules -#KERNELDIR := ${KBUILD_OUTPUT} - -PWD = $(shell pwd) - -EXTRA_CFLAGS:= -I$(M)/include -MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) -FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../include) -EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) -EXTRA_CFLAGS+= -Wall - -firmware_driver_ispvme-objs := firmware_ispvme.o -firmware_driver_ispvme-objs += firmware_cpld_ispvme.o firmware_cpld_upgrade_ispvme.o - -#ifndef CONFIG_FRM_PRODUCT_FILE - -$(warning $(firmware_driver_ispvme-objs)) -obj-m := firmware_driver_ispvme.o -all: - $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules - @if [ ! -d $(common_module_dir) ]; then mkdir -p $(common_module_dir) ;fi - cp -p $(PWD)/*.ko $(common_module_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c deleted file mode 100644 index 9841782290c1..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_ispvme.c +++ /dev/null @@ -1,450 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int firmware_cpld_open(struct inode *inode, struct file *file) -{ - firmware_device_t *frm_dev; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Open cpld device.\n"); - frm_dev = firmware_get_device_by_minor(MINOR(inode->i_rdev)); - if (frm_dev == NULL) { - return -ENXIO; - } - file->private_data = frm_dev; - - return FIRMWARE_SUCCESS; -} - -static ssize_t firmware_cpld_read (struct file *file, char __user *buf, size_t count, - loff_t *offset) -{ - return 0; -} - -static ssize_t firmware_cpld_write (struct file *file, const char __user *buf, size_t count, - loff_t *offset) -{ - return 0; -} - -static loff_t firmware_cpld_llseek(struct file *file, loff_t offset, int origin) -{ - return 0; -} - -/* - * firmware_cpld_ioctl - * function: ispvme driver ioctl command parsing function - * @file: param[in] device file name - * @cmd: param[in] command - * @arg: param[in] the parameters in the command - * return value: success-FIRMWARE_SUCCESS; fail:other value - */ -static long firmware_cpld_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - int ret; - void __user *argp; - firmware_device_t *frm_dev; - firmware_cpld_t *cpld_info; - char value; - - /* Get device private data */ - frm_dev = (firmware_device_t *)file->private_data; - cpld_info = NULL; - if (frm_dev != NULL) { - if (frm_dev->priv != NULL) { - cpld_info = (firmware_cpld_t *)frm_dev->priv; - } - } - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to frm_dev->priv sysfs info.\n"); - return FIRMWARE_FAILED; - } - argp = (void __user *)arg; - - switch (cmd) { - case FIRMWARE_JTAG_TDI: - /* Set the TDI signal */ - if (copy_from_user(&value, argp, sizeof(value))) { - return -EFAULT; - } - if (fwm_cpld_tdi_op(value) < 0 ) { - return -EFAULT; - } - break; - case FIRMWARE_JTAG_TCK: - /* Set the TCK signal */ - if (copy_from_user(&value, argp, sizeof(value))) { - return -EFAULT; - } - if (fwm_cpld_tck_op(value) < 0) { - return -EFAULT; - } - break; - case FIRMWARE_JTAG_TMS: - /* Set the TMS signal */ - if (copy_from_user(&value, argp, sizeof(value))) { - return -EFAULT; - } - if (fwm_cpld_tms_op(value) < 0) { - return -EFAULT; - } - break; - case FIRMWARE_JTAG_TDO: - /* Read the TDO signal */ - value = fwm_cpld_tdo_op(); - if (copy_to_user(argp, &value, sizeof(value))) { - return -EFAULT; - } - break; - case FIRMWARE_JTAG_INIT: - /* The VME upgrade mode initializes the operation */ - ret=firmware_init_vme(cpld_info); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to init upgrade.(chain = %d)\n", - frm_dev != NULL ? frm_dev->chain : -1); - return FIRMWARE_FAILED; - } - break; - case FIRMWARE_JTAG_FINISH: - /* The VME upgrade mode completes the operation */ - ret=firmware_finish_vme(cpld_info); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to release upgrade.(chain = %d)\n", - frm_dev != NULL ? frm_dev->chain : -1); - return FIRMWARE_FAILED; - } - break; - default: - FIRMWARE_DRIVER_DEBUG_ERROR("not find cmd: %d\r\n", cmd); - return -ENOTTY; - } /* End of switch */ - - return FIRMWARE_SUCCESS; -} - -static int firmware_cpld_release(struct inode *inode, struct file *file) -{ - return 0; -} - -static const struct file_operations cpld_dev_fops = { - .owner = THIS_MODULE, - .llseek = firmware_cpld_llseek, - .read = firmware_cpld_read, - .write = firmware_cpld_write, - .unlocked_ioctl = firmware_cpld_ioctl, - .open = firmware_cpld_open, - .release = firmware_cpld_release, -}; - -static int of_firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) -{ - int ret; - char *name; - int i; - char buf[64]; - firmware_logic_dev_en_t *firmware_logic_dev_en_point; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); - return -1; - } - - mem_clear(cpld_info, sizeof(firmware_cpld_t)); - ret = 0; - ret += of_property_read_string(dev->of_node, "type", (const char **)&name); - ret += of_property_read_u32(dev->of_node, "tdi", &cpld_info->tdi); - ret += of_property_read_u32(dev->of_node, "tck", &cpld_info->tck); - ret += of_property_read_u32(dev->of_node, "tms", &cpld_info->tms); - ret += of_property_read_u32(dev->of_node, "tdo", &cpld_info->tdo); - - ret += of_property_read_u32(dev->of_node, "chain", &cpld_info->chain); - ret += of_property_read_u32(dev->of_node, "chip_index", &cpld_info->chip_index); - - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config error, ret:%d.\n", ret); - return -ENXIO; - } - - strncpy(cpld_info->type, name, sizeof(cpld_info->type) - 1); - - ret = of_property_read_u32(dev->of_node, "tck_delay", &cpld_info->tck_delay); - if(ret != 0) { - cpld_info->tck_delay = 60; - } - - cpld_info->gpio_en_info_num = 0; - /* Enable through GPIO */ - for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_gpio_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_gpio); - if(ret != 0) { - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_level_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &cpld_info->gpio_en_info[i].en_level); - if(ret != 0) { - break; - } - cpld_info->gpio_en_info_num++; - } - - cpld_info->logic_dev_en_num = 0; - /* Enable through register */ - for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { - firmware_logic_dev_en_point = &cpld_info->logic_dev_en_info[i]; - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_dev_%d", i); - ret = 0; - ret += of_property_read_string(dev->of_node, buf, (const char **)&name); - if(ret != 0) { - /* Failure to resolve to EN_LOGIC_DEV means no logical device is enabled. No failure is returned */ - ret = 0; - break; - } - strncpy(firmware_logic_dev_en_point->dev_name, name, FIRMWARE_DEV_NAME_LEN - 1); - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_addr_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->addr); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_addr_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_mask_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->mask); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_mask_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_en_val_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->en_val); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_en_val_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_dis_val_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->dis_val); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_dis_val_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_width_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->width); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_width_%d ret =%d.\n", i, ret); - break; - } - - cpld_info->logic_dev_en_num++; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, gpio_en_info_num:%u logic_dev_en_num:%u\n", - cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num, cpld_info->logic_dev_en_num); - FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", - cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); - - return 0; -} - -static int firmware_upgrade_config_init(struct device *dev, firmware_cpld_t *cpld_info) -{ - int i; - - firmware_logic_dev_en_t *firmware_logic_dev_en_point; - firmware_upgrade_device_t *firmware_upgrade_device; - firmware_jtag_device_t jtag_upg_device; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_upgrade_config_init\r\n"); - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); - return -1; - } - - if (dev->platform_data == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("platform data config error.\n"); - return -1; - } - firmware_upgrade_device = dev->platform_data; - jtag_upg_device = firmware_upgrade_device->upg_type.jtag; - - mem_clear(cpld_info, sizeof(firmware_cpld_t)); - strncpy(cpld_info->type, firmware_upgrade_device->type, sizeof(cpld_info->type) - 1); - cpld_info->tdi = jtag_upg_device.tdi; - cpld_info->tck = jtag_upg_device.tck; - cpld_info->tms = jtag_upg_device.tms; - cpld_info->tdo = jtag_upg_device.tdo; - cpld_info->chain = firmware_upgrade_device->chain; - cpld_info->chip_index = firmware_upgrade_device->chip_index; - - if (jtag_upg_device.tck_delay == 0) { - cpld_info->tck_delay = 60; - FIRMWARE_DRIVER_DEBUG_VERBOSE("no config tck_delay, use default value:%u\n", cpld_info->tck_delay); - } else { - cpld_info->tck_delay = jtag_upg_device.tck_delay; - } - - if (firmware_upgrade_device->en_gpio_num > FIRMWARE_EN_INFO_MAX) { - FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_gpio_num:%u configurations exceeds the maximum limit:%u.\n", - firmware_upgrade_device->en_gpio_num, FIRMWARE_EN_INFO_MAX); - return -ENXIO; - } - cpld_info->gpio_en_info_num = firmware_upgrade_device->en_gpio_num; - /* Enable through GPIO */ - for (i = 0; i < cpld_info->gpio_en_info_num; i++) { - cpld_info->gpio_en_info[i].en_gpio = firmware_upgrade_device->en_gpio[i]; - cpld_info->gpio_en_info[i].en_level = firmware_upgrade_device->en_level[i]; - } - - if (firmware_upgrade_device->en_logic_num > FIRMWARE_EN_INFO_MAX) { - FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_logic_num:%u configurations exceeds the maximum limit:%u.\n", - firmware_upgrade_device->en_logic_num, FIRMWARE_EN_INFO_MAX); - return -ENXIO; - } - cpld_info->logic_dev_en_num = firmware_upgrade_device->en_logic_num; - /* Enable through register */ - for (i = 0; i < cpld_info->logic_dev_en_num; i++) { - firmware_logic_dev_en_point = &cpld_info->logic_dev_en_info[i]; - strncpy(firmware_logic_dev_en_point->dev_name, firmware_upgrade_device->en_logic_dev[i], - FIRMWARE_DEV_NAME_LEN - 1); - firmware_logic_dev_en_point->addr = firmware_upgrade_device->en_logic_addr[i]; - firmware_logic_dev_en_point->mask = firmware_upgrade_device->en_logic_mask[i]; - firmware_logic_dev_en_point->en_val = firmware_upgrade_device->en_logic_en_val[i]; - firmware_logic_dev_en_point->dis_val = firmware_upgrade_device->en_logic_dis_val[i]; - firmware_logic_dev_en_point->width = firmware_upgrade_device->en_logic_width[i]; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("type:%s, chain:%u, chip_index:%u, gpio_en_info_num:%u logic_dev_en_num:%u\n", - cpld_info->type, cpld_info->chain, cpld_info->chip_index, cpld_info->gpio_en_info_num, cpld_info->logic_dev_en_num); - FIRMWARE_DRIVER_DEBUG_VERBOSE("tdi:%u, tck:%u, tms:%u, tdo:%u tck_delay:%u.\n", - cpld_info->tdi, cpld_info->tck, cpld_info->tms, cpld_info->tdo, cpld_info->tck_delay); - - return 0; -} - -static int firmware_cpld_probe(struct platform_device *pdev) -{ - int ret; - firmware_cpld_t *cpld_info; - firmware_device_t *frm_dev; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_cpld_probe\r\n"); - /* Gets the information in the device tree */ - cpld_info = devm_kzalloc(&pdev->dev, sizeof(firmware_cpld_t), GFP_KERNEL); - if (cpld_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc cpld device tree.\n"); - return -EPERM; - } - - if (pdev->dev.of_node) { - ret = of_firmware_upgrade_config_init(&pdev->dev, cpld_info); - } else { - ret = firmware_upgrade_config_init(&pdev->dev, cpld_info); - } - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("get config init from dts error.\n"); - return -EPERM; - } - - frm_dev = devm_kzalloc(&pdev->dev, sizeof(firmware_device_t), GFP_KERNEL); - if (frm_dev == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc firmware device.\n"); - return -EPERM; - } - - /* Based on the link number, determine the name of the device file */ - frm_dev->chain = cpld_info->chain; - snprintf(frm_dev->name, FIRMWARE_NAME_LEN - 1, "firmware_cpld_ispvme%d", frm_dev->chain); - strncpy(cpld_info->devname, frm_dev->name, strlen(frm_dev->name) + 1); - - INIT_LIST_HEAD(&frm_dev->list); - frm_dev->dev.minor = MISC_DYNAMIC_MINOR; - frm_dev->dev.name = frm_dev->name; - frm_dev->dev.fops = &cpld_dev_fops; - frm_dev->priv = cpld_info; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Register cpld firmware chain:%d, name:%s.\n", frm_dev->chain, frm_dev->name); - - ret = firmware_device_register(frm_dev); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to register firmware device.\n"); - return -EPERM; - } - - platform_set_drvdata(pdev, frm_dev); - return 0; -} - -static int __exit firmware_cpld_remove(struct platform_device *pdev) -{ - firmware_device_t *frm_dev; - - frm_dev = (firmware_device_t *)platform_get_drvdata(pdev); - firmware_device_unregister(frm_dev); - platform_set_drvdata(pdev, NULL); - - return 0; -} - -static struct of_device_id cpld_match[] = { - { - .compatible = "firmware_cpld_ispvme", - }, - {}, -}; - -static struct platform_driver cpld_driver = { - .driver = { - .name = "firmware_cpld_ispvme", - .owner = THIS_MODULE, - .of_match_table = cpld_match, - }, - .probe = firmware_cpld_probe, - .remove = firmware_cpld_remove, -}; - -static firmware_driver_t fmw_drv_cpld = { - .name = "firmware_cpld_ispvme", - .drv = &cpld_driver, -}; - -int firmware_cpld_init(void) -{ - int ret; - - INIT_LIST_HEAD(&fmw_drv_cpld.list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("ispvme upgrade driver register \n"); - ret = firmware_driver_register(&fmw_drv_cpld); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("ispvme upgrade driver register failed\n"); - return ret; - } - return 0; -} - -void firmware_cpld_exit(void) -{ - firmware_driver_unregister(&fmw_drv_cpld); - INIT_LIST_HEAD(&fmw_drv_cpld.list); -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c deleted file mode 100644 index b8896ed75f38..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_cpld_upgrade_ispvme.c +++ /dev/null @@ -1,691 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* TCK clock MAX 16MHz */ -#define TCK_DELAY (current_fmw_cpld->tck_delay) - -#if 0 -static firmware_cpld_t default_fmw_cpld; -#endif - -static firmware_cpld_t *current_fmw_cpld; - -static int TDI_PULL_UP(void); -static int TDI_PULL_DOWN(void); -static int TMS_PULL_UP(void); -static int TMS_PULL_DOWN(void); -static int TCK_PULL_UP(void); -static int TCK_PULL_DOWN(void); - -/* - * set_currrent_cpld_info - * function: Save the current device information - * @info: param[in] Information about the device to be updated - */ -static void set_currrent_cpld_info(firmware_cpld_t *info) -{ - current_fmw_cpld = info; -} - -static int firmware_file_read(const char *path, uint32_t addr, uint8_t *val, size_t size) -{ - int ret; - struct file *filp; - loff_t pos; - - filp = filp_open(path, O_RDONLY, 0); - if (IS_ERR(filp)) { - FIRMWARE_DRIVER_DEBUG_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); - filp = NULL; - goto exit; - } - - pos = (loff_t)addr; - ret = kernel_read(filp, val, size, &pos); - if (ret != size) { - FIRMWARE_DRIVER_DEBUG_ERROR("read kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); - goto exit; - } - filp_close(filp, NULL); - - return ret; - -exit: - if (filp != NULL) { - filp_close(filp, NULL); - } - - return -1; -} - -static int firmware_file_write(const char *path, uint32_t addr, uint8_t *val, size_t size) -{ - int ret; - struct file *filp; - loff_t pos; - - filp = filp_open(path, O_RDWR, 777); - if (IS_ERR(filp)) { - FIRMWARE_DRIVER_DEBUG_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); - filp = NULL; - goto exit; - } - - pos = (loff_t)addr; - ret = kernel_write(filp, (void*)val, size, &pos); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("write kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); - goto exit; - } - vfs_fsync(filp, 1); - filp_close(filp, NULL); - - return ret; - -exit: - if (filp != NULL) { - filp_close(filp, NULL); - } - - return -1; -} - -/* - * firmware_file_do_work - * function: Sets logical register values - * @path:param[in] Logic device descriptor - * @addr:param[in] Logic device address - * @value:param[in] the register value needs to be set - * @mask:param[in] register mask - * @width:param[in] register bit width - * return: 0:success, <0:failed - */ -static int firmware_file_do_work(char *path, uint32_t addr, uint32_t value, uint32_t mask, - int32_t width) -{ - int ret; - uint8_t read_value[4], write_value[4]; - uint8_t tmp_read8, tmp_write8, tmp_mask8; - uint32_t tmp_read32, tmp_write32; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("path=%s, addr=0x%x, value=0x%x mask=0x%x\r\n", path, addr, value, mask); - if ((width > 4) || (width < 0)) { - FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); - return -1; - } - ret = 0; - mem_clear(read_value, sizeof(read_value)); - mem_clear(write_value, sizeof(write_value)); - ret = firmware_file_read(path, addr, read_value, width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware sysfs read.\r\n"); - return -1; - } - - switch (width) { - case 1: - tmp_read8 = read_value[0]; - tmp_mask8 = (uint8_t)(mask) & 0xFF; - tmp_write8 = (uint8_t)value & 0xFF; - write_value[0] = (tmp_read8 & tmp_mask8) | tmp_write8; - FIRMWARE_DRIVER_DEBUG_VERBOSE("1 byte write val[0]:0x%x", write_value[0]); - break; - case 2: - FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); - return -1; - case 4: - memcpy((uint8_t *)&tmp_read32, read_value, 4); - tmp_write32 = (tmp_read32 & mask) | value; - memcpy(write_value, (uint8_t *)&tmp_write32, 4); - FIRMWARE_DRIVER_DEBUG_VERBOSE("4 byte write val[0]:0x%x, val[1]:0x%x, val[2]:0x%x, val[3]:0x%x", - write_value[0], write_value[1], write_value[2], write_value[3]); - break; - default: - FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); - return -1; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("write logic dev[%s] addr[0x%x].\r\n", path, addr); - ret = firmware_file_write(path, addr, write_value, width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware_file_write %s addr 0x%x failed, ret=%d.\r\n", path, addr, ret); - return -1; - } - - return 0; -} - -/* - * firmware_upgrade_en - * function: Upgrade access enabling switch - * @flag: !0:enable 0:disable - */ -static int firmware_upgrade_en(int flag) -{ - int i; - firmware_logic_dev_en_t *firmware_logic_dev_en_info; - int ret, rv; - char *dev_name; - - ret = 0; - FIRMWARE_DRIVER_DEBUG_VERBOSE("%s en switch: gpio en num %d, logic reg en num %d.\n", - flag ? "Open" : "Close", current_fmw_cpld->gpio_en_info_num, current_fmw_cpld->logic_dev_en_num); - for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { - if (flag) { - ret = gpio_request(current_fmw_cpld->gpio_en_info[i].en_gpio, "cpld_ispvme_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade EN[%d] GPIO[%d] failed!\n", - i, current_fmw_cpld->gpio_en_info[i].en_gpio); - goto free_gpio; - } - gpio_direction_output(current_fmw_cpld->gpio_en_info[i].en_gpio, current_fmw_cpld->gpio_en_info[i].en_level); - current_fmw_cpld->gpio_en_info[i].flag = 1; - } else { - gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); - gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); - current_fmw_cpld->gpio_en_info[i].flag = 0; - } - } - - for (i = 0; i < current_fmw_cpld->logic_dev_en_num; i++) { - firmware_logic_dev_en_info = ¤t_fmw_cpld->logic_dev_en_info[i]; - dev_name = firmware_logic_dev_en_info->dev_name; - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware sysfs [%d] dev_name[%s] addr[0x%x] mask[0x%x]" - " en_val[0x%x] dis_val[0x%x] width[%d]\n", - i , firmware_logic_dev_en_info->dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->mask, firmware_logic_dev_en_info->en_val, - firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->width); - if (flag) { - ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->en_val, firmware_logic_dev_en_info->mask, - firmware_logic_dev_en_info->width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Open logic register [%d] EN failed, ret %d.\n", i, ret); - goto free_logic_dev; - } else { - firmware_logic_dev_en_info->flag = 1; - } - } else { - rv = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, - firmware_logic_dev_en_info->width); - if (rv < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, rv); - ret = -1; - } - firmware_logic_dev_en_info->flag = 0; - } - } - - return ret; -free_logic_dev: - for (i = 0; i < current_fmw_cpld->logic_dev_en_num; i++) { - firmware_logic_dev_en_info = ¤t_fmw_cpld->logic_dev_en_info[i]; - dev_name = firmware_logic_dev_en_info->dev_name; - if (firmware_logic_dev_en_info->flag == 1) { - ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, - firmware_logic_dev_en_info->width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, ret); - } - firmware_logic_dev_en_info->flag = 0; - } else { - break; - } - } -free_gpio: - for (i = 0; i < current_fmw_cpld->gpio_en_info_num; i++) { - if (current_fmw_cpld->gpio_en_info[i].flag == 1) { - gpio_set_value(current_fmw_cpld->gpio_en_info[i].en_gpio, !current_fmw_cpld->gpio_en_info[i].en_level); - gpio_free(current_fmw_cpld->gpio_en_info[i].en_gpio); - current_fmw_cpld->gpio_en_info[i].flag = 0; - } else { - break; - } - } - - return -1; -} - -/* - * init_cpld - * function:Initialize CPLD - * return value: 0 success ; -1 fail - */ -static int init_cpld(void) -{ - int ret; - if (current_fmw_cpld == NULL) { - return -1; - } - mdelay(10); - ret = 0; - ret = gpio_request(current_fmw_cpld->tdi, "cpld_ispvme_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TDI GPIO failed!\n"); - return ret; - } - ret = gpio_request(current_fmw_cpld->tck, "cpld_ispvme_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TCK GPIO failed!\n"); - goto free_tdi; - } - ret = gpio_request(current_fmw_cpld->tms, "cpld_ispvme_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TMS GPIO failed!\n"); - goto free_tck; - } - ret = gpio_request(current_fmw_cpld->tdo, "cpld_ispvme_upgrade"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade TDO GPIO failed!\n"); - goto free_tms; - } - - gpio_direction_output(current_fmw_cpld->tdi, 1); - gpio_direction_output(current_fmw_cpld->tck, 1); - gpio_direction_output(current_fmw_cpld->tms, 1); - - gpio_direction_input(current_fmw_cpld->tdo); - ret = firmware_upgrade_en(1); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: open firmware upgrade en failed, ret %d.\n", ret); - goto free_tdo; - } -#if 0 - /* test GPIO */ - if (TDI_PULL_UP() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_UP failed.\n"); - goto free_tdo; - } - if (TDI_PULL_DOWN() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TDI_PULL_DOWN failed.\n"); - goto free_tdo; - } - if (TMS_PULL_UP() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_UP failed.\n"); - goto free_tdo; - } - if (TMS_PULL_DOWN() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TMS_PULL_DOWN failed.\n"); - goto free_tdo; - } - if (TCK_PULL_UP() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_UP failed.\n"); - goto free_tdo; - } - if (TCK_PULL_DOWN() < 0 ) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: TCK_PULL_DOWN failed.\n"); - goto free_tdo; - } -#endif - mdelay(10); - return 0; - -free_tdo: - gpio_free(current_fmw_cpld->tdo); -free_tms: - gpio_free(current_fmw_cpld->tms); -free_tck: - gpio_free(current_fmw_cpld->tck); -free_tdi: - gpio_free(current_fmw_cpld->tdi); - return ret; -} - -/* - * finish_cpld - * function: finish CPLD upgrade operation - * return value: 0 success ; -1 fail - */ -static int finish_cpld(void) -{ - int ret; - - if (current_fmw_cpld == NULL) { - return -1; - } - mdelay(10); - ret = firmware_upgrade_en(0); - if (ret < 0){ - FIRMWARE_DRIVER_DEBUG_ERROR("Error: close firmware upgrade en failed, ret %d.\r\n", ret); - } - - gpio_free(current_fmw_cpld->tdi); - gpio_free(current_fmw_cpld->tck); - gpio_free(current_fmw_cpld->tms); - gpio_free(current_fmw_cpld->tdo); - mdelay(10); - return 0; -} - -/* Loop waiting for */ -static int pull_wait(int gpio, int value) { - int i, j; - /* Timeout time is two seconds */ - for (i = 0; i < 20; i++) { - for (j = 0; j < 100; j++) { - if (!!gpio_get_value(gpio) == !!value ) { - return 0; - } - /* The first loop does not delay, normally the first loop can immediately return the result */ - if (i) { - mdelay(1); - } - } - /* The CPU is released every 100ms */ - schedule(); - } - /* timeout */ - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Wait gpio %d pull to %d failed.\n", gpio, value); - return -1; -} - -/* TDI pull-up */ -static int pull_tdi_up(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tdi, 1); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tdi, 1); -} - -/* TDI pull-down */ -static int pull_tdi_down(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tdi, 0); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tdi, 0); -} - -/* TCK pull-up */ -static int pull_tck_up(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tck, 1); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tck, 1); -} - -/* TCK pull-down */ -static int pull_tck_down(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tck, 0); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tck, 0); -} - -/* TMS pull-up */ -static int pull_tms_up(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tms, 1); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tms, 1); -} - -/* TMS pull-down */ -static int pull_tms_down(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - gpio_set_value(current_fmw_cpld->tms, 0); - - /* Wait for the GPIO value to be set successfully */ - return pull_wait(current_fmw_cpld->tms, 0); -} - -/* Read TDO */ -static int read_tdo(void) -{ - if (current_fmw_cpld == NULL) { - return -1; - } - return gpio_get_value(current_fmw_cpld->tdo); -} - -static firmware_cpld_function_t function_fmw_cpld = { - .pull_tdi_up = pull_tdi_up, - .pull_tdi_down = pull_tdi_down, - .pull_tck_up = pull_tck_up, - .pull_tck_down = pull_tck_down, - .pull_tms_up = pull_tms_up, - .pull_tms_down = pull_tms_down, - .read_tdo = read_tdo, - .init_cpld = init_cpld, - .finish_cpld = finish_cpld, -}; - -/* - * TDI_PULL_DOWN - * function: Lower TDI - */ -static int TDI_PULL_DOWN(void) -{ - if ( function_fmw_cpld.pull_tdi_down != NULL) { - return function_fmw_cpld.pull_tdi_down(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_DOWN.\n"); - return -1; - } -} - -/* - * TDI_PULL_UP - * function: High TDI - */ -static int TDI_PULL_UP(void) -{ - if (function_fmw_cpld.pull_tdi_up != NULL) { - return function_fmw_cpld.pull_tdi_up(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDI_PULL_UP.\n"); - return -1; - } -} - -/* - * TCK_PULL_DOWN - * function: Lower TCK - */ -static int TCK_PULL_DOWN(void) -{ - if (function_fmw_cpld.pull_tck_down != NULL) { - return function_fmw_cpld.pull_tck_down(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_DOWN.\n"); - return -1; - } -} - -/* - * TCK_PULL_UP - * function: High TCK - */ -static int TCK_PULL_UP(void) -{ - if (function_fmw_cpld.pull_tck_up != NULL) { - return function_fmw_cpld.pull_tck_up(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TCK_PULL_UP.\n"); - return -1; - } -} - -/* - * TMS_PULL_DOWN - * function: Lower TMS - */ -static int TMS_PULL_DOWN(void) -{ - if (function_fmw_cpld.pull_tms_down != NULL) { - return function_fmw_cpld.pull_tms_down(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_DOWN.\n"); - return -1; - } -} - -/* - * TMS_PULL_UP - * function: High TMS - */ -static int TMS_PULL_UP(void) -{ - if (function_fmw_cpld.pull_tms_up != NULL) { - return function_fmw_cpld.pull_tms_up(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TMS_PULL_UP.\n"); - return -1; - } -} - -/* - * TDO_READ - * function:Read the TDO level - */ -static int TDO_READ(void) -{ - if (function_fmw_cpld.read_tdo != NULL) { - return function_fmw_cpld.read_tdo(); - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("NO support TDO_READ.\n"); - return -1; - } -} - -/* - * cpld_upgrade_init - * function:Initialize GPIO and CPLD - * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int cpld_upgrade_init(void) -{ - int ret; - - if (function_fmw_cpld.init_cpld != NULL) { - ret = function_fmw_cpld.init_cpld(); - if (ret != FIRMWARE_SUCCESS) { - return ret; - } - } - - return FIRMWARE_SUCCESS; -} - -/* - * cpld_upgrade_finish - * function:Release GPIO and CPLD - * return value: success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int cpld_upgrade_finish(void) -{ - int ret; - - if (function_fmw_cpld.finish_cpld != NULL) { - ret = function_fmw_cpld.finish_cpld(); - if (ret != FIRMWARE_SUCCESS) { - return ret; - } - } - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_init_vme - * function: Initialize GPIO, - * @cpld_info: param[in] Information about the device to be written to - */ -int firmware_init_vme(firmware_cpld_t *cpld_info){ - int ret; - set_currrent_cpld_info(cpld_info); - /* Initialize GPIO and CPLD */ - ret = cpld_upgrade_init(); - return ret; -} - -/** - * firmware_finish_vme - * function: Release GPIO - * @cpld_info: param[in] Information about the device to be written to - */ -int firmware_finish_vme(firmware_cpld_t *cpld_info){ - int ret; - set_currrent_cpld_info(cpld_info); - ret = cpld_upgrade_finish(); - return ret; -} - -/** - * fwm_cpld_tdi_op - * function: Operate TDI - * @value: param[in] TDI level */ -int fwm_cpld_tdi_op(int value) -{ - if (value) { - return TDI_PULL_UP(); - } else { - return TDI_PULL_DOWN(); - } -} - -/** - * fwm_cpld_tck_op - * function: Operate TCK - * @value: param[in] TCK level */ -int fwm_cpld_tck_op(int value) -{ - if (value) { - return TCK_PULL_UP(); - } else { - return TCK_PULL_DOWN(); - } -} - -/** - * fwm_cpld_tms_op - * function: Operate TMS - * value: param[in] TMS level */ -int fwm_cpld_tms_op(int value) -{ - if (value) { - return TMS_PULL_UP(); - } else { - return TMS_PULL_DOWN(); - } -} - -/** - * fwm_cpld_tdo_op - * function: Read TDO - */ -int fwm_cpld_tdo_op() -{ - return TDO_READ(); -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c deleted file mode 100644 index e8f75844ae34..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/firmware_ispvme.c +++ /dev/null @@ -1,140 +0,0 @@ -#include -#include -#include - -int g_firmware_driver_debug = 0; -module_param(g_firmware_driver_debug, int, S_IRUGO | S_IWUSR); - -static LIST_HEAD(drv_list); -static LIST_HEAD(dev_list); - -/** - * firmware_driver_register - * function:Registered Device Driver - * @fw_drv:param[in] Driver information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_driver_register(firmware_driver_t *fw_drv) -{ - int ret; - - if (fw_drv == NULL) { - return FIRMWARE_FAILED; - } - - ret = platform_driver_register(fw_drv->drv); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: failed to register firmware upgrade driver \n"); - return FIRMWARE_FAILED; - } - - /* Adds driver information to the driver list */ - list_add(&fw_drv->list, &drv_list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware upgrade driver register sucess \n"); - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_driver_unregister - * function:unregister Device Driver - * @fw_drv:param[in] Driver information - */ -void firmware_driver_unregister(firmware_driver_t *fw_drv) -{ - list_del_init(&fw_drv->list); - platform_driver_unregister(fw_drv->drv); -} - -/* - * firmware_get_device_by_minor - * function: Get device information based on minor - */ -firmware_device_t *firmware_get_device_by_minor(int minor) -{ - firmware_device_t *tmp; - - list_for_each_entry(tmp, &dev_list, list) { - if (tmp->dev.minor == minor) { - return tmp; - } - } - - return NULL; -} - -/** - * firmware_device_register - * function:Registered Driver Device - * @fw_dev: param[in] Driver information - * return value:success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_device_register(firmware_device_t *fw_dev) -{ - int ret; - firmware_device_t *tmp; - - if (fw_dev == NULL) { - return FIRMWARE_FAILED; - } - /* Check whether the device file name already exists in the device linked list */ - list_for_each_entry(tmp, &dev_list, list) { - if (strcmp(tmp->name, fw_dev->name) == 0) { - return FIRMWARE_FAILED; - } - } - - /* Registere device */ - ret = misc_register(&fw_dev->dev); - if (ret < 0) { - return FIRMWARE_FAILED; - } - - /* Adds a device to the device list */ - list_add(&fw_dev->list, &dev_list); - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_device_unregister - * function: unregister Driver Device - */ -void firmware_device_unregister(firmware_device_t *fw_dev) -{ - list_del(&fw_dev->list); - misc_deregister(&fw_dev->dev); -} - -static int __init firmware_driver_init(void) -{ - int ret; - - INIT_LIST_HEAD(&drv_list); - INIT_LIST_HEAD(&dev_list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver ispvme init.\n"); - ret = firmware_cpld_init(); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware driver ispvme init failed.\n"); - return FIRMWARE_FAILED; - } - - return FIRMWARE_SUCCESS; -} - -static void __exit firmware_driver_exit(void) -{ - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver ispvme exit.\n"); - firmware_cpld_exit(); - INIT_LIST_HEAD(&drv_list); - INIT_LIST_HEAD(&dev_list); - return; -} - -module_init(firmware_driver_init); -module_exit(firmware_driver_exit); - -MODULE_AUTHOR("support"); -MODULE_DESCRIPTION("Firmware upgrade ispvme driver"); -MODULE_LICENSE("GPL"); -MODULE_VERSION("1.0"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h deleted file mode 100644 index eb737d3a56ed..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_cpld_ispvme.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef __FIRMWARE_CPLD_H__ -#define __FIRMWARE_CPLD_H__ - -#define FIRMWARE_DEV_NAME_LEN 32 -#define FIRMWARE_MAX_CPLD_NUM 16 -#define FIRMWARE_TYPE_LEN 10 -#define FIRMWARE_EN_INFO_MAX 16 -#define FIRMWARE_EN_INFO_BUF 128 - -typedef struct firmware_gpio_jtag_en_s { - uint32_t en_gpio; /* GPIO enable pin */ - uint32_t en_level; /* GPIO enable level */ - int flag; /* init flag; 1-init 0-not init */ -} firmware_gpio_jtag_en_t; - -typedef struct firmware_logic_dev_en_s { - char dev_name[FIRMWARE_DEV_NAME_LEN]; /* Logical device name */ - uint32_t addr; /* Enable register address */ - uint32_t mask; /* mask */ - uint32_t en_val; /* Enable value */ - uint32_t dis_val; /* Disable value*/ - uint32_t width; /* width */ - int flag; /* init flag; 1-init 0-not init */ -} firmware_logic_dev_en_t; - -typedef struct firmware_cpld_s { - char devname[FIRMWARE_DEV_NAME_LEN]; /* Device name */ - char type[FIRMWARE_TYPE_LEN]; /* interface type */ - uint32_t tdi; /* TDI signal corresponding to GPIO pin information */ - uint32_t tck; /* TCK signal corresponding to GPIO pin information */ - uint32_t tms; /* TMS signal corresponding to GPIO pin information */ - uint32_t tdo; /* TDO signal corresponding to GPIO pin information */ - uint32_t chain; /* chain num */ - uint32_t chip_index; /* chip index */ - uint32_t tck_delay; /* Delay time */ - uint32_t gpio_en_info_num; /* GPIO Enable Number */ - firmware_gpio_jtag_en_t gpio_en_info[FIRMWARE_EN_INFO_MAX]; /* GPIO Enable Information */ - uint32_t logic_dev_en_num; /* Register Enable Number */ - firmware_logic_dev_en_t logic_dev_en_info[FIRMWARE_EN_INFO_MAX]; /* Register Enable Information */ -} firmware_cpld_t; - -typedef struct firmware_cpld_function_s{ - int (*pull_tdi_up)(void); /* TDI pull-up */ - int (*pull_tdi_down)(void); /* TDI pull-down */ - int (*pull_tck_up)(void); /* TCK pull-up */ - int (*pull_tck_down)(void); /* TCK pull-down */ - int (*pull_tms_up)(void); /* TMS pull-up */ - int (*pull_tms_down)(void); /* TCK pull-down */ - int (*read_tdo)(void); /* Read TDO */ - int (*init_cpld)(void); /* CPLD upgrade initializes the operation */ - int (*init_chip)(int chain); /* chip initializes the operation */ - int (*finish_chip)(int chain); /* chip completes the operation*/ - int (*finish_cpld)(void); /* CPLD upgrade completes the operation */ - int (*get_version)(int chain, char *ver, int len); /* get version */ -}firmware_cpld_function_t; - -/* operate TDI */ -extern int fwm_cpld_tdi_op(int value); -/* operate TCK */ -extern int fwm_cpld_tck_op(int value); -/* operate TMS */ -extern int fwm_cpld_tms_op(int value); -/* operate TDO */ -extern int fwm_cpld_tdo_op(void); -/* VME upgrade mode completes the operation*/ -extern int firmware_finish_vme(firmware_cpld_t *cpld_info); -/* VME upgrade mode initializes the operation*/ -extern int firmware_init_vme(firmware_cpld_t *cpld_info); - -#endif /* __FIRMWARE_CPLD_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h deleted file mode 100644 index 39baf3f30717..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_ispvme/include/firmware_ispvme.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef __FIRMWARE_H__ -#define __FIRMWARE_H__ - -#include -#include - -#include - -/* Debug switch level */ -typedef enum { - FIRWMARE_VERBOSE, - FIRWMARE_WARN, - FIRWMARE_ERROR, - FIRWMARE_END, -} firmware_debug_level_t; - -#define FIRMWARE_DRIVER_DEBUG_VERBOSE(fmt, args...) do { \ - if ((g_firmware_driver_debug) & (1U << FIRWMARE_VERBOSE)) { \ - printk(KERN_INFO "[FIRMWARW_DRIVER_ISPVME][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define FIRMWARE_DRIVER_DEBUG_ERROR(fmt, args...) do { \ - if ((g_firmware_driver_debug) & (1U << FIRWMARE_ERROR)) { \ - printk(KERN_ERR "[FIRMWARW_DRIVER_ISPVME][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define FIRMWARE_NAME_LEN 48 - -#define FIRMWARE_FAILED (-1) -#define FIRMWARE_SUCCESS 0 - -/* ioctl publi command, the same as "firmware_upgrade\include\firmware_app.h" */ -#define FIRMWARE_COMMON_TYPE 'C' -#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ -#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ - -/* firmware cpld ispvme driver ioctl command, the same as "firmware_upgrade\include\firmware_app.h" */ -#define FIRMWARE_VME_TYPE 'V' -#define FIRMWARE_JTAG_TDI _IOR(FIRMWARE_VME_TYPE, 0, char) -#define FIRMWARE_JTAG_TDO _IOR(FIRMWARE_VME_TYPE, 1, char) -#define FIRMWARE_JTAG_TCK _IOR(FIRMWARE_VME_TYPE, 2, char) -#define FIRMWARE_JTAG_TMS _IOR(FIRMWARE_VME_TYPE, 3, char) -#define FIRMWARE_JTAG_EN _IOR(FIRMWARE_VME_TYPE, 4, char) -#define FIRMWARE_JTAG_INIT _IOR(FIRMWARE_VME_TYPE, 7, char) /* enable upgrade access */ -#define FIRMWARE_JTAG_FINISH _IOR(FIRMWARE_VME_TYPE, 8, char) /* disable upgrade access */ - -typedef struct cmd_info_s { - uint32_t size; - void __user *data; -} cmd_info_t; - -typedef struct firmware_device_s { - struct list_head list; /* device list */ - uint32_t chain; /* chain number */ - char name[FIRMWARE_NAME_LEN]; /* name */ - struct miscdevice dev; /* device */ - void *priv; /* private data */ -} firmware_device_t; - -typedef struct firmware_driver_s { - struct list_head list; /* list */ - char name[FIRMWARE_NAME_LEN]; /* name */ - struct platform_driver *drv; /* driver */ - void *priv; /* private data */ -} firmware_driver_t; - -extern int g_firmware_driver_debug; - -/* Get device information based on minor */ -extern firmware_device_t *firmware_get_device_by_minor(int minor); -/* Registere device */ -extern int firmware_device_register(firmware_device_t *fw_dev); -/* Unregister device */ -extern void firmware_device_unregister(firmware_device_t *fw_dev); -/* Registere driver */ -extern int firmware_driver_register(firmware_driver_t *fw_drv); -/* Unregister driver */ -extern void firmware_driver_unregister(firmware_driver_t *fw_drv); -/* CPLD upgrade initialized */ -extern int firmware_cpld_init(void); -/* CPLD unload function */ -extern void firmware_cpld_exit(void); - -#endif /* end of __FIRMWARE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile deleted file mode 100644 index a1d6d2e2ef68..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -#include $(top_srcdir)/debian/rules -#KERNELDIR := ${KBUILD_OUTPUT} - -PWD = $(shell pwd) - -EXTRA_CFLAGS:= -I$(M)/include -MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) -FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../include) -EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) -EXTRA_CFLAGS+= -Wall - -firmware_driver_sysfs-objs := firmware.o -firmware_driver_sysfs-objs += firmware_sysfs.o firmware_sysfs_upgrade.o - -#ifndef CONFIG_FRM_PRODUCT_FILE - -$(warning $(firmware_driver_sysfs-objs)) -obj-m := firmware_driver_sysfs.o -all: - $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules - @if [ ! -d $(common_module_dir) ]; then mkdir -p $(common_module_dir) ;fi - cp -p $(PWD)/*.ko $(common_module_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c deleted file mode 100644 index fec51d6238a6..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware.c +++ /dev/null @@ -1,143 +0,0 @@ -#include -#include -#include - -int g_firmware_driver_debug = 0; -module_param(g_firmware_driver_debug, int, S_IRUGO | S_IWUSR); - -static LIST_HEAD(drv_list); -static LIST_HEAD(dev_list); - -/** - * firmware_driver_register - * function:Registered Device Driver - * @fw_drv:param[in] Driver information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_driver_register(firmware_driver_t *fw_drv) -{ - int ret; - - if (fw_drv == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); - return FIRMWARE_FAILED; - } - - ret = platform_driver_register(fw_drv->drv); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: failed to register firmware upgrade driver \n"); - return FIRMWARE_FAILED; - } - - /* Adds driver information to the driver list */ - list_add(&fw_drv->list, &drv_list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware upgrade driver register sucess \n"); - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_driver_unregister - * function:unregister Device Driver - * @fw_drv:param[in] Driver information - */ -void firmware_driver_unregister(firmware_driver_t *fw_drv) -{ - list_del_init(&fw_drv->list); - platform_driver_unregister(fw_drv->drv); -} - -/* - * firmware_get_device_by_minor - * function: Get device information based on minor - */ -firmware_device_t *firmware_get_device_by_minor(int minor) -{ - firmware_device_t *tmp; - - list_for_each_entry(tmp, &dev_list, list) { - if (tmp->dev.minor == minor) { - return tmp; - } - } - - return NULL; -} - -/** - * firmware_device_register - * function:Registered Driver Device - * @fw_dev: param[in] Driver information - * return value:success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_device_register(firmware_device_t *fw_dev) -{ - int ret; - firmware_device_t *tmp; - - if (fw_dev == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Parameter error.\n"); - return FIRMWARE_FAILED; - } - /* Check whether the device file name already exists in the device linked list */ - list_for_each_entry(tmp, &dev_list, list) { - if (strcmp(tmp->name, fw_dev->name) == 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("devie %s already exists.\n", fw_dev->name); - return FIRMWARE_FAILED; - } - } - - ret = misc_register(&fw_dev->dev); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("register misc error, ret=%d.\n", ret); - return FIRMWARE_FAILED; - } - - /* Adds driver information to the driver list */ - list_add(&fw_dev->list, &dev_list); - - return FIRMWARE_SUCCESS; -} - -/** - * firmware_device_unregister - * function: unregister Driver Device - */ -void firmware_device_unregister(firmware_device_t *fw_dev) -{ - list_del(&fw_dev->list); - misc_deregister(&fw_dev->dev); -} - -static int __init firmware_driver_init(void) -{ - int ret; - - INIT_LIST_HEAD(&drv_list); - INIT_LIST_HEAD(&dev_list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver sysfs init.\n"); - ret = firmware_sysfs_init(); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware driver sysfs init failed.\n"); - return FIRMWARE_FAILED; - } - - return FIRMWARE_SUCCESS; -} - -static void __exit firmware_driver_exit(void) -{ - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware driver sysfs exit.\n"); - firmware_sysfs_exit(); - INIT_LIST_HEAD(&drv_list); - INIT_LIST_HEAD(&dev_list); - return; -} - -module_init(firmware_driver_init); -module_exit(firmware_driver_exit); - -MODULE_AUTHOR("support"); -MODULE_DESCRIPTION("Firmware upgrade driver"); -MODULE_LICENSE("GPL"); -MODULE_VERSION("1.0"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c deleted file mode 100644 index fef5b43c9db8..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs.c +++ /dev/null @@ -1,495 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int firmware_sysfs_open(struct inode *inode, struct file *file) -{ - firmware_device_t *frm_dev; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Open device.\n"); - frm_dev = firmware_get_device_by_minor(MINOR(inode->i_rdev)); - if (frm_dev == NULL) { - return -ENXIO; - } - file->private_data = frm_dev; - - return FIRMWARE_SUCCESS; -} - -static ssize_t firmware_sysfs_read (struct file *file, char __user *buf, size_t count, - loff_t *offset) -{ - return 0; -} - -static ssize_t firmware_sysfs_write (struct file *file, const char __user *buf, size_t count, - loff_t *offset) -{ - return 0; -} - -static loff_t firmware_sysfs_llseek(struct file *file, loff_t offset, int origin) -{ - return 0; -} - -/* firmware_sysfs_ioctl -* function:ioctl command parsing function -* @file: param[in] device file name -* @cmd: param[in] command -* @arg: param[in] the parameters in the command -* return value: success-FIRMWARE_SUCCESS; fail:other value -*/ -static long firmware_sysfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - void __user *argp; - firmware_device_t *frm_dev; - firmware_sysfs_t *sysfs_info; - int ret; - - /* Get device private data */ - frm_dev = (firmware_device_t *)file->private_data; - sysfs_info = NULL; - if (frm_dev != NULL) { - if (frm_dev->priv != NULL) { - sysfs_info = (firmware_sysfs_t *)frm_dev->priv; - } - } - if (sysfs_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to frm_dev->priv sysfs info.\n"); - return FIRMWARE_FAILED; - } - argp = (void __user *)arg; - - switch (cmd) { - case FIRMWARE_SYSFS_INIT: - /* enable upgrade access */ - ret = firmware_init_dev_loc(sysfs_info); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to init upgrade.(chain = %d)\n", - frm_dev != NULL ? frm_dev->chain : -1); - return FIRMWARE_FAILED; - } - break; - case FIRMWARE_SYSFS_FINISH: - /* disable upgrade access */ - ret = firmware_finish_dev_loc(sysfs_info); - if (ret != FIRMWARE_SUCCESS) { - FIRMWARE_DRIVER_DEBUG_ERROR("Error: Failed to release upgrade.(chain = %d)\n", - frm_dev != NULL ? frm_dev->chain : -1); - return FIRMWARE_FAILED; - } - break; - case FIRMWARE_SYSFS_SPI_INFO: - /* Get SPI logic device information */ - if (copy_to_user(argp, &sysfs_info->info.spi_logic_info, sizeof(firmware_spi_logic_info_t))) { - return -EFAULT; - } - break; - case FIRMWARE_SYSFS_DEV_FILE_INFO: - /*Get logic device information */ - if (copy_to_user(argp, &sysfs_info->info.dev_file_info, sizeof(firmware_dev_file_info_t))) { - return -EFAULT; - } - break; - case FIRMWARE_SYSFS_MTD_INFO: - /*Get logic device information */ - if (copy_to_user(argp, &sysfs_info->info.mtd_info, sizeof(firmware_mtd_info_t))) { - return -EFAULT; - } - break; - default: - FIRMWARE_DRIVER_DEBUG_ERROR("not find cmd: %d\r\n", cmd); - return -ENOTTY; - } /* End of switch */ - - return FIRMWARE_SUCCESS; -} - -static int firmware_sysfs_release(struct inode *inode, struct file *file) -{ - return 0; -} - -static const struct file_operations sysfs_dev_fops = { - .owner = THIS_MODULE, - .llseek = firmware_sysfs_llseek, - .read = firmware_sysfs_read, - .write = firmware_sysfs_write, - .unlocked_ioctl = firmware_sysfs_ioctl, - .open = firmware_sysfs_open, - .release = firmware_sysfs_release, -}; - -/* Gets the information in the device tree */ -static int of_firmware_upgrade_config_init(struct device *dev, firmware_sysfs_t *sysfs_info) -{ - int ret; - char *name; - int8_t buf[64]; - int i; - firmware_logic_dev_en_t *firmware_logic_dev_en_point; - uint32_t test_base, test_size; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_dev_loc_config_init\r\n"); - if (sysfs_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); - return -1; - } - - mem_clear(sysfs_info, sizeof(firmware_sysfs_t)); - ret = 0; - ret += of_property_read_string(dev->of_node, "type", (const char **)&name); - - ret += of_property_read_u32(dev->of_node, "chain", &sysfs_info->chain); - ret += of_property_read_u32(dev->of_node, "chip_index", &sysfs_info->chip_index); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config error, ret:%d.\n", ret); - return -ENXIO; - } - strncpy(sysfs_info->type, name, sizeof(sysfs_info->type) - 1); - - ret = of_property_read_u32(dev->of_node, "test_base", &test_base); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config test_base, ret:%d.\n", ret); - test_base = 0; - } - - ret = of_property_read_u32(dev->of_node, "test_size", &test_size); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config test_size, ret:%d.\n", ret); - test_size = 0; - } - - if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SPI_LOGIC) == 0) { - ret = of_property_read_string(dev->of_node, "dev_name", (const char **)&name); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config dev_name error, ret:%d.\n", ret); - return -ENXIO; - } - strncpy(sysfs_info->info.spi_logic_info.dev_name, name, FIRMWARE_DEV_NAME_LEN - 1); - - ret = of_property_read_u32(dev->of_node, "flash_base", &sysfs_info->info.spi_logic_info.flash_base); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config flash_base error, ret:%d.\n", ret); - return -ENXIO; - } - - ret = of_property_read_u32(dev->of_node, "ctrl_base", &sysfs_info->info.spi_logic_info.ctrl_base); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config ctrl_base error, ret:%d.\n", ret); - return -ENXIO; - } - sysfs_info->info.spi_logic_info.test_base = test_base; - sysfs_info->info.spi_logic_info.test_size = test_size; - } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SYSFS) == 0) { - ret = of_property_read_string(dev->of_node, "sysfs_name", (const char **)&name); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config sysfs_name error, ret:%d.\n", ret); - return -ENXIO; - } - strncpy(sysfs_info->info.dev_file_info.sysfs_name, name, FIRMWARE_DEV_NAME_LEN - 1); - - ret = of_property_read_u32(dev->of_node, "dev_base", &sysfs_info->info.dev_file_info.dev_base); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_VERBOSE("dts don't config dev_base, dev_base is 0.\n"); - sysfs_info->info.dev_file_info.dev_base = 0; - } - - ret = of_property_read_u32(dev->of_node, "per_len", &sysfs_info->info.dev_file_info.per_len); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_VERBOSE("dts don't config per_len, per_len is 0.\n"); - sysfs_info->info.dev_file_info.per_len = 0; - } - sysfs_info->info.dev_file_info.test_base = test_base; - sysfs_info->info.dev_file_info.test_size = test_size; - } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_MTD) == 0) { - ret = of_property_read_string(dev->of_node, "mtd_name", (const char **)&name); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config mtd_name error, ret:%d.\n", ret); - return -ENXIO; - } - strncpy(sysfs_info->info.mtd_info.mtd_name, name, FIRMWARE_DEV_NAME_LEN - 1); - - ret = of_property_read_u32(dev->of_node, "flash_base", &sysfs_info->info.mtd_info.flash_base); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config flash_base error, ret:%d.\n", ret); - return -ENXIO; - } - sysfs_info->info.mtd_info.test_base = test_base; - sysfs_info->info.mtd_info.test_size = test_size; - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("dts config sysfs type[%s] is not support, ret:%d.\n", sysfs_info->type, ret); - return -ENXIO; - } - - sysfs_info->gpio_en_info_num = 0; - /* Enable through GPIO */ - for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_gpio_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &sysfs_info->gpio_en_info[i].en_gpio); - if(ret != 0) { - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_level_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &sysfs_info->gpio_en_info[i].en_level); - if(ret != 0) { - break; - } - sysfs_info->gpio_en_info_num++; - } - - sysfs_info->logic_dev_en_num = 0; - /* Enable through register */ - for (i = 0; i < FIRMWARE_EN_INFO_MAX; i++) { - firmware_logic_dev_en_point = &sysfs_info->logic_dev_en_info[i]; - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_dev_%d", i); - ret = 0; - ret += of_property_read_string(dev->of_node, buf, (const char **)&name); - if(ret != 0) { - /* Failure to resolve to EN_LOGIC_DEV means no logical device is enabled. No failure is returned */ - ret = 0; - break; - } - strncpy(firmware_logic_dev_en_point->dev_name, name, FIRMWARE_DEV_NAME_LEN - 1); - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_addr_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->addr); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_addr_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_mask_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->mask); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_mask_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_en_val_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->en_val); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_en_val_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_dis_val_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->dis_val); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_dis_val_%d ret =%d.\n", i, ret); - break; - } - - mem_clear(buf, sizeof(buf)); - snprintf(buf, sizeof(buf) - 1, "en_logic_width_%d", i); - ret = of_property_read_u32(dev->of_node, buf, &firmware_logic_dev_en_point->width); - if (ret != 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to config en en_logic_width_%d ret =%d.\n", i, ret); - break; - } - - sysfs_info->logic_dev_en_num++; - } - - return ret; -} - -static int firmware_upgrade_config_init(struct device *dev, firmware_sysfs_t *sysfs_info) -{ - int i; - firmware_logic_dev_en_t *firmware_logic_dev_en_point; - firmware_upgrade_device_t *firmware_upgrade_device; - firmware_sysfs_device_t sysfs_upg_device; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_dev_loc_config_init\r\n"); - if (sysfs_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("info is null\r\n"); - return -1; - } - - if (dev->platform_data == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("platform data config error.\n"); - return -1; - } - firmware_upgrade_device = dev->platform_data; - sysfs_upg_device = firmware_upgrade_device->upg_type.sysfs; - - mem_clear(sysfs_info, sizeof(firmware_sysfs_t)); - strncpy(sysfs_info->type, firmware_upgrade_device->type, sizeof(sysfs_info->type) - 1); - sysfs_info->chain = firmware_upgrade_device->chain; - sysfs_info->chip_index = firmware_upgrade_device->chip_index; - - if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SPI_LOGIC) == 0) { - strncpy(sysfs_info->info.spi_logic_info.dev_name, sysfs_upg_device.dev_name, FIRMWARE_DEV_NAME_LEN - 1); - sysfs_info->info.spi_logic_info.flash_base = sysfs_upg_device.flash_base; - sysfs_info->info.spi_logic_info.ctrl_base = sysfs_upg_device.ctrl_base; - sysfs_info->info.spi_logic_info.test_base = sysfs_upg_device.test_base; - sysfs_info->info.spi_logic_info.test_size = sysfs_upg_device.test_size; - } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_SYSFS) == 0) { - strncpy(sysfs_info->info.dev_file_info.sysfs_name, sysfs_upg_device.sysfs_name, FIRMWARE_DEV_NAME_LEN - 1); - sysfs_info->info.dev_file_info.dev_base = sysfs_upg_device.dev_base; - sysfs_info->info.dev_file_info.per_len = sysfs_upg_device.per_len; - sysfs_info->info.dev_file_info.test_base = sysfs_upg_device.test_base; - sysfs_info->info.dev_file_info.test_size = sysfs_upg_device.test_size; - } else if (strcmp(sysfs_info->type, FIRMWARE_SYSFS_TYPE_MTD) == 0) { - strncpy(sysfs_info->info.mtd_info.mtd_name, sysfs_upg_device.mtd_name, FIRMWARE_DEV_NAME_LEN - 1); - sysfs_info->info.mtd_info.flash_base = sysfs_upg_device.flash_base; - sysfs_info->info.mtd_info.test_base = sysfs_upg_device.test_base; - sysfs_info->info.mtd_info.test_size = sysfs_upg_device.test_size; - } else { - FIRMWARE_DRIVER_DEBUG_ERROR("config sysfs type[%s] is not support.\n", sysfs_info->type); - return -ENXIO; - } - - if (firmware_upgrade_device->en_gpio_num > FIRMWARE_EN_INFO_MAX) { - FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_gpio_num:%u configurations exceeds the maximum limit:%u.\n", - firmware_upgrade_device->en_gpio_num, FIRMWARE_EN_INFO_MAX); - return -ENXIO; - } - sysfs_info->gpio_en_info_num = firmware_upgrade_device->en_gpio_num; - /* Enable through GPIO */ - for (i = 0; i < sysfs_info->gpio_en_info_num; i++) { - sysfs_info->gpio_en_info[i].en_gpio = firmware_upgrade_device->en_gpio[i]; - sysfs_info->gpio_en_info[i].en_level = firmware_upgrade_device->en_level[i]; - } - - if (firmware_upgrade_device->en_logic_num > FIRMWARE_EN_INFO_MAX) { - FIRMWARE_DRIVER_DEBUG_ERROR("The number of en_logic_num:%u configurations exceeds the maximum limit:%u.\n", - firmware_upgrade_device->en_logic_num, FIRMWARE_EN_INFO_MAX); - return -ENXIO; - } - sysfs_info->logic_dev_en_num = firmware_upgrade_device->en_logic_num; - /* Enable through register */ - for (i = 0; i < sysfs_info->logic_dev_en_num; i++) { - firmware_logic_dev_en_point = &sysfs_info->logic_dev_en_info[i]; - strncpy(firmware_logic_dev_en_point->dev_name, firmware_upgrade_device->en_logic_dev[i], FIRMWARE_DEV_NAME_LEN - 1); - firmware_logic_dev_en_point->addr = firmware_upgrade_device->en_logic_addr[i]; - firmware_logic_dev_en_point->mask = firmware_upgrade_device->en_logic_mask[i]; - firmware_logic_dev_en_point->en_val = firmware_upgrade_device->en_logic_en_val[i]; - firmware_logic_dev_en_point->dis_val = firmware_upgrade_device->en_logic_dis_val[i]; - firmware_logic_dev_en_point->width = firmware_upgrade_device->en_logic_width[i]; - } - - return 0; -} - -static int firmware_sysfs_probe(struct platform_device *pdev) -{ - int ret; - firmware_sysfs_t *sysfs_info; - firmware_device_t *frm_dev; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Enter firmware_sysfs_probe\r\n"); - sysfs_info = devm_kzalloc(&pdev->dev, sizeof(firmware_sysfs_t), GFP_KERNEL); - if (sysfs_info == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc device tree.\n"); - return -EPERM; - } - - if (pdev->dev.of_node) { - ret = of_firmware_upgrade_config_init(&pdev->dev, sysfs_info); - } else { - ret = firmware_upgrade_config_init(&pdev->dev, sysfs_info); - } - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("get config init from dts error.\n"); - return -EPERM; - } - - frm_dev = devm_kzalloc(&pdev->dev, sizeof(firmware_device_t), GFP_KERNEL); - if (frm_dev == NULL) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to kzalloc firmware device.\n"); - return -EPERM; - } - - /* Based on the link number, determine the name of the device file */ - frm_dev->chain = sysfs_info->chain; - snprintf(frm_dev->name, FIRMWARE_NAME_LEN - 1, "firmware_sysfs%d", frm_dev->chain); - strncpy(sysfs_info->devname, frm_dev->name, strlen(frm_dev->name) + 1); - - INIT_LIST_HEAD(&frm_dev->list); - frm_dev->dev.minor = MISC_DYNAMIC_MINOR; - frm_dev->dev.name = frm_dev->name; - frm_dev->dev.fops = &sysfs_dev_fops; - frm_dev->priv = sysfs_info; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("Register sysfs firmware chain:%d, name:%s.\n", frm_dev->chain, frm_dev->name); - - ret = firmware_device_register(frm_dev); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Failed to register firmware device.\n"); - return -EPERM; - } - - platform_set_drvdata(pdev, frm_dev); - return 0; -} - -static int __exit firmware_sysfs_remove(struct platform_device *pdev) -{ - firmware_device_t *frm_dev; - - frm_dev = (firmware_device_t *)platform_get_drvdata(pdev); - firmware_device_unregister(frm_dev); - platform_set_drvdata(pdev, NULL); - - return 0; -} - -static struct of_device_id sysfs_match[] = { - { - .compatible = "firmware_sysfs", - }, - {}, -}; - -static struct platform_driver sysfs_driver = { - .driver = { - .name = "firmware_sysfs", - .owner = THIS_MODULE, - .of_match_table = sysfs_match, - }, - .probe = firmware_sysfs_probe, - .remove = firmware_sysfs_remove, -}; - -static firmware_driver_t fmw_drv_sysfs = { - .name = "firmware_sysfs", - .drv = &sysfs_driver, -}; - -int firmware_sysfs_init(void) -{ - int ret; - - INIT_LIST_HEAD(&fmw_drv_sysfs.list); - FIRMWARE_DRIVER_DEBUG_VERBOSE("sysfs upgrade driver register \n"); - ret = firmware_driver_register(&fmw_drv_sysfs); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("sysfs upgrade driver register failed\n"); - return ret; - } - return 0; -} - -void firmware_sysfs_exit(void) -{ - firmware_driver_unregister(&fmw_drv_sysfs); - INIT_LIST_HEAD(&fmw_drv_sysfs.list); -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c deleted file mode 100644 index 8b883006de53..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/firmware_sysfs_upgrade.c +++ /dev/null @@ -1,258 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int firmware_file_read(const char *path, uint32_t addr, uint8_t *val, size_t size) -{ - int ret; - struct file *filp; - loff_t pos; - - filp = filp_open(path, O_RDONLY, 0); - if (IS_ERR(filp)) { - FIRMWARE_DRIVER_DEBUG_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); - filp = NULL; - goto exit; - } - - pos = (loff_t)addr; - ret = kernel_read(filp, val, size, &pos); - if (ret != size) { - FIRMWARE_DRIVER_DEBUG_ERROR("read kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); - goto exit; - } - filp_close(filp, NULL); - - return ret; - -exit: - if (filp != NULL) { - filp_close(filp, NULL); - } - - return -1; -} - -static int firmware_file_write(const char *path, uint32_t addr, uint8_t *val, size_t size) -{ - int ret; - struct file *filp; - loff_t pos; - - filp = filp_open(path, O_RDWR, 777); - if (IS_ERR(filp)) { - FIRMWARE_DRIVER_DEBUG_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); - filp = NULL; - goto exit; - } - - pos = (loff_t)addr; - ret = kernel_write(filp, (void*)val, size, &pos); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("write kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, addr, size, ret); - goto exit; - } - vfs_fsync(filp, 1); - filp_close(filp, NULL); - - return ret; - -exit: - if (filp != NULL) { - filp_close(filp, NULL); - } - - return -1; -} - -/* - * firmware_file_do_work - * function: Sets logical register values - * @path:param[in] Logic device descriptor - * @addr:param[in] Logic device address - * @value:param[in] the register value needs to be set - * @mask:param[in] register mask - * @width:param[in] register bit width - * return: 0:success, <0:failed - */ -static int firmware_file_do_work(char *path, uint32_t addr, uint32_t value, uint32_t mask, - int32_t width) -{ - int ret; - uint8_t read_value[4], write_value[4]; - uint8_t tmp_read8, tmp_write8, tmp_mask8; - uint32_t tmp_read32, tmp_write32; - - FIRMWARE_DRIVER_DEBUG_VERBOSE("path=%s, addr=0x%x, value=0x%x mask=0x%x\r\n", path, addr, value, mask); - if ((width > 4) || (width < 0)) { - FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); - return -1; - } - ret = 0; - mem_clear(read_value, sizeof(read_value)); - mem_clear(write_value, sizeof(write_value)); - ret = firmware_file_read(path, addr, read_value, width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware sysfs read.\r\n"); - return -1; - } - - switch (width) { - case 1: - tmp_read8 = read_value[0]; - tmp_mask8 = (uint8_t)(mask) & 0xFF; - tmp_write8 = (uint8_t)value & 0xFF; - write_value[0] = (tmp_read8 & tmp_mask8) | tmp_write8; - FIRMWARE_DRIVER_DEBUG_VERBOSE("1 byte write val[0]:0x%x", write_value[0]); - break; - case 2: - FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); - return -1; - case 4: - memcpy((uint8_t *)&tmp_read32, read_value, 4); - tmp_write32 = (tmp_read32 & mask) | value; - memcpy(write_value, (uint8_t *)&tmp_write32, 4); - FIRMWARE_DRIVER_DEBUG_VERBOSE("4 byte write val[0]:0x%x, val[1]:0x%x, val[2]:0x%x, val[3]:0x%x", - write_value[0], write_value[1], write_value[2], write_value[3]); - break; - default: - FIRMWARE_DRIVER_DEBUG_ERROR("width %d is not support.\r\n", width); - return -1; - } - - FIRMWARE_DRIVER_DEBUG_VERBOSE("write logic dev[%s] addr[0x%x].\r\n", path, addr); - ret = firmware_file_write(path, addr, write_value, width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("firmware_file_write %s addr 0x%x failed, ret=%d.\r\n", path, addr, ret); - return -1; - } - - return 0; -} - -/* - * firmware_upgrade_en - * function:param[in] Upgrade access enabling switch - * @flag:param[in] !0:enable 0:disable - * return: 0:success, <0:failed - */ -static int firmware_upgrade_en(firmware_sysfs_t *sysfs_info, int flag) -{ - int i; - firmware_logic_dev_en_t *firmware_logic_dev_en_info; - int ret, rv; - char *dev_name; - - ret = 0; - FIRMWARE_DRIVER_DEBUG_VERBOSE("%s en switch: gpio en num %d, logic reg en num %d.\n", - flag ? "Open" : "Close", sysfs_info->gpio_en_info_num, sysfs_info->logic_dev_en_num); - for (i = 0; i < sysfs_info->gpio_en_info_num; i++) { - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware sysfs [%d] gpio[%d] en_level[%d]\n", - i, sysfs_info->gpio_en_info[i].en_gpio, sysfs_info->gpio_en_info[i].en_level); - if (flag) { - ret = gpio_request(sysfs_info->gpio_en_info[i].en_gpio, "sysfs_upgrade_gpio_en"); - if (ret) { - FIRMWARE_DRIVER_DEBUG_ERROR("Requesting cpld_ispvme_upgrade EN[%d] GPIO[%d] failed!\n", - i, sysfs_info->gpio_en_info[i].en_gpio); - goto free_gpio; - } - gpio_direction_output(sysfs_info->gpio_en_info[i].en_gpio, sysfs_info->gpio_en_info[i].en_level); - sysfs_info->gpio_en_info[i].flag = 1; - } else { - gpio_set_value(sysfs_info->gpio_en_info[i].en_gpio, !sysfs_info->gpio_en_info[i].en_level); - gpio_free(sysfs_info->gpio_en_info[i].en_gpio); - sysfs_info->gpio_en_info[i].flag = 0; - } - } - - for (i = 0; i < sysfs_info->logic_dev_en_num; i++) { - firmware_logic_dev_en_info = &sysfs_info->logic_dev_en_info[i]; - dev_name = firmware_logic_dev_en_info->dev_name; - FIRMWARE_DRIVER_DEBUG_VERBOSE("firmware sysfs [%d] dev_name[%s] addr[0x%x] mask[0x%x]" - " en_val[0x%x] dis_val[0x%x] width[%d]\n", - i , firmware_logic_dev_en_info->dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->mask, firmware_logic_dev_en_info->en_val, - firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->width); - if (flag) { - ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->en_val, firmware_logic_dev_en_info->mask, - firmware_logic_dev_en_info->width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Open logic register [%d] EN failed, ret %d.\n", i, ret); - goto free_logic_dev; - } else { - firmware_logic_dev_en_info->flag = 1; - } - } else { - rv = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, - firmware_logic_dev_en_info->width); - if (rv < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, rv); - ret = -1; - } - firmware_logic_dev_en_info->flag = 0; - } - } - - return ret; -free_logic_dev: - for (i = 0; i < sysfs_info->logic_dev_en_num; i++) { - firmware_logic_dev_en_info = &sysfs_info->logic_dev_en_info[i]; - dev_name = firmware_logic_dev_en_info->dev_name; - if (firmware_logic_dev_en_info->flag == 1) { - ret = firmware_file_do_work(dev_name, firmware_logic_dev_en_info->addr, - firmware_logic_dev_en_info->dis_val, firmware_logic_dev_en_info->mask, - firmware_logic_dev_en_info->width); - if (ret < 0) { - FIRMWARE_DRIVER_DEBUG_ERROR("Close logic register [%d] EN failed, ret %d.\n", i, ret); - } - firmware_logic_dev_en_info->flag = 0; - } else { - break; - } - } -free_gpio: - for (i = 0; i < sysfs_info->gpio_en_info_num; i++) { - if (sysfs_info->gpio_en_info[i].flag == 1) { - gpio_set_value(sysfs_info->gpio_en_info[i].en_gpio, !sysfs_info->gpio_en_info[i].en_level); - gpio_free(sysfs_info->gpio_en_info[i].en_gpio); - sysfs_info->gpio_en_info[i].flag = 0; - } else { - break; - } - } - - return -1; -} - -/* - * firmware_init_dev_loc - * function: init logic device, enable upgrade access - * return: 0:success, <0:failed - */ -int firmware_init_dev_loc(firmware_sysfs_t *sysfs_info) -{ - int ret; - - ret = firmware_upgrade_en(sysfs_info, 1); - return ret; -} - -/* - * firmware_finish_dev_loc - * function: finish logic device, disable upgrade access - * return: 0:success, <0:failed - */ -int firmware_finish_dev_loc(firmware_sysfs_t *sysfs_info){ - int ret; - ret = firmware_upgrade_en(sysfs_info, 0); - return ret; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h deleted file mode 100644 index 9da2303c7c00..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef __FIRMWARE_SYSFS_H__ -#define __FIRMWARE_SYSFS_H__ - -#include -#include - -#include - -/* Debug switch level */ -typedef enum { - FIRWMARE_VERBOSE, - FIRWMARE_WARN, - FIRWMARE_ERROR, - FIRWMARE_END, -} firmware_debug_level_t; - -#define FIRMWARE_DRIVER_DEBUG_VERBOSE(fmt, args...) do { \ - if ((g_firmware_driver_debug) & (1U << FIRWMARE_VERBOSE)) { \ - printk(KERN_INFO "[FIRMWARW_DRIVER_SYSFS][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define FIRMWARE_DRIVER_DEBUG_ERROR(fmt, args...) do { \ - if ((g_firmware_driver_debug) & (1U << FIRWMARE_ERROR)) { \ - printk(KERN_ERR "[FIRMWARW_DRIVER_SYSFS][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define FIRMWARE_NAME_LEN 48 - -#define FIRMWARE_FAILED (-1) -#define FIRMWARE_SUCCESS 0 - -/* ioctl publi command, the same as "firmware_upgrade\include\firmware_app.h" */ -#define FIRMWARE_COMMON_TYPE 'C' -#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ -#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ - -/* firmware sysfs driver ioctl command, the same as "firmware_upgrade\include\firmware_app.h" */ -#define FIRMWARE_SYSFS_TYPE 'S' -#define FIRMWARE_SYSFS_INIT _IOR(FIRMWARE_SYSFS_TYPE, 0, char) /* enable upgrade access */ -#define FIRMWARE_SYSFS_FINISH _IOR(FIRMWARE_SYSFS_TYPE, 1, char) /* disable upgrade access */ -#define FIRMWARE_SYSFS_SPI_INFO _IOR(FIRMWARE_SYSFS_TYPE, 2, char) /* spi flash upgrade */ -#define FIRMWARE_SYSFS_DEV_FILE_INFO _IOR(FIRMWARE_SYSFS_TYPE, 3, char) /* sysfs upgrade */ -#define FIRMWARE_SYSFS_MTD_INFO _IOR(FIRMWARE_SYSFS_TYPE, 4, char) /* sysfs mtd upgrade */ - -#define FIRMWARE_SYSFS_TYPE_SPI_LOGIC "SPI_LOGIC" -#define FIRMWARE_SYSFS_TYPE_SYSFS "SYSFS" -#define FIRMWARE_SYSFS_TYPE_MTD "MTD_DEV" - -typedef struct cmd_info_s { - uint32_t size; - void __user *data; -} cmd_info_t; - -typedef struct firmware_device_s { - struct list_head list; /* device list */ - uint32_t chain; /* chain number */ - char name[FIRMWARE_NAME_LEN]; /* name */ - struct miscdevice dev; /* device */ - void *priv; /* private data */ -} firmware_device_t; - -typedef struct firmware_driver_s { - struct list_head list; /* list */ - char name[FIRMWARE_NAME_LEN]; /* name */ - struct platform_driver *drv; /* driver */ - void *priv; /* private data */ -} firmware_driver_t; - -extern int g_firmware_driver_debug; - -/* Get device information based on minor */ -extern firmware_device_t *firmware_get_device_by_minor(int minor); -/* Registere device */ -extern int firmware_device_register(firmware_device_t *fw_dev); -/* Unregister device */ -extern void firmware_device_unregister(firmware_device_t *fw_dev); -/* Registere driver */ -extern int firmware_driver_register(firmware_driver_t *fw_drv); -/* Unregister driver */ -extern void firmware_driver_unregister(firmware_driver_t *fw_drv); -/* SYSFS upgrade initialized */ -extern int firmware_sysfs_init(void); -/* SYSFS unload function */ -extern void firmware_sysfs_exit(void); - -#endif /* end of __FIRMWARE_SYSFS_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h deleted file mode 100644 index 9c6b970274b1..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/firmware_driver_sysfs/include/firmware_sysfs_upgrade.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef __FIRMWARE_SYSFS_UPGRADE_H__ -#define __FIRMWARE_SYSFS_UPGRADE_H__ - -#define FIRMWARE_DEV_NAME_LEN 64 /* the macro definition needs to same as app space define */ -#define FIRMWARE_TYPE_LEN 10 -#define FIRMWARE_EN_INFO_MAX 16 - -typedef struct firmware_spi_logic_info_s { - char dev_name[FIRMWARE_DEV_NAME_LEN]; /* Logical device name */ - uint32_t flash_base; /* Flash Upgrade Address */ - uint32_t ctrl_base; /* SPI upgrade control register base address */ - uint32_t test_base; /* Test flash address */ - uint32_t test_size; /* Test flash size */ -} firmware_spi_logic_info_t; - -typedef struct firmware_dev_file_info_s { - char sysfs_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ - uint32_t dev_base; /* device upgrade base address */ - uint32_t per_len; /* The length of bytes per operation */ - uint32_t test_base; /* Test flash address */ - uint32_t test_size; /* Test flash size */ -} firmware_dev_file_info_t; - -typedef struct firmware_mtd_info_s { - char mtd_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ - uint32_t flash_base; /* Flash Upgrade Address */ - uint32_t test_base; /* Test flash address */ - uint32_t test_size; /* Test flash size */ -} firmware_mtd_info_t; - -typedef struct firmware_gpio_jtag_en_s { - uint32_t en_gpio; /* GPIO enable pin */ - uint32_t en_level; /* GPIO enable level */ - int flag; /* init flag; 1-init 0-not init */ -} firmware_gpio_jtag_en_t; - -typedef struct firmware_logic_dev_en_s { - char dev_name[FIRMWARE_DEV_NAME_LEN]; /* Logical device name */ - uint32_t addr; /* Enable register address */ - uint32_t mask; /* mask */ - uint32_t en_val; /* Enable value */ - uint32_t dis_val; /* Disable value*/ - uint32_t width; /* width */ - int flag; /* init flag; 1-init 0-not init */ -} firmware_logic_dev_en_t; - -typedef struct firmware_sysfs_s { - char devname[FIRMWARE_DEV_NAME_LEN]; /* Device name */ - char type[FIRMWARE_TYPE_LEN]; /* interface type */ - uint32_t chain; /* chain num */ - uint32_t chip_index; /* chip index */ - union { - firmware_spi_logic_info_t spi_logic_info; /* SPI logic Information */ - firmware_dev_file_info_t dev_file_info; /* device file Information */ - firmware_mtd_info_t mtd_info; /* mtd device Information */ - } info; - uint32_t gpio_en_info_num; /* GPIO Enable Number */ - firmware_gpio_jtag_en_t gpio_en_info[FIRMWARE_EN_INFO_MAX]; /* GPIO Enable Information */ - uint32_t logic_dev_en_num; /* Register Enable Number */ - firmware_logic_dev_en_t logic_dev_en_info[FIRMWARE_EN_INFO_MAX]; /* Register Enable Information */ -} firmware_sysfs_t; - -typedef struct firmware_sysfs_function_s{ - int (*init_dev)(void); /* upgrade initializes the operation */ - int (*finish_dev)(void); /* upgrade completes the operation */ -}firmware_sysfs_function_t; - -extern void firmware_set_sysfs_info(firmware_sysfs_t *sysfs_info); -extern int firmware_init_dev_loc(firmware_sysfs_t *sysfs_info); -extern int firmware_finish_dev_loc(firmware_sysfs_t *sysfs_info); - -#endif /* __FIRMWARE_SYSFS_UPGRADE_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h deleted file mode 100644 index 600c69646b1b..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_driver/include/firmware_upgrade.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __FIRMWARE_UPGRADE_H__ -#define __FIRMWARE_UPGRADE_H__ - -#include - -#define TYPE_LEN (10) -#define DEV_NAME_LEN (64) -#define ENABLE_NUM (16) - -#define mem_clear(data, size) memset((data), 0, (size)) - -typedef struct firmware_jtag_device_s { - uint32_t tdi; - uint32_t tck; - uint32_t tms; - uint32_t tdo; - uint32_t tck_delay; -} firmware_jtag_device_t; - -typedef struct firmware_sysfs_device_s { - uint32_t test_base; - uint32_t test_size; - char dev_name[DEV_NAME_LEN]; - uint32_t flash_base; - uint32_t ctrl_base; - char sysfs_name[DEV_NAME_LEN]; - uint32_t dev_base; - uint32_t per_len; - char mtd_name[DEV_NAME_LEN]; -} firmware_sysfs_device_t; - -typedef struct firmware_upgrade_device_s { - char type[TYPE_LEN]; - uint32_t chain; - uint32_t chip_index; - - uint32_t en_gpio_num; /* the number of en_gpio */ - uint32_t en_gpio[ENABLE_NUM]; - uint32_t en_level[ENABLE_NUM]; - - uint32_t en_logic_num; /* the number of en_logic */ - char en_logic_dev[ENABLE_NUM][DEV_NAME_LEN]; - uint32_t en_logic_addr[ENABLE_NUM]; - uint32_t en_logic_mask[ENABLE_NUM]; - uint32_t en_logic_en_val[ENABLE_NUM]; - uint32_t en_logic_dis_val[ENABLE_NUM]; - uint32_t en_logic_width[ENABLE_NUM]; - - int device_flag; - union { - firmware_jtag_device_t jtag; - firmware_sysfs_device_t sysfs; - } upg_type; - -} firmware_upgrade_device_t; - -#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile deleted file mode 100644 index 176d44d2abd9..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -include $(top_srcdir)/Rules.mk - -#OBJ = firmware_app.o debug.o hardware.o ispvm_ui.o ivm_core.o crc32.o -PWD = $(shell pwd) -SRC := -SRC += $(shell find $(PWD) -name '*.c') - -OBJ := $(SRC:%.c=%.o) -LIB += $(BUILD_CFALGS) $(BUILD_LDFLAGS) -lpthread -lreadline -lncurses -INCLUDE = -Iinclude -INCLUDE+= -Wall -APP = firmware_upgrade -ELF_FILE = $(APP) -MAP_FILE = $(APP).map.sym - -.PHONY: build -build:$(OBJ) - $(CC) $^ -o $(ELF_FILE) $(LINKFLAGS) $(LIB) - $(NM) $(ELF_FILE) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' \ - | sort > $(MAP_FILE) - cp -p $(ELF_FILE) $(common_out_put_dir) - -%.o:%.c - $(CC) -c $(CFLAGS) $(INCLUDE) $< -o $@ - -.PHONY: install -install: - echo "firmware_upgrade install success." - cp -p $(ELF_FILE) $(common_out_put_dir) - -.PHONY: clean -clean: - rm -rf $(BUILD_DIR) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c deleted file mode 100644 index 5b60b40ad1ba..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/crc32.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - * This file is derived from crc32.c from the zlib-1.1.3 distribution - * by Jean-loup Gailly and Mark Adler. - */ - -/* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ -/* xxxx: by chihl for compile error */ -#if 1 - -#ifndef FAR -#define FAR -#endif - -typedef unsigned char Byte; /* 8 bits */ -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -typedef Byte FAR Bytef; -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifndef OF /* function prototypes */ -#ifdef STDC -#define OF(args) args -#else -#define OF(args) () -#endif -#endif - -#endif - -#define local static -#define ZEXPORT /* empty */ -unsigned long crc32 (unsigned long, const unsigned char *, unsigned int); - -#define DYNAMIC_CRC_TABLE - -#ifdef DYNAMIC_CRC_TABLE - -local int crc_table_empty = 1; -local uLongf crc_table[256]; -local void make_crc_table OF((void)); - -/* - Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: - x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. - - Polynomials over GF(2) are represented in binary, one bit per coefficient, - with the lowest powers in the most significant bit. Then adding polynomials - is just exclusive-or, and multiplying a polynomial by x is a right shift by - one. If we call the above polynomial p, and represent a byte as the - polynomial q, also with the lowest power in the most significant bit (so the - byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, - where a mod b means the remainder after dividing a by b. - - This calculation is done using the shift-register method of multiplying and - taking the remainder. The register is initialized to zero, and for each - incoming bit, x^32 is added mod p to the register if the bit is a one (where - x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by - x (which is shifting right by one and adding x^32 mod p if the bit shifted - out is a one). We start with the highest power (least significant bit) of - q and repeat for all eight bits of q. - - The table is simply the CRC of all possible eight bit values. This is all - the information needed to generate CRC's on data a byte at a time for all - combinations of CRC register values and incoming bytes. -*/ -local void make_crc_table() -{ - uLong c; - int n, k; - uLong poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; - - /* make exclusive-or pattern from polynomial (0xedb88320L) */ - poly = 0L; - for (n = 0; n < sizeof(p)/sizeof(Byte); n++) - poly |= 1L << (31 - p[n]); - - for (n = 0; n < 256; n++) - { - c = (uLong)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[n] = c; - } - crc_table_empty = 0; -} -#else -/* ======================================================================== - * Table of CRC-32's of all single-byte values (made by make_crc_table) - */ -local const uLongf crc_table[256] = { - 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, - 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, - 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, - 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL, - 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L, - 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L, - 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, - 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL, - 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L, - 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL, - 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, - 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L, - 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L, - 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL, - 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, - 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L, - 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL, - 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L, - 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, - 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L, - 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL, - 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, - 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, - 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, - 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, - 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L, - 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, - 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, - 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, - 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, - 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, - 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L, - 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L, - 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL, - 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL, - 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L, - 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL, - 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L, - 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, - 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L, - 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL, - 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L, - 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, - 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL, - 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L, - 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L, - 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, - 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L, - 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L, - 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L, - 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, - 0x2d02ef8dL -}; -#endif - -#if 0 -/* ========================================================================= - * This function can be used by asm versions of crc32() - */ -const uLongf * ZEXPORT get_crc_table() -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) make_crc_table(); -#endif - return (const uLongf *)crc_table; -} -#endif - -/* ========================================================================= */ -#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8); -#define DO2(buf) DO1(buf); DO1(buf); -#define DO4(buf) DO2(buf); DO2(buf); -#define DO8(buf) DO4(buf); DO4(buf); - -/* ========================================================================= */ -uLong ZEXPORT crc32(uLong crc, const Bytef *buf, uInt len) -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif - crc = crc ^ 0xffffffffL; - while (len >= 8) - { - DO8(buf); - len -= 8; - } - if (len) do { - DO1(buf); - } while (--len); - return crc ^ 0xffffffffL; -} - -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) - -/* No ones complement version. JFFS2 (and other things ?) - * don't use ones compliment in their CRC calculations. - */ -uLong ZEXPORT crc32_no_comp(uLong crc, const Bytef *buf, uInt len) -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif - while (len >= 8) - { - DO8(buf); - len -= 8; - } - if (len) do { - DO1(buf); - } while (--len); - - return crc; -} - -#endif /* CFG_CMD_JFFS2 */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c deleted file mode 100644 index dc1b1ccfc70a..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/debug.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * debug.c - * firmware upgrade debug switch control - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int is_debug_on = DEBUG_IGNORE; - -/* - * firmware_upgrade_debug - * function: Debug switch - * Parses the file "/var/tmp/.firmware_upgrade_debug" and returns the corresponding debug level - * return:off--DEBUG_OFF, app debug on---DEBUG_APP_ON, kernel debug on--DEBUG_KERN_ON, - * all debug on--DEBUG_ALL_ON, other--DEBUG_IGNORE - */ -int firmware_upgrade_debug(void) -{ - int size; - FILE *fp; - char debug_info[DEBUG_INFO_LEN]; - - fp = fopen(DEBUG_FILE, "r"); - if (fp == NULL) { - return DEBUG_IGNORE; - } - - mem_clear(debug_info, DEBUG_INFO_LEN); - size = fread(debug_info, DEBUG_INFO_LEN - 1, 1, fp); - if (size < 0) { - fclose(fp); - return DEBUG_IGNORE; - } - - if (strncmp(debug_info, DEBUG_ON_INFO, 1) == 0) { - fclose(fp); - return DEBUG_APP_ON; - } - - if (strncmp(debug_info, DEBUG_ON_ALL, 1) == 0) { - fclose(fp); - return DEBUG_ALL_ON; - } - - if (strncmp(debug_info, DEBUG_OFF_INFO, 1) == 0) { - fclose(fp); - return DEBUG_OFF; - } - - fclose(fp); - return DEBUG_IGNORE; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c deleted file mode 100644 index ecdc37ef350f..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/firmware_app.c +++ /dev/null @@ -1,985 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int header_offset; - -static firmware_file_name_t firmware_file_str[] = { - {"VME", FIRMWARE_VME}, - {"ISC", FIRMWARE_ISC}, - {"JBI", FIRMWARE_JBI}, - {"SPI-LOGIC-DEV", FIRMWARE_SPI_LOGIC_DEV}, - {"SYSFS", FIRMWARE_SYSFS_DEV}, - {"MTD", FIRMWARE_MTD}, -}; - -/** - * firmware_error_type - * function:set error code - * @action: param[in] The stage where the error occurs - * @info: param[in] Upgrade file information - * return value: error code - */ -int firmware_error_type(int action, name_info_t *info) -{ - if (info == NULL) { - return ERR_FW_UPGRADE; - } - - if((info->type <= FIRMWARE_UNDEF_TYPE) || (info->type > FIRMWARE_OTHER)) { - return ERR_FW_UPGRADE; - } - - if (info->type == FIRMWARE_CPLD) { - switch (action) { - case FIRMWARE_ACTION_CHECK: - return ERR_FW_CHECK_CPLD_UPGRADE; - case FIRMWARE_ACTION_MATCH: - return ERR_FW_MATCH_CPLD_UPGRADE; - case FIRMWARE_ACTION_VERCHECK: - return ERR_FW_SAMEVER_CPLD_UPGRADE; - case FIRMWARE_ACTION_UPGRADE: - return ERR_FW_DO_CPLD_UPGRADE; - case FIRMWARE_ACTION_SUPPORT: - return ERR_FW_DO_UPGRADE_NOT_SUPPORT; - default: - return ERR_FW_UPGRADE; - } - } else if (info->type == FIRMWARE_FPGA) { - switch (action) { - case FIRMWARE_ACTION_CHECK: - return ERR_FW_CHECK_FPGA_UPGRADE; - case FIRMWARE_ACTION_MATCH: - return ERR_FW_MATCH_FPGA_UPGRADE; - case FIRMWARE_ACTION_VERCHECK: - return ERR_FW_SAMEVER_FPGA_UPGRADE; - case FIRMWARE_ACTION_UPGRADE: - return ERR_FW_DO_FPGA_UPGRADE; - case FIRMWARE_ACTION_SUPPORT: - return ERR_FW_DO_UPGRADE_NOT_SUPPORT; - default: - return ERR_FW_UPGRADE; - } - } else { - switch (action) { - case FIRMWARE_ACTION_CHECK: - return ERR_FW_CHECK_UPGRADE; - case FIRMWARE_ACTION_MATCH: - return ERR_FW_MATCH_UPGRADE; - case FIRMWARE_ACTION_VERCHECK: - return ERR_FW_SAMEVER_UPGRADE; - case FIRMWARE_ACTION_UPGRADE: - return ERR_FW_DO_UPGRADE; - case FIRMWARE_ACTION_SUPPORT: - return ERR_FW_DO_UPGRADE_NOT_SUPPORT; - default: - return ERR_FW_UPGRADE; - } - } - -} - -/* - * firmware_check_file_info - * function:Check the file information to determine that the file is available for use on the device - * @info: param[in] Upgrade file information - * @main_type : param[in] main type - * @sub_type : param[in] sub type - * @slot : param[in] 0--main, sub slot starts at 1 - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -static int firmware_check_file_info(name_info_t *info, int main_type, int sub_type, int slot) -{ - int i; - - dbg_print(is_debug_on, "Check file info.\n"); - /* Check the mainboard type */ - for (i = 0; i < MAX_DEV_NUM; i++) { - if (main_type == info->card_type[i]) { - dbg_print(is_debug_on, "main type is 0x%x \n", main_type); - break; - } - } - if (i == MAX_DEV_NUM) { - dbg_print(is_debug_on, "Error: The main type[0x%x] is not matched \n", main_type); - return firmware_error_type(FIRMWARE_ACTION_MATCH, info); - } - - /* Check the sub board type, if firwmare upgrade sub board, then sub_type must be 0 */ - for (i = 0; i < MAX_DEV_NUM; i++) { - if (sub_type == info->sub_type[i]) { - dbg_print(is_debug_on, "sub type is 0x%x \n", sub_type); - break; - } - } - if (i == MAX_DEV_NUM) { - dbg_print(is_debug_on, "Error: The sub type[0x%x] is not matched \n", sub_type); - return firmware_error_type(FIRMWARE_ACTION_MATCH, info); - } - - /* if firwmare upgrade main board, then sub_type must be 0 and slot must be 0 - * if firwmare upgrade sub board, then sub_type must not be 0 and slot must not be 0 */ - if (((sub_type != 0) && (slot < 1)) || ((sub_type == 0) && (slot != 0))) { - dbg_print(is_debug_on, "Error: The sub type[0x%x] is not match slot %d error.\n", sub_type, slot); - return firmware_error_type(FIRMWARE_ACTION_MATCH, info); - } - - dbg_print(is_debug_on, "Success check file info.\n"); - - return FIRMWARE_SUCCESS; -} - -/* - * firmware_get_dev_file_name - * function:Gets the name of the device file - * @info: param[in] Upgrade file information - * @len: param[in] Device file name length - * @file_name: param[out] Device file name - */ -static int firmware_get_dev_file_name(name_info_t *info, char *file_name, int len) -{ - int ret; - - ret = FIRMWARE_SUCCESS; - switch(info->file_type) { - case FIRMWARE_VME: - snprintf(file_name, len, "/dev/firmware_cpld_ispvme%d", info->chain); - break; - case FIRMWARE_ISC: - case FIRMWARE_JBI: - snprintf(file_name, len, "/dev/firmware_cpld%d", info->chain); - break; - case FIRMWARE_SPI_LOGIC_DEV: - case FIRMWARE_SYSFS_DEV: - case FIRMWARE_MTD: - snprintf(file_name, len, "/dev/firmware_sysfs%d", info->chain); - break; - default: - ret = FIRMWARE_FAILED; - break; - } - - return ret; - } - -/** - * firmware_check_chip_verison - * function: Check chip version - * @fd: param[in] Device file descriptor - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -int firmware_check_chip_verison(int fd, name_info_t *info) -{ - int ret; - cmd_info_t cmd_info; - char version[FIRMWARE_NAME_LEN + 1]; - - dbg_print(is_debug_on, "Check chip version.\n"); - mem_clear(version, FIRMWARE_NAME_LEN); - cmd_info.size = FIRMWARE_NAME_LEN; - cmd_info.data = (void *) version; - - /* Ignore version checking */ - if (strncmp("v", info->version, 1) == 0) { - dbg_print(is_debug_on, "Skip check chip version.\n"); - return FIRMWARE_SUCCESS; - } - - /* Get the program version from the device file */ - ret = ioctl(fd, FIRMWARE_GET_VERSION, &cmd_info); - if (ret < 0) { - dbg_print(is_debug_on, "Error: Failed to get version(chain %d, version %s).\n", - info->chain, info->version); - return firmware_error_type(FIRMWARE_ACTION_CHECK, NULL); - } - dbg_print(is_debug_on, "Chip verion: %s, file chip verion: %s.\n", version, info->version); - - /* The device version is the same and does not upgrade */ - if (strcmp(version, info->version) == 0) { - dbg_print(is_debug_on, "the file program version is same as the firmware version %s \n", - info->version); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - dbg_print(is_debug_on, "Check version pass.\n"); - - return FIRMWARE_SUCCESS; -} - -/* - * firmware_get_file_size - * function: Gets the upgrade file size - * @file_name: param[in] Upgrade file name - * @size: param[out] Upgrade file size - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int firmware_get_file_size(char *file_name, uint32_t *size) -{ - int ret; - struct stat buf; - - ret = stat(file_name, &buf); - if (ret < 0) { - return FIRMWARE_FAILED; - } - - if (buf.st_size < 0 || buf.st_size - header_offset < 0) { - return FIRMWARE_FAILED; - } - /* Remove the upgrade file header information to actually upgrade the content size */ - *size = buf.st_size - header_offset; - - return FIRMWARE_SUCCESS; -} - -/* - * firmware_get_file_info - * function: Gets the contents of the upgrade file - * @file_name: param[in] Upgrade file name - * @size: param[in] Upgrade file size - * @buf: param[out] Upgrade the file content - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int firmware_get_file_info(char *file_name, uint8_t *buf, uint32_t size) -{ - FILE *fp; - int len; - int ret; - - fp = fopen(file_name, "r"); - if (fp == NULL) { - return FIRMWARE_FAILED; - } - /* Removes the contents of the upgrade file header information */ - ret = fseek(fp, header_offset, SEEK_SET); - if (ret < 0) { - fclose(fp); - return FIRMWARE_FAILED; - } - - len = fread(buf, size, 1, fp); - if (len < 0) { - fclose(fp); - return FIRMWARE_FAILED; - } - fclose(fp); - - return FIRMWARE_SUCCESS; -} - -/* -* firmware_upgrade -* function: firmware upgrade -* @file_name: param[in] Upgrade file name -* @info: param[in] Upgrade file information -* return value : success--FIRMWARE_SUCCESS, other fail return error code -*/ -static int firmware_upgrade(char *file_name, name_info_t *info) -{ - int ret; - int fd; - uint32_t upg_size; - uint8_t *upg_buf; - char dev_file_name[FIRMWARE_NAME_LEN]; - unsigned long crc; - - dbg_print(is_debug_on, "Upgrade firmware: %s.\n", file_name); - mem_clear(dev_file_name, FIRMWARE_NAME_LEN); - ret = firmware_get_dev_file_name(info, dev_file_name, FIRMWARE_NAME_LEN - 1); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to get dev file name.\n"); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - fd = open(dev_file_name, O_RDWR); - if (fd < 0) { - dbg_print(is_debug_on, "Error: Failed to open %s.\n", dev_file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - -#if 0 - /* check chip name */ - ret = firmware_check_chip_name(fd, info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to check chip name: %s.\n", dev_file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } -#endif - - /* Check chip version */ - ret = firmware_check_chip_verison(fd, info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to check chip version: %s.\n", dev_file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - /* Gets the upgrade file size */ - ret = firmware_get_file_size(file_name, &upg_size); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to get file size: %s.\n", file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - if (upg_size == 0) { - dbg_print(is_debug_on, "Error: The upgrade file is empty \n"); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - upg_buf = (uint8_t *) malloc(upg_size + 1); - if (upg_buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for upgrade file info: %s.\n", - dev_file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - /* Gets the contents of the upgrade file */ - mem_clear(upg_buf, upg_size + 1); - ret = firmware_get_file_info(file_name, upg_buf, upg_size); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to read file info: %s.\n", file_name); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - /* file crc32 check */ - crc = crc32(0, (const unsigned char *)upg_buf, (unsigned int)upg_size); - if (crc != info->crc32) { - dbg_print(is_debug_on, "Error: Failed to check file crc: %s.\n", file_name); - dbg_print(is_debug_on, "the crc value is : %#08x.\n", (unsigned int)crc); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - dbg_print(is_debug_on, "Start upgrading firmware, wait...\n"); - - /* Start firmware upgrade */ - switch (info->file_type) { - case FIRMWARE_VME: - dbg_print(is_debug_on, "start to ispvme upgrade: %s.\n", file_name); - ret = firmware_upgrade_ispvme(fd, file_name, info); - break; - case FIRMWARE_ISC: - case FIRMWARE_JBI: - dbg_print(is_debug_on, "start to upgrade: %s.\n", file_name); - ret = firmware_upgrade_jtag(fd, upg_buf, upg_size, info); - break; - case FIRMWARE_SPI_LOGIC_DEV: - dbg_print(is_debug_on, "start to spi logic dev upgrade: %s.\n", file_name); - ret = firmware_upgrade_spi_logic_dev(fd, upg_buf, upg_size, info); - break; - case FIRMWARE_SYSFS_DEV: - dbg_print(is_debug_on, "start to sysfs upgrade: %s.\n", file_name); - ret = firmware_upgrade_sysfs(fd, upg_buf, upg_size, info); - break; - case FIRMWARE_MTD: - dbg_print(is_debug_on, "start to mtd device upgrade: %s.\n", file_name); - ret = firmware_upgrade_mtd(fd, upg_buf, upg_size, info); - break; - default: - dbg_print(is_debug_on, "Error: file type is not support: %s.\n", file_name); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); - } - - dbg_print(is_debug_on, "Completed.\n"); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to upgrade: %s.\n", dev_file_name); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); - } - - free(upg_buf); - close(fd); - - return FIRMWARE_SUCCESS; -} - -/* -* firmware_upgrade_test -* function: firmware upgrade test -* @file_name: param[in] Upgrade file name -* @info: param[in] Upgrade file information -* return value : success--FIRMWARE_SUCCESS, other fail return error code -*/ -static int firmware_upgrade_test(char *file_name, name_info_t *info) -{ - int ret; - int fd; - uint32_t upg_size; - uint8_t *upg_buf; - char dev_file_name[FIRMWARE_NAME_LEN]; - unsigned long crc; - - dbg_print(is_debug_on, "Upgrade firmware test: %s.\n", file_name); - mem_clear(dev_file_name, FIRMWARE_NAME_LEN); - ret = firmware_get_dev_file_name(info, dev_file_name, FIRMWARE_NAME_LEN - 1); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to get dev file name.\n"); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - fd = open(dev_file_name, O_RDWR); - if (fd < 0) { - dbg_print(is_debug_on, "Error: Failed to open %s.\n", dev_file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - -#if 0 - /* check chip name */ - ret = firmware_check_chip_name(fd, info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to check chip name: %s.\n", dev_file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } -#endif - - /* Check chip version */ - ret = firmware_check_chip_verison(fd, info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to check chip version: %s.\n", dev_file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - /* Gets the upgrade file size */ - ret = firmware_get_file_size(file_name, &upg_size); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to get file size: %s.\n", file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - upg_buf = (uint8_t *) malloc(upg_size + 1); - if (upg_buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for upgrade file info: %s.\n", - dev_file_name); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - /* Gets the contents of the upgrade file */ - mem_clear(upg_buf, upg_size + 1); - ret = firmware_get_file_info(file_name, upg_buf, upg_size); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to read file info: %s.\n", file_name); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - /* file crc32 check */ - crc = crc32(0, (const unsigned char *)upg_buf, (unsigned int)upg_size); - if (crc != info->crc32) { - dbg_print(is_debug_on, "Error: Failed to check file crc: %s.\n", file_name); - dbg_print(is_debug_on, "the crc value is : %#08x.\n", (unsigned int)crc); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - dbg_print(is_debug_on, "Start upgrading firmware test, wait...\n"); - - /* Start firmware upgrade */ - switch (info->file_type) { - case FIRMWARE_VME: - dbg_print(is_debug_on, "start to ispvme upgrade test: %s.\n", file_name); - /* WME upgrade link testing is the same as upgrading, using vme test file. */ - ret = firmware_upgrade_ispvme(fd, file_name, info); - break; - case FIRMWARE_ISC: - case FIRMWARE_JBI: - dbg_print(is_debug_on, "start to upgrade test: %s.\n", file_name); - ret = firmware_upgrade_jtag_test(fd, upg_buf, upg_size, info); - break; - case FIRMWARE_SPI_LOGIC_DEV: - dbg_print(is_debug_on, "start to spi logic dev upgrade test: %s.\n", file_name); - ret = firmware_upgrade_spi_logic_dev_test(fd,info); - break; - case FIRMWARE_SYSFS_DEV: - dbg_print(is_debug_on, "start to sysfs upgrade test: %s.\n", file_name); - ret = firmware_upgrade_sysfs_test(fd, info); - break; - case FIRMWARE_MTD: - dbg_print(is_debug_on, "start to mtd device upgrade test: %s.\n", file_name); - ret = firmware_upgrade_mtd_test(fd, info); - break; - default: - dbg_print(is_debug_on, "Error: test file type is not support: %s.\n", file_name); - free(upg_buf); - close(fd); - return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); - } - - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to upgrade test: %s ret=%d.\n", dev_file_name, ret); - free(upg_buf); - close(fd); - if (ret == FIRMWARE_NOT_SUPPORT) { - return firmware_error_type(FIRMWARE_ACTION_SUPPORT, info); - } else { - return firmware_error_type(FIRMWARE_ACTION_UPGRADE, info); - } - } - - free(upg_buf); - close(fd); - - return FIRMWARE_SUCCESS; -} - -/* - * firmware_upgrade_file_type_map - * function:Gets the corresponding upgrade file type from the upgrade file type list - * @value : param[in] file type name - * return value : file type, firmware_file_type_t - */ -static firmware_file_type_t firmware_upgrade_file_type_map(char *type_str) -{ - int type_num; - int i; - - type_num = (sizeof(firmware_file_str) /sizeof(firmware_file_str[0])); - for (i = 0; i < type_num; i++) { - if (!strncmp(firmware_file_str[i].firmware_file_name_str, type_str, - strlen(firmware_file_str[i].firmware_file_name_str))) { - return firmware_file_str[i].firmware_file_type; - } - } - - dbg_print(is_debug_on, "firmware file type unknown\n"); - return FIRMWARE_NONE; -} - -/* - * firmware_upgrade_parse_kv - * function:Parses the header information of the upgrade file based on the key and value - * @key: param[in] key - * @value : param[in] value - * @info : param[out] Upgrade file information - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -static int firmware_upgrade_parse_kv(const char *key, const char *value, name_info_t *info) -{ - int i; - if (key == NULL || value == NULL) { - dbg_print(is_debug_on, "Error: failed to get ther key or value.\n"); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } else if (strcmp(key, FILEHEADER_DEVTYPE) == 0) { - /* main board type */ - for (i = 0; i < MAX_DEV_NUM && info->card_type[i]; i++); - if (i == MAX_DEV_NUM) { - dbg_print(is_debug_on, "Error: card type is full for %s. \n", value); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - info->card_type[i] = strtoul(value, NULL, 0); - } else if (strcmp(key, FILEHEADER_SUBTYPE) == 0) { - /* sub board type */ - for (i = 0; i < MAX_DEV_NUM && info->sub_type[i]; i++); - if (i == MAX_DEV_NUM) { - dbg_print(is_debug_on, "Error: sub type is full for %s. \n", value); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - info->sub_type[i] = strtoul(value, NULL, 0); - } else if (strcmp(key, FILEHEADER_TYPE) == 0) { - /* Device type */ - if (strcmp(value, FIRMWARE_CPLD_NAME) == 0) { - info->type = FIRMWARE_CPLD; - } else if (strcmp(value, FIRMWARE_FPGA_NAME) == 0) { - info->type = FIRMWARE_FPGA; - } else { - info->type = FIRMWARE_OTHER; - } - } else if (strcmp(key, FILEHEADER_CHAIN) == 0) { - /* link num */ - info->chain = strtoul(value, NULL, 10); - } else if (strcmp(key, FILEHEADER_CHIPNAME) == 0) { - /* chip name */ - if (strlen(value) >= FIRMWARE_NAME_LEN) { - dbg_print(is_debug_on, "Error: '%s' is too long for a chipname.\n", value); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - mem_clear(info->chip_name, sizeof(info->chip_name)); - snprintf(info->chip_name, sizeof(info->chip_name) - 1, "%s", value); - } else if (strcmp(key, FILEHEADER_VERSION) == 0) { - /* version */ - if (strlen(value) >= FIRMWARE_NAME_LEN) { - dbg_print(is_debug_on, "Error: '%s' is too long for a version.\n", value); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - mem_clear(info->version, sizeof(info->version)); - snprintf(info->version, sizeof(info->version) - 1, "%s", value); - } else if (strcmp(key, FILEHEADER_FILETYPE) == 0) { - /* file type */ - info->file_type = firmware_upgrade_file_type_map((char *)value); - } else if (strcmp(key, FILEHEADER_CRC) == 0) { - /* file crc32 */ - info->crc32 = strtoul(value, NULL, 0); - } else { - dbg_print(is_debug_on, "Warning: key '%s' is unknown. Continue anyway.\n", key); - return FIRMWARE_SUCCESS; - } - dbg_print(is_debug_on, "key %s is matched.\n", key); - return FIRMWARE_SUCCESS; - } - -/* - * firmware_upgrade_parse_check - * function:Check the results of header parsing - * @file_name: Upgrade file name - * @info : Upgrade file information - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -static int firmware_upgrade_parse_check(char *file_name, name_info_t *info) -{ - int i; - if (info->card_type[0] == 0) { - dbg_print(is_debug_on, "Error: %s card type is missing.\n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - if ((info->type <= FIRMWARE_UNDEF_TYPE) || (info->type > FIRMWARE_OTHER)) { - dbg_print(is_debug_on, "Error: %s type is unknown.\n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - if (strlen(info->chip_name) == 0) { - dbg_print(is_debug_on, "Error: %s chip_name is empty.\n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - if (strlen(info->version) == 0) { - dbg_print(is_debug_on, "Error: %s version is empty.\n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - if ((info->file_type <= FIRMWARE_UNDEF_FILE_TYPE) || (info->file_type > FIRMWARE_NONE)) { - dbg_print(is_debug_on, "Error: %s file type is unknown.\n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - dbg_print(is_debug_on, "The file header parse:(%s) \n" , file_name); - dbg_print(is_debug_on, " card type: "); - for (i = 0; i < MAX_DEV_NUM && info->card_type[i]; i++){ - dbg_print(is_debug_on, "0x%x, ", info->card_type[i]); - } - dbg_print(is_debug_on, "\n" - " sub type : "); - for (i = 0; i < MAX_DEV_NUM && info->sub_type[i]; i++){ - dbg_print(is_debug_on, "0x%x, ", info->sub_type[i]); - } - dbg_print(is_debug_on, "\n" - " type : %d, \n" - " chain : %d, \n" - " chip name: %s \n" - " version : %s \n" - " file type: %d \n" - " the crc32 value: %#x \n", - info->type, info->chain, info->chip_name, info->version, info->file_type, info->crc32); - return FIRMWARE_SUCCESS; -} - -/* - * firmware_upgrade_read_header - * function:Read the header information of the upgrade file - * @file_name: param[in] Upgrade file name - * @info : param[out] Upgrade file information - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -static int firmware_upgrade_read_header( char *file_name, name_info_t *info) -{ - FILE *fp; - char *charp; - char *charn; - char header_buffer[MAX_HEADER_SIZE]; - char header_key[MAX_HEADER_KV_SIZE]; - char header_var[MAX_HEADER_KV_SIZE]; - int ret; - int len; - - fp = fopen(file_name, "r"); - if (fp == NULL) { - dbg_print(is_debug_on, "Error: Failed to open file: %s. \n", file_name); - perror("fopen"); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - mem_clear(header_buffer, sizeof(header_buffer)); - len = fread(header_buffer, MAX_HEADER_SIZE - 1, 1, fp); - fclose(fp); - if (len < 0) { - dbg_print(is_debug_on, "Error: Failed to read header : %s. \n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - header_buffer[MAX_HEADER_SIZE - 1] = 0; - - charp = strstr(header_buffer, "FILEHEADER(\n"); - if (charp == NULL) { - dbg_print(is_debug_on, "Error: The file format %s is wrong. \n", file_name); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - charp += strlen("FILEHEADER(\n"); - - dbg_print(is_debug_on, "File parse start.\n"); - mem_clear(info, sizeof(name_info_t)); - ret = 0; - charn = charp; - mem_clear(header_key, sizeof(header_key)); - while (*charn != ')') { - charn = strpbrk(charp, "=,)\n"); - if (charn == NULL) { - dbg_print(is_debug_on, "Error: The parser can't find mark.\n"); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - if (charn - charp >= MAX_HEADER_KV_SIZE) { - dbg_print(is_debug_on, "Error: The parser find a overflow mark.\n"); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - switch (*charn) { - case '=': - mem_clear(header_key, sizeof(header_key)); - memcpy(header_key, charp, charn - charp); - break; - case '\n': - case ',': - mem_clear(header_var, sizeof(header_var)); - memcpy(header_var, charp, charn - charp); - dbg_print(is_debug_on, "Parser: %s = %s .\n", header_key, header_var); - firmware_upgrade_parse_kv(header_key, header_var, info); - break; - case ')': - break; - default: - dbg_print(is_debug_on, "Error: The parser get unexpected mark '%c(0x%02X)'.\n", *charn, *charn); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - charp = (charn + 1); - } - - ret = firmware_upgrade_parse_check(file_name, info); - if (ret != FIRMWARE_SUCCESS) { - return FIRMWARE_FAILED; - } - - header_offset = charp + 1 - header_buffer; /* charp at '\n' */ - dbg_print(is_debug_on,"the header offset is %d \n", header_offset); - return FIRMWARE_SUCCESS; -} - -/* - * firmware_upgrade_one_file - * function: upgrade file - * @file_name: Upgrade file name - * @main_type: main board type - * @sub_type: sub board type - * @slot: 0--main, sub slot starts at 1 - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -static int firmware_upgrade_one_file(char *file_name, int main_type, int sub_type, int slot) -{ - int ret; - name_info_t info; - - if ((slot < 0) || (file_name == NULL)) { - dbg_print(is_debug_on, "Failed firmware_upgrade_one_file parameter err.\n"); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "firmware upgrade %s 0x%x 0x%x %d\n", file_name, main_type, sub_type, slot); - /* Read the header information of the upgrade file */ - ret = firmware_upgrade_read_header(file_name, &info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Failed to get file header: %s\n", file_name); - return ret; - } - - /* Check the file information to determine that the file is available for use on the device */ - ret = firmware_check_file_info(&info, main_type, sub_type, slot); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "File is not match with the device: %s.\n", file_name); - return ret; - } - - /* The link number corresponding to the upgrade file is calculated based on the slot number. - 16 links are reserved for each slot. main boade slot is 0. */ - info.chain += slot * FIRMWARE_SLOT_MAX_NUM; - ret = firmware_upgrade(file_name, &info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Failed to upgrade: %s.\n", file_name); - return ret; - } - - return FIRMWARE_SUCCESS; -} - -/* - * firmware_upgrade_file_test - * function: upgrade file - * @file_name: Upgrade file name - * @main_type: main board type - * @sub_type: sub board type - * @slot: 0--main, sub slot starts at 1 - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -static int firmware_upgrade_file_test(char *file_name, int main_type, int sub_type, int slot) -{ - int ret; - name_info_t info; - - if ((slot < 0) || (file_name == NULL)) { - dbg_print(is_debug_on, "Failed firmware_upgrade_one_file parameter err.\n"); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "firmware upgrade %s 0x%x 0x%x %d\n", file_name, main_type, sub_type, slot); - /* Read the header information of the upgrade file */ - ret = firmware_upgrade_read_header(file_name, &info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Failed to get file header: %s, ret=%d\n", file_name, ret); - return ret; - } - - /* Check the file information to determine that the file is available for use on the device */ - ret = firmware_check_file_info(&info, main_type, sub_type, slot); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "File is not match with the device: %s, ret=%d.\n", file_name, ret); - return ret; - } - - /* The link number corresponding to the upgrade file is calculated based on the slot number. - 16 links are reserved for each slot. main boade slot is 0. */ - info.chain += slot * FIRMWARE_SLOT_MAX_NUM; - ret = firmware_upgrade_test(file_name, &info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Failed to upgrade: %s, ret=%d\n", file_name, ret); - return ret; - } - - return FIRMWARE_SUCCESS; -} - -static int firmware_upgrade_data_dump(char *argv[]) -{ - int ret; - uint32_t offset, len; - - /* dump by type */ - if (strcmp(argv[2], "spi_logic_dev") == 0) { - /* usag: firmware_upgrade dump spi_logic_dev dev_path offset size print/record_file_path */ - offset = strtoul(argv[4], NULL, 0); - len = strtoul(argv[5], NULL, 0); - /* offset needs align by 256 bytes */ - if ((offset & 0xff) || (len == 0)) { - dbg_print(is_debug_on,"only support offset align by 256 bytes.\n"); - return FIRMWARE_FAILED; - } - dbg_print(is_debug_on, "start to dump %s data. offset:0x%x, len:0x%x\n", argv[2], offset, len); - ret = firmware_upgrade_spi_logic_dev_dump(argv[3], offset, len, argv[6]); - } else { - dbg_print(is_debug_on, "Error: %s not support dump data.\n", argv[2]); - return FIRMWARE_FAILED; - } - - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Failed to dump %s data. ret:%d\n", argv[3], ret); - return FIRMWARE_FAILED; - } - - return FIRMWARE_SUCCESS; -} - -int main(int argc, char *argv[]) -{ - int ret; - int main_type, sub_type, slot; - - is_debug_on = firmware_upgrade_debug(); - - signal(SIGTERM, SIG_IGN); /* ignore kill signal */ - signal(SIGINT, SIG_IGN); /* ignore ctrl+c signal */ - signal(SIGTSTP, SIG_IGN); /* ignore ctrl+z signal */ - - if ((argc != 5) && (argc != 6) && (argc != 7)) { - printf("Use:\n"); - printf(" upgrade file : firmware_upgrade file main_type sub_type slot\n"); - printf(" upgrade test : firmware_upgrade test file main_type sub_type slot\n"); - printf(" spi_logic_dev dump : firmware_upgrade dump spi_logic_dev dev_path offset size print/record_file_path\n"); - dbg_print(is_debug_on, "Failed to upgrade the number of argv: %d.\n", argc); - return ERR_FW_UPGRADE; - } - - if (argc == 5) { - main_type = strtoul(argv[2], NULL, 16); - sub_type = strtoul(argv[3], NULL, 16); - slot = strtoul(argv[4], NULL, 10); - printf("+================================+\n"); - printf("|Begin to upgrade, please wait...|\n"); - ret = firmware_upgrade_one_file(argv[1], main_type, sub_type, slot); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Failed to upgrade a firmware file: %s. (%d)\n", argv[1], ret); - printf("| Upgrade failed! |\n"); - printf("+================================+\n"); - return ret; - } - - printf("| Upgrade succeeded! |\n"); - printf("+================================+\n"); - dbg_print(is_debug_on, "Sucess to upgrade a firmware file: %s.\n", argv[1]); - return FIRMWARE_SUCCESS; - } else if ((argc == 6) && (strcmp(argv[1], "test") == 0)) { - main_type = strtoul(argv[3], NULL, 16); - sub_type = strtoul(argv[4], NULL, 16); - slot = strtoul(argv[5], NULL, 10); - printf("+=====================================+\n"); - printf("|Begin to upgrade test, please wait...|\n"); - ret = firmware_upgrade_file_test(argv[2], main_type, sub_type, slot); - if (ret == FIRMWARE_SUCCESS) { - printf("| Upgrade test succeeded! |\n"); - printf("+=====================================+\n"); - dbg_print(is_debug_on, "Sucess to upgrade test a firmware file: %s.\n", argv[2]); - return FIRMWARE_SUCCESS; - } else if (ret == ERR_FW_DO_UPGRADE_NOT_SUPPORT) { - dbg_print(is_debug_on, "do not support to upgrade test a firmware file: %s. (%d)\n", argv[2], ret); - printf("| Not support to upgrade test! |\n"); - printf("+=====================================+\n"); - return ret; - } else { - dbg_print(is_debug_on, "Failed to upgrade test a firmware file: %s. (%d)\n", argv[2], ret); - printf("| Upgrade test failed! |\n"); - printf("+=====================================+\n"); - return ret; - } - } else if (strcmp(argv[1], "dump") == 0) { - /* print device data */ - ret = firmware_upgrade_data_dump(argv); - if (ret == FIRMWARE_SUCCESS) { - printf("dump data succeeded.\n"); - return FIRMWARE_SUCCESS; - } else { - printf("dump data failed. ret:%d\n", ret); - return ret; - } - } - - printf("+=================+\n"); - printf("| UPGRADE FAIL! |\n"); - printf("+=================+\n"); - - return ERR_FW_UPGRADE; - } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c deleted file mode 100644 index c43c9095fda6..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/hardware.c +++ /dev/null @@ -1,263 +0,0 @@ -/********************************************************************************* -* Lattice Semiconductor Corp. Copyright 2000-2008 -* -* This is the hardware.c of ispVME V12.1 for JTAG programmable devices. -* All the functions requiring customization are organized into this file for -* the convinience of porting. -*********************************************************************************/ -/********************************************************************************* -* Revision History: -* -* 09/11/07 NN Type cast mismatch variables -* 09/24/07 NN Added calibration function. -* Calibration will help to determine the system clock frequency -* and the count value for one micro-second delay of the target -* specific hardware. -* Modified the ispVMDelay function -* Removed Delay Percent support -* Moved the sclock() function from ivm_core.c to hardware.c -*********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/******************************************************************************** -* Declaration of global variables -* -*********************************************************************************/ - -unsigned char g_siIspPins = 0x00; /*Keeper of JTAG pin state*/ -unsigned short g_usInPort = 0x379; /*Address of the TDO pin*/ -unsigned short g_usOutPort = 0x378; /*Address of TDI, TMS, TCK pin*/ -unsigned short g_usCpu_Frequency = 1000; /*Enter your CPU frequency here, unit in MHz.*/ - -/********************************************************************************* -* This is the definition of the bit locations of each respective -* signal in the global variable g_siIspPins. -* -* NOTE: Users must add their own implementation here to define -* the bit location of the signal to target their hardware. -* The example below is for the Lattice download cable on -* on the parallel port. -* -*********************************************************************************/ - -#if 0 -const unsigned char g_ucPinTDI = JTAG_TDI; /* Bit address of TDI */ -const unsigned char g_ucPinTCK = JTAG_TCK; /* Bit address of TCK */ -const unsigned char g_ucPinTMS = JTAG_TMS; /* Bit address of TMS */ -const unsigned char g_ucPinENABLE = JTAG_ENABLE; /* Bit address of ENABLE */ -const unsigned char g_ucPinTRST = JTAG_TRST; /* Bit address of TRST */ -const unsigned char g_ucPinTDO = JTAG_TDO; /* Bit address of TDO*/ -#endif -int g_file_fd = -1; -/*************************************************************** -* -* Functions declared in hardware.c module. -* -***************************************************************/ -void writePort(unsigned char a_ucPins, unsigned char a_ucValue); -unsigned char readPort(); -void sclock(); -void ispVMDelay(unsigned short a_usTimeDelay); -void calibration(void); - -/******************************************************************************** -* writePort -* To apply the specified value to the pins indicated. This routine will -* be modified for specific systems. -* As an example, this code uses the IBM-PC standard Parallel port, along with the -* schematic shown in Lattice documentation, to apply the signals to the -* JTAG pins. -* -* PC Parallel port pin Signal name Port bit address -* 2 g_ucPinTDI 1 -* 3 g_ucPinTCK 2 -* 4 g_ucPinTMS 4 -* 5 g_ucPinENABLE 8 -* 6 g_ucPinTRST 16 -* 10 g_ucPinTDO 64 -* -* Parameters: -* - a_ucPins, which is actually a set of bit flags (defined above) -* that correspond to the bits of the data port. Each of the I/O port -* bits that drives an isp programming pin is assigned a flag -* (through a #define) corresponding to the signal it drives. To -* change the value of more than one pin at once, the flags are added -* together, much like file access flags are. -* -* The bit flags are only set if the pin is to be changed. Bits that -* do not have their flags set do not have their levels changed. The -* state of the port is always manintained in the static global -* variable g_siIspPins, so that each pin can be addressed individually -* without disturbing the others. -* -* - a_ucValue, which is either HIGH (0x01 ) or LOW (0x00 ). Only these two -* values are valid. Any non-zero number sets the pin(s) high. -* -*********************************************************************************/ - -void writePort(unsigned char a_ucPins, unsigned char a_ucValue) -{ - switch (a_ucPins) { - case JTAG_TCK: - ioctl(g_file_fd, FIRMWARE_JTAG_TCK, &a_ucValue); - break; - case JTAG_TDI: - ioctl(g_file_fd, FIRMWARE_JTAG_TDI, &a_ucValue); - break; - case JTAG_TMS: - ioctl(g_file_fd, FIRMWARE_JTAG_TMS, &a_ucValue); - break; - case JTAG_ENABLE: - ioctl(g_file_fd, FIRMWARE_JTAG_EN, &a_ucValue); - break; - case JTAG_TRST: - //ioctl(g_file_fd, FIRMWARE_JTAG_TRST, &a_ucValue); - break; - default: - break; - } -} - -/********************************************************************************* -* -* readPort -* -* Returns the value of the TDO from the device. -* -**********************************************************************************/ -unsigned char readPort() -{ - unsigned char ucRet = 0; - - ioctl(g_file_fd, FIRMWARE_JTAG_TDO, &ucRet); - return (ucRet); -} - -/********************************************************************************* -* sclock -* -* Apply a pulse to TCK. -* -* This function is located here so that users can modify to slow down TCK if -* it is too fast (> 25MHZ). Users can change the IdleTime assignment from 0 to -* 1, 2... to effectively slowing down TCK by half, quarter... -* -*********************************************************************************/ -void sclock() -{ - unsigned short IdleTime = 0; //change to > 0 if need to slow down TCK - unsigned short usIdleIndex = 0; - IdleTime++; - for (usIdleIndex = 0; usIdleIndex < IdleTime; usIdleIndex++) { - writePort(JTAG_TCK, 0x01); - } - for (usIdleIndex = 0; usIdleIndex < IdleTime; usIdleIndex++) { - writePort(JTAG_TCK, 0x00); - } -} -/******************************************************************************** -* -* ispVMDelay -* -* -* Users must implement a delay to observe a_usTimeDelay, where -* bit 15 of the a_usTimeDelay defines the unit. -* 1 = milliseconds -* 0 = microseconds -* Example: -* a_usTimeDelay = 0x0001 = 1 microsecond delay. -* a_usTimeDelay = 0x8001 = 1 millisecond delay. -* -* This subroutine is called upon to provide a delay from 1 millisecond to a few -* hundreds milliseconds each time. -* It is understood that due to a_usTimeDelay is defined as unsigned short, a 16 bits -* integer, this function is restricted to produce a delay to 64000 micro-seconds -* or 32000 milli-second maximum. The VME file will never pass on to this function -* a delay time > those maximum number. If it needs more than those maximum, the VME -* file will launch the delay function several times to realize a larger delay time -* cummulatively. -* It is perfectly alright to provide a longer delay than required. It is not -* acceptable if the delay is shorter. -* -* Delay function example--using the machine clock signal of the native CPU------ -* When porting ispVME to a native CPU environment, the speed of CPU or -* the system clock that drives the CPU is usually known. -* The speed or the time it takes for the native CPU to execute one for loop -* then can be calculated as follows: -* The for loop usually is compiled into the ASSEMBLY code as shown below: -* LOOP: DEC RA; -* JNZ LOOP; -* If each line of assembly code needs 4 machine cycles to execute, -* the total number of machine cycles to execute the loop is 2 x 4 = 8. -* Usually system clock = machine clock (the internal CPU clock). -* Note: Some CPU has a clock multiplier to double the system clock for - the machine clock. -* -* Let the machine clock frequency of the CPU be F, or 1 machine cycle = 1/F. -* The time it takes to execute one for loop = (1/F ) x 8. -* Or one micro-second = F(MHz)/8; -* -* Example: The CPU internal clock is set to 100Mhz, then one micro-second = 100/8 = 12 -* -* The C code shown below can be used to create the milli-second accuracy. -* Users only need to enter the speed of the cpu. -* -**********************************************************************************/ -void ispVMDelay(unsigned short a_usTimeDelay) -{ - struct timespec ts; - - if (a_usTimeDelay & 0x8000) { - /* milliseconds */ - a_usTimeDelay &= 0x7FFF; - ts.tv_sec = (long int) (a_usTimeDelay / 1000); - ts.tv_nsec = (long int) (a_usTimeDelay % 1000) * 1000000ul; - } else { - /* microseconds */ - ts.tv_sec = 0; - ts.tv_nsec = (long int) a_usTimeDelay * 1000ul; - } - - nanosleep(&ts, NULL); -} - -/********************************************************************************* -* -* calibration -* -* It is important to confirm if the delay function is indeed providing -* the accuracy required. Also one other important parameter needed -* checking is the clock frequency. -* Calibration will help to determine the system clock frequency -* and the loop_per_micro value for one micro-second delay of the target -* specific hardware. -* -**********************************************************************************/ -void calibration(void) -{ - /*Apply 2 pulses to TCK.*/ - writePort(JTAG_TCK, 0x00); - writePort(JTAG_TCK, 0x01); - writePort(JTAG_TCK, 0x00); - writePort(JTAG_TCK, 0x01); - writePort(JTAG_TCK, 0x00); - - /*Delay for 1 millisecond. Pass on 1000 or 0x8001 both = 1ms delay.*/ - ispVMDelay(0x8001); - - /*Apply 2 pulses to TCK*/ - writePort(JTAG_TCK, 0x01); - writePort(JTAG_TCK, 0x00); - writePort(JTAG_TCK, 0x01); - writePort(JTAG_TCK, 0x00); -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c deleted file mode 100644 index 69a8e53852b5..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ispvm_ui.c +++ /dev/null @@ -1,837 +0,0 @@ -/************************************************************** -* -* Lattice Semiconductor Corp. Copyright 2008 -* -* ispVME Embedded allows programming of Lattice's suite of FPGA -* devices on embedded systems through the JTAG port. The software -* is distributed in source code form and is open to re - distribution -* and modification where applicable. -* -* ispVME Embedded C Source comprised with 3 modules: -* ispvm_ui.c is the module provides input and output support. -* ivm_core.c is the module interpret the VME file(s). -* hardware.c is the module access the JTAG port of the device(s). -* -* The optional module cable.c is for supporting Lattice's parallel -* port ispDOWNLOAD cable on DOS and Windows 95/98 O/S. It can be -* requested from Lattice's ispVMSupport. -* -***************************************************************/ - -/************************************************************** -* -* Revision History of ispvm_ui.c -* -* 3/6/07 ht Added functions vme_out_char(),vme_out_hex(), -* vme_out_string() to provide output resources. -* Consolidate all printf() calls into the added output -* functions. -* -* 09/11/07 NN Added Global variables initialization -* 09/24/07 NN Added a switch allowing users to do calibration. -* Calibration will help to determine the system clock frequency -* and the count value for one micro-second delay of the target -* specific hardware. -* Removed Delay Percent support -* 11/15/07 NN moved the checking of the File CRC to the end of processing -* 08/28/08 NN Added Calculate checksum support. -***************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include - -/*************************************************************** -* -* File pointer to the VME file. -* -***************************************************************/ - -FILE *g_pVMEFile = NULL; - -/*************************************************************** -* -* Functions declared in this ispvm_ui.c module -* -***************************************************************/ -unsigned char GetByte(void); -void vme_out_char(unsigned char charOut); -void vme_out_hex(unsigned char hexOut); -void vme_out_string(char *stringOut); -void ispVMMemManager(signed char cTarget, unsigned short usSize); -void ispVMFreeMem(void); -void error_handler(short a_siRetCode, char *pszMessage); -signed char ispVM(const char *a_pszFilename); - -/*************************************************************** -* -* Global variables. -* -***************************************************************/ -unsigned short g_usPreviousSize = 0; -unsigned short g_usExpectedCRC = 0; - -/*************************************************************** -* -* External variables and functions declared in ivm_core.c module. -* -***************************************************************/ -extern signed char ispVMCode(); -extern void ispVMCalculateCRC32(unsigned char a_ucData); -extern void ispVMStart(); -extern void ispVMEnd(); -extern unsigned short g_usCalculatedCRC; -extern unsigned short g_usDataType; -extern unsigned char *g_pucOutMaskData, -*g_pucInData, -*g_pucOutData, -*g_pucHIRData, -*g_pucTIRData, -*g_pucHDRData, -*g_pucTDRData, -*g_pucOutDMaskData, -*g_pucIntelBuffer; -extern unsigned char *g_pucHeapMemory; -extern unsigned short g_iHeapCounter; -extern unsigned short g_iHEAPSize; -extern unsigned short g_usIntelDataIndex; -extern unsigned short g_usIntelBufferSize; -extern LVDSPair *g_pLVDSList; -//08/28/08 NN Added Calculate checksum support. -extern unsigned long g_usChecksum; -extern unsigned int g_uiChecksumIndex; - -/* Added reinit for call ispvme more than once */ -extern void ivm_core_reinit(); -/*************************************************************** -* -* External variables and functions declared in hardware.c module. -* -***************************************************************/ -extern void calibration(void); -extern unsigned short g_usCpu_Frequency; -extern int g_file_fd; - -/*************************************************************** -* -* Supported VME versions. -* -***************************************************************/ - -const char *const g_szSupportedVersions[] = { "__VME2.0", "__VME3.0", "____12.0", "____12.1", 0 }; - -/*************************************************************** -* -* GetByte -* -* Returns a byte to the caller. The returned byte depends on the -* g_usDataType register. If the HEAP_IN bit is set, then the byte -* is returned from the HEAP. If the LHEAP_IN bit is set, then -* the byte is returned from the intelligent buffer. Otherwise, -* the byte is returned directly from the VME file. -* -***************************************************************/ - -char* strlwr(char *str) -{ - char *orig = str; -// process the string - for (; *str != '\0'; str++) - *str = tolower(*str); - return orig; -} - -unsigned char GetByte() -{ - unsigned char ucData = 0; - - if (g_usDataType & HEAP_IN) { - - /*************************************************************** - * - * Get data from repeat buffer. - * - ***************************************************************/ - - if (g_iHeapCounter > g_iHEAPSize) { - - /*************************************************************** - * - * Data over-run. - * - ***************************************************************/ - - return 0xFF; - } - - ucData = g_pucHeapMemory[g_iHeapCounter++]; - } - else if ( g_usDataType & LHEAP_IN ) { - - /*************************************************************** - * - * Get data from intel buffer. - * - ***************************************************************/ - - if (g_usIntelDataIndex >= g_usIntelBufferSize) { - - /*************************************************************** - * - * Data over-run. - * - ***************************************************************/ - - return 0xFF; - } - - ucData = g_pucIntelBuffer[g_usIntelDataIndex++]; - } - else { - - /*************************************************************** - * - * Get data from file. - * - ***************************************************************/ - - ucData = (unsigned char)fgetc(g_pVMEFile); - - if (feof(g_pVMEFile)) { - - /*************************************************************** - * - * Reached EOF. - * - ***************************************************************/ - - return 0xFF; - } - /*************************************************************** - * - * Calculate the 32-bit CRC if the expected CRC exist. - * - ***************************************************************/ - if( g_usExpectedCRC != 0) - { - ispVMCalculateCRC32(ucData); - } - } - - return (ucData); -} - -/*************************************************************** -* -* vme_out_char -* -* Send a character out to the output resource if available. -* The monitor is the default output resource. -* -* -***************************************************************/ -void vme_out_char(unsigned char charOut) -{ - dbg_print(is_debug_on, "%c", charOut); -} -/*************************************************************** -* -* vme_out_hex -* -* Send a character out as in hex format to the output resource -* if available. The monitor is the default output resource. -* -* -***************************************************************/ -void vme_out_hex(unsigned char hexOut) -{ - dbg_print(is_debug_on, "%.2X", hexOut); -} -/*************************************************************** -* -* vme_out_string -* -* Send a text string out to the output resource if available. -* The monitor is the default output resource. -* -* -***************************************************************/ -void vme_out_string(char *stringOut) -{ - dbg_print(is_debug_on,"%s",stringOut); -} -/*************************************************************** -* -* ispVMMemManager -* -* Allocate memory based on cTarget. The memory size is specified -* by usSize. -* -***************************************************************/ - -void ispVMMemManager(signed char cTarget, unsigned short usSize) -{ - switch (cTarget) { - case XTDI: - case TDI: - if (g_pucInData != NULL) { - if (g_usPreviousSize == usSize) { /*memory exist*/ - break; - } - else { - free(g_pucInData); - g_pucInData = NULL; - } - } - g_pucInData = (unsigned char *)malloc(usSize / 8 + 2); - g_usPreviousSize = usSize; - case XTDO: - case TDO: - if (g_pucOutData != NULL) { - if (g_usPreviousSize == usSize) { /*already exist*/ - break; - } - else { - free(g_pucOutData); - g_pucOutData = NULL; - } - } - g_pucOutData = (unsigned char *)malloc(usSize / 8 + 2); - g_usPreviousSize = usSize; - break; - case MASK: - if (g_pucOutMaskData != NULL) { - if (g_usPreviousSize == usSize) { /*already allocated*/ - break; - } - else { - free(g_pucOutMaskData); - g_pucOutMaskData = NULL; - } - } - g_pucOutMaskData = (unsigned char *)malloc(usSize / 8 + 2); - g_usPreviousSize = usSize; - break; - case HIR: - if (g_pucHIRData != NULL) { - free(g_pucHIRData); - g_pucHIRData = NULL; - } - g_pucHIRData = (unsigned char *)malloc(usSize / 8 + 2); - break; - case TIR: - if (g_pucTIRData != NULL) { - free(g_pucTIRData); - g_pucTIRData = NULL; - } - g_pucTIRData = (unsigned char *)malloc(usSize / 8 + 2); - break; - case HDR: - if (g_pucHDRData != NULL) { - free(g_pucHDRData); - g_pucHDRData = NULL; - } - g_pucHDRData = (unsigned char *)malloc(usSize / 8 + 2); - break; - case TDR: - if (g_pucTDRData != NULL) { - free(g_pucTDRData); - g_pucTDRData = NULL; - } - g_pucTDRData = (unsigned char *)malloc(usSize / 8 + 2); - break; - case HEAP: - if (g_pucHeapMemory != NULL) { - free(g_pucHeapMemory); - g_pucHeapMemory = NULL; - } - g_pucHeapMemory = (unsigned char *)malloc(usSize + 2); - break; - case DMASK: - if (g_pucOutDMaskData != NULL) { - if (g_usPreviousSize == usSize) { /*already allocated*/ - break; - } - else { - free(g_pucOutDMaskData); - g_pucOutDMaskData = NULL; - } - } - g_pucOutDMaskData = (unsigned char *)malloc(usSize / 8 + 2); - g_usPreviousSize = usSize; - break; - case LHEAP: - if (g_pucIntelBuffer != NULL) { - free(g_pucIntelBuffer); - g_pucIntelBuffer = NULL; - } - g_pucIntelBuffer = (unsigned char *)malloc(usSize + 2); - break; - case LVDS: - if (g_pLVDSList != NULL) { - free(g_pLVDSList); - g_pLVDSList = NULL; - } - g_pLVDSList = (LVDSPair * )calloc(usSize, sizeof(LVDSPair)); - break; - default: - return; - } -} - -/*************************************************************** -* -* ispVMFreeMem -* -* Free memory that were dynamically allocated. -* -***************************************************************/ - -void ispVMFreeMem() -{ - if (g_pucHeapMemory != NULL) { - free(g_pucHeapMemory); - g_pucHeapMemory = NULL; - } - - if (g_pucOutMaskData != NULL) { - free(g_pucOutMaskData); - g_pucOutMaskData = NULL; - } - - if (g_pucInData != NULL) { - free(g_pucInData); - g_pucInData = NULL; - } - - if (g_pucOutData != NULL) { - free(g_pucOutData); - g_pucOutData = NULL; - } - - if (g_pucHIRData != NULL) { - free(g_pucHIRData); - g_pucHIRData = NULL; - } - - if (g_pucTIRData != NULL) { - free(g_pucTIRData); - g_pucTIRData = NULL; - } - - if (g_pucHDRData != NULL) { - free(g_pucHDRData); - g_pucHDRData = NULL; - } - - if (g_pucTDRData != NULL) { - free(g_pucTDRData); - g_pucTDRData = NULL; - } - - if (g_pucOutDMaskData != NULL) { - free(g_pucOutDMaskData); - g_pucOutDMaskData = NULL; - } - - if (g_pucIntelBuffer != NULL) { - free(g_pucIntelBuffer); - g_pucIntelBuffer = NULL; - } - - if (g_pLVDSList != NULL) { - free(g_pLVDSList); - g_pLVDSList = NULL; - } -} - -/*************************************************************** -* -* error_handler -* -* Reports the error message. -* -***************************************************************/ - -void error_handler(short a_siRetCode, char *pszMessage) -{ - const char *pszErrorMessage[] = { "pass", - "verification fail", - "can't find the file", - "wrong file type", - "file error", - "option error", - "crc verification error" }; - - strcpy(pszMessage, pszErrorMessage[-a_siRetCode]); -} -/*************************************************************** -* -* ispVM -* -* The entry point of the ispVM embedded. If the version and CRC -* are verified, then the VME will be processed. -* -***************************************************************/ -signed char ispVM(const char *a_pszFilename) -{ - char szFileVersion[9] = { 0 }; - signed char cRetCode = 0; - signed char cIndex = 0; - signed char cVersionIndex = 0; - unsigned char ucReadByte = 0; - int ret; - /*************************************************************** - * - * Global variables initialization. - * - * 09/11/07 NN Added - ***************************************************************/ - g_pucHeapMemory = NULL; - g_iHeapCounter = 0; - g_iHEAPSize = 0; - g_usIntelDataIndex = 0; - g_usIntelBufferSize = 0; - g_usPreviousSize = 0; - - /*************************************************************** - * - * Open a file pointer to the VME file. - * - ***************************************************************/ - - if ((g_pVMEFile = fopen(a_pszFilename, "rb")) == NULL) { - return VME_FILE_READ_FAILURE; - } - /* Skip the contents of the file header */ - ret=fseek(g_pVMEFile, header_offset, SEEK_SET); - if (ret < 0) { - vme_out_string("Failed to skip header.\n"); - fclose(g_pVMEFile); - g_pVMEFile = NULL; - return VME_ARGUMENT_FAILURE; - } - - g_usCalculatedCRC = 0; - g_usExpectedCRC = 0; - ucReadByte = GetByte(); - switch (ucReadByte) { - case FILE_CRC: - - /*************************************************************** - * - * Read and store the expected CRC to do the comparison at the end. - * Only versions 3.0 and higher support CRC protection. - * - ***************************************************************/ - - g_usExpectedCRC = (unsigned char)fgetc(g_pVMEFile); - g_usExpectedCRC <<= 8; - g_usExpectedCRC |= fgetc(g_pVMEFile); - - /*************************************************************** - * - * Read and store the version of the VME file. - * - ***************************************************************/ - - for (cIndex = 0; cIndex < 8; cIndex++) { - szFileVersion[cIndex] = GetByte(); - } - break; - default: - - /*************************************************************** - * - * Read and store the version of the VME file. Must be version 2.0. - * - ***************************************************************/ - - szFileVersion[0] = (signed char)ucReadByte; - for (cIndex = 1; cIndex < 8; cIndex++) { - szFileVersion[cIndex] = GetByte(); - } - - break; - } - - /*************************************************************** - * - * Compare the VME file version against the supported version. - * - ***************************************************************/ - for (cVersionIndex = 0; g_szSupportedVersions[cVersionIndex] != 0; cVersionIndex++) { - for (cIndex = 0; cIndex < 8; cIndex++) { - if (szFileVersion[cIndex] != g_szSupportedVersions[cVersionIndex][cIndex]) { - cRetCode = VME_VERSION_FAILURE; - break; - } - cRetCode = 0; - } - - if (cRetCode == 0) { - - /*************************************************************** - * - * Found matching version, break. - * - ***************************************************************/ - - break; - } - } - - if (cRetCode < 0) { - - /*************************************************************** - * - * VME file version failed to match the supported versions. - * - ***************************************************************/ - - fclose(g_pVMEFile); - g_pVMEFile = NULL; - return VME_VERSION_FAILURE; - } - - /*************************************************************** - * - * Enable the JTAG port to communicate with the device. - * Set the JTAG state machine to the Test-Logic/Reset State. - * - ***************************************************************/ - ispVMStart(); - - /*************************************************************** - * - * Process the VME file. - * - ***************************************************************/ - - cRetCode = ispVMCode(); - - /*************************************************************** - * - * Set the JTAG State Machine to Test-Logic/Reset state then disable - * the communication with the JTAG port. - * - ***************************************************************/ - - ispVMEnd(); - - fclose(g_pVMEFile); - g_pVMEFile = NULL; - - ispVMFreeMem(); - - /*************************************************************** - * - * Compare the expected CRC versus the calculated CRC. - * - ***************************************************************/ - - if (cRetCode == 0 && g_usExpectedCRC != 0 && (g_usExpectedCRC != g_usCalculatedCRC)) { - printf("Expected CRC: 0x%.4X\n", g_usExpectedCRC); - printf("Calculated CRC: 0x%.4X\n", g_usCalculatedCRC); - return VME_CRC_FAILURE; - } - - return (cRetCode); -} - -/*************************************************************** -* -* ispvme_reinit -* -* Reinit ispvm_ui variables. -* -***************************************************************/ -static void ispvm_ui_reinit() -{ - g_pVMEFile = NULL; - g_usPreviousSize = 0; - g_usExpectedCRC = 0; -} - -/*************************************************************** -* -* main -* -***************************************************************/ - -int ispvme_main(int argc, char *argv[], int file_fd, name_info_t *info) -{ - unsigned short iCommandLineIndex = 0; - short siRetCode = 0; - char szExtension[5] = { 0 }; - char szCommandLineArg[300] = { 0 }; - short sicalibrate = 0; - - ispvm_ui_reinit(); - ivm_core_reinit(); - - //08/28/08 NN Added Calculate checksum support. - g_usChecksum = 0; - g_uiChecksumIndex = 0; - - if (file_fd < 0) { - dbg_print(is_debug_on, "Error:firmware upgrade ispvme dev parameters failed.\r\n"); - return -1; - } else { - g_file_fd = file_fd; - } - -#if 0 - ret = firmware_check_chip_name(g_file_fd, info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to check chip name: %s.\n", file_name); - close(g_file_fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } - - ret = firmware_check_chip_verison(g_file_fd, info); - if (ret != FIRMWARE_SUCCESS) { - dbg_print(is_debug_on, "Error: Failed to check chip version: %s.\n", file_name); - close(g_file_fd); - return firmware_error_type(FIRMWARE_ACTION_CHECK, info); - } -#endif - - vme_out_string(" Lattice Semiconductor Corp.\n"); - vme_out_string("\n ispVME(tm) V"); - vme_out_string(VME_VERSION_NUMBER); - vme_out_string(" Copyright 1998-2011.\n"); - vme_out_string("\nFor daisy chain programming of all in-system programmable devices\n\n"); - - if (argc < 2) { - vme_out_string("\nUsage: vme [option] vme_file [vme_file]\n"); - vme_out_string("Example: vme vme_file1.vme vme_file2.vme\n"); - vme_out_string("option -c: do the calibration.\n"); - vme_out_string("Example: vme -c\n"); - vme_out_string("Example: vme -c vme_file1.vme vme_file2.vme\n"); - vme_out_string("\n\n"); - g_file_fd = -1; - /* Change return to determine whether the upgrade was successful */ - return -1; - } - for (iCommandLineIndex = 1; iCommandLineIndex < argc; iCommandLineIndex++) { - strncpy(szCommandLineArg, argv[iCommandLineIndex], sizeof(szCommandLineArg) - 1); - if (!strcmp(strlwr(szCommandLineArg), "-c") && (iCommandLineIndex == 1)) { - sicalibrate = 1; - } else if (!strcmp(strlwr(szCommandLineArg), "-c") && (iCommandLineIndex != 1)) { - vme_out_string("Error: calibrate option -c must be the first argument\n\n"); - g_file_fd = -1; - /* Change return to determine whether the upgrade was successful */ - return -1; - //exit(1); - } else { - strcpy(szExtension, &szCommandLineArg[strlen(szCommandLineArg) - 4]); - strlwr(szExtension); - if (strcmp(szExtension, ".vme")) { - vme_out_string("Error: VME files must end with the extension *.vme\n\n"); - g_file_fd = -1; - /* Change return to determine whether the upgrade was successful */ - return -1; - //exit(1); - } - } - } - siRetCode = 0; - - if (sicalibrate) { - calibration(); - } - for (iCommandLineIndex = 1; iCommandLineIndex < argc; iCommandLineIndex++) { /* Process all VME files sequentially */ - strcpy(szCommandLineArg, argv[iCommandLineIndex]); - if (!strcmp(strlwr(szCommandLineArg), "-c") && (iCommandLineIndex == 1)) { - - } else if (!strcmp(strlwr(szCommandLineArg), "-checksum")) { - - } else { - vme_out_string("Processing virtual machine file ("); - vme_out_string(szCommandLineArg); - vme_out_string(")......\n\n"); - siRetCode = ispVM(argv[iCommandLineIndex]); - if (siRetCode < 0) { - break; - } - } - } - - if (siRetCode < 0) { - error_handler(siRetCode, szCommandLineArg); - vme_out_string("Failed due to "); - vme_out_string(szCommandLineArg); - vme_out_string("\n\n"); - vme_out_string("+=======+\n"); - vme_out_string("| FAIL! |\n"); - vme_out_string("+=======+\n\n"); - } else { - vme_out_string("+=======+\n"); - vme_out_string("| PASS! |\n"); - vme_out_string("+=======+\n\n"); - //08/28/08 NN Added Calculate checksum support. - if (g_usChecksum != 0) { - g_usChecksum &= 0xFFFF; - printf("Data Checksum: %.4X\n\n", (unsigned int)g_usChecksum); - g_usChecksum = 0; - } - } - g_file_fd = -1; - /* Change return to determine whether the upgrade was successful */ - return siRetCode; - //exit(siRetCode); -} - -/* - * firmware_upgrade_ispvme - * function: ispvme firmware upgrade - * @file_fd: param[in] Upgrade devices fd - * @upgrade_file_name: param[in] Upgrade file name - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS, other fail return error code - */ -int firmware_upgrade_ispvme(int file_fd, char *upgrade_file_name, name_info_t *info) -{ - char *argv[2]; - int ret, rv, i, retry; - - argv[1] = upgrade_file_name; - - /* Initialize and enable */ - rv = ioctl(file_fd, FIRMWARE_JTAG_INIT,NULL); - if (rv < 0) { - vme_out_string("Failed to init GPIO.\n"); - return VME_ARGUMENT_FAILURE; - } - - i = 0; - retry = FIRMWARE_UPGRADE_RETRY_CNT; - - ret = 0; - while(i < retry) { - ret = ispvme_main(2, argv, file_fd, info); - if (ret < 0) { - i++; - dbg_print(is_debug_on, "%d times ispvme upgrade failed. ret %d.\n", i, ret); - continue; - } else { - dbg_print(is_debug_on, "ispvme upgrade success.\n"); - break; - } - } - - /* Upgrade completed, release */ - rv = ioctl(file_fd, FIRMWARE_JTAG_FINISH, NULL); - if (rv < 0) { - vme_out_string("Failed to release GPIO.\n"); - return VME_ARGUMENT_FAILURE; - } - - return ret; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c deleted file mode 100644 index 540be481d35e..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_gpio_vme/ivm_core.c +++ /dev/null @@ -1,3097 +0,0 @@ -/*************************************************************** -* -* Lattice Semiconductor Corp. Copyright 2009 -* -* ispVME Embedded allows programming of Lattice's suite of FPGA -* devices on embedded systems through the JTAG port. The software -* is distributed in source code form and is open to re - distribution -* and modification where applicable. -* -* Revision History of ivm_core.c module: -* 4/25/06 ht Change some variables from unsigned short or int -* to long int to make the code compiler independent. -* 5/24/06 ht Support using RESET (TRST) pin as a special purpose -* control pin such as triggering the loading of known -* state exit. -* 3/6/07 ht added functions to support output to terminals -* -* 09/24/07 NN Type cast mismatch variables -* Moved the sclock() function to hardware.c -* 08/28/08 NN Added Calculate checksum support. -* 4/1/09 Nguyen replaced the recursive function call codes on -* the ispVMLCOUNT function -* -***************************************************************/ - -#include -#include -#include -#include - -/*************************************************************** -* -* Global variables used to specify the flow control and data type. -* -* g_usFlowControl: flow control register. Each bit in the -* register can potentially change the -* personality of the embedded engine. -* g_usDataType: holds the data type of the current row. -* -***************************************************************/ - -unsigned short g_usFlowControl = 0x0000; -unsigned short g_usDataType = 0x0000; - -/*************************************************************** -* -* Global variables used to specify the ENDDR and ENDIR. -* -* g_ucEndDR: the state that the device goes to after SDR. -* g_ucEndIR: the state that the device goes to after SIR. -* -***************************************************************/ - -unsigned char g_ucEndDR = DRPAUSE; -unsigned char g_ucEndIR = IRPAUSE; - -/*************************************************************** -* -* Global variables used to support header/trailer. -* -* g_usHeadDR: the number of lead devices in bypass. -* g_usHeadIR: the sum of IR length of lead devices. -* g_usTailDR: the number of tail devices in bypass. -* g_usTailIR: the sum of IR length of tail devices. -* -***************************************************************/ - -unsigned short g_usHeadDR = 0; -unsigned short g_usHeadIR = 0; -unsigned short g_usTailDR = 0; -unsigned short g_usTailIR = 0; - -/*************************************************************** -* -* Global variable to store the number of bits of data or instruction -* to be shifted into or out from the device. -* -***************************************************************/ - -unsigned short g_usiDataSize = 0; - -/*************************************************************** -* -* Stores the frequency. Default to 1 MHz. -* -***************************************************************/ - -int g_iFrequency = 1000; - -/*************************************************************** -* -* Stores the maximum amount of ram needed to hold a row of data. -* -***************************************************************/ - -unsigned short g_usMaxSize = 0; - -/*************************************************************** -* -* Stores the LSH or RSH value. -* -***************************************************************/ - -unsigned short g_usShiftValue = 0; - -/*************************************************************** -* -* Stores the current repeat loop value. -* -***************************************************************/ - -unsigned short g_usRepeatLoops = 0; - -/*************************************************************** -* -* Stores the current vendor. -* -***************************************************************/ - -signed char g_cVendor = LATTICE; - -/*************************************************************** -* -* Stores the VME file CRC. -* -***************************************************************/ - -unsigned short g_usCalculatedCRC = 0; - -/*************************************************************** -* -* Stores the Device Checksum. -* -***************************************************************/ -//08/28/08 NN Added Calculate checksum support. -unsigned long g_usChecksum = 0; -unsigned int g_uiChecksumIndex = 0; - -/*************************************************************** -* -* Stores the current state of the JTAG state machine. -* -***************************************************************/ - -signed char g_cCurrentJTAGState = 0; - -/*************************************************************** -* -* Global variables used to support looping. -* -* g_pucHeapMemory: holds the entire repeat loop. -* g_iHeapCounter: points to the current byte in the repeat loop. -* g_iHEAPSize: the current size of the repeat in bytes. -* -***************************************************************/ - -unsigned char *g_pucHeapMemory = NULL; -unsigned short g_iHeapCounter = 0; -unsigned short g_iHEAPSize = 0; - -/*************************************************************** -* -* Global variables used to support intelligent programming. -* -* g_usIntelDataIndex: points to the current byte of the -* intelligent buffer. -* g_usIntelBufferSize: holds the size of the intelligent -* buffer. -* -***************************************************************/ - -unsigned short g_usIntelDataIndex = 0; -unsigned short g_usIntelBufferSize = 0; - -/**************************************************************************** -* -* Holds the maximum size of each respective buffer. These variables are used -* to write the HEX files when converting VME to HEX. -* -*****************************************************************************/ - -unsigned short g_usTDOSize = 0; -unsigned short g_usMASKSize = 0; -unsigned short g_usTDISize = 0; -unsigned short g_usDMASKSize = 0; -unsigned short g_usLCOUNTSize = 0; -unsigned short g_usHDRSize = 0; -unsigned short g_usTDRSize = 0; -unsigned short g_usHIRSize = 0; -unsigned short g_usTIRSize = 0; -unsigned short g_usHeapSize = 0; - -/*************************************************************** -* -* Global variables used to store data. -* -* g_pucOutMaskData: local RAM to hold one row of MASK data. -* g_pucInData: local RAM to hold one row of TDI data. -* g_pucOutData: local RAM to hold one row of TDO data. -* g_pucHIRData: local RAM to hold the current SIR header. -* g_pucTIRData: local RAM to hold the current SIR trailer. -* g_pucHDRData: local RAM to hold the current SDR header. -* g_pucTDRData: local RAM to hold the current SDR trailer. -* g_pucIntelBuffer: local RAM to hold the current intelligent buffer. -* g_pucOutDMaskData: local RAM to hold one row of DMASK data. -* -***************************************************************/ - -unsigned char *g_pucOutMaskData = NULL, -*g_pucInData = NULL, -*g_pucOutData = NULL, -*g_pucHIRData = NULL, -*g_pucTIRData = NULL, -*g_pucHDRData = NULL, -*g_pucTDRData = NULL, -*g_pucIntelBuffer = NULL, -*g_pucOutDMaskData = NULL; - -/*************************************************************** -* -* JTAG state machine transition table. -* -***************************************************************/ - -struct { - unsigned char CurState; /* From this state */ - unsigned char NextState; /* Step to this state */ - unsigned char Pattern; /* The tragetory of TMS */ - unsigned char Pulses; /* The number of steps */ -} g_JTAGTransistions[25] = { - { RESET, RESET, 0xFC, 6 }, /* Transitions from RESET */ - { RESET, IDLE, 0x00, 1 }, - { RESET, DRPAUSE, 0x50, 5 }, - { RESET, IRPAUSE, 0x68, 6 }, - { IDLE, RESET, 0xE0, 3 }, /* Transitions from IDLE */ - { IDLE, DRPAUSE, 0xA0, 4 }, - { IDLE, IRPAUSE, 0xD0, 5 }, - { DRPAUSE, RESET, 0xF8, 5 }, /* Transitions from DRPAUSE */ - { DRPAUSE, IDLE, 0xC0, 3 }, - { DRPAUSE, IRPAUSE, 0xF4, 7 }, - { DRPAUSE, DRPAUSE, 0xE8, 6 }, /* 06/14/06 Support POLING STATUS LOOP*/ - { IRPAUSE, RESET, 0xF8, 5 }, /* Transitions from IRPAUSE */ - { IRPAUSE, IDLE, 0xC0, 3 }, - { IRPAUSE, DRPAUSE, 0xE8, 6 }, - { DRPAUSE, SHIFTDR, 0x80, 2 }, /* Extra transitions using SHIFTDR */ - { IRPAUSE, SHIFTDR, 0xE0, 5 }, - { SHIFTDR, DRPAUSE, 0x80, 2 }, - { SHIFTDR, IDLE, 0xC0, 3 }, - { IRPAUSE, SHIFTIR, 0x80, 2 }, /* Extra transitions using SHIFTIR */ - { SHIFTIR, IRPAUSE, 0x80, 2 }, - { SHIFTIR, IDLE, 0xC0, 3 }, - { DRPAUSE, DRCAPTURE, 0xE0, 4 }, /* 11/15/05 Support DRCAPTURE*/ - { DRCAPTURE, DRPAUSE, 0x80, 2 }, - { IDLE, DRCAPTURE, 0x80, 2 }, - { IRPAUSE, DRCAPTURE, 0xE0, 4 } -}; - -/*************************************************************** -* -* List to hold all LVDS pairs. -* -***************************************************************/ - -LVDSPair *g_pLVDSList = NULL; -unsigned short g_usLVDSPairCount = 0; - -/*************************************************************** -* -* Function prototypes. -* -***************************************************************/ - -signed char ispVMCode(); -signed char ispVMDataCode(); -long int ispVMDataSize(); -void ispVMData(unsigned char *Data); -signed char ispVMShift(signed char Code); -signed char ispVMAmble(signed char Code); -signed char ispVMLoop(unsigned short a_usLoopCount); -signed char ispVMBitShift(signed char mode, unsigned short bits); -void ispVMComment(unsigned short a_usCommentSize); -void ispVMHeader(unsigned short a_usHeaderSize); -signed char ispVMLCOUNT(unsigned short a_usCountSize); -void ispVMClocks(unsigned short Clocks); -void ispVMBypass(signed char ScanType, unsigned short Bits); -void ispVMStateMachine(signed char NextState); -void ispVMStart(); -void ispVMEnd(); -signed char ispVMSend(unsigned short int); -signed char ispVMRead(unsigned short int); -signed char ispVMReadandSave(unsigned short int); -signed char ispVMProcessLVDS(unsigned short a_usLVDSCount); - -/*************************************************************** -* -* External variables and functions in ispvm_ui.c module -* -***************************************************************/ -extern void vme_out_char(unsigned char charOut); -extern void vme_out_hex(unsigned char hexOut); -extern void vme_out_string(char *stringOut); -extern unsigned char GetByte(); -extern void ispVMMemManager(signed char types, unsigned short size); - -/*************************************************************** -* -* External variables and functions in hardware.c module -* -***************************************************************/ -extern void ispVMDelay(unsigned short int a_usMicroSecondDelay); -extern unsigned char readPort(); -extern void writePort(unsigned char pins, unsigned char value); -extern void sclock(); -extern signed char g_cCurrentJTAGState; -#ifdef VME_DEBUG - -/*************************************************************** -* -* GetState -* -* Returns the state as a string based on the opcode. Only used -* for debugging purposes. -* -***************************************************************/ - -const char* GetState(unsigned char a_ucState) -{ - switch (a_ucState) { - case RESET: - return ("RESET"); - case IDLE: - return ("IDLE"); - case IRPAUSE: - return ("IRPAUSE"); - case DRPAUSE: - return ("DRPAUSE"); - case SHIFTIR: - return ("SHIFTIR"); - case SHIFTDR: - return ("SHIFTDR"); - case DRCAPTURE: /* 11/15/05 support DRCAPTURE*/ - return ("DRCAPTURE"); - default: - break; - } - - return 0; -} - -/*************************************************************** -* -* PrintData -* -* Prints the data. Only used for debugging purposes. -* -***************************************************************/ - -void PrintData(unsigned short a_iDataSize, unsigned char *a_pucData) -{ - //09/11/07 NN added local variables initialization - unsigned short usByteSize = 0; - unsigned short usBitIndex = 0; - signed short usByteIndex = 0; - unsigned char ucByte = 0; - unsigned char ucFlipByte = 0; - - if (a_iDataSize % 8) { - //09/11/07 NN Type cast mismatch variables - usByteSize = (unsigned short)(a_iDataSize / 8 + 1); - } else { - //09/11/07 NN Type cast mismatch variables - usByteSize = (unsigned short)(a_iDataSize / 8);// 4 - } - printf("("); - //09/11/07 NN Type cast mismatch variables - for (usByteIndex = (signed short)(usByteSize - 1); usByteIndex >= 0; usByteIndex--) { - ucByte = a_pucData[usByteIndex]; - ucFlipByte = 0x00; - - /*************************************************************** - * - * Flip each byte. - * - ***************************************************************/ - - for (usBitIndex = 0; usBitIndex < 8; usBitIndex++) { - ucFlipByte <<= 1; - if (ucByte & 0x1) { - ucFlipByte |= 0x1; - } - - ucByte >>= 1; - } - - /*************************************************************** - * - * Print the flipped byte. - * - ***************************************************************/ - - printf("%.02X", ucFlipByte); - if ((usByteSize - usByteIndex) % 40 == 39) { - printf("\n\t\t"); - } - if (usByteIndex < 0) - break; - } - printf(")"); -} -#endif //VME_DEBUG - -/*************************************************************** -* -* ispVMDataSize -* -* Returns a VME-encoded number, usually used to indicate the -* bit length of an SIR/SDR command. -* -***************************************************************/ - -long int ispVMDataSize() -{ - //09/11/07 NN added local variables initialization - long int iSize = 0; - signed char cCurrentByte = 0; - signed char cIndex = 0; - cIndex = 0; - - while ((cCurrentByte = GetByte()) & 0x80) { - iSize |= ((long int)(cCurrentByte & 0x7F)) << cIndex; - cIndex += 7; - } - iSize |= ((long int)(cCurrentByte & 0x7F)) << cIndex; - - return iSize; -} - -/*************************************************************** -* -* ispVMCode -* -* This is the heart of the embedded engine. All the high-level opcodes -* are extracted here. Once they have been identified, then it -* will call other functions to handle the processing. -* -***************************************************************/ - -signed char ispVMCode() -{ - //09/11/07 NN added local variables initialization - unsigned short iRepeatSize = 0; - signed char cOpcode = 0; - signed char cRetCode = 0; - unsigned char ucState = 0; - unsigned short usDelay = 0; - unsigned short usToggle = 0; - unsigned char usByte = 0; - - /*************************************************************** - * - * Check the compression flag only if this is the first time - * this function is entered. Do not check the compression flag if - * it is being called recursively from other functions within - * the embedded engine. - * - ***************************************************************/ - - if (!(g_usDataType & LHEAP_IN) && !(g_usDataType & HEAP_IN)) { - usByte = GetByte(); - if (usByte == 0xf1) { - g_usDataType |= COMPRESS; - } else if (usByte == 0xf2) { - g_usDataType &= ~COMPRESS; - } else { - return VME_INVALID_FILE; - } - } - - /*************************************************************** - * - * Begin looping through all the VME opcodes. - * - ***************************************************************/ - while ((cOpcode = GetByte()) >= 0) { - switch (cOpcode) { - case STATE: - - /*************************************************************** - * - * Step the JTAG state machine. - * - ***************************************************************/ - - ucState = GetByte(); - /*************************************************************** - * - * Step the JTAG state machine to DRCAPTURE to support Looping. - * - ***************************************************************/ - - if ((g_usDataType & LHEAP_IN) && - (ucState == DRPAUSE) && - (g_cCurrentJTAGState == ucState)) { - ispVMStateMachine(DRCAPTURE); - } - - ispVMStateMachine(ucState); - -#ifdef VME_DEBUG - if (g_usDataType & LHEAP_IN) { - printf("LDELAY %s ", GetState(ucState)); - } else { - printf("STATE %s;\n", GetState(ucState)); - } -#endif //VME_DEBUG - break; - case SIR: - case SDR: - case XSDR: - -#ifdef VME_DEBUG - switch (cOpcode) { - case SIR: - printf("SIR "); - break; - case SDR: - case XSDR: - if (g_usDataType & LHEAP_IN) { - printf("LSDR "); - } else { - printf("SDR "); - } - break; - } -#endif //VME_DEBUG - /*************************************************************** - * - * Shift in data into the device. - * - ***************************************************************/ - cRetCode = ispVMShift(cOpcode); - if (cRetCode != 0) { - return (cRetCode); - } - break; - case WAIT: - - /*************************************************************** - * - * Observe delay. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - usDelay = (unsigned short)ispVMDataSize(); - ispVMDelay(usDelay); - -#ifdef VME_DEBUG - if (usDelay & 0x8000) { - - /*************************************************************** - * - * Since MSB is set, the delay time must be decoded to - * millisecond. The SVF2VME encodes the MSB to represent - * millisecond. - * - ***************************************************************/ - - usDelay &= ~0x8000; - if (g_usDataType & LHEAP_IN) { - printf("%.2E SEC;\n", (float)usDelay / 1000); - } else { - printf("RUNTEST %.2E SEC;\n", (float)usDelay / 1000); - } - } else { - - /*************************************************************** - * - * Since MSB is not set, the delay time is given as microseconds. - * - ***************************************************************/ - - if (g_usDataType & LHEAP_IN) { - printf("%.2E SEC;\n", (float)usDelay / 1000000); - } else { - printf("RUNTEST %.2E SEC;\n", (float)usDelay / 1000000); - } - } -#endif //VME_DEBUG - break; - case TCK: - - /*************************************************************** - * - * Issue clock toggles. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - usToggle = (unsigned short)ispVMDataSize(); - ispVMClocks(usToggle); - -#ifdef VME_DEBUG - printf("RUNTEST %d TCK;\n", usToggle); -#endif //VME_DEBUG - break; - case ENDDR: - - /*************************************************************** - * - * Set the ENDDR. - * - ***************************************************************/ - - g_ucEndDR = GetByte(); - -#ifdef VME_DEBUG - printf("ENDDR %s;\n", GetState(g_ucEndDR)); -#endif //VME_DEBUG - break; - case ENDIR: - - /*************************************************************** - * - * Set the ENDIR. - * - ***************************************************************/ - - g_ucEndIR = GetByte(); - -#ifdef VME_DEBUG - printf("ENDIR %s;\n", GetState(g_ucEndIR)); -#endif //VME_DEBUG - break; - case HIR: - case TIR: - case HDR: - case TDR: - -#ifdef VME_DEBUG - switch (cOpcode) { - case HIR: - printf("HIR "); - break; - case TIR: - printf("TIR "); - break; - case HDR: - printf("HDR "); - break; - case TDR: - printf("TDR "); - break; - } -#endif //VME_DEBUG - - /*************************************************************** - * - * Set the header/trailer of the device in order to bypass - * successfully. - * - ***************************************************************/ - - cRetCode = ispVMAmble(cOpcode); - if (cRetCode != 0) { - return (cRetCode); - } - -#ifdef VME_DEBUG - printf(";\n"); -#endif //VME_DEBUG - break; - case MEM: - - /*************************************************************** - * - * The maximum RAM required to support processing one row of the - * VME file. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - g_usMaxSize = (unsigned short)ispVMDataSize(); - -#ifdef VME_DEBUG - printf("// MEMSIZE %d\n", g_usMaxSize); -#endif //VME_DEBUG - break; - case VENDOR: - - /*************************************************************** - * - * Set the VENDOR type. - * - ***************************************************************/ - - cOpcode = GetByte(); - switch (cOpcode) { - case LATTICE: -#ifdef VME_DEBUG - printf("// VENDOR LATTICE\n"); -#endif //VME_DEBUG - g_cVendor = LATTICE; - break; - case ALTERA: -#ifdef VME_DEBUG - printf("// VENDOR ALTERA\n"); -#endif //VME_DEBUG - g_cVendor = ALTERA; - break; - case XILINX: -#ifdef VME_DEBUG - printf("// VENDOR XILINX\n"); -#endif //VME_DEBUG - g_cVendor = XILINX; - break; - default: - break; - } - break; - case SETFLOW: - - /*************************************************************** - * - * Set the flow control. Flow control determines the personality - * of the embedded engine. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - g_usFlowControl |= (unsigned short)ispVMDataSize(); - break; - case RESETFLOW: - - /*************************************************************** - * - * Unset the flow control. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - g_usFlowControl &= (unsigned short)~(ispVMDataSize()); - break; - case HEAP: - - /*************************************************************** - * - * Allocate heap size to store loops. - * - ***************************************************************/ - - cRetCode = GetByte(); - if (cRetCode != SECUREHEAP) { - return VME_INVALID_FILE; - } - //09/11/07 NN Type cast mismatch variables - g_iHEAPSize = (unsigned short)ispVMDataSize(); - - /**************************************************************************** - * - * Store the maximum size of the HEAP buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_iHEAPSize > g_usHeapSize) { - g_usHeapSize = g_iHEAPSize; - } - - ispVMMemManager(HEAP, (unsigned short)g_iHEAPSize); - break; - case REPEAT: - - /*************************************************************** - * - * Execute loops. - * - ***************************************************************/ - - g_usRepeatLoops = 0; - - //09/11/07 NN Type cast mismatch variables - iRepeatSize = (unsigned short)ispVMDataSize(); - - cRetCode = ispVMLoop((unsigned short)iRepeatSize); - if (cRetCode != 0) { - return (cRetCode); - } - break; - case ENDLOOP: - - /*************************************************************** - * - * Exit point from processing loops. - * - ***************************************************************/ - - return (cRetCode); - case ENDVME: - - /*************************************************************** - * - * The only valid exit point that indicates end of programming. - * - ***************************************************************/ - - return (cRetCode); - case SHR: - - /*************************************************************** - * - * Right-shift address. - * - ***************************************************************/ - - g_usFlowControl |= SHIFTRIGHT; - - //09/11/07 NN Type cast mismatch variables - g_usShiftValue = (unsigned short)(g_usRepeatLoops * (unsigned short)GetByte()); - break; - case SHL: - - /*************************************************************** - * - * Left-shift address. - * - ***************************************************************/ - - g_usFlowControl |= SHIFTLEFT; - - //09/11/07 NN Type cast mismatch variables - g_usShiftValue = (unsigned short)(g_usRepeatLoops * (unsigned short)GetByte()); - break; - case FREQUENCY: - - /*************************************************************** - * - * Set the frequency. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - g_iFrequency = (int)(ispVMDataSize()); - //10/23/08 NN changed to check if the frequency smaller than 1000 - if (g_iFrequency >= 1000) { - g_iFrequency = g_iFrequency / 1000; - if (g_iFrequency == 1) - g_iFrequency = 1000; -#ifdef VME_DEBUG - printf("FREQUENCY %.2E HZ;\n", (float)g_iFrequency * 1000); -#endif //VME_DEBUG - } else { - if (g_iFrequency == 0) - g_iFrequency = 1000; -#ifdef VME_DEBUG - printf("FREQUENCY %.2E HZ;\n", (float)g_iFrequency); -#endif //VME_DEBUG - } - break; - case LCOUNT: - - /*************************************************************** - * - * Process LCOUNT command. - * - ***************************************************************/ - - cRetCode = ispVMLCOUNT((unsigned short)ispVMDataSize()); - if (cRetCode != 0) { - return (cRetCode); - } - break; - case VUES: - - /*************************************************************** - * - * Set the flow control to verify USERCODE. - * - ***************************************************************/ - - g_usFlowControl |= VERIFYUES; - break; - case COMMENT: - - /*************************************************************** - * - * Display comment. - * - ***************************************************************/ - - ispVMComment((unsigned short)ispVMDataSize()); - break; - case LVDS: - - /*************************************************************** - * - * Process LVDS command. - * - ***************************************************************/ - - ispVMProcessLVDS((unsigned short)ispVMDataSize()); - break; - case HEADER: - - /*************************************************************** - * - * Discard header. - * - ***************************************************************/ - - ispVMHeader((unsigned short)ispVMDataSize()); - break; - /* 03/14/06 Support Toggle ispENABLE signal*/ - case ispEN: - ucState = GetByte(); - if ((ucState == ON) || (ucState == 0x01)) - writePort(JTAG_ENABLE, 0x01); - else - writePort(JTAG_ENABLE, 0x00); - ispVMDelay(1); - break; - /* 05/24/06 support Toggle TRST pin*/ - case TRST: - ucState = GetByte(); - if (ucState == 0x01) - writePort(JTAG_TRST, 0x01); - else - writePort(JTAG_TRST, 0x00); - ispVMDelay(1); - break; - default: - - /*************************************************************** - * - * Invalid opcode encountered. - * - ***************************************************************/ - -#ifdef VME_DEBUG - printf("\nINVALID OPCODE: 0x%.2X\n", cOpcode); -#endif //VME_DEBUG - - return VME_INVALID_FILE; - } - } - - /*************************************************************** - * - * Invalid exit point. Processing the token 'ENDVME' is the only - * valid way to exit the embedded engine. - * - ***************************************************************/ - - return (VME_INVALID_FILE); -} - -/*************************************************************** -* -* ispVMDataCode -* -* Processes the TDI/TDO/MASK/DMASK etc of an SIR/SDR command. -* -***************************************************************/ - -signed char ispVMDataCode() -{ - //09/11/07 NN added local variables initialization - signed char cDataByte = 0; - signed char siDataSource = 0; /*source of data from file by default*/ - - if (g_usDataType & HEAP_IN) { - siDataSource = 1; /*the source of data from memory*/ - } - - /**************************************************************************** - * - * Clear the data type register. - * - *****************************************************************************/ - - g_usDataType &= ~(MASK_DATA + TDI_DATA + TDO_DATA + DMASK_DATA + CMASK_DATA); - - /**************************************************************************** - * - * Iterate through SIR/SDR command and look for TDI, TDO, MASK, etc. - * - *****************************************************************************/ - - while ((cDataByte = GetByte()) >= 0) { - - ispVMMemManager(cDataByte, g_usMaxSize); - switch (cDataByte) { - case TDI: - - /**************************************************************************** - * - * Store the maximum size of the TDI buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usTDISize) { - g_usTDISize = g_usiDataSize; - } - /**************************************************************************** - * - * Updated data type register to indicate that TDI data is currently being - * used. Process the data in the VME file into the TDI buffer. - * - *****************************************************************************/ - - g_usDataType |= TDI_DATA; - ispVMData(g_pucInData); - break; - case XTDO: - - /**************************************************************************** - * - * Store the maximum size of the TDO buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usTDOSize) { - g_usTDOSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Updated data type register to indicate that TDO data is currently being - * used. - * - *****************************************************************************/ - - g_usDataType |= TDO_DATA; - break; - case TDO: - - /**************************************************************************** - * - * Store the maximum size of the TDO buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usTDOSize) { - g_usTDOSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Updated data type register to indicate that TDO data is currently being - * used. Process the data in the VME file into the TDO buffer. - * - *****************************************************************************/ - - g_usDataType |= TDO_DATA; - ispVMData(g_pucOutData); - break; - case MASK: - - /**************************************************************************** - * - * Store the maximum size of the MASK buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usMASKSize) { - g_usMASKSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Updated data type register to indicate that MASK data is currently being - * used. Process the data in the VME file into the MASK buffer. - * - *****************************************************************************/ - - g_usDataType |= MASK_DATA; - ispVMData(g_pucOutMaskData); - break; - case DMASK: - - /**************************************************************************** - * - * Store the maximum size of the DMASK buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usDMASKSize) { - g_usDMASKSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Updated data type register to indicate that DMASK data is currently being - * used. Process the data in the VME file into the DMASK buffer. - * - *****************************************************************************/ - - g_usDataType |= DMASK_DATA; - ispVMData(g_pucOutDMaskData); - break; - case CMASK: - - /**************************************************************************** - * - * Updated data type register to indicate that CMASK data is currently being - * used. Process the data in the VME file into the CMASK buffer. - * - *****************************************************************************/ - - g_usDataType |= CMASK_DATA; - ispVMData(g_pucOutMaskData); - break; - case CONTINUE: - return (0); - default: - - /**************************************************************************** - * - * Encountered invalid opcode. - * - *****************************************************************************/ - - return (VME_INVALID_FILE); - } - - switch (cDataByte) { - case TDI: - - /**************************************************************************** - * - * Left bit shift. Used when performing algorithm looping. - * - *****************************************************************************/ - - if (g_usFlowControl & SHIFTLEFT) { - ispVMBitShift(SHL, g_usShiftValue); - g_usFlowControl &= ~SHIFTLEFT; - } - - /**************************************************************************** - * - * Right bit shift. Used when performing algorithm looping. - * - *****************************************************************************/ - - if (g_usFlowControl & SHIFTRIGHT) { - ispVMBitShift(SHR, g_usShiftValue); - g_usFlowControl &= ~SHIFTRIGHT; - } - default: - break; - } - - if (siDataSource) { - g_usDataType |= HEAP_IN; /*restore data from memory*/ - } - } - - if (siDataSource) { /*fetch data from heap memory upon return*/ - g_usDataType |= HEAP_IN; - } - - if (cDataByte < 0) { - - /**************************************************************************** - * - * Encountered invalid opcode. - * - *****************************************************************************/ - - return (VME_INVALID_FILE); - } else { - return (0); - } -} - -/*************************************************************** -* -* ispVMData -* Extract one row of data operand from the current data type opcode. Perform -* the decompression if necessary. Extra RAM is not required for the -* decompression process. The decompression scheme employed in this module -* is on row by row basis. The format of the data stream: -* [compression code][compressed data stream] -* 0x00 --No compression -* 0x01 --Compress by 0x00. -* Example: -* Original stream: 0x000000000000000000000001 -* Compressed stream: 0x01000901 -* Detail: 0x01 is the code, 0x00 is the key, -* 0x09 is the count of 0x00 bytes, -* 0x01 is the uncompressed byte. -* 0x02 --Compress by 0xFF. -* Example: -* Original stream: 0xFFFFFFFFFFFFFFFFFFFFFF01 -* Compressed stream: 0x02FF0901 -* Detail: 0x02 is the code, 0xFF is the key, -* 0x09 is the count of 0xFF bytes, -* 0x01 is the uncompressed byte. -* 0x03 -* : : -* 0xFE -- Compress by nibble blocks. -* Example: -* Original stream: 0x84210842108421084210 -* Compressed stream: 0x0584210 -* Detail: 0x05 is the code, means 5 nibbles block. -* 0x84210 is the 5 nibble blocks. -* The whole row is 80 bits given by g_usiDataSize. -* The number of times the block repeat itself -* is found by g_usiDataSize/(4*0x05) which is 4. -* 0xFF -- Compress by the most frequently happen byte. -* Example: -* Original stream: 0x04020401030904040404 -* Compressed stream: 0xFF04(0,1,0x02,0,1,0x01,1,0x03,1,0x09,0,0,0) -* or: 0xFF044090181C240 -* Detail: 0xFF is the code, 0x04 is the key. -* a bit of 0 represent the key shall be put into -* the current bit position and a bit of 1 -* represent copying the next of 8 bits of data -* in. -* -***************************************************************/ - -void ispVMData(unsigned char *ByteData) -{ - //09/11/07 NN added local variables initialization - unsigned short size = 0; - unsigned short i, j, m, getData = 0; - unsigned char cDataByte = 0; - unsigned char compress = 0; - unsigned short FFcount = 0; - unsigned char compr_char = 0xFF; - unsigned short index = 0; - signed char compression = 0; - - /*convert number in bits to bytes*/ - if (g_usiDataSize % 8 > 0) { - //09/11/07 NN Type cast mismatch variables - size = (unsigned short)(g_usiDataSize / 8 + 1); - } else { - //09/11/07 NN Type cast mismatch variables - size = (unsigned short)(g_usiDataSize / 8); - } - - /* If there is compression, then check if compress by key of 0x00 or 0xFF - or by other keys or by nibble blocks*/ - - if (g_usDataType & COMPRESS) { - compression = 1; - if (((compress = GetByte()) == VAR) && (g_usDataType & HEAP_IN)) { - getData = 1; - g_usDataType &= ~(HEAP_IN); - compress = GetByte(); - } - - switch (compress) { - case 0x00: - /* No compression */ - compression = 0; - break; - case 0x01: - /* Compress by byte 0x00 */ - compr_char = 0x00; - break; - case 0x02: - /* Compress by byte 0xFF */ - compr_char = 0xFF; - break; - case 0xFF: - /* Huffman encoding */ - compr_char = GetByte(); - i = 8; - for (index = 0; index < size; index++) { - ByteData[index] = 0x00; - if (i > 7) { - cDataByte = GetByte(); - i = 0; - } - if ((cDataByte << i++) & 0x80) - m = 8; - else { - ByteData[index] = compr_char; - m = 0; - } - - for (j = 0; j < m; j++) { - if (i > 7) { - cDataByte = GetByte(); - i = 0; - } - ByteData[index] |= ((cDataByte << i++) & 0x80) >> j; - } - } - size = 0; - break; - default: - for (index = 0; index < size; index++) - ByteData[index] = 0x00; - for (index = 0; index < compress; index++) { - if (index % 2 == 0) - cDataByte = GetByte(); - for (i = 0; i < size * 2 / compress; i++) { - //09/11/07 NN Type cast mismatch variables - j = (unsigned short)(index + (i * (unsigned short)compress)); - /*clear the nibble to zero first*/ - if (j % 2) { - if (index % 2) - ByteData[j / 2] |= cDataByte & 0x0F; - else - ByteData[j / 2] |= cDataByte >> 4; - } else { - if (index % 2) - ByteData[j / 2] |= cDataByte << 4; - else - ByteData[j / 2] |= cDataByte & 0xF0; - } - } - } - size = 0; - break; - } - } - - FFcount = 0; - - /* Decompress by byte 0x00 or 0xFF */ - for (index = 0; index < size; index++) { - if (FFcount <= 0) { - cDataByte = GetByte(); - if ((cDataByte == VAR) && (g_usDataType & HEAP_IN) && !getData && !(g_usDataType & COMPRESS)) { - getData = 1; - g_usDataType &= ~(HEAP_IN); - cDataByte = GetByte(); - } - ByteData[index] = cDataByte; - if ((compression) && (cDataByte == compr_char)) /*decompression is on*/ - //09/11/07 NN Type cast mismatch variables - FFcount = (unsigned short)ispVMDataSize(); /*The number of 0xFF or 0x00 bytes*/ - } else { - FFcount--; /*Use up the 0xFF chain first*/ - ByteData[index] = compr_char; - } - } - - if (getData) { - g_usDataType |= HEAP_IN; - getData = 0; - } -} - -/*************************************************************** -* -* ispVMShift -* -* Processes the SDR/XSDR/SIR commands. -* -***************************************************************/ - -signed char ispVMShift(signed char a_cCode) -{ - //09/11/07 NN added local variables initialization - unsigned short iDataIndex = 0; - unsigned short iReadLoop = 0; - signed char cRetCode = 0; - - cRetCode = 0; - //09/11/07 NN Type cast mismatch variables - g_usiDataSize = (unsigned short)ispVMDataSize(); - - g_usDataType &= ~(SIR_DATA + EXPRESS + SDR_DATA); /*clear the flags first*/ - - switch (a_cCode) { - case SIR: - g_usDataType |= SIR_DATA; - /* 1/15/04 If performing cascading, then go directly to SHIFTIR. Else, - go to IRPAUSE before going to SHIFTIR */ - if (g_usFlowControl & CASCADE) { - ispVMStateMachine(SHIFTIR); - } else { - ispVMStateMachine(IRPAUSE); - ispVMStateMachine(SHIFTIR); - if (g_usHeadIR > 0) { - ispVMBypass(HIR, g_usHeadIR); - sclock(); - } - } - break; - case XSDR: - g_usDataType |= EXPRESS; /*mark simultaneous in and out*/ - case SDR: - g_usDataType |= SDR_DATA; - /* 1/15/04 If already in SHIFTDR, then do not move state or shift in header. - This would imply that the previously shifted frame was a cascaded frame. */ - if (g_cCurrentJTAGState != SHIFTDR) { - /* 1/15/04 If performing cascading, then go directly to SHIFTDR. Else, - go to DRPAUSE before going to SHIFTDR */ - if (g_usFlowControl & CASCADE) { - if (g_cCurrentJTAGState == DRPAUSE) { - ispVMStateMachine(SHIFTDR); - /* 1/15/04 If cascade flag has been set and the current state is - DRPAUSE, this implies that the first cascaded frame is about to - be shifted in. The header must be shifted prior to shifting - the first cascaded frame. */ - if (g_usHeadDR > 0) { - ispVMBypass(HDR, g_usHeadDR); - sclock(); - } - } else { - ispVMStateMachine(SHIFTDR); - } - } else { - ispVMStateMachine(DRPAUSE); - ispVMStateMachine(SHIFTDR); - if (g_usHeadDR > 0) { - ispVMBypass(HDR, g_usHeadDR); - sclock(); - } - } - } - break; - default: - return (VME_INVALID_FILE); - } - - cRetCode = ispVMDataCode(); - if (cRetCode != 0) { - return (VME_INVALID_FILE); - } - -#ifdef VME_DEBUG - if (g_usDataType & TDI_DATA) { - printf("\n\t\tTDI "); - PrintData(g_usiDataSize, g_pucInData); - } - - if (g_usDataType & TDO_DATA) { - printf("\n\t\tTDO "); - PrintData(g_usiDataSize, g_pucOutData); - } - - if (g_usDataType & MASK_DATA) { - printf("\n\t\tMASK "); - PrintData(g_usiDataSize, g_pucOutMaskData); - } - - if (g_usDataType & DMASK_DATA) { - printf("\n\t\tDMASK "); - PrintData(g_usiDataSize, g_pucOutDMaskData); - } - - printf(";\n"); -#endif //VME_DEBUG - if (g_usDataType & TDO_DATA || g_usDataType & DMASK_DATA) { - if (g_usDataType & DMASK_DATA) { - - cRetCode = ispVMReadandSave(g_usiDataSize); - - if (!cRetCode) { - if (g_usTailDR > 0) { - sclock(); - ispVMBypass(TDR, g_usTailDR); - } - ispVMStateMachine(DRPAUSE); - ispVMStateMachine(SHIFTDR); - if (g_usHeadDR > 0) { - ispVMBypass(HDR, g_usHeadDR); - sclock(); - } - for (iDataIndex = 0; iDataIndex < g_usiDataSize / 8 + 1; iDataIndex++) - g_pucInData[iDataIndex] = g_pucOutData[iDataIndex]; - g_usDataType &= ~(TDO_DATA + DMASK_DATA); - cRetCode = ispVMSend(g_usiDataSize); - } - } else { - - cRetCode = ispVMRead(g_usiDataSize); - if (cRetCode == -1 && g_cVendor == XILINX) { - for (iReadLoop = 0; iReadLoop < 30; iReadLoop++) { - cRetCode = ispVMRead(g_usiDataSize); - if (!cRetCode) { - break; - } else { - ispVMStateMachine(DRPAUSE); /*Always DRPAUSE*/ - /*Bypass other devices when appropriate*/ - ispVMBypass(TDR, g_usTailDR); - ispVMStateMachine(g_ucEndDR); - ispVMStateMachine(IDLE); - ispVMDelay(1000); - } - } - } - } - } else { /*TDI only*/ - cRetCode = ispVMSend(g_usiDataSize); - - } - - /*transfer the input data to the output buffer for the next verify*/ - if ((g_usDataType & EXPRESS) || (a_cCode == SDR)) { - if (g_pucOutData) { - for (iDataIndex = 0; iDataIndex < g_usiDataSize / 8 + 1; iDataIndex++) - g_pucOutData[iDataIndex] = g_pucInData[iDataIndex]; - } - } - - switch (a_cCode) { - case SIR: - /* 1/15/04 If not performing cascading, then shift ENDIR */ - if (!(g_usFlowControl & CASCADE)) { - if (g_usTailIR > 0) { - sclock(); - ispVMBypass(TIR, g_usTailIR); - } - ispVMStateMachine(g_ucEndIR); - } - break; - case XSDR: - case SDR: - /* 1/15/04 If not performing cascading, then shift ENDDR */ - if (!(g_usFlowControl & CASCADE)) { - if (g_usTailDR > 0) { - sclock(); - ispVMBypass(TDR, g_usTailDR); - } - ispVMStateMachine(g_ucEndDR); - } - break; - default: - break; - } - - return (cRetCode); -} - -/*************************************************************** -* -* ispVMAmble -* -* This routine is to extract Header and Trailer parameter for SIR and -* SDR operations. -* -* The Header and Trailer parameter are the pre-amble and post-amble bit -* stream need to be shifted into TDI or out of TDO of the devices. Mostly -* is for the purpose of bypassing the leading or trailing devices. ispVM -* supports only shifting data into TDI to bypass the devices. -* -* For a single device, the header and trailer parameters are all set to 0 -* as default by ispVM. If it is for multiple devices, the header and trailer -* value will change as specified by the VME file. -* -***************************************************************/ - -signed char ispVMAmble(signed char Code) -{ - signed char compress = 0; - //09/11/07 NN Type cast mismatch variables - g_usiDataSize = (unsigned short)ispVMDataSize(); - -#ifdef VME_DEBUG - printf("%d", g_usiDataSize); -#endif //VME_DEBUG - - if (g_usiDataSize) { - - /**************************************************************************** - * - * Discard the TDI byte and set the compression bit in the data type register - * to false if compression is set because TDI data after HIR/HDR/TIR/TDR is not - * compressed. - * - *****************************************************************************/ - - GetByte(); - if (g_usDataType & COMPRESS) { - g_usDataType &= ~(COMPRESS); - compress = 1; - } - } - - switch (Code) { - case HIR: - - /**************************************************************************** - * - * Store the maximum size of the HIR buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usHIRSize) { - g_usHIRSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Assign the HIR value and allocate memory. - * - *****************************************************************************/ - - g_usHeadIR = g_usiDataSize; - if (g_usHeadIR) { - ispVMMemManager(HIR, g_usHeadIR); - ispVMData(g_pucHIRData); - -#ifdef VME_DEBUG - printf(" TDI "); - PrintData(g_usHeadIR, g_pucHIRData); -#endif //VME_DEBUG - } - break; - case TIR: - - /**************************************************************************** - * - * Store the maximum size of the TIR buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usTIRSize) { - g_usTIRSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Assign the TIR value and allocate memory. - * - *****************************************************************************/ - - g_usTailIR = g_usiDataSize; - if (g_usTailIR) { - ispVMMemManager(TIR, g_usTailIR); - ispVMData(g_pucTIRData); - -#ifdef VME_DEBUG - printf(" TDI "); - PrintData(g_usTailIR, g_pucTIRData); -#endif //VME_DEBUG - } - break; - case HDR: - - /**************************************************************************** - * - * Store the maximum size of the HDR buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usHDRSize) { - g_usHDRSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Assign the HDR value and allocate memory. - * - *****************************************************************************/ - - g_usHeadDR = g_usiDataSize; - if (g_usHeadDR) { - ispVMMemManager(HDR, g_usHeadDR); - ispVMData(g_pucHDRData); - -#ifdef VME_DEBUG - printf(" TDI "); - PrintData(g_usHeadDR, g_pucHDRData); -#endif //VME_DEBUG - } - break; - case TDR: - - /**************************************************************************** - * - * Store the maximum size of the TDR buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usiDataSize > g_usTDRSize) { - g_usTDRSize = g_usiDataSize; - } - - /**************************************************************************** - * - * Assign the TDR value and allocate memory. - * - *****************************************************************************/ - - g_usTailDR = g_usiDataSize; - if (g_usTailDR) { - ispVMMemManager(TDR, g_usTailDR); - ispVMData(g_pucTDRData); - -#ifdef VME_DEBUG - printf(" TDI "); - PrintData(g_usTailDR, g_pucTDRData); -#endif //VME_DEBUG - } - break; - default: - break; - } - - /**************************************************************************** - * - * Re-enable compression if it was previously set. - * - *****************************************************************************/ - - if (compress) { - g_usDataType |= COMPRESS; - } - - if (g_usiDataSize) { - Code = GetByte(); - if (Code == CONTINUE) { - return 0; - } else { - - /**************************************************************************** - * - * Encountered invalid opcode. - * - *****************************************************************************/ - - return VME_INVALID_FILE; - } - } - - return 0; -} - -/*************************************************************** -* -* ispVMLoop -* -* Perform the function call upon by the REPEAT opcode. -* Memory is to be allocated to store the entire loop from REPEAT to ENDLOOP. -* After the loop is stored then execution begin. The REPEATLOOP flag is set -* on the g_usFlowControl register to indicate the repeat loop is in session -* and therefore fetch opcode from the memory instead of from the file. -* -***************************************************************/ - -signed char ispVMLoop(unsigned short a_usLoopCount) -{ - //09/11/07 NN added local variables initialization - signed char cRetCode = 0; - unsigned short iHeapIndex = 0; - unsigned short iLoopIndex = 0; - - g_usShiftValue = 0; - for (iHeapIndex = 0; iHeapIndex < g_iHEAPSize; iHeapIndex++) { - g_pucHeapMemory[iHeapIndex] = GetByte(); - } - - if (g_pucHeapMemory[iHeapIndex - 1] != ENDLOOP) { - return (VME_INVALID_FILE); - } - - g_usFlowControl |= REPEATLOOP; - g_usDataType |= HEAP_IN; - - for (iLoopIndex = 0; iLoopIndex < a_usLoopCount; iLoopIndex++) { - g_iHeapCounter = 0; - cRetCode = ispVMCode(); - g_usRepeatLoops++; - if (cRetCode < 0) { - break; - } - } - - g_usDataType &= ~(HEAP_IN); - g_usFlowControl &= ~(REPEATLOOP); - return (cRetCode); -} - -/*************************************************************** -* -* ispVMBitShift -* -* Shift the TDI stream left or right by the number of bits. The data in -* *g_pucInData is of the VME format, so the actual shifting is the reverse of -* IEEE 1532 or SVF format. -* -***************************************************************/ - -signed char ispVMBitShift(signed char mode, unsigned short bits) -{ - //09/11/07 NN added local variables initialization - unsigned short i = 0; - unsigned short size = 0; - unsigned short tmpbits = 0; - - if (g_usiDataSize % 8 > 0) { - //09/11/07 NN Type cast mismatch variables - size = (unsigned short)(g_usiDataSize / 8 + 1); - } else { - //09/11/07 NN Type cast mismatch variables - size = (unsigned short)(g_usiDataSize / 8); - } - - switch (mode) { - case SHR: - for (i = 0; i < size; i++) { - if (g_pucInData[i] != 0) { - tmpbits = bits; - while (tmpbits > 0) { - g_pucInData[i] <<= 1; - if (g_pucInData[i] == 0) { - i--; - g_pucInData[i] = 1; - } - tmpbits--; - } - } - } - break; - case SHL: - for (i = 0; i < size; i++) { - if (g_pucInData[i] != 0) { - tmpbits = bits; - while (tmpbits > 0) { - g_pucInData[i] >>= 1; - if (g_pucInData[i] == 0) { - i--; - g_pucInData[i] = 8; - } - tmpbits--; - } - } - } - break; - default: - return (VME_INVALID_FILE); - } - - return (0); -} - -/*************************************************************** -* -* ispVMComment -* -* Displays the SVF comments. -* -***************************************************************/ - -void ispVMComment(unsigned short a_usCommentSize) -{ - char cCurByte = 0; - for (; a_usCommentSize > 0; a_usCommentSize--) { - /**************************************************************************** - * - * Print character to the terminal. - * - *****************************************************************************/ - cCurByte = GetByte(); - vme_out_char(cCurByte); - } - cCurByte = '\n'; - vme_out_char(cCurByte); -} - -/*************************************************************** -* -* ispVMHeader -* -* Iterate the length of the header and discard it. -* -***************************************************************/ - -void ispVMHeader(unsigned short a_usHeaderSize) -{ - for (; a_usHeaderSize > 0; a_usHeaderSize--) { - GetByte(); - } -} - -/*************************************************************** -* -* ispVMCalculateCRC32 -* -* Calculate the 32-bit CRC. -* -***************************************************************/ - -void ispVMCalculateCRC32(unsigned char a_ucData) -{ - //09/11/07 NN added local variables initialization - unsigned char ucIndex = 0; - unsigned char ucFlipData = 0; - unsigned short usCRCTableEntry = 0; - unsigned int crc_table[16] = { - 0x0000, 0xCC01, 0xD801, - 0x1400, 0xF001, 0x3C00, - 0x2800, 0xE401, 0xA001, - 0x6C00, 0x7800, 0xB401, - 0x5000, 0x9C01, 0x8801, - 0x4400 - }; - - for (ucIndex = 0; ucIndex < 8; ucIndex++) { - ucFlipData <<= 1; - if (a_ucData & 0x01) { - ucFlipData |= 0x01; - } - a_ucData >>= 1; - } - - //09/11/07 NN Type cast mismatch variables - usCRCTableEntry = (unsigned short)(crc_table[g_usCalculatedCRC & 0xF]); - g_usCalculatedCRC = (unsigned short)((g_usCalculatedCRC >> 4) & 0x0FFF); - g_usCalculatedCRC = (unsigned short)(g_usCalculatedCRC ^ usCRCTableEntry ^ crc_table[ucFlipData & 0xF]); - usCRCTableEntry = (unsigned short)(crc_table[g_usCalculatedCRC & 0xF]); - g_usCalculatedCRC = (unsigned short)((g_usCalculatedCRC >> 4) & 0x0FFF); - g_usCalculatedCRC = (unsigned short)(g_usCalculatedCRC ^ usCRCTableEntry ^ crc_table[(ucFlipData >> 4) & 0xF]); -} - -/*************************************************************** -* -* ispVMLCOUNT -* -* Process the intelligent programming loops. -* -***************************************************************/ - -signed char ispVMLCOUNT(unsigned short a_usCountSize) -{ - unsigned short usContinue = 1; - unsigned short usIntelBufferIndex = 0; - unsigned short usCountIndex = 0; - signed char cRetCode = 0; - signed char cRepeatHeap = 0; - signed char cOpcode = 0; - unsigned char ucState = 0; - unsigned short usDelay = 0; - unsigned short usToggle = 0; - - g_usIntelBufferSize = (unsigned short)ispVMDataSize(); - - /**************************************************************************** - * - * Allocate memory for intel buffer. - * - *****************************************************************************/ - - ispVMMemManager(LHEAP, g_usIntelBufferSize); - - /**************************************************************************** - * - * Store the maximum size of the intelligent buffer. Used to convert VME to HEX. - * - *****************************************************************************/ - - if (g_usIntelBufferSize > g_usLCOUNTSize) { - g_usLCOUNTSize = g_usIntelBufferSize; - } - - /**************************************************************************** - * - * Copy intel data to the buffer. - * - *****************************************************************************/ - - for (usIntelBufferIndex = 0; usIntelBufferIndex < g_usIntelBufferSize; usIntelBufferIndex++) { - g_pucIntelBuffer[usIntelBufferIndex] = GetByte(); - } - - /**************************************************************************** - * - * Set the data type register to get data from the intelligent data buffer. - * - *****************************************************************************/ - - g_usDataType |= LHEAP_IN; - - /**************************************************************************** - * - * If the HEAP_IN flag is set, temporarily unset the flag so data will be - * retrieved from the status buffer. - * - *****************************************************************************/ - - if (g_usDataType & HEAP_IN) { - g_usDataType &= ~HEAP_IN; - cRepeatHeap = 1; - } - -#ifdef VME_DEBUG - printf("LCOUNT %d;\n", a_usCountSize); -#endif //VME_DEBUG - - /**************************************************************************** - * - * Iterate through the intelligent programming command. - * - *****************************************************************************/ - - for (usCountIndex = 0; usCountIndex < a_usCountSize; usCountIndex++) { - - /**************************************************************************** - * - * Initialize the intel data index to 0 before each iteration. - * - *****************************************************************************/ - - g_usIntelDataIndex = 0; - cOpcode = 0; - ucState = 0; - usDelay = 0; - usToggle = 0; - usContinue = 1; - - /*************************************************************** - * - * Begin looping through all the VME opcodes. - * - ***************************************************************/ - /*************************************************************** - * 4/1/09 Nguyen replaced the recursive function call codes on - * the ispVMLCOUNT function - * - ***************************************************************/ - while (usContinue) { - cOpcode = GetByte(); - switch (cOpcode) { - case HIR: - case TIR: - case HDR: - case TDR: - /*************************************************************** - * - * Set the header/trailer of the device in order to bypass - * successfully. - * - ***************************************************************/ - - ispVMAmble(cOpcode); - break; - case STATE: - - /*************************************************************** - * - * Step the JTAG state machine. - * - ***************************************************************/ - - ucState = GetByte(); - /*************************************************************** - * - * Step the JTAG state machine to DRCAPTURE to support Looping. - * - ***************************************************************/ - - if ((g_usDataType & LHEAP_IN) && - (ucState == DRPAUSE) && - (g_cCurrentJTAGState == ucState)) { - ispVMStateMachine(DRCAPTURE); - } - ispVMStateMachine(ucState); -#ifdef VME_DEBUG - printf("LDELAY %s ", GetState(ucState)); -#endif //VME_DEBUG - break; - case SIR: -#ifdef VME_DEBUG - printf("SIR "); -#endif //VME_DEBUG - /*************************************************************** - * - * Shift in data into the device. - * - ***************************************************************/ - - cRetCode = ispVMShift(cOpcode); - break; - case SDR: - -#ifdef VME_DEBUG - printf("LSDR "); -#endif //VME_DEBUG - /*************************************************************** - * - * Shift in data into the device. - * - ***************************************************************/ - - cRetCode = ispVMShift(cOpcode); - break; - case WAIT: - - /*************************************************************** - * - * Observe delay. - * - ***************************************************************/ - - usDelay = (unsigned short)ispVMDataSize(); - ispVMDelay(usDelay); - -#ifdef VME_DEBUG - if (usDelay & 0x8000) { - - /*************************************************************** - * - * Since MSB is set, the delay time must be decoded to - * millisecond. The SVF2VME encodes the MSB to represent - * millisecond. - * - ***************************************************************/ - - usDelay &= ~0x8000; - printf("%.2E SEC;\n", (float)usDelay / 1000); - } else { - - /*************************************************************** - * - * Since MSB is not set, the delay time is given as microseconds. - * - ***************************************************************/ - - printf("%.2E SEC;\n", (float)usDelay / 1000000); - } -#endif //VME_DEBUG - break; - case TCK: - - /*************************************************************** - * - * Issue clock toggles. - * - ***************************************************************/ - - usToggle = (unsigned short)ispVMDataSize(); - ispVMClocks(usToggle); - -#ifdef VME_DEBUG - printf("RUNTEST %d TCK;\n", usToggle); -#endif //VME_DEBUG - break; - case ENDLOOP: - - /*************************************************************** - * - * Exit point from processing loops. - * - ***************************************************************/ - usContinue = 0; - break; - - case COMMENT: - - /*************************************************************** - * - * Display comment. - * - ***************************************************************/ - - ispVMComment((unsigned short)ispVMDataSize()); - break; - case ispEN: - ucState = GetByte(); - if ((ucState == ON) || (ucState == 0x01)) - writePort(JTAG_ENABLE, 0x01); - else - writePort(JTAG_ENABLE, 0x00); - ispVMDelay(1); - break; - case TRST: - if (GetByte() == 0x01) - writePort(JTAG_TRST, 0x01); - else - writePort(JTAG_TRST, 0x00); - ispVMDelay(1); - break; - default: - - /*************************************************************** - * - * Invalid opcode encountered. - * - ***************************************************************/ - -#ifdef VME_DEBUG - printf("\nINVALID OPCODE: 0x%.2X\n", cOpcode); -#endif //VME_DEBUG - - return VME_INVALID_FILE; - } - } - if (cRetCode >= 0) { - /**************************************************************************** - * - * Break if intelligent programming is successful. - * - *****************************************************************************/ - - break; - } - - } - /**************************************************************************** - * - * If HEAP_IN flag was temporarily disabled, re-enable it before exiting. - * - *****************************************************************************/ - - if (cRepeatHeap) { - g_usDataType |= HEAP_IN; - } - - /**************************************************************************** - * - * Set the data type register to not get data from the intelligent data buffer. - * - *****************************************************************************/ - - g_usDataType &= ~LHEAP_IN; - return cRetCode; -} - -/*************************************************************** -* -* ispVMClocks -* -* Applies the specified number of pulses to TCK. -* -***************************************************************/ - -void ispVMClocks(unsigned short Clocks) -{ - unsigned short iClockIndex = 0; - for (iClockIndex = 0; iClockIndex < Clocks; iClockIndex++) { - sclock(); - } -} - -/*************************************************************** -* -* ispVMBypass -* -* This procedure takes care of the HIR, HDR, TIR, TDR for the -* purpose of putting the other devices into Bypass mode. The -* current state is checked to find out if it is at DRPAUSE or -* IRPAUSE. If it is at DRPAUSE, perform bypass register scan. -* If it is at IRPAUSE, scan into instruction registers the bypass -* instruction. -* -***************************************************************/ - -void ispVMBypass(signed char ScanType, unsigned short Bits) -{ - //09/11/07 NN added local variables initialization - unsigned short iIndex = 0; - unsigned short iSourceIndex = 0; - unsigned char cBitState = 0; - unsigned char cCurByte = 0; - unsigned char *pcSource = NULL; - - if (Bits <= 0) { - return; - } - - switch (ScanType) { - case HIR: - pcSource = g_pucHIRData; - break; - case TIR: - pcSource = g_pucTIRData; - break; - case HDR: - pcSource = g_pucHDRData; - break; - case TDR: - pcSource = g_pucTDRData; - break; - default: - break; - } - if (pcSource) { - iSourceIndex = 0; - cBitState = 0; - for (iIndex = 0; iIndex < Bits - 1; iIndex++) { - /* Scan instruction or bypass register */ - if (iIndex % 8 == 0) { - cCurByte = pcSource[iSourceIndex++]; - } - cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); - writePort(JTAG_TDI, cBitState); - sclock(); - } - - if (iIndex % 8 == 0) { - cCurByte = pcSource[iSourceIndex++]; - } - - cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); - writePort(JTAG_TDI, cBitState); - } -} - -/*************************************************************** -* -* ispVMStateMachine -* -* This procedure steps all devices in the daisy chain from a given -* JTAG state to the next desirable state. If the next state is TLR, -* the JTAG state machine is brute forced into TLR by driving TMS -* high and pulse TCK 6 times. -* -***************************************************************/ - -void ispVMStateMachine(signed char cNextJTAGState) -{ - //09/11/07 NN added local variables initialization - signed char cPathIndex = 0; - signed char cStateIndex = 0; - short int found = 0; - - if ((g_cCurrentJTAGState == cNextJTAGState) && (cNextJTAGState != RESET)) { - return; - } - - for (cStateIndex = 0; cStateIndex < 25; cStateIndex++) { - if ((g_cCurrentJTAGState == g_JTAGTransistions[cStateIndex].CurState) && (cNextJTAGState == g_JTAGTransistions[cStateIndex].NextState)) { - found = 1; - break; - } - } - if (found) { - g_cCurrentJTAGState = cNextJTAGState; - for (cPathIndex = 0; cPathIndex < g_JTAGTransistions[cStateIndex].Pulses; cPathIndex++) { - if ((g_JTAGTransistions[cStateIndex].Pattern << cPathIndex) & 0x80) { - writePort(JTAG_TMS, (unsigned char)0x01); - } else { - writePort(JTAG_TMS, (unsigned char)0x00); - } - sclock(); - } - - writePort(JTAG_TDI, 0x00); - writePort(JTAG_TMS, 0x00); - } -} - -/*************************************************************** -* -* ispVMStart -* -* Enable the port to the device and set the state to RESET (TLR). -* -***************************************************************/ - -void ispVMStart() -{ -#ifdef VME_DEBUG - printf("// ISPVM EMBEDDED ADDED\n"); - printf("STATE RESET;\n"); -#endif - - ispVMStateMachine(RESET); /*step devices to RESET state*/ - -} - -/*************************************************************** -* -* ispVMEnd -* -* Set the state of devices to RESET to enable the devices and disable -* the port. -* -***************************************************************/ - -void ispVMEnd() -{ -#ifdef VME_DEBUG - printf("// ISPVM EMBEDDED ADDED\n"); - printf("STATE RESET;\n"); - printf("RUNTEST 1.00E-001 SEC;\n"); -#endif - - ispVMStateMachine(RESET); /*step devices to RESET state */ - ispVMDelay(1000); /*wake up devices*/ -} - -/*************************************************************** -* -* ispVMSend -* -* Send the TDI data stream to devices. The data stream can be -* instructions or data. -* -***************************************************************/ - -signed char ispVMSend(unsigned short a_usiDataSize) -{ - //09/11/07 NN added local variables initialization - unsigned short iIndex = 0; - unsigned short iInDataIndex = 0; - unsigned char cCurByte = 0; - unsigned char cBitState = 0; - - for (iIndex = 0; iIndex < a_usiDataSize - 1; iIndex++) { - if (iIndex % 8 == 0) { - cCurByte = g_pucInData[iInDataIndex++]; - } - cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); - writePort(JTAG_TDI, cBitState); - sclock(); - } - - if (iIndex % 8 == 0) { - /* Take care of the last bit */ - cCurByte = g_pucInData[iInDataIndex]; - } - - cBitState = (unsigned char)(((cCurByte << iIndex % 8) & 0x80) ? 0x01 : 0x00); - - writePort(JTAG_TDI, cBitState); - if (g_usFlowControl & CASCADE) { - /* 1/15/04 Clock in last bit for the first n-1 cascaded frames */ - sclock(); - } - - return 0; -} - -/*************************************************************** -* -* ispVMRead -* -* Read the data stream from devices and verify. -* -***************************************************************/ - -signed char ispVMRead(unsigned short a_usiDataSize) //32 -{ - //09/11/07 NN added local variables initialization - unsigned short usDataSizeIndex = 0; - unsigned short usErrorCount = 0; - unsigned short usLastBitIndex = 0; - unsigned char cDataByte = 0; - unsigned char cMaskByte = 0; - unsigned char cInDataByte = 0; - unsigned char cCurBit = 0; - unsigned char cByteIndex = 0; - unsigned short usBufferIndex = 0; - unsigned char ucDisplayByte = 0x00; - unsigned char ucDisplayFlag = 0x01; - char StrChecksum[256] = { 0 }; - unsigned char g_usCalculateChecksum = 0x00; - - //09/11/07 NN Type cast mismatch variables - usLastBitIndex = (unsigned short)(a_usiDataSize - 1); - - /**************************************************************************** - * - * If mask is not all zeros, then set the display flag to 0x00, otherwise - * it shall be set to 0x01 to indicate that data read from the device shall - * be displayed. If VME_DEBUG is defined, always display data. - * - *****************************************************************************/ - - for (usDataSizeIndex = 0; usDataSizeIndex < (a_usiDataSize + 7) / 8; usDataSizeIndex++) { - - if (g_usDataType & MASK_DATA) { - if (g_pucOutMaskData[usDataSizeIndex] != 0x00) { - ucDisplayFlag = 0x00; - break; - } - } else if (g_usDataType & CMASK_DATA) { - g_usCalculateChecksum = 0x01; - ucDisplayFlag = 0x00; - break; - } else { - ucDisplayFlag = 0x00; - break; - } - } - - /**************************************************************************** - * - * Begin shifting data in and out of the device. - * - *****************************************************************************/ - for (usDataSizeIndex = 0; usDataSizeIndex < a_usiDataSize; usDataSizeIndex++) { - if (cByteIndex == 0) { - - /*************************************************************** - * - * Grab byte from TDO buffer. - * - ***************************************************************/ - - if (g_usDataType & TDO_DATA) { - cDataByte = g_pucOutData[usBufferIndex]; - } - - /*************************************************************** - * - * Grab byte from MASK buffer. - * - ***************************************************************/ - - if (g_usDataType & MASK_DATA) { - cMaskByte = g_pucOutMaskData[usBufferIndex]; - } else { - cMaskByte = 0xFF; - } - - /*************************************************************** - * - * Grab byte from CMASK buffer. - * - ***************************************************************/ - - if (g_usDataType & CMASK_DATA) { - cMaskByte = 0x00; - g_usCalculateChecksum = 0x01; - } - - /*************************************************************** - * - * Grab byte from TDI buffer. - * - ***************************************************************/ - - if (g_usDataType & TDI_DATA) { - cInDataByte = g_pucInData[usBufferIndex]; - } - - usBufferIndex++; - } - - cCurBit = readPort(); - - if (ucDisplayFlag) { - ucDisplayByte <<= 1; - ucDisplayByte |= cCurBit; - } - - /**************************************************************************** - * - * Check if data read from port matches with expected TDO. - * - *****************************************************************************/ - - if (g_usDataType & TDO_DATA) { - //08/28/08 NN Added Calculate checksum support. - if (g_usCalculateChecksum) { - if (cCurBit == 0x01) - g_usChecksum += (1 << (g_uiChecksumIndex % 8)); - g_uiChecksumIndex++; - } else { - if ((((cMaskByte << cByteIndex) & 0x80) ? 0x01 : 0x00)) { - if (cCurBit != (unsigned char)(((cDataByte << cByteIndex) & 0x80) ? 0x01 : 0x00)) { - usErrorCount++; - } - } - } - } - - /**************************************************************************** - * - * Write TDI data to the port. - * - *****************************************************************************/ - - writePort(JTAG_TDI, (unsigned char)(((cInDataByte << cByteIndex) & 0x80) ? 0x01 : 0x00)); - - if (usDataSizeIndex < usLastBitIndex) { - - /**************************************************************************** - * - * Clock data out from the data shift register. - * - *****************************************************************************/ - - sclock(); - } else if (g_usFlowControl & CASCADE) { - - /**************************************************************************** - * - * Clock in last bit for the first N - 1 cascaded frames. - * - *****************************************************************************/ - - sclock(); - } - - /*************************************************************** - * - * Increment the byte index. If it exceeds 7, then reset it back - * to zero. - * - ***************************************************************/ - - cByteIndex++; - if (cByteIndex >= 8) { - if (ucDisplayFlag) { - - /*************************************************************** - * - * Store displayed data in the TDO buffer. By reusing the TDO - * buffer to store displayed data, there is no need to allocate - * a buffer simply to hold display data. This will not cause any - * false verification errors because the true TDO byte has already - * been consumed. - * - ***************************************************************/ - - g_pucOutData[usBufferIndex - 1] = ucDisplayByte; - ucDisplayByte = 0; - } - - cByteIndex = 0; - } - //09/12/07 Nguyen changed to display the 1 bit expected data - else if (a_usiDataSize == 1) { - if (ucDisplayFlag) { - - /*************************************************************** - * - * Store displayed data in the TDO buffer. By reusing the TDO - * buffer to store displayed data, there is no need to allocate - * a buffer simply to hold display data. This will not cause any - * false verification errors because the true TDO byte has already - * been consumed. - * - ***************************************************************/ - - /**************************************************************************** - * - * Flip ucDisplayByte and store it in cDataByte. - * - *****************************************************************************/ - cDataByte = 0x00; - for (usBufferIndex = 0; usBufferIndex < 8; usBufferIndex++) { - cDataByte <<= 1; - if (ucDisplayByte & 0x01) { - cDataByte |= 0x01; - } - ucDisplayByte >>= 1; - } - g_pucOutData[0] = cDataByte; - ucDisplayByte = 0; - } - - cByteIndex = 0; - } - } - if (ucDisplayFlag) { - - /**************************************************************************** - * - * Display data read from the device. - * - *****************************************************************************/ - -#ifdef VME_DEBUG - printf("RECIEVED TDO ("); -#else - vme_out_string("Display Data: 0x"); -#endif //VME_DEBUG - - //09/11/07 NN Type cast mismatch variables - for (usDataSizeIndex = (unsigned short)((a_usiDataSize + 7) / 8); usDataSizeIndex > 0; usDataSizeIndex--) { - cMaskByte = g_pucOutData[usDataSizeIndex - 1]; - cDataByte = 0x00; - - /**************************************************************************** - * - * Flip cMaskByte and store it in cDataByte. - * - *****************************************************************************/ - - for (usBufferIndex = 0; usBufferIndex < 8; usBufferIndex++) { - cDataByte <<= 1; - if (cMaskByte & 0x01) { - cDataByte |= 0x01; - } - cMaskByte >>= 1; - } -#ifdef VME_DEBUG - printf("%.2X", cDataByte); - if ((((a_usiDataSize + 7) / 8) - usDataSizeIndex) % 40 == 39) { - printf("\n\t\t"); - } -#else - vme_out_hex(cDataByte); -#endif //VME_DEBUG - } - -#ifdef VME_DEBUG - printf(")\n\n"); -#else - vme_out_string("\n\n"); -#endif //VME_DEBUG - //09/02/08 Nguyen changed to display the data Checksum - vme_out_string("g_usChecksum:"); - sprintf(StrChecksum, "%.4X\n\n", (unsigned int)g_usChecksum); - vme_out_string(StrChecksum); - vme_out_string("\n\n"); - if (g_usChecksum != 0) { - g_usChecksum &= 0xFFFF; - sprintf(StrChecksum, "Data Checksum: %.4X\n\n", (unsigned int)g_usChecksum); - vme_out_string(StrChecksum); - g_usChecksum = 0; - } - } - - if (usErrorCount > 0) { - - if (g_usFlowControl & VERIFYUES) { - vme_out_string("USERCODE verification failed. Continue programming......\n\n"); - g_usFlowControl &= ~(VERIFYUES); - return 0; - } else { - -#ifdef VME_DEBUG - printf("TOTAL ERRORS: %d\n", usErrorCount); -#endif //VME_DEBUG - - return VME_VERIFICATION_FAILURE; - } - } else { - if (g_usFlowControl & VERIFYUES) { - vme_out_string("USERCODE verification passed. Programming aborted. \n\n"); - g_usFlowControl &= ~(VERIFYUES); - return 1; - } else { - return 0; - } - } -} - -/*************************************************************** -* -* ispVMReadandSave -* -* Support dynamic I/O. -* -***************************************************************/ - -signed char ispVMReadandSave(unsigned short int a_usiDataSize) -{ - //09/11/07 NN added local variables initialization - unsigned short int usDataSizeIndex = 0; - unsigned short int usLastBitIndex = 0; - unsigned short int usBufferIndex = 0; - unsigned short int usOutBitIndex = 0; - unsigned short int usLVDSIndex = 0; - unsigned char cDataByte = 0; - unsigned char cDMASKByte = 0; - unsigned char cInDataByte = 0; - unsigned char cCurBit = 0; - unsigned char cByteIndex = 0; - signed char cLVDSByteIndex = 0; - - //09/11/07 NN Type cast mismatch variables - usLastBitIndex = (unsigned short)(a_usiDataSize - 1); - - /*************************************************************** - * - * Iterate through the data bits. - * - ***************************************************************/ - - for (usDataSizeIndex = 0; usDataSizeIndex < a_usiDataSize; usDataSizeIndex++) { - if (cByteIndex == 0) { - - /*************************************************************** - * - * Grab byte from DMASK buffer. - * - ***************************************************************/ - - if (g_usDataType & DMASK_DATA) { - cDMASKByte = g_pucOutDMaskData[usBufferIndex]; - } else { - cDMASKByte = 0x00; - } - - /*************************************************************** - * - * Grab byte from TDI buffer. - * - ***************************************************************/ - - if (g_usDataType & TDI_DATA) { - cInDataByte = g_pucInData[usBufferIndex]; - } - - usBufferIndex++; - } - - cCurBit = readPort(); - cDataByte = (unsigned char)(((cInDataByte << cByteIndex) & 0x80) ? 0x01 : 0x00); - - /*************************************************************** - * - * Initialize the byte to be zero. - * - ***************************************************************/ - - if (usOutBitIndex % 8 == 0) { - g_pucOutData[usOutBitIndex / 8] = 0x00; - } - - /*************************************************************** - * - * Use TDI, DMASK, and device TDO to create new TDI (actually - * stored in g_pucOutData). - * - ***************************************************************/ - - if ((((cDMASKByte << cByteIndex) & 0x80) ? 0x01 : 0x00)) { - - if (g_pLVDSList) { - for (usLVDSIndex = 0; usLVDSIndex < g_usLVDSPairCount; usLVDSIndex++) { - if (g_pLVDSList[usLVDSIndex].usNegativeIndex == usDataSizeIndex) { - g_pLVDSList[usLVDSIndex].ucUpdate = 0x01; - break; - } - } - } - - /*************************************************************** - * - * DMASK bit is 1, use TDI. - * - ***************************************************************/ - - g_pucOutData[usOutBitIndex / 8] |= (unsigned char)(((cDataByte & 0x1) ? 0x01 : 0x00) << (7 - usOutBitIndex % 8)); - } else { - - /*************************************************************** - * - * DMASK bit is 0, use device TDO. - * - ***************************************************************/ - - g_pucOutData[usOutBitIndex / 8] |= (unsigned char)(((cCurBit & 0x1) ? 0x01 : 0x00) << (7 - usOutBitIndex % 8)); - } - - /*************************************************************** - * - * Shift in TDI in order to get TDO out. - * - ***************************************************************/ - - usOutBitIndex++; - writePort(JTAG_TDI, cDataByte); - if (usDataSizeIndex < usLastBitIndex) { - sclock(); - } - - /*************************************************************** - * - * Increment the byte index. If it exceeds 7, then reset it back - * to zero. - * - ***************************************************************/ - - cByteIndex++; - if (cByteIndex >= 8) { - cByteIndex = 0; - } - } - - /*************************************************************** - * - * If g_pLVDSList exists and pairs need updating, then update - * the negative-pair to receive the flipped positive-pair value. - * - ***************************************************************/ - - if (g_pLVDSList) { - for (usLVDSIndex = 0; usLVDSIndex < g_usLVDSPairCount; usLVDSIndex++) { - if (g_pLVDSList[usLVDSIndex].ucUpdate) { - - /*************************************************************** - * - * Read the positive value and flip it. - * - ***************************************************************/ - - cDataByte = (unsigned char)(((g_pucOutData[g_pLVDSList[usLVDSIndex].usPositiveIndex / 8] << (g_pLVDSList[usLVDSIndex].usPositiveIndex % 8)) & 0x80) ? 0x01 : 0x00); - //09/11/07 NN Type cast mismatch variables - cDataByte = (unsigned char)(!cDataByte); - - /*************************************************************** - * - * Get the byte that needs modification. - * - ***************************************************************/ - - cInDataByte = g_pucOutData[g_pLVDSList[usLVDSIndex].usNegativeIndex / 8]; - - if (cDataByte) { - - /*************************************************************** - * - * Copy over the current byte and set the negative bit to 1. - * - ***************************************************************/ - - cDataByte = 0x00; - for (cLVDSByteIndex = 7; cLVDSByteIndex >= 0; cLVDSByteIndex--) { - cDataByte <<= 1; - if (7 - (g_pLVDSList[usLVDSIndex].usNegativeIndex % 8) == cLVDSByteIndex) { - - /*************************************************************** - * - * Set negative bit to 1. - * - ***************************************************************/ - - cDataByte |= 0x01; - } else if (cInDataByte & 0x80) { - cDataByte |= 0x01; - } - - cInDataByte <<= 1; - } - - /*************************************************************** - * - * Store the modified byte. - * - ***************************************************************/ - - g_pucOutData[g_pLVDSList[usLVDSIndex].usNegativeIndex / 8] = cDataByte; - } else { - - /*************************************************************** - * - * Copy over the current byte and set the negative bit to 0. - * - ***************************************************************/ - - cDataByte = 0x00; - for (cLVDSByteIndex = 7; cLVDSByteIndex >= 0; cLVDSByteIndex--) { - cDataByte <<= 1; - if (7 - (g_pLVDSList[usLVDSIndex].usNegativeIndex % 8) == cLVDSByteIndex) { - - /*************************************************************** - * - * Set negative bit to 0. - * - ***************************************************************/ - - cDataByte |= 0x00; - } else if (cInDataByte & 0x80) { - cDataByte |= 0x01; - } - - cInDataByte <<= 1; - } - - /*************************************************************** - * - * Store the modified byte. - * - ***************************************************************/ - - g_pucOutData[g_pLVDSList[usLVDSIndex].usNegativeIndex / 8] = cDataByte; - } - - break; - } - } - } - - return (0); -} - -signed char ispVMProcessLVDS(unsigned short a_usLVDSCount) -{ - unsigned short usLVDSIndex = 0; - - /*************************************************************** - * - * Allocate memory to hold LVDS pairs. - * - ***************************************************************/ - - ispVMMemManager(LVDS, a_usLVDSCount); - g_usLVDSPairCount = a_usLVDSCount; - -#ifdef VME_DEBUG - printf("LVDS %d (", a_usLVDSCount); -#endif //VME_DEBUG - - /*************************************************************** - * - * Iterate through each given LVDS pair. - * - ***************************************************************/ - - for (usLVDSIndex = 0; usLVDSIndex < g_usLVDSPairCount; usLVDSIndex++) { - - /*************************************************************** - * - * Assign the positive and negative indices of the LVDS pair. - * - ***************************************************************/ - - //09/11/07 NN Type cast mismatch variables - g_pLVDSList[usLVDSIndex].usPositiveIndex = (unsigned short)ispVMDataSize(); - //09/11/07 NN Type cast mismatch variables - g_pLVDSList[usLVDSIndex].usNegativeIndex = (unsigned short)ispVMDataSize(); - -#ifdef VME_DEBUG - if (usLVDSIndex < g_usLVDSPairCount - 1) { - printf("%d:%d, ", g_pLVDSList[usLVDSIndex].usPositiveIndex, g_pLVDSList[usLVDSIndex].usNegativeIndex); - } else { - printf("%d:%d", g_pLVDSList[usLVDSIndex].usPositiveIndex, g_pLVDSList[usLVDSIndex].usNegativeIndex); - } -#endif //VME_DEBUG - - } - -#ifdef VME_DEBUG - printf(") -- %d;\n", a_usLVDSCount); -#endif //VME_DEBUG - - return (0); -} - -/*************************************************************** -* -* ivm_core_reinit -* -* Reinit ivm_core variables. -* -***************************************************************/ -void ivm_core_reinit() -{ - g_usFlowControl = 0x0000; - g_usDataType = 0x0000; - - g_ucEndDR = DRPAUSE; - g_ucEndIR = IRPAUSE; - - g_usHeadDR = 0; - g_usHeadIR = 0; - g_usTailDR = 0; - g_usTailIR = 0; - - g_usiDataSize = 0; - - g_iFrequency = 1000; - - g_usMaxSize = 0; - - g_usShiftValue = 0; - - g_usRepeatLoops = 0; - - g_cVendor = LATTICE; - - g_usCalculatedCRC = 0; - - g_usChecksum = 0; - g_uiChecksumIndex = 0; - - g_cCurrentJTAGState = 0; - - g_pucHeapMemory = NULL; - g_iHeapCounter = 0; - g_iHEAPSize = 0; - - g_usIntelDataIndex = 0; - g_usIntelBufferSize = 0; - - g_usTDOSize = 0; - g_usMASKSize = 0; - g_usTDISize = 0; - g_usDMASKSize = 0; - g_usLCOUNTSize = 0; - g_usHDRSize = 0; - g_usTDRSize = 0; - g_usHIRSize = 0; - g_usTIRSize = 0; - g_usHeapSize = 0; - - g_pucOutMaskData = NULL; - g_pucInData = NULL; - g_pucOutData = NULL; - g_pucHIRData = NULL; - g_pucTIRData = NULL; - g_pucHDRData = NULL; - g_pucTDRData = NULL; - g_pucIntelBuffer = NULL; - g_pucOutDMaskData = NULL; - - g_pLVDSList = NULL; - g_usLVDSPairCount = 0; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c deleted file mode 100644 index c252dfde7c57..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_isc/firmware_upgrade_isc.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * firmware_upgrade_jtag - * function: Determine whether to upgrade ISC or JBI - * @fd: param[in] Device file descriptor - * @buf: param[in] Upgrade the file content - * @size: param[in] Upgrade file size - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_upgrade_jtag(int fd, uint8_t *buf, uint32_t size, name_info_t *info) -{ - int ret; - cmd_info_t cmd_info; - - cmd_info.size = size; - cmd_info.data = buf; - ret = 0; - - if (info->type == FIRMWARE_CPLD) { - /* 0x4A,0x41,0x4D,0x01 is JBI file */ - if (buf[0] == 0x4A && buf[1] == 0x41 && buf[2] == 0x4D && buf[3] == 0x01) { - dbg_print(is_debug_on, "Use jbi file.\n"); - ret = ioctl(fd, FIRMWARE_PROGRAM_JBI, &cmd_info); - } else { - dbg_print(is_debug_on, "Use isc file.\n"); - ret = ioctl(fd, FIRMWARE_PROGRAM, &cmd_info); - } - } - - if (info->type == FIRMWARE_FPGA) { - ret = ioctl(fd, FIRMWARE_PROGRAM, &cmd_info); - } - - if (ret < 0) { - return FIRMWARE_FAILED; - } - - return FIRMWARE_SUCCESS; -} - -/* - * firmware_upgrade_jtag_test - * function: Determine whether to upgrade ISC or JBI - * @fd: param[in] Device file descriptor - * @buf: param[in] Upgrade the file content - * @size: param[in] Upgrade file size - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_upgrade_jtag_test(int fd, uint8_t *buf, uint32_t size, name_info_t *info) -{ - return FIRMWARE_SUCCESS; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c deleted file mode 100644 index 0a7659f0e428..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.c +++ /dev/null @@ -1,446 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "firmware_upgrade_mtd.h" -#include "mtd-abi.h" - -static int get_mtdnum_from_name(char *name, int *mtdnum) -{ - FILE *fp; - int ret; - char buf[PATH_LEN]; - char *start; - char *end; - char *key_w = "mtd"; - - if (name == NULL || mtdnum == NULL) { - dbg_print(is_debug_on, "Input invalid error.\n"); - return -EINVAL; - } - ret = 0; - *mtdnum = -1; - fp = fopen("/proc/mtd", "r"); - if (fp == NULL) { - dbg_print(is_debug_on, "Not find mtd device.\n"); - return -FIRWMARE_MTD_PART_INFO_ERR; - } - - mem_clear(buf, sizeof(buf)); - while(fgets(buf, sizeof(buf), fp)) { - if (strstr(buf, name) != NULL) { - start = strstr(buf, key_w); - if (start == NULL) { - dbg_print(is_debug_on, "/proc/mtd don't find %s.\n", key_w); - ret = -FIRWMARE_MTD_PART_INFO_ERR; - goto exit; - } - start += strlen(key_w); - end = strchr(start, ':'); - if (end == NULL) { - dbg_print(is_debug_on, "/proc/mtd don't find %c.\n", ':'); - ret = -FIRWMARE_MTD_PART_INFO_ERR; - goto exit; - } - - *end = '\0'; - *mtdnum = atoi(start); - if (*mtdnum < 0) { - dbg_print(is_debug_on, "Not get mtd num.\n"); - ret = -FIRWMARE_MTD_PART_INFO_ERR; - goto exit; - } - } - } - - if (*mtdnum == -1) { - ret = -FIRWMARE_MTD_PART_INFO_ERR; - goto exit; - } -exit: - if (fp != NULL) { - fclose(fp); - } - - return ret; -} - -static int firmware_sysfs_get_dev_info(int fd, firmware_mtd_info_t *dev_info) -{ - int ret; - - ret = ioctl(fd, FIRMWARE_SYSFS_MTD_INFO, dev_info); - if (ret < 0) { - dbg_print(is_debug_on, "Failed to get upg device file info.\n"); - return ret; - } - - dbg_print(is_debug_on, "mtd_name=%s flash_base=0x%x test_base=0x%x test_size=%d.\n", - dev_info->mtd_name, dev_info->flash_base, dev_info->test_base, dev_info->test_size); - return 0; -} - -/* - * MEMGETINFO - */ -static int getmeminfo(int fd, struct mtd_info_user *mtd) -{ - return ioctl(fd, MEMGETINFO, mtd); -} - -/* - * MEMERASE - */ -static int memerase(int fd, struct erase_info_user *erase) -{ - return ioctl(fd, MEMERASE, erase); -} - -static int erase_flash(int fd, uint32_t offset, uint32_t bytes) -{ - int err; - struct erase_info_user erase; - erase.start = offset; - erase.length = bytes; - err = memerase(fd, &erase); - if (err < 0) { - dbg_print(is_debug_on, "Error: memerase failed, err=%d\n", err); - return -FIRWMARE_MTD_MEMERASE; - } - dbg_print(is_debug_on, "Erased %d bytes from address 0x%.8x in flash\n", bytes, offset); - return 0; -} - -/* - * firmware_upgrade_mtd_block - * function: upgrade mtd device block - * @dev_info: param[in] Device file descriptor - * @buf: param[in] Upgrade the file content - * @size: param[in] Upgrade file size - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int firmware_upgrade_mtd_block(int mtd_fd, uint32_t offset, - uint8_t *buf, uint32_t size, uint32_t erasesize) -{ - int ret; - int i; - uint8_t *reread_buf; - uint32_t cmp_retry, reread_len, write_len; - - /* Read back data */ - reread_buf = (uint8_t *) malloc(size); - if (reread_buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for read back data buf, size=%d.\n", size); - return FIRMWARE_FAILED; - } - - for (cmp_retry = 0; cmp_retry < FW_SYSFS_RETRY_TIME; cmp_retry++) { - for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { - if (offset != lseek(mtd_fd, offset, SEEK_SET)) { - dbg_print(is_debug_on, "Error:lseek mtd offset=%x retrytimes=%d failed.\n", offset, i); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - - dbg_print(is_debug_on, "erase mtd offset=0x%x erasesize=%d retrytimes=%d.\n", - offset, erasesize, i); - ret = erase_flash(mtd_fd, offset, erasesize); - if (ret < 0) { - dbg_print(is_debug_on, "Error:erase mtd offset=%x size=%d retrytimes=%d failed, ret=%d\n", - offset, size, i, ret); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - - dbg_print(is_debug_on, "write mtd offset=0x%x size=%d retrytimes=%d.\n", - offset, size, i); - write_len = write(mtd_fd, buf, size); - if (write_len != size) { - dbg_print(is_debug_on, "Error:write mtd offset=0x%x size=%d write_len=%d retrytimes=%d.\n", - offset, size, write_len, i); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - break; - } - if (i == FW_SYSFS_RETRY_TIME) { - dbg_print(is_debug_on, "Error: upgrade mtd fail, offset = 0x%x, size = %d\n", offset, size); - free(reread_buf); - return FIRMWARE_FAILED; - } - - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - dbg_print(is_debug_on, "Reread mtd offset=0x%x size=%d\n", offset, size); - for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { - if (offset != lseek(mtd_fd, offset, SEEK_SET)) { - dbg_print(is_debug_on, "Error:lseek mtd offset=%x retrytimes=%d failed.\n", offset, i); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - - reread_len = read(mtd_fd, reread_buf, size); - if (reread_len != size) { - dbg_print(is_debug_on, "Error:reread mtd offset=0x%x size=%d reread_len=%d retrytimes=%d.\n", - offset, size, reread_len, i); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - break; - } - if (i == FW_SYSFS_RETRY_TIME) { - dbg_print(is_debug_on, "Error: reread mtd fail, offset = 0x%x size = %d\n", offset, size); - free(reread_buf); - return FIRMWARE_FAILED; - } - - /* Check data */ - if (memcmp(reread_buf, buf, size) != 0) { - dbg_print(is_debug_on, "memcmp mtd fail,offset = 0x%x retrytimes = %d\n", offset, cmp_retry); - } else { - break; - } - } - if (cmp_retry >= FW_SYSFS_RETRY_TIME) { - dbg_print(is_debug_on, "upgrade mtd fail, offset = 0x%x.\n", offset); - dbg_print(is_debug_on, "want to write buf :\n"); - for (i = 0; i < size; i++) { - dbg_print(is_debug_on, "0x%x ", buf[i]); - if (((i + 1) % 16) == 0) { - dbg_print(is_debug_on, "\n"); - } - } - dbg_print(is_debug_on, "\n"); - - dbg_print(is_debug_on, "actually reread buf :\n"); - for (i = 0; i < size; i++) { - dbg_print(is_debug_on, "0x%x ", reread_buf[i]); - if (((i + 1) % 16) == 0) { - dbg_print(is_debug_on, "\n"); - } - } - dbg_print(is_debug_on, "\n"); - - free(reread_buf); - return FIRMWARE_FAILED; - } - - free(reread_buf); - dbg_print(is_debug_on, "firmware upgrade mtd block offset[0x%.8x] success.\n", offset); - return FIRMWARE_SUCCESS; -} - -/* - * firmware_upgrade_mtd_program - * function: upgrade mtd device - * @dev_info: param[in] Device file descriptor - * @flash_base: param[in] Upgrade the flash start address - * @buf: param[in] Upgrade the file content - * @size: param[in] Upgrade file size - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -static int firmware_upgrade_mtd_program(firmware_mtd_info_t *dev_info, - int flash_base, uint8_t *buf, uint32_t size) -{ - int ret; - int mtdnum; - char dev_mtd[PATH_LEN]; - int mtd_fd; - uint32_t offset, len, block_size; - struct mtd_info_user mtd_info; - uint8_t *data_point; - - ret = get_mtdnum_from_name(dev_info->mtd_name, &mtdnum); - if (ret < 0) { - dbg_print(is_debug_on, "Error:not find %s mtd num.\n", dev_info->mtd_name); - return FIRMWARE_FAILED; - } - - mem_clear(dev_mtd, sizeof(dev_mtd)); - snprintf(dev_mtd, sizeof(dev_mtd) - 1, "/dev/mtd%d", mtdnum); - - mtd_fd = open(dev_mtd, O_SYNC | O_RDWR); - if (mtd_fd < 0) { - dbg_print(is_debug_on, "Error:open %s failed.\n", dev_mtd); - goto err; - } - - ret = getmeminfo(mtd_fd, &mtd_info); - if (ret < 0) { - dbg_print(is_debug_on, "Error:get mtd info failed, ret=%d.\n", ret); - goto failed; - } - - offset = flash_base; - if (offset >= mtd_info.size) { - dbg_print(is_debug_on, "Error: offset[0x%.8x] over size[0x%.8x]\n", offset, size); - goto failed; - } - - len = size; - data_point = buf; - while ((offset < mtd_info.size) && (len > 0)) { - if (len > mtd_info.erasesize) { - block_size = mtd_info.erasesize; - } else { - block_size = len; - } - dbg_print(is_debug_on, "upgrade mtd[%s] block offset[0x%.8x] size[%d] relen[%d].\n", dev_mtd, offset, size, len); - ret = firmware_upgrade_mtd_block(mtd_fd, offset, data_point, block_size, mtd_info.erasesize); - if (ret < 0) { - dbg_print(is_debug_on, "Error: mt block offset[0x%.8x] size[0x%.8x] failed.\n", offset, block_size); - goto failed; - } - len -= block_size; - data_point += block_size; - offset += block_size; - usleep(FW_MTD_BLOCK_SLEEP_TIME); - } - - if (close(mtd_fd) < 0) { - dbg_print(is_debug_on, "Error:close %s failed.\n", dev_mtd); - } - dbg_print(is_debug_on, "firmware upgrade mtd device success.\n"); - return FIRMWARE_SUCCESS; - -failed: - if (close(mtd_fd) < 0) { - dbg_print(is_debug_on, "Error:close %s failed.\n", dev_mtd); - } - -err: - dbg_print(is_debug_on, "firmware upgrade mtd device fail.\n"); - return FIRMWARE_FAILED; -} - -/* - * firmware_upgrade_mtd - * function: Determine whether to upgrade ISC or JBI - * @fd: param[in] Device file descriptor - * @buf: param[in] Upgrade the file content - * @size: param[in] Upgrade file size - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_upgrade_mtd(int fd, uint8_t *buf, uint32_t size, name_info_t *info) -{ - int ret; - firmware_mtd_info_t dev_info; - - if ((buf == NULL) || (info == NULL)) { - dbg_print(is_debug_on, "Input invalid error.\n"); - return FIRMWARE_FAILED; - } - - /* get sysfs information*/ - ret = firmware_sysfs_get_dev_info(fd, &dev_info); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - /* enable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "init dev logic faile\n"); - return FIRMWARE_FAILED; - } - - ret = firmware_upgrade_mtd_program(&dev_info, dev_info.flash_base, buf, size); - if (ret < 0) { - dbg_print(is_debug_on, "Error:mtd device program failed, ret=%d.\n", ret); - goto failed; - } - - /* disable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "close dev logic en failed.\n"); - } - - return FIRMWARE_SUCCESS; - -failed: - /* disable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_FINISH,NULL); - if (ret < 0) { - dbg_print(is_debug_on, "close dev logic en failed.\n"); - } - - return FIRMWARE_FAILED; -} - -/* - * firmware_upgrade_mtd_test - * function: Determine whether to upgrade ISC or JBI - * @fd: param[in] Device file descriptor - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_upgrade_mtd_test(int fd, name_info_t *info) -{ - int ret, rv; - firmware_mtd_info_t dev_info; - uint8_t *data_buf; - uint8_t num; - int j; - - if (info == NULL) { - dbg_print(is_debug_on, "Input invalid error.\n"); - return FIRMWARE_FAILED; - } - - /* get sysfs information*/ - ret = firmware_sysfs_get_dev_info(fd, &dev_info); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - if (dev_info.test_size == 0) { - dbg_print(is_debug_on, "Error: get flash size:%d, not support.\n", dev_info.test_size); - return FIRMWARE_NOT_SUPPORT; - } - - data_buf = (uint8_t *) malloc(dev_info.test_size); - if (data_buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for test data buf, size=%d.\n", dev_info.test_size); - return FIRMWARE_FAILED; - } - - /* Get random data */ - for (j = 0; j < dev_info.test_size; j++) { - num = (uint8_t) rand() % 256; - data_buf[j] = num & 0xff; - } - - /* enable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "init dev logic faile\n"); - free(data_buf); - return FIRMWARE_FAILED; - } - - ret = firmware_upgrade_mtd_program(&dev_info, dev_info.test_base, data_buf, dev_info.test_size); - /* disable upgrade access */ - rv = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); - if (rv < 0) { - dbg_print(is_debug_on, "close dev logic en failed.\n"); - } - free(data_buf); - if (ret < 0) { - dbg_print(is_debug_on, "Error:mtd device program failed, ret=%d.\n", ret); - return FIRMWARE_FAILED; - } - return FIRMWARE_SUCCESS; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h deleted file mode 100644 index 06e36b3149d5..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/firmware_upgrade_mtd.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __FIRMWARE_UPGRADE_MTD_H__ -#define __FIRMWARE_UPGRADE_MTD_H__ - -#include - -#define FIRMWARE_DEV_NAME_LEN 64 /* the macro definition needs to same as FIRMWARE_DEV_NAME_LEN in firmware_sysfs_upgrade.h */ -#define PATH_LEN (256) -#define FW_MTD_BLOCK_SLEEP_TIME (10000) /* 10ms */ -#define FW_SYSFS_RETRY_SLEEP_TIME (10000) /* 10ms */ -#define FW_SYSFS_RETRY_TIME (5) /* retry 5 times, 50ms = FW_SYSFS_RETRY_TIME *FW_SYSFS_RETRY_SLEEP_TIME; */ - -/* Debug switch level */ -typedef enum { - FIRWMARE_MTD_SUCCESS = 0, - FIRWMARE_MTD_PART_INFO_ERR, - FIRWMARE_MTD_MEMERASE, - FIRWMARE_MTD_MEMGETINFO, - FIRWMARE_END, -} firmware_debug_level_t; - -#define debug(fmt, argv...) do { \ - dbg_print(is_debug_on, ""fmt , ##argv);\ - } while(0) - -typedef struct firmware_mtd_info_s { - char mtd_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ - uint32_t flash_base; /* Flash Upgrade Address */ - uint32_t test_base; /* Test flash address */ - uint32_t test_size; /* Test flash size */ -} firmware_mtd_info_t; - -#endif /* End of __FIRMWARE_UPGRADE_MTD_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h deleted file mode 100644 index f326d23e732e..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_mtd/mtd-abi.h +++ /dev/null @@ -1,259 +0,0 @@ - -#ifndef __MTD_ABI_H__ -#define __MTD_ABI_H__ - -#include - -struct erase_info_user { - __u32 start; - __u32 length; -}; - -struct erase_info_user64 { - __u64 start; - __u64 length; -}; - -struct mtd_oob_buf { - __u32 start; - __u32 length; - unsigned char *ptr; -}; - -struct mtd_oob_buf64 { - __u64 start; - __u32 pad; - __u32 length; - __u64 usr_ptr; -}; - -/** - * MTD operation modes - * - * @MTD_OPS_PLACE_OOB: OOB data are placed at the given offset (default) - * @MTD_OPS_AUTO_OOB: OOB data are automatically placed at the free areas - * which are defined by the internal ecclayout - * @MTD_OPS_RAW: data are transferred as-is, with no error correction; - * this mode implies %MTD_OPS_PLACE_OOB - * - * These modes can be passed to ioctl(MEMWRITE) and are also used internally. - * See notes on "MTD file modes" for discussion on %MTD_OPS_RAW vs. - * %MTD_FILE_MODE_RAW. - */ -enum { - MTD_OPS_PLACE_OOB = 0, - MTD_OPS_AUTO_OOB = 1, - MTD_OPS_RAW = 2, -}; - -/** - * struct mtd_write_req - data structure for requesting a write operation - * - * @start: start address - * @len: length of data buffer - * @ooblen: length of OOB buffer - * @usr_data: user-provided data buffer - * @usr_oob: user-provided OOB buffer - * @mode: MTD mode (see "MTD operation modes") - * @padding: reserved, must be set to 0 - * - * This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB - * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to - * write data-only, set @usr_oob == NULL. However, setting both @usr_data and - * @usr_oob to NULL is not allowed. - */ -struct mtd_write_req { - __u64 start; - __u64 len; - __u64 ooblen; - __u64 usr_data; - __u64 usr_oob; - __u8 mode; - __u8 padding[7]; -}; - -#define MTD_ABSENT 0 -#define MTD_RAM 1 -#define MTD_ROM 2 -#define MTD_NORFLASH 3 -#define MTD_NANDFLASH 4 -#define MTD_DATAFLASH 6 -#define MTD_UBIVOLUME 7 -#define MTD_MLCNANDFLASH 8 - -#define MTD_WRITEABLE 0x400 /* Device is writeable */ -#define MTD_BIT_WRITEABLE 0x800 /* Single bits can be flipped */ -#define MTD_NO_ERASE 0x1000 /* No erase necessary */ -#define MTD_POWERUP_LOCK 0x2000 /* Always locked after reset */ - -/* Some common devices / combinations of capabilities */ -#define MTD_CAP_ROM 0 -#define MTD_CAP_RAM (MTD_WRITEABLE | MTD_BIT_WRITEABLE | MTD_NO_ERASE) -#define MTD_CAP_NORFLASH (MTD_WRITEABLE | MTD_BIT_WRITEABLE) -#define MTD_CAP_NANDFLASH (MTD_WRITEABLE) - -/* Obsolete ECC byte placement modes (used with obsolete MEMGETOOBSEL) */ -#define MTD_NANDECC_OFF 0 // Switch off ECC (Not recommended) -#define MTD_NANDECC_PLACE 1 // Use the given placement in the structure (YAFFS1 legacy mode) -#define MTD_NANDECC_AUTOPLACE 2 // Use the default placement scheme -#define MTD_NANDECC_PLACEONLY 3 // Use the given placement in the structure (Do not store ecc result on read) -#define MTD_NANDECC_AUTOPL_USR 4 // Use the given autoplacement scheme rather than using the default - -/* OTP mode selection */ -#define MTD_OTP_OFF 0 -#define MTD_OTP_FACTORY 1 -#define MTD_OTP_USER 2 - -typedef struct mtd_info_user { - __u8 type; - __u32 flags; - __u32 size; /* Total size of the MTD */ - __u32 erasesize; - __u32 writesize; - __u32 oobsize; /* Amount of OOB data per block (e.g. 16) */ - __u64 padding; /* Old obsolete field; do not use */ -} mtd_info_user_t; - -struct region_info_user { - __u32 offset; /* At which this region starts, - * from the beginning of the MTD */ - __u32 erasesize; /* For this region */ - __u32 numblocks; /* Number of blocks in this region */ - __u32 regionindex; -}; - -struct otp_info { - __u32 start; - __u32 length; - __u32 locked; -}; - -/* - * Note, the following ioctl existed in the past and was removed: - * #define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo) - * Try to avoid adding a new ioctl with the same ioctl number. - */ - -/* Get basic MTD characteristics info (better to use sysfs) */ -#define MEMGETINFO _IOR('M', 1, struct mtd_info_user) -/* Erase segment of MTD */ -#define MEMERASE _IOW('M', 2, struct erase_info_user) -/* Write out-of-band data from MTD */ -#define MEMWRITEOOB _IOWR('M', 3, struct mtd_oob_buf) -/* Read out-of-band data from MTD */ -#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf) -/* Lock a chip (for MTD that supports it) */ -#define MEMLOCK _IOW('M', 5, struct erase_info_user) -/* Unlock a chip (for MTD that supports it) */ -#define MEMUNLOCK _IOW('M', 6, struct erase_info_user) -/* Get the number of different erase regions */ -#define MEMGETREGIONCOUNT _IOR('M', 7, int) -/* Get information about the erase region for a specific index */ -#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user) -/* Get info about OOB modes (e.g., RAW, PLACE, AUTO) - legacy interface */ -#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo) -/* Check if an eraseblock is bad */ -#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t) -/* Mark an eraseblock as bad */ -#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t) -/* Set OTP (One-Time Programmable) mode (factory vs. user) */ -#define OTPSELECT _IOR('M', 13, int) -/* Get number of OTP (One-Time Programmable) regions */ -#define OTPGETREGIONCOUNT _IOW('M', 14, int) -/* Get all OTP (One-Time Programmable) info about MTD */ -#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info) -/* Lock a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */ -#define OTPLOCK _IOR('M', 16, struct otp_info) -/* Get ECC layout (deprecated) */ -#define ECCGETLAYOUT _IOR('M', 17, struct nand_ecclayout_user) -/* Get statistics about corrected/uncorrected errors */ -#define ECCGETSTATS _IOR('M', 18, struct mtd_ecc_stats) -/* Set MTD mode on a per-file-descriptor basis (see "MTD file modes") */ -#define MTDFILEMODE _IO('M', 19) -/* Erase segment of MTD (supports 64-bit address) */ -#define MEMERASE64 _IOW('M', 20, struct erase_info_user64) -/* Write data to OOB (64-bit version) */ -#define MEMWRITEOOB64 _IOWR('M', 21, struct mtd_oob_buf64) -/* Read data from OOB (64-bit version) */ -#define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64) -/* Check if chip is locked (for MTD that supports it) */ -#define MEMISLOCKED _IOR('M', 23, struct erase_info_user) -/* - * Most generic write interface; can write in-band and/or out-of-band in various - * modes (see "struct mtd_write_req") - */ -#define MEMWRITE _IOWR('M', 24, struct mtd_write_req) - -/* - * Obsolete legacy interface. Keep it in order not to break userspace - * interfaces - */ -struct nand_oobinfo { - __u32 useecc; - __u32 eccbytes; - __u32 oobfree[8][2]; - __u32 eccpos[32]; -}; - -struct nand_oobfree { - __u32 offset; - __u32 length; -}; - -#define MTD_MAX_OOBFREE_ENTRIES 8 -#define MTD_MAX_ECCPOS_ENTRIES 64 -/* - * OBSOLETE: ECC layout control structure. Exported to user-space via ioctl - * ECCGETLAYOUT for backwards compatbility and should not be mistaken as a - * complete set of ECC information. The ioctl truncates the larger internal - * structure to retain binary compatibility with the static declaration of the - * ioctl. Note that the "MTD_MAX_..._ENTRIES" macros represent the max size of - * the user struct, not the MAX size of the internal struct nand_ecclayout. - */ -struct nand_ecclayout_user { - __u32 eccbytes; - __u32 eccpos[MTD_MAX_ECCPOS_ENTRIES]; - __u32 oobavail; - struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES]; -}; - -/** - * struct mtd_ecc_stats - error correction stats - * - * @corrected: number of corrected bits - * @failed: number of uncorrectable errors - * @badblocks: number of bad blocks in this partition - * @bbtblocks: number of blocks reserved for bad block tables - */ -struct mtd_ecc_stats { - __u32 corrected; - __u32 failed; - __u32 badblocks; - __u32 bbtblocks; -}; - -/* - * MTD file modes - for read/write access to MTD - * - * @MTD_FILE_MODE_NORMAL: OTP disabled, ECC enabled - * @MTD_FILE_MODE_OTP_FACTORY: OTP enabled in factory mode - * @MTD_FILE_MODE_OTP_USER: OTP enabled in user mode - * @MTD_FILE_MODE_RAW: OTP disabled, ECC disabled - * - * These modes can be set via ioctl(MTDFILEMODE). The mode mode will be retained - * separately for each open file descriptor. - * - * Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW - - * raw access to the flash, without error correction or autoplacement schemes. - * Wherever possible, the MTD_OPS_* mode will override the MTD_FILE_MODE_* mode - * (e.g., when using ioctl(MEMWRITE)), but in some cases, the MTD_FILE_MODE is - * used out of necessity (e.g., `write()', ioctl(MEMWRITEOOB64)). - */ -enum mtd_file_modes { - MTD_FILE_MODE_NORMAL = MTD_OTP_OFF, - MTD_FILE_MODE_OTP_FACTORY = MTD_OTP_FACTORY, - MTD_FILE_MODE_OTP_USER = MTD_OTP_USER, - MTD_FILE_MODE_RAW, -}; - -#endif /* __MTD_ABI_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c deleted file mode 100644 index 10a429d93bde..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.c +++ /dev/null @@ -1,285 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "firmware_upgrade_sysfs.h" - -static int firmware_sysfs_get_dev_info(int fd, firmware_dev_file_info_t *dev_info) -{ - int ret; - - ret = ioctl(fd, FIRMWARE_SYSFS_DEV_FILE_INFO, dev_info); - if (ret < 0) { - dbg_print(is_debug_on, "Failed to get upg flash dev info.\n"); - return ret; - } - - dbg_print(is_debug_on, "sysfs_name=%s per_len=%u.\n", dev_info->sysfs_name, dev_info->per_len); - return 0; -} - -/* sysfs upgrade program function */ -int firmware_upgrade_sysfs_program(firmware_dev_file_info_t *dev_info, uint32_t dev_base, - uint8_t *buf, uint32_t size) -{ - int ret = 0; - uint32_t offset_addr, buf_offset, len; - uint32_t write_len, cmp_retry, reread_len; - int sysfs_fd; - uint8_t *reread_buf; - int i; - - if (dev_info->per_len > 0) { - if (size % dev_info->per_len) { - dbg_print(is_debug_on, "firmware sysfs upgrade size[%u] is width[%u] mismatch, ret %d.\n", - size, dev_info->per_len, ret); - return FIRMWARE_FAILED; - } - len = dev_info->per_len; - } else { - /* Write to the maximum buffer if the length of each write is not configured */ - len = size; - } - - /* Read back data */ - reread_buf = (uint8_t *) malloc(len); - if (reread_buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for read back data buf, len=%u.\n", len); - return FIRMWARE_FAILED; - } - - sysfs_fd = open(dev_info->sysfs_name, O_RDWR | O_SYNC); - if (sysfs_fd < 0) { - dbg_print(is_debug_on, "open file[%s] fail.\n", dev_info->sysfs_name); - free(reread_buf); - return FIRMWARE_FAILED; - } - - offset_addr = dev_base; - buf_offset = 0; - cmp_retry = 0; - while (buf_offset < size) { - /* Calibrate upgrade data length */ - if (buf_offset + len > size) { - len = size - buf_offset; - } - - for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { - ret = lseek(sysfs_fd, offset_addr, SEEK_SET); - if (ret < 0) { - dbg_print(is_debug_on, "lseek file[%s offset=%u] fail.\n", dev_info->sysfs_name, offset_addr); - close(sysfs_fd); - free(reread_buf); - return FIRMWARE_FAILED; - } - write_len = write(sysfs_fd, buf + buf_offset, len); - if (write_len != len) { - dbg_print(is_debug_on, "write file[%s] fail,offset = 0x%x retrytimes = %u len = %u, write_len =%u\n", - dev_info->sysfs_name, offset_addr, i ,len, write_len); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - break; - } - - if (i == FW_SYSFS_RETRY_TIME) { - dbg_print(is_debug_on, "write file[%s] fail, offset = 0x%x, len = %u, write_len =%u\n", - dev_info->sysfs_name, offset_addr, len, write_len); - close(sysfs_fd); - free(reread_buf); - return FIRMWARE_FAILED; - } - - mem_clear(reread_buf, len); - ret = lseek(sysfs_fd, offset_addr, SEEK_SET); - if (ret < 0) { - dbg_print(is_debug_on, "reread lseek file[%s offset=%u] fail.\n", dev_info->sysfs_name, offset_addr); - close(sysfs_fd); - free(reread_buf); - return FIRMWARE_FAILED; - } - - for (i = 0; i < FW_SYSFS_RETRY_TIME; i++) { - reread_len = read(sysfs_fd, reread_buf, len); - if (reread_len != len) { - dbg_print(is_debug_on, "reread file[%s] fail,offset = 0x%x retrytimes = %u reread_len = %u, len =%u\n", - dev_info->sysfs_name, offset_addr, i ,reread_len, len); - usleep(FW_SYSFS_RETRY_SLEEP_TIME); - continue; - } - break; - } - if (i == FW_SYSFS_RETRY_TIME) { - dbg_print(is_debug_on, "reread file[%s] fail, offset = 0x%x, reread_len = %u, len = %u\n", - dev_info->sysfs_name, offset_addr, reread_len, len); - close(sysfs_fd); - free(reread_buf); - return FIRMWARE_FAILED; - } - - /* Check data */ - if (memcmp(reread_buf, buf + buf_offset, len) != 0) { - if (cmp_retry < FW_SYSFS_RETRY_TIME) { - dbg_print(is_debug_on, "memcmp file[%s] fail,offset = 0x%x retrytimes = %u\n", - dev_info->sysfs_name, offset_addr, cmp_retry); - cmp_retry++; - continue; - } - - dbg_print(is_debug_on, "upgrade file[%s] fail, offset = 0x%x.\n", dev_info->sysfs_name, offset_addr); - dbg_print(is_debug_on, "want to write buf :\n"); - for (i = 0; i < len; i++) { - dbg_print(is_debug_on, "0x%x ", buf[buf_offset + i]); - if (((i + 1) % 16) == 0) { - dbg_print(is_debug_on, "\n"); - } - } - dbg_print(is_debug_on, "\n"); - - dbg_print(is_debug_on, "actually reread buf :\n"); - for (i = 0; i < len; i++) { - dbg_print(is_debug_on, "0x%x ", reread_buf[i]); - if (((i + 1) % 16) == 0) { - dbg_print(is_debug_on, "\n"); - } - } - dbg_print(is_debug_on, "\n"); - - close(sysfs_fd); - free(reread_buf); - return FIRMWARE_FAILED; - } - offset_addr += len; - buf_offset += len; - usleep(5000); - } - free(reread_buf); - - dbg_print(is_debug_on, "firmware upgrade sysfs success.\n"); - close(sysfs_fd); - return FIRMWARE_SUCCESS; -} - -/* sysfs upgrade function */ -int firmware_upgrade_sysfs(int fd, uint8_t *buf, uint32_t size, name_info_t *info) -{ - int ret = 0; - firmware_dev_file_info_t dev_info; - - if ((buf == NULL) || (info == NULL)) { - dbg_print(is_debug_on, "Input invalid error.\n"); - goto exit; - } - - /* get sysfs information*/ - ret = firmware_sysfs_get_dev_info(fd, &dev_info); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); - goto exit; - } - - /* enable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "init dev logic faile\n"); - goto exit; - } - - ret = firmware_upgrade_sysfs_program(&dev_info, dev_info.dev_base, buf, size); - if (ret < 0) { - dbg_print(is_debug_on, "init dev logic faile\n"); - goto fail; - } - - dbg_print(is_debug_on, "firmware upgrade sysfs success.\n"); - /* disable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_FINISH,NULL); - if (ret < 0) { - dbg_print(is_debug_on, "close dev logic en failed.\n"); - } - return FIRMWARE_SUCCESS; - -fail: - /* disable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "close dev logic en failed.\n"); - } -exit: - dbg_print(is_debug_on, "firmware upgrade sysfs fail.\n"); - return FIRMWARE_FAILED; -} - -/* sysfs upgrade test function */ -int firmware_upgrade_sysfs_test(int fd, name_info_t *info) -{ - int ret, rv; - firmware_dev_file_info_t dev_info; - uint8_t *data_buf; - uint8_t num; - int j; - - if (info == NULL) { - dbg_print(is_debug_on, "Input invalid error.\n"); - return FIRMWARE_FAILED; - } - - /* get sysfs information*/ - ret = firmware_sysfs_get_dev_info(fd, &dev_info); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_sysfs_get_dev_info failed, ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - if (dev_info.test_size == 0) { - dbg_print(is_debug_on, "Error: get sysfs test size:%d, not support.\n", dev_info.test_size); - return FIRMWARE_NOT_SUPPORT; - } - - data_buf = (uint8_t *) malloc(dev_info.test_size); - if (data_buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for test data buf, size=%d.\n", dev_info.test_size); - return FIRMWARE_FAILED; - } - - /* Get random data */ - for (j = 0; j < dev_info.test_size; j++) { - num = (uint8_t) rand() % 256; - data_buf[j] = num & 0xff; - } - - /* enable upgrade access */ - ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "init dev logic faile\n"); - free(data_buf); - return FIRMWARE_FAILED; - } - - ret = firmware_upgrade_sysfs_program(&dev_info, dev_info.test_base, data_buf, dev_info.test_size); - /* disable upgrade access */ - rv = ioctl(fd, FIRMWARE_SYSFS_FINISH,NULL); - if (rv < 0) { - dbg_print(is_debug_on, "close dev logic en failed.\n"); - } - free(data_buf); - - if (ret < 0) { - dbg_print(is_debug_on, "init dev logic faile\n"); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "firmware upgrade sysfs success.\n"); - return FIRMWARE_SUCCESS; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h deleted file mode 100644 index b69080ea642e..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/firmware_upgrade_sysfs.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __FIRMWARE_UPGRADE_SYSFS_H__ -#define __FIRMWARE_UPGRADE_SYSFS_H__ - -#define FIRMWARE_DEV_NAME_LEN (64) /* the macro definition needs to same as FIRMWARE_DEV_NAME_LEN in firmware_sysfs_upgrade.h */ -#define FW_SYSFS_RETRY_SLEEP_TIME (10000) /* 10ms */ -#define FW_SYSFS_RETRY_TIME (5) /* retry 5 times, 50ms = FW_SYSFS_RETRY_TIME *FW_SYSFS_RETRY_SLEEP_TIME; */ - -typedef struct firmware_dev_file_info_s { - char sysfs_name[FIRMWARE_DEV_NAME_LEN]; /* sysfs name */ - uint32_t dev_base; /* device upgrade base address */ - uint32_t per_len; /* The length of bytes per operation */ - uint32_t test_base; /* Test device address */ - uint32_t test_size; /* Test flash size */ -} firmware_dev_file_info_t; - -#endif /* End of __FIRMWARE_UPGRADE_SYSFS_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c deleted file mode 100644 index 7db3c1b7b6ec..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.c +++ /dev/null @@ -1,1181 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "fw_upg_spi_logic_dev.h" - -#define be32_to_cpus(p) __be32_to_cpus(p) -#define le32_to_cpus(p) __le32_to_cpus(p) -#define cpu_to_be32s(p) __cpu_to_be32s(p) -#define cpu_to_le32s(p) __cpu_to_le32s(p) - -static void firmware_upgrade_printf_reg(uint8_t *buf, int buf_len, uint32_t offset_addr) -{ - int i, j, tmp; - - j = offset_addr % 16; - tmp = j; - offset_addr -= j; - printf("\n "); - - for (i = 0; i < 16; i++) { - printf("%2x ", i); - } - - for (i = 0; i < buf_len + j; i++) { - if ((i % 16) == 0) { - printf("\n0x%08x ", offset_addr); - offset_addr = offset_addr + 16; - } - if (tmp) { - printf(" "); - tmp--; - } else { - printf("%02x ", buf[i-j]); - } - } - - printf("\n"); - return; -} - -static int firmware_upgrade_get_spi_logic_info(int fd, firmware_spi_logic_upg_t *current_upg_priv) -{ - int ret; - firmware_spi_logic_info_t syfs_info; - - if (fd < 0) { - dbg_print(is_debug_on, "Error: get spi logic info fd %d.\n", fd); - return fd; - } - - ret = 0; - ret = ioctl(fd, FIRMWARE_SYSFS_SPI_INFO, &syfs_info); - if (ret < 0) { - dbg_print(is_debug_on, "Failed to get upg flash dev info, ret=%d\n", ret); - return -FW_SPI_FLASH_GET_INFO_ERR; - } - - current_upg_priv->flash_base = syfs_info.flash_base; - current_upg_priv->ctrl_base = syfs_info.ctrl_base; - memcpy(current_upg_priv->dev_path, syfs_info.logic_dev_name, FIRMWARE_LOGIC_DEV_NAME_LEN - 1); - current_upg_priv->status_reg = syfs_info.ctrl_base + FPGA_UPG_STATUS_REG; - current_upg_priv->spi_ctrl_reg = syfs_info.ctrl_base + FPGA_UPG_SPI_CTRL_REG; - current_upg_priv->wr_flash_status_reg = syfs_info.ctrl_base + FPGA_UPG_WR_FLASH_STATUS_REG; - current_upg_priv->rd_flash_status_reg = syfs_info.ctrl_base + FPGA_UPG_RD_FLASH_STATUS_REG; - current_upg_priv->instruction_reg = syfs_info.ctrl_base + FPGA_UPG_INSTRUCTION_REG; - current_upg_priv->addr_reg = syfs_info.ctrl_base + FPGA_UPG_ADDR_REG; - current_upg_priv->length_reg = syfs_info.ctrl_base + FPGA_UPG_LENGTH_REG; - current_upg_priv->device_id_reg = syfs_info.ctrl_base + FPGA_UPG_DEVICE_ID_REG; - current_upg_priv->drop_reg_num_reg = syfs_info.ctrl_base + FPGA_UPG_DROP_REQ_NUM_REG; - current_upg_priv->test_base = syfs_info.test_base; - current_upg_priv->test_size = syfs_info.test_size; - - return 0; -} - -static int firmware_upgrade_spi_logic_init(int fd) -{ - int ret; - - ret = 0; - ret = ioctl(fd, FIRMWARE_SYSFS_INIT, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "Failed to init spi logic, ret=%d\n", ret); - return -1; - } - - return 0; -} - -static int firmware_upgrade_spi_logic_finish(int fd) -{ - int ret; - - if (fd < 0) { - dbg_print(is_debug_on, "Error: get spi logic info fd %d.\n", fd); - return -1; - } - - ret = 0; - ret = ioctl(fd, FIRMWARE_SYSFS_FINISH, NULL); - if (ret < 0) { - dbg_print(is_debug_on, "Failed to release spi logic, ret=%d\n", ret); - return -1; - } - - return 0; -} - -/** - * firmware_fpga_file_read - - * function:Provide FPGA read-register interface (address must be 4-byte aligned) - * @dev_name: Device file descriptor - * @offset: device offset - * @buf: Read Data Buffer - * @rd_len: Read Data Length - * return: 0--success; other--fail - */ -int firmware_fpga_file_read(char *dev_name, uint32_t offset, uint8_t *buf, uint32_t rd_len) -{ - int ret, fd; - - if ((dev_name == NULL) || (buf == NULL)) { - dbg_print(is_debug_on, "upg_priv or read buf is null.\n"); - return -1; - } - - if ((fd = open(dev_name, O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO)) < 0) { - dbg_print(is_debug_on, "Error: Could not open file %s. Errno=%d\n", dev_name, errno); - return -1; - } - - ret = lseek(fd, offset, SEEK_SET); - if (ret < 0) { - dbg_print(is_debug_on, "read llseek failed, errno: %s\n", strerror(errno)); - close(fd); - return -1; - } - - ret = read(fd, buf, rd_len); - if (ret < 0) { - dbg_print(is_debug_on, "read failed, err: %s\n", strerror(errno)); - close(fd); - return -1; - } - - close(fd); - return 0; -} - -static int firmware_fpga_read_word(char *dev_name, uint32_t addr, uint32_t *val) -{ - int ret; - uint32_t retry; - - if (sizeof(int) < FIRMWARE_FPGA_WORD_LEN) { - dbg_print(is_debug_on, "Error:dfd_fpga_read_word buf len %ld support len %d.\n", - sizeof(int), FIRMWARE_FPGA_WORD_LEN); - return -1; - } - - retry = 0; - *val = 0; - while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { - ret = firmware_fpga_file_read(dev_name, addr, (uint8_t *)val, FIRMWARE_FPGA_WORD_LEN); - if (ret) { - retry++; - dbg_print(is_debug_on, "firmware_fpga_file_read addr 0x%x retry %u failed ret %d.\n", - addr, retry, ret); - continue; - } else { - le32_to_cpus(val); - return 0; - } - } - - dbg_print(is_debug_on, "dfd_fpga_read_word addr 0x%x retry %u failed ret %d.\n", addr, retry, ret); - return -1; -} - -static int firmware_fpga_read_buf(char *dev_name, uint32_t addr, uint8_t *buf, uint32_t rd_len) -{ - int ret; - uint32_t retry; - - retry = 0; - while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { - ret = firmware_fpga_file_read(dev_name, addr, buf, rd_len); - if (ret) { - retry++; - dbg_print(is_debug_on, "firmware_fpga_file_read addr 0x%x rd_len %u i %d failed ret %d.\n", - addr, rd_len, retry, ret); - continue; - } else { - return 0; - } - } - - dbg_print(is_debug_on, "firmware_fpga_file_read addr 0x%x rd_len %u retry %u failed ret %d.\n", - addr, rd_len, retry, ret); - return -1; -} - -/** - * firmware_fpga_file_write - - * function:Provide FPGA write-register interface (address must be 4-byte aligned) - * @dev_name: Device file descriptor - * @offset: device offset - * @buf: Write Data Buffer - * @wr_len: Write Data Length - * return: 0--success; other--fail - */ -int firmware_fpga_file_write(char *dev_name, uint32_t offset, uint8_t *buf, uint32_t wr_len) -{ - int ret, fd; - - if ((dev_name == NULL) || (buf == NULL)) { - dbg_print(is_debug_on, "dev_name or write buf is null.\n"); - return -1; - } - - if ((fd = open(dev_name, O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO)) < 0) { - dbg_print(is_debug_on, "Error: Could not open file %s. Errno=%d\n", dev_name, errno); - return -1; - } - - ret = lseek(fd, offset, SEEK_SET); - if (ret < 0) { - dbg_print(is_debug_on, "write llseek failed, err: %s\n", strerror(errno)); - close(fd); - return -1; - } - - ret = write(fd, buf, wr_len); - if (ret < 0 ) { - dbg_print(is_debug_on, "write failed, err: %s\n", strerror(errno)); - close(fd); - return -1; - } - - close(fd); - return 0; -} - -static int firmware_fpga_write_word(char *dev_name, uint32_t addr, uint32_t val) -{ - int ret; - uint32_t retry, tmp; - - retry = 0; - tmp = val; - cpu_to_le32s(&tmp); - while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { - ret = firmware_fpga_file_write(dev_name, addr, (uint8_t *)&tmp, FIRMWARE_FPGA_WORD_LEN); - if (ret) { - retry++; - dbg_print(is_debug_on, "firmware_fpga_file_write addr 0x%x val 0x%x retry %u failed ret %d.\n", - addr, val, retry, ret); - continue; - } else { - return 0; - } - } - - dbg_print(is_debug_on, "firmware_fpga_file_write addr 0x%x val 0x%x retry %u failed ret %d.\n", - addr, val, retry, ret); - return -1; -} - -static int firmware_fpga_write_buf(char *dev_name, uint32_t addr, uint8_t *buf, uint32_t wr_len) -{ - int ret; - uint32_t retry; - - retry = 0; - while(retry < FIRMWARE_FPGA_UPG_RETRY_CNT) { - ret = firmware_fpga_file_write(dev_name, addr, buf, wr_len); - if (ret) { - retry++; - dbg_print(is_debug_on, "firmware_fpga_file_write addr 0x%x wr_len 0x%x retry %u failed ret %d.\n", - addr, wr_len, retry, ret); - continue; - } else { - return 0; - } - } - - dbg_print(is_debug_on, "dfd_fpga_buf_write addr 0x%x wr_len 0x%x retry %u failed ret %d.\n", - addr, wr_len, retry, ret); - - return -1; -} - -/* Whether the SPI port is idle, 0--idle, 1--busy */ -static int firmware_fpga_get_status(firmware_spi_logic_upg_t *upg_priv, char *status) -{ - int ret; - uint32_t addr, val; - - addr = upg_priv->status_reg; - ret = firmware_fpga_read_word(upg_priv->dev_path, addr, &val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_get_status addr 0x%x failed ret %d.\n", addr, ret); - return -1; - } - - *status = val & FPGA_UPG_STATUS_MASK; - - return 0; -} - -/* Wait for the SPI port to become free again */ -static int firmware_fpga_wait_ready(firmware_spi_logic_upg_t *upg_priv) -{ - int timeout; - char status; - int ret; - - timeout = FIRMWARE_UPG_RETRY_TIME_CNT; - while (timeout--) { - usleep(FIRMWARE_UPG_RETRY_SLEEP_TIME); - ret = firmware_fpga_get_status(upg_priv, &status); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_get_status failed ret %d.\n", ret); - continue; - } - - /* Determine if it's idle */ - if (!status) { - return 0; - } - } - - return -1; -} - -/* Configure access */ -static int firmware_fpga_set_access(firmware_spi_logic_upg_t *upg_priv, uint32_t cmd) -{ - int ret; - uint32_t addr, val; - - addr = upg_priv->instruction_reg; - val = cmd; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", addr, val, ret); - return -1; - } - - addr = upg_priv->spi_ctrl_reg; - val = FPGA_UPG_ACCESS_ENABLE; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", addr, val, ret); - return -1; - } - - /* Wait for the SPI port on the FPGA to become free again*/ - ret = firmware_fpga_wait_ready(upg_priv); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_wait_ready failed ret %d.\n", ret); - return -FW_SPI_FLASH_BUSY; - } - - return 0; -} - -/* Get SPI STATUS register */ -static int firmware_fpga_get_spi_status(firmware_spi_logic_upg_t *upg_priv, char *status) -{ - int ret; - uint32_t val, addr, cmd; - - cmd = FPGA_UPG_INSTRUTION_RDSR; - ret = firmware_fpga_set_access(upg_priv, cmd); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_access cmd 0x%x failed ret %d.\n", cmd, ret); - return -1; - } - - addr = upg_priv->rd_flash_status_reg; - ret = firmware_fpga_read_word(upg_priv->dev_path, addr, &val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_read_word addr 0x%x failed ret %d.\n", addr, ret); - return -1; - } - - *status = val & FPGA_UPG_SPI_STATUS_MASK; - - return 0; -} - -/* Wait for the SPI chip operation to complete */ -static int firmware_fpga_wait_spi_ready(firmware_spi_logic_upg_t *upg_priv, - uint32_t timeout, uint32_t usleep_time) -{ - char status; - int ret; - - while (timeout--) { - usleep(usleep_time); - ret = firmware_fpga_get_spi_status(upg_priv, &status); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_get_spi_status failed ret %d.\n", ret); - continue; - } - /* Determine if it's idle */ - if (!status) { - return 0; - } - } - - return -FW_SPI_FLASH_SPI_BUSY; -} - -/* Configure FPGA upgrade write enable */ -static int firmware_fpga_set_wr_enable(firmware_spi_logic_upg_t *upg_priv) -{ - int ret; - uint32_t cmd; - - cmd = FPGA_UPG_INSTRUTION_WREN; - ret = firmware_fpga_set_access(upg_priv, cmd); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); - return -1; - } - - return 0; -} - -#if 0 -/* erase all flash */ -static int firmware_fpga_upg_set_erase_all(firmware_spi_logic_upg_t *upg_priv) -{ - int ret; - int cmd; - - /* Wait for the SPI port on the FPGA to become free */ - ret = firmware_fpga_wait_ready(upg_priv); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_wait_ready failed ret %d.\n", ret); - return -1; - } - - /* Configure FPGA upgrade write enable */ - ret = firmware_fpga_set_wr_enable(upg_priv); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_wr_enable failed ret %d.\n", ret); - return -1; - } - - cmd = FPGA_UPG_INSTRUTION_BE; - ret = firmware_fpga_set_access(upg_priv, cmd); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); - return -1; - } - - /* Hardware requirements, delay of 1s */ - sleep(1); - - /* Wait for the SPI chip operation to complete, 1s check status once, max delay 300s */ - ret = firmware_fpga_wait_spi_ready(upg_priv, 300, (1 * 1000 * 1000)); - if (ret) { - dbg_print(is_debug_on, "dfd_fpga_wait_spi_ready failed ret %d.\n", ret); - return -1; - } - - dbg_print(is_debug_on, "Success.\n"); - return 0; -} -#endif - -/* Erase sectors (256 pages, 64K total) */ -static int firmware_fpga_erase_sector(firmware_spi_logic_upg_t *upg_priv, uint32_t spi_addr) -{ - int ret; - uint32_t val, addr, cmd; - - /* Wait for the SPI port on the FPGA to become free again */ - ret = firmware_fpga_wait_ready(upg_priv); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_fpga_wait_ready failed ret %d.\n", ret); - return -FW_SPI_FLASH_BUSY; - } - - /* Enable write */ - ret = firmware_fpga_set_wr_enable(upg_priv); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_fpga_set_wr_enable failed ret %d.\n", ret); - return -FW_SPI_FLASH_WR_ENABLE_ERR; - } - - /* Write erase address */ - val = spi_addr; - addr = upg_priv->addr_reg; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", addr, val, ret); - return -FW_SPI_FLASH_ERASE_ADDR_ERR; - } - - /* Enable sector erasure */ - cmd = FPGA_UPG_INSTRUTION_SE; - ret = firmware_fpga_set_access(upg_priv, cmd); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); - return -FW_SPI_FLASH_ERASE_SECTOR_ERR; - } - - /* Hardware requirements, delay of 0.25s */ - usleep(250 * 1000); - - /* Wait for the SPI chip operation to complete, 1s check status once, max delay 10s */ - ret = firmware_fpga_wait_spi_ready(upg_priv, FPGA_UPG_WAIT_SPI_RETRY_CNT, (100 * 1000)); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_wait_spi_ready failed ret %d.\n", ret); - return -FW_SPI_FLASH_SPI_BUSY; - } - - return 0; -} - -#if 0 -int firmware_fpga_erase64_sector(firmware_spi_logic_upg_t *upg_priv, int offset) -{ - int ret; - ret = -1; - - if ((offset % FIRMWARE_SPI_LOGIC_SECTOR_SIZE) == 0) { - dbg_print(is_debug_on, "erase 64k area, offset 0x%x.\n", offset); - ret = firmware_fpga_erase_sector(upg_priv, offset); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_erase_sector offset 0x%x failed ret %d.\n", offset, ret); - return ret; - } - } else { - dbg_print(is_debug_on, "Input para invalid, offset 0x%x.\n", offset); - } - - return ret; -} -#endif - -static int firmware_fpga_upg_program(firmware_spi_logic_upg_t *upg_priv, - uint32_t spi_addr, uint8_t *buf, uint32_t len) -{ - int ret; - uint32_t addr, val, cmd, wr_len; - - /* Write data to the Upgrade Content Register */ - addr = upg_priv->ctrl_base; - wr_len = len; - ret = firmware_fpga_write_buf(upg_priv->dev_path, addr, (uint8_t*)buf, wr_len); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_write_buf addr 0x%x wr_len %d failed ret %d.\n", - addr, len, ret); - return -FW_SPI_FLASH_WR_ERR; - } - - /* Write length register, FPGA is fixed 256 lengths */ - val = FFPGA_UPG_DATA_SIZE; - addr = upg_priv->length_reg; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", - addr, val, ret); - return -FW_SPI_FLASH_WR_LENGTH_ERR; - } - - /* Write address register */ - val = spi_addr; - addr = upg_priv->addr_reg; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", - addr, val, ret); - return -FW_SPI_FLASH_WR_ADDR_ERR; - } - - /* Start writing upgrade data to SPI */ - cmd = FPGA_UPG_INSTRUTION_PP; - ret = firmware_fpga_set_access(upg_priv, cmd); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); - return -FW_SPI_FLASH_SET_ACCESS_ERR; - } - - /* min write wait 0.33ms */ - usleep(330); - - /* Wait for the SPI chip operation to complete, 100us check status once, max delay 10ms */ - ret = firmware_fpga_wait_spi_ready(upg_priv, FPGA_UPG_WAIT_SPI_RETRY_CNT, (100)); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_wait_spi_ready failed ret %d.\n", ret); - return -FW_SPI_FLASH_BUSY; - } - - return 0; -} - -/** - * firmware_fpga_upg_write - * function: write interface provided to the upgrade module - * @upg_priv: Device information - * @addr: upgrade addr - * @buf: Write Data Buffer - * @len: Write Data Length - * return: 0--success; other--fail - */ -static int firmware_fpga_upg_write(firmware_spi_logic_upg_t *upg_priv, - uint32_t addr, uint8_t *buf, uint32_t len) -{ - int ret; - - /* address must be 256 bytes aligned */ - if ((upg_priv == NULL) || (buf == NULL) || (addr & 0xff) || (len > 256)) { - dbg_print(is_debug_on,"Input para invalid upg_priv %p buf %p addr 0x%x len %u.\n", - upg_priv, buf, addr, len); - return -FW_SPI_FLASH_PARAM_ERR; - } - - /* Wait for the SPI port on the FPGA to become free again*/ - ret = firmware_fpga_wait_ready(upg_priv); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_wait_ready failed ret %d.\n", ret); - return -FW_SPI_FLASH_BUSY; - } - - /* Configure write enable */ - ret = firmware_fpga_set_wr_enable(upg_priv); - if (ret) { - dbg_print(is_debug_on,"firmware_fpga_set_wr_enable failed ret %d.\n", ret); - return -FW_SPI_FLASH_WR_ENABLE_ERR; - } - - /* Write upgrade data */ - ret = firmware_fpga_upg_program(upg_priv, addr, buf, len); - if (ret) { - dbg_print(is_debug_on,"dfd_fpga_upg_program addr 0x%x len %u failed ret %d.\n", addr, len, ret); - return -FW_SPI_FLASH_UPG_ERR; - } - - return 0; -} - -static int firmware_fpga_fast_read(firmware_spi_logic_upg_t *upg_priv, - uint32_t spi_addr, uint8_t *buf, uint32_t len) -{ - int ret; - uint32_t val, addr, cmd; - - /* Clear register value */ - addr = upg_priv->ctrl_base; - ret = firmware_fpga_write_buf(upg_priv->dev_path, addr, buf, len); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_write_buf addr 0x%x len %d failed ret %d.\n", addr, len, ret); - return -FW_SPI_FLASH_WR_ERR; - } - /* Write length register */ - val = FFPGA_UPG_DATA_SIZE; - addr = upg_priv->length_reg; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", - addr, val, ret); - return -FW_SPI_FLASH_WR_LENGTH_ERR; - } - - /* Write address register */ - val = spi_addr; - addr = upg_priv->addr_reg; - ret = firmware_fpga_write_word(upg_priv->dev_path, addr, val); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_write_word addr 0x%x val 0x%x failed ret %d.\n", - addr, val, ret); - return -FW_SPI_FLASH_WR_ADDR_ERR; - } - - /* Start reading SPI data */ - cmd = FPGA_UPG_INSTRUTION_FR; - ret = firmware_fpga_set_access(upg_priv, cmd); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_access cmd %d failed ret %d.\n", cmd, ret); - return -FW_SPI_FLASH_SET_ACCESS_ERR; - } - - /* Read the upgraded content register to the buffer, - * FPGA only supports 4 bytes of read and write */ - addr = upg_priv->ctrl_base; - ret = firmware_fpga_read_buf(upg_priv->dev_path, addr, (uint8_t*)buf, len); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_read_buf addr 0x%x len %d failed ret %d.\n", addr, len, ret); - return -FW_SPI_FLASH_RD_ERR; - } - - return 0; -} - -/** - * firmware_fpga_upg_read - * function: read interface provided to the upgrade module - * @upg_priv: Device information - * @addr: upgrade addr - * @buf: Read Data Buffer - * @len: Read Data Length - * return: 0--success; other--fail - */ -static int firmware_fpga_upg_read(firmware_spi_logic_upg_t *upg_priv, - uint32_t addr, uint8_t *buf, uint32_t len) -{ - int ret; - - /* address must be 256 bytes aligned */ - if ((upg_priv == NULL) || (buf == NULL) || (addr & 0xff) || (len > 256)) { - dbg_print(is_debug_on, "Input para invalid upg_priv %p buf %p addr 0x%x len %u.\n", - upg_priv, buf, addr, len); - return -FW_SPI_FLASH_PARAM_ERR; - } - - /* Wait for the SPI port on the FPGA to become free again */ - ret = firmware_fpga_wait_ready(upg_priv); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_wait_ready failed ret %d.\n", ret); - return -FW_SPI_FLASH_BUSY; - } - - /* Configure write enable */ - ret = firmware_fpga_set_wr_enable(upg_priv); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_set_wr_enable failed ret %d.\n", ret); - return -FW_SPI_FLASH_WR_ENABLE_ERR; - } - - /* Read upgrade data */ - ret = firmware_fpga_fast_read(upg_priv, addr, buf, len); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_fast_read addr 0x%x len %u failed ret %d.\n", addr, len, ret); - return -FW_SPI_FLASH_RD_ERR; - } - - return 0; - -} - -static int firmware_upgreade_fpga_onetime(firmware_spi_logic_upg_t *upg_priv, - uint32_t flash_base, uint8_t *buf, uint32_t size) -{ - uint32_t offset, len, flash_addr, retry; - int ret, res; - uint8_t rbuf[FFPGA_UPG_DATA_SIZE]; - - offset = 0; - while(offset < size) { - flash_addr = flash_base + offset; - /* Erases a sector */ - if ((flash_addr % FIRMWARE_SPI_LOGIC_SECTOR_SIZE) == 0) { - ret = firmware_fpga_erase_sector(upg_priv, flash_addr); - if (ret < 0) { - dbg_print(is_debug_on, "firmware_fpga_erase_sector flash_addr 0x%x failed ret %d.\n", - flash_addr, ret); - goto exit; - } - } - - if (size > FFPGA_UPG_DATA_SIZE) { - len = FFPGA_UPG_DATA_SIZE; - } else { - len = size; - } - - /* first, Write data */ - ret = firmware_fpga_upg_write(upg_priv, flash_addr, buf + offset, len); - if (ret) { - dbg_print(is_debug_on, "firmware_fpga_upg_write addr 0x%x len 0x%x failed ret %d.\n", - flash_addr, len, ret); - ret = -FW_SPI_FLASH_UPG_ERR; - goto exit; - } - - /* Read back the data and compare the correctness of the data */ - for (retry = 0; retry < FPGA_UPG_RETRY_TIMES; retry++) { /*retry 3 times*/ - mem_clear(rbuf, len); - ret = firmware_fpga_upg_read(upg_priv, flash_addr, rbuf, len); - res = memcmp(rbuf, buf + offset, len); - if (ret || res) { - usleep(1000); - continue; - } - break; - } - - if (ret) { - dbg_print(is_debug_on, "firmware fpga read offset 0x%x len 0x%x failed ret %d.\n", flash_addr, len, ret); - ret = -FW_SPI_FLASH_RD_ERR; - goto exit; - } - - if (res) { - dbg_print(is_debug_on, "firmware fpga rbuf wbuf not equal, len 0x%x, check failed.\n", len); - ret = -FW_SPI_FLASH_DATA_CMP_ERR; - goto exit; - } - offset += len; - } - - dbg_print(is_debug_on, "Update success.\n"); - return FIRMWARE_SUCCESS; -exit: - dbg_print(is_debug_on, "Update failed.\n"); - return FIRMWARE_FAILED; -} - -static int firmware_upgrade_do_spi_logic(firmware_spi_logic_upg_t *current_upg_priv, - unsigned char *buf, uint32_t size) -{ - int i, ret; - uint32_t retry; - - i = 0; - retry = FIRMWARE_SPI_LOGIC_UPG_RETRY_CNT; - - ret = 0; - while(i < retry) { - ret = firmware_upgreade_fpga_onetime(current_upg_priv, current_upg_priv->flash_base, buf, size); - if (ret) { - i++; - dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime size 0x%x failed ret %d.\n", size, ret); - continue; - } else { - dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime success.\n"); - return 0; - } - } - - return ret; -} - -/* - * firmware_upgrade_spi_logic_dev - * function: FPGA SPI FLASH Firmware upgrade handler function - * @fd: param[in] sysfs device descriptor - * @buf: param[in] Update data - * @size: param[in] Update data size - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_upgrade_spi_logic_dev(int fd, uint8_t *buf, uint32_t size, name_info_t *info) -{ - int ret; - firmware_spi_logic_upg_t current_upg_priv; - - if ((fd < 0) || (buf == NULL) || (info == NULL)) { - dbg_print(is_debug_on, "Error:firmware upgrade spi logic dev parameters failed.\n"); - return FIRMWARE_FAILED; - } - - /* Gets the current logical device information */ - mem_clear(¤t_upg_priv, sizeof(firmware_spi_logic_upg_t)); - ret = firmware_upgrade_get_spi_logic_info(fd, ¤t_upg_priv); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_get_spi_logic_info failed ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "current_upg_priv dev_path[%s] flash_base[0x%0x] ctrl_base[0x%0x]\n", - current_upg_priv.dev_path, current_upg_priv.flash_base, - current_upg_priv.ctrl_base); - - /* Enable upgrade access */ - ret = firmware_upgrade_spi_logic_init(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_init failed ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - /* Upgrade logic device */ - ret = firmware_upgrade_do_spi_logic(¤t_upg_priv, buf, size); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_do_spi_logic failed ret %d.\n", ret); - goto fail; - } - - /* disable upgrade access */ - ret = firmware_upgrade_spi_logic_finish(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); - } - - return FIRMWARE_SUCCESS; -fail: - /* disable upgrade access */ - ret = firmware_upgrade_spi_logic_finish(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); - } - - return FIRMWARE_FAILED; -} - -int firmware_fpga_upgrade_test(firmware_spi_logic_upg_t *current_upg_priv) -{ - int ret, i, j, num; - uint8_t *wbuf; - uint32_t retry; - - ret = FW_SPI_FLASH_RV_OK; - wbuf = (uint8_t *) malloc(current_upg_priv->test_size); - if (wbuf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory for test data buf, size=0x%x.\n", current_upg_priv->test_size); - ret = -FW_SPI_FLASH_NOT_SUPPORT_TEST; - goto exit; - } - mem_clear(wbuf, current_upg_priv->test_size); - /* Get random data */ - for (j = 0; j < current_upg_priv->test_size; j++) { - num = rand() % 256; - wbuf[j] = num & 0xff; - } - - i = 0; - retry = FIRMWARE_SPI_LOGIC_UPG_RETRY_CNT; - - ret = 0; - while(i < retry) { - ret = firmware_upgreade_fpga_onetime(current_upg_priv, current_upg_priv->test_base, wbuf, current_upg_priv->test_size); - if (ret) { - i++; - dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime test size 0x%x failed ret %d.\n", - current_upg_priv->test_size, ret); - continue; - } else { - dbg_print(is_debug_on, "firmware_upgreade_fpga_onetime test success.\n"); - break; - } - } - free(wbuf); -exit: - return ret; -} - -/* - * firmware_upgrade_spi_logic_dev_test - * function: FPGA SPI FLASH Firmware upgrade test handler function - * @fd: param[in] sysfs device descriptor - * @buf: param[in] Update data - * @size: param[in] Update data size - * @info: param[in] Upgrade file information - * return value : success--FIRMWARE_SUCCESS; fail--FIRMWARE_FAILED - */ -int firmware_upgrade_spi_logic_dev_test(int fd, name_info_t *info) -{ - int ret; - firmware_spi_logic_upg_t current_upg_priv; - - if ((fd < 0) || (info == NULL)) { - dbg_print(is_debug_on, "Error:firmware upgrade spi logic dev parameters failed.\n"); - return FIRMWARE_FAILED; - } - - /* Gets the current logical device information */ - mem_clear(¤t_upg_priv, sizeof(firmware_spi_logic_upg_t)); - ret = firmware_upgrade_get_spi_logic_info(fd, ¤t_upg_priv); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_get_spi_logic_info failed ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "current_upg_priv dev_path[%s] test_base[0x%0x] test_size[0x%x]\n", - current_upg_priv.dev_path, current_upg_priv.test_base, current_upg_priv.test_size); - if (current_upg_priv.test_size <= 0) { - dbg_print(is_debug_on, "Error: don't support flast test.\n"); - return FIRMWARE_NOT_SUPPORT; - } - - /* Enable upgrade access */ - ret = firmware_upgrade_spi_logic_init(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_init failed ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - /* Upgrade logic device */ - ret = firmware_fpga_upgrade_test(¤t_upg_priv); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_do_spi_logic failed ret %d.\n", ret); - goto fail; - } - - /* disable upgrade access */ - ret = firmware_upgrade_spi_logic_finish(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); - } - - return FIRMWARE_SUCCESS; -fail: - /* disable upgrade access */ - ret = firmware_upgrade_spi_logic_finish(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); - } - - return FIRMWARE_FAILED; -} - -static int firmware_upgreade_spi_logic_dump(firmware_spi_logic_upg_t *upg_priv, - uint32_t offset, uint8_t *buf, uint32_t size) -{ - int ret, i; - uint32_t addr, buf_page, retry, cnt, rd_len; - - buf_page = FFPGA_UPG_DATA_SIZE; /* read data by BUF SIZE each time */ - - cnt = size / FFPGA_UPG_DATA_SIZE; - if (size % FFPGA_UPG_DATA_SIZE) { - cnt++; - } - dbg_print(is_debug_on, "need read number of times:%d.\n", cnt); - - for (i = 0; i < cnt; i++) { - addr = offset + i * FFPGA_UPG_DATA_SIZE; - if (i == (cnt - 1)) { - /* last time read remain size */ - rd_len = size - buf_page * i; - } else { - /* each time read buf page size */ - rd_len = buf_page; - } - - for (retry = 0; retry < FPGA_UPG_RETRY_TIMES; retry++) { - ret = firmware_fpga_upg_read(upg_priv, addr, buf, rd_len); - if (ret < 0) { - dbg_print(is_debug_on, "addr:0x%x read %d time failed. ret %d\n", addr, retry, ret); - continue; - } - break; - } - - if (ret < 0) { - dbg_print(is_debug_on, "finally addr:0x%x read failed ret %d\n", addr, ret); - return FIRMWARE_FAILED; - } - - buf += rd_len; /* buf pointer offset rd_len */ - } - - return FIRMWARE_SUCCESS; -} - -static int firmware_fpga_dump_read(int fd, uint32_t offset, uint8_t *buf, uint32_t len) -{ - int ret; - firmware_spi_logic_upg_t current_upg_priv; - - if ((fd < 0) || (buf == NULL)) { - dbg_print(is_debug_on, "Error:firmware upgrade spi logic dev parameters failed.\n"); - return FIRMWARE_FAILED; - } - - /* Gets the current logical device information */ - mem_clear(¤t_upg_priv, sizeof(firmware_spi_logic_upg_t)); - ret = firmware_upgrade_get_spi_logic_info(fd, ¤t_upg_priv); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_get_spi_logic_info failed ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "current_upg_priv dev_path[%s] flash_base[0x%0x] ctrl_base[0x%0x]\n", - current_upg_priv.dev_path, current_upg_priv.flash_base, - current_upg_priv.ctrl_base); - - /* Enable upgrade access */ - ret = firmware_upgrade_spi_logic_init(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_init failed ret %d.\n", ret); - return FIRMWARE_FAILED; - } - - /* read logic device */ - ret = firmware_upgreade_spi_logic_dump(¤t_upg_priv, offset, buf, len); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_do_spi_logic failed ret %d.\n", ret); - goto fail; - } - - /* disable upgrade access */ - ret = firmware_upgrade_spi_logic_finish(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); - } - - return FIRMWARE_SUCCESS; - -fail: - /* disable upgrade access */ - ret = firmware_upgrade_spi_logic_finish(fd); - if (ret < 0) { - dbg_print(is_debug_on, "Error:firmware_upgrade_spi_logic_finish failed ret %d.\n", ret); - } - - return FIRMWARE_FAILED; -} - -int firmware_upgrade_spi_logic_dev_dump(char *dev_name, uint32_t offset, - uint32_t len, char *record_file) -{ - int ret, dev_fd, file_fd; - char save_file[FIRMWARE_LOGIC_DEV_NAME_LEN]; - uint8_t *buf; - - dev_fd = open(dev_name, O_RDWR); - if (dev_fd < 0) { - dbg_print(is_debug_on, "Error: Failed to open %s, errno:%d.\n", dev_name, errno); - return FIRMWARE_FAILED; - } - - dbg_print(is_debug_on, "open dev file %s succeeded.\n", dev_name); - - buf = (uint8_t *) malloc(len); - if (buf == NULL) { - dbg_print(is_debug_on, "Error: Failed to malloc memory read %s data.\n", dev_name); - ret = FIRMWARE_FAILED; - goto free_dev_fd; - } - - mem_clear(buf, len); - ret = firmware_fpga_dump_read(dev_fd, offset, buf, len); - if (ret < 0) { - dbg_print(is_debug_on, "addr 0x%x read 0x%x failed ret:%d\n", offset, len, ret); - goto free_data; - } - - dbg_print(is_debug_on, "dump data succeeded. offset:0x%x, len:0x%x\n", offset, len); - - if (strcmp(record_file, "print") != 0) { /* record dump data on 'record_file' */ - mem_clear(save_file, FIRMWARE_LOGIC_DEV_NAME_LEN); - strncpy(save_file, record_file, FIRMWARE_LOGIC_DEV_NAME_LEN - 1); - file_fd = open(save_file, O_RDWR|O_CREAT|O_TRUNC, S_IRWXG|S_IRWXU|S_IRWXO); - if (file_fd < 0) { - dbg_print(is_debug_on, "open file %s fail, errno:%d.\n", save_file, errno); - ret = -ENOENT; - goto free_data; - } - - dbg_print(is_debug_on, "open save file %s succeeded.\n", save_file); - - ret = write(file_fd, buf, len); - if (ret < 0) { - dbg_print(is_debug_on, "write failed (errno: %d).\n", errno); - goto free_file_fd; - } - dbg_print(is_debug_on, "write save file %s succeeded.\n", save_file); - ret = FIRMWARE_SUCCESS; - } else { /* print reg on terminal by format */ - firmware_upgrade_printf_reg((uint8_t*)buf, len, offset); - ret = FIRMWARE_SUCCESS; - goto free_data; - } - -free_file_fd: - close(file_fd); -free_data: - free(buf); -free_dev_fd: - close(dev_fd); - - return ret; -} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h deleted file mode 100644 index 32f820161e86..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/fw_upg_sysfs/fw_upg_spi_logic_dev.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef __FW_UPG_SPI_LOGIC_DEV_H__ -#define __FW_UPG_SPI_LOGIC_DEV_H__ - -#define FIRMWARE_FPGA_WORD_LEN (4) - -#define FIRMWARE_LOGIC_DEV_NAME_LEN (64) /* the macro definition needs to same as FIRMWARE_DEV_NAME_LEN in firmware_sysfs_upgrade.h */ -#define FIRMWARE_SPI_LOGIC_UPG_RETRY_CNT (10) -#define FIRMWARE_SPI_LOGIC_UPG_BUFF_SIZE (256) -#define FIRMWARE_SPI_LOGIC_SECTOR_SIZE (0x10000) /* One sector is 64Kk */ - -#define FIRMWARE_UPG_RETRY_SLEEP_TIME (10) /* 10us */ -#define FIRMWARE_UPG_RETRY_TIME_CNT (1000) -#define FPGA_UPG_WAIT_SPI_RETRY_CNT (100) -#define FPGA_UPG_WAIT_SPI_RETRY_SLEEP_TIME (1000 * 10) /* 10ms */ - -#define FIRMWARE_FPGA_UPG_RETRY_CNT (100) - -/* FPGA upgrades related instruction definitions */ -#define FPGA_UPG_INSTRUTION_SE (0xD8) -#define FPGA_UPG_INSTRUTION_RDSR (0x05) -#define FPGA_UPG_INSTRUTION_WREN (0x06) -#define FPGA_UPG_INSTRUTION_PP (0x02) -#define FPGA_UPG_INSTRUTION_FR (0x0B) -#define FPGA_UPG_INSTRUTION_BE (0xC7) -#define FPGA_UPG_STATUS_MASK (0x1) -#define FPGA_UPG_ACCESS_ENABLE (0x3) -#define FPGA_UPG_SPI_STATUS_MASK (0x1) -#define FFPGA_UPG_DATA_SIZE (256) - -#define FPGA_UPG_RETRY_TIMES (3) - -/* FPGA upgrades the offset of the associated register */ -#define FPGA_UPG_STATUS_REG (0x180) -#define FPGA_UPG_SPI_CTRL_REG (0x184) -#define FPGA_UPG_WR_FLASH_STATUS_REG (0x188) -#define FPGA_UPG_RD_FLASH_STATUS_REG (0x18C) -#define FPGA_UPG_INSTRUCTION_REG (0x190) -#define FPGA_UPG_ADDR_REG (0x194) -#define FPGA_UPG_LENGTH_REG (0x198) -#define FPGA_UPG_DEVICE_ID_REG (0x19C) -#define FPGA_UPG_DROP_REQ_NUM_REG (0x1A8) - -typedef struct firmware_spi_logic_info_s { - char logic_dev_name[FIRMWARE_LOGIC_DEV_NAME_LEN]; /* Logical device name */ - uint32_t flash_base; /* Flash Upgrade Address */ - uint32_t ctrl_base; /* SPI upgrade control register base address */ - uint32_t test_base; /* Test flash address */ - uint32_t test_size; /* Test flash size */ -} firmware_spi_logic_info_t; - -typedef struct firmware_spi_logic_upg_s { - char dev_path[FIRMWARE_LOGIC_DEV_NAME_LEN]; - uint32_t flash_base; /* Flash Upgrade Address */ - uint32_t ctrl_base; /* SPI upgrade control register base address */ - uint32_t status_reg; - uint32_t spi_ctrl_reg; - uint32_t wr_flash_status_reg; - uint32_t rd_flash_status_reg; - uint32_t instruction_reg; - uint32_t addr_reg; - uint32_t length_reg; - uint32_t device_id_reg; - uint32_t drop_reg_num_reg; - uint32_t test_base; /* Test flash address */ - uint32_t test_size; /* Test flash size */ -}firmware_spi_logic_upg_t; - -typedef enum firmware_spi_flash_rv_s { - FW_SPI_FLASH_RV_OK = 0, - FW_SPI_FLASH_STATUS_ERR, - FW_SPI_FLASH_BUSY, - FW_SPI_FLASH_SPI_BUSY, - FW_SPI_FLASH_WR_ENABLE_ERR, - FW_SPI_FLASH_ERASE_ADDR_ERR, - FW_SPI_FLASH_ERASE_SECTOR_ERR, - FW_SPI_FLASH_WR_ERR, - FW_SPI_FLASH_RD_ERR, - FW_SPI_FLASH_PARAM_ERR, - FW_SPI_FLASH_UPG_ERR, - FW_SPI_FLASH_WR_LENGTH_ERR, - FW_SPI_FLASH_WR_ADDR_ERR, - FW_SPI_FLASH_SET_ACCESS_ERR, - FW_SPI_FLASH_DATA_CMP_ERR, - FW_SPI_FLASH_GET_INFO_ERR, - FW_SPI_FLASH_NOT_SUPPORT_TEST, -} firmware_spi_flash_rv_t; - -int fpga_test_spi_logic_flash(int argc, char *argv[]); - -#endif /* End of __FW_UPG_SPI_LOGIC_DEV_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h deleted file mode 100644 index 17dd42c3ef77..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/debug.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * - * debug.h - * firmware upgrade debug switch control - */ - -#ifndef __FIRMWARE_UPGRADE_DEBUG_H__ -#define __FIRMWARE_UPGRADE_DEBUG_H__ -#include - -#define mem_clear(data, size) memset((data), 0, (size)) - -#define DEBUG_INFO_LEN 20 -#define DEBUG_FILE "/tmp/.firmware_upgrade_debug" -#define DEBUG_ON_ALL "3" -#define DEBUG_ON_INFO "1" -#define DEBUG_OFF_INFO "0" - -enum debug_s { - DEBUG_OFF = 0, /* off debug */ - DEBUG_APP_ON, /* open app debug */ - DEBUG_ALL_ON, /* open all debug */ - DEBUG_IGNORE, /* ignore debug */ -}; - -#define dbg_print(debug, fmt, arg...) \ - if (debug == DEBUG_APP_ON || debug == DEBUG_ALL_ON) \ - { do{printf(fmt,##arg);} while(0); } - -/* firmware upgrade debug switch */ -extern int firmware_upgrade_debug(void); -extern int is_debug_on; - -#endif /* End of __FIRMWARE_UPGRADE_DEBUG_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h deleted file mode 100644 index 581b2e969ec9..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/firmware_app.h +++ /dev/null @@ -1,172 +0,0 @@ -#ifndef __FIRMWARE_APP_H__ -#define __FIRMWARE_APP_H__ - -#include -#include -#include -#include -#include -#include - -#define ERR_FW_CHECK_CPLD_UPGRADE (-601) /* File validation error */ -#define ERR_FW_CHECK_FPGA_UPGRADE (-602) -#define ERR_FW_MATCH_CPLD_UPGRADE (-603) /* No matching upgrade file found */ -#define ERR_FW_MATCH_FPGA_UPGRADE (-604) -#define ERR_FW_SAMEVER_CPLD_UPGRADE (-605) /* the same version */ -#define ERR_FW_SAMEVER_FPGA_UPGRADE (-606) -#define ERR_FW_DO_CPLD_UPGRADE (-607) /* upgrade fail */ -#define ERR_FW_DO_FPGA_UPGRADE (-608) -#define ERR_FW_UPGRADE (-609) /* other fail */ -#define ERR_FW_CHECK_UPGRADE (-610) /* File validation error */ -#define ERR_FW_MATCH_UPGRADE (-611) /* No matching upgrade file found */ -#define ERR_FW_SAMEVER_UPGRADE (-612) /* the same version */ -#define ERR_FW_DO_UPGRADE (-613) /* upgrade fail */ -#define ERR_FW_DO_UPGRADE_NOT_SUPPORT (-614) /* upgrade fail */ - -#define FIRMWARE_NOT_SUPPORT (-2) -#define FIRMWARE_FAILED (-1) -#define FIRMWARE_SUCCESS (0) - -#define FIRMWARE_ACTION_CHECK 0 -#define FIRMWARE_ACTION_MATCH 1 -#define FIRMWARE_ACTION_VERCHECK 2 -#define FIRMWARE_ACTION_UPGRADE 3 -#define FIRMWARE_ACTION_SUPPORT 4 - -#define FIRMWARE_UPGRADE_RETRY_CNT (10) -#define FIRMWARE_NAME_LEN (48) -#define FIRMWARE_SLOT_MAX_NUM (16) /* Maximum number of links supported by board cards */ - -/* Upgrade file headers */ -#define MAX_DEV_NUM 10 /* Maximum number of devices to which the upgrade file is applicable */ -#define INSMOD_DRIVER 1 /* insmod driver */ -#define RMMOD_DRIVER 0 /* rmmod driver */ -#define MAX_HEADER_SIZE 1000 /* Upgrade the maximum length of file header information */ -#define MAX_HEADER_KV_SIZE 64 /* Upgrade the maximum length of the file header key value */ - -/* Upgrade file header key values */ -#define FILEHEADER_DEVTYPE "DEVTYPE" -#define FILEHEADER_SUBTYPE "SUBTYPE" -#define FILEHEADER_TYPE "TYPE" -#define FILEHEADER_CHAIN "CHAIN" -#define FILEHEADER_CHIPNAME "CHIPNAME" -#define FILEHEADER_VERSION "VERSION" -#define FILEHEADER_FILETYPE "FILETYPE" -#define FILEHEADER_CRC "CRC" - -#define FIRMWARE_CPLD_NAME "cpld" -#define FIRMWARE_FPGA_NAME "fpga" - -/* ioctl publi command, the same as driver */ -#define FIRMWARE_COMMON_TYPE 'C' -#define FIRMWARE_GET_CHIPNAME _IOR(FIRMWARE_COMMON_TYPE, 0, char) /* get the chip name */ -#define FIRMWARE_GET_VERSION _IOR(FIRMWARE_COMMON_TYPE, 2, int) /* get version */ -#define FIRMWARE_SET_DEBUG_ON _IOW(FIRMWARE_COMMON_TYPE, 3, int) /* debug on */ -#define FIRMWARE_SET_DEBUG_OFF _IOW(FIRMWARE_COMMON_TYPE, 4, int) /* debug off */ - -/* firmware cpld driver ioctl command, the same as "firmware_driver\firmware_driver\include\firmware.h" */ -#define FIRMWARE_TYPE 'J' -#define FIRMWARE_PROGRAM _IOW(FIRMWARE_TYPE, 1, char) /* firmware upgrade ISC */ -#define FIRMWARE_READ_CHIP _IOR(FIRMWARE_TYPE, 5, int) /* read the contents of the chip */ -#define FIRMWARE_PROGRAM_JBI _IOW(FIRMWARE_TYPE, 6, char) /* firmware upgrade JBI */ - -/* firmware cpld ispvme driver ioctl command, the same as "firmware_driver\firmware_driver_ispvme\include\firmware_ispvme.h" */ -#define FIRMWARE_VME_TYPE 'V' -#define FIRMWARE_JTAG_TDI _IOR(FIRMWARE_VME_TYPE, 0, char) -#define FIRMWARE_JTAG_TDO _IOR(FIRMWARE_VME_TYPE, 1, char) -#define FIRMWARE_JTAG_TCK _IOR(FIRMWARE_VME_TYPE, 2, char) -#define FIRMWARE_JTAG_TMS _IOR(FIRMWARE_VME_TYPE, 3, char) -#define FIRMWARE_JTAG_EN _IOR(FIRMWARE_VME_TYPE, 4, char) -#define FIRMWARE_JTAG_INIT _IOR(FIRMWARE_VME_TYPE, 7, char) /* enable upgrade access */ -#define FIRMWARE_JTAG_FINISH _IOR(FIRMWARE_VME_TYPE, 8, char) /* disable upgrade access */ - -/* firmware sysfs driver ioctl command, the same as "firmware_driver\firmware_driver_sysfs\include\firmware_sysfs.h" */ -#define FIRMWARE_SYSFS_TYPE 'S' -#define FIRMWARE_SYSFS_INIT _IOR(FIRMWARE_SYSFS_TYPE, 0, char) /* enable upgrade access */ -#define FIRMWARE_SYSFS_FINISH _IOR(FIRMWARE_SYSFS_TYPE, 1, char) /* disable upgrade access */ -#define FIRMWARE_SYSFS_SPI_INFO _IOR(FIRMWARE_SYSFS_TYPE, 2, char) /* spi flash upgrade */ -#define FIRMWARE_SYSFS_DEV_FILE_INFO _IOR(FIRMWARE_SYSFS_TYPE, 3, char) /* sysfs upgrade */ -#define FIRMWARE_SYSFS_MTD_INFO _IOR(FIRMWARE_SYSFS_TYPE, 4, char) /* sysfs mtd upgrade */ - -/* VME file, used to distinguish the JTAG signal that needs to operate */ -#define JTAG_TDO 1 -#define JTAG_TCK 2 -#define JTAG_TDI 3 -#define JTAG_TMS 4 -#define JTAG_ENABLE 5 -#define JTAG_TRST 6 - -typedef struct name_info_s { - int card_type[MAX_DEV_NUM]; /* main board type */ - int sub_type[MAX_DEV_NUM]; /* sub board type */ - int type; /* device type */ - int chain; /* chain num */ - char chip_name[FIRMWARE_NAME_LEN]; /* chip name */ - char version[FIRMWARE_NAME_LEN]; /* version */ - int file_type; /* file type */ - unsigned int crc32; /* 4 byte CRC values */ -} name_info_t; - -typedef struct cmd_info_s { - uint32_t size; - void *data; -} cmd_info_t; - -enum firmware_type_s { - FIRMWARE_UNDEF_TYPE = 0, - FIRMWARE_CPLD, - FIRMWARE_FPGA, - FIRMWARE_SYSFS, - FIRMWARE_OTHER, -}; - -typedef enum firmware_file_type_s { - FIRMWARE_UNDEF_FILE_TYPE = 0, - FIRMWARE_VME, /* ispvme cpld, GPIO simulates JTAG */ - FIRMWARE_ISC, /* cpld, GPIO simulates JTAG */ - FIRMWARE_JBI, - FIRMWARE_SPI_LOGIC_DEV, /* FPGA SPI upgrde register upgrade flash */ - FIRMWARE_SYSFS_DEV, /* write file upgrade eeprom */ - FIRMWARE_MTD, /* upgrade mtd device */ - FIRMWARE_NONE, -} firmware_file_type_t; - -typedef struct firmware_file_name_s { - char firmware_file_name_str[MAX_HEADER_KV_SIZE]; - int firmware_file_type; -} firmware_file_name_t; - -extern int header_offset; - -/* CRC32 calculation */ -extern unsigned long crc32(unsigned long crc, const unsigned char *buf, unsigned int len); -/* VME file upgrade */ -extern int firmware_upgrade_ispvme(int file_fd, char *upgrade_file_name, name_info_t *info); -extern void writePort(unsigned char a_ucPins, unsigned char a_ucValue); -extern unsigned char readPort(); -extern void sclock(); -extern void ispVMStateMachine(signed char NextState); - -/* spi flash upgrade */ -extern int firmware_upgrade_spi_logic_dev(int fd, uint8_t *buf, uint32_t size, name_info_t *info); -/* spi flash upgrade test*/ -extern int firmware_upgrade_spi_logic_dev_test(int fd, name_info_t *info); -/* spi flash data print*/ -extern int firmware_upgrade_spi_logic_dev_dump(char *dev_name, uint32_t offset, uint32_t size, char *record_file); - -/* sysfs upgrade */ -extern int firmware_upgrade_sysfs(int fd, uint8_t *buf, uint32_t size, name_info_t *info); -/* sysfs upgrade test*/ -extern int firmware_upgrade_sysfs_test(int fd, name_info_t *info); - -/* isc upgrade */ -extern int firmware_upgrade_jtag(int fd, uint8_t *buf, uint32_t size, name_info_t *info); -/* isc upgrade test */ -extern int firmware_upgrade_jtag_test(int fd, uint8_t *buf, uint32_t size, name_info_t *info); - -/* mtd upgrade */ -extern int firmware_upgrade_mtd(int fd, uint8_t *buf, uint32_t size, name_info_t *info); -/* mtd upgrade test */ -extern int firmware_upgrade_mtd_test(int fd, name_info_t *info); - -#endif /* End of __FIRMWARE_APP_H__ */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h b/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h deleted file mode 100644 index ae9d713ff86c..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/app/firmware_upgrade/firmware_upgrade/include/vmopcode.h +++ /dev/null @@ -1,192 +0,0 @@ -/*************************************************************** -* -* This is the include file for Lattice Semiconductor's ispVM -* Embedded software application. -* -***************************************************************/ - -/*************************************************************** -* -* VME version. -* -* History: -* -***************************************************************/ - -#define VME_VERSION_NUMBER "12.2" - -/*************************************************************** -* -* Maximum declarations. -* -***************************************************************/ - -#define VMEHEXMAX 60000L /* The hex file is split 60K per file. */ -#define SCANMAX 64000L /* The maximum SDR/SIR burst. */ - -/*************************************************************** -* -* Supported JTAG state transitions. -* -***************************************************************/ - -#define RESET 0x00 -#define IDLE 0x01 -#define IRPAUSE 0x02 -#define DRPAUSE 0x03 -#define SHIFTIR 0x04 -#define SHIFTDR 0x05 -#define DRCAPTURE 0x06 - -/*************************************************************** -* -* Flow control register bit definitions. A set bit indicates -* that the register currently exhibits the corresponding mode. -* -***************************************************************/ - -#define INTEL_PRGM 0x0001 /* Intelligent programming is in effect. */ -#define CASCADE 0x0002 /* Currently splitting large SDR. */ -#define REPEATLOOP 0x0008 /* Currently executing a repeat loop. */ -#define SHIFTRIGHT 0x0080 /* The next data stream needs a right shift. */ -#define SHIFTLEFT 0x0100 /* The next data stream needs a left shift. */ -#define VERIFYUES 0x0200 /* Continue if fail is in effect. */ - -/*************************************************************** -* -* DataType register bit definitions. A set bit indicates -* that the register currently holds the corresponding type of data. -* -***************************************************************/ - -#define EXPRESS 0x0001 /* Simultaneous program and verify. */ -#define SIR_DATA 0x0002 /* SIR is the active SVF command. */ -#define SDR_DATA 0x0004 /* SDR is the active SVF command. */ -#define COMPRESS 0x0008 /* Data is compressed. */ -#define TDI_DATA 0x0010 /* TDI data is present. */ -#define TDO_DATA 0x0020 /* TDO data is present. */ -#define MASK_DATA 0x0040 /* MASK data is present. */ -#define HEAP_IN 0x0080 /* Data is from the heap. */ -#define LHEAP_IN 0x0200 /* Data is from intel data buffer. */ -#define VARIABLE 0x0400 /* Data is from a declared variable. */ -#define CRC_DATA 0x0800 /* CRC data is pressent. */ -#define CMASK_DATA 0x1000 /* CMASK data is pressent. */ -#define RMASK_DATA 0x2000 /* RMASK data is pressent. */ -#define READ_DATA 0x4000 /* READ data is pressent. */ -#define DMASK_DATA 0x8000 /* DMASK data is pressent. */ - -/*************************************************************** -* -* Pin opcodes. -* -***************************************************************/ - -#define signalENABLE 0x1C /* ispENABLE pin. */ -#define signalTMS 0x1D /* TMS pin. */ -#define signalTCK 0x1E /* TCK pin. */ -#define signalTDI 0x1F /* TDI pin. */ -#define signalTRST 0x20 /* TRST pin. */ - -/*************************************************************** -* -* Supported vendors. -* -***************************************************************/ - -#define VENDOR 0x56 -#define LATTICE 0x01 -#define ALTERA 0x02 -#define XILINX 0x03 - -/*************************************************************** -* -* Opcode definitions. -* -* Note: opcodes must be unique. -* -***************************************************************/ - -#define ENDDATA 0x00 /* The end of the current SDR data stream. */ -#define RUNTEST 0x01 /* The duration to stay at the stable state. */ -#define ENDDR 0x02 /* The stable state after SDR. */ -#define ENDIR 0x03 /* The stable state after SIR. */ -#define ENDSTATE 0x04 /* The stable state after RUNTEST. */ -#define TRST 0x05 /* Assert the TRST pin. */ -#define HIR 0x06 /* The sum of the IR bits of the leading devices. */ -#define TIR 0x07 /* The sum of the IR bits of the trailing devices. */ -#define HDR 0x08 /* The number of leading devices. */ -#define TDR 0x09 /* The number of trailing devices. */ -#define ispEN 0x0A /* Assert the ispEN pin. */ -#define FREQUENCY 0x0B /* The maximum clock rate to run the JTAG state machine. */ -#define STATE 0x10 /* Move to the next stable state. */ -#define SIR 0x11 /* The instruction stream follows. */ -#define SDR 0x12 /* The data stream follows. */ -#define TDI 0x13 /* The following data stream feeds into the device. */ -#define TDO 0x14 /* The following data stream is compared against the device. */ -#define MASK 0x15 /* The following data stream is used as mask. */ -#define XSDR 0x16 /* The following data stream is for simultaneous program and verify. */ -#define XTDI 0x17 /* The following data stream is for shift in only. It must be stored for the next XSDR. */ -#define XTDO 0x18 /* There is not data stream. The data stream was stored from the previous XTDI. */ -#define MEM 0x19 /* The maximum memory needed to allocate in order hold one row of data. */ -#define WAIT 0x1A /* The duration of delay to observe. */ -#define TCK 0x1B /* The number of TCK pulses. */ -#define SHR 0x23 /* Set the flow control register for right shift. */ -#define SHL 0x24 /* Set the flow control register for left shift. */ -#define HEAP 0x32 /* The memory size needed to hold one loop. */ -#define REPEAT 0x33 /* The beginning of the loop. */ -#define LEFTPAREN 0x35 /* The beginning of data following the loop. */ -#define VAR 0x55 /* Plac holder for loop data. */ -#define SEC 0x1C /* The delay time in seconds that must be observed. */ -#define SMASK 0x1D /* The mask for TDI data. */ -#define MAX 0x1E /* The absolute maximum wait time. */ -#define ON 0x1F /* Assert the targeted pin. */ -#define OFF 0x20 /* Dis-assert the targeted pin. */ -#define SETFLOW 0x30 /* Change the flow control register. */ -#define RESETFLOW 0x31 /* Clear the flow control register. */ -#define CRC 0x47 /* The following data stream is used for CRC calculation. */ -#define CMASK 0x48 /* The following data stream is used as mask for CRC calculation. */ -#define RMASK 0x49 /* The following data stream is used as mask for read and save. */ -#define READ 0x50 /* The following data stream is used for read and save. */ -#define ENDLOOP 0x59 /* The end of the repeat loop. */ -#define SECUREHEAP 0x60 /* Used to secure the HEAP opcode. */ -#define VUES 0x61 /* Support continue if fail. */ -#define DMASK 0x62 /* The following data stream is used for dynamic I/O. */ -#define COMMENT 0x63 /* Support SVF comments in the VME file. */ -#define HEADER 0x64 /* Support header in VME file. */ -#define FILE_CRC 0x65 /* Support crc-protected VME file. */ -#define LCOUNT 0x66 /* Support intelligent programming. */ -#define LDELAY 0x67 /* Support intelligent programming. */ -#define LSDR 0x68 /* Support intelligent programming. */ -#define LHEAP 0x69 /* Memory needed to hold intelligent data buffer */ -#define CONTINUE 0x70 /* Allow continuation. */ -#define LVDS 0x71 /* Support LVDS. */ -#define ENDVME 0x7F /* End of the VME file. */ -#define HIGH 0x80 /* Assert the targeted pin. */ -#define LOW 0x81 /* Dis-assert the targeted pin. */ -#define ENDFILE 0xFF /* End of file. */ - -/*************************************************************** -* -* ispVM Embedded Return Codes. -* -***************************************************************/ - -#define VME_VERIFICATION_FAILURE -1 -#define VME_FILE_READ_FAILURE -2 -#define VME_VERSION_FAILURE -3 -#define VME_INVALID_FILE -4 -#define VME_ARGUMENT_FAILURE -5 -#define VME_CRC_FAILURE -6 - -/*************************************************************** -* -* Type definitions. -* -***************************************************************/ - -/* Support LVDS */ -typedef struct { - unsigned short usPositiveIndex; - unsigned short usNegativeIndex; - unsigned char ucUpdate; -} LVDSPair; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py index 6ff731fa7eb2..3bb46b286998 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/openloop.py @@ -56,6 +56,9 @@ def linear_cacl(self, temp): pwm_max = openloop_para["pwm_max"] flag = openloop_para["flag"] + openloop_debug("linear openloop: flag: %s, k: %s, tin_min: %s, pwm_min: 0x%x, pwm_max: 0x%x" + % (flag, K, tin_min, pwm_min, pwm_max)) + if flag != 1: openloop_debug("linear openloop: flag == 0") return None @@ -87,6 +90,9 @@ def curve_cacl(self, temp): pwm_max = openloop_para["pwm_max"] flag = openloop_para["flag"] + openloop_debug("curve openloop: flag: %s, a: %s, b: %s, c: %s, tin_min: %s, pwm_min: 0x%x, pwm_max: 0x%x" + % (flag, a, b, c, tin_min, pwm_min, pwm_max)) + if flag != 1: openloop_debug("curve openloop: flag == 0") return None diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py index c33c1df33b4e..25c2069fea66 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/algorithm/pid.py @@ -76,6 +76,9 @@ def cacl(self, last_pwm, name, current_temp): pwm_max = pid_para["pwm_max"] flag = pid_para["flag"] + pid_debug("%s pid para: flag: %s, speed_type: %s, Kp: %s, Ki: %s, Kd: %s, target: %s, pwm_min: 0x%x, pwm_max: 0x%x" + % (name, flag, speed_type, Kp, Ki, Kd, target, pwm_min, pwm_max)) + if flag != 1: pid_debug("%s pid flag == 0" % name) return None diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/cust_fru.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/cust_fru.py new file mode 100644 index 000000000000..940c722ce467 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/eepromutil/cust_fru.py @@ -0,0 +1,135 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +import sys +import os + + +class CustFruException(Exception): + def __init__(self, message='custfrueerror', code=-100): + err = 'errcode: {0} message:{1}'.format(code, message) + Exception.__init__(self, err) + self.code = code + self.message = message + + +class CustFru(): + MAGIC_HEAD_INFO = 0x7a + + _CUST_MAGIC_OFFSET = 0 + _CUST_MAGIC_LEN = 1 + _CUST_VERSION_OFFSET = 1 + _CUST_VERSION_LEN = 6 + _CUST_CRC_OFFSET = 7 + _CUST_CRC_LEN = 1 + _CUST_PRODUCT_NAME_OFFSET = 10 + _CUST_PRODUCT_NAME_LEN = 17 + _CUST_MANUFACTURER_OFFSET = 27 + _CUST_MANUFACTURER_LEN = 7 + _CUST_SERIAL_NUMBER_OFFSET = 34 + _CUST_SERIAL_NUMBER_LEN = 25 + _CUST_INPUT_TYPE_OFFSET = 78 + _CUST_INPUT_TYPE_LEN = 2 + _CUST_INPUT_OFFSET = 86 + _CUST_INPUT_LEN = 15 + _CUST_OUTPUT_OFFSET = 108 + _CUST_OUTPUT_LEN = 11 + _CUST_POWER_OFFSET = 200 + _CUST_POWER_LEN = 10 + _CUST_MANUFACTURER_DATE_OFFSET = 210 + _CUST_MANUFACTURER_DATE_LEN = 3 + + def __init__(self): + self.magic = "" + self.version = "" + self.crc = "" + self.product_name = "" + self.manufacturer = "" + self.serial_number = "" + self.input_type = "" + self.input = "" + self.output = "" + self.power = "" + self.manufacturer_date = "" + + def checksum(self, v): + result = 0 + for item in v: + result += ord(item) + return (result & 0xff) + + def decode(self, e2): + # header + e2_index = 0 + head = ord(e2[0]) + if head != self.MAGIC_HEAD_INFO: + raise CustFruException("Customization fru eeprom head info error, head:0x%x" % head, -10) + self.magic = "0x%02x" % self.MAGIC_HEAD_INFO + + # version + version = "%s" % (e2[self._CUST_VERSION_OFFSET:self._CUST_VERSION_OFFSET + self._CUST_VERSION_LEN]) + self.version = version.replace("\xff", "").strip() + + # crc + crc_calc = self.checksum(e2[0:self._CUST_CRC_OFFSET]) + if crc_calc != ord(e2[self._CUST_CRC_OFFSET]): + raise CustFruException("Customization fru eeprom crc check error, calc: 0x%x, read: 0x%x" % (crc_calc, ord(e2[self._CUST_CRC_OFFSET])), -10) + self.crc = crc_calc + + # Product Name + product_name = "%s" % (e2[self._CUST_PRODUCT_NAME_OFFSET:self._CUST_PRODUCT_NAME_OFFSET + self._CUST_PRODUCT_NAME_LEN]) + self.product_name = product_name.replace("\xff", "").strip() + + # manufacturer + manufacturer = "%s" % (e2[self._CUST_MANUFACTURER_OFFSET:self._CUST_MANUFACTURER_OFFSET + self._CUST_MANUFACTURER_LEN]) + self.manufacturer = manufacturer.strip() + + # serial_number + serial_number = "%s" % (e2[self._CUST_SERIAL_NUMBER_OFFSET:self._CUST_SERIAL_NUMBER_OFFSET + self._CUST_SERIAL_NUMBER_LEN]) + self.serial_number = serial_number.strip() + + # input_type + input_type = "%s" % (e2[self._CUST_INPUT_TYPE_OFFSET:self._CUST_INPUT_TYPE_OFFSET + self._CUST_INPUT_TYPE_LEN]) + self.input_type = input_type.strip() + + # input + input = "%s" % (e2[self._CUST_INPUT_OFFSET:self._CUST_INPUT_OFFSET + self._CUST_INPUT_LEN]) + self.input = input.strip() + + # output + output = "%s" % (e2[self._CUST_OUTPUT_OFFSET:self._CUST_OUTPUT_OFFSET + self._CUST_OUTPUT_LEN]) + self.output = output.strip() + + # power + power = "%s" % (e2[self._CUST_POWER_OFFSET:self._CUST_POWER_OFFSET + self._CUST_POWER_LEN]) + self.power = power.replace("\xff", "").strip() + + # manufacturer_date + manufacturer_year = ord(e2[self._CUST_MANUFACTURER_DATE_OFFSET]) + 2000 + manufacturer_month = ord(e2[self._CUST_MANUFACTURER_DATE_OFFSET + 1]) + manufacturer_day = ord(e2[self._CUST_MANUFACTURER_DATE_OFFSET + 2]) + self.manufacturer_date = "%04d-%02d-%02d" % (manufacturer_year, manufacturer_month, manufacturer_day) + + return + + + def __str__(self): + formatstr = "Version : %s \n" \ + "Product Name : %s \n" \ + "Manufacturer : %s \n" \ + "Serial Number : %s \n" \ + "AC/DC Power Module : %s \n" \ + "INPUT : %s \n" \ + "OUTPUT : %s \n" \ + "POWER : %s \n" \ + "Manufacturer Date : %s \n" + str_tmp = formatstr % (self.version, + self.product_name, + self.manufacturer, + self.serial_number, + self.input_type, + self.input, + self.output, + self.power, + self.manufacturer_date) + return str_tmp.replace("\x00","") + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py index 2b8f85c663db..001b4ee239bf 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/devicebase.py @@ -215,6 +215,9 @@ def get_value(self, config): if ret: return False, ("cmd write exec %s failed, log: %s" % (cmd, log)) return True, log + if way == 'config': + value = config.get("value") + return True, value raise Exception("cannot found way deal") def devfile_read(self, loc, offset, length): diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py index 1424c14a4a94..f7737ab32f51 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/fan.py @@ -256,8 +256,8 @@ def get_rotor_byname(self, rotor_index): def get_presence(self): ret, val = self.get_value(self.present) - if ret is False or val is None: - return -1 + if ret is False or val is None or val == "no_support" or val == "NA": + return False if isinstance(val, str): value = int(val, 16) else: diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py index d283a50200be..38be03b22a25 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/interface.py @@ -185,6 +185,12 @@ def get_psu_presence(self, psu_name): return -1 return psu.present + def get_psu_fan_number(self, psu_name): + psu = self.chas.get_psu_byname(psu_name) + if psu is None: + return -1 + return psu.PsuFanNumber + def get_psu_fru_info(self, psu_name): ''' { @@ -216,7 +222,10 @@ def get_psu_input_output_status(self, psu_name): if psu is None: return -1 psu.InputsCurrent.Value # just for clear faults - if (psu.InputStatus is True) and (psu.OutputStatus is True): + if psu.InputStatus is True and psu.OutputStatus is True: + return True + # only has outputstatus + if psu.InputStatus is None and psu.OutputStatus is True: return True return False @@ -246,6 +255,9 @@ def get_psu_status(self, psu_name): if psu is None: return -1 + if psu.get_threshold_by_model == 1: + psu.get_fru_info() + dic = collections.OrderedDict() # psu.get_Temperature() temp_dict = collections.OrderedDict() @@ -327,7 +339,8 @@ def get_psu_power_status(self, psu_name): psu = self.chas.get_psu_byname(psu_name) if psu is None: return -1 - + if psu.get_threshold_by_model == 1: + psu.get_fru_info() dic = collections.OrderedDict() inputdic = collections.OrderedDict() Outputsdic = collections.OrderedDict() @@ -857,8 +870,13 @@ def get_dcdc_all_info(self): tmp = dcdc.sensor.Value if tmp is not None: dicttmp['Value'] = tmp + if tmp > dicttmp['Max'] or tmp < dicttmp['Min']: + dicttmp["Status"] = "NOT OK" + else: + dicttmp["Status"] = "OK" else: dicttmp['Value'] = self.error_ret + dicttmp["Status"] = "NOT OK" dicttmp['Unit'] = dcdc.sensor.Unit val_list[sensorname] = dicttmp return val_list diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py index e7db0cdcca8b..a5a4fea1792b 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/psu.py @@ -6,6 +6,7 @@ # ####################################################### from eepromutil.fru import ipmifru +from eepromutil.cust_fru import CustFru from plat_hal.devicebase import devicebase from plat_hal.sensor import sensor @@ -33,6 +34,7 @@ class psu(devicebase): __Temperature = None __FanSpeedMin = None __FanSpeedMax = None + __PsuFanNumber = None __FanSpeedTolerance = None __InputsVoltage_config = None __InputsCurrent_config = None @@ -60,30 +62,33 @@ class psu(devicebase): def __init__(self, conf=None): self.pmbus = conf.get("pmbusloc", None) self.e2loc = conf.get("e2loc", None) + self.e2_type = conf.get('e2_type', "fru") self.__presentconfig = conf.get("present", None) self.name = conf.get("name", None) + self.get_threshold_by_model = conf.get("get_threshold_by_model", 0) self.AirFlowconifg = conf.get("airflow", None) self.psu_display_name_conifg = conf.get("psu_display_name", None) self.psu_not_present_pwm = conf.get("psu_not_present_pwm", 100) self.Temperature_config = conf.get("Temperature", None) - self.Temperature = sensor(self.Temperature_config) + self.Temperature = sensor(self.Temperature_config, self.get_psu_model) + self.PsuFanNumber = conf.get('psu_fan_number', 1) self.FanSpeedTolerance = conf.get('psu_fan_tolerance', 30) self.FanSpeed_config = conf.get("FanSpeed", None) - self.FanSpeed = sensor(self.FanSpeed_config) + self.FanSpeed = sensor(self.FanSpeed_config, self.get_psu_model) self.__InputsVoltage_config = conf.get("InputsVoltage", None) self.generate_psu_input_vol(self.__InputsVoltage_config) self.__InputsCurrent_config = conf.get("InputsCurrent", None) - self.InputsCurrent = sensor(self.__InputsCurrent_config) + self.InputsCurrent = sensor(self.__InputsCurrent_config, self.get_psu_model) self.__InputsPower_config = conf.get("InputsPower", None) - self.InputsPower = sensor(self.__InputsPower_config) + self.InputsPower = sensor(self.__InputsPower_config, self.get_psu_model) self.__OutputsVoltage_config = conf.get("OutputsVoltage", None) - self.OutputsVoltage = sensor(self.__OutputsVoltage_config) + self.OutputsVoltage = sensor(self.__OutputsVoltage_config, self.get_psu_model) self.__OutputsCurrent_config = conf.get("OutputsCurrent", None) - self.OutputsCurrent = sensor(self.__OutputsCurrent_config) + self.OutputsCurrent = sensor(self.__OutputsCurrent_config, self.get_psu_model) self.__OutputsPower_config = conf.get("OutputsPower", None) - self.OutputsPower = sensor(self.__OutputsPower_config) + self.OutputsPower = sensor(self.__OutputsPower_config, self.get_psu_model) self.__InputStatus_config = conf.get("InputsStatus", None) self.__OutputStatus_config = conf.get("OutputsStatus", None) @@ -95,10 +100,17 @@ def __init__(self, conf=None): self.__TempStatus_config = conf.get("TempStatus", None) self.__FanStatus_config = conf.get("FanStatus", None) + def get_psu_model(self): + if self.productPartModelName is None: + ret = self.get_fru_info() + if ret is False: + return None + return self.productPartModelName + def generate_psu_input_vol(self, config): tmp = {} for (key, item) in config.items(): - tmp.setdefault(key, sensor(item)) + tmp.setdefault(key, sensor(item, self.get_psu_model)) self.__InputsVoltage = tmp def get_psu_sensor_by_name(self, psutype): @@ -158,14 +170,21 @@ def OutputsPower(self, val): @property def InputStatus(self): + if self.__InputStatus_config is None: + return None if self.present is False: self.__InputStatus = False else: ret, val = self.get_value(self.__InputStatus_config) mask = self.__InputStatus_config.get("mask") if ret is True: - ttt = val & mask - if ttt == 0: + if isinstance(val, str): + value = int(val, 16) + else: + value = val + ttt = value & mask + okval = self.__InputStatus_config.get("okval", 0) + if ttt == okval: self.__InputStatus = True else: self.__InputStatus = False @@ -187,8 +206,13 @@ def TempStatus(self): ret, val = self.get_value(self.__TempStatus_config) mask = self.__TempStatus_config.get("mask") if ret is True: - ttt = val & mask - if ttt == 0: + if isinstance(val, str): + value = int(val, 16) + else: + value = val + ttt = value & mask + okval = self.__TempStatus_config.get("okval", 0) + if ttt == okval: self.__TempStatus = True else: self.__TempStatus = False @@ -210,8 +234,13 @@ def FanStatus(self): ret, val = self.get_value(self.__FanStatus_config) mask = self.__FanStatus_config.get("mask") if ret is True: - ttt = val & mask - if ttt == 0: + if isinstance(val, str): + value = int(val, 16) + else: + value = val + ttt = value & mask + okval = self.__FanStatus_config.get("okval", 0) + if ttt == okval: self.__FanStatus = True else: self.__FanStatus = False @@ -223,9 +252,8 @@ def FanStatus(self): def FanStatus(self, val): self.__FanStatus = val - @property - def InputsType(self): - psutypedecode = self.__InputsType_config.get('psutypedecode', None) + def get_input_type_pmbus(self): + psutypedecode = self.__InputsType_config.get('psutypedecode', {}) if self.present is False: self.__InputsType = psutypedecode.get(0x00) else: @@ -239,6 +267,30 @@ def InputsType(self): self.__InputsType = psutypedecode.get(0x00) return self.__InputsType + def get_input_type_fru(self): + self.__InputsType = 'N/A' + if self.productPartModelName is None: + ret = self.get_fru_info() + if ret is False: + return self.__InputsType + psutypedecode = self.__InputsType_config.get('psutypedecode', {}) + for key, value in psutypedecode.items(): + if self.productPartModelName in value: + self.__InputsType = key + return self.__InputsType + + @property + def InputsType(self): + gettype = self.__InputsType_config.get('gettype', "pmbus") + if gettype == "pmbus": + return self.get_input_type_pmbus() + + if gettype == "fru": + return self.get_input_type_fru() + + self.__InputsType = 'N/A' + return self.__InputsType + @InputsType.setter def InputsType(self, val): self.__InputsType = val @@ -259,6 +311,14 @@ def FanSpeedMax(self): def FanSpeedMax(self, val): self.__FanSpeedMax = val + @property + def PsuFanNumber(self): + return self.__PsuFanNumber + + @PsuFanNumber.setter + def PsuFanNumber(self, val): + self.__PsuFanNumber = val + @property def FanSpeedTolerance(self): return self.__FanSpeedTolerance @@ -269,14 +329,21 @@ def FanSpeedTolerance(self, val): @property def OutputStatus(self): + if self.__OutputStatus_config is None: + return None if self.present is False: self.__OutputStatus = False else: ret, val = self.get_value(self.__OutputStatus_config) mask = self.__OutputStatus_config.get("mask") if ret is True: - ttt = val & mask - if ttt == 0: + if isinstance(val, str): + value = int(val, 16) + else: + value = val + ttt = value & mask + okval = self.__OutputStatus_config.get("okval", 0) + if ttt == okval: self.__OutputStatus = True else: self.__OutputStatus = False @@ -371,7 +438,7 @@ def psu_not_present_pwm(self, val): @property def present(self): ret, val = self.get_value(self.__presentconfig) - if ret is False or val is None: + if ret is False or val is None or val == "no_support" or val == "NA": return False mask = self.__presentconfig.get("mask") if isinstance(val, str): @@ -476,6 +543,8 @@ def __str__(self): return tmpstr def get_fan_speed_pwm(self): + if self.pmbus is None: + return None if self.present is False: return self.psu_not_present_pwm selfconfig = {} @@ -496,6 +565,10 @@ def set_fan_speed_pwm(self, pwm): ''' if self.present is False: return None + + if self.pmbus is None: + return None + if 0 <= pwm <= 100: # enable duty first selfconfig = {} @@ -559,13 +632,44 @@ def get_fru_info_by_decode(self): return False return True + def get_custfru_info_by_decode(self): + try: + eeprom = self.get_eeprom_info(self.e2loc) + if eeprom is None: + raise Exception("%s:value is none" % self.name) + custfru = CustFru() + if isinstance(eeprom, bytes): + eeprom = self.byteTostr(eeprom) + custfru.decode(eeprom) + self.productManufacturer = custfru.manufacturer.strip() + self.productName = custfru.product_name.strip() + self.productPartModelName = custfru.product_name.strip() + self.productVersion = custfru.version.strip() + self.productSerialNumber = custfru.serial_number.strip().replace(chr(0), "") + except Exception: + self.productManufacturer = None + self.productName = None + self.productPartModelName = None + self.productVersion = None + self.productSerialNumber = None + return False + return True + def get_fru_info(self): try: if self.present is not True: raise Exception("%s: not present" % self.name) + if self.get_fru_info_by_sysfs() is True: return True - return self.get_fru_info_by_decode() + + if self.e2_type == "fru": + return self.get_fru_info_by_decode() + + if self.e2_type == "custfru": + return self.get_custfru_info_by_decode() + + raise Exception("%s: unsupport e2_type: %s" % (self.name, self.e2_type)) except Exception: self.productManufacturer = None self.productName = None diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py index 2b4e4ffd5f0e..6ac934732cbb 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/rotor.py @@ -32,7 +32,7 @@ def __init__(self, conf=None): def getRunning(self): ret, val = self.get_value(self.rotor_run_conf) - if ret is False or val is None: + if ret is False or val is None or val == "no_support" or val == "NA": return False if isinstance(val, str): value = int(val, 16) @@ -120,7 +120,7 @@ def rotor_HwAlarm(self): ret, val = self.get_value(self.rotor_HwAlarm_conf) mask = self.rotor_HwAlarm_conf.get("mask") no_alarm_value = self.rotor_HwAlarm_conf.get("no_alarm") - if ret is False or val is None: + if ret is False or val is None or val == "NA": return False if isinstance(val, str): value = int(val, 16) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py index 2b4e05e00e43..af2a5384b618 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/plat_hal/sensor.py @@ -135,10 +135,23 @@ def Value(self, val): @property def Min(self): try: - if self.format is None: - self.__Min = self.Min_config + if isinstance(self.Min_config, dict): + if self.call_back is None: + self.__Min = self.Min_config.get("other") + else: + ret = self.call_back() + if ret not in self.Min_config: + self.__Min = self.Min_config.get("other") + else: + self.__Min = self.Min_config[ret] else: - self.__Min = self.get_format_value(self.format % self.Min_config) + self.__Min = self.Min_config + + if self.__Min is None: + return None + + if self.format is not None: + self.__Min = self.get_format_value(self.format % self.__Min) self.__Min = round(float(self.__Min), 3) except Exception: return None @@ -151,10 +164,23 @@ def Min(self, val): @property def Max(self): try: - if self.format is None: - self.__Max = self.Max_config + if isinstance(self.Max_config, dict): + if self.call_back is None: + self.__Max = self.Max_config.get("other") + else: + ret = self.call_back() + if ret not in self.Max_config: + self.__Max = self.Max_config.get("other") + else: + self.__Max = self.Max_config[ret] else: - self.__Max = self.get_format_value(self.format % self.Max_config) + self.__Max = self.Max_config + + if self.__Max is None: + return None + + if self.format is not None: + self.__Max = self.get_format_value(self.format % self.__Max) self.__Max = round(float(self.__Max), 3) except Exception: return None @@ -167,10 +193,24 @@ def Max(self, val): @property def Low(self): try: - if self.format is None: - self.__Low = self.Low_config + if isinstance(self.Low_config, dict): + if self.call_back is None: + self.__Low = self.Low_config.get("other") + else: + ret = self.call_back() + if ret not in self.Low_config: + self.__Low = self.Low_config.get("other") + else: + self.__Low = self.Low_config[ret] else: - self.__Low = self.get_format_value(self.format % self.Low_config) + self.__Low = self.Low_config + + if self.__Low is None: + return None + + if self.format is not None: + self.__Low = self.get_format_value(self.format % self.__Low) + self.__Low = round(float(self.__Low), 3) except Exception: return None return self.__Low @@ -182,10 +222,24 @@ def Low(self, val): @property def High(self): try: - if self.format is None: - self.__High = self.High_config + if isinstance(self.High_config, dict): + if self.call_back is None: + self.__High = self.High_config.get("other") + else: + ret = self.call_back() + if ret not in self.High_config: + self.__High = self.High_config.get("other") + else: + self.__High = self.High_config[ret] else: - self.__High = self.get_format_value(self.format % self.High_config) + self.__High = self.High_config + + if self.__High is None: + return None + + if self.format is not None: + self.__High = self.get_format_value(self.format % self.__High) + self.__High = round(float(self.__High), 3) except Exception: return None return self.__High @@ -194,7 +248,7 @@ def High(self): def High(self, val): self.__High = val - def __init__(self, conf=None): + def __init__(self, conf=None, call_back=None): self.ValueConfig = conf.get("value", None) self.Flag = conf.get("flag", None) self.Min_config = conf.get("Min", None) @@ -204,6 +258,7 @@ def __init__(self, conf=None): self.Unit = conf.get('Unit', None) self.format = conf.get('format', None) self.read_times = conf.get('read_times', 1) + self.call_back = call_back def __str__(self): formatstr = \ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/__init__.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/__init__.py new file mode 100755 index 000000000000..e69de29bb2d1 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py new file mode 100755 index 000000000000..6caba07d915e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import syslog + +import requests + + +class RestfulApiClient(): + Debug_file = "/tmp/restful_api_debug" + BmcBaseUrl = 'http://240.1.1.2:8080' + NetworkUrl = '/api/v1.0/network' + PowerUrl = '/api/v1.0/power' + HostnameUrl = '/api/v1.0/hostname' + EventsUrl = '/api/v1.0/events' + SensorsUrl = '/api/v1.0/sys_switch/sensors' + SyseepromUrl = '/api/v1.0/syseeprom' + FansUrl = '/api/v1.0/sys_switch/fans' + # FanUrl = '/api/v1.0/sys_switch/fan/fan1' + FanUrl = '/api/v1.0/sys_switch/fan/' + PsusUrl = '/api/v1.0/sys_switch/psus' + # PsuUrl = '/api/v1.0/sys_switch/psu/psu1' + PsuUrl = '/api/v1.0/sys_switch/psu/' + LEDsUrl = '/api/v1.0/sys_switch/leds' + FirmwaresUrl = '/api/v1.0/sys_switch/firmwares' + WatchdogsUrl = '/api/v1.0/watchdog-lambda-os' + UsersUrl = '/api/v1.0/users' + TimeUrl = '/api/v1.0/time' + TimezoneUrl = '/api/v1.0/timezone' + NtpUrl = '/api/v1.0/ntp' + PowerUrl = '/api/v1.0/power' + + def restful_api_error_log(self, msg): + syslog.openlog("restful_api") + syslog.syslog(syslog.LOG_ERR, msg) + syslog.closelog() + + def restful_api_debug_log(self, msg): + if os.path.exists(self.Debug_file): + syslog.openlog("restful_api") + syslog.syslog(syslog.LOG_DEBUG, msg) + syslog.closelog() + + def get_request(self, url, time_out=(30, 30)): + try: + full_url = self.BmcBaseUrl + url + self.restful_api_debug_log("GET: %s" % full_url) + response = requests.get(full_url, timeout=time_out) + self.restful_api_debug_log("RET: %s" % str(response.json())) + return response.json() + except Exception as e: + self.restful_api_error_log(str(e)) + return None + + def post_request(self, url, data, time_out=(30, 30)): + try: + full_url = self.BmcBaseUrl + url + self.restful_api_debug_log("POST: %s -d %s" % (full_url, str(data))) + response = requests.post(full_url, json=data, timeout=time_out) + # 检查响应状态码 + if response.status_code == 200: + self.restful_api_debug_log("RET: %s" % str(response.json())) + return response.json() + else: + self.restful_api_error_log("Post request failed. Status code {}".format(response.status_code)) + return None + except Exception as e: + self.restful_api_error_log(str(e)) + return None +''' +if __name__ == '__main__': + client = RestfulApiClient() + + # 发送 GET 请求 + time_data = client.get_request(client.TimeUrl) + print("Current time:", time_data) + + # 获取fans + fans = client.get_request(client.FansUrl) + print("Current fans:", fans) + + # 发送 POST 请求 + new_time = "2023-08-31 14:41:28 +0800" + response = client.post_request(client.TimeUrl, {"time": new_time}) + print("Time set successfully:", response) + + # 发送 POST 请求 + cmd = "bmc reset cold" + response = client.post_request(client.PowerUrl, {"cmd": cmd}) + print("Time set successfully:", response) + + # 发送 GET 请求 + #sensors = client.get_request(client.SensorsUrl) + #print("sensors:", sensors) +''' \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf b/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf index 5e861802d915..fea9ac508aaf 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf +++ b/platform/broadcom/sonic-platform-modules-micas/common/modprobe_conf/kernel_drivers_blacklist.conf @@ -1,5 +1,7 @@ blacklist wb_fpga_pcie blacklist wb_i2c_i801 blacklist wb_spi_gpio -blacklist intel_spi -blacklist intel_spi_platform +blacklist spi_intel +blacklist spi_intel_platform +blacklist wb_i2c_ismt +blacklist spi_intel_pci diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/COPYING b/platform/broadcom/sonic-platform-modules-micas/common/modules/COPYING new file mode 100644 index 000000000000..a635a38ef940 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/COPYING @@ -0,0 +1,20 @@ +The Linux Kernel is provided under: + + SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note + +Being under the terms of the GNU General Public License version 2 only, +according with: + + LICENSES/preferred/GPL-2.0 + +With an explicit syscall exception, as stated at: + + LICENSES/exceptions/Linux-syscall-note + +In addition, other licenses may also apply. Please see: + + Documentation/process/license-rules.rst + +for more details. + +All contributions to the Linux Kernel are subject to this COPYING file. diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/GPL-2.0 b/platform/broadcom/sonic-platform-modules-micas/common/modules/GPL-2.0 new file mode 100644 index 000000000000..ff0812fd89cc --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/GPL-2.0 @@ -0,0 +1,359 @@ +Valid-License-Identifier: GPL-2.0 +Valid-License-Identifier: GPL-2.0-only +Valid-License-Identifier: GPL-2.0+ +Valid-License-Identifier: GPL-2.0-or-later +SPDX-URL: https://spdx.org/licenses/GPL-2.0.html +Usage-Guide: + To use this license in source code, put one of the following SPDX + tag/value pairs into a comment according to the placement + guidelines in the licensing rules documentation. + For 'GNU General Public License (GPL) version 2 only' use: + SPDX-License-Identifier: GPL-2.0 + or + SPDX-License-Identifier: GPL-2.0-only + For 'GNU General Public License (GPL) version 2 or any later version' use: + SPDX-License-Identifier: GPL-2.0+ + or + SPDX-License-Identifier: GPL-2.0-or-later +License-Text: + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile index 042feac8443b..63c4238836e7 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/Makefile @@ -10,8 +10,10 @@ export module_out_put_dir KERNEL_MODULES_SRC = $(PWD)/linux-5.10 PLAT_SYSFS_DIR = $(PWD)/plat_sysfs -INTEL_SPI = $(PWD)/intel_spi PHY = $(PWD)/phy +PINCTRL = $(PWD)/pinctrl +SDHCI = $(PWD)/sdhci +RTL_DRIVER_PATH = r8168 export PLAT_SYSFS_DIR @@ -27,7 +29,7 @@ obj-m += wb_i2c_dev.o obj-m += wb_platform_i2c_dev.o obj-m += wb_io_dev.o obj-m += wb_eeprom_93xx46.o -obj-m += wb_spi_93xx46.o +#obj-m += wb_spi_93xx46.o obj-m += wb_gpio_d1500.o obj-m += wb_gpio_device.o obj-m += wb_i2c_ocores.o @@ -37,19 +39,22 @@ obj-m += wb_wdt.o obj-m += wb_optoe.o obj-m += wb_spi_gpio.o obj-m += wb_spi_gpio_device.o -obj-m += wb_spi_nor_device.o +#obj-m += wb_spi_nor_device.o obj-m += wb_xdpe132g5c.o obj-m += wb_uio_irq.o obj-m += hw_test.o +obj-y += r8168/ all : $(MAKE) -C $(KERNEL_MODULES_SRC) $(MAKE) -C $(PLAT_SYSFS_DIR) - $(MAKE) -C $(INTEL_SPI) $(MAKE) -C $(PHY) + $(MAKE) -C $(PINCTRL) + $(MAKE) -C $(SDHCI) $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi cp -p $(PWD)/*.ko $(module_out_put_dir) + cp -p $(PWD)/$(RTL_DRIVER_PATH)/*.ko $(module_out_put_dir) clean : rm -rf $(module_out_put_dir) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h index 049629ff83e7..695fa336c4ff 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/hw_test.h @@ -1,5 +1,4 @@ - #ifndef _LINUX_DRAM_DRIVER_H #define _LINUX_DRAM_DRIVER_H diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h deleted file mode 100644 index d0a570b1f3b0..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/include/intel_spi.h +++ /dev/null @@ -1,23 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * Intel PCH/PCU SPI flash driver. - * - * Copyright (C) 2016, Intel Corporation - * Author: Mika Westerberg - */ - -#ifndef INTEL_SPI_H -#define INTEL_SPI_H - -#include -#include - -#define mem_clear(data, size) memset((data), 0, (size)) -struct intel_spi; -struct resource; - -struct intel_spi *intel_spi_probe(struct device *dev, - struct resource *mem, const struct intel_spi_boardinfo *info); -int intel_spi_remove(struct intel_spi *ispi); - -#endif /* INTEL_SPI_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c deleted file mode 100644 index 98de90f0c0b2..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi.c +++ /dev/null @@ -1,969 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Intel PCH/PCU SPI flash driver. - * - * Copyright (C) 2016, Intel Corporation - * Author: Mika Westerberg - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "intel_spi.h" - -/* Offsets are from @ispi->base */ -#define BFPREG 0x00 - -#define HSFSTS_CTL 0x04 -#define HSFSTS_CTL_FSMIE BIT(31) -#define HSFSTS_CTL_FDBC_SHIFT 24 -#define HSFSTS_CTL_FDBC_MASK (0x3f << HSFSTS_CTL_FDBC_SHIFT) - -#define HSFSTS_CTL_FCYCLE_SHIFT 17 -#define HSFSTS_CTL_FCYCLE_MASK (0x0f << HSFSTS_CTL_FCYCLE_SHIFT) -/* HW sequencer opcodes */ -#define HSFSTS_CTL_FCYCLE_READ (0x00 << HSFSTS_CTL_FCYCLE_SHIFT) -#define HSFSTS_CTL_FCYCLE_WRITE (0x02 << HSFSTS_CTL_FCYCLE_SHIFT) -#define HSFSTS_CTL_FCYCLE_ERASE (0x03 << HSFSTS_CTL_FCYCLE_SHIFT) -#define HSFSTS_CTL_FCYCLE_ERASE_64K (0x04 << HSFSTS_CTL_FCYCLE_SHIFT) -#define HSFSTS_CTL_FCYCLE_RDID (0x06 << HSFSTS_CTL_FCYCLE_SHIFT) -#define HSFSTS_CTL_FCYCLE_WRSR (0x07 << HSFSTS_CTL_FCYCLE_SHIFT) -#define HSFSTS_CTL_FCYCLE_RDSR (0x08 << HSFSTS_CTL_FCYCLE_SHIFT) - -#define HSFSTS_CTL_FGO BIT(16) -#define HSFSTS_CTL_FLOCKDN BIT(15) -#define HSFSTS_CTL_FDV BIT(14) -#define HSFSTS_CTL_SCIP BIT(5) -#define HSFSTS_CTL_AEL BIT(2) -#define HSFSTS_CTL_FCERR BIT(1) -#define HSFSTS_CTL_FDONE BIT(0) - -#define FADDR 0x08 -#define DLOCK 0x0c -#define FDATA(n) (0x10 + ((n) * 4)) - -#define FRACC 0x50 - -#define FREG(n) (0x54 + ((n) * 4)) -#define FREG_BASE_MASK 0x3fff -#define FREG_LIMIT_SHIFT 16 -#define FREG_LIMIT_MASK (0x03fff << FREG_LIMIT_SHIFT) - -/* Offset is from @ispi->pregs */ -#define PR(n) ((n) * 4) -#define PR_WPE BIT(31) -#define PR_LIMIT_SHIFT 16 -#define PR_LIMIT_MASK (0x3fff << PR_LIMIT_SHIFT) -#define PR_RPE BIT(15) -#define PR_BASE_MASK 0x3fff - -/* Offsets are from @ispi->sregs */ -#define SSFSTS_CTL 0x00 -#define SSFSTS_CTL_FSMIE BIT(23) -#define SSFSTS_CTL_DS BIT(22) -#define SSFSTS_CTL_DBC_SHIFT 16 -#define SSFSTS_CTL_SPOP BIT(11) -#define SSFSTS_CTL_ACS BIT(10) -#define SSFSTS_CTL_SCGO BIT(9) -#define SSFSTS_CTL_COP_SHIFT 12 -#define SSFSTS_CTL_FRS BIT(7) -#define SSFSTS_CTL_DOFRS BIT(6) -#define SSFSTS_CTL_AEL BIT(4) -#define SSFSTS_CTL_FCERR BIT(3) -#define SSFSTS_CTL_FDONE BIT(2) -#define SSFSTS_CTL_SCIP BIT(0) - -#define PREOP_OPTYPE 0x04 -#define OPMENU0 0x08 -#define OPMENU1 0x0c - -#define OPTYPE_READ_NO_ADDR 0 -#define OPTYPE_WRITE_NO_ADDR 1 -#define OPTYPE_READ_WITH_ADDR 2 -#define OPTYPE_WRITE_WITH_ADDR 3 - -/* CPU specifics */ -#define BYT_PR 0x74 -#define BYT_SSFSTS_CTL 0x90 -#define BYT_BCR 0xfc -#define BYT_BCR_WPD BIT(0) -#define BYT_FREG_NUM 5 -#define BYT_PR_NUM 5 - -#define LPT_PR 0x74 -#define LPT_SSFSTS_CTL 0x90 -#define LPT_FREG_NUM 5 -#define LPT_PR_NUM 5 - -#define BXT_PR 0x84 -#define BXT_SSFSTS_CTL 0xa0 -#define BXT_FREG_NUM 12 -#define BXT_PR_NUM 6 - -#define CNL_PR 0x84 -#define CNL_FREG_NUM 6 -#define CNL_PR_NUM 5 - -#define LVSCC 0xc4 -#define UVSCC 0xc8 -#define ERASE_OPCODE_SHIFT 8 -#define ERASE_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) -#define ERASE_64K_OPCODE_SHIFT 16 -#define ERASE_64K_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) - -#define INTEL_SPI_TIMEOUT 5000 /* ms */ -#define INTEL_SPI_FIFO_SZ 64 - -/** - * struct intel_spi - Driver private data - * @dev: Device pointer - * @info: Pointer to board specific info - * @nor: SPI NOR layer structure - * @base: Beginning of MMIO space - * @pregs: Start of protection registers - * @sregs: Start of software sequencer registers - * @nregions: Maximum number of regions - * @pr_num: Maximum number of protected range registers - * @writeable: Is the chip writeable - * @locked: Is SPI setting locked - * @swseq_reg: Use SW sequencer in register reads/writes - * @swseq_erase: Use SW sequencer in erase operation - * @erase_64k: 64k erase supported - * @atomic_preopcode: Holds preopcode when atomic sequence is requested - * @opcodes: Opcodes which are supported. This are programmed by BIOS - * before it locks down the controller. - */ -struct intel_spi { - struct device *dev; - const struct intel_spi_boardinfo *info; - struct spi_nor nor; - void __iomem *base; - void __iomem *pregs; - void __iomem *sregs; - size_t nregions; - size_t pr_num; - bool writeable; - bool locked; - bool swseq_reg; - bool swseq_erase; - bool erase_64k; - u8 atomic_preopcode; - u8 opcodes[8]; -}; - -static bool writeable; -module_param(writeable, bool, 0); -MODULE_PARM_DESC(writeable, "Enable write access to SPI flash chip (default=0)"); - -static void intel_spi_dump_regs(struct intel_spi *ispi) -{ - u32 value; - int i; - - dev_dbg(ispi->dev, "BFPREG=0x%08x\n", readl(ispi->base + BFPREG)); - - value = readl(ispi->base + HSFSTS_CTL); - dev_dbg(ispi->dev, "HSFSTS_CTL=0x%08x\n", value); - if (value & HSFSTS_CTL_FLOCKDN) - dev_dbg(ispi->dev, "-> Locked\n"); - - dev_dbg(ispi->dev, "FADDR=0x%08x\n", readl(ispi->base + FADDR)); - dev_dbg(ispi->dev, "DLOCK=0x%08x\n", readl(ispi->base + DLOCK)); - - for (i = 0; i < 16; i++) - dev_dbg(ispi->dev, "FDATA(%d)=0x%08x\n", - i, readl(ispi->base + FDATA(i))); - - dev_dbg(ispi->dev, "FRACC=0x%08x\n", readl(ispi->base + FRACC)); - - for (i = 0; i < ispi->nregions; i++) - dev_dbg(ispi->dev, "FREG(%d)=0x%08x\n", i, - readl(ispi->base + FREG(i))); - for (i = 0; i < ispi->pr_num; i++) - dev_dbg(ispi->dev, "PR(%d)=0x%08x\n", i, - readl(ispi->pregs + PR(i))); - - if (ispi->sregs) { - value = readl(ispi->sregs + SSFSTS_CTL); - dev_dbg(ispi->dev, "SSFSTS_CTL=0x%08x\n", value); - dev_dbg(ispi->dev, "PREOP_OPTYPE=0x%08x\n", - readl(ispi->sregs + PREOP_OPTYPE)); - dev_dbg(ispi->dev, "OPMENU0=0x%08x\n", - readl(ispi->sregs + OPMENU0)); - dev_dbg(ispi->dev, "OPMENU1=0x%08x\n", - readl(ispi->sregs + OPMENU1)); - } - - if (ispi->info->type == INTEL_SPI_BYT) - dev_dbg(ispi->dev, "BCR=0x%08x\n", readl(ispi->base + BYT_BCR)); - - dev_dbg(ispi->dev, "LVSCC=0x%08x\n", readl(ispi->base + LVSCC)); - dev_dbg(ispi->dev, "UVSCC=0x%08x\n", readl(ispi->base + UVSCC)); - - dev_dbg(ispi->dev, "Protected regions:\n"); - for (i = 0; i < ispi->pr_num; i++) { - u32 base, limit; - - value = readl(ispi->pregs + PR(i)); - if (!(value & (PR_WPE | PR_RPE))) - continue; - - limit = (value & PR_LIMIT_MASK) >> PR_LIMIT_SHIFT; - base = value & PR_BASE_MASK; - - dev_dbg(ispi->dev, " %02d base: 0x%08x limit: 0x%08x [%c%c]\n", - i, base << 12, (limit << 12) | 0xfff, - value & PR_WPE ? 'W' : '.', - value & PR_RPE ? 'R' : '.'); - } - - dev_dbg(ispi->dev, "Flash regions:\n"); - for (i = 0; i < ispi->nregions; i++) { - u32 region, base, limit; - - region = readl(ispi->base + FREG(i)); - base = region & FREG_BASE_MASK; - limit = (region & FREG_LIMIT_MASK) >> FREG_LIMIT_SHIFT; - - if (base >= limit || (i > 0 && limit == 0)) - dev_dbg(ispi->dev, " %02d disabled\n", i); - else - dev_dbg(ispi->dev, " %02d base: 0x%08x limit: 0x%08x\n", - i, base << 12, (limit << 12) | 0xfff); - } - - dev_dbg(ispi->dev, "Using %cW sequencer for register access\n", - ispi->swseq_reg ? 'S' : 'H'); - dev_dbg(ispi->dev, "Using %cW sequencer for erase operation\n", - ispi->swseq_erase ? 'S' : 'H'); -} - -/* Reads max INTEL_SPI_FIFO_SZ bytes from the device fifo */ -static int intel_spi_read_block(struct intel_spi *ispi, void *buf, size_t size) -{ - size_t bytes; - int i = 0; - - if (size > INTEL_SPI_FIFO_SZ) - return -EINVAL; - - while (size > 0) { - bytes = min_t(size_t, size, 4); - memcpy_fromio(buf, ispi->base + FDATA(i), bytes); - size -= bytes; - buf += bytes; - i++; - } - - return 0; -} - -/* Writes max INTEL_SPI_FIFO_SZ bytes to the device fifo */ -static int intel_spi_write_block(struct intel_spi *ispi, const void *buf, - size_t size) -{ - size_t bytes; - int i = 0; - - if (size > INTEL_SPI_FIFO_SZ) - return -EINVAL; - - while (size > 0) { - bytes = min_t(size_t, size, 4); - memcpy_toio(ispi->base + FDATA(i), buf, bytes); - size -= bytes; - buf += bytes; - i++; - } - - return 0; -} - -static int intel_spi_wait_hw_busy(struct intel_spi *ispi) -{ - u32 val; - - return readl_poll_timeout(ispi->base + HSFSTS_CTL, val, - !(val & HSFSTS_CTL_SCIP), 0, - INTEL_SPI_TIMEOUT * 1000); -} - -static int intel_spi_wait_sw_busy(struct intel_spi *ispi) -{ - u32 val; - - return readl_poll_timeout(ispi->sregs + SSFSTS_CTL, val, - !(val & SSFSTS_CTL_SCIP), 0, - INTEL_SPI_TIMEOUT * 1000); -} - -static int intel_spi_init(struct intel_spi *ispi) -{ - u32 opmenu0, opmenu1, lvscc, uvscc, val; - int i; - - switch (ispi->info->type) { - case INTEL_SPI_BYT: - ispi->sregs = ispi->base + BYT_SSFSTS_CTL; - ispi->pregs = ispi->base + BYT_PR; - ispi->nregions = BYT_FREG_NUM; - ispi->pr_num = BYT_PR_NUM; - ispi->swseq_reg = true; - - if (writeable) { - /* Disable write protection */ - val = readl(ispi->base + BYT_BCR); - if (!(val & BYT_BCR_WPD)) { - val |= BYT_BCR_WPD; - writel(val, ispi->base + BYT_BCR); - val = readl(ispi->base + BYT_BCR); - } - - ispi->writeable = !!(val & BYT_BCR_WPD); - } - - break; - - case INTEL_SPI_LPT: - ispi->sregs = ispi->base + LPT_SSFSTS_CTL; - ispi->pregs = ispi->base + LPT_PR; - ispi->nregions = LPT_FREG_NUM; - ispi->pr_num = LPT_PR_NUM; - ispi->swseq_reg = true; - break; - - case INTEL_SPI_BXT: - ispi->sregs = ispi->base + BXT_SSFSTS_CTL; - ispi->pregs = ispi->base + BXT_PR; - ispi->nregions = BXT_FREG_NUM; - ispi->pr_num = BXT_PR_NUM; - ispi->erase_64k = true; - break; - - case INTEL_SPI_CNL: - ispi->sregs = NULL; - ispi->pregs = ispi->base + CNL_PR; - ispi->nregions = CNL_FREG_NUM; - ispi->pr_num = CNL_PR_NUM; - break; - - default: - return -EINVAL; - } - - /* Disable #SMI generation from HW sequencer */ - val = readl(ispi->base + HSFSTS_CTL); - val &= ~HSFSTS_CTL_FSMIE; - writel(val, ispi->base + HSFSTS_CTL); - - /* - * Determine whether erase operation should use HW or SW sequencer. - * - * The HW sequencer has a predefined list of opcodes, with only the - * erase opcode being programmable in LVSCC and UVSCC registers. - * If these registers don't contain a valid erase opcode, erase - * cannot be done using HW sequencer. - */ - lvscc = readl(ispi->base + LVSCC); - uvscc = readl(ispi->base + UVSCC); - if (!(lvscc & ERASE_OPCODE_MASK) || !(uvscc & ERASE_OPCODE_MASK)) - ispi->swseq_erase = true; - /* SPI controller on Intel BXT supports 64K erase opcode */ - if (ispi->info->type == INTEL_SPI_BXT && !ispi->swseq_erase) - if (!(lvscc & ERASE_64K_OPCODE_MASK) || - !(uvscc & ERASE_64K_OPCODE_MASK)) - ispi->erase_64k = false; - - if (ispi->sregs == NULL && (ispi->swseq_reg || ispi->swseq_erase)) { - dev_err(ispi->dev, "software sequencer not supported, but required\n"); - return -EINVAL; - } - - /* - * Some controllers can only do basic operations using hardware - * sequencer. All other operations are supposed to be carried out - * using software sequencer. - */ - if (ispi->swseq_reg) { - /* Disable #SMI generation from SW sequencer */ - val = readl(ispi->sregs + SSFSTS_CTL); - val &= ~SSFSTS_CTL_FSMIE; - writel(val, ispi->sregs + SSFSTS_CTL); - } - - /* Check controller's lock status */ - val = readl(ispi->base + HSFSTS_CTL); - ispi->locked = !!(val & HSFSTS_CTL_FLOCKDN); - - if (ispi->locked && ispi->sregs) { - /* - * BIOS programs allowed opcodes and then locks down the - * register. So read back what opcodes it decided to support. - * That's the set we are going to support as well. - */ - opmenu0 = readl(ispi->sregs + OPMENU0); - opmenu1 = readl(ispi->sregs + OPMENU1); - - if (opmenu0 && opmenu1) { - for (i = 0; i < ARRAY_SIZE(ispi->opcodes) / 2; i++) { - ispi->opcodes[i] = opmenu0 >> i * 8; - ispi->opcodes[i + 4] = opmenu1 >> i * 8; - } - } - } - - intel_spi_dump_regs(ispi); - - return 0; -} - -static int intel_spi_opcode_index(struct intel_spi *ispi, u8 opcode, int optype) -{ - int i; - int preop; - - if (ispi->locked) { - for (i = 0; i < ARRAY_SIZE(ispi->opcodes); i++) - if (ispi->opcodes[i] == opcode) - return i; - - return -EINVAL; - } - - /* The lock is off, so just use index 0 */ - writel(opcode, ispi->sregs + OPMENU0); - preop = readw(ispi->sregs + PREOP_OPTYPE); - writel(optype << 16 | preop, ispi->sregs + PREOP_OPTYPE); - - return 0; -} - -static int intel_spi_hw_cycle(struct intel_spi *ispi, u8 opcode, size_t len) -{ - u32 val, status; - int ret; - - val = readl(ispi->base + HSFSTS_CTL); - val &= ~(HSFSTS_CTL_FCYCLE_MASK | HSFSTS_CTL_FDBC_MASK); - - switch (opcode) { - case SPINOR_OP_RDID: - val |= HSFSTS_CTL_FCYCLE_RDID; - break; - case SPINOR_OP_WRSR: - val |= HSFSTS_CTL_FCYCLE_WRSR; - break; - case SPINOR_OP_RDSR: - val |= HSFSTS_CTL_FCYCLE_RDSR; - break; - default: - return -EINVAL; - } - - if (len > INTEL_SPI_FIFO_SZ) - return -EINVAL; - - val |= (len - 1) << HSFSTS_CTL_FDBC_SHIFT; - val |= HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; - val |= HSFSTS_CTL_FGO; - writel(val, ispi->base + HSFSTS_CTL); - - ret = intel_spi_wait_hw_busy(ispi); - if (ret) - return ret; - - status = readl(ispi->base + HSFSTS_CTL); - if (status & HSFSTS_CTL_FCERR) - return -EIO; - else if (status & HSFSTS_CTL_AEL) - return -EACCES; - - return 0; -} - -static int intel_spi_sw_cycle(struct intel_spi *ispi, u8 opcode, size_t len, - int optype) -{ - u32 val = 0, status; - u8 atomic_preopcode; - int ret; - - ret = intel_spi_opcode_index(ispi, opcode, optype); - if (ret < 0) - return ret; - - if (len > INTEL_SPI_FIFO_SZ) - return -EINVAL; - - /* - * Always clear it after each SW sequencer operation regardless - * of whether it is successful or not. - */ - atomic_preopcode = ispi->atomic_preopcode; - ispi->atomic_preopcode = 0; - - /* Only mark 'Data Cycle' bit when there is data to be transferred */ - if (len > 0) - val = ((len - 1) << SSFSTS_CTL_DBC_SHIFT) | SSFSTS_CTL_DS; - val |= ret << SSFSTS_CTL_COP_SHIFT; - val |= SSFSTS_CTL_FCERR | SSFSTS_CTL_FDONE; - val |= SSFSTS_CTL_SCGO; - if (atomic_preopcode) { - u16 preop; - - switch (optype) { - case OPTYPE_WRITE_NO_ADDR: - case OPTYPE_WRITE_WITH_ADDR: - /* Pick matching preopcode for the atomic sequence */ - preop = readw(ispi->sregs + PREOP_OPTYPE); - if ((preop & 0xff) == atomic_preopcode) - ; /* Do nothing */ - else if ((preop >> 8) == atomic_preopcode) - val |= SSFSTS_CTL_SPOP; - else - return -EINVAL; - - /* Enable atomic sequence */ - val |= SSFSTS_CTL_ACS; - break; - - default: - return -EINVAL; - } - - } - writel(val, ispi->sregs + SSFSTS_CTL); - - ret = intel_spi_wait_sw_busy(ispi); - if (ret) - return ret; - - status = readl(ispi->sregs + SSFSTS_CTL); - if (status & SSFSTS_CTL_FCERR) - return -EIO; - else if (status & SSFSTS_CTL_AEL) - return -EACCES; - - return 0; -} - -static int intel_spi_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, - size_t len) -{ - struct intel_spi *ispi = nor->priv; - int ret; - - /* Address of the first chip */ - writel(0, ispi->base + FADDR); - - if (ispi->swseq_reg) - ret = intel_spi_sw_cycle(ispi, opcode, len, - OPTYPE_READ_NO_ADDR); - else - ret = intel_spi_hw_cycle(ispi, opcode, len); - - if (ret) - return ret; - - return intel_spi_read_block(ispi, buf, len); -} - -static int intel_spi_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, - size_t len) -{ - struct intel_spi *ispi = nor->priv; - int ret; - - /* - * This is handled with atomic operation and preop code in Intel - * controller so we only verify that it is available. If the - * controller is not locked, program the opcode to the PREOP - * register for later use. - * - * When hardware sequencer is used there is no need to program - * any opcodes (it handles them automatically as part of a command). - */ - if (opcode == SPINOR_OP_WREN) { - u16 preop; - - if (!ispi->swseq_reg) - return 0; - - preop = readw(ispi->sregs + PREOP_OPTYPE); - if ((preop & 0xff) != opcode && (preop >> 8) != opcode) { - if (ispi->locked) - return -EINVAL; - writel(opcode, ispi->sregs + PREOP_OPTYPE); - } - - /* - * This enables atomic sequence on next SW sycle. Will - * be cleared after next operation. - */ - ispi->atomic_preopcode = opcode; - return 0; - } - - /* - * We hope that HW sequencer will do the right thing automatically and - * with the SW sequencer we cannot use preopcode anyway, so just ignore - * the Write Disable operation and pretend it was completed - * successfully. - */ - if (opcode == SPINOR_OP_WRDI) - return 0; - - writel(0, ispi->base + FADDR); - - /* Write the value beforehand */ - ret = intel_spi_write_block(ispi, buf, len); - if (ret) - return ret; - - if (ispi->swseq_reg) - return intel_spi_sw_cycle(ispi, opcode, len, - OPTYPE_WRITE_NO_ADDR); - return intel_spi_hw_cycle(ispi, opcode, len); -} - -static ssize_t intel_spi_read(struct spi_nor *nor, loff_t from, size_t len, - u_char *read_buf) -{ - struct intel_spi *ispi = nor->priv; - size_t block_size, retlen = 0; - u32 val, status; - ssize_t ret; - - /* - * Atomic sequence is not expected with HW sequencer reads. Make - * sure it is cleared regardless. - */ - if (WARN_ON_ONCE(ispi->atomic_preopcode)) - ispi->atomic_preopcode = 0; - - switch (nor->read_opcode) { - case SPINOR_OP_READ: - case SPINOR_OP_READ_FAST: - case SPINOR_OP_READ_4B: - case SPINOR_OP_READ_FAST_4B: - break; - default: - return -EINVAL; - } - - while (len > 0) { - block_size = min_t(size_t, len, INTEL_SPI_FIFO_SZ); - - /* Read cannot cross 4K boundary */ - block_size = min_t(loff_t, from + block_size, - round_up(from + 1, SZ_4K)) - from; - - writel(from, ispi->base + FADDR); - - val = readl(ispi->base + HSFSTS_CTL); - val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); - val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; - val |= (block_size - 1) << HSFSTS_CTL_FDBC_SHIFT; - val |= HSFSTS_CTL_FCYCLE_READ; - val |= HSFSTS_CTL_FGO; - writel(val, ispi->base + HSFSTS_CTL); - - ret = intel_spi_wait_hw_busy(ispi); - if (ret) - return ret; - - status = readl(ispi->base + HSFSTS_CTL); - if (status & HSFSTS_CTL_FCERR) - ret = -EIO; - else if (status & HSFSTS_CTL_AEL) - ret = -EACCES; - - if (ret < 0) { - dev_err(ispi->dev, "read error: %llx: %#x\n", from, - status); - return ret; - } - - ret = intel_spi_read_block(ispi, read_buf, block_size); - if (ret) - return ret; - - len -= block_size; - from += block_size; - retlen += block_size; - read_buf += block_size; - } - - return retlen; -} - -static ssize_t intel_spi_write(struct spi_nor *nor, loff_t to, size_t len, - const u_char *write_buf) -{ - struct intel_spi *ispi = nor->priv; - size_t block_size, retlen = 0; - u32 val, status; - ssize_t ret; - - /* Not needed with HW sequencer write, make sure it is cleared */ - ispi->atomic_preopcode = 0; - - while (len > 0) { - block_size = min_t(size_t, len, INTEL_SPI_FIFO_SZ); - - /* Write cannot cross 4K boundary */ - block_size = min_t(loff_t, to + block_size, - round_up(to + 1, SZ_4K)) - to; - - writel(to, ispi->base + FADDR); - - val = readl(ispi->base + HSFSTS_CTL); - val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); - val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; - val |= (block_size - 1) << HSFSTS_CTL_FDBC_SHIFT; - val |= HSFSTS_CTL_FCYCLE_WRITE; - - ret = intel_spi_write_block(ispi, write_buf, block_size); - if (ret) { - dev_err(ispi->dev, "failed to write block\n"); - return ret; - } - - /* Start the write now */ - val |= HSFSTS_CTL_FGO; - writel(val, ispi->base + HSFSTS_CTL); - - ret = intel_spi_wait_hw_busy(ispi); - if (ret) { - dev_err(ispi->dev, "timeout\n"); - return ret; - } - - status = readl(ispi->base + HSFSTS_CTL); - if (status & HSFSTS_CTL_FCERR) - ret = -EIO; - else if (status & HSFSTS_CTL_AEL) - ret = -EACCES; - - if (ret < 0) { - dev_err(ispi->dev, "write error: %llx: %#x\n", to, - status); - return ret; - } - - len -= block_size; - to += block_size; - retlen += block_size; - write_buf += block_size; - } - - return retlen; -} - -static int intel_spi_erase(struct spi_nor *nor, loff_t offs) -{ - size_t erase_size, len = nor->mtd.erasesize; - struct intel_spi *ispi = nor->priv; - u32 val, status, cmd; - int ret; - - /* If the hardware can do 64k erase use that when possible */ - if (len >= SZ_64K && ispi->erase_64k) { - cmd = HSFSTS_CTL_FCYCLE_ERASE_64K; - erase_size = SZ_64K; - } else { - cmd = HSFSTS_CTL_FCYCLE_ERASE; - erase_size = SZ_4K; - } - - if (ispi->swseq_erase) { - while (len > 0) { - writel(offs, ispi->base + FADDR); - - ret = intel_spi_sw_cycle(ispi, nor->erase_opcode, - 0, OPTYPE_WRITE_WITH_ADDR); - if (ret) - return ret; - - offs += erase_size; - len -= erase_size; - } - - return 0; - } - - /* Not needed with HW sequencer erase, make sure it is cleared */ - ispi->atomic_preopcode = 0; - - while (len > 0) { - writel(offs, ispi->base + FADDR); - - val = readl(ispi->base + HSFSTS_CTL); - val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); - val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; - val |= cmd; - val |= HSFSTS_CTL_FGO; - writel(val, ispi->base + HSFSTS_CTL); - - ret = intel_spi_wait_hw_busy(ispi); - if (ret) - return ret; - - status = readl(ispi->base + HSFSTS_CTL); - if (status & HSFSTS_CTL_FCERR) - return -EIO; - else if (status & HSFSTS_CTL_AEL) - return -EACCES; - - offs += erase_size; - len -= erase_size; - } - - return 0; -} - -static bool intel_spi_is_protected(const struct intel_spi *ispi, - unsigned int base, unsigned int limit) -{ - int i; - - for (i = 0; i < ispi->pr_num; i++) { - u32 pr_base, pr_limit, pr_value; - - pr_value = readl(ispi->pregs + PR(i)); - if (!(pr_value & (PR_WPE | PR_RPE))) - continue; - - pr_limit = (pr_value & PR_LIMIT_MASK) >> PR_LIMIT_SHIFT; - pr_base = pr_value & PR_BASE_MASK; - - if (pr_base >= base && pr_limit <= limit) - return true; - } - - return false; -} - -/* - * There will be a single partition holding all enabled flash regions. We - * call this "BIOS". - */ -static void intel_spi_fill_partition(struct intel_spi *ispi, - struct mtd_partition *part) -{ - u64 end; - int i; - - mem_clear(part, sizeof(*part)); - - /* Start from the mandatory descriptor region */ - part->size = 4096; - part->name = "BIOS"; - - /* - * Now try to find where this partition ends based on the flash - * region registers. - */ - for (i = 1; i < ispi->nregions; i++) { - u32 region, base, limit; - - region = readl(ispi->base + FREG(i)); - base = region & FREG_BASE_MASK; - limit = (region & FREG_LIMIT_MASK) >> FREG_LIMIT_SHIFT; - - if (base >= limit || limit == 0) - continue; - - /* - * If any of the regions have protection bits set, make the - * whole partition read-only to be on the safe side. - */ - if (intel_spi_is_protected(ispi, base, limit)) - ispi->writeable = false; - - end = (limit << 12) + 4096; - if (end > part->size) - part->size = end; - } -} - -static const struct spi_nor_controller_ops intel_spi_controller_ops = { - .read_reg = intel_spi_read_reg, - .write_reg = intel_spi_write_reg, - .read = intel_spi_read, - .write = intel_spi_write, - .erase = intel_spi_erase, -}; - -struct intel_spi *intel_spi_probe(struct device *dev, - struct resource *mem, const struct intel_spi_boardinfo *info) -{ - const struct spi_nor_hwcaps hwcaps = { - .mask = SNOR_HWCAPS_READ | - SNOR_HWCAPS_READ_FAST | - SNOR_HWCAPS_PP, - }; - struct mtd_partition part; - struct intel_spi *ispi; - int ret; - - if (!info || !mem) - return ERR_PTR(-EINVAL); - - ispi = devm_kzalloc(dev, sizeof(*ispi), GFP_KERNEL); - if (!ispi) - return ERR_PTR(-ENOMEM); - - ispi->base = devm_ioremap_resource(dev, mem); - if (IS_ERR(ispi->base)) - return ERR_CAST(ispi->base); - - ispi->dev = dev; - ispi->info = info; - ispi->writeable = info->writeable; - - ret = intel_spi_init(ispi); - if (ret) - return ERR_PTR(ret); - - ispi->nor.dev = ispi->dev; - ispi->nor.priv = ispi; - ispi->nor.controller_ops = &intel_spi_controller_ops; - - ret = spi_nor_scan(&ispi->nor, NULL, &hwcaps); - if (ret) { - dev_info(dev, "failed to locate the chip\n"); - return ERR_PTR(ret); - } - - intel_spi_fill_partition(ispi, &part); - - /* Prevent writes if not explicitly enabled */ - if (!ispi->writeable || !writeable) - ispi->nor.mtd.flags &= ~MTD_WRITEABLE; - - ret = mtd_device_register(&ispi->nor.mtd, &part, 1); - if (ret) - return ERR_PTR(ret); - - return ispi; -} -EXPORT_SYMBOL_GPL(intel_spi_probe); - -int intel_spi_remove(struct intel_spi *ispi) -{ - return mtd_device_unregister(&ispi->nor.mtd); -} -EXPORT_SYMBOL_GPL(intel_spi_remove); - -MODULE_DESCRIPTION("Intel PCH/PCU SPI flash core driver"); -MODULE_AUTHOR("support"); -MODULE_LICENSE("GPL v2"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c deleted file mode 100644 index b9f294860ce4..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/intel_spi_platform.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Intel PCH/PCU SPI flash platform driver. - * - * Copyright (C) 2016, Intel Corporation - * Author: Mika Westerberg - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - */ - -#include -#include -#include -#include - -#include "intel_spi.h" - -#define PCI_VENDOR_ID_D1527_LPC (0x8c54) - -#define BIOS_CNTL (0xdc) -#define BIOS_CNTL_SRC_SHIFT 2 -#define BIOS_CNTL_WN BIT(0) -#define BIOS_CNTL_BLE BIT(1) -#define BIOS_CNTL_SMM_BMP BIT(5) - -#define RCBABASE 0xf0 - -int intel_spi_platform_debug = 0; -module_param(intel_spi_platform_debug, int, S_IRUGO | S_IWUSR); -int intel_spi_platform_error = 0; -module_param(intel_spi_platform_error, int, S_IRUGO | S_IWUSR); - -static bool writeable; -module_param(writeable, bool, 0); -MODULE_PARM_DESC(writeable, "Enable write access to BIOS (default=0)"); - -#define INTEL_SPI_PLATFORM_VERBOSE(fmt, args...) do { \ - if (intel_spi_platform_debug) { \ - printk(KERN_INFO "[INTEL_SPI_PLATFORM][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ - } while (0) - -#define INTEL_SPI_PLATFORM_ERROR(fmt, args...) do { \ - if (intel_spi_platform_error) { \ - printk(KERN_ERR "[INTEL_SPI_PLATFORM][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ - } while (0) - -static void intel_spi_enable_bios_write(struct pci_dev *pci_dev, struct intel_spi_boardinfo *info) -{ - u8 bios_cntl, value, want, new; - - if (writeable) { - pci_read_config_byte(pci_dev, BIOS_CNTL, &bios_cntl); - want = bios_cntl; - value = (bios_cntl >> BIOS_CNTL_SRC_SHIFT) & 0x3 ; - if (value == 0x3) { - INTEL_SPI_PLATFORM_VERBOSE("invalid prefetching/caching settings, "); - } else { - INTEL_SPI_PLATFORM_VERBOSE("prefetching %sabled, caching %sabled, ", - (value & 0x2) ? "en" : "dis", - (value & 0x1) ? "dis" : "en"); - } - - /* writeable regardless */ - want &= ~BIOS_CNTL_SMM_BMP; - /* write enable */ - want |= BIOS_CNTL_WN; - /* BIOS lock disabled */ - want &= ~BIOS_CNTL_BLE; - INTEL_SPI_PLATFORM_VERBOSE("bios cntl is:0x%x, want is:0x%x\n", bios_cntl, want); - pci_write_config_byte(pci_dev, BIOS_CNTL, want); - pci_read_config_byte(pci_dev, BIOS_CNTL, &new); - INTEL_SPI_PLATFORM_VERBOSE("\nBIOS_CNTL = 0x%02x: ", new); - INTEL_SPI_PLATFORM_VERBOSE("BIOS Lock Enable: %sabled, ", (new & BIOS_CNTL_BLE) ? "en" : "dis"); - INTEL_SPI_PLATFORM_VERBOSE("BIOS Write Enable: %sabled\n", (new & BIOS_CNTL_WN) ? "en" : "dis"); - - if (new & BIOS_CNTL_SMM_BMP) { - INTEL_SPI_PLATFORM_VERBOSE("BIOS region SMM protection is enabled!\n"); - } - - if (new != want) { - INTEL_SPI_PLATFORM_VERBOSE("Warning: Setting Bios Control at 0x%x from 0x%02x to 0x%02x failed.\n" - "New value is 0x%02x.\n", BIOS_CNTL, value, want, new); - } else { - info->writeable = !!(new & BIOS_CNTL_WN); - } - INTEL_SPI_PLATFORM_VERBOSE("Bios Control is 0x%x\n", new); - } else { - INTEL_SPI_PLATFORM_VERBOSE("Bios don't write\n"); - } - - return ; -} - -static int intel_spi_platform_probe(struct platform_device *pdev) -{ - struct intel_spi_boardinfo *info; - struct intel_spi *ispi; - struct resource *mem; - struct pci_dev *pci_dev = NULL; - u32 rcba; - - info = dev_get_platdata(&pdev->dev); - if (!info) - return -EINVAL; - - pci_dev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_VENDOR_ID_D1527_LPC, pci_dev); - if (!pci_dev) { - INTEL_SPI_PLATFORM_ERROR("pci_get_device(0x8086, 0x8c54) failed!\n"); - return -1; - } - - switch (info->type) { - case INTEL_SPI_LPT: - pci_read_config_dword(pci_dev, RCBABASE, &rcba); - if (rcba & 1) { - intel_spi_enable_bios_write(pci_dev, info); - } - break; - default: - INTEL_SPI_PLATFORM_ERROR("info type[%d] not need set writeable.\n",info->type); - break; - } - INTEL_SPI_PLATFORM_VERBOSE("intel spi boardinfo writeable is %sabled\n", - info->writeable ? "en" : "dis"); - - mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); - ispi = intel_spi_probe(&pdev->dev, mem, info); - if (IS_ERR(ispi)) - return PTR_ERR(ispi); - - platform_set_drvdata(pdev, ispi); - return 0; -} - -static int intel_spi_platform_remove(struct platform_device *pdev) -{ - struct intel_spi *ispi = platform_get_drvdata(pdev); - - return intel_spi_remove(ispi); -} - -static struct of_device_id intel_spi_match[] = { - { - .compatible = "spi-c224", - }, - {}, -}; -MODULE_DEVICE_TABLE(of, intel_spi_match); - -static struct platform_driver intel_spi_platform_driver = { - .probe = intel_spi_platform_probe, - .remove = intel_spi_platform_remove, - .driver = { - .name = "intel-spi", - .of_match_table = intel_spi_match, - }, -}; - -module_platform_driver(intel_spi_platform_driver); - -MODULE_DESCRIPTION("Intel PCH/PCU SPI flash platform driver"); -MODULE_AUTHOR("support"); -MODULE_LICENSE("GPL v2"); -MODULE_ALIAS("platform:intel-spi"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile index a0d8a7bc146b..02d659d6c8b2 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/Makefile @@ -24,6 +24,8 @@ obj-m += wb_isl68137.o obj-m += wb_tps53622.o obj-m += wb_ucd9000.o obj-m += wb_xdpe12284.o +obj-m += wb_xdpe132g5c_pmbus.o +obj-m += wb_i2c_ismt.o all: $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c index 1075e6ef18de..5ec39c9d7dcb 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_at24.c @@ -792,7 +792,7 @@ static int at24_probe(struct i2c_client *client) return 0; } -static int at24_remove(struct i2c_client *client) +static void at24_remove(struct i2c_client *client) { struct at24_data *at24 = i2c_get_clientdata(client); @@ -801,7 +801,7 @@ static int at24_remove(struct i2c_client *client) regulator_disable(at24->vcc_reg); pm_runtime_set_suspended(&client->dev); - return 0; + return; } static int __maybe_unused at24_suspend(struct device *dev) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_ismt.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_ismt.c new file mode 100644 index 000000000000..94a3ed827209 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_ismt.c @@ -0,0 +1,1131 @@ +/* + * This file is provided under a dual BSD/GPLv2 license. When using or + * redistributing this file, you may do so under either license. + * + * Copyright(c) 2012 Intel Corporation. All rights reserved. + * + * GPL LICENSE SUMMARY + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * 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. + * The full GNU General Public License is included in this distribution + * in the file called LICENSE.GPL. + * + * BSD LICENSE + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Supports the SMBus Message Transport (SMT) in the Intel Atom Processor + * S12xx Product Family. + * + * Features supported by this driver: + * Hardware PEC yes + * Block buffer yes + * Block process call transaction yes + * Slave mode no + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define mem_clear(data, size) memset((data), 0, (size)) + +/* PCI Address Constants */ +#define SMBBAR 0 + +#define ISMT_DBCTRL 0x388 /* ISMT PIN Control Register */ +#define ISMT_DBSTS 0X38C /* ISMT PIN Status Register */ + +#define ISMT_DBSTS_CLK_STS (1<<9) /* bit9 SMBCLK_CUR_STS */ +#define ISMT_DBSTS_SDA_STS (1<<8) /* bit8 SMBDATA_CUR_STS */ +#define ISMT_DBCTRL_CLK_CTL (1<<1) /* bit1 SMBCLK_CTL */ +#define ISMT_DBCTRL_ENABLE (1<<31) /* bit31 EN */ + +/* PCI DIDs for the Intel SMBus Message Transport (SMT) Devices */ +#define PCI_DEVICE_ID_INTEL_S1200_SMT0 0x0c59 +#define PCI_DEVICE_ID_INTEL_S1200_SMT1 0x0c5a +#define PCI_DEVICE_ID_INTEL_CDF_SMT 0x18ac +#define PCI_DEVICE_ID_INTEL_DNV_SMT 0x19ac +#define PCI_DEVICE_ID_INTEL_EBG_SMT 0x1bff +#define PCI_DEVICE_ID_INTEL_AVOTON_SMT 0x1f15 + +#define ISMT_DESC_ENTRIES 2 /* number of descriptor entries */ +#define ISMT_MAX_RETRIES 3 /* number of SMBus retries to attempt */ +#define ISMT_LOG_ENTRIES 3 /* number of interrupt cause log entries */ + +/* Hardware Descriptor Constants - Control Field */ +#define ISMT_DESC_CWRL 0x01 /* Command/Write Length */ +#define ISMT_DESC_BLK 0X04 /* Perform Block Transaction */ +#define ISMT_DESC_FAIR 0x08 /* Set fairness flag upon successful arbit. */ +#define ISMT_DESC_PEC 0x10 /* Packet Error Code */ +#define ISMT_DESC_I2C 0x20 /* I2C Enable */ +#define ISMT_DESC_INT 0x40 /* Interrupt */ +#define ISMT_DESC_SOE 0x80 /* Stop On Error */ + +/* Hardware Descriptor Constants - Status Field */ +#define ISMT_DESC_SCS 0x01 /* Success */ +#define ISMT_DESC_DLTO 0x04 /* Data Low Time Out */ +#define ISMT_DESC_NAK 0x08 /* NAK Received */ +#define ISMT_DESC_CRC 0x10 /* CRC Error */ +#define ISMT_DESC_CLTO 0x20 /* Clock Low Time Out */ +#define ISMT_DESC_COL 0x40 /* Collisions */ +#define ISMT_DESC_LPR 0x80 /* Large Packet Received */ + +/* Macros */ +#define ISMT_DESC_ADDR_RW(addr, rw) (((addr) << 1) | (rw)) + +/* iSMT General Register address offsets (SMBBAR + ) */ +#define ISMT_GR_GCTRL 0x000 /* General Control */ +#define ISMT_GR_SMTICL 0x008 /* SMT Interrupt Cause Location */ +#define ISMT_GR_ERRINTMSK 0x010 /* Error Interrupt Mask */ +#define ISMT_GR_ERRAERMSK 0x014 /* Error AER Mask */ +#define ISMT_GR_ERRSTS 0x018 /* Error Status */ +#define ISMT_GR_ERRINFO 0x01c /* Error Information */ + +/* iSMT Master Registers */ +#define ISMT_MSTR_MDBA 0x100 /* Master Descriptor Base Address */ +#define ISMT_MSTR_MCTRL 0x108 /* Master Control */ +#define ISMT_MSTR_MSTS 0x10c /* Master Status */ +#define ISMT_MSTR_MDS 0x110 /* Master Descriptor Size */ +#define ISMT_MSTR_RPOLICY 0x114 /* Retry Policy */ + +/* iSMT Miscellaneous Registers */ +#define ISMT_SPGT 0x300 /* SMBus PHY Global Timing */ + +/* General Control Register (GCTRL) bit definitions */ +#define ISMT_GCTRL_TRST 0x04 /* Target Reset */ +#define ISMT_GCTRL_KILL 0x08 /* Kill */ +#define ISMT_GCTRL_SRST 0x40 /* Soft Reset */ + +/* Master Control Register (MCTRL) bit definitions */ +#define ISMT_MCTRL_SS 0x01 /* Start/Stop */ +#define ISMT_MCTRL_MEIE 0x10 /* Master Error Interrupt Enable */ +#define ISMT_MCTRL_FMHP 0x00ff0000 /* Firmware Master Head Ptr (FMHP) */ + +/* Master Status Register (MSTS) bit definitions */ +#define ISMT_MSTS_HMTP 0xff0000 /* HW Master Tail Pointer (HMTP) */ +#define ISMT_MSTS_MIS 0x20 /* Master Interrupt Status (MIS) */ +#define ISMT_MSTS_MEIS 0x10 /* Master Error Int Status (MEIS) */ +#define ISMT_MSTS_IP 0x01 /* In Progress */ + +/* Master Descriptor Size (MDS) bit definitions */ +#define ISMT_MDS_MASK 0xff /* Master Descriptor Size mask (MDS) */ + +/* SMBus PHY Global Timing Register (SPGT) bit definitions */ +#define ISMT_SPGT_SPD_MASK 0xc0000000 /* SMBus Speed mask */ +#define ISMT_SPGT_SPD_80K 0x00 /* 80 kHz */ +#define ISMT_SPGT_SPD_100K (0x1 << 30) /* 100 kHz */ +#define ISMT_SPGT_SPD_400K (0x2U << 30) /* 400 kHz */ +#define ISMT_SPGT_SPD_1M (0x3U << 30) /* 1 MHz */ + + +/* MSI Control Register (MSICTL) bit definitions */ +#define ISMT_MSICTL_MSIE 0x01 /* MSI Enable */ + +/* iSMT Hardware Descriptor */ +struct ismt_desc { + u8 tgtaddr_rw; /* target address & r/w bit */ + u8 wr_len_cmd; /* write length in bytes or a command */ + u8 rd_len; /* read length */ + u8 control; /* control bits */ + u8 status; /* status bits */ + u8 retry; /* collision retry and retry count */ + u8 rxbytes; /* received bytes */ + u8 txbytes; /* transmitted bytes */ + u32 dptr_low; /* lower 32 bit of the data pointer */ + u32 dptr_high; /* upper 32 bit of the data pointer */ +} __packed; + +struct ismt_priv { + struct i2c_adapter adapter; + void __iomem *smba; /* PCI BAR */ + struct pci_dev *pci_dev; + struct ismt_desc *hw; /* descriptor virt base addr */ + dma_addr_t io_rng_dma; /* descriptor HW base addr */ + u8 head; /* ring buffer head pointer */ + struct completion cmp; /* interrupt completion */ + u8 buffer[I2C_SMBUS_BLOCK_MAX + 16]; /* temp R/W data buffer */ + dma_addr_t log_dma; + u32 *log; +}; + +static const struct pci_device_id ismt_ids[] = { + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_S1200_SMT0) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_S1200_SMT1) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CDF_SMT) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DNV_SMT) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_EBG_SMT) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_AVOTON_SMT) }, + { 0, } +}; + +MODULE_DEVICE_TABLE(pci, ismt_ids); + +/* Bus speed control bits for slow debuggers - refer to the docs for usage */ +static unsigned int bus_speed; +module_param(bus_speed, uint, S_IRUGO); +MODULE_PARM_DESC(bus_speed, "Bus Speed in kHz (0 = BIOS default)"); + +static unsigned int dma_reset_timeout = 1000; +module_param(dma_reset_timeout, uint, S_IRUGO); + +static void ismt_hw_init(struct ismt_priv *priv); + +/** + * __ismt_desc_dump() - dump the contents of a specific descriptor + * @dev: the iSMT device + * @desc: the iSMT hardware descriptor + */ +static void __ismt_desc_dump(struct device *dev, const struct ismt_desc *desc) +{ + + dev_dbg(dev, "Descriptor struct: %p\n", desc); + dev_dbg(dev, "\ttgtaddr_rw=0x%02X\n", desc->tgtaddr_rw); + dev_dbg(dev, "\twr_len_cmd=0x%02X\n", desc->wr_len_cmd); + dev_dbg(dev, "\trd_len= 0x%02X\n", desc->rd_len); + dev_dbg(dev, "\tcontrol= 0x%02X\n", desc->control); + dev_dbg(dev, "\tstatus= 0x%02X\n", desc->status); + dev_dbg(dev, "\tretry= 0x%02X\n", desc->retry); + dev_dbg(dev, "\trxbytes= 0x%02X\n", desc->rxbytes); + dev_dbg(dev, "\ttxbytes= 0x%02X\n", desc->txbytes); + dev_dbg(dev, "\tdptr_low= 0x%08X\n", desc->dptr_low); + dev_dbg(dev, "\tdptr_high= 0x%08X\n", desc->dptr_high); +} +/** + * ismt_desc_dump() - dump the contents of a descriptor for debug purposes + * @priv: iSMT private data + */ +static void ismt_desc_dump(struct ismt_priv *priv) +{ + struct device *dev = &priv->pci_dev->dev; + struct ismt_desc *desc = &priv->hw[priv->head]; + + dev_dbg(dev, "Dump of the descriptor struct: 0x%X\n", priv->head); + __ismt_desc_dump(dev, desc); +} + +static void ismt_reset_dma(struct ismt_priv *priv) +{ + uint val; + u16 ctrl; + struct pci_dev *pdev; + u32 addr_lo, addr_hi; + + /* save msiaddr */ + pdev = priv->pci_dev; + pci_read_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_LO, &addr_lo); + pci_read_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_HI, &addr_hi); + + /* Clear the start bit */ + val = readl(priv->smba + ISMT_MSTR_MCTRL); + val &= ~ISMT_MCTRL_SS; + writel(val, priv->smba + ISMT_MSTR_MCTRL); + + val = readl(priv->smba + ISMT_GR_GCTRL); + writel(val | ISMT_GCTRL_KILL | ISMT_GCTRL_TRST | ISMT_GCTRL_SRST, priv->smba + ISMT_GR_GCTRL); + + if (dma_reset_timeout > 0) { + usleep_range(dma_reset_timeout, dma_reset_timeout + 1); + } + + ismt_hw_init(priv); + pci_write_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_LO, addr_lo); + pci_write_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_HI, addr_hi); + /* enable msi */ + pci_read_config_word(pdev, pdev->msi_cap + PCI_MSI_FLAGS, &ctrl); + ctrl |= PCI_MSI_FLAGS_ENABLE; + pci_write_config_word(pdev, pdev->msi_cap + PCI_MSI_FLAGS, ctrl); +} + +/** + * ismt_gen_reg_dump() - dump the iSMT General Registers + * @priv: iSMT private data + */ +static void ismt_gen_reg_dump(struct ismt_priv *priv) +{ + struct device *dev = &priv->pci_dev->dev; + + dev_dbg(dev, "Dump of the iSMT General Registers\n"); + dev_dbg(dev, " GCTRL.... : (0x%p)=0x%X\n", + priv->smba + ISMT_GR_GCTRL, + readl(priv->smba + ISMT_GR_GCTRL)); + dev_dbg(dev, " SMTICL... : (0x%p)=0x%016llX\n", + priv->smba + ISMT_GR_SMTICL, + (long long unsigned int)readq(priv->smba + ISMT_GR_SMTICL)); + dev_dbg(dev, " ERRINTMSK : (0x%p)=0x%X\n", + priv->smba + ISMT_GR_ERRINTMSK, + readl(priv->smba + ISMT_GR_ERRINTMSK)); + dev_dbg(dev, " ERRAERMSK : (0x%p)=0x%X\n", + priv->smba + ISMT_GR_ERRAERMSK, + readl(priv->smba + ISMT_GR_ERRAERMSK)); + dev_dbg(dev, " ERRSTS... : (0x%p)=0x%X\n", + priv->smba + ISMT_GR_ERRSTS, + readl(priv->smba + ISMT_GR_ERRSTS)); + dev_dbg(dev, " ERRINFO.. : (0x%p)=0x%X\n", + priv->smba + ISMT_GR_ERRINFO, + readl(priv->smba + ISMT_GR_ERRINFO)); +} + +/** + * ismt_mstr_reg_dump() - dump the iSMT Master Registers + * @priv: iSMT private data + */ +static void ismt_mstr_reg_dump(struct ismt_priv *priv) +{ + struct device *dev = &priv->pci_dev->dev; + + dev_dbg(dev, "Dump of the iSMT Master Registers\n"); + dev_dbg(dev, " MDBA..... : (0x%p)=0x%016llX\n", + priv->smba + ISMT_MSTR_MDBA, + (long long unsigned int)readq(priv->smba + ISMT_MSTR_MDBA)); + dev_dbg(dev, " MCTRL.... : (0x%p)=0x%X\n", + priv->smba + ISMT_MSTR_MCTRL, + readl(priv->smba + ISMT_MSTR_MCTRL)); + dev_dbg(dev, " MSTS..... : (0x%p)=0x%X\n", + priv->smba + ISMT_MSTR_MSTS, + readl(priv->smba + ISMT_MSTR_MSTS)); + dev_dbg(dev, " MDS...... : (0x%p)=0x%X\n", + priv->smba + ISMT_MSTR_MDS, + readl(priv->smba + ISMT_MSTR_MDS)); + dev_dbg(dev, " RPOLICY.. : (0x%p)=0x%X\n", + priv->smba + ISMT_MSTR_RPOLICY, + readl(priv->smba + ISMT_MSTR_RPOLICY)); + dev_dbg(dev, " SPGT..... : (0x%p)=0x%X\n", + priv->smba + ISMT_SPGT, + readl(priv->smba + ISMT_SPGT)); +} + +/** + * ismt_submit_desc() - add a descriptor to the ring + * @priv: iSMT private data + */ +static void ismt_submit_desc(struct ismt_priv *priv) +{ + uint fmhp; + uint val; + + ismt_desc_dump(priv); + ismt_gen_reg_dump(priv); + ismt_mstr_reg_dump(priv); + + /* Set the FMHP (Firmware Master Head Pointer)*/ + fmhp = ((priv->head + 1) % ISMT_DESC_ENTRIES) << 16; + val = readl(priv->smba + ISMT_MSTR_MCTRL); + writel((val & ~ISMT_MCTRL_FMHP) | fmhp, + priv->smba + ISMT_MSTR_MCTRL); + + /* Set the start bit */ + val = readl(priv->smba + ISMT_MSTR_MCTRL); + writel(val | ISMT_MCTRL_SS, + priv->smba + ISMT_MSTR_MCTRL); +} + +/** + * ismt_process_desc() - handle the completion of the descriptor + * @desc: the iSMT hardware descriptor + * @data: data buffer from the upper layer + * @priv: ismt_priv struct holding our dma buffer + * @size: SMBus transaction type + * @read_write: flag to indicate if this is a read or write + */ +static int ismt_process_desc(const struct ismt_desc *desc, + union i2c_smbus_data *data, + struct ismt_priv *priv, int size, + char read_write) +{ + u8 *dma_buffer = PTR_ALIGN(&priv->buffer[0], 16); + + dev_dbg(&priv->pci_dev->dev, "Processing completed descriptor\n"); + __ismt_desc_dump(&priv->pci_dev->dev, desc); + ismt_gen_reg_dump(priv); + ismt_mstr_reg_dump(priv); + + if (desc->status & ISMT_DESC_SCS) { + if (read_write == I2C_SMBUS_WRITE && + size != I2C_SMBUS_PROC_CALL && + size != I2C_SMBUS_BLOCK_PROC_CALL) + return 0; + + switch (size) { + case I2C_SMBUS_BYTE: + case I2C_SMBUS_BYTE_DATA: + data->byte = dma_buffer[0]; + break; + case I2C_SMBUS_WORD_DATA: + case I2C_SMBUS_PROC_CALL: + data->word = dma_buffer[0] | (dma_buffer[1] << 8); + break; + case I2C_SMBUS_BLOCK_DATA: + case I2C_SMBUS_BLOCK_PROC_CALL: + if (desc->rxbytes != dma_buffer[0] + 1) + return -EMSGSIZE; + + memcpy(data->block, dma_buffer, desc->rxbytes); + break; + case I2C_SMBUS_I2C_BLOCK_DATA: + memcpy(&data->block[1], dma_buffer, desc->rxbytes); + data->block[0] = desc->rxbytes; + break; + } + return 0; + } + + if (likely(desc->status & ISMT_DESC_NAK)) + return -ENXIO; + + if (desc->status & ISMT_DESC_CRC) + return -EBADMSG; + + if (desc->status & ISMT_DESC_COL) + return -EAGAIN; + + if (desc->status & ISMT_DESC_LPR) + return -EPROTO; + + if (desc->status & (ISMT_DESC_DLTO | ISMT_DESC_CLTO)) + return -ETIMEDOUT; + + return -EIO; +} + +static void ismt_setscl(struct ismt_priv *priv, unsigned int level) +{ + int pin_status; + + pin_status = readl(priv->smba + ISMT_DBCTRL); + if (level == 0) { + pin_status &= (~ISMT_DBCTRL_CLK_CTL); + } else { + pin_status |= ISMT_DBCTRL_CLK_CTL; + } + writel(pin_status, priv->smba + ISMT_DBCTRL); + pin_status = readl(priv->smba + ISMT_DBCTRL); + dev_dbg(&priv->pci_dev->dev, "dbctrl status = 0x%04x\r\n", pin_status); + return; +} + +static void ismt_i2c_unblock(struct ismt_priv *priv) +{ + int i; + int pin_status, ori_status; + + pin_status = readl(priv->smba + ISMT_DBCTRL); + ori_status = pin_status; + if ((pin_status & ISMT_DBCTRL_ENABLE) == 0) { + pin_status |= ISMT_DBCTRL_ENABLE; + writel(pin_status, priv->smba + ISMT_DBCTRL); + pin_status = readl(priv->smba + ISMT_DBCTRL); + dev_dbg(&priv->pci_dev->dev, "enable dbctrl pin status = 0x%04x\r\n", pin_status); + } + + for (i = 0; i < 10; i++) { + ismt_setscl(priv, 0); + udelay(5); + ismt_setscl(priv, 1); + udelay(5); + } + + pin_status = readl(priv->smba + ISMT_DBCTRL); + if (pin_status != ori_status) { + writel(ori_status, priv->smba + ISMT_DBCTRL); + pin_status = readl(priv->smba + ISMT_DBCTRL); + dev_dbg(&priv->pci_dev->dev, "reback dbctrl pin status = 0x%04x\r\n", pin_status); + } + + return; +} + +static int ismt_check_i2c_unblock(struct ismt_priv *priv) +{ + int pin_status; + + pin_status = readl(priv->smba + ISMT_DBSTS); + + if ( (!(pin_status & ISMT_DBSTS_SDA_STS) ) && (pin_status & ISMT_DBSTS_CLK_STS) ) { + dev_dbg(&priv->pci_dev->dev, "SDA is low, send 9 clock to device!\n"); + ismt_i2c_unblock(priv); + } + return 0; +} + +static int ismt_check_i2c_scl(struct ismt_priv *priv) +{ + int pin_status; + + pin_status = readl(priv->smba + ISMT_DBSTS); + + if ( (pin_status & ISMT_DBSTS_SDA_STS) && (pin_status & ISMT_DBSTS_CLK_STS) ) { + return 0; + } + + dev_warn(&priv->pci_dev->dev, "SDA or SCL is low.pin_status:0x%x\n", pin_status); + return -1; +} + +/* Make sure the SMBus host is ready to start transmitting. + Return 0 if it is, -EIO if it is not. */ +static int ismt_check_pre(struct ismt_priv *priv) +{ + ismt_check_i2c_unblock(priv); + + /* SDA or SCL is low, return -EIO */ + if (ismt_check_i2c_scl(priv)) { + return -EIO; + } + + return 0; +} + +/** + * ismt_access() - process an SMBus command + * @adap: the i2c host adapter + * @addr: address of the i2c/SMBus target + * @flags: command options + * @read_write: read from or write to device + * @command: the i2c/SMBus command to issue + * @size: SMBus transaction type + * @data: read/write data buffer + */ +static int ismt_access(struct i2c_adapter *adap, u16 addr, + unsigned short flags, char read_write, u8 command, + int size, union i2c_smbus_data *data) +{ + int ret; + unsigned long time_left; + dma_addr_t dma_addr = 0; /* address of the data buffer */ + u8 dma_size = 0; + enum dma_data_direction dma_direction = 0; + struct ismt_desc *desc; + struct ismt_priv *priv = i2c_get_adapdata(adap); + struct device *dev = &priv->pci_dev->dev; + u8 *dma_buffer = PTR_ALIGN(&priv->buffer[0], 16); + + ret = ismt_check_pre(priv); + if (ret < 0) { + return ret; + } + + desc = &priv->hw[priv->head]; + + /* Initialize the DMA buffer */ + mem_clear(priv->buffer, sizeof(priv->buffer)); + + /* Initialize the descriptor */ + mem_clear(desc, sizeof(struct ismt_desc)); + desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, read_write); + + /* Always clear the log entries */ + mem_clear(priv->log, ISMT_LOG_ENTRIES * sizeof(u32)); + + /* Initialize common control bits */ + if (likely(pci_dev_msi_enabled(priv->pci_dev))) + desc->control = ISMT_DESC_INT | ISMT_DESC_FAIR; + else + desc->control = ISMT_DESC_FAIR; + + if ((flags & I2C_CLIENT_PEC) && (size != I2C_SMBUS_QUICK) + && (size != I2C_SMBUS_I2C_BLOCK_DATA)) + desc->control |= ISMT_DESC_PEC; + + switch (size) { + case I2C_SMBUS_QUICK: + dev_dbg(dev, "I2C_SMBUS_QUICK\n"); + break; + + case I2C_SMBUS_BYTE: + if (read_write == I2C_SMBUS_WRITE) { + /* + * Send Byte + * The command field contains the write data + */ + dev_dbg(dev, "I2C_SMBUS_BYTE: WRITE\n"); + desc->control |= ISMT_DESC_CWRL; + desc->wr_len_cmd = command; + } else { + /* Receive Byte */ + dev_dbg(dev, "I2C_SMBUS_BYTE: READ\n"); + dma_size = 1; + dma_direction = DMA_FROM_DEVICE; + desc->rd_len = 1; + } + break; + + case I2C_SMBUS_BYTE_DATA: + if (read_write == I2C_SMBUS_WRITE) { + /* + * Write Byte + * Command plus 1 data byte + */ + dev_dbg(dev, "I2C_SMBUS_BYTE_DATA: WRITE\n"); + desc->wr_len_cmd = 2; + dma_size = 2; + dma_direction = DMA_TO_DEVICE; + dma_buffer[0] = command; + dma_buffer[1] = data->byte; + } else { + /* Read Byte */ + dev_dbg(dev, "I2C_SMBUS_BYTE_DATA: READ\n"); + desc->control |= ISMT_DESC_CWRL; + desc->wr_len_cmd = command; + desc->rd_len = 1; + dma_size = 1; + dma_direction = DMA_FROM_DEVICE; + } + break; + + case I2C_SMBUS_WORD_DATA: + if (read_write == I2C_SMBUS_WRITE) { + /* Write Word */ + dev_dbg(dev, "I2C_SMBUS_WORD_DATA: WRITE\n"); + desc->wr_len_cmd = 3; + dma_size = 3; + dma_direction = DMA_TO_DEVICE; + dma_buffer[0] = command; + dma_buffer[1] = data->word & 0xff; + dma_buffer[2] = data->word >> 8; + } else { + /* Read Word */ + dev_dbg(dev, "I2C_SMBUS_WORD_DATA: READ\n"); + desc->wr_len_cmd = command; + desc->control |= ISMT_DESC_CWRL; + desc->rd_len = 2; + dma_size = 2; + dma_direction = DMA_FROM_DEVICE; + } + break; + + case I2C_SMBUS_PROC_CALL: + dev_dbg(dev, "I2C_SMBUS_PROC_CALL\n"); + desc->wr_len_cmd = 3; + desc->rd_len = 2; + dma_size = 3; + dma_direction = DMA_BIDIRECTIONAL; + dma_buffer[0] = command; + dma_buffer[1] = data->word & 0xff; + dma_buffer[2] = data->word >> 8; + break; + + case I2C_SMBUS_BLOCK_DATA: + if (read_write == I2C_SMBUS_WRITE) { + /* Block Write */ + dev_dbg(dev, "I2C_SMBUS_BLOCK_DATA: WRITE\n"); + if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX) + return -EINVAL; + + dma_size = data->block[0] + 1; + dma_direction = DMA_TO_DEVICE; + desc->wr_len_cmd = dma_size; + desc->control |= ISMT_DESC_BLK; + dma_buffer[0] = command; + memcpy(&dma_buffer[1], &data->block[1], dma_size - 1); + } else { + /* Block Read */ + dev_dbg(dev, "I2C_SMBUS_BLOCK_DATA: READ\n"); + dma_size = I2C_SMBUS_BLOCK_MAX; + dma_direction = DMA_FROM_DEVICE; + desc->rd_len = dma_size; + desc->wr_len_cmd = command; + desc->control |= (ISMT_DESC_BLK | ISMT_DESC_CWRL); + } + break; + + case I2C_SMBUS_BLOCK_PROC_CALL: + dev_dbg(dev, "I2C_SMBUS_BLOCK_PROC_CALL\n"); + if (data->block[0] > I2C_SMBUS_BLOCK_MAX) + return -EINVAL; + + dma_size = I2C_SMBUS_BLOCK_MAX; + desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, 1); + desc->wr_len_cmd = data->block[0] + 1; + desc->rd_len = dma_size; + desc->control |= ISMT_DESC_BLK; + dma_direction = DMA_BIDIRECTIONAL; + dma_buffer[0] = command; + memcpy(&dma_buffer[1], &data->block[1], data->block[0]); + break; + + case I2C_SMBUS_I2C_BLOCK_DATA: + /* Make sure the length is valid */ + if (data->block[0] < 1) + data->block[0] = 1; + + if (data->block[0] > I2C_SMBUS_BLOCK_MAX) + data->block[0] = I2C_SMBUS_BLOCK_MAX; + + if (read_write == I2C_SMBUS_WRITE) { + /* i2c Block Write */ + dev_dbg(dev, "I2C_SMBUS_I2C_BLOCK_DATA: WRITE\n"); + dma_size = data->block[0] + 1; + dma_direction = DMA_TO_DEVICE; + desc->wr_len_cmd = dma_size; + desc->control |= ISMT_DESC_I2C; + dma_buffer[0] = command; + memcpy(&dma_buffer[1], &data->block[1], dma_size - 1); + } else { + /* i2c Block Read */ + dev_dbg(dev, "I2C_SMBUS_I2C_BLOCK_DATA: READ\n"); + dma_size = data->block[0]; + dma_direction = DMA_FROM_DEVICE; + desc->rd_len = dma_size; + desc->wr_len_cmd = command; + desc->control |= (ISMT_DESC_I2C | ISMT_DESC_CWRL); + /* + * Per the "Table 15-15. I2C Commands", + * in the External Design Specification (EDS), + * (Document Number: 508084, Revision: 2.0), + * the _rw bit must be 0 + */ + desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, 0); + } + break; + + default: + dev_err(dev, "Unsupported transaction %d\n", + size); + return -EOPNOTSUPP; + } + + /* map the data buffer */ + if (dma_size != 0) { + dev_dbg(dev, " dev=%p\n", dev); + dev_dbg(dev, " data=%p\n", data); + dev_dbg(dev, " dma_buffer=%p\n", dma_buffer); + dev_dbg(dev, " dma_size=%d\n", dma_size); + dev_dbg(dev, " dma_direction=%d\n", dma_direction); + + dma_addr = dma_map_single(dev, + dma_buffer, + dma_size, + dma_direction); + + if (dma_mapping_error(dev, dma_addr)) { + dev_err(dev, "Error in mapping dma buffer %p\n", + dma_buffer); + return -EIO; + } + + dev_dbg(dev, " dma_addr = %pad\n", &dma_addr); + + desc->dptr_low = lower_32_bits(dma_addr); + desc->dptr_high = upper_32_bits(dma_addr); + } + + reinit_completion(&priv->cmp); + + /* Add the descriptor */ + ismt_submit_desc(priv); + + /* Now we wait for interrupt completion, 1s */ + time_left = wait_for_completion_timeout(&priv->cmp, HZ*1); + + /* unmap the data buffer */ + if (dma_size != 0) + dma_unmap_single(dev, dma_addr, dma_size, dma_direction); + + if (unlikely(!time_left)) { + dev_warn(dev, "completion wait timed out:addr[%d-0x%x], read_write[%d], command[0x%x], size[%d]\n", + adap->nr, addr, read_write, command, size); + ismt_reset_dma(priv); + ret = -ETIMEDOUT; + priv->head = 0; + return ret; + } + + /* do any post processing of the descriptor here */ + ret = ismt_process_desc(desc, data, priv, size, read_write); + + /* Update the ring pointer */ + priv->head++; + priv->head %= ISMT_DESC_ENTRIES; + + return ret; +} + +/** + * ismt_func() - report which i2c commands are supported by this adapter + * @adap: the i2c host adapter + */ +static u32 ismt_func(struct i2c_adapter *adap) +{ + return I2C_FUNC_SMBUS_QUICK | + I2C_FUNC_SMBUS_BYTE | + I2C_FUNC_SMBUS_BYTE_DATA | + I2C_FUNC_SMBUS_WORD_DATA | + I2C_FUNC_SMBUS_PROC_CALL | + I2C_FUNC_SMBUS_BLOCK_PROC_CALL | + I2C_FUNC_SMBUS_BLOCK_DATA | + I2C_FUNC_SMBUS_I2C_BLOCK | + I2C_FUNC_SMBUS_PEC; +} + +static const struct i2c_algorithm smbus_algorithm = { + .smbus_xfer = ismt_access, + .functionality = ismt_func, +}; + +/** + * ismt_handle_isr() - interrupt handler bottom half + * @priv: iSMT private data + */ +static irqreturn_t ismt_handle_isr(struct ismt_priv *priv) +{ + complete(&priv->cmp); + + return IRQ_HANDLED; +} + + +/** + * ismt_do_interrupt() - IRQ interrupt handler + * @vec: interrupt vector + * @data: iSMT private data + */ +static irqreturn_t ismt_do_interrupt(int vec, void *data) +{ + u32 val; + struct ismt_priv *priv = data; + + /* + * check to see it's our interrupt, return IRQ_NONE if not ours + * since we are sharing interrupt + */ + val = readl(priv->smba + ISMT_MSTR_MSTS); + + if (!(val & (ISMT_MSTS_MIS | ISMT_MSTS_MEIS))) + return IRQ_NONE; + else + writel(val | ISMT_MSTS_MIS | ISMT_MSTS_MEIS, + priv->smba + ISMT_MSTR_MSTS); + + return ismt_handle_isr(priv); +} + +/** + * ismt_do_msi_interrupt() - MSI interrupt handler + * @vec: interrupt vector + * @data: iSMT private data + */ +static irqreturn_t ismt_do_msi_interrupt(int vec, void *data) +{ + return ismt_handle_isr(data); +} + +/** + * ismt_hw_init() - initialize the iSMT hardware + * @priv: iSMT private data + */ +static void ismt_hw_init(struct ismt_priv *priv) +{ + u32 val; + struct device *dev = &priv->pci_dev->dev; + + /* initialize the Master Descriptor Base Address (MDBA) */ + writeq(priv->io_rng_dma, priv->smba + ISMT_MSTR_MDBA); + + writeq(priv->log_dma, priv->smba + ISMT_GR_SMTICL); + + /* initialize the Master Control Register (MCTRL) */ + writel(ISMT_MCTRL_MEIE, priv->smba + ISMT_MSTR_MCTRL); + + /* initialize the Master Status Register (MSTS) */ + writel(0, priv->smba + ISMT_MSTR_MSTS); + + /* initialize the Master Descriptor Size (MDS) */ + val = readl(priv->smba + ISMT_MSTR_MDS); + writel((val & ~ISMT_MDS_MASK) | (ISMT_DESC_ENTRIES - 1), + priv->smba + ISMT_MSTR_MDS); + + /* + * Set the SMBus speed (could use this for slow HW debuggers) + */ + + val = readl(priv->smba + ISMT_SPGT); + + switch (bus_speed) { + case 0: + break; + + case 80: + dev_dbg(dev, "Setting SMBus clock to 80 kHz\n"); + writel(((val & ~ISMT_SPGT_SPD_MASK) | ISMT_SPGT_SPD_80K), + priv->smba + ISMT_SPGT); + break; + + case 100: + dev_dbg(dev, "Setting SMBus clock to 100 kHz\n"); + writel(((val & ~ISMT_SPGT_SPD_MASK) | ISMT_SPGT_SPD_100K), + priv->smba + ISMT_SPGT); + break; + + case 400: + dev_dbg(dev, "Setting SMBus clock to 400 kHz\n"); + writel(((val & ~ISMT_SPGT_SPD_MASK) | ISMT_SPGT_SPD_400K), + priv->smba + ISMT_SPGT); + break; + + case 1000: + dev_dbg(dev, "Setting SMBus clock to 1000 kHz\n"); + writel(((val & ~ISMT_SPGT_SPD_MASK) | ISMT_SPGT_SPD_1M), + priv->smba + ISMT_SPGT); + break; + + default: + dev_warn(dev, "Invalid SMBus clock speed, only 0, 80, 100, 400, and 1000 are valid\n"); + break; + } + + val = readl(priv->smba + ISMT_SPGT); + + switch (val & ISMT_SPGT_SPD_MASK) { + case ISMT_SPGT_SPD_80K: + bus_speed = 80; + break; + case ISMT_SPGT_SPD_100K: + bus_speed = 100; + break; + case ISMT_SPGT_SPD_400K: + bus_speed = 400; + break; + case ISMT_SPGT_SPD_1M: + bus_speed = 1000; + break; + } + dev_dbg(dev, "SMBus clock is running at %d kHz\n", bus_speed); +} + +/** + * ismt_dev_init() - initialize the iSMT data structures + * @priv: iSMT private data + */ +static int ismt_dev_init(struct ismt_priv *priv) +{ + /* allocate memory for the descriptor */ + priv->hw = dmam_alloc_coherent(&priv->pci_dev->dev, + (ISMT_DESC_ENTRIES + * sizeof(struct ismt_desc)), + &priv->io_rng_dma, + GFP_KERNEL); + if (!priv->hw) + return -ENOMEM; + + priv->head = 0; + init_completion(&priv->cmp); + + priv->log = dmam_alloc_coherent(&priv->pci_dev->dev, + ISMT_LOG_ENTRIES * sizeof(u32), + &priv->log_dma, GFP_KERNEL); + if (!priv->log) + return -ENOMEM; + + return 0; +} + +/** + * ismt_int_init() - initialize interrupts + * @priv: iSMT private data + */ +static int ismt_int_init(struct ismt_priv *priv) +{ + int err; + + /* Try using MSI interrupts */ + err = pci_enable_msi(priv->pci_dev); + if (err) + goto intx; + + err = devm_request_irq(&priv->pci_dev->dev, + priv->pci_dev->irq, + ismt_do_msi_interrupt, + 0, + "ismt-msi", + priv); + if (err) { + pci_disable_msi(priv->pci_dev); + goto intx; + } + + return 0; + + /* Try using legacy interrupts */ +intx: + dev_warn(&priv->pci_dev->dev, + "Unable to use MSI interrupts, falling back to legacy\n"); + + err = devm_request_irq(&priv->pci_dev->dev, + priv->pci_dev->irq, + ismt_do_interrupt, + IRQF_SHARED, + "ismt-intx", + priv); + if (err) { + dev_err(&priv->pci_dev->dev, "no usable interrupts\n"); + return err; + } + + return 0; +} + +static struct pci_driver ismt_driver; + +/** + * ismt_probe() - probe for iSMT devices + * @pdev: PCI-Express device + * @id: PCI-Express device ID + */ +static int +ismt_probe(struct pci_dev *pdev, const struct pci_device_id *id) +{ + int err; + struct ismt_priv *priv; + unsigned long start, len; + + priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + pci_set_drvdata(pdev, priv); + + i2c_set_adapdata(&priv->adapter, priv); + priv->adapter.owner = THIS_MODULE; + priv->adapter.class = I2C_CLASS_HWMON; + priv->adapter.algo = &smbus_algorithm; + priv->adapter.dev.parent = &pdev->dev; + ACPI_COMPANION_SET(&priv->adapter.dev, ACPI_COMPANION(&pdev->dev)); + priv->adapter.retries = ISMT_MAX_RETRIES; + + priv->pci_dev = pdev; + + err = pcim_enable_device(pdev); + if (err) { + dev_err(&pdev->dev, "Failed to enable SMBus PCI device (%d)\n", + err); + return err; + } + + /* enable bus mastering */ + pci_set_master(pdev); + + /* Determine the address of the SMBus area */ + start = pci_resource_start(pdev, SMBBAR); + len = pci_resource_len(pdev, SMBBAR); + if (!start || !len) { + dev_err(&pdev->dev, + "SMBus base address uninitialized, upgrade BIOS\n"); + return -ENODEV; + } + + snprintf(priv->adapter.name, sizeof(priv->adapter.name), + "SMBus iSMT adapter at %lx", start); + + dev_dbg(&priv->pci_dev->dev, " start=0x%lX\n", start); + dev_dbg(&priv->pci_dev->dev, " len=0x%lX\n", len); + + err = acpi_check_resource_conflict(&pdev->resource[SMBBAR]); + if (err) { + dev_err(&pdev->dev, "ACPI resource conflict!\n"); + return err; + } + + err = pci_request_region(pdev, SMBBAR, ismt_driver.name); + if (err) { + dev_err(&pdev->dev, + "Failed to request SMBus region 0x%lx-0x%lx\n", + start, start + len); + return err; + } + + priv->smba = pcim_iomap(pdev, SMBBAR, len); + if (!priv->smba) { + dev_err(&pdev->dev, "Unable to ioremap SMBus BAR\n"); + return -ENODEV; + } + + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)); + if (err) { + dev_err(&pdev->dev, "dma_set_mask fail\n"); + return -ENODEV; + } + + err = ismt_dev_init(priv); + if (err) + return err; + + ismt_hw_init(priv); + + err = ismt_int_init(priv); + if (err) + return err; + + err = i2c_add_adapter(&priv->adapter); + if (err) + return -ENODEV; + dev_info(&pdev->dev, "wb-i2c-ismt probe ok.\n"); + return 0; +} + +/** + * ismt_remove() - release driver resources + * @pdev: PCI-Express device + */ +static void ismt_remove(struct pci_dev *pdev) +{ + struct ismt_priv *priv = pci_get_drvdata(pdev); + + i2c_del_adapter(&priv->adapter); +} + +static struct pci_driver ismt_driver = { + .name = "wb_ismt_smbus", + .id_table = ismt_ids, + .probe = ismt_probe, + .remove = ismt_remove, +}; + +module_pci_driver(ismt_driver); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_AUTHOR("Bill E. Brown "); +MODULE_DESCRIPTION("Intel SMBus Message Transport (iSMT) driver"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c index f318234ae90f..854675d9fa99 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.c @@ -54,6 +54,7 @@ #include #include #include +#include #include "wb_i2c_mux_pca954x.h" @@ -63,6 +64,9 @@ #define I2C_RETRY_TIMES 5 #define I2C_RETRY_WAIT_TIMES 10 /*delay 10ms*/ +#define WIDTH_1Byte (1) +#define WIDTH_4Byte (4) + typedef struct pca9548_cfg_info_s { uint32_t pca9548_base_nr; uint32_t pca9548_reset_type; @@ -318,6 +322,12 @@ static int pca954x_reset_file_read(const char *path, uint32_t pos, uint8_t *val, struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDONLY, 0); if (IS_ERR(filp)) { PCA954X_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -326,9 +336,10 @@ static int pca954x_reset_file_read(const char *path, uint32_t pos, uint8_t *val, } tmp_pos = (loff_t)pos; - ret = kernel_read(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &tmp_pos, 0); if (ret < 0) { - PCA954X_ERROR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + PCA954X_ERROR("vfs_iter_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -350,6 +361,12 @@ static int pca954x_reset_file_write(const char *path, uint32_t pos, uint8_t *val struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { PCA954X_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -358,9 +375,10 @@ static int pca954x_reset_file_write(const char *path, uint32_t pos, uint8_t *val } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - PCA954X_ERROR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + PCA954X_ERROR("vfs_iter_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -458,8 +476,11 @@ static int pca954x_do_file_reset(struct i2c_mux_core *muxc) struct pca954x *data; pca9548_cfg_info_t *reset_cfg; file_attr_t *file_attr; - u8 val; int udelay_cnt; + uint8_t read_value[4], write_reset_on_value[4], write_reset_off_value[4]; + uint8_t tmp_read8; + uint32_t tmp_read32, tmp_write32; + data = i2c_mux_priv(muxc); reset_cfg = &data->pca9548_cfg_info; @@ -468,21 +489,41 @@ static int pca954x_do_file_reset(struct i2c_mux_core *muxc) PCA954X_DEBUG("rst_delay_b:%u, rst_delay:%u, rst_delay_a:%u.\n", reset_cfg->rst_delay_b, reset_cfg->rst_delay, reset_cfg->rst_delay_a); - PCA954X_DEBUG("dev_name:%s, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x.\n", + PCA954X_DEBUG("dev_name:%s, offset:0x%x, mask:0x%x, on:0x%x, off:0x%x, width: %u\n", file_attr->dev_name, file_attr->offset, file_attr->mask, - file_attr->reset_on, file_attr->reset_off); + file_attr->reset_on, file_attr->reset_off, file_attr->width); if (reset_cfg->rst_delay_b) { usleep_range(reset_cfg->rst_delay_b, reset_cfg->rst_delay_b + 1); } - err = pca954x_reset_file_read(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + mem_clear(read_value, sizeof(read_value)); + mem_clear(write_reset_on_value, sizeof(write_reset_on_value)); + mem_clear(write_reset_off_value, sizeof(write_reset_off_value)); + err = pca954x_reset_file_read(file_attr->dev_name, file_attr->offset, read_value, file_attr->width); if (err < 0) { goto out; } - val &= ~(file_attr->mask); - val |= file_attr->reset_on; - err = pca954x_reset_file_write(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + + if (file_attr->width == WIDTH_1Byte) { + tmp_read8 = read_value[0]; + write_reset_on_value[0] = ((tmp_read8 & (~file_attr->mask)) | file_attr->reset_on) & 0xFF; + write_reset_off_value[0] = ((tmp_read8 & (~file_attr->mask)) | file_attr->reset_off) & 0xFF; + PCA954X_DEBUG("1 byte write reset on val[0]: 0x%x, write reset off valu[0]: 0x%x\n", + write_reset_on_value[0], write_reset_off_value[0]); + } else { + memcpy((uint8_t *)&tmp_read32, read_value, 4); + tmp_write32 = (tmp_read32 & (~file_attr->mask)) | file_attr->reset_on; + memcpy(write_reset_on_value, (uint8_t *)&tmp_write32, 4); + tmp_write32 = (tmp_read32 & (~file_attr->mask)) | file_attr->reset_off; + memcpy(write_reset_off_value, (uint8_t *)&tmp_write32, 4); + PCA954X_DEBUG("4 byte write reset on val[0]:0x%x, val[1]:0x%x, val[2]:0x%x, val[3]:0x%x", + write_reset_on_value[0], write_reset_on_value[1], write_reset_on_value[2], write_reset_on_value[3]); + PCA954X_DEBUG("4 byte write reset off val[0]:0x%x, val[1]:0x%x, val[2]:0x%x, val[3]:0x%x", + write_reset_off_value[0], write_reset_off_value[1], write_reset_off_value[2], write_reset_off_value[3]); + } + + err = pca954x_reset_file_write(file_attr->dev_name, file_attr->offset, write_reset_on_value, file_attr->width); if (err < 0) { goto out; } @@ -491,9 +532,7 @@ static int pca954x_do_file_reset(struct i2c_mux_core *muxc) usleep_range(reset_cfg->rst_delay, reset_cfg->rst_delay + 1); } - val &= ~(file_attr->mask); - val |= file_attr->reset_off; - err = pca954x_reset_file_write(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + err = pca954x_reset_file_write(file_attr->dev_name, file_attr->offset, write_reset_off_value, file_attr->width); if (err < 0) { goto out; } @@ -502,12 +541,17 @@ static int pca954x_do_file_reset(struct i2c_mux_core *muxc) timeout = reset_cfg->rst_delay_a; while (timeout > 0) { usleep_range(1, 2); - err = pca954x_reset_file_read(file_attr->dev_name, file_attr->offset, &val, sizeof(val)); + err = pca954x_reset_file_read(file_attr->dev_name, file_attr->offset, read_value, file_attr->width); if (err < 0) { goto out; } - val &= (file_attr->mask); - if (val == file_attr->reset_off) { + if (file_attr->width == WIDTH_1Byte) { + tmp_read32 = read_value[0]; + } else { + memcpy((uint8_t *)&tmp_read32, read_value, 4); + } + tmp_read32 &= (file_attr->mask); + if (tmp_read32 == file_attr->reset_off) { ret = 0; PCA954X_DEBUG("pca954x_do_file_reset success.\n"); break; @@ -953,7 +997,7 @@ static int pca954x_irq_setup(struct i2c_mux_core *muxc) static int of_pca954x_reset_data_init(struct pca954x *data) { - int err; + int err, rv; struct device *dev = &data->client->dev; pca9548_cfg_info_t *reset_cfg; @@ -987,7 +1031,6 @@ static int of_pca954x_reset_data_init(struct pca954x *data) reset_cfg->rst_delay, reset_cfg->rst_delay_a); if (reset_cfg->pca9548_reset_type == PCA9548_RESET_I2C) { - PCA954X_DEBUG("reset by i2c.\n"); err = of_property_read_u32(dev->of_node, "i2c_bus", &reset_cfg->attr.i2c_attr.i2c_bus); err |=of_property_read_u32(dev->of_node, "i2c_addr", &reset_cfg->attr.i2c_attr.i2c_addr); @@ -1003,7 +1046,6 @@ static int of_pca954x_reset_data_init(struct pca954x *data) reset_cfg->attr.i2c_attr.reg_offset, reset_cfg->attr.i2c_attr.mask, reset_cfg->attr.i2c_attr.reset_on, reset_cfg->attr.i2c_attr.reset_off); } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_GPIO) { - PCA954X_DEBUG("reset by gpio.\n"); err = of_property_read_u32(dev->of_node, "gpio", &reset_cfg->attr.gpio_attr.gpio); err |=of_property_read_u32(dev->of_node, "reset_on", &reset_cfg->attr.gpio_attr.reset_on); @@ -1016,7 +1058,6 @@ static int of_pca954x_reset_data_init(struct pca954x *data) reset_cfg->attr.gpio_attr.reset_off); reset_cfg->attr.gpio_attr.gpio_init = 0; } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_IO) { - PCA954X_DEBUG("reset by io.\n"); err = of_property_read_u32(dev->of_node, "io_addr", &reset_cfg->attr.io_attr.io_addr); err |=of_property_read_u32(dev->of_node, "mask", &reset_cfg->attr.io_attr.mask); @@ -1029,7 +1070,6 @@ static int of_pca954x_reset_data_init(struct pca954x *data) reset_cfg->attr.io_attr.io_addr, reset_cfg->attr.io_attr.mask, reset_cfg->attr.io_attr.reset_on, reset_cfg->attr.io_attr.reset_off); } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_FILE) { - PCA954X_DEBUG("reset by file.\n"); err = of_property_read_string(dev->of_node, "dev_name", &reset_cfg->attr.file_attr.dev_name); err |=of_property_read_u32(dev->of_node, "offset", &reset_cfg->attr.file_attr.offset); @@ -1039,9 +1079,18 @@ static int of_pca954x_reset_data_init(struct pca954x *data) if (err) { goto dts_config_err; } - PCA954X_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + rv = of_property_read_u32(dev->of_node, "width", &reset_cfg->attr.file_attr.width); + if (rv == 0) { + if ((reset_cfg->attr.file_attr.width != WIDTH_1Byte) && (reset_cfg->attr.file_attr.width != WIDTH_4Byte)) { + PCA954X_ERROR("9548 reset config error, witdh: %u not support.\n", reset_cfg->attr.file_attr.width); + return -EINVAL; + } + } else { + reset_cfg->attr.file_attr.width = 1; + } + PCA954X_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x, width: %u\n", reset_cfg->attr.file_attr.dev_name, reset_cfg->attr.file_attr.mask, - reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off); + reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off, reset_cfg->attr.file_attr.width); } else { PCA954X_ERROR("Unsupport reset type:%d.\n", reset_cfg->pca9548_reset_type); goto dts_config_err; @@ -1082,7 +1131,6 @@ static int pca954x_reset_data_init(struct pca954x *data) reset_cfg->rst_delay, reset_cfg->rst_delay_a); if (reset_cfg->pca9548_reset_type == PCA9548_RESET_I2C) { - PCA954X_DEBUG("reset by i2c.\n"); reset_cfg->attr.i2c_attr.i2c_bus = i2c_mux_pca954x_device->attr.i2c_attr.i2c_bus; reset_cfg->attr.i2c_attr.i2c_addr = i2c_mux_pca954x_device->attr.i2c_attr.i2c_addr; @@ -1095,7 +1143,6 @@ static int pca954x_reset_data_init(struct pca954x *data) reset_cfg->attr.i2c_attr.reg_offset, reset_cfg->attr.i2c_attr.mask, reset_cfg->attr.i2c_attr.reset_on, reset_cfg->attr.i2c_attr.reset_off); } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_GPIO) { - PCA954X_DEBUG("reset by gpio.\n"); reset_cfg->attr.gpio_attr.gpio = i2c_mux_pca954x_device->attr.gpio_attr.gpio; reset_cfg->attr.gpio_attr.reset_on = i2c_mux_pca954x_device->attr.gpio_attr.reset_on; @@ -1105,7 +1152,6 @@ static int pca954x_reset_data_init(struct pca954x *data) reset_cfg->attr.gpio_attr.reset_off); reset_cfg->attr.gpio_attr.gpio_init = 0; } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_IO) { - PCA954X_DEBUG("reset by io.\n"); reset_cfg->attr.io_attr.io_addr = i2c_mux_pca954x_device->attr.io_attr.io_addr; reset_cfg->attr.io_attr.mask = i2c_mux_pca954x_device->attr.io_attr.mask; @@ -1115,15 +1161,24 @@ static int pca954x_reset_data_init(struct pca954x *data) reset_cfg->attr.io_attr.io_addr, reset_cfg->attr.io_attr.mask, reset_cfg->attr.io_attr.reset_on, reset_cfg->attr.io_attr.reset_off); } else if (reset_cfg->pca9548_reset_type == PCA9548_RESET_FILE) { - + PCA954X_DEBUG("reset by file.\n"); reset_cfg->attr.file_attr.dev_name = i2c_mux_pca954x_device->attr.file_attr.dev_name; reset_cfg->attr.file_attr.offset = i2c_mux_pca954x_device->attr.file_attr.offset; reset_cfg->attr.file_attr.mask = i2c_mux_pca954x_device->attr.file_attr.mask; reset_cfg->attr.file_attr.reset_on = i2c_mux_pca954x_device->attr.file_attr.reset_on; reset_cfg->attr.file_attr.reset_off = i2c_mux_pca954x_device->attr.file_attr.reset_off; - PCA954X_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x.\n", + reset_cfg->attr.file_attr.width = i2c_mux_pca954x_device->attr.file_attr.width; + if (reset_cfg->attr.file_attr.width > 0) { + if ((reset_cfg->attr.file_attr.width != WIDTH_1Byte) && (reset_cfg->attr.file_attr.width != WIDTH_4Byte)) { + PCA954X_ERROR("9548 reset config error, witdh: %u not support.\n", reset_cfg->attr.file_attr.width); + return -EINVAL; + } + } else { + reset_cfg->attr.file_attr.width = 1; + } + PCA954X_DEBUG("dev_name:%s, mask:0x%x, reset_on:0x%x, reset_off:0x%x, width: %u\n", reset_cfg->attr.file_attr.dev_name, reset_cfg->attr.file_attr.mask, - reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off); + reset_cfg->attr.file_attr.reset_on, reset_cfg->attr.file_attr.reset_off, reset_cfg->attr.file_attr.width); } else { PCA954X_ERROR("Unsupport reset type:%d.\n", reset_cfg->pca9548_reset_type); return -EINVAL; @@ -1282,7 +1337,7 @@ static int pca954x_probe(struct i2c_client *client, return ret; } -static int pca954x_remove(struct i2c_client *client) +static void pca954x_remove(struct i2c_client *client) { struct i2c_mux_core *muxc = i2c_get_clientdata(client); struct pca954x *data = i2c_mux_priv(muxc); @@ -1297,7 +1352,7 @@ static int pca954x_remove(struct i2c_client *client) } i2c_mux_del_adapters(muxc); - return 0; + return; } #ifdef CONFIG_PM_SLEEP diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h index 9cbe162782c5..beed9b2f94ac 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca954x.h @@ -35,6 +35,7 @@ typedef struct file_attr_s { uint32_t mask; uint32_t reset_on; uint32_t reset_off; + uint32_t width; } file_attr_t; typedef struct gpio_attr_s { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c index 519762f0c159..a3ae9f4b2431 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_i2c_mux_pca9641.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "wb_i2c_mux_pca9641.h" @@ -105,6 +106,7 @@ typedef struct i2c_muxs_struct_flag }i2c_mux_flag; i2c_mux_flag pca_flag = { + .nr = -1, .flag = -1, }; @@ -226,6 +228,12 @@ static int pca9641_reset_file_read(const char *path, uint32_t pos, uint8_t *val, struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDONLY, 0); if (IS_ERR(filp)) { PCA_DEBUG_ERR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -234,9 +242,10 @@ static int pca9641_reset_file_read(const char *path, uint32_t pos, uint8_t *val, } tmp_pos = (loff_t)pos; - ret = kernel_read(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &tmp_pos, 0); if (ret < 0) { - PCA_DEBUG_ERR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + PCA_DEBUG_ERR("vfs_iter_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -254,11 +263,16 @@ static int pca9641_reset_file_read(const char *path, uint32_t pos, uint8_t *val, static int pca9641_reset_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) { - int ret; struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { PCA_DEBUG_ERR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -267,9 +281,10 @@ static int pca9641_reset_file_write(const char *path, uint32_t pos, uint8_t *val } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - PCA_DEBUG_ERR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + PCA_DEBUG_ERR("vfs_iter_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -1371,12 +1386,12 @@ static int pca9541_probe(struct i2c_client *client, const struct i2c_device_id * return 0; } -static int pca9541_remove(struct i2c_client *client) +static void pca9541_remove(struct i2c_client *client) { struct i2c_mux_core *muxc = i2c_get_clientdata(client); i2c_mux_del_adapters(muxc); - return 0; + return; } static struct i2c_driver pca9641_driver = { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c index fba2c4e3a68e..05b6da0284c0 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ina3221.c @@ -913,7 +913,7 @@ static int ina3221_probe(struct i2c_client *client) return ret; } -static int ina3221_remove(struct i2c_client *client) +static void ina3221_remove(struct i2c_client *client) { struct ina3221_data *ina = dev_get_drvdata(&client->dev); int i; @@ -927,7 +927,7 @@ static int ina3221_remove(struct i2c_client *client) mutex_destroy(&ina->lock); - return 0; + return; } static int __maybe_unused ina3221_suspend(struct device *dev) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c index 2797a831bd66..648020435311 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_isl68137.c @@ -168,13 +168,13 @@ static ssize_t isl68137_avs_vout_show(struct device *dev, struct device_attribut struct i2c_client *client = to_i2c_client(dev->parent); struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); struct pmbus_data *data = i2c_get_clientdata(client); - int ret, vout_cmd, vout; + int vout_cmd, vout; mutex_lock(&data->update_lock); vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); if (vout_cmd < 0) { WB_ISL68137_ERROR("%d-%04x: read page%d vout command reg: 0x%x failed, ret: %d\n", - client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, ret); + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd); mutex_unlock(&data->update_lock); return vout_cmd; } @@ -206,6 +206,11 @@ static ssize_t isl68137_avs_vout_store(struct device *dev, struct device_attribu return -EINVAL; } + if (vout <= 0) { + WB_ISL68137_ERROR("%d-%04x: invalid value: %d \n", client->adapter->nr, client->addr, vout); + return -EINVAL; + } + vout_max = data->vout_max[attr->index]; vout_min = data->vout_min[attr->index]; if ((vout > vout_max) || (vout < vout_min)) { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c index b8291c553688..0386cfb0b61d 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_lm75.c @@ -311,6 +311,11 @@ static lm75_temp_threshold_t g_lm75_temp_threshold_info[] = { .temp_max = 125000, .temp_min = -55000, }, + { + .chip_type = tmp275, + .temp_max = 125000, + .temp_min = -40000, + }, }; /*-----------------------------------------------------------------------*/ @@ -400,7 +405,7 @@ static int lm75_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, return err; } *val = lm75_reg_to_mc(regval, data->resolution); - if (attr != LM75_REG_TEMP) { + if (reg != LM75_REG_TEMP) { return 0; } /* do input_temp_check */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h index 9fb2c9017ae6..781f2ee07198 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus.h @@ -521,7 +521,7 @@ void wb_pmbus_clear_faults(struct i2c_client *client); bool wb_pmbus_check_byte_register(struct i2c_client *client, int page, int reg); bool wb_pmbus_check_word_register(struct i2c_client *client, int page, int reg); int wb_pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info); -int wb_pmbus_do_remove(struct i2c_client *client); +void wb_pmbus_do_remove(struct i2c_client *client); const struct pmbus_driver_info *wb_pmbus_get_driver_info(struct i2c_client *client); int wb_pmbus_get_fan_rate_device(struct i2c_client *client, int page, int id, diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c index bba6ca39cd3c..7ede09a56986 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_pmbus_core.c @@ -1580,7 +1580,7 @@ static const struct pmbus_sensor_attr voltage_attributes[] = { .sreg = PMBUS_STATUS_INPUT, .gbit = PB_STATUS_VIN_UV, .limit = vin_limit_attrs, - .nlimit = ARRAY_SIZE(vin_limit_attrs), + .nlimit = 0, }, { .reg = PMBUS_VIRT_READ_VMON, .class = PSC_VOLTAGE_IN, @@ -1589,7 +1589,7 @@ static const struct pmbus_sensor_attr voltage_attributes[] = { .sfunc = PMBUS_HAVE_STATUS_VMON, .sreg = PMBUS_VIRT_STATUS_VMON, .limit = vmon_limit_attrs, - .nlimit = ARRAY_SIZE(vmon_limit_attrs), + .nlimit = 0, }, { .reg = PMBUS_READ_VCAP, .class = PSC_VOLTAGE_IN, @@ -1605,7 +1605,7 @@ static const struct pmbus_sensor_attr voltage_attributes[] = { .sreg = PMBUS_STATUS_VOUT, .gbit = PB_STATUS_VOUT_OV, .limit = vout_limit_attrs, - .nlimit = ARRAY_SIZE(vout_limit_attrs), + .nlimit = 0, } }; @@ -1690,7 +1690,7 @@ static const struct pmbus_sensor_attr current_attributes[] = { .sreg = PMBUS_STATUS_INPUT, .gbit = PB_STATUS_INPUT, .limit = iin_limit_attrs, - .nlimit = ARRAY_SIZE(iin_limit_attrs), + .nlimit = 0, }, { .reg = PMBUS_READ_IOUT, .class = PSC_CURRENT_OUT, @@ -1701,7 +1701,7 @@ static const struct pmbus_sensor_attr current_attributes[] = { .sreg = PMBUS_STATUS_IOUT, .gbit = PB_STATUS_IOUT_OC, .limit = iout_limit_attrs, - .nlimit = ARRAY_SIZE(iout_limit_attrs), + .nlimit = 0, } }; @@ -1781,7 +1781,7 @@ static const struct pmbus_sensor_attr power_attributes[] = { .sreg = PMBUS_STATUS_INPUT, .gbit = PB_STATUS_INPUT, .limit = pin_limit_attrs, - .nlimit = ARRAY_SIZE(pin_limit_attrs), + .nlimit = 0, }, { .reg = PMBUS_READ_POUT, .class = PSC_POWER, @@ -1791,7 +1791,7 @@ static const struct pmbus_sensor_attr power_attributes[] = { .sfunc = PMBUS_HAVE_STATUS_IOUT, .sreg = PMBUS_STATUS_IOUT, .limit = pout_limit_attrs, - .nlimit = ARRAY_SIZE(pout_limit_attrs), + .nlimit = 0, } }; @@ -1920,7 +1920,7 @@ static const struct pmbus_sensor_attr temp_attributes[] = { .sreg = PMBUS_STATUS_TEMPERATURE, .gbit = PB_STATUS_TEMPERATURE, .limit = temp_limit_attrs, - .nlimit = ARRAY_SIZE(temp_limit_attrs), + .nlimit = 0, }, { .reg = PMBUS_READ_TEMPERATURE_2, .class = PSC_TEMPERATURE, @@ -1932,7 +1932,7 @@ static const struct pmbus_sensor_attr temp_attributes[] = { .sreg = PMBUS_STATUS_TEMPERATURE, .gbit = PB_STATUS_TEMPERATURE, .limit = temp_limit_attrs2, - .nlimit = ARRAY_SIZE(temp_limit_attrs2), + .nlimit = 0, }, { .reg = PMBUS_READ_TEMPERATURE_3, .class = PSC_TEMPERATURE, @@ -1944,7 +1944,7 @@ static const struct pmbus_sensor_attr temp_attributes[] = { .sreg = PMBUS_STATUS_TEMPERATURE, .gbit = PB_STATUS_TEMPERATURE, .limit = temp_limit_attrs3, - .nlimit = ARRAY_SIZE(temp_limit_attrs3), + .nlimit = 0, } }; @@ -2740,13 +2740,13 @@ int wb_pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) } EXPORT_SYMBOL_GPL(wb_pmbus_do_probe); -int wb_pmbus_do_remove(struct i2c_client *client) +void wb_pmbus_do_remove(struct i2c_client *client) { struct pmbus_data *data = i2c_get_clientdata(client); debugfs_remove_recursive(data->debugfs); - return 0; + return; } EXPORT_SYMBOL_GPL(wb_pmbus_do_remove); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c index 4118510b1006..b8d3a024f624 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_tmp401.c @@ -42,6 +42,7 @@ #include #include #include +#include /* Addresses to scan */ /* static const unsigned short normal_i2c[] = { 0x48, 0x49, 0x4a, 0x4c, 0x4d, @@ -53,14 +54,15 @@ enum chips { tmp401, tmp411, tmp431, tmp432, tmp435, tmp461 }; * The TMP401 registers, note some registers have different addresses for * reading and writing */ -#define TMP401_STATUS 0x02 -#define TMP401_CONFIG_READ 0x03 -#define TMP401_CONFIG_WRITE 0x09 -#define TMP401_CONVERSION_RATE_READ 0x04 -#define TMP401_CONVERSION_RATE_WRITE 0x0A -#define TMP401_TEMP_CRIT_HYST 0x21 -#define TMP401_MANUFACTURER_ID_REG 0xFE -#define TMP401_DEVICE_ID_REG 0xFF +#define TMP401_STATUS (0x02) +#define TMP401_CONFIG_READ (0x03) +#define TMP401_CONFIG_WRITE (0x09) +#define TMP401_CONVERSION_RATE_READ (0x04) +#define TMP401_CONVERSION_RATE_WRITE (0x0A) +#define TMP401_TEMP_CRIT_HYST (0x21) +#define TMP401_MANUFACTURER_ID_REG (0xFE) +#define TMP401_DEVICE_ID_REG (0xFF) +#define TMP401_DEVICE_CAR_REG (0x22) /* Consecutive Alert Register */ static const u8 TMP401_TEMP_MSB_READ[7][2] = { { 0x00, 0x01 }, /* temp */ @@ -117,30 +119,52 @@ static const u8 TMP432_STATUS_REG[] = { 0x1b, 0x36, 0x35, 0x37 }; /* Flags */ -#define TMP401_CONFIG_RANGE BIT(2) -#define TMP401_CONFIG_SHUTDOWN BIT(6) -#define TMP401_STATUS_LOCAL_CRIT BIT(0) -#define TMP401_STATUS_REMOTE_CRIT BIT(1) -#define TMP401_STATUS_REMOTE_OPEN BIT(2) -#define TMP401_STATUS_REMOTE_LOW BIT(3) -#define TMP401_STATUS_REMOTE_HIGH BIT(4) -#define TMP401_STATUS_LOCAL_LOW BIT(5) -#define TMP401_STATUS_LOCAL_HIGH BIT(6) +#define TMP401_CONFIG_RANGE BIT(2) +#define TMP401_CONFIG_SHUTDOWN BIT(6) +#define TMP401_STATUS_LOCAL_CRIT BIT(0) +#define TMP401_STATUS_REMOTE_CRIT BIT(1) +#define TMP401_STATUS_REMOTE_OPEN BIT(2) +#define TMP401_STATUS_REMOTE_LOW BIT(3) +#define TMP401_STATUS_REMOTE_HIGH BIT(4) +#define TMP401_STATUS_LOCAL_LOW BIT(5) +#define TMP401_STATUS_LOCAL_HIGH BIT(6) /* On TMP432, each status has its own register */ -#define TMP432_STATUS_LOCAL BIT(0) -#define TMP432_STATUS_REMOTE1 BIT(1) -#define TMP432_STATUS_REMOTE2 BIT(2) +#define TMP432_STATUS_LOCAL BIT(0) +#define TMP432_STATUS_REMOTE1 BIT(1) +#define TMP432_STATUS_REMOTE2 BIT(2) /* Manufacturer / Device ID's */ -#define TMP401_MANUFACTURER_ID 0x55 -#define TMP401_DEVICE_ID 0x11 -#define TMP411A_DEVICE_ID 0x12 -#define TMP411B_DEVICE_ID 0x13 -#define TMP411C_DEVICE_ID 0x10 -#define TMP431_DEVICE_ID 0x31 -#define TMP432_DEVICE_ID 0x32 -#define TMP435_DEVICE_ID 0x35 +#define TMP401_MANUFACTURER_ID (0x55) +#define TMP401_DEVICE_ID (0x11) +#define TMP411A_DEVICE_ID (0x12) +#define TMP411B_DEVICE_ID (0x13) +#define TMP411C_DEVICE_ID (0x10) +#define TMP431_DEVICE_ID (0x31) +#define TMP432_DEVICE_ID (0x32) +#define TMP435_DEVICE_ID (0x35) + +/* Timeout function bit */ +#define TIMEOUT_STATE_BIT (7) /* 1:enable 0:disable */ +#define TIMEOUT_STATE_EN (1) /* 1:enable */ +#define TIMEOUT_STATE_IEN (0) /* 0:disable */ +#define TIMEOUT_STATE_NA "NA" +#define TMP401_TEMP_INVALID_RETRY_TIMES (3) + +/* input temp threshold check */ +typedef struct tmp401_temp_threshold_s { + int chip_type; + int temp_max; + int temp_min; +} tmp401_temp_threshold_t; + +static tmp401_temp_threshold_t g_tmp401_input_threshold_info[] = { + { + .chip_type = tmp411, + .temp_max = 127000, + .temp_min = -55000, + }, +}; /* * Driver data (common to all clients) @@ -309,18 +333,61 @@ static struct tmp401_data *tmp401_update_device(struct device *dev) return ret; } -static ssize_t show_temp(struct device *dev, - struct device_attribute *devattr, char *buf) +static int tmp401_input_temp_check(struct tmp401_data *data, int input_val) { - int nr = to_sensor_dev_attr_2(devattr)->nr; - int index = to_sensor_dev_attr_2(devattr)->index; - struct tmp401_data *data = tmp401_update_device(dev); - - if (IS_ERR(data)) - return PTR_ERR(data); + int i, size; + + size = ARRAY_SIZE(g_tmp401_input_threshold_info); + + for (i = 0; i < size; i++) { + if (g_tmp401_input_threshold_info[i].chip_type == data->kind) { + if ((input_val > g_tmp401_input_threshold_info[i].temp_max) + || (input_val < g_tmp401_input_threshold_info[i].temp_min)) { + dev_dbg(&data->client->dev, "input temp: %d not in range[%d, %d]\n", + input_val, g_tmp401_input_threshold_info[i].temp_min, + g_tmp401_input_threshold_info[i].temp_max); + return -EINVAL; + } + dev_dbg(&data->client->dev, "input temp: %d in range[%d, %d]", input_val, + g_tmp401_input_threshold_info[i].temp_min, g_tmp401_input_threshold_info[i].temp_max); + return 0; + } + } + return 0; +} - return sprintf(buf, "%d\n", - tmp401_register_to_temp(data->temp[nr][index], data->config)); +static ssize_t show_temp(struct device *dev, struct device_attribute *devattr, char *buf) +{ + int nr, index, i, value, ret; + struct tmp401_data *data; + struct i2c_client *client; + + data = dev_get_drvdata(dev); + client = data->client; + + nr = to_sensor_dev_attr_2(devattr)->nr; + index = to_sensor_dev_attr_2(devattr)->index; + + for (i = 0; i < TMP401_TEMP_INVALID_RETRY_TIMES; i++) { + data = tmp401_update_device(dev); + if (IS_ERR(data)) { + return PTR_ERR(data); + } + value = tmp401_register_to_temp(data->temp[nr][index], data->config); + if (nr != 0) { /* not input temp, return value */ + return sprintf(buf, "%d\n", value); + } + /* nr == 0 is temp input, do input_temp_check */ + ret = tmp401_input_temp_check(data, value); + if (ret == 0) { /* input temp check ok */ + return sprintf(buf, "%d\n", value); + } + if ((i + 1) < TMP401_TEMP_INVALID_RETRY_TIMES) { + msleep(data->update_interval); + } + } + dev_info(&client->dev, "temp%d_input value: %d invalid\n", index + 1, value); + return -EINVAL; } static ssize_t show_temp_crit_hyst(struct device *dev, @@ -488,6 +555,140 @@ static ssize_t set_update_interval(struct device *dev, return count; } +/* + * Enable/disable the state of the timeout function + * @dev: device info + * @state: 1:enable 0:disable + */ +static int timeout_cfg(struct device *dev, int state) +{ + int rv, chip_type; + u8 reg_value; + struct tmp401_data *data; + struct i2c_client *client; + + data = dev_get_drvdata(dev); + client = data->client; + + /* get chip type */ + chip_type = data->kind; + dev_dbg(&client->dev, "set timeout. chip:%d, state:%d\n", chip_type, state); + + /* chip type check */ + if(chip_type != tmp401 && chip_type != tmp411) { + dev_info(&client->dev, + "Chip type: %d, not support timeout config.!\n", chip_type); + return -EPERM; + } + + /* parameter check */ + if(state != TIMEOUT_STATE_EN && state != TIMEOUT_STATE_IEN) { + dev_err(&client->dev, + "Parameter check error. state: %d not supported.!\n", state); + return -EINVAL; + } + + mutex_lock(&data->update_lock); + /* read the Consecutive alert register */ + reg_value = i2c_smbus_read_byte_data(client, TMP401_DEVICE_CAR_REG); + if (reg_value < 0) { + dev_err(&client->dev, "Failed to read. reg:0x%0x, value:%d\n", TMP401_DEVICE_CAR_REG, reg_value); + mutex_unlock(&data->update_lock); + return -EIO; + } + dev_dbg(&client->dev, "get register value. reg:0x%0x, value:0x%0x\n", TMP401_DEVICE_CAR_REG, reg_value); + + /* same value case, do not write */ + if((u8)state == (reg_value >> TIMEOUT_STATE_BIT)) { + mutex_unlock(&data->update_lock); + dev_info(&client->dev, "timeout config has been set and the current state is %d.\n", state); + return 0; + } + + /* calculate the register value */ + reg_value = (reg_value & ~(1 << TIMEOUT_STATE_BIT)) | (state << TIMEOUT_STATE_BIT); + + /* set the Consecutive alert register */ + dev_dbg(&client->dev, "set register value. reg:0x%0x, value:0x%0x\n", TMP401_DEVICE_CAR_REG, reg_value); + rv = i2c_smbus_write_byte_data(client, TMP401_DEVICE_CAR_REG, reg_value); + if (rv < 0) { + dev_err(&client->dev, + "set the register Error. reg:0x%0x, value:%d\n", TMP401_DEVICE_CAR_REG, reg_value); + mutex_unlock(&data->update_lock); + return -EIO; + } + mutex_unlock(&data->update_lock); + + dev_info(&client->dev, "set bus timeout success. reg:0x%0x, value:0x%0x\n", TMP401_DEVICE_CAR_REG, reg_value); + + return 0; +} + +static ssize_t set_timeout_en(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + int val, err; + struct i2c_client *client; + struct tmp401_data *data; + + data = dev_get_drvdata(dev); + client = data->client; + + err = kstrtoint(buf, 0, &val); + if (err) { + dev_err(&client->dev, + "kstrtoint error: %d.\n", err); + return err; + } + + err = timeout_cfg(dev, val); + if(err < 0) { + dev_err(&client->dev, + "set bus timeout error: %d. value:%d!\n", err, val); + return err; + } + + return count; +} + +static ssize_t show_timeout_en(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + int chip_type; + u8 reg_value; + struct tmp401_data *data; + struct i2c_client *client; + + data = dev_get_drvdata(dev); + client = data->client; + + /* get chip type */ + chip_type = data->kind; + dev_dbg(&client->dev, "get timeout. chip:%d\n", chip_type); + + /* chip type check */ + if(chip_type != tmp401 && chip_type != tmp411) { + dev_info(&client->dev, + "Chip type: %d, not support timeout config.!\n", chip_type); + /* not support, return NA */ + return (ssize_t)snprintf(buf, PAGE_SIZE, "%s\n", TIMEOUT_STATE_NA); + } + + /* read the Consecutive alert register */ + reg_value = i2c_smbus_read_byte_data(client, TMP401_DEVICE_CAR_REG); + if (reg_value < 0) { + dev_err(&client->dev, "Failed to read. reg:0x%0x, value:%d\n", TMP401_DEVICE_CAR_REG, reg_value); + return -EIO; + } + dev_dbg(&client->dev, "get register value. reg:0x%0x, value:0x%0x\n", TMP401_DEVICE_CAR_REG, reg_value); + + /* decode the register value */ + reg_value = reg_value >> TIMEOUT_STATE_BIT; + + return (ssize_t)snprintf(buf, PAGE_SIZE, "%d\n", reg_value); +} + static SENSOR_DEVICE_ATTR_2(temp1_input, S_IRUGO, show_temp, NULL, 0, 0); static SENSOR_DEVICE_ATTR_2(temp1_min, S_IWUSR | S_IRUGO, show_temp, store_temp, 1, 0); @@ -523,6 +724,7 @@ static SENSOR_DEVICE_ATTR_2(temp2_crit_alarm, S_IRUGO, show_status, NULL, static DEVICE_ATTR(update_interval, S_IRUGO | S_IWUSR, show_update_interval, set_update_interval); +static DEVICE_ATTR(timeout_en, S_IRUGO | S_IWUSR, show_timeout_en, set_timeout_en); static struct attribute *tmp401_attributes[] = { &sensor_dev_attr_temp1_input.dev_attr.attr, @@ -545,6 +747,7 @@ static struct attribute *tmp401_attributes[] = { &sensor_dev_attr_temp2_crit_alarm.dev_attr.attr, &dev_attr_update_interval.attr, + &dev_attr_timeout_en.attr, NULL }; @@ -775,6 +978,15 @@ static int tmp401_probe(struct i2c_client *client, if (IS_ERR(hwmon_dev)) return PTR_ERR(hwmon_dev); + /* disable the timeout function */ + status = timeout_cfg(hwmon_dev, TIMEOUT_STATE_IEN); + if((status < 0) && (status != -EPERM)) { + dev_err(dev, + "set bus timeout error when probing: %d.!\n", status); + /* here, no need call devm_hwmon_device_unregister, device managed. */ + return status; + } + dev_info(dev, "Detected TI %s chip\n", names[data->kind]); return 0; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c index 9b967f141a86..6d60b9d876c2 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_ucd9000.c @@ -19,6 +19,8 @@ #include #include "wb_pmbus.h" +#define mem_clear(data, size) memset((data), 0, (size)) + enum chips { ucd9000, ucd90120, ucd90124, ucd90160, ucd90320, ucd9090, ucd90910 }; @@ -96,18 +98,61 @@ struct ucd9000_debugfs_entry { u8 index; }; +static int wb_i2c_smbus_read_block_data_tmp(const struct i2c_client *client, u8 command, u8 *values) +{ + + struct i2c_msg msg[2]; + int status; + u8 read_buf[I2C_SMBUS_BLOCK_MAX + 1]; + int read_len, val_len; + + val_len = i2c_smbus_read_byte_data(client, command); + if (val_len < 0) { + WB_UDC9000_ERROR("read byte failed. nr:%d, addr:0x%x, reg:0x%x, ret:%d.\n", + client->adapter->nr, client->addr, command, val_len); + return -ENXIO; + } + read_len = val_len + 1; + if (read_len > sizeof(read_buf)) { + WB_UDC9000_ERROR("Out of memory, val_len: %d, read length: %d, read buf len: %lu.\n", + val_len, read_len, sizeof(read_buf)); + return -ENOMEM; + } + + mem_clear(msg, sizeof(msg)); + msg[0].addr = client->addr; + msg[0].buf = &command; + msg[0].len = 1; + + msg[1].addr = client->addr; + msg[1].flags = I2C_M_RD; + msg[1].buf = read_buf; + msg[1].len = read_len; + + status = i2c_transfer(client->adapter, msg, 2); + if (status != 2) { + WB_UDC9000_ERROR("i2c_transfer failed. nr:%d, addr:0x%x, reg:0x%x, read len:%d, status:%d.\n", + client->adapter->nr, client->addr, command, read_len, status); + return -EIO; + } + WB_UDC9000_VERBOSE("read_block_data success. nr:%d, addr:0x%x, reg:0x%x, read len:%d", + client->adapter->nr, client->addr, command, read_len); + memcpy(values, &read_buf[1], val_len); + return val_len; +} + static int wb_i2c_smbus_read_block_data(const struct i2c_client *client, u8 command, u8 *values) { int rv, i; for(i = 0; i < UCD9000_RETRY_TIME; i++) { - rv = i2c_smbus_read_block_data(client, command, values); + rv = wb_i2c_smbus_read_block_data_tmp(client, command, values); if(rv >= 0){ return rv; } usleep_range(UCD9000_RETRY_SLEEP_TIME, UCD9000_RETRY_SLEEP_TIME + 1); } - WB_UDC9000_ERROR("read_block_data failed. nr:%d, addr:0x%x, reg:0x%x, rv:%d.", + WB_UDC9000_ERROR("read_block_data failed. nr: %d, addr: 0x%x, reg: 0x%x, rv: %d\n", client->adapter->nr, client->addr, command, rv); return rv; } @@ -537,8 +582,7 @@ static int ucd9000_probe(struct i2c_client *client) int i, ret; if (!i2c_check_functionality(client->adapter, - I2C_FUNC_SMBUS_BYTE_DATA | - I2C_FUNC_SMBUS_BLOCK_DATA)) + I2C_FUNC_SMBUS_BYTE_DATA)) return -ENODEV; ret = wb_i2c_smbus_read_block_data(client, UCD9000_DEVICE_ID, @@ -591,7 +635,8 @@ static int ucd9000_probe(struct i2c_client *client) } /* The internal temperature sensor is always active */ - info->func[0] = PMBUS_HAVE_TEMP; + /* ucd90160 have no temperature */ + /* info->func[0] = PMBUS_HAVE_TEMP; */ /* Everything else is configurable */ ret = wb_i2c_smbus_read_block_data(client, UCD9000_MONITOR_CONFIG, diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c index b3bd70920289..f45d683e3464 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe12284.c @@ -6,17 +6,344 @@ */ #include +#include #include #include #include #include +#include #include "wb_pmbus.h" -#define XDPE122_PROT_VR12_5MV 0x01 /* VR12.0 mode, 5-mV DAC */ -#define XDPE122_PROT_VR12_5_10MV 0x02 /* VR12.5 mode, 10-mV DAC */ -#define XDPE122_PROT_IMVP9_10MV 0x03 /* IMVP9 mode, 10-mV DAC */ -#define XDPE122_AMD_625MV 0x10 /* AMD mode 6.25mV */ -#define XDPE122_PAGE_NUM 2 +#define XDPE122_PROT_VR12_5MV (0x01) /* VR12.0 mode, 5-mV DAC */ +#define XDPE122_PROT_VR12_5_10MV (0x02) /* VR12.5 mode, 10-mV DAC */ +#define XDPE122_PROT_IMVP9_10MV (0x03) /* IMVP9 mode, 10-mV DAC */ +#define XDPE122_AMD_625MV (0x10) /* AMD mode 6.25mV */ +#define XDPE122_PAGE_NUM (2) +#define XDPE122_WRITE_PROTECT_CLOSE (0x00) +#define XDPE122_WRITE_PROTECT_OPEN (0x40) + +static int g_wb_xdpe122_debug = 0; +static int g_wb_xdpe122_error = 0; + +module_param(g_wb_xdpe122_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_xdpe122_error, int, S_IRUGO | S_IWUSR); + +#define WB_XDPE122_VERBOSE(fmt, args...) do { \ + if (g_wb_xdpe122_debug) { \ + printk(KERN_INFO "[WB_XDPE122][VER][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_XDPE122_ERROR(fmt, args...) do { \ + if (g_wb_xdpe122_error) { \ + printk(KERN_ERR "[WB_XDPE122][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static int xdpe122_data2reg_vid(struct pmbus_data *data, int page, long val) +{ + int vrm_version; + + vrm_version = data->info->vrm_version[page]; + WB_XDPE122_VERBOSE("page%d, vrm_version: %d, data_val: %ld\n", + page, vrm_version, val); + /* Convert data to VID register. */ + switch (vrm_version) { + case vr13: + if (val >= 500) { + return 1 + DIV_ROUND_CLOSEST(val - 500, 10); + } + return 0; + case vr12: + if (val >= 250) { + return 1 + DIV_ROUND_CLOSEST(val - 250, 5); + } + return 0; + case imvp9: + if (val >= 200) { + return 1 + DIV_ROUND_CLOSEST(val - 200, 10); + } + return 0; + case amd625mv: + if (val >= 200 && val <= 1550) { + return DIV_ROUND_CLOSEST((1550 - val) * 100, 625); + } + return 0; + default: + WB_XDPE122_ERROR("Unsupport vrm_version, page%d, vrm_version: %d\n", + page, vrm_version); + return -EINVAL; + } + return 0; +} + +/* + * Convert VID sensor values to milli- or micro-units + * depending on sensor type. + */ +static s64 xdpe122_reg2data_vid(struct pmbus_data *data, int page, long val) +{ + + long rv; + int vrm_version; + + rv = 0; + vrm_version = data->info->vrm_version[page]; + switch (vrm_version) { + case vr11: + if (val >= 0x02 && val <= 0xb2) + rv = DIV_ROUND_CLOSEST(160000 - (val - 2) * 625, 100); + break; + case vr12: + if (val >= 0x01) + rv = 250 + (val - 1) * 5; + break; + case vr13: + if (val >= 0x01) + rv = 500 + (val - 1) * 10; + break; + case imvp9: + if (val >= 0x01) + rv = 200 + (val - 1) * 10; + break; + case amd625mv: + if (val >= 0x0 && val <= 0xd8) + rv = DIV_ROUND_CLOSEST(155000 - val * 625, 100); + break; + } + WB_XDPE122_VERBOSE("page%d, vrm_version: %d, reg_val: 0x%lx, data_val: %ld\n", + page, vrm_version, val, rv); + return rv; +} + +static ssize_t xdpe122_avs_vout_show(struct device *dev, struct device_attribute *devattr, + char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int vout_cmd, vout; + + mutex_lock(&data->update_lock); + vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (vout_cmd < 0) { + WB_XDPE122_ERROR("%d-%04x: read page%d, vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd); + mutex_unlock(&data->update_lock); + return vout_cmd; + } + + vout = xdpe122_reg2data_vid(data, attr->index, vout_cmd); + vout = vout * 1000; + WB_XDPE122_VERBOSE("%d-%04x: page%d, vout command reg_val: 0x%x, vout: %d uV\n", + client->adapter->nr, client->addr, attr->index, vout_cmd, vout); + + mutex_unlock(&data->update_lock); + return snprintf(buf, PAGE_SIZE, "%d\n", vout); +} + +static ssize_t xdpe122_avs_vout_store(struct device *dev, struct device_attribute *devattr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int vout, vout_max, vout_min, vout_mv; + int ret, vout_cmd, vout_cmd_set; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE122_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout); + if (ret) { + WB_XDPE122_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + if (vout <= 0) { + WB_XDPE122_ERROR("%d-%04x: invalid value: %d \n", client->adapter->nr, client->addr, vout); + return -EINVAL; + } + + vout_max = data->vout_max[attr->index]; + vout_min = data->vout_min[attr->index]; + if ((vout > vout_max) || (vout < vout_min)) { + WB_XDPE122_ERROR("%d-%04x: vout value: %d, out of range [%d, %d] \n", client->adapter->nr, + client->addr, vout, vout_min, vout_max); + return -EINVAL; + } + + /* calc VOUT_COMMAND set value Unit must be mV*/ + vout_mv = vout / 1000; + vout_cmd_set = xdpe122_data2reg_vid(data, attr->index, vout_mv); + if ((vout_cmd_set < 0) || (vout_cmd_set > 0xffff)) { + WB_XDPE122_ERROR("%d-%04x: invalid value, vout %d uV, vout_cmd_set: %d\n", + client->adapter->nr, client->addr, vout, vout_cmd_set); + return -EINVAL; + } + + mutex_lock(&data->update_lock); + + /* close write protect */ + ret = wb_pmbus_write_byte_data(client, attr->index, PMBUS_WRITE_PROTECT, XDPE122_WRITE_PROTECT_CLOSE); + if (ret < 0) { + WB_XDPE122_ERROR("%d-%04x: close page%d write protect failed, ret: %d\n", client->adapter->nr, + client->addr, attr->index, ret); + mutex_unlock(&data->update_lock); + return ret; + } + + /* set VOUT_COMMAND */ + ret = wb_pmbus_write_word_data(client, attr->index, PMBUS_VOUT_COMMAND, vout_cmd_set); + if (ret < 0) { + WB_XDPE122_ERROR("%d-%04x: set page%d vout cmd reg: 0x%x, value: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd_set, ret); + goto error; + } + + /* read back VOUT_COMMAND */ + vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (vout_cmd < 0) { + ret = vout_cmd; + WB_XDPE122_ERROR("%d-%04x: read page%d vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, ret); + goto error; + } + + /* compare vout_cmd and vout_cmd_set */ + if (vout_cmd != vout_cmd_set) { + ret = -EIO; + WB_XDPE122_ERROR("%d-%04x: vout cmd value check error, vout cmd read: 0x%x, vout cmd set: 0x%x\n", + client->adapter->nr, client->addr, vout_cmd, vout_cmd_set); + goto error; + } + + /* open write protect */ + wb_pmbus_write_byte_data(client, attr->index, PMBUS_WRITE_PROTECT, XDPE122_WRITE_PROTECT_OPEN); + mutex_unlock(&data->update_lock); + WB_XDPE122_VERBOSE("%d-%04x: set page%d vout cmd success, vout %d uV, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, attr->index, vout, vout_cmd_set); + return count; +error: + wb_pmbus_write_byte_data(client, attr->index, PMBUS_WRITE_PROTECT, XDPE122_WRITE_PROTECT_OPEN); + mutex_unlock(&data->update_lock); + return ret; +} + +static ssize_t xdpe122_avs_vout_max_store(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_threshold; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE122_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout_threshold); + if (ret) { + WB_XDPE122_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + WB_XDPE122_VERBOSE("%d-%04x: vout%d max threshold: %d", client->adapter->nr, client->addr, + attr->index, vout_threshold); + + data->vout_max[attr->index] = vout_threshold; + return count; +} + +static ssize_t xdpe122_avs_vout_max_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE122_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + return snprintf(buf, PAGE_SIZE, "%d\n", data->vout_max[attr->index]); +} + +static ssize_t xdpe122_avs_vout_min_store(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_threshold; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE122_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout_threshold); + if (ret) { + WB_XDPE122_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + WB_XDPE122_VERBOSE("%d-%04x: vout%d min threshold: %d", client->adapter->nr, client->addr, + attr->index, vout_threshold); + + data->vout_min[attr->index] = vout_threshold; + return count; +} + +static ssize_t xdpe122_avs_vout_min_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE122_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + return snprintf(buf, PAGE_SIZE, "%d\n", data->vout_min[attr->index]); +} + +static SENSOR_DEVICE_ATTR_RW(avs0_vout, xdpe122_avs_vout, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_vout, xdpe122_avs_vout, 1); +static SENSOR_DEVICE_ATTR_RW(avs0_vout_max, xdpe122_avs_vout_max, 0); +static SENSOR_DEVICE_ATTR_RW(avs0_vout_min, xdpe122_avs_vout_min, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_vout_max, xdpe122_avs_vout_max, 1); +static SENSOR_DEVICE_ATTR_RW(avs1_vout_min, xdpe122_avs_vout_min, 1); + +static struct attribute *avs_ctrl_attrs[] = { + &sensor_dev_attr_avs0_vout.dev_attr.attr, + &sensor_dev_attr_avs1_vout.dev_attr.attr, + &sensor_dev_attr_avs0_vout_max.dev_attr.attr, + &sensor_dev_attr_avs0_vout_min.dev_attr.attr, + &sensor_dev_attr_avs1_vout_max.dev_attr.attr, + &sensor_dev_attr_avs1_vout_min.dev_attr.attr, + NULL, +}; + +static const struct attribute_group avs_ctrl_group = { + .attrs = avs_ctrl_attrs, +}; + +static const struct attribute_group *xdpe122_attribute_groups[] = { + &avs_ctrl_group, + NULL, +}; static int xdpe122_read_word_data(struct i2c_client *client, int page, int phase, int reg) @@ -123,6 +450,7 @@ static struct pmbus_driver_info xdpe122_info = { PMBUS_HAVE_IIN | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP | PMBUS_HAVE_POUT | PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT, + .groups = xdpe122_attribute_groups, .identify = xdpe122_identify, .read_word_data = xdpe122_read_word_data, }; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe132g5c_pmbus.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe132g5c_pmbus.c new file mode 100644 index 000000000000..dd7a97afb9ec --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/linux-5.10/wb_xdpe132g5c_pmbus.c @@ -0,0 +1,512 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "wb_pmbus.h" + +static int g_wb_xdpe132g5_pmbus_debug = 0; +static int g_wb_xdpe132g5_pmbus_error = 0; + +module_param(g_wb_xdpe132g5_pmbus_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_xdpe132g5_pmbus_error, int, S_IRUGO | S_IWUSR); + +#define WB_XDPE132G5_PMBUS_DEBUG(fmt, args...) do { \ + if (g_wb_xdpe132g5_pmbus_debug) { \ + printk(KERN_INFO "[WB_XDPE132G5_PMBUS][INFO][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_XDPE132G5_PMBUS_ERROR(fmt, args...) do { \ + if (g_wb_xdpe132g5_pmbus_error) { \ + printk(KERN_ERR "[WB_XDPE132G5_PMBUS][ERR][func:%s line:%d]\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define BUF_SIZE (256) +#define XDPE132G5C_PAGE_NUM (2) +#define XDPE132G5C_PROT_VR12_5MV (0x01) /* VR12.0 mode, 5-mV DAC */ +#define XDPE132G5C_PROT_VR12_5_10MV (0x02) /* VR12.5 mode, 10-mV DAC */ +#define XDPE132G5C_PROT_IMVP9_10MV (0x03) /* IMVP9 mode, 10-mV DAC */ +#define XDPE132G5C_PROT_VR13_10MV (0x04) /* VR13.0 mode, 10-mV DAC */ +#define XDPE132G5C_PROT_IMVP8_5MV (0x05) /* IMVP8 mode, 5-mV DAC */ +#define XDPE132G5C_PROT_VR13_5MV (0x07) /* VR13.0 mode, 5-mV DAC */ +#define RETRY_TIME (15) + +typedef struct xdpe_vout_data_s { + u8 vout_mode; + int vout_precision; +} xdpe_vout_data_t; + +static xdpe_vout_data_t g_xdpe_vout_group[] = { + {.vout_mode = 0x18, .vout_precision = 256}, + {.vout_mode = 0x17, .vout_precision = 512}, + {.vout_mode = 0x16, .vout_precision = 1024}, + {.vout_mode = 0x15, .vout_precision = 2048}, + {.vout_mode = 0x14, .vout_precision = 4096}, +}; + +static ssize_t set_xdpe132g5c_avs(struct device *dev, struct device_attribute *da, const char *buf, size_t count) +{ + int ret; + unsigned long val; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct pmbus_data *data; + + data = i2c_get_clientdata(client); + ret = kstrtoul(buf, 0, &val); + if (ret){ + return ret; + } + mutex_lock(&data->update_lock); + /* set value */ + ret = wb_pmbus_write_word_data(client, attr->index, PMBUS_VOUT_COMMAND, (u16)val); + if (ret < 0) { + WB_XDPE132G5_PMBUS_ERROR("set pmbus_vout_command fail\n"); + goto finish_set; + } +finish_set: + wb_pmbus_clear_faults(client); + mutex_unlock(&data->update_lock); + return (ret < 0) ? ret : count; + +} + +static ssize_t show_xdpe132g5c_avs(struct device *dev, struct device_attribute *da, char *buf) +{ + int val; + struct sensor_device_attribute *attr = to_sensor_dev_attr(da); + struct i2c_client *client = to_i2c_client(dev); + struct pmbus_data *data; + + data = i2c_get_clientdata(client); + mutex_lock(&data->update_lock); + val = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (val < 0) { + WB_XDPE132G5_PMBUS_ERROR("fail val = %d\n", val); + goto finish_show; + } +finish_show: + wb_pmbus_clear_faults(client); + mutex_unlock(&data->update_lock); + return snprintf(buf, BUF_SIZE, "0x%04x\n", val); +} + +static int xdpe_get_vout_precision(struct i2c_client *client, int page, int *vout_precision) +{ + int i, vout_mode, a_size; + + vout_mode = wb_pmbus_read_byte_data(client, page, PMBUS_VOUT_MODE); + if (vout_mode < 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: read xdpe page%d vout mode reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, page, PMBUS_VOUT_MODE, vout_mode); + return vout_mode; + } + + a_size = ARRAY_SIZE(g_xdpe_vout_group); + for (i = 0; i < a_size; i++) { + if (g_xdpe_vout_group[i].vout_mode == vout_mode) { + *vout_precision = g_xdpe_vout_group[i].vout_precision; + WB_XDPE132G5_PMBUS_DEBUG("%d-%04x: match, page%d, vout mode: 0x%x, precision: %d\n", + client->adapter->nr, client->addr, page, vout_mode, *vout_precision); + break; + } + } + if (i == a_size) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid, page%d, vout mode: 0x%x\n",client->adapter->nr, client->addr, + page, vout_mode); + return -EINVAL; + } + return 0; +} + +static ssize_t xdpe132g5_avs_vout_show(struct device *dev, struct device_attribute *devattr, + char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int vout_cmd, ret, vout_precision; + long vout; + + mutex_lock(&data->update_lock); + ret = xdpe_get_vout_precision(client, attr->index, &vout_precision); + if (ret < 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: get xdpe avs%d vout precision failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, ret); + mutex_unlock(&data->update_lock); + return ret; + } + + vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (vout_cmd < 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: read page%d, vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd); + mutex_unlock(&data->update_lock); + return vout_cmd; + } + + mutex_unlock(&data->update_lock); + vout = vout_cmd * 1000L * 1000L / vout_precision; + WB_XDPE132G5_PMBUS_DEBUG("%d-%04x: page%d vout: %ld, vout_cmd: 0x%x, precision: %d\n", client->adapter->nr, + client->addr, attr->index, vout, vout_cmd, vout_precision); + return snprintf(buf, PAGE_SIZE, "%ld\n", vout); +} + +static ssize_t xdpe132g5_avs_vout_store(struct device *dev, struct device_attribute *devattr, + const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int vout_max, vout_min; + int ret, vout_cmd, vout_cmd_set; + int vout_precision; + long vout; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtol(buf, 0, &vout); + if (ret) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + if (vout <= 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid value: %ld \n", client->adapter->nr, client->addr, vout); + return -EINVAL; + } + + vout_max = data->vout_max[attr->index]; + vout_min = data->vout_min[attr->index]; + if ((vout > vout_max) || (vout < vout_min)) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: vout value: %ld, out of range [%d, %d] \n", client->adapter->nr, + client->addr, vout, vout_min, vout_max); + return -EINVAL; + } + + mutex_lock(&data->update_lock); + ret = xdpe_get_vout_precision(client, attr->index, &vout_precision); + if (ret < 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: get xdpe avs%d vout precision failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, ret); + mutex_unlock(&data->update_lock); + return ret; + } + + vout_cmd_set = (vout * vout_precision) / (1000L * 1000L); + if (vout_cmd_set > 0xffff) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid value, page%d, vout: %ld, vout_precision: %d, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, attr->index, vout, vout_precision, vout_cmd_set); + mutex_unlock(&data->update_lock); + return -EINVAL; + } + + /* set VOUT_COMMAND */ + ret = wb_pmbus_write_word_data(client, attr->index, PMBUS_VOUT_COMMAND, (u16)vout_cmd_set); + if (ret < 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: set xdpe page%d vout cmd reg: 0x%x, value: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd_set, ret); + mutex_unlock(&data->update_lock); + return ret; + } + + /* read back VOUT_COMMAND */ + vout_cmd = wb_pmbus_read_word_data(client, attr->index, 0xff, PMBUS_VOUT_COMMAND); + if (vout_cmd < 0) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: read page%d, vout command reg: 0x%x failed, ret: %d\n", + client->adapter->nr, client->addr, attr->index, PMBUS_VOUT_COMMAND, vout_cmd); + mutex_unlock(&data->update_lock); + return vout_cmd; + } + + if (vout_cmd != vout_cmd_set) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: page%d vout cmd value check error, vout cmd read: 0x%x, vout cmd set: 0x%x\n", + client->adapter->nr, client->addr, attr->index, vout_cmd, vout_cmd_set); + mutex_unlock(&data->update_lock); + return -EIO; + } + mutex_unlock(&data->update_lock); + WB_XDPE132G5_PMBUS_DEBUG("%d-%04x: set page%d vout cmd success, vout: %ld uV, vout_cmd_set: 0x%x\n", + client->adapter->nr, client->addr, attr->index, vout, vout_cmd_set); + return count; +} + +static ssize_t xdpe132g5_avs_vout_max_store(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_threshold; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout_threshold); + if (ret) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + WB_XDPE132G5_PMBUS_DEBUG("%d-%04x: vout%d max threshold: %d", client->adapter->nr, client->addr, + attr->index, vout_threshold); + + data->vout_max[attr->index] = vout_threshold; + return count; +} + +static ssize_t xdpe132g5_avs_vout_max_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + return snprintf(buf, PAGE_SIZE, "%d\n", data->vout_max[attr->index]); +} + +static ssize_t xdpe132g5_avs_vout_min_store(struct device *dev, + struct device_attribute *devattr, const char *buf, size_t count) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + int ret, vout_threshold; + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + ret = kstrtoint(buf, 0, &vout_threshold); + if (ret) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); + return -EINVAL; + } + + WB_XDPE132G5_PMBUS_DEBUG("%d-%04x: vout%d min threshold: %d", client->adapter->nr, client->addr, + attr->index, vout_threshold); + + data->vout_min[attr->index] = vout_threshold; + return count; +} + +static ssize_t xdpe132g5_avs_vout_min_show(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev->parent); + struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); + struct pmbus_data *data = i2c_get_clientdata(client); + + if ((attr->index < 0) || (attr->index >= PMBUS_PAGES)) { + WB_XDPE132G5_PMBUS_ERROR("%d-%04x: invalid index: %d \n", client->adapter->nr, client->addr, + attr->index); + return -EINVAL; + } + + return snprintf(buf, PAGE_SIZE, "%d\n", data->vout_min[attr->index]); +} + +static SENSOR_DEVICE_ATTR_RW(avs0_vout, xdpe132g5_avs_vout, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_vout, xdpe132g5_avs_vout, 1); +static SENSOR_DEVICE_ATTR_RW(avs0_vout_max, xdpe132g5_avs_vout_max, 0); +static SENSOR_DEVICE_ATTR_RW(avs0_vout_min, xdpe132g5_avs_vout_min, 0); +static SENSOR_DEVICE_ATTR_RW(avs1_vout_max, xdpe132g5_avs_vout_max, 1); +static SENSOR_DEVICE_ATTR_RW(avs1_vout_min, xdpe132g5_avs_vout_min, 1); + +static struct attribute *avs_ctrl_attrs[] = { + &sensor_dev_attr_avs0_vout.dev_attr.attr, + &sensor_dev_attr_avs1_vout.dev_attr.attr, + &sensor_dev_attr_avs0_vout_max.dev_attr.attr, + &sensor_dev_attr_avs0_vout_min.dev_attr.attr, + &sensor_dev_attr_avs1_vout_max.dev_attr.attr, + &sensor_dev_attr_avs1_vout_min.dev_attr.attr, + NULL, +}; + +static const struct attribute_group avs_ctrl_group = { + .attrs = avs_ctrl_attrs, +}; + +static const struct attribute_group *xdpe132g5_attribute_groups[] = { + &avs_ctrl_group, + NULL, +}; + +static SENSOR_DEVICE_ATTR(avs0_vout_command, S_IRUGO | S_IWUSR, show_xdpe132g5c_avs, set_xdpe132g5c_avs, 0); +static SENSOR_DEVICE_ATTR(avs1_vout_command, S_IRUGO | S_IWUSR, show_xdpe132g5c_avs, set_xdpe132g5c_avs, 1); + +static struct attribute *xdpe132g5c_sysfs_attrs[] = { + &sensor_dev_attr_avs0_vout_command.dev_attr.attr, + &sensor_dev_attr_avs1_vout_command.dev_attr.attr, + NULL, +}; + +static const struct attribute_group xdpe132g5c_sysfs_attrs_group = { + .attrs = xdpe132g5c_sysfs_attrs, +}; + +static int xdpe132g5c_identify(struct i2c_client *client, struct pmbus_driver_info *info) +{ + u8 vout_params; + int ret, i, retry; + + /* Read the register with VOUT scaling value.*/ + for (i = 0; i < XDPE132G5C_PAGE_NUM; i++) { + for (retry = 0; retry < RETRY_TIME; retry++) { + ret = wb_pmbus_read_byte_data(client, i, PMBUS_VOUT_MODE); + if (ret < 0 || ret == 0xff) { + msleep(5); + continue; + } else { + break; + } + } + if (ret < 0) { + return ret; + } + + switch (ret >> 5) { + case 0: /* linear mode */ + if (info->format[PSC_VOLTAGE_OUT] != linear) { + return -ENODEV; + } + break; + case 1: /* VID mode */ + if (info->format[PSC_VOLTAGE_OUT] != vid) { + return -ENODEV; + } + vout_params = ret & GENMASK(4, 0); + switch (vout_params) { + case XDPE132G5C_PROT_VR13_10MV: + case XDPE132G5C_PROT_VR12_5_10MV: + info->vrm_version[i] = vr13; + break; + case XDPE132G5C_PROT_VR13_5MV: + case XDPE132G5C_PROT_VR12_5MV: + case XDPE132G5C_PROT_IMVP8_5MV: + info->vrm_version[i] = vr12; + break; + case XDPE132G5C_PROT_IMVP9_10MV: + info->vrm_version[i] = imvp9; + break; + default: + return -EINVAL; + } + break; + case 2: /* direct mode */ + if (info->format[PSC_VOLTAGE_OUT] != direct) { + return -ENODEV; + } + break; + default: + return -ENODEV; + } + } + + return 0; +} + +static struct pmbus_driver_info xdpe132g5c_info = { + .pages = XDPE132G5C_PAGE_NUM, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_VOLTAGE_OUT] = linear, + .format[PSC_TEMPERATURE] = linear, + .format[PSC_CURRENT_IN] = linear, + .format[PSC_CURRENT_OUT] = linear, + .format[PSC_POWER] = linear, + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_PIN + | PMBUS_HAVE_STATUS_INPUT | PMBUS_HAVE_TEMP + | PMBUS_HAVE_STATUS_TEMP + | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT, + .func[1] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_PIN + | PMBUS_HAVE_STATUS_INPUT + | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_POUT, + .groups = xdpe132g5_attribute_groups, + .identify = xdpe132g5c_identify, +}; + +static int xdpe132g5c_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + int status; + struct pmbus_driver_info *info; + + info = devm_kmemdup(&client->dev, &xdpe132g5c_info, sizeof(*info), GFP_KERNEL); + if (!info) { + return -ENOMEM; + } + + status = wb_pmbus_do_probe(client, &xdpe132g5c_info); + if (status != 0) { + WB_XDPE132G5_PMBUS_ERROR("pmbus probe error %d\n", status); + return status; + } + + status = sysfs_create_group(&client->dev.kobj, &xdpe132g5c_sysfs_attrs_group); + if (status != 0) { + WB_XDPE132G5_PMBUS_ERROR("sysfs_create_group error %d\n", status); + return status; + } + + return status; +} + +static void xdpe132g5c_remove(struct i2c_client *client) +{ + sysfs_remove_group(&client->dev.kobj, &xdpe132g5c_sysfs_attrs_group); + wb_pmbus_do_remove(client); + return; +} + +static const struct i2c_device_id xdpe132g5c_id[] = { + {"wb_xdpe132g5c_pmbus", 0}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, xdpe132g5c_id); + +static const struct of_device_id __maybe_unused xdpe132g5c_of_match[] = { + {.compatible = "infineon,wb_xdpe132g5c_pmbus"}, + {} +}; +MODULE_DEVICE_TABLE(of, xdpe132g5c_of_match); + +static struct i2c_driver xdpe132g5c_driver = { + .driver = { + .name = "wb_xdpe132g5c_pmbus", + .of_match_table = of_match_ptr(xdpe132g5c_of_match), + }, + .probe = xdpe132g5c_probe, + .remove = xdpe132g5c_remove, + .id_table = xdpe132g5c_id, +}; + +module_i2c_driver(xdpe132g5c_driver); + +MODULE_AUTHOR("support"); +MODULE_DESCRIPTION("PMBus driver for Infineon XDPE132g5 family"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c index 5136275c8e73..9c5515f320be 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/mdio_bitbang.c @@ -149,7 +149,7 @@ static int mdiobb_cmd_addr(struct mdiobb_ctrl *ctrl, int phy, u32 addr) return dev_addr; } -static int mdiobb_read(struct mii_bus *bus, int phy, int reg) +int mdiobb_read(struct mii_bus *bus, int phy, int reg) { struct mdiobb_ctrl *ctrl = bus->priv; int ret, i; @@ -181,7 +181,7 @@ static int mdiobb_read(struct mii_bus *bus, int phy, int reg) return ret; } -static int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val) +int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val) { struct mdiobb_ctrl *ctrl = bus->priv; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c index 060cce3f0701..e3198b378a20 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/phy/wb_mdio_gpio_device.c @@ -22,7 +22,6 @@ static char *gpio_chip_name = NULL; module_param(gpio_chip_name, charp, 0644); MODULE_PARM_DESC(str_var, "A string variable for GPIO controller"); - static int g_wb_mdio_gpio_device_debug = 0; static int g_wb_mdio_gpio_device_error = 0; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/Makefile similarity index 59% rename from platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile rename to platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/Makefile index 269e95019cba..295934ca4a29 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/intel_spi/Makefile +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/Makefile @@ -2,20 +2,16 @@ PWD = $(shell pwd) EXTRA_CFLAGS:= -I$(M)/include EXTRA_CFLAGS+= -Wall -#ifdef ENABLE_GCOV -#ifeq ($(ENABLE_GCOV), y) -#EXTRA_CFLAGS+= -fprofile-arcs -ftest-coverage -lgcov -#endif -#endif # ENABLE_GCOV -obj-m := intel_spi.o -obj-m += intel_spi_platform.o +obj-m := wb_pinctrl_intel.o +obj-m += wb_gpio_c3000.o +obj-m += wb_gpio_c3000_device.o all: $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi cp -p $(PWD)/*.ko $(module_out_put_dir) clean: - rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd + rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd $(PWD)/*.mod rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order rm -rf $(PWD)/.tmp_versions diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/core.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/core.h new file mode 100644 index 000000000000..840103c40c14 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/core.h @@ -0,0 +1,249 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Core private header for the pin control subsystem + * + * Copyright (C) 2011 ST-Ericsson SA + * Written on behalf of Linaro for ST-Ericsson + * + * Author: Linus Walleij + */ + +#include +#include +#include +#include +#include + +struct pinctrl_gpio_range; + +/** + * struct pinctrl_dev - pin control class device + * @node: node to include this pin controller in the global pin controller list + * @desc: the pin controller descriptor supplied when initializing this pin + * controller + * @pin_desc_tree: each pin descriptor for this pin controller is stored in + * this radix tree + * @pin_group_tree: optionally each pin group can be stored in this radix tree + * @num_groups: optionally number of groups can be kept here + * @pin_function_tree: optionally each function can be stored in this radix tree + * @num_functions: optionally number of functions can be kept here + * @gpio_ranges: a list of GPIO ranges that is handled by this pin controller, + * ranges are added to this list at runtime + * @dev: the device entry for this pin controller + * @owner: module providing the pin controller, used for refcounting + * @driver_data: driver data for drivers registering to the pin controller + * subsystem + * @p: result of pinctrl_get() for this device + * @hog_default: default state for pins hogged by this device + * @hog_sleep: sleep state for pins hogged by this device + * @mutex: mutex taken on each pin controller specific action + * @device_root: debugfs root for this device + */ +struct pinctrl_dev { + struct list_head node; + struct pinctrl_desc *desc; + struct radix_tree_root pin_desc_tree; +#ifdef CONFIG_GENERIC_PINCTRL_GROUPS + struct radix_tree_root pin_group_tree; + unsigned int num_groups; +#endif +#ifdef CONFIG_GENERIC_PINMUX_FUNCTIONS + struct radix_tree_root pin_function_tree; + unsigned int num_functions; +#endif + struct list_head gpio_ranges; + struct device *dev; + struct module *owner; + void *driver_data; + struct pinctrl *p; + struct pinctrl_state *hog_default; + struct pinctrl_state *hog_sleep; + struct mutex mutex; +#ifdef CONFIG_DEBUG_FS + struct dentry *device_root; +#endif +}; + +/** + * struct pinctrl - per-device pin control state holder + * @node: global list node + * @dev: the device using this pin control handle + * @states: a list of states for this device + * @state: the current state + * @dt_maps: the mapping table chunks dynamically parsed from device tree for + * this device, if any + * @users: reference count + */ +struct pinctrl { + struct list_head node; + struct device *dev; + struct list_head states; + struct pinctrl_state *state; + struct list_head dt_maps; + struct kref users; +}; + +/** + * struct pinctrl_state - a pinctrl state for a device + * @node: list node for struct pinctrl's @states field + * @name: the name of this state + * @settings: a list of settings for this state + */ +struct pinctrl_state { + struct list_head node; + const char *name; + struct list_head settings; +}; + +/** + * struct pinctrl_setting_mux - setting data for MAP_TYPE_MUX_GROUP + * @group: the group selector to program + * @func: the function selector to program + */ +struct pinctrl_setting_mux { + unsigned group; + unsigned func; +}; + +/** + * struct pinctrl_setting_configs - setting data for MAP_TYPE_CONFIGS_* + * @group_or_pin: the group selector or pin ID to program + * @configs: a pointer to an array of config parameters/values to program into + * hardware. Each individual pin controller defines the format and meaning + * of config parameters. + * @num_configs: the number of entries in array @configs + */ +struct pinctrl_setting_configs { + unsigned group_or_pin; + unsigned long *configs; + unsigned num_configs; +}; + +/** + * struct pinctrl_setting - an individual mux or config setting + * @node: list node for struct pinctrl_settings's @settings field + * @type: the type of setting + * @pctldev: pin control device handling to be programmed. Not used for + * PIN_MAP_TYPE_DUMMY_STATE. + * @dev_name: the name of the device using this state + * @data: Data specific to the setting type + */ +struct pinctrl_setting { + struct list_head node; + enum pinctrl_map_type type; + struct pinctrl_dev *pctldev; + const char *dev_name; + union { + struct pinctrl_setting_mux mux; + struct pinctrl_setting_configs configs; + } data; +}; + +/** + * struct pin_desc - pin descriptor for each physical pin in the arch + * @pctldev: corresponding pin control device + * @name: a name for the pin, e.g. the name of the pin/pad/finger on a + * datasheet or such + * @dynamic_name: if the name of this pin was dynamically allocated + * @drv_data: driver-defined per-pin data. pinctrl core does not touch this + * @mux_usecount: If zero, the pin is not claimed, and @owner should be NULL. + * If non-zero, this pin is claimed by @owner. This field is an integer + * rather than a boolean, since pinctrl_get() might process multiple + * mapping table entries that refer to, and hence claim, the same group + * or pin, and each of these will increment the @usecount. + * @mux_owner: The name of device that called pinctrl_get(). + * @mux_setting: The most recent selected mux setting for this pin, if any. + * @gpio_owner: If pinctrl_gpio_request() was called for this pin, this is + * the name of the GPIO that "owns" this pin. + */ +struct pin_desc { + struct pinctrl_dev *pctldev; + const char *name; + bool dynamic_name; + void *drv_data; + /* These fields only added when supporting pinmux drivers */ +#ifdef CONFIG_PINMUX + unsigned mux_usecount; + const char *mux_owner; + const struct pinctrl_setting_mux *mux_setting; + const char *gpio_owner; +#endif +}; + +/** + * struct pinctrl_maps - a list item containing part of the mapping table + * @node: mapping table list node + * @maps: array of mapping table entries + * @num_maps: the number of entries in @maps + */ +struct pinctrl_maps { + struct list_head node; + const struct pinctrl_map *maps; + unsigned num_maps; +}; + +#ifdef CONFIG_GENERIC_PINCTRL_GROUPS + +/** + * struct group_desc - generic pin group descriptor + * @name: name of the pin group + * @pins: array of pins that belong to the group + * @num_pins: number of pins in the group + * @data: pin controller driver specific data + */ +struct group_desc { + const char *name; + int *pins; + int num_pins; + void *data; +}; + +int pinctrl_generic_get_group_count(struct pinctrl_dev *pctldev); + +const char *pinctrl_generic_get_group_name(struct pinctrl_dev *pctldev, + unsigned int group_selector); + +int pinctrl_generic_get_group_pins(struct pinctrl_dev *pctldev, + unsigned int group_selector, + const unsigned int **pins, + unsigned int *npins); + +struct group_desc *pinctrl_generic_get_group(struct pinctrl_dev *pctldev, + unsigned int group_selector); + +int pinctrl_generic_add_group(struct pinctrl_dev *pctldev, const char *name, + int *gpins, int ngpins, void *data); + +int pinctrl_generic_remove_group(struct pinctrl_dev *pctldev, + unsigned int group_selector); + +#endif /* CONFIG_GENERIC_PINCTRL_GROUPS */ + +struct pinctrl_dev *get_pinctrl_dev_from_devname(const char *dev_name); +struct pinctrl_dev *get_pinctrl_dev_from_of_node(struct device_node *np); +int pin_get_from_name(struct pinctrl_dev *pctldev, const char *name); +const char *pin_get_name(struct pinctrl_dev *pctldev, const unsigned pin); +int pinctrl_get_group_selector(struct pinctrl_dev *pctldev, + const char *pin_group); + +static inline struct pin_desc *pin_desc_get(struct pinctrl_dev *pctldev, + unsigned int pin) +{ + return radix_tree_lookup(&pctldev->pin_desc_tree, pin); +} + +extern struct pinctrl_gpio_range * +pinctrl_find_gpio_range_from_pin_nolock(struct pinctrl_dev *pctldev, + unsigned int pin); + +extern int pinctrl_force_sleep(struct pinctrl_dev *pctldev); +extern int pinctrl_force_default(struct pinctrl_dev *pctldev); + +extern struct mutex pinctrl_maps_mutex; +extern struct list_head pinctrl_maps; + +#define for_each_maps(_maps_node_, _i_, _map_) \ + list_for_each_entry(_maps_node_, &pinctrl_maps, node) \ + for (_i_ = 0, _map_ = &_maps_node_->maps[_i_]; \ + _i_ < _maps_node_->num_maps; \ + _i_++, _map_ = &_maps_node_->maps[_i_]) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000.c new file mode 100644 index 000000000000..753c8a061a86 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000.c @@ -0,0 +1,452 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Intel Denverton SoC pinctrl/GPIO driver + * + * Copyright (C) 2017, Intel Corporation + * Author: Mika Westerberg + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wb_pinctrl_intel.h" + +static int g_c3000_gpio_debug = 0; +static int g_c3000_gpio_error = 0; +module_param(g_c3000_gpio_debug, int, S_IRUGO | S_IWUSR); +module_param(g_c3000_gpio_error, int, S_IRUGO | S_IWUSR); + +#define C3000_GPIO_VERBOSE(fmt, args...) do { \ + if (g_c3000_gpio_debug) { \ + printk(KERN_INFO "[GPIO_PCIE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define C3000_GPIO_ERROR(fmt, args...) do { \ + if (g_c3000_gpio_error) { \ + printk(KERN_ERR "[GPIO_PCIE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define DNV_PAD_OWN 0x020 +#define DNV_PADCFGLOCK 0x090 +#define DNV_HOSTSW_OWN 0x0C0 +#define DNV_GPI_IS 0x100 +#define DNV_GPI_IE 0x120 + +#define DNV_GPP(n, s, e) \ + { \ + .reg_num = (n), \ + .base = (s), \ + .size = ((e) - (s) + 1), \ + } + +#define DNV_COMMUNITY(b, s, e, g, d) \ + { \ + .barno = (b), \ + .padown_offset = DNV_PAD_OWN, \ + .padcfglock_offset = DNV_PADCFGLOCK, \ + .hostown_offset = DNV_HOSTSW_OWN, \ + .is_offset = DNV_GPI_IS, \ + .ie_offset = DNV_GPI_IE, \ + .pin_base = (s), \ + .npins = ((e) - (s) + 1), \ + .gpps = (g), \ + .ngpps = ARRAY_SIZE(g), \ + .dw_base = (d), \ + } + +/* Denverton */ +static const struct pinctrl_pin_desc dnv_pins[] = { + /* North ALL */ + PINCTRL_PIN(0, "GBE0_SDP0"), + PINCTRL_PIN(1, "GBE1_SDP0"), + PINCTRL_PIN(2, "GBE0_SDP1"), + PINCTRL_PIN(3, "GBE1_SDP1"), + PINCTRL_PIN(4, "GBE0_SDP2"), + PINCTRL_PIN(5, "GBE1_SDP2"), + PINCTRL_PIN(6, "GBE0_SDP3"), + PINCTRL_PIN(7, "GBE1_SDP3"), + PINCTRL_PIN(8, "GBE2_LED0"), + PINCTRL_PIN(9, "GBE2_LED1"), + PINCTRL_PIN(10, "GBE0_I2C_CLK"), + PINCTRL_PIN(11, "GBE0_I2C_DATA"), + PINCTRL_PIN(12, "GBE1_I2C_CLK"), + PINCTRL_PIN(13, "GBE1_I2C_DATA"), + PINCTRL_PIN(14, "NCSI_RXD0"), + PINCTRL_PIN(15, "NCSI_CLK_IN"), + PINCTRL_PIN(16, "NCSI_RXD1"), + PINCTRL_PIN(17, "NCSI_CRS_DV"), + PINCTRL_PIN(18, "NCSI_ARB_IN"), + PINCTRL_PIN(19, "NCSI_TX_EN"), + PINCTRL_PIN(20, "NCSI_TXD0"), + PINCTRL_PIN(21, "NCSI_TXD1"), + PINCTRL_PIN(22, "NCSI_ARB_OUT"), + PINCTRL_PIN(23, "GBE0_LED0"), + PINCTRL_PIN(24, "GBE0_LED1"), + PINCTRL_PIN(25, "GBE1_LED0"), + PINCTRL_PIN(26, "GBE1_LED1"), + PINCTRL_PIN(27, "GPIO0"), + PINCTRL_PIN(28, "PCIE_CLKREQ0_N"), + PINCTRL_PIN(29, "PCIE_CLKREQ1_N"), + PINCTRL_PIN(30, "PCIE_CLKREQ2_N"), + PINCTRL_PIN(31, "PCIE_CLKREQ3_N"), + PINCTRL_PIN(32, "PCIE_CLKREQ4_N"), + PINCTRL_PIN(33, "GPIO1"), + PINCTRL_PIN(34, "GPIO2"), + PINCTRL_PIN(35, "SVID_ALERT_N"), + PINCTRL_PIN(36, "SVID_DATA"), + PINCTRL_PIN(37, "SVID_CLK"), + PINCTRL_PIN(38, "THERMTRIP_N"), + PINCTRL_PIN(39, "PROCHOT_N"), + PINCTRL_PIN(40, "MEMHOT_N"), + /* South DFX */ + PINCTRL_PIN(41, "DFX_PORT_CLK0"), + PINCTRL_PIN(42, "DFX_PORT_CLK1"), + PINCTRL_PIN(43, "DFX_PORT0"), + PINCTRL_PIN(44, "DFX_PORT1"), + PINCTRL_PIN(45, "DFX_PORT2"), + PINCTRL_PIN(46, "DFX_PORT3"), + PINCTRL_PIN(47, "DFX_PORT4"), + PINCTRL_PIN(48, "DFX_PORT5"), + PINCTRL_PIN(49, "DFX_PORT6"), + PINCTRL_PIN(50, "DFX_PORT7"), + PINCTRL_PIN(51, "DFX_PORT8"), + PINCTRL_PIN(52, "DFX_PORT9"), + PINCTRL_PIN(53, "DFX_PORT10"), + PINCTRL_PIN(54, "DFX_PORT11"), + PINCTRL_PIN(55, "DFX_PORT12"), + PINCTRL_PIN(56, "DFX_PORT13"), + PINCTRL_PIN(57, "DFX_PORT14"), + PINCTRL_PIN(58, "DFX_PORT15"), + /* South GPP0 */ + PINCTRL_PIN(59, "GPIO12"), + PINCTRL_PIN(60, "SMB5_GBE_ALRT_N"), + PINCTRL_PIN(61, "PCIE_CLKREQ5_N"), + PINCTRL_PIN(62, "PCIE_CLKREQ6_N"), + PINCTRL_PIN(63, "PCIE_CLKREQ7_N"), + PINCTRL_PIN(64, "UART0_RXD"), + PINCTRL_PIN(65, "UART0_TXD"), + PINCTRL_PIN(66, "SMB5_GBE_CLK"), + PINCTRL_PIN(67, "SMB5_GBE_DATA"), + PINCTRL_PIN(68, "ERROR2_N"), + PINCTRL_PIN(69, "ERROR1_N"), + PINCTRL_PIN(70, "ERROR0_N"), + PINCTRL_PIN(71, "IERR_N"), + PINCTRL_PIN(72, "MCERR_N"), + PINCTRL_PIN(73, "SMB0_LEG_CLK"), + PINCTRL_PIN(74, "SMB0_LEG_DATA"), + PINCTRL_PIN(75, "SMB0_LEG_ALRT_N"), + PINCTRL_PIN(76, "SMB1_HOST_DATA"), + PINCTRL_PIN(77, "SMB1_HOST_CLK"), + PINCTRL_PIN(78, "SMB2_PECI_DATA"), + PINCTRL_PIN(79, "SMB2_PECI_CLK"), + PINCTRL_PIN(80, "SMB4_CSME0_DATA"), + PINCTRL_PIN(81, "SMB4_CSME0_CLK"), + PINCTRL_PIN(82, "SMB4_CSME0_ALRT_N"), + PINCTRL_PIN(83, "USB_OC0_N"), + PINCTRL_PIN(84, "FLEX_CLK_SE0"), + PINCTRL_PIN(85, "FLEX_CLK_SE1"), + PINCTRL_PIN(86, "GPIO4"), + PINCTRL_PIN(87, "GPIO5"), + PINCTRL_PIN(88, "GPIO6"), + PINCTRL_PIN(89, "GPIO7"), + PINCTRL_PIN(90, "SATA0_LED_N"), + PINCTRL_PIN(91, "SATA1_LED_N"), + PINCTRL_PIN(92, "SATA_PDETECT0"), + PINCTRL_PIN(93, "SATA_PDETECT1"), + PINCTRL_PIN(94, "SATA0_SDOUT"), + PINCTRL_PIN(95, "SATA1_SDOUT"), + PINCTRL_PIN(96, "UART1_RXD"), + PINCTRL_PIN(97, "UART1_TXD"), + PINCTRL_PIN(98, "GPIO8"), + PINCTRL_PIN(99, "GPIO9"), + PINCTRL_PIN(100, "TCK"), + PINCTRL_PIN(101, "TRST_N"), + PINCTRL_PIN(102, "TMS"), + PINCTRL_PIN(103, "TDI"), + PINCTRL_PIN(104, "TDO"), + PINCTRL_PIN(105, "CX_PRDY_N"), + PINCTRL_PIN(106, "CX_PREQ_N"), + PINCTRL_PIN(107, "CTBTRIGINOUT"), + PINCTRL_PIN(108, "CTBTRIGOUT"), + PINCTRL_PIN(109, "DFX_SPARE2"), + PINCTRL_PIN(110, "DFX_SPARE3"), + PINCTRL_PIN(111, "DFX_SPARE4"), + /* South GPP1 */ + PINCTRL_PIN(112, "SUSPWRDNACK"), + PINCTRL_PIN(113, "PMU_SUSCLK"), + PINCTRL_PIN(114, "ADR_TRIGGER"), + PINCTRL_PIN(115, "PMU_SLP_S45_N"), + PINCTRL_PIN(116, "PMU_SLP_S3_N"), + PINCTRL_PIN(117, "PMU_WAKE_N"), + PINCTRL_PIN(118, "PMU_PWRBTN_N"), + PINCTRL_PIN(119, "PMU_RESETBUTTON_N"), + PINCTRL_PIN(120, "PMU_PLTRST_N"), + PINCTRL_PIN(121, "SUS_STAT_N"), + PINCTRL_PIN(122, "SLP_S0IX_N"), + PINCTRL_PIN(123, "SPI_CS0_N"), + PINCTRL_PIN(124, "SPI_CS1_N"), + PINCTRL_PIN(125, "SPI_MOSI_IO0"), + PINCTRL_PIN(126, "SPI_MISO_IO1"), + PINCTRL_PIN(127, "SPI_IO2"), + PINCTRL_PIN(128, "SPI_IO3"), + PINCTRL_PIN(129, "SPI_CLK"), + PINCTRL_PIN(130, "SPI_CLK_LOOPBK"), + PINCTRL_PIN(131, "ESPI_IO0"), + PINCTRL_PIN(132, "ESPI_IO1"), + PINCTRL_PIN(133, "ESPI_IO2"), + PINCTRL_PIN(134, "ESPI_IO3"), + PINCTRL_PIN(135, "ESPI_CS0_N"), + PINCTRL_PIN(136, "ESPI_CLK"), + PINCTRL_PIN(137, "ESPI_RST_N"), + PINCTRL_PIN(138, "ESPI_ALRT0_N"), + PINCTRL_PIN(139, "GPIO10"), + PINCTRL_PIN(140, "GPIO11"), + PINCTRL_PIN(141, "ESPI_CLK_LOOPBK"), + PINCTRL_PIN(142, "EMMC_CMD"), + PINCTRL_PIN(143, "EMMC_STROBE"), + PINCTRL_PIN(144, "EMMC_CLK"), + PINCTRL_PIN(145, "EMMC_D0"), + PINCTRL_PIN(146, "EMMC_D1"), + PINCTRL_PIN(147, "EMMC_D2"), + PINCTRL_PIN(148, "EMMC_D3"), + PINCTRL_PIN(149, "EMMC_D4"), + PINCTRL_PIN(150, "EMMC_D5"), + PINCTRL_PIN(151, "EMMC_D6"), + PINCTRL_PIN(152, "EMMC_D7"), + PINCTRL_PIN(153, "GPIO3"), +}; + +static const unsigned int dnv_uart0_pins[] = { 60, 61, 64, 65 }; +static const unsigned int dnv_uart0_modes[] = { 2, 3, 1, 1 }; +static const unsigned int dnv_uart1_pins[] = { 94, 95, 96, 97 }; +static const unsigned int dnv_uart2_pins[] = { 60, 61, 62, 63 }; +static const unsigned int dnv_uart2_modes[] = { 1, 2, 2, 2 }; +static const unsigned int dnv_emmc_pins[] = { + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, +}; + +static const struct intel_pingroup dnv_groups[] = { + PIN_GROUP("uart0_grp", dnv_uart0_pins, dnv_uart0_modes), + PIN_GROUP("uart1_grp", dnv_uart1_pins, 1), + PIN_GROUP("uart2_grp", dnv_uart2_pins, dnv_uart2_modes), + PIN_GROUP("emmc_grp", dnv_emmc_pins, 1), +}; + +static const char * const dnv_uart0_groups[] = { "uart0_grp" }; +static const char * const dnv_uart1_groups[] = { "uart1_grp" }; +static const char * const dnv_uart2_groups[] = { "uart2_grp" }; +static const char * const dnv_emmc_groups[] = { "emmc_grp" }; + +static const struct intel_function dnv_functions[] = { + FUNCTION("uart0", dnv_uart0_groups), + FUNCTION("uart1", dnv_uart1_groups), + FUNCTION("uart2", dnv_uart2_groups), + FUNCTION("emmc", dnv_emmc_groups), +}; + +static const struct intel_padgroup dnv_north_gpps[] = { + DNV_GPP(0, 0, 31), /* North ALL_0 */ + DNV_GPP(1, 32, 40), /* North ALL_1 */ +}; + +static const struct intel_padgroup dnv_south_gpps[] = { + DNV_GPP(0, 41, 58), /* South DFX */ + DNV_GPP(1, 59, 90), /* South GPP0_0 */ + DNV_GPP(2, 91, 111), /* South GPP0_1 */ + DNV_GPP(3, 112, 143), /* South GPP1_0 */ + DNV_GPP(4, 144, 153), /* South GPP1_1 */ +}; + +static const struct intel_community dnv_communities[] = { + DNV_COMMUNITY(0, 0, 40, dnv_north_gpps, 0xc20000), + DNV_COMMUNITY(1, 41, 153, dnv_south_gpps, 0xc50000), +}; + +static const struct intel_pinctrl_soc_data dnv_soc_data = { + .pins = dnv_pins, + .npins = ARRAY_SIZE(dnv_pins), + .groups = dnv_groups, + .ngroups = ARRAY_SIZE(dnv_groups), + .functions = dnv_functions, + .nfunctions = ARRAY_SIZE(dnv_functions), + .communities = dnv_communities, + .ncommunities = ARRAY_SIZE(dnv_communities), +}; + +static INTEL_PINCTRL_PM_OPS(dnv_pinctrl_pm_ops); + +static int pci_dev_init(wb_gpio_data_t *wb_gpio_data, struct pci_dev *pci_dev) +{ + int err, i; + void __iomem *base; + + C3000_GPIO_VERBOSE("Enter vendor 0x%x, device 0x%x.\n", + pci_dev->vendor, pci_dev->device); + + C3000_GPIO_VERBOSE("start pci_enable_device!\n"); + err = pci_enable_device(pci_dev); + if (err) { + dev_err(&pci_dev->dev, "Failed to enable pci device, ret:%d.\n", err); + return err; + } + + err = pci_request_region(pci_dev, 0, "P2SB"); + if (err) { + dev_err(&pci_dev->dev, "Requesting C3000 P2SB BAR0 region failed, ret: %d\n", err); + goto err_disable; + } + + C3000_GPIO_VERBOSE("start pci_set_master!\n"); + pci_set_master(pci_dev); + + base = pci_iomap(pci_dev, wb_gpio_data->pci_bar, 0); + if (!base) { + dev_err(&pci_dev->dev, "pci_iomap bar: %d failed\n", wb_gpio_data->pci_bar); + err = -ENOMEM; + goto err_release; + } + wb_gpio_data->pci_mem_base = base; + + for (i = 0; i < dnv_soc_data.ncommunities; i++) { + wb_gpio_data->res[i] = base + dnv_soc_data.communities[i].dw_base; + } + return 0; +err_release: + pci_release_region(pci_dev, wb_gpio_data->pci_bar); +err_disable: + pci_disable_device(pci_dev); + return err; +} + +static void pci_dev_release(wb_gpio_data_t *wb_gpio_data) +{ + struct pci_dev *pci_dev; + + pci_dev = wb_gpio_data->pci_dev; + if (wb_gpio_data->pci_mem_base) { + pci_iounmap(pci_dev, wb_gpio_data->pci_mem_base); + } + pci_release_region(pci_dev, wb_gpio_data->pci_bar); + pci_disable_device(pci_dev); + return; +} + +static int wb_gpio_driver_probe(struct platform_device *plat_dev) +{ + int ret, devfn; + wb_gpio_data_t *wb_gpio_data; + wb_gpio_data_t *c3000_gpio_device; + struct pci_dev *pci_dev; + + if (dnv_soc_data.ncommunities > GPIO_RES_MAX) { + dev_err(&plat_dev->dev, "GPIO ncommunities %lu is more than GPIO resource number: %d\n", + dnv_soc_data.ncommunities, GPIO_RES_MAX); + return -EINVAL; + } + + wb_gpio_data = devm_kzalloc(&plat_dev->dev, sizeof(wb_gpio_data_t), GFP_KERNEL); + if (!wb_gpio_data) { + dev_err(&plat_dev->dev, "devm_kzalloc failed.\n"); + ret = -ENOMEM; + return ret; + } + + if (plat_dev->dev.of_node) { + ret = 0; + ret += of_property_read_u32(plat_dev->dev.of_node, "pci_domain", &wb_gpio_data->pci_domain); + ret += of_property_read_u32(plat_dev->dev.of_node, "pci_bus", &wb_gpio_data->pci_bus); + ret += of_property_read_u32(plat_dev->dev.of_node, "pci_slot", &wb_gpio_data->pci_slot); + ret += of_property_read_u32(plat_dev->dev.of_node, "pci_fn", &wb_gpio_data->pci_fn); + ret += of_property_read_u32(plat_dev->dev.of_node, "pci_bar", &wb_gpio_data->pci_bar); + ret += of_property_read_u32(plat_dev->dev.of_node, "irq", &wb_gpio_data->irq); + if (ret != 0) { + dev_err(&plat_dev->dev, "Failed to get dts config, ret:%d.\n", ret); + return -ENXIO; + } + } else { + if (plat_dev->dev.platform_data == NULL) { + dev_err(&plat_dev->dev, "Failed to get platform data config.\n"); + return -ENXIO; + } + c3000_gpio_device = plat_dev->dev.platform_data; + wb_gpio_data->pci_domain = c3000_gpio_device->pci_domain; + wb_gpio_data->pci_bus = c3000_gpio_device->pci_bus; + wb_gpio_data->pci_slot = c3000_gpio_device->pci_slot; + wb_gpio_data->pci_fn = c3000_gpio_device->pci_fn; + wb_gpio_data->pci_bar = c3000_gpio_device->pci_bar; + wb_gpio_data->irq = c3000_gpio_device->irq; + } + + C3000_GPIO_VERBOSE("domain:0x%04x, bus:0x%02x, slot:0x%02x, fn:%u, bar:%u, irq: %d\n", + wb_gpio_data->pci_domain, wb_gpio_data->pci_bus, wb_gpio_data->pci_slot, wb_gpio_data->pci_fn, + wb_gpio_data->pci_bar, wb_gpio_data->irq); + + devfn = PCI_DEVFN(wb_gpio_data->pci_slot, wb_gpio_data->pci_fn); + pci_dev = pci_get_domain_bus_and_slot(wb_gpio_data->pci_domain, wb_gpio_data->pci_bus, devfn); + if (pci_dev == NULL) { + dev_err(&plat_dev->dev, "Failed to find pci_dev, domain:0x%04x, bus:0x%02x, devfn:0x%x\n", + wb_gpio_data->pci_domain, wb_gpio_data->pci_bus, devfn); + return -ENXIO; + } + wb_gpio_data->pci_dev = pci_dev; + ret = pci_dev_init(wb_gpio_data, pci_dev); + if (ret != 0) { + dev_err(&plat_dev->dev, "Failed to get pci bar address.\n"); + return ret; + } + C3000_GPIO_VERBOSE("pci_dev_init success, pci_mem_bae: 0x%pK, res0: 0x%pK, res1: 0x%pK\n", + wb_gpio_data->pci_mem_base, wb_gpio_data->res[0], wb_gpio_data->res[1]); + + platform_set_drvdata(plat_dev, wb_gpio_data); + + ret = wb_pinctrl_probe(plat_dev, &dnv_soc_data); + if (ret) { + dev_err(&plat_dev->dev, "C3000 gpio pinctrl probe failed, ret:%d\n", ret); + pci_dev_release(wb_gpio_data); + return ret; + } + dev_info(&plat_dev->dev, "C3000 gpio pinctrl probe success.\n"); + return 0; +} + +static int wb_gpio_driver_remove(struct platform_device *plat_dev) +{ + wb_gpio_data_t *wb_gpio_data; + + C3000_GPIO_VERBOSE("c3000_gpio_pcie_remove.\n"); + + wb_gpio_data = platform_get_drvdata(plat_dev); + pci_dev_release(wb_gpio_data); + return 0; +} + +static const struct of_device_id gpio_c3000_match[] = { + { + .compatible = "wb_gpio_c3000", + }, + {}, +}; +MODULE_DEVICE_TABLE(of, gpio_c3000_match); + +static struct platform_driver wb_gpio_c3000_driver = { + .driver = { + .name = "wb_gpio_c3000", + .of_match_table = gpio_c3000_match, + }, + .probe = wb_gpio_driver_probe, + .remove = wb_gpio_driver_remove, +}; + +module_platform_driver(wb_gpio_c3000_driver); + +MODULE_DESCRIPTION("C3000 GPIO Controller driver"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000_device.c new file mode 100644 index 000000000000..33ab19a5ac44 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_gpio_c3000_device.c @@ -0,0 +1,69 @@ +#include +#include +#include +#include +#include + +#include "wb_pinctrl_intel.h" + +static int g_wb_c300_gpio_device_debug = 0; +static int g_wb_c300_gpio_device_error = 0; + +module_param(g_wb_c300_gpio_device_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_c300_gpio_device_error, int, S_IRUGO | S_IWUSR); + +#define WB_C3000_GPIO_DEVICE_DEBUG(fmt, args...) do { \ + if (g_wb_c300_gpio_device_debug) { \ + printk(KERN_INFO "[WB_C3000_GPIO_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_C3000_GPIO_DEVICE_ERROR(fmt, args...) do { \ + if (g_wb_c300_gpio_device_error) { \ + printk(KERN_ERR "[WB_C3000_GPIO_DEVICE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +static wb_gpio_data_t c3000_gpio_device_data = { + .irq = 15, + .pci_domain = 0x0000, + .pci_bus = 0x00, + .pci_slot = 0x1f, + .pci_fn = 1, + .pci_bar = 0, +}; + +static void wb_c3000_gpio_device_release(struct device *dev) +{ + return; +} + +static struct platform_device c3000_gpio_device = { + .name = "wb_gpio_c3000", + .id = -1, + .dev = { + .platform_data = &c3000_gpio_device_data, + .release = wb_c3000_gpio_device_release, + }, +}; + +static int __init wb_c3000_gpio_device_init(void) +{ + WB_C3000_GPIO_DEVICE_DEBUG("wb_c3000_gpio_device_init enter!\n"); + return platform_device_register(&c3000_gpio_device); + +} + +static void __exit wb_c3000_gpio_device_exit(void) +{ + + WB_C3000_GPIO_DEVICE_DEBUG("wb_c3000_gpio_device_exit enter!\n"); + platform_device_unregister(&c3000_gpio_device); + return; +} + +module_init(wb_c3000_gpio_device_init); +module_exit(wb_c3000_gpio_device_exit); +MODULE_DESCRIPTION("C3000 GPIO Controller device"); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.c new file mode 100644 index 000000000000..7a52f17ac8f9 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.c @@ -0,0 +1,1829 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Intel pinctrl/GPIO core driver. + * + * Copyright (C) 2015, Intel Corporation + * Authors: Mathias Nyman + * Mika Westerberg + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "core.h" +#include "wb_pinctrl_intel.h" + +/* Offset from regs */ +#define REVID 0x000 +#define REVID_SHIFT 16 +#define REVID_MASK GENMASK(31, 16) + +#define PADBAR 0x00c + +#define PADOWN_BITS 4 +#define PADOWN_SHIFT(p) ((p) % 8 * PADOWN_BITS) +#define PADOWN_MASK(p) (GENMASK(3, 0) << PADOWN_SHIFT(p)) +#define PADOWN_GPP(p) ((p) / 8) + +/* Offset from pad_regs */ +#define PADCFG0 0x000 +#define PADCFG0_RXEVCFG_SHIFT 25 +#define PADCFG0_RXEVCFG_MASK GENMASK(26, 25) +#define PADCFG0_RXEVCFG_LEVEL 0 +#define PADCFG0_RXEVCFG_EDGE 1 +#define PADCFG0_RXEVCFG_DISABLED 2 +#define PADCFG0_RXEVCFG_EDGE_BOTH 3 +#define PADCFG0_PREGFRXSEL BIT(24) +#define PADCFG0_RXINV BIT(23) +#define PADCFG0_GPIROUTIOXAPIC BIT(20) +#define PADCFG0_GPIROUTSCI BIT(19) +#define PADCFG0_GPIROUTSMI BIT(18) +#define PADCFG0_GPIROUTNMI BIT(17) +#define PADCFG0_PMODE_SHIFT 10 +#define PADCFG0_PMODE_MASK GENMASK(13, 10) +#define PADCFG0_PMODE_GPIO 0 +#define PADCFG0_GPIORXDIS BIT(9) +#define PADCFG0_GPIOTXDIS BIT(8) +#define PADCFG0_GPIORXSTATE BIT(1) +#define PADCFG0_GPIOTXSTATE BIT(0) + +#define PADCFG1 0x004 +#define PADCFG1_TERM_UP BIT(13) +#define PADCFG1_TERM_SHIFT 10 +#define PADCFG1_TERM_MASK GENMASK(12, 10) +#define PADCFG1_TERM_20K BIT(2) +#define PADCFG1_TERM_5K BIT(1) +#define PADCFG1_TERM_1K BIT(0) +#define PADCFG1_TERM_833 (BIT(1) | BIT(0)) + +#define PADCFG2 0x008 +#define PADCFG2_DEBEN BIT(0) +#define PADCFG2_DEBOUNCE_SHIFT 1 +#define PADCFG2_DEBOUNCE_MASK GENMASK(4, 1) + +#define DEBOUNCE_PERIOD_NSEC 31250 + +struct intel_pad_context { + u32 padcfg0; + u32 padcfg1; + u32 padcfg2; +}; + +struct intel_community_context { + u32 *intmask; + u32 *hostown; +}; + +#define pin_to_padno(c, p) ((p) - (c)->pin_base) +#define padgroup_offset(g, p) ((p) - (g)->base) + +static struct intel_community *intel_get_community(struct intel_pinctrl *pctrl, + unsigned int pin) +{ + struct intel_community *community; + int i; + + for (i = 0; i < pctrl->ncommunities; i++) { + community = &pctrl->communities[i]; + if (pin >= community->pin_base && + pin < community->pin_base + community->npins) + return community; + } + + dev_warn(pctrl->dev, "failed to find community for pin %u\n", pin); + return NULL; +} + +static const struct intel_padgroup * +intel_community_get_padgroup(const struct intel_community *community, + unsigned int pin) +{ + int i; + + for (i = 0; i < community->ngpps; i++) { + const struct intel_padgroup *padgrp = &community->gpps[i]; + + if (pin >= padgrp->base && pin < padgrp->base + padgrp->size) + return padgrp; + } + + return NULL; +} + +static void __iomem *intel_get_padcfg(struct intel_pinctrl *pctrl, + unsigned int pin, unsigned int reg) +{ + const struct intel_community *community; + unsigned int padno; + size_t nregs; + + community = intel_get_community(pctrl, pin); + if (!community) + return NULL; + + padno = pin_to_padno(community, pin); + nregs = (community->features & PINCTRL_FEATURE_DEBOUNCE) ? 4 : 2; + + if (reg >= nregs * 4) + return NULL; + + return community->pad_regs + reg + padno * nregs * 4; +} + +static bool intel_pad_owned_by_host(struct intel_pinctrl *pctrl, unsigned int pin) +{ + const struct intel_community *community; + const struct intel_padgroup *padgrp; + unsigned int gpp, offset, gpp_offset; + void __iomem *padown; + + community = intel_get_community(pctrl, pin); + if (!community) + return false; + if (!community->padown_offset) + return true; + + padgrp = intel_community_get_padgroup(community, pin); + if (!padgrp) + return false; + + gpp_offset = padgroup_offset(padgrp, pin); + gpp = PADOWN_GPP(gpp_offset); + offset = community->padown_offset + padgrp->padown_num * 4 + gpp * 4; + padown = community->regs + offset; + + return !(readl(padown) & PADOWN_MASK(gpp_offset)); +} + +static bool intel_pad_set_acpi_mode(struct intel_pinctrl *pctrl, + unsigned pin, bool acpi_mode) +{ + const struct intel_community *community; + const struct intel_padgroup *padgrp; + unsigned int offset, gpp_offset; + void __iomem *hostown; + uint32_t value; + + community = intel_get_community(pctrl, pin); + if (!community) + return true; + if (!community->hostown_offset) + return false; + + padgrp = intel_community_get_padgroup(community, pin); + if (!padgrp) + return true; + + gpp_offset = padgroup_offset(padgrp, pin); + offset = community->hostown_offset + padgrp->reg_num * 4; + hostown = community->regs + offset; + + value = readl(hostown); + if (acpi_mode) { + /* ACPI mode */ + value &= ~BIT(gpp_offset); + } else { + /* GPIO mode */ + value |= BIT(gpp_offset); + } + + writel(value, hostown); + + return !(readl(hostown) & BIT(gpp_offset)); +} + +static bool intel_pad_acpi_mode(struct intel_pinctrl *pctrl, unsigned int pin) +{ + const struct intel_community *community; + const struct intel_padgroup *padgrp; + unsigned int offset, gpp_offset; + void __iomem *hostown; + + community = intel_get_community(pctrl, pin); + if (!community) + return true; + if (!community->hostown_offset) + return false; + + padgrp = intel_community_get_padgroup(community, pin); + if (!padgrp) + return true; + + gpp_offset = padgroup_offset(padgrp, pin); + offset = community->hostown_offset + padgrp->reg_num * 4; + hostown = community->regs + offset; + + return !(readl(hostown) & BIT(gpp_offset)); +} + +/** + * enum - Locking variants of the pad configuration + * + * @PAD_UNLOCKED: pad is fully controlled by the configuration registers + * @PAD_LOCKED: pad configuration registers, except TX state, are locked + * @PAD_LOCKED_TX: pad configuration TX state is locked + * @PAD_LOCKED_FULL: pad configuration registers are locked completely + * + * Locking is considered as read-only mode for corresponding registers and + * their respective fields. That said, TX state bit is locked separately from + * the main locking scheme. + */ +enum { + PAD_UNLOCKED = 0, + PAD_LOCKED = 1, + PAD_LOCKED_TX = 2, + PAD_LOCKED_FULL = PAD_LOCKED | PAD_LOCKED_TX, +}; + +static int intel_pad_locked(struct intel_pinctrl *pctrl, unsigned int pin) +{ + struct intel_community *community; + const struct intel_padgroup *padgrp; + unsigned int offset, gpp_offset; + u32 value; + int ret = PAD_UNLOCKED; + + community = intel_get_community(pctrl, pin); + if (!community) + return PAD_LOCKED_FULL; + if (!community->padcfglock_offset) + return PAD_UNLOCKED; + + padgrp = intel_community_get_padgroup(community, pin); + if (!padgrp) + return PAD_LOCKED_FULL; + + gpp_offset = padgroup_offset(padgrp, pin); + + /* + * If PADCFGLOCK and PADCFGLOCKTX bits are both clear for this pad, + * the pad is considered unlocked. Any other case means that it is + * either fully or partially locked. + */ + offset = community->padcfglock_offset + 0 + padgrp->reg_num * 8; + value = readl(community->regs + offset); + if (value & BIT(gpp_offset)) + ret |= PAD_LOCKED; + + offset = community->padcfglock_offset + 4 + padgrp->reg_num * 8; + value = readl(community->regs + offset); + if (value & BIT(gpp_offset)) + ret |= PAD_LOCKED_TX; + + return ret; +} + +static bool intel_pad_is_unlocked(struct intel_pinctrl *pctrl, unsigned int pin) +{ + return (intel_pad_locked(pctrl, pin) & PAD_LOCKED) == PAD_UNLOCKED; +} + +static bool intel_pad_usable(struct intel_pinctrl *pctrl, unsigned int pin) +{ + return intel_pad_owned_by_host(pctrl, pin) && intel_pad_is_unlocked(pctrl, pin); +} + +static int intel_get_groups_count(struct pinctrl_dev *pctldev) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + + return pctrl->soc->ngroups; +} + +static const char *intel_get_group_name(struct pinctrl_dev *pctldev, + unsigned int group) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + + return pctrl->soc->groups[group].name; +} + +static int intel_get_group_pins(struct pinctrl_dev *pctldev, unsigned int group, + const unsigned int **pins, unsigned int *npins) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + + *pins = pctrl->soc->groups[group].pins; + *npins = pctrl->soc->groups[group].npins; + return 0; +} + +static void intel_pin_dbg_show(struct pinctrl_dev *pctldev, struct seq_file *s, + unsigned int pin) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + void __iomem *padcfg; + u32 cfg0, cfg1, mode; + int locked; + bool acpi; + + if (!intel_pad_owned_by_host(pctrl, pin)) { + seq_puts(s, "not available"); + return; + } + + cfg0 = readl(intel_get_padcfg(pctrl, pin, PADCFG0)); + cfg1 = readl(intel_get_padcfg(pctrl, pin, PADCFG1)); + + mode = (cfg0 & PADCFG0_PMODE_MASK) >> PADCFG0_PMODE_SHIFT; + if (mode == PADCFG0_PMODE_GPIO) + seq_puts(s, "GPIO "); + else + seq_printf(s, "mode %d ", mode); + + seq_printf(s, "0x%08x 0x%08x", cfg0, cfg1); + + /* Dump the additional PADCFG registers if available */ + padcfg = intel_get_padcfg(pctrl, pin, PADCFG2); + if (padcfg) + seq_printf(s, " 0x%08x", readl(padcfg)); + + locked = intel_pad_locked(pctrl, pin); + acpi = intel_pad_acpi_mode(pctrl, pin); + + if (locked || acpi) { + seq_puts(s, " ["); + if (locked) + seq_puts(s, "LOCKED"); + if ((locked & PAD_LOCKED_FULL) == PAD_LOCKED_TX) + seq_puts(s, " tx"); + else if ((locked & PAD_LOCKED_FULL) == PAD_LOCKED_FULL) + seq_puts(s, " full"); + + if (locked && acpi) + seq_puts(s, ", "); + + if (acpi) + seq_puts(s, "ACPI"); + seq_puts(s, "]"); + } +} + +static const struct pinctrl_ops intel_pinctrl_ops = { + .get_groups_count = intel_get_groups_count, + .get_group_name = intel_get_group_name, + .get_group_pins = intel_get_group_pins, + .pin_dbg_show = intel_pin_dbg_show, +}; + +static int intel_get_functions_count(struct pinctrl_dev *pctldev) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + + return pctrl->soc->nfunctions; +} + +static const char *intel_get_function_name(struct pinctrl_dev *pctldev, + unsigned int function) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + + return pctrl->soc->functions[function].name; +} + +static int intel_get_function_groups(struct pinctrl_dev *pctldev, + unsigned int function, + const char * const **groups, + unsigned int * const ngroups) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + + *groups = pctrl->soc->functions[function].groups; + *ngroups = pctrl->soc->functions[function].ngroups; + return 0; +} + +static int intel_pinmux_set_mux(struct pinctrl_dev *pctldev, + unsigned int function, unsigned int group) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + const struct intel_pingroup *grp = &pctrl->soc->groups[group]; + unsigned long flags; + int i; + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + /* + * All pins in the groups needs to be accessible and writable + * before we can enable the mux for this group. + */ + for (i = 0; i < grp->npins; i++) { + if (!intel_pad_usable(pctrl, grp->pins[i])) { + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + return -EBUSY; + } + } + + /* Now enable the mux setting for each pin in the group */ + for (i = 0; i < grp->npins; i++) { + void __iomem *padcfg0; + u32 value; + + padcfg0 = intel_get_padcfg(pctrl, grp->pins[i], PADCFG0); + value = readl(padcfg0); + + value &= ~PADCFG0_PMODE_MASK; + + if (grp->modes) + value |= grp->modes[i] << PADCFG0_PMODE_SHIFT; + else + value |= grp->mode << PADCFG0_PMODE_SHIFT; + + writel(value, padcfg0); + } + + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + return 0; +} + +static void __intel_gpio_set_direction(void __iomem *padcfg0, bool input) +{ + u32 value; + + value = readl(padcfg0); + if (input) { + value &= ~PADCFG0_GPIORXDIS; + value |= PADCFG0_GPIOTXDIS; + } else { + value &= ~PADCFG0_GPIOTXDIS; + value |= PADCFG0_GPIORXDIS; + } + writel(value, padcfg0); +} + +static int intel_gpio_get_gpio_mode(void __iomem *padcfg0) +{ + return (readl(padcfg0) & PADCFG0_PMODE_MASK) >> PADCFG0_PMODE_SHIFT; +} + +static void intel_gpio_set_gpio_mode(void __iomem *padcfg0) +{ + u32 value; + + value = readl(padcfg0); + + /* Put the pad into GPIO mode */ + value &= ~PADCFG0_PMODE_MASK; + value |= PADCFG0_PMODE_GPIO; + + /* Disable input and output buffers */ + value |= PADCFG0_GPIORXDIS; + value |= PADCFG0_GPIOTXDIS; + + /* Disable SCI/SMI/NMI generation */ + value &= ~(PADCFG0_GPIROUTIOXAPIC | PADCFG0_GPIROUTSCI); + value &= ~(PADCFG0_GPIROUTSMI | PADCFG0_GPIROUTNMI); + + writel(value, padcfg0); +} + +static int intel_gpio_request_enable(struct pinctrl_dev *pctldev, + struct pinctrl_gpio_range *range, + unsigned int pin) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + void __iomem *padcfg0; + unsigned long flags; + + padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + if (!intel_pad_owned_by_host(pctrl, pin)) { + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + return -EBUSY; + } + + if (!intel_pad_is_unlocked(pctrl, pin)) { + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + return 0; + } + + /* + * If pin is already configured in GPIO mode, we assume that + * firmware provides correct settings. In such case we avoid + * potential glitches on the pin. Otherwise, for the pin in + * alternative mode, consumer has to supply respective flags. + */ + if (intel_gpio_get_gpio_mode(padcfg0) == PADCFG0_PMODE_GPIO) { + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + return 0; + } + + intel_gpio_set_gpio_mode(padcfg0); + + /* Disable TX buffer and enable RX (this will be input) */ + __intel_gpio_set_direction(padcfg0, true); + + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + return 0; +} + +static int intel_gpio_set_direction(struct pinctrl_dev *pctldev, + struct pinctrl_gpio_range *range, + unsigned int pin, bool input) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + void __iomem *padcfg0; + unsigned long flags; + + padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); + + raw_spin_lock_irqsave(&pctrl->lock, flags); + __intel_gpio_set_direction(padcfg0, input); + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + return 0; +} + +static const struct pinmux_ops intel_pinmux_ops = { + .get_functions_count = intel_get_functions_count, + .get_function_name = intel_get_function_name, + .get_function_groups = intel_get_function_groups, + .set_mux = intel_pinmux_set_mux, + .gpio_request_enable = intel_gpio_request_enable, + .gpio_set_direction = intel_gpio_set_direction, +}; + +static int intel_config_get_pull(struct intel_pinctrl *pctrl, unsigned int pin, + enum pin_config_param param, u32 *arg) +{ + const struct intel_community *community; + void __iomem *padcfg1; + unsigned long flags; + u32 value, term; + + community = intel_get_community(pctrl, pin); + padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1); + + raw_spin_lock_irqsave(&pctrl->lock, flags); + value = readl(padcfg1); + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + term = (value & PADCFG1_TERM_MASK) >> PADCFG1_TERM_SHIFT; + + switch (param) { + case PIN_CONFIG_BIAS_DISABLE: + if (term) + return -EINVAL; + break; + + case PIN_CONFIG_BIAS_PULL_UP: + if (!term || !(value & PADCFG1_TERM_UP)) + return -EINVAL; + + switch (term) { + case PADCFG1_TERM_833: + *arg = 833; + break; + case PADCFG1_TERM_1K: + *arg = 1000; + break; + case PADCFG1_TERM_5K: + *arg = 5000; + break; + case PADCFG1_TERM_20K: + *arg = 20000; + break; + } + + break; + + case PIN_CONFIG_BIAS_PULL_DOWN: + if (!term || value & PADCFG1_TERM_UP) + return -EINVAL; + + switch (term) { + case PADCFG1_TERM_833: + if (!(community->features & PINCTRL_FEATURE_1K_PD)) + return -EINVAL; + *arg = 833; + break; + case PADCFG1_TERM_1K: + if (!(community->features & PINCTRL_FEATURE_1K_PD)) + return -EINVAL; + *arg = 1000; + break; + case PADCFG1_TERM_5K: + *arg = 5000; + break; + case PADCFG1_TERM_20K: + *arg = 20000; + break; + } + + break; + + default: + return -EINVAL; + } + + return 0; +} + +static int intel_config_get_debounce(struct intel_pinctrl *pctrl, unsigned int pin, + enum pin_config_param param, u32 *arg) +{ + void __iomem *padcfg2; + unsigned long flags; + unsigned long v; + u32 value2; + + padcfg2 = intel_get_padcfg(pctrl, pin, PADCFG2); + if (!padcfg2) + return -ENOTSUPP; + + raw_spin_lock_irqsave(&pctrl->lock, flags); + value2 = readl(padcfg2); + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + if (!(value2 & PADCFG2_DEBEN)) + return -EINVAL; + + v = (value2 & PADCFG2_DEBOUNCE_MASK) >> PADCFG2_DEBOUNCE_SHIFT; + *arg = BIT(v) * DEBOUNCE_PERIOD_NSEC / NSEC_PER_USEC; + + return 0; +} + +static int intel_config_get(struct pinctrl_dev *pctldev, unsigned int pin, + unsigned long *config) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + enum pin_config_param param = pinconf_to_config_param(*config); + u32 arg = 0; + int ret; + + if (!intel_pad_owned_by_host(pctrl, pin)) + return -ENOTSUPP; + + switch (param) { + case PIN_CONFIG_BIAS_DISABLE: + case PIN_CONFIG_BIAS_PULL_UP: + case PIN_CONFIG_BIAS_PULL_DOWN: + ret = intel_config_get_pull(pctrl, pin, param, &arg); + if (ret) + return ret; + break; + + case PIN_CONFIG_INPUT_DEBOUNCE: + ret = intel_config_get_debounce(pctrl, pin, param, &arg); + if (ret) + return ret; + break; + + default: + return -ENOTSUPP; + } + + *config = pinconf_to_config_packed(param, arg); + return 0; +} + +static int intel_config_set_pull(struct intel_pinctrl *pctrl, unsigned int pin, + unsigned long config) +{ + unsigned int param = pinconf_to_config_param(config); + unsigned int arg = pinconf_to_config_argument(config); + const struct intel_community *community; + void __iomem *padcfg1; + unsigned long flags; + int ret = 0; + u32 value; + + community = intel_get_community(pctrl, pin); + padcfg1 = intel_get_padcfg(pctrl, pin, PADCFG1); + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + value = readl(padcfg1); + + switch (param) { + case PIN_CONFIG_BIAS_DISABLE: + value &= ~(PADCFG1_TERM_MASK | PADCFG1_TERM_UP); + break; + + case PIN_CONFIG_BIAS_PULL_UP: + value &= ~PADCFG1_TERM_MASK; + + value |= PADCFG1_TERM_UP; + + /* Set default strength value in case none is given */ + if (arg == 1) + arg = 5000; + + switch (arg) { + case 20000: + value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT; + break; + case 5000: + value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT; + break; + case 1000: + value |= PADCFG1_TERM_1K << PADCFG1_TERM_SHIFT; + break; + case 833: + value |= PADCFG1_TERM_833 << PADCFG1_TERM_SHIFT; + break; + default: + ret = -EINVAL; + } + + break; + + case PIN_CONFIG_BIAS_PULL_DOWN: + value &= ~(PADCFG1_TERM_UP | PADCFG1_TERM_MASK); + + /* Set default strength value in case none is given */ + if (arg == 1) + arg = 5000; + + switch (arg) { + case 20000: + value |= PADCFG1_TERM_20K << PADCFG1_TERM_SHIFT; + break; + case 5000: + value |= PADCFG1_TERM_5K << PADCFG1_TERM_SHIFT; + break; + case 1000: + if (!(community->features & PINCTRL_FEATURE_1K_PD)) { + ret = -EINVAL; + break; + } + value |= PADCFG1_TERM_1K << PADCFG1_TERM_SHIFT; + break; + case 833: + if (!(community->features & PINCTRL_FEATURE_1K_PD)) { + ret = -EINVAL; + break; + } + value |= PADCFG1_TERM_833 << PADCFG1_TERM_SHIFT; + break; + default: + ret = -EINVAL; + } + + break; + } + + if (!ret) + writel(value, padcfg1); + + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + return ret; +} + +static int intel_config_set_debounce(struct intel_pinctrl *pctrl, + unsigned int pin, unsigned int debounce) +{ + void __iomem *padcfg0, *padcfg2; + unsigned long flags; + u32 value0, value2; + + padcfg2 = intel_get_padcfg(pctrl, pin, PADCFG2); + if (!padcfg2) + return -ENOTSUPP; + + padcfg0 = intel_get_padcfg(pctrl, pin, PADCFG0); + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + value0 = readl(padcfg0); + value2 = readl(padcfg2); + + /* Disable glitch filter and debouncer */ + value0 &= ~PADCFG0_PREGFRXSEL; + value2 &= ~(PADCFG2_DEBEN | PADCFG2_DEBOUNCE_MASK); + + if (debounce) { + unsigned long v; + + v = order_base_2(debounce * NSEC_PER_USEC / DEBOUNCE_PERIOD_NSEC); + if (v < 3 || v > 15) { + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + return -EINVAL; + } + + /* Enable glitch filter and debouncer */ + value0 |= PADCFG0_PREGFRXSEL; + value2 |= v << PADCFG2_DEBOUNCE_SHIFT; + value2 |= PADCFG2_DEBEN; + } + + writel(value0, padcfg0); + writel(value2, padcfg2); + + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + return 0; +} + +static int intel_config_set(struct pinctrl_dev *pctldev, unsigned int pin, + unsigned long *configs, unsigned int nconfigs) +{ + struct intel_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev); + int i, ret; + + if (!intel_pad_usable(pctrl, pin)) + return -ENOTSUPP; + + for (i = 0; i < nconfigs; i++) { + switch (pinconf_to_config_param(configs[i])) { + case PIN_CONFIG_BIAS_DISABLE: + case PIN_CONFIG_BIAS_PULL_UP: + case PIN_CONFIG_BIAS_PULL_DOWN: + ret = intel_config_set_pull(pctrl, pin, configs[i]); + if (ret) + return ret; + break; + + case PIN_CONFIG_INPUT_DEBOUNCE: + ret = intel_config_set_debounce(pctrl, pin, + pinconf_to_config_argument(configs[i])); + if (ret) + return ret; + break; + + default: + return -ENOTSUPP; + } + } + + return 0; +} + +static const struct pinconf_ops intel_pinconf_ops = { + .is_generic = true, + .pin_config_get = intel_config_get, + .pin_config_set = intel_config_set, +}; + +static const struct pinctrl_desc intel_pinctrl_desc = { + .pctlops = &intel_pinctrl_ops, + .pmxops = &intel_pinmux_ops, + .confops = &intel_pinconf_ops, + .owner = THIS_MODULE, +}; + +/** + * intel_gpio_to_pin() - Translate from GPIO offset to pin number + * @pctrl: Pinctrl structure + * @offset: GPIO offset from gpiolib + * @community: Community is filled here if not %NULL + * @padgrp: Pad group is filled here if not %NULL + * + * When coming through gpiolib irqchip, the GPIO offset is not + * automatically translated to pinctrl pin number. This function can be + * used to find out the corresponding pinctrl pin. + */ +static int intel_gpio_to_pin(struct intel_pinctrl *pctrl, unsigned int offset, + const struct intel_community **community, + const struct intel_padgroup **padgrp) +{ + int i; + + for (i = 0; i < pctrl->ncommunities; i++) { + const struct intel_community *comm = &pctrl->communities[i]; + int j; + + for (j = 0; j < comm->ngpps; j++) { + const struct intel_padgroup *pgrp = &comm->gpps[j]; + + if (pgrp->gpio_base == INTEL_GPIO_BASE_NOMAP) + continue; + + if (offset >= pgrp->gpio_base && + offset < pgrp->gpio_base + pgrp->size) { + int pin; + + pin = pgrp->base + offset - pgrp->gpio_base; + if (community) + *community = comm; + if (padgrp) + *padgrp = pgrp; + + return pin; + } + } + } + + return -EINVAL; +} + +/** + * intel_pin_to_gpio() - Translate from pin number to GPIO offset + * @pctrl: Pinctrl structure + * @pin: pin number + * + * Translate the pin number of pinctrl to GPIO offset + */ +static __maybe_unused int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin) +{ + const struct intel_community *community; + const struct intel_padgroup *padgrp; + + community = intel_get_community(pctrl, pin); + if (!community) + return -EINVAL; + + padgrp = intel_community_get_padgroup(community, pin); + if (!padgrp) + return -EINVAL; + + return pin - padgrp->base + padgrp->gpio_base; +} + +static int intel_gpio_get(struct gpio_chip *chip, unsigned int offset) +{ + struct intel_pinctrl *pctrl = gpiochip_get_data(chip); + void __iomem *reg; + u32 padcfg0; + int pin; + + pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL); + if (pin < 0) + return -EINVAL; + + reg = intel_get_padcfg(pctrl, pin, PADCFG0); + if (!reg) + return -EINVAL; + + padcfg0 = readl(reg); + if (!(padcfg0 & PADCFG0_GPIOTXDIS)) + return !!(padcfg0 & PADCFG0_GPIOTXSTATE); + + return !!(padcfg0 & PADCFG0_GPIORXSTATE); +} + +static void intel_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) +{ + struct intel_pinctrl *pctrl = gpiochip_get_data(chip); + unsigned long flags; + void __iomem *reg; + u32 padcfg0; + int pin; + + pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL); + if (pin < 0) + return; + + reg = intel_get_padcfg(pctrl, pin, PADCFG0); + if (!reg) + return; + + raw_spin_lock_irqsave(&pctrl->lock, flags); + padcfg0 = readl(reg); + if (value) + padcfg0 |= PADCFG0_GPIOTXSTATE; + else + padcfg0 &= ~PADCFG0_GPIOTXSTATE; + writel(padcfg0, reg); + raw_spin_unlock_irqrestore(&pctrl->lock, flags); +} + +static int intel_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) +{ + struct intel_pinctrl *pctrl = gpiochip_get_data(chip); + unsigned long flags; + void __iomem *reg; + u32 padcfg0; + int pin; + + pin = intel_gpio_to_pin(pctrl, offset, NULL, NULL); + if (pin < 0) + return -EINVAL; + + reg = intel_get_padcfg(pctrl, pin, PADCFG0); + if (!reg) + return -EINVAL; + + raw_spin_lock_irqsave(&pctrl->lock, flags); + padcfg0 = readl(reg); + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + if (padcfg0 & PADCFG0_PMODE_MASK) + return -EINVAL; + + if (padcfg0 & PADCFG0_GPIOTXDIS) + return GPIO_LINE_DIRECTION_IN; + + return GPIO_LINE_DIRECTION_OUT; +} + +static int intel_gpio_direction_input(struct gpio_chip *chip, unsigned int offset) +{ + return pinctrl_gpio_direction_input(chip->base + offset); +} + +static int intel_gpio_direction_output(struct gpio_chip *chip, unsigned int offset, + int value) +{ + intel_gpio_set(chip, offset, value); + return pinctrl_gpio_direction_output(chip->base + offset); +} + +static const struct gpio_chip intel_gpio_chip = { + .owner = THIS_MODULE, + .request = gpiochip_generic_request, + .free = gpiochip_generic_free, + .get_direction = intel_gpio_get_direction, + .direction_input = intel_gpio_direction_input, + .direction_output = intel_gpio_direction_output, + .get = intel_gpio_get, + .set = intel_gpio_set, + .set_config = gpiochip_generic_config, +}; + +static void intel_gpio_irq_ack(struct irq_data *d) +{ + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + struct intel_pinctrl *pctrl = gpiochip_get_data(gc); + const struct intel_community *community; + const struct intel_padgroup *padgrp; + int pin; + + pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), &community, &padgrp); + if (pin >= 0) { + unsigned int gpp, gpp_offset, is_offset; + + gpp = padgrp->reg_num; + gpp_offset = padgroup_offset(padgrp, pin); + is_offset = community->is_offset + gpp * 4; + + raw_spin_lock(&pctrl->lock); + writel(BIT(gpp_offset), community->regs + is_offset); + raw_spin_unlock(&pctrl->lock); + } +} + +static void intel_gpio_irq_mask_unmask(struct irq_data *d, bool mask) +{ + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + struct intel_pinctrl *pctrl = gpiochip_get_data(gc); + const struct intel_community *community; + const struct intel_padgroup *padgrp; + int pin; + + pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), &community, &padgrp); + if (pin >= 0) { + unsigned int gpp, gpp_offset; + unsigned long flags; + void __iomem *reg, *is; + u32 value; + + gpp = padgrp->reg_num; + gpp_offset = padgroup_offset(padgrp, pin); + + reg = community->regs + community->ie_offset + gpp * 4; + is = community->regs + community->is_offset + gpp * 4; + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + /* Clear interrupt status first to avoid unexpected interrupt */ + writel(BIT(gpp_offset), is); + + value = readl(reg); + if (mask) + value &= ~BIT(gpp_offset); + else + value |= BIT(gpp_offset); + writel(value, reg); + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + } +} + +static void intel_gpio_irq_mask(struct irq_data *d) +{ + intel_gpio_irq_mask_unmask(d, true); +} + +static void intel_gpio_irq_unmask(struct irq_data *d) +{ + intel_gpio_irq_mask_unmask(d, false); +} + +static int intel_gpio_irq_type(struct irq_data *d, unsigned int type) +{ + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + struct intel_pinctrl *pctrl = gpiochip_get_data(gc); + unsigned int pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), NULL, NULL); + unsigned long flags; + void __iomem *reg; + u32 value; + + reg = intel_get_padcfg(pctrl, pin, PADCFG0); + if (!reg) + return -EINVAL; + + /* set not ACPI mode */ + intel_pad_set_acpi_mode(pctrl, pin, false); + + /* + * If the pin is in ACPI mode it is still usable as a GPIO but it + * cannot be used as IRQ because GPI_IS status bit will not be + * updated by the host controller hardware. + */ + if (intel_pad_acpi_mode(pctrl, pin)) { + dev_warn(pctrl->dev, "pin %u cannot be used as IRQ\n", pin); + return -EPERM; + } + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + intel_gpio_set_gpio_mode(reg); + + /* Disable TX buffer and enable RX (this will be input) */ + __intel_gpio_set_direction(reg, true); + + value = readl(reg); + + value &= ~(PADCFG0_RXEVCFG_MASK | PADCFG0_RXINV); + + if ((type & IRQ_TYPE_EDGE_BOTH) == IRQ_TYPE_EDGE_BOTH) { + value |= PADCFG0_RXEVCFG_EDGE_BOTH << PADCFG0_RXEVCFG_SHIFT; + } else if (type & IRQ_TYPE_EDGE_FALLING) { + value |= PADCFG0_RXEVCFG_EDGE << PADCFG0_RXEVCFG_SHIFT; + value |= PADCFG0_RXINV; + } else if (type & IRQ_TYPE_EDGE_RISING) { + value |= PADCFG0_RXEVCFG_EDGE << PADCFG0_RXEVCFG_SHIFT; + } else if (type & IRQ_TYPE_LEVEL_MASK) { + if (type & IRQ_TYPE_LEVEL_LOW) + value |= PADCFG0_RXINV; + } else { + value |= PADCFG0_RXEVCFG_DISABLED << PADCFG0_RXEVCFG_SHIFT; + } + + writel(value, reg); + + if (type & IRQ_TYPE_EDGE_BOTH) + irq_set_handler_locked(d, handle_edge_irq); + else if (type & IRQ_TYPE_LEVEL_MASK) + irq_set_handler_locked(d, handle_level_irq); + + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + return 0; +} + +static int intel_gpio_irq_wake(struct irq_data *d, unsigned int on) +{ + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + struct intel_pinctrl *pctrl = gpiochip_get_data(gc); + unsigned int pin = intel_gpio_to_pin(pctrl, irqd_to_hwirq(d), NULL, NULL); + + if (on) + enable_irq_wake(pctrl->irq); + else + disable_irq_wake(pctrl->irq); + + dev_dbg(pctrl->dev, "%sable wake for pin %u\n", on ? "en" : "dis", pin); + return 0; +} + +static int intel_gpio_community_irq_handler(struct intel_pinctrl *pctrl, + const struct intel_community *community) +{ + struct gpio_chip *gc = &pctrl->chip; + unsigned int gpp; + int ret = 0; + + for (gpp = 0; gpp < community->ngpps; gpp++) { + const struct intel_padgroup *padgrp = &community->gpps[gpp]; + unsigned long pending, enabled, gpp_offset; + unsigned long flags; + + raw_spin_lock_irqsave(&pctrl->lock, flags); + + pending = readl(community->regs + community->is_offset + + padgrp->reg_num * 4); + enabled = readl(community->regs + community->ie_offset + + padgrp->reg_num * 4); + + raw_spin_unlock_irqrestore(&pctrl->lock, flags); + + /* Only interrupts that are enabled */ + pending &= enabled; + + for_each_set_bit(gpp_offset, &pending, padgrp->size) { + unsigned int irq; + + irq = irq_find_mapping(gc->irq.domain, + padgrp->gpio_base + gpp_offset); + generic_handle_irq(irq); + } + + ret += pending ? 1 : 0; + } + + return ret; +} + +static irqreturn_t intel_gpio_irq(int irq, void *data) +{ + const struct intel_community *community; + struct intel_pinctrl *pctrl = data; + unsigned int i; + int ret = 0; + + /* Need to check all communities for pending interrupts */ + for (i = 0; i < pctrl->ncommunities; i++) { + community = &pctrl->communities[i]; + ret += intel_gpio_community_irq_handler(pctrl, community); + } + + return IRQ_RETVAL(ret); +} + +static int intel_gpio_add_community_ranges(struct intel_pinctrl *pctrl, + const struct intel_community *community) +{ + int ret = 0, i; + + for (i = 0; i < community->ngpps; i++) { + const struct intel_padgroup *gpp = &community->gpps[i]; + + if (gpp->gpio_base == INTEL_GPIO_BASE_NOMAP) + continue; + + ret = gpiochip_add_pin_range(&pctrl->chip, dev_name(pctrl->dev), + gpp->gpio_base, gpp->base, + gpp->size); + if (ret) + return ret; + } + + return ret; +} + +static int intel_gpio_add_pin_ranges(struct gpio_chip *gc) +{ + struct intel_pinctrl *pctrl = gpiochip_get_data(gc); + int ret, i; + + for (i = 0; i < pctrl->ncommunities; i++) { + struct intel_community *community = &pctrl->communities[i]; + + ret = intel_gpio_add_community_ranges(pctrl, community); + if (ret) { + dev_err(pctrl->dev, "failed to add GPIO pin range\n"); + return ret; + } + } + + return 0; +} + +static unsigned int intel_gpio_ngpio(const struct intel_pinctrl *pctrl) +{ + const struct intel_community *community; + unsigned int ngpio = 0; + int i, j; + + for (i = 0; i < pctrl->ncommunities; i++) { + community = &pctrl->communities[i]; + for (j = 0; j < community->ngpps; j++) { + const struct intel_padgroup *gpp = &community->gpps[j]; + + if (gpp->gpio_base == INTEL_GPIO_BASE_NOMAP) + continue; + + if (gpp->gpio_base + gpp->size > ngpio) + ngpio = gpp->gpio_base + gpp->size; + } + } + + return ngpio; +} + +static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) +{ + int ret; + struct gpio_irq_chip *girq; + + pctrl->chip = intel_gpio_chip; + + /* Setup GPIO chip */ + pctrl->chip.ngpio = intel_gpio_ngpio(pctrl); + pctrl->chip.label = dev_name(pctrl->dev); + pctrl->chip.parent = pctrl->dev; + pctrl->chip.base = 0; + pctrl->chip.add_pin_ranges = intel_gpio_add_pin_ranges; + pctrl->irq = irq; + + /* Setup IRQ chip */ + pctrl->irqchip.name = dev_name(pctrl->dev); + pctrl->irqchip.irq_ack = intel_gpio_irq_ack; + pctrl->irqchip.irq_mask = intel_gpio_irq_mask; + pctrl->irqchip.irq_unmask = intel_gpio_irq_unmask; + pctrl->irqchip.irq_set_type = intel_gpio_irq_type; + pctrl->irqchip.irq_set_wake = intel_gpio_irq_wake; + pctrl->irqchip.flags = IRQCHIP_MASK_ON_SUSPEND; + + /* + * On some platforms several GPIO controllers share the same interrupt + * line. + */ + ret = devm_request_irq(pctrl->dev, irq, intel_gpio_irq, + IRQF_SHARED | IRQF_NO_THREAD, + dev_name(pctrl->dev), pctrl); + if (ret) { + dev_err(pctrl->dev, "failed to request interrupt\n"); + return ret; + } + + girq = &pctrl->chip.irq; + girq->chip = &pctrl->irqchip; + /* This will let us handle the IRQ in the driver */ + girq->parent_handler = NULL; + girq->num_parents = 0; + girq->default_type = IRQ_TYPE_NONE; + girq->handler = handle_bad_irq; + + ret = devm_gpiochip_add_data(pctrl->dev, &pctrl->chip, pctrl); + if (ret) { + dev_err(pctrl->dev, "failed to register gpiochip\n"); + return ret; + } + + return 0; +} + +static int intel_pinctrl_add_padgroups(struct intel_pinctrl *pctrl, + struct intel_community *community) +{ + struct intel_padgroup *gpps; + unsigned int npins = community->npins; + unsigned int padown_num = 0; + size_t ngpps, i; + + if (community->gpps) + ngpps = community->ngpps; + else + ngpps = DIV_ROUND_UP(community->npins, community->gpp_size); + + gpps = devm_kcalloc(pctrl->dev, ngpps, sizeof(*gpps), GFP_KERNEL); + if (!gpps) + return -ENOMEM; + + for (i = 0; i < ngpps; i++) { + if (community->gpps) { + gpps[i] = community->gpps[i]; + } else { + unsigned int gpp_size = community->gpp_size; + + gpps[i].reg_num = i; + gpps[i].base = community->pin_base + i * gpp_size; + gpps[i].size = min(gpp_size, npins); + npins -= gpps[i].size; + } + + if (gpps[i].size > 32) + return -EINVAL; + + /* Special treatment for GPIO base */ + switch (gpps[i].gpio_base) { + case INTEL_GPIO_BASE_MATCH: + gpps[i].gpio_base = gpps[i].base; + break; + case INTEL_GPIO_BASE_ZERO: + gpps[i].gpio_base = 0; + break; + case INTEL_GPIO_BASE_NOMAP: + default: + break; + } + + gpps[i].padown_num = padown_num; + + /* + * In older hardware the number of padown registers per + * group is fixed regardless of the group size. + */ + if (community->gpp_num_padown_regs) + padown_num += community->gpp_num_padown_regs; + else + padown_num += DIV_ROUND_UP(gpps[i].size * 4, 32); + } + + community->ngpps = ngpps; + community->gpps = gpps; + + return 0; +} + +static int intel_pinctrl_pm_init(struct intel_pinctrl *pctrl) +{ +#ifdef CONFIG_PM_SLEEP + const struct intel_pinctrl_soc_data *soc = pctrl->soc; + struct intel_community_context *communities; + struct intel_pad_context *pads; + int i; + + pads = devm_kcalloc(pctrl->dev, soc->npins, sizeof(*pads), GFP_KERNEL); + if (!pads) + return -ENOMEM; + + communities = devm_kcalloc(pctrl->dev, pctrl->ncommunities, + sizeof(*communities), GFP_KERNEL); + if (!communities) + return -ENOMEM; + + for (i = 0; i < pctrl->ncommunities; i++) { + struct intel_community *community = &pctrl->communities[i]; + u32 *intmask, *hostown; + + intmask = devm_kcalloc(pctrl->dev, community->ngpps, + sizeof(*intmask), GFP_KERNEL); + if (!intmask) + return -ENOMEM; + + communities[i].intmask = intmask; + + hostown = devm_kcalloc(pctrl->dev, community->ngpps, + sizeof(*hostown), GFP_KERNEL); + if (!hostown) + return -ENOMEM; + + communities[i].hostown = hostown; + } + + pctrl->context.pads = pads; + pctrl->context.communities = communities; +#endif + + return 0; +} + +int wb_pinctrl_probe(struct platform_device *pdev, + const struct intel_pinctrl_soc_data *soc_data) +{ + struct intel_pinctrl *pctrl; + struct intel_community *community; + wb_gpio_data_t *wb_gpio_data; + void __iomem *regs; + int i, ret; + u32 padbar, rev; + + if (!soc_data) { + dev_err(&pdev->dev, "soc_data is null\n"); + return -EINVAL; + } + + wb_gpio_data = platform_get_drvdata(pdev); + pctrl = devm_kzalloc(&pdev->dev, sizeof(*pctrl), GFP_KERNEL); + if (!pctrl) { + dev_err(&pdev->dev, "pctrl kzalloc failed\n"); + return -ENOMEM; + } + + /* check resource */ + if (soc_data->ncommunities > GPIO_RES_MAX) { + dev_err(&pdev->dev, "GPIO ncommunities %lu is more than GPIO resource number: %d\n", + soc_data->ncommunities, GPIO_RES_MAX); + return -EINVAL; + } + + pctrl->dev = &pdev->dev; + pctrl->soc = soc_data; + pctrl->irq = wb_gpio_data->irq; + raw_spin_lock_init(&pctrl->lock); + + /* + * Make a copy of the communities which we can use to hold pointers + * to the registers. + */ + pctrl->ncommunities = pctrl->soc->ncommunities; + pctrl->communities = devm_kcalloc(&pdev->dev, pctrl->ncommunities, + sizeof(*pctrl->communities), GFP_KERNEL); + if (!pctrl->communities) { + dev_err(&pdev->dev, "devm_kcalloc communities failed. ret:%d\n", ret); + return -ENOMEM; + } + + for (i = 0; i < pctrl->ncommunities; i++) { + community = &pctrl->communities[i]; + *community = pctrl->soc->communities[i]; + + regs = wb_gpio_data->res[i]; + + /* + * Determine community features based on the revision if + * not specified already. + */ + if (!community->features) { + rev = (readl(regs + REVID) & REVID_MASK) >> REVID_SHIFT; + if (rev >= 0x94) { + community->features |= PINCTRL_FEATURE_DEBOUNCE; + community->features |= PINCTRL_FEATURE_1K_PD; + } + } + + /* Read offset of the pad configuration registers */ + padbar = readl(regs + PADBAR); + + community->regs = regs; + community->pad_regs = regs + padbar; + + ret = intel_pinctrl_add_padgroups(pctrl, community); + if (ret) { + dev_err(&pdev->dev, "intel_pinctrl_add_padgroups failed. ret:%d\n", ret); + return ret; + } + } + + ret = intel_pinctrl_pm_init(pctrl); + if (ret) { + dev_err(&pdev->dev, "intel_pinctrl_pm_init failed. ret:%d\n", ret); + return ret; + } + + pctrl->pctldesc = intel_pinctrl_desc; + pctrl->pctldesc.name = dev_name(&pdev->dev); + pctrl->pctldesc.pins = pctrl->soc->pins; + pctrl->pctldesc.npins = pctrl->soc->npins; + + pctrl->pctldev = devm_pinctrl_register(&pdev->dev, &pctrl->pctldesc, + pctrl); + if (IS_ERR(pctrl->pctldev)) { + dev_err(&pdev->dev, "failed to register pinctrl driver\n"); + return PTR_ERR(pctrl->pctldev); + } + + ret = intel_gpio_probe(pctrl, pctrl->irq); + if (ret) { + dev_err(&pdev->dev, "intel_gpio_probe failed. ret:%d\n", ret); + return ret; + } + return 0; +} +EXPORT_SYMBOL_GPL(wb_pinctrl_probe); + +#if 0 +int intel_pinctrl_probe_by_hid(struct platform_device *pdev) +{ + const struct intel_pinctrl_soc_data *data; + + data = device_get_match_data(&pdev->dev); + if (!data) + return -ENODATA; + + return intel_pinctrl_probe(pdev, data); +} +EXPORT_SYMBOL_GPL(intel_pinctrl_probe_by_hid); + +int intel_pinctrl_probe_by_uid(struct platform_device *pdev) +{ + const struct intel_pinctrl_soc_data *data; + + data = intel_pinctrl_get_soc_data(pdev); + if (IS_ERR(data)) + return PTR_ERR(data); + + return intel_pinctrl_probe(pdev, data); +} +EXPORT_SYMBOL_GPL(intel_pinctrl_probe_by_uid); + +const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_device *pdev) +{ + const struct intel_pinctrl_soc_data *data = NULL; + const struct intel_pinctrl_soc_data **table; + struct acpi_device *adev; + unsigned int i; + + adev = ACPI_COMPANION(&pdev->dev); + if (adev) { + const void *match = device_get_match_data(&pdev->dev); + + table = (const struct intel_pinctrl_soc_data **)match; + for (i = 0; table[i]; i++) { + if (!strcmp(adev->pnp.unique_id, table[i]->uid)) { + data = table[i]; + break; + } + } + } else { + const struct platform_device_id *id; + + id = platform_get_device_id(pdev); + if (!id) + return ERR_PTR(-ENODEV); + + table = (const struct intel_pinctrl_soc_data **)id->driver_data; + data = table[pdev->id]; + } + + return data ?: ERR_PTR(-ENODATA); +} +EXPORT_SYMBOL_GPL(intel_pinctrl_get_soc_data); +#endif + +#ifdef CONFIG_PM_SLEEP +static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int pin) +{ + const struct pin_desc *pd = pin_desc_get(pctrl->pctldev, pin); + + if (!pd || !intel_pad_usable(pctrl, pin)) + return false; + + /* + * Only restore the pin if it is actually in use by the kernel (or + * by userspace). It is possible that some pins are used by the + * BIOS during resume and those are not always locked down so leave + * them alone. + */ + if (pd->mux_owner || pd->gpio_owner || + gpiochip_line_is_irq(&pctrl->chip, intel_pin_to_gpio(pctrl, pin))) + return true; + + return false; +} + +int wb_intel_pinctrl_suspend_noirq(struct device *dev) +{ + struct intel_pinctrl *pctrl = dev_get_drvdata(dev); + struct intel_community_context *communities; + struct intel_pad_context *pads; + int i; + + pads = pctrl->context.pads; + for (i = 0; i < pctrl->soc->npins; i++) { + const struct pinctrl_pin_desc *desc = &pctrl->soc->pins[i]; + void __iomem *padcfg; + u32 val; + + if (!intel_pinctrl_should_save(pctrl, desc->number)) + continue; + + val = readl(intel_get_padcfg(pctrl, desc->number, PADCFG0)); + pads[i].padcfg0 = val & ~PADCFG0_GPIORXSTATE; + val = readl(intel_get_padcfg(pctrl, desc->number, PADCFG1)); + pads[i].padcfg1 = val; + + padcfg = intel_get_padcfg(pctrl, desc->number, PADCFG2); + if (padcfg) + pads[i].padcfg2 = readl(padcfg); + } + + communities = pctrl->context.communities; + for (i = 0; i < pctrl->ncommunities; i++) { + struct intel_community *community = &pctrl->communities[i]; + void __iomem *base; + unsigned int gpp; + + base = community->regs + community->ie_offset; + for (gpp = 0; gpp < community->ngpps; gpp++) + communities[i].intmask[gpp] = readl(base + gpp * 4); + + base = community->regs + community->hostown_offset; + for (gpp = 0; gpp < community->ngpps; gpp++) + communities[i].hostown[gpp] = readl(base + gpp * 4); + } + + return 0; +} +EXPORT_SYMBOL_GPL(wb_intel_pinctrl_suspend_noirq); + +static void intel_gpio_irq_init(struct intel_pinctrl *pctrl) +{ + size_t i; + + for (i = 0; i < pctrl->ncommunities; i++) { + const struct intel_community *community; + void __iomem *base; + unsigned int gpp; + + community = &pctrl->communities[i]; + base = community->regs; + + for (gpp = 0; gpp < community->ngpps; gpp++) { + /* Mask and clear all interrupts */ + writel(0, base + community->ie_offset + gpp * 4); + writel(0xffff, base + community->is_offset + gpp * 4); + } + } +} + +static bool intel_gpio_update_reg(void __iomem *reg, u32 mask, u32 value) +{ + u32 curr, updated; + + curr = readl(reg); + + updated = (curr & ~mask) | (value & mask); + if (curr == updated) + return false; + + writel(updated, reg); + return true; +} + +static void intel_restore_hostown(struct intel_pinctrl *pctrl, unsigned int c, + void __iomem *base, unsigned int gpp, u32 saved) +{ + const struct intel_community *community = &pctrl->communities[c]; + const struct intel_padgroup *padgrp = &community->gpps[gpp]; + struct device *dev = pctrl->dev; + const char *dummy; + u32 requested = 0; + unsigned int i; + + if (padgrp->gpio_base == INTEL_GPIO_BASE_NOMAP) + return; + + for_each_requested_gpio_in_range(&pctrl->chip, i, padgrp->gpio_base, padgrp->size, dummy) + requested |= BIT(i); + + if (!intel_gpio_update_reg(base + gpp * 4, requested, saved)) + return; + + dev_dbg(dev, "restored hostown %u/%u %#08x\n", c, gpp, readl(base + gpp * 4)); +} + +static void intel_restore_intmask(struct intel_pinctrl *pctrl, unsigned int c, + void __iomem *base, unsigned int gpp, u32 saved) +{ + struct device *dev = pctrl->dev; + + if (!intel_gpio_update_reg(base + gpp * 4, ~0U, saved)) + return; + + dev_dbg(dev, "restored mask %u/%u %#08x\n", c, gpp, readl(base + gpp * 4)); +} + +static void intel_restore_padcfg(struct intel_pinctrl *pctrl, unsigned int pin, + unsigned int reg, u32 saved) +{ + u32 mask = (reg == PADCFG0) ? PADCFG0_GPIORXSTATE : 0; + unsigned int n = reg / sizeof(u32); + struct device *dev = pctrl->dev; + void __iomem *padcfg; + + padcfg = intel_get_padcfg(pctrl, pin, reg); + if (!padcfg) + return; + + if (!intel_gpio_update_reg(padcfg, ~mask, saved)) + return; + + dev_dbg(dev, "restored pin %u padcfg%u %#08x\n", pin, n, readl(padcfg)); +} + +int wb_intel_pinctrl_resume_noirq(struct device *dev) +{ + struct intel_pinctrl *pctrl = dev_get_drvdata(dev); + const struct intel_community_context *communities; + const struct intel_pad_context *pads; + int i; + + /* Mask all interrupts */ + intel_gpio_irq_init(pctrl); + + pads = pctrl->context.pads; + for (i = 0; i < pctrl->soc->npins; i++) { + const struct pinctrl_pin_desc *desc = &pctrl->soc->pins[i]; + + if (!intel_pinctrl_should_save(pctrl, desc->number)) + continue; + + intel_restore_padcfg(pctrl, desc->number, PADCFG0, pads[i].padcfg0); + intel_restore_padcfg(pctrl, desc->number, PADCFG1, pads[i].padcfg1); + intel_restore_padcfg(pctrl, desc->number, PADCFG2, pads[i].padcfg2); + } + + communities = pctrl->context.communities; + for (i = 0; i < pctrl->ncommunities; i++) { + struct intel_community *community = &pctrl->communities[i]; + void __iomem *base; + unsigned int gpp; + + base = community->regs + community->ie_offset; + for (gpp = 0; gpp < community->ngpps; gpp++) + intel_restore_intmask(pctrl, i, base, gpp, communities[i].intmask[gpp]); + + base = community->regs + community->hostown_offset; + for (gpp = 0; gpp < community->ngpps; gpp++) + intel_restore_hostown(pctrl, i, base, gpp, communities[i].hostown[gpp]); + } + + return 0; +} +EXPORT_SYMBOL_GPL(wb_intel_pinctrl_resume_noirq); +#endif + +MODULE_AUTHOR("Mathias Nyman "); +MODULE_AUTHOR("Mika Westerberg "); +MODULE_DESCRIPTION("Intel pinctrl/GPIO core driver"); +MODULE_LICENSE("GPL v2"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.h new file mode 100644 index 000000000000..5ed0cc0651a5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/pinctrl/wb_pinctrl_intel.h @@ -0,0 +1,275 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Core pinctrl/GPIO driver for Intel GPIO controllers + * + * Copyright (C) 2015, Intel Corporation + * Authors: Mathias Nyman + * Mika Westerberg + */ + +#ifndef PINCTRL_INTEL_H +#define PINCTRL_INTEL_H + +#include +#include +#include +#include +#include +#include +#include +#include + +struct platform_device; +struct device; + +#define GPIO_RES_MAX (2) + +typedef struct wb_gpio_data_s { + int irq; + void __iomem *res[GPIO_RES_MAX]; + unsigned int pci_domain; + unsigned int pci_bus; + unsigned int pci_slot; + unsigned int pci_fn; + unsigned int pci_bar; + struct pci_dev *pci_dev; + void __iomem *pci_mem_base; +} wb_gpio_data_t; + +/** + * struct intel_pingroup - Description about group of pins + * @name: Name of the groups + * @pins: All pins in this group + * @npins: Number of pins in this groups + * @mode: Native mode in which the group is muxed out @pins. Used if @modes + * is %NULL. + * @modes: If not %NULL this will hold mode for each pin in @pins + */ +struct intel_pingroup { + const char *name; + const unsigned int *pins; + size_t npins; + unsigned short mode; + const unsigned int *modes; +}; + +/** + * struct intel_function - Description about a function + * @name: Name of the function + * @groups: An array of groups for this function + * @ngroups: Number of groups in @groups + */ +struct intel_function { + const char *name; + const char * const *groups; + size_t ngroups; +}; + +/** + * struct intel_padgroup - Hardware pad group information + * @reg_num: GPI_IS register number + * @base: Starting pin of this group + * @size: Size of this group (maximum is 32). + * @gpio_base: Starting GPIO base of this group + * @padown_num: PAD_OWN register number (assigned by the core driver) + * + * If pad groups of a community are not the same size, use this structure + * to specify them. + */ +struct intel_padgroup { + unsigned int reg_num; + unsigned int base; + unsigned int size; + int gpio_base; + unsigned int padown_num; +}; + +/** + * enum - Special treatment for GPIO base in pad group + * + * @INTEL_GPIO_BASE_ZERO: force GPIO base to be 0 + * @INTEL_GPIO_BASE_NOMAP: no GPIO mapping should be created + * @INTEL_GPIO_BASE_MATCH: matches with starting pin number + */ +enum { + INTEL_GPIO_BASE_ZERO = -2, + INTEL_GPIO_BASE_NOMAP = -1, + INTEL_GPIO_BASE_MATCH = 0, +}; + +/** + * struct intel_community - Intel pin community description + * @barno: MMIO BAR number where registers for this community reside + * @padown_offset: Register offset of PAD_OWN register from @regs. If %0 + * then there is no support for owner. + * @padcfglock_offset: Register offset of PADCFGLOCK from @regs. If %0 then + * locking is not supported. + * @hostown_offset: Register offset of HOSTSW_OWN from @regs. If %0 then it + * is assumed that the host owns the pin (rather than + * ACPI). + * @is_offset: Register offset of GPI_IS from @regs. + * @ie_offset: Register offset of GPI_IE from @regs. + * @features: Additional features supported by the hardware + * @pin_base: Starting pin of pins in this community + * @npins: Number of pins in this community + * @gpp_size: Maximum number of pads in each group, such as PADCFGLOCK, + * HOSTSW_OWN, GPI_IS, GPI_IE. Used when @gpps is %NULL. + * @gpp_num_padown_regs: Number of pad registers each pad group consumes at + * minimum. Use %0 if the number of registers can be + * determined by the size of the group. + * @gpps: Pad groups if the controller has variable size pad groups + * @ngpps: Number of pad groups in this community + * @pad_map: Optional non-linear mapping of the pads + * @nirqs: Optional total number of IRQs this community can generate + * @acpi_space_id: Optional address space ID for ACPI OpRegion handler + * @regs: Community specific common registers (reserved for core driver) + * @pad_regs: Community specific pad registers (reserved for core driver) + * + * In some of Intel GPIO host controllers this driver supports each pad group + * is of equal size (except the last one). In that case the driver can just + * fill in @gpp_size field and let the core driver to handle the rest. If + * the controller has pad groups of variable size the client driver can + * pass custom @gpps and @ngpps instead. + */ +struct intel_community { + unsigned int barno; + unsigned int padown_offset; + unsigned int padcfglock_offset; + unsigned int hostown_offset; + unsigned int is_offset; + unsigned int ie_offset; + unsigned int features; + unsigned int pin_base; + size_t npins; + unsigned int gpp_size; + unsigned int gpp_num_padown_regs; + const struct intel_padgroup *gpps; + size_t ngpps; + const unsigned int *pad_map; + unsigned short nirqs; + unsigned short acpi_space_id; + + /* Reserved for the core driver */ + void __iomem *regs; + void __iomem *pad_regs; + u32 dw_base; +}; + +/* Additional features supported by the hardware */ +#define PINCTRL_FEATURE_DEBOUNCE BIT(0) +#define PINCTRL_FEATURE_1K_PD BIT(1) + +/** + * PIN_GROUP - Declare a pin group + * @n: Name of the group + * @p: An array of pins this group consists + * @m: Mode which the pins are put when this group is active. Can be either + * a single integer or an array of integers in which case mode is per + * pin. + */ +#define PIN_GROUP(n, p, m) \ + { \ + .name = (n), \ + .pins = (p), \ + .npins = ARRAY_SIZE((p)), \ + .mode = __builtin_choose_expr( \ + __builtin_constant_p((m)), (m), 0), \ + .modes = __builtin_choose_expr( \ + __builtin_constant_p((m)), NULL, (m)), \ + } + +#define FUNCTION(n, g) \ + { \ + .name = (n), \ + .groups = (g), \ + .ngroups = ARRAY_SIZE((g)), \ + } + +/** + * struct intel_pinctrl_soc_data - Intel pin controller per-SoC configuration + * @uid: ACPI _UID for the probe driver use if needed + * @pins: Array if pins this pinctrl controls + * @npins: Number of pins in the array + * @groups: Array of pin groups + * @ngroups: Number of groups in the array + * @functions: Array of functions + * @nfunctions: Number of functions in the array + * @communities: Array of communities this pinctrl handles + * @ncommunities: Number of communities in the array + * + * The @communities is used as a template by the core driver. It will make + * copy of all communities and fill in rest of the information. + */ +struct intel_pinctrl_soc_data { + const char *uid; + const struct pinctrl_pin_desc *pins; + size_t npins; + const struct intel_pingroup *groups; + size_t ngroups; + const struct intel_function *functions; + size_t nfunctions; + const struct intel_community *communities; + size_t ncommunities; +}; + +struct intel_pad_context; +struct intel_community_context; + +/** + * struct intel_pinctrl_context - context to be saved during suspend-resume + * @pads: Opaque context per pad (driver dependent) + * @communities: Opaque context per community (driver dependent) + */ +struct intel_pinctrl_context { + struct intel_pad_context *pads; + struct intel_community_context *communities; +}; + +/** + * struct intel_pinctrl - Intel pinctrl private structure + * @dev: Pointer to the device structure + * @lock: Lock to serialize register access + * @pctldesc: Pin controller description + * @pctldev: Pointer to the pin controller device + * @chip: GPIO chip in this pin controller + * @irqchip: IRQ chip in this pin controller + * @soc: SoC/PCH specific pin configuration data + * @communities: All communities in this pin controller + * @ncommunities: Number of communities in this pin controller + * @context: Configuration saved over system sleep + * @irq: pinctrl/GPIO chip irq number + */ +struct intel_pinctrl { + struct device *dev; + raw_spinlock_t lock; + struct pinctrl_desc pctldesc; + struct pinctrl_dev *pctldev; + struct gpio_chip chip; + struct irq_chip irqchip; + const struct intel_pinctrl_soc_data *soc; + struct intel_community *communities; + size_t ncommunities; + struct intel_pinctrl_context context; + int irq; +}; + +int wb_pinctrl_probe(struct platform_device *pdev, const struct intel_pinctrl_soc_data *soc_data); + +#if 0 +const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_device *pdev); +int intel_pinctrl_probe_by_hid(struct platform_device *pdev); +int intel_pinctrl_probe_by_uid(struct platform_device *pdev); +#endif + +#ifdef CONFIG_PM_SLEEP +int wb_intel_pinctrl_suspend_noirq(struct device *dev); +int wb_intel_pinctrl_resume_noirq(struct device *dev); +#endif + +#define INTEL_PINCTRL_PM_OPS(_name) \ +const struct dev_pm_ops _name = { \ + SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(wb_intel_pinctrl_suspend_noirq, \ + wb_intel_pinctrl_resume_noirq) \ +} + +#endif /* PINCTRL_INTEL_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c index b0c9e9f6e723..3d05621ef031 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg.c @@ -455,6 +455,9 @@ static void dfd_ko_cfg_set_info_ctrl_mem_value(info_ctrl_t *info_ctrl, info_ctrl case INFO_CTRL_MEM_INT_EXTRA2: dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->int_extra2), line_num); break; + case INFO_CTRL_MEM_INT_EXTRA3: + dfd_ko_cfg_get_value_from_char(buf_val, &(info_ctrl->int_extra3), line_num); + break; default: break; } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c index 1d5ca7072f8f..9c8dc6aa098e 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_adapter.c @@ -328,6 +328,12 @@ int32_t dfd_ko_read_file(char *fpath, int32_t addr, uint8_t *val, int32_t read_b struct file *filp; loff_t pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, read_bytes, MAX_RW_COUNT), + }; + struct iov_iter iter; + if ((fpath == NULL) || (val == NULL) || (addr < 0) || (read_bytes < 0)) { DBG_DEBUG(DBG_ERROR, "input arguments error, addr=%d read_bytes=%d\n", addr, read_bytes); return -DFD_RV_INDEX_INVALID; @@ -340,9 +346,10 @@ int32_t dfd_ko_read_file(char *fpath, int32_t addr, uint8_t *val, int32_t read_b } pos = addr; - ret = kernel_read(filp, val, read_bytes, &pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &pos, 0); if (ret < 0) { - DBG_DEBUG(DBG_ERROR, "kernel_read failed, path=%s, addr=%d, size=%d, ret=%d\n", fpath, addr, read_bytes, ret); + DBG_DEBUG(DBG_ERROR, "vfs_iter_read failed, path=%s, addr=%d, size=%d, ret=%d\n", fpath, addr, read_bytes, ret); ret = -DFD_RV_DEV_FAIL; } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c index 8d77759ba7e0..ac1c22ff1c51 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_file.c @@ -140,24 +140,24 @@ int kfile_read(int32_t addr, char *buf, int buf_size, kfile_ctrl_t *kfile_ctrl) return i; } -static int kfile_filldir_one(struct dir_context *ctx, const char * name, int len, +static bool kfile_filldir_one(struct dir_context *ctx, const char * name, int len, loff_t pos, u64 ino, unsigned int d_type) { struct getdents_callback *buf ; - int result; + bool result; buf = container_of(ctx, struct getdents_callback, ctx); - result = 0; + result = 1; if (strncmp(buf->obj_name, name, strlen(buf->obj_name)) == 0) { if (buf->dir_len < len) { DBG_DEBUG(DBG_ERROR, "match ok. dir name:%s, but buf_len %d small than dir len %d.\n", name, buf->dir_len, len); buf->found = 0; - return -1; + return 0; } mem_clear(buf->match_name, buf->dir_len); memcpy(buf->match_name, name, len); buf->found = 1; - result = -1; + result = 0; } return result; } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c index a215bbc76fa5..c1ad958bc8bb 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/cfg/dfd_cfg_info.c @@ -10,10 +10,22 @@ #include "../../dev_sysfs/include/sysfs_common.h" #define DFD_HWMON_NAME "hwmon" +/* CPLD_VOLATGE_VALUE_MODE1 */ #define DFD_GET_CPLD_VOLATGE_CODE_VALUE(value) ((value >> 4)& 0xfff) /* ((code_val * 16 * 33 * k) / ((65536 - 5000) * 10)) = ((code_val * 33 * k) / 37835) */ #define DFD_GET_CPLD_VOLATGE_REAL_VALUE(code_val, k) ((code_val * 33 * k) / 37835) + +/* CPLD_VOLATGE_VALUE_MODE2 */ +/* high 8 bit + low 4 bit(bit0-bit3) */ +#define DFD_GET_CPLD_VOLATGE_CODE_VALUE2(value) (((value & 0xff00) >> 4) + (value & 0xf)) +#define DFD_GET_CPLD_VOLATGE_REAL_VALUE2(code_val, k) ((code_val * 33 * k) / 40950) + +typedef enum cpld_volatge_value_s { + CPLD_VOLATGE_VALUE_MODE1, + CPLD_VOLATGE_VALUE_MODE2, +} cpld_volatge_value_t; + char *g_info_ctrl_mem_str[INFO_CTRL_MEM_END] = { ".mode", ".int_cons", @@ -27,6 +39,7 @@ char *g_info_ctrl_mem_str[INFO_CTRL_MEM_END] = { ".str_cons", ".int_extra1", ".int_extra2", + ".int_extra3", }; char *g_info_ctrl_mode_str[INFO_CTRL_MODE_END] = { @@ -61,6 +74,8 @@ char *g_info_pola_str[INFO_POLA_END] = { "negative", }; +#define MAC_TEMP_INVALID (99999999) + static int dfd_read_info_from_cpld(int32_t addr, int read_bytes, uint8_t *val) { int i, rv; @@ -581,24 +596,30 @@ static int dfd_info_get_cpld_voltage(int key, uint32_t *value) DBG_DEBUG(DBG_ERROR, "get cpld current voltage error, addr:0x%x, rv = %d\n", info_ctrl->addr, rv); return rv; } - vol_curr_tmp = DFD_GET_CPLD_VOLATGE_CODE_VALUE(vol_curr_tmp); - if (info_ctrl->addr == info_ctrl->int_extra1) { - vol_curr = DFD_GET_CPLD_VOLATGE_REAL_VALUE(vol_curr_tmp, vol_coefficient); - DBG_DEBUG(DBG_VERBOSE, "current voltage is reference voltage, vol_curr_tmp: 0x%x, coefficient: %u, vol_curr: %u\n", - vol_curr_tmp, vol_coefficient, vol_curr); + if (info_ctrl->int_extra3 == CPLD_VOLATGE_VALUE_MODE2) { + vol_curr_tmp = DFD_GET_CPLD_VOLATGE_CODE_VALUE2(vol_curr_tmp); + vol_curr = DFD_GET_CPLD_VOLATGE_REAL_VALUE2(vol_curr_tmp, vol_coefficient); + DBG_DEBUG(DBG_VERBOSE, "vol_curr_tmp = 0x%x, vol_curr = 0x%x, is same.\n", vol_curr_tmp, vol_curr); } else { - memcpy(&info_ctrl_tmp, info_ctrl, sizeof(info_ctrl_t)); - info_ctrl_tmp.addr = info_ctrl->int_extra1; - rv = dfd_get_info_value(&info_ctrl_tmp, &vol_ref_tmp, NULL); - if (rv < 0) { - DBG_DEBUG(DBG_ERROR, "get cpld reference voltage error, addr: 0x%x, rv: %d\n", info_ctrl_tmp.addr, rv); - return rv; - } - vol_ref = DFD_GET_CPLD_VOLATGE_CODE_VALUE(vol_ref_tmp); - DBG_DEBUG(DBG_VERBOSE, "vol_ref_tmp: 0x%x, vol_ref: 0x%x\n", vol_ref_tmp, vol_ref); - vol_curr = (vol_curr_tmp * vol_coefficient) / vol_ref; - DBG_DEBUG(DBG_VERBOSE, "vol_curr_tmp: 0x%x, vol_ref: 0x%x, coefficient: %u, vol_curr: %u\n", + vol_curr_tmp = DFD_GET_CPLD_VOLATGE_CODE_VALUE(vol_curr_tmp); + if (info_ctrl->addr == info_ctrl->int_extra1) { + vol_curr = DFD_GET_CPLD_VOLATGE_REAL_VALUE(vol_curr_tmp, vol_coefficient); + DBG_DEBUG(DBG_VERBOSE, "current voltage is reference voltage, vol_curr_tmp: 0x%x, coefficient: %u, vol_curr: %u\n", + vol_curr_tmp, vol_coefficient, vol_curr); + } else { + memcpy(&info_ctrl_tmp, info_ctrl, sizeof(info_ctrl_t)); + info_ctrl_tmp.addr = info_ctrl->int_extra1; + rv = dfd_get_info_value(&info_ctrl_tmp, &vol_ref_tmp, NULL); + if (rv < 0) { + DBG_DEBUG(DBG_ERROR, "get cpld reference voltage error, addr: 0x%x, rv: %d\n", info_ctrl_tmp.addr, rv); + return rv; + } + vol_ref = DFD_GET_CPLD_VOLATGE_CODE_VALUE(vol_ref_tmp); + DBG_DEBUG(DBG_VERBOSE, "vol_ref_tmp: 0x%x, vol_ref: 0x%x\n", vol_ref_tmp, vol_ref); + vol_curr = (vol_curr_tmp * vol_coefficient) / vol_ref; + DBG_DEBUG(DBG_VERBOSE, "vol_curr_tmp: 0x%x, vol_ref: 0x%x, coefficient: %u, vol_curr: %u\n", vol_curr_tmp, vol_ref, vol_coefficient, vol_curr); + } } *value = vol_curr; return DFD_RV_OK; @@ -642,14 +663,16 @@ static int dfd_info_get_cpld_temperature(int key, int *value) rv = DFD_RV_OK; break; } - + DBG_DEBUG(DBG_VERBOSE, "calc temp:%d \n", temp_value); + if ((temp_value < -40000) || (temp_value > 120000)) { + temp_value = -MAC_TEMP_INVALID; + } *value = temp_value; return rv; } - static int dfd_info_get_sensor_value(int key, uint8_t *buf, int buf_len, info_hwmon_buf_f pfun) { int rv, buf_real_len; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c index efc322046c07..d8965d75c9c0 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/dfd_fan_driver.c @@ -12,6 +12,10 @@ int g_dfd_fan_dbg_level = 0; module_param(g_dfd_fan_dbg_level, int, S_IRUGO | S_IWUSR); +typedef enum fan_speed_format_mem_s { + LINEAR120 = 1, +} fan_speed_format_mem_t; + int dfd_get_fan_roll_status(unsigned int fan_index, unsigned int motor_index) { int key, ret; @@ -46,9 +50,30 @@ int dfd_get_fan_present_status(unsigned int fan_index) return status; } +static int dfd_get_fan_speed_linear120(int origin_data, int *speed) +{ + *speed = origin_data * 120; + DFD_FAN_DEBUG(DBG_VERBOSE, "get fan speed by linear120 origin_data: %d, speed: %d\n", + origin_data, *speed); + return 0; +} + +static int dfd_get_fan_speed_default(int origin_data, int *speed) +{ + if (origin_data == 0 || origin_data == 0xffff) { + *speed = 0; + } else { + *speed = 15000000 / origin_data; + } + DFD_FAN_DEBUG(DBG_VERBOSE, "get fan speed by default origin_data: %d, speed: %d\n", + origin_data, *speed); + return 0; +} + ssize_t dfd_get_fan_speed(unsigned int fan_index, unsigned int motor_index,unsigned int *speed) { int key, ret, speed_tmp; + info_ctrl_t *info_ctrl; if (speed == NULL) { DFD_FAN_DEBUG(DBG_ERROR, "param error. fan index:%d, motor index:%d.\n", @@ -62,13 +87,19 @@ ssize_t dfd_get_fan_speed(unsigned int fan_index, unsigned int motor_index,unsig DFD_FAN_DEBUG(DBG_ERROR, "get fan speed error, key:0x%x,ret:%d\n",key, ret); return ret; } - - if (speed_tmp == 0 || speed_tmp == 0xffff) { - *speed = 0; - } else { - *speed = 15000000 / speed_tmp; + DFD_FAN_DEBUG(DBG_VERBOSE, "get fan origin data: 0x%x\n", speed_tmp); + + info_ctrl = dfd_ko_cfg_get_item(key); + switch (info_ctrl->int_extra1) { + case LINEAR120: + ret = dfd_get_fan_speed_linear120(speed_tmp, speed); + break; + default: + ret = dfd_get_fan_speed_default(speed_tmp, speed); + break; } - return DFD_RV_OK; + + return ret; } int dfd_set_fan_speed_level(unsigned int fan_index, unsigned int motor_index, int level) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h index 2c304e99ca3a..88e8f92c10fe 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_cfg/include/dfd_cfg_info.h @@ -72,6 +72,7 @@ typedef struct info_ctrl_s { char str_cons[INFO_STR_CONS_MAX_LEN]; int32_t int_extra1; int32_t int_extra2; + int32_t int_extra3; /* cpld voltage mode */ } info_ctrl_t; typedef enum info_ctrl_mem_s { @@ -87,6 +88,7 @@ typedef enum info_ctrl_mem_s { INFO_CTRL_MEM_STR_CONS, INFO_CTRL_MEM_INT_EXTRA1, INFO_CTRL_MEM_INT_EXTRA2, + INFO_CTRL_MEM_INT_EXTRA3, INFO_CTRL_MEM_END } info_ctrl_mem_t; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c index 9563260f32b4..fea008b41bfe 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/plat_sysfs/dev_sysfs/plat_switch.c @@ -60,7 +60,6 @@ static void switch_obj_release(struct kobject *kobj) static struct kobj_type switch_ktype = { .sysfs_ops = &switch_sysfs_ops, .release = switch_obj_release, - .default_attrs = NULL, }; static struct kset *switch_kset; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/Makefile new file mode 100644 index 000000000000..81413626b8f5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/Makefile @@ -0,0 +1,195 @@ +# SPDX-License-Identifier: GPL-2.0-only +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ + +################################################################################ +# This product is covered by one or more of the following patents: +# US6,570,884, US6,115,776, and US6,327,625. +################################################################################ + +CONFIG_SOC_LAN = n +ENABLE_FIBER_SUPPORT = n +ENABLE_REALWOW_SUPPORT = n +ENABLE_DASH_SUPPORT = n +ENABLE_DASH_PRINTER_SUPPORT = n +CONFIG_DOWN_SPEED_100 = n +CONFIG_ASPM = y +ENABLE_S5WOL = y +ENABLE_S5_KEEP_CURR_MAC = n +ENABLE_EEE = n +ENABLE_S0_MAGIC_PACKET = n +CONFIG_DYNAMIC_ASPM = y +ENABLE_USE_FIRMWARE_FILE = n +CONFIG_CTAP_SHORT_OFF = n +ENABLE_MULTIPLE_TX_QUEUE = n +ENABLE_RSS_SUPPORT = n +ENABLE_LIB_SUPPORT = n +DISABLE_WOL_SUPPORT = n + +ifneq ($(KERNELRELEASE),) + obj-m := r8168.o + r8168-objs := r8168_n.o r8168_asf.o rtl_eeprom.o rtltool.o + ifeq ($(CONFIG_SOC_LAN), y) + EXTRA_CFLAGS += -DCONFIG_SOC_LAN + endif + ifeq ($(ENABLE_FIBER_SUPPORT), y) + r8168-objs += r8168_fiber.o + EXTRA_CFLAGS += -DENABLE_FIBER_SUPPORT + endif + ifeq ($(ENABLE_REALWOW_SUPPORT), y) + r8168-objs += r8168_realwow.o + EXTRA_CFLAGS += -DENABLE_REALWOW_SUPPORT + endif + ifeq ($(ENABLE_DASH_SUPPORT), y) + r8168-objs += r8168_dash.o + EXTRA_CFLAGS += -DENABLE_DASH_SUPPORT + endif + ifeq ($(ENABLE_DASH_PRINTER_SUPPORT), y) + r8168-objs += r8168_dash.o + EXTRA_CFLAGS += -DENABLE_DASH_SUPPORT -DENABLE_DASH_PRINTER_SUPPORT + endif + ifneq ($(ENABLE_RSS_SUPPORT), y) + EXTRA_CFLAGS += -DCONFIG_R8168_NAPI + endif + EXTRA_CFLAGS += -DCONFIG_R8168_VLAN + ifeq ($(CONFIG_DOWN_SPEED_100), y) + EXTRA_CFLAGS += -DCONFIG_DOWN_SPEED_100 + endif + ifeq ($(CONFIG_ASPM), y) + EXTRA_CFLAGS += -DCONFIG_ASPM + endif + ifeq ($(ENABLE_S5WOL), y) + EXTRA_CFLAGS += -DENABLE_S5WOL + endif + ifeq ($(ENABLE_S5_KEEP_CURR_MAC), y) + EXTRA_CFLAGS += -DENABLE_S5_KEEP_CURR_MAC + endif + ifeq ($(ENABLE_EEE), y) + EXTRA_CFLAGS += -DENABLE_EEE + endif + ifeq ($(ENABLE_S0_MAGIC_PACKET), y) + EXTRA_CFLAGS += -DENABLE_S0_MAGIC_PACKET + endif + ifeq ($(CONFIG_DYNAMIC_ASPM), y) + EXTRA_CFLAGS += -DCONFIG_DYNAMIC_ASPM + endif + ifeq ($(ENABLE_USE_FIRMWARE_FILE), y) + r8168-objs += r8168_firmware.o + EXTRA_CFLAGS += -DENABLE_USE_FIRMWARE_FILE + endif + ifeq ($(CONFIG_CTAP_SHORT_OFF), y) + EXTRA_CFLAGS += -DCONFIG_CTAP_SHORT_OFF + endif + ifeq ($(ENABLE_MULTIPLE_TX_QUEUE), y) + EXTRA_CFLAGS += -DENABLE_MULTIPLE_TX_QUEUE + endif + ifeq ($(ENABLE_RSS_SUPPORT), y) + r8168-objs += r8168_rss.o + EXTRA_CFLAGS += -DENABLE_RSS_SUPPORT + endif + ifeq ($(ENABLE_LIB_SUPPORT), y) + r8168-objs += r8168_lib.o + EXTRA_CFLAGS += -DENABLE_LIB_SUPPORT + endif + ifeq ($(DISABLE_WOL_SUPPORT), y) + EXTRA_CFLAGS += -DDISABLE_WOL_SUPPORT + endif +else + BASEDIR := /lib/modules/$(shell uname -r) + KERNELDIR ?= $(BASEDIR)/build + PWD :=$(shell pwd) + DRIVERDIR := $(shell find $(BASEDIR)/kernel/drivers/net/ethernet -name realtek -type d) + ifeq ($(DRIVERDIR),) + DRIVERDIR := $(shell find $(BASEDIR)/kernel/drivers/net -name realtek -type d) + endif + ifeq ($(DRIVERDIR),) + DRIVERDIR := $(BASEDIR)/kernel/drivers/net + endif + RTKDIR := $(subst $(BASEDIR)/,,$(DRIVERDIR)) + + KERNEL_GCC_VERSION := $(shell cat /proc/version | sed -n 's/.*gcc version \([[:digit:]]\.[[:digit:]]\.[[:digit:]]\).*/\1/p') + CCVERSION = $(shell $(CC) -dumpversion) + + KVER = $(shell uname -r) + KMAJ = $(shell echo $(KVER) | \ + sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/') + KMIN = $(shell echo $(KVER) | \ + sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/') + KREV = $(shell echo $(KVER) | \ + sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/') + + kver_ge = $(shell \ + echo test | awk '{if($(KMAJ) < $(1)) {print 0} else { \ + if($(KMAJ) > $(1)) {print 1} else { \ + if($(KMIN) < $(2)) {print 0} else { \ + if($(KMIN) > $(2)) {print 1} else { \ + if($(KREV) < $(3)) {print 0} else { print 1 } \ + }}}}}' \ + ) + +.PHONY: all +all: print_vars clean modules install + +print_vars: + @echo + @echo "CC: " $(CC) + @echo "CCVERSION: " $(CCVERSION) + @echo "KERNEL_GCC_VERSION: " $(KERNEL_GCC_VERSION) + @echo "KVER: " $(KVER) + @echo "KMAJ: " $(KMAJ) + @echo "KMIN: " $(KMIN) + @echo "KREV: " $(KREV) + @echo "BASEDIR: " $(BASEDIR) + @echo "DRIVERDIR: " $(DRIVERDIR) + @echo "PWD: " $(PWD) + @echo "RTKDIR: " $(RTKDIR) + @echo + +.PHONY:modules +modules: +#ifeq ($(call kver_ge,5,0,0),1) + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules +#else +# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules +#endif + +.PHONY:clean +clean: +#ifeq ($(call kver_ge,5,0,0),1) + $(MAKE) -C $(KERNELDIR) M=$(PWD) clean +#else +# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) clean +#endif + +.PHONY:install +install: +#ifeq ($(call kver_ge,5,0,0),1) + $(MAKE) -C $(KERNELDIR) M=$(PWD) INSTALL_MOD_DIR=$(RTKDIR) modules_install +#else +# $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) INSTALL_MOD_DIR=$(RTKDIR) modules_install +#endif + +endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168.h new file mode 100644 index 000000000000..f3b798985b92 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168.h @@ -0,0 +1,2394 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#include +#include +#include +#include "r8168_dash.h" +#include "r8168_realwow.h" +#include "r8168_fiber.h" +#include "r8168_rss.h" +#ifdef ENABLE_LIB_SUPPORT +#include "r8168_lib.h" +#endif + +/* +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)&& !defined(ENABLE_LIB_SUPPORT) +#define RTL_USE_NEW_INTR_API +#endif +*/ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32) +typedef int netdev_tx_t; +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) +#define skb_transport_offset(skb) (skb->h.raw - skb->data) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) +#define device_set_wakeup_enable(dev, val) do {} while (0) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) +static inline void ether_addr_copy(u8 *dst, const u8 *src) +{ + u16 *a = (u16 *)dst; + const u16 *b = (const u16 *)src; + + a[0] = b[0]; + a[1] = b[1]; + a[2] = b[2]; +} +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) +#define IS_ERR_OR_NULL(ptr) (!ptr) +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) +#define reinit_completion(x) ((x)->done = 0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) +#define pm_runtime_mark_last_busy(x) +#define pm_runtime_put_autosuspend(x) pm_runtime_put(x) +#define pm_runtime_put_sync_autosuspend(x) pm_runtime_put_sync(x) + +static inline bool pm_runtime_suspended(struct device *dev) +{ + return dev->power.runtime_status == RPM_SUSPENDED + && !dev->power.disable_depth; +} + +static inline bool pm_runtime_active(struct device *dev) +{ + return dev->power.runtime_status == RPM_ACTIVE + || dev->power.disable_depth; +} +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) +#define queue_delayed_work(long_wq, work, delay) schedule_delayed_work(work, delay) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) +#define netif_printk(priv, type, level, netdev, fmt, args...) \ + do { \ + if (netif_msg_##type(priv)) \ + printk(level "%s: " fmt,(netdev)->name , ##args); \ + } while (0) + +#define netif_emerg(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_EMERG, netdev, fmt, ##args) +#define netif_alert(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_ALERT, netdev, fmt, ##args) +#define netif_crit(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_CRIT, netdev, fmt, ##args) +#define netif_err(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_ERR, netdev, fmt, ##args) +#define netif_warn(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_WARNING, netdev, fmt, ##args) +#define netif_notice(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_NOTICE, netdev, fmt, ##args) +#define netif_info(priv, type, netdev, fmt, args...) \ + netif_printk(priv, type, KERN_INFO, (netdev), fmt, ##args) +#endif +#endif +#endif +#endif +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) +#define setup_timer(_timer, _function, _data) \ +do { \ + (_timer)->function = _function; \ + (_timer)->data = _data; \ + init_timer(_timer); \ +} while (0) +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0) +#if defined(skb_vlan_tag_present) && !defined(vlan_tx_tag_present) +#define vlan_tx_tag_present skb_vlan_tag_present +#endif +#if defined(skb_vlan_tag_get) && !defined(vlan_tx_tag_get) +#define vlan_tx_tag_get skb_vlan_tag_get +#endif +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0) + +#define RTL_ALLOC_SKB_INTR(napi, length) dev_alloc_skb(length) +#define R8168_USE_NAPI_ALLOC_SKB 0 +#ifdef CONFIG_R8168_NAPI +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) +#undef RTL_ALLOC_SKB_INTR +#define RTL_ALLOC_SKB_INTR(napi, length) napi_alloc_skb(napi, length) +#undef R8168_USE_NAPI_ALLOC_SKB +#define R8168_USE_NAPI_ALLOC_SKB 1 +#endif +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0) +#define eth_random_addr(addr) random_ether_addr(addr) +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0) +#define netdev_features_t u32 +#endif +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,5,0) +#define NETIF_F_ALL_CSUM NETIF_F_CSUM_MASK +#else +#ifndef NETIF_F_ALL_CSUM +#define NETIF_F_ALL_CSUM NETIF_F_CSUM_MASK +#endif +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,37) +#define ENABLE_R8168_PROCFS +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) +#define NETIF_F_HW_VLAN_RX NETIF_F_HW_VLAN_CTAG_RX +#define NETIF_F_HW_VLAN_TX NETIF_F_HW_VLAN_CTAG_TX +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) +#define __devinit +#define __devexit +#define __devexit_p(func) func +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) +#define CHECKSUM_PARTIAL CHECKSUM_HW +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +#define irqreturn_t void +#define IRQ_HANDLED 1 +#define IRQ_NONE 0 +#define IRQ_RETVAL(x) +#endif + +#ifndef NETIF_F_RXALL +#define NETIF_F_RXALL 0 +#endif + +#ifndef NETIF_F_RXFCS +#define NETIF_F_RXFCS 0 +#endif + +#if !defined(HAVE_FREE_NETDEV) && (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) +#define free_netdev(x) kfree(x) +#endif + +#ifndef SET_NETDEV_DEV +#define SET_NETDEV_DEV(net, pdev) +#endif + +#ifndef SET_MODULE_OWNER +#define SET_MODULE_OWNER(dev) +#endif + +#ifndef SA_SHIRQ +#define SA_SHIRQ IRQF_SHARED +#endif + +#ifndef NETIF_F_GSO +#define gso_size tso_size +#define gso_segs tso_segs +#endif + +#ifndef PCI_VENDOR_ID_DLINK +#define PCI_VENDOR_ID_DLINK 0x1186 +#endif + +#ifndef dma_mapping_error +#define dma_mapping_error(a,b) 0 +#endif + +#ifndef netif_err +#define netif_err(a,b,c,d) +#endif + +#ifndef AUTONEG_DISABLE +#define AUTONEG_DISABLE 0x00 +#endif + +#ifndef AUTONEG_ENABLE +#define AUTONEG_ENABLE 0x01 +#endif + +#ifndef BMCR_SPEED1000 +#define BMCR_SPEED1000 0x0040 +#endif + +#ifndef BMCR_SPEED100 +#define BMCR_SPEED100 0x2000 +#endif + +#ifndef BMCR_SPEED10 +#define BMCR_SPEED10 0x0000 +#endif + +#ifndef SPEED_UNKNOWN +#define SPEED_UNKNOWN -1 +#endif + +#ifndef DUPLEX_UNKNOWN +#define DUPLEX_UNKNOWN 0xff +#endif + +#ifndef SUPPORTED_Pause +#define SUPPORTED_Pause (1 << 13) +#endif + +#ifndef SUPPORTED_Asym_Pause +#define SUPPORTED_Asym_Pause (1 << 14) +#endif + +#ifndef MDIO_EEE_100TX +#define MDIO_EEE_100TX 0x0002 +#endif + +#ifndef MDIO_EEE_1000T +#define MDIO_EEE_1000T 0x0004 +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) +#ifdef CONFIG_NET_POLL_CONTROLLER +#define RTL_NET_POLL_CONTROLLER dev->poll_controller=rtl8168_netpoll +#else +#define RTL_NET_POLL_CONTROLLER +#endif + +#ifdef CONFIG_R8168_VLAN +#define RTL_SET_VLAN dev->vlan_rx_register=rtl8168_vlan_rx_register +#else +#define RTL_SET_VLAN +#endif + +#define RTL_NET_DEVICE_OPS(ops) dev->open=rtl8168_open; \ + dev->hard_start_xmit=rtl8168_start_xmit; \ + dev->get_stats=rtl8168_get_stats; \ + dev->stop=rtl8168_close; \ + dev->tx_timeout=rtl8168_tx_timeout; \ + dev->set_multicast_list=rtl8168_set_rx_mode; \ + dev->change_mtu=rtl8168_change_mtu; \ + dev->set_mac_address=rtl8168_set_mac_address; \ + dev->do_ioctl=rtl8168_do_ioctl; \ + RTL_NET_POLL_CONTROLLER; \ + RTL_SET_VLAN; +#else +#define RTL_NET_DEVICE_OPS(ops) dev->netdev_ops=&ops +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef false +#define false 0 +#endif + +#ifndef true +#define true 1 +#endif + +//Hardware will continue interrupt 10 times after interrupt finished. +#define RTK_KEEP_INTERRUPT_COUNT (10) + +//Due to the hardware design of RTL8111B, the low 32 bit address of receive +//buffer must be 8-byte alignment. +#ifndef NET_IP_ALIGN +#define NET_IP_ALIGN 2 +#endif +#define RTK_RX_ALIGN NET_IP_ALIGN + +#ifdef CONFIG_R8168_NAPI +#define NAPI_SUFFIX "-NAPI" +#else +#define NAPI_SUFFIX "" +#endif +#ifdef ENABLE_FIBER_SUPPORT +#define FIBER_SUFFIX "-FIBER" +#else +#define FIBER_SUFFIX "" +#endif +#ifdef ENABLE_REALWOW_SUPPORT +#define REALWOW_SUFFIX "-REALWOW" +#else +#define REALWOW_SUFFIX "" +#endif +#if defined(ENABLE_DASH_PRINTER_SUPPORT) +#define DASH_SUFFIX "-PRINTER" +#elif defined(ENABLE_DASH_SUPPORT) +#define DASH_SUFFIX "-DASH" +#else +#define DASH_SUFFIX "" +#endif +#if defined(ENABLE_RSS_SUPPORT) +#define RSS_SUFFIX "-RSS" +#else +#define RSS_SUFFIX "" +#endif + +#define RTL8168_VERSION "8.052.01" NAPI_SUFFIX FIBER_SUFFIX REALWOW_SUFFIX DASH_SUFFIX RSS_SUFFIX +#define MODULENAME "r8168" +#define PFX MODULENAME ": " + +#define GPL_CLAIM "\ +r8168 Copyright (C) 2023 Realtek NIC software team \n \ +This program comes with ABSOLUTELY NO WARRANTY; for details, please see . \n \ +This is free software, and you are welcome to redistribute it under certain conditions; see . \n" + +#ifdef RTL8168_DEBUG +#define assert(expr) \ + if(!(expr)) { \ + printk( "Assertion failed! %s,%s,%s,line=%d\n", \ + #expr,__FILE__,__FUNCTION__,__LINE__); \ + } +#define dprintk(fmt, args...) do { printk(PFX fmt, ## args); } while (0) +#else +#define assert(expr) do {} while (0) +#define dprintk(fmt, args...) do {} while (0) +#endif /* RTL8168_DEBUG */ + +#define R8168_MSG_DEFAULT \ + (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | NETIF_MSG_IFDOWN) + +#ifdef CONFIG_R8168_NAPI +#define rtl8168_rx_hwaccel_skb vlan_hwaccel_receive_skb +#define rtl8168_rx_quota(count, quota) min(count, quota) +#else +#define rtl8168_rx_hwaccel_skb vlan_hwaccel_rx +#define rtl8168_rx_quota(count, quota) count +#endif + +/* MAC address length */ +#ifndef MAC_ADDR_LEN +#define MAC_ADDR_LEN 6 +#endif + +#ifndef MAC_PROTOCOL_LEN +#define MAC_PROTOCOL_LEN 2 +#endif + +#ifndef ETH_FCS_LEN +#define ETH_FCS_LEN 4 +#endif + +#ifndef NETIF_F_TSO6 +#define NETIF_F_TSO6 0 +#endif + +#define Reserved2_data 7 +#define RX_DMA_BURST 7 /* Maximum PCI burst, '6' is 1024 */ +#define TX_DMA_BURST_unlimited 7 +#define TX_DMA_BURST_1024 6 +#define TX_DMA_BURST_512 5 +#define TX_DMA_BURST_256 4 +#define TX_DMA_BURST_128 3 +#define TX_DMA_BURST_64 2 +#define TX_DMA_BURST_32 1 +#define TX_DMA_BURST_16 0 +#define Reserved1_data 0x3F +#define RxPacketMaxSize 0x3FE8 /* 16K - 1 - ETH_HLEN - VLAN - CRC... */ +#define Jumbo_Frame_1k ETH_DATA_LEN +#define Jumbo_Frame_2k (2*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_3k (3*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_4k (4*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_5k (5*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_6k (6*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_7k (7*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_8k (8*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define Jumbo_Frame_9k (9*1024 - ETH_HLEN - VLAN_HLEN - ETH_FCS_LEN) +#define InterFrameGap 0x03 /* 3 means InterFrameGap = the shortest one */ +#define RxEarly_off_V1 (0x07 << 11) +#define RxEarly_off_V2 (1 << 11) +#define Rx_Single_fetch_V2 (1 << 14) + +#define R8168_REGS_SIZE (256) +#define R8168_MAC_REGS_SIZE (256) +#define R8168_PHY_REGS_SIZE (16*2) +#define R8168_EPHY_REGS_SIZE (31*2) +#define R8168_ERI_REGS_SIZE (0x100) +#define R8168_REGS_DUMP_SIZE (0x400) +#define R8168_PCI_REGS_SIZE (0x100) +#define R8168_NAPI_WEIGHT 64 + +#define R8168_MAX_MSIX_VEC 4 + +#define RTL8168_TX_TIMEOUT (6 * HZ) +#define RTL8168_LINK_TIMEOUT (1 * HZ) +#define RTL8168_ESD_TIMEOUT (2 * HZ) + +#define MAX_NUM_TX_DESC 1024 /* Maximum number of Tx descriptor registers */ +#define MAX_NUM_RX_DESC 1024 /* Maximum number of Rx descriptor registers */ + +#define MIN_NUM_TX_DESC 32 /* Minimum number of Tx descriptor registers */ +#define MIN_NUM_RX_DESC 32 /* Minimum number of Rx descriptor registers */ + +#define NUM_TX_DESC 1024 /* Number of Tx descriptor registers */ +#define NUM_RX_DESC 1024 /* Number of Rx descriptor registers */ + +#define RX_BUF_SIZE 0x05F2 /* 0x05F2 = 1522bye */ +#define R8168_MAX_TX_QUEUES (2) +#define R8168_MAX_RX_QUEUES (4) +#define R8168_MAX_QUEUES R8168_MAX_RX_QUEUES +#define R8168_MULTI_TX_Q(tp) (rtl8168_tot_tx_rings(tp) > 1) +#define R8168_MULTI_RX_Q(tp) (rtl8168_tot_rx_rings(tp) > 1) +#define R8168_MULTI_RX_4Q(tp) (rtl8168_tot_rx_rings(tp) > 3) +#define R8168_MULTI_RSS_4Q(tp) (tp->num_hw_tot_en_rx_rings > 3) + +#define OCP_STD_PHY_BASE 0xa400 + +//Channel Wait Count +#define R8168_CHANNEL_WAIT_COUNT (20000) +#define R8168_CHANNEL_WAIT_TIME (1) // 1us +#define R8168_CHANNEL_EXIT_DELAY_TIME (20) //20us + +#define NODE_ADDRESS_SIZE 6 + +#define SHORT_PACKET_PADDING_BUF_SIZE 256 + +#define RTK_MAGIC_DEBUG_VALUE 0x0badbeef + +/* write/read MMIO register */ +#define RTL_W8(tp, reg, val8) writeb((val8), tp->mmio_addr + (reg)) +#define RTL_W16(tp, reg, val16) writew((val16), tp->mmio_addr + (reg)) +#define RTL_W32(tp, reg, val32) writel((val32), tp->mmio_addr + (reg)) +#define RTL_R8(tp, reg) readb(tp->mmio_addr + (reg)) +#define RTL_R16(tp, reg) readw(tp->mmio_addr + (reg)) +#define RTL_R32(tp, reg) ((unsigned long) readl(tp->mmio_addr + (reg))) + +#ifndef DMA_64BIT_MASK +#define DMA_64BIT_MASK 0xffffffffffffffffULL +#endif + +#ifndef DMA_32BIT_MASK +#define DMA_32BIT_MASK 0x00000000ffffffffULL +#endif + +#ifndef NETDEV_TX_OK +#define NETDEV_TX_OK 0 /* driver took care of packet */ +#endif + +#ifndef NETDEV_TX_BUSY +#define NETDEV_TX_BUSY 1 /* driver tx path was busy*/ +#endif + +#ifndef NETDEV_TX_LOCKED +#define NETDEV_TX_LOCKED -1 /* driver tx lock was already taken */ +#endif + +#ifndef ADVERTISED_Pause +#define ADVERTISED_Pause (1 << 13) +#endif + +#ifndef ADVERTISED_Asym_Pause +#define ADVERTISED_Asym_Pause (1 << 14) +#endif + +#ifndef ADVERTISE_PAUSE_CAP +#define ADVERTISE_PAUSE_CAP 0x400 +#endif + +#ifndef ADVERTISE_PAUSE_ASYM +#define ADVERTISE_PAUSE_ASYM 0x800 +#endif + +#ifndef MII_CTRL1000 +#define MII_CTRL1000 0x09 +#endif + +#ifndef ADVERTISE_1000FULL +#define ADVERTISE_1000FULL 0x200 +#endif + +#ifndef ADVERTISE_1000HALF +#define ADVERTISE_1000HALF 0x100 +#endif + +#ifndef ETH_MIN_MTU +#define ETH_MIN_MTU 68 +#endif + +/*****************************************************************************/ + +//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3) +#if (( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27) ) || \ + (( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ) && \ + ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3) ))) +/* copied from linux kernel 2.6.20 include/linux/netdev.h */ +#define NETDEV_ALIGN 32 +#define NETDEV_ALIGN_CONST (NETDEV_ALIGN - 1) + +static inline void *netdev_priv(struct net_device *dev) +{ + return (char *)dev + ((sizeof(struct net_device) + + NETDEV_ALIGN_CONST) + & ~NETDEV_ALIGN_CONST); +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,3) + +/*****************************************************************************/ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) +#define RTLDEV tp +#else +#define RTLDEV dev +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) +/*****************************************************************************/ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) +typedef struct net_device *napi_ptr; +typedef int *napi_budget; + +#define napi dev +#define RTL_NAPI_CONFIG(ndev, priv, function, weig) ndev->poll=function; \ + ndev->weight=weig; +#define RTL_NAPI_QUOTA(budget, ndev) min(*budget, ndev->quota) +#define RTL_GET_PRIV(stuct_ptr, priv_struct) netdev_priv(stuct_ptr) +#define RTL_GET_NETDEV(priv_ptr) +#define RTL_RX_QUOTA(budget) *budget +#define RTL_NAPI_QUOTA_UPDATE(ndev, work_done, budget) *budget -= work_done; \ + ndev->quota -= work_done; +#define RTL_NETIF_RX_COMPLETE(dev, napi, work_done) netif_rx_complete(dev) +#define RTL_NETIF_RX_SCHEDULE_PREP(dev, napi) netif_rx_schedule_prep(dev) +#define __RTL_NETIF_RX_SCHEDULE(dev, napi) __netif_rx_schedule(dev) +#define RTL_NAPI_RETURN_VALUE work_done >= work_to_do +#define RTL_NAPI_ENABLE(dev, napi) netif_poll_enable(dev) +#define RTL_NAPI_DISABLE(dev, napi) netif_poll_disable(dev) +#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) +#else +typedef struct napi_struct *napi_ptr; +typedef int napi_budget; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0) +#define RTL_NAPI_CONFIG(ndev, priv, function, weight) netif_napi_add_weight(ndev, &priv->napi, function, weight) +#else +#define RTL_NAPI_CONFIG(ndev, priv, function, weight) netif_napi_add(ndev, &priv->napi, function, weight) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0) +#define RTL_NAPI_QUOTA(budget, ndev) min(budget, budget) +#define RTL_GET_PRIV(stuct_ptr, priv_struct) container_of(stuct_ptr, priv_struct, stuct_ptr) +#define RTL_GET_NETDEV(priv_ptr) struct net_device *dev = priv_ptr->dev; +#define RTL_RX_QUOTA(budget) budget +#define RTL_NAPI_QUOTA_UPDATE(ndev, work_done, budget) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) +#define RTL_NETIF_RX_COMPLETE(dev, napi, work_done) netif_rx_complete(dev, napi) +#define RTL_NETIF_RX_SCHEDULE_PREP(dev, napi) netif_rx_schedule_prep(dev, napi) +#define __RTL_NETIF_RX_SCHEDULE(dev, napi) __netif_rx_schedule(dev, napi) +#endif +#if LINUX_VERSION_CODE == KERNEL_VERSION(2,6,29) +#define RTL_NETIF_RX_COMPLETE(dev, napi, work_done) netif_rx_complete(napi) +#define RTL_NETIF_RX_SCHEDULE_PREP(dev, napi) netif_rx_schedule_prep(napi) +#define __RTL_NETIF_RX_SCHEDULE(dev, napi) __netif_rx_schedule(napi) +#endif +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,29) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) +#define RTL_NETIF_RX_COMPLETE(dev, napi, work_done) napi_complete_done(napi, work_done) +#else +#define RTL_NETIF_RX_COMPLETE(dev, napi, work_done) napi_complete(napi) +#endif +#define RTL_NETIF_RX_SCHEDULE_PREP(dev, napi) napi_schedule_prep(napi) +#define __RTL_NETIF_RX_SCHEDULE(dev, napi) __napi_schedule(napi) +#endif +#define RTL_NAPI_RETURN_VALUE work_done +#define RTL_NAPI_ENABLE(dev, napi) napi_enable(napi) +#define RTL_NAPI_DISABLE(dev, napi) napi_disable(napi) +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) +#define RTL_NAPI_DEL(priv) +#else +#define RTL_NAPI_DEL(priv) netif_napi_del(&priv->napi) +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) + +/*****************************************************************************/ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) +#ifdef __CHECKER__ +#define __iomem __attribute__((noderef, address_space(2))) +extern void __chk_io_ptr(void __iomem *); +#define __bitwise __attribute__((bitwise)) +#else +#define __iomem +#define __chk_io_ptr(x) (void)0 +#define __bitwise +#endif +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) + +/*****************************************************************************/ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8) +#ifdef __CHECKER__ +#define __force __attribute__((force)) +#else +#define __force +#endif +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8) + +#ifndef module_param +#define module_param(v,t,p) MODULE_PARM(v, "i"); +#endif + +#ifndef PCI_DEVICE +#define PCI_DEVICE(vend,dev) \ + .vendor = (vend), .device = (dev), \ + .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID +#endif + +/*****************************************************************************/ +/* 2.5.28 => 2.4.23 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,5,28) ) + +static inline void _kc_synchronize_irq(void) +{ + synchronize_irq(); +} +#undef synchronize_irq +#define synchronize_irq(X) _kc_synchronize_irq() + +#include +#define work_struct tq_struct +#undef INIT_WORK +#define INIT_WORK(a,b,c) INIT_TQUEUE(a,(void (*)(void *))b,c) +#undef container_of +#define container_of list_entry +#define schedule_work schedule_task +#define flush_scheduled_work flush_scheduled_tasks +#endif /* 2.5.28 => 2.4.17 */ + +/*****************************************************************************/ +/* 2.6.4 => 2.6.0 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4) ) +#define MODULE_VERSION(_version) MODULE_INFO(version, _version) +#endif /* 2.6.4 => 2.6.0 */ +/*****************************************************************************/ +/* 2.6.0 => 2.5.28 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) +#define MODULE_INFO(version, _version) +#ifndef CONFIG_E1000_DISABLE_PACKET_SPLIT +#define CONFIG_E1000_DISABLE_PACKET_SPLIT 1 +#endif + +#define pci_set_consistent_dma_mask(dev,mask) 1 + +#undef dev_put +#define dev_put(dev) __dev_put(dev) + +#ifndef skb_fill_page_desc +#define skb_fill_page_desc _kc_skb_fill_page_desc +extern void _kc_skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page, int off, int size); +#endif + +#ifndef pci_dma_mapping_error +#define pci_dma_mapping_error _kc_pci_dma_mapping_error +static inline int _kc_pci_dma_mapping_error(dma_addr_t dma_addr) +{ + return dma_addr == 0; +} +#endif + +#undef ALIGN +#define ALIGN(x,a) (((x)+(a)-1)&~((a)-1)) + +#endif /* 2.6.0 => 2.5.28 */ + +/*****************************************************************************/ +/* 2.4.22 => 2.4.17 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,4,22) ) +#define pci_name(x) ((x)->slot_name) +#endif /* 2.4.22 => 2.4.17 */ + +/*****************************************************************************/ +/* 2.6.5 => 2.6.0 */ +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5) ) +#define pci_dma_sync_single_for_cpu pci_dma_sync_single +#define pci_dma_sync_single_for_device pci_dma_sync_single_for_cpu +#endif /* 2.6.5 => 2.6.0 */ + +/*****************************************************************************/ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +/* + * initialize a work-struct's func and data pointers: + */ +#define PREPARE_WORK(_work, _func, _data) \ + do { \ + (_work)->func = _func; \ + (_work)->data = _data; \ + } while (0) + +#endif +/*****************************************************************************/ +/* 2.6.4 => 2.6.0 */ +#if ((LINUX_VERSION_CODE < KERNEL_VERSION(2,4,25) && \ + LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)) || \ + (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) && \ + LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4))) +#define ETHTOOL_OPS_COMPAT +#endif /* 2.6.4 => 2.6.0 */ + +/*****************************************************************************/ +/* Installations with ethtool version without eeprom, adapter id, or statistics + * support */ + +#ifndef ETH_GSTRING_LEN +#define ETH_GSTRING_LEN 32 +#endif + +#ifndef ETHTOOL_GSTATS +#define ETHTOOL_GSTATS 0x1d +#undef ethtool_drvinfo +#define ethtool_drvinfo k_ethtool_drvinfo +struct k_ethtool_drvinfo { + u32 cmd; + char driver[32]; + char version[32]; + char fw_version[32]; + char bus_info[32]; + char reserved1[32]; + char reserved2[16]; + u32 n_stats; + u32 testinfo_len; + u32 eedump_len; + u32 regdump_len; +}; + +struct ethtool_stats { + u32 cmd; + u32 n_stats; + u64 data[0]; +}; +#endif /* ETHTOOL_GSTATS */ + +#ifndef ETHTOOL_PHYS_ID +#define ETHTOOL_PHYS_ID 0x1c +#endif /* ETHTOOL_PHYS_ID */ + +#ifndef ETHTOOL_GSTRINGS +#define ETHTOOL_GSTRINGS 0x1b +enum ethtool_stringset { + ETH_SS_TEST = 0, + ETH_SS_STATS, +}; +struct ethtool_gstrings { + u32 cmd; /* ETHTOOL_GSTRINGS */ + u32 string_set; /* string set id e.c. ETH_SS_TEST, etc*/ + u32 len; /* number of strings in the string set */ + u8 data[0]; +}; +#endif /* ETHTOOL_GSTRINGS */ + +#ifndef ETHTOOL_TEST +#define ETHTOOL_TEST 0x1a +enum ethtool_test_flags { + ETH_TEST_FL_OFFLINE = (1 << 0), + ETH_TEST_FL_FAILED = (1 << 1), +}; +struct ethtool_test { + u32 cmd; + u32 flags; + u32 reserved; + u32 len; + u64 data[0]; +}; +#endif /* ETHTOOL_TEST */ + +#ifndef ETHTOOL_GEEPROM +#define ETHTOOL_GEEPROM 0xb +#undef ETHTOOL_GREGS +struct ethtool_eeprom { + u32 cmd; + u32 magic; + u32 offset; + u32 len; + u8 data[0]; +}; + +struct ethtool_value { + u32 cmd; + u32 data; +}; +#endif /* ETHTOOL_GEEPROM */ + +#ifndef ETHTOOL_GLINK +#define ETHTOOL_GLINK 0xa +#endif /* ETHTOOL_GLINK */ + +#ifndef ETHTOOL_GREGS +#define ETHTOOL_GREGS 0x00000004 /* Get NIC registers */ +#define ethtool_regs _kc_ethtool_regs +/* for passing big chunks of data */ +struct _kc_ethtool_regs { + u32 cmd; + u32 version; /* driver-specific, indicates different chips/revs */ + u32 len; /* bytes */ + u8 data[0]; +}; +#endif /* ETHTOOL_GREGS */ + +#ifndef ETHTOOL_GMSGLVL +#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */ +#endif +#ifndef ETHTOOL_SMSGLVL +#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level, priv. */ +#endif +#ifndef ETHTOOL_NWAY_RST +#define ETHTOOL_NWAY_RST 0x00000009 /* Restart autonegotiation, priv */ +#endif +#ifndef ETHTOOL_GLINK +#define ETHTOOL_GLINK 0x0000000a /* Get link status */ +#endif +#ifndef ETHTOOL_GEEPROM +#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */ +#endif +#ifndef ETHTOOL_SEEPROM +#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data */ +#endif +#ifndef ETHTOOL_GCOALESCE +#define ETHTOOL_GCOALESCE 0x0000000e /* Get coalesce config */ +/* for configuring coalescing parameters of chip */ +#define ethtool_coalesce _kc_ethtool_coalesce +struct _kc_ethtool_coalesce { + u32 cmd; /* ETHTOOL_{G,S}COALESCE */ + + /* How many usecs to delay an RX interrupt after + * a packet arrives. If 0, only rx_max_coalesced_frames + * is used. + */ + u32 rx_coalesce_usecs; + + /* How many packets to delay an RX interrupt after + * a packet arrives. If 0, only rx_coalesce_usecs is + * used. It is illegal to set both usecs and max frames + * to zero as this would cause RX interrupts to never be + * generated. + */ + u32 rx_max_coalesced_frames; + + /* Same as above two parameters, except that these values + * apply while an IRQ is being serviced by the host. Not + * all cards support this feature and the values are ignored + * in that case. + */ + u32 rx_coalesce_usecs_irq; + u32 rx_max_coalesced_frames_irq; + + /* How many usecs to delay a TX interrupt after + * a packet is sent. If 0, only tx_max_coalesced_frames + * is used. + */ + u32 tx_coalesce_usecs; + + /* How many packets to delay a TX interrupt after + * a packet is sent. If 0, only tx_coalesce_usecs is + * used. It is illegal to set both usecs and max frames + * to zero as this would cause TX interrupts to never be + * generated. + */ + u32 tx_max_coalesced_frames; + + /* Same as above two parameters, except that these values + * apply while an IRQ is being serviced by the host. Not + * all cards support this feature and the values are ignored + * in that case. + */ + u32 tx_coalesce_usecs_irq; + u32 tx_max_coalesced_frames_irq; + + /* How many usecs to delay in-memory statistics + * block updates. Some drivers do not have an in-memory + * statistic block, and in such cases this value is ignored. + * This value must not be zero. + */ + u32 stats_block_coalesce_usecs; + + /* Adaptive RX/TX coalescing is an algorithm implemented by + * some drivers to improve latency under low packet rates and + * improve throughput under high packet rates. Some drivers + * only implement one of RX or TX adaptive coalescing. Anything + * not implemented by the driver causes these values to be + * silently ignored. + */ + u32 use_adaptive_rx_coalesce; + u32 use_adaptive_tx_coalesce; + + /* When the packet rate (measured in packets per second) + * is below pkt_rate_low, the {rx,tx}_*_low parameters are + * used. + */ + u32 pkt_rate_low; + u32 rx_coalesce_usecs_low; + u32 rx_max_coalesced_frames_low; + u32 tx_coalesce_usecs_low; + u32 tx_max_coalesced_frames_low; + + /* When the packet rate is below pkt_rate_high but above + * pkt_rate_low (both measured in packets per second) the + * normal {rx,tx}_* coalescing parameters are used. + */ + + /* When the packet rate is (measured in packets per second) + * is above pkt_rate_high, the {rx,tx}_*_high parameters are + * used. + */ + u32 pkt_rate_high; + u32 rx_coalesce_usecs_high; + u32 rx_max_coalesced_frames_high; + u32 tx_coalesce_usecs_high; + u32 tx_max_coalesced_frames_high; + + /* How often to do adaptive coalescing packet rate sampling, + * measured in seconds. Must not be zero. + */ + u32 rate_sample_interval; +}; +#endif /* ETHTOOL_GCOALESCE */ + +#ifndef ETHTOOL_SCOALESCE +#define ETHTOOL_SCOALESCE 0x0000000f /* Set coalesce config. */ +#endif +#ifndef ETHTOOL_GRINGPARAM +#define ETHTOOL_GRINGPARAM 0x00000010 /* Get ring parameters */ +/* for configuring RX/TX ring parameters */ +#define ethtool_ringparam _kc_ethtool_ringparam +struct _kc_ethtool_ringparam { + u32 cmd; /* ETHTOOL_{G,S}RINGPARAM */ + + /* Read only attributes. These indicate the maximum number + * of pending RX/TX ring entries the driver will allow the + * user to set. + */ + u32 rx_max_pending; + u32 rx_mini_max_pending; + u32 rx_jumbo_max_pending; + u32 tx_max_pending; + + /* Values changeable by the user. The valid values are + * in the range 1 to the "*_max_pending" counterpart above. + */ + u32 rx_pending; + u32 rx_mini_pending; + u32 rx_jumbo_pending; + u32 tx_pending; +}; +#endif /* ETHTOOL_GRINGPARAM */ + +#ifndef ETHTOOL_SRINGPARAM +#define ETHTOOL_SRINGPARAM 0x00000011 /* Set ring parameters, priv. */ +#endif +#ifndef ETHTOOL_GPAUSEPARAM +#define ETHTOOL_GPAUSEPARAM 0x00000012 /* Get pause parameters */ +/* for configuring link flow control parameters */ +#define ethtool_pauseparam _kc_ethtool_pauseparam +struct _kc_ethtool_pauseparam { + u32 cmd; /* ETHTOOL_{G,S}PAUSEPARAM */ + + /* If the link is being auto-negotiated (via ethtool_cmd.autoneg + * being true) the user may set 'autonet' here non-zero to have the + * pause parameters be auto-negotiated too. In such a case, the + * {rx,tx}_pause values below determine what capabilities are + * advertised. + * + * If 'autoneg' is zero or the link is not being auto-negotiated, + * then {rx,tx}_pause force the driver to use/not-use pause + * flow control. + */ + u32 autoneg; + u32 rx_pause; + u32 tx_pause; +}; +#endif /* ETHTOOL_GPAUSEPARAM */ + +#ifndef ETHTOOL_SPAUSEPARAM +#define ETHTOOL_SPAUSEPARAM 0x00000013 /* Set pause parameters. */ +#endif +#ifndef ETHTOOL_GRXCSUM +#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */ +#endif +#ifndef ETHTOOL_SRXCSUM +#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */ +#endif +#ifndef ETHTOOL_GTXCSUM +#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */ +#endif +#ifndef ETHTOOL_STXCSUM +#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */ +#endif +#ifndef ETHTOOL_GSG +#define ETHTOOL_GSG 0x00000018 /* Get scatter-gather enable +* (ethtool_value) */ +#endif +#ifndef ETHTOOL_SSG +#define ETHTOOL_SSG 0x00000019 /* Set scatter-gather enable +* (ethtool_value). */ +#endif +#ifndef ETHTOOL_TEST +#define ETHTOOL_TEST 0x0000001a /* execute NIC self-test, priv. */ +#endif +#ifndef ETHTOOL_GSTRINGS +#define ETHTOOL_GSTRINGS 0x0000001b /* get specified string set */ +#endif +#ifndef ETHTOOL_PHYS_ID +#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */ +#endif +#ifndef ETHTOOL_GSTATS +#define ETHTOOL_GSTATS 0x0000001d /* get NIC-specific statistics */ +#endif +#ifndef ETHTOOL_GTSO +#define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */ +#endif +#ifndef ETHTOOL_STSO +#define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */ +#endif + +#ifndef ETHTOOL_BUSINFO_LEN +#define ETHTOOL_BUSINFO_LEN 32 +#endif + +/*****************************************************************************/ + +enum RTL8168_DSM_STATE { + DSM_MAC_INIT = 1, + DSM_NIC_GOTO_D3 = 2, + DSM_IF_DOWN = 3, + DSM_NIC_RESUME_D3 = 4, + DSM_IF_UP = 5, +}; + +enum RTL8168_registers { + MAC0 = 0x00, /* Ethernet hardware address. */ + MAC4 = 0x04, + MAR0 = 0x08, /* Multicast filter. */ + CounterAddrLow = 0x10, + CounterAddrHigh = 0x14, + CustomLED = 0x18, + TxDescStartAddrLow = 0x20, + TxDescStartAddrHigh = 0x24, + TxHDescStartAddrLow = 0x28, + TxHDescStartAddrHigh = 0x2c, + FLASH = 0x30, + ERSR = 0x36, + ChipCmd = 0x37, + TxPoll = 0x38, + IntrMask = 0x3C, + IntrStatus = 0x3E, + TxConfig = 0x40, + RxConfig = 0x44, + TCTR = 0x48, + Cfg9346 = 0x50, + Config0 = 0x51, + Config1 = 0x52, + Config2 = 0x53, + Config3 = 0x54, + Config4 = 0x55, + Config5 = 0x56, + TDFNR = 0x57, + TimeInt0 = 0x58, + TimeInt1 = 0x5C, + PHYAR = 0x60, + CSIDR = 0x64, + CSIAR = 0x68, + PHYstatus = 0x6C, + MACDBG = 0x6D, + GPIO = 0x6E, + PMCH = 0x6F, + ERIDR = 0x70, + ERIAR = 0x74, + EPHY_RXER_NUM = 0x7C, + EPHYAR = 0x80, + IntrMask1 = 0x84, + IntrMask2 = 0x85, + IntrStatus1 = 0x86, + IntrStatus2 = 0x87, + TimeInt2 = 0x8C, + Rss_indir_tbl = 0x90, + OCPDR = 0xB0, + MACOCP = 0xB0, + OCPAR = 0xB4, + SecMAC0 = 0xB4, + SecMAC4 = 0xB8, + PHYOCP = 0xB8, + IntrMask3 = 0xC0, + IntrStatus3 = 0xC1, + DBG_reg = 0xD1, + TwiCmdReg = 0xD2, + MCUCmd_reg = 0xD3, + RxMaxSize = 0xDA, + EFUSEAR = 0xDC, + CPlusCmd = 0xE0, + IntrMitigate = 0xE2, + RxDescAddrLow = 0xE4, + RxDescAddrHigh = 0xE8, + MTPS = 0xEC, + FuncEvent = 0xF0, + PPSW = 0xF2, + FuncEventMask = 0xF4, + TimeInt3 = 0xF4, + FuncPresetState = 0xF8, + CMAC_IBCR0 = 0xF8, + CMAC_IBCR2 = 0xF9, + CMAC_IBIMR0 = 0xFA, + CMAC_IBISR0 = 0xFB, + FuncForceEvent = 0xFC, + + /* ERI */ + RSS_KEY_8168 = 0x90, + RSS_CTRL_8168 = 0xB8, + Q_NUM_CTRL_8168 = 0xC0, + + /* MAC OCP */ + EEE_TXIDLE_TIMER_8168 = 0xe048, +}; + +enum RTL8168_register_content { + /* InterruptStatusBits */ + SYSErr = 0x8000, + PCSTimeout = 0x4000, + SWInt = 0x0100, + TxDescUnavail = 0x0080, + RxFIFOOver = 0x0040, + LinkChg = 0x0020, + RxDescUnavail = 0x0010, + TxErr = 0x0008, + TxOK = 0x0004, + RxErr = 0x0002, + RxOK = 0x0001, + RxDU1 = 0x0002, + RxOK1 = 0x0001, + + /* RxStatusDesc */ + RxRWT = (1 << 22), + RxRES = (1 << 21), + RxRUNT = (1 << 20), + RxCRC = (1 << 19), + + /* ChipCmdBits */ + StopReq = 0x80, + CmdReset = 0x10, + CmdRxEnb = 0x08, + CmdTxEnb = 0x04, + RxBufEmpty = 0x01, + + /* Cfg9346Bits */ + Cfg9346_Lock = 0x00, + Cfg9346_Unlock = 0xC0, + Cfg9346_EEDO = (1 << 0), + Cfg9346_EEDI = (1 << 1), + Cfg9346_EESK = (1 << 2), + Cfg9346_EECS = (1 << 3), + Cfg9346_EEM0 = (1 << 6), + Cfg9346_EEM1 = (1 << 7), + + /* rx_mode_bits */ + AcceptErr = 0x20, + AcceptRunt = 0x10, + AcceptBroadcast = 0x08, + AcceptMulticast = 0x04, + AcceptMyPhys = 0x02, + AcceptAllPhys = 0x01, + + /* Transmit Priority Polling*/ + HPQ = 0x80, + NPQ = 0x40, + FSWInt = 0x01, + + /* RxConfigBits */ + Reserved2_shift = 13, + RxCfgDMAShift = 8, + RxCfg_128_int_en = (1 << 15), + RxCfg_fet_multi_en = (1 << 14), + RxCfg_half_refetch = (1 << 13), + RxCfg_9356SEL = (1 << 6), + RxCfg_rx_desc_v2_en = (1 << 24), + + /* TxConfigBits */ + TxInterFrameGapShift = 24, + TxDMAShift = 8, /* DMA burst value (0-7) is shift this many bits */ + TxMACLoopBack = (1 << 17), /* MAC loopback */ + + /* Config1 register */ + LEDS1 = (1 << 7), + LEDS0 = (1 << 6), + Speed_down = (1 << 4), + MEMMAP = (1 << 3), + IOMAP = (1 << 2), + VPD = (1 << 1), + PMEnable = (1 << 0), /* Power Management Enable */ + + /* Config2 register */ + ClkReqEn = (1 << 7), /* Clock Request Enable */ + PMSTS_En = (1 << 5), + + /* Config3 register */ + Isolate_en = (1 << 12), /* Isolate enable */ + MagicPacket = (1 << 5), /* Wake up when receives a Magic Packet */ + LinkUp = (1 << 4), /* This bit is reserved in RTL8168B.*/ + /* Wake up when the cable connection is re-established */ + ECRCEN = (1 << 3), /* This bit is reserved in RTL8168B*/ + Jumbo_En0 = (1 << 2), /* This bit is reserved in RTL8168B*/ + RDY_TO_L23 = (1 << 1), /* This bit is reserved in RTL8168B*/ + Beacon_en = (1 << 0), /* This bit is reserved in RTL8168B*/ + + /* Config4 register */ + Jumbo_En1 = (1 << 1), /* This bit is reserved in RTL8168B*/ + + /* Config5 register */ + BWF = (1 << 6), /* Accept Broadcast wakeup frame */ + MWF = (1 << 5), /* Accept Multicast wakeup frame */ + UWF = (1 << 4), /* Accept Unicast wakeup frame */ + LanWake = (1 << 1), /* LanWake enable/disable */ + PMEStatus = (1 << 0), /* PME status can be reset by PCI RST# */ + ASPM_en = (1 << 0), /* ASPM enable */ + + /* CPlusCmd */ + EnableBist = (1 << 15), + Macdbgo_oe = (1 << 14), + Normal_mode = (1 << 13), + Force_halfdup = (1 << 12), + Force_rxflow_en = (1 << 11), + Force_txflow_en = (1 << 10), + Cxpl_dbg_sel = (1 << 9),//This bit is reserved in RTL8168B + ASF = (1 << 8),//This bit is reserved in RTL8168C + PktCntrDisable = (1 << 7), + RxVlan = (1 << 6), + RxChkSum = (1 << 5), + Macdbgo_sel = 0x001C, + INTT_0 = 0x0000, + INTT_1 = 0x0001, + INTT_2 = 0x0002, + INTT_3 = 0x0003, + + /* rtl8168_PHYstatus */ + PowerSaveStatus = 0x80, + TxFlowCtrl = 0x40, + RxFlowCtrl = 0x20, + _1000bpsF = 0x10, + _100bps = 0x08, + _10bps = 0x04, + LinkStatus = 0x02, + FullDup = 0x01, + + /* DBG_reg */ + Fix_Nak_1 = (1 << 4), + Fix_Nak_2 = (1 << 3), + DBGPIN_E2 = (1 << 0), + + /* ResetCounterCommand */ + CounterReset = 0x1, + /* DumpCounterCommand */ + CounterDump = 0x8, + + /* PHY access */ + PHYAR_Flag = 0x80000000, + PHYAR_Write = 0x80000000, + PHYAR_Read = 0x00000000, + PHYAR_Reg_Mask = 0x1f, + PHYAR_Reg_shift = 16, + PHYAR_Data_Mask = 0xffff, + + /* EPHY access */ + EPHYAR_Flag = 0x80000000, + EPHYAR_Write = 0x80000000, + EPHYAR_Read = 0x00000000, + EPHYAR_Reg_Mask = 0x3f, + EPHYAR_Reg_shift = 16, + EPHYAR_Data_Mask = 0xffff, + + /* CSI access */ + CSIAR_Flag = 0x80000000, + CSIAR_Write = 0x80000000, + CSIAR_Read = 0x00000000, + CSIAR_ByteEn = 0x0f, + CSIAR_ByteEn_shift = 12, + CSIAR_Addr_Mask = 0x0fff, + + /* ERI access */ + ERIAR_Flag = 0x80000000, + ERIAR_Write = 0x80000000, + ERIAR_Read = 0x00000000, + ERIAR_Addr_Align = 4, /* ERI access register address must be 4 byte alignment */ + ERIAR_ExGMAC = 0, + ERIAR_MSIX = 1, + ERIAR_ASF = 2, + ERIAR_OOB = 2, + ERIAR_Type_shift = 16, + ERIAR_ByteEn = 0x0f, + ERIAR_ByteEn_shift = 12, + + /* OCP GPHY access */ + OCPDR_Write = 0x80000000, + OCPDR_Read = 0x00000000, + OCPDR_Reg_Mask = 0xFF, + OCPDR_Data_Mask = 0xFFFF, + OCPDR_GPHY_Reg_shift = 16, + OCPAR_Flag = 0x80000000, + OCPAR_GPHY_Write = 0x8000F060, + OCPAR_GPHY_Read = 0x0000F060, + OCPR_Write = 0x80000000, + OCPR_Read = 0x00000000, + OCPR_Addr_Reg_shift = 16, + OCPR_Flag = 0x80000000, + OCP_STD_PHY_BASE_PAGE = 0x0A40, + + /* MCU Command */ + Now_is_oob = (1 << 7), + Txfifo_empty = (1 << 5), + Rxfifo_empty = (1 << 4), + + /* E-FUSE access */ + EFUSE_WRITE = 0x80000000, + EFUSE_WRITE_OK = 0x00000000, + EFUSE_READ = 0x00000000, + EFUSE_READ_OK = 0x80000000, + EFUSE_WRITE_V3 = 0x40000000, + EFUSE_WRITE_OK_V3 = 0x00000000, + EFUSE_READ_V3 = 0x80000000, + EFUSE_READ_OK_V3 = 0x00000000, + EFUSE_Reg_Mask = 0x03FF, + EFUSE_Reg_Shift = 8, + EFUSE_Check_Cnt = 300, + EFUSE_READ_FAIL = 0xFF, + EFUSE_Data_Mask = 0x000000FF, + + /* GPIO */ + GPIO_en = (1 << 0), + +}; + +enum _DescStatusBit { + DescOwn = (1 << 31), /* Descriptor is owned by NIC */ + RingEnd = (1 << 30), /* End of descriptor ring */ + FirstFrag = (1 << 29), /* First segment of a packet */ + LastFrag = (1 << 28), /* Final segment of a packet */ + + /* Tx private */ + /*------ offset 0 of tx descriptor ------*/ + LargeSend = (1 << 27), /* TCP Large Send Offload (TSO) */ + GiantSendv4 = (1 << 26), /* TCP Giant Send Offload V4 (GSOv4) */ + GiantSendv6 = (1 << 25), /* TCP Giant Send Offload V6 (GSOv6) */ + LargeSend_DP = (1 << 16), /* TCP Large Send Offload (TSO) */ + MSSShift = 16, /* MSS value position */ + MSSMask = 0x7FFU, /* MSS value 11 bits */ + TxIPCS = (1 << 18), /* Calculate IP checksum */ + TxUDPCS = (1 << 17), /* Calculate UDP/IP checksum */ + TxTCPCS = (1 << 16), /* Calculate TCP/IP checksum */ + TxVlanTag = (1 << 17), /* Add VLAN tag */ + + /*@@@@@@ offset 4 of tx descriptor => bits for RTL8168C/CP only begin @@@@@@*/ + TxUDPCS_C = (1 << 31), /* Calculate UDP/IP checksum */ + TxTCPCS_C = (1 << 30), /* Calculate TCP/IP checksum */ + TxIPCS_C = (1 << 29), /* Calculate IP checksum */ + TxIPV6F_C = (1 << 28), /* Indicate it is an IPv6 packet */ + /*@@@@@@ offset 4 of tx descriptor => bits for RTL8168C/CP only end @@@@@@*/ + + + /* Rx private */ + /*------ offset 0 of rx descriptor ------*/ + PID1 = (1 << 18), /* Protocol ID bit 1/2 */ + PID0 = (1 << 17), /* Protocol ID bit 2/2 */ + +#define RxProtoUDP (PID1) +#define RxProtoTCP (PID0) +#define RxProtoIP (PID1 | PID0) +#define RxProtoMask RxProtoIP + + RxIPF = (1 << 16), /* IP checksum failed */ + RxUDPF = (1 << 15), /* UDP/IP checksum failed */ + RxTCPF = (1 << 14), /* TCP/IP checksum failed */ + RxVlanTag = (1 << 16), /* VLAN tag available */ + + /*@@@@@@ offset 0 of rx descriptor => bits for RTL8168C/CP only begin @@@@@@*/ + RxUDPT = (1 << 18), + RxTCPT = (1 << 17), + /*@@@@@@ offset 0 of rx descriptor => bits for RTL8168C/CP only end @@@@@@*/ + + /*@@@@@@ offset 4 of rx descriptor => bits for RTL8168C/CP only begin @@@@@@*/ + RxV6F = (1 << 31), + RxV4F = (1 << 30), + /*@@@@@@ offset 4 of rx descriptor => bits for RTL8168C/CP only end @@@@@@*/ +}; + +enum features { +// RTL_FEATURE_WOL = (1 << 0), + RTL_FEATURE_MSI = (1 << 1), + RTL_FEATURE_MSIX = (1 << 2), +}; + +enum wol_capability { + WOL_DISABLED = 0, + WOL_ENABLED = 1 +}; + +enum bits { + BIT_0 = (1 << 0), + BIT_1 = (1 << 1), + BIT_2 = (1 << 2), + BIT_3 = (1 << 3), + BIT_4 = (1 << 4), + BIT_5 = (1 << 5), + BIT_6 = (1 << 6), + BIT_7 = (1 << 7), + BIT_8 = (1 << 8), + BIT_9 = (1 << 9), + BIT_10 = (1 << 10), + BIT_11 = (1 << 11), + BIT_12 = (1 << 12), + BIT_13 = (1 << 13), + BIT_14 = (1 << 14), + BIT_15 = (1 << 15), + BIT_16 = (1 << 16), + BIT_17 = (1 << 17), + BIT_18 = (1 << 18), + BIT_19 = (1 << 19), + BIT_20 = (1 << 20), + BIT_21 = (1 << 21), + BIT_22 = (1 << 22), + BIT_23 = (1 << 23), + BIT_24 = (1 << 24), + BIT_25 = (1 << 25), + BIT_26 = (1 << 26), + BIT_27 = (1 << 27), + BIT_28 = (1 << 28), + BIT_29 = (1 << 29), + BIT_30 = (1 << 30), + BIT_31 = (1 << 31) +}; + +#define RTL8168_CP_NUM 4 +#define RTL8168_MAX_SUPPORT_cp_len 110 + +enum rtl8168_cp_status { + rtl8168_cp_normal = 0, + rtl8168_cp_short, + rtl8168_cp_open, + rtl8168_cp_mismatch, + rtl8168_cp_unknown +}; + +enum effuse { + EFUSE_NOT_SUPPORT = 0, + EFUSE_SUPPORT_V1, + EFUSE_SUPPORT_V2, + EFUSE_SUPPORT_V3, +}; +#define RsvdMask 0x3fffc000 + +struct TxDesc { + u32 opts1; + u32 opts2; + u64 addr; +}; + +struct RxDesc { + u32 opts1; + u32 opts2; + u64 addr; +}; + +struct RxDescV2 { + u32 opts1; + u32 opts2; + u64 addr; + u32 rsvd1; + u32 RSSResult; + u64 rsvd2; +}; + +//Rx Desc Type +enum rx_desc_ring_type { + RX_DESC_RING_TYPE_UNKNOWN=0, + RX_DESC_RING_TYPE_1, + RX_DESC_RING_TYPE_2, + RX_DESC_RING_TYPE_3, + RX_DESC_RING_TYPE_MAX +}; + +enum rx_desc_len { + RX_DESC_LEN_TYPE_1 = (sizeof(struct RxDesc)), + RX_DESC_LEN_TYPE_2 = (sizeof(struct RxDescV2)) +}; + +struct ring_info { + struct sk_buff *skb; + u32 len; + u8 __pad[sizeof(void *) - sizeof(u32)]; +}; + +struct pci_resource { + u8 cmd; + u8 cls; + u16 io_base_h; + u16 io_base_l; + u16 mem_base_h; + u16 mem_base_l; + u8 ilr; + u16 resv_0x1c_h; + u16 resv_0x1c_l; + u16 resv_0x20_h; + u16 resv_0x20_l; + u16 resv_0x24_h; + u16 resv_0x24_l; + u16 resv_0x2c_h; + u16 resv_0x2c_l; + u32 pci_sn_l; + u32 pci_sn_h; +}; + +enum r8168_flag { + R8168_FLAG_DOWN = 0, + R8168_FLAG_TASK_RESET_PENDING, + R8168_FLAG_TASK_ESD_CHECK_PENDING, + R8168_FLAG_TASK_LINKCHG_CHECK_PENDING, + R8168_FLAG_MAX +}; + +/* Flow Control Settings */ +enum rtl8168_fc_mode { + rtl8168_fc_none = 0, + rtl8168_fc_rx_pause, + rtl8168_fc_tx_pause, + rtl8168_fc_full, + rtl8168_fc_default +}; + +struct rtl8168_tx_ring { + void* priv; + u32 index; + u32 cur_tx; /* Index into the Tx descriptor buffer of next Rx pkt. */ + u32 dirty_tx; + u32 num_tx_desc; /* Number of Tx descriptor registers */ + u32 tdu; /* Tx descriptor unavailable count */ + struct TxDesc *TxDescArray; /* 256-aligned Tx descriptor ring */ + dma_addr_t TxPhyAddr; + u32 TxDescAllocSize; + struct ring_info tx_skb[NUM_TX_DESC]; /* Tx data buffers */ + + u16 tdsar_reg; /* Transmit Descriptor Start Address */ +}; + +struct rtl8168_rx_ring { + void* priv; + u32 index; + u32 cur_rx; /* Index into the Rx descriptor buffer of next Rx pkt. */ + u32 dirty_rx; + u32 rdu; /* Rx descriptor unavailable count */ + //struct RxDesc *RxDescArray; /* 256-aligned Rx descriptor ring */ + //u32 RxDescAllocSize; + u64 RxDescPhyAddr[MAX_NUM_RX_DESC]; /* Rx desc physical address*/ + //dma_addr_t RxPhyAddr; + struct sk_buff *Rx_skbuff[MAX_NUM_RX_DESC]; /* Rx data buffers */ + + //u16 rdsar_reg; /* Receive Descriptor Start Address */ +}; + +struct r8168_napi { +#ifdef CONFIG_R8168_NAPI +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) + struct napi_struct napi; +#endif +#endif + void* priv; + int index; +}; + +struct r8168_irq { + irq_handler_t handler; + unsigned int vector; + u8 requested; + char name[IFNAMSIZ + 10]; +}; + +#pragma pack(1) +struct rtl8168_regs { + //00 + u8 mac_id[6]; + u16 reg_06; + u8 mar[8]; + //10 + u64 dtccr; + u16 ledsel0; + u16 legreg; + u32 tctr3; + //20 + u32 txq0_dsc_st_addr_0; + u32 txq0_dsc_st_addr_2; + u64 reg_28; + //30 + u16 rit; + u16 ritc; + u16 reg_34; + u8 reg_36; + u8 command; + u32 imr0; + u32 isr0; + //40 + u32 tcr; + u32 rcr; + u32 tctr0; + u32 tctr1; + //50 + u8 cr93c46; + u8 config0; + u8 config1; + u8 config2; + u8 config3; + u8 config4; + u8 config5; + u8 tdfnr; + u32 timer_int0; + u32 timer_int1; + //60 + u32 gphy_mdcmdio; + u32 csidr; + u32 csiar; + u16 phy_status; + u8 config6; + u8 pmch; + //70 + u32 eridr; + u32 eriar; + u16 config7; + u16 reg_7a; + u32 ephy_rxerr_cnt; + //80 + u32 ephy_mdcmdio; + u16 ledsel2; + u16 ledsel1; + u32 tctr2; + u32 timer_int2; + //90 + u8 tppoll0; + u8 reg_91; + u16 reg_92; + u16 led_feature; + u16 ledsel3; + u16 eee_led_config; + u16 reg_9a; + u32 reg_9c; + //a0 + u32 reg_a0; + u32 reg_a4; + u32 reg_a8; + u32 reg_ac; + //b0 + u32 patch_dbg; + u32 reg_b4; + u32 gphy_ocp; + u32 reg_bc; + //c0 + u32 reg_c0; + u32 reg_c4; + u32 reg_c8; + u16 otp_cmd; + u16 otp_pg_config; + //d0 + u16 phy_pwr; + u8 twsi_ctrl; + u8 oob_ctrl; + u16 mac_dbgo; + u16 mac_dbg; + u16 reg_d8; + u16 rms; + u32 efuse_data; + //e0 + u16 cplus_cmd; + u16 reg_e2; + u32 rxq0_dsc_st_addr_0; + u32 rxq0_dsc_st_addr_2; + u16 reg_ec; + u16 tx10midle_cnt; + //f0 + u16 misc0; + u16 misc1; + u32 timer_int3; + u32 cmac_ib; + u16 reg_fc; + u16 sw_rst; +}; +#pragma pack() + +struct rtl8168_regs_save { + union { + u8 mac_io[R8168_MAC_REGS_SIZE]; + + struct rtl8168_regs mac_reg; + }; + u16 pcie_phy[R8168_EPHY_REGS_SIZE/2]; + u16 eth_phy[R8168_PHY_REGS_SIZE/2]; + u32 eri_reg[R8168_ERI_REGS_SIZE/4]; + u32 pci_reg[R8168_PCI_REGS_SIZE/4]; + + //ktime_t begin_ktime; + //ktime_t end_ktime; + //u64 duration_ns; + + + u16 int_miti_rxq0; + + u8 int_config; + u32 imr_new; + u32 isr_new; + + u8 tdu_status; + u16 rdu_status; + + u32 rss_ctrl; + u8 rss_key[RTL8168_RSS_KEY_SIZE]; + u8 rss_i_table[RTL8168_MAX_INDIRECTION_TABLE_ENTRIES]; + u16 rss_queue_num_sel_r; +}; + +struct rtl8168_counters { + /* legacy */ + u64 tx_packets; + u64 rx_packets; + u64 tx_errors; + u32 rx_errors; + u16 rx_missed; + u16 align_errors; + u32 tx_one_collision; + u32 tx_multi_collision; + u64 rx_unicast; + u64 rx_broadcast; + u32 rx_multicast; + u16 tx_aborted; + u16 tx_underrun; +}; + +struct rtl8168_private { + void __iomem *mmio_addr; /* memory map physical address */ + struct pci_dev *pci_dev; /* Index of PCI device */ + struct pci_dev *pdev_cmac; /* Index of PCI device */ + struct net_device *dev; + struct r8168_napi r8168napi[R8168_MAX_MSIX_VEC]; + struct r8168_irq irq_tbl[R8168_MAX_MSIX_VEC]; + unsigned int irq_nvecs; + unsigned int max_irq_nvecs; + unsigned int min_irq_nvecs; + unsigned int hw_supp_irq_nvecs; + struct net_device_stats stats; /* statistics of net device */ + u32 msg_enable; + u32 tx_tcp_csum_cmd; + u32 tx_udp_csum_cmd; + u32 tx_ip_csum_cmd; + u32 tx_ipv6_csum_cmd; + int max_jumbo_frame_size; + int chipset; + u32 mcfg; + //u32 cur_rx; /* Index into the Rx descriptor buffer of next Rx pkt. */ + // u32 cur_tx; /* Index into the Tx descriptor buffer of next Rx pkt. */ + //u32 dirty_rx; + //u32 dirty_tx; + u32 num_rx_desc; /* Number of Rx descriptor registers */ + //u32 num_tx_desc; /* Number of Tx descriptor registers */ + //struct TxDesc *TxDescArray; /* 256-aligned Tx descriptor ring */ + struct RxDesc *RxDescArray; /* 256-aligned Rx descriptor ring */ + //dma_addr_t TxPhyAddr; + dma_addr_t RxPhyAddr; + //u32 TxDescAllocSize; + u32 RxDescAllocSize; + //struct sk_buff *Rx_skbuff[MAX_NUM_RX_DESC]; /* Rx data buffers */ + //struct ring_info tx_skb[MAX_NUM_TX_DESC]; /* Tx data buffers */ + unsigned rx_buf_sz; + u16 HwSuppNumTxQueues; // Number of tx ring that hardware can support + u16 HwSuppNumRxQueues; // Number of rx ring that hardware can support + unsigned int num_tx_rings; // Number of tx ring that non-ring-lib driver used + unsigned int num_rx_rings; // Number of rx ring that non-ring-lib driver used + struct rtl8168_tx_ring tx_ring[R8168_MAX_TX_QUEUES]; // non-ring-lib tx ring + struct rtl8168_rx_ring rx_ring[R8168_MAX_RX_QUEUES]; // non-ring-lib rx ring +#ifdef ENABLE_LIB_SUPPORT + struct blocking_notifier_head lib_nh; + struct rtl8168_ring lib_tx_ring[R8168_MAX_TX_QUEUES]; // ring-lib tx ring + struct rtl8168_ring lib_rx_ring[R8168_MAX_RX_QUEUES]; // ring-lib rx ring +#endif + u16 num_hw_tot_en_rx_rings; // Number of rx ring that hardware enabled + //struct timer_list esd_timer; + //struct timer_list link_timer; + struct pci_resource pci_cfg_space; + unsigned int esd_flag; + unsigned int pci_cfg_is_read; + unsigned int rtl8168_rx_config; + u16 cp_cmd; + u16 intr_mask; + u16 timer_intr_mask; + u16 isr_reg[R8168_MAX_MSIX_VEC]; + u16 imr_reg[R8168_MAX_MSIX_VEC]; + int phy_auto_nego_reg; + int phy_1000_ctrl_reg; + u8 org_mac_addr[NODE_ADDRESS_SIZE]; + struct rtl8168_counters *tally_vaddr; + dma_addr_t tally_paddr; + +#ifdef CONFIG_R8168_VLAN + struct vlan_group *vlgrp; +#endif + u8 wol_enabled; + u32 wol_opts; + u8 efuse_ver; + u8 eeprom_type; + u8 autoneg; + u8 duplex; + u32 speed; + u32 advertising; + enum rtl8168_fc_mode fcpause; + u16 eeprom_len; + u16 cur_page; + u32 bios_setting; + + int (*set_speed)(struct net_device *, u8 autoneg, u32 speed, u8 duplex, u32 adv); +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + void (*get_settings)(struct net_device *, struct ethtool_cmd *); +#else + void (*get_settings)(struct net_device *, struct ethtool_link_ksettings *); +#endif + void (*phy_reset_enable)(struct net_device *); + unsigned int (*phy_reset_pending)(struct net_device *); + unsigned int (*link_ok)(struct net_device *); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + struct work_struct reset_task; + struct work_struct esd_task; + struct work_struct linkchg_task; +#else + struct delayed_work reset_task; + struct delayed_work esd_task; + struct delayed_work linkchg_task; +#endif + DECLARE_BITMAP(task_flags, R8168_FLAG_MAX); + unsigned features; + + u8 org_pci_offset_99; + u8 org_pci_offset_180; + u8 issue_offset_99_event; + + u8 org_pci_offset_80; + u8 org_pci_offset_81; + u8 use_timer_interrrupt; + + u32 keep_intr_cnt; + + u8 HwIcVerUnknown; + u8 NotWrRamCodeToMicroP; + u8 NotWrMcuPatchCode; + u8 HwHasWrRamCodeToMicroP; + + u16 sw_ram_code_ver; + u16 hw_ram_code_ver; + + u8 rtk_enable_diag; + + u8 ShortPacketSwChecksum; + + u8 UseSwPaddingShortPkt; + + u8 RequireAdcBiasPatch; + u16 AdcBiasPatchIoffset; + + u8 RequireAdjustUpsTxLinkPulseTiming; + u16 SwrCnt1msIni; + + u8 HwSuppNowIsOobVer; + + u8 RequiredSecLanDonglePatch; + + u32 HwFiberModeVer; + u32 HwFiberStat; + u8 HwFiberLedMode; + u8 HwSwitchMdiToFiber; + + u8 HwSuppSerDesPhyVer; + + u8 HwSuppPhyOcpVer; + + u8 HwSuppAspmClkIntrLock; + + u16 NicCustLedValue; + + u8 HwSuppUpsVer; + + u8 HwSuppMagicPktVer; + + u8 HwSuppCheckPhyDisableModeVer; + + u8 random_mac; + + u16 phy_reg_aner; + u16 phy_reg_anlpar; + u16 phy_reg_gbsr; + + u32 HwPcieSNOffset; + + u8 HwSuppEsdVer; + u8 TestPhyOcpReg; + u16 BackupPhyFuseDout_15_0; + u16 BackupPhyFuseDout_31_16; + u16 BackupPhyFuseDout_47_32; + u16 BackupPhyFuseDout_63_48; + + u8 ring_lib_enabled; + + const char *fw_name; + struct rtl8168_fw *rtl_fw; + u32 ocp_base; + + //Dash+++++++++++++++++ + u8 HwSuppDashVer; + u8 DASH; + u8 dash_printer_enabled; + u8 HwPkgDet; + void __iomem *cmac_ioaddr; /* cmac memory map physical address */ + +#ifdef ENABLE_DASH_SUPPORT + u16 AfterRecvFromFwBufLen; + u8 AfterRecvFromFwBuf[RECV_FROM_FW_BUF_SIZE]; + u16 AfterSendToFwBufLen; + u8 AfterSendToFwBuf[SEND_TO_FW_BUF_SIZE]; + u16 SendToFwBufferLen; + u32 SizeOfSendToFwBuffer ; + u32 SizeOfSendToFwBufferMemAlloc ; + u32 NumOfSendToFwBuffer ; + + u8 OobReq; + u8 OobAck; + u32 OobReqComplete; + u32 OobAckComplete; + + u8 RcvFwReqSysOkEvt; + u8 RcvFwDashOkEvt; + u8 SendFwHostOkEvt; + + u8 DashFwDisableRx; + + void *SendToFwBuffer ; + dma_addr_t SendToFwBufferPhy ; + u8 SendingToFw; + PTX_DASH_SEND_FW_DESC TxDashSendFwDesc; + dma_addr_t TxDashSendFwDescPhy; + u32 SizeOfTxDashSendFwDescMemAlloc; + u32 SizeOfTxDashSendFwDesc ; + u32 NumTxDashSendFwDesc ; + u32 CurrNumTxDashSendFwDesc ; + u32 LastSendNumTxDashSendFwDesc ; + + u32 NumRecvFromFwBuffer ; + u32 SizeOfRecvFromFwBuffer ; + u32 SizeOfRecvFromFwBufferMemAlloc ; + void *RecvFromFwBuffer ; + dma_addr_t RecvFromFwBufferPhy ; + + PRX_DASH_FROM_FW_DESC RxDashRecvFwDesc; + dma_addr_t RxDashRecvFwDescPhy; + u32 SizeOfRxDashRecvFwDescMemAlloc; + u32 SizeOfRxDashRecvFwDesc ; + u32 NumRxDashRecvFwDesc ; + u32 CurrNumRxDashRecvFwDesc ; + u8 DashReqRegValue; + u16 HostReqValue; + + u32 CmacResetIsrCounter; + u8 CmacResetIntr ; + u8 CmacResetting ; + u8 CmacOobIssueCmacReset ; + u32 CmacResetbyFwCnt; + +#if defined(ENABLE_DASH_PRINTER_SUPPORT) + struct completion fw_ack; + struct completion fw_req; + struct completion fw_host_ok; +#endif + //Dash----------------- +#endif //ENABLE_DASH_SUPPORT + + //Realwow++++++++++++++ + u8 HwSuppKCPOffloadVer; + + u8 EnableDhcpTimeoutWake; + u8 EnableTeredoOffload; + u8 EnableKCPOffload; +#ifdef ENABLE_REALWOW_SUPPORT + u32 DhcpTimeout; + MP_KCP_INFO MpKCPInfo; + //Realwow-------------- +#endif //ENABLE_REALWOW_SUPPORT + + struct ethtool_eee eee; + + u32 dynamic_aspm_packet_count; + +#ifdef ENABLE_R8168_PROCFS + //Procfs support + struct proc_dir_entry *proc_dir; +#endif + u8 HwSuppRxDescType; + u8 InitRxDescType; + u16 RxDescLength; //V1 16 Byte V2 32 Bytes + + u8 HwSuppRssVer; + u8 EnableRss; + u16 HwSuppIndirTblEntries; +#ifdef ENABLE_RSS_SUPPORT + u32 rss_flags; + /* Receive Side Scaling settings */ +#define RTL8168_RSS_KEY_SIZE 40 /* size of RSS Hash Key in bytes */ + u8 rss_key[RTL8168_RSS_KEY_SIZE]; +#define RTL8168_MAX_INDIRECTION_TABLE_ENTRIES 128 + u8 rss_indir_tbl[RTL8168_MAX_INDIRECTION_TABLE_ENTRIES]; + u32 rss_options; +#endif + u32 rx_fifo_of; /* Rx fifo overflow count */ +}; + +#ifdef ENABLE_LIB_SUPPORT +static inline unsigned int +rtl8168_num_lib_tx_rings(struct rtl8168_private *tp) +{ + int count, i; + + for (count = 0, i = tp->num_tx_rings; i < tp->HwSuppNumTxQueues; i++) + if(tp->lib_tx_ring[i].enabled) + count++; + + return count; +} + +static inline unsigned int +rtl8168_num_lib_rx_rings(struct rtl8168_private *tp) +{ + int count, i; + + for (count = 0, i = tp->num_rx_rings; i < tp->HwSuppNumRxQueues; i++) + if(tp->lib_rx_ring[i].enabled) + count++; + + return count; +} + +static inline bool +rtl8168_lib_tx_ring_released(struct rtl8168_private *tp) +{ + int i; + bool released = 0; + + for (i = tp->num_tx_rings; i < tp->HwSuppNumTxQueues; i++) { + struct rtl8168_ring *ring = &tp->lib_tx_ring[i]; + if (ring->allocated) + goto exit; + } + + released = 1; + +exit: + return released; +} + +static inline bool +rtl8168_lib_rx_ring_released(struct rtl8168_private *tp) +{ + int i; + bool released = 0; + + for (i = tp->num_rx_rings; i < tp->HwSuppNumRxQueues; i++) { + struct rtl8168_ring *ring = &tp->lib_rx_ring[i]; + if (ring->allocated) + goto exit; + } + + released = 1; + +exit: + return released; +} + +#else + +static inline unsigned int +rtl8168_num_lib_tx_rings(struct rtl8168_private *tp) +{ + return 0; +} + +static inline unsigned int +rtl8168_num_lib_rx_rings(struct rtl8168_private *tp) +{ + return 0; +} + +static inline bool +rtl8168_lib_tx_ring_released(struct rtl8168_private *tp) +{ + return 1; +} + +static inline bool +rtl8168_lib_rx_ring_released(struct rtl8168_private *tp) +{ + return 1; +} +#endif + +static inline unsigned int +rtl8168_tot_tx_rings(struct rtl8168_private *tp) +{ + return tp->num_tx_rings + rtl8168_num_lib_tx_rings(tp); +} + +static inline unsigned int +rtl8168_tot_rx_rings(struct rtl8168_private *tp) +{ + return tp->num_rx_rings + rtl8168_num_lib_rx_rings(tp); +} + +static inline bool +rtl8168_lib_all_ring_released(struct rtl8168_private *tp) +{ + return (rtl8168_lib_tx_ring_released(tp) && + rtl8168_lib_rx_ring_released(tp)); +} + +enum eetype { + EEPROM_TYPE_NONE=0, + EEPROM_TYPE_93C46, + EEPROM_TYPE_93C56, + EEPROM_TWSI +}; + +enum mcfg { + CFG_METHOD_1=0, + CFG_METHOD_2, + CFG_METHOD_3, + CFG_METHOD_4, + CFG_METHOD_5, + CFG_METHOD_6, + CFG_METHOD_7, + CFG_METHOD_8, + CFG_METHOD_9 , + CFG_METHOD_10, + CFG_METHOD_11, + CFG_METHOD_12, + CFG_METHOD_13, + CFG_METHOD_14, + CFG_METHOD_15, + CFG_METHOD_16, + CFG_METHOD_17, + CFG_METHOD_18, + CFG_METHOD_19, + CFG_METHOD_20, + CFG_METHOD_21, + CFG_METHOD_22, + CFG_METHOD_23, + CFG_METHOD_24, + CFG_METHOD_25, + CFG_METHOD_26, + CFG_METHOD_27, + CFG_METHOD_28, + CFG_METHOD_29, + CFG_METHOD_30, + CFG_METHOD_31, + CFG_METHOD_32, + CFG_METHOD_33, + CFG_METHOD_34, + CFG_METHOD_35, + CFG_METHOD_36, + CFG_METHOD_37, + CFG_METHOD_MAX, + CFG_METHOD_DEFAULT = 0xFF +}; + +#define LSO_32K 32000 +#define LSO_64K 64000 + +#define NIC_MIN_PHYS_BUF_COUNT (2) +#define NIC_MAX_PHYS_BUF_COUNT_LSO_64K (24) +#define NIC_MAX_PHYS_BUF_COUNT_LSO2 (16*4) + +#define GTTCPHO_SHIFT 18 +#define GTTCPHO_MAX 0x70U +#define GTPKTSIZE_MAX 0x3ffffU +#define TCPHO_SHIFT 18 +#define TCPHO_MAX 0x3ffU +#define LSOPKTSIZE_MAX 0xffffU +#define MSS_MAX 0x07ffu /* MSS value */ + +#define OOB_CMD_RESET 0x00 +#define OOB_CMD_DRIVER_START 0x05 +#define OOB_CMD_DRIVER_STOP 0x06 +#define OOB_CMD_SET_IPMAC 0x41 + +#define WAKEUP_MAGIC_PACKET_NOT_SUPPORT (0) +#define WAKEUP_MAGIC_PACKET_V1 (1) +#define WAKEUP_MAGIC_PACKET_V2 (2) + +//Ram Code Version +#define NIC_RAMCODE_VERSION_CFG_METHOD_14 (0x0057) +#define NIC_RAMCODE_VERSION_CFG_METHOD_16 (0x0055) +#define NIC_RAMCODE_VERSION_CFG_METHOD_18 (0x0052) +#define NIC_RAMCODE_VERSION_CFG_METHOD_20 (0x0044) +#define NIC_RAMCODE_VERSION_CFG_METHOD_21 (0x0042) +#define NIC_RAMCODE_VERSION_CFG_METHOD_24 (0x0001) +#define NIC_RAMCODE_VERSION_CFG_METHOD_23 (0x0015) +#define NIC_RAMCODE_VERSION_CFG_METHOD_26 (0x0012) +#define NIC_RAMCODE_VERSION_CFG_METHOD_28 (0x0019) +#define NIC_RAMCODE_VERSION_CFG_METHOD_29 (0x0083) +#define NIC_RAMCODE_VERSION_CFG_METHOD_31 (0x0003) +#define NIC_RAMCODE_VERSION_CFG_METHOD_35 (0x0027) +#define NIC_RAMCODE_VERSION_CFG_METHOD_36 (0x0000) + +//hwoptimize +#define HW_PATCH_SOC_LAN (BIT_0) +#define HW_PATCH_SAMSUNG_LAN_DONGLE (BIT_2) + +static const u8 other_q_intr_mask = (RxOK1 | RxDU1); + +#define HW_PHY_STATUS_INI 1 +#define HW_PHY_STATUS_EXT_INI 2 +#define HW_PHY_STATUS_LAN_ON 3 + +void rtl8168_mdio_write(struct rtl8168_private *tp, u16 RegAddr, u16 value); +void rtl8168_mdio_prot_write(struct rtl8168_private *tp, u32 RegAddr, u32 value); +void rtl8168_mdio_prot_direct_write_phy_ocp(struct rtl8168_private *tp, u32 RegAddr, u32 value); +u32 rtl8168_mdio_read(struct rtl8168_private *tp, u16 RegAddr); +u32 rtl8168_mdio_prot_read(struct rtl8168_private *tp, u32 RegAddr); +u32 rtl8168_mdio_prot_direct_read_phy_ocp(struct rtl8168_private *tp, u32 RegAddr); +void rtl8168_ephy_write(struct rtl8168_private *tp, int RegAddr, int value); +void rtl8168_mac_ocp_write(struct rtl8168_private *tp, u16 reg_addr, u16 value); +u16 rtl8168_mac_ocp_read(struct rtl8168_private *tp, u16 reg_addr); +void rtl8168_clear_eth_phy_bit(struct rtl8168_private *tp, u8 addr, u16 mask); +void rtl8168_set_eth_phy_bit(struct rtl8168_private *tp, u8 addr, u16 mask); +void rtl8168_ocp_write(struct rtl8168_private *tp, u16 addr, u8 len, u32 data); +void rtl8168_oob_notify(struct rtl8168_private *tp, u8 cmd); +void rtl8168_init_ring_indexes(struct rtl8168_private *tp); +int rtl8168_eri_write(struct rtl8168_private *tp, int addr, int len, u32 value, int type); +void rtl8168_oob_mutex_lock(struct rtl8168_private *tp); +u32 rtl8168_ocp_read(struct rtl8168_private *tp, u16 addr, u8 len); +u32 rtl8168_ocp_read_with_oob_base_address(struct rtl8168_private *tp, u16 addr, u8 len, u32 base_address); +u32 rtl8168_ocp_write_with_oob_base_address(struct rtl8168_private *tp, u16 addr, u8 len, u32 value, u32 base_address); +u32 rtl8168_eri_read(struct rtl8168_private *tp, int addr, int len, int type); +u32 rtl8168_eri_read_with_oob_base_address(struct rtl8168_private *tp, int addr, int len, int type, u32 base_address); +int rtl8168_eri_write_with_oob_base_address(struct rtl8168_private *tp, int addr, int len, u32 value, int type, u32 base_address); +u16 rtl8168_ephy_read(struct rtl8168_private *tp, int RegAddr); +void rtl8168_wait_txrx_fifo_empty(struct net_device *dev); +void rtl8168_wait_ll_share_fifo_ready(struct net_device *dev); +void rtl8168_enable_now_is_oob(struct rtl8168_private *tp); +void rtl8168_disable_now_is_oob(struct rtl8168_private *tp); +void rtl8168_oob_mutex_unlock(struct rtl8168_private *tp); +void rtl8168_dash2_disable_tx(struct rtl8168_private *tp); +void rtl8168_dash2_enable_tx(struct rtl8168_private *tp); +void rtl8168_dash2_disable_rx(struct rtl8168_private *tp); +void rtl8168_dash2_enable_rx(struct rtl8168_private *tp); +void rtl8168_hw_disable_mac_mcu_bps(struct net_device *dev); +void rtl8168_mark_to_asic(struct RxDesc *desc, u32 rx_buf_sz); + +static inline struct RxDesc* +rtl8168_get_rxdesc(struct rtl8168_private *tp, struct RxDesc *RxDescBase, u32 const cur_rx, u32 const q_num) +{ + u8 *desc = (u8*)RxDescBase; + u32 offset; + + WARN_ON_ONCE(q_num >= tp->num_hw_tot_en_rx_rings); + + if (tp->InitRxDescType == RX_DESC_RING_TYPE_2) + offset = (cur_rx * tp->num_hw_tot_en_rx_rings) + q_num; + else + offset = cur_rx; + + offset *= tp->RxDescLength; + desc += offset; + + return (struct RxDesc*)desc; +} + +static inline void +rtl8168_disable_interrupt_by_vector(struct rtl8168_private *tp, + u32 message_id) +{ + if (message_id >= R8168_MAX_MSIX_VEC) + return; + + if (message_id == 0) { + RTL_W16(tp, tp->imr_reg[0], 0x0000); +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) + rtl8168_disable_dash2_interrupt(tp); +#endif + } else + RTL_W8(tp, tp->imr_reg[message_id], 0x00); +} + +static inline void +rtl8168_enable_interrupt_by_vector(struct rtl8168_private *tp, + u32 message_id) +{ + if (message_id >= R8168_MAX_MSIX_VEC) + return; + + if (message_id == 0) { + RTL_W16(tp, tp->imr_reg[0], tp->intr_mask); +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) + rtl8168_enable_dash2_interrupt(tp); +#endif + } else { + RTL_W8(tp, tp->imr_reg[message_id], other_q_intr_mask); + } +} + +int rtl8168_open(struct net_device *dev); +int rtl8168_close(struct net_device *dev); +void rtl8168_hw_config(struct net_device *dev); +void rtl8168_hw_start(struct net_device *dev); +void rtl8168_hw_reset(struct net_device *dev); +void rtl8168_tx_clear(struct rtl8168_private *tp); +void rtl8168_rx_clear(struct rtl8168_private *tp); +int rtl8168_init_ring(struct net_device *dev); +int rtl8168_dump_tally_counter(struct rtl8168_private *tp, dma_addr_t paddr); +void rtl8168_enable_napi(struct rtl8168_private *tp); +void _rtl8168_wait_for_quiescence(struct net_device *dev); + +#ifndef ENABLE_LIB_SUPPORT +static inline void rtl8168_lib_reset_prepare(struct rtl8168_private *tp) { } +static inline void rtl8168_lib_reset_complete(struct rtl8168_private *tp) { } +#endif + +#define HW_SUPPORT_CHECK_PHY_DISABLE_MODE(_M) ((_M)->HwSuppCheckPhyDisableModeVer > 0 ) +#define HW_SUPP_SERDES_PHY(_M) ((_M)->HwSuppSerDesPhyVer > 0) +#define HW_HAS_WRITE_PHY_MCU_RAM_CODE(_M) (((_M)->HwHasWrRamCodeToMicroP == TRUE) ? 1 : 0) +#define HW_SUPPORT_UPS_MODE(_M) ((_M)->HwSuppUpsVer > 0) +#define HW_RSS_SUPPORT_RSS(_M) ((_M)->HwSuppRssVer > 0) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) +#define netdev_mc_count(dev) ((dev)->mc_count) +#define netdev_mc_empty(dev) (netdev_mc_count(dev) == 0) +#define netdev_for_each_mc_addr(mclist, dev) \ + for (mclist = dev->mc_list; mclist; mclist = mclist->next) +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.c new file mode 100644 index 000000000000..c11d32bbb9df --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.c @@ -0,0 +1,416 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "r8168.h" +#include "r8168_asf.h" +#include "rtl_eeprom.h" + +int rtl8168_asf_ioctl(struct net_device *dev, + struct ifreq *ifr) +{ + struct rtl8168_private *tp = netdev_priv(dev); + void *user_data = ifr->ifr_data; + struct asf_ioctl_struct asf_usrdata; + + if (tp->mcfg != CFG_METHOD_7 && tp->mcfg != CFG_METHOD_8) + return -EOPNOTSUPP; + + if (copy_from_user(&asf_usrdata, user_data, sizeof(struct asf_ioctl_struct))) + return -EFAULT; + + switch (asf_usrdata.offset) { + case HBPeriod: + rtl8168_asf_hbperiod(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case WD8Timer: + break; + case WD16Rst: + rtl8168_asf_wd16rst(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case WD8Rst: + rtl8168_asf_time_period(tp, asf_usrdata.arg, WD8Rst, asf_usrdata.u.data); + break; + case LSnsrPollCycle: + rtl8168_asf_time_period(tp, asf_usrdata.arg, LSnsrPollCycle, asf_usrdata.u.data); + break; + case ASFSnsrPollPrd: + rtl8168_asf_time_period(tp, asf_usrdata.arg, ASFSnsrPollPrd, asf_usrdata.u.data); + break; + case AlertReSendItvl: + rtl8168_asf_time_period(tp, asf_usrdata.arg, AlertReSendItvl, asf_usrdata.u.data); + break; + case SMBAddr: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, SMBAddr, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case ASFConfigR0: + rtl8168_asf_config_regs(tp, asf_usrdata.arg, ASFConfigR0, asf_usrdata.u.data); + break; + case ASFConfigR1: + rtl8168_asf_config_regs(tp, asf_usrdata.arg, ASFConfigR1, asf_usrdata.u.data); + break; + case ConsoleMA: + rtl8168_asf_console_mac(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case ConsoleIP: + rtl8168_asf_ip_address(tp, asf_usrdata.arg, ConsoleIP, asf_usrdata.u.data); + break; + case IPAddr: + rtl8168_asf_ip_address(tp, asf_usrdata.arg, IPAddr, asf_usrdata.u.data); + break; + case UUID: + rtl8168_asf_rw_uuid(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case IANA: + rtl8168_asf_rw_iana(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case SysID: + rtl8168_asf_rw_systemid(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case Community: + rtl8168_asf_community_string(tp, asf_usrdata.arg, asf_usrdata.u.string); + break; + case StringLength: + rtl8168_asf_community_string_len(tp, asf_usrdata.arg, asf_usrdata.u.data); + break; + case FmCapMsk: + rtl8168_asf_capability_masks(tp, asf_usrdata.arg, FmCapMsk, asf_usrdata.u.data); + break; + case SpCMDMsk: + rtl8168_asf_capability_masks(tp, asf_usrdata.arg, SpCMDMsk, asf_usrdata.u.data); + break; + case SysCapMsk: + rtl8168_asf_capability_masks(tp, asf_usrdata.arg, SysCapMsk, asf_usrdata.u.data); + break; + case RmtRstAddr: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtRstAddr, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtRstCmd: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtRstCmd, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtRstData: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtRstData, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPwrOffAddr: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPwrOffAddr, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPwrOffCmd: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPwrOffCmd, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPwrOffData: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPwrOffData, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPwrOnAddr: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPwrOnAddr, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPwrOnCmd: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPwrOnCmd, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPwrOnData: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPwrOnData, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPCRAddr: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPCRAddr, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPCRCmd: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPCRCmd, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case RmtPCRData: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, RmtPCRData, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case ASFSnsr0Addr: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, ASFSnsr0Addr, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case LSnsrAddr0: + rtl8168_asf_rw_hexadecimal(tp, asf_usrdata.arg, LSnsrAddr0, RW_ONE_BYTE, asf_usrdata.u.data); + break; + case KO: + /* Get/Set Key Operation */ + rtl8168_asf_key_access(tp, asf_usrdata.arg, KO, asf_usrdata.u.data); + break; + case KA: + /* Get/Set Key Administrator */ + rtl8168_asf_key_access(tp, asf_usrdata.arg, KA, asf_usrdata.u.data); + break; + case KG: + /* Get/Set Key Generation */ + rtl8168_asf_key_access(tp, asf_usrdata.arg, KG, asf_usrdata.u.data); + break; + case KR: + /* Get/Set Key Random */ + rtl8168_asf_key_access(tp, asf_usrdata.arg, KR, asf_usrdata.u.data); + break; + default: + return -EOPNOTSUPP; + } + + if (copy_to_user(user_data, &asf_usrdata, sizeof(struct asf_ioctl_struct))) + return -EFAULT; + + return 0; +} + +void rtl8168_asf_hbperiod(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + if (arg == ASF_GET) + data[ASFHBPERIOD] = rtl8168_eri_read(tp, HBPeriod, RW_TWO_BYTES, ERIAR_ASF); + else if (arg == ASF_SET) { + rtl8168_eri_write(tp, HBPeriod, RW_TWO_BYTES, data[ASFHBPERIOD], ERIAR_ASF); + rtl8168_eri_write(tp, 0x1EC, RW_ONE_BYTE, 0x07, ERIAR_ASF); + } +} + +void rtl8168_asf_wd16rst(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + data[ASFWD16RST] = rtl8168_eri_read(tp, WD16Rst, RW_TWO_BYTES, ERIAR_ASF); +} + +void rtl8168_asf_console_mac(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + int i; + + if (arg == ASF_GET) { + for (i = 0; i < 6; i++) + data[i] = rtl8168_eri_read(tp, ConsoleMA + i, RW_ONE_BYTE, ERIAR_ASF); + } else if (arg == ASF_SET) { + for (i = 0; i < 6; i++) + rtl8168_eri_write(tp, ConsoleMA + i, RW_ONE_BYTE, data[i], ERIAR_ASF); + + /* write the new console MAC address to EEPROM */ + rtl8168_eeprom_write_sc(tp, 70, (data[1] << 8) | data[0]); + rtl8168_eeprom_write_sc(tp, 71, (data[3] << 8) | data[2]); + rtl8168_eeprom_write_sc(tp, 72, (data[5] << 8) | data[4]); + } +} + +void rtl8168_asf_ip_address(struct rtl8168_private *tp, int arg, int offset, unsigned int *data) +{ + int i; + int eeprom_off = 0; + + if (arg == ASF_GET) { + for (i = 0; i < 4; i++) + data[i] = rtl8168_eri_read(tp, offset + i, RW_ONE_BYTE, ERIAR_ASF); + } else if (arg == ASF_SET) { + for (i = 0; i < 4; i++) + rtl8168_eri_write(tp, offset + i, RW_ONE_BYTE, data[i], ERIAR_ASF); + + if (offset == ConsoleIP) + eeprom_off = 73; + else if (offset == IPAddr) + eeprom_off = 75; + + /* write the new IP address to EEPROM */ + rtl8168_eeprom_write_sc(tp, eeprom_off, (data[1] << 8) | data[0]); + rtl8168_eeprom_write_sc(tp, eeprom_off + 1, (data[3] << 8) | data[2]); + + } +} + +void rtl8168_asf_config_regs(struct rtl8168_private *tp, int arg, int offset, unsigned int *data) +{ + unsigned int value; + + if (arg == ASF_GET) { + data[ASFCAPABILITY] = (rtl8168_eri_read(tp, offset, RW_ONE_BYTE, ERIAR_ASF) & data[ASFCONFIG]) ? FUNCTION_ENABLE : FUNCTION_DISABLE; + } else if (arg == ASF_SET) { + value = rtl8168_eri_read(tp, offset, RW_ONE_BYTE, ERIAR_ASF); + + if (data[ASFCAPABILITY] == FUNCTION_ENABLE) + value |= data[ASFCONFIG]; + else if (data[ASFCAPABILITY] == FUNCTION_DISABLE) + value &= ~data[ASFCONFIG]; + + rtl8168_eri_write(tp, offset, RW_ONE_BYTE, value, ERIAR_ASF); + } +} + +void rtl8168_asf_capability_masks(struct rtl8168_private *tp, int arg, int offset, unsigned int *data) +{ + unsigned int len, bit_mask; + + bit_mask = DISABLE_MASK; + + if (offset == FmCapMsk) { + /* System firmware capabilities */ + len = RW_FOUR_BYTES; + if (data[ASFCAPMASK] == FUNCTION_ENABLE) + bit_mask = FMW_CAP_MASK; + } else if (offset == SpCMDMsk) { + /* Special commands */ + len = RW_TWO_BYTES; + if (data[ASFCAPMASK] == FUNCTION_ENABLE) + bit_mask = SPC_CMD_MASK; + } else { + /* System capability (offset == SysCapMsk)*/ + len = RW_ONE_BYTE; + if (data[ASFCAPMASK] == FUNCTION_ENABLE) + bit_mask = SYS_CAP_MASK; + } + + if (arg == ASF_GET) + data[ASFCAPMASK] = rtl8168_eri_read(tp, offset, len, ERIAR_ASF) ? FUNCTION_ENABLE : FUNCTION_DISABLE; + else /* arg == ASF_SET */ + rtl8168_eri_write(tp, offset, len, bit_mask, ERIAR_ASF); +} + +void rtl8168_asf_community_string(struct rtl8168_private *tp, int arg, char *string) +{ + int i; + + if (arg == ASF_GET) { + for (i = 0; i < COMMU_STR_MAX_LEN; i++) + string[i] = rtl8168_eri_read(tp, Community + i, RW_ONE_BYTE, ERIAR_ASF); + } else { /* arg == ASF_SET */ + for (i = 0; i < COMMU_STR_MAX_LEN; i++) + rtl8168_eri_write(tp, Community + i, RW_ONE_BYTE, string[i], ERIAR_ASF); + } +} + +void rtl8168_asf_community_string_len(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + if (arg == ASF_GET) + data[ASFCOMMULEN] = rtl8168_eri_read(tp, StringLength, RW_ONE_BYTE, ERIAR_ASF); + else /* arg == ASF_SET */ + rtl8168_eri_write(tp, StringLength, RW_ONE_BYTE, data[ASFCOMMULEN], ERIAR_ASF); +} + +void rtl8168_asf_time_period(struct rtl8168_private *tp, int arg, int offset, unsigned int *data) +{ + int pos = 0; + + if (offset == WD8Rst) + pos = ASFWD8RESET; + else if (offset == LSnsrPollCycle) + pos = ASFLSNRPOLLCYC; + else if (offset == ASFSnsrPollPrd) + pos = ASFSNRPOLLCYC; + else if (offset == AlertReSendItvl) + pos = ASFALERTRESND; + + if (arg == ASF_GET) + data[pos] = rtl8168_eri_read(tp, offset, RW_ONE_BYTE, ERIAR_ASF); + else /* arg == ASF_SET */ + rtl8168_eri_write(tp, offset, RW_ONE_BYTE, data[pos], ERIAR_ASF); + +} + +void rtl8168_asf_key_access(struct rtl8168_private *tp, int arg, int offset, unsigned int *data) +{ + int i, j; + int key_off = 0; + + if (arg == ASF_GET) { + for (i = 0; i < KEY_LEN; i++) + data[i] = rtl8168_eri_read(tp, offset + KEY_LEN - (i + 1), RW_ONE_BYTE, ERIAR_ASF); + } else { + if (offset == KO) + key_off = 162; + else if (offset == KA) + key_off = 172; + else if (offset == KG) + key_off = 182; + else if (offset == KR) + key_off = 192; + + /* arg == ASF_SET */ + for (i = 0; i < KEY_LEN; i++) + rtl8168_eri_write(tp, offset + KEY_LEN - (i + 1), RW_ONE_BYTE, data[i], ERIAR_ASF); + + /* write the new key to EEPROM */ + for (i = 0, j = 19; i < 10; i++, j = j - 2) + rtl8168_eeprom_write_sc(tp, key_off + i, (data[j - 1] << 8) | data[j]); + } +} + +void rtl8168_asf_rw_hexadecimal(struct rtl8168_private *tp, int arg, int offset, int len, unsigned int *data) +{ + if (arg == ASF_GET) + data[ASFRWHEXNUM] = rtl8168_eri_read(tp, offset, len, ERIAR_ASF); + else /* arg == ASF_SET */ + rtl8168_eri_write(tp, offset, len, data[ASFRWHEXNUM], ERIAR_ASF); +} + +void rtl8168_asf_rw_systemid(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + int i; + + if (arg == ASF_GET) + for (i = 0; i < SYSID_LEN ; i++) + data[i] = rtl8168_eri_read(tp, SysID + i, RW_ONE_BYTE, ERIAR_ASF); + else /* arg == ASF_SET */ + for (i = 0; i < SYSID_LEN ; i++) + rtl8168_eri_write(tp, SysID + i, RW_ONE_BYTE, data[i], ERIAR_ASF); +} + +void rtl8168_asf_rw_iana(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + int i; + + if (arg == ASF_GET) + for (i = 0; i < RW_FOUR_BYTES; i++) + data[i] = rtl8168_eri_read(tp, IANA + i, RW_ONE_BYTE, ERIAR_ASF); + else /* arg == ASF_SET */ + for (i = 0; i < RW_FOUR_BYTES; i++) + rtl8168_eri_write(tp, IANA + i, RW_ONE_BYTE, data[i], ERIAR_ASF); +} + +void rtl8168_asf_rw_uuid(struct rtl8168_private *tp, int arg, unsigned int *data) +{ + int i, j; + + if (arg == ASF_GET) + for (i = UUID_LEN - 1, j = 0; i >= 0 ; i--, j++) + data[j] = rtl8168_eri_read(tp, UUID + i, RW_ONE_BYTE, ERIAR_ASF); + else /* arg == ASF_SET */ + for (i = UUID_LEN - 1, j = 0; i >= 0 ; i--, j++) + rtl8168_eri_write(tp, UUID + i, RW_ONE_BYTE, data[j], ERIAR_ASF); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.h new file mode 100644 index 000000000000..bb4b4596bfc2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_asf.h @@ -0,0 +1,295 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#define SIOCDEVPRIVATE_RTLASF SIOCDEVPRIVATE + +#define FUNCTION_ENABLE 1 +#define FUNCTION_DISABLE 0 + +#define ASFCONFIG 0 +#define ASFCAPABILITY 1 +#define ASFCOMMULEN 0 +#define ASFHBPERIOD 0 +#define ASFWD16RST 0 +#define ASFCAPMASK 0 +#define ASFALERTRESND 0 +#define ASFLSNRPOLLCYC 0 +#define ASFSNRPOLLCYC 0 +#define ASFWD8RESET 0 +#define ASFRWHEXNUM 0 + +#define FMW_CAP_MASK 0x0000F867 +#define SPC_CMD_MASK 0x1F00 +#define SYS_CAP_MASK 0xFF +#define DISABLE_MASK 0x00 + +#define MAX_DATA_LEN 200 +#define MAX_STR_LEN 200 + +#define COMMU_STR_MAX_LEN 23 + +#define KEY_LEN 20 +#define UUID_LEN 16 +#define SYSID_LEN 2 + +#define RW_ONE_BYTE 1 +#define RW_TWO_BYTES 2 +#define RW_FOUR_BYTES 4 + +enum asf_registers { + HBPeriod = 0x0000, + WD8Rst = 0x0002, + WD8Timer = 0x0003, + WD16Rst = 0x0004, + LSnsrPollCycle = 0x0006, + ASFSnsrPollPrd = 0x0007, + AlertReSendCnt = 0x0008, + AlertReSendItvl = 0x0009, + SMBAddr = 0x000A, + SMBCap = 0x000B, + ASFConfigR0 = 0x000C, + ASFConfigR1 = 0x000D, + WD16Timer = 0x000E, + ConsoleMA = 0x0010, + ConsoleIP = 0x0016, + IPAddr = 0x001A, + + UUID = 0x0020, + IANA = 0x0030, + SysID = 0x0034, + Community = 0x0036, + StringLength = 0x004D, + LC = 0x004E, + EntityInst = 0x004F, + FmCapMsk = 0x0050, + SpCMDMsk = 0x0054, + SysCapMsk = 0x0056, + WDSysSt = 0x0057, + RxMsgType = 0x0058, + RxSpCMD = 0x0059, + RxSpCMDPa = 0x005A, + RxBtOpMsk = 0x005C, + RmtRstAddr = 0x005E, + RmtRstCmd = 0x005F, + RmtRstData = 0x0060, + RmtPwrOffAddr = 0x0061, + RmtPwrOffCmd = 0x0062, + RmtPwrOffData = 0x0063, + RmtPwrOnAddr = 0x0064, + RmtPwrOnCmd = 0x0065, + RmtPwrOnData = 0x0066, + RmtPCRAddr = 0x0067, + RmtPCRCmd = 0x0068, + RmtPCRData = 0x0069, + RMCP_IANA = 0x006A, + RMCP_OEM = 0x006E, + ASFSnsr0Addr = 0x0070, + + ASFSnsrEvSt = 0x0073, + ASFSnsrEvAlert = 0x0081, + + LSnsrNo = 0x00AD, + AssrtEvntMsk = 0x00AE, + DeAssrtEvntMsk = 0x00AF, + + LSnsrAddr0 = 0x00B0, + LAlertCMD0 = 0x00B1, + LAlertDataMsk0 = 0x00B2, + LAlertCmp0 = 0x00B3, + LAlertESnsrT0 = 0x00B4, + LAlertET0 = 0x00B5, + LAlertEOffset0 = 0x00B6, + LAlertES0 = 0x00B7, + LAlertSN0 = 0x00B8, + LAlertEntity0 = 0x00B9, + LAlertEI0 = 0x00BA, + LSnsrState0 = 0x00BB, + + LSnsrAddr1 = 0x00BD, + LAlertCMD1 = 0x00BE, + LAlertDataMsk1 = 0x00BF, + LAlertCmp1 = 0x00C0, + LAlertESnsrT1 = 0x00C1, + LAlertET1 = 0x00C2, + LAlertEOffset1 = 0x00C3, + LAlertES1 = 0x00C4, + LAlertSN1 = 0x00C5, + LAlertEntity1 = 0x00C6, + LAlertEI1 = 0x00C7, + LSnsrState1 = 0x00C8, + + LSnsrAddr2 = 0x00CA, + LAlertCMD2 = 0x00CB, + LAlertDataMsk2 = 0x00CC, + LAlertCmp2 = 0x00CD, + LAlertESnsrT2 = 0x00CE, + LAlertET2 = 0x00CF, + LAlertEOffset2 = 0x00D0, + LAlertES2 = 0x00D1, + LAlertSN2 = 0x00D2, + LAlertEntity2 = 0x00D3, + LAlertEI2 = 0x00D4, + LSnsrState2 = 0x00D5, + + LSnsrAddr3 = 0x00D7, + LAlertCMD3 = 0x00D8, + LAlertDataMsk3 = 0x00D9, + LAlertCmp3 = 0x00DA, + LAlertESnsrT3 = 0x00DB, + LAlertET3 = 0x00DC, + LAlertEOffset3 = 0x00DD, + LAlertES3 = 0x00DE, + LAlertSN3 = 0x00DF, + LAlertEntity3 = 0x00E0, + LAlertEI3 = 0x00E1, + LSnsrState3 = 0x00E2, + + LSnsrAddr4 = 0x00E4, + LAlertCMD4 = 0x00E5, + LAlertDataMsk4 = 0x00E6, + LAlertCmp4 = 0x00E7, + LAlertESnsrT4 = 0x00E8, + LAlertET4 = 0x00E9, + LAlertEOffset4 = 0x00EA, + LAlertES4 = 0x00EB, + LAlertSN4 = 0x00EC, + LAlertEntity4 = 0x00ED, + LAlertEI4 = 0x00EE, + LSnsrState4 = 0x00EF, + + LSnsrAddr5 = 0x00F1, + LAlertCMD5 = 0x00F2, + LAlertDataMsk5 = 0x00F3, + LAlertCmp5 = 0x00F4, + LAlertESnsrT5 = 0x00F5, + LAlertET5 = 0x00F6, + LAlertEOffset5 = 0x00F7, + LAlertES5 = 0x00F8, + LAlertSN5 = 0x00F9, + LAlertEntity5 = 0x00FA, + LAlertEI5 = 0x00FB, + LSnsrState5 = 0x00FC, + + LSnsrAddr6 = 0x00FE, + LAlertCMD6 = 0x00FF, + LAlertDataMsk6 = 0x0100, + LAlertCmp6 = 0x0101, + LAlertESnsrT6 = 0x0102, + LAlertET6 = 0x0103, + LAlertEOffset6 = 0x0104, + LAlertES6 = 0x0105, + LAlertSN6 = 0x0106, + LAlertEntity6 = 0x0107, + LAlertEI6 = 0x0108, + LSnsrState6 = 0x0109, + + LSnsrAddr7 = 0x010B, + LAlertCMD7 = 0x010C, + LAlertDataMsk7 = 0x010D, + LAlertCmp7 = 0x010E, + LAlertESnsrT7 = 0x010F, + LAlertET7 = 0x0110, + LAlertEOffset7 = 0x0111, + LAlertES7 = 0x0112, + LAlertSN7 = 0x0113, + LAlertEntity7 = 0x0114, + LAlertEI7 = 0x0115, + LSnsrState7 = 0x0116, + LAssert = 0x0117, + LDAssert = 0x0118, + IPServiceType = 0x0119, + IPIdfr = 0x011A, + FlagFOffset = 0x011C, + TTL = 0x011E, + HbtEI = 0x011F, + MgtConSID1 = 0x0120, + MgtConSID2 = 0x0124, + MgdCltSID = 0x0128, + StCd = 0x012C, + MgtConUR = 0x012D, + MgtConUNL = 0x012E, + + AuthPd = 0x0130, + IntyPd = 0x0138, + MgtConRN = 0x0140, + MgdCtlRN = 0x0150, + MgtConUN = 0x0160, + Rakp2IntCk = 0x0170, + KO = 0x017C, + KA = 0x0190, + KG = 0x01A4, + KR = 0x01B8, + CP = 0x01CC, + CQ = 0x01D0, + KC = 0x01D4, + ConsoleSid = 0x01E8, + + SIK1 = 0x01FC, + SIK2 = 0x0210, + Udpsrc_port = 0x0224, + Udpdes_port = 0x0226, + Asf_debug_mux = 0x0228 +}; + +enum asf_cmdln_opt { + ASF_GET, + ASF_SET, + ASF_HELP +}; + +struct asf_ioctl_struct { + unsigned int arg; + unsigned int offset; + union { + unsigned int data[MAX_DATA_LEN]; + char string[MAX_STR_LEN]; + } u; +}; + +int rtl8168_asf_ioctl(struct net_device *dev, struct ifreq *ifr); +void rtl8168_asf_hbperiod(struct rtl8168_private *tp, int arg, unsigned int *data); +void rtl8168_asf_wd16rst(struct rtl8168_private *tp, int arg, unsigned int *data); +void rtl8168_asf_console_mac(struct rtl8168_private *, int arg, unsigned int *data); +void rtl8168_asf_ip_address(struct rtl8168_private *, int arg, int offset, unsigned int *data); +void rtl8168_asf_config_regs(struct rtl8168_private *tp, int arg, int offset, unsigned int *data); +void rtl8168_asf_capability_masks(struct rtl8168_private *tp, int arg, int offset, unsigned int *data); +void rtl8168_asf_community_string(struct rtl8168_private *tp, int arg, char *string); +void rtl8168_asf_community_string_len(struct rtl8168_private *tp, int arg, unsigned int *data); +void rtl8168_asf_alert_resend_interval(struct rtl8168_private *tp, int arg, unsigned int *data); +void rtl8168_asf_time_period(struct rtl8168_private *tp, int arg, int offset, unsigned int *data); +void rtl8168_asf_key_access(struct rtl8168_private *, int arg, int offset, unsigned int *data); +void rtl8168_asf_rw_hexadecimal(struct rtl8168_private *tp, int arg, int offset, int len, unsigned int *data); +void rtl8168_asf_rw_iana(struct rtl8168_private *tp, int arg, unsigned int *data); +void rtl8168_asf_rw_uuid(struct rtl8168_private *tp, int arg, unsigned int *data); +void rtl8168_asf_rw_systemid(struct rtl8168_private *tp, int arg, unsigned int *data); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_dash.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_dash.h new file mode 100644 index 000000000000..dcd3e70e2f88 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_dash.h @@ -0,0 +1,256 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#ifndef _LINUX_R8168_DASH_H +#define _LINUX_R8168_DASH_H + +#define SIOCDEVPRIVATE_RTLDASH SIOCDEVPRIVATE+2 + +enum rtl_dash_cmd { + RTL_DASH_ARP_NS_OFFLOAD = 0, + RTL_DASH_SET_OOB_IPMAC, + RTL_DASH_NOTIFY_OOB, + + RTL_DASH_SEND_BUFFER_DATA_TO_DASH_FW, + RTL_DASH_CHECK_SEND_BUFFER_TO_DASH_FW_COMPLETE, + RTL_DASH_GET_RCV_FROM_FW_BUFFER_DATA, + RTL_DASH_OOB_REQ, + RTL_DASH_OOB_ACK, + RTL_DASH_DETACH_OOB_REQ, + RTL_DASH_DETACH_OOB_ACK, + + RTL_FW_SET_IPV4 = 0x10, + RTL_FW_GET_IPV4, + RTL_FW_SET_IPV6, + RTL_FW_GET_IPV6, + RTL_FW_SET_EXT_SNMP, + RTL_FW_GET_EXT_SNMP, + RTL_FW_SET_WAKEUP_PATTERN, + RTL_FW_GET_WAKEUP_PATTERN, + RTL_FW_DEL_WAKEUP_PATTERN, + + RTLT_DASH_COMMAND_INVALID, +}; + +struct rtl_dash_ip_mac { + struct sockaddr ifru_addr; + struct sockaddr ifru_netmask; + struct sockaddr ifru_hwaddr; +}; + +struct rtl_dash_ioctl_struct { + __u32 cmd; + __u32 offset; + __u32 len; + union { + __u32 data; + void *data_buffer; + }; +}; + +struct settings_ipv4 { + __u32 IPv4addr; + __u32 IPv4mask; + __u32 IPv4Gateway; +}; + +struct settings_ipv6 { + __u32 reserved; + __u32 prefixLen; + __u16 IPv6addr[8]; + __u16 IPv6Gateway[8]; +}; + +struct settings_ext_snmp { + __u16 index; + __u16 oid_get_len; + __u8 oid_for_get[24]; + __u8 reserved0[26]; + __u16 value_len; + __u8 value[256]; + __u8 supported; + __u8 reserved1[27]; +}; + +struct wakeup_pattern { + __u8 index; + __u8 valid; + __u8 start; + __u8 length; + __u8 name[36]; + __u8 mask[16]; + __u8 pattern[128]; + __u32 reserved[2]; +}; + +typedef struct _RX_DASH_FROM_FW_DESC { + __le16 length; + __le16 status; + __le32 resv; + __le64 BufferAddress; +} +RX_DASH_FROM_FW_DESC, *PRX_DASH_FROM_FW_DESC; + +typedef struct _TX_DASH_SEND_FW_DESC { + __le16 length; + __le16 status; + __le32 resv; + __le64 BufferAddress; +} +TX_DASH_SEND_FW_DESC, *PTX_DASH_SEND_FW_DESC; + +typedef struct _OSOOBHdr { + __le32 len; + u8 type; + u8 flag; + u8 hostReqV; + u8 res; +} +OSOOBHdr, *POSOOBHdr; + +typedef struct _RX_DASH_BUFFER_TYPE_2 { + OSOOBHdr oobhdr; + u8 RxDataBuffer[0]; +} +RX_DASH_BUFFER_TYPE_2, *PRX_DASH_BUFFER_TYPE_2; + +#define ALIGN_8 (0x7) +#define ALIGN_16 (0xf) +#define ALIGN_32 (0x1f) +#define ALIGN_64 (0x3f) +#define ALIGN_256 (0xff) +#define ALIGN_4096 (0xfff) + +#define OCP_REG_CONFIG0 (0x10) +#define OCP_REG_CONFIG0_REV_F (0xB8) +#define OCP_REG_DASH_POLL (0x30) +#define OCP_REG_HOST_REQ (0x34) +#define OCP_REG_DASH_REQ (0x35) +#define OCP_REG_CR (0x36) +#define OCP_REG_DMEMSTA (0x38) +#define OCP_REG_GPHYAR (0x60) + + +#define OCP_REG_CONFIG0_DASHEN BIT_15 +#define OCP_REG_CONFIG0_OOBRESET BIT_14 +#define OCP_REG_CONFIG0_APRDY BIT_13 +#define OCP_REG_CONFIG0_FIRMWARERDY BIT_12 +#define OCP_REG_CONFIG0_DRIVERRDY BIT_11 +#define OCP_REG_CONFIG0_OOB_WDT BIT_9 +#define OCP_REG_CONFIG0_DRV_WAIT_OOB BIT_8 +#define OCP_REG_CONFIG0_TLSEN BIT_7 + +#define HW_DASH_SUPPORT_DASH(_M) ((_M)->HwSuppDashVer > 0) +#define HW_DASH_SUPPORT_TYPE_1(_M) ((_M)->HwSuppDashVer == 1) +#define HW_DASH_SUPPORT_TYPE_2(_M) ((_M)->HwSuppDashVer == 2) +#define HW_DASH_SUPPORT_TYPE_3(_M) ((_M)->HwSuppDashVer == 3) + +#define RECV_FROM_FW_BUF_SIZE (2048) +#define SEND_TO_FW_BUF_SIZE (2048) + +#define RX_DASH_FROM_FW_OWN BIT_15 +#define TX_DASH_SEND_FW_OWN BIT_15 + +#define TXS_CC3_0 (BIT_0|BIT_1|BIT_2|BIT_3) +#define TXS_EXC BIT_4 +#define TXS_LNKF BIT_5 +#define TXS_OWC BIT_6 +#define TXS_TES BIT_7 +#define TXS_UNF BIT_9 +#define TXS_LGSEN BIT_11 +#define TXS_LS BIT_12 +#define TXS_FS BIT_13 +#define TXS_EOR BIT_14 +#define TXS_OWN BIT_15 + +#define TPPool_HRDY 0x20 + +#define HostReqReg (0xC0) +#define SystemMasterDescStartAddrLow (0xF0) +#define SystemMasterDescStartAddrHigh (0xF4) +#define SystemSlaveDescStartAddrLow (0xF8) +#define SystemSlaveDescStartAddrHigh (0xFC) + +//DASH Request Type +#define WSMANREG 0x01 +#define OSPUSHDATA 0x02 + +#define RXS_OWN BIT_15 +#define RXS_EOR BIT_14 +#define RXS_FS BIT_13 +#define RXS_LS BIT_12 + +#define ISRIMR_DP_DASH_OK BIT_15 +#define ISRIMR_DP_HOST_OK BIT_13 +#define ISRIMR_DP_REQSYS_OK BIT_11 + +#define ISRIMR_DASH_INTR_EN BIT_12 +#define ISRIMR_DASH_INTR_CMAC_RESET BIT_15 + +#define ISRIMR_DASH_TYPE2_ROK BIT_0 +#define ISRIMR_DASH_TYPE2_RDU BIT_1 +#define ISRIMR_DASH_TYPE2_TOK BIT_2 +#define ISRIMR_DASH_TYPE2_TDU BIT_3 +#define ISRIMR_DASH_TYPE2_TX_FIFO_FULL BIT_4 +#define ISRIMR_DASH_TYPE2_TX_DISABLE_IDLE BIT_5 +#define ISRIMR_DASH_TYPE2_RX_DISABLE_IDLE BIT_6 + +#define CMAC_OOB_STOP 0x25 +#define CMAC_OOB_INIT 0x26 +#define CMAC_OOB_RESET 0x2a + +#define NO_BASE_ADDRESS 0x00000000 +#define RTL8168FP_OOBMAC_BASE 0xBAF70000 +#define RTL8168FP_CMAC_IOBASE 0xBAF20000 +#define RTL8168FP_KVM_BASE 0xBAF80400 +#define CMAC_SYNC_REG 0x20 +#define CMAC_RXDESC_OFFSET 0x90 //RX: 0x90 - 0x98 +#define CMAC_TXDESC_OFFSET 0x98 //TX: 0x98 - 0x9F + +/* cmac write/read MMIO register */ +#define RTL_CMAC_W8(tp, reg, val8) writeb ((val8), tp->cmac_ioaddr + (reg)) +#define RTL_CMAC_W16(tp, reg, val16) writew ((val16), tp->cmac_ioaddr + (reg)) +#define RTL_CMAC_W32(tp, reg, val32) writel ((val32), tp->cmac_ioaddr + (reg)) +#define RTL_CMAC_R8(tp, reg) readb (tp->cmac_ioaddr + (reg)) +#define RTL_CMAC_R16(tp, reg) readw (tp->cmac_ioaddr + (reg)) +#define RTL_CMAC_R32(tp, reg) ((unsigned long) readl (tp->cmac_ioaddr + (reg))) + +int rtl8168_dash_ioctl(struct net_device *dev, struct ifreq *ifr); +void HandleDashInterrupt(struct net_device *dev); +int AllocateDashShareMemory(struct net_device *dev); +void FreeAllocatedDashShareMemory(struct net_device *dev); +void DashHwInit(struct net_device *dev); + + +#endif /* _LINUX_R8168_DASH_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_fiber.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_fiber.h new file mode 100644 index 000000000000..325790541465 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_fiber.h @@ -0,0 +1,75 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#ifndef _LINUX_R8168_FIBER_H +#define _LINUX_R8168_FIBER_H + +enum { + FIBER_MODE_NIC_ONLY = 0, + FIBER_MODE_RTL8168H_RTL8211FS, + FIBER_MODE_RTL8168H_MDI_SWITCH_RTL8211FS, + FIBER_MODE_MAX +}; + +enum { + FIBER_STAT_NOT_CHECKED = 0, + FIBER_STAT_CONNECT_EEPROM, + FIBER_STAT_DISCONNECT, + FIBER_STAT_CONNECT_GPO, + FIBER_STAT_MAX +}; + +enum { + FIBER_LED_MODE_DEFAULT = 0, + FIBER_LED_MODE_1, + FIBER_LED_MODE_MAX +}; + +#define HW_FIBER_MODE_ENABLED(_M) ((_M)->HwFiberModeVer > 0) +#define HW_FIBER_STATUS_CONNECTED(_M) (((_M)->HwFiberStat == FIBER_STAT_CONNECT_EEPROM) || ((_M)->HwFiberStat == FIBER_STAT_CONNECT_GPO)) +#define HW_FIBER_STATUS_DISCONNECTED(_M) ((_M)->HwFiberStat == FIBER_STAT_DISCONNECT) + +struct rtl8168_private; + +void rtl8168_hw_init_fiber_nic(struct rtl8168_private *tp); +void rtl8168_hw_fiber_nic_d3_para(struct rtl8168_private *tp); +void rtl8168_hw_fiber_phy_config(struct rtl8168_private *tp); +void rtl8168_hw_switch_mdi_to_fiber(struct rtl8168_private *tp); +void rtl8168_hw_switch_mdi_to_nic(struct rtl8168_private *tp); +unsigned int rtl8168_hw_fiber_link_ok(struct rtl8168_private *tp); +void rtl8168_check_fiber_link_status(struct rtl8168_private *tp); +void rtl8168_check_hw_fiber_mode_support(struct rtl8168_private *tp); +void rtl8168_set_fiber_mode_software_variable(struct rtl8168_private *tp); + +#endif /* _LINUX_R8168_FIBER_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.c new file mode 100644 index 000000000000..d7f061aed2c7 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.c @@ -0,0 +1,264 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#include +#include +#include + +#include "r8168_firmware.h" + +enum rtl_fw_opcode { + PHY_READ = 0x0, + PHY_DATA_OR = 0x1, + PHY_DATA_AND = 0x2, + PHY_BJMPN = 0x3, + PHY_MDIO_CHG = 0x4, + PHY_CLEAR_READCOUNT = 0x7, + PHY_WRITE = 0x8, + PHY_READCOUNT_EQ_SKIP = 0x9, + PHY_COMP_EQ_SKIPN = 0xa, + PHY_COMP_NEQ_SKIPN = 0xb, + PHY_WRITE_PREVIOUS = 0xc, + PHY_SKIPN = 0xd, + PHY_DELAY_MS = 0xe, +}; + +struct fw_info { + u32 magic; + char version[RTL8168_VER_SIZE]; + __le32 fw_start; + __le32 fw_len; + u8 chksum; +} __packed; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,16,0) +#define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER)) +#endif +#define FW_OPCODE_SIZE sizeof_field(struct rtl8168_fw_phy_action, code[0]) + +static bool rtl8168_fw_format_ok(struct rtl8168_fw *rtl_fw) +{ + const struct firmware *fw = rtl_fw->fw; + struct fw_info *fw_info = (struct fw_info *)fw->data; + struct rtl8168_fw_phy_action *pa = &rtl_fw->phy_action; + + if (fw->size < FW_OPCODE_SIZE) + return false; + + if (!fw_info->magic) { + size_t i, size, start; + u8 checksum = 0; + + if (fw->size < sizeof(*fw_info)) + return false; + + for (i = 0; i < fw->size; i++) + checksum += fw->data[i]; + if (checksum != 0) + return false; + + start = le32_to_cpu(fw_info->fw_start); + if (start > fw->size) + return false; + + size = le32_to_cpu(fw_info->fw_len); + if (size > (fw->size - start) / FW_OPCODE_SIZE) + return false; + + strscpy(rtl_fw->version, fw_info->version, RTL8168_VER_SIZE); + + pa->code = (__le32 *)(fw->data + start); + pa->size = size; + } else { + if (fw->size % FW_OPCODE_SIZE) + return false; + + strscpy(rtl_fw->version, rtl_fw->fw_name, RTL8168_VER_SIZE); + + pa->code = (__le32 *)fw->data; + pa->size = fw->size / FW_OPCODE_SIZE; + } + + return true; +} + +static bool rtl8168_fw_data_ok(struct rtl8168_fw *rtl_fw) +{ + struct rtl8168_fw_phy_action *pa = &rtl_fw->phy_action; + size_t index; + + for (index = 0; index < pa->size; index++) { + u32 action = le32_to_cpu(pa->code[index]); + u32 val = action & 0x0000ffff; + u32 regno = (action & 0x0fff0000) >> 16; + + switch (action >> 28) { + case PHY_READ: + case PHY_DATA_OR: + case PHY_DATA_AND: + case PHY_CLEAR_READCOUNT: + case PHY_WRITE: + case PHY_WRITE_PREVIOUS: + case PHY_DELAY_MS: + break; + + case PHY_MDIO_CHG: + if (val > 1) + goto out; + break; + + case PHY_BJMPN: + if (regno > index) + goto out; + break; + case PHY_READCOUNT_EQ_SKIP: + if (index + 2 >= pa->size) + goto out; + break; + case PHY_COMP_EQ_SKIPN: + case PHY_COMP_NEQ_SKIPN: + case PHY_SKIPN: + if (index + 1 + regno >= pa->size) + goto out; + break; + + default: + dev_err(rtl_fw->dev, "Invalid action 0x%08x\n", action); + return false; + } + } + + return true; +out: + dev_err(rtl_fw->dev, "Out of range of firmware\n"); + return false; +} + +void rtl8168_fw_write_firmware(struct rtl8168_private *tp, struct rtl8168_fw *rtl_fw) +{ + struct rtl8168_fw_phy_action *pa = &rtl_fw->phy_action; + rtl8168_fw_write_t fw_write = rtl_fw->phy_write; + rtl8168_fw_read_t fw_read = rtl_fw->phy_read; + int predata = 0, count = 0; + size_t index; + + for (index = 0; index < pa->size; index++) { + u32 action = le32_to_cpu(pa->code[index]); + u32 data = action & 0x0000ffff; + u32 regno = (action & 0x0fff0000) >> 16; + enum rtl_fw_opcode opcode = action >> 28; + + if (!action) + break; + + switch (opcode) { + case PHY_READ: + predata = fw_read(tp, regno); + count++; + break; + case PHY_DATA_OR: + predata |= data; + break; + case PHY_DATA_AND: + predata &= data; + break; + case PHY_BJMPN: + index -= (regno + 1); + break; + case PHY_MDIO_CHG: + if (data) { + fw_write = rtl_fw->mac_mcu_write; + fw_read = rtl_fw->mac_mcu_read; + } else { + fw_write = rtl_fw->phy_write; + fw_read = rtl_fw->phy_read; + } + + break; + case PHY_CLEAR_READCOUNT: + count = 0; + break; + case PHY_WRITE: + fw_write(tp, regno, data); + break; + case PHY_READCOUNT_EQ_SKIP: + if (count == data) + index++; + break; + case PHY_COMP_EQ_SKIPN: + if (predata == data) + index += regno; + break; + case PHY_COMP_NEQ_SKIPN: + if (predata != data) + index += regno; + break; + case PHY_WRITE_PREVIOUS: + fw_write(tp, regno, predata); + break; + case PHY_SKIPN: + index += regno; + break; + case PHY_DELAY_MS: + mdelay(data); + break; + } + } +} + +void rtl8168_fw_release_firmware(struct rtl8168_fw *rtl_fw) +{ + release_firmware(rtl_fw->fw); +} + +int rtl8168_fw_request_firmware(struct rtl8168_fw *rtl_fw) +{ + int rc; + + rc = request_firmware(&rtl_fw->fw, rtl_fw->fw_name, rtl_fw->dev); + if (rc < 0) + goto out; + + if (!rtl8168_fw_format_ok(rtl_fw) || !rtl8168_fw_data_ok(rtl_fw)) { + release_firmware(rtl_fw->fw); + rc = -EINVAL; + goto out; + } + + return 0; +out: + dev_err(rtl_fw->dev, "Unable to load firmware %s (%d)\n", + rtl_fw->fw_name, rc); + return rc; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.h new file mode 100644 index 000000000000..814ff8e7b561 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_firmware.h @@ -0,0 +1,68 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek 2.5Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#ifndef _LINUX_RTL8168_FIRMWARE_H +#define _LINUX_RTL8168_FIRMWARE_H + +#include +#include + +struct rtl8168_private; +typedef void (*rtl8168_fw_write_t)(struct rtl8168_private *tp, u16 reg, u16 val); +typedef u32 (*rtl8168_fw_read_t)(struct rtl8168_private *tp, u16 reg); + +#define RTL8168_VER_SIZE 32 + +struct rtl8168_fw { + rtl8168_fw_write_t phy_write; + rtl8168_fw_read_t phy_read; + rtl8168_fw_write_t mac_mcu_write; + rtl8168_fw_read_t mac_mcu_read; + const struct firmware *fw; + const char *fw_name; + struct device *dev; + + char version[RTL8168_VER_SIZE]; + + struct rtl8168_fw_phy_action { + __le32 *code; + size_t size; + } phy_action; +}; + +int rtl8168_fw_request_firmware(struct rtl8168_fw *rtl_fw); +void rtl8168_fw_release_firmware(struct rtl8168_fw *rtl_fw); +void rtl8168_fw_write_firmware(struct rtl8168_private *tp, struct rtl8168_fw *rtl_fw); + +#endif /* _LINUX_RTL8168_FIRMWARE_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_n.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_n.c new file mode 100644 index 000000000000..f57d3d6d8ec6 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_n.c @@ -0,0 +1,32208 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +/* + * This driver is modified from r8169.c in Linux kernel 2.6.18 + */ + +/* In Linux 5.4 asm_inline was introduced, but it's not supported by clang. + * Redefine it to just asm to enable successful compilation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) +#include +#include +#endif +#include +#include +#include +#include + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) +#include +#endif +#endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,37) +#include +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +#define dev_printk(A,B,fmt,args...) printk(A fmt,##args) +#else +#include +#include +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31) +#include +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,10) +#include +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(6,4,10) */ + +#include +#include + +#include "r8168.h" +#include "r8168_asf.h" +#include "rtl_eeprom.h" +#include "rtltool.h" +#include "r8168_firmware.h" + +#ifdef ENABLE_R8168_PROCFS +#include +#include +#endif + +#define FIRMWARE_8168D_1 "rtl_nic/rtl8168d-1.fw" +#define FIRMWARE_8168D_2 "rtl_nic/rtl8168d-2.fw" +#define FIRMWARE_8168E_1 "rtl_nic/rtl8168e-1.fw" +#define FIRMWARE_8168E_2 "rtl_nic/rtl8168e-2.fw" +#define FIRMWARE_8168E_3 "rtl_nic/rtl8168e-3.fw" +#define FIRMWARE_8168E_4 "rtl_nic/rtl8168e-4.fw" +#define FIRMWARE_8168F_1 "rtl_nic/rtl8168f-1.fw" +#define FIRMWARE_8168F_2 "rtl_nic/rtl8168f-2.fw" +#define FIRMWARE_8411_1 "rtl_nic/rtl8411-1.fw" +#define FIRMWARE_8411_2 "rtl_nic/rtl8411-2.fw" +#define FIRMWARE_8168G_2 "rtl_nic/rtl8168g-2.fw" +#define FIRMWARE_8168G_3 "rtl_nic/rtl8168g-3.fw" +#define FIRMWARE_8168EP_1 "rtl_nic/rtl8168ep-1.fw" +#define FIRMWARE_8168EP_2 "rtl_nic/rtl8168ep-2.fw" +#define FIRMWARE_8168EP_3 "rtl_nic/rtl8168ep-3.fw" +#define FIRMWARE_8168H_1 "rtl_nic/rtl8168h-1.fw" +#define FIRMWARE_8168H_2 "rtl_nic/rtl8168h-2.fw" +#define FIRMWARE_8168H_3 "rtl_nic/rtl8168h-3.fw" +#define FIRMWARE_8168H_4 "rtl_nic/rtl8168h-4.fw" +#define FIRMWARE_8168FP_3 "rtl_nic/rtl8168fp-3.fw" +#define FIRMWARE_8168FP_4 "rtl_nic/rtl8168fp-4.fw" + +#define mem_clear(data, size) memset((data), 0, (size)) + +/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast). + The RTL chips use a 64 element hash table based on the Ethernet CRC. */ +static const int multicast_filter_limit = 32; + +static const struct { + const char *name; + const char *fw_name; +} rtl_chip_fw_infos[] = { + /* PCI-E devices. */ + [CFG_METHOD_1] = {"RTL8168B/8111", }, + [CFG_METHOD_2] = {"RTL8168B/8111", }, + [CFG_METHOD_3] = {"RTL8168B/8111", }, + [CFG_METHOD_4] = {"RTL8168C/8111C", }, + [CFG_METHOD_5] = {"RTL8168C/8111C", }, + [CFG_METHOD_6] = {"RTL8168C/8111C", }, + [CFG_METHOD_7] = {"RTL8168CP/8111CP", }, + [CFG_METHOD_8] = {"RTL8168CP/8111CP", }, + [CFG_METHOD_9] = {"RTL8168D/8111D", FIRMWARE_8168D_1}, + [CFG_METHOD_10] = {"RTL8168D/8111D", FIRMWARE_8168D_2}, + [CFG_METHOD_11] = {"RTL8168DP/8111DP", }, + [CFG_METHOD_12] = {"RTL8168DP/8111DP", }, + [CFG_METHOD_13] = {"RTL8168DP/8111DP", }, + [CFG_METHOD_14] = {"RTL8168E/8111E", FIRMWARE_8168E_1}, + [CFG_METHOD_15] = {"RTL8168E/8111E", FIRMWARE_8168E_2}, + [CFG_METHOD_16] = {"RTL8168E-VL/8111E-VL", FIRMWARE_8168E_3}, + [CFG_METHOD_17] = {"RTL8168E-VL/8111E-VL", FIRMWARE_8168E_4}, + [CFG_METHOD_18] = {"RTL8168F/8111F", FIRMWARE_8168F_1}, + [CFG_METHOD_19] = {"RTL8168F/8111F", FIRMWARE_8168F_2}, + [CFG_METHOD_20] = {"RTL8411", FIRMWARE_8411_1}, + [CFG_METHOD_21] = {"RTL8168G/8111G", FIRMWARE_8168G_2}, + [CFG_METHOD_22] = {"RTL8168G/8111G", }, + [CFG_METHOD_23] = {"RTL8168EP/8111EP", FIRMWARE_8168EP_1}, + [CFG_METHOD_24] = {"RTL8168GU/8111GU", }, + [CFG_METHOD_25] = {"RTL8168GU/8111GU", FIRMWARE_8168G_3}, + [CFG_METHOD_26] = {"8411B", FIRMWARE_8411_2}, + [CFG_METHOD_27] = {"RTL8168EP/8111EP", FIRMWARE_8168EP_2}, + [CFG_METHOD_28] = {"RTL8168EP/8111EP", FIRMWARE_8168EP_3}, + [CFG_METHOD_29] = {"RTL8168H/8111H", FIRMWARE_8168H_1}, + [CFG_METHOD_30] = {"RTL8168H/8111H", FIRMWARE_8168H_2}, + [CFG_METHOD_31] = {"RTL8168FP/8111FP", }, + [CFG_METHOD_32] = {"RTL8168FP/8111FP", FIRMWARE_8168FP_3}, + [CFG_METHOD_33] = {"RTL8168FP/8111FP", FIRMWARE_8168FP_4}, + [CFG_METHOD_34] = {"RTL8168FP/8111FP", FIRMWARE_8168FP_4}, + [CFG_METHOD_35] = {"RTL8168H/8111H", FIRMWARE_8168H_3}, + [CFG_METHOD_36] = {"RTL8168H/8111H", FIRMWARE_8168H_4}, + [CFG_METHOD_37] = {"RTL8168M/8111M", FIRMWARE_8168H_2}, + [CFG_METHOD_DEFAULT] = {"Unknown", }, +}; + +#define _R(NAME,MAC,RCR,MASK, JumFrameSz) \ + { .name = NAME, .mcfg = MAC, .RCR_Cfg = RCR, .RxConfigMask = MASK, .jumbo_frame_sz = JumFrameSz } + +static const struct { + const char *name; + u8 mcfg; + u32 RCR_Cfg; + u32 RxConfigMask; /* Clears the bits supported by this chip */ + u32 jumbo_frame_sz; +} rtl_chip_info[] = { + _R("RTL8168B/8111B", + CFG_METHOD_1, + (Reserved2_data << Reserved2_shift) | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_4k), + + _R("RTL8168B/8111B", + CFG_METHOD_2, + (Reserved2_data << Reserved2_shift) | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_4k), + + _R("RTL8168B/8111B", + CFG_METHOD_3, + (Reserved2_data << Reserved2_shift) | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_4k), + + _R("RTL8168C/8111C", + CFG_METHOD_4, + RxCfg_128_int_en | RxCfg_fet_multi_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_6k), + + _R("RTL8168C/8111C", + CFG_METHOD_5, + RxCfg_128_int_en | RxCfg_fet_multi_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_6k), + + _R("RTL8168C/8111C", + CFG_METHOD_6, + RxCfg_128_int_en | RxCfg_fet_multi_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_6k), + + _R("RTL8168CP/8111CP", + CFG_METHOD_7, + RxCfg_128_int_en | RxCfg_fet_multi_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_6k), + + _R("RTL8168CP/8111CP", + CFG_METHOD_8, + RxCfg_128_int_en | RxCfg_fet_multi_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_6k), + + _R("RTL8168D/8111D", + CFG_METHOD_9, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168D/8111D", + CFG_METHOD_10, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168DP/8111DP", + CFG_METHOD_11, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168DP/8111DP", + CFG_METHOD_12, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168DP/8111DP", + CFG_METHOD_13, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168E/8111E", + CFG_METHOD_14, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168E/8111E", + CFG_METHOD_15, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168E-VL/8111E-VL", + CFG_METHOD_16, + RxCfg_128_int_en | RxEarly_off_V1 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e0080, + Jumbo_Frame_9k), + + _R("RTL8168E-VL/8111E-VL", + CFG_METHOD_17, + RxCfg_128_int_en | RxEarly_off_V1 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168F/8111F", + CFG_METHOD_18, + RxCfg_128_int_en | RxEarly_off_V1 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168F/8111F", + CFG_METHOD_19, + RxCfg_128_int_en | RxEarly_off_V1 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8411", + CFG_METHOD_20, + RxCfg_128_int_en | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e1880, + Jumbo_Frame_9k), + + _R("RTL8168G/8111G", + CFG_METHOD_21, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168G/8111G", + CFG_METHOD_22, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168EP/8111EP", + CFG_METHOD_23, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168GU/8111GU", + CFG_METHOD_24, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168GU/8111GU", + CFG_METHOD_25, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("8411B", + CFG_METHOD_26, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168EP/8111EP", + CFG_METHOD_27, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168EP/8111EP", + CFG_METHOD_28, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168H/8111H", + CFG_METHOD_29, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168H/8111H", + CFG_METHOD_30, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168FP/8111FP", + CFG_METHOD_31, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168FP/8111FP", + CFG_METHOD_32, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168FP/8111FP", + CFG_METHOD_33, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168FP/8111FP", + CFG_METHOD_34, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168H/8111H", + CFG_METHOD_35, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168H/8111H", + CFG_METHOD_36, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("RTL8168M/8111M", + CFG_METHOD_37, + RxCfg_128_int_en | RxEarly_off_V2 | (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_9k), + + _R("Unknown", + CFG_METHOD_DEFAULT, + (RX_DMA_BURST << RxCfgDMAShift), + 0xff7e5880, + Jumbo_Frame_1k) +}; +#undef _R + +#ifndef PCI_VENDOR_ID_DLINK +#define PCI_VENDOR_ID_DLINK 0x1186 +#endif + +static struct pci_device_id rtl8168_pci_tbl[] = { + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), }, + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8161), }, + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x2502), }, + { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x2600), }, + { PCI_VENDOR_ID_DLINK, 0x4300, 0x1186, 0x4b10,}, + {0,}, +}; + +MODULE_DEVICE_TABLE(pci, rtl8168_pci_tbl); + +static int use_dac = 1; +static int timer_count = 0x2600; +static int dynamic_aspm_packet_threshold = 10; + +static struct { + u32 msg_enable; +} debug = { -1 }; + +static unsigned int speed_mode = SPEED_1000; +static unsigned int duplex_mode = DUPLEX_FULL; +static unsigned int autoneg_mode = AUTONEG_ENABLE; +static unsigned int advertising_mode = ADVERTISED_10baseT_Half | + ADVERTISED_10baseT_Full | + ADVERTISED_100baseT_Half | + ADVERTISED_100baseT_Full | + ADVERTISED_1000baseT_Half | + ADVERTISED_1000baseT_Full; +#ifdef CONFIG_ASPM +static int aspm = 1; +#else +static int aspm = 0; +#endif +#ifdef CONFIG_DYNAMIC_ASPM +static int dynamic_aspm = 1; +#else +static int dynamic_aspm = 0; +#endif +#ifdef ENABLE_S5WOL +static int s5wol = 1; +#else +static int s5wol = 0; +#endif +#ifdef ENABLE_S5_KEEP_CURR_MAC +static int s5_keep_curr_mac = 1; +#else +static int s5_keep_curr_mac = 0; +#endif +#ifdef ENABLE_EEE +static int eee_enable = 1; +#else +static int eee_enable = 0; +#endif +#ifdef CONFIG_SOC_LAN +static ulong hwoptimize = HW_PATCH_SOC_LAN; +#else +static ulong hwoptimize = 0; +#endif +#ifdef ENABLE_S0_MAGIC_PACKET +static int s0_magic_packet = 1; +#else +static int s0_magic_packet = 0; +#endif +#ifdef DISABLE_WOL_SUPPORT +static int disable_wol_support = 1; +#else +static int disable_wol_support = 0; +#endif + +MODULE_AUTHOR("Realtek and the Linux r8168 crew "); +MODULE_DESCRIPTION("RealTek RTL-8168 Gigabit Ethernet driver"); + +module_param(speed_mode, uint, 0); +MODULE_PARM_DESC(speed_mode, "force phy operation. Deprecated by ethtool (8)."); + +module_param(duplex_mode, uint, 0); +MODULE_PARM_DESC(duplex_mode, "force phy operation. Deprecated by ethtool (8)."); + +module_param(autoneg_mode, uint, 0); +MODULE_PARM_DESC(autoneg_mode, "force phy operation. Deprecated by ethtool (8)."); + +module_param(advertising_mode, uint, 0); +MODULE_PARM_DESC(advertising_mode, "force phy operation. Deprecated by ethtool (8)."); + +module_param(aspm, int, 0); +MODULE_PARM_DESC(aspm, "Enable ASPM."); + +module_param(dynamic_aspm, int, 0); +MODULE_PARM_DESC(aspm, "Enable Software Dynamic ASPM."); + +module_param(s5wol, int, 0); +MODULE_PARM_DESC(s5wol, "Enable Shutdown Wake On Lan."); + +module_param(s5_keep_curr_mac, int, 0); +MODULE_PARM_DESC(s5_keep_curr_mac, "Enable Shutdown Keep Current MAC Address."); + +module_param(use_dac, int, 0); +MODULE_PARM_DESC(use_dac, "Enable PCI DAC. Unsafe on 32 bit PCI slot."); + +module_param(timer_count, int, 0); +MODULE_PARM_DESC(timer_count, "Timer Interrupt Interval."); + +module_param(eee_enable, int, 0); +MODULE_PARM_DESC(eee_enable, "Enable Energy Efficient Ethernet."); + +module_param(hwoptimize, ulong, 0); +MODULE_PARM_DESC(hwoptimize, "Enable HW optimization function."); + +module_param(s0_magic_packet, int, 0); +MODULE_PARM_DESC(s0_magic_packet, "Enable S0 Magic Packet."); + +module_param(dynamic_aspm_packet_threshold, int, 0); +MODULE_PARM_DESC(dynamic_aspm_packet_threshold, "Dynamic ASPM packet threshold."); + +module_param(disable_wol_support, int, 0); +MODULE_PARM_DESC(disable_wol_support, "Disable PM support."); + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) +module_param_named(debug, debug.msg_enable, int, 0); +MODULE_PARM_DESC(debug, "Debug verbosity level (0=none, ..., 16=all)"); +#endif//LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + +MODULE_LICENSE("GPL"); +#ifdef ENABLE_USE_FIRMWARE_FILE +MODULE_FIRMWARE(FIRMWARE_8168D_1); +MODULE_FIRMWARE(FIRMWARE_8168D_2); +MODULE_FIRMWARE(FIRMWARE_8168E_1); +MODULE_FIRMWARE(FIRMWARE_8168E_2); +MODULE_FIRMWARE(FIRMWARE_8168E_3); +MODULE_FIRMWARE(FIRMWARE_8168E_4); +MODULE_FIRMWARE(FIRMWARE_8168F_1); +MODULE_FIRMWARE(FIRMWARE_8168F_2); +MODULE_FIRMWARE(FIRMWARE_8411_1); +MODULE_FIRMWARE(FIRMWARE_8411_2); +MODULE_FIRMWARE(FIRMWARE_8168G_2); +MODULE_FIRMWARE(FIRMWARE_8168G_3); +MODULE_FIRMWARE(FIRMWARE_8168EP_1); +MODULE_FIRMWARE(FIRMWARE_8168EP_2); +MODULE_FIRMWARE(FIRMWARE_8168EP_3); +MODULE_FIRMWARE(FIRMWARE_8168H_1); +MODULE_FIRMWARE(FIRMWARE_8168H_2); +MODULE_FIRMWARE(FIRMWARE_8168H_3); +MODULE_FIRMWARE(FIRMWARE_8168H_4); +MODULE_FIRMWARE(FIRMWARE_8168FP_3); +MODULE_FIRMWARE(FIRMWARE_8168FP_4); +#endif + +MODULE_VERSION(RTL8168_VERSION); + +static void rtl8168_sleep_rx_enable(struct net_device *dev); +static void rtl8168_dsm(struct net_device *dev, int dev_state); + +/* +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) +static void rtl8168_esd_timer(unsigned long __opaque); +#else +static void rtl8168_esd_timer(struct timer_list *t); +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) +static void rtl8168_link_timer(unsigned long __opaque); +#else +static void rtl8168_link_timer(struct timer_list *t); +#endif +*/ + +static netdev_tx_t rtl8168_start_xmit(struct sk_buff *skb, struct net_device *dev); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) +static irqreturn_t rtl8168_interrupt(int irq, void *dev_instance, struct pt_regs *regs); +#else +static irqreturn_t rtl8168_interrupt(int irq, void *dev_instance); +#endif +static void rtl8168_rx_desc_offset0_init(struct rtl8168_private *, int); +static void rtl8168_set_rx_mode(struct net_device *dev); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) +static void rtl8168_tx_timeout(struct net_device *dev, unsigned int txqueue); +#else +static void rtl8168_tx_timeout(struct net_device *dev); +#endif +static struct net_device_stats *rtl8168_get_stats(struct net_device *dev); +static int rtl8168_rx_interrupt(struct net_device *, struct rtl8168_private *, struct rtl8168_rx_ring *, napi_budget); +#ifdef CONFIG_R8168_NAPI +static int rtl8168_poll_msix_ring(napi_ptr napi, napi_budget budget); +static int rtl8168_poll_msix_rx(napi_ptr napi, napi_budget budget); +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) +static irqreturn_t rtl8168_interrupt_msix(int irq, void *dev_instance, struct pt_regs *regs); +#else +static irqreturn_t rtl8168_interrupt_msix(int irq, void *dev_instance); +#endif +static void rtl8168_wait_for_quiescence(struct net_device *dev); +static int rtl8168_change_mtu(struct net_device *dev, int new_mtu); +static void rtl8168_down(struct net_device *dev); + +static int rtl8168_set_mac_address(struct net_device *dev, void *p); +void rtl8168_rar_set(struct rtl8168_private *tp, const u8 *addr); +static void rtl8168_desc_addr_fill(struct rtl8168_private *); +static void rtl8168_tx_desc_init(struct rtl8168_private *tp); +static void rtl8168_rx_desc_init(struct rtl8168_private *tp); + +static u16 rtl8168_get_hw_phy_mcu_code_ver(struct rtl8168_private *tp); + +static void rtl8168_phy_power_up(struct net_device *dev); +static void rtl8168_phy_power_down(struct net_device *dev); +static int rtl8168_set_speed(struct net_device *dev, u8 autoneg, u32 speed, u8 duplex, u32 adv); + +static int rtl8168_set_phy_mcu_patch_request(struct rtl8168_private *tp); +static int rtl8168_clear_phy_mcu_patch_request(struct rtl8168_private *tp); + +#ifdef CONFIG_R8168_NAPI +static int rtl8168_poll(napi_ptr napi, napi_budget budget); +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +static void rtl8168_reset_task(void *_data); +static void rtl8168_esd_task(void *_data); +static void rtl8168_linkchg_task(void *_data); +#else +static void rtl8168_reset_task(struct work_struct *work); +static void rtl8168_esd_task(struct work_struct *work); +static void rtl8168_linkchg_task(struct work_struct *work); +#endif +static void rtl8168_schedule_reset_work(struct rtl8168_private *tp); +static void rtl8168_schedule_esd_work(struct rtl8168_private *tp); +static void rtl8168_schedule_linkchg_work(struct rtl8168_private *tp); +static void rtl8168_init_all_schedule_work(struct rtl8168_private *tp); +static void rtl8168_cancel_all_schedule_work(struct rtl8168_private *tp); + +static inline struct device *tp_to_dev(struct rtl8168_private *tp) +{ + return &tp->pci_dev->dev; +} + +#if ((LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0) && \ + LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,00))) +void ethtool_convert_legacy_u32_to_link_mode(unsigned long *dst, + u32 legacy_u32) +{ + bitmap_zero(dst, __ETHTOOL_LINK_MODE_MASK_NBITS); + dst[0] = legacy_u32; +} + +bool ethtool_convert_link_mode_to_legacy_u32(u32 *legacy_u32, + const unsigned long *src) +{ + bool retval = true; + + /* TODO: following test will soon always be true */ + if (__ETHTOOL_LINK_MODE_MASK_NBITS > 32) { + __ETHTOOL_DECLARE_LINK_MODE_MASK(ext); + + bitmap_zero(ext, __ETHTOOL_LINK_MODE_MASK_NBITS); + bitmap_fill(ext, 32); + bitmap_complement(ext, ext, __ETHTOOL_LINK_MODE_MASK_NBITS); + if (bitmap_intersects(ext, src, + __ETHTOOL_LINK_MODE_MASK_NBITS)) { + /* src mask goes beyond bit 31 */ + retval = false; + } + } + *legacy_u32 = src[0]; + return retval; +} +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) + +#ifndef LPA_1000FULL +#define LPA_1000FULL 0x0800 +#endif + +#ifndef LPA_1000HALF +#define LPA_1000HALF 0x0400 +#endif + +static inline u32 mii_adv_to_ethtool_adv_t(u32 adv) +{ + u32 result = 0; + + if (adv & ADVERTISE_10HALF) + result |= ADVERTISED_10baseT_Half; + if (adv & ADVERTISE_10FULL) + result |= ADVERTISED_10baseT_Full; + if (adv & ADVERTISE_100HALF) + result |= ADVERTISED_100baseT_Half; + if (adv & ADVERTISE_100FULL) + result |= ADVERTISED_100baseT_Full; + if (adv & ADVERTISE_PAUSE_CAP) + result |= ADVERTISED_Pause; + if (adv & ADVERTISE_PAUSE_ASYM) + result |= ADVERTISED_Asym_Pause; + + return result; +} + +static inline u32 mii_lpa_to_ethtool_lpa_t(u32 lpa) +{ + u32 result = 0; + + if (lpa & LPA_LPACK) + result |= ADVERTISED_Autoneg; + + return result | mii_adv_to_ethtool_adv_t(lpa); +} + +static inline u32 mii_stat1000_to_ethtool_lpa_t(u32 lpa) +{ + u32 result = 0; + + if (lpa & LPA_1000HALF) + result |= ADVERTISED_1000baseT_Half; + if (lpa & LPA_1000FULL) + result |= ADVERTISED_1000baseT_Full; + + return result; +} + +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0) +static inline void eth_hw_addr_random(struct net_device *dev) +{ + random_ether_addr(dev->dev_addr); +} +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +#undef ethtool_ops +#define ethtool_ops _kc_ethtool_ops + +struct _kc_ethtool_ops { + int (*get_settings)(struct net_device *, struct ethtool_cmd *); + int (*set_settings)(struct net_device *, struct ethtool_cmd *); + void (*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *); + int (*get_regs_len)(struct net_device *); + void (*get_regs)(struct net_device *, struct ethtool_regs *, void *); + void (*get_wol)(struct net_device *, struct ethtool_wolinfo *); + int (*set_wol)(struct net_device *, struct ethtool_wolinfo *); + u32 (*get_msglevel)(struct net_device *); + void (*set_msglevel)(struct net_device *, u32); + int (*nway_reset)(struct net_device *); + u32 (*get_link)(struct net_device *); + int (*get_eeprom_len)(struct net_device *); + int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *); + int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *); + int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *); + void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *); + int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *); + void (*get_pauseparam)(struct net_device *, + struct ethtool_pauseparam*); + int (*set_pauseparam)(struct net_device *, + struct ethtool_pauseparam*); + u32 (*get_rx_csum)(struct net_device *); + int (*set_rx_csum)(struct net_device *, u32); + u32 (*get_tx_csum)(struct net_device *); + int (*set_tx_csum)(struct net_device *, u32); + u32 (*get_sg)(struct net_device *); + int (*set_sg)(struct net_device *, u32); + u32 (*get_tso)(struct net_device *); + int (*set_tso)(struct net_device *, u32); + int (*self_test_count)(struct net_device *); + void (*self_test)(struct net_device *, struct ethtool_test *, u64 *); + void (*get_strings)(struct net_device *, u32 stringset, u8 *); + int (*phys_id)(struct net_device *, u32); + int (*get_stats_count)(struct net_device *); + void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, + u64 *); +} *ethtool_ops = NULL; + +#undef SET_ETHTOOL_OPS +#define SET_ETHTOOL_OPS(netdev, ops) (ethtool_ops = (ops)) + +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) +#ifndef SET_ETHTOOL_OPS +#define SET_ETHTOOL_OPS(netdev,ops) \ + ( (netdev)->ethtool_ops = (ops) ) +#endif //SET_ETHTOOL_OPS +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0) + +//#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5) +#ifndef netif_msg_init +#define netif_msg_init _kc_netif_msg_init +/* copied from linux kernel 2.6.20 include/linux/netdevice.h */ +static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits) +{ + /* use default */ + if (debug_value < 0 || debug_value >= (sizeof(u32) * 8)) + return default_msg_enable_bits; + if (debug_value == 0) /* no output */ + return 0; + /* set low N bits */ + return (1 << debug_value) - 1; +} + +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5) + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22) +static inline void eth_copy_and_sum (struct sk_buff *dest, + const unsigned char *src, + int len, int base) +{ + memcpy (dest->data, src, len); +} +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,7) +/* copied from linux kernel 2.6.20 /include/linux/time.h */ +/* Parameters used to convert the timespec values: */ +#define MSEC_PER_SEC 1000L + +/* copied from linux kernel 2.6.20 /include/linux/jiffies.h */ +/* + * Change timeval to jiffies, trying to avoid the + * most obvious overflows.. + * + * And some not so obvious. + * + * Note that we don't want to return MAX_LONG, because + * for various timeout reasons we often end up having + * to wait "jiffies+1" in order to guarantee that we wait + * at _least_ "jiffies" - so "jiffies+1" had better still + * be positive. + */ +#define MAX_JIFFY_OFFSET ((~0UL >> 1)-1) + +/* + * Convert jiffies to milliseconds and back. + * + * Avoid unnecessary multiplications/divisions in the + * two most common HZ cases: + */ +static inline unsigned int _kc_jiffies_to_msecs(const unsigned long j) +{ +#if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ) + return (MSEC_PER_SEC / HZ) * j; +#elif HZ > MSEC_PER_SEC && !(HZ % MSEC_PER_SEC) + return (j + (HZ / MSEC_PER_SEC) - 1)/(HZ / MSEC_PER_SEC); +#else + return (j * MSEC_PER_SEC) / HZ; +#endif +} + +static inline unsigned long _kc_msecs_to_jiffies(const unsigned int m) +{ + if (m > _kc_jiffies_to_msecs(MAX_JIFFY_OFFSET)) + return MAX_JIFFY_OFFSET; +#if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ) + return (m + (MSEC_PER_SEC / HZ) - 1) / (MSEC_PER_SEC / HZ); +#elif HZ > MSEC_PER_SEC && !(HZ % MSEC_PER_SEC) + return m * (HZ / MSEC_PER_SEC); +#else + return (m * HZ + MSEC_PER_SEC - 1) / MSEC_PER_SEC; +#endif +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,7) + + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) + +/* copied from linux kernel 2.6.12.6 /include/linux/pm.h */ +typedef int __bitwise pci_power_t; + +/* copied from linux kernel 2.6.12.6 /include/linux/pci.h */ +typedef u32 __bitwise pm_message_t; + +#define PCI_D0 ((pci_power_t __force) 0) +#define PCI_D1 ((pci_power_t __force) 1) +#define PCI_D2 ((pci_power_t __force) 2) +#define PCI_D3hot ((pci_power_t __force) 3) +#define PCI_D3cold ((pci_power_t __force) 4) +#define PCI_POWER_ERROR ((pci_power_t __force) -1) + +/* copied from linux kernel 2.6.12.6 /drivers/pci/pci.c */ +/** + * pci_choose_state - Choose the power state of a PCI device + * @dev: PCI device to be suspended + * @state: target sleep state for the whole system. This is the value + * that is passed to suspend() function. + * + * Returns PCI power state suitable for given device and given system + * message. + */ + +pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state) +{ + if (!pci_find_capability(dev, PCI_CAP_ID_PM)) + return PCI_D0; + + switch (state) { + case 0: + return PCI_D0; + case 3: + return PCI_D3hot; + default: + printk("They asked me for state %d\n", state); +// BUG(); + } + return PCI_D0; +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) +/** + * msleep_interruptible - sleep waiting for waitqueue interruptions + * @msecs: Time in milliseconds to sleep for + */ +#define msleep_interruptible _kc_msleep_interruptible +unsigned long _kc_msleep_interruptible(unsigned int msecs) +{ + unsigned long timeout = _kc_msecs_to_jiffies(msecs); + + while (timeout && !signal_pending(current)) { + set_current_state(TASK_INTERRUPTIBLE); + timeout = schedule_timeout(timeout); + } + return _kc_jiffies_to_msecs(timeout); +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,7) +/* copied from linux kernel 2.6.20 include/linux/sched.h */ +#ifndef __sched +#define __sched __attribute__((__section__(".sched.text"))) +#endif + +/* copied from linux kernel 2.6.20 kernel/timer.c */ +signed long __sched schedule_timeout_uninterruptible(signed long timeout) +{ + __set_current_state(TASK_UNINTERRUPTIBLE); + return schedule_timeout(timeout); +} + +/* copied from linux kernel 2.6.20 include/linux/mii.h */ +#undef if_mii +#define if_mii _kc_if_mii +static inline struct mii_ioctl_data *if_mii(struct ifreq *rq) +{ + return (struct mii_ioctl_data *) &rq->ifr_ifru; +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,7) + +int rtl8168_dump_tally_counter(struct rtl8168_private *tp, dma_addr_t paddr) +{ + u32 cmd; + u32 WaitCnt; + int retval = -1; + + RTL_W32(tp, CounterAddrHigh, (u64)paddr >> 32); + cmd = (u64)paddr & DMA_BIT_MASK(32); + RTL_W32(tp, CounterAddrLow, cmd); + RTL_W32(tp, CounterAddrLow, cmd | CounterDump); + + WaitCnt = 0; + while (RTL_R32(tp, CounterAddrLow) & CounterDump) { + udelay(10); + + WaitCnt++; + if (WaitCnt > 20) + break; + } + + if (WaitCnt <= 20) + retval = 0; + + return retval; +} + +static u32 rtl8168_convert_link_speed(u16 status) +{ + u32 speed = SPEED_UNKNOWN; + + if (status & LinkStatus) { + if (status & _1000bpsF) + speed = SPEED_1000; + else if (status & _100bps) + speed = SPEED_100; + else if (status & _10bps) + speed = SPEED_10; + } + + return speed; +} + +static int rtl8168_vcd_test(struct rtl8168_private *tp) +{ + u16 val; + u32 wait_cnt; + int ret = -1; + + rtl8168_mdio_write(tp, 0x1f, 0x0a43); + rtl8168_mdio_write(tp, 0x13, 0x8169); + rtl8168_mdio_write(tp, 0x14, 0x18c1); + rtl8168_mdio_write(tp, 0x13, 0x816b); + rtl8168_mdio_write(tp, 0x14, 0xc7b0); + rtl8168_mdio_write(tp, 0x13, 0x816d); + rtl8168_mdio_write(tp, 0x14, 0x5933); + rtl8168_mdio_write(tp, 0x13, 0x816f); + rtl8168_mdio_write(tp, 0x14, 0xb920); + rtl8168_mdio_write(tp, 0x13, 0x8171); + rtl8168_mdio_write(tp, 0x14, 0xee07); + rtl8168_mdio_write(tp, 0x13, 0x8162); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x13, 0x8173); + rtl8168_mdio_write(tp, 0x14, 0x0304); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0a42); + rtl8168_clear_eth_phy_bit(tp, 0x11, BIT(0)); + rtl8168_set_eth_phy_bit(tp, 0x11, 0x00f0); + rtl8168_set_eth_phy_bit(tp, 0x11, BIT(0)); + + wait_cnt = 0; + do { + mdelay(1); + val = rtl8168_mdio_read(tp, 0x11); + wait_cnt++; + } while (!(val & BIT_15) && (wait_cnt < 5000)); + + if (wait_cnt == 5000) + goto exit; + + ret = 0; + +exit: + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + return ret; +} + +static void rtl8168_get_cp_len(struct rtl8168_private *tp, + u16 cp_len[RTL8168_CP_NUM]) +{ + int i; + u16 status; + u16 tmp_cp_len = 0; + + status = RTL_R8(tp, PHYstatus); + if (status & LinkStatus) { + if (status & _10bps) { + tmp_cp_len = 0; + } else if (status & _1000bpsF) { + rtl8168_mdio_write(tp, 0x1f, 0x0a88); + tmp_cp_len = rtl8168_mdio_read(tp, 0x10); + } else + goto exit; + } else + goto exit; + + tmp_cp_len &= 0xff; + for (i=0; i RTL8168_MAX_SUPPORT_cp_len) + cp_len[i] = RTL8168_MAX_SUPPORT_cp_len; + + return; +} + +static int __rtl8168_get_cp_status(u16 val) +{ + switch (val) { + case 0x0060: + return rtl8168_cp_normal; + case 0x0048: + return rtl8168_cp_open; + case 0x0050: + return rtl8168_cp_short; + case 0x0042: + case 0x0044: + return rtl8168_cp_mismatch; + default: + return rtl8168_cp_normal; + } +} + +static int _rtl8168_get_cp_status(struct rtl8168_private *tp, u8 pair_num) +{ + u16 val; + int cp_status = rtl8168_cp_unknown; + + if (pair_num > 3) + goto exit; + + rtl8168_mdio_write(tp, 0x1f, 0x0a43); + rtl8168_mdio_write(tp, 0x13, 0x802b + 4 * pair_num); + val = rtl8168_mdio_read(tp, 0x14); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + cp_status = __rtl8168_get_cp_status(val); + +exit: + return cp_status; +} + +static const char * rtl8168_get_cp_status_string(int cp_status) +{ + switch(cp_status) { + case rtl8168_cp_normal: + return "normal "; + case rtl8168_cp_short: + return "short "; + case rtl8168_cp_open: + return "open "; + case rtl8168_cp_mismatch: + return "mismatch"; + default: + return "unknown "; + } +} + +static u16 rtl8168_get_cp_pp(struct rtl8168_private *tp, u8 pair_num) +{ + u16 pp = 0; + + if (pair_num > 3) + goto exit; + + rtl8168_mdio_write(tp, 0x1f, 0x0a43); + rtl8168_mdio_write(tp, 0x13, 0x802d + 4 * pair_num); + pp = rtl8168_mdio_read(tp, 0x14); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + pp &= 0x3fff; + pp /= 80; + +exit: + return pp; +} + +static void rtl8168_get_cp_status(struct rtl8168_private *tp, + int cp_status[RTL8168_CP_NUM]) +{ + int i; + + for (i =0; i= KERNEL_VERSION(3,10,0) +static int proc_get_driver_variable(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + + seq_puts(m, "\nDump Driver Variable\n"); + + rtnl_lock(); + + seq_puts(m, "Variable\tValue\n----------\t-----\n"); + seq_printf(m, "MODULENAME\t%s\n", MODULENAME); + seq_printf(m, "driver version\t%s\n", RTL8168_VERSION); + seq_printf(m, "chipset\t%d\n", tp->chipset); + seq_printf(m, "chipset_name\t%s\n", rtl_chip_info[tp->chipset].name); + seq_printf(m, "mtu\t%d\n", dev->mtu); + seq_printf(m, "num_rx_desc\t0x%x\n", tp->num_rx_desc); + seq_printf(m, "cur_rx0\t0x%x\n", tp->rx_ring[0].cur_rx); + seq_printf(m, "dirty_rx0\t0x%x\n", tp->rx_ring[0].dirty_rx); + seq_printf(m, "rdu0\t0x%x\n", tp->rx_ring[0].rdu); + seq_printf(m, "cur_rx1\t0x%x\n", tp->rx_ring[1].cur_rx); + seq_printf(m, "dirty_rx1\t0x%x\n", tp->rx_ring[1].dirty_rx); + seq_printf(m, "rdu1\t0x%x\n", tp->rx_ring[1].rdu); + seq_printf(m, "cur_rx2\t0x%x\n", tp->rx_ring[2].cur_rx); + seq_printf(m, "dirty_rx2\t0x%x\n", tp->rx_ring[2].dirty_rx); + seq_printf(m, "rdu2\t0x%x\n", tp->rx_ring[2].rdu); + seq_printf(m, "cur_rx3\t0x%x\n", tp->rx_ring[3].cur_rx); + seq_printf(m, "dirty_rx3\t0x%x\n", tp->rx_ring[3].dirty_rx); + seq_printf(m, "rdu3\t0x%x\n", tp->rx_ring[3].rdu); + seq_printf(m, "rx_fifo_of\t0x%x\n", tp->rx_fifo_of); + seq_printf(m, "num_tx_desc\t0x%x\n", tp->tx_ring[0].num_tx_desc); + seq_printf(m, "cur_tx0\t0x%x\n", tp->tx_ring[0].cur_tx); + seq_printf(m, "dirty_tx0\t0x%x\n", tp->tx_ring[0].dirty_tx); + seq_printf(m, "tdu0\t0x%x\n", tp->tx_ring[0].tdu); + seq_printf(m, "cur_tx1\t0x%x\n", tp->tx_ring[1].cur_tx); + seq_printf(m, "dirty_tx1\t0x%x\n", tp->tx_ring[1].dirty_tx); + seq_printf(m, "tdu1\t0x%x\n", tp->tx_ring[1].tdu); + seq_printf(m, "rx_buf_sz\t0x%x\n", tp->rx_buf_sz); + seq_printf(m, "esd_flag\t0x%x\n", tp->esd_flag); + seq_printf(m, "pci_cfg_is_read\t0x%x\n", tp->pci_cfg_is_read); + seq_printf(m, "rtl8168_rx_config\t0x%x\n", tp->rtl8168_rx_config); + seq_printf(m, "cp_cmd\t0x%x\n", tp->cp_cmd); + seq_printf(m, "intr_mask\t0x%x\n", tp->intr_mask); + seq_printf(m, "timer_intr_mask\t0x%x\n", tp->timer_intr_mask); + seq_printf(m, "wol_enabled\t0x%x\n", tp->wol_enabled); + seq_printf(m, "wol_opts\t0x%x\n", tp->wol_opts); + seq_printf(m, "efuse_ver\t0x%x\n", tp->efuse_ver); + seq_printf(m, "eeprom_type\t0x%x\n", tp->eeprom_type); + seq_printf(m, "autoneg\t0x%x\n", tp->autoneg); + seq_printf(m, "duplex\t0x%x\n", tp->duplex); + seq_printf(m, "speed\t%d\n", tp->speed); + seq_printf(m, "advertising\t0x%x\n", tp->advertising); + seq_printf(m, "eeprom_len\t0x%x\n", tp->eeprom_len); + seq_printf(m, "cur_page\t0x%x\n", tp->cur_page); + seq_printf(m, "bios_setting\t0x%x\n", tp->bios_setting); + seq_printf(m, "features\t0x%x\n", tp->features); + seq_printf(m, "org_pci_offset_99\t0x%x\n", tp->org_pci_offset_99); + seq_printf(m, "org_pci_offset_180\t0x%x\n", tp->org_pci_offset_180); + seq_printf(m, "issue_offset_99_event\t0x%x\n", tp->issue_offset_99_event); + seq_printf(m, "org_pci_offset_80\t0x%x\n", tp->org_pci_offset_80); + seq_printf(m, "org_pci_offset_81\t0x%x\n", tp->org_pci_offset_81); + seq_printf(m, "use_timer_interrrupt\t0x%x\n", tp->use_timer_interrrupt); + seq_printf(m, "HwIcVerUnknown\t0x%x\n", tp->HwIcVerUnknown); + seq_printf(m, "NotWrRamCodeToMicroP\t0x%x\n", tp->NotWrRamCodeToMicroP); + seq_printf(m, "NotWrMcuPatchCode\t0x%x\n", tp->NotWrMcuPatchCode); + seq_printf(m, "HwHasWrRamCodeToMicroP\t0x%x\n", tp->HwHasWrRamCodeToMicroP); + seq_printf(m, "sw_ram_code_ver\t0x%x\n", tp->sw_ram_code_ver); + seq_printf(m, "hw_ram_code_ver\t0x%x\n", tp->hw_ram_code_ver); + seq_printf(m, "rtk_enable_diag\t0x%x\n", tp->rtk_enable_diag); + seq_printf(m, "ShortPacketSwChecksum\t0x%x\n", tp->ShortPacketSwChecksum); + seq_printf(m, "UseSwPaddingShortPkt\t0x%x\n", tp->UseSwPaddingShortPkt); + seq_printf(m, "RequireAdcBiasPatch\t0x%x\n", tp->RequireAdcBiasPatch); + seq_printf(m, "AdcBiasPatchIoffset\t0x%x\n", tp->AdcBiasPatchIoffset); + seq_printf(m, "RequireAdjustUpsTxLinkPulseTiming\t0x%x\n", tp->RequireAdjustUpsTxLinkPulseTiming); + seq_printf(m, "SwrCnt1msIni\t0x%x\n", tp->SwrCnt1msIni); + seq_printf(m, "HwSuppNowIsOobVer\t0x%x\n", tp->HwSuppNowIsOobVer); + seq_printf(m, "HwFiberModeVer\t0x%x\n", tp->HwFiberModeVer); + seq_printf(m, "HwFiberStat\t0x%x\n", tp->HwFiberStat); + seq_printf(m, "HwSwitchMdiToFiber\t0x%x\n", tp->HwSwitchMdiToFiber); + seq_printf(m, "HwSuppSerDesPhyVer\t0x%x\n", tp->HwSuppSerDesPhyVer); + seq_printf(m, "NicCustLedValue\t0x%x\n", tp->NicCustLedValue); + seq_printf(m, "RequiredSecLanDonglePatch\t0x%x\n", tp->RequiredSecLanDonglePatch); + seq_printf(m, "HwSuppDashVer\t0x%x\n", tp->HwSuppDashVer); + seq_printf(m, "DASH\t0x%x\n", tp->DASH); + seq_printf(m, "dash_printer_enabled\t0x%x\n", tp->dash_printer_enabled); + seq_printf(m, "HwSuppKCPOffloadVer\t0x%x\n", tp->HwSuppKCPOffloadVer); + seq_printf(m, "speed_mode\t0x%x\n", speed_mode); + seq_printf(m, "duplex_mode\t0x%x\n", duplex_mode); + seq_printf(m, "autoneg_mode\t0x%x\n", autoneg_mode); + seq_printf(m, "advertising_mode\t0x%x\n", advertising_mode); + seq_printf(m, "aspm\t0x%x\n", aspm); + seq_printf(m, "s5wol\t0x%x\n", s5wol); + seq_printf(m, "s5_keep_curr_mac\t0x%x\n", s5_keep_curr_mac); + seq_printf(m, "eee_enable\t0x%x\n", tp->eee.eee_enabled); + seq_printf(m, "hwoptimize\t0x%lx\n", hwoptimize); + seq_printf(m, "proc_init_num\t0x%x\n", proc_init_num); + seq_printf(m, "s0_magic_packet\t0x%x\n", s0_magic_packet); + seq_printf(m, "disable_wol_support\t0x%x\n", disable_wol_support); + seq_printf(m, "HwSuppMagicPktVer\t0x%x\n", tp->HwSuppMagicPktVer); + seq_printf(m, "HwSuppUpsVer\t0x%x\n", tp->HwSuppUpsVer); + seq_printf(m, "HwSuppEsdVer\t0x%x\n", tp->HwSuppEsdVer); + seq_printf(m, "HwSuppCheckPhyDisableModeVer\t0x%x\n", tp->HwSuppCheckPhyDisableModeVer); + seq_printf(m, "HwPkgDet\t0x%x\n", tp->HwPkgDet); + seq_printf(m, "InitRxDescType\t0x%x\n", tp->InitRxDescType); + seq_printf(m, "RxDescLength\t0x%x\n", tp->RxDescLength); + seq_printf(m, "num_rx_rings\t0x%x\n", tp->num_rx_rings); + seq_printf(m, "num_tx_rings\t0x%x\n", tp->num_tx_rings); + seq_printf(m, "tot_rx_rings\t0x%x\n", rtl8168_tot_rx_rings(tp)); + seq_printf(m, "tot_tx_rings\t0x%x\n", rtl8168_tot_tx_rings(tp)); + seq_printf(m, "HwSuppNumTxQueues\t0x%x\n", tp->HwSuppNumTxQueues); + seq_printf(m, "HwSuppNumRxQueues\t0x%x\n", tp->HwSuppNumRxQueues); + seq_printf(m, "num_hw_tot_en_rx_rings\t0x%x\n", tp->num_hw_tot_en_rx_rings); + seq_printf(m, "EnableRss\t0x%x\n", tp->EnableRss); + seq_printf(m, "min_irq_nvecs\t0x%x\n", tp->min_irq_nvecs); + seq_printf(m, "max_irq_nvecs\t0x%x\n", tp->max_irq_nvecs); + seq_printf(m, "irq_nvecs\t0x%x\n", tp->irq_nvecs); + seq_printf(m, "hw_supp_irq_nvecs\t0x%x\n", tp->hw_supp_irq_nvecs); + seq_printf(m, "ring_lib_enabled\t0x%x\n", tp->ring_lib_enabled); + seq_printf(m, "random_mac\t0x%x\n", tp->random_mac); + seq_printf(m, "org_mac_addr\t%pM\n", tp->org_mac_addr); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + seq_printf(m, "perm_addr\t%pM\n", dev->perm_addr); +#endif + seq_printf(m, "dev_addr\t%pM\n", dev->dev_addr); + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_tally_counter(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + struct rtl8168_counters *counters; + dma_addr_t paddr; + + seq_puts(m, "\nDump Tally Counter\n"); + + rtnl_lock(); + + counters = tp->tally_vaddr; + paddr = tp->tally_paddr; + if (!counters) { + seq_puts(m, "\nDump Tally Counter Fail\n"); + goto out_unlock; + } + + rtl8168_dump_tally_counter(tp, paddr); + + seq_puts(m, "Statistics\tValue\n----------\t-----\n"); + seq_printf(m, "tx_packets\t%lld\n", le64_to_cpu(counters->tx_packets)); + seq_printf(m, "rx_packets\t%lld\n", le64_to_cpu(counters->rx_packets)); + seq_printf(m, "tx_errors\t%lld\n", le64_to_cpu(counters->tx_errors)); + seq_printf(m, "rx_errors\t%d\n", le32_to_cpu(counters->rx_errors)); + seq_printf(m, "rx_missed\t%d\n", le16_to_cpu(counters->rx_missed)); + seq_printf(m, "align_errors\t%d\n", le16_to_cpu(counters->align_errors)); + seq_printf(m, "tx_one_collision\t%d\n", le32_to_cpu(counters->tx_one_collision)); + seq_printf(m, "tx_multi_collision\t%d\n", le32_to_cpu(counters->tx_multi_collision)); + seq_printf(m, "rx_unicast\t%lld\n", le64_to_cpu(counters->rx_unicast)); + seq_printf(m, "rx_broadcast\t%lld\n", le64_to_cpu(counters->rx_broadcast)); + seq_printf(m, "rx_multicast\t%d\n", le32_to_cpu(counters->rx_multicast)); + seq_printf(m, "tx_aborted\t%d\n", le16_to_cpu(counters->tx_aborted)); + seq_printf(m, "tx_underrun\t%d\n", le16_to_cpu(counters->tx_underrun)); + +out_unlock: + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_registers(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + int i, n, max = R8168_MAC_REGS_SIZE; + u8 byte_rd; + struct rtl8168_private *tp = netdev_priv(dev); + void __iomem *ioaddr = tp->mmio_addr; + + seq_puts(m, "\nDump MAC Registers\n"); + seq_puts(m, "Offset\tValue\n------\t-----\n"); + + rtnl_lock(); + + for (n = 0; n < max;) { + seq_printf(m, "\n0x%02x:\t", n); + + for (i = 0; i < 16 && n < max; i++, n++) { + byte_rd = readb(ioaddr + n); + seq_printf(m, "%02x ", byte_rd); + } + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_pcie_phy(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + int i, n, max = R8168_EPHY_REGS_SIZE/2; + u16 word_rd; + struct rtl8168_private *tp = netdev_priv(dev); + + seq_puts(m, "\nDump PCIE PHY\n"); + seq_puts(m, "\nOffset\tValue\n------\t-----\n "); + + rtnl_lock(); + + for (n = 0; n < max;) { + seq_printf(m, "\n0x%02x:\t", n); + + for (i = 0; i < 8 && n < max; i++, n++) { + word_rd = rtl8168_ephy_read(tp, n); + seq_printf(m, "%04x ", word_rd); + } + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_eth_phy(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + int i, n, max = R8168_PHY_REGS_SIZE/2; + u16 word_rd; + struct rtl8168_private *tp = netdev_priv(dev); + + seq_puts(m, "\nDump Ethernet PHY\n"); + seq_puts(m, "\nOffset\tValue\n------\t-----\n "); + + rtnl_lock(); + + seq_puts(m, "\n####################page 0##################\n "); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + for (n = 0; n < max;) { + seq_printf(m, "\n0x%02x:\t", n); + + for (i = 0; i < 8 && n < max; i++, n++) { + word_rd = rtl8168_mdio_read(tp, n); + seq_printf(m, "%04x ", word_rd); + } + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_extended_registers(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + int i, n, max = R8168_ERI_REGS_SIZE; + u32 dword_rd; + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + /* RTL8168B does not support Extend GMAC */ + seq_puts(m, "\nNot Support Dump Extended Registers\n"); + return 0; + } + + seq_puts(m, "\nDump Extended Registers\n"); + seq_puts(m, "\nOffset\tValue\n------\t-----\n "); + + rtnl_lock(); + + for (n = 0; n < max;) { + seq_printf(m, "\n0x%02x:\t", n); + + for (i = 0; i < 4 && n < max; i++, n+=4) { + dword_rd = rtl8168_eri_read(tp, n, 4, ERIAR_ExGMAC); + seq_printf(m, "%08x ", dword_rd); + } + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_pci_registers(struct seq_file *m, void *v) +{ + struct net_device *dev = m->private; + int i, n, max = R8168_PCI_REGS_SIZE; + u32 dword_rd; + struct rtl8168_private *tp = netdev_priv(dev); + + seq_puts(m, "\nDump PCI Registers\n"); + seq_puts(m, "\nOffset\tValue\n------\t-----\n "); + + rtnl_lock(); + + for (n = 0; n < max;) { + seq_printf(m, "\n0x%03x:\t", n); + + for (i = 0; i < 4 && n < max; i++, n+=4) { + pci_read_config_dword(tp->pci_dev, n, &dword_rd); + seq_printf(m, "%08x ", dword_rd); + } + } + + n = 0x110; + pci_read_config_dword(tp->pci_dev, n, &dword_rd); + seq_printf(m, "\n0x%03x:\t%08x ", n, dword_rd); + n = 0x70c; + pci_read_config_dword(tp->pci_dev, n, &dword_rd); + seq_printf(m, "\n0x%03x:\t%08x ", n, dword_rd); + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_get_cable_info(struct seq_file *m, void *v) +{ + int i; + u16 status; + int cp_status[RTL8168_CP_NUM] = {0}; + u16 cp_len[RTL8168_CP_NUM] = {0}; + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + const char *pair_str[RTL8168_CP_NUM] = {"1-2", "3-6", "4-5", "7-8"}; + + switch (tp->mcfg) { + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + /* support */ + break; + default: + return -EOPNOTSUPP; + } + + rtnl_lock(); + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + if (rtl8168_mdio_read(tp, MII_BMCR) & BMCR_PDOWN) { + rtnl_unlock(); + return -EIO; + } + + status = RTL_R8(tp, PHYstatus); + if (status & LinkStatus) + seq_printf(m, "\nlink speed:%d", + rtl8168_convert_link_speed(status)); + else + seq_puts(m, "\nlink status:off"); + + rtl8168_get_cp_len(tp, cp_len); + + rtl8168_vcd_test(tp); + + rtl8168_get_cp_status(tp, cp_status); + + seq_puts(m, "\npair\tlength\tstatus \tpp\n"); + + for (i =0; iphy_reset_enable(dev); + + rtl8168_set_speed(dev, tp->autoneg, tp->speed, tp->duplex, tp->advertising); + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_dump_rx_desc(struct seq_file *m, void *v) +{ + int i; + u32 *pdword; + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + + if (!tp->RxDescArray) + return -EOPNOTSUPP; + + rtnl_lock(); + + seq_printf(m, "\ndump rx desc:%d\n", tp->num_rx_desc); + + pdword = (u32*)tp->RxDescArray; + for (i=0; i<(tp->RxDescAllocSize/4); i++) { + if (!(i % 4)) + seq_printf(m, "\n%04x ", i); + seq_printf(m, "%08x ", pdword[i]); + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_dump_rx_desc_2(struct seq_file *m, void *v) +{ + int i, j, k; + u32 *pdword; + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + + if (!tp->RxDescArray) + return -EOPNOTSUPP; + + rtnl_lock(); + + for (k=0; knum_hw_tot_en_rx_rings; k++) { + seq_printf(m, "\ndump Q%d rx desc:%d\n", k, tp->num_rx_desc); + for (j=0; jnum_rx_desc; j++) { + pdword = (u32*)rtl8168_get_rxdesc(tp, + tp->RxDescArray, + j, k); + for (i=0; i<(tp->RxDescLength/4); i++) { + if (!(i % 4)) + seq_printf(m, "\n%04llx ", + ((u64)pdword + (i * 4) - + (u64)tp->RxDescArray)); + seq_printf(m, "%08x ", pdword[i]); + } + } + + seq_putc(m, '\n'); + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +void _proc_dump_tx_desc(struct seq_file *m, struct TxDesc *desc_base, + u32 alloc_size, u32 num_desc) +{ + int i; + u32 *pdword; + + if (desc_base == NULL || + alloc_size == 0 || + num_desc == 0) + return; + + pdword = (u32*)desc_base; + for (i=0; i<(alloc_size/4); i++) { + if (!(i % 4)) + seq_printf(m, "\n%04x ", i); + seq_printf(m, "%08x ", pdword[i]); + } + + seq_putc(m, '\n'); + return; +} + +static int proc_dump_tx_desc(struct seq_file *m, void *v) +{ + int i; + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + + rtnl_lock(); + + for (i=0; iHwSuppNumTxQueues; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + if (!ring->TxDescArray) + continue; + seq_printf(m, "\ndump Q%d tx desc:%d\n", i, ring->num_tx_desc); + _proc_dump_tx_desc(m, ring->TxDescArray, + ring->TxDescAllocSize, + ring->num_tx_desc); + } + +#ifdef ENABLE_LIB_SUPPORT + for (i=0; iHwSuppNumTxQueues; i++) { + struct rtl8168_ring *ring = &tp->lib_tx_ring[i]; + if (!ring->desc_addr) + continue; + seq_printf(m, "\ndump lib Q%d tx desc:%d\n", i, ring->ring_size); + _proc_dump_tx_desc(m, ring->desc_addr, + ring->desc_size, + ring->ring_size); + } +#endif //ENABLE_LIB_SUPPORT + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} + +static int proc_dump_msix_tbl(struct seq_file *m, void *v) +{ + int i, j; + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_8: + return -EOPNOTSUPP; + default: + break; + } + + rtnl_lock(); + + seq_printf(m, "\ndump MSI-X Table. Total Entry %d. \n", + tp->hw_supp_irq_nvecs); + + for (i=0; ihw_supp_irq_nvecs; i++) { + seq_printf(m, "\n%04x ", i); + for (j=0; j<4; j++) + seq_printf(m, "%08x ", + rtl8168_eri_read( + tp, i*0x10 + 4 * j, 4, + ERIAR_MSIX)); + } + + rtnl_unlock(); + + seq_putc(m, '\n'); + return 0; +} +#else + +static int proc_get_driver_variable(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + struct rtl8168_private *tp = netdev_priv(dev); + int len = 0; + + len += snprintf(page + len, count - len, + "\nDump Driver Driver\n"); + + rtnl_lock(); + + len += snprintf(page + len, count - len, + "Variable\tValue\n----------\t-----\n"); + + len += snprintf(page + len, count - len, + "MODULENAME\t%s\n" + "driver version\t%s\n" + "chipset\t%d\n" + "chipset_name\t%s\n" + "mtu\t%d\n" + "num_rx_desc\t0x%x\n" + "cur_rx0\t0x%x\n" + "dirty_rx0\t0x%x\n" + "rdu0\t0x%x\n" + "cur_rx1\t0x%x\n" + "dirty_rx1\t0x%x\n" + "rdu1\t0x%x\n" + "cur_rx2\t0x%x\n" + "dirty_rx2\t0x%x\n" + "rdu2\t0x%x\n" + "cur_rx3\t0x%x\n" + "dirty_rx3\t0x%x\n" + "rdu3\t0x%x\n" + "rx_fifo_of\t0x%x\n" + "num_tx_desc\t0x%x\n" + "cur_tx0\t0x%x\n" + "dirty_tx0\t0x%x\n" + "tdu0\t0x%x\n" + "cur_tx1\t0x%x\n" + "dirty_tx1\t0x%x\n" + "tdu0\t1x%x\n" + "rx_buf_sz\t0x%x\n" + "esd_flag\t0x%x\n" + "pci_cfg_is_read\t0x%x\n" + "rtl8168_rx_config\t0x%x\n" + "cp_cmd\t0x%x\n" + "intr_mask\t0x%x\n" + "timer_intr_mask\t0x%x\n" + "wol_enabled\t0x%x\n" + "wol_opts\t0x%x\n" + "efuse_ver\t0x%x\n" + "eeprom_type\t0x%x\n" + "autoneg\t0x%x\n" + "duplex\t0x%x\n" + "speed\t%d\n" + "advertising\t0x%x\n" + "eeprom_len\t0x%x\n" + "cur_page\t0x%x\n" + "bios_setting\t0x%x\n" + "features\t0x%x\n" + "org_pci_offset_99\t0x%x\n" + "org_pci_offset_180\t0x%x\n" + "issue_offset_99_event\t0x%x\n" + "org_pci_offset_80\t0x%x\n" + "org_pci_offset_81\t0x%x\n" + "use_timer_interrrupt\t0x%x\n" + "HwIcVerUnknown\t0x%x\n" + "NotWrRamCodeToMicroP\t0x%x\n" + "NotWrMcuPatchCode\t0x%x\n" + "HwHasWrRamCodeToMicroP\t0x%x\n" + "sw_ram_code_ver\t0x%x\n" + "hw_ram_code_ver\t0x%x\n" + "rtk_enable_diag\t0x%x\n" + "ShortPacketSwChecksum\t0x%x\n" + "UseSwPaddingShortPkt\t0x%x\n" + "RequireAdcBiasPatch\t0x%x\n" + "AdcBiasPatchIoffset\t0x%x\n" + "RequireAdjustUpsTxLinkPulseTiming\t0x%x\n" + "SwrCnt1msIni\t0x%x\n" + "HwSuppNowIsOobVer\t0x%x\n" + "HwFiberModeVer\t0x%x\n" + "HwFiberStat\t0x%x\n" + "HwSwitchMdiToFiber\t0x%x\n" + "HwSuppSerDesPhyVer\t0x%x\n" + "NicCustLedValue\t0x%x\n" + "RequiredSecLanDonglePatch\t0x%x\n" + "HwSuppDashVer\t0x%x\n" + "DASH\t0x%x\n" + "dash_printer_enabled\t0x%x\n" + "HwSuppKCPOffloadVer\t0x%x\n" + "speed_mode\t0x%x\n" + "duplex_mode\t0x%x\n" + "autoneg_mode\t0x%x\n" + "advertising_mode\t0x%x\n" + "aspm\t0x%x\n" + "s5wol\t0x%x\n" + "s5_keep_curr_mac\t0x%x\n" + "eee_enable\t0x%x\n" + "hwoptimize\t0x%lx\n" + "proc_init_num\t0x%x\n" + "s0_magic_packet\t0x%x\n" + "disable_wol_support\t0x%x\n" + "HwSuppMagicPktVer\t0x%x\n" + "HwSuppUpsVer\t0x%x\n" + "HwSuppEsdVer\t0x%x\n" + "HwSuppCheckPhyDisableModeVer\t0x%x\n" + "HwPkgDet\t0x%x\n" + "InitRxDescType\t0x%x\n" + "RxDescLength\t0x%x\n" + "num_rx_rings\t0x%x\n" + "num_tx_rings\t0x%x\n" + "tot_rx_rings\t0x%x\n" + "tot_tx_rings\t0x%x\n" + "tot_rx_desc_rings\t0x%x\n" + "HwSuppNumTxQueues\t0x%x\n" + "HwSuppNumRxQueues\t0x%x\n" + "num_hw_tot_en_rx_rings\t0x%x\n" + "EnableRss\t0x%x\n" + "min_irq_nvecs\t0x%x\n" + "max_irq_nvecs\t0x%x\n" + "irq_nvecs\t0x%x\n" + "hw_supp_irq_nvecs\t0x%x\n" + "ring_lib_enabled\t0x%x\n" + "random_mac\t0x%x\n" + "org_mac_addr\t%pM\n" +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + "perm_addr\t%pM\n" +#endif + "dev_addr\t%pM\n", + MODULENAME, + RTL8168_VERSION, + tp->chipset, + rtl_chip_info[tp->chipset].name, + dev->mtu, + tp->num_rx_desc, + tp->rx_ring[0].cur_rx, + tp->rx_ring[0].dirty_rx, + tp->rx_ring[0].rdu, + tp->rx_ring[1].cur_rx, + tp->rx_ring[1].dirty_rx, + tp->rx_ring[1].rdu, + tp->rx_ring[2].cur_rx, + tp->rx_ring[2].dirty_rx, + tp->rx_ring[2].rdu, + tp->rx_ring[3].cur_rx, + tp->rx_ring[3].dirty_rx, + tp->rx_ring[3].rdu, + tp->rx_fifo_of, + tp->tx_ring[0].num_tx_desc, + tp->tx_ring[0].cur_tx, + tp->tx_ring[0].dirty_tx, + tp->tx_ring[0].tdu, + tp->tx_ring[1].cur_tx, + tp->tx_ring[1].dirty_tx, + tp->tx_ring[1].tdu, + tp->rx_buf_sz, + tp->esd_flag, + tp->pci_cfg_is_read, + tp->rtl8168_rx_config, + tp->cp_cmd, + tp->intr_mask, + tp->timer_intr_mask, + tp->wol_enabled, + tp->wol_opts, + tp->efuse_ver, + tp->eeprom_type, + tp->autoneg, + tp->duplex, + tp->speed, + tp->advertising, + tp->eeprom_len, + tp->cur_page, + tp->bios_setting, + tp->features, + tp->org_pci_offset_99, + tp->org_pci_offset_180, + tp->issue_offset_99_event, + tp->org_pci_offset_80, + tp->org_pci_offset_81, + tp->use_timer_interrrupt, + tp->HwIcVerUnknown, + tp->NotWrRamCodeToMicroP, + tp->NotWrMcuPatchCode, + tp->HwHasWrRamCodeToMicroP, + tp->sw_ram_code_ver, + tp->hw_ram_code_ver, + tp->rtk_enable_diag, + tp->ShortPacketSwChecksum, + tp->UseSwPaddingShortPkt, + tp->RequireAdcBiasPatch, + tp->AdcBiasPatchIoffset, + tp->RequireAdjustUpsTxLinkPulseTiming, + tp->SwrCnt1msIni, + tp->HwSuppNowIsOobVer, + tp->HwFiberModeVer, + tp->HwFiberStat, + tp->HwSwitchMdiToFiber, + tp->HwSuppSerDesPhyVer, + tp->NicCustLedValue, + tp->RequiredSecLanDonglePatch, + tp->HwSuppDashVer, + tp->DASH, + tp->dash_printer_enabled, + tp->HwSuppKCPOffloadVer, + speed_mode, + duplex_mode, + autoneg_mode, + advertising_mode, + aspm, + s5wol, + s5_keep_curr_mac, + tp->eee.eee_enabled, + hwoptimize, + proc_init_num, + s0_magic_packet, + disable_wol_support, + tp->HwSuppMagicPktVer, + tp->HwSuppUpsVer, + tp->HwSuppEsdVer, + tp->HwSuppCheckPhyDisableModeVer, + tp->HwPkgDet, + tp->InitRxDescType, + tp->RxDescLength, + tp->num_rx_rings, + tp->num_tx_rings, + rtl8168_tot_rx_rings(tp), + rtl8168_tot_tx_rings(tp), + tp->HwSuppNumTxQueues, + tp->HwSuppNumRxQueues, + tp->num_hw_tot_en_rx_rings, + tp->EnableRss, + tp->min_irq_nvecs, + tp->max_irq_nvecs, + tp->irq_nvecs, + tp->hw_supp_irq_nvecs, + tp->ring_lib_enabled, + tp->random_mac, + tp->org_mac_addr, +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + dev->perm_addr, +#endif + dev->dev_addr + ); + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + return len; +} + +static int proc_get_tally_counter(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + struct rtl8168_private *tp = netdev_priv(dev); + struct rtl8168_counters *counters; + dma_addr_t paddr; + u32 cmd; + u32 WaitCnt; + int len = 0; + + len += snprintf(page + len, count - len, + "\nDump Tally Counter\n"); + + rtnl_lock(); + + counters = tp->tally_vaddr; + paddr = tp->tally_paddr; + if (!counters) { + len += snprintf(page + len, count - len, + "\nDump Tally Counter Fail\n"); + goto out_unlock; + } + + rtl8168_dump_tally_counter(tp, paddr); + + len += snprintf(page + len, count - len, + "Statistics\tValue\n----------\t-----\n"); + + len += snprintf(page + len, count - len, + "tx_packets\t%lld\n" + "rx_packets\t%lld\n" + "tx_errors\t%lld\n" + "rx_errors\t%d\n" + "rx_missed\t%d\n" + "align_errors\t%d\n" + "tx_one_collision\t%d\n" + "tx_multi_collision\t%d\n" + "rx_unicast\t%lld\n" + "rx_broadcast\t%lld\n" + "rx_multicast\t%d\n" + "tx_aborted\t%d\n" + "tx_underrun\t%d\n", + le64_to_cpu(counters->tx_packets), + le64_to_cpu(counters->rx_packets), + le64_to_cpu(counters->tx_errors), + le32_to_cpu(counters->rx_errors), + le16_to_cpu(counters->rx_missed), + le16_to_cpu(counters->align_errors), + le32_to_cpu(counters->tx_one_collision), + le32_to_cpu(counters->tx_multi_collision), + le64_to_cpu(counters->rx_unicast), + le64_to_cpu(counters->rx_broadcast), + le32_to_cpu(counters->rx_multicast), + le16_to_cpu(counters->tx_aborted), + le16_to_cpu(counters->tx_underrun) + ); + + len += snprintf(page + len, count - len, "\n"); +out_unlock: + rtnl_unlock(); + + *eof = 1; + return len; +} + +static int proc_get_registers(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + int i, n, max = R8168_MAC_REGS_SIZE; + u8 byte_rd; + struct rtl8168_private *tp = netdev_priv(dev); + void __iomem *ioaddr = tp->mmio_addr; + int len = 0; + + len += snprintf(page + len, count - len, + "\nDump MAC Registers\n" + "Offset\tValue\n------\t-----\n"); + + rtnl_lock(); + + for (n = 0; n < max;) { + len += snprintf(page + len, count - len, + "\n0x%02x:\t", + n); + + for (i = 0; i < 16 && n < max; i++, n++) { + byte_rd = readb(ioaddr + n); + len += snprintf(page + len, count - len, + "%02x ", + byte_rd); + } + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + return len; +} + +static int proc_get_pcie_phy(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + int i, n, max = R8168_EPHY_REGS_SIZE/2; + u16 word_rd; + struct rtl8168_private *tp = netdev_priv(dev); + int len = 0; + + len += snprintf(page + len, count - len, + "\nDump PCIE PHY\n" + "Offset\tValue\n------\t-----\n"); + + rtnl_lock(); + + for (n = 0; n < max;) { + len += snprintf(page + len, count - len, + "\n0x%02x:\t", + n); + + for (i = 0; i < 8 && n < max; i++, n++) { + word_rd = rtl8168_ephy_read(tp, n); + len += snprintf(page + len, count - len, + "%04x ", + word_rd); + } + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + return len; +} + +static int proc_get_eth_phy(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + int i, n, max = R8168_PHY_REGS_SIZE/2; + u16 word_rd; + struct rtl8168_private *tp = netdev_priv(dev); + int len = 0; + + len += snprintf(page + len, count - len, + "\nDump Ethernet PHY\n" + "Offset\tValue\n------\t-----\n"); + + rtnl_lock(); + + len += snprintf(page + len, count - len, + "\n####################page 0##################\n"); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + for (n = 0; n < max;) { + len += snprintf(page + len, count - len, + "\n0x%02x:\t", + n); + + for (i = 0; i < 8 && n < max; i++, n++) { + word_rd = rtl8168_mdio_read(tp, n); + len += snprintf(page + len, count - len, + "%04x ", + word_rd); + } + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + return len; +} + +static int proc_get_extended_registers(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + int i, n, max = R8168_ERI_REGS_SIZE; + u32 dword_rd; + struct rtl8168_private *tp = netdev_priv(dev); + int len = 0; + + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + /* RTL8168B does not support Extend GMAC */ + len += snprintf(page + len, count - len, + "\nNot Support Dump Extended Registers\n"); + + goto out; + } + + len += snprintf(page + len, count - len, + "\nDump Extended Registers\n" + "Offset\tValue\n------\t-----\n"); + + rtnl_lock(); + + for (n = 0; n < max;) { + len += snprintf(page + len, count - len, + "\n0x%02x:\t", + n); + + for (i = 0; i < 4 && n < max; i++, n+=4) { + dword_rd = rtl8168_eri_read(tp, n, 4, ERIAR_ExGMAC); + len += snprintf(page + len, count - len, + "%08x ", + dword_rd); + } + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); +out: + *eof = 1; + return len; +} + +static int proc_get_pci_registers(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + struct net_device *dev = data; + int i, n, max = R8168_PCI_REGS_SIZE; + u32 dword_rd; + struct rtl8168_private *tp = netdev_priv(dev); + int len = 0; + + len += snprintf(page + len, count - len, + "\nDump PCI Registers\n" + "Offset\tValue\n------\t-----\n"); + + rtnl_lock(); + + for (n = 0; n < max;) { + len += snprintf(page + len, count - len, + "\n0x%03x:\t", + n); + + for (i = 0; i < 4 && n < max; i++, n+=4) { + pci_read_config_dword(tp->pci_dev, n, &dword_rd); + len += snprintf(page + len, count - len, + "%08x ", + dword_rd); + } + } + + n = 0x110; + pci_read_config_dword(tp->pci_dev, n, &dword_rd); + len += snprintf(page + len, count - len, + "\n0x%03x:\t%08x ", + n, + dword_rd); + n = 0x70c; + pci_read_config_dword(tp->pci_dev, n, &dword_rd); + len += snprintf(page + len, count - len, + "\n0x%03x:\t%08x ", + n, + dword_rd); + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + return len; +} + +static int proc_get_cable_info(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + int i; + u16 status; + int len = 0; + struct net_device *dev = data; + int cp_status[RTL8168_CP_NUM] = {0}; + u16 cp_len[RTL8168_CP_NUM] = {0}; + struct rtl8168_private *tp = netdev_priv(dev); + const char *pair_str[RTL8168_CP_NUM] = {"1-2", "3-6", "4-5", "7-8"}; + + switch (tp->mcfg) { + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + /* support */ + break; + default: + return -EOPNOTSUPP; + } + + rtnl_lock(); + + status = RTL_R8(tp, PHYstatus); + if (status & LinkStatus) + len += snprintf(page + len, count - len, + "\nlink speed:%d", + rtl8168_convert_link_speed(status)); + else + len += snprintf(page + len, count - len, + "\nlink status:off"); + + rtl8168_get_cp(tp, cp_len, cp_status); + + len += snprintf(page + len, count - len, + "\npair\tlength\tstatus \tpp\n"); + + for (i =0; iRxDescArray) + return -EOPNOTSUPP; + + rtnl_lock(); + + len += snprintf(page + len, count - len, + "\ndump rx desc:%d", + tp->num_rx_desc); + + pdword = (u32*)tp->RxDescArray; + for (i=0; i<(tp->RxDescAllocSize/4); i++) { + if (!(i % 4)) + len += snprintf(page + len, count - len, + "\n%04x ", + i); + len += snprintf(page + len, count - len, + "%08x ", + pdword[i]); + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + + return len; +} + +static int proc_dump_rx_desc_2(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + int i, j, k; + int len = 0; + u32 *pdword; + struct net_device *dev = data; + struct rtl8168_private *tp = netdev_priv(dev); + + if (!tp->RxDescArray) + return -EOPNOTSUPP; + + rtnl_lock(); + + for (k=0; knum_hw_tot_en_rx_rings; k++) { + len += snprintf(page + len, count - len, + "\ndump Q%d rx desc:%d", + k, + tp->num_rx_desc); + for (j=0; jnum_rx_desc; j++) { + pdword = (u32*)rtl8168_get_rxdesc(tp, + tp->RxDescArray, + j, k); + for (i=0; i<(tp->RxDescLength/4); i++) { + if (!(i % 4)) + len += snprintf(page + len, count - len, + "\n%04llx ", + ((u64)pdword + (i * 4) - + (u64)tp->RxDescArray)); + len += snprintf(page + len, count - len, + "%08x ", + pdword[i]); + } + } + + len += snprintf(page + len, count - len, "\n"); + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + + return len; +} + +void _proc_dump_tx_desc(char *page, int *page_len, int *count, + struct TxDesc *desc_base, + u32 alloc_size, u32 num_desc) +{ + int i; + int len = 0; + u32 *pdword; + + if (desc_base == NULL || + alloc_size == 0 || + num_desc == 0) + return; + + len = *page_len; + pdword = (u32*)desc_base; + for (i=0; i<(alloc_size/4); i++) { + if (!(i % 4)) + len += snprintf(page + len, *count - len, + "\n%04x ", + i); + len += snprintf(page + len, *count - len, + "%08x ", + pdword[i]); + } + + len += snprintf(page + len, count - len, "\n"); + + *page_len = len; + return; +} + +static int proc_dump_tx_desc(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + int i; + int len = 0; + u32 *pdword; + struct net_device *dev = data; + struct rtl8168_private *tp = netdev_priv(dev); + struct rtl8168_tx_ring *ring = &tp->tx_ring[0]; + + if (!ring->TxDescArray) + return -EOPNOTSUPP; + + rtnl_lock(); + + for (i=0; iHwSuppNumTxQueues; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + if (!ring->TxDescArray) + continue; + len += snprintf(page + len, count - len, + "\ndump Q%d tx desc:%d", + i, + ring->num_tx_desc); + _proc_dump_tx_desc(page, &len, &count, + ring->TxDescArray, + ring->TxDescAllocSize, + ring->num_tx_desc); + } + +#ifdef ENABLE_LIB_SUPPORT + for (i=0; iHwSuppNumTxQueues; i++) { + struct rtl8168_ring *ring = &tp->lib_tx_ring[i]; + if (!ring->desc_addr) + continue; + len += snprintf(page + len, count - len, + "\ndump lib Q%d tx desc:%d", + i, + ring->ring_size); + _proc_dump_tx_desc(page, &len, ring->desc_addr, + ring->desc_size, + ring->ring_size); + } +#endif //ENABLE_LIB_SUPPORT + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + + return len; +} + +static int proc_dump_tx_desc(char *page, char **start, + off_t offset, int count, + int *eof, void *data) +{ + int i; + struct net_device *dev = m->private; + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_8: + return -EOPNOTSUPP; + default: + break; + } + + rtnl_lock(); + + len += snprintf(page + len, count - len, + "\ndump MSI-X Table. Total Entry %d. \n", + R8168_MAX_MSIX_VEC); + + for (i=0; ihw_supp_irq_nvecs); + + for (i=0; ihw_supp_irq_nvecs; i++) { + len += snprintf(page + len, count - len, + "\n%04x ", i); + for (j=0; j<4; j++) + len += snprintf(page + len, count - len, "%08x ", + rtl8168_eri_read(tp, i*0x10 + 4*j, 4, + ERIAR_MSIX)); + } + + rtnl_unlock(); + + len += snprintf(page + len, count - len, "\n"); + + *eof = 1; + return 0; +} +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + +static void rtl8168_proc_module_init(void) +{ + //create /proc/net/r8168 +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + rtl8168_proc = proc_mkdir(MODULENAME, init_net.proc_net); +#else + rtl8168_proc = proc_mkdir(MODULENAME, proc_net); +#endif + if (!rtl8168_proc) + dprintk("cannot create %s proc entry \n", MODULENAME); +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) +/* + * seq_file wrappers for procfile show routines. + */ +static int rtl8168_proc_open(struct inode *inode, struct file *file) +{ + struct net_device *dev = proc_get_parent_data(inode); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) + int (*show)(struct seq_file *, void *) = pde_data(inode); +#else + int (*show)(struct seq_file *, void *) = PDE_DATA(inode); +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) + + return single_open(file, show, dev); +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) +static const struct proc_ops rtl8168_proc_fops = { + .proc_open = rtl8168_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, +}; +#else +static const struct file_operations rtl8168_proc_fops = { + .open = rtl8168_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; +#endif + +#endif + +/* + * Table of proc files we need to create. + */ +struct rtl8168_proc_file { + char name[12]; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + int (*show)(struct seq_file *, void *); +#else + int (*show)(char *, char **, off_t, int, int *, void *); +#endif +}; + +static const struct rtl8168_proc_file rtl8168_proc_files[] = { + { "driver_var", &proc_get_driver_variable }, + { "tally", &proc_get_tally_counter }, + { "registers", &proc_get_registers }, + { "pcie_phy", &proc_get_pcie_phy }, + { "eth_phy", &proc_get_eth_phy }, + { "ext_regs", &proc_get_extended_registers }, + { "pci_regs", &proc_get_pci_registers }, + { "cdt", &proc_get_cable_info }, + { "tx_desc", &proc_dump_tx_desc }, + { "rx_desc", &proc_dump_rx_desc }, + { "rx_desc_2", &proc_dump_rx_desc_2 }, + { "msix_tbl", &proc_dump_msix_tbl }, + { "" } +}; + +static void rtl8168_proc_init(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + const struct rtl8168_proc_file *f; + struct proc_dir_entry *dir; + + if (rtl8168_proc && !tp->proc_dir) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + dir = proc_mkdir_data(dev->name, 0, rtl8168_proc, dev); + if (!dir) { + printk("Unable to initialize /proc/net/%s/%s\n", + MODULENAME, dev->name); + return; + } + + tp->proc_dir = dir; + proc_init_num++; + + for (f = rtl8168_proc_files; f->name[0]; f++) { + if (!proc_create_data(f->name, S_IFREG | S_IRUGO, dir, + &rtl8168_proc_fops, f->show)) { + printk("Unable to initialize " + "/proc/net/%s/%s/%s\n", + MODULENAME, dev->name, f->name); + return; + } + } +#else + dir = proc_mkdir(dev->name, rtl8168_proc); + if (!dir) { + printk("Unable to initialize /proc/net/%s/%s\n", + MODULENAME, dev->name); + return; + } + + tp->proc_dir = dir; + proc_init_num++; + + for (f = rtl8168_proc_files; f->name[0]; f++) { + if (!create_proc_read_entry(f->name, S_IFREG | S_IRUGO, + dir, f->show, dev)) { + printk("Unable to initialize " + "/proc/net/%s/%s/%s\n", + MODULENAME, dev->name, f->name); + return; + } + } +#endif + } +} + +static void rtl8168_proc_remove(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->proc_dir) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + remove_proc_subtree(dev->name, rtl8168_proc); + proc_init_num--; + +#else + const struct rtl8168_proc_file *f; + struct rtl8168_private *tp = netdev_priv(dev); + + for (f = rtl8168_proc_files; f->name[0]; f++) + remove_proc_entry(f->name, tp->proc_dir); + + remove_proc_entry(dev->name, rtl8168_proc); + proc_init_num--; +#endif + tp->proc_dir = NULL; + } +} + +#endif //ENABLE_R8168_PROCFS + +static inline u16 map_phy_ocp_addr(u16 PageNum, u8 RegNum) +{ + u16 OcpPageNum = 0; + u8 OcpRegNum = 0; + u16 OcpPhyAddress = 0; + + if ( PageNum == 0 ) { + OcpPageNum = OCP_STD_PHY_BASE_PAGE + ( RegNum / 8 ); + OcpRegNum = 0x10 + ( RegNum % 8 ); + } else { + OcpPageNum = PageNum; + OcpRegNum = RegNum; + } + + OcpPageNum <<= 4; + + if ( OcpRegNum < 16 ) { + OcpPhyAddress = 0; + } else { + OcpRegNum -= 16; + OcpRegNum <<= 1; + + OcpPhyAddress = OcpPageNum + OcpRegNum; + } + + + return OcpPhyAddress; +} + +static void mdio_real_direct_write_phy_ocp(struct rtl8168_private *tp, + u32 RegAddr, + u32 value) +{ + u32 data32; + int i; + + if (tp->HwSuppPhyOcpVer == 0) + goto out; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + WARN_ON_ONCE(RegAddr % 2); +#endif + data32 = RegAddr/2; + data32 <<= OCPR_Addr_Reg_shift; + data32 |= OCPR_Write | value; + + RTL_W32(tp, PHYOCP, data32); + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + if (!(RTL_R32(tp, PHYOCP) & OCPR_Flag)) + break; + } +out: + return; +} + +static void mdio_direct_write_phy_ocp(struct rtl8168_private *tp, + u16 RegAddr, + u16 value) +{ + if (tp->rtk_enable_diag) + return; + + mdio_real_direct_write_phy_ocp(tp, RegAddr, value); +} + +static void rtl8168_mdio_write_phy_ocp(struct rtl8168_private *tp, + u16 PageNum, + u32 RegAddr, + u32 value) +{ + u16 ocp_addr; + + if (tp->rtk_enable_diag) + return; + + ocp_addr = map_phy_ocp_addr(PageNum, RegAddr); + + mdio_direct_write_phy_ocp(tp, ocp_addr, value); +} + +static void rtl8168_mdio_real_write_phy_ocp(struct rtl8168_private *tp, + u16 PageNum, + u32 RegAddr, + u32 value) +{ + u16 ocp_addr; + + ocp_addr = map_phy_ocp_addr(PageNum, RegAddr); + + mdio_real_direct_write_phy_ocp(tp, ocp_addr, value); +} + +static void mdio_real_write(struct rtl8168_private *tp, + u32 RegAddr, + u32 value) +{ + int i; + + if (RegAddr == 0x1F) { + tp->cur_page = value; + } + + if (tp->mcfg == CFG_METHOD_11) { + RTL_W32(tp, OCPDR, OCPDR_Write | + (RegAddr & OCPDR_Reg_Mask) << OCPDR_GPHY_Reg_shift | + (value & OCPDR_Data_Mask)); + RTL_W32(tp, OCPAR, OCPAR_GPHY_Write); + RTL_W32(tp, EPHY_RXER_NUM, 0); + + for (i = 0; i < 100; i++) { + mdelay(1); + if (!(RTL_R32(tp, OCPAR) & OCPAR_Flag)) + break; + } + } else { + if (tp->HwSuppPhyOcpVer > 0) { + if (RegAddr == 0x1F) { + return; + } + rtl8168_mdio_real_write_phy_ocp(tp, tp->cur_page, RegAddr, value); + } else { + if (tp->mcfg == CFG_METHOD_12 || tp->mcfg == CFG_METHOD_13) + RTL_W32(tp, 0xD0, RTL_R32(tp, 0xD0) & ~0x00020000); + + RTL_W32(tp, PHYAR, PHYAR_Write | + (RegAddr & PHYAR_Reg_Mask) << PHYAR_Reg_shift | + (value & PHYAR_Data_Mask)); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed writing to the specified MII register */ + if (!(RTL_R32(tp, PHYAR) & PHYAR_Flag)) { + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + break; + } + } + + if (tp->mcfg == CFG_METHOD_12 || tp->mcfg == CFG_METHOD_13) + RTL_W32(tp, 0xD0, RTL_R32(tp, 0xD0) | 0x00020000); + } + } +} + +void rtl8168_mdio_write(struct rtl8168_private *tp, + u16 RegAddr, + u16 value) +{ + if (tp->rtk_enable_diag) + return; + + mdio_real_write(tp, RegAddr, value); +} + +void rtl8168_mdio_prot_write(struct rtl8168_private *tp, + u32 RegAddr, + u32 value) +{ + mdio_real_write(tp, RegAddr, value); +} + +void rtl8168_mdio_prot_direct_write_phy_ocp(struct rtl8168_private *tp, + u32 RegAddr, + u32 value) +{ + mdio_real_direct_write_phy_ocp(tp, RegAddr, value); +} + +static u32 mdio_real_direct_read_phy_ocp(struct rtl8168_private *tp, + u32 RegAddr) +{ + u32 data32; + int i, value = 0; + + if (tp->HwSuppPhyOcpVer == 0) + goto out; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + WARN_ON_ONCE(RegAddr % 2); +#endif + data32 = RegAddr/2; + data32 <<= OCPR_Addr_Reg_shift; + + RTL_W32(tp, PHYOCP, data32); + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + if (RTL_R32(tp, PHYOCP) & OCPR_Flag) + break; + } + value = RTL_R32(tp, PHYOCP) & OCPDR_Data_Mask; + +out: + return value; +} + +static u32 mdio_direct_read_phy_ocp(struct rtl8168_private *tp, + u16 RegAddr) +{ + if (tp->rtk_enable_diag) + return 0xffffffff; + + return mdio_real_direct_read_phy_ocp(tp, RegAddr); +} + +static u32 rtl8168_mdio_read_phy_ocp(struct rtl8168_private *tp, + u16 PageNum, + u32 RegAddr) +{ + u16 ocp_addr; + + if (tp->rtk_enable_diag) + return 0xffffffff; + + ocp_addr = map_phy_ocp_addr(PageNum, RegAddr); + + return mdio_direct_read_phy_ocp(tp, ocp_addr); +} + +static u32 rtl8168_mdio_real_read_phy_ocp(struct rtl8168_private *tp, + u16 PageNum, + u32 RegAddr) +{ + u16 ocp_addr; + + ocp_addr = map_phy_ocp_addr(PageNum, RegAddr); + + return mdio_real_direct_read_phy_ocp(tp, ocp_addr); +} + +u32 mdio_real_read(struct rtl8168_private *tp, + u32 RegAddr) +{ + int i, value = 0; + + if (tp->mcfg==CFG_METHOD_11) { + RTL_W32(tp, OCPDR, OCPDR_Read | + (RegAddr & OCPDR_Reg_Mask) << OCPDR_GPHY_Reg_shift); + RTL_W32(tp, OCPAR, OCPAR_GPHY_Write); + RTL_W32(tp, EPHY_RXER_NUM, 0); + + for (i = 0; i < 100; i++) { + mdelay(1); + if (!(RTL_R32(tp, OCPAR) & OCPAR_Flag)) + break; + } + + mdelay(1); + RTL_W32(tp, OCPAR, OCPAR_GPHY_Read); + RTL_W32(tp, EPHY_RXER_NUM, 0); + + for (i = 0; i < 100; i++) { + mdelay(1); + if (RTL_R32(tp, OCPAR) & OCPAR_Flag) + break; + } + + value = RTL_R32(tp, OCPDR) & OCPDR_Data_Mask; + } else { + if (tp->HwSuppPhyOcpVer > 0) { + value = rtl8168_mdio_real_read_phy_ocp(tp, tp->cur_page, RegAddr); + } else { + if (tp->mcfg == CFG_METHOD_12 || tp->mcfg == CFG_METHOD_13) + RTL_W32(tp, 0xD0, RTL_R32(tp, 0xD0) & ~0x00020000); + + RTL_W32(tp, PHYAR, + PHYAR_Read | (RegAddr & PHYAR_Reg_Mask) << PHYAR_Reg_shift); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed retrieving data from the specified MII register */ + if (RTL_R32(tp, PHYAR) & PHYAR_Flag) { + value = RTL_R32(tp, PHYAR) & PHYAR_Data_Mask; + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + break; + } + } + + if (tp->mcfg == CFG_METHOD_12 || tp->mcfg == CFG_METHOD_13) + RTL_W32(tp, 0xD0, RTL_R32(tp, 0xD0) | 0x00020000); + } + } + + return value; +} + +u32 rtl8168_mdio_read(struct rtl8168_private *tp, + u16 RegAddr) +{ + if (tp->rtk_enable_diag) + return 0xffffffff; + + return mdio_real_read(tp, RegAddr); +} + +u32 rtl8168_mdio_prot_read(struct rtl8168_private *tp, + u32 RegAddr) +{ + return mdio_real_read(tp, RegAddr); +} + +u32 rtl8168_mdio_prot_direct_read_phy_ocp(struct rtl8168_private *tp, + u32 RegAddr) +{ + return mdio_real_direct_read_phy_ocp(tp, RegAddr); +} + +static void ClearAndSetEthPhyBit(struct rtl8168_private *tp, u8 addr, u16 clearmask, u16 setmask) +{ + u16 PhyRegValue; + + + PhyRegValue = rtl8168_mdio_read(tp, addr); + PhyRegValue &= ~clearmask; + PhyRegValue |= setmask; + rtl8168_mdio_write(tp, addr, PhyRegValue); +} + +void rtl8168_clear_eth_phy_bit(struct rtl8168_private *tp, u8 addr, u16 mask) +{ + ClearAndSetEthPhyBit(tp, + addr, + mask, + 0 + ); +} + +void rtl8168_set_eth_phy_bit(struct rtl8168_private *tp, u8 addr, u16 mask) +{ + ClearAndSetEthPhyBit(tp, + addr, + 0, + mask + ); +} + +void rtl8168_mac_ocp_write(struct rtl8168_private *tp, u16 reg_addr, u16 value) +{ + u32 data32; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + WARN_ON_ONCE(reg_addr % 2); +#endif + + data32 = reg_addr/2; + data32 <<= OCPR_Addr_Reg_shift; + data32 += value; + data32 |= OCPR_Write; + + RTL_W32(tp, MACOCP, data32); +} + +u16 rtl8168_mac_ocp_read(struct rtl8168_private *tp, u16 reg_addr) +{ + u32 data32; + u16 data16 = 0; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + WARN_ON_ONCE(reg_addr % 2); +#endif + + data32 = reg_addr/2; + data32 <<= OCPR_Addr_Reg_shift; + + RTL_W32(tp, MACOCP, data32); + data16 = (u16)RTL_R32(tp, MACOCP); + + return data16; +} + +#ifdef ENABLE_USE_FIRMWARE_FILE +static void mac_mcu_write(struct rtl8168_private *tp, u16 reg, u16 value) +{ + if (reg == 0x1f) { + tp->ocp_base = value << 4; + return; + } + + rtl8168_mac_ocp_write(tp, tp->ocp_base + reg, value); +} + +static u32 mac_mcu_read(struct rtl8168_private *tp, u16 reg) +{ + return rtl8168_mac_ocp_read(tp, tp->ocp_base + reg); +} +#endif + +static void +rtl8168_clear_and_set_mcu_ocp_bit( + struct rtl8168_private *tp, + u16 addr, + u16 clearmask, + u16 setmask +) +{ + u16 RegValue; + + RegValue = rtl8168_mac_ocp_read(tp, addr); + RegValue &= ~clearmask; + RegValue |= setmask; + rtl8168_mac_ocp_write(tp, addr, RegValue); +} + +static void +rtl8168_clear_mcu_ocp_bit( + struct rtl8168_private *tp, + u16 addr, + u16 mask +) +{ + rtl8168_clear_and_set_mcu_ocp_bit(tp, + addr, + mask, + 0 + ); +} + +static void +rtl8168_set_mcu_ocp_bit( + struct rtl8168_private *tp, + u16 addr, + u16 mask +) +{ + rtl8168_clear_and_set_mcu_ocp_bit(tp, + addr, + 0, + mask + ); +} + +static u32 real_ocp_read(struct rtl8168_private *tp, u16 addr, u8 len) +{ + int i, val_shift, shift = 0; + u32 value1 = 0, value2 = 0, mask; + + if (len > 4 || len <= 0) + return -1; + + while (len > 0) { + val_shift = addr % 4; + addr = addr & ~0x3; + + RTL_W32(tp, OCPAR, (0x0F<<12) | (addr&0xFFF)); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + if (RTL_R32(tp, OCPAR) & OCPAR_Flag) + break; + } + + if (len == 1) mask = (0xFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 2) mask = (0xFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 3) mask = (0xFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else mask = (0xFFFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + + value1 = RTL_R32(tp, OCPDR) & mask; + value2 |= (value1 >> val_shift * 8) << shift * 8; + + if (len <= 4 - val_shift) { + len = 0; + } else { + len -= (4 - val_shift); + shift = 4 - val_shift; + addr += 4; + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return value2; +} + +u32 rtl8168_ocp_read_with_oob_base_address(struct rtl8168_private *tp, u16 addr, u8 len, const u32 base_address) +{ + return rtl8168_eri_read_with_oob_base_address(tp, addr, len, ERIAR_OOB, base_address); +} + +u32 rtl8168_ocp_read(struct rtl8168_private *tp, u16 addr, u8 len) +{ + u32 value = 0; + + if (HW_DASH_SUPPORT_TYPE_2(tp)) + value = rtl8168_ocp_read_with_oob_base_address(tp, addr, len, NO_BASE_ADDRESS); + else if (HW_DASH_SUPPORT_TYPE_3(tp)) + value = rtl8168_ocp_read_with_oob_base_address(tp, addr, len, RTL8168FP_OOBMAC_BASE); + else + value = real_ocp_read(tp, addr, len); + + return value; +} + +static int real_ocp_write(struct rtl8168_private *tp, u16 addr, u8 len, u32 value) +{ + int i, val_shift, shift = 0; + u32 value1 = 0, mask; + + if (len > 4 || len <= 0) + return -1; + + while (len > 0) { + val_shift = addr % 4; + addr = addr & ~0x3; + + if (len == 1) mask = (0xFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 2) mask = (0xFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 3) mask = (0xFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else mask = (0xFFFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + + value1 = rtl8168_ocp_read(tp, addr, 4) & ~mask; + value1 |= ((value << val_shift * 8) >> shift * 8); + + RTL_W32(tp, OCPDR, value1); + RTL_W32(tp, OCPAR, OCPAR_Flag | (0x0F<<12) | (addr&0xFFF)); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed ERI write */ + if (!(RTL_R32(tp, OCPAR) & OCPAR_Flag)) + break; + } + + if (len <= 4 - val_shift) { + len = 0; + } else { + len -= (4 - val_shift); + shift = 4 - val_shift; + addr += 4; + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return 0; +} + +u32 rtl8168_ocp_write_with_oob_base_address(struct rtl8168_private *tp, u16 addr, u8 len, u32 value, const u32 base_address) +{ + return rtl8168_eri_write_with_oob_base_address(tp, addr, len, value, ERIAR_OOB, base_address); +} + +void rtl8168_ocp_write(struct rtl8168_private *tp, u16 addr, u8 len, u32 value) +{ + if (HW_DASH_SUPPORT_TYPE_2(tp)) + rtl8168_ocp_write_with_oob_base_address(tp, addr, len, value, NO_BASE_ADDRESS); + else if (HW_DASH_SUPPORT_TYPE_3(tp)) + rtl8168_ocp_write_with_oob_base_address(tp, addr, len, value, RTL8168FP_OOBMAC_BASE); + else + real_ocp_write(tp, addr, len, value); +} + +void rtl8168_oob_mutex_lock(struct rtl8168_private *tp) +{ + u8 reg_16, reg_a0; + u32 wait_cnt_0, wait_Cnt_1; + u16 ocp_reg_mutex_ib; + u16 ocp_reg_mutex_oob; + u16 ocp_reg_mutex_prio; + + if (!tp->DASH) + return; + + switch (tp->mcfg) { + case CFG_METHOD_11: + case CFG_METHOD_12: + ocp_reg_mutex_oob = 0x16; + ocp_reg_mutex_ib = 0x17; + ocp_reg_mutex_prio = 0x9C; + break; + case CFG_METHOD_13: + ocp_reg_mutex_oob = 0x06; + ocp_reg_mutex_ib = 0x07; + ocp_reg_mutex_prio = 0x9C; + break; + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + default: + ocp_reg_mutex_oob = 0x110; + ocp_reg_mutex_ib = 0x114; + ocp_reg_mutex_prio = 0x11C; + break; + } + + rtl8168_ocp_write(tp, ocp_reg_mutex_ib, 1, BIT_0); + reg_16 = rtl8168_ocp_read(tp, ocp_reg_mutex_oob, 1); + wait_cnt_0 = 0; + while(reg_16) { + reg_a0 = rtl8168_ocp_read(tp, ocp_reg_mutex_prio, 1); + if (reg_a0) { + rtl8168_ocp_write(tp, ocp_reg_mutex_ib, 1, 0x00); + reg_a0 = rtl8168_ocp_read(tp, ocp_reg_mutex_prio, 1); + wait_Cnt_1 = 0; + while(reg_a0) { + reg_a0 = rtl8168_ocp_read(tp, ocp_reg_mutex_prio, 1); + + wait_Cnt_1++; + + if (wait_Cnt_1 > 2000) + break; + }; + rtl8168_ocp_write(tp, ocp_reg_mutex_ib, 1, BIT_0); + + } + reg_16 = rtl8168_ocp_read(tp, ocp_reg_mutex_oob, 1); + + wait_cnt_0++; + + if (wait_cnt_0 > 2000) + break; + }; +} + +void rtl8168_oob_mutex_unlock(struct rtl8168_private *tp) +{ + u16 ocp_reg_mutex_ib; + u16 ocp_reg_mutex_oob; + u16 ocp_reg_mutex_prio; + + if (!tp->DASH) + return; + + switch (tp->mcfg) { + case CFG_METHOD_11: + case CFG_METHOD_12: + ocp_reg_mutex_oob = 0x16; + ocp_reg_mutex_ib = 0x17; + ocp_reg_mutex_prio = 0x9C; + break; + case CFG_METHOD_13: + ocp_reg_mutex_oob = 0x06; + ocp_reg_mutex_ib = 0x07; + ocp_reg_mutex_prio = 0x9C; + break; + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + default: + ocp_reg_mutex_oob = 0x110; + ocp_reg_mutex_ib = 0x114; + ocp_reg_mutex_prio = 0x11C; + break; + } + + rtl8168_ocp_write(tp, ocp_reg_mutex_prio, 1, BIT_0); + rtl8168_ocp_write(tp, ocp_reg_mutex_ib, 1, 0x00); +} + +void rtl8168_oob_notify(struct rtl8168_private *tp, u8 cmd) +{ + rtl8168_eri_write(tp, 0xE8, 1, cmd, ERIAR_ExGMAC); + + rtl8168_ocp_write(tp, 0x30, 1, 0x01); +} + +static int rtl8168_check_dash(struct rtl8168_private *tp) +{ + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + if (rtl8168_ocp_read(tp, 0x128, 1) & BIT_0) + return 1; + else + return 0; + } else { + u32 reg; + + if (tp->mcfg == CFG_METHOD_13) + reg = 0xb8; + else + reg = 0x10; + + if (rtl8168_ocp_read(tp, reg, 2) & 0x00008000) + return 1; + else + return 0; + } +} + +void rtl8168_dash2_disable_tx(struct rtl8168_private *tp) +{ + if (!tp->DASH) + return; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + u16 WaitCnt; + u8 TmpUchar; + + //Disable oob Tx + RTL_CMAC_W8(tp, CMAC_IBCR2, RTL_CMAC_R8(tp, CMAC_IBCR2) & ~( BIT_0 )); + WaitCnt = 0; + + //wait oob tx disable + do { + TmpUchar = RTL_CMAC_R8(tp, CMAC_IBISR0); + + if ( TmpUchar & ISRIMR_DASH_TYPE2_TX_DISABLE_IDLE ) { + break; + } + + udelay( 50 ); + WaitCnt++; + } while(WaitCnt < 2000); + + //Clear ISRIMR_DASH_TYPE2_TX_DISABLE_IDLE + RTL_CMAC_W8(tp, CMAC_IBISR0, RTL_CMAC_R8(tp, CMAC_IBISR0) | ISRIMR_DASH_TYPE2_TX_DISABLE_IDLE); + } +} + +void rtl8168_dash2_enable_tx(struct rtl8168_private *tp) +{ + if (!tp->DASH) + return; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + RTL_CMAC_W8(tp, CMAC_IBCR2, RTL_CMAC_R8(tp, CMAC_IBCR2) | BIT_0); + } +} + +void rtl8168_dash2_disable_rx(struct rtl8168_private *tp) +{ + if (!tp->DASH) + return; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + RTL_CMAC_W8(tp, CMAC_IBCR0, RTL_CMAC_R8(tp, CMAC_IBCR0) & ~( BIT_0 )); + } +} + +void rtl8168_dash2_enable_rx(struct rtl8168_private *tp) +{ + if (!tp->DASH) + return; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + RTL_CMAC_W8(tp, CMAC_IBCR0, RTL_CMAC_R8(tp, CMAC_IBCR0) | BIT_0); + } +} + +static void rtl8168_dash2_disable_txrx(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + rtl8168_dash2_disable_tx( tp ); + rtl8168_dash2_disable_rx( tp ); + } +} + +static u8 rtl8168_check_ephy_addr(struct rtl8168_private *tp, int addr) +{ + if (tp->mcfg != CFG_METHOD_35 && tp->mcfg != CFG_METHOD_36) + goto exit; + + if (addr & (BIT_6 | BIT_5)) + rtl8168_clear_and_set_mcu_ocp_bit(tp, 0xDE28, + (BIT_1 | BIT_0), + (addr >> 5) & (BIT_1 | BIT_0)); + + addr &= 0x1F; + +exit: + return addr; +} + +static void _rtl8168_ephy_write(struct rtl8168_private *tp, int addr, int value) +{ + int i; + + RTL_W32(tp, EPHYAR, + EPHYAR_Write | + (addr & EPHYAR_Reg_Mask) << EPHYAR_Reg_shift | + (value & EPHYAR_Data_Mask)); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed EPHY write */ + if (!(RTL_R32(tp, EPHYAR) & EPHYAR_Flag)) + break; + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); +} + +void rtl8168_ephy_write(struct rtl8168_private *tp, int addr, int value) +{ + _rtl8168_ephy_write(tp, rtl8168_check_ephy_addr(tp, addr), value); +} + +static u16 _rtl8168_ephy_read(struct rtl8168_private *tp, int addr) +{ + int i; + u16 value = 0xffff; + + RTL_W32(tp, EPHYAR, + EPHYAR_Read | (addr & EPHYAR_Reg_Mask) << EPHYAR_Reg_shift); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed EPHY read */ + if (RTL_R32(tp, EPHYAR) & EPHYAR_Flag) { + value = (u16) (RTL_R32(tp, EPHYAR) & EPHYAR_Data_Mask); + break; + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return value; +} + +u16 rtl8168_ephy_read(struct rtl8168_private *tp, int addr) +{ + return _rtl8168_ephy_read(tp, rtl8168_check_ephy_addr(tp, addr)); +} + +static void ClearAndSetPCIePhyBit(struct rtl8168_private *tp, u8 addr, u16 clearmask, u16 setmask) +{ + u16 EphyValue; + + EphyValue = rtl8168_ephy_read(tp, addr); + EphyValue &= ~clearmask; + EphyValue |= setmask; + rtl8168_ephy_write(tp, addr, EphyValue); +} + +static void ClearPCIePhyBit(struct rtl8168_private *tp, u8 addr, u16 mask) +{ + ClearAndSetPCIePhyBit( tp, + addr, + mask, + 0 + ); +} + +static void SetPCIePhyBit( struct rtl8168_private *tp, u8 addr, u16 mask) +{ + ClearAndSetPCIePhyBit( tp, + addr, + 0, + mask + ); +} + +static u32 +rtl8168_csi_other_fun_read(struct rtl8168_private *tp, + u8 multi_fun_sel_bit, + u32 addr) +{ + u32 cmd; + int i; + u32 value = 0; + + cmd = CSIAR_Read | CSIAR_ByteEn << CSIAR_ByteEn_shift | (addr & CSIAR_Addr_Mask); + + if (tp->mcfg != CFG_METHOD_20 && tp->mcfg != CFG_METHOD_23 && + tp->mcfg != CFG_METHOD_26 && tp->mcfg != CFG_METHOD_27 && + tp->mcfg != CFG_METHOD_28 && tp->mcfg != CFG_METHOD_31 && + tp->mcfg != CFG_METHOD_32 && tp->mcfg != CFG_METHOD_33 && + tp->mcfg != CFG_METHOD_34) { + multi_fun_sel_bit = 0; + } + + if ( multi_fun_sel_bit > 7 ) { + return 0xffffffff; + } + + cmd |= multi_fun_sel_bit << 16; + + RTL_W32(tp, CSIAR, cmd); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed CSI read */ + if (RTL_R32(tp, CSIAR) & CSIAR_Flag) { + value = (u32)RTL_R32(tp, CSIDR); + break; + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return value; +} + +static void +rtl8168_csi_other_fun_write(struct rtl8168_private *tp, + u8 multi_fun_sel_bit, + u32 addr, + u32 value) +{ + u32 cmd; + int i; + + RTL_W32(tp, CSIDR, value); + cmd = CSIAR_Write | CSIAR_ByteEn << CSIAR_ByteEn_shift | (addr & CSIAR_Addr_Mask); + if (tp->mcfg != CFG_METHOD_20 && tp->mcfg != CFG_METHOD_23 && + tp->mcfg != CFG_METHOD_26 && tp->mcfg != CFG_METHOD_27 && + tp->mcfg != CFG_METHOD_28 && tp->mcfg != CFG_METHOD_31 && + tp->mcfg != CFG_METHOD_32 && tp->mcfg != CFG_METHOD_33 && + tp->mcfg != CFG_METHOD_34) { + multi_fun_sel_bit = 0; + } + + if ( multi_fun_sel_bit > 7 ) { + return; + } + + cmd |= multi_fun_sel_bit << 16; + + RTL_W32(tp, CSIAR, cmd); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed CSI write */ + if (!(RTL_R32(tp, CSIAR) & CSIAR_Flag)) + break; + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); +} + +static u32 +rtl8168_csi_read(struct rtl8168_private *tp, + u32 addr) +{ + u8 multi_fun_sel_bit; + + if (tp->mcfg == CFG_METHOD_20) + multi_fun_sel_bit = 2; + else if (tp->mcfg == CFG_METHOD_26 || tp->mcfg == CFG_METHOD_31 || + tp->mcfg == CFG_METHOD_32 || tp->mcfg == CFG_METHOD_33 || + tp->mcfg == CFG_METHOD_34) + multi_fun_sel_bit = 1; + else + multi_fun_sel_bit = 0; + + return rtl8168_csi_other_fun_read(tp, multi_fun_sel_bit, addr); +} + +static void +rtl8168_csi_write(struct rtl8168_private *tp, + u32 addr, + u32 value) +{ + u8 multi_fun_sel_bit; + + if (tp->mcfg == CFG_METHOD_20) + multi_fun_sel_bit = 2; + else if (tp->mcfg == CFG_METHOD_26 || tp->mcfg == CFG_METHOD_31 || + tp->mcfg == CFG_METHOD_32 || tp->mcfg == CFG_METHOD_33 || + tp->mcfg == CFG_METHOD_34) + multi_fun_sel_bit = 1; + else + multi_fun_sel_bit = 0; + + rtl8168_csi_other_fun_write(tp, multi_fun_sel_bit, addr, value); +} + +static u8 +rtl8168_csi_fun0_read_byte(struct rtl8168_private *tp, + u32 addr) +{ + u8 RetVal = 0; + + if (tp->mcfg == CFG_METHOD_20 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) { + u32 TmpUlong; + u16 RegAlignAddr; + u8 ShiftByte; + + RegAlignAddr = addr & ~(0x3); + ShiftByte = addr & (0x3); + TmpUlong = rtl8168_csi_other_fun_read(tp, 0, RegAlignAddr); + TmpUlong >>= (8*ShiftByte); + RetVal = (u8)TmpUlong; + } else { + struct pci_dev *pdev = tp->pci_dev; + + pci_read_config_byte(pdev, addr, &RetVal); + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return RetVal; +} + +static void +rtl8168_csi_fun0_write_byte(struct rtl8168_private *tp, + u32 addr, + u8 value) +{ + if (tp->mcfg == CFG_METHOD_20 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) { + u32 TmpUlong; + u16 RegAlignAddr; + u8 ShiftByte; + + RegAlignAddr = addr & ~(0x3); + ShiftByte = addr & (0x3); + TmpUlong = rtl8168_csi_other_fun_read(tp, 0, RegAlignAddr); + TmpUlong &= ~(0xFF << (8*ShiftByte)); + TmpUlong |= (value << (8*ShiftByte)); + rtl8168_csi_other_fun_write( tp, 0, RegAlignAddr, TmpUlong ); + } else { + struct pci_dev *pdev = tp->pci_dev; + + pci_write_config_byte(pdev, addr, value); + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); +} + +static void +rtl8168_clear_and_set_other_fun_pci_bit(struct rtl8168_private *tp, + u8 multi_fun_sel_bit, + u32 addr, + u32 clearmask, + u32 setmask) +{ + u32 TmpUlong; + + TmpUlong = rtl8168_csi_other_fun_read(tp, multi_fun_sel_bit, addr); + TmpUlong &= ~clearmask; + TmpUlong |= setmask; + rtl8168_csi_other_fun_write(tp, multi_fun_sel_bit, addr, TmpUlong); +} + +static void +rtl8168_other_fun_dev_pci_setting(struct rtl8168_private *tp, + u32 addr, + u32 clearmask, + u32 setmask, + u8 multi_fun_sel_bit) +{ + u32 TmpUlong; + u8 i; + u8 FunBit; + + for (i = 0; i < 8; i++) { + FunBit = (1 << i); + if (FunBit & multi_fun_sel_bit) { + u8 set_other_fun = TRUE; + + switch(tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + //0: UMAC, 1: TCR1, 2: TCR2, 3: KCS, 4: EHCI(Control by EHCI Driver) + if (i < 5) { + TmpUlong = rtl8168_csi_other_fun_read(tp, i, 0x00); + if (TmpUlong == 0xFFFFFFFF) + set_other_fun = TRUE; + else + set_other_fun = FALSE; + } + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + //0: BMC, 1: NIC, 2: TCR, 3: VGA/PCIE_TO_USB, 4: EHCI, 5: WIFI, 6: WIFI, 7: KCS + if (i == 5 || i == 6) { + if (tp->DASH) { + TmpUlong = rtl8168_ocp_read(tp, 0x184, 4); + if (TmpUlong & BIT_26) + set_other_fun = FALSE; + else + set_other_fun = TRUE; + } + } else { //function 0/1/2/3/4/7 + TmpUlong = rtl8168_csi_other_fun_read(tp, i, 0x00); + if (TmpUlong == 0xFFFFFFFF) + set_other_fun = TRUE; + else + set_other_fun = FALSE; + } + break; + default: + return; + } + + if (set_other_fun) + rtl8168_clear_and_set_other_fun_pci_bit(tp, i, addr, clearmask, setmask); + } + } +} + +static void +rtl8168_set_dash_other_fun_dev_state_change(struct rtl8168_private *tp, + u8 dev_state, + u8 multi_fun_sel_bit) +{ + u32 clearmask; + u32 setmask; + + if (dev_state == 0) { + // + // goto D0 + // + clearmask = (BIT_0 | BIT_1); + setmask = 0; + + rtl8168_other_fun_dev_pci_setting(tp, 0x44, clearmask, setmask, multi_fun_sel_bit); + } else { + // + // goto D3 + // + clearmask = 0; + setmask = (BIT_0 | BIT_1); + + rtl8168_other_fun_dev_pci_setting(tp, 0x44, clearmask, setmask, multi_fun_sel_bit); + } +} + +static void +rtl8168_set_dash_other_fun_dev_aspm_clkreq(struct rtl8168_private *tp, + u8 aspm_val, + u8 clkreq_en, + u8 multi_fun_sel_bit) +{ + u32 clearmask; + u32 setmask; + + aspm_val &= (BIT_0 | BIT_1); + clearmask = (BIT_0 | BIT_1 | BIT_8); + setmask = aspm_val; + if (clkreq_en) + setmask |= BIT_8; + + rtl8168_other_fun_dev_pci_setting(tp, 0x80, clearmask, setmask, multi_fun_sel_bit); +} + +/* +static void +rtl8168_set_dash_other_fun_dev_pci_cmd_register(struct rtl8168_private *tp, + u8 pci_cmd_reg, + u8 multi_fun_sel_bit) +{ + u32 clearmask; + u32 setmask; + + pci_cmd_reg &= (BIT_0 | BIT_1 | BIT_2); + + clearmask = (BIT_0 | BIT_1 | BIT_2); + setmask = pci_cmd_reg; + + rtl8168_other_fun_dev_pci_setting(tp, 0x04, clearmask, setmask, multi_fun_sel_bit); +} +*/ + +u32 rtl8168_eri_read_with_oob_base_address(struct rtl8168_private *tp, int addr, int len, int type, const u32 base_address) +{ + int i, val_shift, shift = 0; + u32 value1 = 0, value2 = 0, mask; + u32 eri_cmd; + const u32 transformed_base_address = ((base_address & 0x00FFF000) << 6) | (base_address & 0x000FFF); + + if (len > 4 || len <= 0) + return -1; + + while (len > 0) { + val_shift = addr % ERIAR_Addr_Align; + addr = addr & ~0x3; + + eri_cmd = ERIAR_Read | + transformed_base_address | + type << ERIAR_Type_shift | + ERIAR_ByteEn << ERIAR_ByteEn_shift | + (addr & 0x0FFF); + if (addr & 0xF000) { + u32 tmp; + + tmp = addr & 0xF000; + tmp >>= 12; + eri_cmd |= (tmp << 20) & 0x00F00000; + } + + RTL_W32(tp, ERIAR, eri_cmd); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed ERI read */ + if (RTL_R32(tp, ERIAR) & ERIAR_Flag) + break; + } + + if (len == 1) mask = (0xFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 2) mask = (0xFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 3) mask = (0xFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else mask = (0xFFFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + + value1 = RTL_R32(tp, ERIDR) & mask; + value2 |= (value1 >> val_shift * 8) << shift * 8; + + if (len <= 4 - val_shift) { + len = 0; + } else { + len -= (4 - val_shift); + shift = 4 - val_shift; + addr += 4; + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return value2; +} + +u32 rtl8168_eri_read(struct rtl8168_private *tp, int addr, int len, int type) +{ + return rtl8168_eri_read_with_oob_base_address(tp, addr, len, type, 0); +} + +int rtl8168_eri_write_with_oob_base_address(struct rtl8168_private *tp, int addr, int len, u32 value, int type, const u32 base_address) +{ + int i, val_shift, shift = 0; + u32 value1 = 0, mask; + u32 eri_cmd; + const u32 transformed_base_address = ((base_address & 0x00FFF000) << 6) | (base_address & 0x000FFF); + + if (len > 4 || len <= 0) + return -1; + + while (len > 0) { + val_shift = addr % ERIAR_Addr_Align; + addr = addr & ~0x3; + + if (len == 1) mask = (0xFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 2) mask = (0xFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else if (len == 3) mask = (0xFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + else mask = (0xFFFFFFFF << (val_shift * 8)) & 0xFFFFFFFF; + + value1 = rtl8168_eri_read_with_oob_base_address(tp, addr, 4, type, base_address) & ~mask; + value1 |= ((value << val_shift * 8) >> shift * 8); + + RTL_W32(tp, ERIDR, value1); + + eri_cmd = ERIAR_Write | + transformed_base_address | + type << ERIAR_Type_shift | + ERIAR_ByteEn << ERIAR_ByteEn_shift | + (addr & 0x0FFF); + if (addr & 0xF000) { + u32 tmp; + + tmp = addr & 0xF000; + tmp >>= 12; + eri_cmd |= (tmp << 20) & 0x00F00000; + } + + RTL_W32(tp, ERIAR, eri_cmd); + + for (i = 0; i < R8168_CHANNEL_WAIT_COUNT; i++) { + udelay(R8168_CHANNEL_WAIT_TIME); + + /* Check if the RTL8168 has completed ERI write */ + if (!(RTL_R32(tp, ERIAR) & ERIAR_Flag)) + break; + } + + if (len <= 4 - val_shift) { + len = 0; + } else { + len -= (4 - val_shift); + shift = 4 - val_shift; + addr += 4; + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return 0; +} + +int rtl8168_eri_write(struct rtl8168_private *tp, int addr, int len, u32 value, int type) +{ + return rtl8168_eri_write_with_oob_base_address(tp, addr, len, value, type, NO_BASE_ADDRESS); +} + +static void +rtl8168_enable_rxdvgate(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_3); + mdelay(2); + break; + } +} + +static void +rtl8168_disable_rxdvgate(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) & ~BIT_3); + mdelay(2); + break; + } +} + +static u8 +rtl8168_is_gpio_low(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 gpio_low = FALSE; + + switch (tp->HwSuppCheckPhyDisableModeVer) { + case 1: + case 2: + if (!(rtl8168_mac_ocp_read(tp, 0xDC04) & BIT_9)) + gpio_low = TRUE; + break; + case 3: + if (!(rtl8168_mac_ocp_read(tp, 0xDC04) & BIT_13)) + gpio_low = TRUE; + break; + } + + if (gpio_low) + dprintk("gpio is low.\n"); + + return gpio_low; +} + +static u8 +rtl8168_is_phy_disable_mode_enabled(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 phy_disable_mode_enabled = FALSE; + + switch (tp->HwSuppCheckPhyDisableModeVer) { + case 1: + if (rtl8168_mac_ocp_read(tp, 0xDC20) & BIT_1) + phy_disable_mode_enabled = TRUE; + break; + case 2: + case 3: + if (RTL_R8(tp, 0xF2) & BIT_5) + phy_disable_mode_enabled = TRUE; + break; + } + + if (phy_disable_mode_enabled) + dprintk("phy disable mode enabled.\n"); + + return phy_disable_mode_enabled; +} + +static u8 +rtl8168_is_in_phy_disable_mode(struct net_device *dev) +{ + u8 in_phy_disable_mode = FALSE; + + if (rtl8168_is_phy_disable_mode_enabled(dev) && rtl8168_is_gpio_low(dev)) + in_phy_disable_mode = TRUE; + + if (in_phy_disable_mode) + dprintk("Hardware is in phy disable mode.\n"); + + return in_phy_disable_mode; +} + +void +rtl8168_wait_txrx_fifo_empty(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i; + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + for (i = 0; i < 10; i++) { + udelay(100); + if (RTL_R32(tp, TxConfig) & BIT_11) + break; + } + + for (i = 0; i < 10; i++) { + udelay(100); + if ((RTL_R8(tp, MCUCmd_reg) & (Txfifo_empty | Rxfifo_empty)) == (Txfifo_empty | Rxfifo_empty)) + break; + } + + mdelay(1); + break; + } +} + +static int rtl8168_wait_dash_fw_ready(struct rtl8168_private *tp) +{ + int rc = -1; + + if (!HW_DASH_SUPPORT_DASH(tp)) + goto out; + + if (!tp->DASH) + goto out; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + int timeout; + + for (timeout = 0; timeout < 10; timeout++) { + mdelay(10); + if (rtl8168_ocp_read(tp, 0x124, 1) & BIT_0) { + rc = 1; + goto out; + } + } + } else { + u32 reg; + int timeout; + + if (tp->mcfg == CFG_METHOD_13) + reg = 0xB8; + else + reg = 0x10; + + for (timeout = 0; timeout < 10; timeout++) { + mdelay(10); + if (rtl8168_ocp_read(tp, reg, 2) & BIT_11) { + rc = 1; + goto out; + } + } + } + + rc = 0; + +out: + return rc; +} + +static void rtl8168_driver_start(struct rtl8168_private *tp) +{ + //change other device state to D0. + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + rtl8168_set_dash_other_fun_dev_aspm_clkreq(tp, 3, 1, 0x1E); + rtl8168_set_dash_other_fun_dev_state_change(tp, 3, 0x1E); + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_set_dash_other_fun_dev_aspm_clkreq(tp, 3, 1, 0xFC); + rtl8168_set_dash_other_fun_dev_state_change(tp, 3, 0xFC); + break; + } + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + u32 tmp_value; + + rtl8168_ocp_write(tp, 0x180, 1, OOB_CMD_DRIVER_START); + tmp_value = rtl8168_ocp_read(tp, 0x30, 1); + tmp_value |= BIT_0; + rtl8168_ocp_write(tp, 0x30, 1, tmp_value); + + rtl8168_wait_dash_fw_ready(tp); + } else { + + if (tp->mcfg == CFG_METHOD_13) + RTL_W8(tp, TwiCmdReg, RTL_R8(tp, TwiCmdReg) | ( BIT_7 )); + + rtl8168_oob_notify(tp, OOB_CMD_DRIVER_START); + + rtl8168_wait_dash_fw_ready(tp); + } +} + +static void rtl8168_driver_stop(struct rtl8168_private *tp) +{ + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + struct net_device *dev = tp->dev; + u32 tmp_value; + + rtl8168_dash2_disable_txrx(dev); + + rtl8168_ocp_write(tp, 0x180, 1, OOB_CMD_DRIVER_STOP); + tmp_value = rtl8168_ocp_read(tp, 0x30, 1); + tmp_value |= BIT_0; + rtl8168_ocp_write(tp, 0x30, 1, tmp_value); + + rtl8168_wait_dash_fw_ready(tp); + } else { + rtl8168_oob_notify(tp, OOB_CMD_DRIVER_STOP); + + rtl8168_wait_dash_fw_ready(tp); + + if (tp->mcfg == CFG_METHOD_13) + RTL_W8(tp, TwiCmdReg, RTL_R8(tp, TwiCmdReg) & ~( BIT_7 )); + } + + //change other device state to D3. + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + rtl8168_set_dash_other_fun_dev_state_change(tp, 3, 0x0E); + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_set_dash_other_fun_dev_state_change(tp, 3, 0xFD); + break; + } +} + + +static inline u16 rtl8168_get_isr_by_vector(struct rtl8168_private *tp, + u32 message_id) +{ + if (message_id >= R8168_MAX_MSIX_VEC) + return 0; + + if (message_id == 0) + return RTL_R16(tp, tp->isr_reg[0]); + else + return RTL_R8(tp, tp->isr_reg[message_id]); +} + +static inline void rtl8168_clear_isr_by_vector(struct rtl8168_private *tp, + u32 message_id, u16 val) +{ + if (message_id >= R8168_MAX_MSIX_VEC) + return; + + if (message_id == 0) { + RTL_W16(tp, tp->isr_reg[0], val); + + if (val & RxDescUnavail) + tp->rx_ring[message_id].rdu++; + if (val & TxDescUnavail) + tp->tx_ring[message_id].tdu++; + } else { + RTL_W8(tp, tp->isr_reg[message_id], val); + + if (val & RxDU1) + tp->rx_ring[message_id].rdu++; + } +} + +static inline void rtl8168_self_clear_isr_by_vector(struct rtl8168_private *tp, + u32 message_id) +{ + u16 val; + + if (message_id >= R8168_MAX_MSIX_VEC) + return; + + val = rtl8168_get_isr_by_vector(tp, message_id); + if ((message_id == 0) && (val & RxFIFOOver)) + tp->rx_fifo_of++; + + switch (tp->mcfg) { + case CFG_METHOD_9 ... CFG_METHOD_37: + /* RX_OVERFLOW RE-START mechanism now HW handles it automatically*/ + if (message_id == 0) + val &= ~RxFIFOOver; + break; + default: + break; + } + rtl8168_clear_isr_by_vector(tp, message_id, val); +} + +#ifdef ENABLE_DASH_SUPPORT + +inline void +rtl8168_enable_dash2_interrupt(struct rtl8168_private *tp) +{ + if (!tp->DASH) + return; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + RTL_CMAC_W8(tp, CMAC_IBIMR0, ( ISRIMR_DASH_TYPE2_ROK | ISRIMR_DASH_TYPE2_TOK | ISRIMR_DASH_TYPE2_TDU | ISRIMR_DASH_TYPE2_RDU | ISRIMR_DASH_TYPE2_RX_DISABLE_IDLE )); + } +} + +static inline void +rtl8168_disable_dash2_interrupt(struct rtl8168_private *tp) +{ + if (!tp->DASH) + return; + + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + RTL_CMAC_W8(tp, CMAC_IBIMR0, 0); + } +} +#endif + +static inline void +rtl8168_enable_interrupt(struct rtl8168_private *tp) +{ + int i; + for (i=0; inum_rx_rings; i++) + rtl8168_enable_interrupt_by_vector(tp, i); +} + +static inline void +rtl8168_enable_lib_interrupt(struct rtl8168_private *tp) +{ + int i; + + for (i=1; inum_rx_rings; i++) + rtl8168_disable_interrupt_by_vector(tp, i); +} + +static inline void +rtl8168_disable_lib_interrupt(struct rtl8168_private *tp) +{ + int i; + + for (i=1; ihw_supp_irq_nvecs; i++) + rtl8168_disable_interrupt_by_vector(tp, i); +} + +static inline void +rtl8168_switch_to_hw_interrupt(struct rtl8168_private *tp) +{ + RTL_W32(tp, TimeInt0, 0x0000); + + rtl8168_enable_interrupt(tp); + + rtl8168_enable_lib_interrupt(tp); +} + +static inline void +rtl8168_switch_to_timer_interrupt(struct rtl8168_private *tp) +{ + if (tp->use_timer_interrrupt) { + RTL_W32(tp, TimeInt0, timer_count); + RTL_W32(tp, TCTR, timer_count); + RTL_W16(tp, tp->imr_reg[0], tp->timer_intr_mask); + +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) + rtl8168_enable_dash2_interrupt(tp); +#endif + } else { + rtl8168_switch_to_hw_interrupt(tp); + } +} + +static void +rtl8168_irq_mask_and_ack(struct rtl8168_private *tp) +{ + rtl8168_disable_all_interrupt(tp); +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) { + if (tp->dash_printer_enabled) { + rtl8168_clear_isr_by_vector(tp, 0, + rtl8168_get_hw_isr_by_vector(tp, 0) & + ~(ISRIMR_DASH_INTR_EN | ISRIMR_DASH_INTR_CMAC_RESET)); + } else { + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + RTL_CMAC_W8(tp, CMAC_IBISR0, RTL_CMAC_R8(tp, CMAC_IBISR0)); + } + } + } else { + rtl8168_self_clear_isr_by_vector(tp, 0); + } +#else + rtl8168_self_clear_isr_by_vector(tp, 0); +#endif + if (tp->hw_supp_irq_nvecs > 1) { + int i; + for (i=1; ihw_supp_irq_nvecs; i++) + rtl8168_self_clear_isr_by_vector(tp, i); + } +} + +static void +rtl8168_disable_rx_packet_filter(struct rtl8168_private *tp) +{ + + RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) & + ~(AcceptErr | AcceptRunt |AcceptBroadcast | AcceptMulticast | + AcceptMyPhys | AcceptAllPhys)); +} + +static void +rtl8168_nic_reset(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i; + + rtl8168_disable_rx_packet_filter(tp); + + rtl8168_enable_rxdvgate(dev); + + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + mdelay(10); + break; + case CFG_METHOD_4: + case CFG_METHOD_5: + case CFG_METHOD_6: + case CFG_METHOD_7: + case CFG_METHOD_8: + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_14: + case CFG_METHOD_15: + RTL_W8(tp, ChipCmd, StopReq | CmdRxEnb | CmdTxEnb); + udelay(100); + break; + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + for (i = 0; i < 2000; i++) { + if (!(RTL_R8(tp, TxPoll) & NPQ)) break; + udelay(100); + } + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + mdelay(2); + break; + default: + mdelay(10); + break; + } + + rtl8168_wait_txrx_fifo_empty(dev); + + /* Soft reset the chip. */ + RTL_W8(tp, ChipCmd, CmdReset); + + /* Check that the chip has finished the reset. */ + for (i = 100; i > 0; i--) { + udelay(100); + if ((RTL_R8(tp, ChipCmd) & CmdReset) == 0) + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_11: + rtl8168_oob_mutex_lock(tp); + rtl8168_ocp_write(tp, 0x10, 2, rtl8168_ocp_read(tp, 0x010, 2)&~0x00004000); + rtl8168_oob_mutex_unlock(tp); + + rtl8168_oob_notify(tp, OOB_CMD_RESET); + + for (i = 0; i < 10; i++) { + mdelay(10); + if (rtl8168_ocp_read(tp, 0x010, 2)&0x00004000) + break; + } + + for (i = 0; i < 5; i++) { + if ( rtl8168_ocp_read(tp, 0x034, 1) == 0) + break; + } + break; + } +} + +static void +rtl8168_hw_clear_timer_int(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + RTL_W32(tp, TimeInt0, 0x0000); + + switch (tp->mcfg) { + case CFG_METHOD_4: + case CFG_METHOD_5: + case CFG_METHOD_6: + case CFG_METHOD_7: + case CFG_METHOD_8: + RTL_W32(tp, TimeInt1, 0x0000); + break; + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + RTL_W32(tp, TimeInt1, 0x0000); + RTL_W32(tp, TimeInt2, 0x0000); + RTL_W32(tp, TimeInt3, 0x0000); + break; + } +} + +void +rtl8168_hw_reset(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_lib_reset_prepare(tp); + + /* Disable interrupts */ + rtl8168_irq_mask_and_ack(tp); + + rtl8168_hw_clear_timer_int(dev); + + rtl8168_nic_reset(dev); +} + +static void rtl8168_doorbell(struct rtl8168_tx_ring *ring) +{ + struct rtl8168_private *tp = ring->priv; + + if (ring->index > 0) + RTL_W8(tp, TxPoll, HPQ); + else + RTL_W8(tp, TxPoll, NPQ); +} + +static void rtl8168_mac_loopback_test(struct rtl8168_private *tp) +{ + struct rtl8168_tx_ring *tx_ring = &tp->tx_ring[0]; + struct rtl8168_rx_ring *rx_ring = &tp->rx_ring[0]; + struct pci_dev *pdev = tp->pci_dev; + struct net_device *dev = tp->dev; + struct sk_buff *skb, *rx_skb; + dma_addr_t mapping; + struct TxDesc *txd; + struct RxDesc *rxd; + void *tmpAddr; + u32 len, rx_len, rx_cmd = 0; + u16 type; + u8 pattern; + int i; + + if (tp->DASH) + return; + + pattern = 0x5A; + len = 60; + type = htons(ETH_P_IP); + txd = tx_ring->TxDescArray; + rxd = rtl8168_get_rxdesc(tp, tp->RxDescArray, 0, rx_ring->index); + rx_skb = rx_ring->Rx_skbuff[0]; + RTL_W32(tp, TxConfig, (RTL_R32(tp, TxConfig) & ~0x00060000) | 0x00020000); + + do { + skb = dev_alloc_skb(len + RTK_RX_ALIGN); + if (unlikely(!skb)) + dev_printk(KERN_NOTICE, tp_to_dev(tp), "-ENOMEM;\n"); + } while (unlikely(skb == NULL)); + skb_reserve(skb, RTK_RX_ALIGN); + + memcpy(skb_put(skb, dev->addr_len), dev->dev_addr, dev->addr_len); + memcpy(skb_put(skb, dev->addr_len), dev->dev_addr, dev->addr_len); + memcpy(skb_put(skb, sizeof(type)), &type, sizeof(type)); + tmpAddr = skb_put(skb, len - 14); + + mapping = dma_map_single(tp_to_dev(tp), skb->data, len, DMA_TO_DEVICE); + dma_sync_single_for_cpu(tp_to_dev(tp), le64_to_cpu(mapping), + len, DMA_TO_DEVICE); + txd->addr = cpu_to_le64(mapping); + txd->opts2 = 0; + while (1) { + mem_clear(tmpAddr, len - 14); + dma_sync_single_for_device(&tp->pci_dev->dev, + le64_to_cpu(mapping), + len, DMA_TO_DEVICE); + txd->opts1 = cpu_to_le32(DescOwn | FirstFrag | LastFrag | len); + + RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) | AcceptMyPhys); + + smp_wmb(); + rtl8168_doorbell(tx_ring); /* set polling bit */ + + for (i = 0; i < 50; i++) { + udelay(200); + rx_cmd = le32_to_cpu(rxd->opts1); + if ((rx_cmd & DescOwn) == 0) + break; + } + + RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) & ~(AcceptErr | AcceptRunt | AcceptBroadcast | AcceptMulticast | AcceptMyPhys | AcceptAllPhys)); + + rx_len = rx_cmd & 0x3FFF; + rx_len -= 4; + rxd->opts1 = cpu_to_le32(DescOwn | tp->rx_buf_sz); + + dma_sync_single_for_cpu(tp_to_dev(tp), le64_to_cpu(mapping), len, DMA_TO_DEVICE); + + if (rx_len == len) { + dma_sync_single_for_cpu(tp_to_dev(tp), le64_to_cpu(rxd->addr), tp->rx_buf_sz, DMA_FROM_DEVICE); + i = memcmp(skb->data, rx_skb->data, rx_len); + dma_sync_single_for_device(&tp->pci_dev->dev, le64_to_cpu(rxd->addr), tp->rx_buf_sz, DMA_FROM_DEVICE); + if (i == 0) { +// dev_printk(KERN_INFO, tp_to_dev(tp), "loopback test finished\n",rx_len,len); + break; + } + } + + rtl8168_hw_reset(dev); + rtl8168_disable_rxdvgate(dev); + RTL_W8(tp, ChipCmd, CmdTxEnb | CmdRxEnb); + } + tx_ring->dirty_tx++; + rx_ring->dirty_rx++; + tx_ring->cur_tx++; + rx_ring->cur_rx++; + dma_unmap_single(&pdev->dev, le64_to_cpu(mapping), + len, DMA_TO_DEVICE); + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) & ~0x00060000); + dev_kfree_skb_any(skb); + rtl8168_clear_isr_by_vector(tp, 0, 0xFFBF); +} + +static unsigned int +rtl8168_xmii_reset_pending(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int retval; + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + retval = rtl8168_mdio_read(tp, MII_BMCR) & BMCR_RESET; + + return retval; +} + +static unsigned int +rtl8168_xmii_link_ok(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 status; + + status = RTL_R8(tp, PHYstatus); + if (status == 0xff) + return 0; + + return (status & LinkStatus) ? 1 : 0; +} + +static int +rtl8168_wait_phy_reset_complete(struct rtl8168_private *tp) +{ + int i, val; + + for (i = 0; i < 2500; i++) { + val = rtl8168_mdio_read(tp, MII_BMCR) & BMCR_RESET; + if (!val) + return 0; + + mdelay(1); + } + + return -1; +} + +static void +rtl8168_xmii_reset_enable(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (rtl8168_is_in_phy_disable_mode(dev)) + return; + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, MII_ADVERTISE, rtl8168_mdio_read(tp, MII_ADVERTISE) & + ~(ADVERTISE_10HALF | ADVERTISE_10FULL | + ADVERTISE_100HALF | ADVERTISE_100FULL)); + rtl8168_mdio_write(tp, MII_CTRL1000, rtl8168_mdio_read(tp, MII_CTRL1000) & + ~(ADVERTISE_1000HALF | ADVERTISE_1000FULL)); + rtl8168_mdio_write(tp, MII_BMCR, BMCR_RESET | BMCR_ANENABLE); + + if (rtl8168_wait_phy_reset_complete(tp) == 0) + return; + + if (netif_msg_link(tp)) + printk(KERN_ERR "%s: PHY reset failed.\n", dev->name); +} + +static void +rtl8168dp_10mbps_gphy_para(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 status = RTL_R8(tp, PHYstatus); + + if ((status & LinkStatus) && (status & _10bps)) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x10, 0x04EE); + } else { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x10, 0x01EE); + } +} + +void rtl8168_init_ring_indexes(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < tp->HwSuppNumTxQueues; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + ring->dirty_tx = ring->cur_tx = 0; + ring->index = i; + ring->priv = tp; + } + + for (i = 0; i < tp->HwSuppNumRxQueues; i++) { + struct rtl8168_rx_ring *ring = &tp->rx_ring[i]; + ring->dirty_rx = ring->cur_rx = 0; + ring->index = i; + ring->priv = tp; + } + +#ifdef ENABLE_LIB_SUPPORT + for (i = 0; i < tp->HwSuppNumTxQueues; i++) { + struct rtl8168_ring *ring = &tp->lib_tx_ring[i]; + ring->direction = RTL8168_CH_DIR_TX; + ring->queue_num = i; + ring->private = tp; + } + + for (i = 0; i < tp->HwSuppNumRxQueues; i++) { + struct rtl8168_ring *ring = &tp->lib_rx_ring[i]; + ring->direction = RTL8168_CH_DIR_RX; + ring->queue_num = i; + ring->private = tp; + } +#endif +} + +static void +rtl8168_issue_offset_99_event(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_27: + case CFG_METHOD_28: + if (tp->mcfg == CFG_METHOD_24 || tp->mcfg == CFG_METHOD_25 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28) { + rtl8168_eri_write(tp, 0x3FC, 4, 0x00000000, ERIAR_ExGMAC); + } else { + rtl8168_eri_write(tp, 0x3FC, 4, 0x083C083C, ERIAR_ExGMAC); + } + csi_tmp = rtl8168_eri_read(tp, 0x3F8, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0x3F8, 1, csi_tmp, ERIAR_ExGMAC); + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0x1EA, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0x1EA, 1, csi_tmp, ERIAR_ExGMAC); + break; + } +} + +static void +rtl8168_enable_cfg9346_write(struct rtl8168_private *tp) +{ + RTL_W8(tp, Cfg9346, RTL_R8(tp, Cfg9346) | Cfg9346_Unlock); +} + +static void +rtl8168_disable_cfg9346_write(struct rtl8168_private *tp) +{ + RTL_W8(tp, Cfg9346, RTL_R8(tp, Cfg9346) & ~Cfg9346_Unlock); +} + +static void +rtl8168_enable_exit_l1_mask(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp |= (BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12); + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + break; + case CFG_METHOD_20: + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp |= (BIT_10 | BIT_11); + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + break; + case CFG_METHOD_21 ... CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp |= (BIT_7 | BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12); + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + break; + } +} + +static void +rtl8168_disable_exit_l1_mask(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12); + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + break; + case CFG_METHOD_20: + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_10 | BIT_11); + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + break; + case CFG_METHOD_21 ... CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_7 | BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12); + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + break; + } +} + +static void +rtl8168_hw_aspm_clkreq_enable(struct rtl8168_private *tp, bool enable) +{ + if (!tp->HwSuppAspmClkIntrLock) + return; + + if (enable && aspm) { + RTL_W8(tp, Config5, RTL_R8(tp, Config5) | ASPM_en); + RTL_W8(tp, Config2, RTL_R8(tp, Config2) | ClkReqEn); + } else { + RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~ClkReqEn); + RTL_W8(tp, Config5, RTL_R8(tp, Config5) & ~ASPM_en); + } + + udelay(10); +} + +#ifdef ENABLE_DASH_SUPPORT +static void +NICChkTypeEnableDashInterrupt(struct rtl8168_private *tp) +{ + if (tp->DASH) { + // + // even disconnected, enable 3 dash interrupt mask bits for in-band/out-band communication + // + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + rtl8168_enable_dash2_interrupt(tp); + RTL_W16(tp, tp->imr_reg[0], (ISRIMR_DASH_INTR_EN | ISRIMR_DASH_INTR_CMAC_RESET)); + } else { + RTL_W16(tp, tp->imr_reg[0], (ISRIMR_DP_DASH_OK | ISRIMR_DP_HOST_OK | ISRIMR_DP_REQSYS_OK)); + } + } +} +#endif + +static void +rtl8168_link_on_patch(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_hw_config(dev); + + if (tp->mcfg == CFG_METHOD_18 || tp->mcfg == CFG_METHOD_19 || tp->mcfg == CFG_METHOD_20) { + if (RTL_R8(tp, PHYstatus) & _1000bpsF) { + rtl8168_eri_write(tp, 0x1bc, 4, 0x00000011, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x0000001f, ERIAR_ExGMAC); + } else if (RTL_R8(tp, PHYstatus) & _100bps) { + rtl8168_eri_write(tp, 0x1bc, 4, 0x0000001f, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x0000001f, ERIAR_ExGMAC); + } else { + rtl8168_eri_write(tp, 0x1bc, 4, 0x0000001f, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x0000002d, ERIAR_ExGMAC); + } + } else if ((tp->mcfg == CFG_METHOD_16 || tp->mcfg == CFG_METHOD_17) && netif_running(dev)) { + if (tp->mcfg == CFG_METHOD_16 && (RTL_R8(tp, PHYstatus) & _10bps)) { + RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) | AcceptAllPhys); + } else if (tp->mcfg == CFG_METHOD_17) { + if (RTL_R8(tp, PHYstatus) & _1000bpsF) { + rtl8168_eri_write(tp, 0x1bc, 4, 0x00000011, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x00000005, ERIAR_ExGMAC); + } else if (RTL_R8(tp, PHYstatus) & _100bps) { + rtl8168_eri_write(tp, 0x1bc, 4, 0x0000001f, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x00000005, ERIAR_ExGMAC); + } else { + rtl8168_eri_write(tp, 0x1bc, 4, 0x0000001f, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x0000003f, ERIAR_ExGMAC); + } + } + } else if ((tp->mcfg == CFG_METHOD_14 || tp->mcfg == CFG_METHOD_15) && tp->eee.eee_enabled == 1) { + /*Full -Duplex mode*/ + if (RTL_R8(tp, PHYstatus)&FullDup) { + rtl8168_mdio_write(tp, 0x1F, 0x0006); + rtl8168_mdio_write(tp, 0x00, 0x5a30); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + if (RTL_R8(tp, PHYstatus) & (_10bps | _100bps)) + RTL_W32(tp, TxConfig, (RTL_R32(tp, TxConfig) & ~BIT_19) | BIT_25); + + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0006); + rtl8168_mdio_write(tp, 0x00, 0x5a00); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + if (RTL_R8(tp, PHYstatus) & (_10bps | _100bps)) + RTL_W32(tp, TxConfig, (RTL_R32(tp, TxConfig) & ~BIT_19) | (InterFrameGap << TxInterFrameGapShift)); + } + } else if ((tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_23 || tp->mcfg == CFG_METHOD_24 || + tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) && netif_running(dev)) { + if (RTL_R8(tp, PHYstatus)&FullDup) + RTL_W32(tp, TxConfig, (RTL_R32(tp, TxConfig) | (BIT_24 | BIT_25)) & ~BIT_19); + else + RTL_W32(tp, TxConfig, (RTL_R32(tp, TxConfig) | BIT_25) & ~(BIT_19 | BIT_24)); + } + + if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) { + /*half mode*/ + if (!(RTL_R8(tp, PHYstatus)&FullDup)) { + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, MII_ADVERTISE, rtl8168_mdio_read(tp, MII_ADVERTISE)&~(ADVERTISE_PAUSE_CAP|ADVERTISE_PAUSE_ASYM)); + } + } + + if ((tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) && + (RTL_R8(tp, PHYstatus) & _10bps)) { + u32 csi_tmp; + + csi_tmp = rtl8168_eri_read(tp, 0x1D0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_1; + rtl8168_eri_write(tp, 0x1D0, 1, csi_tmp, ERIAR_ExGMAC); + } + + rtl8168_hw_start(dev); + + netif_carrier_on(dev); + + netif_tx_wake_all_queues(dev); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + tp->phy_reg_aner = rtl8168_mdio_read(tp, MII_EXPANSION); + tp->phy_reg_anlpar = rtl8168_mdio_read(tp, MII_LPA); + tp->phy_reg_gbsr = rtl8168_mdio_read(tp, MII_STAT1000); +} + +static void +rtl8168_link_down_patch(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + tp->phy_reg_aner = 0; + tp->phy_reg_anlpar = 0; + tp->phy_reg_gbsr = 0; + + netif_carrier_off(dev); + + netif_tx_disable(dev); + + rtl8168_hw_reset(dev); + + rtl8168_tx_clear(tp); + + rtl8168_rx_clear(tp); + + rtl8168_init_ring(dev); + + if (dynamic_aspm) { + rtl8168_enable_cfg9346_write(tp); + rtl8168_hw_aspm_clkreq_enable(tp, true); + rtl8168_disable_cfg9346_write(tp); + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + if (tp->org_pci_offset_99 & BIT_2) + tp->issue_offset_99_event = TRUE; + break; + } + +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) { + NICChkTypeEnableDashInterrupt(tp); + } +#endif +} + +static void +rtl8168_check_link_status(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int link_status_on; + +#ifdef ENABLE_FIBER_SUPPORT + rtl8168_check_fiber_link_status(tp); +#endif //ENABLE_FIBER_SUPPORT + + link_status_on = tp->link_ok(dev); + + if (tp->mcfg == CFG_METHOD_11) + rtl8168dp_10mbps_gphy_para(dev); + + if (netif_carrier_ok(dev) != link_status_on) { + if (link_status_on) { + rtl8168_link_on_patch(dev); + + if (netif_msg_ifup(tp)) + printk(KERN_INFO PFX "%s: link up\n", dev->name); + } else { + if (netif_msg_ifdown(tp)) + printk(KERN_INFO PFX "%s: link down\n", dev->name); + + rtl8168_link_down_patch(dev); + } + } + + if (!link_status_on) { + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + if (tp->issue_offset_99_event) { + if (!(RTL_R8(tp, PHYstatus) & PowerSaveStatus)) { + tp->issue_offset_99_event = FALSE; + rtl8168_issue_offset_99_event(tp); + } + } + break; + } + } else { + if (dynamic_aspm) { + bool enable_hw_aspm_clkreq = true; + if (tp->dynamic_aspm_packet_count > dynamic_aspm_packet_threshold) + enable_hw_aspm_clkreq = false; + + rtl8168_enable_cfg9346_write(tp); + rtl8168_hw_aspm_clkreq_enable(tp, enable_hw_aspm_clkreq); + rtl8168_disable_cfg9346_write(tp); + } + tp->dynamic_aspm_packet_count = 0; + } +} + +static void +rtl8168_link_option(u8 *aut, + u32 *spd, + u8 *dup, + u32 *adv) +{ + if ((*spd != SPEED_1000) && (*spd != SPEED_100) && (*spd != SPEED_10)) + *spd = SPEED_1000; + + if ((*dup != DUPLEX_FULL) && (*dup != DUPLEX_HALF)) + *dup = DUPLEX_FULL; + + if ((*aut != AUTONEG_ENABLE) && (*aut != AUTONEG_DISABLE)) + *aut = AUTONEG_ENABLE; + + *adv &= (ADVERTISED_10baseT_Half | + ADVERTISED_10baseT_Full | + ADVERTISED_100baseT_Half | + ADVERTISED_100baseT_Full | + ADVERTISED_1000baseT_Half | + ADVERTISED_1000baseT_Full); + if (*adv == 0) + *adv = (ADVERTISED_10baseT_Half | + ADVERTISED_10baseT_Full | + ADVERTISED_100baseT_Half | + ADVERTISED_100baseT_Full | + ADVERTISED_1000baseT_Half | + ADVERTISED_1000baseT_Full); +} + +static void +rtl8168_enable_ocp_phy_power_saving(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 val; + + if (tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + val = rtl8168_mdio_read_phy_ocp(tp, 0x0C41, 0x13); + if (val != 0x0050) { + rtl8168_set_phy_mcu_patch_request(tp); + rtl8168_mdio_write_phy_ocp(tp, 0x0C41, 0x13, 0x0000); + rtl8168_mdio_write_phy_ocp(tp, 0x0C41, 0x13, 0x0050); + rtl8168_clear_phy_mcu_patch_request(tp); + } + } +} + +static void +rtl8168_disable_ocp_phy_power_saving(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 val; + + if (tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + val = rtl8168_mdio_read_phy_ocp(tp, 0x0C41, 0x13); + if (val != 0x0500) { + rtl8168_set_phy_mcu_patch_request(tp); + rtl8168_mdio_write_phy_ocp(tp, 0x0C41, 0x13, 0x0000); + rtl8168_mdio_write_phy_ocp(tp, 0x0C41, 0x13, 0x0500); + rtl8168_clear_phy_mcu_patch_request(tp); + } + } +} + +void +rtl8168_wait_ll_share_fifo_ready(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i; + + for (i = 0; i < 10; i++) { + udelay(100); + if (RTL_R16(tp, 0xD2) & BIT_9) + break; + } +} + +static void +rtl8168_disable_pci_offset_99(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0x3F2, 2, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_0 | BIT_1); + rtl8168_eri_write(tp, 0x3F2, 2, csi_tmp, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_csi_fun0_write_byte(tp, 0x99, 0x00); + break; + } +} + +static void +rtl8168_enable_pci_offset_99(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_csi_fun0_write_byte(tp, 0x99, tp->org_pci_offset_99); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0x3F2, 2, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_0 | BIT_1); + if (tp->org_pci_offset_99 & (BIT_5 | BIT_6)) + csi_tmp |= BIT_1; + if (tp->org_pci_offset_99 & BIT_2) + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0x3F2, 2, csi_tmp, ERIAR_ExGMAC); + break; + } +} + +static void +rtl8168_init_pci_offset_99(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_26: + if (tp->org_pci_offset_99 & BIT_2) { + csi_tmp = rtl8168_eri_read(tp, 0x5C2, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_1; + rtl8168_eri_write(tp, 0x5C2, 1, csi_tmp, ERIAR_ExGMAC); + } + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0x3F2, 2, ERIAR_ExGMAC); + csi_tmp &= ~( BIT_8 | BIT_9 | BIT_10 | BIT_11 | BIT_12 | BIT_13 | BIT_14 | BIT_15 ); + csi_tmp |= ( BIT_9 | BIT_10 | BIT_13 | BIT_14 | BIT_15 ); + rtl8168_eri_write(tp, 0x3F2, 2, csi_tmp, ERIAR_ExGMAC); + csi_tmp = rtl8168_eri_read(tp, 0x3F5, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_6 | BIT_7; + rtl8168_eri_write(tp, 0x3F5, 1, csi_tmp, ERIAR_ExGMAC); + rtl8168_mac_ocp_write(tp, 0xE02C, 0x1880); + rtl8168_mac_ocp_write(tp, 0xE02E, 0x4880); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_26: + rtl8168_eri_write(tp, 0x5C0, 1, 0xFA, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_26: + if (tp->org_pci_offset_99 & BIT_2) { + csi_tmp = rtl8168_eri_read(tp, 0x5C8, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0x5C8, 1, csi_tmp, ERIAR_ExGMAC); + } + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + if (tp->org_pci_offset_99 & BIT_2) + rtl8168_mac_ocp_write(tp, 0xE0A2, rtl8168_mac_ocp_read(tp, 0xE0A2) | BIT_0); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_23: + rtl8168_eri_write(tp, 0x2E8, 2, 0x883C, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2EA, 2, 0x8C12, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2EC, 2, 0x9003, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2E2, 2, 0x883C, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2E4, 2, 0x8C12, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2E6, 2, 0x9003, ERIAR_ExGMAC); + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_eri_write(tp, 0x2E8, 2, 0x9003, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2EA, 2, 0x9003, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2EC, 2, 0x9003, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2E2, 2, 0x883C, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2E4, 2, 0x8C12, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x2E6, 2, 0x9003, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + csi_tmp = rtl8168_eri_read(tp, 0x3FA, 2, ERIAR_ExGMAC); + csi_tmp |= BIT_14; + rtl8168_eri_write(tp, 0x3FA, 2, csi_tmp, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + if (tp->org_pci_offset_99 & BIT_2) + RTL_W8(tp, 0xB6, RTL_R8(tp, 0xB6) | BIT_0); + break; + } + + rtl8168_enable_pci_offset_99(tp); +} + +static void +rtl8168_disable_pci_offset_180(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0x1E2, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_2; + rtl8168_eri_write(tp, 0x1E2, 1, csi_tmp, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_26: + rtl8168_eri_write(tp, 0x1E9, 1, 0x0A, ERIAR_ExGMAC); + break; + } +} + +static void +rtl8168_enable_pci_offset_180(struct rtl8168_private *tp) +{ + u32 csi_tmp; + + switch (tp->mcfg) { + case CFG_METHOD_25: + case CFG_METHOD_28: + csi_tmp = rtl8168_eri_read(tp, 0x1E8, 4, ERIAR_ExGMAC); + csi_tmp &= ~(0x0000FF00); + csi_tmp |= (0x00006400); + rtl8168_eri_write(tp, 0x1E8, 4, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x1E4, 4, ERIAR_ExGMAC); + csi_tmp &= ~(0x0000FF00); + rtl8168_eri_write(tp, 0x1E4, 4, csi_tmp, ERIAR_ExGMAC); + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + csi_tmp = rtl8168_eri_read(tp, 0x1E8, 4, ERIAR_ExGMAC); + csi_tmp &= ~(0x0000FFF0); + csi_tmp |= (0x00000640); + rtl8168_eri_write(tp, 0x1E8, 4, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x1E4, 4, ERIAR_ExGMAC); + csi_tmp &= ~(0x0000FF00); + rtl8168_eri_write(tp, 0x1E4, 4, csi_tmp, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_35: + case CFG_METHOD_36: + csi_tmp = rtl8168_eri_read(tp, 0x1E8, 2, ERIAR_ExGMAC); + csi_tmp &= ~(0xFFF0); + csi_tmp |= 0x0640; + rtl8168_eri_write(tp,0x1E8, 2, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x1E4, 2, ERIAR_ExGMAC); + csi_tmp &= ~(0xFF00); + rtl8168_eri_write(tp, 0x1E4, 2, csi_tmp, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0x1E2, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_2; + rtl8168_eri_write(tp, 0x1E2, 1, csi_tmp, ERIAR_ExGMAC); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_26: + rtl8168_eri_write(tp, 0x1E9, 1, 0x64, ERIAR_ExGMAC); + break; + } + + rtl8168_mac_ocp_write(tp, 0xE094, 0x0000); +} + +static void +rtl8168_init_pci_offset_180(struct rtl8168_private *tp) +{ + rtl8168_enable_pci_offset_180(tp); +} + +static void +rtl8168_set_pci_99_180_exit_driver_para(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + if (tp->org_pci_offset_99 & BIT_2) + rtl8168_issue_offset_99_event(tp); + rtl8168_disable_pci_offset_99(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_disable_pci_offset_180(tp); + break; + } +} + +static void +rtl8168_set_rx_q_num(struct rtl8168_private *tp, + unsigned int num_rx_queues) +{ + u16 q_ctrl; + u16 rx_q_num; + + if (tp->HwSuppRxDescType != RX_DESC_RING_TYPE_2) + return; + + if (num_rx_queues > tp->HwSuppNumRxQueues || + num_rx_queues < 1) + num_rx_queues = 1; + + rx_q_num = (u16)ilog2(num_rx_queues); + rx_q_num &= (BIT_0 | BIT_1 | BIT_2); + rx_q_num <<= 2; + q_ctrl = rtl8168_eri_read(tp, Q_NUM_CTRL_8168, 2, ERIAR_ExGMAC); + q_ctrl &= ~(BIT_2 | BIT_3 | BIT_4); + q_ctrl |= rx_q_num; + rtl8168_eri_write(tp, Q_NUM_CTRL_8168, 2, q_ctrl, ERIAR_ExGMAC); +} + +void +rtl8168_set_rx_vlan_filter(struct rtl8168_private *tp) +{ + int i; + + if (tp->HwSuppRxDescType != RX_DESC_RING_TYPE_2) + return; + + for (i = 1; i < 16; i++) { + rtl8168_eri_write(tp, 0xf0 + 8*i, 4, 0xffff0000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xf4 + 8*i, 4, 0xffffffff, ERIAR_ExGMAC); + } +} + +static void +rtl8168_hw_d3_para(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_26: + RTL_W16(tp, RxMaxSize, RX_BUF_SIZE + 1); + break; + default: + RTL_W16(tp, RxMaxSize, RX_BUF_SIZE); + break; + } + + if (tp->HwSuppAspmClkIntrLock) { + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) & ~BIT_7); + rtl8168_enable_cfg9346_write(tp); + rtl8168_hw_aspm_clkreq_enable(tp, false); + rtl8168_disable_cfg9346_write(tp); + } + + rtl8168_disable_exit_l1_mask(tp); + +#ifdef ENABLE_REALWOW_SUPPORT + rtl8168_set_realwow_d3_para(dev); +#endif + rtl8168_set_rx_q_num(tp, 1); + + if (tp->mcfg == CFG_METHOD_18 || tp->mcfg == CFG_METHOD_19 || tp->mcfg == CFG_METHOD_20) { + rtl8168_eri_write(tp, 0x1bc, 4, 0x0000001f, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x0000002d, ERIAR_ExGMAC); + } else if (tp->mcfg == CFG_METHOD_16) { + rtl8168_eri_write(tp, 0x1bc, 4, 0x0000001f, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0x1dc, 4, 0x0000003f, ERIAR_ExGMAC); + } + + if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_23 || tp->mcfg == CFG_METHOD_24 || + tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28) + rtl8168_eri_write(tp, 0x2F8, 2, 0x0064, ERIAR_ExGMAC); + + if (tp->bios_setting & BIT_28) { + if (tp->mcfg == CFG_METHOD_18 || tp->mcfg == CFG_METHOD_19 || + tp->mcfg == CFG_METHOD_20) { + u32 gphy_val; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x04, 0x0061); + rtl8168_mdio_write(tp, 0x09, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x9200); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val &= ~BIT_7; + rtl8168_mdio_write(tp, 0x06, gphy_val); + mdelay(1); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + gphy_val = rtl8168_mdio_read(tp, 0x16); + gphy_val &= ~BIT_10; + rtl8168_mdio_write(tp, 0x16, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + + rtl8168_set_pci_99_180_exit_driver_para(dev); + + switch (tp->mcfg) { + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_set_mcu_ocp_bit(tp, 0xD438, BIT_3); + rtl8168_set_mcu_ocp_bit(tp, 0xD438, BIT_2); + rtl8168_clear_mcu_ocp_bit(tp, 0xDE28, (BIT_1 | BIT_0)); + rtl8168_set_mcu_ocp_bit(tp, 0xD438, (BIT_1 | BIT_0)); + break; + } + + /*disable ocp phy power saving*/ + if (tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) + if (!tp->dash_printer_enabled) + rtl8168_disable_ocp_phy_power_saving(dev); + + rtl8168_disable_rxdvgate(dev); +} + +static void +rtl8168_enable_magic_packet(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 csi_tmp; + + switch (tp->HwSuppMagicPktVer) { + case WAKEUP_MAGIC_PACKET_V1: + rtl8168_enable_cfg9346_write(tp); + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | MagicPacket); + rtl8168_disable_cfg9346_write(tp); + break; + case WAKEUP_MAGIC_PACKET_V2: + csi_tmp = rtl8168_eri_read(tp, 0xDE, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDE, 1, csi_tmp, ERIAR_ExGMAC); + break; + } +} +static void +rtl8168_disable_magic_packet(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 csi_tmp; + + switch (tp->HwSuppMagicPktVer) { + case WAKEUP_MAGIC_PACKET_V1: + rtl8168_enable_cfg9346_write(tp); + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~MagicPacket); + rtl8168_disable_cfg9346_write(tp); + break; + case WAKEUP_MAGIC_PACKET_V2: + csi_tmp = rtl8168_eri_read(tp, 0xDE, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDE, 1, csi_tmp, ERIAR_ExGMAC); + break; + } +} + +#define WAKE_ANY (WAKE_PHY | WAKE_MAGIC | WAKE_UCAST | WAKE_BCAST | WAKE_MCAST) + +static void +rtl8168_get_hw_wol(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 options; + u32 csi_tmp; + + if (disable_wol_support) + goto out; + + tp->wol_opts = 0; + options = RTL_R8(tp, Config1); + if (!(options & PMEnable)) + goto out; + + options = RTL_R8(tp, Config3); + if (options & LinkUp) + tp->wol_opts |= WAKE_PHY; + + switch (tp->HwSuppMagicPktVer) { + case WAKEUP_MAGIC_PACKET_V2: + csi_tmp = rtl8168_eri_read(tp, 0xDE, 1, ERIAR_ExGMAC); + if (csi_tmp & BIT_0) + tp->wol_opts |= WAKE_MAGIC; + break; + default: + if (options & MagicPacket) + tp->wol_opts |= WAKE_MAGIC; + break; + } + + options = RTL_R8(tp, Config5); + if (options & UWF) + tp->wol_opts |= WAKE_UCAST; + if (options & BWF) + tp->wol_opts |= WAKE_BCAST; + if (options & MWF) + tp->wol_opts |= WAKE_MCAST; + +out: + tp->wol_enabled = (tp->wol_opts || tp->dash_printer_enabled) ? WOL_ENABLED : WOL_DISABLED; +} + +static void +rtl8168_set_hw_wol(struct net_device *dev, u32 wolopts) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i,tmp; + static struct { + u32 opt; + u16 reg; + u8 mask; + } cfg[] = { + { WAKE_PHY, Config3, LinkUp }, + { WAKE_UCAST, Config5, UWF }, + { WAKE_BCAST, Config5, BWF }, + { WAKE_MCAST, Config5, MWF }, + { WAKE_ANY, Config5, LanWake }, + { WAKE_MAGIC, Config3, MagicPacket }, + }; + + switch (tp->HwSuppMagicPktVer) { + case WAKEUP_MAGIC_PACKET_V2: + tmp = ARRAY_SIZE(cfg) - 1; + + if (wolopts & WAKE_MAGIC) + rtl8168_enable_magic_packet(dev); + else + rtl8168_disable_magic_packet(dev); + break; + default: + tmp = ARRAY_SIZE(cfg); + break; + } + + rtl8168_enable_cfg9346_write(tp); + + for (i = 0; i < tmp; i++) { + u8 options = RTL_R8(tp, cfg[i].reg) & ~cfg[i].mask; + if (wolopts & cfg[i].opt) + options |= cfg[i].mask; + RTL_W8(tp, cfg[i].reg, options); + } + + if (tp->dash_printer_enabled) + RTL_W8(tp, Config5, RTL_R8(tp, Config5) | LanWake); + + rtl8168_disable_cfg9346_write(tp); +} + +static void +rtl8168_phy_restart_nway(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (rtl8168_is_in_phy_disable_mode(dev)) + return; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, MII_BMCR, BMCR_RESET | BMCR_ANENABLE | BMCR_ANRESTART); +} + +static void +rtl8168_phy_setup_force_mode(struct net_device *dev, u32 speed, u8 duplex) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 bmcr_true_force = 0; + + if (rtl8168_is_in_phy_disable_mode(dev)) + return; + + if ((speed == SPEED_10) && (duplex == DUPLEX_HALF)) { + bmcr_true_force = BMCR_SPEED10; + } else if ((speed == SPEED_10) && (duplex == DUPLEX_FULL)) { + bmcr_true_force = BMCR_SPEED10 | BMCR_FULLDPLX; + } else if ((speed == SPEED_100) && (duplex == DUPLEX_HALF)) { + bmcr_true_force = BMCR_SPEED100; + } else if ((speed == SPEED_100) && (duplex == DUPLEX_FULL)) { + bmcr_true_force = BMCR_SPEED100 | BMCR_FULLDPLX; + } else { + netif_err(tp, drv, dev, "Failed to set phy force mode!\n"); + return; + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, MII_BMCR, bmcr_true_force); +} + +static void +rtl8168_set_pci_pme(struct rtl8168_private *tp, int set) +{ + struct pci_dev *pdev = tp->pci_dev; + u16 pmc; + + if (!pdev->pm_cap) + return; + + pci_read_config_word(pdev, pdev->pm_cap + PCI_PM_CTRL, &pmc); + pmc |= PCI_PM_CTRL_PME_STATUS; + if (set) + pmc |= PCI_PM_CTRL_PME_ENABLE; + else + pmc &= ~PCI_PM_CTRL_PME_ENABLE; + pci_write_config_word(pdev, pdev->pm_cap + PCI_PM_CTRL, pmc); +} + +static void +rtl8168_set_wol_link_speed(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int auto_nego; + int giga_ctrl; + u32 adv; + u16 anlpar; + u16 gbsr; + u16 aner; + + if (tp->autoneg != AUTONEG_ENABLE) + goto exit; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + auto_nego = rtl8168_mdio_read(tp, MII_ADVERTISE); + auto_nego &= ~(ADVERTISE_10HALF | ADVERTISE_10FULL + | ADVERTISE_100HALF | ADVERTISE_100FULL); + + giga_ctrl = rtl8168_mdio_read(tp, MII_CTRL1000); + giga_ctrl &= ~(ADVERTISE_1000HALF | ADVERTISE_1000FULL); + + aner = tp->phy_reg_aner; + anlpar = tp->phy_reg_anlpar; + gbsr = tp->phy_reg_gbsr; + if (tp->link_ok(dev)) { + aner = rtl8168_mdio_read(tp, MII_EXPANSION); + anlpar = rtl8168_mdio_read(tp, MII_LPA); + gbsr = rtl8168_mdio_read(tp, MII_STAT1000); + } + + adv = tp->advertising; + if ((aner | anlpar | gbsr) == 0) { + int auto_nego_tmp = 0; + + if (adv & ADVERTISED_10baseT_Half) + auto_nego_tmp |= ADVERTISE_10HALF; + if (adv & ADVERTISED_10baseT_Full) + auto_nego_tmp |= ADVERTISE_10FULL; + if (adv & ADVERTISED_100baseT_Half) + auto_nego_tmp |= ADVERTISE_100HALF; + if (adv & ADVERTISED_100baseT_Full) + auto_nego_tmp |= ADVERTISE_100FULL; + + if (auto_nego_tmp == 0) + goto exit; + + auto_nego |= auto_nego_tmp; + goto skip_check_lpa; + } + if (!(aner & EXPANSION_NWAY)) + goto exit; + + if ((adv & ADVERTISED_10baseT_Half) && (anlpar & LPA_10HALF)) + auto_nego |= ADVERTISE_10HALF; + else if ((adv & ADVERTISED_10baseT_Full) && (anlpar & LPA_10FULL)) + auto_nego |= ADVERTISE_10FULL; + else if ((adv & ADVERTISED_100baseT_Half) && (anlpar & LPA_100HALF)) + auto_nego |= ADVERTISE_100HALF; + else if ((adv & ADVERTISED_100baseT_Full) && (anlpar & LPA_100FULL)) + auto_nego |= ADVERTISE_100FULL; + else if (adv & ADVERTISED_1000baseT_Half && (gbsr & LPA_1000HALF)) + giga_ctrl |= ADVERTISE_1000HALF; + else if (adv & ADVERTISED_1000baseT_Full && (gbsr & LPA_1000FULL)) + giga_ctrl |= ADVERTISE_1000FULL; + else + goto exit; + +skip_check_lpa: + if (tp->DASH) + auto_nego |= (ADVERTISE_100FULL | ADVERTISE_100HALF | ADVERTISE_10HALF | ADVERTISE_10FULL); + + if (((tp->mcfg == CFG_METHOD_7) || (tp->mcfg == CFG_METHOD_8)) && (RTL_R16(tp, CPlusCmd) & ASF)) + auto_nego |= (ADVERTISE_100FULL | ADVERTISE_100HALF | ADVERTISE_10HALF | ADVERTISE_10FULL); + +#ifdef CONFIG_DOWN_SPEED_100 + auto_nego |= (ADVERTISE_100FULL | ADVERTISE_100HALF | ADVERTISE_10HALF | ADVERTISE_10FULL); +#endif + + rtl8168_mdio_write(tp, MII_ADVERTISE, auto_nego); + rtl8168_mdio_write(tp, MII_CTRL1000, giga_ctrl); + + rtl8168_phy_restart_nway(dev); + +exit: + return; +} + +static void +rtl8168_powerdown_pll(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->wol_enabled == WOL_ENABLED || tp->DASH || tp->EnableKCPOffload) { + rtl8168_set_hw_wol(dev, tp->wol_opts); + + if (tp->mcfg == CFG_METHOD_16 || tp->mcfg == CFG_METHOD_17 || + tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_24 || tp->mcfg == CFG_METHOD_25 || + tp->mcfg == CFG_METHOD_26 || tp->mcfg == CFG_METHOD_23 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36) { + rtl8168_enable_cfg9346_write(tp); + RTL_W8(tp, Config2, RTL_R8(tp, Config2) | PMSTS_En); + rtl8168_disable_cfg9346_write(tp); + } + + /* Enable the PME and clear the status */ + rtl8168_set_pci_pme(tp, 1); + +#ifdef ENABLE_FIBER_SUPPORT + if (HW_FIBER_MODE_ENABLED(tp)) + return; +#endif //ENABLE_FIBER_SUPPORT + + if (HW_SUPP_SERDES_PHY(tp)) + return; + + rtl8168_set_wol_link_speed(dev); + + RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) | AcceptBroadcast | AcceptMulticast | AcceptMyPhys); + + return; + } + + rtl8168_set_hw_wol(dev, 0); + +#ifdef ENABLE_FIBER_SUPPORT + if (HW_FIBER_MODE_ENABLED(tp)) + return; +#endif //ENABLE_FIBER_SUPPORT + + if (tp->DASH) + return; + + if (((tp->mcfg == CFG_METHOD_7) || (tp->mcfg == CFG_METHOD_8)) && (RTL_R16(tp, CPlusCmd) & ASF)) + return; + + rtl8168_phy_power_down(dev); + + if (!tp->HwIcVerUnknown) { + switch (tp->mcfg) { + case CFG_METHOD_9: + case CFG_METHOD_10: + //case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) & ~BIT_7); + break; + } + } + + switch (tp->mcfg) { + case CFG_METHOD_14 ... CFG_METHOD_15: + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) & ~BIT_6); + break; + case CFG_METHOD_16 ... CFG_METHOD_36: + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) & ~BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) & ~BIT_6); + break; + } +} + +static void rtl8168_powerup_pll(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + RTL_W8(tp, PMCH, RTL_R8(tp, PMCH) | BIT_7 | BIT_6); + break; + } + + rtl8168_phy_power_up(dev); +} + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +static void +rtl8168_get_wol(struct net_device *dev, + struct ethtool_wolinfo *wol) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 options; + + wol->wolopts = wol->supported = 0; + + if (disable_wol_support) + return; + + wol->supported = WAKE_ANY; + + options = RTL_R8(tp, Config1); + if (!(options & PMEnable)) + return; + + wol->wolopts = tp->wol_opts; +} + +static int +rtl8168_set_wol(struct net_device *dev, + struct ethtool_wolinfo *wol) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (disable_wol_support) + return -EOPNOTSUPP; + + tp->wol_opts = wol->wolopts; + + tp->wol_enabled = (tp->wol_opts || tp->dash_printer_enabled) ? WOL_ENABLED : WOL_DISABLED; + + device_set_wakeup_enable(tp_to_dev(tp), tp->wol_enabled); + + return 0; +} + +static void +rtl8168_get_drvinfo(struct net_device *dev, + struct ethtool_drvinfo *info) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct rtl8168_fw *rtl_fw = tp->rtl_fw; + + strcpy(info->driver, MODULENAME); + strcpy(info->version, RTL8168_VERSION); + strncpy(info->bus_info, pci_name(tp->pci_dev), sizeof(info->bus_info) - 1); + info->regdump_len = R8168_REGS_DUMP_SIZE; + info->eedump_len = tp->eeprom_len; + BUILD_BUG_ON(sizeof(info->fw_version) < sizeof(rtl_fw->version)); + if (rtl_fw) + strlcpy(info->fw_version, rtl_fw->version, + sizeof(info->fw_version)); +} + +static int +rtl8168_get_regs_len(struct net_device *dev) +{ + return R8168_REGS_DUMP_SIZE; +} +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) + +static int +rtl8168_set_speed_xmii(struct net_device *dev, + u8 autoneg, + u32 speed, + u8 duplex, + u32 adv) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int auto_nego = 0; + int giga_ctrl = 0; + int rc = -EINVAL; + + if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36) { + //Disable Giga Lite + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + rtl8168_clear_eth_phy_bit(tp, 0x14, BIT_9); + if (tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) + rtl8168_clear_eth_phy_bit(tp, 0x14, BIT_7); + rtl8168_mdio_write(tp, 0x1F, 0x0A40); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + if ((speed != SPEED_1000) && + (speed != SPEED_100) && + (speed != SPEED_10)) { + speed = SPEED_1000; + duplex = DUPLEX_FULL; + } + + giga_ctrl = rtl8168_mdio_read(tp, MII_CTRL1000); + giga_ctrl &= ~(ADVERTISE_1000HALF | ADVERTISE_1000FULL); + + if (autoneg == AUTONEG_ENABLE) { + /*n-way force*/ + auto_nego = rtl8168_mdio_read(tp, MII_ADVERTISE); + auto_nego &= ~(ADVERTISE_10HALF | ADVERTISE_10FULL | + ADVERTISE_100HALF | ADVERTISE_100FULL | + ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM); + + if (adv & ADVERTISED_10baseT_Half) + auto_nego |= ADVERTISE_10HALF; + if (adv & ADVERTISED_10baseT_Full) + auto_nego |= ADVERTISE_10FULL; + if (adv & ADVERTISED_100baseT_Half) + auto_nego |= ADVERTISE_100HALF; + if (adv & ADVERTISED_100baseT_Full) + auto_nego |= ADVERTISE_100FULL; + if (adv & ADVERTISED_1000baseT_Half) + giga_ctrl |= ADVERTISE_1000HALF; + if (adv & ADVERTISED_1000baseT_Full) + giga_ctrl |= ADVERTISE_1000FULL; + + //flow control + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_20: + if (dev->mtu <= ETH_DATA_LEN && tp->fcpause == rtl8168_fc_full) + auto_nego |= ADVERTISE_PAUSE_CAP|ADVERTISE_PAUSE_ASYM; + break; + default: + if (tp->fcpause == rtl8168_fc_full) + auto_nego |= ADVERTISE_PAUSE_CAP|ADVERTISE_PAUSE_ASYM; + break; + } + + tp->phy_auto_nego_reg = auto_nego; + tp->phy_1000_ctrl_reg = giga_ctrl; + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, MII_ADVERTISE, auto_nego); + rtl8168_mdio_write(tp, MII_CTRL1000, giga_ctrl); + rtl8168_phy_restart_nway(dev); + mdelay(20); + } else { + /*true force*/ + if (speed == SPEED_10 || speed == SPEED_100) + rtl8168_phy_setup_force_mode(dev, speed, duplex); + else + goto out; + } + + tp->autoneg = autoneg; + tp->speed = speed; + tp->duplex = duplex; + tp->advertising = adv; + + if (tp->mcfg == CFG_METHOD_11) + rtl8168dp_10mbps_gphy_para(dev); + + rc = 0; +out: + return rc; +} + +static int +rtl8168_set_speed(struct net_device *dev, + u8 autoneg, + u32 speed, + u8 duplex, + u32 adv) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ret; + + ret = tp->set_speed(dev, autoneg, speed, duplex, adv); + + return ret; +} + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +static int +rtl8168_set_settings(struct net_device *dev, +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + struct ethtool_cmd *cmd +#else + const struct ethtool_link_ksettings *cmd +#endif + ) +{ + int ret; + u8 autoneg; + u32 speed; + u8 duplex; + u32 supported, advertising; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + autoneg = cmd->autoneg; + speed = cmd->speed; + duplex = cmd->duplex; + supported = cmd->supported; + advertising = cmd->advertising; +#else + const struct ethtool_link_settings *base = &cmd->base; + autoneg = base->autoneg; + speed = base->speed; + duplex = base->duplex; + ethtool_convert_link_mode_to_legacy_u32(&supported, + cmd->link_modes.supported); + ethtool_convert_link_mode_to_legacy_u32(&advertising, + cmd->link_modes.advertising); +#endif + if (advertising & ~supported) + return -EINVAL; + + ret = rtl8168_set_speed(dev, autoneg, speed, duplex, advertising); + + return ret; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +static u32 +rtl8168_get_tx_csum(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 ret; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + ret = ((dev->features & NETIF_F_IP_CSUM) != 0); +#else + ret = ((dev->features & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)) != 0); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + + return ret; +} + +static u32 +rtl8168_get_rx_csum(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 ret; + + ret = tp->cp_cmd & RxChkSum; + + return ret; +} + +static int +rtl8168_set_tx_csum(struct net_device *dev, + u32 data) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->mcfg == CFG_METHOD_DEFAULT) + return -EOPNOTSUPP; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + if (data) + dev->features |= NETIF_F_IP_CSUM; + else + dev->features &= ~NETIF_F_IP_CSUM; +#else + if (data) + if ((tp->mcfg == CFG_METHOD_1) || (tp->mcfg == CFG_METHOD_2) || (tp->mcfg == CFG_METHOD_3)) + dev->features |= NETIF_F_IP_CSUM; + else + dev->features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); + else + dev->features &= ~(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + + return 0; +} + +static int +rtl8168_set_rx_csum(struct net_device *dev, + u32 data) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->mcfg == CFG_METHOD_DEFAULT) + return -EOPNOTSUPP; + + if (data) + tp->cp_cmd |= RxChkSum; + else + tp->cp_cmd &= ~RxChkSum; + + RTL_W16(tp, CPlusCmd, tp->cp_cmd); + + return 0; +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) + +#ifdef CONFIG_R8168_VLAN + +static inline u32 +rtl8168_tx_vlan_tag(struct rtl8168_private *tp, + struct sk_buff *skb) +{ + u32 tag; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + tag = (tp->vlgrp && vlan_tx_tag_present(skb)) ? + TxVlanTag | swab16(vlan_tx_tag_get(skb)) : 0x00; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0) + tag = (vlan_tx_tag_present(skb)) ? + TxVlanTag | swab16(vlan_tx_tag_get(skb)) : 0x00; +#else + tag = (skb_vlan_tag_present(skb)) ? + TxVlanTag | swab16(skb_vlan_tag_get(skb)) : 0x00; +#endif + + return tag; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + +static void +rtl8168_vlan_rx_register(struct net_device *dev, + struct vlan_group *grp) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + tp->vlgrp = grp; + if (tp->vlgrp) + tp->cp_cmd |= RxVlan; + else + tp->cp_cmd &= ~RxVlan; + RTL_W16(tp, CPlusCmd, tp->cp_cmd); + RTL_R16(tp, CPlusCmd); +} + +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) +static void +rtl8168_vlan_rx_kill_vid(struct net_device *dev, + unsigned short vid) +{ + struct rtl8168_private *tp = netdev_priv(dev); + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) + if (tp->vlgrp) + tp->vlgrp->vlan_devices[vid] = NULL; +#else + vlan_group_set_device(tp->vlgrp, vid, NULL); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) + +static int +rtl8168_rx_vlan_skb(struct rtl8168_private *tp, + struct RxDesc *desc, + struct sk_buff *skb) +{ + u32 opts2 = le32_to_cpu(desc->opts2); + int ret = -1; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + if (tp->vlgrp && (opts2 & RxVlanTag)) { + rtl8168_rx_hwaccel_skb(skb, tp->vlgrp, + swab16(opts2 & 0xffff)); + ret = 0; + } +#elif LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) + if (opts2 & RxVlanTag) + __vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff)); +#else + if (opts2 & RxVlanTag) + __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), swab16(opts2 & 0xffff)); +#endif + + desc->opts2 = 0; + return ret; +} + +#else /* !CONFIG_R8168_VLAN */ + +static inline u32 +rtl8168_tx_vlan_tag(struct rtl8168_private *tp, + struct sk_buff *skb) +{ + return 0; +} + +static int +rtl8168_rx_vlan_skb(struct rtl8168_private *tp, + struct RxDesc *desc, + struct sk_buff *skb) +{ + return -1; +} + +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0) + +static netdev_features_t rtl8168_fix_features(struct net_device *dev, + netdev_features_t features) +{ + if (dev->mtu > MSS_MAX) + features &= ~NETIF_F_ALL_TSO; + if (dev->mtu > ETH_DATA_LEN) { + features &= ~NETIF_F_ALL_TSO; + features &= ~NETIF_F_ALL_CSUM; + } + + return features; +} + +static int rtl8168_hw_set_features(struct net_device *dev, + netdev_features_t features) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 rx_config; + + rx_config = RTL_R32(tp, RxConfig); + if (features & NETIF_F_RXALL) + rx_config |= (AcceptErr | AcceptRunt); + else + rx_config &= ~(AcceptErr | AcceptRunt); + + RTL_W32(tp, RxConfig, rx_config); + + if (features & NETIF_F_RXCSUM) + tp->cp_cmd |= RxChkSum; + else + tp->cp_cmd &= ~RxChkSum; + + if (features & NETIF_F_HW_VLAN_RX) + tp->cp_cmd |= RxVlan; + else + tp->cp_cmd &= ~RxVlan; + + RTL_W16(tp, CPlusCmd, tp->cp_cmd); + RTL_R16(tp, CPlusCmd); + + return 0; +} + +static int rtl8168_set_features(struct net_device *dev, + netdev_features_t features) +{ + features &= NETIF_F_RXALL | NETIF_F_RXCSUM | NETIF_F_HW_VLAN_RX; + + if (features ^ dev->features) + rtl8168_hw_set_features(dev, features); + + return 0; +} + +#endif + +static void rtl8168_gset_xmii(struct net_device *dev, +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + struct ethtool_cmd *cmd +#else + struct ethtool_link_ksettings *cmd +#endif + ) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 status; + u8 autoneg, duplex; + u32 speed = 0; + u16 bmcr, bmsr, anlpar, ctrl1000 = 0, stat1000 = 0; + u32 supported, advertising, lp_advertising; + + supported = SUPPORTED_10baseT_Half | + SUPPORTED_10baseT_Full | + SUPPORTED_100baseT_Half | + SUPPORTED_100baseT_Full | + SUPPORTED_1000baseT_Full | + SUPPORTED_Autoneg | + SUPPORTED_TP | + SUPPORTED_Pause | + SUPPORTED_Asym_Pause; + + advertising = ADVERTISED_TP; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + bmcr = rtl8168_mdio_read(tp, MII_BMCR); + bmsr = rtl8168_mdio_read(tp, MII_BMSR); + anlpar = rtl8168_mdio_read(tp, MII_LPA); + ctrl1000 = rtl8168_mdio_read(tp, MII_CTRL1000); + stat1000 = rtl8168_mdio_read(tp, MII_STAT1000); + + if (bmcr & BMCR_ANENABLE) { + advertising |= ADVERTISED_Autoneg; + autoneg = AUTONEG_ENABLE; + + if (bmsr & BMSR_ANEGCOMPLETE) { + lp_advertising = mii_lpa_to_ethtool_lpa_t(anlpar); + lp_advertising |= + mii_stat1000_to_ethtool_lpa_t(stat1000); + } else { + lp_advertising = 0; + } + + if (tp->phy_auto_nego_reg & ADVERTISE_10HALF) + advertising |= ADVERTISED_10baseT_Half; + if (tp->phy_auto_nego_reg & ADVERTISE_10FULL) + advertising |= ADVERTISED_10baseT_Full; + if (tp->phy_auto_nego_reg & ADVERTISE_100HALF) + advertising |= ADVERTISED_100baseT_Half; + if (tp->phy_auto_nego_reg & ADVERTISE_100FULL) + advertising |= ADVERTISED_100baseT_Full; + if (tp->phy_1000_ctrl_reg & ADVERTISE_1000FULL) + advertising |= ADVERTISED_1000baseT_Full; + } else { + autoneg = AUTONEG_DISABLE; + lp_advertising = 0; + } + + status = RTL_R8(tp, PHYstatus); + + if (status & LinkStatus) { + /*link on*/ + if (status & _1000bpsF) + speed = SPEED_1000; + else if (status & _100bps) + speed = SPEED_100; + else if (status & _10bps) + speed = SPEED_10; + + if (status & TxFlowCtrl) + advertising |= ADVERTISED_Asym_Pause; + + if (status & RxFlowCtrl) + advertising |= ADVERTISED_Pause; + + duplex = ((status & _1000bpsF) || (status & FullDup)) ? + DUPLEX_FULL : DUPLEX_HALF; + } else { + /*link down*/ + speed = SPEED_UNKNOWN; + duplex = DUPLEX_UNKNOWN; + } + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + cmd->supported = supported; + cmd->advertising = advertising; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30) + cmd->lp_advertising = lp_advertising; +#endif + cmd->autoneg = autoneg; + cmd->speed = speed; + cmd->duplex = duplex; + cmd->port = PORT_TP; +#else + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.supported, + supported); + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.advertising, + advertising); + ethtool_convert_legacy_u32_to_link_mode(cmd->link_modes.lp_advertising, + lp_advertising); + cmd->base.autoneg = autoneg; + cmd->base.speed = speed; + cmd->base.duplex = duplex; + cmd->base.port = PORT_TP; +#endif +} + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +static int +rtl8168_get_settings(struct net_device *dev, +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + struct ethtool_cmd *cmd +#else + struct ethtool_link_ksettings *cmd +#endif + ) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + tp->get_settings(dev, cmd); + + return 0; +} + +static void rtl8168_get_regs(struct net_device *dev, struct ethtool_regs *regs, + void *p) +{ + struct rtl8168_private *tp = netdev_priv(dev); + void __iomem *ioaddr = tp->mmio_addr; + unsigned int i; + u8 *data = p; + + if (regs->len < R8168_REGS_DUMP_SIZE) + return /* -EINVAL */; + + mem_clear(p, regs->len); + + for (i = 0; i < R8168_MAC_REGS_SIZE; i++) + *data++ = readb(ioaddr + i); + data = (u8*)p + 256; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + for (i = 0; i < R8168_PHY_REGS_SIZE/2; i++) { + *(u16*)data = rtl8168_mdio_read(tp, i); + data += 2; + } + data = (u8*)p + 256 * 2; + + for (i = 0; i < R8168_EPHY_REGS_SIZE/2; i++) { + *(u16*)data = rtl8168_ephy_read(tp, i); + data += 2; + } + data = (u8*)p + 256 * 3; + + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + /* RTL8168B does not support Extend GMAC */ + break; + default: + for (i = 0; i < R8168_ERI_REGS_SIZE; i+=4) { + *(u32*)data = rtl8168_eri_read(tp, i , 4, ERIAR_ExGMAC); + data += 4; + } + break; + } +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +static void rtl8168_get_pauseparam(struct net_device *dev, + struct ethtool_pauseparam *pause) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + pause->autoneg = (tp->autoneg ? AUTONEG_ENABLE : AUTONEG_DISABLE); + if (tp->fcpause == rtl8168_fc_rx_pause) + pause->rx_pause = 1; + else if (tp->fcpause == rtl8168_fc_tx_pause) + pause->tx_pause = 1; + else if (tp->fcpause == rtl8168_fc_full) { + pause->rx_pause = 1; + pause->tx_pause = 1; + } +} + +static int rtl8168_set_pauseparam(struct net_device *dev, + struct ethtool_pauseparam *pause) +{ + struct rtl8168_private *tp = netdev_priv(dev); + enum rtl8168_fc_mode newfc; + + if (pause->tx_pause || pause->rx_pause) + newfc = rtl8168_fc_full; + else + newfc = rtl8168_fc_none; + + if (tp->fcpause != newfc) { + tp->fcpause = newfc; + + rtl8168_set_speed(dev, tp->autoneg, tp->speed, tp->duplex, tp->advertising); + } + + return 0; + +} +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + +static u32 +rtl8168_get_msglevel(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + return tp->msg_enable; +} + +static void +rtl8168_set_msglevel(struct net_device *dev, + u32 value) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + tp->msg_enable = value; +} + +static const char rtl8168_gstrings[][ETH_GSTRING_LEN] = { + "tx_packets", + "rx_packets", + "tx_errors", + "rx_errors", + "rx_missed", + "align_errors", + "tx_single_collisions", + "tx_multi_collisions", + "unicast", + "broadcast", + "multicast", + "tx_aborted", + "tx_underrun", +}; +#endif //#LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +static int rtl8168_get_stats_count(struct net_device *dev) +{ + return ARRAY_SIZE(rtl8168_gstrings); +} +#endif //#LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +#else +static int rtl8168_get_sset_count(struct net_device *dev, int sset) +{ + switch (sset) { + case ETH_SS_STATS: + return ARRAY_SIZE(rtl8168_gstrings); + default: + return -EOPNOTSUPP; + } +} +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) + +static void +rtl8168_set_ring_size(struct rtl8168_private *tp, u32 rx, u32 tx) +{ + int i; + + tp->num_rx_desc = rx; + + for (i = 0; i < tp->num_tx_rings; i++) + tp->tx_ring[i].num_tx_desc = tx; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) +static void rtl8168_get_ringparam(struct net_device *dev, + struct ethtool_ringparam *ring, + struct kernel_ethtool_ringparam *kernel_ring, + struct netlink_ext_ack *extack) +#else +static void rtl8168_get_ringparam(struct net_device *dev, + struct ethtool_ringparam *ring) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + ring->rx_max_pending = MAX_NUM_TX_DESC; + ring->tx_max_pending = MAX_NUM_RX_DESC; + ring->rx_pending = tp->num_rx_desc; + ring->tx_pending = tp->tx_ring[0].num_tx_desc; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) +static int rtl8168_set_ringparam(struct net_device *dev, + struct ethtool_ringparam *ring, + struct kernel_ethtool_ringparam *kernel_ring, + struct netlink_ext_ack *extack) +#else +static int rtl8168_set_ringparam(struct net_device *dev, + struct ethtool_ringparam *ring) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 new_rx_count, new_tx_count; + int rc = 0; + + if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) + return -EINVAL; + + new_tx_count = clamp_t(u32, ring->tx_pending, + MIN_NUM_TX_DESC, MAX_NUM_TX_DESC); + + new_rx_count = clamp_t(u32, ring->rx_pending, + MIN_NUM_RX_DESC, MAX_NUM_RX_DESC); + + if ((new_rx_count == tp->num_rx_desc) && + (new_tx_count == tp->tx_ring[0].num_tx_desc)) { + /* nothing to do */ + return 0; + } + + if (netif_running(dev)) { + rtl8168_wait_for_quiescence(dev); + rtl8168_close(dev); + } + + rtl8168_set_ring_size(tp, new_rx_count, new_tx_count); + + if (netif_running(dev)) + rc = rtl8168_open(dev); + + return rc; +} +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +static void +rtl8168_get_ethtool_stats(struct net_device *dev, + struct ethtool_stats *stats, + u64 *data) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct rtl8168_counters *counters; + dma_addr_t paddr; + + ASSERT_RTNL(); + + counters = tp->tally_vaddr; + paddr = tp->tally_paddr; + if (!counters) + return; + + rtl8168_dump_tally_counter(tp, paddr); + + data[0] = le64_to_cpu(counters->tx_packets); + data[1] = le64_to_cpu(counters->rx_packets); + data[2] = le64_to_cpu(counters->tx_errors); + data[3] = le32_to_cpu(counters->rx_errors); + data[4] = le16_to_cpu(counters->rx_missed); + data[5] = le16_to_cpu(counters->align_errors); + data[6] = le32_to_cpu(counters->tx_one_collision); + data[7] = le32_to_cpu(counters->tx_multi_collision); + data[8] = le64_to_cpu(counters->rx_unicast); + data[9] = le64_to_cpu(counters->rx_broadcast); + data[10] = le32_to_cpu(counters->rx_multicast); + data[11] = le16_to_cpu(counters->tx_aborted); + data[12] = le16_to_cpu(counters->tx_underrun); +} + +static void +rtl8168_get_strings(struct net_device *dev, + u32 stringset, + u8 *data) +{ + switch (stringset) { + case ETH_SS_STATS: + memcpy(data, rtl8168_gstrings, sizeof(rtl8168_gstrings)); + break; + } +} +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) + +static int rtl_get_eeprom_len(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + return tp->eeprom_len; +} + +static int rtl_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom, u8 *buf) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i,j,ret; + int start_w, end_w; + int VPD_addr, VPD_data; + u32 *eeprom_buff; + u16 tmp; + + if (tp->eeprom_type == EEPROM_TYPE_NONE) { + dev_printk(KERN_DEBUG, tp_to_dev(tp), "Detect none EEPROM\n"); + return -EOPNOTSUPP; + } else if (eeprom->len == 0 || (eeprom->offset+eeprom->len) > tp->eeprom_len) { + dev_printk(KERN_DEBUG, tp_to_dev(tp), "Invalid parameter\n"); + return -EINVAL; + } + + switch (tp->mcfg) { + case CFG_METHOD_9: + case CFG_METHOD_10: + VPD_addr = 0xCE; + VPD_data = 0xD0; + break; + + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + return -EOPNOTSUPP; + default: + VPD_addr = 0xD2; + VPD_data = 0xD4; + break; + } + + start_w = eeprom->offset >> 2; + end_w = (eeprom->offset + eeprom->len - 1) >> 2; + + eeprom_buff = kmalloc(sizeof(u32)*(end_w - start_w + 1), GFP_KERNEL); + if (!eeprom_buff) + return -ENOMEM; + + rtl8168_enable_cfg9346_write(tp); + ret = -EFAULT; + for (i=start_w; i<=end_w; i++) { + pci_write_config_word(tp->pci_dev, VPD_addr, (u16)i*4); + ret = -EFAULT; + for (j = 0; j < 10; j++) { + udelay(400); + pci_read_config_word(tp->pci_dev, VPD_addr, &tmp); + if (tmp&0x8000) { + ret = 0; + break; + } + } + + if (ret) + break; + + pci_read_config_dword(tp->pci_dev, VPD_data, &eeprom_buff[i-start_w]); + } + rtl8168_disable_cfg9346_write(tp); + + if (!ret) + memcpy(buf, (u8 *)eeprom_buff + (eeprom->offset & 3), eeprom->len); + + kfree(eeprom_buff); + + return ret; +} + +#undef ethtool_op_get_link +#define ethtool_op_get_link _kc_ethtool_op_get_link +static u32 _kc_ethtool_op_get_link(struct net_device *dev) +{ + return netif_carrier_ok(dev) ? 1 : 0; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) +#undef ethtool_op_get_sg +#define ethtool_op_get_sg _kc_ethtool_op_get_sg +static u32 _kc_ethtool_op_get_sg(struct net_device *dev) +{ +#ifdef NETIF_F_SG + return (dev->features & NETIF_F_SG) != 0; +#else + return 0; +#endif +} + +#undef ethtool_op_set_sg +#define ethtool_op_set_sg _kc_ethtool_op_set_sg +static int _kc_ethtool_op_set_sg(struct net_device *dev, u32 data) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->mcfg == CFG_METHOD_DEFAULT) + return -EOPNOTSUPP; + +#ifdef NETIF_F_SG + if (data) + dev->features |= NETIF_F_SG; + else + dev->features &= ~NETIF_F_SG; +#endif + + return 0; +} +#endif + +static void +rtl8168_set_eee_lpi_timer(struct rtl8168_private *tp) +{ + u16 dev_lpi_timer; + + dev_lpi_timer = tp->eee.tx_lpi_timer; + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mac_ocp_write(tp, EEE_TXIDLE_TIMER_8168, dev_lpi_timer); + break; + default: + break; + } +} + +static int rtl8168_enable_eee(struct rtl8168_private *tp) +{ + int ret; + u16 data; + u32 csi_tmp; + struct ethtool_eee *eee = &tp->eee; + u16 eee_adv_t = ethtool_adv_to_mmd_eee_adv_t(eee->advertised); + + ret = 0; + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0020); + data = rtl8168_mdio_read(tp, 0x15) | 0x0100; + rtl8168_mdio_write(tp, 0x15, data); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + data = rtl8168_mdio_read(tp, 0x06) | 0x2000; + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0006); + rtl8168_mdio_write(tp, 0x00, 0x5A30); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0007); + rtl8168_mdio_write(tp, 0x0E, 0x003C); + rtl8168_mdio_write(tp, 0x0D, 0x4007); + rtl8168_mdio_write(tp, 0x0E, 0x0006); + rtl8168_mdio_write(tp, 0x0D, 0x0000); + if ((RTL_R8(tp, Config4)&0x40) && (RTL_R8(tp, 0x6D) & BIT_7)) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8AC8); + rtl8168_mdio_write(tp, 0x06, RTL_R16(tp, tp->NicCustLedValue)); + rtl8168_mdio_write(tp, 0x05, 0x8B82); + data = rtl8168_mdio_read(tp, 0x06) | 0x0010; + rtl8168_mdio_write(tp, 0x05, 0x8B82); + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + break; + + case CFG_METHOD_16: + case CFG_METHOD_17: + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC) | 0x0003; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + rtl8168_mdio_write(tp,0x1F , 0x0004); + rtl8168_mdio_write(tp,0x1F , 0x0007); + rtl8168_mdio_write(tp,0x1E , 0x0020); + data = rtl8168_mdio_read(tp, 0x15)|0x0100; + rtl8168_mdio_write(tp,0x15 , data); + rtl8168_mdio_write(tp,0x1F , 0x0002); + rtl8168_mdio_write(tp,0x1F , 0x0005); + rtl8168_mdio_write(tp,0x05 , 0x8B85); + data = rtl8168_mdio_read(tp, 0x06)|0x2000; + rtl8168_mdio_write(tp,0x06 , data); + rtl8168_mdio_write(tp,0x1F , 0x0000); + rtl8168_mdio_write(tp,0x0D , 0x0007); + rtl8168_mdio_write(tp,0x0E , 0x003C); + rtl8168_mdio_write(tp,0x0D , 0x4007); + rtl8168_mdio_write(tp,0x0E , 0x0006); + rtl8168_mdio_write(tp,0x0D , 0x0000); + break; + + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp |= BIT_1 | BIT_0; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0020); + data = rtl8168_mdio_read(tp, 0x15); + data |= BIT_8; + rtl8168_mdio_write(tp, 0x15, data); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + data = rtl8168_mdio_read(tp, 0x06); + data |= BIT_13; + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0007); + rtl8168_mdio_write(tp, 0x0E, 0x003C); + rtl8168_mdio_write(tp, 0x0D, 0x4007); + rtl8168_mdio_write(tp, 0x0E, 0x0006); + rtl8168_mdio_write(tp, 0x0D, 0x0000); + break; + + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp |= BIT_1 | BIT_0; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x11); + rtl8168_mdio_write(tp, 0x11, data | BIT_4); + rtl8168_mdio_write(tp, 0x1F, 0x0A5D); + rtl8168_mdio_write(tp, 0x10, eee_adv_t); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + + default: +// dev_printk(KERN_DEBUG, tp_to_dev(tp), "Not Support EEE\n"); + ret = -EOPNOTSUPP; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_mdio_write(tp, 0x1F, 0x0A4A); + rtl8168_set_eth_phy_bit(tp, 0x11, BIT_9); + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_7); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + } + + /*Advanced EEE*/ + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_oob_mutex_lock(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_set_phy_mcu_patch_request(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_25: + rtl8168_eri_write(tp, 0x1EA, 1, 0xFA, ERIAR_ExGMAC); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x10); + if (data & BIT_10) { + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + data = rtl8168_mdio_read(tp, 0x16); + data &= ~(BIT_1); + rtl8168_mdio_write(tp, 0x16, data); + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + data = rtl8168_mdio_read(tp, 0x16); + data |= BIT_1; + rtl8168_mdio_write(tp, 0x16, data); + } + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_26: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data |= BIT_0; + rtl8168_mac_ocp_write(tp, 0xE052, data); + data = rtl8168_mac_ocp_read(tp, 0xE056); + data &= 0xFF0F; + data |= (BIT_4 | BIT_5 | BIT_6); + rtl8168_mac_ocp_write(tp, 0xE056, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x10); + if (data & BIT_10) { + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + data = rtl8168_mdio_read(tp, 0x16); + data &= ~(BIT_1); + rtl8168_mdio_write(tp, 0x16, data); + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + data = rtl8168_mdio_read(tp, 0x16); + data |= BIT_1; + rtl8168_mdio_write(tp, 0x16, data); + } + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_27: + case CFG_METHOD_28: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data &= ~BIT_0; + rtl8168_mac_ocp_write(tp, 0xE052, data); + data = rtl8168_mac_ocp_read(tp, 0xE056); + data &= 0xFF0F; + data |= (BIT_4 | BIT_5 | BIT_6); + rtl8168_mac_ocp_write(tp, 0xE056, data); + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data &= ~(BIT_0); + rtl8168_mac_ocp_write(tp, 0xE052, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x10) | BIT_15; + rtl8168_mdio_write(tp, 0x10, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + data = rtl8168_mdio_read(tp, 0x11) | BIT_13 | BIT_14; + data &= ~(BIT_12); + rtl8168_mdio_write(tp, 0x11, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data &= ~(BIT_0); + if (tp->HwPkgDet == 0x0F) + data |= BIT_0; + rtl8168_mac_ocp_write(tp, 0xE052, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x10) | BIT_15; + rtl8168_mdio_write(tp, 0x10, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + data = rtl8168_mdio_read(tp, 0x11) | BIT_13 | BIT_14; + data &= ~(BIT_12); + rtl8168_mdio_write(tp, 0x11, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_clear_phy_mcu_patch_request(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_oob_mutex_unlock(tp); + break; + } + + return ret; +} + +static int rtl8168_disable_eee(struct rtl8168_private *tp) +{ + int ret; + u16 data; + u32 csi_tmp; + + ret = 0; + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + data = rtl8168_mdio_read(tp, 0x06) & ~0x2000; + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0020); + data = rtl8168_mdio_read(tp, 0x15) & ~0x0100; + rtl8168_mdio_write(tp, 0x15, data); + rtl8168_mdio_write(tp, 0x1F, 0x0006); + rtl8168_mdio_write(tp, 0x00, 0x5A00); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0007); + rtl8168_mdio_write(tp, 0x0E, 0x003C); + rtl8168_mdio_write(tp, 0x0D, 0x4007); + rtl8168_mdio_write(tp, 0x0E, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + if (RTL_R8(tp, Config4) & 0x40) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B82); + data = rtl8168_mdio_read(tp, 0x06) & ~0x0010; + rtl8168_mdio_write(tp, 0x05, 0x8B82); + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + break; + + case CFG_METHOD_16: + case CFG_METHOD_17: + csi_tmp = rtl8168_eri_read(tp, 0x1B0,4, ERIAR_ExGMAC)& ~0x0003; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + data = rtl8168_mdio_read(tp, 0x06) & ~0x2000; + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0004); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0020); + data = rtl8168_mdio_read(tp, 0x15) & ~0x0100; + rtl8168_mdio_write(tp,0x15 , data); + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0007); + rtl8168_mdio_write(tp, 0x0E, 0x003C); + rtl8168_mdio_write(tp, 0x0D, 0x4007); + rtl8168_mdio_write(tp, 0x0E, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_1 | BIT_0); + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + data = rtl8168_mdio_read(tp, 0x06); + data &= ~BIT_13; + rtl8168_mdio_write(tp, 0x06, data); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0020); + data = rtl8168_mdio_read(tp, 0x15); + data &= ~BIT_8; + rtl8168_mdio_write(tp, 0x15, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0007); + rtl8168_mdio_write(tp, 0x0E, 0x003C); + rtl8168_mdio_write(tp, 0x0D, 0x4007); + rtl8168_mdio_write(tp, 0x0E, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_1 | BIT_0); + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x11); + if (tp->mcfg == CFG_METHOD_36) + rtl8168_mdio_write(tp, 0x11, data | BIT_4); + else + rtl8168_mdio_write(tp, 0x11, data & ~BIT_4); + rtl8168_mdio_write(tp, 0x1F, 0x0A5D); + rtl8168_mdio_write(tp, 0x10, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + + default: +// dev_printk(KERN_DEBUG, tp_to_dev(tp), "Not Support EEE\n"); + ret = -EOPNOTSUPP; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + rtl8168_clear_eth_phy_bit(tp, 0x14, BIT_7); + rtl8168_mdio_write(tp, 0x1F, 0x0A4A); + rtl8168_clear_eth_phy_bit(tp, 0x11, BIT_9); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + } + + /*Advanced EEE*/ + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_oob_mutex_lock(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_set_phy_mcu_patch_request(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_25: + rtl8168_eri_write(tp, 0x1EA, 1, 0x00, ERIAR_ExGMAC); + + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + data = rtl8168_mdio_read(tp, 0x16); + data &= ~(BIT_1); + rtl8168_mdio_write(tp, 0x16, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_26: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data &= ~(BIT_0); + rtl8168_mac_ocp_write(tp, 0xE052, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + data = rtl8168_mdio_read(tp, 0x16); + data &= ~(BIT_1); + rtl8168_mdio_write(tp, 0x16, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_27: + case CFG_METHOD_28: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data &= ~(BIT_0); + rtl8168_mac_ocp_write(tp, 0xE052, data); + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + data = rtl8168_mac_ocp_read(tp, 0xE052); + data &= ~(BIT_0); + rtl8168_mac_ocp_write(tp, 0xE052, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + data = rtl8168_mdio_read(tp, 0x10) & ~(BIT_15); + rtl8168_mdio_write(tp, 0x10, data); + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + data = rtl8168_mdio_read(tp, 0x11) & ~(BIT_12 | BIT_13 | BIT_14); + rtl8168_mdio_write(tp, 0x11, data); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + rtl8168_clear_phy_mcu_patch_request(tp); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_oob_mutex_unlock(tp); + break; + } + + return ret; +} + +static int rtl_nway_reset(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ret, bmcr; + + if (unlikely(tp->rtk_enable_diag)) + return -EBUSY; + + /* if autoneg is off, it's an error */ + rtl8168_mdio_write(tp, 0x1F, 0x0000); + bmcr = rtl8168_mdio_read(tp, MII_BMCR); + + if (bmcr & BMCR_ANENABLE) { + bmcr |= BMCR_ANRESTART; + rtl8168_mdio_write(tp, MII_BMCR, bmcr); + ret = 0; + } else { + ret = -EINVAL; + } + + return ret; +} +static bool +rtl8168_support_eee(struct rtl8168_private *tp) +{ + switch (tp->mcfg) { + case CFG_METHOD_21 ... CFG_METHOD_36: + return 1; + default: + return 0; + } +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) +static u32 +rtl8168_device_lpi_t_to_ethtool_lpi_t(struct rtl8168_private *tp , u32 lpi_timer) +{ + u32 to_us; + u8 status; + + //Giga: lpi_timer * 8ns + //100M : lpi_timer * 80ns + to_us = 0; + status = RTL_R8(tp, PHYstatus); + if (status & LinkStatus) { + /*link on*/ + if (status & _1000bpsF) + to_us = lpi_timer * 8; + else if (status & _100bps) + to_us = lpi_timer * 80; + } + + //ns to us + to_us /= 1000; + + return to_us; +} + +static int +rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata) +{ + struct rtl8168_private *tp = netdev_priv(net); + struct ethtool_eee *eee = &tp->eee; + u32 lp, adv, tx_lpi_timer, supported = 0; + u16 val; + + if (!rtl8168_support_eee(tp)) + return -EOPNOTSUPP; + + if (unlikely(tp->rtk_enable_diag)) + return -EBUSY; + + /* Get Supported EEE */ + supported = eee->supported; + + /* Get advertisement EEE */ + adv = eee->advertised; + + /* Get LP advertisement EEE */ + rtl8168_mdio_write(tp, 0x1F, 0x0A5D); + val = rtl8168_mdio_read(tp, 0x11); + lp = mmd_eee_adv_to_ethtool_adv_t(val); + + /* Get EEE Tx LPI timer*/ + tx_lpi_timer = rtl8168_device_lpi_t_to_ethtool_lpi_t(tp, eee->tx_lpi_timer); + + val = rtl8168_eri_read(tp, 0x1B0, 2, ERIAR_ExGMAC); + val &= BIT_1 | BIT_0; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + edata->eee_enabled = !!val; + edata->eee_active = !!(supported & adv & lp); + edata->supported = supported; + edata->advertised = adv; + edata->lp_advertised = lp; + edata->tx_lpi_enabled = edata->eee_enabled; + edata->tx_lpi_timer = tx_lpi_timer; + + return 0; +} + +static int +rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata) +{ + struct rtl8168_private *tp = netdev_priv(net); + struct ethtool_eee *eee = &tp->eee; + u32 advertising; + int rc = 0; + + if (!rtl8168_support_eee(tp)) + return -EOPNOTSUPP; + + if (HW_SUPP_SERDES_PHY(tp) || + !HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp) || + tp->DASH) + return -EOPNOTSUPP; + + if (unlikely(tp->rtk_enable_diag)) { + dev_printk(KERN_WARNING, tp_to_dev(tp), "Diag Enabled\n"); + rc = -EBUSY; + goto out; + } + + if (tp->autoneg != AUTONEG_ENABLE) { + dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE requires autoneg\n"); + rc = -EINVAL; + goto out; + } + + advertising = tp->advertising; + if (!edata->advertised) { + edata->advertised = advertising & eee->supported; + } else if (edata->advertised & ~advertising) { + dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of autoneg advertised speeds %x\n", + edata->advertised, advertising); + rc = -EINVAL; + goto out; + } + + if (edata->advertised & ~eee->supported) { + dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of support %x\n", + edata->advertised, eee->supported); + rc = -EINVAL; + goto out; + } + + eee->advertised = edata->advertised; + eee->eee_enabled = edata->eee_enabled; + + if (eee->eee_enabled) + rtl8168_enable_eee(tp); + else + rtl8168_disable_eee(tp); + + rtl_nway_reset(net); + + return rc; + +out: + + return rc; +} +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */ + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) +static const struct ethtool_ops rtl8168_ethtool_ops = { + .get_drvinfo = rtl8168_get_drvinfo, + .get_regs_len = rtl8168_get_regs_len, + .get_link = ethtool_op_get_link, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + .get_ringparam = rtl8168_get_ringparam, + .set_ringparam = rtl8168_set_ringparam, +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) + .get_settings = rtl8168_get_settings, + .set_settings = rtl8168_set_settings, +#else + .get_link_ksettings = rtl8168_get_settings, + .set_link_ksettings = rtl8168_set_settings, +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + .get_pauseparam = rtl8168_get_pauseparam, + .set_pauseparam = rtl8168_set_pauseparam, +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + .get_msglevel = rtl8168_get_msglevel, + .set_msglevel = rtl8168_set_msglevel, +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) + .get_rx_csum = rtl8168_get_rx_csum, + .set_rx_csum = rtl8168_set_rx_csum, + .get_tx_csum = rtl8168_get_tx_csum, + .set_tx_csum = rtl8168_set_tx_csum, + .get_sg = ethtool_op_get_sg, + .set_sg = ethtool_op_set_sg, +#ifdef NETIF_F_TSO + .get_tso = ethtool_op_get_tso, + .set_tso = ethtool_op_set_tso, +#endif //NETIF_F_TSO +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) + .get_regs = rtl8168_get_regs, + .get_wol = rtl8168_get_wol, + .set_wol = rtl8168_set_wol, + .get_strings = rtl8168_get_strings, +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) + .get_stats_count = rtl8168_get_stats_count, +#else + .get_sset_count = rtl8168_get_sset_count, +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) + .get_ethtool_stats = rtl8168_get_ethtool_stats, +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) +#ifdef ETHTOOL_GPERMADDR + .get_perm_addr = ethtool_op_get_perm_addr, +#endif +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) + .get_eeprom = rtl_get_eeprom, + .get_eeprom_len = rtl_get_eeprom_len, +#ifdef ENABLE_RSS_SUPPORT + .get_rxnfc = rtl8168_get_rxnfc, + .set_rxnfc = rtl8168_set_rxnfc, + .get_rxfh_indir_size = rtl8168_rss_indir_size, + .get_rxfh_key_size = rtl8168_get_rxfh_key_size, + .get_rxfh = rtl8168_get_rxfh, + .set_rxfh = rtl8168_set_rxfh, +#endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) + .get_ts_info = ethtool_op_get_ts_info, +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) + .get_eee = rtl_ethtool_get_eee, + .set_eee = rtl_ethtool_set_eee, +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */ + .nway_reset = rtl_nway_reset, +}; +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) + +static void rtl8168_get_mac_version(struct rtl8168_private *tp) +{ + u32 reg,val32; + u32 ICVerID; + + val32 = RTL_R32(tp, TxConfig); + reg = val32 & 0x7c800000; + ICVerID = val32 & 0x00700000; + + switch (reg) { + case 0x30000000: + tp->mcfg = CFG_METHOD_1; + tp->efuse_ver = EFUSE_NOT_SUPPORT; + break; + case 0x38000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_2; + } else if (ICVerID == 0x00500000) { + tp->mcfg = CFG_METHOD_3; + } else { + tp->mcfg = CFG_METHOD_3; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_NOT_SUPPORT; + break; + case 0x3C000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_4; + } else if (ICVerID == 0x00200000) { + tp->mcfg = CFG_METHOD_5; + } else if (ICVerID == 0x00400000) { + tp->mcfg = CFG_METHOD_6; + } else { + tp->mcfg = CFG_METHOD_6; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_NOT_SUPPORT; + break; + case 0x3C800000: + if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_7; + } else if (ICVerID == 0x00300000) { + tp->mcfg = CFG_METHOD_8; + } else { + tp->mcfg = CFG_METHOD_8; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_NOT_SUPPORT; + break; + case 0x28000000: + if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_9; + } else if (ICVerID == 0x00300000) { + tp->mcfg = CFG_METHOD_10; + } else { + tp->mcfg = CFG_METHOD_10; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V1; + break; + case 0x28800000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_11; + } else if (ICVerID == 0x00200000) { + tp->mcfg = CFG_METHOD_12; + RTL_W32(tp, 0xD0, RTL_R32(tp, 0xD0) | 0x00020000); + } else if (ICVerID == 0x00300000) { + tp->mcfg = CFG_METHOD_13; + } else { + tp->mcfg = CFG_METHOD_13; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V1; + break; + case 0x2C000000: + if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_14; + } else if (ICVerID == 0x00200000) { + tp->mcfg = CFG_METHOD_15; + } else { + tp->mcfg = CFG_METHOD_15; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V2; + break; + case 0x2C800000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_16; + } else if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_17; + } else { + tp->mcfg = CFG_METHOD_17; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x48000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_18; + } else if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_19; + } else { + tp->mcfg = CFG_METHOD_19; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x48800000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_20; + } else { + tp->mcfg = CFG_METHOD_20; + tp->HwIcVerUnknown = TRUE; + } + + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x4C000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_21; + } else if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_22; + } else { + tp->mcfg = CFG_METHOD_22; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x50000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_23; + } else if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_27; + } else if (ICVerID == 0x00200000) { + tp->mcfg = CFG_METHOD_28; + } else { + tp->mcfg = CFG_METHOD_28; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x50800000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_24; + } else if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_25; + } else { + tp->mcfg = CFG_METHOD_25; + tp->HwIcVerUnknown = TRUE; + } + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x5C800000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_26; + } else { + tp->mcfg = CFG_METHOD_26; + tp->HwIcVerUnknown = TRUE; + } + + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x54000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_29; + } else if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_30; + } else { + tp->mcfg = CFG_METHOD_30; + tp->HwIcVerUnknown = TRUE; + } + + if (tp->mcfg == CFG_METHOD_30) { + if ((rtl8168_mac_ocp_read(tp, 0xD006) & 0xFF00) == + 0x0100) + tp->mcfg = CFG_METHOD_35; + else if ((rtl8168_mac_ocp_read(tp, 0xD006) & 0xFF00) == + 0x0300) + tp->mcfg = CFG_METHOD_36; + } + + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x6C000000: + if (ICVerID == 0x00000000) { + tp->mcfg = CFG_METHOD_37; + } else { + tp->mcfg = CFG_METHOD_37; + tp->HwIcVerUnknown = TRUE; + } + + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + case 0x54800000: + if (ICVerID == 0x00100000) { + tp->mcfg = CFG_METHOD_31; + } else if (ICVerID == 0x00200000) { + tp->mcfg = CFG_METHOD_32; + } else if (ICVerID == 0x00300000) { + tp->mcfg = CFG_METHOD_33; + } else if (ICVerID == 0x00400000) { + tp->mcfg = CFG_METHOD_34; + } else { + tp->mcfg = CFG_METHOD_34; + tp->HwIcVerUnknown = TRUE; + } + + tp->efuse_ver = EFUSE_SUPPORT_V3; + break; + default: + printk("unknown chip version (%x)\n",reg); + tp->mcfg = CFG_METHOD_DEFAULT; + tp->HwIcVerUnknown = TRUE; + tp->efuse_ver = EFUSE_NOT_SUPPORT; + break; + } +} + +static void +rtl8168_print_mac_version(struct rtl8168_private *tp) +{ + int i; + for (i = ARRAY_SIZE(rtl_chip_info) - 1; i >= 0; i--) { + if (tp->mcfg == rtl_chip_info[i].mcfg) { + dprintk("Realtek PCIe GbE Family Controller mcfg = %04d\n", + rtl_chip_info[i].mcfg); + return; + } + } + + dprintk("mac_version == Unknown\n"); +} + +static u8 rtl8168_calc_efuse_dummy_bit(u16 reg) +{ + int s,a,b; + u8 dummyBitPos = 0; + + + s=reg% 32; + a=s % 16; + b=s/16; + + if (s/16) { + dummyBitPos = (u8)(16-a); + } else { + dummyBitPos = (u8)a; + } + + return dummyBitPos; +} + +static u32 rtl8168_decode_efuse_cmd(struct rtl8168_private *tp, u32 DwCmd) +{ + u16 reg = (u16)((DwCmd & 0x00FE0000) >> 17); + u32 DummyPos = rtl8168_calc_efuse_dummy_bit(reg); + u32 DeCodeDwCmd; + u32 Dw17BitData; + + if (tp->efuse_ver < 3) { + DeCodeDwCmd = (DwCmd>>(DummyPos+1))< 0) { + DeCodeDwCmd |= ((DwCmd<<(32-DummyPos))>>(32-DummyPos)); + } + } else { + reg = (u16)((DwCmd & 0x007F0000) >> 16); + DummyPos = rtl8168_calc_efuse_dummy_bit(reg); + Dw17BitData = ((DwCmd & BIT_23) >> 23); + Dw17BitData <<= 16; + Dw17BitData |= (DwCmd & 0x0000FFFF); + DeCodeDwCmd = (Dw17BitData>>(DummyPos+1))< 0) { + DeCodeDwCmd |= ((Dw17BitData<<(32-DummyPos))>>(32-DummyPos)); + } + } + + return DeCodeDwCmd; +} + +static u8 rtl8168_efuse_read(struct rtl8168_private *tp, u16 reg) +{ + u8 efuse_data = 0; + u32 temp; + int cnt; + + if (tp->efuse_ver == EFUSE_NOT_SUPPORT) + return EFUSE_READ_FAIL; + + if (tp->efuse_ver == EFUSE_SUPPORT_V1) { + temp = EFUSE_READ | ((reg & EFUSE_Reg_Mask) << EFUSE_Reg_Shift); + RTL_W32(tp, EFUSEAR, temp); + + cnt = 0; + do { + udelay(100); + temp = RTL_R32(tp, EFUSEAR); + cnt++; + } while (!(temp & EFUSE_READ_OK) && (cnt < EFUSE_Check_Cnt)); + + if (cnt == EFUSE_Check_Cnt) + efuse_data = EFUSE_READ_FAIL; + else + efuse_data = (u8)(RTL_R32(tp, EFUSEAR) & EFUSE_Data_Mask); + } else if (tp->efuse_ver == EFUSE_SUPPORT_V2) { + temp = (reg/2) & 0x03ff; + temp <<= 17; + temp |= EFUSE_READ; + RTL_W32(tp, EFUSEAR, temp); + + cnt = 0; + do { + udelay(100); + temp = RTL_R32(tp, EFUSEAR); + cnt++; + } while (!(temp & EFUSE_READ_OK) && (cnt < EFUSE_Check_Cnt)); + + if (cnt == EFUSE_Check_Cnt) { + efuse_data = EFUSE_READ_FAIL; + } else { + temp = RTL_R32(tp, EFUSEAR); + temp = rtl8168_decode_efuse_cmd(tp, temp); + + if (reg%2) { + temp >>= 8; + efuse_data = (u8)temp; + } else { + efuse_data = (u8)temp; + } + } + } else if (tp->efuse_ver == EFUSE_SUPPORT_V3) { + temp = (reg/2) & 0x03ff; + temp <<= 16; + temp |= EFUSE_READ_V3; + RTL_W32(tp, EFUSEAR, temp); + + cnt = 0; + do { + udelay(100); + temp = RTL_R32(tp, EFUSEAR); + cnt++; + } while ((temp & BIT_31) && (cnt < EFUSE_Check_Cnt)); + + if (cnt == EFUSE_Check_Cnt) { + efuse_data = EFUSE_READ_FAIL; + } else { + temp = RTL_R32(tp, EFUSEAR); + temp = rtl8168_decode_efuse_cmd(tp, temp); + + if (reg%2) { + temp >>= 8; + efuse_data = (u8)temp; + } else { + efuse_data = (u8)temp; + } + } + } + + udelay(R8168_CHANNEL_EXIT_DELAY_TIME); + + return efuse_data; +} + +static void +rtl8168_tally_counter_addr_fill(struct rtl8168_private *tp) +{ + if (!tp->tally_paddr) + return; + + RTL_W32(tp, CounterAddrHigh, (u64)tp->tally_paddr >> 32); + RTL_W32(tp, CounterAddrLow, (u64)tp->tally_paddr & (DMA_BIT_MASK(32))); +} + +static void +rtl8168_tally_counter_clear(struct rtl8168_private *tp) +{ + if (tp->mcfg == CFG_METHOD_1 || tp->mcfg == CFG_METHOD_2 || + tp->mcfg == CFG_METHOD_3 ) + return; + + if (!tp->tally_paddr) + return; + + RTL_W32(tp, CounterAddrHigh, (u64)tp->tally_paddr >> 32); + RTL_W32(tp, CounterAddrLow, ((u64)tp->tally_paddr & (DMA_BIT_MASK(32))) | CounterReset); +} + +static +u16 +rtl8168_get_phy_state(struct rtl8168_private *tp) +{ + u16 PhyState = 0xFF; + + if (HW_SUPPORT_UPS_MODE(tp) == FALSE) + goto exit; + + switch (tp->HwSuppUpsVer) { + case 1: + PhyState = rtl8168_mdio_read_phy_ocp(tp, 0x0A42, 0x10); + PhyState &= 0x7; //bit[2:0] + break; + } + +exit: + return PhyState; +} + +static +bool +rtl8168_wait_phy_state_ready(struct rtl8168_private *tp, + u16 PhyState, + u32 MicroSecondTimeout + ) +{ + u16 TmpPhyState; + u32 WaitCount; + u32 i = 0; + bool PhyStateReady = TRUE; + + if (HW_SUPPORT_UPS_MODE(tp) == FALSE) + goto exit; + + WaitCount = MicroSecondTimeout / 1000; + if (WaitCount == 0) WaitCount = 100; + + do { + TmpPhyState = rtl8168_get_phy_state(tp); + mdelay(1); + i++; + } while ((i < WaitCount) && (TmpPhyState != PhyState)); + + PhyStateReady = (i == WaitCount && TmpPhyState != PhyState) ? FALSE : TRUE; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + WARN_ON_ONCE(i == WaitCount); +#endif + +exit: + return PhyStateReady; +} + +static +bool +rtl8168_test_phy_ocp_v2(struct rtl8168_private *tp) +{ + bool RestorePhyOcpReg = FALSE; + + u16 PhyRegValue; + u8 ResetPhyType = 0; + + if (HW_PHY_STATUS_INI == rtl8168_get_phy_state(tp)) { + ResetPhyType = 1; + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + PhyRegValue = rtl8168_mdio_read(tp, 0x12); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + if ((PhyRegValue & 0x03) != 0x00) { + ResetPhyType = 2; + } + } + + if (ResetPhyType == 0) + goto exit; + + netif_err(tp, drv, tp->dev, "test_phy_ocp ResetPhyType = 0x%02x\n.\n", + ResetPhyType); + + rtl8168_mdio_write(tp, 0x1F, 0x0C41); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + mdelay(24); //24ms + + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + PhyRegValue = rtl8168_mdio_read(tp, 0x12); + if ((PhyRegValue & 0x03) != 0x00) { + u32 WaitCnt = 0; + while ((PhyRegValue & 0x03) != 0x00 && WaitCnt < 5) { + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + rtl8168_set_eth_phy_bit(tp, 0x11, (BIT_15 | BIT_14)); + rtl8168_clear_eth_phy_bit(tp, 0x11, (BIT_15 | BIT_14)); + mdelay(100); + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + PhyRegValue = rtl8168_mdio_read(tp, 0x12); + WaitCnt++; + } + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + rtl8168_mdio_write(tp, 0x10, tp->BackupPhyFuseDout_15_0); + rtl8168_mdio_write(tp, 0x12, tp->BackupPhyFuseDout_47_32); + rtl8168_mdio_write(tp, 0x13, tp->BackupPhyFuseDout_63_48); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_wait_phy_state_ready(tp, HW_PHY_STATUS_INI, 5000000); + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_wait_phy_state_ready(tp, HW_PHY_STATUS_LAN_ON, 500000); + + tp->HwHasWrRamCodeToMicroP = FALSE; + + RestorePhyOcpReg = TRUE; + +exit: + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + return RestorePhyOcpReg; +} + +static +bool +rtl8168_test_phy_ocp_v3(struct rtl8168_private *tp) +{ + bool RestorePhyOcpReg = FALSE; + + u16 PhyRegValue; + u8 ResetPhyType = 0; + u8 watch_dog = 0; + u8 uc_response; + u8 nctl_pc_range_fail; + u8 nctl_pc_stuck_fail; + + if (FALSE == HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) + goto exit; + + rtl8168_mdio_write(tp, 0x1F, 0x0B82); + uc_response = !!(rtl8168_mdio_read(tp, 0x10) & BIT_5); + rtl8168_mdio_write(tp, 0x1F, 0x0B84); + nctl_pc_range_fail = !!(rtl8168_mdio_read(tp, 0x11) & BIT_1); + nctl_pc_stuck_fail = !!(rtl8168_mdio_read(tp, 0x11) & BIT_2); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (uc_response || nctl_pc_range_fail || nctl_pc_stuck_fail) { + ResetPhyType = 3; + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + PhyRegValue = rtl8168_mdio_read(tp, 0x12); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + if ((PhyRegValue & 0x03) != 0x00) { + watch_dog = (u8)(PhyRegValue & 0x03); + ResetPhyType = 2; + } + } + + if (ResetPhyType == 0) + goto exit; + + netif_err(tp, drv, tp->dev, "test_phy_ocp ResetPhyType = 0x%02x\n.\n", + ResetPhyType); + + rtl8168_mdio_write(tp, 0x1F, 0x0C41); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + mdelay(24000); //24ms + + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + PhyRegValue = rtl8168_mdio_read(tp, 0x12); + if ((PhyRegValue & 0x03) != 0x00) { + u32 WaitCnt = 0; + while ((PhyRegValue & 0x03) != 0x00 && WaitCnt < 5) { + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + rtl8168_set_eth_phy_bit(tp, 0x11, (BIT_15 | BIT_14)); + rtl8168_clear_eth_phy_bit(tp, 0x11, (BIT_15 | BIT_14)); + mdelay(100000); + rtl8168_mdio_write(tp, 0x1F, 0x0C40); + PhyRegValue = rtl8168_mdio_read(tp, 0x12); + WaitCnt++; + } + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + //issue9 + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + rtl8168_mdio_write(tp, 0x10, tp->BackupPhyFuseDout_15_0); + rtl8168_mdio_write(tp, 0x11, tp->BackupPhyFuseDout_31_16); + rtl8168_mdio_write(tp, 0x12, tp->BackupPhyFuseDout_47_32); + rtl8168_mdio_write(tp, 0x13, tp->BackupPhyFuseDout_63_48); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_wait_phy_state_ready(tp, HW_PHY_STATUS_INI, 5000000); + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_wait_phy_state_ready(tp, HW_PHY_STATUS_LAN_ON, 500000); + + //record fail case + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x801C); + PhyRegValue = watch_dog & 0x03; + PhyRegValue <<= 14; + if (uc_response) PhyRegValue |= BIT_13; + if (nctl_pc_range_fail) PhyRegValue |= BIT_12; + if (nctl_pc_stuck_fail) PhyRegValue |= BIT_11; + ClearAndSetEthPhyBit(tp, + 0x14, + 0xF800, + PhyRegValue); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + tp->HwHasWrRamCodeToMicroP = FALSE; + + RestorePhyOcpReg = TRUE; + +exit: + //set uc_response to 1 and gphy should auto clear it. + rtl8168_mdio_write(tp, 0x1F, 0x0B82); + rtl8168_set_eth_phy_bit(tp, 0x10, BIT_5); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + return RestorePhyOcpReg; +} + +static +bool +rtl8168_test_phy_ocp(struct rtl8168_private *tp) +{ + bool RestorePhyOcpReg = FALSE; + + if (tp->TestPhyOcpReg == FALSE) + goto exit; + + switch (tp->HwSuppEsdVer) { + case 2: + RestorePhyOcpReg = rtl8168_test_phy_ocp_v2(tp); + break; + case 3: + RestorePhyOcpReg = rtl8168_test_phy_ocp_v3(tp); + break; + default: + break; + } + +exit: + return RestorePhyOcpReg; +} + +static int +rtl8168_is_ups_resume(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + return (rtl8168_mac_ocp_read(tp, 0xD408) & BIT_0); +} + +static void +rtl8168_clear_ups_resume_bit(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_mac_ocp_write(tp, 0xD408, rtl8168_mac_ocp_read(tp, 0xD408) & ~(BIT_0)); +} + +static void +rtl8168_wait_phy_ups_resume(struct net_device *dev, u16 PhyState) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 TmpPhyState; + int i = 0; + + do { + TmpPhyState = rtl8168_mdio_read_phy_ocp(tp, 0x0A42, 0x10); + TmpPhyState &= 0x7; + mdelay(1); + i++; + } while ((i < 100) && (TmpPhyState != PhyState)); + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18) + WARN_ON_ONCE(i == 100); +#endif +} + +void +rtl8168_enable_now_is_oob(struct rtl8168_private *tp) +{ + if ( tp->HwSuppNowIsOobVer == 1 ) { + RTL_W8(tp, MCUCmd_reg, RTL_R8(tp, MCUCmd_reg) | Now_is_oob); + } +} + +void +rtl8168_disable_now_is_oob(struct rtl8168_private *tp) +{ + if ( tp->HwSuppNowIsOobVer == 1 ) { + RTL_W8(tp, MCUCmd_reg, RTL_R8(tp, MCUCmd_reg) & ~Now_is_oob); + } +} + +static void +rtl8168_switch_to_sgmii_mode( + struct rtl8168_private *tp +) +{ + if (FALSE == HW_SUPP_SERDES_PHY(tp)) + return; + + switch (tp->HwSuppSerDesPhyVer) { + case 1: + rtl8168_mac_ocp_write(tp, 0xEB00, 0x2); + rtl8168_set_mcu_ocp_bit(tp, 0xEB16, BIT_1); + break; + } +} + +static void +rtl8168_exit_oob(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 data16; + + rtl8168_disable_rx_packet_filter(tp); + + if (HW_SUPP_SERDES_PHY(tp)) { + if (tp->HwSuppSerDesPhyVer == 1) { + rtl8168_switch_to_sgmii_mode(tp); + } + } + + if (HW_DASH_SUPPORT_DASH(tp)) { + rtl8168_driver_start(tp); + rtl8168_dash2_disable_txrx(dev); +#ifdef ENABLE_DASH_SUPPORT + DashHwInit(dev); +#endif + } + + //Disable realwow function + switch (tp->mcfg) { + case CFG_METHOD_18: + case CFG_METHOD_19: + RTL_W32(tp, MACOCP, 0xE5A90000); + RTL_W32(tp, MACOCP, 0xF2100010); + break; + case CFG_METHOD_20: + RTL_W32(tp, MACOCP, 0xE5A90000); + RTL_W32(tp, MACOCP, 0xE4640000); + RTL_W32(tp, MACOCP, 0xF2100010); + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + RTL_W32(tp, MACOCP, 0x605E0000); + RTL_W32(tp, MACOCP, (0xE05E << 16) | (RTL_R32(tp, MACOCP) & 0xFFFE)); + RTL_W32(tp, MACOCP, 0xE9720000); + RTL_W32(tp, MACOCP, 0xF2140010); + break; + case CFG_METHOD_26: + RTL_W32(tp, MACOCP, 0xE05E00FF); + RTL_W32(tp, MACOCP, 0xE9720000); + rtl8168_mac_ocp_write(tp, 0xE428, 0x0010); + break; + } + +#ifdef ENABLE_REALWOW_SUPPORT + rtl8168_realwow_hw_init(dev); +#else + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + rtl8168_eri_write(tp, 0x174, 2, 0x0000, ERIAR_ExGMAC); + rtl8168_mac_ocp_write(tp, 0xE428, 0x0010); + break; + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_eri_write(tp, 0x174, 2, 0x00FF, ERIAR_ExGMAC); + rtl8168_mac_ocp_write(tp, 0xE428, 0x0010); + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: { + u32 csi_tmp; + csi_tmp = rtl8168_eri_read(tp, 0x174, 2, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_8); + csi_tmp |= (BIT_15); + rtl8168_eri_write(tp, 0x174, 2, csi_tmp, ERIAR_ExGMAC); + rtl8168_mac_ocp_write(tp, 0xE428, 0x0010); + } + break; + } +#endif //ENABLE_REALWOW_SUPPORT + + rtl8168_nic_reset(dev); + + switch (tp->mcfg) { + case CFG_METHOD_20: + rtl8168_wait_ll_share_fifo_ready(dev); + + data16 = rtl8168_mac_ocp_read(tp, 0xD4DE) | BIT_15; + rtl8168_mac_ocp_write(tp, 0xD4DE, data16); + + rtl8168_wait_ll_share_fifo_ready(dev); + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_disable_now_is_oob(tp); + + data16 = rtl8168_mac_ocp_read(tp, 0xE8DE) & ~BIT_14; + rtl8168_mac_ocp_write(tp, 0xE8DE, data16); + rtl8168_wait_ll_share_fifo_ready(dev); + + data16 = rtl8168_mac_ocp_read(tp, 0xE8DE) | BIT_15; + rtl8168_mac_ocp_write(tp, 0xE8DE, data16); + + rtl8168_wait_ll_share_fifo_ready(dev); + break; + } + + //wait ups resume (phy state 2) + if (HW_SUPPORT_UPS_MODE(tp)) + if (rtl8168_is_ups_resume(dev)) { + rtl8168_wait_phy_ups_resume(dev, HW_PHY_STATUS_EXT_INI); + rtl8168_clear_ups_resume_bit(dev); + } + +#ifdef ENABLE_FIBER_SUPPORT + if (HW_FIBER_MODE_ENABLED(tp)) + rtl8168_hw_init_fiber_nic(tp); +#endif //ENABLE_FIBER_SUPPORT +} + +void +rtl8168_hw_disable_mac_mcu_bps(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->HwSuppAspmClkIntrLock) { + rtl8168_enable_cfg9346_write(tp); + rtl8168_hw_aspm_clkreq_enable(tp, false); + rtl8168_disable_cfg9346_write(tp); + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mac_ocp_write(tp, 0xFC38, 0x0000); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mac_ocp_write(tp, 0xFC28, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC2E, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC30, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC32, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC34, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC36, 0x0000); + mdelay(3); + rtl8168_mac_ocp_write(tp, 0xFC26, 0x0000); + break; + } +} + +#ifndef ENABLE_USE_FIRMWARE_FILE +static void +rtl8168_set_mac_mcu_8168g_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_mac_ocp_write(tp, 0xE43C, 0x0000); + rtl8168_mac_ocp_write(tp, 0xE43E, 0x0000); + + rtl8168_mac_ocp_write(tp, 0xE434, 0x0004); + rtl8168_mac_ocp_write(tp, 0xE43C, 0x0004); + + rtl8168_hw_disable_mac_mcu_bps(dev); + + rtl8168_mac_ocp_write( tp, 0xF800, 0xE008 ); + rtl8168_mac_ocp_write( tp, 0xF802, 0xE01B ); + rtl8168_mac_ocp_write( tp, 0xF804, 0xE022 ); + rtl8168_mac_ocp_write( tp, 0xF806, 0xE094 ); + rtl8168_mac_ocp_write( tp, 0xF808, 0xE097 ); + rtl8168_mac_ocp_write( tp, 0xF80A, 0xE09A ); + rtl8168_mac_ocp_write( tp, 0xF80C, 0xE0B3 ); + rtl8168_mac_ocp_write( tp, 0xF80E, 0xE0BA ); + rtl8168_mac_ocp_write( tp, 0xF810, 0x49D2 ); + rtl8168_mac_ocp_write( tp, 0xF812, 0xF10D ); + rtl8168_mac_ocp_write( tp, 0xF814, 0x766C ); + rtl8168_mac_ocp_write( tp, 0xF816, 0x49E2 ); + rtl8168_mac_ocp_write( tp, 0xF818, 0xF00A ); + rtl8168_mac_ocp_write( tp, 0xF81A, 0x1EC0 ); + rtl8168_mac_ocp_write( tp, 0xF81C, 0x8EE1 ); + rtl8168_mac_ocp_write( tp, 0xF81E, 0xC60A ); + rtl8168_mac_ocp_write( tp, 0xF820, 0x77C0 ); + rtl8168_mac_ocp_write( tp, 0xF822, 0x4870 ); + rtl8168_mac_ocp_write( tp, 0xF824, 0x9FC0 ); + rtl8168_mac_ocp_write( tp, 0xF826, 0x1EA0 ); + rtl8168_mac_ocp_write( tp, 0xF828, 0xC707 ); + rtl8168_mac_ocp_write( tp, 0xF82A, 0x8EE1 ); + rtl8168_mac_ocp_write( tp, 0xF82C, 0x9D6C ); + rtl8168_mac_ocp_write( tp, 0xF82E, 0xC603 ); + rtl8168_mac_ocp_write( tp, 0xF830, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF832, 0xB416 ); + rtl8168_mac_ocp_write( tp, 0xF834, 0x0076 ); + rtl8168_mac_ocp_write( tp, 0xF836, 0xE86C ); + rtl8168_mac_ocp_write( tp, 0xF838, 0xC406 ); + rtl8168_mac_ocp_write( tp, 0xF83A, 0x7580 ); + rtl8168_mac_ocp_write( tp, 0xF83C, 0x4852 ); + rtl8168_mac_ocp_write( tp, 0xF83E, 0x8D80 ); + rtl8168_mac_ocp_write( tp, 0xF840, 0xC403 ); + rtl8168_mac_ocp_write( tp, 0xF842, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF844, 0xD3E0 ); + rtl8168_mac_ocp_write( tp, 0xF846, 0x02C8 ); + rtl8168_mac_ocp_write( tp, 0xF848, 0x8918 ); + rtl8168_mac_ocp_write( tp, 0xF84A, 0xE815 ); + rtl8168_mac_ocp_write( tp, 0xF84C, 0x1100 ); + rtl8168_mac_ocp_write( tp, 0xF84E, 0xF011 ); + rtl8168_mac_ocp_write( tp, 0xF850, 0xE812 ); + rtl8168_mac_ocp_write( tp, 0xF852, 0x4990 ); + rtl8168_mac_ocp_write( tp, 0xF854, 0xF002 ); + rtl8168_mac_ocp_write( tp, 0xF856, 0xE817 ); + rtl8168_mac_ocp_write( tp, 0xF858, 0xE80E ); + rtl8168_mac_ocp_write( tp, 0xF85A, 0x4992 ); + rtl8168_mac_ocp_write( tp, 0xF85C, 0xF002 ); + rtl8168_mac_ocp_write( tp, 0xF85E, 0xE80E ); + rtl8168_mac_ocp_write( tp, 0xF860, 0xE80A ); + rtl8168_mac_ocp_write( tp, 0xF862, 0x4993 ); + rtl8168_mac_ocp_write( tp, 0xF864, 0xF002 ); + rtl8168_mac_ocp_write( tp, 0xF866, 0xE818 ); + rtl8168_mac_ocp_write( tp, 0xF868, 0xE806 ); + rtl8168_mac_ocp_write( tp, 0xF86A, 0x4991 ); + rtl8168_mac_ocp_write( tp, 0xF86C, 0xF002 ); + rtl8168_mac_ocp_write( tp, 0xF86E, 0xE838 ); + rtl8168_mac_ocp_write( tp, 0xF870, 0xC25E ); + rtl8168_mac_ocp_write( tp, 0xF872, 0xBA00 ); + rtl8168_mac_ocp_write( tp, 0xF874, 0xC056 ); + rtl8168_mac_ocp_write( tp, 0xF876, 0x7100 ); + rtl8168_mac_ocp_write( tp, 0xF878, 0xFF80 ); + rtl8168_mac_ocp_write( tp, 0xF87A, 0x7100 ); + rtl8168_mac_ocp_write( tp, 0xF87C, 0x4892 ); + rtl8168_mac_ocp_write( tp, 0xF87E, 0x4813 ); + rtl8168_mac_ocp_write( tp, 0xF880, 0x8900 ); + rtl8168_mac_ocp_write( tp, 0xF882, 0xE00A ); + rtl8168_mac_ocp_write( tp, 0xF884, 0x7100 ); + rtl8168_mac_ocp_write( tp, 0xF886, 0x4890 ); + rtl8168_mac_ocp_write( tp, 0xF888, 0x4813 ); + rtl8168_mac_ocp_write( tp, 0xF88A, 0x8900 ); + rtl8168_mac_ocp_write( tp, 0xF88C, 0xC74B ); + rtl8168_mac_ocp_write( tp, 0xF88E, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF890, 0x48C2 ); + rtl8168_mac_ocp_write( tp, 0xF892, 0x4841 ); + rtl8168_mac_ocp_write( tp, 0xF894, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF896, 0xC746 ); + rtl8168_mac_ocp_write( tp, 0xF898, 0x74FC ); + rtl8168_mac_ocp_write( tp, 0xF89A, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF89C, 0xF120 ); + rtl8168_mac_ocp_write( tp, 0xF89E, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF8A0, 0xF11E ); + rtl8168_mac_ocp_write( tp, 0xF8A2, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF8A4, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF8A6, 0xF01B ); + rtl8168_mac_ocp_write( tp, 0xF8A8, 0x49C6 ); + rtl8168_mac_ocp_write( tp, 0xF8AA, 0xF119 ); + rtl8168_mac_ocp_write( tp, 0xF8AC, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF8AE, 0x49C4 ); + rtl8168_mac_ocp_write( tp, 0xF8B0, 0xF013 ); + rtl8168_mac_ocp_write( tp, 0xF8B2, 0xC536 ); + rtl8168_mac_ocp_write( tp, 0xF8B4, 0x74B0 ); + rtl8168_mac_ocp_write( tp, 0xF8B6, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF8B8, 0xF1FD ); + rtl8168_mac_ocp_write( tp, 0xF8BA, 0xC537 ); + rtl8168_mac_ocp_write( tp, 0xF8BC, 0xC434 ); + rtl8168_mac_ocp_write( tp, 0xF8BE, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF8C0, 0xC435 ); + rtl8168_mac_ocp_write( tp, 0xF8C2, 0x1C13 ); + rtl8168_mac_ocp_write( tp, 0xF8C4, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xF8C6, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xF8C8, 0xC52B ); + rtl8168_mac_ocp_write( tp, 0xF8CA, 0x74B0 ); + rtl8168_mac_ocp_write( tp, 0xF8CC, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF8CE, 0xF1FD ); + rtl8168_mac_ocp_write( tp, 0xF8D0, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF8D2, 0x48C4 ); + rtl8168_mac_ocp_write( tp, 0xF8D4, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF8D6, 0x7100 ); + rtl8168_mac_ocp_write( tp, 0xF8D8, 0x4893 ); + rtl8168_mac_ocp_write( tp, 0xF8DA, 0x8900 ); + rtl8168_mac_ocp_write( tp, 0xF8DC, 0xFF80 ); + rtl8168_mac_ocp_write( tp, 0xF8DE, 0xC520 ); + rtl8168_mac_ocp_write( tp, 0xF8E0, 0x74B0 ); + rtl8168_mac_ocp_write( tp, 0xF8E2, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF8E4, 0xF11C ); + rtl8168_mac_ocp_write( tp, 0xF8E6, 0xC71E ); + rtl8168_mac_ocp_write( tp, 0xF8E8, 0x74FC ); + rtl8168_mac_ocp_write( tp, 0xF8EA, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF8EC, 0xF118 ); + rtl8168_mac_ocp_write( tp, 0xF8EE, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF8F0, 0xF116 ); + rtl8168_mac_ocp_write( tp, 0xF8F2, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF8F4, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF8F6, 0xF013 ); + rtl8168_mac_ocp_write( tp, 0xF8F8, 0x48C3 ); + rtl8168_mac_ocp_write( tp, 0xF8FA, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF8FC, 0xC516 ); + rtl8168_mac_ocp_write( tp, 0xF8FE, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xF900, 0x49CE ); + rtl8168_mac_ocp_write( tp, 0xF902, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xF904, 0xC411 ); + rtl8168_mac_ocp_write( tp, 0xF906, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF908, 0xC411 ); + rtl8168_mac_ocp_write( tp, 0xF90A, 0x1C13 ); + rtl8168_mac_ocp_write( tp, 0xF90C, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xF90E, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xF910, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xF912, 0x49CF ); + rtl8168_mac_ocp_write( tp, 0xF914, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xF916, 0x7100 ); + rtl8168_mac_ocp_write( tp, 0xF918, 0x4891 ); + rtl8168_mac_ocp_write( tp, 0xF91A, 0x8900 ); + rtl8168_mac_ocp_write( tp, 0xF91C, 0xFF80 ); + rtl8168_mac_ocp_write( tp, 0xF91E, 0xE400 ); + rtl8168_mac_ocp_write( tp, 0xF920, 0xD3E0 ); + rtl8168_mac_ocp_write( tp, 0xF922, 0xE000 ); + rtl8168_mac_ocp_write( tp, 0xF924, 0x0481 ); + rtl8168_mac_ocp_write( tp, 0xF926, 0x0C81 ); + rtl8168_mac_ocp_write( tp, 0xF928, 0xDE20 ); + rtl8168_mac_ocp_write( tp, 0xF92A, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xF92C, 0x0992 ); + rtl8168_mac_ocp_write( tp, 0xF92E, 0x1B76 ); + rtl8168_mac_ocp_write( tp, 0xF930, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF932, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF934, 0x059C ); + rtl8168_mac_ocp_write( tp, 0xF936, 0x1B76 ); + rtl8168_mac_ocp_write( tp, 0xF938, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF93A, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF93C, 0x065A ); + rtl8168_mac_ocp_write( tp, 0xF93E, 0xB400 ); + rtl8168_mac_ocp_write( tp, 0xF940, 0x18DE ); + rtl8168_mac_ocp_write( tp, 0xF942, 0x2008 ); + rtl8168_mac_ocp_write( tp, 0xF944, 0x4001 ); + rtl8168_mac_ocp_write( tp, 0xF946, 0xF10F ); + rtl8168_mac_ocp_write( tp, 0xF948, 0x7342 ); + rtl8168_mac_ocp_write( tp, 0xF94A, 0x1880 ); + rtl8168_mac_ocp_write( tp, 0xF94C, 0x2008 ); + rtl8168_mac_ocp_write( tp, 0xF94E, 0x0009 ); + rtl8168_mac_ocp_write( tp, 0xF950, 0x4018 ); + rtl8168_mac_ocp_write( tp, 0xF952, 0xF109 ); + rtl8168_mac_ocp_write( tp, 0xF954, 0x7340 ); + rtl8168_mac_ocp_write( tp, 0xF956, 0x25BC ); + rtl8168_mac_ocp_write( tp, 0xF958, 0x130F ); + rtl8168_mac_ocp_write( tp, 0xF95A, 0xF105 ); + rtl8168_mac_ocp_write( tp, 0xF95C, 0xC00A ); + rtl8168_mac_ocp_write( tp, 0xF95E, 0x7300 ); + rtl8168_mac_ocp_write( tp, 0xF960, 0x4831 ); + rtl8168_mac_ocp_write( tp, 0xF962, 0x9B00 ); + rtl8168_mac_ocp_write( tp, 0xF964, 0xB000 ); + rtl8168_mac_ocp_write( tp, 0xF966, 0x7340 ); + rtl8168_mac_ocp_write( tp, 0xF968, 0x8320 ); + rtl8168_mac_ocp_write( tp, 0xF96A, 0xC302 ); + rtl8168_mac_ocp_write( tp, 0xF96C, 0xBB00 ); + rtl8168_mac_ocp_write( tp, 0xF96E, 0x0C12 ); + rtl8168_mac_ocp_write( tp, 0xF970, 0xE860 ); + rtl8168_mac_ocp_write( tp, 0xF972, 0xC406 ); + rtl8168_mac_ocp_write( tp, 0xF974, 0x7580 ); + rtl8168_mac_ocp_write( tp, 0xF976, 0x4851 ); + rtl8168_mac_ocp_write( tp, 0xF978, 0x8D80 ); + rtl8168_mac_ocp_write( tp, 0xF97A, 0xC403 ); + rtl8168_mac_ocp_write( tp, 0xF97C, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF97E, 0xD3E0 ); + rtl8168_mac_ocp_write( tp, 0xF980, 0x02C8 ); + rtl8168_mac_ocp_write( tp, 0xF982, 0xC406 ); + rtl8168_mac_ocp_write( tp, 0xF984, 0x7580 ); + rtl8168_mac_ocp_write( tp, 0xF986, 0x4850 ); + rtl8168_mac_ocp_write( tp, 0xF988, 0x8D80 ); + rtl8168_mac_ocp_write( tp, 0xF98A, 0xC403 ); + rtl8168_mac_ocp_write( tp, 0xF98C, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF98E, 0xD3E0 ); + rtl8168_mac_ocp_write( tp, 0xF990, 0x0298 ); + + rtl8168_mac_ocp_write( tp, 0xDE30, 0x0080 ); + + rtl8168_mac_ocp_write( tp, 0xFC26, 0x8000 ); + + rtl8168_mac_ocp_write( tp, 0xFC28, 0x0075 ); + rtl8168_mac_ocp_write( tp, 0xFC2A, 0x02B1 ); + rtl8168_mac_ocp_write( tp, 0xFC2C, 0x0991 ); + rtl8168_mac_ocp_write( tp, 0xFC2E, 0x059B ); + rtl8168_mac_ocp_write( tp, 0xFC30, 0x0659 ); + rtl8168_mac_ocp_write( tp, 0xFC32, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFC34, 0x02C7 ); + rtl8168_mac_ocp_write( tp, 0xFC36, 0x0279 ); +} + +static void +rtl8168_set_mac_mcu_8168gu_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_hw_disable_mac_mcu_bps(dev); + + rtl8168_mac_ocp_write( tp, 0xF800, 0xE008 ); + rtl8168_mac_ocp_write( tp, 0xF802, 0xE011 ); + rtl8168_mac_ocp_write( tp, 0xF804, 0xE015 ); + rtl8168_mac_ocp_write( tp, 0xF806, 0xE018 ); + rtl8168_mac_ocp_write( tp, 0xF808, 0xE01B ); + rtl8168_mac_ocp_write( tp, 0xF80A, 0xE027 ); + rtl8168_mac_ocp_write( tp, 0xF80C, 0xE043 ); + rtl8168_mac_ocp_write( tp, 0xF80E, 0xE065 ); + rtl8168_mac_ocp_write( tp, 0xF810, 0x49E2 ); + rtl8168_mac_ocp_write( tp, 0xF812, 0xF005 ); + rtl8168_mac_ocp_write( tp, 0xF814, 0x49EA ); + rtl8168_mac_ocp_write( tp, 0xF816, 0xF003 ); + rtl8168_mac_ocp_write( tp, 0xF818, 0xC404 ); + rtl8168_mac_ocp_write( tp, 0xF81A, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF81C, 0xC403 ); + rtl8168_mac_ocp_write( tp, 0xF81E, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF820, 0x0496 ); + rtl8168_mac_ocp_write( tp, 0xF822, 0x051A ); + rtl8168_mac_ocp_write( tp, 0xF824, 0x1D01 ); + rtl8168_mac_ocp_write( tp, 0xF826, 0x8DE8 ); + rtl8168_mac_ocp_write( tp, 0xF828, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF82A, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF82C, 0x0206 ); + rtl8168_mac_ocp_write( tp, 0xF82E, 0x1B76 ); + rtl8168_mac_ocp_write( tp, 0xF830, 0xC202 ); + rtl8168_mac_ocp_write( tp, 0xF832, 0xBA00 ); + rtl8168_mac_ocp_write( tp, 0xF834, 0x058A ); + rtl8168_mac_ocp_write( tp, 0xF836, 0x1B76 ); + rtl8168_mac_ocp_write( tp, 0xF838, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF83A, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF83C, 0x0648 ); + rtl8168_mac_ocp_write( tp, 0xF83E, 0x74E6 ); + rtl8168_mac_ocp_write( tp, 0xF840, 0x1B78 ); + rtl8168_mac_ocp_write( tp, 0xF842, 0x46DC ); + rtl8168_mac_ocp_write( tp, 0xF844, 0x1300 ); + rtl8168_mac_ocp_write( tp, 0xF846, 0xF005 ); + rtl8168_mac_ocp_write( tp, 0xF848, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF84A, 0x48C3 ); + rtl8168_mac_ocp_write( tp, 0xF84C, 0x48C4 ); + rtl8168_mac_ocp_write( tp, 0xF84E, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF850, 0x64E7 ); + rtl8168_mac_ocp_write( tp, 0xF852, 0xC302 ); + rtl8168_mac_ocp_write( tp, 0xF854, 0xBB00 ); + rtl8168_mac_ocp_write( tp, 0xF856, 0x068E ); + rtl8168_mac_ocp_write( tp, 0xF858, 0x74E4 ); + rtl8168_mac_ocp_write( tp, 0xF85A, 0x49C5 ); + rtl8168_mac_ocp_write( tp, 0xF85C, 0xF106 ); + rtl8168_mac_ocp_write( tp, 0xF85E, 0x49C6 ); + rtl8168_mac_ocp_write( tp, 0xF860, 0xF107 ); + rtl8168_mac_ocp_write( tp, 0xF862, 0x48C8 ); + rtl8168_mac_ocp_write( tp, 0xF864, 0x48C9 ); + rtl8168_mac_ocp_write( tp, 0xF866, 0xE011 ); + rtl8168_mac_ocp_write( tp, 0xF868, 0x48C9 ); + rtl8168_mac_ocp_write( tp, 0xF86A, 0x4848 ); + rtl8168_mac_ocp_write( tp, 0xF86C, 0xE00E ); + rtl8168_mac_ocp_write( tp, 0xF86E, 0x4848 ); + rtl8168_mac_ocp_write( tp, 0xF870, 0x49C7 ); + rtl8168_mac_ocp_write( tp, 0xF872, 0xF00A ); + rtl8168_mac_ocp_write( tp, 0xF874, 0x48C9 ); + rtl8168_mac_ocp_write( tp, 0xF876, 0xC60D ); + rtl8168_mac_ocp_write( tp, 0xF878, 0x1D1F ); + rtl8168_mac_ocp_write( tp, 0xF87A, 0x8DC2 ); + rtl8168_mac_ocp_write( tp, 0xF87C, 0x1D00 ); + rtl8168_mac_ocp_write( tp, 0xF87E, 0x8DC3 ); + rtl8168_mac_ocp_write( tp, 0xF880, 0x1D11 ); + rtl8168_mac_ocp_write( tp, 0xF882, 0x8DC0 ); + rtl8168_mac_ocp_write( tp, 0xF884, 0xE002 ); + rtl8168_mac_ocp_write( tp, 0xF886, 0x4849 ); + rtl8168_mac_ocp_write( tp, 0xF888, 0x94E5 ); + rtl8168_mac_ocp_write( tp, 0xF88A, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF88C, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF88E, 0x0238 ); + rtl8168_mac_ocp_write( tp, 0xF890, 0xE434 ); + rtl8168_mac_ocp_write( tp, 0xF892, 0x49D9 ); + rtl8168_mac_ocp_write( tp, 0xF894, 0xF01B ); + rtl8168_mac_ocp_write( tp, 0xF896, 0xC31E ); + rtl8168_mac_ocp_write( tp, 0xF898, 0x7464 ); + rtl8168_mac_ocp_write( tp, 0xF89A, 0x49C4 ); + rtl8168_mac_ocp_write( tp, 0xF89C, 0xF114 ); + rtl8168_mac_ocp_write( tp, 0xF89E, 0xC31B ); + rtl8168_mac_ocp_write( tp, 0xF8A0, 0x6460 ); + rtl8168_mac_ocp_write( tp, 0xF8A2, 0x14FA ); + rtl8168_mac_ocp_write( tp, 0xF8A4, 0xFA02 ); + rtl8168_mac_ocp_write( tp, 0xF8A6, 0xE00F ); + rtl8168_mac_ocp_write( tp, 0xF8A8, 0xC317 ); + rtl8168_mac_ocp_write( tp, 0xF8AA, 0x7460 ); + rtl8168_mac_ocp_write( tp, 0xF8AC, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF8AE, 0xF10B ); + rtl8168_mac_ocp_write( tp, 0xF8B0, 0xC311 ); + rtl8168_mac_ocp_write( tp, 0xF8B2, 0x7462 ); + rtl8168_mac_ocp_write( tp, 0xF8B4, 0x48C1 ); + rtl8168_mac_ocp_write( tp, 0xF8B6, 0x9C62 ); + rtl8168_mac_ocp_write( tp, 0xF8B8, 0x4841 ); + rtl8168_mac_ocp_write( tp, 0xF8BA, 0x9C62 ); + rtl8168_mac_ocp_write( tp, 0xF8BC, 0xC30A ); + rtl8168_mac_ocp_write( tp, 0xF8BE, 0x1C04 ); + rtl8168_mac_ocp_write( tp, 0xF8C0, 0x8C60 ); + rtl8168_mac_ocp_write( tp, 0xF8C2, 0xE004 ); + rtl8168_mac_ocp_write( tp, 0xF8C4, 0x1C15 ); + rtl8168_mac_ocp_write( tp, 0xF8C6, 0xC305 ); + rtl8168_mac_ocp_write( tp, 0xF8C8, 0x8C60 ); + rtl8168_mac_ocp_write( tp, 0xF8CA, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF8CC, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF8CE, 0x0374 ); + rtl8168_mac_ocp_write( tp, 0xF8D0, 0xE434 ); + rtl8168_mac_ocp_write( tp, 0xF8D2, 0xE030 ); + rtl8168_mac_ocp_write( tp, 0xF8D4, 0xE61C ); + rtl8168_mac_ocp_write( tp, 0xF8D6, 0xE906 ); + rtl8168_mac_ocp_write( tp, 0xF8D8, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF8DA, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF8DC, 0x0000 ); + + rtl8168_mac_ocp_write( tp, 0xFC26, 0x8000 ); + + rtl8168_mac_ocp_write( tp, 0xFC28, 0x0493 ); + rtl8168_mac_ocp_write( tp, 0xFC2A, 0x0205 ); + rtl8168_mac_ocp_write( tp, 0xFC2C, 0x0589 ); + rtl8168_mac_ocp_write( tp, 0xFC2E, 0x0647 ); + rtl8168_mac_ocp_write( tp, 0xFC30, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFC32, 0x0215 ); + rtl8168_mac_ocp_write( tp, 0xFC34, 0x0285 ); +} + +static void +rtl8168_set_mac_mcu_8168gu_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_hw_disable_mac_mcu_bps(dev); + + rtl8168_mac_ocp_write( tp, 0xF800, 0xE008 ); + rtl8168_mac_ocp_write( tp, 0xF802, 0xE00A ); + rtl8168_mac_ocp_write( tp, 0xF804, 0xE00D ); + rtl8168_mac_ocp_write( tp, 0xF806, 0xE02F ); + rtl8168_mac_ocp_write( tp, 0xF808, 0xE031 ); + rtl8168_mac_ocp_write( tp, 0xF80A, 0xE038 ); + rtl8168_mac_ocp_write( tp, 0xF80C, 0xE03A ); + rtl8168_mac_ocp_write( tp, 0xF80E, 0xE051 ); + rtl8168_mac_ocp_write( tp, 0xF810, 0xC202 ); + rtl8168_mac_ocp_write( tp, 0xF812, 0xBA00 ); + rtl8168_mac_ocp_write( tp, 0xF814, 0x0DFC ); + rtl8168_mac_ocp_write( tp, 0xF816, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xF818, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF81A, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF81C, 0x0A30 ); + rtl8168_mac_ocp_write( tp, 0xF81E, 0x49D9 ); + rtl8168_mac_ocp_write( tp, 0xF820, 0xF019 ); + rtl8168_mac_ocp_write( tp, 0xF822, 0xC520 ); + rtl8168_mac_ocp_write( tp, 0xF824, 0x64A5 ); + rtl8168_mac_ocp_write( tp, 0xF826, 0x1400 ); + rtl8168_mac_ocp_write( tp, 0xF828, 0xF007 ); + rtl8168_mac_ocp_write( tp, 0xF82A, 0x0C01 ); + rtl8168_mac_ocp_write( tp, 0xF82C, 0x8CA5 ); + rtl8168_mac_ocp_write( tp, 0xF82E, 0x1C15 ); + rtl8168_mac_ocp_write( tp, 0xF830, 0xC515 ); + rtl8168_mac_ocp_write( tp, 0xF832, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF834, 0xE00F ); + rtl8168_mac_ocp_write( tp, 0xF836, 0xC513 ); + rtl8168_mac_ocp_write( tp, 0xF838, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF83A, 0x48C8 ); + rtl8168_mac_ocp_write( tp, 0xF83C, 0x48CA ); + rtl8168_mac_ocp_write( tp, 0xF83E, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF840, 0xC510 ); + rtl8168_mac_ocp_write( tp, 0xF842, 0x1B00 ); + rtl8168_mac_ocp_write( tp, 0xF844, 0x9BA0 ); + rtl8168_mac_ocp_write( tp, 0xF846, 0x1B1C ); + rtl8168_mac_ocp_write( tp, 0xF848, 0x483F ); + rtl8168_mac_ocp_write( tp, 0xF84A, 0x9BA2 ); + rtl8168_mac_ocp_write( tp, 0xF84C, 0x1B04 ); + rtl8168_mac_ocp_write( tp, 0xF84E, 0xC506 ); + rtl8168_mac_ocp_write( tp, 0xF850, 0x9BA0 ); + rtl8168_mac_ocp_write( tp, 0xF852, 0xC603 ); + rtl8168_mac_ocp_write( tp, 0xF854, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF856, 0x0298 ); + rtl8168_mac_ocp_write( tp, 0xF858, 0x03DE ); + rtl8168_mac_ocp_write( tp, 0xF85A, 0xE434 ); + rtl8168_mac_ocp_write( tp, 0xF85C, 0xE096 ); + rtl8168_mac_ocp_write( tp, 0xF85E, 0xE860 ); + rtl8168_mac_ocp_write( tp, 0xF860, 0xDE20 ); + rtl8168_mac_ocp_write( tp, 0xF862, 0xD3C0 ); + rtl8168_mac_ocp_write( tp, 0xF864, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF866, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF868, 0x0A64 ); + rtl8168_mac_ocp_write( tp, 0xF86A, 0xC707 ); + rtl8168_mac_ocp_write( tp, 0xF86C, 0x1D00 ); + rtl8168_mac_ocp_write( tp, 0xF86E, 0x8DE2 ); + rtl8168_mac_ocp_write( tp, 0xF870, 0x48C1 ); + rtl8168_mac_ocp_write( tp, 0xF872, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF874, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF876, 0x00AA ); + rtl8168_mac_ocp_write( tp, 0xF878, 0xE0C0 ); + rtl8168_mac_ocp_write( tp, 0xF87A, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF87C, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF87E, 0x0132 ); + rtl8168_mac_ocp_write( tp, 0xF880, 0xC50C ); + rtl8168_mac_ocp_write( tp, 0xF882, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xF884, 0x49CE ); + rtl8168_mac_ocp_write( tp, 0xF886, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xF888, 0x1C00 ); + rtl8168_mac_ocp_write( tp, 0xF88A, 0x9EA0 ); + rtl8168_mac_ocp_write( tp, 0xF88C, 0x1C1C ); + rtl8168_mac_ocp_write( tp, 0xF88E, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xF890, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xF892, 0xC402 ); + rtl8168_mac_ocp_write( tp, 0xF894, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF896, 0x0AFA ); + rtl8168_mac_ocp_write( tp, 0xF898, 0xDE20 ); + rtl8168_mac_ocp_write( tp, 0xF89A, 0xE000 ); + rtl8168_mac_ocp_write( tp, 0xF89C, 0xE092 ); + rtl8168_mac_ocp_write( tp, 0xF89E, 0xE430 ); + rtl8168_mac_ocp_write( tp, 0xF8A0, 0xDE20 ); + rtl8168_mac_ocp_write( tp, 0xF8A2, 0xE0C0 ); + rtl8168_mac_ocp_write( tp, 0xF8A4, 0xE860 ); + rtl8168_mac_ocp_write( tp, 0xF8A6, 0xE84C ); + rtl8168_mac_ocp_write( tp, 0xF8A8, 0xB400 ); + rtl8168_mac_ocp_write( tp, 0xF8AA, 0xB430 ); + rtl8168_mac_ocp_write( tp, 0xF8AC, 0xE410 ); + rtl8168_mac_ocp_write( tp, 0xF8AE, 0xC0AE ); + rtl8168_mac_ocp_write( tp, 0xF8B0, 0xB407 ); + rtl8168_mac_ocp_write( tp, 0xF8B2, 0xB406 ); + rtl8168_mac_ocp_write( tp, 0xF8B4, 0xB405 ); + rtl8168_mac_ocp_write( tp, 0xF8B6, 0xB404 ); + rtl8168_mac_ocp_write( tp, 0xF8B8, 0xB403 ); + rtl8168_mac_ocp_write( tp, 0xF8BA, 0xB402 ); + rtl8168_mac_ocp_write( tp, 0xF8BC, 0xB401 ); + rtl8168_mac_ocp_write( tp, 0xF8BE, 0xC7EE ); + rtl8168_mac_ocp_write( tp, 0xF8C0, 0x76F4 ); + rtl8168_mac_ocp_write( tp, 0xF8C2, 0xC2ED ); + rtl8168_mac_ocp_write( tp, 0xF8C4, 0xC3ED ); + rtl8168_mac_ocp_write( tp, 0xF8C6, 0xC1EF ); + rtl8168_mac_ocp_write( tp, 0xF8C8, 0xC5F3 ); + rtl8168_mac_ocp_write( tp, 0xF8CA, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF8CC, 0x49CD ); + rtl8168_mac_ocp_write( tp, 0xF8CE, 0xF001 ); + rtl8168_mac_ocp_write( tp, 0xF8D0, 0xC5EE ); + rtl8168_mac_ocp_write( tp, 0xF8D2, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF8D4, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF8D6, 0xF105 ); + rtl8168_mac_ocp_write( tp, 0xF8D8, 0xC5E4 ); + rtl8168_mac_ocp_write( tp, 0xF8DA, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xF8DC, 0x49CE ); + rtl8168_mac_ocp_write( tp, 0xF8DE, 0xF00B ); + rtl8168_mac_ocp_write( tp, 0xF8E0, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xF8E2, 0x484B ); + rtl8168_mac_ocp_write( tp, 0xF8E4, 0x9C44 ); + rtl8168_mac_ocp_write( tp, 0xF8E6, 0x1C10 ); + rtl8168_mac_ocp_write( tp, 0xF8E8, 0x9C62 ); + rtl8168_mac_ocp_write( tp, 0xF8EA, 0x1C11 ); + rtl8168_mac_ocp_write( tp, 0xF8EC, 0x8C60 ); + rtl8168_mac_ocp_write( tp, 0xF8EE, 0x1C00 ); + rtl8168_mac_ocp_write( tp, 0xF8F0, 0x9CF6 ); + rtl8168_mac_ocp_write( tp, 0xF8F2, 0xE0EC ); + rtl8168_mac_ocp_write( tp, 0xF8F4, 0x49E7 ); + rtl8168_mac_ocp_write( tp, 0xF8F6, 0xF016 ); + rtl8168_mac_ocp_write( tp, 0xF8F8, 0x1D80 ); + rtl8168_mac_ocp_write( tp, 0xF8FA, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xF8FC, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF8FE, 0x4843 ); + rtl8168_mac_ocp_write( tp, 0xF900, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF902, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF904, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF906, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xF908, 0x48C8 ); + rtl8168_mac_ocp_write( tp, 0xF90A, 0x48C9 ); + rtl8168_mac_ocp_write( tp, 0xF90C, 0x48CA ); + rtl8168_mac_ocp_write( tp, 0xF90E, 0x9C44 ); + rtl8168_mac_ocp_write( tp, 0xF910, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF912, 0x4844 ); + rtl8168_mac_ocp_write( tp, 0xF914, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF916, 0x1E01 ); + rtl8168_mac_ocp_write( tp, 0xF918, 0xE8DB ); + rtl8168_mac_ocp_write( tp, 0xF91A, 0x7420 ); + rtl8168_mac_ocp_write( tp, 0xF91C, 0x48C1 ); + rtl8168_mac_ocp_write( tp, 0xF91E, 0x9C20 ); + rtl8168_mac_ocp_write( tp, 0xF920, 0xE0D5 ); + rtl8168_mac_ocp_write( tp, 0xF922, 0x49E6 ); + rtl8168_mac_ocp_write( tp, 0xF924, 0xF02A ); + rtl8168_mac_ocp_write( tp, 0xF926, 0x1D40 ); + rtl8168_mac_ocp_write( tp, 0xF928, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xF92A, 0x74FC ); + rtl8168_mac_ocp_write( tp, 0xF92C, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF92E, 0xF124 ); + rtl8168_mac_ocp_write( tp, 0xF930, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF932, 0xF122 ); + rtl8168_mac_ocp_write( tp, 0xF934, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF936, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF938, 0xF01F ); + rtl8168_mac_ocp_write( tp, 0xF93A, 0xE8D3 ); + rtl8168_mac_ocp_write( tp, 0xF93C, 0x48C4 ); + rtl8168_mac_ocp_write( tp, 0xF93E, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF940, 0x1E00 ); + rtl8168_mac_ocp_write( tp, 0xF942, 0xE8C6 ); + rtl8168_mac_ocp_write( tp, 0xF944, 0xC5B1 ); + rtl8168_mac_ocp_write( tp, 0xF946, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF948, 0x49C3 ); + rtl8168_mac_ocp_write( tp, 0xF94A, 0xF016 ); + rtl8168_mac_ocp_write( tp, 0xF94C, 0xC5AF ); + rtl8168_mac_ocp_write( tp, 0xF94E, 0x74A4 ); + rtl8168_mac_ocp_write( tp, 0xF950, 0x49C2 ); + rtl8168_mac_ocp_write( tp, 0xF952, 0xF005 ); + rtl8168_mac_ocp_write( tp, 0xF954, 0xC5AA ); + rtl8168_mac_ocp_write( tp, 0xF956, 0x74B2 ); + rtl8168_mac_ocp_write( tp, 0xF958, 0x49C9 ); + rtl8168_mac_ocp_write( tp, 0xF95A, 0xF10E ); + rtl8168_mac_ocp_write( tp, 0xF95C, 0xC5A6 ); + rtl8168_mac_ocp_write( tp, 0xF95E, 0x74A8 ); + rtl8168_mac_ocp_write( tp, 0xF960, 0x4845 ); + rtl8168_mac_ocp_write( tp, 0xF962, 0x4846 ); + rtl8168_mac_ocp_write( tp, 0xF964, 0x4847 ); + rtl8168_mac_ocp_write( tp, 0xF966, 0x4848 ); + rtl8168_mac_ocp_write( tp, 0xF968, 0x9CA8 ); + rtl8168_mac_ocp_write( tp, 0xF96A, 0x74B2 ); + rtl8168_mac_ocp_write( tp, 0xF96C, 0x4849 ); + rtl8168_mac_ocp_write( tp, 0xF96E, 0x9CB2 ); + rtl8168_mac_ocp_write( tp, 0xF970, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF972, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xF974, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF976, 0xE0AA ); + rtl8168_mac_ocp_write( tp, 0xF978, 0x49E4 ); + rtl8168_mac_ocp_write( tp, 0xF97A, 0xF018 ); + rtl8168_mac_ocp_write( tp, 0xF97C, 0x1D10 ); + rtl8168_mac_ocp_write( tp, 0xF97E, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xF980, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF982, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF984, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF986, 0x4843 ); + rtl8168_mac_ocp_write( tp, 0xF988, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF98A, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF98C, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF98E, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF990, 0x4844 ); + rtl8168_mac_ocp_write( tp, 0xF992, 0x4842 ); + rtl8168_mac_ocp_write( tp, 0xF994, 0x4841 ); + rtl8168_mac_ocp_write( tp, 0xF996, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF998, 0x1E01 ); + rtl8168_mac_ocp_write( tp, 0xF99A, 0xE89A ); + rtl8168_mac_ocp_write( tp, 0xF99C, 0x7420 ); + rtl8168_mac_ocp_write( tp, 0xF99E, 0x4841 ); + rtl8168_mac_ocp_write( tp, 0xF9A0, 0x9C20 ); + rtl8168_mac_ocp_write( tp, 0xF9A2, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xF9A4, 0x4848 ); + rtl8168_mac_ocp_write( tp, 0xF9A6, 0x9C44 ); + rtl8168_mac_ocp_write( tp, 0xF9A8, 0xE091 ); + rtl8168_mac_ocp_write( tp, 0xF9AA, 0x49E5 ); + rtl8168_mac_ocp_write( tp, 0xF9AC, 0xF03E ); + rtl8168_mac_ocp_write( tp, 0xF9AE, 0x1D20 ); + rtl8168_mac_ocp_write( tp, 0xF9B0, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xF9B2, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF9B4, 0x48C2 ); + rtl8168_mac_ocp_write( tp, 0xF9B6, 0x4841 ); + rtl8168_mac_ocp_write( tp, 0xF9B8, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF9BA, 0x1E01 ); + rtl8168_mac_ocp_write( tp, 0xF9BC, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xF9BE, 0x49CA ); + rtl8168_mac_ocp_write( tp, 0xF9C0, 0xF103 ); + rtl8168_mac_ocp_write( tp, 0xF9C2, 0x49C2 ); + rtl8168_mac_ocp_write( tp, 0xF9C4, 0xF00C ); + rtl8168_mac_ocp_write( tp, 0xF9C6, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF9C8, 0xF004 ); + rtl8168_mac_ocp_write( tp, 0xF9CA, 0x6447 ); + rtl8168_mac_ocp_write( tp, 0xF9CC, 0x2244 ); + rtl8168_mac_ocp_write( tp, 0xF9CE, 0xE002 ); + rtl8168_mac_ocp_write( tp, 0xF9D0, 0x1C01 ); + rtl8168_mac_ocp_write( tp, 0xF9D2, 0x9C62 ); + rtl8168_mac_ocp_write( tp, 0xF9D4, 0x1C11 ); + rtl8168_mac_ocp_write( tp, 0xF9D6, 0x8C60 ); + rtl8168_mac_ocp_write( tp, 0xF9D8, 0x1C00 ); + rtl8168_mac_ocp_write( tp, 0xF9DA, 0x9CF6 ); + rtl8168_mac_ocp_write( tp, 0xF9DC, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xF9DE, 0x49C8 ); + rtl8168_mac_ocp_write( tp, 0xF9E0, 0xF01D ); + rtl8168_mac_ocp_write( tp, 0xF9E2, 0x74FC ); + rtl8168_mac_ocp_write( tp, 0xF9E4, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF9E6, 0xF11A ); + rtl8168_mac_ocp_write( tp, 0xF9E8, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xF9EA, 0xF118 ); + rtl8168_mac_ocp_write( tp, 0xF9EC, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF9EE, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF9F0, 0xF015 ); + rtl8168_mac_ocp_write( tp, 0xF9F2, 0x49C6 ); + rtl8168_mac_ocp_write( tp, 0xF9F4, 0xF113 ); + rtl8168_mac_ocp_write( tp, 0xF9F6, 0xE875 ); + rtl8168_mac_ocp_write( tp, 0xF9F8, 0x48C4 ); + rtl8168_mac_ocp_write( tp, 0xF9FA, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF9FC, 0x7420 ); + rtl8168_mac_ocp_write( tp, 0xF9FE, 0x48C1 ); + rtl8168_mac_ocp_write( tp, 0xFA00, 0x9C20 ); + rtl8168_mac_ocp_write( tp, 0xFA02, 0xC50A ); + rtl8168_mac_ocp_write( tp, 0xFA04, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFA06, 0x8CA5 ); + rtl8168_mac_ocp_write( tp, 0xFA08, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xFA0A, 0xC505 ); + rtl8168_mac_ocp_write( tp, 0xFA0C, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xFA0E, 0x1C11 ); + rtl8168_mac_ocp_write( tp, 0xFA10, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xFA12, 0xE00A ); + rtl8168_mac_ocp_write( tp, 0xFA14, 0xE434 ); + rtl8168_mac_ocp_write( tp, 0xFA16, 0xD3C0 ); + rtl8168_mac_ocp_write( tp, 0xFA18, 0xDC00 ); + rtl8168_mac_ocp_write( tp, 0xFA1A, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xFA1C, 0x49CA ); + rtl8168_mac_ocp_write( tp, 0xFA1E, 0xF004 ); + rtl8168_mac_ocp_write( tp, 0xFA20, 0x48CA ); + rtl8168_mac_ocp_write( tp, 0xFA22, 0x9C44 ); + rtl8168_mac_ocp_write( tp, 0xFA24, 0xE855 ); + rtl8168_mac_ocp_write( tp, 0xFA26, 0xE052 ); + rtl8168_mac_ocp_write( tp, 0xFA28, 0x49E8 ); + rtl8168_mac_ocp_write( tp, 0xFA2A, 0xF024 ); + rtl8168_mac_ocp_write( tp, 0xFA2C, 0x1D01 ); + rtl8168_mac_ocp_write( tp, 0xFA2E, 0x8DF5 ); + rtl8168_mac_ocp_write( tp, 0xFA30, 0x7440 ); + rtl8168_mac_ocp_write( tp, 0xFA32, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xFA34, 0xF11E ); + rtl8168_mac_ocp_write( tp, 0xFA36, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xFA38, 0x49C8 ); + rtl8168_mac_ocp_write( tp, 0xFA3A, 0xF01B ); + rtl8168_mac_ocp_write( tp, 0xFA3C, 0x49CA ); + rtl8168_mac_ocp_write( tp, 0xFA3E, 0xF119 ); + rtl8168_mac_ocp_write( tp, 0xFA40, 0xC5EC ); + rtl8168_mac_ocp_write( tp, 0xFA42, 0x76A4 ); + rtl8168_mac_ocp_write( tp, 0xFA44, 0x49E3 ); + rtl8168_mac_ocp_write( tp, 0xFA46, 0xF015 ); + rtl8168_mac_ocp_write( tp, 0xFA48, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xFA4A, 0xF103 ); + rtl8168_mac_ocp_write( tp, 0xFA4C, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xFA4E, 0xF011 ); + rtl8168_mac_ocp_write( tp, 0xFA50, 0x4849 ); + rtl8168_mac_ocp_write( tp, 0xFA52, 0x9C44 ); + rtl8168_mac_ocp_write( tp, 0xFA54, 0x1C00 ); + rtl8168_mac_ocp_write( tp, 0xFA56, 0x9CF6 ); + rtl8168_mac_ocp_write( tp, 0xFA58, 0x7444 ); + rtl8168_mac_ocp_write( tp, 0xFA5A, 0x49C1 ); + rtl8168_mac_ocp_write( tp, 0xFA5C, 0xF004 ); + rtl8168_mac_ocp_write( tp, 0xFA5E, 0x6446 ); + rtl8168_mac_ocp_write( tp, 0xFA60, 0x1E07 ); + rtl8168_mac_ocp_write( tp, 0xFA62, 0xE003 ); + rtl8168_mac_ocp_write( tp, 0xFA64, 0x1C01 ); + rtl8168_mac_ocp_write( tp, 0xFA66, 0x1E03 ); + rtl8168_mac_ocp_write( tp, 0xFA68, 0x9C62 ); + rtl8168_mac_ocp_write( tp, 0xFA6A, 0x1C11 ); + rtl8168_mac_ocp_write( tp, 0xFA6C, 0x8C60 ); + rtl8168_mac_ocp_write( tp, 0xFA6E, 0xE830 ); + rtl8168_mac_ocp_write( tp, 0xFA70, 0xE02D ); + rtl8168_mac_ocp_write( tp, 0xFA72, 0x49E9 ); + rtl8168_mac_ocp_write( tp, 0xFA74, 0xF004 ); + rtl8168_mac_ocp_write( tp, 0xFA76, 0x1D02 ); + rtl8168_mac_ocp_write( tp, 0xFA78, 0x8DF5 ); + rtl8168_mac_ocp_write( tp, 0xFA7A, 0xE79C ); + rtl8168_mac_ocp_write( tp, 0xFA7C, 0x49E3 ); + rtl8168_mac_ocp_write( tp, 0xFA7E, 0xF006 ); + rtl8168_mac_ocp_write( tp, 0xFA80, 0x1D08 ); + rtl8168_mac_ocp_write( tp, 0xFA82, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xFA84, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xFA86, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xFA88, 0xE73A ); + rtl8168_mac_ocp_write( tp, 0xFA8A, 0x49E1 ); + rtl8168_mac_ocp_write( tp, 0xFA8C, 0xF007 ); + rtl8168_mac_ocp_write( tp, 0xFA8E, 0x1D02 ); + rtl8168_mac_ocp_write( tp, 0xFA90, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xFA92, 0x1E01 ); + rtl8168_mac_ocp_write( tp, 0xFA94, 0xE7A7 ); + rtl8168_mac_ocp_write( tp, 0xFA96, 0xDE20 ); + rtl8168_mac_ocp_write( tp, 0xFA98, 0xE410 ); + rtl8168_mac_ocp_write( tp, 0xFA9A, 0x49E0 ); + rtl8168_mac_ocp_write( tp, 0xFA9C, 0xF017 ); + rtl8168_mac_ocp_write( tp, 0xFA9E, 0x1D01 ); + rtl8168_mac_ocp_write( tp, 0xFAA0, 0x8DF4 ); + rtl8168_mac_ocp_write( tp, 0xFAA2, 0xC5FA ); + rtl8168_mac_ocp_write( tp, 0xFAA4, 0x1C00 ); + rtl8168_mac_ocp_write( tp, 0xFAA6, 0x8CA0 ); + rtl8168_mac_ocp_write( tp, 0xFAA8, 0x1C1B ); + rtl8168_mac_ocp_write( tp, 0xFAAA, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xFAAC, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFAAE, 0x49CF ); + rtl8168_mac_ocp_write( tp, 0xFAB0, 0xF0FE ); + rtl8168_mac_ocp_write( tp, 0xFAB2, 0xC5F3 ); + rtl8168_mac_ocp_write( tp, 0xFAB4, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xFAB6, 0x4849 ); + rtl8168_mac_ocp_write( tp, 0xFAB8, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xFABA, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xFABC, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xFABE, 0xF006 ); + rtl8168_mac_ocp_write( tp, 0xFAC0, 0x48C3 ); + rtl8168_mac_ocp_write( tp, 0xFAC2, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xFAC4, 0xE820 ); + rtl8168_mac_ocp_write( tp, 0xFAC6, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xFAC8, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xFACA, 0xC432 ); + rtl8168_mac_ocp_write( tp, 0xFACC, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xFACE, 0xC5E4 ); + rtl8168_mac_ocp_write( tp, 0xFAD0, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFAD2, 0x49CE ); + rtl8168_mac_ocp_write( tp, 0xFAD4, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xFAD6, 0x9EA0 ); + rtl8168_mac_ocp_write( tp, 0xFAD8, 0x1C1C ); + rtl8168_mac_ocp_write( tp, 0xFADA, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xFADC, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xFADE, 0xFF80 ); + rtl8168_mac_ocp_write( tp, 0xFAE0, 0xB404 ); + rtl8168_mac_ocp_write( tp, 0xFAE2, 0xB405 ); + rtl8168_mac_ocp_write( tp, 0xFAE4, 0xC5D9 ); + rtl8168_mac_ocp_write( tp, 0xFAE6, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFAE8, 0x49CE ); + rtl8168_mac_ocp_write( tp, 0xFAEA, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xFAEC, 0xC41F ); + rtl8168_mac_ocp_write( tp, 0xFAEE, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xFAF0, 0xC41C ); + rtl8168_mac_ocp_write( tp, 0xFAF2, 0x1C13 ); + rtl8168_mac_ocp_write( tp, 0xFAF4, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xFAF6, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xFAF8, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFAFA, 0x49CF ); + rtl8168_mac_ocp_write( tp, 0xFAFC, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xFAFE, 0xB005 ); + rtl8168_mac_ocp_write( tp, 0xFB00, 0xB004 ); + rtl8168_mac_ocp_write( tp, 0xFB02, 0xFF80 ); + rtl8168_mac_ocp_write( tp, 0xFB04, 0xB404 ); + rtl8168_mac_ocp_write( tp, 0xFB06, 0xB405 ); + rtl8168_mac_ocp_write( tp, 0xFB08, 0xC5C7 ); + rtl8168_mac_ocp_write( tp, 0xFB0A, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFB0C, 0x49CE ); + rtl8168_mac_ocp_write( tp, 0xFB0E, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xFB10, 0xC40E ); + rtl8168_mac_ocp_write( tp, 0xFB12, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xFB14, 0xC40A ); + rtl8168_mac_ocp_write( tp, 0xFB16, 0x1C13 ); + rtl8168_mac_ocp_write( tp, 0xFB18, 0x484F ); + rtl8168_mac_ocp_write( tp, 0xFB1A, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xFB1C, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xFB1E, 0x49CF ); + rtl8168_mac_ocp_write( tp, 0xFB20, 0xF1FE ); + rtl8168_mac_ocp_write( tp, 0xFB22, 0xB005 ); + rtl8168_mac_ocp_write( tp, 0xFB24, 0xB004 ); + rtl8168_mac_ocp_write( tp, 0xFB26, 0xFF80 ); + rtl8168_mac_ocp_write( tp, 0xFB28, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFB2A, 0x0481 ); + rtl8168_mac_ocp_write( tp, 0xFB2C, 0x0C81 ); + rtl8168_mac_ocp_write( tp, 0xFB2E, 0x0AE0 ); + + + rtl8168_mac_ocp_write( tp, 0xFC26, 0x8000 ); + + rtl8168_mac_ocp_write( tp, 0xFC28, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFC2A, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFC2C, 0x0297 ); + rtl8168_mac_ocp_write( tp, 0xFC2E, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFC30, 0x00A9 ); + rtl8168_mac_ocp_write( tp, 0xFC32, 0x012D ); + rtl8168_mac_ocp_write( tp, 0xFC34, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xFC36, 0x08DF ); +} + +static void +rtl8168_set_mac_mcu_8411b_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + rtl8168_hw_disable_mac_mcu_bps(dev); + + rtl8168_mac_ocp_write( tp, 0xF800, 0xE008 ); + rtl8168_mac_ocp_write( tp, 0xF802, 0xE00A ); + rtl8168_mac_ocp_write( tp, 0xF804, 0xE00C ); + rtl8168_mac_ocp_write( tp, 0xF806, 0xE00E ); + rtl8168_mac_ocp_write( tp, 0xF808, 0xE027 ); + rtl8168_mac_ocp_write( tp, 0xF80A, 0xE04F ); + rtl8168_mac_ocp_write( tp, 0xF80C, 0xE05E ); + rtl8168_mac_ocp_write( tp, 0xF80E, 0xE065 ); + rtl8168_mac_ocp_write( tp, 0xF810, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF812, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF814, 0x0000 ); + rtl8168_mac_ocp_write( tp, 0xF816, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF818, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF81A, 0x074C ); + rtl8168_mac_ocp_write( tp, 0xF81C, 0xC302 ); + rtl8168_mac_ocp_write( tp, 0xF81E, 0xBB00 ); + rtl8168_mac_ocp_write( tp, 0xF820, 0x080A ); + rtl8168_mac_ocp_write( tp, 0xF822, 0x6420 ); + rtl8168_mac_ocp_write( tp, 0xF824, 0x48C2 ); + rtl8168_mac_ocp_write( tp, 0xF826, 0x8C20 ); + rtl8168_mac_ocp_write( tp, 0xF828, 0xC516 ); + rtl8168_mac_ocp_write( tp, 0xF82A, 0x64A4 ); + rtl8168_mac_ocp_write( tp, 0xF82C, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF82E, 0xF009 ); + rtl8168_mac_ocp_write( tp, 0xF830, 0x74A2 ); + rtl8168_mac_ocp_write( tp, 0xF832, 0x8CA5 ); + rtl8168_mac_ocp_write( tp, 0xF834, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF836, 0xC50E ); + rtl8168_mac_ocp_write( tp, 0xF838, 0x9CA2 ); + rtl8168_mac_ocp_write( tp, 0xF83A, 0x1C11 ); + rtl8168_mac_ocp_write( tp, 0xF83C, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF83E, 0xE006 ); + rtl8168_mac_ocp_write( tp, 0xF840, 0x74F8 ); + rtl8168_mac_ocp_write( tp, 0xF842, 0x48C4 ); + rtl8168_mac_ocp_write( tp, 0xF844, 0x8CF8 ); + rtl8168_mac_ocp_write( tp, 0xF846, 0xC404 ); + rtl8168_mac_ocp_write( tp, 0xF848, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF84A, 0xC403 ); + rtl8168_mac_ocp_write( tp, 0xF84C, 0xBC00 ); + rtl8168_mac_ocp_write( tp, 0xF84E, 0x0BF2 ); + rtl8168_mac_ocp_write( tp, 0xF850, 0x0C0A ); + rtl8168_mac_ocp_write( tp, 0xF852, 0xE434 ); + rtl8168_mac_ocp_write( tp, 0xF854, 0xD3C0 ); + rtl8168_mac_ocp_write( tp, 0xF856, 0x49D9 ); + rtl8168_mac_ocp_write( tp, 0xF858, 0xF01F ); + rtl8168_mac_ocp_write( tp, 0xF85A, 0xC526 ); + rtl8168_mac_ocp_write( tp, 0xF85C, 0x64A5 ); + rtl8168_mac_ocp_write( tp, 0xF85E, 0x1400 ); + rtl8168_mac_ocp_write( tp, 0xF860, 0xF007 ); + rtl8168_mac_ocp_write( tp, 0xF862, 0x0C01 ); + rtl8168_mac_ocp_write( tp, 0xF864, 0x8CA5 ); + rtl8168_mac_ocp_write( tp, 0xF866, 0x1C15 ); + rtl8168_mac_ocp_write( tp, 0xF868, 0xC51B ); + rtl8168_mac_ocp_write( tp, 0xF86A, 0x9CA0 ); + rtl8168_mac_ocp_write( tp, 0xF86C, 0xE013 ); + rtl8168_mac_ocp_write( tp, 0xF86E, 0xC519 ); + rtl8168_mac_ocp_write( tp, 0xF870, 0x74A0 ); + rtl8168_mac_ocp_write( tp, 0xF872, 0x48C4 ); + rtl8168_mac_ocp_write( tp, 0xF874, 0x8CA0 ); + rtl8168_mac_ocp_write( tp, 0xF876, 0xC516 ); + rtl8168_mac_ocp_write( tp, 0xF878, 0x74A4 ); + rtl8168_mac_ocp_write( tp, 0xF87A, 0x48C8 ); + rtl8168_mac_ocp_write( tp, 0xF87C, 0x48CA ); + rtl8168_mac_ocp_write( tp, 0xF87E, 0x9CA4 ); + rtl8168_mac_ocp_write( tp, 0xF880, 0xC512 ); + rtl8168_mac_ocp_write( tp, 0xF882, 0x1B00 ); + rtl8168_mac_ocp_write( tp, 0xF884, 0x9BA0 ); + rtl8168_mac_ocp_write( tp, 0xF886, 0x1B1C ); + rtl8168_mac_ocp_write( tp, 0xF888, 0x483F ); + rtl8168_mac_ocp_write( tp, 0xF88A, 0x9BA2 ); + rtl8168_mac_ocp_write( tp, 0xF88C, 0x1B04 ); + rtl8168_mac_ocp_write( tp, 0xF88E, 0xC508 ); + rtl8168_mac_ocp_write( tp, 0xF890, 0x9BA0 ); + rtl8168_mac_ocp_write( tp, 0xF892, 0xC505 ); + rtl8168_mac_ocp_write( tp, 0xF894, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF896, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF898, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF89A, 0x0300 ); + rtl8168_mac_ocp_write( tp, 0xF89C, 0x051E ); + rtl8168_mac_ocp_write( tp, 0xF89E, 0xE434 ); + rtl8168_mac_ocp_write( tp, 0xF8A0, 0xE018 ); + rtl8168_mac_ocp_write( tp, 0xF8A2, 0xE092 ); + rtl8168_mac_ocp_write( tp, 0xF8A4, 0xDE20 ); + rtl8168_mac_ocp_write( tp, 0xF8A6, 0xD3C0 ); + rtl8168_mac_ocp_write( tp, 0xF8A8, 0xC50F ); + rtl8168_mac_ocp_write( tp, 0xF8AA, 0x76A4 ); + rtl8168_mac_ocp_write( tp, 0xF8AC, 0x49E3 ); + rtl8168_mac_ocp_write( tp, 0xF8AE, 0xF007 ); + rtl8168_mac_ocp_write( tp, 0xF8B0, 0x49C0 ); + rtl8168_mac_ocp_write( tp, 0xF8B2, 0xF103 ); + rtl8168_mac_ocp_write( tp, 0xF8B4, 0xC607 ); + rtl8168_mac_ocp_write( tp, 0xF8B6, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF8B8, 0xC606 ); + rtl8168_mac_ocp_write( tp, 0xF8BA, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF8BC, 0xC602 ); + rtl8168_mac_ocp_write( tp, 0xF8BE, 0xBE00 ); + rtl8168_mac_ocp_write( tp, 0xF8C0, 0x0C4C ); + rtl8168_mac_ocp_write( tp, 0xF8C2, 0x0C28 ); + rtl8168_mac_ocp_write( tp, 0xF8C4, 0x0C2C ); + rtl8168_mac_ocp_write( tp, 0xF8C6, 0xDC00 ); + rtl8168_mac_ocp_write( tp, 0xF8C8, 0xC707 ); + rtl8168_mac_ocp_write( tp, 0xF8CA, 0x1D00 ); + rtl8168_mac_ocp_write( tp, 0xF8CC, 0x8DE2 ); + rtl8168_mac_ocp_write( tp, 0xF8CE, 0x48C1 ); + rtl8168_mac_ocp_write( tp, 0xF8D0, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF8D2, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF8D4, 0x00AA ); + rtl8168_mac_ocp_write( tp, 0xF8D6, 0xE0C0 ); + rtl8168_mac_ocp_write( tp, 0xF8D8, 0xC502 ); + rtl8168_mac_ocp_write( tp, 0xF8DA, 0xBD00 ); + rtl8168_mac_ocp_write( tp, 0xF8DC, 0x0132 ); + + rtl8168_mac_ocp_write( tp, 0xFC26, 0x8000 ); + + rtl8168_mac_ocp_write( tp, 0xFC2A, 0x0743 ); + rtl8168_mac_ocp_write( tp, 0xFC2C, 0x0801 ); + rtl8168_mac_ocp_write( tp, 0xFC2E, 0x0BE9 ); + rtl8168_mac_ocp_write( tp, 0xFC30, 0x02FD ); + rtl8168_mac_ocp_write( tp, 0xFC32, 0x0C25 ); + rtl8168_mac_ocp_write( tp, 0xFC34, 0x00A9 ); + rtl8168_mac_ocp_write( tp, 0xFC36, 0x012D ); +} + +static void +rtl8168_set_mac_mcu_8168ep_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168ep_1[] = { + 0xE008, 0xE0D3, 0xE0D6, 0xE0D9, 0xE0DB, 0xE0DD, 0xE0DF, 0xE0E1, 0xC251, + 0x7340, 0x49B1, 0xF010, 0x1D02, 0x8D40, 0xC202, 0xBA00, 0x2C3A, 0xC0F0, + 0xE8DE, 0x2000, 0x8000, 0xC0B6, 0x268C, 0x752C, 0x49D4, 0xF112, 0xE025, + 0xC2F6, 0x7146, 0xC2F5, 0x7340, 0x49BE, 0xF103, 0xC7F2, 0xE002, 0xC7F1, + 0x304F, 0x6226, 0x49A1, 0xF1F0, 0x7222, 0x49A0, 0xF1ED, 0x2525, 0x1F28, + 0x3097, 0x3091, 0x9A36, 0x752C, 0x21DC, 0x25BC, 0xC6E2, 0x77C0, 0x1304, + 0xF014, 0x1303, 0xF014, 0x1302, 0xF014, 0x1301, 0xF014, 0x49D4, 0xF103, + 0xC3D7, 0xBB00, 0xC618, 0x67C6, 0x752E, 0x22D7, 0x26DD, 0x1505, 0xF013, + 0xC60A, 0xBE00, 0xC309, 0xBB00, 0xC308, 0xBB00, 0xC307, 0xBB00, 0xC306, + 0xBB00, 0x25C8, 0x25A6, 0x25AC, 0x25B2, 0x25B8, 0xCD08, 0x0000, 0xC0BC, + 0xC2FF, 0x7340, 0x49B0, 0xF04E, 0x1F46, 0x308F, 0xC3F7, 0x1C04, 0xE84D, + 0x1401, 0xF147, 0x7226, 0x49A7, 0xF044, 0x7222, 0x2525, 0x1F30, 0x3097, + 0x3091, 0x7340, 0xC4EA, 0x401C, 0xF006, 0xC6E8, 0x75C0, 0x49D7, 0xF105, + 0xE036, 0x1D08, 0x8DC1, 0x0208, 0x6640, 0x2764, 0x1606, 0xF12F, 0x6346, + 0x133B, 0xF12C, 0x9B34, 0x1B18, 0x3093, 0xC32A, 0x1C10, 0xE82A, 0x1401, + 0xF124, 0x1A36, 0x308A, 0x7322, 0x25B5, 0x0B0E, 0x1C00, 0xE82C, 0xC71F, + 0x4027, 0xF11A, 0xE838, 0x1F42, 0x308F, 0x1B08, 0xE824, 0x7236, 0x7746, + 0x1700, 0xF00D, 0xC313, 0x401F, 0xF103, 0x1F00, 0x9F46, 0x7744, 0x449F, + 0x445F, 0xE817, 0xC70A, 0x4027, 0xF105, 0xC302, 0xBB00, 0x2E08, 0x2DC2, + 0xC7FF, 0xBF00, 0xCDB8, 0xFFFF, 0x0C02, 0xA554, 0xA5DC, 0x402F, 0xF105, + 0x1400, 0xF1FA, 0x1C01, 0xE002, 0x1C00, 0xFF80, 0x49B0, 0xF004, 0x0B01, + 0xA1D3, 0xE003, 0x0B02, 0xA5D3, 0x3127, 0x3720, 0x0B02, 0xA5D3, 0x3127, + 0x3720, 0x1300, 0xF1FB, 0xFF80, 0x7322, 0x25B5, 0x1E28, 0x30DE, 0x30D9, + 0x7264, 0x1E11, 0x2368, 0x3116, 0xFF80, 0x1B7E, 0xC602, 0xBE00, 0x06A6, + 0x1B7E, 0xC602, 0xBE00, 0x0764, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, + 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, + 0x0000 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168ep_1); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168ep_1[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x2549); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x06A5); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0763); +} + +static bool +rtl8168_check_dash_other_fun_present(struct rtl8168_private *tp) +{ + //check if func 2 exist + if (rtl8168_csi_other_fun_read(tp, 2, 0x00) != 0xffffffff) + return true; + + return false; +} + +static void +rtl8168_set_mac_mcu_8168ep_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168ep_2[] = { + 0xE008, 0xE017, 0xE052, 0xE056, 0xE058, 0xE05A, 0xE05C, 0xE05E, 0xC50F, + 0x76A4, 0x49E3, 0xF007, 0x49C0, 0xF103, 0xC607, 0xBE00, 0xC606, 0xBE00, + 0xC602, 0xBE00, 0x0BDA, 0x0BB6, 0x0BBA, 0xDC00, 0xB400, 0xB401, 0xB402, + 0xB403, 0xB404, 0xC02E, 0x7206, 0x49AE, 0xF1FE, 0xC12B, 0x9904, 0xC12A, + 0x9906, 0x7206, 0x49AE, 0xF1FE, 0x7200, 0x49A0, 0xF117, 0xC123, 0xC223, + 0xC323, 0xE808, 0xC322, 0xE806, 0xC321, 0xE804, 0xC320, 0xE802, 0xE00C, + 0x740E, 0x49CE, 0xF1FE, 0x9908, 0x990A, 0x9A0C, 0x9B0E, 0x740E, 0x49CE, + 0xF1FE, 0xFF80, 0xB004, 0xB003, 0xB002, 0xB001, 0xB000, 0xC604, 0xC002, + 0xB800, 0x1FC8, 0xE000, 0xE8E0, 0xF128, 0x0002, 0xFFFF, 0xF000, 0x8001, + 0x8002, 0x8003, 0x8004, 0x48C1, 0x48C2, 0xC502, 0xBD00, 0x0490, 0xC602, + 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, + 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168ep_2); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168ep_2[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x0BB3); + if (false == rtl8168_check_dash_other_fun_present(tp)) + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x1FC7); + //rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0485); +} + +static void +rtl8168_set_mac_mcu_8168h_1(struct net_device *dev) +{ + rtl8168_hw_disable_mac_mcu_bps(dev); +} + +static void +rtl8168_set_mac_mcu_8168h_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168h_1[] = { + 0xE008, 0xE00F, 0xE011, 0xE047, 0xE049, 0xE073, 0xE075, 0xE07A, 0xC707, + 0x1D00, 0x8DE2, 0x48C1, 0xC502, 0xBD00, 0x00E4, 0xE0C0, 0xC502, 0xBD00, + 0x0216, 0xC634, 0x75C0, 0x49D3, 0xF027, 0xC631, 0x75C0, 0x49D3, 0xF123, + 0xC627, 0x75C0, 0xB405, 0xC525, 0x9DC0, 0xC621, 0x75C8, 0x49D5, 0xF00A, + 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2, 0x49D9, 0xF111, + 0xC517, 0x9DC8, 0xC516, 0x9DD2, 0xC618, 0x75C0, 0x49D4, 0xF003, 0x49D0, + 0xF104, 0xC60A, 0xC50E, 0x9DC0, 0xB005, 0xC607, 0x9DC0, 0xB007, 0xC602, + 0xBE00, 0x1A06, 0xB400, 0xE86C, 0xA000, 0x01E1, 0x0200, 0x9200, 0xE84C, + 0xE004, 0xE908, 0xC502, 0xBD00, 0x0B58, 0xB407, 0xB404, 0x2195, 0x25BD, + 0x9BE0, 0x1C1C, 0x484F, 0x9CE2, 0x72E2, 0x49AE, 0xF1FE, 0x0B00, 0xF116, + 0xC71C, 0xC419, 0x9CE0, 0x1C13, 0x484F, 0x9CE2, 0x74E2, 0x49CE, 0xF1FE, + 0xC412, 0x9CE0, 0x1C13, 0x484F, 0x9CE2, 0x74E2, 0x49CE, 0xF1FE, 0xC70C, + 0x74F8, 0x48C3, 0x8CF8, 0xB004, 0xB007, 0xC502, 0xBD00, 0x0F24, 0x0481, + 0x0C81, 0xDE24, 0xE000, 0xC602, 0xBE00, 0x0CA4, 0x48C1, 0x48C2, 0x9C46, + 0xC402, 0xBC00, 0x0578, 0xC602, 0xBE00, 0x0000 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168h_1); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168h_1[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x00E2); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x0210); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x1A04); + rtl8168_mac_ocp_write(tp, 0xFC2E, 0x0B26); + rtl8168_mac_ocp_write(tp, 0xFC30, 0x0F02); + rtl8168_mac_ocp_write(tp, 0xFC32, 0x0CA0); + //rtl8168_mac_ocp_write(tp, 0xFC34, 0x056C); + + rtl8168_mac_ocp_write(tp, 0xFC38, 0x003F); +} + +static void +rtl8168_set_mac_mcu_8168h_3(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168h_3[] = { + 0xE008, 0xE00A, 0xE00C, 0xE00E, 0xE010, 0xE03E, 0xE040, 0xE069, 0xC602, + 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC002, 0xB800, 0x0000, 0xC602, + 0xBE00, 0x0000, 0xC72B, 0x76E2, 0x49EE, 0xF1FD, 0x1E00, 0x9EE0, 0x1E1C, + 0x9EE2, 0x76E2, 0x49EE, 0xF1FE, 0xC621, 0x9EE0, 0x1E1D, 0x486F, 0x9EE2, + 0x76E2, 0x49EE, 0xF1FE, 0xC71A, 0x76E0, 0x48E8, 0x48E9, 0x48EA, 0x48EB, + 0x48EC, 0x9EE0, 0xC70D, 0xC60D, 0x9EF4, 0xC60C, 0x9EF6, 0xC70E, 0x76E0, + 0x4863, 0x9EE0, 0xB007, 0xC602, 0xBE00, 0x0ACC, 0xE000, 0x03BF, 0x07FF, + 0xDE24, 0x3200, 0xE096, 0xD438, 0xC602, 0xBE00, 0x0000, 0x8EE6, 0xC726, + 0x76E2, 0x49EE, 0xF1FD, 0x1E00, 0x8EE0, 0x1E1C, 0x8EE2, 0x76E2, 0x49EE, + 0xF1FE, 0xC61C, 0x8EE0, 0x1E1D, 0x486F, 0x8EE2, 0x76E2, 0x49EE, 0xF1FE, + 0xC715, 0x76E0, 0x48E8, 0x48E9, 0x48EA, 0x48EB, 0x48EC, 0x9EE0, 0xC708, + 0xC608, 0x9EF4, 0xC607, 0x9EF6, 0xC602, 0xBE00, 0x0ABE, 0xE000, 0x03BF, + 0x07FF, 0xDE24, 0x3200, 0xE096, 0xC602, 0xBE00, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x6838, 0x0A17, 0x0613, 0x0D26 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168h_3); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168h_3[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC30, 0x0ACA); + + rtl8168_clear_mcu_ocp_bit(tp, 0xD438, BIT_3); + + rtl8168_mac_ocp_write(tp, 0xFC38, 0x0010); +} + +static void +rtl8168_set_mac_mcu_8168h_4(struct net_device *dev) +{ + rtl8168_hw_disable_mac_mcu_bps(dev); +} + +static void +rtl8168_set_mac_mcu_8168fp_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + u16 breakPointEnabled = 0; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + if(tp->HwPkgDet == 0x00 || tp->HwPkgDet == 0x0F) { + static const u16 mcu_patch_code_8168fp_1_1[] = { + 0xE00A, 0xE0C1, 0xE104, 0xE108, 0xE10D, 0xE112, 0xE11C, 0xE121, 0xE000, + 0xE0C8, 0xB400, 0xC1FE, 0x49E2, 0xF04C, 0x49EA, 0xF04A, 0x74E6, 0xC246, + 0x7542, 0x73EC, 0x1800, 0x49C0, 0xF10D, 0x49C1, 0xF10B, 0x49C2, 0xF109, + 0x49B0, 0xF107, 0x49B1, 0xF105, 0x7220, 0x49A2, 0xF102, 0xE002, 0x4800, + 0x49D0, 0xF10A, 0x49D1, 0xF108, 0x49D2, 0xF106, 0x49D3, 0xF104, 0x49DF, + 0xF102, 0xE00C, 0x4801, 0x72E4, 0x49AD, 0xF108, 0xC225, 0x6741, 0x48F0, + 0x8F41, 0x4870, 0x8F41, 0xC7CF, 0x49B5, 0xF01F, 0x49B2, 0xF00B, 0x4980, + 0xF003, 0x484E, 0x94E7, 0x4981, 0xF004, 0x485E, 0xC212, 0x9543, 0xE071, + 0x49B6, 0xF003, 0x49B3, 0xF10F, 0x4980, 0xF003, 0x484E, 0x94E7, 0x4981, + 0xF004, 0x485E, 0xC204, 0x9543, 0xE005, 0xE000, 0xE0FC, 0xE0FA, 0xE065, + 0x49B7, 0xF007, 0x4980, 0xF005, 0x1A38, 0x46D4, 0x1200, 0xF109, 0x4981, + 0xF055, 0x49C3, 0xF105, 0x1A30, 0x46D5, 0x1200, 0xF04F, 0x7220, 0x49A2, + 0xF130, 0x49C1, 0xF12E, 0x49B0, 0xF12C, 0xC2E6, 0x7240, 0x49A8, 0xF003, + 0x49D0, 0xF126, 0x49A9, 0xF003, 0x49D1, 0xF122, 0x49AA, 0xF003, 0x49D2, + 0xF11E, 0x49AB, 0xF003, 0x49DF, 0xF11A, 0x49AC, 0xF003, 0x49D3, 0xF116, + 0x4980, 0xF003, 0x49C7, 0xF105, 0x4981, 0xF02C, 0x49D7, 0xF02A, 0x49C0, + 0xF00C, 0xC721, 0x62F4, 0x49A0, 0xF008, 0x49A4, 0xF106, 0x4824, 0x8AF4, + 0xC71A, 0x1A40, 0x9AE0, 0x49B6, 0xF017, 0x200E, 0xC7B8, 0x72E0, 0x4710, + 0x92E1, 0xC70E, 0x77E0, 0x49F0, 0xF112, 0xC70B, 0x77E0, 0x27FE, 0x1AFA, + 0x4317, 0xC705, 0x9AE2, 0x1A11, 0x8AE0, 0xE008, 0xE41C, 0xC0AE, 0xD23A, + 0xC7A2, 0x74E6, 0x484F, 0x94E7, 0xC79E, 0x8CE6, 0x8BEC, 0xC29C, 0x8D42, + 0x7220, 0xB000, 0xC502, 0xBD00, 0x0932, 0xB400, 0xC240, 0xC340, 0x7060, + 0x498F, 0xF014, 0x488F, 0x9061, 0x744C, 0x49C3, 0xF004, 0x7562, 0x485E, + 0x9563, 0x7446, 0x49C3, 0xF106, 0x7562, 0x1C30, 0x46E5, 0x1200, 0xF004, + 0x7446, 0x484F, 0x9447, 0xC32A, 0x7466, 0x49C0, 0xF00F, 0x48C0, 0x9C66, + 0x7446, 0x4840, 0x4841, 0x4842, 0x9C46, 0x744C, 0x4840, 0x9C4C, 0x744A, + 0x484A, 0x9C4A, 0xE013, 0x498E, 0xF011, 0x488E, 0x9061, 0x744C, 0x49C3, + 0xF004, 0x7446, 0x484E, 0x9447, 0x7446, 0x1D38, 0x46EC, 0x1500, 0xF004, + 0x7446, 0x484F, 0x9447, 0xB000, 0xC502, 0xBD00, 0x074C, 0xE000, 0xE0FC, + 0xE0C0, 0x4830, 0x4837, 0xC502, 0xBD00, 0x0978, 0x63E2, 0x4830, 0x4837, + 0xC502, 0xBD00, 0x09FE, 0x73E2, 0x4830, 0x8BE2, 0xC302, 0xBB00, 0x0A12, + 0x73E2, 0x48B0, 0x48B3, 0x48B4, 0x48B5, 0x48B6, 0x48B7, 0x8BE2, 0xC302, + 0xBB00, 0x0A5A, 0x73E2, 0x4830, 0x8BE2, 0xC302, 0xBB00, 0x0A6C, 0x73E2, + 0x4830, 0x4837, 0xC502, 0xBD00, 0x0A86 + }; + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168fp_1_1); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168fp_1_1[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x0890); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x0712); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0974); + rtl8168_mac_ocp_write(tp, 0xFC2E, 0x09FC); + rtl8168_mac_ocp_write(tp, 0xFC30, 0x0A0E); + rtl8168_mac_ocp_write(tp, 0xFC32, 0x0A56); + rtl8168_mac_ocp_write(tp, 0xFC34, 0x0A68); + rtl8168_mac_ocp_write(tp, 0xFC36, 0x0A84); + + } else if (tp->HwPkgDet == 0x05 || tp->HwPkgDet == 0x06) { + static const u16 mcu_patch_code_8168fp_1_2[] = { + 0xE008, 0xE00A, 0xE031, 0xE033, 0xE035, 0xE144, 0xE166, 0xE168, 0xC502, + 0xBD00, 0x0000, 0xC725, 0x75E0, 0x48D0, 0x9DE0, 0xC722, 0x75E0, 0x1C78, + 0x416C, 0x1530, 0xF111, 0xC71D, 0x75F6, 0x49D1, 0xF00D, 0x75E0, 0x1C1F, + 0x416C, 0x1502, 0xF108, 0x75FA, 0x49D3, 0xF005, 0x75EC, 0x9DE4, 0x4853, + 0x9DFA, 0xC70B, 0x75E0, 0x4852, 0x4850, 0x9DE0, 0xC602, 0xBE00, 0x04B8, + 0xE420, 0xE000, 0xE0FC, 0xE43C, 0xDC00, 0xEB00, 0xC202, 0xBA00, 0x0000, + 0xC002, 0xB800, 0x0000, 0xB401, 0xB402, 0xB403, 0xB404, 0xB405, 0xB406, + 0xC44D, 0xC54D, 0x1867, 0xE8A2, 0x2318, 0x276E, 0x1601, 0xF106, 0x1A07, + 0xE861, 0xE86B, 0xE873, 0xE037, 0x231E, 0x276E, 0x1602, 0xF10B, 0x1A07, + 0xE858, 0xE862, 0xC247, 0xC344, 0xE8E3, 0xC73B, 0x66E0, 0xE8B5, 0xE029, + 0x231A, 0x276C, 0xC733, 0x9EE0, 0x1866, 0xE885, 0x251C, 0x120F, 0xF011, + 0x1209, 0xF011, 0x2014, 0x240E, 0x1000, 0xF007, 0x120C, 0xF00D, 0x1203, + 0xF00D, 0x1200, 0xF00D, 0x120C, 0xF00D, 0x1203, 0xF00D, 0x1A03, 0xE00C, + 0x1A07, 0xE00A, 0x1A00, 0xE008, 0x1A01, 0xE006, 0x1A02, 0xE004, 0x1A04, + 0xE002, 0x1A05, 0xE829, 0xE833, 0xB006, 0xB005, 0xB004, 0xB003, 0xB002, + 0xB001, 0x60C4, 0xC702, 0xBF00, 0x2786, 0xDD00, 0xD030, 0xE0C4, 0xE0F8, + 0xDC42, 0xD3F0, 0x0000, 0x0004, 0x0007, 0x0014, 0x0090, 0x1000, 0x0F00, + 0x1004, 0x1008, 0x3000, 0x3004, 0x3008, 0x4000, 0x7777, 0x8000, 0x8001, + 0x8008, 0x8003, 0x8004, 0xC000, 0xC004, 0xF004, 0xFFFF, 0xB406, 0xB407, + 0xC6E5, 0x77C0, 0x27F3, 0x23F3, 0x47FA, 0x9FC0, 0xB007, 0xB006, 0xFF80, + 0xB405, 0xB407, 0xC7D8, 0x75E0, 0x48D0, 0x9DE0, 0xB007, 0xB005, 0xFF80, + 0xB401, 0xC0EA, 0xC2DC, 0xC3D8, 0xE865, 0xC0D3, 0xC1E0, 0xC2E3, 0xE861, + 0xE817, 0xC0CD, 0xC2CF, 0xE85D, 0xC0C9, 0xC1D6, 0xC2DB, 0xE859, 0xE80F, + 0xC1C7, 0xC2CE, 0xE855, 0xC0C0, 0xC1D1, 0xC2D3, 0xE851, 0xE807, 0xC0BE, + 0xC2C2, 0xE84D, 0xE803, 0xB001, 0xFF80, 0xB402, 0xC2C6, 0xE859, 0x499F, + 0xF1FE, 0xB002, 0xFF80, 0xB402, 0xB403, 0xB407, 0xE821, 0x8882, 0x1980, + 0x8983, 0xE81D, 0x7180, 0x218B, 0x25BB, 0x1310, 0xF014, 0x1310, 0xFB03, + 0x1F20, 0x38FB, 0x3288, 0x434B, 0x2491, 0x430B, 0x1F0F, 0x38FB, 0x4313, + 0x2121, 0x4353, 0x2521, 0x418A, 0x6282, 0x2527, 0x212F, 0x418A, 0xB007, + 0xB003, 0xB002, 0xFF80, 0x6183, 0x2496, 0x1100, 0xF1FD, 0xFF80, 0x4800, + 0x4801, 0xC213, 0xC313, 0xE815, 0x4860, 0x8EE0, 0xC210, 0xC310, 0xE822, + 0x481E, 0xC20C, 0xC30C, 0xE80C, 0xC206, 0x7358, 0x483A, 0x9B58, 0xFF80, + 0xE8E0, 0xE000, 0x1008, 0x0F00, 0x800C, 0x0F00, 0xB407, 0xB406, 0xB403, + 0xC7F7, 0x98E0, 0x99E2, 0x9AE4, 0x21B2, 0x4831, 0x483F, 0x9BE6, 0x66E7, + 0x49E6, 0xF1FE, 0xB003, 0xB006, 0xB007, 0xFF80, 0xB407, 0xB406, 0xB403, + 0xC7E5, 0x9AE4, 0x21B2, 0x4831, 0x9BE6, 0x66E7, 0x49E6, 0xF1FE, 0x70E0, + 0x71E2, 0xB003, 0xB006, 0xB007, 0xFF80, 0x4882, 0xB406, 0xB405, 0xC71E, + 0x76E0, 0x1D78, 0x4175, 0x1630, 0xF10C, 0xC715, 0x76E0, 0x4861, 0x9EE0, + 0xC713, 0x1EFF, 0x9EE2, 0x75E0, 0x4850, 0x9DE0, 0xE005, 0xC70B, 0x76E0, + 0x4865, 0x9EE0, 0xB005, 0xB006, 0xC708, 0xC102, 0xB900, 0x279E, 0xEB16, + 0xEB00, 0xE43C, 0xDC00, 0xD3EC, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, + 0x0000 + }; + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168fp_1_2); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168fp_1_2[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x04b4); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC2E, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC30, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC32, 0x279C); + rtl8168_mac_ocp_write(tp, 0xFC34, 0x0000); + rtl8168_mac_ocp_write(tp, 0xFC36, 0x0000); + } + + if (tp->HwPkgDet == 0x00) + breakPointEnabled = 0x00FC; + else if (tp->HwPkgDet == 0x0F) + breakPointEnabled = 0x00FF; + else if (tp->HwPkgDet == 0x05 || tp->HwPkgDet == 0x06) + breakPointEnabled = 0x0022; + + rtl8168_mac_ocp_write(tp, 0xFC38, breakPointEnabled); +} + +static void +rtl8168_set_mac_mcu_8168fp_8116as_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168fp_8116as_2[] = { + 0xE008, 0xE00A, 0xE00F, 0xE014, 0xE016, 0xE018, 0xE01A, 0xE01C, 0xC602, + 0xBE00, 0x2AB2, 0x1BC0, 0x46EB, 0x1BFE, 0xC102, 0xB900, 0x0B1A, 0x1BC0, + 0x46EB, 0x1B7E, 0xC102, 0xB900, 0x0BEA, 0xC602, 0xBE00, 0x0000, 0xC602, + 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, + 0xBE00, 0x0000 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168fp_8116as_2); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168fp_8116as_2[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x2AAC); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x0B14); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0BE4); + + rtl8168_mac_ocp_write(tp, 0xFC38, 0x0007); +} + +static void +_rtl8168_set_mac_mcu_8168fp_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168fp_2[] = { + 0xE008, 0xE00A, 0xE00F, 0xE014, 0xE05F, 0xE064, 0xE066, 0xE068, 0xC602, + 0xBE00, 0x0000, 0x1BC0, 0x46EB, 0x1BFE, 0xC102, 0xB900, 0x0B1A, 0x1BC0, + 0x46EB, 0x1B7E, 0xC102, 0xB900, 0x0BEA, 0xB400, 0xB401, 0xB402, 0xB403, + 0xB404, 0xB405, 0xC03A, 0x7206, 0x49AE, 0xF1FE, 0xC137, 0x9904, 0xC136, + 0x9906, 0x7206, 0x49AE, 0xF1FE, 0x7200, 0x49A0, 0xF10B, 0xC52F, 0xC12E, + 0xC232, 0xC332, 0xE812, 0xC331, 0xE810, 0xC330, 0xE80E, 0xE018, 0xC126, + 0xC229, 0xC525, 0xC328, 0xE808, 0xC523, 0xC326, 0xE805, 0xC521, 0xC324, + 0xE802, 0xE00C, 0x740E, 0x49CE, 0xF1FE, 0x9908, 0x9D0A, 0x9A0C, 0x9B0E, + 0x740E, 0x49CE, 0xF1FE, 0xFF80, 0xB005, 0xB004, 0xB003, 0xB002, 0xB001, + 0xB000, 0xC604, 0xC002, 0xB800, 0x2A5E, 0xE000, 0xE8E0, 0xF128, 0x3DC2, + 0xFFFF, 0x10EC, 0x816A, 0x816D, 0x816C, 0xF000, 0x8002, 0x8004, 0x8007, + 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x07BC, 0xC602, 0xBE00, 0x0000, + 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168fp_2); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168fp_2[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x2AAC); + rtl8168_mac_ocp_write(tp, 0xFC2A, 0x0B14); + rtl8168_mac_ocp_write(tp, 0xFC2C, 0x0BE4); + rtl8168_mac_ocp_write(tp, 0xFC2E, 0x2A5C); + //rtl8168_mac_ocp_write(tp, 0xFC30, 0x07B0); + + if (true == rtl8168_check_dash_other_fun_present(tp)) + rtl8168_mac_ocp_write(tp, 0xFC38, 0x0006); + else + rtl8168_mac_ocp_write(tp, 0xFC38, 0x000E); +} + +static void +rtl8168_set_mac_mcu_8168fp_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->HwSuppSerDesPhyVer == 1) + rtl8168_set_mac_mcu_8168fp_8116as_2(dev); + else + _rtl8168_set_mac_mcu_8168fp_2(dev); +} + +static void +rtl8168_set_mac_mcu_8168fp_3(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 i; + static const u16 mcu_patch_code_8168fp_3[] = { + 0xE008, 0xE053, 0xE058, 0xE05A, 0xE05C, 0xE05E, 0xE060, 0xE062, 0xB400, + 0xB401, 0xB402, 0xB403, 0xB404, 0xB405, 0xC03A, 0x7206, 0x49AE, 0xF1FE, + 0xC137, 0x9904, 0xC136, 0x9906, 0x7206, 0x49AE, 0xF1FE, 0x7200, 0x49A0, + 0xF10B, 0xC52F, 0xC12E, 0xC232, 0xC332, 0xE812, 0xC331, 0xE810, 0xC330, + 0xE80E, 0xE018, 0xC126, 0xC229, 0xC525, 0xC328, 0xE808, 0xC523, 0xC326, + 0xE805, 0xC521, 0xC324, 0xE802, 0xE00C, 0x740E, 0x49CE, 0xF1FE, 0x9908, + 0x9D0A, 0x9A0C, 0x9B0E, 0x740E, 0x49CE, 0xF1FE, 0xFF80, 0xB005, 0xB004, + 0xB003, 0xB002, 0xB001, 0xB000, 0xC604, 0xC002, 0xB800, 0x2B16, 0xE000, + 0xE8E0, 0xF128, 0x3DC2, 0xFFFF, 0x10EC, 0x816A, 0x816D, 0x816C, 0xF000, + 0x8002, 0x8004, 0x8007, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x07BC, + 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, + 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000 + }; + + rtl8168_hw_disable_mac_mcu_bps(dev); + + for (i = 0; i < ARRAY_SIZE(mcu_patch_code_8168fp_3); i++) { + rtl8168_mac_ocp_write(tp, 0xF800 + i * 2, mcu_patch_code_8168fp_3[i]); + } + + rtl8168_mac_ocp_write(tp, 0xFC26, 0x8000); + + rtl8168_mac_ocp_write(tp, 0xFC28, 0x2B14); + //rtl8168_mac_ocp_write(tp, 0xFC2A, 0x07B0); + + if (true == rtl8168_check_dash_other_fun_present(tp)) + rtl8168_mac_ocp_write(tp, 0xFC38, 0x0000); + else + rtl8168_mac_ocp_write(tp, 0xFC38, 0x0001); +} + +static void +rtl8168_hw_mac_mcu_config(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->NotWrMcuPatchCode == TRUE) + return; + + switch (tp->mcfg) { + case CFG_METHOD_21: + rtl8168_set_mac_mcu_8168g_1(dev); + break; + case CFG_METHOD_24: + rtl8168_set_mac_mcu_8168gu_1(dev); + break; + case CFG_METHOD_25: + rtl8168_set_mac_mcu_8168gu_2(dev); + break; + case CFG_METHOD_26: + rtl8168_set_mac_mcu_8411b_1(dev); + break; + case CFG_METHOD_27: + rtl8168_set_mac_mcu_8168ep_1(dev); + break; + case CFG_METHOD_28: + rtl8168_set_mac_mcu_8168ep_2(dev); + break; + case CFG_METHOD_29: + rtl8168_set_mac_mcu_8168h_1(dev); + break; + case CFG_METHOD_30: + case CFG_METHOD_37: + rtl8168_set_mac_mcu_8168h_2(dev); + break; + case CFG_METHOD_31: + rtl8168_set_mac_mcu_8168fp_1(dev); + break; + case CFG_METHOD_32: + rtl8168_set_mac_mcu_8168fp_2(dev); + break; + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_set_mac_mcu_8168fp_3(dev); + break; + case CFG_METHOD_35: + rtl8168_set_mac_mcu_8168h_3(dev); + break; + case CFG_METHOD_36: + rtl8168_set_mac_mcu_8168h_4(dev); + break; + } +} +#endif + +#ifdef ENABLE_USE_FIRMWARE_FILE +static void rtl8168_release_firmware(struct rtl8168_private *tp) +{ + if (tp->rtl_fw) { + rtl8168_fw_release_firmware(tp->rtl_fw); + kfree(tp->rtl_fw); + tp->rtl_fw = NULL; + } +} + +void rtl8168_apply_firmware(struct rtl8168_private *tp) +{ + /* TODO: release firmware if rtl_fw_write_firmware signals failure. */ + if (tp->rtl_fw) { + rtl8168_fw_write_firmware(tp, tp->rtl_fw); + /* At least one firmware doesn't reset tp->ocp_base. */ + tp->ocp_base = OCP_STD_PHY_BASE; + + /* PHY soft reset may still be in progress */ + //phy_read_poll_timeout(tp->phydev, MII_BMCR, val, + // !(val & BMCR_RESET), + // 50000, 600000, true); + rtl8168_wait_phy_reset_complete(tp); + + tp->hw_ram_code_ver = rtl8168_get_hw_phy_mcu_code_ver(tp); + tp->sw_ram_code_ver = tp->hw_ram_code_ver; + tp->HwHasWrRamCodeToMicroP = TRUE; + } +} +#endif + +static void +rtl8168_hw_init(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 csi_tmp; + + if (tp->HwSuppAspmClkIntrLock) { + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) & ~BIT_7); + rtl8168_enable_cfg9346_write(tp); + rtl8168_hw_aspm_clkreq_enable(tp, false); + rtl8168_disable_cfg9346_write(tp); + } + + //Disable UPS + if (HW_SUPPORT_UPS_MODE(tp)) + rtl8168_mac_ocp_write(tp, 0xD400, rtl8168_mac_ocp_read( tp, 0xD400) & ~(BIT_0)); + + //Disable DMA Aggregation + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mac_ocp_write(tp, 0xE63E, rtl8168_mac_ocp_read( tp, 0xE63E) & ~(BIT_3 | BIT_2 | BIT_1)); + rtl8168_mac_ocp_write(tp, 0xE63E, rtl8168_mac_ocp_read( tp, 0xE63E) | (BIT_0)); + rtl8168_mac_ocp_write(tp, 0xE63E, rtl8168_mac_ocp_read( tp, 0xE63E) & ~(BIT_0)); + rtl8168_mac_ocp_write(tp, 0xC094, 0x0); + rtl8168_mac_ocp_write(tp, 0xC09E, 0x0); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_9: + case CFG_METHOD_10: + RTL_W8(tp, DBG_reg, RTL_R8(tp, DBG_reg) | BIT_1 | BIT_7); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + RTL_W8(tp, 0xF2, (RTL_R8(tp, 0xF2) & ~(BIT_2 | BIT_1 | BIT_0))); + break; + } + + if (tp->mcfg == CFG_METHOD_10 || tp->mcfg == CFG_METHOD_14 || tp->mcfg == CFG_METHOD_15) + RTL_W8(tp, 0xF3, RTL_R8(tp, 0xF3) | BIT_2); + +#ifndef ENABLE_USE_FIRMWARE_FILE + if (!tp->rtl_fw) + rtl8168_hw_mac_mcu_config(dev); +#endif + + /*disable ocp phy power saving*/ + if (tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) + if (!tp->dash_printer_enabled) + rtl8168_disable_ocp_phy_power_saving(dev); + + //Set PCIE uncorrectable error status mask pcie 0x108 + csi_tmp = rtl8168_csi_read(tp, 0x108); + csi_tmp |= BIT_20; + rtl8168_csi_write(tp, 0x108, csi_tmp); + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + csi_tmp = rtl8168_eri_read(tp, 0x1AB, 1, ERIAR_ExGMAC); + csi_tmp |= ( BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 ); + rtl8168_eri_write(tp, 0x1AB, 1, csi_tmp, ERIAR_ExGMAC); + break; + } + + rtl8168_set_pci_pme(tp, 0); + + if (s0_magic_packet == 1) + rtl8168_enable_magic_packet(dev); + else + rtl8168_disable_magic_packet(dev); + +#ifdef ENABLE_USE_FIRMWARE_FILE + if (tp->rtl_fw && + !(HW_DASH_SUPPORT_TYPE_3(tp) && + tp->HwPkgDet == 0x06)) + rtl8168_apply_firmware(tp); +#endif +} + +static void +rtl8168_hw_ephy_config(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 ephy_data; + + switch (tp->mcfg) { + case CFG_METHOD_4: + /*Set EPHY registers begin*/ + /*Set EPHY register offset 0x02 bit 11 to 0 and bit 12 to 1*/ + ephy_data = rtl8168_ephy_read(tp, 0x02); + ephy_data &= ~BIT_11; + ephy_data |= BIT_12; + rtl8168_ephy_write(tp, 0x02, ephy_data); + + /*Set EPHY register offset 0x03 bit 1 to 1*/ + ephy_data = rtl8168_ephy_read(tp, 0x03); + ephy_data |= (1 << 1); + rtl8168_ephy_write(tp, 0x03, ephy_data); + + /*Set EPHY register offset 0x06 bit 7 to 0*/ + ephy_data = rtl8168_ephy_read(tp, 0x06); + ephy_data &= ~(1 << 7); + rtl8168_ephy_write(tp, 0x06, ephy_data); + /*Set EPHY registers end*/ + + break; + case CFG_METHOD_5: + /* set EPHY registers */ + SetPCIePhyBit(tp, 0x01, BIT_0); + + ClearAndSetPCIePhyBit(tp, + 0x03, + BIT_10, + BIT_5 + ); + + break; + case CFG_METHOD_9: + /* set EPHY registers */ + rtl8168_ephy_write(tp, 0x01, 0x7C7F); + rtl8168_ephy_write(tp, 0x02, 0x011F); + if (tp->eeprom_type != EEPROM_TYPE_NONE) { + ClearAndSetPCIePhyBit(tp, + 0x03, + 0xFFB0, + 0x05B0 + ); + } else { + ClearAndSetPCIePhyBit(tp, + 0x03, + 0xFFF0, + 0x05F0 + ); + } + rtl8168_ephy_write(tp, 0x06, 0xB271); + rtl8168_ephy_write(tp, 0x07, 0xCE00); + + break; + case CFG_METHOD_10: + /* set EPHY registers */ + rtl8168_ephy_write(tp, 0x01, 0x6C7F); + rtl8168_ephy_write(tp, 0x02, 0x011F); + ClearAndSetPCIePhyBit(tp, + 0x03, + 0xFFF0, + 0x01B0 + ); + rtl8168_ephy_write(tp, 0x1A, 0x0546); + rtl8168_ephy_write(tp, 0x1C, 0x80C4); + rtl8168_ephy_write(tp, 0x1D, 0x78E5); + rtl8168_ephy_write(tp, 0x0A, 0x8100); + + break; + case CFG_METHOD_12: + case CFG_METHOD_13: + ephy_data = rtl8168_ephy_read(tp, 0x0B); + rtl8168_ephy_write(tp, 0x0B, ephy_data|0x48); + ephy_data = rtl8168_ephy_read(tp, 0x19); + ephy_data &= ~0x20; + rtl8168_ephy_write(tp, 0x19, ephy_data|0x50); + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~0x100; + rtl8168_ephy_write(tp, 0x0C, ephy_data|0x20); + ephy_data = rtl8168_ephy_read(tp, 0x10); + ephy_data &= ~0x04; + rtl8168_ephy_write(tp, 0x10, ephy_data); + + break; + case CFG_METHOD_14: + case CFG_METHOD_15: + /* set EPHY registers */ + ephy_data = rtl8168_ephy_read(tp, 0x00) & ~0x0200; + ephy_data |= 0x0100; + rtl8168_ephy_write(tp, 0x00, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data |= 0x0004; + rtl8168_ephy_write(tp, 0x00, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x06) & ~0x0002; + ephy_data |= 0x0001; + rtl8168_ephy_write(tp, 0x06, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x06); + ephy_data |= 0x0030; + rtl8168_ephy_write(tp, 0x06, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x07); + ephy_data |= 0x2000; + rtl8168_ephy_write(tp, 0x07, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data |= 0x0020; + rtl8168_ephy_write(tp, 0x00, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x03) & ~0x5800; + ephy_data |= 0x2000; + rtl8168_ephy_write(tp, 0x03, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x03); + ephy_data |= 0x0001; + rtl8168_ephy_write(tp, 0x03, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x01) & ~0x0800; + ephy_data |= 0x1000; + rtl8168_ephy_write(tp, 0x01, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x07); + ephy_data |= 0x4000; + rtl8168_ephy_write(tp, 0x07, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x1E); + ephy_data |= 0x2000; + rtl8168_ephy_write(tp, 0x1E, ephy_data); + + rtl8168_ephy_write(tp, 0x19, 0xFE6C); + + ephy_data = rtl8168_ephy_read(tp, 0x0A); + ephy_data |= 0x0040; + rtl8168_ephy_write(tp, 0x0A, ephy_data); + + break; + case CFG_METHOD_16: + case CFG_METHOD_17: + if (tp->mcfg == CFG_METHOD_16) { + rtl8168_ephy_write(tp, 0x06, 0xF020); + rtl8168_ephy_write(tp, 0x07, 0x01FF); + rtl8168_ephy_write(tp, 0x00, 0x5027); + rtl8168_ephy_write(tp, 0x01, 0x0003); + rtl8168_ephy_write(tp, 0x02, 0x2D16); + rtl8168_ephy_write(tp, 0x03, 0x6D49); + rtl8168_ephy_write(tp, 0x08, 0x0006); + rtl8168_ephy_write(tp, 0x0A, 0x00C8); + } + + ephy_data = rtl8168_ephy_read(tp, 0x09); + ephy_data |= BIT_7; + rtl8168_ephy_write(tp, 0x09, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x19); + ephy_data |= (BIT_2 | BIT_5 | BIT_9); + rtl8168_ephy_write(tp, 0x19, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data |= BIT_3; + rtl8168_ephy_write(tp, 0x00, ephy_data); + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~(BIT_13 | BIT_12 | BIT_11 | BIT_10 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4); + ephy_data |= BIT_9; + rtl8168_ephy_write(tp, 0x0C, ephy_data); + + break; + case CFG_METHOD_18: + case CFG_METHOD_19: + if (tp->mcfg == CFG_METHOD_18) { + ephy_data = rtl8168_ephy_read(tp, 0x06); + ephy_data |= BIT_5; + ephy_data &= ~(BIT_7 | BIT_6); + rtl8168_ephy_write(tp, 0x06, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x08); + ephy_data |= BIT_1; + ephy_data &= ~BIT_0; + rtl8168_ephy_write(tp, 0x08, ephy_data); + } + + ephy_data = rtl8168_ephy_read(tp, 0x09); + ephy_data |= BIT_7; + rtl8168_ephy_write(tp, 0x09, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x19); + ephy_data |= (BIT_2 | BIT_5 | BIT_9); + rtl8168_ephy_write(tp, 0x19, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data |= BIT_3; + rtl8168_ephy_write(tp, 0x00, ephy_data); + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~(BIT_13 | BIT_12 | BIT_11 | BIT_10 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4); + ephy_data |= BIT_9; + rtl8168_ephy_write(tp, 0x0C, ephy_data); + + break; + case CFG_METHOD_20: + ephy_data = rtl8168_ephy_read(tp, 0x06); + ephy_data |= BIT_5; + ephy_data &= ~(BIT_7 | BIT_6); + rtl8168_ephy_write(tp, 0x06, ephy_data); + + rtl8168_ephy_write(tp, 0x0f, 0x5200); + + ephy_data = rtl8168_ephy_read(tp, 0x19); + ephy_data |= (BIT_2 | BIT_5 | BIT_9); + rtl8168_ephy_write(tp, 0x19, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data |= BIT_3; + rtl8168_ephy_write(tp, 0x00, ephy_data); + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~(BIT_13 | BIT_12 | BIT_11 | BIT_10 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4); + ephy_data |= BIT_9; + rtl8168_ephy_write(tp, 0x0C, ephy_data); + + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data &= ~(BIT_3); + rtl8168_ephy_write(tp, 0x00, ephy_data); + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~(BIT_13 | BIT_12 | BIT_11 | BIT_10 | BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4); + ephy_data |= (BIT_5 | BIT_11); + rtl8168_ephy_write(tp, 0x0C, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x1E); + ephy_data |= (BIT_0); + rtl8168_ephy_write(tp, 0x1E, ephy_data); + + ephy_data = rtl8168_ephy_read(tp, 0x19); + ephy_data &= ~(BIT_15); + rtl8168_ephy_write(tp, 0x19, ephy_data); + + break; + case CFG_METHOD_25: + ephy_data = rtl8168_ephy_read(tp, 0x00); + ephy_data &= ~BIT_3; + rtl8168_ephy_write(tp, 0x00, ephy_data); + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~(BIT_13 | BIT_12 | BIT_11 | BIT_10| BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4); + ephy_data |= (BIT_5 | BIT_11); + rtl8168_ephy_write(tp, 0x0C, ephy_data); + + rtl8168_ephy_write(tp, 0x19, 0x7C00); + rtl8168_ephy_write(tp, 0x1E, 0x20EB); + rtl8168_ephy_write(tp, 0x0D, 0x1666); + rtl8168_ephy_write(tp, 0x00, 0x10A3); + rtl8168_ephy_write(tp, 0x06, 0xF050); + + SetPCIePhyBit(tp, 0x04, BIT_4); + ClearPCIePhyBit(tp, 0x1D, BIT_14); + + break; + case CFG_METHOD_26: + ClearPCIePhyBit(tp, 0x00, BIT_3); + ClearAndSetPCIePhyBit( tp, + 0x0C, + (BIT_13 | BIT_12 | BIT_10 | BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_4), + (BIT_5 | BIT_11) + ); + SetPCIePhyBit(tp, 0x1E, BIT_0); + ClearPCIePhyBit(tp, 0x19, BIT_15); + + ClearPCIePhyBit(tp, 0x19, (BIT_5 | BIT_0)); + + SetPCIePhyBit(tp, 0x1E, BIT_13); + ClearPCIePhyBit(tp, 0x0D, BIT_8); + SetPCIePhyBit(tp, 0x0D, BIT_9); + SetPCIePhyBit(tp, 0x00, BIT_7); + + SetPCIePhyBit(tp, 0x06, BIT_4); + + SetPCIePhyBit(tp, 0x04, BIT_4); + SetPCIePhyBit(tp, 0x1D, BIT_14); + + break; + case CFG_METHOD_23: + rtl8168_ephy_write(tp, 0x00, 0x10AB); + rtl8168_ephy_write(tp, 0x06, 0xf030); + rtl8168_ephy_write(tp, 0x08, 0x2006); + rtl8168_ephy_write(tp, 0x0D, 0x1666); + + ephy_data = rtl8168_ephy_read(tp, 0x0C); + ephy_data &= ~(BIT_13 | BIT_12 | BIT_11 | BIT_10 | BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4); + rtl8168_ephy_write(tp, 0x0C, ephy_data); + + break; + case CFG_METHOD_27: + rtl8168_ephy_write(tp, 0x00, 0x10A3); + rtl8168_ephy_write(tp, 0x19, 0xFC00); + rtl8168_ephy_write(tp, 0x1E, 0x20EA); + + break; + case CFG_METHOD_28: + rtl8168_ephy_write(tp, 0x00, 0x10AB); + rtl8168_ephy_write(tp, 0x19, 0xFC00); + rtl8168_ephy_write(tp, 0x1E, 0x20EB); + rtl8168_ephy_write(tp, 0x0D, 0x1666); + ClearPCIePhyBit(tp, 0x0B, BIT_0); + SetPCIePhyBit(tp, 0x1D, BIT_14); + ClearAndSetPCIePhyBit(tp, + 0x0C, + BIT_13 | BIT_12 | BIT_11 | BIT_10 | BIT_8 | BIT_7 | BIT_6 | BIT_5, + BIT_9 | BIT_4 + ); + + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_37: + ClearPCIePhyBit(tp, 0x1E, BIT_11); + + SetPCIePhyBit(tp, 0x1E, BIT_0); + SetPCIePhyBit(tp, 0x1D, BIT_11); + + rtl8168_ephy_write(tp, 0x05, 0x2089); + rtl8168_ephy_write(tp, 0x06, 0x5881); + + rtl8168_ephy_write(tp, 0x04, 0x854A); + rtl8168_ephy_write(tp, 0x01, 0x068B); + + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + ClearAndSetPCIePhyBit(tp, + 0x19, + BIT_6, + (BIT_12| BIT_8) + ); + ClearAndSetPCIePhyBit(tp, + 0x59, + BIT_6, + (BIT_12| BIT_8) + ); + + ClearPCIePhyBit(tp, 0x0C, BIT_4); + ClearPCIePhyBit(tp, 0x4C, BIT_4); + ClearPCIePhyBit(tp, 0x0B, BIT_0); + + break; + case CFG_METHOD_35: + rtl8168_clear_mcu_ocp_bit(tp, 0xD438, BIT_2); + + ClearPCIePhyBit(tp, 0x24, BIT_9); + + rtl8168_clear_mcu_ocp_bit(tp, 0xDE28, (BIT_1 | BIT_0)); + + rtl8168_set_mcu_ocp_bit(tp, 0xD438, BIT_2); + + break; + case CFG_METHOD_36: + rtl8168_clear_mcu_ocp_bit(tp, 0xD438, BIT_2); + + rtl8168_clear_mcu_ocp_bit(tp, 0xDE28, (BIT_1 | BIT_0)); + + rtl8168_set_mcu_ocp_bit(tp, 0xD438, BIT_2); + + break; + } +} + +static int +rtl8168_set_phy_mcu_patch_request(struct rtl8168_private *tp) +{ + u16 PhyRegValue; + u32 WaitCnt; + int retval = TRUE; + + switch (tp->mcfg) { + case CFG_METHOD_21 ... CFG_METHOD_37: + rtl8168_mdio_write(tp,0x1f, 0x0B82); + rtl8168_set_eth_phy_bit(tp, 0x10, BIT_4); + + rtl8168_mdio_write(tp,0x1f, 0x0B80); + WaitCnt = 0; + do { + PhyRegValue = rtl8168_mdio_read(tp, 0x10); + udelay(100); + WaitCnt++; + } while (!(PhyRegValue & BIT_6) && (WaitCnt < 1000)); + + if (!(PhyRegValue & BIT_6) && (WaitCnt == 1000)) + retval = FALSE; + + rtl8168_mdio_write(tp,0x1f, 0x0000); + break; + } + + return retval; +} + +static int +rtl8168_clear_phy_mcu_patch_request(struct rtl8168_private *tp) +{ + u16 PhyRegValue; + u32 WaitCnt; + int retval = TRUE; + + switch (tp->mcfg) { + case CFG_METHOD_21 ... CFG_METHOD_37: + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + rtl8168_clear_eth_phy_bit(tp, 0x10, BIT_4); + + rtl8168_mdio_write(tp,0x1f, 0x0B80); + WaitCnt = 0; + do { + PhyRegValue = rtl8168_mdio_read(tp, 0x10); + udelay(100); + WaitCnt++; + } while ((PhyRegValue & BIT_6) && (WaitCnt < 1000)); + + if ((PhyRegValue & BIT_6) && (WaitCnt == 1000)) + retval = FALSE; + + rtl8168_mdio_write(tp,0x1f, 0x0000); + break; + } + + return retval; +} + +static u16 +rtl8168_get_hw_phy_mcu_code_ver(struct rtl8168_private *tp) +{ + u16 hw_ram_code_ver = ~0; + + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B60); + hw_ram_code_ver = rtl8168_mdio_read(tp, 0x06); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B30); + hw_ram_code_ver = rtl8168_mdio_read(tp, 0x06); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x801E); + hw_ram_code_ver = rtl8168_mdio_read(tp, 0x14); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + break; + default: + tp->hw_ram_code_ver = ~0; + break; + } + + return hw_ram_code_ver; +} + +#ifndef ENABLE_USE_FIRMWARE_FILE +static void +rtl8168_enable_phy_disable_mode(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->HwSuppCheckPhyDisableModeVer) { + case 1: + rtl8168_mac_ocp_write(tp, 0xDC20, rtl8168_mac_ocp_read(tp, 0xDC20) | BIT_1); + break; + case 2: + case 3: + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_5); + break; + } + + dprintk("enable phy disable mode.\n"); +} + +static void +rtl8168_disable_phy_disable_mode(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->HwSuppCheckPhyDisableModeVer) { + case 1: + rtl8168_mac_ocp_write(tp, 0xDC20, rtl8168_mac_ocp_read(tp, 0xDC20) & ~BIT_1); + break; + case 2: + case 3: + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) & ~BIT_5); + break; + } + + mdelay(1); + + dprintk("disable phy disable mode.\n"); +} + +static int +rtl8168_check_hw_phy_mcu_code_ver(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ram_code_ver_match = 0; + + tp->hw_ram_code_ver = rtl8168_get_hw_phy_mcu_code_ver(tp); + + if ( tp->hw_ram_code_ver == tp->sw_ram_code_ver) { + ram_code_ver_match = 1; + tp->HwHasWrRamCodeToMicroP = TRUE; + } + + return ram_code_ver_match; +} + +static void +rtl8168_write_hw_phy_mcu_code_ver(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B60); + rtl8168_mdio_write(tp, 0x06, tp->sw_ram_code_ver); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + tp->hw_ram_code_ver = tp->sw_ram_code_ver; + break; + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B30); + rtl8168_mdio_write(tp, 0x06, tp->sw_ram_code_ver); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + tp->hw_ram_code_ver = tp->sw_ram_code_ver; + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x801E); + rtl8168_mdio_write(tp, 0x14, tp->sw_ram_code_ver); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + tp->hw_ram_code_ver = tp->sw_ram_code_ver; + break; + } +} +static int +rtl8168_phy_ram_code_check(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 PhyRegValue; + int retval = TRUE; + + switch(tp->mcfg) { + case CFG_METHOD_21: + rtl8168_mdio_write(tp, 0x1f, 0x0A40); + PhyRegValue = rtl8168_mdio_read(tp, 0x10); + PhyRegValue &= ~(BIT_11); + rtl8168_mdio_write(tp, 0x10, PhyRegValue); + + + rtl8168_mdio_write(tp, 0x1f, 0x0A00); + PhyRegValue = rtl8168_mdio_read(tp, 0x10); + PhyRegValue &= ~(BIT_12 | BIT_13 | BIT_14 | BIT_15); + rtl8168_mdio_write(tp, 0x10, PhyRegValue); + + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8010); + PhyRegValue = rtl8168_mdio_read(tp, 0x14); + PhyRegValue &= ~(BIT_11); + rtl8168_mdio_write(tp, 0x14, PhyRegValue); + + rtl8168_set_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp, 0x1f, 0x0A40); + rtl8168_mdio_write(tp, 0x10, 0x0140); + + rtl8168_mdio_write(tp, 0x1f, 0x0A4A); + PhyRegValue = rtl8168_mdio_read(tp, 0x13); + PhyRegValue &= ~(BIT_6); + PhyRegValue |= (BIT_7); + rtl8168_mdio_write(tp, 0x13, PhyRegValue); + + rtl8168_mdio_write(tp, 0x1f, 0x0A44); + PhyRegValue = rtl8168_mdio_read(tp, 0x14); + PhyRegValue |= (BIT_2); + rtl8168_mdio_write(tp, 0x14, PhyRegValue); + + rtl8168_mdio_write(tp, 0x1f, 0x0A50); + PhyRegValue = rtl8168_mdio_read(tp, 0x11); + PhyRegValue |= (BIT_11|BIT_12); + rtl8168_mdio_write(tp, 0x11, PhyRegValue); + + rtl8168_clear_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp, 0x1f, 0x0A40); + rtl8168_mdio_write(tp, 0x10, 0x1040); + + rtl8168_mdio_write(tp, 0x1f, 0x0A4A); + PhyRegValue = rtl8168_mdio_read(tp, 0x13); + PhyRegValue &= ~(BIT_6|BIT_7); + rtl8168_mdio_write(tp, 0x13, PhyRegValue); + + rtl8168_mdio_write(tp, 0x1f, 0x0A44); + PhyRegValue = rtl8168_mdio_read(tp, 0x14); + PhyRegValue &= ~(BIT_2); + rtl8168_mdio_write(tp, 0x14, PhyRegValue); + + rtl8168_mdio_write(tp, 0x1f, 0x0A50); + PhyRegValue = rtl8168_mdio_read(tp, 0x11); + PhyRegValue &= ~(BIT_11|BIT_12); + rtl8168_mdio_write(tp, 0x11, PhyRegValue); + + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8010); + PhyRegValue = rtl8168_mdio_read(tp, 0x14); + PhyRegValue |= (BIT_11); + rtl8168_mdio_write(tp, 0x14, PhyRegValue); + + rtl8168_set_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp, 0x1f, 0x0A20); + PhyRegValue = rtl8168_mdio_read(tp, 0x13); + if (PhyRegValue & BIT_11) { + if (PhyRegValue & BIT_10) { + retval = FALSE; + } + } + + rtl8168_clear_phy_mcu_patch_request(tp); + + mdelay(2); + break; + default: + break; + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + return retval; +} + +static void +rtl8168_set_phy_ram_code_check_fail_flag(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u16 TmpUshort; + + switch(tp->mcfg) { + case CFG_METHOD_21: + TmpUshort = rtl8168_mac_ocp_read(tp, 0xD3C0); + TmpUshort |= BIT_0; + rtl8168_mac_ocp_write(tp, 0xD3C0, TmpUshort); + break; + } +} + +static void +rtl8168_set_phy_mcu_8168e_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val,i; + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x1800); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x17, 0x0117); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + rtl8168_mdio_write(tp, 0x1B, 0x5000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x4104); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1E); + gphy_val &= 0x03FF; + if (gphy_val == 0x000C) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x07); + if ((gphy_val & BIT_5) == 0) + break; + } + gphy_val = rtl8168_mdio_read(tp, 0x07); + if (gphy_val & BIT_5) { + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x00a1); + rtl8168_mdio_write(tp, 0x17, 0x1000); + rtl8168_mdio_write(tp, 0x17, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2000); + rtl8168_mdio_write(tp, 0x1e, 0x002f); + rtl8168_mdio_write(tp, 0x18, 0x9bfb); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x07, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x08); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x08, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x000e); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x0010); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x0018); + rtl8168_mdio_write(tp, 0x19, 0x4801); + rtl8168_mdio_write(tp, 0x15, 0x0019); + rtl8168_mdio_write(tp, 0x19, 0x6801); + rtl8168_mdio_write(tp, 0x15, 0x001a); + rtl8168_mdio_write(tp, 0x19, 0x66a1); + rtl8168_mdio_write(tp, 0x15, 0x001f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0020); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0021); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0022); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0023); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0024); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0025); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0026); + rtl8168_mdio_write(tp, 0x19, 0x40ea); + rtl8168_mdio_write(tp, 0x15, 0x0027); + rtl8168_mdio_write(tp, 0x19, 0x4503); + rtl8168_mdio_write(tp, 0x15, 0x0028); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0029); + rtl8168_mdio_write(tp, 0x19, 0xa631); + rtl8168_mdio_write(tp, 0x15, 0x002a); + rtl8168_mdio_write(tp, 0x19, 0x9717); + rtl8168_mdio_write(tp, 0x15, 0x002b); + rtl8168_mdio_write(tp, 0x19, 0x302c); + rtl8168_mdio_write(tp, 0x15, 0x002c); + rtl8168_mdio_write(tp, 0x19, 0x4802); + rtl8168_mdio_write(tp, 0x15, 0x002d); + rtl8168_mdio_write(tp, 0x19, 0x58da); + rtl8168_mdio_write(tp, 0x15, 0x002e); + rtl8168_mdio_write(tp, 0x19, 0x400d); + rtl8168_mdio_write(tp, 0x15, 0x002f); + rtl8168_mdio_write(tp, 0x19, 0x4488); + rtl8168_mdio_write(tp, 0x15, 0x0030); + rtl8168_mdio_write(tp, 0x19, 0x9e00); + rtl8168_mdio_write(tp, 0x15, 0x0031); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0032); + rtl8168_mdio_write(tp, 0x19, 0x6481); + rtl8168_mdio_write(tp, 0x15, 0x0033); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0034); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0035); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0036); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0037); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0038); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0039); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x003a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x003b); + rtl8168_mdio_write(tp, 0x19, 0x63e8); + rtl8168_mdio_write(tp, 0x15, 0x003c); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x003d); + rtl8168_mdio_write(tp, 0x19, 0x59d4); + rtl8168_mdio_write(tp, 0x15, 0x003e); + rtl8168_mdio_write(tp, 0x19, 0x63f8); + rtl8168_mdio_write(tp, 0x15, 0x0040); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0041); + rtl8168_mdio_write(tp, 0x19, 0x30de); + rtl8168_mdio_write(tp, 0x15, 0x0044); + rtl8168_mdio_write(tp, 0x19, 0x480f); + rtl8168_mdio_write(tp, 0x15, 0x0045); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x0046); + rtl8168_mdio_write(tp, 0x19, 0x6680); + rtl8168_mdio_write(tp, 0x15, 0x0047); + rtl8168_mdio_write(tp, 0x19, 0x7c10); + rtl8168_mdio_write(tp, 0x15, 0x0048); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0049); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004f); + rtl8168_mdio_write(tp, 0x19, 0x40ea); + rtl8168_mdio_write(tp, 0x15, 0x0050); + rtl8168_mdio_write(tp, 0x19, 0x4503); + rtl8168_mdio_write(tp, 0x15, 0x0051); + rtl8168_mdio_write(tp, 0x19, 0x58ca); + rtl8168_mdio_write(tp, 0x15, 0x0052); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0053); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x0054); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x0055); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0056); + rtl8168_mdio_write(tp, 0x19, 0x3000); + rtl8168_mdio_write(tp, 0x15, 0x006E); + rtl8168_mdio_write(tp, 0x19, 0x9afa); + rtl8168_mdio_write(tp, 0x15, 0x00a1); + rtl8168_mdio_write(tp, 0x19, 0x3044); + rtl8168_mdio_write(tp, 0x15, 0x00ab); + rtl8168_mdio_write(tp, 0x19, 0x5820); + rtl8168_mdio_write(tp, 0x15, 0x00ac); + rtl8168_mdio_write(tp, 0x19, 0x5e04); + rtl8168_mdio_write(tp, 0x15, 0x00ad); + rtl8168_mdio_write(tp, 0x19, 0xb60c); + rtl8168_mdio_write(tp, 0x15, 0x00af); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x00b2); + rtl8168_mdio_write(tp, 0x19, 0x30b9); + rtl8168_mdio_write(tp, 0x15, 0x00b9); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x00ba); + rtl8168_mdio_write(tp, 0x19, 0x480b); + rtl8168_mdio_write(tp, 0x15, 0x00bb); + rtl8168_mdio_write(tp, 0x19, 0x5e00); + rtl8168_mdio_write(tp, 0x15, 0x00bc); + rtl8168_mdio_write(tp, 0x19, 0x405f); + rtl8168_mdio_write(tp, 0x15, 0x00bd); + rtl8168_mdio_write(tp, 0x19, 0x4448); + rtl8168_mdio_write(tp, 0x15, 0x00be); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x00bf); + rtl8168_mdio_write(tp, 0x19, 0x4468); + rtl8168_mdio_write(tp, 0x15, 0x00c0); + rtl8168_mdio_write(tp, 0x19, 0x9c02); + rtl8168_mdio_write(tp, 0x15, 0x00c1); + rtl8168_mdio_write(tp, 0x19, 0x58a0); + rtl8168_mdio_write(tp, 0x15, 0x00c2); + rtl8168_mdio_write(tp, 0x19, 0xb605); + rtl8168_mdio_write(tp, 0x15, 0x00c3); + rtl8168_mdio_write(tp, 0x19, 0xc0d3); + rtl8168_mdio_write(tp, 0x15, 0x00c4); + rtl8168_mdio_write(tp, 0x19, 0x00e6); + rtl8168_mdio_write(tp, 0x15, 0x00c5); + rtl8168_mdio_write(tp, 0x19, 0xdaec); + rtl8168_mdio_write(tp, 0x15, 0x00c6); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00c7); + rtl8168_mdio_write(tp, 0x19, 0x9df9); + rtl8168_mdio_write(tp, 0x15, 0x00c8); + rtl8168_mdio_write(tp, 0x19, 0x307a); + rtl8168_mdio_write(tp, 0x15, 0x0112); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0113); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0114); + rtl8168_mdio_write(tp, 0x19, 0x63f0); + rtl8168_mdio_write(tp, 0x15, 0x0115); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0116); + rtl8168_mdio_write(tp, 0x19, 0x4418); + rtl8168_mdio_write(tp, 0x15, 0x0117); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x15, 0x0118); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0119); + rtl8168_mdio_write(tp, 0x19, 0x64e1); + rtl8168_mdio_write(tp, 0x15, 0x011a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0150); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0151); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0152); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0153); + rtl8168_mdio_write(tp, 0x19, 0x4540); + rtl8168_mdio_write(tp, 0x15, 0x0154); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0155); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x15, 0x0156); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0157); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0158); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0159); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x015a); + rtl8168_mdio_write(tp, 0x19, 0x30fe); + rtl8168_mdio_write(tp, 0x15, 0x021e); + rtl8168_mdio_write(tp, 0x19, 0x5410); + rtl8168_mdio_write(tp, 0x15, 0x0225); + rtl8168_mdio_write(tp, 0x19, 0x5400); + rtl8168_mdio_write(tp, 0x15, 0x023D); + rtl8168_mdio_write(tp, 0x19, 0x4050); + rtl8168_mdio_write(tp, 0x15, 0x0295); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x02bd); + rtl8168_mdio_write(tp, 0x19, 0xa523); + rtl8168_mdio_write(tp, 0x15, 0x02be); + rtl8168_mdio_write(tp, 0x19, 0x32ca); + rtl8168_mdio_write(tp, 0x15, 0x02ca); + rtl8168_mdio_write(tp, 0x19, 0x48b3); + rtl8168_mdio_write(tp, 0x15, 0x02cb); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x02cc); + rtl8168_mdio_write(tp, 0x19, 0x4823); + rtl8168_mdio_write(tp, 0x15, 0x02cd); + rtl8168_mdio_write(tp, 0x19, 0x4510); + rtl8168_mdio_write(tp, 0x15, 0x02ce); + rtl8168_mdio_write(tp, 0x19, 0xb63a); + rtl8168_mdio_write(tp, 0x15, 0x02cf); + rtl8168_mdio_write(tp, 0x19, 0x7dc8); + rtl8168_mdio_write(tp, 0x15, 0x02d6); + rtl8168_mdio_write(tp, 0x19, 0x9bf8); + rtl8168_mdio_write(tp, 0x15, 0x02d8); + rtl8168_mdio_write(tp, 0x19, 0x85f6); + rtl8168_mdio_write(tp, 0x15, 0x02d9); + rtl8168_mdio_write(tp, 0x19, 0x32e0); + rtl8168_mdio_write(tp, 0x15, 0x02e0); + rtl8168_mdio_write(tp, 0x19, 0x4834); + rtl8168_mdio_write(tp, 0x15, 0x02e1); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x02e2); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x02e3); + rtl8168_mdio_write(tp, 0x19, 0x4824); + rtl8168_mdio_write(tp, 0x15, 0x02e4); + rtl8168_mdio_write(tp, 0x19, 0x4520); + rtl8168_mdio_write(tp, 0x15, 0x02e5); + rtl8168_mdio_write(tp, 0x19, 0x4008); + rtl8168_mdio_write(tp, 0x15, 0x02e6); + rtl8168_mdio_write(tp, 0x19, 0x4560); + rtl8168_mdio_write(tp, 0x15, 0x02e7); + rtl8168_mdio_write(tp, 0x19, 0x9d04); + rtl8168_mdio_write(tp, 0x15, 0x02e8); + rtl8168_mdio_write(tp, 0x19, 0x48c4); + rtl8168_mdio_write(tp, 0x15, 0x02e9); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02ea); + rtl8168_mdio_write(tp, 0x19, 0x4844); + rtl8168_mdio_write(tp, 0x15, 0x02eb); + rtl8168_mdio_write(tp, 0x19, 0x7dc8); + rtl8168_mdio_write(tp, 0x15, 0x02f0); + rtl8168_mdio_write(tp, 0x19, 0x9cf7); + rtl8168_mdio_write(tp, 0x15, 0x02f1); + rtl8168_mdio_write(tp, 0x19, 0xdf94); + rtl8168_mdio_write(tp, 0x15, 0x02f2); + rtl8168_mdio_write(tp, 0x19, 0x0002); + rtl8168_mdio_write(tp, 0x15, 0x02f3); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x02f4); + rtl8168_mdio_write(tp, 0x19, 0xb614); + rtl8168_mdio_write(tp, 0x15, 0x02f5); + rtl8168_mdio_write(tp, 0x19, 0xc42b); + rtl8168_mdio_write(tp, 0x15, 0x02f6); + rtl8168_mdio_write(tp, 0x19, 0x00d4); + rtl8168_mdio_write(tp, 0x15, 0x02f7); + rtl8168_mdio_write(tp, 0x19, 0xc455); + rtl8168_mdio_write(tp, 0x15, 0x02f8); + rtl8168_mdio_write(tp, 0x19, 0x0093); + rtl8168_mdio_write(tp, 0x15, 0x02f9); + rtl8168_mdio_write(tp, 0x19, 0x92ee); + rtl8168_mdio_write(tp, 0x15, 0x02fa); + rtl8168_mdio_write(tp, 0x19, 0xefed); + rtl8168_mdio_write(tp, 0x15, 0x02fb); + rtl8168_mdio_write(tp, 0x19, 0x3312); + rtl8168_mdio_write(tp, 0x15, 0x0312); + rtl8168_mdio_write(tp, 0x19, 0x49b5); + rtl8168_mdio_write(tp, 0x15, 0x0313); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x0314); + rtl8168_mdio_write(tp, 0x19, 0x4d00); + rtl8168_mdio_write(tp, 0x15, 0x0315); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x031e); + rtl8168_mdio_write(tp, 0x19, 0x404f); + rtl8168_mdio_write(tp, 0x15, 0x031f); + rtl8168_mdio_write(tp, 0x19, 0x44c8); + rtl8168_mdio_write(tp, 0x15, 0x0320); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0321); + rtl8168_mdio_write(tp, 0x19, 0x00e7); + rtl8168_mdio_write(tp, 0x15, 0x0322); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0323); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x0324); + rtl8168_mdio_write(tp, 0x19, 0x4d48); + rtl8168_mdio_write(tp, 0x15, 0x0325); + rtl8168_mdio_write(tp, 0x19, 0x3327); + rtl8168_mdio_write(tp, 0x15, 0x0326); + rtl8168_mdio_write(tp, 0x19, 0x4d40); + rtl8168_mdio_write(tp, 0x15, 0x0327); + rtl8168_mdio_write(tp, 0x19, 0xc8d7); + rtl8168_mdio_write(tp, 0x15, 0x0328); + rtl8168_mdio_write(tp, 0x19, 0x0003); + rtl8168_mdio_write(tp, 0x15, 0x0329); + rtl8168_mdio_write(tp, 0x19, 0x7c20); + rtl8168_mdio_write(tp, 0x15, 0x032a); + rtl8168_mdio_write(tp, 0x19, 0x4c20); + rtl8168_mdio_write(tp, 0x15, 0x032b); + rtl8168_mdio_write(tp, 0x19, 0xc8ed); + rtl8168_mdio_write(tp, 0x15, 0x032c); + rtl8168_mdio_write(tp, 0x19, 0x00f4); + rtl8168_mdio_write(tp, 0x15, 0x032d); + rtl8168_mdio_write(tp, 0x19, 0x82b3); + rtl8168_mdio_write(tp, 0x15, 0x032e); + rtl8168_mdio_write(tp, 0x19, 0xd11d); + rtl8168_mdio_write(tp, 0x15, 0x032f); + rtl8168_mdio_write(tp, 0x19, 0x00b1); + rtl8168_mdio_write(tp, 0x15, 0x0330); + rtl8168_mdio_write(tp, 0x19, 0xde18); + rtl8168_mdio_write(tp, 0x15, 0x0331); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x0332); + rtl8168_mdio_write(tp, 0x19, 0x91ee); + rtl8168_mdio_write(tp, 0x15, 0x0333); + rtl8168_mdio_write(tp, 0x19, 0x3339); + rtl8168_mdio_write(tp, 0x15, 0x033a); + rtl8168_mdio_write(tp, 0x19, 0x4064); + rtl8168_mdio_write(tp, 0x15, 0x0340); + rtl8168_mdio_write(tp, 0x19, 0x9e06); + rtl8168_mdio_write(tp, 0x15, 0x0341); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0342); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x0343); + rtl8168_mdio_write(tp, 0x19, 0x4d48); + rtl8168_mdio_write(tp, 0x15, 0x0344); + rtl8168_mdio_write(tp, 0x19, 0x3346); + rtl8168_mdio_write(tp, 0x15, 0x0345); + rtl8168_mdio_write(tp, 0x19, 0x4d40); + rtl8168_mdio_write(tp, 0x15, 0x0346); + rtl8168_mdio_write(tp, 0x19, 0xd11d); + rtl8168_mdio_write(tp, 0x15, 0x0347); + rtl8168_mdio_write(tp, 0x19, 0x0099); + rtl8168_mdio_write(tp, 0x15, 0x0348); + rtl8168_mdio_write(tp, 0x19, 0xbb17); + rtl8168_mdio_write(tp, 0x15, 0x0349); + rtl8168_mdio_write(tp, 0x19, 0x8102); + rtl8168_mdio_write(tp, 0x15, 0x034a); + rtl8168_mdio_write(tp, 0x19, 0x334d); + rtl8168_mdio_write(tp, 0x15, 0x034b); + rtl8168_mdio_write(tp, 0x19, 0xa22c); + rtl8168_mdio_write(tp, 0x15, 0x034c); + rtl8168_mdio_write(tp, 0x19, 0x3397); + rtl8168_mdio_write(tp, 0x15, 0x034d); + rtl8168_mdio_write(tp, 0x19, 0x91f2); + rtl8168_mdio_write(tp, 0x15, 0x034e); + rtl8168_mdio_write(tp, 0x19, 0xc218); + rtl8168_mdio_write(tp, 0x15, 0x034f); + rtl8168_mdio_write(tp, 0x19, 0x00f0); + rtl8168_mdio_write(tp, 0x15, 0x0350); + rtl8168_mdio_write(tp, 0x19, 0x3397); + rtl8168_mdio_write(tp, 0x15, 0x0351); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0364); + rtl8168_mdio_write(tp, 0x19, 0xbc05); + rtl8168_mdio_write(tp, 0x15, 0x0367); + rtl8168_mdio_write(tp, 0x19, 0xa1fc); + rtl8168_mdio_write(tp, 0x15, 0x0368); + rtl8168_mdio_write(tp, 0x19, 0x3377); + rtl8168_mdio_write(tp, 0x15, 0x0369); + rtl8168_mdio_write(tp, 0x19, 0x328b); + rtl8168_mdio_write(tp, 0x15, 0x036a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0377); + rtl8168_mdio_write(tp, 0x19, 0x4b97); + rtl8168_mdio_write(tp, 0x15, 0x0378); + rtl8168_mdio_write(tp, 0x19, 0x6818); + rtl8168_mdio_write(tp, 0x15, 0x0379); + rtl8168_mdio_write(tp, 0x19, 0x4b07); + rtl8168_mdio_write(tp, 0x15, 0x037a); + rtl8168_mdio_write(tp, 0x19, 0x40ac); + rtl8168_mdio_write(tp, 0x15, 0x037b); + rtl8168_mdio_write(tp, 0x19, 0x4445); + rtl8168_mdio_write(tp, 0x15, 0x037c); + rtl8168_mdio_write(tp, 0x19, 0x404e); + rtl8168_mdio_write(tp, 0x15, 0x037d); + rtl8168_mdio_write(tp, 0x19, 0x4461); + rtl8168_mdio_write(tp, 0x15, 0x037e); + rtl8168_mdio_write(tp, 0x19, 0x9c09); + rtl8168_mdio_write(tp, 0x15, 0x037f); + rtl8168_mdio_write(tp, 0x19, 0x63da); + rtl8168_mdio_write(tp, 0x15, 0x0380); + rtl8168_mdio_write(tp, 0x19, 0x5440); + rtl8168_mdio_write(tp, 0x15, 0x0381); + rtl8168_mdio_write(tp, 0x19, 0x4b98); + rtl8168_mdio_write(tp, 0x15, 0x0382); + rtl8168_mdio_write(tp, 0x19, 0x7c60); + rtl8168_mdio_write(tp, 0x15, 0x0383); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x0384); + rtl8168_mdio_write(tp, 0x19, 0x4b08); + rtl8168_mdio_write(tp, 0x15, 0x0385); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x0386); + rtl8168_mdio_write(tp, 0x19, 0x338d); + rtl8168_mdio_write(tp, 0x15, 0x0387); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0388); + rtl8168_mdio_write(tp, 0x19, 0x0080); + rtl8168_mdio_write(tp, 0x15, 0x0389); + rtl8168_mdio_write(tp, 0x19, 0x820c); + rtl8168_mdio_write(tp, 0x15, 0x038a); + rtl8168_mdio_write(tp, 0x19, 0xa10b); + rtl8168_mdio_write(tp, 0x15, 0x038b); + rtl8168_mdio_write(tp, 0x19, 0x9df3); + rtl8168_mdio_write(tp, 0x15, 0x038c); + rtl8168_mdio_write(tp, 0x19, 0x3395); + rtl8168_mdio_write(tp, 0x15, 0x038d); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x038e); + rtl8168_mdio_write(tp, 0x19, 0x00f9); + rtl8168_mdio_write(tp, 0x15, 0x038f); + rtl8168_mdio_write(tp, 0x19, 0xc017); + rtl8168_mdio_write(tp, 0x15, 0x0390); + rtl8168_mdio_write(tp, 0x19, 0x0005); + rtl8168_mdio_write(tp, 0x15, 0x0391); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x0392); + rtl8168_mdio_write(tp, 0x19, 0xa103); + rtl8168_mdio_write(tp, 0x15, 0x0393); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x0394); + rtl8168_mdio_write(tp, 0x19, 0x9df9); + rtl8168_mdio_write(tp, 0x15, 0x0395); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x0396); + rtl8168_mdio_write(tp, 0x19, 0x3397); + rtl8168_mdio_write(tp, 0x15, 0x0399); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x03a4); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x03a5); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x03a6); + rtl8168_mdio_write(tp, 0x19, 0x4d08); + rtl8168_mdio_write(tp, 0x15, 0x03a7); + rtl8168_mdio_write(tp, 0x19, 0x33a9); + rtl8168_mdio_write(tp, 0x15, 0x03a8); + rtl8168_mdio_write(tp, 0x19, 0x4d00); + rtl8168_mdio_write(tp, 0x15, 0x03a9); + rtl8168_mdio_write(tp, 0x19, 0x9bfa); + rtl8168_mdio_write(tp, 0x15, 0x03aa); + rtl8168_mdio_write(tp, 0x19, 0x33b6); + rtl8168_mdio_write(tp, 0x15, 0x03bb); + rtl8168_mdio_write(tp, 0x19, 0x4056); + rtl8168_mdio_write(tp, 0x15, 0x03bc); + rtl8168_mdio_write(tp, 0x19, 0x44e9); + rtl8168_mdio_write(tp, 0x15, 0x03bd); + rtl8168_mdio_write(tp, 0x19, 0x405e); + rtl8168_mdio_write(tp, 0x15, 0x03be); + rtl8168_mdio_write(tp, 0x19, 0x44f8); + rtl8168_mdio_write(tp, 0x15, 0x03bf); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x03c0); + rtl8168_mdio_write(tp, 0x19, 0x0037); + rtl8168_mdio_write(tp, 0x15, 0x03c1); + rtl8168_mdio_write(tp, 0x19, 0xbd37); + rtl8168_mdio_write(tp, 0x15, 0x03c2); + rtl8168_mdio_write(tp, 0x19, 0x9cfd); + rtl8168_mdio_write(tp, 0x15, 0x03c3); + rtl8168_mdio_write(tp, 0x19, 0xc639); + rtl8168_mdio_write(tp, 0x15, 0x03c4); + rtl8168_mdio_write(tp, 0x19, 0x0011); + rtl8168_mdio_write(tp, 0x15, 0x03c5); + rtl8168_mdio_write(tp, 0x19, 0x9b03); + rtl8168_mdio_write(tp, 0x15, 0x03c6); + rtl8168_mdio_write(tp, 0x19, 0x7c01); + rtl8168_mdio_write(tp, 0x15, 0x03c7); + rtl8168_mdio_write(tp, 0x19, 0x4c01); + rtl8168_mdio_write(tp, 0x15, 0x03c8); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x03c9); + rtl8168_mdio_write(tp, 0x19, 0x7c20); + rtl8168_mdio_write(tp, 0x15, 0x03ca); + rtl8168_mdio_write(tp, 0x19, 0x4c20); + rtl8168_mdio_write(tp, 0x15, 0x03cb); + rtl8168_mdio_write(tp, 0x19, 0x9af4); + rtl8168_mdio_write(tp, 0x15, 0x03cc); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03cd); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03ce); + rtl8168_mdio_write(tp, 0x19, 0x4470); + rtl8168_mdio_write(tp, 0x15, 0x03cf); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03d0); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03d1); + rtl8168_mdio_write(tp, 0x19, 0x33bf); + rtl8168_mdio_write(tp, 0x15, 0x03d6); + rtl8168_mdio_write(tp, 0x19, 0x4047); + rtl8168_mdio_write(tp, 0x15, 0x03d7); + rtl8168_mdio_write(tp, 0x19, 0x4469); + rtl8168_mdio_write(tp, 0x15, 0x03d8); + rtl8168_mdio_write(tp, 0x19, 0x492b); + rtl8168_mdio_write(tp, 0x15, 0x03d9); + rtl8168_mdio_write(tp, 0x19, 0x4479); + rtl8168_mdio_write(tp, 0x15, 0x03da); + rtl8168_mdio_write(tp, 0x19, 0x7c09); + rtl8168_mdio_write(tp, 0x15, 0x03db); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x03dc); + rtl8168_mdio_write(tp, 0x19, 0x4d48); + rtl8168_mdio_write(tp, 0x15, 0x03dd); + rtl8168_mdio_write(tp, 0x19, 0x33df); + rtl8168_mdio_write(tp, 0x15, 0x03de); + rtl8168_mdio_write(tp, 0x19, 0x4d40); + rtl8168_mdio_write(tp, 0x15, 0x03df); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x03e0); + rtl8168_mdio_write(tp, 0x19, 0x0017); + rtl8168_mdio_write(tp, 0x15, 0x03e1); + rtl8168_mdio_write(tp, 0x19, 0xbd17); + rtl8168_mdio_write(tp, 0x15, 0x03e2); + rtl8168_mdio_write(tp, 0x19, 0x9b03); + rtl8168_mdio_write(tp, 0x15, 0x03e3); + rtl8168_mdio_write(tp, 0x19, 0x7c20); + rtl8168_mdio_write(tp, 0x15, 0x03e4); + rtl8168_mdio_write(tp, 0x19, 0x4c20); + rtl8168_mdio_write(tp, 0x15, 0x03e5); + rtl8168_mdio_write(tp, 0x19, 0x88f5); + rtl8168_mdio_write(tp, 0x15, 0x03e6); + rtl8168_mdio_write(tp, 0x19, 0xc428); + rtl8168_mdio_write(tp, 0x15, 0x03e7); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x03e8); + rtl8168_mdio_write(tp, 0x19, 0x9af2); + rtl8168_mdio_write(tp, 0x15, 0x03e9); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03ea); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03eb); + rtl8168_mdio_write(tp, 0x19, 0x4470); + rtl8168_mdio_write(tp, 0x15, 0x03ec); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03ed); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03ee); + rtl8168_mdio_write(tp, 0x19, 0x33da); + rtl8168_mdio_write(tp, 0x15, 0x03ef); + rtl8168_mdio_write(tp, 0x19, 0x3312); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2179); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0040); + rtl8168_mdio_write(tp, 0x18, 0x0645); + rtl8168_mdio_write(tp, 0x19, 0xe200); + rtl8168_mdio_write(tp, 0x18, 0x0655); + rtl8168_mdio_write(tp, 0x19, 0x9000); + rtl8168_mdio_write(tp, 0x18, 0x0d05); + rtl8168_mdio_write(tp, 0x19, 0xbe00); + rtl8168_mdio_write(tp, 0x18, 0x0d15); + rtl8168_mdio_write(tp, 0x19, 0xd300); + rtl8168_mdio_write(tp, 0x18, 0x0d25); + rtl8168_mdio_write(tp, 0x19, 0xfe00); + rtl8168_mdio_write(tp, 0x18, 0x0d35); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x0d45); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x0d55); + rtl8168_mdio_write(tp, 0x19, 0x1000); + rtl8168_mdio_write(tp, 0x18, 0x0d65); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x0d75); + rtl8168_mdio_write(tp, 0x19, 0x8200); + rtl8168_mdio_write(tp, 0x18, 0x0d85); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x0d95); + rtl8168_mdio_write(tp, 0x19, 0x7000); + rtl8168_mdio_write(tp, 0x18, 0x0da5); + rtl8168_mdio_write(tp, 0x19, 0x0f00); + rtl8168_mdio_write(tp, 0x18, 0x0db5); + rtl8168_mdio_write(tp, 0x19, 0x0100); + rtl8168_mdio_write(tp, 0x18, 0x0dc5); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x18, 0x0dd5); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x0de5); + rtl8168_mdio_write(tp, 0x19, 0xe000); + rtl8168_mdio_write(tp, 0x18, 0x0df5); + rtl8168_mdio_write(tp, 0x19, 0xef00); + rtl8168_mdio_write(tp, 0x18, 0x16d5); + rtl8168_mdio_write(tp, 0x19, 0xe200); + rtl8168_mdio_write(tp, 0x18, 0x16e5); + rtl8168_mdio_write(tp, 0x19, 0xab00); + rtl8168_mdio_write(tp, 0x18, 0x2904); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x2914); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x2924); + rtl8168_mdio_write(tp, 0x19, 0x0100); + rtl8168_mdio_write(tp, 0x18, 0x2934); + rtl8168_mdio_write(tp, 0x19, 0x2000); + rtl8168_mdio_write(tp, 0x18, 0x2944); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2954); + rtl8168_mdio_write(tp, 0x19, 0x4600); + rtl8168_mdio_write(tp, 0x18, 0x2964); + rtl8168_mdio_write(tp, 0x19, 0xfc00); + rtl8168_mdio_write(tp, 0x18, 0x2974); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2984); + rtl8168_mdio_write(tp, 0x19, 0x5000); + rtl8168_mdio_write(tp, 0x18, 0x2994); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x18, 0x29a4); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x29b4); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x29c4); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x29d4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x29e4); + rtl8168_mdio_write(tp, 0x19, 0x2000); + rtl8168_mdio_write(tp, 0x18, 0x29f4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2a04); + rtl8168_mdio_write(tp, 0x19, 0xe600); + rtl8168_mdio_write(tp, 0x18, 0x2a14); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x2a24); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2a34); + rtl8168_mdio_write(tp, 0x19, 0x5000); + rtl8168_mdio_write(tp, 0x18, 0x2a44); + rtl8168_mdio_write(tp, 0x19, 0x8500); + rtl8168_mdio_write(tp, 0x18, 0x2a54); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x2a64); + rtl8168_mdio_write(tp, 0x19, 0xac00); + rtl8168_mdio_write(tp, 0x18, 0x2a74); + rtl8168_mdio_write(tp, 0x19, 0x0800); + rtl8168_mdio_write(tp, 0x18, 0x2a84); + rtl8168_mdio_write(tp, 0x19, 0xfc00); + rtl8168_mdio_write(tp, 0x18, 0x2a94); + rtl8168_mdio_write(tp, 0x19, 0xe000); + rtl8168_mdio_write(tp, 0x18, 0x2aa4); + rtl8168_mdio_write(tp, 0x19, 0x7400); + rtl8168_mdio_write(tp, 0x18, 0x2ab4); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x2ac4); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x2ad4); + rtl8168_mdio_write(tp, 0x19, 0x0100); + rtl8168_mdio_write(tp, 0x18, 0x2ae4); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x2af4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2b04); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x18, 0x2b14); + rtl8168_mdio_write(tp, 0x19, 0xfc00); + rtl8168_mdio_write(tp, 0x18, 0x2b24); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2b34); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x2b44); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x18, 0x2b54); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x2b64); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x2b74); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x2b84); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2b94); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x2ba4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2bb4); + rtl8168_mdio_write(tp, 0x19, 0xfc00); + rtl8168_mdio_write(tp, 0x18, 0x2bc4); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x2bd4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2be4); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x2bf4); + rtl8168_mdio_write(tp, 0x19, 0x8900); + rtl8168_mdio_write(tp, 0x18, 0x2c04); + rtl8168_mdio_write(tp, 0x19, 0x8300); + rtl8168_mdio_write(tp, 0x18, 0x2c14); + rtl8168_mdio_write(tp, 0x19, 0xe000); + rtl8168_mdio_write(tp, 0x18, 0x2c24); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x18, 0x2c34); + rtl8168_mdio_write(tp, 0x19, 0xac00); + rtl8168_mdio_write(tp, 0x18, 0x2c44); + rtl8168_mdio_write(tp, 0x19, 0x0800); + rtl8168_mdio_write(tp, 0x18, 0x2c54); + rtl8168_mdio_write(tp, 0x19, 0xfa00); + rtl8168_mdio_write(tp, 0x18, 0x2c64); + rtl8168_mdio_write(tp, 0x19, 0xe100); + rtl8168_mdio_write(tp, 0x18, 0x2c74); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x18, 0x0001); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2100); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8b88); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0xd480); + rtl8168_mdio_write(tp, 0x06, 0xc1e4); + rtl8168_mdio_write(tp, 0x06, 0x8b9a); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x9bee); + rtl8168_mdio_write(tp, 0x06, 0x8b83); + rtl8168_mdio_write(tp, 0x06, 0x41bf); + rtl8168_mdio_write(tp, 0x06, 0x8b88); + rtl8168_mdio_write(tp, 0x06, 0xec00); + rtl8168_mdio_write(tp, 0x06, 0x19a9); + rtl8168_mdio_write(tp, 0x06, 0x8b90); + rtl8168_mdio_write(tp, 0x06, 0xf9ee); + rtl8168_mdio_write(tp, 0x06, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x41f7); + rtl8168_mdio_write(tp, 0x06, 0x2ff6); + rtl8168_mdio_write(tp, 0x06, 0x28e4); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xe5e1); + rtl8168_mdio_write(tp, 0x06, 0x41f7); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x020c); + rtl8168_mdio_write(tp, 0x06, 0x0202); + rtl8168_mdio_write(tp, 0x06, 0x1d02); + rtl8168_mdio_write(tp, 0x06, 0x0230); + rtl8168_mdio_write(tp, 0x06, 0x0202); + rtl8168_mdio_write(tp, 0x06, 0x4002); + rtl8168_mdio_write(tp, 0x06, 0x028b); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x6c02); + rtl8168_mdio_write(tp, 0x06, 0x8085); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaec3); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x10ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x1310); + rtl8168_mdio_write(tp, 0x06, 0x021f); + rtl8168_mdio_write(tp, 0x06, 0x9d02); + rtl8168_mdio_write(tp, 0x06, 0x1f0c); + rtl8168_mdio_write(tp, 0x06, 0x0227); + rtl8168_mdio_write(tp, 0x06, 0x49fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x200b); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x830e); + rtl8168_mdio_write(tp, 0x06, 0x021b); + rtl8168_mdio_write(tp, 0x06, 0x67ad); + rtl8168_mdio_write(tp, 0x06, 0x2211); + rtl8168_mdio_write(tp, 0x06, 0xf622); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x2ba5); + rtl8168_mdio_write(tp, 0x06, 0x022a); + rtl8168_mdio_write(tp, 0x06, 0x2402); + rtl8168_mdio_write(tp, 0x06, 0x80c6); + rtl8168_mdio_write(tp, 0x06, 0x022a); + rtl8168_mdio_write(tp, 0x06, 0xf0ad); + rtl8168_mdio_write(tp, 0x06, 0x2511); + rtl8168_mdio_write(tp, 0x06, 0xf625); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x8226); + rtl8168_mdio_write(tp, 0x06, 0x0204); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x19cc); + rtl8168_mdio_write(tp, 0x06, 0x022b); + rtl8168_mdio_write(tp, 0x06, 0x5bfc); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x0105); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b83); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x44e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x23ad); + rtl8168_mdio_write(tp, 0x06, 0x223b); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xbea0); + rtl8168_mdio_write(tp, 0x06, 0x0005); + rtl8168_mdio_write(tp, 0x06, 0x0228); + rtl8168_mdio_write(tp, 0x06, 0xdeae); + rtl8168_mdio_write(tp, 0x06, 0x42a0); + rtl8168_mdio_write(tp, 0x06, 0x0105); + rtl8168_mdio_write(tp, 0x06, 0x0228); + rtl8168_mdio_write(tp, 0x06, 0xf1ae); + rtl8168_mdio_write(tp, 0x06, 0x3aa0); + rtl8168_mdio_write(tp, 0x06, 0x0205); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x25ae); + rtl8168_mdio_write(tp, 0x06, 0x32a0); + rtl8168_mdio_write(tp, 0x06, 0x0305); + rtl8168_mdio_write(tp, 0x06, 0x0229); + rtl8168_mdio_write(tp, 0x06, 0x9aae); + rtl8168_mdio_write(tp, 0x06, 0x2aa0); + rtl8168_mdio_write(tp, 0x06, 0x0405); + rtl8168_mdio_write(tp, 0x06, 0x0229); + rtl8168_mdio_write(tp, 0x06, 0xaeae); + rtl8168_mdio_write(tp, 0x06, 0x22a0); + rtl8168_mdio_write(tp, 0x06, 0x0505); + rtl8168_mdio_write(tp, 0x06, 0x0229); + rtl8168_mdio_write(tp, 0x06, 0xd7ae); + rtl8168_mdio_write(tp, 0x06, 0x1aa0); + rtl8168_mdio_write(tp, 0x06, 0x0605); + rtl8168_mdio_write(tp, 0x06, 0x0229); + rtl8168_mdio_write(tp, 0x06, 0xfeae); + rtl8168_mdio_write(tp, 0x06, 0x12ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac0); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac1); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x00fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0x022a); + rtl8168_mdio_write(tp, 0x06, 0x67e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x230d); + rtl8168_mdio_write(tp, 0x06, 0x0658); + rtl8168_mdio_write(tp, 0x06, 0x03a0); + rtl8168_mdio_write(tp, 0x06, 0x0202); + rtl8168_mdio_write(tp, 0x06, 0xae2d); + rtl8168_mdio_write(tp, 0x06, 0xa001); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x2da0); + rtl8168_mdio_write(tp, 0x06, 0x004d); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe201); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x44e0); + rtl8168_mdio_write(tp, 0x06, 0x8ac2); + rtl8168_mdio_write(tp, 0x06, 0xe48a); + rtl8168_mdio_write(tp, 0x06, 0xc4e0); + rtl8168_mdio_write(tp, 0x06, 0x8ac3); + rtl8168_mdio_write(tp, 0x06, 0xe48a); + rtl8168_mdio_write(tp, 0x06, 0xc5ee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x03e0); + rtl8168_mdio_write(tp, 0x06, 0x8b83); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x3aee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x05ae); + rtl8168_mdio_write(tp, 0x06, 0x34e0); + rtl8168_mdio_write(tp, 0x06, 0x8ace); + rtl8168_mdio_write(tp, 0x06, 0xae03); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xcfe1); + rtl8168_mdio_write(tp, 0x06, 0x8ac2); + rtl8168_mdio_write(tp, 0x06, 0x4905); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xc4e1); + rtl8168_mdio_write(tp, 0x06, 0x8ac3); + rtl8168_mdio_write(tp, 0x06, 0x4905); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xc5ee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x2ab6); + rtl8168_mdio_write(tp, 0x06, 0xac20); + rtl8168_mdio_write(tp, 0x06, 0x1202); + rtl8168_mdio_write(tp, 0x06, 0x819b); + rtl8168_mdio_write(tp, 0x06, 0xac20); + rtl8168_mdio_write(tp, 0x06, 0x0cee); + rtl8168_mdio_write(tp, 0x06, 0x8ac1); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x02fc); + rtl8168_mdio_write(tp, 0x06, 0x04d0); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x590f); + rtl8168_mdio_write(tp, 0x06, 0x3902); + rtl8168_mdio_write(tp, 0x06, 0xaa04); + rtl8168_mdio_write(tp, 0x06, 0xd001); + rtl8168_mdio_write(tp, 0x06, 0xae02); + rtl8168_mdio_write(tp, 0x06, 0xd000); + rtl8168_mdio_write(tp, 0x06, 0x04f9); + rtl8168_mdio_write(tp, 0x06, 0xfae2); + rtl8168_mdio_write(tp, 0x06, 0xe2d2); + rtl8168_mdio_write(tp, 0x06, 0xe3e2); + rtl8168_mdio_write(tp, 0x06, 0xd3f9); + rtl8168_mdio_write(tp, 0x06, 0x5af7); + rtl8168_mdio_write(tp, 0x06, 0xe6e2); + rtl8168_mdio_write(tp, 0x06, 0xd2e7); + rtl8168_mdio_write(tp, 0x06, 0xe2d3); + rtl8168_mdio_write(tp, 0x06, 0xe2e0); + rtl8168_mdio_write(tp, 0x06, 0x2ce3); + rtl8168_mdio_write(tp, 0x06, 0xe02d); + rtl8168_mdio_write(tp, 0x06, 0xf95b); + rtl8168_mdio_write(tp, 0x06, 0xe01e); + rtl8168_mdio_write(tp, 0x06, 0x30e6); + rtl8168_mdio_write(tp, 0x06, 0xe02c); + rtl8168_mdio_write(tp, 0x06, 0xe7e0); + rtl8168_mdio_write(tp, 0x06, 0x2de2); + rtl8168_mdio_write(tp, 0x06, 0xe2cc); + rtl8168_mdio_write(tp, 0x06, 0xe3e2); + rtl8168_mdio_write(tp, 0x06, 0xcdf9); + rtl8168_mdio_write(tp, 0x06, 0x5a0f); + rtl8168_mdio_write(tp, 0x06, 0x6a50); + rtl8168_mdio_write(tp, 0x06, 0xe6e2); + rtl8168_mdio_write(tp, 0x06, 0xcce7); + rtl8168_mdio_write(tp, 0x06, 0xe2cd); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x3ce1); + rtl8168_mdio_write(tp, 0x06, 0xe03d); + rtl8168_mdio_write(tp, 0x06, 0xef64); + rtl8168_mdio_write(tp, 0x06, 0xfde0); + rtl8168_mdio_write(tp, 0x06, 0xe2cc); + rtl8168_mdio_write(tp, 0x06, 0xe1e2); + rtl8168_mdio_write(tp, 0x06, 0xcd58); + rtl8168_mdio_write(tp, 0x06, 0x0f5a); + rtl8168_mdio_write(tp, 0x06, 0xf01e); + rtl8168_mdio_write(tp, 0x06, 0x02e4); + rtl8168_mdio_write(tp, 0x06, 0xe2cc); + rtl8168_mdio_write(tp, 0x06, 0xe5e2); + rtl8168_mdio_write(tp, 0x06, 0xcdfd); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x2ce1); + rtl8168_mdio_write(tp, 0x06, 0xe02d); + rtl8168_mdio_write(tp, 0x06, 0x59e0); + rtl8168_mdio_write(tp, 0x06, 0x5b1f); + rtl8168_mdio_write(tp, 0x06, 0x1e13); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x2ce5); + rtl8168_mdio_write(tp, 0x06, 0xe02d); + rtl8168_mdio_write(tp, 0x06, 0xfde0); + rtl8168_mdio_write(tp, 0x06, 0xe2d2); + rtl8168_mdio_write(tp, 0x06, 0xe1e2); + rtl8168_mdio_write(tp, 0x06, 0xd358); + rtl8168_mdio_write(tp, 0x06, 0xf75a); + rtl8168_mdio_write(tp, 0x06, 0x081e); + rtl8168_mdio_write(tp, 0x06, 0x02e4); + rtl8168_mdio_write(tp, 0x06, 0xe2d2); + rtl8168_mdio_write(tp, 0x06, 0xe5e2); + rtl8168_mdio_write(tp, 0x06, 0xd3ef); + rtl8168_mdio_write(tp, 0x06, 0x46fe); + rtl8168_mdio_write(tp, 0x06, 0xfd04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xc4e1); + rtl8168_mdio_write(tp, 0x06, 0x8b6e); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e58); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x6ead); + rtl8168_mdio_write(tp, 0x06, 0x2222); + rtl8168_mdio_write(tp, 0x06, 0xac27); + rtl8168_mdio_write(tp, 0x06, 0x55ac); + rtl8168_mdio_write(tp, 0x06, 0x2602); + rtl8168_mdio_write(tp, 0x06, 0xae1a); + rtl8168_mdio_write(tp, 0x06, 0xd106); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xba02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd107); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xbd02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd107); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xc002); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xae30); + rtl8168_mdio_write(tp, 0x06, 0xd103); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xc302); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xc602); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xca02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd10f); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xba02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xbd02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xc002); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xc302); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd011); + rtl8168_mdio_write(tp, 0x06, 0x022b); + rtl8168_mdio_write(tp, 0x06, 0xfb59); + rtl8168_mdio_write(tp, 0x06, 0x03ef); + rtl8168_mdio_write(tp, 0x06, 0x01d1); + rtl8168_mdio_write(tp, 0x06, 0x00a0); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0xc602); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xd111); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x020c); + rtl8168_mdio_write(tp, 0x06, 0x11ad); + rtl8168_mdio_write(tp, 0x06, 0x2102); + rtl8168_mdio_write(tp, 0x06, 0x0c12); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xca02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xaec8); + rtl8168_mdio_write(tp, 0x06, 0x70e4); + rtl8168_mdio_write(tp, 0x06, 0x2602); + rtl8168_mdio_write(tp, 0x06, 0x82d1); + rtl8168_mdio_write(tp, 0x06, 0x05f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0xe2fe); + rtl8168_mdio_write(tp, 0x06, 0xe1e2); + rtl8168_mdio_write(tp, 0x06, 0xffad); + rtl8168_mdio_write(tp, 0x06, 0x2d1a); + rtl8168_mdio_write(tp, 0x06, 0xe0e1); + rtl8168_mdio_write(tp, 0x06, 0x4ee1); + rtl8168_mdio_write(tp, 0x06, 0xe14f); + rtl8168_mdio_write(tp, 0x06, 0xac2d); + rtl8168_mdio_write(tp, 0x06, 0x22f6); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x033b); + rtl8168_mdio_write(tp, 0x06, 0xf703); + rtl8168_mdio_write(tp, 0x06, 0xf706); + rtl8168_mdio_write(tp, 0x06, 0xbf84); + rtl8168_mdio_write(tp, 0x06, 0x4402); + rtl8168_mdio_write(tp, 0x06, 0x2d21); + rtl8168_mdio_write(tp, 0x06, 0xae11); + rtl8168_mdio_write(tp, 0x06, 0xe0e1); + rtl8168_mdio_write(tp, 0x06, 0x4ee1); + rtl8168_mdio_write(tp, 0x06, 0xe14f); + rtl8168_mdio_write(tp, 0x06, 0xad2d); + rtl8168_mdio_write(tp, 0x06, 0x08bf); + rtl8168_mdio_write(tp, 0x06, 0x844f); + rtl8168_mdio_write(tp, 0x06, 0x022d); + rtl8168_mdio_write(tp, 0x06, 0x21f6); + rtl8168_mdio_write(tp, 0x06, 0x06ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0x4502); + rtl8168_mdio_write(tp, 0x06, 0x83a2); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe001); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x1fd1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x843b); + rtl8168_mdio_write(tp, 0x06, 0x022d); + rtl8168_mdio_write(tp, 0x06, 0xc1e0); + rtl8168_mdio_write(tp, 0x06, 0xe020); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x21ad); + rtl8168_mdio_write(tp, 0x06, 0x200e); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf84); + rtl8168_mdio_write(tp, 0x06, 0x3b02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xbf3b); + rtl8168_mdio_write(tp, 0x06, 0x9602); + rtl8168_mdio_write(tp, 0x06, 0x2d21); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x204c); + rtl8168_mdio_write(tp, 0x06, 0xd200); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x0058); + rtl8168_mdio_write(tp, 0x06, 0x010c); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0x5810); + rtl8168_mdio_write(tp, 0x06, 0x1e20); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x3658); + rtl8168_mdio_write(tp, 0x06, 0x031e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xe01e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0x8b64); + rtl8168_mdio_write(tp, 0x06, 0x1f02); + rtl8168_mdio_write(tp, 0x06, 0x9e22); + rtl8168_mdio_write(tp, 0x06, 0xe68b); + rtl8168_mdio_write(tp, 0x06, 0x64ad); + rtl8168_mdio_write(tp, 0x06, 0x3214); + rtl8168_mdio_write(tp, 0x06, 0xad34); + rtl8168_mdio_write(tp, 0x06, 0x11ef); + rtl8168_mdio_write(tp, 0x06, 0x0258); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x07ad); + rtl8168_mdio_write(tp, 0x06, 0x3508); + rtl8168_mdio_write(tp, 0x06, 0x5ac0); + rtl8168_mdio_write(tp, 0x06, 0x9f04); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xae02); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf84); + rtl8168_mdio_write(tp, 0x06, 0x3e02); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfbe0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x22e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x23e2); + rtl8168_mdio_write(tp, 0x06, 0xe036); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0x375a); + rtl8168_mdio_write(tp, 0x06, 0xc40d); + rtl8168_mdio_write(tp, 0x06, 0x0158); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x20e3); + rtl8168_mdio_write(tp, 0x06, 0x8ae7); + rtl8168_mdio_write(tp, 0x06, 0xac31); + rtl8168_mdio_write(tp, 0x06, 0x60ac); + rtl8168_mdio_write(tp, 0x06, 0x3a08); + rtl8168_mdio_write(tp, 0x06, 0xac3e); + rtl8168_mdio_write(tp, 0x06, 0x26ae); + rtl8168_mdio_write(tp, 0x06, 0x67af); + rtl8168_mdio_write(tp, 0x06, 0x8437); + rtl8168_mdio_write(tp, 0x06, 0xad37); + rtl8168_mdio_write(tp, 0x06, 0x61e0); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xe91b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x51d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8441); + rtl8168_mdio_write(tp, 0x06, 0x022d); + rtl8168_mdio_write(tp, 0x06, 0xc1ee); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x43ad); + rtl8168_mdio_write(tp, 0x06, 0x3627); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xeee1); + rtl8168_mdio_write(tp, 0x06, 0x8aef); + rtl8168_mdio_write(tp, 0x06, 0xef74); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xeae1); + rtl8168_mdio_write(tp, 0x06, 0x8aeb); + rtl8168_mdio_write(tp, 0x06, 0x1b74); + rtl8168_mdio_write(tp, 0x06, 0x9e2e); + rtl8168_mdio_write(tp, 0x06, 0x14e4); + rtl8168_mdio_write(tp, 0x06, 0x8aea); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xebef); + rtl8168_mdio_write(tp, 0x06, 0x74e0); + rtl8168_mdio_write(tp, 0x06, 0x8aee); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xef1b); + rtl8168_mdio_write(tp, 0x06, 0x479e); + rtl8168_mdio_write(tp, 0x06, 0x0fae); + rtl8168_mdio_write(tp, 0x06, 0x19ee); + rtl8168_mdio_write(tp, 0x06, 0x8aea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8aeb); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x0fac); + rtl8168_mdio_write(tp, 0x06, 0x390c); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf84); + rtl8168_mdio_write(tp, 0x06, 0x4102); + rtl8168_mdio_write(tp, 0x06, 0x2dc1); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe800); + rtl8168_mdio_write(tp, 0x06, 0xe68a); + rtl8168_mdio_write(tp, 0x06, 0xe7ff); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x0400); + rtl8168_mdio_write(tp, 0x06, 0xe234); + rtl8168_mdio_write(tp, 0x06, 0xcce2); + rtl8168_mdio_write(tp, 0x06, 0x0088); + rtl8168_mdio_write(tp, 0x06, 0xe200); + rtl8168_mdio_write(tp, 0x06, 0xa725); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x1de5); + rtl8168_mdio_write(tp, 0x06, 0x0a2c); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x6de5); + rtl8168_mdio_write(tp, 0x06, 0x0a1d); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x1ce5); + rtl8168_mdio_write(tp, 0x06, 0x0a2d); + rtl8168_mdio_write(tp, 0x06, 0xa755); + rtl8168_mdio_write(tp, 0x05, 0x8b64); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8b94); + rtl8168_mdio_write(tp, 0x06, 0x82cd); + rtl8168_mdio_write(tp, 0x05, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0x2000); + rtl8168_mdio_write(tp, 0x05, 0x8aee); + rtl8168_mdio_write(tp, 0x06, 0x03b8); + rtl8168_mdio_write(tp, 0x05, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x01); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x01, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~(BIT_2); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0028); + rtl8168_mdio_write(tp, 0x15, 0x0010); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0041); + rtl8168_mdio_write(tp, 0x15, 0x0802); + rtl8168_mdio_write(tp, 0x16, 0x2185); + rtl8168_mdio_write(tp, 0x1f, 0x0000); +} + +static void +rtl8168_set_phy_mcu_8168e_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val,i; + + if (rtl8168_efuse_read(tp, 0x22) == 0x0c) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x1800); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x17, 0x0117); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + rtl8168_mdio_write(tp, 0x1B, 0x5000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x4104); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1E); + gphy_val &= 0x03FF; + if (gphy_val==0x000C) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x07); + if ((gphy_val & BIT_5) == 0) + break; + } + gphy_val = rtl8168_mdio_read(tp, 0x07); + if (gphy_val & BIT_5) { + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x00a1); + rtl8168_mdio_write(tp, 0x17, 0x1000); + rtl8168_mdio_write(tp, 0x17, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2000); + rtl8168_mdio_write(tp, 0x1e, 0x002f); + rtl8168_mdio_write(tp, 0x18, 0x9bfb); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x07, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x08); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x08, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x000e); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x0010); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x0018); + rtl8168_mdio_write(tp, 0x19, 0x4801); + rtl8168_mdio_write(tp, 0x15, 0x0019); + rtl8168_mdio_write(tp, 0x19, 0x6801); + rtl8168_mdio_write(tp, 0x15, 0x001a); + rtl8168_mdio_write(tp, 0x19, 0x66a1); + rtl8168_mdio_write(tp, 0x15, 0x001f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0020); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0021); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0022); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0023); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0024); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0025); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0026); + rtl8168_mdio_write(tp, 0x19, 0x40ea); + rtl8168_mdio_write(tp, 0x15, 0x0027); + rtl8168_mdio_write(tp, 0x19, 0x4503); + rtl8168_mdio_write(tp, 0x15, 0x0028); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0029); + rtl8168_mdio_write(tp, 0x19, 0xa631); + rtl8168_mdio_write(tp, 0x15, 0x002a); + rtl8168_mdio_write(tp, 0x19, 0x9717); + rtl8168_mdio_write(tp, 0x15, 0x002b); + rtl8168_mdio_write(tp, 0x19, 0x302c); + rtl8168_mdio_write(tp, 0x15, 0x002c); + rtl8168_mdio_write(tp, 0x19, 0x4802); + rtl8168_mdio_write(tp, 0x15, 0x002d); + rtl8168_mdio_write(tp, 0x19, 0x58da); + rtl8168_mdio_write(tp, 0x15, 0x002e); + rtl8168_mdio_write(tp, 0x19, 0x400d); + rtl8168_mdio_write(tp, 0x15, 0x002f); + rtl8168_mdio_write(tp, 0x19, 0x4488); + rtl8168_mdio_write(tp, 0x15, 0x0030); + rtl8168_mdio_write(tp, 0x19, 0x9e00); + rtl8168_mdio_write(tp, 0x15, 0x0031); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0032); + rtl8168_mdio_write(tp, 0x19, 0x6481); + rtl8168_mdio_write(tp, 0x15, 0x0033); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0034); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0035); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0036); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0037); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0038); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0039); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x003a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x003b); + rtl8168_mdio_write(tp, 0x19, 0x63e8); + rtl8168_mdio_write(tp, 0x15, 0x003c); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x003d); + rtl8168_mdio_write(tp, 0x19, 0x59d4); + rtl8168_mdio_write(tp, 0x15, 0x003e); + rtl8168_mdio_write(tp, 0x19, 0x63f8); + rtl8168_mdio_write(tp, 0x15, 0x0040); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0041); + rtl8168_mdio_write(tp, 0x19, 0x30de); + rtl8168_mdio_write(tp, 0x15, 0x0044); + rtl8168_mdio_write(tp, 0x19, 0x480f); + rtl8168_mdio_write(tp, 0x15, 0x0045); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x0046); + rtl8168_mdio_write(tp, 0x19, 0x6680); + rtl8168_mdio_write(tp, 0x15, 0x0047); + rtl8168_mdio_write(tp, 0x19, 0x7c10); + rtl8168_mdio_write(tp, 0x15, 0x0048); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0049); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004f); + rtl8168_mdio_write(tp, 0x19, 0x40ea); + rtl8168_mdio_write(tp, 0x15, 0x0050); + rtl8168_mdio_write(tp, 0x19, 0x4503); + rtl8168_mdio_write(tp, 0x15, 0x0051); + rtl8168_mdio_write(tp, 0x19, 0x58ca); + rtl8168_mdio_write(tp, 0x15, 0x0052); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0053); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x0054); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x0055); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0056); + rtl8168_mdio_write(tp, 0x19, 0x3000); + rtl8168_mdio_write(tp, 0x15, 0x00a1); + rtl8168_mdio_write(tp, 0x19, 0x3044); + rtl8168_mdio_write(tp, 0x15, 0x00ab); + rtl8168_mdio_write(tp, 0x19, 0x5820); + rtl8168_mdio_write(tp, 0x15, 0x00ac); + rtl8168_mdio_write(tp, 0x19, 0x5e04); + rtl8168_mdio_write(tp, 0x15, 0x00ad); + rtl8168_mdio_write(tp, 0x19, 0xb60c); + rtl8168_mdio_write(tp, 0x15, 0x00af); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x00b2); + rtl8168_mdio_write(tp, 0x19, 0x30b9); + rtl8168_mdio_write(tp, 0x15, 0x00b9); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x00ba); + rtl8168_mdio_write(tp, 0x19, 0x480b); + rtl8168_mdio_write(tp, 0x15, 0x00bb); + rtl8168_mdio_write(tp, 0x19, 0x5e00); + rtl8168_mdio_write(tp, 0x15, 0x00bc); + rtl8168_mdio_write(tp, 0x19, 0x405f); + rtl8168_mdio_write(tp, 0x15, 0x00bd); + rtl8168_mdio_write(tp, 0x19, 0x4448); + rtl8168_mdio_write(tp, 0x15, 0x00be); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x00bf); + rtl8168_mdio_write(tp, 0x19, 0x4468); + rtl8168_mdio_write(tp, 0x15, 0x00c0); + rtl8168_mdio_write(tp, 0x19, 0x9c02); + rtl8168_mdio_write(tp, 0x15, 0x00c1); + rtl8168_mdio_write(tp, 0x19, 0x58a0); + rtl8168_mdio_write(tp, 0x15, 0x00c2); + rtl8168_mdio_write(tp, 0x19, 0xb605); + rtl8168_mdio_write(tp, 0x15, 0x00c3); + rtl8168_mdio_write(tp, 0x19, 0xc0d3); + rtl8168_mdio_write(tp, 0x15, 0x00c4); + rtl8168_mdio_write(tp, 0x19, 0x00e6); + rtl8168_mdio_write(tp, 0x15, 0x00c5); + rtl8168_mdio_write(tp, 0x19, 0xdaec); + rtl8168_mdio_write(tp, 0x15, 0x00c6); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00c7); + rtl8168_mdio_write(tp, 0x19, 0x9df9); + rtl8168_mdio_write(tp, 0x15, 0x0112); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0113); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0114); + rtl8168_mdio_write(tp, 0x19, 0x63f0); + rtl8168_mdio_write(tp, 0x15, 0x0115); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0116); + rtl8168_mdio_write(tp, 0x19, 0x4418); + rtl8168_mdio_write(tp, 0x15, 0x0117); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x15, 0x0118); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0119); + rtl8168_mdio_write(tp, 0x19, 0x64e1); + rtl8168_mdio_write(tp, 0x15, 0x011a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0150); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0151); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0152); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0153); + rtl8168_mdio_write(tp, 0x19, 0x4540); + rtl8168_mdio_write(tp, 0x15, 0x0154); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0155); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x15, 0x0156); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0157); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0158); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0159); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x015a); + rtl8168_mdio_write(tp, 0x19, 0x30fe); + rtl8168_mdio_write(tp, 0x15, 0x029c); + rtl8168_mdio_write(tp, 0x19, 0x0070); + rtl8168_mdio_write(tp, 0x15, 0x02b2); + rtl8168_mdio_write(tp, 0x19, 0x005a); + rtl8168_mdio_write(tp, 0x15, 0x02bd); + rtl8168_mdio_write(tp, 0x19, 0xa522); + rtl8168_mdio_write(tp, 0x15, 0x02ce); + rtl8168_mdio_write(tp, 0x19, 0xb63e); + rtl8168_mdio_write(tp, 0x15, 0x02d9); + rtl8168_mdio_write(tp, 0x19, 0x32df); + rtl8168_mdio_write(tp, 0x15, 0x02df); + rtl8168_mdio_write(tp, 0x19, 0x4500); + rtl8168_mdio_write(tp, 0x15, 0x02e7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02f4); + rtl8168_mdio_write(tp, 0x19, 0xb618); + rtl8168_mdio_write(tp, 0x15, 0x02fb); + rtl8168_mdio_write(tp, 0x19, 0xb900); + rtl8168_mdio_write(tp, 0x15, 0x02fc); + rtl8168_mdio_write(tp, 0x19, 0x49b5); + rtl8168_mdio_write(tp, 0x15, 0x02fd); + rtl8168_mdio_write(tp, 0x19, 0x6812); + rtl8168_mdio_write(tp, 0x15, 0x02fe); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x02ff); + rtl8168_mdio_write(tp, 0x19, 0x9900); + rtl8168_mdio_write(tp, 0x15, 0x0300); + rtl8168_mdio_write(tp, 0x19, 0x64a0); + rtl8168_mdio_write(tp, 0x15, 0x0301); + rtl8168_mdio_write(tp, 0x19, 0x3316); + rtl8168_mdio_write(tp, 0x15, 0x0308); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030c); + rtl8168_mdio_write(tp, 0x19, 0x3000); + rtl8168_mdio_write(tp, 0x15, 0x0312); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0313); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0314); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0315); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0316); + rtl8168_mdio_write(tp, 0x19, 0x49b5); + rtl8168_mdio_write(tp, 0x15, 0x0317); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x0318); + rtl8168_mdio_write(tp, 0x19, 0x4d00); + rtl8168_mdio_write(tp, 0x15, 0x0319); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x031a); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x031b); + rtl8168_mdio_write(tp, 0x19, 0x4925); + rtl8168_mdio_write(tp, 0x15, 0x031c); + rtl8168_mdio_write(tp, 0x19, 0x403b); + rtl8168_mdio_write(tp, 0x15, 0x031d); + rtl8168_mdio_write(tp, 0x19, 0xa602); + rtl8168_mdio_write(tp, 0x15, 0x031e); + rtl8168_mdio_write(tp, 0x19, 0x402f); + rtl8168_mdio_write(tp, 0x15, 0x031f); + rtl8168_mdio_write(tp, 0x19, 0x4484); + rtl8168_mdio_write(tp, 0x15, 0x0320); + rtl8168_mdio_write(tp, 0x19, 0x40c8); + rtl8168_mdio_write(tp, 0x15, 0x0321); + rtl8168_mdio_write(tp, 0x19, 0x44c4); + rtl8168_mdio_write(tp, 0x15, 0x0322); + rtl8168_mdio_write(tp, 0x19, 0x404f); + rtl8168_mdio_write(tp, 0x15, 0x0323); + rtl8168_mdio_write(tp, 0x19, 0x44c8); + rtl8168_mdio_write(tp, 0x15, 0x0324); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0325); + rtl8168_mdio_write(tp, 0x19, 0x00e7); + rtl8168_mdio_write(tp, 0x15, 0x0326); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0327); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x0328); + rtl8168_mdio_write(tp, 0x19, 0x4d48); + rtl8168_mdio_write(tp, 0x15, 0x0329); + rtl8168_mdio_write(tp, 0x19, 0x332b); + rtl8168_mdio_write(tp, 0x15, 0x032a); + rtl8168_mdio_write(tp, 0x19, 0x4d40); + rtl8168_mdio_write(tp, 0x15, 0x032c); + rtl8168_mdio_write(tp, 0x19, 0x00f8); + rtl8168_mdio_write(tp, 0x15, 0x032d); + rtl8168_mdio_write(tp, 0x19, 0x82b2); + rtl8168_mdio_write(tp, 0x15, 0x032f); + rtl8168_mdio_write(tp, 0x19, 0x00b0); + rtl8168_mdio_write(tp, 0x15, 0x0332); + rtl8168_mdio_write(tp, 0x19, 0x91f2); + rtl8168_mdio_write(tp, 0x15, 0x033f); + rtl8168_mdio_write(tp, 0x19, 0xb6cd); + rtl8168_mdio_write(tp, 0x15, 0x0340); + rtl8168_mdio_write(tp, 0x19, 0x9e01); + rtl8168_mdio_write(tp, 0x15, 0x0341); + rtl8168_mdio_write(tp, 0x19, 0xd11d); + rtl8168_mdio_write(tp, 0x15, 0x0342); + rtl8168_mdio_write(tp, 0x19, 0x009d); + rtl8168_mdio_write(tp, 0x15, 0x0343); + rtl8168_mdio_write(tp, 0x19, 0xbb1c); + rtl8168_mdio_write(tp, 0x15, 0x0344); + rtl8168_mdio_write(tp, 0x19, 0x8102); + rtl8168_mdio_write(tp, 0x15, 0x0345); + rtl8168_mdio_write(tp, 0x19, 0x3348); + rtl8168_mdio_write(tp, 0x15, 0x0346); + rtl8168_mdio_write(tp, 0x19, 0xa231); + rtl8168_mdio_write(tp, 0x15, 0x0347); + rtl8168_mdio_write(tp, 0x19, 0x335b); + rtl8168_mdio_write(tp, 0x15, 0x0348); + rtl8168_mdio_write(tp, 0x19, 0x91f7); + rtl8168_mdio_write(tp, 0x15, 0x0349); + rtl8168_mdio_write(tp, 0x19, 0xc218); + rtl8168_mdio_write(tp, 0x15, 0x034a); + rtl8168_mdio_write(tp, 0x19, 0x00f5); + rtl8168_mdio_write(tp, 0x15, 0x034b); + rtl8168_mdio_write(tp, 0x19, 0x335b); + rtl8168_mdio_write(tp, 0x15, 0x034c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x034d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x034e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x034f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0350); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x035b); + rtl8168_mdio_write(tp, 0x19, 0xa23c); + rtl8168_mdio_write(tp, 0x15, 0x035c); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x035d); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x035e); + rtl8168_mdio_write(tp, 0x19, 0x3397); + rtl8168_mdio_write(tp, 0x15, 0x0363); + rtl8168_mdio_write(tp, 0x19, 0xb6a9); + rtl8168_mdio_write(tp, 0x15, 0x0366); + rtl8168_mdio_write(tp, 0x19, 0x00f5); + rtl8168_mdio_write(tp, 0x15, 0x0382); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0388); + rtl8168_mdio_write(tp, 0x19, 0x0084); + rtl8168_mdio_write(tp, 0x15, 0x0389); + rtl8168_mdio_write(tp, 0x19, 0xdd17); + rtl8168_mdio_write(tp, 0x15, 0x038a); + rtl8168_mdio_write(tp, 0x19, 0x000b); + rtl8168_mdio_write(tp, 0x15, 0x038b); + rtl8168_mdio_write(tp, 0x19, 0xa10a); + rtl8168_mdio_write(tp, 0x15, 0x038c); + rtl8168_mdio_write(tp, 0x19, 0x337e); + rtl8168_mdio_write(tp, 0x15, 0x038d); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x038e); + rtl8168_mdio_write(tp, 0x19, 0xa107); + rtl8168_mdio_write(tp, 0x15, 0x038f); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x0390); + rtl8168_mdio_write(tp, 0x19, 0xc017); + rtl8168_mdio_write(tp, 0x15, 0x0391); + rtl8168_mdio_write(tp, 0x19, 0x0004); + rtl8168_mdio_write(tp, 0x15, 0x0392); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0393); + rtl8168_mdio_write(tp, 0x19, 0x00f4); + rtl8168_mdio_write(tp, 0x15, 0x0397); + rtl8168_mdio_write(tp, 0x19, 0x4098); + rtl8168_mdio_write(tp, 0x15, 0x0398); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x0399); + rtl8168_mdio_write(tp, 0x19, 0x55bf); + rtl8168_mdio_write(tp, 0x15, 0x039a); + rtl8168_mdio_write(tp, 0x19, 0x4bb9); + rtl8168_mdio_write(tp, 0x15, 0x039b); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x039c); + rtl8168_mdio_write(tp, 0x19, 0x4b29); + rtl8168_mdio_write(tp, 0x15, 0x039d); + rtl8168_mdio_write(tp, 0x19, 0x4041); + rtl8168_mdio_write(tp, 0x15, 0x039e); + rtl8168_mdio_write(tp, 0x19, 0x442a); + rtl8168_mdio_write(tp, 0x15, 0x039f); + rtl8168_mdio_write(tp, 0x19, 0x4029); + rtl8168_mdio_write(tp, 0x15, 0x03aa); + rtl8168_mdio_write(tp, 0x19, 0x33b8); + rtl8168_mdio_write(tp, 0x15, 0x03b6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b8); + rtl8168_mdio_write(tp, 0x19, 0x543f); + rtl8168_mdio_write(tp, 0x15, 0x03b9); + rtl8168_mdio_write(tp, 0x19, 0x499a); + rtl8168_mdio_write(tp, 0x15, 0x03ba); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x03bb); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03bc); + rtl8168_mdio_write(tp, 0x19, 0x490a); + rtl8168_mdio_write(tp, 0x15, 0x03bd); + rtl8168_mdio_write(tp, 0x19, 0x405e); + rtl8168_mdio_write(tp, 0x15, 0x03c2); + rtl8168_mdio_write(tp, 0x19, 0x9a03); + rtl8168_mdio_write(tp, 0x15, 0x03c4); + rtl8168_mdio_write(tp, 0x19, 0x0015); + rtl8168_mdio_write(tp, 0x15, 0x03c5); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x03c8); + rtl8168_mdio_write(tp, 0x19, 0x9cf7); + rtl8168_mdio_write(tp, 0x15, 0x03c9); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03ca); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03cb); + rtl8168_mdio_write(tp, 0x19, 0x4458); + rtl8168_mdio_write(tp, 0x15, 0x03cd); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03ce); + rtl8168_mdio_write(tp, 0x19, 0x33bf); + rtl8168_mdio_write(tp, 0x15, 0x03cf); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d0); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d1); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d9); + rtl8168_mdio_write(tp, 0x19, 0x49bb); + rtl8168_mdio_write(tp, 0x15, 0x03da); + rtl8168_mdio_write(tp, 0x19, 0x4478); + rtl8168_mdio_write(tp, 0x15, 0x03db); + rtl8168_mdio_write(tp, 0x19, 0x492b); + rtl8168_mdio_write(tp, 0x15, 0x03dc); + rtl8168_mdio_write(tp, 0x19, 0x7c01); + rtl8168_mdio_write(tp, 0x15, 0x03dd); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x03de); + rtl8168_mdio_write(tp, 0x19, 0xbd1a); + rtl8168_mdio_write(tp, 0x15, 0x03df); + rtl8168_mdio_write(tp, 0x19, 0xc428); + rtl8168_mdio_write(tp, 0x15, 0x03e0); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x03e1); + rtl8168_mdio_write(tp, 0x19, 0x9cfd); + rtl8168_mdio_write(tp, 0x15, 0x03e2); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03e3); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03e4); + rtl8168_mdio_write(tp, 0x19, 0x4458); + rtl8168_mdio_write(tp, 0x15, 0x03e5); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03e6); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03e7); + rtl8168_mdio_write(tp, 0x19, 0x33de); + rtl8168_mdio_write(tp, 0x15, 0x03e8); + rtl8168_mdio_write(tp, 0x19, 0xc218); + rtl8168_mdio_write(tp, 0x15, 0x03e9); + rtl8168_mdio_write(tp, 0x19, 0x0002); + rtl8168_mdio_write(tp, 0x15, 0x03ea); + rtl8168_mdio_write(tp, 0x19, 0x32df); + rtl8168_mdio_write(tp, 0x15, 0x03eb); + rtl8168_mdio_write(tp, 0x19, 0x3316); + rtl8168_mdio_write(tp, 0x15, 0x03ec); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ed); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ee); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ef); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03f7); + rtl8168_mdio_write(tp, 0x19, 0x330c); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x0200); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x9002); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x0202); + rtl8168_mdio_write(tp, 0x06, 0x3402); + rtl8168_mdio_write(tp, 0x06, 0x027f); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0xa602); + rtl8168_mdio_write(tp, 0x06, 0x80bf); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe600); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xee03); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xefb8); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe902); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8285); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8520); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8701); + rtl8168_mdio_write(tp, 0x06, 0xd481); + rtl8168_mdio_write(tp, 0x06, 0x35e4); + rtl8168_mdio_write(tp, 0x06, 0x8b94); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x95bf); + rtl8168_mdio_write(tp, 0x06, 0x8b88); + rtl8168_mdio_write(tp, 0x06, 0xec00); + rtl8168_mdio_write(tp, 0x06, 0x19a9); + rtl8168_mdio_write(tp, 0x06, 0x8b90); + rtl8168_mdio_write(tp, 0x06, 0xf9ee); + rtl8168_mdio_write(tp, 0x06, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x41f7); + rtl8168_mdio_write(tp, 0x06, 0x2ff6); + rtl8168_mdio_write(tp, 0x06, 0x28e4); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xe5e1); + rtl8168_mdio_write(tp, 0x06, 0x4104); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x0dee); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x82f4); + rtl8168_mdio_write(tp, 0x06, 0x021f); + rtl8168_mdio_write(tp, 0x06, 0x4102); + rtl8168_mdio_write(tp, 0x06, 0x2812); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x10ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x139d); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xd602); + rtl8168_mdio_write(tp, 0x06, 0x1f99); + rtl8168_mdio_write(tp, 0x06, 0x0227); + rtl8168_mdio_write(tp, 0x06, 0xeafc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2014); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x8104); + rtl8168_mdio_write(tp, 0x06, 0x021b); + rtl8168_mdio_write(tp, 0x06, 0xf402); + rtl8168_mdio_write(tp, 0x06, 0x2c9c); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x7902); + rtl8168_mdio_write(tp, 0x06, 0x8443); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x11f6); + rtl8168_mdio_write(tp, 0x06, 0x22e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x022c); + rtl8168_mdio_write(tp, 0x06, 0x4602); + rtl8168_mdio_write(tp, 0x06, 0x2ac5); + rtl8168_mdio_write(tp, 0x06, 0x0229); + rtl8168_mdio_write(tp, 0x06, 0x2002); + rtl8168_mdio_write(tp, 0x06, 0x2b91); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x11f6); + rtl8168_mdio_write(tp, 0x06, 0x25e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0xe202); + rtl8168_mdio_write(tp, 0x06, 0x043a); + rtl8168_mdio_write(tp, 0x06, 0x021a); + rtl8168_mdio_write(tp, 0x06, 0x5902); + rtl8168_mdio_write(tp, 0x06, 0x2bfc); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe001); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x1fd1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8638); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50e0); + rtl8168_mdio_write(tp, 0x06, 0xe020); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x21ad); + rtl8168_mdio_write(tp, 0x06, 0x200e); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xbf3d); + rtl8168_mdio_write(tp, 0x06, 0x3902); + rtl8168_mdio_write(tp, 0x06, 0x2eb0); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x0402); + rtl8168_mdio_write(tp, 0x06, 0x8591); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x3c05); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xfee1); + rtl8168_mdio_write(tp, 0x06, 0xe2ff); + rtl8168_mdio_write(tp, 0x06, 0xad2d); + rtl8168_mdio_write(tp, 0x06, 0x1ae0); + rtl8168_mdio_write(tp, 0x06, 0xe14e); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x4fac); + rtl8168_mdio_write(tp, 0x06, 0x2d22); + rtl8168_mdio_write(tp, 0x06, 0xf603); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x36f7); + rtl8168_mdio_write(tp, 0x06, 0x03f7); + rtl8168_mdio_write(tp, 0x06, 0x06bf); + rtl8168_mdio_write(tp, 0x06, 0x8622); + rtl8168_mdio_write(tp, 0x06, 0x022e); + rtl8168_mdio_write(tp, 0x06, 0xb0ae); + rtl8168_mdio_write(tp, 0x06, 0x11e0); + rtl8168_mdio_write(tp, 0x06, 0xe14e); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x4fad); + rtl8168_mdio_write(tp, 0x06, 0x2d08); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x2d02); + rtl8168_mdio_write(tp, 0x06, 0x2eb0); + rtl8168_mdio_write(tp, 0x06, 0xf606); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x204c); + rtl8168_mdio_write(tp, 0x06, 0xd200); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x0058); + rtl8168_mdio_write(tp, 0x06, 0x010c); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0x5810); + rtl8168_mdio_write(tp, 0x06, 0x1e20); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x3658); + rtl8168_mdio_write(tp, 0x06, 0x031e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xe01e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0x8ae6); + rtl8168_mdio_write(tp, 0x06, 0x1f02); + rtl8168_mdio_write(tp, 0x06, 0x9e22); + rtl8168_mdio_write(tp, 0x06, 0xe68a); + rtl8168_mdio_write(tp, 0x06, 0xe6ad); + rtl8168_mdio_write(tp, 0x06, 0x3214); + rtl8168_mdio_write(tp, 0x06, 0xad34); + rtl8168_mdio_write(tp, 0x06, 0x11ef); + rtl8168_mdio_write(tp, 0x06, 0x0258); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x07ad); + rtl8168_mdio_write(tp, 0x06, 0x3508); + rtl8168_mdio_write(tp, 0x06, 0x5ac0); + rtl8168_mdio_write(tp, 0x06, 0x9f04); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xae02); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x3e02); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfae0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac26); + rtl8168_mdio_write(tp, 0x06, 0x0ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xac24); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x6bee); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xe0eb); + rtl8168_mdio_write(tp, 0x06, 0x00e2); + rtl8168_mdio_write(tp, 0x06, 0xe07c); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0x7da5); + rtl8168_mdio_write(tp, 0x06, 0x1111); + rtl8168_mdio_write(tp, 0x06, 0x15d2); + rtl8168_mdio_write(tp, 0x06, 0x60d6); + rtl8168_mdio_write(tp, 0x06, 0x6666); + rtl8168_mdio_write(tp, 0x06, 0x0207); + rtl8168_mdio_write(tp, 0x06, 0xf9d2); + rtl8168_mdio_write(tp, 0x06, 0xa0d6); + rtl8168_mdio_write(tp, 0x06, 0xaaaa); + rtl8168_mdio_write(tp, 0x06, 0x0207); + rtl8168_mdio_write(tp, 0x06, 0xf902); + rtl8168_mdio_write(tp, 0x06, 0x825c); + rtl8168_mdio_write(tp, 0x06, 0xae44); + rtl8168_mdio_write(tp, 0x06, 0xa566); + rtl8168_mdio_write(tp, 0x06, 0x6602); + rtl8168_mdio_write(tp, 0x06, 0xae38); + rtl8168_mdio_write(tp, 0x06, 0xa5aa); + rtl8168_mdio_write(tp, 0x06, 0xaa02); + rtl8168_mdio_write(tp, 0x06, 0xae32); + rtl8168_mdio_write(tp, 0x06, 0xeee0); + rtl8168_mdio_write(tp, 0x06, 0xea04); + rtl8168_mdio_write(tp, 0x06, 0xeee0); + rtl8168_mdio_write(tp, 0x06, 0xeb06); + rtl8168_mdio_write(tp, 0x06, 0xe2e0); + rtl8168_mdio_write(tp, 0x06, 0x7ce3); + rtl8168_mdio_write(tp, 0x06, 0xe07d); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x38e1); + rtl8168_mdio_write(tp, 0x06, 0xe039); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x21ad); + rtl8168_mdio_write(tp, 0x06, 0x3f13); + rtl8168_mdio_write(tp, 0x06, 0xe0e4); + rtl8168_mdio_write(tp, 0x06, 0x14e1); + rtl8168_mdio_write(tp, 0x06, 0xe415); + rtl8168_mdio_write(tp, 0x06, 0x6880); + rtl8168_mdio_write(tp, 0x06, 0xe4e4); + rtl8168_mdio_write(tp, 0x06, 0x14e5); + rtl8168_mdio_write(tp, 0x06, 0xe415); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x5cae); + rtl8168_mdio_write(tp, 0x06, 0x0bac); + rtl8168_mdio_write(tp, 0x06, 0x3e02); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x8602); + rtl8168_mdio_write(tp, 0x06, 0x82b0); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2605); + rtl8168_mdio_write(tp, 0x06, 0x0221); + rtl8168_mdio_write(tp, 0x06, 0xf3f7); + rtl8168_mdio_write(tp, 0x06, 0x28e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xad21); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x22f8); + rtl8168_mdio_write(tp, 0x06, 0xf729); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2405); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xebf7); + rtl8168_mdio_write(tp, 0x06, 0x2ae5); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x2134); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2109); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x2eac); + rtl8168_mdio_write(tp, 0x06, 0x2003); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0x52e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x09e0); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x8337); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2608); + rtl8168_mdio_write(tp, 0x06, 0xe085); + rtl8168_mdio_write(tp, 0x06, 0xd2ad); + rtl8168_mdio_write(tp, 0x06, 0x2502); + rtl8168_mdio_write(tp, 0x06, 0xf628); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x210a); + rtl8168_mdio_write(tp, 0x06, 0xe086); + rtl8168_mdio_write(tp, 0x06, 0x0af6); + rtl8168_mdio_write(tp, 0x06, 0x27a0); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0xf629); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2408); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xedad); + rtl8168_mdio_write(tp, 0x06, 0x2002); + rtl8168_mdio_write(tp, 0x06, 0xf62a); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x2ea1); + rtl8168_mdio_write(tp, 0x06, 0x0003); + rtl8168_mdio_write(tp, 0x06, 0x0221); + rtl8168_mdio_write(tp, 0x06, 0x11fc); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x8aed); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8aec); + rtl8168_mdio_write(tp, 0x06, 0x0004); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x3ae0); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xeb58); + rtl8168_mdio_write(tp, 0x06, 0xf8d1); + rtl8168_mdio_write(tp, 0x06, 0x01e4); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0xebe0); + rtl8168_mdio_write(tp, 0x06, 0xe07c); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x7d5c); + rtl8168_mdio_write(tp, 0x06, 0x00ff); + rtl8168_mdio_write(tp, 0x06, 0x3c00); + rtl8168_mdio_write(tp, 0x06, 0x1eab); + rtl8168_mdio_write(tp, 0x06, 0x1ce0); + rtl8168_mdio_write(tp, 0x06, 0xe04c); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x4d58); + rtl8168_mdio_write(tp, 0x06, 0xc1e4); + rtl8168_mdio_write(tp, 0x06, 0xe04c); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0x4de0); + rtl8168_mdio_write(tp, 0x06, 0xe0ee); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0x3ce4); + rtl8168_mdio_write(tp, 0x06, 0xe0ee); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0xeffc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2412); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0xeee1); + rtl8168_mdio_write(tp, 0x06, 0xe0ef); + rtl8168_mdio_write(tp, 0x06, 0x59c3); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0xeee5); + rtl8168_mdio_write(tp, 0x06, 0xe0ef); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xed01); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac25); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x8363); + rtl8168_mdio_write(tp, 0x06, 0xae03); + rtl8168_mdio_write(tp, 0x06, 0x0225); + rtl8168_mdio_write(tp, 0x06, 0x16fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfae0); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0xa000); + rtl8168_mdio_write(tp, 0x06, 0x19e0); + rtl8168_mdio_write(tp, 0x06, 0x860b); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x331b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x04aa); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x06ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0xe602); + rtl8168_mdio_write(tp, 0x06, 0x241e); + rtl8168_mdio_write(tp, 0x06, 0xae14); + rtl8168_mdio_write(tp, 0x06, 0xa001); + rtl8168_mdio_write(tp, 0x06, 0x1402); + rtl8168_mdio_write(tp, 0x06, 0x2426); + rtl8168_mdio_write(tp, 0x06, 0xbf26); + rtl8168_mdio_write(tp, 0x06, 0x6d02); + rtl8168_mdio_write(tp, 0x06, 0x2eb0); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0b00); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0a02); + rtl8168_mdio_write(tp, 0x06, 0xaf84); + rtl8168_mdio_write(tp, 0x06, 0x3ca0); + rtl8168_mdio_write(tp, 0x06, 0x0252); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0400); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0500); + rtl8168_mdio_write(tp, 0x06, 0xe086); + rtl8168_mdio_write(tp, 0x06, 0x0be1); + rtl8168_mdio_write(tp, 0x06, 0x8b32); + rtl8168_mdio_write(tp, 0x06, 0x1b10); + rtl8168_mdio_write(tp, 0x06, 0x9e04); + rtl8168_mdio_write(tp, 0x06, 0xaa02); + rtl8168_mdio_write(tp, 0x06, 0xaecb); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0b00); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x3ae2); + rtl8168_mdio_write(tp, 0x06, 0x8604); + rtl8168_mdio_write(tp, 0x06, 0xe386); + rtl8168_mdio_write(tp, 0x06, 0x05ef); + rtl8168_mdio_write(tp, 0x06, 0x65e2); + rtl8168_mdio_write(tp, 0x06, 0x8606); + rtl8168_mdio_write(tp, 0x06, 0xe386); + rtl8168_mdio_write(tp, 0x06, 0x071b); + rtl8168_mdio_write(tp, 0x06, 0x56aa); + rtl8168_mdio_write(tp, 0x06, 0x0eef); + rtl8168_mdio_write(tp, 0x06, 0x56e6); + rtl8168_mdio_write(tp, 0x06, 0x8606); + rtl8168_mdio_write(tp, 0x06, 0xe786); + rtl8168_mdio_write(tp, 0x06, 0x07e2); + rtl8168_mdio_write(tp, 0x06, 0x8609); + rtl8168_mdio_write(tp, 0x06, 0xe686); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8609); + rtl8168_mdio_write(tp, 0x06, 0xa000); + rtl8168_mdio_write(tp, 0x06, 0x07ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x03af); + rtl8168_mdio_write(tp, 0x06, 0x8369); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x2426); + rtl8168_mdio_write(tp, 0x06, 0xae48); + rtl8168_mdio_write(tp, 0x06, 0xa003); + rtl8168_mdio_write(tp, 0x06, 0x21e0); + rtl8168_mdio_write(tp, 0x06, 0x8608); + rtl8168_mdio_write(tp, 0x06, 0xe186); + rtl8168_mdio_write(tp, 0x06, 0x091b); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x0caa); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x249d); + rtl8168_mdio_write(tp, 0x06, 0xaee7); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x8eae); + rtl8168_mdio_write(tp, 0x06, 0xe2ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x860b); + rtl8168_mdio_write(tp, 0x06, 0x00af); + rtl8168_mdio_write(tp, 0x06, 0x8369); + rtl8168_mdio_write(tp, 0x06, 0xa004); + rtl8168_mdio_write(tp, 0x06, 0x15e0); + rtl8168_mdio_write(tp, 0x06, 0x860b); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x341b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x05aa); + rtl8168_mdio_write(tp, 0x06, 0x03af); + rtl8168_mdio_write(tp, 0x06, 0x8383); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0a05); + rtl8168_mdio_write(tp, 0x06, 0xae0c); + rtl8168_mdio_write(tp, 0x06, 0xa005); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x0702); + rtl8168_mdio_write(tp, 0x06, 0x2309); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0a00); + rtl8168_mdio_write(tp, 0x06, 0xfeef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfbe0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x22e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x23e2); + rtl8168_mdio_write(tp, 0x06, 0xe036); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0x375a); + rtl8168_mdio_write(tp, 0x06, 0xc40d); + rtl8168_mdio_write(tp, 0x06, 0x0158); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x20e3); + rtl8168_mdio_write(tp, 0x06, 0x8ae7); + rtl8168_mdio_write(tp, 0x06, 0xac31); + rtl8168_mdio_write(tp, 0x06, 0x60ac); + rtl8168_mdio_write(tp, 0x06, 0x3a08); + rtl8168_mdio_write(tp, 0x06, 0xac3e); + rtl8168_mdio_write(tp, 0x06, 0x26ae); + rtl8168_mdio_write(tp, 0x06, 0x67af); + rtl8168_mdio_write(tp, 0x06, 0x84db); + rtl8168_mdio_write(tp, 0x06, 0xad37); + rtl8168_mdio_write(tp, 0x06, 0x61e0); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xe91b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x51d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x863b); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50ee); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x43ad); + rtl8168_mdio_write(tp, 0x06, 0x3627); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xeee1); + rtl8168_mdio_write(tp, 0x06, 0x8aef); + rtl8168_mdio_write(tp, 0x06, 0xef74); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xeae1); + rtl8168_mdio_write(tp, 0x06, 0x8aeb); + rtl8168_mdio_write(tp, 0x06, 0x1b74); + rtl8168_mdio_write(tp, 0x06, 0x9e2e); + rtl8168_mdio_write(tp, 0x06, 0x14e4); + rtl8168_mdio_write(tp, 0x06, 0x8aea); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xebef); + rtl8168_mdio_write(tp, 0x06, 0x74e0); + rtl8168_mdio_write(tp, 0x06, 0x8aee); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xef1b); + rtl8168_mdio_write(tp, 0x06, 0x479e); + rtl8168_mdio_write(tp, 0x06, 0x0fae); + rtl8168_mdio_write(tp, 0x06, 0x19ee); + rtl8168_mdio_write(tp, 0x06, 0x8aea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8aeb); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x0fac); + rtl8168_mdio_write(tp, 0x06, 0x390c); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x3b02); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe800); + rtl8168_mdio_write(tp, 0x06, 0xe68a); + rtl8168_mdio_write(tp, 0x06, 0xe7ff); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xc4e1); + rtl8168_mdio_write(tp, 0x06, 0x8b6e); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e24); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x6ead); + rtl8168_mdio_write(tp, 0x06, 0x2218); + rtl8168_mdio_write(tp, 0x06, 0xac27); + rtl8168_mdio_write(tp, 0x06, 0x0dac); + rtl8168_mdio_write(tp, 0x06, 0x2605); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x8fae); + rtl8168_mdio_write(tp, 0x06, 0x1302); + rtl8168_mdio_write(tp, 0x06, 0x03c8); + rtl8168_mdio_write(tp, 0x06, 0xae0e); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0xe102); + rtl8168_mdio_write(tp, 0x06, 0x8520); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x8f02); + rtl8168_mdio_write(tp, 0x06, 0x8566); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x82ad); + rtl8168_mdio_write(tp, 0x06, 0x2737); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4402); + rtl8168_mdio_write(tp, 0x06, 0x2f23); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x2ed1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8647); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50bf); + rtl8168_mdio_write(tp, 0x06, 0x8641); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x23e5); + rtl8168_mdio_write(tp, 0x06, 0x8af0); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x22e1); + rtl8168_mdio_write(tp, 0x06, 0xe023); + rtl8168_mdio_write(tp, 0x06, 0xac2e); + rtl8168_mdio_write(tp, 0x06, 0x04d1); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0x02d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8641); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50d1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8644); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4702); + rtl8168_mdio_write(tp, 0x06, 0x2f23); + rtl8168_mdio_write(tp, 0x06, 0xad28); + rtl8168_mdio_write(tp, 0x06, 0x19d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8644); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50e1); + rtl8168_mdio_write(tp, 0x06, 0x8af0); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4102); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4702); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xfee1); + rtl8168_mdio_write(tp, 0x06, 0xe2ff); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x63e0); + rtl8168_mdio_write(tp, 0x06, 0xe038); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x39ad); + rtl8168_mdio_write(tp, 0x06, 0x2f10); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xf726); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xae0e); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e1); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xf728); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e5); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xf72b); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xd07d); + rtl8168_mdio_write(tp, 0x06, 0xb0fe); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xf62b); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xf626); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e1); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xf628); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e5); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xae20); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0xa725); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x1de5); + rtl8168_mdio_write(tp, 0x06, 0x0a2c); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x6de5); + rtl8168_mdio_write(tp, 0x06, 0x0a1d); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x1ce5); + rtl8168_mdio_write(tp, 0x06, 0x0a2d); + rtl8168_mdio_write(tp, 0x06, 0xa755); + rtl8168_mdio_write(tp, 0x06, 0x00e2); + rtl8168_mdio_write(tp, 0x06, 0x3488); + rtl8168_mdio_write(tp, 0x06, 0xe200); + rtl8168_mdio_write(tp, 0x06, 0xcce2); + rtl8168_mdio_write(tp, 0x06, 0x0055); + rtl8168_mdio_write(tp, 0x06, 0xe020); + rtl8168_mdio_write(tp, 0x06, 0x55e2); + rtl8168_mdio_write(tp, 0x06, 0xd600); + rtl8168_mdio_write(tp, 0x06, 0xe24a); + gphy_val = rtl8168_mdio_read(tp, 0x01); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x01, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2179); + rtl8168_mdio_write(tp, 0x1f, 0x0001); + rtl8168_mdio_write(tp, 0x10, 0xf274); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0042); + rtl8168_mdio_write(tp, 0x15, 0x0f00); + rtl8168_mdio_write(tp, 0x15, 0x0f00); + rtl8168_mdio_write(tp, 0x16, 0x7408); + rtl8168_mdio_write(tp, 0x15, 0x0e00); + rtl8168_mdio_write(tp, 0x15, 0x0f00); + rtl8168_mdio_write(tp, 0x15, 0x0f01); + rtl8168_mdio_write(tp, 0x16, 0x4000); + rtl8168_mdio_write(tp, 0x15, 0x0e01); + rtl8168_mdio_write(tp, 0x15, 0x0f01); + rtl8168_mdio_write(tp, 0x15, 0x0f02); + rtl8168_mdio_write(tp, 0x16, 0x9400); + rtl8168_mdio_write(tp, 0x15, 0x0e02); + rtl8168_mdio_write(tp, 0x15, 0x0f02); + rtl8168_mdio_write(tp, 0x15, 0x0f03); + rtl8168_mdio_write(tp, 0x16, 0x7408); + rtl8168_mdio_write(tp, 0x15, 0x0e03); + rtl8168_mdio_write(tp, 0x15, 0x0f03); + rtl8168_mdio_write(tp, 0x15, 0x0f04); + rtl8168_mdio_write(tp, 0x16, 0x4008); + rtl8168_mdio_write(tp, 0x15, 0x0e04); + rtl8168_mdio_write(tp, 0x15, 0x0f04); + rtl8168_mdio_write(tp, 0x15, 0x0f05); + rtl8168_mdio_write(tp, 0x16, 0x9400); + rtl8168_mdio_write(tp, 0x15, 0x0e05); + rtl8168_mdio_write(tp, 0x15, 0x0f05); + rtl8168_mdio_write(tp, 0x15, 0x0f06); + rtl8168_mdio_write(tp, 0x16, 0x0803); + rtl8168_mdio_write(tp, 0x15, 0x0e06); + rtl8168_mdio_write(tp, 0x15, 0x0f06); + rtl8168_mdio_write(tp, 0x15, 0x0d00); + rtl8168_mdio_write(tp, 0x15, 0x0100); + rtl8168_mdio_write(tp, 0x1f, 0x0001); + rtl8168_mdio_write(tp, 0x10, 0xf074); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2149); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~(BIT_2); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val |= BIT_14; + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1e, 0x0020); + gphy_val = rtl8168_mdio_read(tp, 0x1b); + gphy_val |= BIT_7; + rtl8168_mdio_write(tp, 0x1b, gphy_val); + rtl8168_mdio_write(tp, 0x1e, 0x0041); + rtl8168_mdio_write(tp, 0x15, 0x0e02); + rtl8168_mdio_write(tp, 0x1e, 0x0028); + gphy_val = rtl8168_mdio_read(tp, 0x19); + gphy_val |= BIT_15; + rtl8168_mdio_write(tp, 0x19, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } else { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x1800); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x17, 0x0117); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + rtl8168_mdio_write(tp, 0x1B, 0x5000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x4104); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1E); + gphy_val &= 0x03FF; + if (gphy_val==0x000C) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x07); + if ((gphy_val & BIT_5) == 0) + break; + } + gphy_val = rtl8168_mdio_read(tp, 0x07); + if (gphy_val & BIT_5) { + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x00a1); + rtl8168_mdio_write(tp, 0x17, 0x1000); + rtl8168_mdio_write(tp, 0x17, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2000); + rtl8168_mdio_write(tp, 0x1e, 0x002f); + rtl8168_mdio_write(tp, 0x18, 0x9bfb); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x07, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x08); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x08, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x000e); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x0010); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x0018); + rtl8168_mdio_write(tp, 0x19, 0x4801); + rtl8168_mdio_write(tp, 0x15, 0x0019); + rtl8168_mdio_write(tp, 0x19, 0x6801); + rtl8168_mdio_write(tp, 0x15, 0x001a); + rtl8168_mdio_write(tp, 0x19, 0x66a1); + rtl8168_mdio_write(tp, 0x15, 0x001f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0020); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0021); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0022); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0023); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0024); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0025); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0026); + rtl8168_mdio_write(tp, 0x19, 0x40ea); + rtl8168_mdio_write(tp, 0x15, 0x0027); + rtl8168_mdio_write(tp, 0x19, 0x4503); + rtl8168_mdio_write(tp, 0x15, 0x0028); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0029); + rtl8168_mdio_write(tp, 0x19, 0xa631); + rtl8168_mdio_write(tp, 0x15, 0x002a); + rtl8168_mdio_write(tp, 0x19, 0x9717); + rtl8168_mdio_write(tp, 0x15, 0x002b); + rtl8168_mdio_write(tp, 0x19, 0x302c); + rtl8168_mdio_write(tp, 0x15, 0x002c); + rtl8168_mdio_write(tp, 0x19, 0x4802); + rtl8168_mdio_write(tp, 0x15, 0x002d); + rtl8168_mdio_write(tp, 0x19, 0x58da); + rtl8168_mdio_write(tp, 0x15, 0x002e); + rtl8168_mdio_write(tp, 0x19, 0x400d); + rtl8168_mdio_write(tp, 0x15, 0x002f); + rtl8168_mdio_write(tp, 0x19, 0x4488); + rtl8168_mdio_write(tp, 0x15, 0x0030); + rtl8168_mdio_write(tp, 0x19, 0x9e00); + rtl8168_mdio_write(tp, 0x15, 0x0031); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0032); + rtl8168_mdio_write(tp, 0x19, 0x6481); + rtl8168_mdio_write(tp, 0x15, 0x0033); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0034); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0035); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0036); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0037); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0038); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0039); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x003a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x003b); + rtl8168_mdio_write(tp, 0x19, 0x63e8); + rtl8168_mdio_write(tp, 0x15, 0x003c); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x003d); + rtl8168_mdio_write(tp, 0x19, 0x59d4); + rtl8168_mdio_write(tp, 0x15, 0x003e); + rtl8168_mdio_write(tp, 0x19, 0x63f8); + rtl8168_mdio_write(tp, 0x15, 0x0040); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0041); + rtl8168_mdio_write(tp, 0x19, 0x30de); + rtl8168_mdio_write(tp, 0x15, 0x0044); + rtl8168_mdio_write(tp, 0x19, 0x480f); + rtl8168_mdio_write(tp, 0x15, 0x0045); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x0046); + rtl8168_mdio_write(tp, 0x19, 0x6680); + rtl8168_mdio_write(tp, 0x15, 0x0047); + rtl8168_mdio_write(tp, 0x19, 0x7c10); + rtl8168_mdio_write(tp, 0x15, 0x0048); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0049); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004f); + rtl8168_mdio_write(tp, 0x19, 0x40ea); + rtl8168_mdio_write(tp, 0x15, 0x0050); + rtl8168_mdio_write(tp, 0x19, 0x4503); + rtl8168_mdio_write(tp, 0x15, 0x0051); + rtl8168_mdio_write(tp, 0x19, 0x58ca); + rtl8168_mdio_write(tp, 0x15, 0x0052); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x0053); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x0054); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x0055); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0056); + rtl8168_mdio_write(tp, 0x19, 0x3000); + rtl8168_mdio_write(tp, 0x15, 0x00a1); + rtl8168_mdio_write(tp, 0x19, 0x3044); + rtl8168_mdio_write(tp, 0x15, 0x00ab); + rtl8168_mdio_write(tp, 0x19, 0x5820); + rtl8168_mdio_write(tp, 0x15, 0x00ac); + rtl8168_mdio_write(tp, 0x19, 0x5e04); + rtl8168_mdio_write(tp, 0x15, 0x00ad); + rtl8168_mdio_write(tp, 0x19, 0xb60c); + rtl8168_mdio_write(tp, 0x15, 0x00af); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x00b2); + rtl8168_mdio_write(tp, 0x19, 0x30b9); + rtl8168_mdio_write(tp, 0x15, 0x00b9); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x00ba); + rtl8168_mdio_write(tp, 0x19, 0x480b); + rtl8168_mdio_write(tp, 0x15, 0x00bb); + rtl8168_mdio_write(tp, 0x19, 0x5e00); + rtl8168_mdio_write(tp, 0x15, 0x00bc); + rtl8168_mdio_write(tp, 0x19, 0x405f); + rtl8168_mdio_write(tp, 0x15, 0x00bd); + rtl8168_mdio_write(tp, 0x19, 0x4448); + rtl8168_mdio_write(tp, 0x15, 0x00be); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x00bf); + rtl8168_mdio_write(tp, 0x19, 0x4468); + rtl8168_mdio_write(tp, 0x15, 0x00c0); + rtl8168_mdio_write(tp, 0x19, 0x9c02); + rtl8168_mdio_write(tp, 0x15, 0x00c1); + rtl8168_mdio_write(tp, 0x19, 0x58a0); + rtl8168_mdio_write(tp, 0x15, 0x00c2); + rtl8168_mdio_write(tp, 0x19, 0xb605); + rtl8168_mdio_write(tp, 0x15, 0x00c3); + rtl8168_mdio_write(tp, 0x19, 0xc0d3); + rtl8168_mdio_write(tp, 0x15, 0x00c4); + rtl8168_mdio_write(tp, 0x19, 0x00e6); + rtl8168_mdio_write(tp, 0x15, 0x00c5); + rtl8168_mdio_write(tp, 0x19, 0xdaec); + rtl8168_mdio_write(tp, 0x15, 0x00c6); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00c7); + rtl8168_mdio_write(tp, 0x19, 0x9df9); + rtl8168_mdio_write(tp, 0x15, 0x0112); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0113); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0114); + rtl8168_mdio_write(tp, 0x19, 0x63f0); + rtl8168_mdio_write(tp, 0x15, 0x0115); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0116); + rtl8168_mdio_write(tp, 0x19, 0x4418); + rtl8168_mdio_write(tp, 0x15, 0x0117); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x15, 0x0118); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0119); + rtl8168_mdio_write(tp, 0x19, 0x64e1); + rtl8168_mdio_write(tp, 0x15, 0x011a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0150); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0151); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0152); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0153); + rtl8168_mdio_write(tp, 0x19, 0x4540); + rtl8168_mdio_write(tp, 0x15, 0x0154); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0155); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x15, 0x0156); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0157); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0158); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0159); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x015a); + rtl8168_mdio_write(tp, 0x19, 0x30fe); + rtl8168_mdio_write(tp, 0x15, 0x029c); + rtl8168_mdio_write(tp, 0x19, 0x0070); + rtl8168_mdio_write(tp, 0x15, 0x02b2); + rtl8168_mdio_write(tp, 0x19, 0x005a); + rtl8168_mdio_write(tp, 0x15, 0x02bd); + rtl8168_mdio_write(tp, 0x19, 0xa522); + rtl8168_mdio_write(tp, 0x15, 0x02ce); + rtl8168_mdio_write(tp, 0x19, 0xb63e); + rtl8168_mdio_write(tp, 0x15, 0x02d9); + rtl8168_mdio_write(tp, 0x19, 0x32df); + rtl8168_mdio_write(tp, 0x15, 0x02df); + rtl8168_mdio_write(tp, 0x19, 0x4500); + rtl8168_mdio_write(tp, 0x15, 0x02f4); + rtl8168_mdio_write(tp, 0x19, 0xb618); + rtl8168_mdio_write(tp, 0x15, 0x02fb); + rtl8168_mdio_write(tp, 0x19, 0xb900); + rtl8168_mdio_write(tp, 0x15, 0x02fc); + rtl8168_mdio_write(tp, 0x19, 0x49b5); + rtl8168_mdio_write(tp, 0x15, 0x02fd); + rtl8168_mdio_write(tp, 0x19, 0x6812); + rtl8168_mdio_write(tp, 0x15, 0x02fe); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x02ff); + rtl8168_mdio_write(tp, 0x19, 0x9900); + rtl8168_mdio_write(tp, 0x15, 0x0300); + rtl8168_mdio_write(tp, 0x19, 0x64a0); + rtl8168_mdio_write(tp, 0x15, 0x0301); + rtl8168_mdio_write(tp, 0x19, 0x3316); + rtl8168_mdio_write(tp, 0x15, 0x0308); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030c); + rtl8168_mdio_write(tp, 0x19, 0x3000); + rtl8168_mdio_write(tp, 0x15, 0x0312); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0313); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0314); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0315); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0316); + rtl8168_mdio_write(tp, 0x19, 0x49b5); + rtl8168_mdio_write(tp, 0x15, 0x0317); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x0318); + rtl8168_mdio_write(tp, 0x19, 0x4d00); + rtl8168_mdio_write(tp, 0x15, 0x0319); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x031a); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x031b); + rtl8168_mdio_write(tp, 0x19, 0x4925); + rtl8168_mdio_write(tp, 0x15, 0x031c); + rtl8168_mdio_write(tp, 0x19, 0x403b); + rtl8168_mdio_write(tp, 0x15, 0x031d); + rtl8168_mdio_write(tp, 0x19, 0xa602); + rtl8168_mdio_write(tp, 0x15, 0x031e); + rtl8168_mdio_write(tp, 0x19, 0x402f); + rtl8168_mdio_write(tp, 0x15, 0x031f); + rtl8168_mdio_write(tp, 0x19, 0x4484); + rtl8168_mdio_write(tp, 0x15, 0x0320); + rtl8168_mdio_write(tp, 0x19, 0x40c8); + rtl8168_mdio_write(tp, 0x15, 0x0321); + rtl8168_mdio_write(tp, 0x19, 0x44c4); + rtl8168_mdio_write(tp, 0x15, 0x0322); + rtl8168_mdio_write(tp, 0x19, 0x404f); + rtl8168_mdio_write(tp, 0x15, 0x0323); + rtl8168_mdio_write(tp, 0x19, 0x44c8); + rtl8168_mdio_write(tp, 0x15, 0x0324); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0325); + rtl8168_mdio_write(tp, 0x19, 0x00e7); + rtl8168_mdio_write(tp, 0x15, 0x0326); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0327); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x0328); + rtl8168_mdio_write(tp, 0x19, 0x4d48); + rtl8168_mdio_write(tp, 0x15, 0x0329); + rtl8168_mdio_write(tp, 0x19, 0x332b); + rtl8168_mdio_write(tp, 0x15, 0x032a); + rtl8168_mdio_write(tp, 0x19, 0x4d40); + rtl8168_mdio_write(tp, 0x15, 0x032c); + rtl8168_mdio_write(tp, 0x19, 0x00f8); + rtl8168_mdio_write(tp, 0x15, 0x032d); + rtl8168_mdio_write(tp, 0x19, 0x82b2); + rtl8168_mdio_write(tp, 0x15, 0x032f); + rtl8168_mdio_write(tp, 0x19, 0x00b0); + rtl8168_mdio_write(tp, 0x15, 0x0332); + rtl8168_mdio_write(tp, 0x19, 0x91f2); + rtl8168_mdio_write(tp, 0x15, 0x033f); + rtl8168_mdio_write(tp, 0x19, 0xb6cd); + rtl8168_mdio_write(tp, 0x15, 0x0340); + rtl8168_mdio_write(tp, 0x19, 0x9e01); + rtl8168_mdio_write(tp, 0x15, 0x0341); + rtl8168_mdio_write(tp, 0x19, 0xd11d); + rtl8168_mdio_write(tp, 0x15, 0x0342); + rtl8168_mdio_write(tp, 0x19, 0x009d); + rtl8168_mdio_write(tp, 0x15, 0x0343); + rtl8168_mdio_write(tp, 0x19, 0xbb1c); + rtl8168_mdio_write(tp, 0x15, 0x0344); + rtl8168_mdio_write(tp, 0x19, 0x8102); + rtl8168_mdio_write(tp, 0x15, 0x0345); + rtl8168_mdio_write(tp, 0x19, 0x3348); + rtl8168_mdio_write(tp, 0x15, 0x0346); + rtl8168_mdio_write(tp, 0x19, 0xa231); + rtl8168_mdio_write(tp, 0x15, 0x0347); + rtl8168_mdio_write(tp, 0x19, 0x335b); + rtl8168_mdio_write(tp, 0x15, 0x0348); + rtl8168_mdio_write(tp, 0x19, 0x91f7); + rtl8168_mdio_write(tp, 0x15, 0x0349); + rtl8168_mdio_write(tp, 0x19, 0xc218); + rtl8168_mdio_write(tp, 0x15, 0x034a); + rtl8168_mdio_write(tp, 0x19, 0x00f5); + rtl8168_mdio_write(tp, 0x15, 0x034b); + rtl8168_mdio_write(tp, 0x19, 0x335b); + rtl8168_mdio_write(tp, 0x15, 0x034c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x034d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x034e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x034f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0350); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x035b); + rtl8168_mdio_write(tp, 0x19, 0xa23c); + rtl8168_mdio_write(tp, 0x15, 0x035c); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x035d); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x035e); + rtl8168_mdio_write(tp, 0x19, 0x3397); + rtl8168_mdio_write(tp, 0x15, 0x0363); + rtl8168_mdio_write(tp, 0x19, 0xb6a9); + rtl8168_mdio_write(tp, 0x15, 0x0366); + rtl8168_mdio_write(tp, 0x19, 0x00f5); + rtl8168_mdio_write(tp, 0x15, 0x0382); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0388); + rtl8168_mdio_write(tp, 0x19, 0x0084); + rtl8168_mdio_write(tp, 0x15, 0x0389); + rtl8168_mdio_write(tp, 0x19, 0xdd17); + rtl8168_mdio_write(tp, 0x15, 0x038a); + rtl8168_mdio_write(tp, 0x19, 0x000b); + rtl8168_mdio_write(tp, 0x15, 0x038b); + rtl8168_mdio_write(tp, 0x19, 0xa10a); + rtl8168_mdio_write(tp, 0x15, 0x038c); + rtl8168_mdio_write(tp, 0x19, 0x337e); + rtl8168_mdio_write(tp, 0x15, 0x038d); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x038e); + rtl8168_mdio_write(tp, 0x19, 0xa107); + rtl8168_mdio_write(tp, 0x15, 0x038f); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x0390); + rtl8168_mdio_write(tp, 0x19, 0xc017); + rtl8168_mdio_write(tp, 0x15, 0x0391); + rtl8168_mdio_write(tp, 0x19, 0x0004); + rtl8168_mdio_write(tp, 0x15, 0x0392); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0393); + rtl8168_mdio_write(tp, 0x19, 0x00f4); + rtl8168_mdio_write(tp, 0x15, 0x0397); + rtl8168_mdio_write(tp, 0x19, 0x4098); + rtl8168_mdio_write(tp, 0x15, 0x0398); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x0399); + rtl8168_mdio_write(tp, 0x19, 0x55bf); + rtl8168_mdio_write(tp, 0x15, 0x039a); + rtl8168_mdio_write(tp, 0x19, 0x4bb9); + rtl8168_mdio_write(tp, 0x15, 0x039b); + rtl8168_mdio_write(tp, 0x19, 0x6810); + rtl8168_mdio_write(tp, 0x15, 0x039c); + rtl8168_mdio_write(tp, 0x19, 0x4b29); + rtl8168_mdio_write(tp, 0x15, 0x039d); + rtl8168_mdio_write(tp, 0x19, 0x4041); + rtl8168_mdio_write(tp, 0x15, 0x039e); + rtl8168_mdio_write(tp, 0x19, 0x442a); + rtl8168_mdio_write(tp, 0x15, 0x039f); + rtl8168_mdio_write(tp, 0x19, 0x4029); + rtl8168_mdio_write(tp, 0x15, 0x03aa); + rtl8168_mdio_write(tp, 0x19, 0x33b8); + rtl8168_mdio_write(tp, 0x15, 0x03b6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b8); + rtl8168_mdio_write(tp, 0x19, 0x543f); + rtl8168_mdio_write(tp, 0x15, 0x03b9); + rtl8168_mdio_write(tp, 0x19, 0x499a); + rtl8168_mdio_write(tp, 0x15, 0x03ba); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x03bb); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03bc); + rtl8168_mdio_write(tp, 0x19, 0x490a); + rtl8168_mdio_write(tp, 0x15, 0x03bd); + rtl8168_mdio_write(tp, 0x19, 0x405e); + rtl8168_mdio_write(tp, 0x15, 0x03c2); + rtl8168_mdio_write(tp, 0x19, 0x9a03); + rtl8168_mdio_write(tp, 0x15, 0x03c4); + rtl8168_mdio_write(tp, 0x19, 0x0015); + rtl8168_mdio_write(tp, 0x15, 0x03c5); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x03c8); + rtl8168_mdio_write(tp, 0x19, 0x9cf7); + rtl8168_mdio_write(tp, 0x15, 0x03c9); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03ca); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03cb); + rtl8168_mdio_write(tp, 0x19, 0x4458); + rtl8168_mdio_write(tp, 0x15, 0x03cd); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03ce); + rtl8168_mdio_write(tp, 0x19, 0x33bf); + rtl8168_mdio_write(tp, 0x15, 0x03cf); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d0); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d1); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03d9); + rtl8168_mdio_write(tp, 0x19, 0x49bb); + rtl8168_mdio_write(tp, 0x15, 0x03da); + rtl8168_mdio_write(tp, 0x19, 0x4478); + rtl8168_mdio_write(tp, 0x15, 0x03db); + rtl8168_mdio_write(tp, 0x19, 0x492b); + rtl8168_mdio_write(tp, 0x15, 0x03dc); + rtl8168_mdio_write(tp, 0x19, 0x7c01); + rtl8168_mdio_write(tp, 0x15, 0x03dd); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x03de); + rtl8168_mdio_write(tp, 0x19, 0xbd1a); + rtl8168_mdio_write(tp, 0x15, 0x03df); + rtl8168_mdio_write(tp, 0x19, 0xc428); + rtl8168_mdio_write(tp, 0x15, 0x03e0); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x03e1); + rtl8168_mdio_write(tp, 0x19, 0x9cfd); + rtl8168_mdio_write(tp, 0x15, 0x03e2); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03e3); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03e4); + rtl8168_mdio_write(tp, 0x19, 0x4458); + rtl8168_mdio_write(tp, 0x15, 0x03e5); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03e6); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03e7); + rtl8168_mdio_write(tp, 0x19, 0x33de); + rtl8168_mdio_write(tp, 0x15, 0x03e8); + rtl8168_mdio_write(tp, 0x19, 0xc218); + rtl8168_mdio_write(tp, 0x15, 0x03e9); + rtl8168_mdio_write(tp, 0x19, 0x0002); + rtl8168_mdio_write(tp, 0x15, 0x03ea); + rtl8168_mdio_write(tp, 0x19, 0x32df); + rtl8168_mdio_write(tp, 0x15, 0x03eb); + rtl8168_mdio_write(tp, 0x19, 0x3316); + rtl8168_mdio_write(tp, 0x15, 0x03ec); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ed); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ee); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ef); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03f7); + rtl8168_mdio_write(tp, 0x19, 0x330c); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x0200); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x9002); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x0202); + rtl8168_mdio_write(tp, 0x06, 0x3402); + rtl8168_mdio_write(tp, 0x06, 0x027f); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0xa602); + rtl8168_mdio_write(tp, 0x06, 0x80bf); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe600); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xee03); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xefb8); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe902); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8285); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8520); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8701); + rtl8168_mdio_write(tp, 0x06, 0xd481); + rtl8168_mdio_write(tp, 0x06, 0x35e4); + rtl8168_mdio_write(tp, 0x06, 0x8b94); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x95bf); + rtl8168_mdio_write(tp, 0x06, 0x8b88); + rtl8168_mdio_write(tp, 0x06, 0xec00); + rtl8168_mdio_write(tp, 0x06, 0x19a9); + rtl8168_mdio_write(tp, 0x06, 0x8b90); + rtl8168_mdio_write(tp, 0x06, 0xf9ee); + rtl8168_mdio_write(tp, 0x06, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x41f7); + rtl8168_mdio_write(tp, 0x06, 0x2ff6); + rtl8168_mdio_write(tp, 0x06, 0x28e4); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xe5e1); + rtl8168_mdio_write(tp, 0x06, 0x4104); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x0dee); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x82f4); + rtl8168_mdio_write(tp, 0x06, 0x021f); + rtl8168_mdio_write(tp, 0x06, 0x4102); + rtl8168_mdio_write(tp, 0x06, 0x2812); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x10ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x139d); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xd602); + rtl8168_mdio_write(tp, 0x06, 0x1f99); + rtl8168_mdio_write(tp, 0x06, 0x0227); + rtl8168_mdio_write(tp, 0x06, 0xeafc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2014); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x8104); + rtl8168_mdio_write(tp, 0x06, 0x021b); + rtl8168_mdio_write(tp, 0x06, 0xf402); + rtl8168_mdio_write(tp, 0x06, 0x2c9c); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x7902); + rtl8168_mdio_write(tp, 0x06, 0x8443); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x11f6); + rtl8168_mdio_write(tp, 0x06, 0x22e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x022c); + rtl8168_mdio_write(tp, 0x06, 0x4602); + rtl8168_mdio_write(tp, 0x06, 0x2ac5); + rtl8168_mdio_write(tp, 0x06, 0x0229); + rtl8168_mdio_write(tp, 0x06, 0x2002); + rtl8168_mdio_write(tp, 0x06, 0x2b91); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x11f6); + rtl8168_mdio_write(tp, 0x06, 0x25e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0xe202); + rtl8168_mdio_write(tp, 0x06, 0x043a); + rtl8168_mdio_write(tp, 0x06, 0x021a); + rtl8168_mdio_write(tp, 0x06, 0x5902); + rtl8168_mdio_write(tp, 0x06, 0x2bfc); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe001); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x1fd1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8638); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50e0); + rtl8168_mdio_write(tp, 0x06, 0xe020); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x21ad); + rtl8168_mdio_write(tp, 0x06, 0x200e); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xbf3d); + rtl8168_mdio_write(tp, 0x06, 0x3902); + rtl8168_mdio_write(tp, 0x06, 0x2eb0); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x0402); + rtl8168_mdio_write(tp, 0x06, 0x8591); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x3c05); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xfee1); + rtl8168_mdio_write(tp, 0x06, 0xe2ff); + rtl8168_mdio_write(tp, 0x06, 0xad2d); + rtl8168_mdio_write(tp, 0x06, 0x1ae0); + rtl8168_mdio_write(tp, 0x06, 0xe14e); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x4fac); + rtl8168_mdio_write(tp, 0x06, 0x2d22); + rtl8168_mdio_write(tp, 0x06, 0xf603); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x36f7); + rtl8168_mdio_write(tp, 0x06, 0x03f7); + rtl8168_mdio_write(tp, 0x06, 0x06bf); + rtl8168_mdio_write(tp, 0x06, 0x8622); + rtl8168_mdio_write(tp, 0x06, 0x022e); + rtl8168_mdio_write(tp, 0x06, 0xb0ae); + rtl8168_mdio_write(tp, 0x06, 0x11e0); + rtl8168_mdio_write(tp, 0x06, 0xe14e); + rtl8168_mdio_write(tp, 0x06, 0xe1e1); + rtl8168_mdio_write(tp, 0x06, 0x4fad); + rtl8168_mdio_write(tp, 0x06, 0x2d08); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x2d02); + rtl8168_mdio_write(tp, 0x06, 0x2eb0); + rtl8168_mdio_write(tp, 0x06, 0xf606); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x204c); + rtl8168_mdio_write(tp, 0x06, 0xd200); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x0058); + rtl8168_mdio_write(tp, 0x06, 0x010c); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0x5810); + rtl8168_mdio_write(tp, 0x06, 0x1e20); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x3658); + rtl8168_mdio_write(tp, 0x06, 0x031e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xe01e); + rtl8168_mdio_write(tp, 0x06, 0x20e0); + rtl8168_mdio_write(tp, 0x06, 0x8ae6); + rtl8168_mdio_write(tp, 0x06, 0x1f02); + rtl8168_mdio_write(tp, 0x06, 0x9e22); + rtl8168_mdio_write(tp, 0x06, 0xe68a); + rtl8168_mdio_write(tp, 0x06, 0xe6ad); + rtl8168_mdio_write(tp, 0x06, 0x3214); + rtl8168_mdio_write(tp, 0x06, 0xad34); + rtl8168_mdio_write(tp, 0x06, 0x11ef); + rtl8168_mdio_write(tp, 0x06, 0x0258); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x07ad); + rtl8168_mdio_write(tp, 0x06, 0x3508); + rtl8168_mdio_write(tp, 0x06, 0x5ac0); + rtl8168_mdio_write(tp, 0x06, 0x9f04); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xae02); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x3e02); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfae0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac26); + rtl8168_mdio_write(tp, 0x06, 0x0ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xac24); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x6bee); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xe0eb); + rtl8168_mdio_write(tp, 0x06, 0x00e2); + rtl8168_mdio_write(tp, 0x06, 0xe07c); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0x7da5); + rtl8168_mdio_write(tp, 0x06, 0x1111); + rtl8168_mdio_write(tp, 0x06, 0x15d2); + rtl8168_mdio_write(tp, 0x06, 0x60d6); + rtl8168_mdio_write(tp, 0x06, 0x6666); + rtl8168_mdio_write(tp, 0x06, 0x0207); + rtl8168_mdio_write(tp, 0x06, 0xf9d2); + rtl8168_mdio_write(tp, 0x06, 0xa0d6); + rtl8168_mdio_write(tp, 0x06, 0xaaaa); + rtl8168_mdio_write(tp, 0x06, 0x0207); + rtl8168_mdio_write(tp, 0x06, 0xf902); + rtl8168_mdio_write(tp, 0x06, 0x825c); + rtl8168_mdio_write(tp, 0x06, 0xae44); + rtl8168_mdio_write(tp, 0x06, 0xa566); + rtl8168_mdio_write(tp, 0x06, 0x6602); + rtl8168_mdio_write(tp, 0x06, 0xae38); + rtl8168_mdio_write(tp, 0x06, 0xa5aa); + rtl8168_mdio_write(tp, 0x06, 0xaa02); + rtl8168_mdio_write(tp, 0x06, 0xae32); + rtl8168_mdio_write(tp, 0x06, 0xeee0); + rtl8168_mdio_write(tp, 0x06, 0xea04); + rtl8168_mdio_write(tp, 0x06, 0xeee0); + rtl8168_mdio_write(tp, 0x06, 0xeb06); + rtl8168_mdio_write(tp, 0x06, 0xe2e0); + rtl8168_mdio_write(tp, 0x06, 0x7ce3); + rtl8168_mdio_write(tp, 0x06, 0xe07d); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x38e1); + rtl8168_mdio_write(tp, 0x06, 0xe039); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x21ad); + rtl8168_mdio_write(tp, 0x06, 0x3f13); + rtl8168_mdio_write(tp, 0x06, 0xe0e4); + rtl8168_mdio_write(tp, 0x06, 0x14e1); + rtl8168_mdio_write(tp, 0x06, 0xe415); + rtl8168_mdio_write(tp, 0x06, 0x6880); + rtl8168_mdio_write(tp, 0x06, 0xe4e4); + rtl8168_mdio_write(tp, 0x06, 0x14e5); + rtl8168_mdio_write(tp, 0x06, 0xe415); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x5cae); + rtl8168_mdio_write(tp, 0x06, 0x0bac); + rtl8168_mdio_write(tp, 0x06, 0x3e02); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x8602); + rtl8168_mdio_write(tp, 0x06, 0x82b0); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2605); + rtl8168_mdio_write(tp, 0x06, 0x0221); + rtl8168_mdio_write(tp, 0x06, 0xf3f7); + rtl8168_mdio_write(tp, 0x06, 0x28e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xad21); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x22f8); + rtl8168_mdio_write(tp, 0x06, 0xf729); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2405); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xebf7); + rtl8168_mdio_write(tp, 0x06, 0x2ae5); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x2134); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2109); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x2eac); + rtl8168_mdio_write(tp, 0x06, 0x2003); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0x52e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x09e0); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x8337); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8b2e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2608); + rtl8168_mdio_write(tp, 0x06, 0xe085); + rtl8168_mdio_write(tp, 0x06, 0xd2ad); + rtl8168_mdio_write(tp, 0x06, 0x2502); + rtl8168_mdio_write(tp, 0x06, 0xf628); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x210a); + rtl8168_mdio_write(tp, 0x06, 0xe086); + rtl8168_mdio_write(tp, 0x06, 0x0af6); + rtl8168_mdio_write(tp, 0x06, 0x27a0); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0xf629); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2408); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xedad); + rtl8168_mdio_write(tp, 0x06, 0x2002); + rtl8168_mdio_write(tp, 0x06, 0xf62a); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x2ea1); + rtl8168_mdio_write(tp, 0x06, 0x0003); + rtl8168_mdio_write(tp, 0x06, 0x0221); + rtl8168_mdio_write(tp, 0x06, 0x11fc); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x8aed); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8aec); + rtl8168_mdio_write(tp, 0x06, 0x0004); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x3ae0); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xeb58); + rtl8168_mdio_write(tp, 0x06, 0xf8d1); + rtl8168_mdio_write(tp, 0x06, 0x01e4); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0xebe0); + rtl8168_mdio_write(tp, 0x06, 0xe07c); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x7d5c); + rtl8168_mdio_write(tp, 0x06, 0x00ff); + rtl8168_mdio_write(tp, 0x06, 0x3c00); + rtl8168_mdio_write(tp, 0x06, 0x1eab); + rtl8168_mdio_write(tp, 0x06, 0x1ce0); + rtl8168_mdio_write(tp, 0x06, 0xe04c); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x4d58); + rtl8168_mdio_write(tp, 0x06, 0xc1e4); + rtl8168_mdio_write(tp, 0x06, 0xe04c); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0x4de0); + rtl8168_mdio_write(tp, 0x06, 0xe0ee); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0x3ce4); + rtl8168_mdio_write(tp, 0x06, 0xe0ee); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0xeffc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2412); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0xeee1); + rtl8168_mdio_write(tp, 0x06, 0xe0ef); + rtl8168_mdio_write(tp, 0x06, 0x59c3); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0xeee5); + rtl8168_mdio_write(tp, 0x06, 0xe0ef); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xed01); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac25); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x8363); + rtl8168_mdio_write(tp, 0x06, 0xae03); + rtl8168_mdio_write(tp, 0x06, 0x0225); + rtl8168_mdio_write(tp, 0x06, 0x16fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfae0); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0xa000); + rtl8168_mdio_write(tp, 0x06, 0x19e0); + rtl8168_mdio_write(tp, 0x06, 0x860b); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x331b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x04aa); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x06ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0xe602); + rtl8168_mdio_write(tp, 0x06, 0x241e); + rtl8168_mdio_write(tp, 0x06, 0xae14); + rtl8168_mdio_write(tp, 0x06, 0xa001); + rtl8168_mdio_write(tp, 0x06, 0x1402); + rtl8168_mdio_write(tp, 0x06, 0x2426); + rtl8168_mdio_write(tp, 0x06, 0xbf26); + rtl8168_mdio_write(tp, 0x06, 0x6d02); + rtl8168_mdio_write(tp, 0x06, 0x2eb0); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0b00); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0a02); + rtl8168_mdio_write(tp, 0x06, 0xaf84); + rtl8168_mdio_write(tp, 0x06, 0x3ca0); + rtl8168_mdio_write(tp, 0x06, 0x0252); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0400); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0500); + rtl8168_mdio_write(tp, 0x06, 0xe086); + rtl8168_mdio_write(tp, 0x06, 0x0be1); + rtl8168_mdio_write(tp, 0x06, 0x8b32); + rtl8168_mdio_write(tp, 0x06, 0x1b10); + rtl8168_mdio_write(tp, 0x06, 0x9e04); + rtl8168_mdio_write(tp, 0x06, 0xaa02); + rtl8168_mdio_write(tp, 0x06, 0xaecb); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0b00); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x3ae2); + rtl8168_mdio_write(tp, 0x06, 0x8604); + rtl8168_mdio_write(tp, 0x06, 0xe386); + rtl8168_mdio_write(tp, 0x06, 0x05ef); + rtl8168_mdio_write(tp, 0x06, 0x65e2); + rtl8168_mdio_write(tp, 0x06, 0x8606); + rtl8168_mdio_write(tp, 0x06, 0xe386); + rtl8168_mdio_write(tp, 0x06, 0x071b); + rtl8168_mdio_write(tp, 0x06, 0x56aa); + rtl8168_mdio_write(tp, 0x06, 0x0eef); + rtl8168_mdio_write(tp, 0x06, 0x56e6); + rtl8168_mdio_write(tp, 0x06, 0x8606); + rtl8168_mdio_write(tp, 0x06, 0xe786); + rtl8168_mdio_write(tp, 0x06, 0x07e2); + rtl8168_mdio_write(tp, 0x06, 0x8609); + rtl8168_mdio_write(tp, 0x06, 0xe686); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8609); + rtl8168_mdio_write(tp, 0x06, 0xa000); + rtl8168_mdio_write(tp, 0x06, 0x07ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x03af); + rtl8168_mdio_write(tp, 0x06, 0x8369); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x2426); + rtl8168_mdio_write(tp, 0x06, 0xae48); + rtl8168_mdio_write(tp, 0x06, 0xa003); + rtl8168_mdio_write(tp, 0x06, 0x21e0); + rtl8168_mdio_write(tp, 0x06, 0x8608); + rtl8168_mdio_write(tp, 0x06, 0xe186); + rtl8168_mdio_write(tp, 0x06, 0x091b); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x0caa); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x249d); + rtl8168_mdio_write(tp, 0x06, 0xaee7); + rtl8168_mdio_write(tp, 0x06, 0x0224); + rtl8168_mdio_write(tp, 0x06, 0x8eae); + rtl8168_mdio_write(tp, 0x06, 0xe2ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x860b); + rtl8168_mdio_write(tp, 0x06, 0x00af); + rtl8168_mdio_write(tp, 0x06, 0x8369); + rtl8168_mdio_write(tp, 0x06, 0xa004); + rtl8168_mdio_write(tp, 0x06, 0x15e0); + rtl8168_mdio_write(tp, 0x06, 0x860b); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x341b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x05aa); + rtl8168_mdio_write(tp, 0x06, 0x03af); + rtl8168_mdio_write(tp, 0x06, 0x8383); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0a05); + rtl8168_mdio_write(tp, 0x06, 0xae0c); + rtl8168_mdio_write(tp, 0x06, 0xa005); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x0702); + rtl8168_mdio_write(tp, 0x06, 0x2309); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0a00); + rtl8168_mdio_write(tp, 0x06, 0xfeef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfbe0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x22e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x23e2); + rtl8168_mdio_write(tp, 0x06, 0xe036); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0x375a); + rtl8168_mdio_write(tp, 0x06, 0xc40d); + rtl8168_mdio_write(tp, 0x06, 0x0158); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x20e3); + rtl8168_mdio_write(tp, 0x06, 0x8ae7); + rtl8168_mdio_write(tp, 0x06, 0xac31); + rtl8168_mdio_write(tp, 0x06, 0x60ac); + rtl8168_mdio_write(tp, 0x06, 0x3a08); + rtl8168_mdio_write(tp, 0x06, 0xac3e); + rtl8168_mdio_write(tp, 0x06, 0x26ae); + rtl8168_mdio_write(tp, 0x06, 0x67af); + rtl8168_mdio_write(tp, 0x06, 0x84db); + rtl8168_mdio_write(tp, 0x06, 0xad37); + rtl8168_mdio_write(tp, 0x06, 0x61e0); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xe91b); + rtl8168_mdio_write(tp, 0x06, 0x109e); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x51d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x863b); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50ee); + rtl8168_mdio_write(tp, 0x06, 0x8ae8); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x43ad); + rtl8168_mdio_write(tp, 0x06, 0x3627); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xeee1); + rtl8168_mdio_write(tp, 0x06, 0x8aef); + rtl8168_mdio_write(tp, 0x06, 0xef74); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xeae1); + rtl8168_mdio_write(tp, 0x06, 0x8aeb); + rtl8168_mdio_write(tp, 0x06, 0x1b74); + rtl8168_mdio_write(tp, 0x06, 0x9e2e); + rtl8168_mdio_write(tp, 0x06, 0x14e4); + rtl8168_mdio_write(tp, 0x06, 0x8aea); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xebef); + rtl8168_mdio_write(tp, 0x06, 0x74e0); + rtl8168_mdio_write(tp, 0x06, 0x8aee); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xef1b); + rtl8168_mdio_write(tp, 0x06, 0x479e); + rtl8168_mdio_write(tp, 0x06, 0x0fae); + rtl8168_mdio_write(tp, 0x06, 0x19ee); + rtl8168_mdio_write(tp, 0x06, 0x8aea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8aeb); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0x0fac); + rtl8168_mdio_write(tp, 0x06, 0x390c); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x3b02); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xe800); + rtl8168_mdio_write(tp, 0x06, 0xe68a); + rtl8168_mdio_write(tp, 0x06, 0xe7ff); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xc4e1); + rtl8168_mdio_write(tp, 0x06, 0x8b6e); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e24); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x6ead); + rtl8168_mdio_write(tp, 0x06, 0x2218); + rtl8168_mdio_write(tp, 0x06, 0xac27); + rtl8168_mdio_write(tp, 0x06, 0x0dac); + rtl8168_mdio_write(tp, 0x06, 0x2605); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x8fae); + rtl8168_mdio_write(tp, 0x06, 0x1302); + rtl8168_mdio_write(tp, 0x06, 0x03c8); + rtl8168_mdio_write(tp, 0x06, 0xae0e); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0xe102); + rtl8168_mdio_write(tp, 0x06, 0x8520); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x8f02); + rtl8168_mdio_write(tp, 0x06, 0x8566); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x82ad); + rtl8168_mdio_write(tp, 0x06, 0x2737); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4402); + rtl8168_mdio_write(tp, 0x06, 0x2f23); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x2ed1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8647); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50bf); + rtl8168_mdio_write(tp, 0x06, 0x8641); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x23e5); + rtl8168_mdio_write(tp, 0x06, 0x8af0); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x22e1); + rtl8168_mdio_write(tp, 0x06, 0xe023); + rtl8168_mdio_write(tp, 0x06, 0xac2e); + rtl8168_mdio_write(tp, 0x06, 0x04d1); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0x02d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8641); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50d1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8644); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4702); + rtl8168_mdio_write(tp, 0x06, 0x2f23); + rtl8168_mdio_write(tp, 0x06, 0xad28); + rtl8168_mdio_write(tp, 0x06, 0x19d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8644); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x50e1); + rtl8168_mdio_write(tp, 0x06, 0x8af0); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4102); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x4702); + rtl8168_mdio_write(tp, 0x06, 0x2f50); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xfee1); + rtl8168_mdio_write(tp, 0x06, 0xe2ff); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x63e0); + rtl8168_mdio_write(tp, 0x06, 0xe038); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x39ad); + rtl8168_mdio_write(tp, 0x06, 0x2f10); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xf726); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xae0e); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e1); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xf728); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e5); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xf72b); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xd07d); + rtl8168_mdio_write(tp, 0x06, 0xb0fe); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xf62b); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xf626); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe035); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e1); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xf628); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0xd6e5); + rtl8168_mdio_write(tp, 0x06, 0xe2d7); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xae20); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0xa725); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x1de5); + rtl8168_mdio_write(tp, 0x06, 0x0a2c); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x6de5); + rtl8168_mdio_write(tp, 0x06, 0x0a1d); + rtl8168_mdio_write(tp, 0x06, 0xe50a); + rtl8168_mdio_write(tp, 0x06, 0x1ce5); + rtl8168_mdio_write(tp, 0x06, 0x0a2d); + rtl8168_mdio_write(tp, 0x06, 0xa755); + rtl8168_mdio_write(tp, 0x06, 0x00e2); + rtl8168_mdio_write(tp, 0x06, 0x3488); + rtl8168_mdio_write(tp, 0x06, 0xe200); + rtl8168_mdio_write(tp, 0x06, 0xcce2); + rtl8168_mdio_write(tp, 0x06, 0x0055); + rtl8168_mdio_write(tp, 0x06, 0xe020); + rtl8168_mdio_write(tp, 0x06, 0x55e2); + rtl8168_mdio_write(tp, 0x06, 0xd600); + rtl8168_mdio_write(tp, 0x06, 0xe24a); + gphy_val = rtl8168_mdio_read(tp, 0x01); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x01, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~(BIT_2); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } +} + +static void +rtl8168_set_phy_mcu_8168evl_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val,i; + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x1800); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val &= ~(BIT_12); + rtl8168_mdio_write(tp, 0x15, gphy_val); + mdelay(20); + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + if ((gphy_val & BIT_11) == 0x0000) { + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x17, gphy_val); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x17); + if (gphy_val & BIT_11) + break; + } + } + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + rtl8168_mdio_write(tp, 0x1B, 0x5000); + rtl8168_mdio_write(tp, 0x1E, 0x002d); + rtl8168_mdio_write(tp, 0x19, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1E); + if ((gphy_val & 0x03FF) == 0x0014) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x07); + if ((gphy_val & BIT_5) == 0) + break; + } + gphy_val = rtl8168_mdio_read(tp, 0x07); + if (gphy_val & BIT_5) { + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x00a1); + rtl8168_mdio_write(tp, 0x17, 0x1000); + rtl8168_mdio_write(tp, 0x17, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2000); + rtl8168_mdio_write(tp, 0x1e, 0x002f); + rtl8168_mdio_write(tp, 0x18, 0x9bfb); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x07, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + gphy_val = rtl8168_mdio_read(tp, 0x00); + gphy_val &= ~(BIT_7); + rtl8168_mdio_write(tp, 0x00, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x0000); + rtl8168_mdio_write(tp, 0x19, 0x407d); + rtl8168_mdio_write(tp, 0x15, 0x0001); + rtl8168_mdio_write(tp, 0x19, 0x440f); + rtl8168_mdio_write(tp, 0x15, 0x0002); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0003); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x0004); + rtl8168_mdio_write(tp, 0x19, 0xc4d5); + rtl8168_mdio_write(tp, 0x15, 0x0005); + rtl8168_mdio_write(tp, 0x19, 0x00ff); + rtl8168_mdio_write(tp, 0x15, 0x0006); + rtl8168_mdio_write(tp, 0x19, 0x74f0); + rtl8168_mdio_write(tp, 0x15, 0x0007); + rtl8168_mdio_write(tp, 0x19, 0x4880); + rtl8168_mdio_write(tp, 0x15, 0x0008); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x0009); + rtl8168_mdio_write(tp, 0x19, 0x4800); + rtl8168_mdio_write(tp, 0x15, 0x000a); + rtl8168_mdio_write(tp, 0x19, 0x5000); + rtl8168_mdio_write(tp, 0x15, 0x000b); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x000c); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x000d); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x15, 0x000e); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x000f); + rtl8168_mdio_write(tp, 0x19, 0x7010); + rtl8168_mdio_write(tp, 0x15, 0x0010); + rtl8168_mdio_write(tp, 0x19, 0x6804); + rtl8168_mdio_write(tp, 0x15, 0x0011); + rtl8168_mdio_write(tp, 0x19, 0x64a0); + rtl8168_mdio_write(tp, 0x15, 0x0012); + rtl8168_mdio_write(tp, 0x19, 0x63da); + rtl8168_mdio_write(tp, 0x15, 0x0013); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x0014); + rtl8168_mdio_write(tp, 0x19, 0x6f05); + rtl8168_mdio_write(tp, 0x15, 0x0015); + rtl8168_mdio_write(tp, 0x19, 0x5420); + rtl8168_mdio_write(tp, 0x15, 0x0016); + rtl8168_mdio_write(tp, 0x19, 0x58ce); + rtl8168_mdio_write(tp, 0x15, 0x0017); + rtl8168_mdio_write(tp, 0x19, 0x5cf3); + rtl8168_mdio_write(tp, 0x15, 0x0018); + rtl8168_mdio_write(tp, 0x19, 0xb600); + rtl8168_mdio_write(tp, 0x15, 0x0019); + rtl8168_mdio_write(tp, 0x19, 0xc659); + rtl8168_mdio_write(tp, 0x15, 0x001a); + rtl8168_mdio_write(tp, 0x19, 0x0018); + rtl8168_mdio_write(tp, 0x15, 0x001b); + rtl8168_mdio_write(tp, 0x19, 0xc403); + rtl8168_mdio_write(tp, 0x15, 0x001c); + rtl8168_mdio_write(tp, 0x19, 0x0016); + rtl8168_mdio_write(tp, 0x15, 0x001d); + rtl8168_mdio_write(tp, 0x19, 0xaa05); + rtl8168_mdio_write(tp, 0x15, 0x001e); + rtl8168_mdio_write(tp, 0x19, 0xc503); + rtl8168_mdio_write(tp, 0x15, 0x001f); + rtl8168_mdio_write(tp, 0x19, 0x0003); + rtl8168_mdio_write(tp, 0x15, 0x0020); + rtl8168_mdio_write(tp, 0x19, 0x89f8); + rtl8168_mdio_write(tp, 0x15, 0x0021); + rtl8168_mdio_write(tp, 0x19, 0x32ae); + rtl8168_mdio_write(tp, 0x15, 0x0022); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0023); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x0024); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0025); + rtl8168_mdio_write(tp, 0x19, 0x6801); + rtl8168_mdio_write(tp, 0x15, 0x0026); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x0027); + rtl8168_mdio_write(tp, 0x19, 0xa300); + rtl8168_mdio_write(tp, 0x15, 0x0028); + rtl8168_mdio_write(tp, 0x19, 0x64a0); + rtl8168_mdio_write(tp, 0x15, 0x0029); + rtl8168_mdio_write(tp, 0x19, 0x76f0); + rtl8168_mdio_write(tp, 0x15, 0x002a); + rtl8168_mdio_write(tp, 0x19, 0x7670); + rtl8168_mdio_write(tp, 0x15, 0x002b); + rtl8168_mdio_write(tp, 0x19, 0x7630); + rtl8168_mdio_write(tp, 0x15, 0x002c); + rtl8168_mdio_write(tp, 0x19, 0x31a6); + rtl8168_mdio_write(tp, 0x15, 0x002d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x002e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x002f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0030); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0031); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0032); + rtl8168_mdio_write(tp, 0x19, 0x4801); + rtl8168_mdio_write(tp, 0x15, 0x0033); + rtl8168_mdio_write(tp, 0x19, 0x6803); + rtl8168_mdio_write(tp, 0x15, 0x0034); + rtl8168_mdio_write(tp, 0x19, 0x66a1); + rtl8168_mdio_write(tp, 0x15, 0x0035); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0036); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x0037); + rtl8168_mdio_write(tp, 0x19, 0xa300); + rtl8168_mdio_write(tp, 0x15, 0x0038); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0039); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x003a); + rtl8168_mdio_write(tp, 0x19, 0x74f8); + rtl8168_mdio_write(tp, 0x15, 0x003b); + rtl8168_mdio_write(tp, 0x19, 0x63d0); + rtl8168_mdio_write(tp, 0x15, 0x003c); + rtl8168_mdio_write(tp, 0x19, 0x7ff0); + rtl8168_mdio_write(tp, 0x15, 0x003d); + rtl8168_mdio_write(tp, 0x19, 0x77f0); + rtl8168_mdio_write(tp, 0x15, 0x003e); + rtl8168_mdio_write(tp, 0x19, 0x7ff0); + rtl8168_mdio_write(tp, 0x15, 0x003f); + rtl8168_mdio_write(tp, 0x19, 0x7750); + rtl8168_mdio_write(tp, 0x15, 0x0040); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x0041); + rtl8168_mdio_write(tp, 0x19, 0x7cf0); + rtl8168_mdio_write(tp, 0x15, 0x0042); + rtl8168_mdio_write(tp, 0x19, 0x7708); + rtl8168_mdio_write(tp, 0x15, 0x0043); + rtl8168_mdio_write(tp, 0x19, 0xa654); + rtl8168_mdio_write(tp, 0x15, 0x0044); + rtl8168_mdio_write(tp, 0x19, 0x304a); + rtl8168_mdio_write(tp, 0x15, 0x0045); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0046); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0047); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0048); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0049); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x004a); + rtl8168_mdio_write(tp, 0x19, 0x4802); + rtl8168_mdio_write(tp, 0x15, 0x004b); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x004c); + rtl8168_mdio_write(tp, 0x19, 0x4440); + rtl8168_mdio_write(tp, 0x15, 0x004d); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x004e); + rtl8168_mdio_write(tp, 0x19, 0x6481); + rtl8168_mdio_write(tp, 0x15, 0x004f); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x15, 0x0050); + rtl8168_mdio_write(tp, 0x19, 0x63e8); + rtl8168_mdio_write(tp, 0x15, 0x0051); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x0052); + rtl8168_mdio_write(tp, 0x19, 0x5900); + rtl8168_mdio_write(tp, 0x15, 0x0053); + rtl8168_mdio_write(tp, 0x19, 0x63f8); + rtl8168_mdio_write(tp, 0x15, 0x0054); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0055); + rtl8168_mdio_write(tp, 0x19, 0x3116); + rtl8168_mdio_write(tp, 0x15, 0x0056); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0057); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0058); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0059); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x005a); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x005b); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x005c); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x005d); + rtl8168_mdio_write(tp, 0x19, 0x6000); + rtl8168_mdio_write(tp, 0x15, 0x005e); + rtl8168_mdio_write(tp, 0x19, 0x59ce); + rtl8168_mdio_write(tp, 0x15, 0x005f); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x0060); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x0061); + rtl8168_mdio_write(tp, 0x19, 0x72b0); + rtl8168_mdio_write(tp, 0x15, 0x0062); + rtl8168_mdio_write(tp, 0x19, 0x400e); + rtl8168_mdio_write(tp, 0x15, 0x0063); + rtl8168_mdio_write(tp, 0x19, 0x4440); + rtl8168_mdio_write(tp, 0x15, 0x0064); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x15, 0x0065); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x15, 0x0066); + rtl8168_mdio_write(tp, 0x19, 0x70b0); + rtl8168_mdio_write(tp, 0x15, 0x0067); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0068); + rtl8168_mdio_write(tp, 0x19, 0x6008); + rtl8168_mdio_write(tp, 0x15, 0x0069); + rtl8168_mdio_write(tp, 0x19, 0x7cf0); + rtl8168_mdio_write(tp, 0x15, 0x006a); + rtl8168_mdio_write(tp, 0x19, 0x7750); + rtl8168_mdio_write(tp, 0x15, 0x006b); + rtl8168_mdio_write(tp, 0x19, 0x4007); + rtl8168_mdio_write(tp, 0x15, 0x006c); + rtl8168_mdio_write(tp, 0x19, 0x4500); + rtl8168_mdio_write(tp, 0x15, 0x006d); + rtl8168_mdio_write(tp, 0x19, 0x4023); + rtl8168_mdio_write(tp, 0x15, 0x006e); + rtl8168_mdio_write(tp, 0x19, 0x4580); + rtl8168_mdio_write(tp, 0x15, 0x006f); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x0070); + rtl8168_mdio_write(tp, 0x19, 0xcd78); + rtl8168_mdio_write(tp, 0x15, 0x0071); + rtl8168_mdio_write(tp, 0x19, 0x0003); + rtl8168_mdio_write(tp, 0x15, 0x0072); + rtl8168_mdio_write(tp, 0x19, 0xbe02); + rtl8168_mdio_write(tp, 0x15, 0x0073); + rtl8168_mdio_write(tp, 0x19, 0x3070); + rtl8168_mdio_write(tp, 0x15, 0x0074); + rtl8168_mdio_write(tp, 0x19, 0x7cf0); + rtl8168_mdio_write(tp, 0x15, 0x0075); + rtl8168_mdio_write(tp, 0x19, 0x77f0); + rtl8168_mdio_write(tp, 0x15, 0x0076); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x0077); + rtl8168_mdio_write(tp, 0x19, 0x4007); + rtl8168_mdio_write(tp, 0x15, 0x0078); + rtl8168_mdio_write(tp, 0x19, 0x4500); + rtl8168_mdio_write(tp, 0x15, 0x0079); + rtl8168_mdio_write(tp, 0x19, 0x4023); + rtl8168_mdio_write(tp, 0x15, 0x007a); + rtl8168_mdio_write(tp, 0x19, 0x4580); + rtl8168_mdio_write(tp, 0x15, 0x007b); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x007c); + rtl8168_mdio_write(tp, 0x19, 0xce80); + rtl8168_mdio_write(tp, 0x15, 0x007d); + rtl8168_mdio_write(tp, 0x19, 0x0004); + rtl8168_mdio_write(tp, 0x15, 0x007e); + rtl8168_mdio_write(tp, 0x19, 0xce80); + rtl8168_mdio_write(tp, 0x15, 0x007f); + rtl8168_mdio_write(tp, 0x19, 0x0002); + rtl8168_mdio_write(tp, 0x15, 0x0080); + rtl8168_mdio_write(tp, 0x19, 0x307c); + rtl8168_mdio_write(tp, 0x15, 0x0081); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x0082); + rtl8168_mdio_write(tp, 0x19, 0x480f); + rtl8168_mdio_write(tp, 0x15, 0x0083); + rtl8168_mdio_write(tp, 0x19, 0x6802); + rtl8168_mdio_write(tp, 0x15, 0x0084); + rtl8168_mdio_write(tp, 0x19, 0x6680); + rtl8168_mdio_write(tp, 0x15, 0x0085); + rtl8168_mdio_write(tp, 0x19, 0x7c10); + rtl8168_mdio_write(tp, 0x15, 0x0086); + rtl8168_mdio_write(tp, 0x19, 0x6010); + rtl8168_mdio_write(tp, 0x15, 0x0087); + rtl8168_mdio_write(tp, 0x19, 0x400a); + rtl8168_mdio_write(tp, 0x15, 0x0088); + rtl8168_mdio_write(tp, 0x19, 0x4580); + rtl8168_mdio_write(tp, 0x15, 0x0089); + rtl8168_mdio_write(tp, 0x19, 0x9e00); + rtl8168_mdio_write(tp, 0x15, 0x008a); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x008b); + rtl8168_mdio_write(tp, 0x19, 0x5800); + rtl8168_mdio_write(tp, 0x15, 0x008c); + rtl8168_mdio_write(tp, 0x19, 0x63c8); + rtl8168_mdio_write(tp, 0x15, 0x008d); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x008e); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x008f); + rtl8168_mdio_write(tp, 0x19, 0x8300); + rtl8168_mdio_write(tp, 0x15, 0x0090); + rtl8168_mdio_write(tp, 0x19, 0x7ff0); + rtl8168_mdio_write(tp, 0x15, 0x0091); + rtl8168_mdio_write(tp, 0x19, 0x74f0); + rtl8168_mdio_write(tp, 0x15, 0x0092); + rtl8168_mdio_write(tp, 0x19, 0x3006); + rtl8168_mdio_write(tp, 0x15, 0x0093); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0094); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0095); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0096); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0097); + rtl8168_mdio_write(tp, 0x19, 0x4803); + rtl8168_mdio_write(tp, 0x15, 0x0098); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0099); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x009a); + rtl8168_mdio_write(tp, 0x19, 0xa203); + rtl8168_mdio_write(tp, 0x15, 0x009b); + rtl8168_mdio_write(tp, 0x19, 0x64b1); + rtl8168_mdio_write(tp, 0x15, 0x009c); + rtl8168_mdio_write(tp, 0x19, 0x309e); + rtl8168_mdio_write(tp, 0x15, 0x009d); + rtl8168_mdio_write(tp, 0x19, 0x64b3); + rtl8168_mdio_write(tp, 0x15, 0x009e); + rtl8168_mdio_write(tp, 0x19, 0x4030); + rtl8168_mdio_write(tp, 0x15, 0x009f); + rtl8168_mdio_write(tp, 0x19, 0x440e); + rtl8168_mdio_write(tp, 0x15, 0x00a0); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x00a1); + rtl8168_mdio_write(tp, 0x19, 0x4419); + rtl8168_mdio_write(tp, 0x15, 0x00a2); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x00a3); + rtl8168_mdio_write(tp, 0x19, 0xc520); + rtl8168_mdio_write(tp, 0x15, 0x00a4); + rtl8168_mdio_write(tp, 0x19, 0x000b); + rtl8168_mdio_write(tp, 0x15, 0x00a5); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x00a6); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x00a7); + rtl8168_mdio_write(tp, 0x19, 0x58a4); + rtl8168_mdio_write(tp, 0x15, 0x00a8); + rtl8168_mdio_write(tp, 0x19, 0x63da); + rtl8168_mdio_write(tp, 0x15, 0x00a9); + rtl8168_mdio_write(tp, 0x19, 0x5cb0); + rtl8168_mdio_write(tp, 0x15, 0x00aa); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x00ab); + rtl8168_mdio_write(tp, 0x19, 0x72b0); + rtl8168_mdio_write(tp, 0x15, 0x00ac); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x15, 0x00ad); + rtl8168_mdio_write(tp, 0x19, 0x70b0); + rtl8168_mdio_write(tp, 0x15, 0x00ae); + rtl8168_mdio_write(tp, 0x19, 0x30b8); + rtl8168_mdio_write(tp, 0x15, 0x00AF); + rtl8168_mdio_write(tp, 0x19, 0x4060); + rtl8168_mdio_write(tp, 0x15, 0x00B0); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x00B1); + rtl8168_mdio_write(tp, 0x19, 0x7e00); + rtl8168_mdio_write(tp, 0x15, 0x00B2); + rtl8168_mdio_write(tp, 0x19, 0x72B0); + rtl8168_mdio_write(tp, 0x15, 0x00B3); + rtl8168_mdio_write(tp, 0x19, 0x7F00); + rtl8168_mdio_write(tp, 0x15, 0x00B4); + rtl8168_mdio_write(tp, 0x19, 0x73B0); + rtl8168_mdio_write(tp, 0x15, 0x00b5); + rtl8168_mdio_write(tp, 0x19, 0x58a0); + rtl8168_mdio_write(tp, 0x15, 0x00b6); + rtl8168_mdio_write(tp, 0x19, 0x63d2); + rtl8168_mdio_write(tp, 0x15, 0x00b7); + rtl8168_mdio_write(tp, 0x19, 0x5c00); + rtl8168_mdio_write(tp, 0x15, 0x00b8); + rtl8168_mdio_write(tp, 0x19, 0x5780); + rtl8168_mdio_write(tp, 0x15, 0x00b9); + rtl8168_mdio_write(tp, 0x19, 0xb60d); + rtl8168_mdio_write(tp, 0x15, 0x00ba); + rtl8168_mdio_write(tp, 0x19, 0x9bff); + rtl8168_mdio_write(tp, 0x15, 0x00bb); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x00bc); + rtl8168_mdio_write(tp, 0x19, 0x6001); + rtl8168_mdio_write(tp, 0x15, 0x00bd); + rtl8168_mdio_write(tp, 0x19, 0xc020); + rtl8168_mdio_write(tp, 0x15, 0x00be); + rtl8168_mdio_write(tp, 0x19, 0x002b); + rtl8168_mdio_write(tp, 0x15, 0x00bf); + rtl8168_mdio_write(tp, 0x19, 0xc137); + rtl8168_mdio_write(tp, 0x15, 0x00c0); + rtl8168_mdio_write(tp, 0x19, 0x0006); + rtl8168_mdio_write(tp, 0x15, 0x00c1); + rtl8168_mdio_write(tp, 0x19, 0x9af8); + rtl8168_mdio_write(tp, 0x15, 0x00c2); + rtl8168_mdio_write(tp, 0x19, 0x30c6); + rtl8168_mdio_write(tp, 0x15, 0x00c3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00c4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00c5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00c6); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x00c7); + rtl8168_mdio_write(tp, 0x19, 0x70b0); + rtl8168_mdio_write(tp, 0x15, 0x00c8); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x00c9); + rtl8168_mdio_write(tp, 0x19, 0x4804); + rtl8168_mdio_write(tp, 0x15, 0x00ca); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x00cb); + rtl8168_mdio_write(tp, 0x19, 0x5c80); + rtl8168_mdio_write(tp, 0x15, 0x00cc); + rtl8168_mdio_write(tp, 0x19, 0x4010); + rtl8168_mdio_write(tp, 0x15, 0x00cd); + rtl8168_mdio_write(tp, 0x19, 0x4415); + rtl8168_mdio_write(tp, 0x15, 0x00ce); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x15, 0x00cf); + rtl8168_mdio_write(tp, 0x19, 0x7f00); + rtl8168_mdio_write(tp, 0x15, 0x00d0); + rtl8168_mdio_write(tp, 0x19, 0x70b0); + rtl8168_mdio_write(tp, 0x15, 0x00d1); + rtl8168_mdio_write(tp, 0x19, 0x3177); + rtl8168_mdio_write(tp, 0x15, 0x00d2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00d3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00d4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00d5); + rtl8168_mdio_write(tp, 0x19, 0x4808); + rtl8168_mdio_write(tp, 0x15, 0x00d6); + rtl8168_mdio_write(tp, 0x19, 0x4007); + rtl8168_mdio_write(tp, 0x15, 0x00d7); + rtl8168_mdio_write(tp, 0x19, 0x4420); + rtl8168_mdio_write(tp, 0x15, 0x00d8); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x00d9); + rtl8168_mdio_write(tp, 0x19, 0xb608); + rtl8168_mdio_write(tp, 0x15, 0x00da); + rtl8168_mdio_write(tp, 0x19, 0xbcbd); + rtl8168_mdio_write(tp, 0x15, 0x00db); + rtl8168_mdio_write(tp, 0x19, 0xc60b); + rtl8168_mdio_write(tp, 0x15, 0x00dc); + rtl8168_mdio_write(tp, 0x19, 0x00fd); + rtl8168_mdio_write(tp, 0x15, 0x00dd); + rtl8168_mdio_write(tp, 0x19, 0x30e1); + rtl8168_mdio_write(tp, 0x15, 0x00de); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00df); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00e0); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00e1); + rtl8168_mdio_write(tp, 0x19, 0x4809); + rtl8168_mdio_write(tp, 0x15, 0x00e2); + rtl8168_mdio_write(tp, 0x19, 0x7e40); + rtl8168_mdio_write(tp, 0x15, 0x00e3); + rtl8168_mdio_write(tp, 0x19, 0x5a40); + rtl8168_mdio_write(tp, 0x15, 0x00e4); + rtl8168_mdio_write(tp, 0x19, 0x305a); + rtl8168_mdio_write(tp, 0x15, 0x00e5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00e6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00e7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00e8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00e9); + rtl8168_mdio_write(tp, 0x19, 0x480a); + rtl8168_mdio_write(tp, 0x15, 0x00ea); + rtl8168_mdio_write(tp, 0x19, 0x5820); + rtl8168_mdio_write(tp, 0x15, 0x00eb); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x00ec); + rtl8168_mdio_write(tp, 0x19, 0xb60a); + rtl8168_mdio_write(tp, 0x15, 0x00ed); + rtl8168_mdio_write(tp, 0x19, 0xda07); + rtl8168_mdio_write(tp, 0x15, 0x00ee); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x00ef); + rtl8168_mdio_write(tp, 0x19, 0xc60b); + rtl8168_mdio_write(tp, 0x15, 0x00f0); + rtl8168_mdio_write(tp, 0x19, 0x00fc); + rtl8168_mdio_write(tp, 0x15, 0x00f1); + rtl8168_mdio_write(tp, 0x19, 0x30f6); + rtl8168_mdio_write(tp, 0x15, 0x00f2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00f3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00f4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00f5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x00f6); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x00f7); + rtl8168_mdio_write(tp, 0x19, 0x480b); + rtl8168_mdio_write(tp, 0x15, 0x00f8); + rtl8168_mdio_write(tp, 0x19, 0x6f03); + rtl8168_mdio_write(tp, 0x15, 0x00f9); + rtl8168_mdio_write(tp, 0x19, 0x405f); + rtl8168_mdio_write(tp, 0x15, 0x00fa); + rtl8168_mdio_write(tp, 0x19, 0x4448); + rtl8168_mdio_write(tp, 0x15, 0x00fb); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x00fc); + rtl8168_mdio_write(tp, 0x19, 0x4468); + rtl8168_mdio_write(tp, 0x15, 0x00fd); + rtl8168_mdio_write(tp, 0x19, 0x9c03); + rtl8168_mdio_write(tp, 0x15, 0x00fe); + rtl8168_mdio_write(tp, 0x19, 0x6f07); + rtl8168_mdio_write(tp, 0x15, 0x00ff); + rtl8168_mdio_write(tp, 0x19, 0x58a0); + rtl8168_mdio_write(tp, 0x15, 0x0100); + rtl8168_mdio_write(tp, 0x19, 0xd6d1); + rtl8168_mdio_write(tp, 0x15, 0x0101); + rtl8168_mdio_write(tp, 0x19, 0x0004); + rtl8168_mdio_write(tp, 0x15, 0x0102); + rtl8168_mdio_write(tp, 0x19, 0xc137); + rtl8168_mdio_write(tp, 0x15, 0x0103); + rtl8168_mdio_write(tp, 0x19, 0x0002); + rtl8168_mdio_write(tp, 0x15, 0x0104); + rtl8168_mdio_write(tp, 0x19, 0xa0e5); + rtl8168_mdio_write(tp, 0x15, 0x0105); + rtl8168_mdio_write(tp, 0x19, 0x9df8); + rtl8168_mdio_write(tp, 0x15, 0x0106); + rtl8168_mdio_write(tp, 0x19, 0x30c6); + rtl8168_mdio_write(tp, 0x15, 0x0107); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0108); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0109); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x010a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x010b); + rtl8168_mdio_write(tp, 0x19, 0x4808); + rtl8168_mdio_write(tp, 0x15, 0x010c); + rtl8168_mdio_write(tp, 0x19, 0xc32d); + rtl8168_mdio_write(tp, 0x15, 0x010d); + rtl8168_mdio_write(tp, 0x19, 0x0003); + rtl8168_mdio_write(tp, 0x15, 0x010e); + rtl8168_mdio_write(tp, 0x19, 0xc8b3); + rtl8168_mdio_write(tp, 0x15, 0x010f); + rtl8168_mdio_write(tp, 0x19, 0x00fc); + rtl8168_mdio_write(tp, 0x15, 0x0110); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x0111); + rtl8168_mdio_write(tp, 0x19, 0x3116); + rtl8168_mdio_write(tp, 0x15, 0x0112); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0113); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0114); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0115); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0116); + rtl8168_mdio_write(tp, 0x19, 0x4803); + rtl8168_mdio_write(tp, 0x15, 0x0117); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0118); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x0119); + rtl8168_mdio_write(tp, 0x19, 0x7c04); + rtl8168_mdio_write(tp, 0x15, 0x011a); + rtl8168_mdio_write(tp, 0x19, 0x6000); + rtl8168_mdio_write(tp, 0x15, 0x011b); + rtl8168_mdio_write(tp, 0x19, 0x5cf7); + rtl8168_mdio_write(tp, 0x15, 0x011c); + rtl8168_mdio_write(tp, 0x19, 0x7c2a); + rtl8168_mdio_write(tp, 0x15, 0x011d); + rtl8168_mdio_write(tp, 0x19, 0x5800); + rtl8168_mdio_write(tp, 0x15, 0x011e); + rtl8168_mdio_write(tp, 0x19, 0x5400); + rtl8168_mdio_write(tp, 0x15, 0x011f); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0120); + rtl8168_mdio_write(tp, 0x19, 0x74f0); + rtl8168_mdio_write(tp, 0x15, 0x0121); + rtl8168_mdio_write(tp, 0x19, 0x4019); + rtl8168_mdio_write(tp, 0x15, 0x0122); + rtl8168_mdio_write(tp, 0x19, 0x440d); + rtl8168_mdio_write(tp, 0x15, 0x0123); + rtl8168_mdio_write(tp, 0x19, 0xb6c1); + rtl8168_mdio_write(tp, 0x15, 0x0124); + rtl8168_mdio_write(tp, 0x19, 0xc05b); + rtl8168_mdio_write(tp, 0x15, 0x0125); + rtl8168_mdio_write(tp, 0x19, 0x00bf); + rtl8168_mdio_write(tp, 0x15, 0x0126); + rtl8168_mdio_write(tp, 0x19, 0xc025); + rtl8168_mdio_write(tp, 0x15, 0x0127); + rtl8168_mdio_write(tp, 0x19, 0x00bd); + rtl8168_mdio_write(tp, 0x15, 0x0128); + rtl8168_mdio_write(tp, 0x19, 0xc603); + rtl8168_mdio_write(tp, 0x15, 0x0129); + rtl8168_mdio_write(tp, 0x19, 0x00bb); + rtl8168_mdio_write(tp, 0x15, 0x012a); + rtl8168_mdio_write(tp, 0x19, 0x8805); + rtl8168_mdio_write(tp, 0x15, 0x012b); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x012c); + rtl8168_mdio_write(tp, 0x19, 0x4001); + rtl8168_mdio_write(tp, 0x15, 0x012d); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x012e); + rtl8168_mdio_write(tp, 0x19, 0xa3dd); + rtl8168_mdio_write(tp, 0x15, 0x012f); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0130); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x0131); + rtl8168_mdio_write(tp, 0x19, 0x8407); + rtl8168_mdio_write(tp, 0x15, 0x0132); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0133); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x0134); + rtl8168_mdio_write(tp, 0x19, 0xd9b8); + rtl8168_mdio_write(tp, 0x15, 0x0135); + rtl8168_mdio_write(tp, 0x19, 0x0003); + rtl8168_mdio_write(tp, 0x15, 0x0136); + rtl8168_mdio_write(tp, 0x19, 0xc240); + rtl8168_mdio_write(tp, 0x15, 0x0137); + rtl8168_mdio_write(tp, 0x19, 0x0015); + rtl8168_mdio_write(tp, 0x15, 0x0138); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0139); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x013a); + rtl8168_mdio_write(tp, 0x19, 0x9ae9); + rtl8168_mdio_write(tp, 0x15, 0x013b); + rtl8168_mdio_write(tp, 0x19, 0x3140); + rtl8168_mdio_write(tp, 0x15, 0x013c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x013d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x013e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x013f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0140); + rtl8168_mdio_write(tp, 0x19, 0x4807); + rtl8168_mdio_write(tp, 0x15, 0x0141); + rtl8168_mdio_write(tp, 0x19, 0x4004); + rtl8168_mdio_write(tp, 0x15, 0x0142); + rtl8168_mdio_write(tp, 0x19, 0x4410); + rtl8168_mdio_write(tp, 0x15, 0x0143); + rtl8168_mdio_write(tp, 0x19, 0x7c0c); + rtl8168_mdio_write(tp, 0x15, 0x0144); + rtl8168_mdio_write(tp, 0x19, 0x600c); + rtl8168_mdio_write(tp, 0x15, 0x0145); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x15, 0x0146); + rtl8168_mdio_write(tp, 0x19, 0xa68f); + rtl8168_mdio_write(tp, 0x15, 0x0147); + rtl8168_mdio_write(tp, 0x19, 0x3116); + rtl8168_mdio_write(tp, 0x15, 0x0148); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0149); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x014a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x014b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x014c); + rtl8168_mdio_write(tp, 0x19, 0x4804); + rtl8168_mdio_write(tp, 0x15, 0x014d); + rtl8168_mdio_write(tp, 0x19, 0x54c0); + rtl8168_mdio_write(tp, 0x15, 0x014e); + rtl8168_mdio_write(tp, 0x19, 0xb703); + rtl8168_mdio_write(tp, 0x15, 0x014f); + rtl8168_mdio_write(tp, 0x19, 0x5cff); + rtl8168_mdio_write(tp, 0x15, 0x0150); + rtl8168_mdio_write(tp, 0x19, 0x315f); + rtl8168_mdio_write(tp, 0x15, 0x0151); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0152); + rtl8168_mdio_write(tp, 0x19, 0x74f8); + rtl8168_mdio_write(tp, 0x15, 0x0153); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0154); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0155); + rtl8168_mdio_write(tp, 0x19, 0x6000); + rtl8168_mdio_write(tp, 0x15, 0x0156); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x0157); + rtl8168_mdio_write(tp, 0x19, 0x4418); + rtl8168_mdio_write(tp, 0x15, 0x0158); + rtl8168_mdio_write(tp, 0x19, 0x9b00); + rtl8168_mdio_write(tp, 0x15, 0x0159); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x015a); + rtl8168_mdio_write(tp, 0x19, 0x64e1); + rtl8168_mdio_write(tp, 0x15, 0x015b); + rtl8168_mdio_write(tp, 0x19, 0x7c20); + rtl8168_mdio_write(tp, 0x15, 0x015c); + rtl8168_mdio_write(tp, 0x19, 0x5820); + rtl8168_mdio_write(tp, 0x15, 0x015d); + rtl8168_mdio_write(tp, 0x19, 0x5ccf); + rtl8168_mdio_write(tp, 0x15, 0x015e); + rtl8168_mdio_write(tp, 0x19, 0x7050); + rtl8168_mdio_write(tp, 0x15, 0x015f); + rtl8168_mdio_write(tp, 0x19, 0xd9b8); + rtl8168_mdio_write(tp, 0x15, 0x0160); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x0161); + rtl8168_mdio_write(tp, 0x19, 0xdab1); + rtl8168_mdio_write(tp, 0x15, 0x0162); + rtl8168_mdio_write(tp, 0x19, 0x0015); + rtl8168_mdio_write(tp, 0x15, 0x0163); + rtl8168_mdio_write(tp, 0x19, 0xc244); + rtl8168_mdio_write(tp, 0x15, 0x0164); + rtl8168_mdio_write(tp, 0x19, 0x0013); + rtl8168_mdio_write(tp, 0x15, 0x0165); + rtl8168_mdio_write(tp, 0x19, 0xc021); + rtl8168_mdio_write(tp, 0x15, 0x0166); + rtl8168_mdio_write(tp, 0x19, 0x00f9); + rtl8168_mdio_write(tp, 0x15, 0x0167); + rtl8168_mdio_write(tp, 0x19, 0x3177); + rtl8168_mdio_write(tp, 0x15, 0x0168); + rtl8168_mdio_write(tp, 0x19, 0x5cf7); + rtl8168_mdio_write(tp, 0x15, 0x0169); + rtl8168_mdio_write(tp, 0x19, 0x4010); + rtl8168_mdio_write(tp, 0x15, 0x016a); + rtl8168_mdio_write(tp, 0x19, 0x4428); + rtl8168_mdio_write(tp, 0x15, 0x016b); + rtl8168_mdio_write(tp, 0x19, 0x9c00); + rtl8168_mdio_write(tp, 0x15, 0x016c); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x016d); + rtl8168_mdio_write(tp, 0x19, 0x6008); + rtl8168_mdio_write(tp, 0x15, 0x016e); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x016f); + rtl8168_mdio_write(tp, 0x19, 0x74f0); + rtl8168_mdio_write(tp, 0x15, 0x0170); + rtl8168_mdio_write(tp, 0x19, 0x6461); + rtl8168_mdio_write(tp, 0x15, 0x0171); + rtl8168_mdio_write(tp, 0x19, 0x6421); + rtl8168_mdio_write(tp, 0x15, 0x0172); + rtl8168_mdio_write(tp, 0x19, 0x64a1); + rtl8168_mdio_write(tp, 0x15, 0x0173); + rtl8168_mdio_write(tp, 0x19, 0x3116); + rtl8168_mdio_write(tp, 0x15, 0x0174); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0175); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0176); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0177); + rtl8168_mdio_write(tp, 0x19, 0x4805); + rtl8168_mdio_write(tp, 0x15, 0x0178); + rtl8168_mdio_write(tp, 0x19, 0xa103); + rtl8168_mdio_write(tp, 0x15, 0x0179); + rtl8168_mdio_write(tp, 0x19, 0x7c02); + rtl8168_mdio_write(tp, 0x15, 0x017a); + rtl8168_mdio_write(tp, 0x19, 0x6002); + rtl8168_mdio_write(tp, 0x15, 0x017b); + rtl8168_mdio_write(tp, 0x19, 0x7e00); + rtl8168_mdio_write(tp, 0x15, 0x017c); + rtl8168_mdio_write(tp, 0x19, 0x5400); + rtl8168_mdio_write(tp, 0x15, 0x017d); + rtl8168_mdio_write(tp, 0x19, 0x7c6b); + rtl8168_mdio_write(tp, 0x15, 0x017e); + rtl8168_mdio_write(tp, 0x19, 0x5c63); + rtl8168_mdio_write(tp, 0x15, 0x017f); + rtl8168_mdio_write(tp, 0x19, 0x407d); + rtl8168_mdio_write(tp, 0x15, 0x0180); + rtl8168_mdio_write(tp, 0x19, 0xa602); + rtl8168_mdio_write(tp, 0x15, 0x0181); + rtl8168_mdio_write(tp, 0x19, 0x4001); + rtl8168_mdio_write(tp, 0x15, 0x0182); + rtl8168_mdio_write(tp, 0x19, 0x4420); + rtl8168_mdio_write(tp, 0x15, 0x0183); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x0184); + rtl8168_mdio_write(tp, 0x19, 0x44a1); + rtl8168_mdio_write(tp, 0x15, 0x0185); + rtl8168_mdio_write(tp, 0x19, 0xd6e0); + rtl8168_mdio_write(tp, 0x15, 0x0186); + rtl8168_mdio_write(tp, 0x19, 0x0009); + rtl8168_mdio_write(tp, 0x15, 0x0187); + rtl8168_mdio_write(tp, 0x19, 0x9efe); + rtl8168_mdio_write(tp, 0x15, 0x0188); + rtl8168_mdio_write(tp, 0x19, 0x7c02); + rtl8168_mdio_write(tp, 0x15, 0x0189); + rtl8168_mdio_write(tp, 0x19, 0x6000); + rtl8168_mdio_write(tp, 0x15, 0x018a); + rtl8168_mdio_write(tp, 0x19, 0x9c00); + rtl8168_mdio_write(tp, 0x15, 0x018b); + rtl8168_mdio_write(tp, 0x19, 0x318f); + rtl8168_mdio_write(tp, 0x15, 0x018c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x018d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x018e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x018f); + rtl8168_mdio_write(tp, 0x19, 0x4806); + rtl8168_mdio_write(tp, 0x15, 0x0190); + rtl8168_mdio_write(tp, 0x19, 0x7c10); + rtl8168_mdio_write(tp, 0x15, 0x0191); + rtl8168_mdio_write(tp, 0x19, 0x5c10); + rtl8168_mdio_write(tp, 0x15, 0x0192); + rtl8168_mdio_write(tp, 0x19, 0x40fa); + rtl8168_mdio_write(tp, 0x15, 0x0193); + rtl8168_mdio_write(tp, 0x19, 0xa602); + rtl8168_mdio_write(tp, 0x15, 0x0194); + rtl8168_mdio_write(tp, 0x19, 0x4010); + rtl8168_mdio_write(tp, 0x15, 0x0195); + rtl8168_mdio_write(tp, 0x19, 0x4440); + rtl8168_mdio_write(tp, 0x15, 0x0196); + rtl8168_mdio_write(tp, 0x19, 0x9d00); + rtl8168_mdio_write(tp, 0x15, 0x0197); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x0198); + rtl8168_mdio_write(tp, 0x19, 0x6400); + rtl8168_mdio_write(tp, 0x15, 0x0199); + rtl8168_mdio_write(tp, 0x19, 0x4003); + rtl8168_mdio_write(tp, 0x15, 0x019a); + rtl8168_mdio_write(tp, 0x19, 0x4540); + rtl8168_mdio_write(tp, 0x15, 0x019b); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x019c); + rtl8168_mdio_write(tp, 0x19, 0x6008); + rtl8168_mdio_write(tp, 0x15, 0x019d); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x019e); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x019f); + rtl8168_mdio_write(tp, 0x19, 0x6400); + rtl8168_mdio_write(tp, 0x15, 0x01a0); + rtl8168_mdio_write(tp, 0x19, 0x7c80); + rtl8168_mdio_write(tp, 0x15, 0x01a1); + rtl8168_mdio_write(tp, 0x19, 0x6480); + rtl8168_mdio_write(tp, 0x15, 0x01a2); + rtl8168_mdio_write(tp, 0x19, 0x3140); + rtl8168_mdio_write(tp, 0x15, 0x01a3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01a4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01a5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01a6); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x01a7); + rtl8168_mdio_write(tp, 0x19, 0x7c0b); + rtl8168_mdio_write(tp, 0x15, 0x01a8); + rtl8168_mdio_write(tp, 0x19, 0x6c01); + rtl8168_mdio_write(tp, 0x15, 0x01a9); + rtl8168_mdio_write(tp, 0x19, 0x64a8); + rtl8168_mdio_write(tp, 0x15, 0x01aa); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x01ab); + rtl8168_mdio_write(tp, 0x19, 0x5cf0); + rtl8168_mdio_write(tp, 0x15, 0x01ac); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x01ad); + rtl8168_mdio_write(tp, 0x19, 0xb628); + rtl8168_mdio_write(tp, 0x15, 0x01ae); + rtl8168_mdio_write(tp, 0x19, 0xc053); + rtl8168_mdio_write(tp, 0x15, 0x01af); + rtl8168_mdio_write(tp, 0x19, 0x0026); + rtl8168_mdio_write(tp, 0x15, 0x01b0); + rtl8168_mdio_write(tp, 0x19, 0xc02d); + rtl8168_mdio_write(tp, 0x15, 0x01b1); + rtl8168_mdio_write(tp, 0x19, 0x0024); + rtl8168_mdio_write(tp, 0x15, 0x01b2); + rtl8168_mdio_write(tp, 0x19, 0xc603); + rtl8168_mdio_write(tp, 0x15, 0x01b3); + rtl8168_mdio_write(tp, 0x19, 0x0022); + rtl8168_mdio_write(tp, 0x15, 0x01b4); + rtl8168_mdio_write(tp, 0x19, 0x8cf9); + rtl8168_mdio_write(tp, 0x15, 0x01b5); + rtl8168_mdio_write(tp, 0x19, 0x31ba); + rtl8168_mdio_write(tp, 0x15, 0x01b6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01b7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01b8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01b9); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01ba); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x01bb); + rtl8168_mdio_write(tp, 0x19, 0x5420); + rtl8168_mdio_write(tp, 0x15, 0x01bc); + rtl8168_mdio_write(tp, 0x19, 0x4811); + rtl8168_mdio_write(tp, 0x15, 0x01bd); + rtl8168_mdio_write(tp, 0x19, 0x5000); + rtl8168_mdio_write(tp, 0x15, 0x01be); + rtl8168_mdio_write(tp, 0x19, 0x4801); + rtl8168_mdio_write(tp, 0x15, 0x01bf); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x01c0); + rtl8168_mdio_write(tp, 0x19, 0x31f5); + rtl8168_mdio_write(tp, 0x15, 0x01c1); + rtl8168_mdio_write(tp, 0x19, 0xb614); + rtl8168_mdio_write(tp, 0x15, 0x01c2); + rtl8168_mdio_write(tp, 0x19, 0x8ce4); + rtl8168_mdio_write(tp, 0x15, 0x01c3); + rtl8168_mdio_write(tp, 0x19, 0xb30c); + rtl8168_mdio_write(tp, 0x15, 0x01c4); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x01c5); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x01c6); + rtl8168_mdio_write(tp, 0x19, 0x8206); + rtl8168_mdio_write(tp, 0x15, 0x01c7); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x01c8); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x01c9); + rtl8168_mdio_write(tp, 0x19, 0x7c04); + rtl8168_mdio_write(tp, 0x15, 0x01ca); + rtl8168_mdio_write(tp, 0x19, 0x7404); + rtl8168_mdio_write(tp, 0x15, 0x01cb); + rtl8168_mdio_write(tp, 0x19, 0x31c0); + rtl8168_mdio_write(tp, 0x15, 0x01cc); + rtl8168_mdio_write(tp, 0x19, 0x7c04); + rtl8168_mdio_write(tp, 0x15, 0x01cd); + rtl8168_mdio_write(tp, 0x19, 0x7400); + rtl8168_mdio_write(tp, 0x15, 0x01ce); + rtl8168_mdio_write(tp, 0x19, 0x31c0); + rtl8168_mdio_write(tp, 0x15, 0x01cf); + rtl8168_mdio_write(tp, 0x19, 0x8df1); + rtl8168_mdio_write(tp, 0x15, 0x01d0); + rtl8168_mdio_write(tp, 0x19, 0x3248); + rtl8168_mdio_write(tp, 0x15, 0x01d1); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01d2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01d3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01d4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01d5); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x01d6); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x01d7); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x01d8); + rtl8168_mdio_write(tp, 0x19, 0x7670); + rtl8168_mdio_write(tp, 0x15, 0x01d9); + rtl8168_mdio_write(tp, 0x19, 0x4023); + rtl8168_mdio_write(tp, 0x15, 0x01da); + rtl8168_mdio_write(tp, 0x19, 0x4500); + rtl8168_mdio_write(tp, 0x15, 0x01db); + rtl8168_mdio_write(tp, 0x19, 0x4069); + rtl8168_mdio_write(tp, 0x15, 0x01dc); + rtl8168_mdio_write(tp, 0x19, 0x4580); + rtl8168_mdio_write(tp, 0x15, 0x01dd); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x01de); + rtl8168_mdio_write(tp, 0x19, 0xcff5); + rtl8168_mdio_write(tp, 0x15, 0x01df); + rtl8168_mdio_write(tp, 0x19, 0x00ff); + rtl8168_mdio_write(tp, 0x15, 0x01e0); + rtl8168_mdio_write(tp, 0x19, 0x76f0); + rtl8168_mdio_write(tp, 0x15, 0x01e1); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x01e2); + rtl8168_mdio_write(tp, 0x19, 0x4023); + rtl8168_mdio_write(tp, 0x15, 0x01e3); + rtl8168_mdio_write(tp, 0x19, 0x4500); + rtl8168_mdio_write(tp, 0x15, 0x01e4); + rtl8168_mdio_write(tp, 0x19, 0x4069); + rtl8168_mdio_write(tp, 0x15, 0x01e5); + rtl8168_mdio_write(tp, 0x19, 0x4580); + rtl8168_mdio_write(tp, 0x15, 0x01e6); + rtl8168_mdio_write(tp, 0x19, 0x9f00); + rtl8168_mdio_write(tp, 0x15, 0x01e7); + rtl8168_mdio_write(tp, 0x19, 0xd0f5); + rtl8168_mdio_write(tp, 0x15, 0x01e8); + rtl8168_mdio_write(tp, 0x19, 0x00ff); + rtl8168_mdio_write(tp, 0x15, 0x01e9); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x01ea); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x01eb); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x01ec); + rtl8168_mdio_write(tp, 0x19, 0x66a0); + rtl8168_mdio_write(tp, 0x15, 0x01ed); + rtl8168_mdio_write(tp, 0x19, 0x8300); + rtl8168_mdio_write(tp, 0x15, 0x01ee); + rtl8168_mdio_write(tp, 0x19, 0x74f0); + rtl8168_mdio_write(tp, 0x15, 0x01ef); + rtl8168_mdio_write(tp, 0x19, 0x3006); + rtl8168_mdio_write(tp, 0x15, 0x01f0); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01f1); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01f2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01f3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01f4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x01f5); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x01f6); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x01f7); + rtl8168_mdio_write(tp, 0x19, 0x409d); + rtl8168_mdio_write(tp, 0x15, 0x01f8); + rtl8168_mdio_write(tp, 0x19, 0x7c87); + rtl8168_mdio_write(tp, 0x15, 0x01f9); + rtl8168_mdio_write(tp, 0x19, 0xae14); + rtl8168_mdio_write(tp, 0x15, 0x01fa); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x01fb); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x01fc); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x01fd); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x01fe); + rtl8168_mdio_write(tp, 0x19, 0x980e); + rtl8168_mdio_write(tp, 0x15, 0x01ff); + rtl8168_mdio_write(tp, 0x19, 0x930c); + rtl8168_mdio_write(tp, 0x15, 0x0200); + rtl8168_mdio_write(tp, 0x19, 0x9206); + rtl8168_mdio_write(tp, 0x15, 0x0201); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0202); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0203); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0204); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0205); + rtl8168_mdio_write(tp, 0x19, 0x320c); + rtl8168_mdio_write(tp, 0x15, 0x0206); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x15, 0x0207); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0208); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x0209); + rtl8168_mdio_write(tp, 0x19, 0x5500); + rtl8168_mdio_write(tp, 0x15, 0x020a); + rtl8168_mdio_write(tp, 0x19, 0x320c); + rtl8168_mdio_write(tp, 0x15, 0x020b); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x020c); + rtl8168_mdio_write(tp, 0x19, 0x3220); + rtl8168_mdio_write(tp, 0x15, 0x020d); + rtl8168_mdio_write(tp, 0x19, 0x4480); + rtl8168_mdio_write(tp, 0x15, 0x020e); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x020f); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0210); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x0211); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0212); + rtl8168_mdio_write(tp, 0x19, 0x980e); + rtl8168_mdio_write(tp, 0x15, 0x0213); + rtl8168_mdio_write(tp, 0x19, 0x930c); + rtl8168_mdio_write(tp, 0x15, 0x0214); + rtl8168_mdio_write(tp, 0x19, 0x9206); + rtl8168_mdio_write(tp, 0x15, 0x0215); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x15, 0x0216); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0217); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0218); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0219); + rtl8168_mdio_write(tp, 0x19, 0x3220); + rtl8168_mdio_write(tp, 0x15, 0x021a); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x021b); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x021c); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x021d); + rtl8168_mdio_write(tp, 0x19, 0x5540); + rtl8168_mdio_write(tp, 0x15, 0x021e); + rtl8168_mdio_write(tp, 0x19, 0x3220); + rtl8168_mdio_write(tp, 0x15, 0x021f); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x15, 0x0220); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0221); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0222); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0223); + rtl8168_mdio_write(tp, 0x19, 0x3231); + rtl8168_mdio_write(tp, 0x15, 0x0224); + rtl8168_mdio_write(tp, 0x19, 0xab06); + rtl8168_mdio_write(tp, 0x15, 0x0225); + rtl8168_mdio_write(tp, 0x19, 0xbf08); + rtl8168_mdio_write(tp, 0x15, 0x0226); + rtl8168_mdio_write(tp, 0x19, 0x4076); + rtl8168_mdio_write(tp, 0x15, 0x0227); + rtl8168_mdio_write(tp, 0x19, 0x7d07); + rtl8168_mdio_write(tp, 0x15, 0x0228); + rtl8168_mdio_write(tp, 0x19, 0x4502); + rtl8168_mdio_write(tp, 0x15, 0x0229); + rtl8168_mdio_write(tp, 0x19, 0x3231); + rtl8168_mdio_write(tp, 0x15, 0x022a); + rtl8168_mdio_write(tp, 0x19, 0x7d80); + rtl8168_mdio_write(tp, 0x15, 0x022b); + rtl8168_mdio_write(tp, 0x19, 0x5180); + rtl8168_mdio_write(tp, 0x15, 0x022c); + rtl8168_mdio_write(tp, 0x19, 0x322f); + rtl8168_mdio_write(tp, 0x15, 0x022d); + rtl8168_mdio_write(tp, 0x19, 0x7d80); + rtl8168_mdio_write(tp, 0x15, 0x022e); + rtl8168_mdio_write(tp, 0x19, 0x5000); + rtl8168_mdio_write(tp, 0x15, 0x022f); + rtl8168_mdio_write(tp, 0x19, 0x7d07); + rtl8168_mdio_write(tp, 0x15, 0x0230); + rtl8168_mdio_write(tp, 0x19, 0x4402); + rtl8168_mdio_write(tp, 0x15, 0x0231); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0232); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x0233); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0234); + rtl8168_mdio_write(tp, 0x19, 0xb309); + rtl8168_mdio_write(tp, 0x15, 0x0235); + rtl8168_mdio_write(tp, 0x19, 0xb204); + rtl8168_mdio_write(tp, 0x15, 0x0236); + rtl8168_mdio_write(tp, 0x19, 0xb105); + rtl8168_mdio_write(tp, 0x15, 0x0237); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0238); + rtl8168_mdio_write(tp, 0x19, 0x31c1); + rtl8168_mdio_write(tp, 0x15, 0x0239); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x023a); + rtl8168_mdio_write(tp, 0x19, 0x3261); + rtl8168_mdio_write(tp, 0x15, 0x023b); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x023c); + rtl8168_mdio_write(tp, 0x19, 0x3250); + rtl8168_mdio_write(tp, 0x15, 0x023d); + rtl8168_mdio_write(tp, 0x19, 0xb203); + rtl8168_mdio_write(tp, 0x15, 0x023e); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x023f); + rtl8168_mdio_write(tp, 0x19, 0x327a); + rtl8168_mdio_write(tp, 0x15, 0x0240); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0241); + rtl8168_mdio_write(tp, 0x19, 0x3293); + rtl8168_mdio_write(tp, 0x15, 0x0242); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0243); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0244); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0245); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0246); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0247); + rtl8168_mdio_write(tp, 0x19, 0x32a3); + rtl8168_mdio_write(tp, 0x15, 0x0248); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0249); + rtl8168_mdio_write(tp, 0x19, 0x403d); + rtl8168_mdio_write(tp, 0x15, 0x024a); + rtl8168_mdio_write(tp, 0x19, 0x440c); + rtl8168_mdio_write(tp, 0x15, 0x024b); + rtl8168_mdio_write(tp, 0x19, 0x4812); + rtl8168_mdio_write(tp, 0x15, 0x024c); + rtl8168_mdio_write(tp, 0x19, 0x5001); + rtl8168_mdio_write(tp, 0x15, 0x024d); + rtl8168_mdio_write(tp, 0x19, 0x4802); + rtl8168_mdio_write(tp, 0x15, 0x024e); + rtl8168_mdio_write(tp, 0x19, 0x6880); + rtl8168_mdio_write(tp, 0x15, 0x024f); + rtl8168_mdio_write(tp, 0x19, 0x31f5); + rtl8168_mdio_write(tp, 0x15, 0x0250); + rtl8168_mdio_write(tp, 0x19, 0xb685); + rtl8168_mdio_write(tp, 0x15, 0x0251); + rtl8168_mdio_write(tp, 0x19, 0x801c); + rtl8168_mdio_write(tp, 0x15, 0x0252); + rtl8168_mdio_write(tp, 0x19, 0xbaf5); + rtl8168_mdio_write(tp, 0x15, 0x0253); + rtl8168_mdio_write(tp, 0x19, 0xc07c); + rtl8168_mdio_write(tp, 0x15, 0x0254); + rtl8168_mdio_write(tp, 0x19, 0x00fb); + rtl8168_mdio_write(tp, 0x15, 0x0255); + rtl8168_mdio_write(tp, 0x19, 0x325a); + rtl8168_mdio_write(tp, 0x15, 0x0256); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0257); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0258); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0259); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x025a); + rtl8168_mdio_write(tp, 0x19, 0x481a); + rtl8168_mdio_write(tp, 0x15, 0x025b); + rtl8168_mdio_write(tp, 0x19, 0x5001); + rtl8168_mdio_write(tp, 0x15, 0x025c); + rtl8168_mdio_write(tp, 0x19, 0x401b); + rtl8168_mdio_write(tp, 0x15, 0x025d); + rtl8168_mdio_write(tp, 0x19, 0x480a); + rtl8168_mdio_write(tp, 0x15, 0x025e); + rtl8168_mdio_write(tp, 0x19, 0x4418); + rtl8168_mdio_write(tp, 0x15, 0x025f); + rtl8168_mdio_write(tp, 0x19, 0x6900); + rtl8168_mdio_write(tp, 0x15, 0x0260); + rtl8168_mdio_write(tp, 0x19, 0x31f5); + rtl8168_mdio_write(tp, 0x15, 0x0261); + rtl8168_mdio_write(tp, 0x19, 0xb64b); + rtl8168_mdio_write(tp, 0x15, 0x0262); + rtl8168_mdio_write(tp, 0x19, 0xdb00); + rtl8168_mdio_write(tp, 0x15, 0x0263); + rtl8168_mdio_write(tp, 0x19, 0x0048); + rtl8168_mdio_write(tp, 0x15, 0x0264); + rtl8168_mdio_write(tp, 0x19, 0xdb7d); + rtl8168_mdio_write(tp, 0x15, 0x0265); + rtl8168_mdio_write(tp, 0x19, 0x0002); + rtl8168_mdio_write(tp, 0x15, 0x0266); + rtl8168_mdio_write(tp, 0x19, 0xa0fa); + rtl8168_mdio_write(tp, 0x15, 0x0267); + rtl8168_mdio_write(tp, 0x19, 0x4408); + rtl8168_mdio_write(tp, 0x15, 0x0268); + rtl8168_mdio_write(tp, 0x19, 0x3248); + rtl8168_mdio_write(tp, 0x15, 0x0269); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x026a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x026b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x026c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x026d); + rtl8168_mdio_write(tp, 0x19, 0xb806); + rtl8168_mdio_write(tp, 0x15, 0x026e); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x026f); + rtl8168_mdio_write(tp, 0x19, 0x5500); + rtl8168_mdio_write(tp, 0x15, 0x0270); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0271); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0272); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0273); + rtl8168_mdio_write(tp, 0x19, 0x4814); + rtl8168_mdio_write(tp, 0x15, 0x0274); + rtl8168_mdio_write(tp, 0x19, 0x500b); + rtl8168_mdio_write(tp, 0x15, 0x0275); + rtl8168_mdio_write(tp, 0x19, 0x4804); + rtl8168_mdio_write(tp, 0x15, 0x0276); + rtl8168_mdio_write(tp, 0x19, 0x40c4); + rtl8168_mdio_write(tp, 0x15, 0x0277); + rtl8168_mdio_write(tp, 0x19, 0x4425); + rtl8168_mdio_write(tp, 0x15, 0x0278); + rtl8168_mdio_write(tp, 0x19, 0x6a00); + rtl8168_mdio_write(tp, 0x15, 0x0279); + rtl8168_mdio_write(tp, 0x19, 0x31f5); + rtl8168_mdio_write(tp, 0x15, 0x027a); + rtl8168_mdio_write(tp, 0x19, 0xb632); + rtl8168_mdio_write(tp, 0x15, 0x027b); + rtl8168_mdio_write(tp, 0x19, 0xdc03); + rtl8168_mdio_write(tp, 0x15, 0x027c); + rtl8168_mdio_write(tp, 0x19, 0x0027); + rtl8168_mdio_write(tp, 0x15, 0x027d); + rtl8168_mdio_write(tp, 0x19, 0x80fc); + rtl8168_mdio_write(tp, 0x15, 0x027e); + rtl8168_mdio_write(tp, 0x19, 0x3283); + rtl8168_mdio_write(tp, 0x15, 0x027f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0280); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0281); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0282); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0283); + rtl8168_mdio_write(tp, 0x19, 0xb806); + rtl8168_mdio_write(tp, 0x15, 0x0284); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0285); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0286); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0287); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x15, 0x0288); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0289); + rtl8168_mdio_write(tp, 0x19, 0x4818); + rtl8168_mdio_write(tp, 0x15, 0x028a); + rtl8168_mdio_write(tp, 0x19, 0x5051); + rtl8168_mdio_write(tp, 0x15, 0x028b); + rtl8168_mdio_write(tp, 0x19, 0x4808); + rtl8168_mdio_write(tp, 0x15, 0x028c); + rtl8168_mdio_write(tp, 0x19, 0x4050); + rtl8168_mdio_write(tp, 0x15, 0x028d); + rtl8168_mdio_write(tp, 0x19, 0x4462); + rtl8168_mdio_write(tp, 0x15, 0x028e); + rtl8168_mdio_write(tp, 0x19, 0x40c4); + rtl8168_mdio_write(tp, 0x15, 0x028f); + rtl8168_mdio_write(tp, 0x19, 0x4473); + rtl8168_mdio_write(tp, 0x15, 0x0290); + rtl8168_mdio_write(tp, 0x19, 0x5041); + rtl8168_mdio_write(tp, 0x15, 0x0291); + rtl8168_mdio_write(tp, 0x19, 0x6b00); + rtl8168_mdio_write(tp, 0x15, 0x0292); + rtl8168_mdio_write(tp, 0x19, 0x31f5); + rtl8168_mdio_write(tp, 0x15, 0x0293); + rtl8168_mdio_write(tp, 0x19, 0xb619); + rtl8168_mdio_write(tp, 0x15, 0x0294); + rtl8168_mdio_write(tp, 0x19, 0x80d9); + rtl8168_mdio_write(tp, 0x15, 0x0295); + rtl8168_mdio_write(tp, 0x19, 0xbd06); + rtl8168_mdio_write(tp, 0x15, 0x0296); + rtl8168_mdio_write(tp, 0x19, 0xbb0d); + rtl8168_mdio_write(tp, 0x15, 0x0297); + rtl8168_mdio_write(tp, 0x19, 0xaf14); + rtl8168_mdio_write(tp, 0x15, 0x0298); + rtl8168_mdio_write(tp, 0x19, 0x8efa); + rtl8168_mdio_write(tp, 0x15, 0x0299); + rtl8168_mdio_write(tp, 0x19, 0x5049); + rtl8168_mdio_write(tp, 0x15, 0x029a); + rtl8168_mdio_write(tp, 0x19, 0x3248); + rtl8168_mdio_write(tp, 0x15, 0x029b); + rtl8168_mdio_write(tp, 0x19, 0x4c10); + rtl8168_mdio_write(tp, 0x15, 0x029c); + rtl8168_mdio_write(tp, 0x19, 0x44b0); + rtl8168_mdio_write(tp, 0x15, 0x029d); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x029e); + rtl8168_mdio_write(tp, 0x19, 0x3292); + rtl8168_mdio_write(tp, 0x15, 0x029f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02a0); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02a1); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02a2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02a3); + rtl8168_mdio_write(tp, 0x19, 0x481f); + rtl8168_mdio_write(tp, 0x15, 0x02a4); + rtl8168_mdio_write(tp, 0x19, 0x5005); + rtl8168_mdio_write(tp, 0x15, 0x02a5); + rtl8168_mdio_write(tp, 0x19, 0x480f); + rtl8168_mdio_write(tp, 0x15, 0x02a6); + rtl8168_mdio_write(tp, 0x19, 0xac00); + rtl8168_mdio_write(tp, 0x15, 0x02a7); + rtl8168_mdio_write(tp, 0x19, 0x31a6); + rtl8168_mdio_write(tp, 0x15, 0x02a8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02a9); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02aa); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02ab); + rtl8168_mdio_write(tp, 0x19, 0x31ba); + rtl8168_mdio_write(tp, 0x15, 0x02ac); + rtl8168_mdio_write(tp, 0x19, 0x31d5); + rtl8168_mdio_write(tp, 0x15, 0x02ad); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02ae); + rtl8168_mdio_write(tp, 0x19, 0x5cf0); + rtl8168_mdio_write(tp, 0x15, 0x02af); + rtl8168_mdio_write(tp, 0x19, 0x588c); + rtl8168_mdio_write(tp, 0x15, 0x02b0); + rtl8168_mdio_write(tp, 0x19, 0x542f); + rtl8168_mdio_write(tp, 0x15, 0x02b1); + rtl8168_mdio_write(tp, 0x19, 0x7ffb); + rtl8168_mdio_write(tp, 0x15, 0x02b2); + rtl8168_mdio_write(tp, 0x19, 0x6ff8); + rtl8168_mdio_write(tp, 0x15, 0x02b3); + rtl8168_mdio_write(tp, 0x19, 0x64a4); + rtl8168_mdio_write(tp, 0x15, 0x02b4); + rtl8168_mdio_write(tp, 0x19, 0x64a0); + rtl8168_mdio_write(tp, 0x15, 0x02b5); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x02b6); + rtl8168_mdio_write(tp, 0x19, 0x4400); + rtl8168_mdio_write(tp, 0x15, 0x02b7); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x02b8); + rtl8168_mdio_write(tp, 0x19, 0x4480); + rtl8168_mdio_write(tp, 0x15, 0x02b9); + rtl8168_mdio_write(tp, 0x19, 0x9e00); + rtl8168_mdio_write(tp, 0x15, 0x02ba); + rtl8168_mdio_write(tp, 0x19, 0x4891); + rtl8168_mdio_write(tp, 0x15, 0x02bb); + rtl8168_mdio_write(tp, 0x19, 0x4cc0); + rtl8168_mdio_write(tp, 0x15, 0x02bc); + rtl8168_mdio_write(tp, 0x19, 0x4801); + rtl8168_mdio_write(tp, 0x15, 0x02bd); + rtl8168_mdio_write(tp, 0x19, 0xa609); + rtl8168_mdio_write(tp, 0x15, 0x02be); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x02bf); + rtl8168_mdio_write(tp, 0x19, 0x004e); + rtl8168_mdio_write(tp, 0x15, 0x02c0); + rtl8168_mdio_write(tp, 0x19, 0x87fe); + rtl8168_mdio_write(tp, 0x15, 0x02c1); + rtl8168_mdio_write(tp, 0x19, 0x32c6); + rtl8168_mdio_write(tp, 0x15, 0x02c2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02c3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02c4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02c5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02c6); + rtl8168_mdio_write(tp, 0x19, 0x48b2); + rtl8168_mdio_write(tp, 0x15, 0x02c7); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x02c8); + rtl8168_mdio_write(tp, 0x19, 0x4822); + rtl8168_mdio_write(tp, 0x15, 0x02c9); + rtl8168_mdio_write(tp, 0x19, 0x4488); + rtl8168_mdio_write(tp, 0x15, 0x02ca); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x02cb); + rtl8168_mdio_write(tp, 0x19, 0x0042); + rtl8168_mdio_write(tp, 0x15, 0x02cc); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x02cd); + rtl8168_mdio_write(tp, 0x19, 0x4cc8); + rtl8168_mdio_write(tp, 0x15, 0x02ce); + rtl8168_mdio_write(tp, 0x19, 0x32d0); + rtl8168_mdio_write(tp, 0x15, 0x02cf); + rtl8168_mdio_write(tp, 0x19, 0x4cc0); + rtl8168_mdio_write(tp, 0x15, 0x02d0); + rtl8168_mdio_write(tp, 0x19, 0xc4d4); + rtl8168_mdio_write(tp, 0x15, 0x02d1); + rtl8168_mdio_write(tp, 0x19, 0x00f9); + rtl8168_mdio_write(tp, 0x15, 0x02d2); + rtl8168_mdio_write(tp, 0x19, 0xa51a); + rtl8168_mdio_write(tp, 0x15, 0x02d3); + rtl8168_mdio_write(tp, 0x19, 0x32d9); + rtl8168_mdio_write(tp, 0x15, 0x02d4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02d5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02d6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02d7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02d8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02d9); + rtl8168_mdio_write(tp, 0x19, 0x48b3); + rtl8168_mdio_write(tp, 0x15, 0x02da); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x02db); + rtl8168_mdio_write(tp, 0x19, 0x4823); + rtl8168_mdio_write(tp, 0x15, 0x02dc); + rtl8168_mdio_write(tp, 0x19, 0x4410); + rtl8168_mdio_write(tp, 0x15, 0x02dd); + rtl8168_mdio_write(tp, 0x19, 0xb630); + rtl8168_mdio_write(tp, 0x15, 0x02de); + rtl8168_mdio_write(tp, 0x19, 0x7dc8); + rtl8168_mdio_write(tp, 0x15, 0x02df); + rtl8168_mdio_write(tp, 0x19, 0x8203); + rtl8168_mdio_write(tp, 0x15, 0x02e0); + rtl8168_mdio_write(tp, 0x19, 0x4c48); + rtl8168_mdio_write(tp, 0x15, 0x02e1); + rtl8168_mdio_write(tp, 0x19, 0x32e3); + rtl8168_mdio_write(tp, 0x15, 0x02e2); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x02e3); + rtl8168_mdio_write(tp, 0x19, 0x9bfa); + rtl8168_mdio_write(tp, 0x15, 0x02e4); + rtl8168_mdio_write(tp, 0x19, 0x84ca); + rtl8168_mdio_write(tp, 0x15, 0x02e5); + rtl8168_mdio_write(tp, 0x19, 0x85f8); + rtl8168_mdio_write(tp, 0x15, 0x02e6); + rtl8168_mdio_write(tp, 0x19, 0x32ec); + rtl8168_mdio_write(tp, 0x15, 0x02e7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02e8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02e9); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02ea); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02eb); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x02ec); + rtl8168_mdio_write(tp, 0x19, 0x48d4); + rtl8168_mdio_write(tp, 0x15, 0x02ed); + rtl8168_mdio_write(tp, 0x19, 0x4020); + rtl8168_mdio_write(tp, 0x15, 0x02ee); + rtl8168_mdio_write(tp, 0x19, 0x4844); + rtl8168_mdio_write(tp, 0x15, 0x02ef); + rtl8168_mdio_write(tp, 0x19, 0x4420); + rtl8168_mdio_write(tp, 0x15, 0x02f0); + rtl8168_mdio_write(tp, 0x19, 0x6800); + rtl8168_mdio_write(tp, 0x15, 0x02f1); + rtl8168_mdio_write(tp, 0x19, 0x7dc0); + rtl8168_mdio_write(tp, 0x15, 0x02f2); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x02f3); + rtl8168_mdio_write(tp, 0x19, 0x7c0b); + rtl8168_mdio_write(tp, 0x15, 0x02f4); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x02f5); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x02f6); + rtl8168_mdio_write(tp, 0x19, 0x9cfd); + rtl8168_mdio_write(tp, 0x15, 0x02f7); + rtl8168_mdio_write(tp, 0x19, 0xb616); + rtl8168_mdio_write(tp, 0x15, 0x02f8); + rtl8168_mdio_write(tp, 0x19, 0xc42b); + rtl8168_mdio_write(tp, 0x15, 0x02f9); + rtl8168_mdio_write(tp, 0x19, 0x00e0); + rtl8168_mdio_write(tp, 0x15, 0x02fa); + rtl8168_mdio_write(tp, 0x19, 0xc455); + rtl8168_mdio_write(tp, 0x15, 0x02fb); + rtl8168_mdio_write(tp, 0x19, 0x00b3); + rtl8168_mdio_write(tp, 0x15, 0x02fc); + rtl8168_mdio_write(tp, 0x19, 0xb20a); + rtl8168_mdio_write(tp, 0x15, 0x02fd); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x02fe); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x02ff); + rtl8168_mdio_write(tp, 0x19, 0x8204); + rtl8168_mdio_write(tp, 0x15, 0x0300); + rtl8168_mdio_write(tp, 0x19, 0x7c04); + rtl8168_mdio_write(tp, 0x15, 0x0301); + rtl8168_mdio_write(tp, 0x19, 0x7404); + rtl8168_mdio_write(tp, 0x15, 0x0302); + rtl8168_mdio_write(tp, 0x19, 0x32f3); + rtl8168_mdio_write(tp, 0x15, 0x0303); + rtl8168_mdio_write(tp, 0x19, 0x7c04); + rtl8168_mdio_write(tp, 0x15, 0x0304); + rtl8168_mdio_write(tp, 0x19, 0x7400); + rtl8168_mdio_write(tp, 0x15, 0x0305); + rtl8168_mdio_write(tp, 0x19, 0x32f3); + rtl8168_mdio_write(tp, 0x15, 0x0306); + rtl8168_mdio_write(tp, 0x19, 0xefed); + rtl8168_mdio_write(tp, 0x15, 0x0307); + rtl8168_mdio_write(tp, 0x19, 0x3342); + rtl8168_mdio_write(tp, 0x15, 0x0308); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0309); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030d); + rtl8168_mdio_write(tp, 0x19, 0x3006); + rtl8168_mdio_write(tp, 0x15, 0x030e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x030f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0310); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0311); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0312); + rtl8168_mdio_write(tp, 0x19, 0xa207); + rtl8168_mdio_write(tp, 0x15, 0x0313); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x0314); + rtl8168_mdio_write(tp, 0x19, 0x3322); + rtl8168_mdio_write(tp, 0x15, 0x0315); + rtl8168_mdio_write(tp, 0x19, 0x4041); + rtl8168_mdio_write(tp, 0x15, 0x0316); + rtl8168_mdio_write(tp, 0x19, 0x7d07); + rtl8168_mdio_write(tp, 0x15, 0x0317); + rtl8168_mdio_write(tp, 0x19, 0x4502); + rtl8168_mdio_write(tp, 0x15, 0x0318); + rtl8168_mdio_write(tp, 0x19, 0x3322); + rtl8168_mdio_write(tp, 0x15, 0x0319); + rtl8168_mdio_write(tp, 0x19, 0x4c08); + rtl8168_mdio_write(tp, 0x15, 0x031a); + rtl8168_mdio_write(tp, 0x19, 0x3322); + rtl8168_mdio_write(tp, 0x15, 0x031b); + rtl8168_mdio_write(tp, 0x19, 0x7d80); + rtl8168_mdio_write(tp, 0x15, 0x031c); + rtl8168_mdio_write(tp, 0x19, 0x5180); + rtl8168_mdio_write(tp, 0x15, 0x031d); + rtl8168_mdio_write(tp, 0x19, 0x3320); + rtl8168_mdio_write(tp, 0x15, 0x031e); + rtl8168_mdio_write(tp, 0x19, 0x7d80); + rtl8168_mdio_write(tp, 0x15, 0x031f); + rtl8168_mdio_write(tp, 0x19, 0x5000); + rtl8168_mdio_write(tp, 0x15, 0x0320); + rtl8168_mdio_write(tp, 0x19, 0x7d07); + rtl8168_mdio_write(tp, 0x15, 0x0321); + rtl8168_mdio_write(tp, 0x19, 0x4402); + rtl8168_mdio_write(tp, 0x15, 0x0322); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0323); + rtl8168_mdio_write(tp, 0x19, 0x6c02); + rtl8168_mdio_write(tp, 0x15, 0x0324); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x0325); + rtl8168_mdio_write(tp, 0x19, 0xb30c); + rtl8168_mdio_write(tp, 0x15, 0x0326); + rtl8168_mdio_write(tp, 0x19, 0xb206); + rtl8168_mdio_write(tp, 0x15, 0x0327); + rtl8168_mdio_write(tp, 0x19, 0xb103); + rtl8168_mdio_write(tp, 0x15, 0x0328); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0329); + rtl8168_mdio_write(tp, 0x19, 0x32f6); + rtl8168_mdio_write(tp, 0x15, 0x032a); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x032b); + rtl8168_mdio_write(tp, 0x19, 0x3352); + rtl8168_mdio_write(tp, 0x15, 0x032c); + rtl8168_mdio_write(tp, 0x19, 0xb103); + rtl8168_mdio_write(tp, 0x15, 0x032d); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x032e); + rtl8168_mdio_write(tp, 0x19, 0x336a); + rtl8168_mdio_write(tp, 0x15, 0x032f); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0330); + rtl8168_mdio_write(tp, 0x19, 0x3382); + rtl8168_mdio_write(tp, 0x15, 0x0331); + rtl8168_mdio_write(tp, 0x19, 0xb206); + rtl8168_mdio_write(tp, 0x15, 0x0332); + rtl8168_mdio_write(tp, 0x19, 0xb103); + rtl8168_mdio_write(tp, 0x15, 0x0333); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0334); + rtl8168_mdio_write(tp, 0x19, 0x3395); + rtl8168_mdio_write(tp, 0x15, 0x0335); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0336); + rtl8168_mdio_write(tp, 0x19, 0x33c6); + rtl8168_mdio_write(tp, 0x15, 0x0337); + rtl8168_mdio_write(tp, 0x19, 0xb103); + rtl8168_mdio_write(tp, 0x15, 0x0338); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x0339); + rtl8168_mdio_write(tp, 0x19, 0x33d7); + rtl8168_mdio_write(tp, 0x15, 0x033a); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x033b); + rtl8168_mdio_write(tp, 0x19, 0x33f2); + rtl8168_mdio_write(tp, 0x15, 0x033c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x033d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x033e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x033f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0340); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0341); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0342); + rtl8168_mdio_write(tp, 0x19, 0x49b5); + rtl8168_mdio_write(tp, 0x15, 0x0343); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x15, 0x0344); + rtl8168_mdio_write(tp, 0x19, 0x4d00); + rtl8168_mdio_write(tp, 0x15, 0x0345); + rtl8168_mdio_write(tp, 0x19, 0x6880); + rtl8168_mdio_write(tp, 0x15, 0x0346); + rtl8168_mdio_write(tp, 0x19, 0x7c08); + rtl8168_mdio_write(tp, 0x15, 0x0347); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x0348); + rtl8168_mdio_write(tp, 0x19, 0x4925); + rtl8168_mdio_write(tp, 0x15, 0x0349); + rtl8168_mdio_write(tp, 0x19, 0x403b); + rtl8168_mdio_write(tp, 0x15, 0x034a); + rtl8168_mdio_write(tp, 0x19, 0xa602); + rtl8168_mdio_write(tp, 0x15, 0x034b); + rtl8168_mdio_write(tp, 0x19, 0x402f); + rtl8168_mdio_write(tp, 0x15, 0x034c); + rtl8168_mdio_write(tp, 0x19, 0x4484); + rtl8168_mdio_write(tp, 0x15, 0x034d); + rtl8168_mdio_write(tp, 0x19, 0x40c8); + rtl8168_mdio_write(tp, 0x15, 0x034e); + rtl8168_mdio_write(tp, 0x19, 0x44c4); + rtl8168_mdio_write(tp, 0x15, 0x034f); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x0350); + rtl8168_mdio_write(tp, 0x19, 0x00bd); + rtl8168_mdio_write(tp, 0x15, 0x0351); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x0352); + rtl8168_mdio_write(tp, 0x19, 0xc8ed); + rtl8168_mdio_write(tp, 0x15, 0x0353); + rtl8168_mdio_write(tp, 0x19, 0x00fc); + rtl8168_mdio_write(tp, 0x15, 0x0354); + rtl8168_mdio_write(tp, 0x19, 0x8221); + rtl8168_mdio_write(tp, 0x15, 0x0355); + rtl8168_mdio_write(tp, 0x19, 0xd11d); + rtl8168_mdio_write(tp, 0x15, 0x0356); + rtl8168_mdio_write(tp, 0x19, 0x001f); + rtl8168_mdio_write(tp, 0x15, 0x0357); + rtl8168_mdio_write(tp, 0x19, 0xde18); + rtl8168_mdio_write(tp, 0x15, 0x0358); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x0359); + rtl8168_mdio_write(tp, 0x19, 0x91f6); + rtl8168_mdio_write(tp, 0x15, 0x035a); + rtl8168_mdio_write(tp, 0x19, 0x3360); + rtl8168_mdio_write(tp, 0x15, 0x035b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x035c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x035d); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x035e); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x035f); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0360); + rtl8168_mdio_write(tp, 0x19, 0x4bb6); + rtl8168_mdio_write(tp, 0x15, 0x0361); + rtl8168_mdio_write(tp, 0x19, 0x4064); + rtl8168_mdio_write(tp, 0x15, 0x0362); + rtl8168_mdio_write(tp, 0x19, 0x4b26); + rtl8168_mdio_write(tp, 0x15, 0x0363); + rtl8168_mdio_write(tp, 0x19, 0x4410); + rtl8168_mdio_write(tp, 0x15, 0x0364); + rtl8168_mdio_write(tp, 0x19, 0x4006); + rtl8168_mdio_write(tp, 0x15, 0x0365); + rtl8168_mdio_write(tp, 0x19, 0x4490); + rtl8168_mdio_write(tp, 0x15, 0x0366); + rtl8168_mdio_write(tp, 0x19, 0x6900); + rtl8168_mdio_write(tp, 0x15, 0x0367); + rtl8168_mdio_write(tp, 0x19, 0xb6a6); + rtl8168_mdio_write(tp, 0x15, 0x0368); + rtl8168_mdio_write(tp, 0x19, 0x9e02); + rtl8168_mdio_write(tp, 0x15, 0x0369); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x036a); + rtl8168_mdio_write(tp, 0x19, 0xd11d); + rtl8168_mdio_write(tp, 0x15, 0x036b); + rtl8168_mdio_write(tp, 0x19, 0x000a); + rtl8168_mdio_write(tp, 0x15, 0x036c); + rtl8168_mdio_write(tp, 0x19, 0xbb0f); + rtl8168_mdio_write(tp, 0x15, 0x036d); + rtl8168_mdio_write(tp, 0x19, 0x8102); + rtl8168_mdio_write(tp, 0x15, 0x036e); + rtl8168_mdio_write(tp, 0x19, 0x3371); + rtl8168_mdio_write(tp, 0x15, 0x036f); + rtl8168_mdio_write(tp, 0x19, 0xa21e); + rtl8168_mdio_write(tp, 0x15, 0x0370); + rtl8168_mdio_write(tp, 0x19, 0x33b6); + rtl8168_mdio_write(tp, 0x15, 0x0371); + rtl8168_mdio_write(tp, 0x19, 0x91f6); + rtl8168_mdio_write(tp, 0x15, 0x0372); + rtl8168_mdio_write(tp, 0x19, 0xc218); + rtl8168_mdio_write(tp, 0x15, 0x0373); + rtl8168_mdio_write(tp, 0x19, 0x00f4); + rtl8168_mdio_write(tp, 0x15, 0x0374); + rtl8168_mdio_write(tp, 0x19, 0x33b6); + rtl8168_mdio_write(tp, 0x15, 0x0375); + rtl8168_mdio_write(tp, 0x19, 0x32ec); + rtl8168_mdio_write(tp, 0x15, 0x0376); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0377); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0378); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x0379); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x037a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x037b); + rtl8168_mdio_write(tp, 0x19, 0x4b97); + rtl8168_mdio_write(tp, 0x15, 0x037c); + rtl8168_mdio_write(tp, 0x19, 0x402b); + rtl8168_mdio_write(tp, 0x15, 0x037d); + rtl8168_mdio_write(tp, 0x19, 0x4b07); + rtl8168_mdio_write(tp, 0x15, 0x037e); + rtl8168_mdio_write(tp, 0x19, 0x4422); + rtl8168_mdio_write(tp, 0x15, 0x037f); + rtl8168_mdio_write(tp, 0x19, 0x6980); + rtl8168_mdio_write(tp, 0x15, 0x0380); + rtl8168_mdio_write(tp, 0x19, 0xb608); + rtl8168_mdio_write(tp, 0x15, 0x0381); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x0382); + rtl8168_mdio_write(tp, 0x19, 0xbc05); + rtl8168_mdio_write(tp, 0x15, 0x0383); + rtl8168_mdio_write(tp, 0x19, 0xc21c); + rtl8168_mdio_write(tp, 0x15, 0x0384); + rtl8168_mdio_write(tp, 0x19, 0x0032); + rtl8168_mdio_write(tp, 0x15, 0x0385); + rtl8168_mdio_write(tp, 0x19, 0xa1fb); + rtl8168_mdio_write(tp, 0x15, 0x0386); + rtl8168_mdio_write(tp, 0x19, 0x338d); + rtl8168_mdio_write(tp, 0x15, 0x0387); + rtl8168_mdio_write(tp, 0x19, 0x32ae); + rtl8168_mdio_write(tp, 0x15, 0x0388); + rtl8168_mdio_write(tp, 0x19, 0x330d); + rtl8168_mdio_write(tp, 0x15, 0x0389); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x038a); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x038b); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x038c); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x038d); + rtl8168_mdio_write(tp, 0x19, 0x4b97); + rtl8168_mdio_write(tp, 0x15, 0x038e); + rtl8168_mdio_write(tp, 0x19, 0x6a08); + rtl8168_mdio_write(tp, 0x15, 0x038f); + rtl8168_mdio_write(tp, 0x19, 0x4b07); + rtl8168_mdio_write(tp, 0x15, 0x0390); + rtl8168_mdio_write(tp, 0x19, 0x40ac); + rtl8168_mdio_write(tp, 0x15, 0x0391); + rtl8168_mdio_write(tp, 0x19, 0x4445); + rtl8168_mdio_write(tp, 0x15, 0x0392); + rtl8168_mdio_write(tp, 0x19, 0x404e); + rtl8168_mdio_write(tp, 0x15, 0x0393); + rtl8168_mdio_write(tp, 0x19, 0x4461); + rtl8168_mdio_write(tp, 0x15, 0x0394); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x0395); + rtl8168_mdio_write(tp, 0x19, 0x9c0a); + rtl8168_mdio_write(tp, 0x15, 0x0396); + rtl8168_mdio_write(tp, 0x19, 0x63da); + rtl8168_mdio_write(tp, 0x15, 0x0397); + rtl8168_mdio_write(tp, 0x19, 0x6f0c); + rtl8168_mdio_write(tp, 0x15, 0x0398); + rtl8168_mdio_write(tp, 0x19, 0x5440); + rtl8168_mdio_write(tp, 0x15, 0x0399); + rtl8168_mdio_write(tp, 0x19, 0x4b98); + rtl8168_mdio_write(tp, 0x15, 0x039a); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x039b); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x039c); + rtl8168_mdio_write(tp, 0x19, 0x4b08); + rtl8168_mdio_write(tp, 0x15, 0x039d); + rtl8168_mdio_write(tp, 0x19, 0x63d8); + rtl8168_mdio_write(tp, 0x15, 0x039e); + rtl8168_mdio_write(tp, 0x19, 0x33a5); + rtl8168_mdio_write(tp, 0x15, 0x039f); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x03a0); + rtl8168_mdio_write(tp, 0x19, 0x00e8); + rtl8168_mdio_write(tp, 0x15, 0x03a1); + rtl8168_mdio_write(tp, 0x19, 0x820e); + rtl8168_mdio_write(tp, 0x15, 0x03a2); + rtl8168_mdio_write(tp, 0x19, 0xa10d); + rtl8168_mdio_write(tp, 0x15, 0x03a3); + rtl8168_mdio_write(tp, 0x19, 0x9df1); + rtl8168_mdio_write(tp, 0x15, 0x03a4); + rtl8168_mdio_write(tp, 0x19, 0x33af); + rtl8168_mdio_write(tp, 0x15, 0x03a5); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x03a6); + rtl8168_mdio_write(tp, 0x19, 0x00f9); + rtl8168_mdio_write(tp, 0x15, 0x03a7); + rtl8168_mdio_write(tp, 0x19, 0xc017); + rtl8168_mdio_write(tp, 0x15, 0x03a8); + rtl8168_mdio_write(tp, 0x19, 0x0007); + rtl8168_mdio_write(tp, 0x15, 0x03a9); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x03aa); + rtl8168_mdio_write(tp, 0x19, 0x6c03); + rtl8168_mdio_write(tp, 0x15, 0x03ab); + rtl8168_mdio_write(tp, 0x19, 0xa104); + rtl8168_mdio_write(tp, 0x15, 0x03ac); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x03ad); + rtl8168_mdio_write(tp, 0x19, 0x6c00); + rtl8168_mdio_write(tp, 0x15, 0x03ae); + rtl8168_mdio_write(tp, 0x19, 0x9df7); + rtl8168_mdio_write(tp, 0x15, 0x03af); + rtl8168_mdio_write(tp, 0x19, 0x7c03); + rtl8168_mdio_write(tp, 0x15, 0x03b0); + rtl8168_mdio_write(tp, 0x19, 0x6c08); + rtl8168_mdio_write(tp, 0x15, 0x03b1); + rtl8168_mdio_write(tp, 0x19, 0x33b6); + rtl8168_mdio_write(tp, 0x15, 0x03b2); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b3); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b4); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03b6); + rtl8168_mdio_write(tp, 0x19, 0x55af); + rtl8168_mdio_write(tp, 0x15, 0x03b7); + rtl8168_mdio_write(tp, 0x19, 0x7ff0); + rtl8168_mdio_write(tp, 0x15, 0x03b8); + rtl8168_mdio_write(tp, 0x19, 0x6ff0); + rtl8168_mdio_write(tp, 0x15, 0x03b9); + rtl8168_mdio_write(tp, 0x19, 0x4bb9); + rtl8168_mdio_write(tp, 0x15, 0x03ba); + rtl8168_mdio_write(tp, 0x19, 0x6a80); + rtl8168_mdio_write(tp, 0x15, 0x03bb); + rtl8168_mdio_write(tp, 0x19, 0x4b29); + rtl8168_mdio_write(tp, 0x15, 0x03bc); + rtl8168_mdio_write(tp, 0x19, 0x4041); + rtl8168_mdio_write(tp, 0x15, 0x03bd); + rtl8168_mdio_write(tp, 0x19, 0x440a); + rtl8168_mdio_write(tp, 0x15, 0x03be); + rtl8168_mdio_write(tp, 0x19, 0x4029); + rtl8168_mdio_write(tp, 0x15, 0x03bf); + rtl8168_mdio_write(tp, 0x19, 0x4418); + rtl8168_mdio_write(tp, 0x15, 0x03c0); + rtl8168_mdio_write(tp, 0x19, 0x4090); + rtl8168_mdio_write(tp, 0x15, 0x03c1); + rtl8168_mdio_write(tp, 0x19, 0x4438); + rtl8168_mdio_write(tp, 0x15, 0x03c2); + rtl8168_mdio_write(tp, 0x19, 0x40c4); + rtl8168_mdio_write(tp, 0x15, 0x03c3); + rtl8168_mdio_write(tp, 0x19, 0x447b); + rtl8168_mdio_write(tp, 0x15, 0x03c4); + rtl8168_mdio_write(tp, 0x19, 0xb6c4); + rtl8168_mdio_write(tp, 0x15, 0x03c5); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x03c6); + rtl8168_mdio_write(tp, 0x19, 0x9bfe); + rtl8168_mdio_write(tp, 0x15, 0x03c7); + rtl8168_mdio_write(tp, 0x19, 0x33cc); + rtl8168_mdio_write(tp, 0x15, 0x03c8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03c9); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03ca); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03cb); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03cc); + rtl8168_mdio_write(tp, 0x19, 0x542f); + rtl8168_mdio_write(tp, 0x15, 0x03cd); + rtl8168_mdio_write(tp, 0x19, 0x499a); + rtl8168_mdio_write(tp, 0x15, 0x03ce); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x03cf); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03d0); + rtl8168_mdio_write(tp, 0x19, 0x490a); + rtl8168_mdio_write(tp, 0x15, 0x03d1); + rtl8168_mdio_write(tp, 0x19, 0x405e); + rtl8168_mdio_write(tp, 0x15, 0x03d2); + rtl8168_mdio_write(tp, 0x19, 0x44f8); + rtl8168_mdio_write(tp, 0x15, 0x03d3); + rtl8168_mdio_write(tp, 0x19, 0x6b00); + rtl8168_mdio_write(tp, 0x15, 0x03d4); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x03d5); + rtl8168_mdio_write(tp, 0x19, 0x0028); + rtl8168_mdio_write(tp, 0x15, 0x03d6); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x03d7); + rtl8168_mdio_write(tp, 0x19, 0xbd27); + rtl8168_mdio_write(tp, 0x15, 0x03d8); + rtl8168_mdio_write(tp, 0x19, 0x9cfc); + rtl8168_mdio_write(tp, 0x15, 0x03d9); + rtl8168_mdio_write(tp, 0x19, 0xc639); + rtl8168_mdio_write(tp, 0x15, 0x03da); + rtl8168_mdio_write(tp, 0x19, 0x000f); + rtl8168_mdio_write(tp, 0x15, 0x03db); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x03dc); + rtl8168_mdio_write(tp, 0x19, 0x7c01); + rtl8168_mdio_write(tp, 0x15, 0x03dd); + rtl8168_mdio_write(tp, 0x19, 0x4c01); + rtl8168_mdio_write(tp, 0x15, 0x03de); + rtl8168_mdio_write(tp, 0x19, 0x9af6); + rtl8168_mdio_write(tp, 0x15, 0x03df); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03e0); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03e1); + rtl8168_mdio_write(tp, 0x19, 0x4470); + rtl8168_mdio_write(tp, 0x15, 0x03e2); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03e3); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03e4); + rtl8168_mdio_write(tp, 0x19, 0x33d4); + rtl8168_mdio_write(tp, 0x15, 0x03e5); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03e6); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03e7); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03e8); + rtl8168_mdio_write(tp, 0x19, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x03e9); + rtl8168_mdio_write(tp, 0x19, 0x49bb); + rtl8168_mdio_write(tp, 0x15, 0x03ea); + rtl8168_mdio_write(tp, 0x19, 0x4478); + rtl8168_mdio_write(tp, 0x15, 0x03eb); + rtl8168_mdio_write(tp, 0x19, 0x492b); + rtl8168_mdio_write(tp, 0x15, 0x03ec); + rtl8168_mdio_write(tp, 0x19, 0x6b80); + rtl8168_mdio_write(tp, 0x15, 0x03ed); + rtl8168_mdio_write(tp, 0x19, 0x7c01); + rtl8168_mdio_write(tp, 0x15, 0x03ee); + rtl8168_mdio_write(tp, 0x19, 0x4c00); + rtl8168_mdio_write(tp, 0x15, 0x03ef); + rtl8168_mdio_write(tp, 0x19, 0xd64f); + rtl8168_mdio_write(tp, 0x15, 0x03f0); + rtl8168_mdio_write(tp, 0x19, 0x000d); + rtl8168_mdio_write(tp, 0x15, 0x03f1); + rtl8168_mdio_write(tp, 0x19, 0x3311); + rtl8168_mdio_write(tp, 0x15, 0x03f2); + rtl8168_mdio_write(tp, 0x19, 0xbd0c); + rtl8168_mdio_write(tp, 0x15, 0x03f3); + rtl8168_mdio_write(tp, 0x19, 0xc428); + rtl8168_mdio_write(tp, 0x15, 0x03f4); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x15, 0x03f5); + rtl8168_mdio_write(tp, 0x19, 0x9afa); + rtl8168_mdio_write(tp, 0x15, 0x03f6); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03f7); + rtl8168_mdio_write(tp, 0x19, 0x4c52); + rtl8168_mdio_write(tp, 0x15, 0x03f8); + rtl8168_mdio_write(tp, 0x19, 0x4470); + rtl8168_mdio_write(tp, 0x15, 0x03f9); + rtl8168_mdio_write(tp, 0x19, 0x7c12); + rtl8168_mdio_write(tp, 0x15, 0x03fa); + rtl8168_mdio_write(tp, 0x19, 0x4c40); + rtl8168_mdio_write(tp, 0x15, 0x03fb); + rtl8168_mdio_write(tp, 0x19, 0x33ef); + rtl8168_mdio_write(tp, 0x15, 0x03fc); + rtl8168_mdio_write(tp, 0x19, 0x3342); + rtl8168_mdio_write(tp, 0x15, 0x03fd); + rtl8168_mdio_write(tp, 0x19, 0x330d); + rtl8168_mdio_write(tp, 0x15, 0x03fe); + rtl8168_mdio_write(tp, 0x19, 0x32ae); + rtl8168_mdio_write(tp, 0x15, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x0112); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x1f02); + rtl8168_mdio_write(tp, 0x06, 0x012c); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x3c02); + rtl8168_mdio_write(tp, 0x06, 0x0156); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x6d02); + rtl8168_mdio_write(tp, 0x06, 0x809d); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xc702); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd105); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xcd02); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xca02); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd105); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xd002); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd481); + rtl8168_mdio_write(tp, 0x06, 0xc9e4); + rtl8168_mdio_write(tp, 0x06, 0x8b90); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x91d4); + rtl8168_mdio_write(tp, 0x06, 0x81b8); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x92e5); + rtl8168_mdio_write(tp, 0x06, 0x8b93); + rtl8168_mdio_write(tp, 0x06, 0xbf8b); + rtl8168_mdio_write(tp, 0x06, 0x88ec); + rtl8168_mdio_write(tp, 0x06, 0x0019); + rtl8168_mdio_write(tp, 0x06, 0xa98b); + rtl8168_mdio_write(tp, 0x06, 0x90f9); + rtl8168_mdio_write(tp, 0x06, 0xeeff); + rtl8168_mdio_write(tp, 0x06, 0xf600); + rtl8168_mdio_write(tp, 0x06, 0xeeff); + rtl8168_mdio_write(tp, 0x06, 0xf7fc); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xc102); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xc402); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x201a); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x824b); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x1902); + rtl8168_mdio_write(tp, 0x06, 0x2c9d); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x9602); + rtl8168_mdio_write(tp, 0x06, 0x0473); + rtl8168_mdio_write(tp, 0x06, 0x022e); + rtl8168_mdio_write(tp, 0x06, 0x3902); + rtl8168_mdio_write(tp, 0x06, 0x044d); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x210b); + rtl8168_mdio_write(tp, 0x06, 0xf621); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x0416); + rtl8168_mdio_write(tp, 0x06, 0x021b); + rtl8168_mdio_write(tp, 0x06, 0xa4e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x22e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2305); + rtl8168_mdio_write(tp, 0x06, 0xf623); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x24e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2505); + rtl8168_mdio_write(tp, 0x06, 0xf625); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x26e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xdae0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x27e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x5cfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad21); + rtl8168_mdio_write(tp, 0x06, 0x57e0); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x2358); + rtl8168_mdio_write(tp, 0x06, 0xc059); + rtl8168_mdio_write(tp, 0x06, 0x021e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b3c); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e44); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x3cad); + rtl8168_mdio_write(tp, 0x06, 0x211d); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x84f7); + rtl8168_mdio_write(tp, 0x06, 0x29e5); + rtl8168_mdio_write(tp, 0x06, 0x8b84); + rtl8168_mdio_write(tp, 0x06, 0xac27); + rtl8168_mdio_write(tp, 0x06, 0x0dac); + rtl8168_mdio_write(tp, 0x06, 0x2605); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x7fae); + rtl8168_mdio_write(tp, 0x06, 0x2b02); + rtl8168_mdio_write(tp, 0x06, 0x2c23); + rtl8168_mdio_write(tp, 0x06, 0xae26); + rtl8168_mdio_write(tp, 0x06, 0x022c); + rtl8168_mdio_write(tp, 0x06, 0x41ae); + rtl8168_mdio_write(tp, 0x06, 0x21e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x18e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0x58fc); + rtl8168_mdio_write(tp, 0x06, 0xe4ff); + rtl8168_mdio_write(tp, 0x06, 0xf7d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x2eee); + rtl8168_mdio_write(tp, 0x06, 0x0232); + rtl8168_mdio_write(tp, 0x06, 0x0ad1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x82e8); + rtl8168_mdio_write(tp, 0x06, 0x0232); + rtl8168_mdio_write(tp, 0x06, 0x0a02); + rtl8168_mdio_write(tp, 0x06, 0x2bdf); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x04d0); + rtl8168_mdio_write(tp, 0x06, 0x0202); + rtl8168_mdio_write(tp, 0x06, 0x1e97); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2228); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xd302); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd10c); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xd602); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd104); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xd902); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xe802); + rtl8168_mdio_write(tp, 0x06, 0x320a); + rtl8168_mdio_write(tp, 0x06, 0xe0ff); + rtl8168_mdio_write(tp, 0x06, 0xf768); + rtl8168_mdio_write(tp, 0x06, 0x03e4); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xd004); + rtl8168_mdio_write(tp, 0x06, 0x0228); + rtl8168_mdio_write(tp, 0x06, 0x7a04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0xe234); + rtl8168_mdio_write(tp, 0x06, 0xe1e2); + rtl8168_mdio_write(tp, 0x06, 0x35f6); + rtl8168_mdio_write(tp, 0x06, 0x2be4); + rtl8168_mdio_write(tp, 0x06, 0xe234); + rtl8168_mdio_write(tp, 0x06, 0xe5e2); + rtl8168_mdio_write(tp, 0x06, 0x35fc); + rtl8168_mdio_write(tp, 0x06, 0x05f8); + rtl8168_mdio_write(tp, 0x06, 0xe0e2); + rtl8168_mdio_write(tp, 0x06, 0x34e1); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xf72b); + rtl8168_mdio_write(tp, 0x06, 0xe4e2); + rtl8168_mdio_write(tp, 0x06, 0x34e5); + rtl8168_mdio_write(tp, 0x06, 0xe235); + rtl8168_mdio_write(tp, 0x06, 0xfc05); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69ac); + rtl8168_mdio_write(tp, 0x06, 0x1b4c); + rtl8168_mdio_write(tp, 0x06, 0xbf2e); + rtl8168_mdio_write(tp, 0x06, 0x3002); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0xef01); + rtl8168_mdio_write(tp, 0x06, 0xe28a); + rtl8168_mdio_write(tp, 0x06, 0x76e4); + rtl8168_mdio_write(tp, 0x06, 0x8a76); + rtl8168_mdio_write(tp, 0x06, 0x1f12); + rtl8168_mdio_write(tp, 0x06, 0x9e3a); + rtl8168_mdio_write(tp, 0x06, 0xef12); + rtl8168_mdio_write(tp, 0x06, 0x5907); + rtl8168_mdio_write(tp, 0x06, 0x9f12); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf721); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40d0); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x287a); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x34fc); + rtl8168_mdio_write(tp, 0x06, 0xa000); + rtl8168_mdio_write(tp, 0x06, 0x1002); + rtl8168_mdio_write(tp, 0x06, 0x2dc3); + rtl8168_mdio_write(tp, 0x06, 0x022e); + rtl8168_mdio_write(tp, 0x06, 0x21e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf621); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40ae); + rtl8168_mdio_write(tp, 0x06, 0x0fbf); + rtl8168_mdio_write(tp, 0x06, 0x3fa5); + rtl8168_mdio_write(tp, 0x06, 0x0231); + rtl8168_mdio_write(tp, 0x06, 0x6cbf); + rtl8168_mdio_write(tp, 0x06, 0x3fa2); + rtl8168_mdio_write(tp, 0x06, 0x0231); + rtl8168_mdio_write(tp, 0x06, 0x6c02); + rtl8168_mdio_write(tp, 0x06, 0x2dc3); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0xe2f4); + rtl8168_mdio_write(tp, 0x06, 0xe1e2); + rtl8168_mdio_write(tp, 0x06, 0xf5e4); + rtl8168_mdio_write(tp, 0x06, 0x8a78); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0x79ee); + rtl8168_mdio_write(tp, 0x06, 0xe2f4); + rtl8168_mdio_write(tp, 0x06, 0xd8ee); + rtl8168_mdio_write(tp, 0x06, 0xe2f5); + rtl8168_mdio_write(tp, 0x06, 0x20fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2065); + rtl8168_mdio_write(tp, 0x06, 0xd200); + rtl8168_mdio_write(tp, 0x06, 0xbf2e); + rtl8168_mdio_write(tp, 0x06, 0xe802); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0x1e21); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xdf02); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0x0c11); + rtl8168_mdio_write(tp, 0x06, 0x1e21); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xe202); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0x0c12); + rtl8168_mdio_write(tp, 0x06, 0x1e21); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xe502); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0x0c13); + rtl8168_mdio_write(tp, 0x06, 0x1e21); + rtl8168_mdio_write(tp, 0x06, 0xbf1f); + rtl8168_mdio_write(tp, 0x06, 0x5302); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0x0c14); + rtl8168_mdio_write(tp, 0x06, 0x1e21); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0xeb02); + rtl8168_mdio_write(tp, 0x06, 0x31dd); + rtl8168_mdio_write(tp, 0x06, 0x0c16); + rtl8168_mdio_write(tp, 0x06, 0x1e21); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0xe01f); + rtl8168_mdio_write(tp, 0x06, 0x029e); + rtl8168_mdio_write(tp, 0x06, 0x22e6); + rtl8168_mdio_write(tp, 0x06, 0x83e0); + rtl8168_mdio_write(tp, 0x06, 0xad31); + rtl8168_mdio_write(tp, 0x06, 0x14ad); + rtl8168_mdio_write(tp, 0x06, 0x3011); + rtl8168_mdio_write(tp, 0x06, 0xef02); + rtl8168_mdio_write(tp, 0x06, 0x580c); + rtl8168_mdio_write(tp, 0x06, 0x9e07); + rtl8168_mdio_write(tp, 0x06, 0xad36); + rtl8168_mdio_write(tp, 0x06, 0x085a); + rtl8168_mdio_write(tp, 0x06, 0x309f); + rtl8168_mdio_write(tp, 0x06, 0x04d1); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0x02d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x82dc); + rtl8168_mdio_write(tp, 0x06, 0x0232); + rtl8168_mdio_write(tp, 0x06, 0x0aef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x0400); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0x77e1); + rtl8168_mdio_write(tp, 0x06, 0x4010); + rtl8168_mdio_write(tp, 0x06, 0xe150); + rtl8168_mdio_write(tp, 0x06, 0x32e1); + rtl8168_mdio_write(tp, 0x06, 0x5030); + rtl8168_mdio_write(tp, 0x06, 0xe144); + rtl8168_mdio_write(tp, 0x06, 0x74e1); + rtl8168_mdio_write(tp, 0x06, 0x44bb); + rtl8168_mdio_write(tp, 0x06, 0xe2d2); + rtl8168_mdio_write(tp, 0x06, 0x40e0); + rtl8168_mdio_write(tp, 0x06, 0x2cfc); + rtl8168_mdio_write(tp, 0x06, 0xe2cc); + rtl8168_mdio_write(tp, 0x06, 0xcce2); + rtl8168_mdio_write(tp, 0x06, 0x00cc); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0x99e0); + rtl8168_mdio_write(tp, 0x06, 0x3688); + rtl8168_mdio_write(tp, 0x06, 0xe036); + rtl8168_mdio_write(tp, 0x06, 0x99e1); + rtl8168_mdio_write(tp, 0x06, 0x40dd); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x05, 0xe142); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x05, 0xe140); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + gphy_val |= BIT_2; + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); +} + +static void +rtl8168_set_phy_mcu_8168evl_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct pci_dev *pdev = tp->pci_dev; + unsigned int gphy_val,i; + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x1800); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val &= ~(BIT_12); + rtl8168_mdio_write(tp, 0x15, gphy_val); + rtl8168_mdio_write(tp, 0x00, 0x4800); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x002f); + for (i = 0; i < 1000; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1c); + if ((gphy_val & 0x0080) == 0x0080) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x1800); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x17); + if (!(gphy_val & 0x0001)) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x00AF); + rtl8168_mdio_write(tp, 0x19, 0x4060); + rtl8168_mdio_write(tp, 0x15, 0x00B0); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x00B1); + rtl8168_mdio_write(tp, 0x19, 0x7e00); + rtl8168_mdio_write(tp, 0x15, 0x00B2); + rtl8168_mdio_write(tp, 0x19, 0x72B0); + rtl8168_mdio_write(tp, 0x15, 0x00B3); + rtl8168_mdio_write(tp, 0x19, 0x7F00); + rtl8168_mdio_write(tp, 0x15, 0x00B4); + rtl8168_mdio_write(tp, 0x19, 0x73B0); + rtl8168_mdio_write(tp, 0x15, 0x0101); + rtl8168_mdio_write(tp, 0x19, 0x0005); + rtl8168_mdio_write(tp, 0x15, 0x0103); + rtl8168_mdio_write(tp, 0x19, 0x0003); + rtl8168_mdio_write(tp, 0x15, 0x0105); + rtl8168_mdio_write(tp, 0x19, 0x30FD); + rtl8168_mdio_write(tp, 0x15, 0x0106); + rtl8168_mdio_write(tp, 0x19, 0x9DF7); + rtl8168_mdio_write(tp, 0x15, 0x0107); + rtl8168_mdio_write(tp, 0x19, 0x30C6); + rtl8168_mdio_write(tp, 0x15, 0x0098); + rtl8168_mdio_write(tp, 0x19, 0x7c0b); + rtl8168_mdio_write(tp, 0x15, 0x0099); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00eb); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00f8); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00fe); + rtl8168_mdio_write(tp, 0x19, 0x6f0f); + rtl8168_mdio_write(tp, 0x15, 0x00db); + rtl8168_mdio_write(tp, 0x19, 0x6f09); + rtl8168_mdio_write(tp, 0x15, 0x00dc); + rtl8168_mdio_write(tp, 0x19, 0xaefd); + rtl8168_mdio_write(tp, 0x15, 0x00dd); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00de); + rtl8168_mdio_write(tp, 0x19, 0xc60b); + rtl8168_mdio_write(tp, 0x15, 0x00df); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00e0); + rtl8168_mdio_write(tp, 0x19, 0x30e1); + rtl8168_mdio_write(tp, 0x15, 0x020c); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x020e); + rtl8168_mdio_write(tp, 0x19, 0x9813); + rtl8168_mdio_write(tp, 0x15, 0x020f); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0210); + rtl8168_mdio_write(tp, 0x19, 0x930f); + rtl8168_mdio_write(tp, 0x15, 0x0211); + rtl8168_mdio_write(tp, 0x19, 0x9206); + rtl8168_mdio_write(tp, 0x15, 0x0212); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0213); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0214); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0215); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0216); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0217); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0218); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0219); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x021a); + rtl8168_mdio_write(tp, 0x19, 0x5540); + rtl8168_mdio_write(tp, 0x15, 0x021b); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x021c); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x021d); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x021e); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x021f); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0220); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0221); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x0222); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0223); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x0224); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0225); + rtl8168_mdio_write(tp, 0x19, 0x3231); + rtl8168_mdio_write(tp, 0x15, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2160); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0040); + rtl8168_mdio_write(tp, 0x18, 0x0004); + if (pdev->subsystem_vendor == 0x144d && + pdev->subsystem_device == 0xc0a6) { + rtl8168_mdio_write(tp, 0x18, 0x0724); + rtl8168_mdio_write(tp, 0x19, 0xfe00); + rtl8168_mdio_write(tp, 0x18, 0x0734); + rtl8168_mdio_write(tp, 0x19, 0xfd00); + rtl8168_mdio_write(tp, 0x18, 0x1824); + rtl8168_mdio_write(tp, 0x19, 0xfc00); + rtl8168_mdio_write(tp, 0x18, 0x1834); + rtl8168_mdio_write(tp, 0x19, 0xfd00); + } + rtl8168_mdio_write(tp, 0x18, 0x09d4); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x09e4); + rtl8168_mdio_write(tp, 0x19, 0x0800); + rtl8168_mdio_write(tp, 0x18, 0x09f4); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x0a04); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x0a14); + rtl8168_mdio_write(tp, 0x19, 0x0c00); + rtl8168_mdio_write(tp, 0x18, 0x0a24); + rtl8168_mdio_write(tp, 0x19, 0xff00); + rtl8168_mdio_write(tp, 0x18, 0x0a74); + rtl8168_mdio_write(tp, 0x19, 0xf600); + rtl8168_mdio_write(tp, 0x18, 0x1a24); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x18, 0x1a64); + rtl8168_mdio_write(tp, 0x19, 0x0500); + rtl8168_mdio_write(tp, 0x18, 0x1a74); + rtl8168_mdio_write(tp, 0x19, 0x9500); + rtl8168_mdio_write(tp, 0x18, 0x1a84); + rtl8168_mdio_write(tp, 0x19, 0x8000); + rtl8168_mdio_write(tp, 0x18, 0x1a94); + rtl8168_mdio_write(tp, 0x19, 0x7d00); + rtl8168_mdio_write(tp, 0x18, 0x1aa4); + rtl8168_mdio_write(tp, 0x19, 0x9600); + rtl8168_mdio_write(tp, 0x18, 0x1ac4); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x1ad4); + rtl8168_mdio_write(tp, 0x19, 0x0800); + rtl8168_mdio_write(tp, 0x18, 0x1af4); + rtl8168_mdio_write(tp, 0x19, 0xc400); + rtl8168_mdio_write(tp, 0x18, 0x1b04); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x1b14); + rtl8168_mdio_write(tp, 0x19, 0x0800); + rtl8168_mdio_write(tp, 0x18, 0x1b24); + rtl8168_mdio_write(tp, 0x19, 0xfd00); + rtl8168_mdio_write(tp, 0x18, 0x1b34); + rtl8168_mdio_write(tp, 0x19, 0x4000); + rtl8168_mdio_write(tp, 0x18, 0x1b44); + rtl8168_mdio_write(tp, 0x19, 0x0400); + rtl8168_mdio_write(tp, 0x18, 0x1b94); + rtl8168_mdio_write(tp, 0x19, 0xf100); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x17, 0x2100); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0040); + rtl8168_mdio_write(tp, 0x18, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x0115); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x2202); + rtl8168_mdio_write(tp, 0x06, 0x80a0); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x3f02); + rtl8168_mdio_write(tp, 0x06, 0x0159); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0xbd02); + rtl8168_mdio_write(tp, 0x06, 0x80da); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xd481); + rtl8168_mdio_write(tp, 0x06, 0xd2e4); + rtl8168_mdio_write(tp, 0x06, 0x8b92); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x93d1); + rtl8168_mdio_write(tp, 0x06, 0x03bf); + rtl8168_mdio_write(tp, 0x06, 0x859e); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23d1); + rtl8168_mdio_write(tp, 0x06, 0x02bf); + rtl8168_mdio_write(tp, 0x06, 0x85a1); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23ee); + rtl8168_mdio_write(tp, 0x06, 0x8608); + rtl8168_mdio_write(tp, 0x06, 0x03ee); + rtl8168_mdio_write(tp, 0x06, 0x860a); + rtl8168_mdio_write(tp, 0x06, 0x60ee); + rtl8168_mdio_write(tp, 0x06, 0x8610); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8611); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x07ee); + rtl8168_mdio_write(tp, 0x06, 0x8abf); + rtl8168_mdio_write(tp, 0x06, 0x73ee); + rtl8168_mdio_write(tp, 0x06, 0x8a95); + rtl8168_mdio_write(tp, 0x06, 0x02bf); + rtl8168_mdio_write(tp, 0x06, 0x8b88); + rtl8168_mdio_write(tp, 0x06, 0xec00); + rtl8168_mdio_write(tp, 0x06, 0x19a9); + rtl8168_mdio_write(tp, 0x06, 0x8b90); + rtl8168_mdio_write(tp, 0x06, 0xf9ee); + rtl8168_mdio_write(tp, 0x06, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xfed1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8595); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23d1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x8598); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x2304); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8a); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x14ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8a); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x1f9a); + rtl8168_mdio_write(tp, 0x06, 0xe0e4); + rtl8168_mdio_write(tp, 0x06, 0x26e1); + rtl8168_mdio_write(tp, 0x06, 0xe427); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x2623); + rtl8168_mdio_write(tp, 0x06, 0xe5e4); + rtl8168_mdio_write(tp, 0x06, 0x27fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8dad); + rtl8168_mdio_write(tp, 0x06, 0x2014); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8d00); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0x5a78); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x0902); + rtl8168_mdio_write(tp, 0x06, 0x05db); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x7b02); + rtl8168_mdio_write(tp, 0x06, 0x3231); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x1df6); + rtl8168_mdio_write(tp, 0x06, 0x20e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x5c02); + rtl8168_mdio_write(tp, 0x06, 0x2bcb); + rtl8168_mdio_write(tp, 0x06, 0x022d); + rtl8168_mdio_write(tp, 0x06, 0x2902); + rtl8168_mdio_write(tp, 0x06, 0x03b4); + rtl8168_mdio_write(tp, 0x06, 0x0285); + rtl8168_mdio_write(tp, 0x06, 0x6402); + rtl8168_mdio_write(tp, 0x06, 0x2eca); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0xcd02); + rtl8168_mdio_write(tp, 0x06, 0x046f); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x210b); + rtl8168_mdio_write(tp, 0x06, 0xf621); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x8520); + rtl8168_mdio_write(tp, 0x06, 0x021b); + rtl8168_mdio_write(tp, 0x06, 0xe8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x22e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2308); + rtl8168_mdio_write(tp, 0x06, 0xf623); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x311c); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2405); + rtl8168_mdio_write(tp, 0x06, 0xf624); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x25e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2608); + rtl8168_mdio_write(tp, 0x06, 0xf626); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x2df5); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2705); + rtl8168_mdio_write(tp, 0x06, 0xf627); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x037a); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x65d2); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x2fe9); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf61e); + rtl8168_mdio_write(tp, 0x06, 0x21bf); + rtl8168_mdio_write(tp, 0x06, 0x2ff5); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf60c); + rtl8168_mdio_write(tp, 0x06, 0x111e); + rtl8168_mdio_write(tp, 0x06, 0x21bf); + rtl8168_mdio_write(tp, 0x06, 0x2ff8); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf60c); + rtl8168_mdio_write(tp, 0x06, 0x121e); + rtl8168_mdio_write(tp, 0x06, 0x21bf); + rtl8168_mdio_write(tp, 0x06, 0x2ffb); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf60c); + rtl8168_mdio_write(tp, 0x06, 0x131e); + rtl8168_mdio_write(tp, 0x06, 0x21bf); + rtl8168_mdio_write(tp, 0x06, 0x1f97); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf60c); + rtl8168_mdio_write(tp, 0x06, 0x141e); + rtl8168_mdio_write(tp, 0x06, 0x21bf); + rtl8168_mdio_write(tp, 0x06, 0x859b); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf60c); + rtl8168_mdio_write(tp, 0x06, 0x161e); + rtl8168_mdio_write(tp, 0x06, 0x21e0); + rtl8168_mdio_write(tp, 0x06, 0x8a8c); + rtl8168_mdio_write(tp, 0x06, 0x1f02); + rtl8168_mdio_write(tp, 0x06, 0x9e22); + rtl8168_mdio_write(tp, 0x06, 0xe68a); + rtl8168_mdio_write(tp, 0x06, 0x8cad); + rtl8168_mdio_write(tp, 0x06, 0x3114); + rtl8168_mdio_write(tp, 0x06, 0xad30); + rtl8168_mdio_write(tp, 0x06, 0x11ef); + rtl8168_mdio_write(tp, 0x06, 0x0258); + rtl8168_mdio_write(tp, 0x06, 0x0c9e); + rtl8168_mdio_write(tp, 0x06, 0x07ad); + rtl8168_mdio_write(tp, 0x06, 0x3608); + rtl8168_mdio_write(tp, 0x06, 0x5a30); + rtl8168_mdio_write(tp, 0x06, 0x9f04); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xae02); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf2f); + rtl8168_mdio_write(tp, 0x06, 0xf202); + rtl8168_mdio_write(tp, 0x06, 0x3723); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xface); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69fa); + rtl8168_mdio_write(tp, 0x06, 0xd401); + rtl8168_mdio_write(tp, 0x06, 0x55b4); + rtl8168_mdio_write(tp, 0x06, 0xfebf); + rtl8168_mdio_write(tp, 0x06, 0x85a7); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf6ac); + rtl8168_mdio_write(tp, 0x06, 0x280b); + rtl8168_mdio_write(tp, 0x06, 0xbf85); + rtl8168_mdio_write(tp, 0x06, 0xa402); + rtl8168_mdio_write(tp, 0x06, 0x36f6); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x49ae); + rtl8168_mdio_write(tp, 0x06, 0x64bf); + rtl8168_mdio_write(tp, 0x06, 0x85a4); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf6ac); + rtl8168_mdio_write(tp, 0x06, 0x285b); + rtl8168_mdio_write(tp, 0x06, 0xd000); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x60ac); + rtl8168_mdio_write(tp, 0x06, 0x2105); + rtl8168_mdio_write(tp, 0x06, 0xac22); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x4ebf); + rtl8168_mdio_write(tp, 0x06, 0xe0c4); + rtl8168_mdio_write(tp, 0x06, 0xbe86); + rtl8168_mdio_write(tp, 0x06, 0x14d2); + rtl8168_mdio_write(tp, 0x06, 0x04d8); + rtl8168_mdio_write(tp, 0x06, 0x19d9); + rtl8168_mdio_write(tp, 0x06, 0x1907); + rtl8168_mdio_write(tp, 0x06, 0xdc19); + rtl8168_mdio_write(tp, 0x06, 0xdd19); + rtl8168_mdio_write(tp, 0x06, 0x0789); + rtl8168_mdio_write(tp, 0x06, 0x89ef); + rtl8168_mdio_write(tp, 0x06, 0x645e); + rtl8168_mdio_write(tp, 0x06, 0x07ff); + rtl8168_mdio_write(tp, 0x06, 0x0d65); + rtl8168_mdio_write(tp, 0x06, 0x5cf8); + rtl8168_mdio_write(tp, 0x06, 0x001e); + rtl8168_mdio_write(tp, 0x06, 0x46dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0x19b2); + rtl8168_mdio_write(tp, 0x06, 0xe2d4); + rtl8168_mdio_write(tp, 0x06, 0x0001); + rtl8168_mdio_write(tp, 0x06, 0xbf85); + rtl8168_mdio_write(tp, 0x06, 0xa402); + rtl8168_mdio_write(tp, 0x06, 0x3723); + rtl8168_mdio_write(tp, 0x06, 0xae1d); + rtl8168_mdio_write(tp, 0x06, 0xbee0); + rtl8168_mdio_write(tp, 0x06, 0xc4bf); + rtl8168_mdio_write(tp, 0x06, 0x8614); + rtl8168_mdio_write(tp, 0x06, 0xd204); + rtl8168_mdio_write(tp, 0x06, 0xd819); + rtl8168_mdio_write(tp, 0x06, 0xd919); + rtl8168_mdio_write(tp, 0x06, 0x07dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0x1907); + rtl8168_mdio_write(tp, 0x06, 0xb2f4); + rtl8168_mdio_write(tp, 0x06, 0xd400); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x85a4); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23fe); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfec6); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc05); + rtl8168_mdio_write(tp, 0x06, 0xf9e2); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0xeb5a); + rtl8168_mdio_write(tp, 0x06, 0x070c); + rtl8168_mdio_write(tp, 0x06, 0x031e); + rtl8168_mdio_write(tp, 0x06, 0x20e6); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe7e0); + rtl8168_mdio_write(tp, 0x06, 0xebe0); + rtl8168_mdio_write(tp, 0x06, 0xe0fc); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xfdfd); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac26); + rtl8168_mdio_write(tp, 0x06, 0x1ae0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x14e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xac20); + rtl8168_mdio_write(tp, 0x06, 0x0ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xac23); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xac24); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0x1ab5); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x1c04); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x1d04); + rtl8168_mdio_write(tp, 0x06, 0xe2e0); + rtl8168_mdio_write(tp, 0x06, 0x7ce3); + rtl8168_mdio_write(tp, 0x06, 0xe07d); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x38e1); + rtl8168_mdio_write(tp, 0x06, 0xe039); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x1bad); + rtl8168_mdio_write(tp, 0x06, 0x390d); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf21); + rtl8168_mdio_write(tp, 0x06, 0xd502); + rtl8168_mdio_write(tp, 0x06, 0x3723); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xd8ae); + rtl8168_mdio_write(tp, 0x06, 0x0bac); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0x1802); + rtl8168_mdio_write(tp, 0x06, 0x8360); + rtl8168_mdio_write(tp, 0x06, 0x021a); + rtl8168_mdio_write(tp, 0x06, 0xc6fd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2605); + rtl8168_mdio_write(tp, 0x06, 0x0222); + rtl8168_mdio_write(tp, 0x06, 0xa4f7); + rtl8168_mdio_write(tp, 0x06, 0x28e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xad21); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x23a9); + rtl8168_mdio_write(tp, 0x06, 0xf729); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2005); + rtl8168_mdio_write(tp, 0x06, 0x0214); + rtl8168_mdio_write(tp, 0x06, 0xabf7); + rtl8168_mdio_write(tp, 0x06, 0x2ae0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad23); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x12e7); + rtl8168_mdio_write(tp, 0x06, 0xf72b); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2405); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0xbcf7); + rtl8168_mdio_write(tp, 0x06, 0x2ce5); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x21e5); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2109); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xf4ac); + rtl8168_mdio_write(tp, 0x06, 0x2003); + rtl8168_mdio_write(tp, 0x06, 0x0223); + rtl8168_mdio_write(tp, 0x06, 0x98e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x09e0); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x13fb); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2309); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xf4ac); + rtl8168_mdio_write(tp, 0x06, 0x2203); + rtl8168_mdio_write(tp, 0x06, 0x0212); + rtl8168_mdio_write(tp, 0x06, 0xfae0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x09e0); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xac23); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x83c1); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2608); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0xd2ad); + rtl8168_mdio_write(tp, 0x06, 0x2502); + rtl8168_mdio_write(tp, 0x06, 0xf628); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x210a); + rtl8168_mdio_write(tp, 0x06, 0xe084); + rtl8168_mdio_write(tp, 0x06, 0x0af6); + rtl8168_mdio_write(tp, 0x06, 0x27a0); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0xf629); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2008); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xe8ad); + rtl8168_mdio_write(tp, 0x06, 0x2102); + rtl8168_mdio_write(tp, 0x06, 0xf62a); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2308); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x20a0); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0xf62b); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2408); + rtl8168_mdio_write(tp, 0x06, 0xe086); + rtl8168_mdio_write(tp, 0x06, 0x02a0); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0xf62c); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xf4a1); + rtl8168_mdio_write(tp, 0x06, 0x0008); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf21); + rtl8168_mdio_write(tp, 0x06, 0xd502); + rtl8168_mdio_write(tp, 0x06, 0x3723); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x0200); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x241e); + rtl8168_mdio_write(tp, 0x06, 0xe086); + rtl8168_mdio_write(tp, 0x06, 0x02a0); + rtl8168_mdio_write(tp, 0x06, 0x0005); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0xe8ae); + rtl8168_mdio_write(tp, 0x06, 0xf5a0); + rtl8168_mdio_write(tp, 0x06, 0x0105); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0xf8ae); + rtl8168_mdio_write(tp, 0x06, 0x0ba0); + rtl8168_mdio_write(tp, 0x06, 0x0205); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0x14ae); + rtl8168_mdio_write(tp, 0x06, 0x03a0); + rtl8168_mdio_write(tp, 0x06, 0x0300); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0x2bee); + rtl8168_mdio_write(tp, 0x06, 0x8602); + rtl8168_mdio_write(tp, 0x06, 0x01ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8ee); + rtl8168_mdio_write(tp, 0x06, 0x8609); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x8461); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xae10); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8608); + rtl8168_mdio_write(tp, 0x06, 0xe186); + rtl8168_mdio_write(tp, 0x06, 0x091f); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x0611); + rtl8168_mdio_write(tp, 0x06, 0xe586); + rtl8168_mdio_write(tp, 0x06, 0x09ae); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x8602); + rtl8168_mdio_write(tp, 0x06, 0x01fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfbbf); + rtl8168_mdio_write(tp, 0x06, 0x8604); + rtl8168_mdio_write(tp, 0x06, 0xef79); + rtl8168_mdio_write(tp, 0x06, 0xd200); + rtl8168_mdio_write(tp, 0x06, 0xd400); + rtl8168_mdio_write(tp, 0x06, 0x221e); + rtl8168_mdio_write(tp, 0x06, 0x02bf); + rtl8168_mdio_write(tp, 0x06, 0x2fec); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23bf); + rtl8168_mdio_write(tp, 0x06, 0x13f2); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf60d); + rtl8168_mdio_write(tp, 0x06, 0x4559); + rtl8168_mdio_write(tp, 0x06, 0x1fef); + rtl8168_mdio_write(tp, 0x06, 0x97dd); + rtl8168_mdio_write(tp, 0x06, 0xd308); + rtl8168_mdio_write(tp, 0x06, 0x1a93); + rtl8168_mdio_write(tp, 0x06, 0xdd12); + rtl8168_mdio_write(tp, 0x06, 0x17a2); + rtl8168_mdio_write(tp, 0x06, 0x04de); + rtl8168_mdio_write(tp, 0x06, 0xffef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfbee); + rtl8168_mdio_write(tp, 0x06, 0x8602); + rtl8168_mdio_write(tp, 0x06, 0x03d5); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x06, 0xbf86); + rtl8168_mdio_write(tp, 0x06, 0x04ef); + rtl8168_mdio_write(tp, 0x06, 0x79ef); + rtl8168_mdio_write(tp, 0x06, 0x45bf); + rtl8168_mdio_write(tp, 0x06, 0x2fec); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23bf); + rtl8168_mdio_write(tp, 0x06, 0x13f2); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf6ad); + rtl8168_mdio_write(tp, 0x06, 0x2702); + rtl8168_mdio_write(tp, 0x06, 0x78ff); + rtl8168_mdio_write(tp, 0x06, 0xe186); + rtl8168_mdio_write(tp, 0x06, 0x0a1b); + rtl8168_mdio_write(tp, 0x06, 0x01aa); + rtl8168_mdio_write(tp, 0x06, 0x2eef); + rtl8168_mdio_write(tp, 0x06, 0x97d9); + rtl8168_mdio_write(tp, 0x06, 0x7900); + rtl8168_mdio_write(tp, 0x06, 0x9e2b); + rtl8168_mdio_write(tp, 0x06, 0x81dd); + rtl8168_mdio_write(tp, 0x06, 0xbf85); + rtl8168_mdio_write(tp, 0x06, 0xad02); + rtl8168_mdio_write(tp, 0x06, 0x3723); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xef02); + rtl8168_mdio_write(tp, 0x06, 0x100c); + rtl8168_mdio_write(tp, 0x06, 0x11b0); + rtl8168_mdio_write(tp, 0x06, 0xfc0d); + rtl8168_mdio_write(tp, 0x06, 0x11bf); + rtl8168_mdio_write(tp, 0x06, 0x85aa); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x85aa); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x23ee); + rtl8168_mdio_write(tp, 0x06, 0x8602); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x0413); + rtl8168_mdio_write(tp, 0x06, 0xa38b); + rtl8168_mdio_write(tp, 0x06, 0xb4d3); + rtl8168_mdio_write(tp, 0x06, 0x8012); + rtl8168_mdio_write(tp, 0x06, 0x17a2); + rtl8168_mdio_write(tp, 0x06, 0x04ad); + rtl8168_mdio_write(tp, 0x06, 0xffef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x48e0); + rtl8168_mdio_write(tp, 0x06, 0x8a96); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0x977c); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x9e35); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x9600); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x9700); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xbee1); + rtl8168_mdio_write(tp, 0x06, 0x8abf); + rtl8168_mdio_write(tp, 0x06, 0xe286); + rtl8168_mdio_write(tp, 0x06, 0x10e3); + rtl8168_mdio_write(tp, 0x06, 0x8611); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0x1aad); + rtl8168_mdio_write(tp, 0x06, 0x2012); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x9603); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x97b7); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x1000); + rtl8168_mdio_write(tp, 0x06, 0xee86); + rtl8168_mdio_write(tp, 0x06, 0x1100); + rtl8168_mdio_write(tp, 0x06, 0xae11); + rtl8168_mdio_write(tp, 0x06, 0x15e6); + rtl8168_mdio_write(tp, 0x06, 0x8610); + rtl8168_mdio_write(tp, 0x06, 0xe786); + rtl8168_mdio_write(tp, 0x06, 0x11ae); + rtl8168_mdio_write(tp, 0x06, 0x08ee); + rtl8168_mdio_write(tp, 0x06, 0x8610); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8611); + rtl8168_mdio_write(tp, 0x06, 0x00fd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe001); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x32e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf720); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40bf); + rtl8168_mdio_write(tp, 0x06, 0x31f5); + rtl8168_mdio_write(tp, 0x06, 0x0236); + rtl8168_mdio_write(tp, 0x06, 0xf6ad); + rtl8168_mdio_write(tp, 0x06, 0x2821); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x20e1); + rtl8168_mdio_write(tp, 0x06, 0xe021); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x18e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40ee); + rtl8168_mdio_write(tp, 0x06, 0x8b3b); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0x8a8a); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0x8be4); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0x01ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x80ad); + rtl8168_mdio_write(tp, 0x06, 0x2722); + rtl8168_mdio_write(tp, 0x06, 0xbf44); + rtl8168_mdio_write(tp, 0x06, 0xfc02); + rtl8168_mdio_write(tp, 0x06, 0x36f6); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x441f); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x15e5); + rtl8168_mdio_write(tp, 0x06, 0x8b44); + rtl8168_mdio_write(tp, 0x06, 0xad29); + rtl8168_mdio_write(tp, 0x06, 0x07ac); + rtl8168_mdio_write(tp, 0x06, 0x2804); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xae02); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf85); + rtl8168_mdio_write(tp, 0x06, 0xb002); + rtl8168_mdio_write(tp, 0x06, 0x3723); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x0400); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0x77e1); + rtl8168_mdio_write(tp, 0x06, 0x40dd); + rtl8168_mdio_write(tp, 0x06, 0xe022); + rtl8168_mdio_write(tp, 0x06, 0x32e1); + rtl8168_mdio_write(tp, 0x06, 0x5074); + rtl8168_mdio_write(tp, 0x06, 0xe144); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0xdaff); + rtl8168_mdio_write(tp, 0x06, 0xe0c0); + rtl8168_mdio_write(tp, 0x06, 0x52e0); + rtl8168_mdio_write(tp, 0x06, 0xeed9); + rtl8168_mdio_write(tp, 0x06, 0xe04c); + rtl8168_mdio_write(tp, 0x06, 0xbbe0); + rtl8168_mdio_write(tp, 0x06, 0x2a00); + rtl8168_mdio_write(tp, 0x05, 0xe142); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x05, 0xe140); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0042); + rtl8168_mdio_write(tp, 0x18, 0x2300); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + if (tp->RequiredSecLanDonglePatch) { + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~BIT_2; + rtl8168_mdio_write(tp, 0x17, gphy_val); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x9200); +} + +static void +rtl8168_set_phy_mcu_8168f_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val,i; + + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x1800); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val &= ~(BIT_12); + rtl8168_mdio_write(tp,0x15, gphy_val); + rtl8168_mdio_write(tp,0x00, 0x4800); + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x002f); + for (i = 0; i < 1000; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1c); + if (gphy_val & 0x0080) + break; + } + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x1800); + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x0023); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x18); + if (!(gphy_val & 0x0001)) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x0194); + rtl8168_mdio_write(tp, 0x19, 0x407D); + rtl8168_mdio_write(tp, 0x15, 0x0098); + rtl8168_mdio_write(tp, 0x19, 0x7c0b); + rtl8168_mdio_write(tp, 0x15, 0x0099); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00eb); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00f8); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00fe); + rtl8168_mdio_write(tp, 0x19, 0x6f0f); + rtl8168_mdio_write(tp, 0x15, 0x00db); + rtl8168_mdio_write(tp, 0x19, 0x6f09); + rtl8168_mdio_write(tp, 0x15, 0x00dc); + rtl8168_mdio_write(tp, 0x19, 0xaefd); + rtl8168_mdio_write(tp, 0x15, 0x00dd); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00de); + rtl8168_mdio_write(tp, 0x19, 0xc60b); + rtl8168_mdio_write(tp, 0x15, 0x00df); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00e0); + rtl8168_mdio_write(tp, 0x19, 0x30e1); + rtl8168_mdio_write(tp, 0x15, 0x020c); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x020e); + rtl8168_mdio_write(tp, 0x19, 0x9813); + rtl8168_mdio_write(tp, 0x15, 0x020f); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0210); + rtl8168_mdio_write(tp, 0x19, 0x930f); + rtl8168_mdio_write(tp, 0x15, 0x0211); + rtl8168_mdio_write(tp, 0x19, 0x9206); + rtl8168_mdio_write(tp, 0x15, 0x0212); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0213); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0214); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0215); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0216); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0217); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0218); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0219); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x021a); + rtl8168_mdio_write(tp, 0x19, 0x5540); + rtl8168_mdio_write(tp, 0x15, 0x021b); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x021c); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x021d); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x021e); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x021f); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0220); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0221); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x0222); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0223); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x0224); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0225); + rtl8168_mdio_write(tp, 0x19, 0x3231); + rtl8168_mdio_write(tp, 0x15, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x0118); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x2502); + rtl8168_mdio_write(tp, 0x06, 0x8090); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x4202); + rtl8168_mdio_write(tp, 0x06, 0x015c); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0xad02); + rtl8168_mdio_write(tp, 0x06, 0x80ca); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xd484); + rtl8168_mdio_write(tp, 0x06, 0x3ce4); + rtl8168_mdio_write(tp, 0x06, 0x8b92); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x93ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac8); + rtl8168_mdio_write(tp, 0x06, 0x03ee); + rtl8168_mdio_write(tp, 0x06, 0x8aca); + rtl8168_mdio_write(tp, 0x06, 0x60ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac0); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac1); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8abe); + rtl8168_mdio_write(tp, 0x06, 0x07ee); + rtl8168_mdio_write(tp, 0x06, 0x8abf); + rtl8168_mdio_write(tp, 0x06, 0x73ee); + rtl8168_mdio_write(tp, 0x06, 0x8a95); + rtl8168_mdio_write(tp, 0x06, 0x02bf); + rtl8168_mdio_write(tp, 0x06, 0x8b88); + rtl8168_mdio_write(tp, 0x06, 0xec00); + rtl8168_mdio_write(tp, 0x06, 0x19a9); + rtl8168_mdio_write(tp, 0x06, 0x8b90); + rtl8168_mdio_write(tp, 0x06, 0xf9ee); + rtl8168_mdio_write(tp, 0x06, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xfed1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x85a4); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7dd1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x85a7); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7d04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8a); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x14ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8a); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x204b); + rtl8168_mdio_write(tp, 0x06, 0xe0e4); + rtl8168_mdio_write(tp, 0x06, 0x26e1); + rtl8168_mdio_write(tp, 0x06, 0xe427); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x2623); + rtl8168_mdio_write(tp, 0x06, 0xe5e4); + rtl8168_mdio_write(tp, 0x06, 0x27fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8dad); + rtl8168_mdio_write(tp, 0x06, 0x2014); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8d00); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0x5a78); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x0902); + rtl8168_mdio_write(tp, 0x06, 0x05e8); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x4f02); + rtl8168_mdio_write(tp, 0x06, 0x326c); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x1df6); + rtl8168_mdio_write(tp, 0x06, 0x20e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x0902); + rtl8168_mdio_write(tp, 0x06, 0x2ab0); + rtl8168_mdio_write(tp, 0x06, 0x0285); + rtl8168_mdio_write(tp, 0x06, 0x1602); + rtl8168_mdio_write(tp, 0x06, 0x03ba); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0xe502); + rtl8168_mdio_write(tp, 0x06, 0x2df1); + rtl8168_mdio_write(tp, 0x06, 0x0283); + rtl8168_mdio_write(tp, 0x06, 0x8302); + rtl8168_mdio_write(tp, 0x06, 0x0475); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x210b); + rtl8168_mdio_write(tp, 0x06, 0xf621); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x83f8); + rtl8168_mdio_write(tp, 0x06, 0x021c); + rtl8168_mdio_write(tp, 0x06, 0x99e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x22e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0235); + rtl8168_mdio_write(tp, 0x06, 0x63e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad23); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x23e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0231); + rtl8168_mdio_write(tp, 0x06, 0x57e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x24e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2505); + rtl8168_mdio_write(tp, 0x06, 0xf625); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x26e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x022d); + rtl8168_mdio_write(tp, 0x06, 0x1ce0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x27e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x80fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac26); + rtl8168_mdio_write(tp, 0x06, 0x1ae0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x14e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xac20); + rtl8168_mdio_write(tp, 0x06, 0x0ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xac23); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xac24); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0x1ac2); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x1c04); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x1d04); + rtl8168_mdio_write(tp, 0x06, 0xe2e0); + rtl8168_mdio_write(tp, 0x06, 0x7ce3); + rtl8168_mdio_write(tp, 0x06, 0xe07d); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x38e1); + rtl8168_mdio_write(tp, 0x06, 0xe039); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x1bad); + rtl8168_mdio_write(tp, 0x06, 0x390d); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf22); + rtl8168_mdio_write(tp, 0x06, 0x7a02); + rtl8168_mdio_write(tp, 0x06, 0x387d); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xacae); + rtl8168_mdio_write(tp, 0x06, 0x0bac); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xe902); + rtl8168_mdio_write(tp, 0x06, 0x822e); + rtl8168_mdio_write(tp, 0x06, 0x021a); + rtl8168_mdio_write(tp, 0x06, 0xd3fd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2602); + rtl8168_mdio_write(tp, 0x06, 0xf728); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2105); + rtl8168_mdio_write(tp, 0x06, 0x0222); + rtl8168_mdio_write(tp, 0x06, 0x8ef7); + rtl8168_mdio_write(tp, 0x06, 0x29e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x14b8); + rtl8168_mdio_write(tp, 0x06, 0xf72a); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2305); + rtl8168_mdio_write(tp, 0x06, 0x0212); + rtl8168_mdio_write(tp, 0x06, 0xf4f7); + rtl8168_mdio_write(tp, 0x06, 0x2be0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0x8284); + rtl8168_mdio_write(tp, 0x06, 0xf72c); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xf4fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2600); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2109); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xf4ac); + rtl8168_mdio_write(tp, 0x06, 0x2003); + rtl8168_mdio_write(tp, 0x06, 0x0222); + rtl8168_mdio_write(tp, 0x06, 0x7de0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x09e0); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x1408); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2309); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xf4ac); + rtl8168_mdio_write(tp, 0x06, 0x2203); + rtl8168_mdio_write(tp, 0x06, 0x0213); + rtl8168_mdio_write(tp, 0x06, 0x07e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x09e0); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xac23); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0x8289); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e1); + rtl8168_mdio_write(tp, 0x06, 0x8af4); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x2602); + rtl8168_mdio_write(tp, 0x06, 0xf628); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ad); + rtl8168_mdio_write(tp, 0x06, 0x210a); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0xecf6); + rtl8168_mdio_write(tp, 0x06, 0x27a0); + rtl8168_mdio_write(tp, 0x06, 0x0502); + rtl8168_mdio_write(tp, 0x06, 0xf629); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2008); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xe8ad); + rtl8168_mdio_write(tp, 0x06, 0x2102); + rtl8168_mdio_write(tp, 0x06, 0xf62a); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ad); + rtl8168_mdio_write(tp, 0x06, 0x2308); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x20a0); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0xf62b); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x2408); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xc2a0); + rtl8168_mdio_write(tp, 0x06, 0x0302); + rtl8168_mdio_write(tp, 0x06, 0xf62c); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xf4a1); + rtl8168_mdio_write(tp, 0x06, 0x0008); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf22); + rtl8168_mdio_write(tp, 0x06, 0x7a02); + rtl8168_mdio_write(tp, 0x06, 0x387d); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xc200); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ad); + rtl8168_mdio_write(tp, 0x06, 0x241e); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xc2a0); + rtl8168_mdio_write(tp, 0x06, 0x0005); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xb0ae); + rtl8168_mdio_write(tp, 0x06, 0xf5a0); + rtl8168_mdio_write(tp, 0x06, 0x0105); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xc0ae); + rtl8168_mdio_write(tp, 0x06, 0x0ba0); + rtl8168_mdio_write(tp, 0x06, 0x0205); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xcaae); + rtl8168_mdio_write(tp, 0x06, 0x03a0); + rtl8168_mdio_write(tp, 0x06, 0x0300); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xe1ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac2); + rtl8168_mdio_write(tp, 0x06, 0x01ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac9); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x8317); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8ac8); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xc91f); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x0611); + rtl8168_mdio_write(tp, 0x06, 0xe58a); + rtl8168_mdio_write(tp, 0x06, 0xc9ae); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac2); + rtl8168_mdio_write(tp, 0x06, 0x01fc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfbbf); + rtl8168_mdio_write(tp, 0x06, 0x8ac4); + rtl8168_mdio_write(tp, 0x06, 0xef79); + rtl8168_mdio_write(tp, 0x06, 0xd200); + rtl8168_mdio_write(tp, 0x06, 0xd400); + rtl8168_mdio_write(tp, 0x06, 0x221e); + rtl8168_mdio_write(tp, 0x06, 0x02bf); + rtl8168_mdio_write(tp, 0x06, 0x3024); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7dbf); + rtl8168_mdio_write(tp, 0x06, 0x13ff); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x500d); + rtl8168_mdio_write(tp, 0x06, 0x4559); + rtl8168_mdio_write(tp, 0x06, 0x1fef); + rtl8168_mdio_write(tp, 0x06, 0x97dd); + rtl8168_mdio_write(tp, 0x06, 0xd308); + rtl8168_mdio_write(tp, 0x06, 0x1a93); + rtl8168_mdio_write(tp, 0x06, 0xdd12); + rtl8168_mdio_write(tp, 0x06, 0x17a2); + rtl8168_mdio_write(tp, 0x06, 0x04de); + rtl8168_mdio_write(tp, 0x06, 0xffef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xfbee); + rtl8168_mdio_write(tp, 0x06, 0x8ac2); + rtl8168_mdio_write(tp, 0x06, 0x03d5); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x06, 0xbf8a); + rtl8168_mdio_write(tp, 0x06, 0xc4ef); + rtl8168_mdio_write(tp, 0x06, 0x79ef); + rtl8168_mdio_write(tp, 0x06, 0x45bf); + rtl8168_mdio_write(tp, 0x06, 0x3024); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7dbf); + rtl8168_mdio_write(tp, 0x06, 0x13ff); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x50ad); + rtl8168_mdio_write(tp, 0x06, 0x2702); + rtl8168_mdio_write(tp, 0x06, 0x78ff); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0xca1b); + rtl8168_mdio_write(tp, 0x06, 0x01aa); + rtl8168_mdio_write(tp, 0x06, 0x2eef); + rtl8168_mdio_write(tp, 0x06, 0x97d9); + rtl8168_mdio_write(tp, 0x06, 0x7900); + rtl8168_mdio_write(tp, 0x06, 0x9e2b); + rtl8168_mdio_write(tp, 0x06, 0x81dd); + rtl8168_mdio_write(tp, 0x06, 0xbf85); + rtl8168_mdio_write(tp, 0x06, 0xad02); + rtl8168_mdio_write(tp, 0x06, 0x387d); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xef02); + rtl8168_mdio_write(tp, 0x06, 0x100c); + rtl8168_mdio_write(tp, 0x06, 0x11b0); + rtl8168_mdio_write(tp, 0x06, 0xfc0d); + rtl8168_mdio_write(tp, 0x06, 0x11bf); + rtl8168_mdio_write(tp, 0x06, 0x85aa); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7dd1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x85aa); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7dee); + rtl8168_mdio_write(tp, 0x06, 0x8ac2); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x0413); + rtl8168_mdio_write(tp, 0x06, 0xa38b); + rtl8168_mdio_write(tp, 0x06, 0xb4d3); + rtl8168_mdio_write(tp, 0x06, 0x8012); + rtl8168_mdio_write(tp, 0x06, 0x17a2); + rtl8168_mdio_write(tp, 0x06, 0x04ad); + rtl8168_mdio_write(tp, 0x06, 0xffef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x48e0); + rtl8168_mdio_write(tp, 0x06, 0x8a96); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0x977c); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x9e35); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x9600); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x9700); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0xbee1); + rtl8168_mdio_write(tp, 0x06, 0x8abf); + rtl8168_mdio_write(tp, 0x06, 0xe28a); + rtl8168_mdio_write(tp, 0x06, 0xc0e3); + rtl8168_mdio_write(tp, 0x06, 0x8ac1); + rtl8168_mdio_write(tp, 0x06, 0x0237); + rtl8168_mdio_write(tp, 0x06, 0x74ad); + rtl8168_mdio_write(tp, 0x06, 0x2012); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x9603); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0x97b7); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xc000); + rtl8168_mdio_write(tp, 0x06, 0xee8a); + rtl8168_mdio_write(tp, 0x06, 0xc100); + rtl8168_mdio_write(tp, 0x06, 0xae11); + rtl8168_mdio_write(tp, 0x06, 0x15e6); + rtl8168_mdio_write(tp, 0x06, 0x8ac0); + rtl8168_mdio_write(tp, 0x06, 0xe78a); + rtl8168_mdio_write(tp, 0x06, 0xc1ae); + rtl8168_mdio_write(tp, 0x06, 0x08ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac0); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8ac1); + rtl8168_mdio_write(tp, 0x06, 0x00fd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xae20); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe001); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x32e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf720); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40bf); + rtl8168_mdio_write(tp, 0x06, 0x3230); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x50ad); + rtl8168_mdio_write(tp, 0x06, 0x2821); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x20e1); + rtl8168_mdio_write(tp, 0x06, 0xe021); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x18e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40ee); + rtl8168_mdio_write(tp, 0x06, 0x8b3b); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0x8a8a); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0x8be4); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0x01ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xface); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69fa); + rtl8168_mdio_write(tp, 0x06, 0xd401); + rtl8168_mdio_write(tp, 0x06, 0x55b4); + rtl8168_mdio_write(tp, 0x06, 0xfebf); + rtl8168_mdio_write(tp, 0x06, 0x1c1e); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x50ac); + rtl8168_mdio_write(tp, 0x06, 0x280b); + rtl8168_mdio_write(tp, 0x06, 0xbf1c); + rtl8168_mdio_write(tp, 0x06, 0x1b02); + rtl8168_mdio_write(tp, 0x06, 0x3850); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x49ae); + rtl8168_mdio_write(tp, 0x06, 0x64bf); + rtl8168_mdio_write(tp, 0x06, 0x1c1b); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x50ac); + rtl8168_mdio_write(tp, 0x06, 0x285b); + rtl8168_mdio_write(tp, 0x06, 0xd000); + rtl8168_mdio_write(tp, 0x06, 0x0284); + rtl8168_mdio_write(tp, 0x06, 0xcaac); + rtl8168_mdio_write(tp, 0x06, 0x2105); + rtl8168_mdio_write(tp, 0x06, 0xac22); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x4ebf); + rtl8168_mdio_write(tp, 0x06, 0xe0c4); + rtl8168_mdio_write(tp, 0x06, 0xbe85); + rtl8168_mdio_write(tp, 0x06, 0xf6d2); + rtl8168_mdio_write(tp, 0x06, 0x04d8); + rtl8168_mdio_write(tp, 0x06, 0x19d9); + rtl8168_mdio_write(tp, 0x06, 0x1907); + rtl8168_mdio_write(tp, 0x06, 0xdc19); + rtl8168_mdio_write(tp, 0x06, 0xdd19); + rtl8168_mdio_write(tp, 0x06, 0x0789); + rtl8168_mdio_write(tp, 0x06, 0x89ef); + rtl8168_mdio_write(tp, 0x06, 0x645e); + rtl8168_mdio_write(tp, 0x06, 0x07ff); + rtl8168_mdio_write(tp, 0x06, 0x0d65); + rtl8168_mdio_write(tp, 0x06, 0x5cf8); + rtl8168_mdio_write(tp, 0x06, 0x001e); + rtl8168_mdio_write(tp, 0x06, 0x46dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0x19b2); + rtl8168_mdio_write(tp, 0x06, 0xe2d4); + rtl8168_mdio_write(tp, 0x06, 0x0001); + rtl8168_mdio_write(tp, 0x06, 0xbf1c); + rtl8168_mdio_write(tp, 0x06, 0x1b02); + rtl8168_mdio_write(tp, 0x06, 0x387d); + rtl8168_mdio_write(tp, 0x06, 0xae1d); + rtl8168_mdio_write(tp, 0x06, 0xbee0); + rtl8168_mdio_write(tp, 0x06, 0xc4bf); + rtl8168_mdio_write(tp, 0x06, 0x85f6); + rtl8168_mdio_write(tp, 0x06, 0xd204); + rtl8168_mdio_write(tp, 0x06, 0xd819); + rtl8168_mdio_write(tp, 0x06, 0xd919); + rtl8168_mdio_write(tp, 0x06, 0x07dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0x1907); + rtl8168_mdio_write(tp, 0x06, 0xb2f4); + rtl8168_mdio_write(tp, 0x06, 0xd400); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x1c1b); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7dfe); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfec6); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc05); + rtl8168_mdio_write(tp, 0x06, 0xf9e2); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0xeb5a); + rtl8168_mdio_write(tp, 0x06, 0x070c); + rtl8168_mdio_write(tp, 0x06, 0x031e); + rtl8168_mdio_write(tp, 0x06, 0x20e6); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe7e0); + rtl8168_mdio_write(tp, 0x06, 0xebe0); + rtl8168_mdio_write(tp, 0x06, 0xe0fc); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xfdfd); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0x8b80); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x22bf); + rtl8168_mdio_write(tp, 0x06, 0x4616); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x50e0); + rtl8168_mdio_write(tp, 0x06, 0x8b44); + rtl8168_mdio_write(tp, 0x06, 0x1f01); + rtl8168_mdio_write(tp, 0x06, 0x9e15); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x44ad); + rtl8168_mdio_write(tp, 0x06, 0x2907); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x04d1); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0x02d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x85b0); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7def); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x30e0); + rtl8168_mdio_write(tp, 0x06, 0xe036); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x37e1); + rtl8168_mdio_write(tp, 0x06, 0x8b3f); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e23); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x3fac); + rtl8168_mdio_write(tp, 0x06, 0x200b); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x0dac); + rtl8168_mdio_write(tp, 0x06, 0x250f); + rtl8168_mdio_write(tp, 0x06, 0xac27); + rtl8168_mdio_write(tp, 0x06, 0x11ae); + rtl8168_mdio_write(tp, 0x06, 0x1202); + rtl8168_mdio_write(tp, 0x06, 0x2c47); + rtl8168_mdio_write(tp, 0x06, 0xae0d); + rtl8168_mdio_write(tp, 0x06, 0x0285); + rtl8168_mdio_write(tp, 0x06, 0x4fae); + rtl8168_mdio_write(tp, 0x06, 0x0802); + rtl8168_mdio_write(tp, 0x06, 0x2c69); + rtl8168_mdio_write(tp, 0x06, 0xae03); + rtl8168_mdio_write(tp, 0x06, 0x022c); + rtl8168_mdio_write(tp, 0x06, 0x7cfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x6902); + rtl8168_mdio_write(tp, 0x06, 0x856c); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x14e1); + rtl8168_mdio_write(tp, 0x06, 0xe015); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x08d1); + rtl8168_mdio_write(tp, 0x06, 0x1ebf); + rtl8168_mdio_write(tp, 0x06, 0x2cd9); + rtl8168_mdio_write(tp, 0x06, 0x0238); + rtl8168_mdio_write(tp, 0x06, 0x7def); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x2fd0); + rtl8168_mdio_write(tp, 0x06, 0x0b02); + rtl8168_mdio_write(tp, 0x06, 0x3682); + rtl8168_mdio_write(tp, 0x06, 0x5882); + rtl8168_mdio_write(tp, 0x06, 0x7882); + rtl8168_mdio_write(tp, 0x06, 0x9f24); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x32e1); + rtl8168_mdio_write(tp, 0x06, 0x8b33); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e1a); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x8b32); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x28e1); + rtl8168_mdio_write(tp, 0x06, 0xe029); + rtl8168_mdio_write(tp, 0x06, 0xf72c); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x28e5); + rtl8168_mdio_write(tp, 0x06, 0xe029); + rtl8168_mdio_write(tp, 0x06, 0xf62c); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x28e5); + rtl8168_mdio_write(tp, 0x06, 0xe029); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0x4077); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0x52e0); + rtl8168_mdio_write(tp, 0x06, 0xeed9); + rtl8168_mdio_write(tp, 0x06, 0xe04c); + rtl8168_mdio_write(tp, 0x06, 0xbbe0); + rtl8168_mdio_write(tp, 0x06, 0x2a00); + rtl8168_mdio_write(tp, 0x05, 0xe142); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp,0x06, gphy_val); + rtl8168_mdio_write(tp, 0x05, 0xe140); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp,0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp,0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val |= BIT_1; + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~BIT_2; + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x09, 0xA20F); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0003); + rtl8168_mdio_write(tp, 0x01, 0x328A); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x9200); +} + +static void +rtl8168_set_phy_mcu_8168f_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val,i; + + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x1800); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val &= ~(BIT_12); + rtl8168_mdio_write(tp,0x15, gphy_val); + rtl8168_mdio_write(tp,0x00, 0x4800); + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x002f); + for (i = 0; i < 1000; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1c); + if (gphy_val & 0x0080) + break; + } + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x1800); + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x0023); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x18); + if (!(gphy_val & 0x0001)) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x0098); + rtl8168_mdio_write(tp, 0x19, 0x7c0b); + rtl8168_mdio_write(tp, 0x15, 0x0099); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00eb); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00f8); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00fe); + rtl8168_mdio_write(tp, 0x19, 0x6f0f); + rtl8168_mdio_write(tp, 0x15, 0x00db); + rtl8168_mdio_write(tp, 0x19, 0x6f09); + rtl8168_mdio_write(tp, 0x15, 0x00dc); + rtl8168_mdio_write(tp, 0x19, 0xaefd); + rtl8168_mdio_write(tp, 0x15, 0x00dd); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00de); + rtl8168_mdio_write(tp, 0x19, 0xc60b); + rtl8168_mdio_write(tp, 0x15, 0x00df); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00e0); + rtl8168_mdio_write(tp, 0x19, 0x30e1); + rtl8168_mdio_write(tp, 0x15, 0x020c); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x020e); + rtl8168_mdio_write(tp, 0x19, 0x9813); + rtl8168_mdio_write(tp, 0x15, 0x020f); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0210); + rtl8168_mdio_write(tp, 0x19, 0x930f); + rtl8168_mdio_write(tp, 0x15, 0x0211); + rtl8168_mdio_write(tp, 0x19, 0x9206); + rtl8168_mdio_write(tp, 0x15, 0x0212); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0213); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0214); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0215); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0216); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0217); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0218); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0219); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x021a); + rtl8168_mdio_write(tp, 0x19, 0x5540); + rtl8168_mdio_write(tp, 0x15, 0x021b); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x021c); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x021d); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x021e); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x021f); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0220); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0221); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x0222); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0223); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x0224); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0225); + rtl8168_mdio_write(tp, 0x19, 0x3231); + rtl8168_mdio_write(tp, 0x15, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x011b); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x2802); + rtl8168_mdio_write(tp, 0x06, 0x0135); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x4502); + rtl8168_mdio_write(tp, 0x06, 0x015f); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x6b02); + rtl8168_mdio_write(tp, 0x06, 0x80e5); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xbf8b); + rtl8168_mdio_write(tp, 0x06, 0x88ec); + rtl8168_mdio_write(tp, 0x06, 0x0019); + rtl8168_mdio_write(tp, 0x06, 0xa98b); + rtl8168_mdio_write(tp, 0x06, 0x90f9); + rtl8168_mdio_write(tp, 0x06, 0xeeff); + rtl8168_mdio_write(tp, 0x06, 0xf600); + rtl8168_mdio_write(tp, 0x06, 0xeeff); + rtl8168_mdio_write(tp, 0x06, 0xf7fe); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf81); + rtl8168_mdio_write(tp, 0x06, 0x9802); + rtl8168_mdio_write(tp, 0x06, 0x39f3); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf81); + rtl8168_mdio_write(tp, 0x06, 0x9b02); + rtl8168_mdio_write(tp, 0x06, 0x39f3); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8dad); + rtl8168_mdio_write(tp, 0x06, 0x2014); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8d00); + rtl8168_mdio_write(tp, 0x06, 0xe08a); + rtl8168_mdio_write(tp, 0x06, 0x5a78); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x0902); + rtl8168_mdio_write(tp, 0x06, 0x05fc); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x8802); + rtl8168_mdio_write(tp, 0x06, 0x32dd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ac); + rtl8168_mdio_write(tp, 0x06, 0x261a); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x81ac); + rtl8168_mdio_write(tp, 0x06, 0x2114); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ac); + rtl8168_mdio_write(tp, 0x06, 0x200e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x85ac); + rtl8168_mdio_write(tp, 0x06, 0x2308); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x87ac); + rtl8168_mdio_write(tp, 0x06, 0x2402); + rtl8168_mdio_write(tp, 0x06, 0xae38); + rtl8168_mdio_write(tp, 0x06, 0x021a); + rtl8168_mdio_write(tp, 0x06, 0xd6ee); + rtl8168_mdio_write(tp, 0x06, 0xe41c); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0xe41d); + rtl8168_mdio_write(tp, 0x06, 0x04e2); + rtl8168_mdio_write(tp, 0x06, 0xe07c); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0x7de0); + rtl8168_mdio_write(tp, 0x06, 0xe038); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x39ad); + rtl8168_mdio_write(tp, 0x06, 0x2e1b); + rtl8168_mdio_write(tp, 0x06, 0xad39); + rtl8168_mdio_write(tp, 0x06, 0x0dd1); + rtl8168_mdio_write(tp, 0x06, 0x01bf); + rtl8168_mdio_write(tp, 0x06, 0x22c8); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xf302); + rtl8168_mdio_write(tp, 0x06, 0x21f0); + rtl8168_mdio_write(tp, 0x06, 0xae0b); + rtl8168_mdio_write(tp, 0x06, 0xac38); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x0602); + rtl8168_mdio_write(tp, 0x06, 0x222d); + rtl8168_mdio_write(tp, 0x06, 0x0222); + rtl8168_mdio_write(tp, 0x06, 0x7202); + rtl8168_mdio_write(tp, 0x06, 0x1ae7); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x201a); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x2afe); + rtl8168_mdio_write(tp, 0x06, 0x022c); + rtl8168_mdio_write(tp, 0x06, 0x5c02); + rtl8168_mdio_write(tp, 0x06, 0x03c5); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x6702); + rtl8168_mdio_write(tp, 0x06, 0x2e4f); + rtl8168_mdio_write(tp, 0x06, 0x0204); + rtl8168_mdio_write(tp, 0x06, 0x8902); + rtl8168_mdio_write(tp, 0x06, 0x2f7a); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x210b); + rtl8168_mdio_write(tp, 0x06, 0xf621); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x0445); + rtl8168_mdio_write(tp, 0x06, 0x021c); + rtl8168_mdio_write(tp, 0x06, 0xb8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad22); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x22e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0235); + rtl8168_mdio_write(tp, 0x06, 0xd4e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad23); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x23e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0231); + rtl8168_mdio_write(tp, 0x06, 0xc8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad24); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x24e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2505); + rtl8168_mdio_write(tp, 0x06, 0xf625); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x08f6); + rtl8168_mdio_write(tp, 0x06, 0x26e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x022d); + rtl8168_mdio_write(tp, 0x06, 0x6ae0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x27e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0x8bfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0x8b80); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x22bf); + rtl8168_mdio_write(tp, 0x06, 0x479a); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xc6e0); + rtl8168_mdio_write(tp, 0x06, 0x8b44); + rtl8168_mdio_write(tp, 0x06, 0x1f01); + rtl8168_mdio_write(tp, 0x06, 0x9e15); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x44ad); + rtl8168_mdio_write(tp, 0x06, 0x2907); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x04d1); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0x02d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x819e); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xf3ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0x4077); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xbbe0); + rtl8168_mdio_write(tp, 0x06, 0x2a00); + rtl8168_mdio_write(tp, 0x05, 0xe142); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x05, 0xe140); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp,0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val |= BIT_1; + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~BIT_2; + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x9200); +} + +static void +rtl8168_set_phy_mcu_8411_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val,i; + + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x1800); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val &= ~(BIT_12); + rtl8168_mdio_write(tp,0x15, gphy_val); + rtl8168_mdio_write(tp,0x00, 0x4800); + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x002f); + for (i = 0; i < 1000; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x1c); + if (gphy_val & 0x0080) + break; + } + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x1800); + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x0023); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x18); + if (!(gphy_val & 0x0001)) + break; + } + rtl8168_mdio_write(tp,0x1f, 0x0005); + rtl8168_mdio_write(tp,0x05, 0xfff6); + rtl8168_mdio_write(tp,0x06, 0x0080); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0307); + rtl8168_mdio_write(tp, 0x15, 0x0098); + rtl8168_mdio_write(tp, 0x19, 0x7c0b); + rtl8168_mdio_write(tp, 0x15, 0x0099); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00eb); + rtl8168_mdio_write(tp, 0x19, 0x6c0b); + rtl8168_mdio_write(tp, 0x15, 0x00f8); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00fe); + rtl8168_mdio_write(tp, 0x19, 0x6f0f); + rtl8168_mdio_write(tp, 0x15, 0x00db); + rtl8168_mdio_write(tp, 0x19, 0x6f09); + rtl8168_mdio_write(tp, 0x15, 0x00dc); + rtl8168_mdio_write(tp, 0x19, 0xaefd); + rtl8168_mdio_write(tp, 0x15, 0x00dd); + rtl8168_mdio_write(tp, 0x19, 0x6f0b); + rtl8168_mdio_write(tp, 0x15, 0x00de); + rtl8168_mdio_write(tp, 0x19, 0xc60b); + rtl8168_mdio_write(tp, 0x15, 0x00df); + rtl8168_mdio_write(tp, 0x19, 0x00fa); + rtl8168_mdio_write(tp, 0x15, 0x00e0); + rtl8168_mdio_write(tp, 0x19, 0x30e1); + rtl8168_mdio_write(tp, 0x15, 0x020c); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x020e); + rtl8168_mdio_write(tp, 0x19, 0x9813); + rtl8168_mdio_write(tp, 0x15, 0x020f); + rtl8168_mdio_write(tp, 0x19, 0x7801); + rtl8168_mdio_write(tp, 0x15, 0x0210); + rtl8168_mdio_write(tp, 0x19, 0x930f); + rtl8168_mdio_write(tp, 0x15, 0x0211); + rtl8168_mdio_write(tp, 0x19, 0x9206); + rtl8168_mdio_write(tp, 0x15, 0x0212); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0213); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0214); + rtl8168_mdio_write(tp, 0x19, 0x588f); + rtl8168_mdio_write(tp, 0x15, 0x0215); + rtl8168_mdio_write(tp, 0x19, 0x5520); + rtl8168_mdio_write(tp, 0x15, 0x0216); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0217); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0218); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0219); + rtl8168_mdio_write(tp, 0x19, 0x588d); + rtl8168_mdio_write(tp, 0x15, 0x021a); + rtl8168_mdio_write(tp, 0x19, 0x5540); + rtl8168_mdio_write(tp, 0x15, 0x021b); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x021c); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x021d); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x021e); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x021f); + rtl8168_mdio_write(tp, 0x19, 0x4002); + rtl8168_mdio_write(tp, 0x15, 0x0220); + rtl8168_mdio_write(tp, 0x19, 0x3224); + rtl8168_mdio_write(tp, 0x15, 0x0221); + rtl8168_mdio_write(tp, 0x19, 0x9e03); + rtl8168_mdio_write(tp, 0x15, 0x0222); + rtl8168_mdio_write(tp, 0x19, 0x7c40); + rtl8168_mdio_write(tp, 0x15, 0x0223); + rtl8168_mdio_write(tp, 0x19, 0x6840); + rtl8168_mdio_write(tp, 0x15, 0x0224); + rtl8168_mdio_write(tp, 0x19, 0x7800); + rtl8168_mdio_write(tp, 0x15, 0x0225); + rtl8168_mdio_write(tp, 0x19, 0x3231); + rtl8168_mdio_write(tp, 0x15, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x0306); + rtl8168_mdio_write(tp, 0x16, 0x0300); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x48f7); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xfff7); + rtl8168_mdio_write(tp, 0x06, 0xa080); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0xf602); + rtl8168_mdio_write(tp, 0x06, 0x011e); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x2b02); + rtl8168_mdio_write(tp, 0x06, 0x8077); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x4802); + rtl8168_mdio_write(tp, 0x06, 0x0162); + rtl8168_mdio_write(tp, 0x06, 0x0280); + rtl8168_mdio_write(tp, 0x06, 0x9402); + rtl8168_mdio_write(tp, 0x06, 0x810e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x88e1); + rtl8168_mdio_write(tp, 0x06, 0x8b89); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8a1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8b); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8c1e); + rtl8168_mdio_write(tp, 0x06, 0x01e1); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x1e01); + rtl8168_mdio_write(tp, 0x06, 0xe18b); + rtl8168_mdio_write(tp, 0x06, 0x8e1e); + rtl8168_mdio_write(tp, 0x06, 0x01a0); + rtl8168_mdio_write(tp, 0x06, 0x00c7); + rtl8168_mdio_write(tp, 0x06, 0xaebb); + rtl8168_mdio_write(tp, 0x06, 0xd481); + rtl8168_mdio_write(tp, 0x06, 0xd4e4); + rtl8168_mdio_write(tp, 0x06, 0x8b92); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x9302); + rtl8168_mdio_write(tp, 0x06, 0x2e5a); + rtl8168_mdio_write(tp, 0x06, 0xbf8b); + rtl8168_mdio_write(tp, 0x06, 0x88ec); + rtl8168_mdio_write(tp, 0x06, 0x0019); + rtl8168_mdio_write(tp, 0x06, 0xa98b); + rtl8168_mdio_write(tp, 0x06, 0x90f9); + rtl8168_mdio_write(tp, 0x06, 0xeeff); + rtl8168_mdio_write(tp, 0x06, 0xf600); + rtl8168_mdio_write(tp, 0x06, 0xeeff); + rtl8168_mdio_write(tp, 0x06, 0xf7fc); + rtl8168_mdio_write(tp, 0x06, 0xd100); + rtl8168_mdio_write(tp, 0x06, 0xbf83); + rtl8168_mdio_write(tp, 0x06, 0x3c02); + rtl8168_mdio_write(tp, 0x06, 0x3a21); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf83); + rtl8168_mdio_write(tp, 0x06, 0x3f02); + rtl8168_mdio_write(tp, 0x06, 0x3a21); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8aad); + rtl8168_mdio_write(tp, 0x06, 0x2014); + rtl8168_mdio_write(tp, 0x06, 0xee8b); + rtl8168_mdio_write(tp, 0x06, 0x8a00); + rtl8168_mdio_write(tp, 0x06, 0x0220); + rtl8168_mdio_write(tp, 0x06, 0x8be0); + rtl8168_mdio_write(tp, 0x06, 0xe426); + rtl8168_mdio_write(tp, 0x06, 0xe1e4); + rtl8168_mdio_write(tp, 0x06, 0x27ee); + rtl8168_mdio_write(tp, 0x06, 0xe426); + rtl8168_mdio_write(tp, 0x06, 0x23e5); + rtl8168_mdio_write(tp, 0x06, 0xe427); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x14ee); + rtl8168_mdio_write(tp, 0x06, 0x8b8d); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0x8a5a); + rtl8168_mdio_write(tp, 0x06, 0x7803); + rtl8168_mdio_write(tp, 0x06, 0x9e09); + rtl8168_mdio_write(tp, 0x06, 0x0206); + rtl8168_mdio_write(tp, 0x06, 0x2802); + rtl8168_mdio_write(tp, 0x06, 0x80b1); + rtl8168_mdio_write(tp, 0x06, 0x0232); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xf9e0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac26); + rtl8168_mdio_write(tp, 0x06, 0x1ae0); + rtl8168_mdio_write(tp, 0x06, 0x8b81); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x14e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xac20); + rtl8168_mdio_write(tp, 0x06, 0x0ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xac23); + rtl8168_mdio_write(tp, 0x06, 0x08e0); + rtl8168_mdio_write(tp, 0x06, 0x8b87); + rtl8168_mdio_write(tp, 0x06, 0xac24); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0x1b02); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x1c04); + rtl8168_mdio_write(tp, 0x06, 0xeee4); + rtl8168_mdio_write(tp, 0x06, 0x1d04); + rtl8168_mdio_write(tp, 0x06, 0xe2e0); + rtl8168_mdio_write(tp, 0x06, 0x7ce3); + rtl8168_mdio_write(tp, 0x06, 0xe07d); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x38e1); + rtl8168_mdio_write(tp, 0x06, 0xe039); + rtl8168_mdio_write(tp, 0x06, 0xad2e); + rtl8168_mdio_write(tp, 0x06, 0x1bad); + rtl8168_mdio_write(tp, 0x06, 0x390d); + rtl8168_mdio_write(tp, 0x06, 0xd101); + rtl8168_mdio_write(tp, 0x06, 0xbf22); + rtl8168_mdio_write(tp, 0x06, 0xe802); + rtl8168_mdio_write(tp, 0x06, 0x3a21); + rtl8168_mdio_write(tp, 0x06, 0x0222); + rtl8168_mdio_write(tp, 0x06, 0x10ae); + rtl8168_mdio_write(tp, 0x06, 0x0bac); + rtl8168_mdio_write(tp, 0x06, 0x3802); + rtl8168_mdio_write(tp, 0x06, 0xae06); + rtl8168_mdio_write(tp, 0x06, 0x0222); + rtl8168_mdio_write(tp, 0x06, 0x4d02); + rtl8168_mdio_write(tp, 0x06, 0x2292); + rtl8168_mdio_write(tp, 0x06, 0x021b); + rtl8168_mdio_write(tp, 0x06, 0x13fd); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x1af6); + rtl8168_mdio_write(tp, 0x06, 0x20e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x022b); + rtl8168_mdio_write(tp, 0x06, 0x1e02); + rtl8168_mdio_write(tp, 0x06, 0x82ae); + rtl8168_mdio_write(tp, 0x06, 0x0203); + rtl8168_mdio_write(tp, 0x06, 0xc002); + rtl8168_mdio_write(tp, 0x06, 0x827d); + rtl8168_mdio_write(tp, 0x06, 0x022e); + rtl8168_mdio_write(tp, 0x06, 0x6f02); + rtl8168_mdio_write(tp, 0x06, 0x047b); + rtl8168_mdio_write(tp, 0x06, 0x022f); + rtl8168_mdio_write(tp, 0x06, 0x9ae0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad21); + rtl8168_mdio_write(tp, 0x06, 0x0bf6); + rtl8168_mdio_write(tp, 0x06, 0x21e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0x9002); + rtl8168_mdio_write(tp, 0x06, 0x1cd9); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2208); + rtl8168_mdio_write(tp, 0x06, 0xf622); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x35f4); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2308); + rtl8168_mdio_write(tp, 0x06, 0xf623); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x31e8); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2405); + rtl8168_mdio_write(tp, 0x06, 0xf624); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8ee0); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xad25); + rtl8168_mdio_write(tp, 0x06, 0x05f6); + rtl8168_mdio_write(tp, 0x06, 0x25e4); + rtl8168_mdio_write(tp, 0x06, 0x8b8e); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2608); + rtl8168_mdio_write(tp, 0x06, 0xf626); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x2d8a); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x8ead); + rtl8168_mdio_write(tp, 0x06, 0x2705); + rtl8168_mdio_write(tp, 0x06, 0xf627); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x8e02); + rtl8168_mdio_write(tp, 0x06, 0x0386); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xef69); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0xe001); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x32e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf720); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40bf); + rtl8168_mdio_write(tp, 0x06, 0x32c1); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xf4ad); + rtl8168_mdio_write(tp, 0x06, 0x2821); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x20e1); + rtl8168_mdio_write(tp, 0x06, 0xe021); + rtl8168_mdio_write(tp, 0x06, 0xad20); + rtl8168_mdio_write(tp, 0x06, 0x18e0); + rtl8168_mdio_write(tp, 0x06, 0x8b40); + rtl8168_mdio_write(tp, 0x06, 0xf620); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x40ee); + rtl8168_mdio_write(tp, 0x06, 0x8b3b); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0x8a8a); + rtl8168_mdio_write(tp, 0x06, 0xe18a); + rtl8168_mdio_write(tp, 0x06, 0x8be4); + rtl8168_mdio_write(tp, 0x06, 0xe000); + rtl8168_mdio_write(tp, 0x06, 0xe5e0); + rtl8168_mdio_write(tp, 0x06, 0x01ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xface); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69fa); + rtl8168_mdio_write(tp, 0x06, 0xd401); + rtl8168_mdio_write(tp, 0x06, 0x55b4); + rtl8168_mdio_write(tp, 0x06, 0xfebf); + rtl8168_mdio_write(tp, 0x06, 0x1c5e); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xf4ac); + rtl8168_mdio_write(tp, 0x06, 0x280b); + rtl8168_mdio_write(tp, 0x06, 0xbf1c); + rtl8168_mdio_write(tp, 0x06, 0x5b02); + rtl8168_mdio_write(tp, 0x06, 0x39f4); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x49ae); + rtl8168_mdio_write(tp, 0x06, 0x64bf); + rtl8168_mdio_write(tp, 0x06, 0x1c5b); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xf4ac); + rtl8168_mdio_write(tp, 0x06, 0x285b); + rtl8168_mdio_write(tp, 0x06, 0xd000); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x62ac); + rtl8168_mdio_write(tp, 0x06, 0x2105); + rtl8168_mdio_write(tp, 0x06, 0xac22); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x4ebf); + rtl8168_mdio_write(tp, 0x06, 0xe0c4); + rtl8168_mdio_write(tp, 0x06, 0xbe85); + rtl8168_mdio_write(tp, 0x06, 0xecd2); + rtl8168_mdio_write(tp, 0x06, 0x04d8); + rtl8168_mdio_write(tp, 0x06, 0x19d9); + rtl8168_mdio_write(tp, 0x06, 0x1907); + rtl8168_mdio_write(tp, 0x06, 0xdc19); + rtl8168_mdio_write(tp, 0x06, 0xdd19); + rtl8168_mdio_write(tp, 0x06, 0x0789); + rtl8168_mdio_write(tp, 0x06, 0x89ef); + rtl8168_mdio_write(tp, 0x06, 0x645e); + rtl8168_mdio_write(tp, 0x06, 0x07ff); + rtl8168_mdio_write(tp, 0x06, 0x0d65); + rtl8168_mdio_write(tp, 0x06, 0x5cf8); + rtl8168_mdio_write(tp, 0x06, 0x001e); + rtl8168_mdio_write(tp, 0x06, 0x46dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0x19b2); + rtl8168_mdio_write(tp, 0x06, 0xe2d4); + rtl8168_mdio_write(tp, 0x06, 0x0001); + rtl8168_mdio_write(tp, 0x06, 0xbf1c); + rtl8168_mdio_write(tp, 0x06, 0x5b02); + rtl8168_mdio_write(tp, 0x06, 0x3a21); + rtl8168_mdio_write(tp, 0x06, 0xae1d); + rtl8168_mdio_write(tp, 0x06, 0xbee0); + rtl8168_mdio_write(tp, 0x06, 0xc4bf); + rtl8168_mdio_write(tp, 0x06, 0x85ec); + rtl8168_mdio_write(tp, 0x06, 0xd204); + rtl8168_mdio_write(tp, 0x06, 0xd819); + rtl8168_mdio_write(tp, 0x06, 0xd919); + rtl8168_mdio_write(tp, 0x06, 0x07dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0x1907); + rtl8168_mdio_write(tp, 0x06, 0xb2f4); + rtl8168_mdio_write(tp, 0x06, 0xd400); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x1c5b); + rtl8168_mdio_write(tp, 0x06, 0x023a); + rtl8168_mdio_write(tp, 0x06, 0x21fe); + rtl8168_mdio_write(tp, 0x06, 0xef96); + rtl8168_mdio_write(tp, 0x06, 0xfec6); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc05); + rtl8168_mdio_write(tp, 0x06, 0xf9e2); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe3e0); + rtl8168_mdio_write(tp, 0x06, 0xeb5a); + rtl8168_mdio_write(tp, 0x06, 0x070c); + rtl8168_mdio_write(tp, 0x06, 0x031e); + rtl8168_mdio_write(tp, 0x06, 0x20e6); + rtl8168_mdio_write(tp, 0x06, 0xe0ea); + rtl8168_mdio_write(tp, 0x06, 0xe7e0); + rtl8168_mdio_write(tp, 0x06, 0xebe0); + rtl8168_mdio_write(tp, 0x06, 0xe0fc); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0xfdfd); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x69e0); + rtl8168_mdio_write(tp, 0x06, 0x8b80); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x22bf); + rtl8168_mdio_write(tp, 0x06, 0x47ba); + rtl8168_mdio_write(tp, 0x06, 0x0239); + rtl8168_mdio_write(tp, 0x06, 0xf4e0); + rtl8168_mdio_write(tp, 0x06, 0x8b44); + rtl8168_mdio_write(tp, 0x06, 0x1f01); + rtl8168_mdio_write(tp, 0x06, 0x9e15); + rtl8168_mdio_write(tp, 0x06, 0xe58b); + rtl8168_mdio_write(tp, 0x06, 0x44ad); + rtl8168_mdio_write(tp, 0x06, 0x2907); + rtl8168_mdio_write(tp, 0x06, 0xac28); + rtl8168_mdio_write(tp, 0x06, 0x04d1); + rtl8168_mdio_write(tp, 0x06, 0x01ae); + rtl8168_mdio_write(tp, 0x06, 0x02d1); + rtl8168_mdio_write(tp, 0x06, 0x00bf); + rtl8168_mdio_write(tp, 0x06, 0x8342); + rtl8168_mdio_write(tp, 0x06, 0x023a); + rtl8168_mdio_write(tp, 0x06, 0x21ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x30e0); + rtl8168_mdio_write(tp, 0x06, 0xe036); + rtl8168_mdio_write(tp, 0x06, 0xe1e0); + rtl8168_mdio_write(tp, 0x06, 0x37e1); + rtl8168_mdio_write(tp, 0x06, 0x8b3f); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e23); + rtl8168_mdio_write(tp, 0x06, 0xe48b); + rtl8168_mdio_write(tp, 0x06, 0x3fac); + rtl8168_mdio_write(tp, 0x06, 0x200b); + rtl8168_mdio_write(tp, 0x06, 0xac21); + rtl8168_mdio_write(tp, 0x06, 0x0dac); + rtl8168_mdio_write(tp, 0x06, 0x250f); + rtl8168_mdio_write(tp, 0x06, 0xac27); + rtl8168_mdio_write(tp, 0x06, 0x11ae); + rtl8168_mdio_write(tp, 0x06, 0x1202); + rtl8168_mdio_write(tp, 0x06, 0x2cb5); + rtl8168_mdio_write(tp, 0x06, 0xae0d); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0xe7ae); + rtl8168_mdio_write(tp, 0x06, 0x0802); + rtl8168_mdio_write(tp, 0x06, 0x2cd7); + rtl8168_mdio_write(tp, 0x06, 0xae03); + rtl8168_mdio_write(tp, 0x06, 0x022c); + rtl8168_mdio_write(tp, 0x06, 0xeafc); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x6902); + rtl8168_mdio_write(tp, 0x06, 0x8304); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x14e1); + rtl8168_mdio_write(tp, 0x06, 0xe015); + rtl8168_mdio_write(tp, 0x06, 0xad26); + rtl8168_mdio_write(tp, 0x06, 0x08d1); + rtl8168_mdio_write(tp, 0x06, 0x1ebf); + rtl8168_mdio_write(tp, 0x06, 0x2d47); + rtl8168_mdio_write(tp, 0x06, 0x023a); + rtl8168_mdio_write(tp, 0x06, 0x21ef); + rtl8168_mdio_write(tp, 0x06, 0x96fe); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0x8b85); + rtl8168_mdio_write(tp, 0x06, 0xad27); + rtl8168_mdio_write(tp, 0x06, 0x2fd0); + rtl8168_mdio_write(tp, 0x06, 0x0b02); + rtl8168_mdio_write(tp, 0x06, 0x3826); + rtl8168_mdio_write(tp, 0x06, 0x5882); + rtl8168_mdio_write(tp, 0x06, 0x7882); + rtl8168_mdio_write(tp, 0x06, 0x9f24); + rtl8168_mdio_write(tp, 0x06, 0xe08b); + rtl8168_mdio_write(tp, 0x06, 0x32e1); + rtl8168_mdio_write(tp, 0x06, 0x8b33); + rtl8168_mdio_write(tp, 0x06, 0x1f10); + rtl8168_mdio_write(tp, 0x06, 0x9e1a); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x8b32); + rtl8168_mdio_write(tp, 0x06, 0xe0e0); + rtl8168_mdio_write(tp, 0x06, 0x28e1); + rtl8168_mdio_write(tp, 0x06, 0xe029); + rtl8168_mdio_write(tp, 0x06, 0xf72c); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x28e5); + rtl8168_mdio_write(tp, 0x06, 0xe029); + rtl8168_mdio_write(tp, 0x06, 0xf62c); + rtl8168_mdio_write(tp, 0x06, 0xe4e0); + rtl8168_mdio_write(tp, 0x06, 0x28e5); + rtl8168_mdio_write(tp, 0x06, 0xe029); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0x00e1); + rtl8168_mdio_write(tp, 0x06, 0x4077); + rtl8168_mdio_write(tp, 0x06, 0xe140); + rtl8168_mdio_write(tp, 0x06, 0xbbe0); + rtl8168_mdio_write(tp, 0x06, 0x2a00); + rtl8168_mdio_write(tp, 0x05, 0xe142); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp,0x06, gphy_val); + rtl8168_mdio_write(tp, 0x05, 0xe140); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp,0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp,0x1f, 0x0005); + for (i = 0; i < 200; i++) { + udelay(100); + gphy_val = rtl8168_mdio_read(tp, 0x00); + if (gphy_val & BIT_7) + break; + } + rtl8168_mdio_write(tp,0x1f, 0x0007); + rtl8168_mdio_write(tp,0x1e, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val |= BIT_1; + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~BIT_2; + rtl8168_mdio_write(tp,0x17, gphy_val); + rtl8168_mdio_write(tp,0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x09, 0xA20F); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0003); + rtl8168_mdio_write(tp, 0x01, 0x328A); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp,0x1f, 0x0000); + rtl8168_mdio_write(tp,0x00, 0x9200); +} + +static void +rtl8168_set_phy_mcu_8168g_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8146); + rtl8168_mdio_write(tp, 0x14, 0x2300); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0210); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0290); + rtl8168_mdio_write(tp, 0x13, 0xA012); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA014); + rtl8168_mdio_write(tp, 0x14, 0x2c04); + rtl8168_mdio_write(tp, 0x14, 0x2c0c); + rtl8168_mdio_write(tp, 0x14, 0x2c6c); + rtl8168_mdio_write(tp, 0x14, 0x2d0d); + rtl8168_mdio_write(tp, 0x14, 0x31ce); + rtl8168_mdio_write(tp, 0x14, 0x506d); + rtl8168_mdio_write(tp, 0x14, 0xd708); + rtl8168_mdio_write(tp, 0x14, 0x3108); + rtl8168_mdio_write(tp, 0x14, 0x106d); + rtl8168_mdio_write(tp, 0x14, 0x1560); + rtl8168_mdio_write(tp, 0x14, 0x15a9); + rtl8168_mdio_write(tp, 0x14, 0x206e); + rtl8168_mdio_write(tp, 0x14, 0x175b); + rtl8168_mdio_write(tp, 0x14, 0x6062); + rtl8168_mdio_write(tp, 0x14, 0xd700); + rtl8168_mdio_write(tp, 0x14, 0x5fae); + rtl8168_mdio_write(tp, 0x14, 0xd708); + rtl8168_mdio_write(tp, 0x14, 0x3107); + rtl8168_mdio_write(tp, 0x14, 0x4c1e); + rtl8168_mdio_write(tp, 0x14, 0x4169); + rtl8168_mdio_write(tp, 0x14, 0x316a); + rtl8168_mdio_write(tp, 0x14, 0x0c19); + rtl8168_mdio_write(tp, 0x14, 0x31aa); + rtl8168_mdio_write(tp, 0x14, 0x0c19); + rtl8168_mdio_write(tp, 0x14, 0x2c1b); + rtl8168_mdio_write(tp, 0x14, 0x5e62); + rtl8168_mdio_write(tp, 0x14, 0x26b5); + rtl8168_mdio_write(tp, 0x14, 0x31ab); + rtl8168_mdio_write(tp, 0x14, 0x5c1e); + rtl8168_mdio_write(tp, 0x14, 0x2c0c); + rtl8168_mdio_write(tp, 0x14, 0xc040); + rtl8168_mdio_write(tp, 0x14, 0x8808); + rtl8168_mdio_write(tp, 0x14, 0xc520); + rtl8168_mdio_write(tp, 0x14, 0xc421); + rtl8168_mdio_write(tp, 0x14, 0xd05a); + rtl8168_mdio_write(tp, 0x14, 0xd19a); + rtl8168_mdio_write(tp, 0x14, 0xd709); + rtl8168_mdio_write(tp, 0x14, 0x608f); + rtl8168_mdio_write(tp, 0x14, 0xd06b); + rtl8168_mdio_write(tp, 0x14, 0xd18a); + rtl8168_mdio_write(tp, 0x14, 0x2c2c); + rtl8168_mdio_write(tp, 0x14, 0xd0be); + rtl8168_mdio_write(tp, 0x14, 0xd188); + rtl8168_mdio_write(tp, 0x14, 0x2c2c); + rtl8168_mdio_write(tp, 0x14, 0xd708); + rtl8168_mdio_write(tp, 0x14, 0x4072); + rtl8168_mdio_write(tp, 0x14, 0xc104); + rtl8168_mdio_write(tp, 0x14, 0x2c3e); + rtl8168_mdio_write(tp, 0x14, 0x4076); + rtl8168_mdio_write(tp, 0x14, 0xc110); + rtl8168_mdio_write(tp, 0x14, 0x2c3e); + rtl8168_mdio_write(tp, 0x14, 0x4071); + rtl8168_mdio_write(tp, 0x14, 0xc102); + rtl8168_mdio_write(tp, 0x14, 0x2c3e); + rtl8168_mdio_write(tp, 0x14, 0x4070); + rtl8168_mdio_write(tp, 0x14, 0xc101); + rtl8168_mdio_write(tp, 0x14, 0x2c3e); + rtl8168_mdio_write(tp, 0x14, 0x175b); + rtl8168_mdio_write(tp, 0x14, 0xd709); + rtl8168_mdio_write(tp, 0x14, 0x3390); + rtl8168_mdio_write(tp, 0x14, 0x5c39); + rtl8168_mdio_write(tp, 0x14, 0x2c4e); + rtl8168_mdio_write(tp, 0x14, 0x175b); + rtl8168_mdio_write(tp, 0x14, 0xd708); + rtl8168_mdio_write(tp, 0x14, 0x6193); + rtl8168_mdio_write(tp, 0x14, 0xd709); + rtl8168_mdio_write(tp, 0x14, 0x5f9d); + rtl8168_mdio_write(tp, 0x14, 0x408b); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x6042); + rtl8168_mdio_write(tp, 0x14, 0xb401); + rtl8168_mdio_write(tp, 0x14, 0x175b); + rtl8168_mdio_write(tp, 0x14, 0xd708); + rtl8168_mdio_write(tp, 0x14, 0x6073); + rtl8168_mdio_write(tp, 0x14, 0x5fbc); + rtl8168_mdio_write(tp, 0x14, 0x2c4d); + rtl8168_mdio_write(tp, 0x14, 0x26ed); + rtl8168_mdio_write(tp, 0x14, 0xb280); + rtl8168_mdio_write(tp, 0x14, 0xa841); + rtl8168_mdio_write(tp, 0x14, 0x9420); + rtl8168_mdio_write(tp, 0x14, 0x8710); + rtl8168_mdio_write(tp, 0x14, 0xd709); + rtl8168_mdio_write(tp, 0x14, 0x42ec); + rtl8168_mdio_write(tp, 0x14, 0x606d); + rtl8168_mdio_write(tp, 0x14, 0xd207); + rtl8168_mdio_write(tp, 0x14, 0x2c57); + rtl8168_mdio_write(tp, 0x14, 0xd203); + rtl8168_mdio_write(tp, 0x14, 0x33ff); + rtl8168_mdio_write(tp, 0x14, 0x563b); + rtl8168_mdio_write(tp, 0x14, 0x3275); + rtl8168_mdio_write(tp, 0x14, 0x7c5e); + rtl8168_mdio_write(tp, 0x14, 0xb240); + rtl8168_mdio_write(tp, 0x14, 0xb402); + rtl8168_mdio_write(tp, 0x14, 0x263b); + rtl8168_mdio_write(tp, 0x14, 0x6096); + rtl8168_mdio_write(tp, 0x14, 0xb240); + rtl8168_mdio_write(tp, 0x14, 0xb406); + rtl8168_mdio_write(tp, 0x14, 0x263b); + rtl8168_mdio_write(tp, 0x14, 0x31d7); + rtl8168_mdio_write(tp, 0x14, 0x7c67); + rtl8168_mdio_write(tp, 0x14, 0xb240); + rtl8168_mdio_write(tp, 0x14, 0xb40e); + rtl8168_mdio_write(tp, 0x14, 0x263b); + rtl8168_mdio_write(tp, 0x14, 0xb410); + rtl8168_mdio_write(tp, 0x14, 0x8802); + rtl8168_mdio_write(tp, 0x14, 0xb240); + rtl8168_mdio_write(tp, 0x14, 0x940e); + rtl8168_mdio_write(tp, 0x14, 0x263b); + rtl8168_mdio_write(tp, 0x14, 0xba04); + rtl8168_mdio_write(tp, 0x14, 0x1cd6); + rtl8168_mdio_write(tp, 0x14, 0xa902); + rtl8168_mdio_write(tp, 0x14, 0xd711); + rtl8168_mdio_write(tp, 0x14, 0x4045); + rtl8168_mdio_write(tp, 0x14, 0xa980); + rtl8168_mdio_write(tp, 0x14, 0x3003); + rtl8168_mdio_write(tp, 0x14, 0x59b1); + rtl8168_mdio_write(tp, 0x14, 0xa540); + rtl8168_mdio_write(tp, 0x14, 0xa601); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4043); + rtl8168_mdio_write(tp, 0x14, 0xa910); + rtl8168_mdio_write(tp, 0x14, 0xd711); + rtl8168_mdio_write(tp, 0x14, 0x60a0); + rtl8168_mdio_write(tp, 0x14, 0xca33); + rtl8168_mdio_write(tp, 0x14, 0xcb33); + rtl8168_mdio_write(tp, 0x14, 0xa941); + rtl8168_mdio_write(tp, 0x14, 0x2c82); + rtl8168_mdio_write(tp, 0x14, 0xcaff); + rtl8168_mdio_write(tp, 0x14, 0xcbff); + rtl8168_mdio_write(tp, 0x14, 0xa921); + rtl8168_mdio_write(tp, 0x14, 0xce02); + rtl8168_mdio_write(tp, 0x14, 0xe070); + rtl8168_mdio_write(tp, 0x14, 0x0f10); + rtl8168_mdio_write(tp, 0x14, 0xaf01); + rtl8168_mdio_write(tp, 0x14, 0x8f01); + rtl8168_mdio_write(tp, 0x14, 0x1766); + rtl8168_mdio_write(tp, 0x14, 0x8e02); + rtl8168_mdio_write(tp, 0x14, 0x1787); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x609c); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fa4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0x1ce9); + rtl8168_mdio_write(tp, 0x14, 0xce04); + rtl8168_mdio_write(tp, 0x14, 0xe070); + rtl8168_mdio_write(tp, 0x14, 0x0f20); + rtl8168_mdio_write(tp, 0x14, 0xaf01); + rtl8168_mdio_write(tp, 0x14, 0x8f01); + rtl8168_mdio_write(tp, 0x14, 0x1766); + rtl8168_mdio_write(tp, 0x14, 0x8e04); + rtl8168_mdio_write(tp, 0x14, 0x6044); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0xa520); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4043); + rtl8168_mdio_write(tp, 0x14, 0x2cc1); + rtl8168_mdio_write(tp, 0x14, 0xe00f); + rtl8168_mdio_write(tp, 0x14, 0x0501); + rtl8168_mdio_write(tp, 0x14, 0x1cef); + rtl8168_mdio_write(tp, 0x14, 0xb801); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x4060); + rtl8168_mdio_write(tp, 0x14, 0x7fc4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0x1cf5); + rtl8168_mdio_write(tp, 0x14, 0xe00f); + rtl8168_mdio_write(tp, 0x14, 0x0502); + rtl8168_mdio_write(tp, 0x14, 0x1cef); + rtl8168_mdio_write(tp, 0x14, 0xb802); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x4061); + rtl8168_mdio_write(tp, 0x14, 0x7fc4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0x1cf5); + rtl8168_mdio_write(tp, 0x14, 0xe00f); + rtl8168_mdio_write(tp, 0x14, 0x0504); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6099); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fa4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0xc17f); + rtl8168_mdio_write(tp, 0x14, 0xc200); + rtl8168_mdio_write(tp, 0x14, 0xc43f); + rtl8168_mdio_write(tp, 0x14, 0xcc03); + rtl8168_mdio_write(tp, 0x14, 0xa701); + rtl8168_mdio_write(tp, 0x14, 0xa510); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4018); + rtl8168_mdio_write(tp, 0x14, 0x9910); + rtl8168_mdio_write(tp, 0x14, 0x8510); + rtl8168_mdio_write(tp, 0x14, 0x2860); + rtl8168_mdio_write(tp, 0x14, 0xe00f); + rtl8168_mdio_write(tp, 0x14, 0x0504); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6099); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fa4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0xa608); + rtl8168_mdio_write(tp, 0x14, 0xc17d); + rtl8168_mdio_write(tp, 0x14, 0xc200); + rtl8168_mdio_write(tp, 0x14, 0xc43f); + rtl8168_mdio_write(tp, 0x14, 0xcc03); + rtl8168_mdio_write(tp, 0x14, 0xa701); + rtl8168_mdio_write(tp, 0x14, 0xa510); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4018); + rtl8168_mdio_write(tp, 0x14, 0x9910); + rtl8168_mdio_write(tp, 0x14, 0x8510); + rtl8168_mdio_write(tp, 0x14, 0x2926); + rtl8168_mdio_write(tp, 0x14, 0x1792); + rtl8168_mdio_write(tp, 0x14, 0x27db); + rtl8168_mdio_write(tp, 0x14, 0xc000); + rtl8168_mdio_write(tp, 0x14, 0xc100); + rtl8168_mdio_write(tp, 0x14, 0xc200); + rtl8168_mdio_write(tp, 0x14, 0xc300); + rtl8168_mdio_write(tp, 0x14, 0xc400); + rtl8168_mdio_write(tp, 0x14, 0xc500); + rtl8168_mdio_write(tp, 0x14, 0xc600); + rtl8168_mdio_write(tp, 0x14, 0xc7c1); + rtl8168_mdio_write(tp, 0x14, 0xc800); + rtl8168_mdio_write(tp, 0x14, 0xcc00); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xca0f); + rtl8168_mdio_write(tp, 0x14, 0xcbff); + rtl8168_mdio_write(tp, 0x14, 0xa901); + rtl8168_mdio_write(tp, 0x14, 0x8902); + rtl8168_mdio_write(tp, 0x14, 0xc900); + rtl8168_mdio_write(tp, 0x14, 0xca00); + rtl8168_mdio_write(tp, 0x14, 0xcb00); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xb804); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x6044); + rtl8168_mdio_write(tp, 0x14, 0x9804); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6099); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fa4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xa510); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6098); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fa4); + rtl8168_mdio_write(tp, 0x14, 0x2cd4); + rtl8168_mdio_write(tp, 0x14, 0x8510); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xd711); + rtl8168_mdio_write(tp, 0x14, 0x3003); + rtl8168_mdio_write(tp, 0x14, 0x1d01); + rtl8168_mdio_write(tp, 0x14, 0x2d0b); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x60be); + rtl8168_mdio_write(tp, 0x14, 0xe060); + rtl8168_mdio_write(tp, 0x14, 0x0920); + rtl8168_mdio_write(tp, 0x14, 0x1cd6); + rtl8168_mdio_write(tp, 0x14, 0x2c89); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x3063); + rtl8168_mdio_write(tp, 0x14, 0x1948); + rtl8168_mdio_write(tp, 0x14, 0x288a); + rtl8168_mdio_write(tp, 0x14, 0x1cd6); + rtl8168_mdio_write(tp, 0x14, 0x29bd); + rtl8168_mdio_write(tp, 0x14, 0xa802); + rtl8168_mdio_write(tp, 0x14, 0xa303); + rtl8168_mdio_write(tp, 0x14, 0x843f); + rtl8168_mdio_write(tp, 0x14, 0x81ff); + rtl8168_mdio_write(tp, 0x14, 0x8208); + rtl8168_mdio_write(tp, 0x14, 0xa201); + rtl8168_mdio_write(tp, 0x14, 0xc001); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x30a0); + rtl8168_mdio_write(tp, 0x14, 0x0d1c); + rtl8168_mdio_write(tp, 0x14, 0x30a0); + rtl8168_mdio_write(tp, 0x14, 0x3d13); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7f4c); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0xe003); + rtl8168_mdio_write(tp, 0x14, 0x0202); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6090); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fac); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0xa20c); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6091); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fac); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0x820e); + rtl8168_mdio_write(tp, 0x14, 0xa3e0); + rtl8168_mdio_write(tp, 0x14, 0xa520); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x609d); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fac); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0x8520); + rtl8168_mdio_write(tp, 0x14, 0x6703); + rtl8168_mdio_write(tp, 0x14, 0x2d34); + rtl8168_mdio_write(tp, 0x14, 0xa13e); + rtl8168_mdio_write(tp, 0x14, 0xc001); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0x6046); + rtl8168_mdio_write(tp, 0x14, 0x2d0d); + rtl8168_mdio_write(tp, 0x14, 0xa43f); + rtl8168_mdio_write(tp, 0x14, 0xa101); + rtl8168_mdio_write(tp, 0x14, 0xc020); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x3121); + rtl8168_mdio_write(tp, 0x14, 0x0d45); + rtl8168_mdio_write(tp, 0x14, 0x30c0); + rtl8168_mdio_write(tp, 0x14, 0x3d0d); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7f4c); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0xa540); + rtl8168_mdio_write(tp, 0x14, 0xc001); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4001); + rtl8168_mdio_write(tp, 0x14, 0xe00f); + rtl8168_mdio_write(tp, 0x14, 0x0501); + rtl8168_mdio_write(tp, 0x14, 0x1dac); + rtl8168_mdio_write(tp, 0x14, 0xc1c4); + rtl8168_mdio_write(tp, 0x14, 0xa268); + rtl8168_mdio_write(tp, 0x14, 0xa303); + rtl8168_mdio_write(tp, 0x14, 0x8420); + rtl8168_mdio_write(tp, 0x14, 0xe00f); + rtl8168_mdio_write(tp, 0x14, 0x0502); + rtl8168_mdio_write(tp, 0x14, 0x1dac); + rtl8168_mdio_write(tp, 0x14, 0xc002); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0x8208); + rtl8168_mdio_write(tp, 0x14, 0x8410); + rtl8168_mdio_write(tp, 0x14, 0xa121); + rtl8168_mdio_write(tp, 0x14, 0xc002); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0x8120); + rtl8168_mdio_write(tp, 0x14, 0x8180); + rtl8168_mdio_write(tp, 0x14, 0x1d97); + rtl8168_mdio_write(tp, 0x14, 0xa180); + rtl8168_mdio_write(tp, 0x14, 0xa13a); + rtl8168_mdio_write(tp, 0x14, 0x8240); + rtl8168_mdio_write(tp, 0x14, 0xa430); + rtl8168_mdio_write(tp, 0x14, 0xc010); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x30e1); + rtl8168_mdio_write(tp, 0x14, 0x0abc); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7f8c); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0xa480); + rtl8168_mdio_write(tp, 0x14, 0xa230); + rtl8168_mdio_write(tp, 0x14, 0xa303); + rtl8168_mdio_write(tp, 0x14, 0xc001); + rtl8168_mdio_write(tp, 0x14, 0xd70c); + rtl8168_mdio_write(tp, 0x14, 0x4124); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x6120); + rtl8168_mdio_write(tp, 0x14, 0xd711); + rtl8168_mdio_write(tp, 0x14, 0x3128); + rtl8168_mdio_write(tp, 0x14, 0x3d76); + rtl8168_mdio_write(tp, 0x14, 0x2d70); + rtl8168_mdio_write(tp, 0x14, 0xa801); + rtl8168_mdio_write(tp, 0x14, 0x2d6c); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0xe018); + rtl8168_mdio_write(tp, 0x14, 0x0208); + rtl8168_mdio_write(tp, 0x14, 0xa1f8); + rtl8168_mdio_write(tp, 0x14, 0x8480); + rtl8168_mdio_write(tp, 0x14, 0xc004); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0x6046); + rtl8168_mdio_write(tp, 0x14, 0x2d0d); + rtl8168_mdio_write(tp, 0x14, 0xa43f); + rtl8168_mdio_write(tp, 0x14, 0xa105); + rtl8168_mdio_write(tp, 0x14, 0x8228); + rtl8168_mdio_write(tp, 0x14, 0xc004); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0x81bc); + rtl8168_mdio_write(tp, 0x14, 0xa220); + rtl8168_mdio_write(tp, 0x14, 0x1d97); + rtl8168_mdio_write(tp, 0x14, 0x8220); + rtl8168_mdio_write(tp, 0x14, 0xa1bc); + rtl8168_mdio_write(tp, 0x14, 0xc040); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x30e1); + rtl8168_mdio_write(tp, 0x14, 0x0abc); + rtl8168_mdio_write(tp, 0x14, 0x30e1); + rtl8168_mdio_write(tp, 0x14, 0x3d0d); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7f4c); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0xa802); + rtl8168_mdio_write(tp, 0x14, 0xd70c); + rtl8168_mdio_write(tp, 0x14, 0x4244); + rtl8168_mdio_write(tp, 0x14, 0xa301); + rtl8168_mdio_write(tp, 0x14, 0xc004); + rtl8168_mdio_write(tp, 0x14, 0xd711); + rtl8168_mdio_write(tp, 0x14, 0x3128); + rtl8168_mdio_write(tp, 0x14, 0x3da5); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x5f80); + rtl8168_mdio_write(tp, 0x14, 0xd711); + rtl8168_mdio_write(tp, 0x14, 0x3109); + rtl8168_mdio_write(tp, 0x14, 0x3da7); + rtl8168_mdio_write(tp, 0x14, 0x2dab); + rtl8168_mdio_write(tp, 0x14, 0xa801); + rtl8168_mdio_write(tp, 0x14, 0x2d9a); + rtl8168_mdio_write(tp, 0x14, 0xa802); + rtl8168_mdio_write(tp, 0x14, 0xc004); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x4000); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x14, 0xa510); + rtl8168_mdio_write(tp, 0x14, 0xd710); + rtl8168_mdio_write(tp, 0x14, 0x609a); + rtl8168_mdio_write(tp, 0x14, 0xd71e); + rtl8168_mdio_write(tp, 0x14, 0x7fac); + rtl8168_mdio_write(tp, 0x14, 0x2ab6); + rtl8168_mdio_write(tp, 0x14, 0x8510); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x13, 0xA01A); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA006); + rtl8168_mdio_write(tp, 0x14, 0x0ad6); + rtl8168_mdio_write(tp, 0x13, 0xA004); + rtl8168_mdio_write(tp, 0x14, 0x07f5); + rtl8168_mdio_write(tp, 0x13, 0xA002); + rtl8168_mdio_write(tp, 0x14, 0x06a9); + rtl8168_mdio_write(tp, 0x13, 0xA000); + rtl8168_mdio_write(tp, 0x14, 0xf069); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0210); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x83a0); + rtl8168_mdio_write(tp, 0x14, 0xaf83); + rtl8168_mdio_write(tp, 0x14, 0xacaf); + rtl8168_mdio_write(tp, 0x14, 0x83b8); + rtl8168_mdio_write(tp, 0x14, 0xaf83); + rtl8168_mdio_write(tp, 0x14, 0xcdaf); + rtl8168_mdio_write(tp, 0x14, 0x83d3); + rtl8168_mdio_write(tp, 0x14, 0x0204); + rtl8168_mdio_write(tp, 0x14, 0x9a02); + rtl8168_mdio_write(tp, 0x14, 0x09a9); + rtl8168_mdio_write(tp, 0x14, 0x0284); + rtl8168_mdio_write(tp, 0x14, 0x61af); + rtl8168_mdio_write(tp, 0x14, 0x02fc); + rtl8168_mdio_write(tp, 0x14, 0xad20); + rtl8168_mdio_write(tp, 0x14, 0x0302); + rtl8168_mdio_write(tp, 0x14, 0x867c); + rtl8168_mdio_write(tp, 0x14, 0xad21); + rtl8168_mdio_write(tp, 0x14, 0x0302); + rtl8168_mdio_write(tp, 0x14, 0x85c9); + rtl8168_mdio_write(tp, 0x14, 0xad22); + rtl8168_mdio_write(tp, 0x14, 0x0302); + rtl8168_mdio_write(tp, 0x14, 0x1bc0); + rtl8168_mdio_write(tp, 0x14, 0xaf17); + rtl8168_mdio_write(tp, 0x14, 0xe302); + rtl8168_mdio_write(tp, 0x14, 0x8703); + rtl8168_mdio_write(tp, 0x14, 0xaf18); + rtl8168_mdio_write(tp, 0x14, 0x6201); + rtl8168_mdio_write(tp, 0x14, 0x06e0); + rtl8168_mdio_write(tp, 0x14, 0x8148); + rtl8168_mdio_write(tp, 0x14, 0xaf3c); + rtl8168_mdio_write(tp, 0x14, 0x69f8); + rtl8168_mdio_write(tp, 0x14, 0xf9fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0x10f7); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0x131f); + rtl8168_mdio_write(tp, 0x14, 0xd104); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0xf302); + rtl8168_mdio_write(tp, 0x14, 0x4259); + rtl8168_mdio_write(tp, 0x14, 0x0287); + rtl8168_mdio_write(tp, 0x14, 0x88bf); + rtl8168_mdio_write(tp, 0x14, 0x87cf); + rtl8168_mdio_write(tp, 0x14, 0xd7b8); + rtl8168_mdio_write(tp, 0x14, 0x22d0); + rtl8168_mdio_write(tp, 0x14, 0x0c02); + rtl8168_mdio_write(tp, 0x14, 0x4252); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xcda0); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xce8b); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xd1f5); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xd2a9); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xd30a); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xf010); + rtl8168_mdio_write(tp, 0x14, 0xee80); + rtl8168_mdio_write(tp, 0x14, 0xf38f); + rtl8168_mdio_write(tp, 0x14, 0xee81); + rtl8168_mdio_write(tp, 0x14, 0x011e); + rtl8168_mdio_write(tp, 0x14, 0xee81); + rtl8168_mdio_write(tp, 0x14, 0x0b4a); + rtl8168_mdio_write(tp, 0x14, 0xee81); + rtl8168_mdio_write(tp, 0x14, 0x0c7c); + rtl8168_mdio_write(tp, 0x14, 0xee81); + rtl8168_mdio_write(tp, 0x14, 0x127f); + rtl8168_mdio_write(tp, 0x14, 0xd100); + rtl8168_mdio_write(tp, 0x14, 0x0210); + rtl8168_mdio_write(tp, 0x14, 0xb5ee); + rtl8168_mdio_write(tp, 0x14, 0x8088); + rtl8168_mdio_write(tp, 0x14, 0xa4ee); + rtl8168_mdio_write(tp, 0x14, 0x8089); + rtl8168_mdio_write(tp, 0x14, 0x44ee); + rtl8168_mdio_write(tp, 0x14, 0x809a); + rtl8168_mdio_write(tp, 0x14, 0xa4ee); + rtl8168_mdio_write(tp, 0x14, 0x809b); + rtl8168_mdio_write(tp, 0x14, 0x44ee); + rtl8168_mdio_write(tp, 0x14, 0x809c); + rtl8168_mdio_write(tp, 0x14, 0xa7ee); + rtl8168_mdio_write(tp, 0x14, 0x80a5); + rtl8168_mdio_write(tp, 0x14, 0xa7d2); + rtl8168_mdio_write(tp, 0x14, 0x0002); + rtl8168_mdio_write(tp, 0x14, 0x0e66); + rtl8168_mdio_write(tp, 0x14, 0x0285); + rtl8168_mdio_write(tp, 0x14, 0xc0ee); + rtl8168_mdio_write(tp, 0x14, 0x87fc); + rtl8168_mdio_write(tp, 0x14, 0x00e0); + rtl8168_mdio_write(tp, 0x14, 0x8245); + rtl8168_mdio_write(tp, 0x14, 0xf622); + rtl8168_mdio_write(tp, 0x14, 0xe482); + rtl8168_mdio_write(tp, 0x14, 0x45ef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfdfc); + rtl8168_mdio_write(tp, 0x14, 0x0402); + rtl8168_mdio_write(tp, 0x14, 0x847a); + rtl8168_mdio_write(tp, 0x14, 0x0284); + rtl8168_mdio_write(tp, 0x14, 0xb302); + rtl8168_mdio_write(tp, 0x14, 0x0cab); + rtl8168_mdio_write(tp, 0x14, 0x020c); + rtl8168_mdio_write(tp, 0x14, 0xc402); + rtl8168_mdio_write(tp, 0x14, 0x0cef); + rtl8168_mdio_write(tp, 0x14, 0x020d); + rtl8168_mdio_write(tp, 0x14, 0x0802); + rtl8168_mdio_write(tp, 0x14, 0x0d33); + rtl8168_mdio_write(tp, 0x14, 0x020c); + rtl8168_mdio_write(tp, 0x14, 0x3d04); + rtl8168_mdio_write(tp, 0x14, 0xf8fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xe182); + rtl8168_mdio_write(tp, 0x14, 0x2fac); + rtl8168_mdio_write(tp, 0x14, 0x291a); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x24ac); + rtl8168_mdio_write(tp, 0x14, 0x2102); + rtl8168_mdio_write(tp, 0x14, 0xae22); + rtl8168_mdio_write(tp, 0x14, 0x0210); + rtl8168_mdio_write(tp, 0x14, 0x57f6); + rtl8168_mdio_write(tp, 0x14, 0x21e4); + rtl8168_mdio_write(tp, 0x14, 0x8224); + rtl8168_mdio_write(tp, 0x14, 0xd101); + rtl8168_mdio_write(tp, 0x14, 0xbf44); + rtl8168_mdio_write(tp, 0x14, 0xd202); + rtl8168_mdio_write(tp, 0x14, 0x4259); + rtl8168_mdio_write(tp, 0x14, 0xae10); + rtl8168_mdio_write(tp, 0x14, 0x0212); + rtl8168_mdio_write(tp, 0x14, 0x4cf6); + rtl8168_mdio_write(tp, 0x14, 0x29e5); + rtl8168_mdio_write(tp, 0x14, 0x822f); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x24f6); + rtl8168_mdio_write(tp, 0x14, 0x21e4); + rtl8168_mdio_write(tp, 0x14, 0x8224); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xe182); + rtl8168_mdio_write(tp, 0x14, 0x2fac); + rtl8168_mdio_write(tp, 0x14, 0x2a18); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x24ac); + rtl8168_mdio_write(tp, 0x14, 0x2202); + rtl8168_mdio_write(tp, 0x14, 0xae26); + rtl8168_mdio_write(tp, 0x14, 0x0284); + rtl8168_mdio_write(tp, 0x14, 0xf802); + rtl8168_mdio_write(tp, 0x14, 0x8565); + rtl8168_mdio_write(tp, 0x14, 0xd101); + rtl8168_mdio_write(tp, 0x14, 0xbf44); + rtl8168_mdio_write(tp, 0x14, 0xd502); + rtl8168_mdio_write(tp, 0x14, 0x4259); + rtl8168_mdio_write(tp, 0x14, 0xae0e); + rtl8168_mdio_write(tp, 0x14, 0x0284); + rtl8168_mdio_write(tp, 0x14, 0xea02); + rtl8168_mdio_write(tp, 0x14, 0x85a9); + rtl8168_mdio_write(tp, 0x14, 0xe182); + rtl8168_mdio_write(tp, 0x14, 0x2ff6); + rtl8168_mdio_write(tp, 0x14, 0x2ae5); + rtl8168_mdio_write(tp, 0x14, 0x822f); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x24f6); + rtl8168_mdio_write(tp, 0x14, 0x22e4); + rtl8168_mdio_write(tp, 0x14, 0x8224); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf9e2); + rtl8168_mdio_write(tp, 0x14, 0x8011); + rtl8168_mdio_write(tp, 0x14, 0xad31); + rtl8168_mdio_write(tp, 0x14, 0x05d2); + rtl8168_mdio_write(tp, 0x14, 0x0002); + rtl8168_mdio_write(tp, 0x14, 0x0e66); + rtl8168_mdio_write(tp, 0x14, 0xfd04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69e0); + rtl8168_mdio_write(tp, 0x14, 0x8011); + rtl8168_mdio_write(tp, 0x14, 0xad21); + rtl8168_mdio_write(tp, 0x14, 0x5cbf); + rtl8168_mdio_write(tp, 0x14, 0x43be); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97ac); + rtl8168_mdio_write(tp, 0x14, 0x281b); + rtl8168_mdio_write(tp, 0x14, 0xbf43); + rtl8168_mdio_write(tp, 0x14, 0xc102); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0xac28); + rtl8168_mdio_write(tp, 0x14, 0x12bf); + rtl8168_mdio_write(tp, 0x14, 0x43c7); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97ac); + rtl8168_mdio_write(tp, 0x14, 0x2804); + rtl8168_mdio_write(tp, 0x14, 0xd300); + rtl8168_mdio_write(tp, 0x14, 0xae07); + rtl8168_mdio_write(tp, 0x14, 0xd306); + rtl8168_mdio_write(tp, 0x14, 0xaf85); + rtl8168_mdio_write(tp, 0x14, 0x56d3); + rtl8168_mdio_write(tp, 0x14, 0x03e0); + rtl8168_mdio_write(tp, 0x14, 0x8011); + rtl8168_mdio_write(tp, 0x14, 0xad26); + rtl8168_mdio_write(tp, 0x14, 0x25bf); + rtl8168_mdio_write(tp, 0x14, 0x4559); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97e2); + rtl8168_mdio_write(tp, 0x14, 0x8073); + rtl8168_mdio_write(tp, 0x14, 0x0d21); + rtl8168_mdio_write(tp, 0x14, 0xf637); + rtl8168_mdio_write(tp, 0x14, 0x0d11); + rtl8168_mdio_write(tp, 0x14, 0xf62f); + rtl8168_mdio_write(tp, 0x14, 0x1b21); + rtl8168_mdio_write(tp, 0x14, 0xaa02); + rtl8168_mdio_write(tp, 0x14, 0xae10); + rtl8168_mdio_write(tp, 0x14, 0xe280); + rtl8168_mdio_write(tp, 0x14, 0x740d); + rtl8168_mdio_write(tp, 0x14, 0x21f6); + rtl8168_mdio_write(tp, 0x14, 0x371b); + rtl8168_mdio_write(tp, 0x14, 0x21aa); + rtl8168_mdio_write(tp, 0x14, 0x0313); + rtl8168_mdio_write(tp, 0x14, 0xae02); + rtl8168_mdio_write(tp, 0x14, 0x2b02); + rtl8168_mdio_write(tp, 0x14, 0x020e); + rtl8168_mdio_write(tp, 0x14, 0x5102); + rtl8168_mdio_write(tp, 0x14, 0x0e66); + rtl8168_mdio_write(tp, 0x14, 0x020f); + rtl8168_mdio_write(tp, 0x14, 0xa3ef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfdfc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xf9fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xe080); + rtl8168_mdio_write(tp, 0x14, 0x12ad); + rtl8168_mdio_write(tp, 0x14, 0x2733); + rtl8168_mdio_write(tp, 0x14, 0xbf43); + rtl8168_mdio_write(tp, 0x14, 0xbe02); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0xac28); + rtl8168_mdio_write(tp, 0x14, 0x09bf); + rtl8168_mdio_write(tp, 0x14, 0x43c1); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97ad); + rtl8168_mdio_write(tp, 0x14, 0x2821); + rtl8168_mdio_write(tp, 0x14, 0xbf45); + rtl8168_mdio_write(tp, 0x14, 0x5902); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0xe387); + rtl8168_mdio_write(tp, 0x14, 0xffd2); + rtl8168_mdio_write(tp, 0x14, 0x001b); + rtl8168_mdio_write(tp, 0x14, 0x45ac); + rtl8168_mdio_write(tp, 0x14, 0x2711); + rtl8168_mdio_write(tp, 0x14, 0xe187); + rtl8168_mdio_write(tp, 0x14, 0xfebf); + rtl8168_mdio_write(tp, 0x14, 0x87e4); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x590d); + rtl8168_mdio_write(tp, 0x14, 0x11bf); + rtl8168_mdio_write(tp, 0x14, 0x87e7); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59ef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfdfc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69d1); + rtl8168_mdio_write(tp, 0x14, 0x00bf); + rtl8168_mdio_write(tp, 0x14, 0x87e4); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59bf); + rtl8168_mdio_write(tp, 0x14, 0x87e7); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59ef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xee87); + rtl8168_mdio_write(tp, 0x14, 0xff46); + rtl8168_mdio_write(tp, 0x14, 0xee87); + rtl8168_mdio_write(tp, 0x14, 0xfe01); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69e0); + rtl8168_mdio_write(tp, 0x14, 0x8241); + rtl8168_mdio_write(tp, 0x14, 0xa000); + rtl8168_mdio_write(tp, 0x14, 0x0502); + rtl8168_mdio_write(tp, 0x14, 0x85eb); + rtl8168_mdio_write(tp, 0x14, 0xae0e); + rtl8168_mdio_write(tp, 0x14, 0xa001); + rtl8168_mdio_write(tp, 0x14, 0x0502); + rtl8168_mdio_write(tp, 0x14, 0x1a5a); + rtl8168_mdio_write(tp, 0x14, 0xae06); + rtl8168_mdio_write(tp, 0x14, 0xa002); + rtl8168_mdio_write(tp, 0x14, 0x0302); + rtl8168_mdio_write(tp, 0x14, 0x1ae6); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xf9fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x29f6); + rtl8168_mdio_write(tp, 0x14, 0x21e4); + rtl8168_mdio_write(tp, 0x14, 0x8229); + rtl8168_mdio_write(tp, 0x14, 0xe080); + rtl8168_mdio_write(tp, 0x14, 0x10ac); + rtl8168_mdio_write(tp, 0x14, 0x2202); + rtl8168_mdio_write(tp, 0x14, 0xae76); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x27f7); + rtl8168_mdio_write(tp, 0x14, 0x21e4); + rtl8168_mdio_write(tp, 0x14, 0x8227); + rtl8168_mdio_write(tp, 0x14, 0xbf43); + rtl8168_mdio_write(tp, 0x14, 0x1302); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0xef21); + rtl8168_mdio_write(tp, 0x14, 0xbf43); + rtl8168_mdio_write(tp, 0x14, 0x1602); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0x0c11); + rtl8168_mdio_write(tp, 0x14, 0x1e21); + rtl8168_mdio_write(tp, 0x14, 0xbf43); + rtl8168_mdio_write(tp, 0x14, 0x1902); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0x0c12); + rtl8168_mdio_write(tp, 0x14, 0x1e21); + rtl8168_mdio_write(tp, 0x14, 0xe682); + rtl8168_mdio_write(tp, 0x14, 0x43a2); + rtl8168_mdio_write(tp, 0x14, 0x000a); + rtl8168_mdio_write(tp, 0x14, 0xe182); + rtl8168_mdio_write(tp, 0x14, 0x27f6); + rtl8168_mdio_write(tp, 0x14, 0x29e5); + rtl8168_mdio_write(tp, 0x14, 0x8227); + rtl8168_mdio_write(tp, 0x14, 0xae42); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x44f7); + rtl8168_mdio_write(tp, 0x14, 0x21e4); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x0246); + rtl8168_mdio_write(tp, 0x14, 0xaebf); + rtl8168_mdio_write(tp, 0x14, 0x4325); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97ef); + rtl8168_mdio_write(tp, 0x14, 0x21bf); + rtl8168_mdio_write(tp, 0x14, 0x431c); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x970c); + rtl8168_mdio_write(tp, 0x14, 0x121e); + rtl8168_mdio_write(tp, 0x14, 0x21bf); + rtl8168_mdio_write(tp, 0x14, 0x431f); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x970c); + rtl8168_mdio_write(tp, 0x14, 0x131e); + rtl8168_mdio_write(tp, 0x14, 0x21bf); + rtl8168_mdio_write(tp, 0x14, 0x4328); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x970c); + rtl8168_mdio_write(tp, 0x14, 0x141e); + rtl8168_mdio_write(tp, 0x14, 0x21bf); + rtl8168_mdio_write(tp, 0x14, 0x44b1); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x970c); + rtl8168_mdio_write(tp, 0x14, 0x161e); + rtl8168_mdio_write(tp, 0x14, 0x21e6); + rtl8168_mdio_write(tp, 0x14, 0x8242); + rtl8168_mdio_write(tp, 0x14, 0xee82); + rtl8168_mdio_write(tp, 0x14, 0x4101); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x46a0); + rtl8168_mdio_write(tp, 0x14, 0x0005); + rtl8168_mdio_write(tp, 0x14, 0x0286); + rtl8168_mdio_write(tp, 0x14, 0x96ae); + rtl8168_mdio_write(tp, 0x14, 0x06a0); + rtl8168_mdio_write(tp, 0x14, 0x0103); + rtl8168_mdio_write(tp, 0x14, 0x0219); + rtl8168_mdio_write(tp, 0x14, 0x19ef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x29f6); + rtl8168_mdio_write(tp, 0x14, 0x20e4); + rtl8168_mdio_write(tp, 0x14, 0x8229); + rtl8168_mdio_write(tp, 0x14, 0xe080); + rtl8168_mdio_write(tp, 0x14, 0x10ac); + rtl8168_mdio_write(tp, 0x14, 0x2102); + rtl8168_mdio_write(tp, 0x14, 0xae54); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x27f7); + rtl8168_mdio_write(tp, 0x14, 0x20e4); + rtl8168_mdio_write(tp, 0x14, 0x8227); + rtl8168_mdio_write(tp, 0x14, 0xbf42); + rtl8168_mdio_write(tp, 0x14, 0xe602); + rtl8168_mdio_write(tp, 0x14, 0x4297); + rtl8168_mdio_write(tp, 0x14, 0xac28); + rtl8168_mdio_write(tp, 0x14, 0x22bf); + rtl8168_mdio_write(tp, 0x14, 0x430d); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97e5); + rtl8168_mdio_write(tp, 0x14, 0x8247); + rtl8168_mdio_write(tp, 0x14, 0xac28); + rtl8168_mdio_write(tp, 0x14, 0x20d1); + rtl8168_mdio_write(tp, 0x14, 0x03bf); + rtl8168_mdio_write(tp, 0x14, 0x4307); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59ee); + rtl8168_mdio_write(tp, 0x14, 0x8246); + rtl8168_mdio_write(tp, 0x14, 0x00e1); + rtl8168_mdio_write(tp, 0x14, 0x8227); + rtl8168_mdio_write(tp, 0x14, 0xf628); + rtl8168_mdio_write(tp, 0x14, 0xe582); + rtl8168_mdio_write(tp, 0x14, 0x27ae); + rtl8168_mdio_write(tp, 0x14, 0x21d1); + rtl8168_mdio_write(tp, 0x14, 0x04bf); + rtl8168_mdio_write(tp, 0x14, 0x4307); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59ae); + rtl8168_mdio_write(tp, 0x14, 0x08d1); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x4307); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59e0); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0xf720); + rtl8168_mdio_write(tp, 0x14, 0xe482); + rtl8168_mdio_write(tp, 0x14, 0x4402); + rtl8168_mdio_write(tp, 0x14, 0x46ae); + rtl8168_mdio_write(tp, 0x14, 0xee82); + rtl8168_mdio_write(tp, 0x14, 0x4601); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69e0); + rtl8168_mdio_write(tp, 0x14, 0x8013); + rtl8168_mdio_write(tp, 0x14, 0xad24); + rtl8168_mdio_write(tp, 0x14, 0x1cbf); + rtl8168_mdio_write(tp, 0x14, 0x87f0); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x97ad); + rtl8168_mdio_write(tp, 0x14, 0x2813); + rtl8168_mdio_write(tp, 0x14, 0xe087); + rtl8168_mdio_write(tp, 0x14, 0xfca0); + rtl8168_mdio_write(tp, 0x14, 0x0005); + rtl8168_mdio_write(tp, 0x14, 0x0287); + rtl8168_mdio_write(tp, 0x14, 0x36ae); + rtl8168_mdio_write(tp, 0x14, 0x10a0); + rtl8168_mdio_write(tp, 0x14, 0x0105); + rtl8168_mdio_write(tp, 0x14, 0x0287); + rtl8168_mdio_write(tp, 0x14, 0x48ae); + rtl8168_mdio_write(tp, 0x14, 0x08e0); + rtl8168_mdio_write(tp, 0x14, 0x8230); + rtl8168_mdio_write(tp, 0x14, 0xf626); + rtl8168_mdio_write(tp, 0x14, 0xe482); + rtl8168_mdio_write(tp, 0x14, 0x30ef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8e0); + rtl8168_mdio_write(tp, 0x14, 0x8245); + rtl8168_mdio_write(tp, 0x14, 0xf722); + rtl8168_mdio_write(tp, 0x14, 0xe482); + rtl8168_mdio_write(tp, 0x14, 0x4502); + rtl8168_mdio_write(tp, 0x14, 0x46ae); + rtl8168_mdio_write(tp, 0x14, 0xee87); + rtl8168_mdio_write(tp, 0x14, 0xfc01); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xfb02); + rtl8168_mdio_write(tp, 0x14, 0x46d3); + rtl8168_mdio_write(tp, 0x14, 0xad50); + rtl8168_mdio_write(tp, 0x14, 0x2fbf); + rtl8168_mdio_write(tp, 0x14, 0x87ed); + rtl8168_mdio_write(tp, 0x14, 0xd101); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59bf); + rtl8168_mdio_write(tp, 0x14, 0x87ed); + rtl8168_mdio_write(tp, 0x14, 0xd100); + rtl8168_mdio_write(tp, 0x14, 0x0242); + rtl8168_mdio_write(tp, 0x14, 0x59e0); + rtl8168_mdio_write(tp, 0x14, 0x8245); + rtl8168_mdio_write(tp, 0x14, 0xf622); + rtl8168_mdio_write(tp, 0x14, 0xe482); + rtl8168_mdio_write(tp, 0x14, 0x4502); + rtl8168_mdio_write(tp, 0x14, 0x46ae); + rtl8168_mdio_write(tp, 0x14, 0xd100); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0xf002); + rtl8168_mdio_write(tp, 0x14, 0x4259); + rtl8168_mdio_write(tp, 0x14, 0xee87); + rtl8168_mdio_write(tp, 0x14, 0xfc00); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x30f6); + rtl8168_mdio_write(tp, 0x14, 0x26e4); + rtl8168_mdio_write(tp, 0x14, 0x8230); + rtl8168_mdio_write(tp, 0x14, 0xffef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xface); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69fb); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0xb3d7); + rtl8168_mdio_write(tp, 0x14, 0x001c); + rtl8168_mdio_write(tp, 0x14, 0xd819); + rtl8168_mdio_write(tp, 0x14, 0xd919); + rtl8168_mdio_write(tp, 0x14, 0xda19); + rtl8168_mdio_write(tp, 0x14, 0xdb19); + rtl8168_mdio_write(tp, 0x14, 0x07ef); + rtl8168_mdio_write(tp, 0x14, 0x9502); + rtl8168_mdio_write(tp, 0x14, 0x4259); + rtl8168_mdio_write(tp, 0x14, 0x073f); + rtl8168_mdio_write(tp, 0x14, 0x0004); + rtl8168_mdio_write(tp, 0x14, 0x9fec); + rtl8168_mdio_write(tp, 0x14, 0xffef); + rtl8168_mdio_write(tp, 0x14, 0x96fe); + rtl8168_mdio_write(tp, 0x14, 0xc6fe); + rtl8168_mdio_write(tp, 0x14, 0xfdfc); + rtl8168_mdio_write(tp, 0x14, 0x0400); + rtl8168_mdio_write(tp, 0x14, 0x0145); + rtl8168_mdio_write(tp, 0x14, 0x7d00); + rtl8168_mdio_write(tp, 0x14, 0x0345); + rtl8168_mdio_write(tp, 0x14, 0x5c00); + rtl8168_mdio_write(tp, 0x14, 0x0143); + rtl8168_mdio_write(tp, 0x14, 0x4f00); + rtl8168_mdio_write(tp, 0x14, 0x0387); + rtl8168_mdio_write(tp, 0x14, 0xdb00); + rtl8168_mdio_write(tp, 0x14, 0x0987); + rtl8168_mdio_write(tp, 0x14, 0xde00); + rtl8168_mdio_write(tp, 0x14, 0x0987); + rtl8168_mdio_write(tp, 0x14, 0xe100); + rtl8168_mdio_write(tp, 0x14, 0x0087); + rtl8168_mdio_write(tp, 0x14, 0xeaa4); + rtl8168_mdio_write(tp, 0x14, 0x00b8); + rtl8168_mdio_write(tp, 0x14, 0x20c4); + rtl8168_mdio_write(tp, 0x14, 0x1600); + rtl8168_mdio_write(tp, 0x14, 0x000f); + rtl8168_mdio_write(tp, 0x14, 0xf800); + rtl8168_mdio_write(tp, 0x14, 0x7098); + rtl8168_mdio_write(tp, 0x14, 0xa58a); + rtl8168_mdio_write(tp, 0x14, 0xb6a8); + rtl8168_mdio_write(tp, 0x14, 0x3e50); + rtl8168_mdio_write(tp, 0x14, 0xa83e); + rtl8168_mdio_write(tp, 0x14, 0x33bc); + rtl8168_mdio_write(tp, 0x14, 0xc622); + rtl8168_mdio_write(tp, 0x14, 0xbcc6); + rtl8168_mdio_write(tp, 0x14, 0xaaa4); + rtl8168_mdio_write(tp, 0x14, 0x42ff); + rtl8168_mdio_write(tp, 0x14, 0xc408); + rtl8168_mdio_write(tp, 0x14, 0x00c4); + rtl8168_mdio_write(tp, 0x14, 0x16a8); + rtl8168_mdio_write(tp, 0x14, 0xbcc0); + rtl8168_mdio_write(tp, 0x13, 0xb818); + rtl8168_mdio_write(tp, 0x14, 0x02f3); + rtl8168_mdio_write(tp, 0x13, 0xb81a); + rtl8168_mdio_write(tp, 0x14, 0x17d1); + rtl8168_mdio_write(tp, 0x13, 0xb81c); + rtl8168_mdio_write(tp, 0x14, 0x185a); + rtl8168_mdio_write(tp, 0x13, 0xb81e); + rtl8168_mdio_write(tp, 0x14, 0x3c66); + rtl8168_mdio_write(tp, 0x13, 0xb820); + rtl8168_mdio_write(tp, 0x14, 0x021f); + rtl8168_mdio_write(tp, 0x13, 0xc416); + rtl8168_mdio_write(tp, 0x14, 0x0500); + rtl8168_mdio_write(tp, 0x13, 0xb82e); + rtl8168_mdio_write(tp, 0x14, 0xfffc); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x10); + gphy_val &= ~(BIT_9); + rtl8168_mdio_write(tp, 0x10, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8146); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_clear_phy_mcu_patch_request(tp); +} + +static void +rtl8168_set_phy_mcu_8168gu_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8146); + rtl8168_mdio_write(tp, 0x14, 0x0300); + rtl8168_mdio_write(tp, 0x13, 0xB82E); + rtl8168_mdio_write(tp, 0x14, 0x0001); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0xb820); + rtl8168_mdio_write(tp, 0x14, 0x0290); + rtl8168_mdio_write(tp, 0x13, 0xa012); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xa014); + rtl8168_mdio_write(tp, 0x14, 0x2c04); + rtl8168_mdio_write(tp, 0x14, 0x2c07); + rtl8168_mdio_write(tp, 0x14, 0x2c07); + rtl8168_mdio_write(tp, 0x14, 0x2c07); + rtl8168_mdio_write(tp, 0x14, 0xa304); + rtl8168_mdio_write(tp, 0x14, 0xa301); + rtl8168_mdio_write(tp, 0x14, 0x207e); + rtl8168_mdio_write(tp, 0x13, 0xa01a); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xa006); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xa004); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xa002); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xa000); + rtl8168_mdio_write(tp, 0x14, 0x107c); + rtl8168_mdio_write(tp, 0x13, 0xb820); + rtl8168_mdio_write(tp, 0x14, 0x0210); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8146); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_clear_phy_mcu_patch_request(tp); +} + +static void +rtl8168_set_phy_mcu_8411b_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp,0x1f, 0x0A43); + rtl8168_mdio_write(tp,0x13, 0x8146); + rtl8168_mdio_write(tp,0x14, 0x0100); + rtl8168_mdio_write(tp,0x13, 0xB82E); + rtl8168_mdio_write(tp,0x14, 0x0001); + + + rtl8168_mdio_write(tp,0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0xb820); + rtl8168_mdio_write(tp, 0x14, 0x0290); + rtl8168_mdio_write(tp, 0x13, 0xa012); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xa014); + rtl8168_mdio_write(tp, 0x14, 0x2c04); + rtl8168_mdio_write(tp, 0x14, 0x2c07); + rtl8168_mdio_write(tp, 0x14, 0x2c07); + rtl8168_mdio_write(tp, 0x14, 0x2c07); + rtl8168_mdio_write(tp, 0x14, 0xa304); + rtl8168_mdio_write(tp, 0x14, 0xa301); + rtl8168_mdio_write(tp, 0x14, 0x207e); + rtl8168_mdio_write(tp, 0x13, 0xa01a); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xa006); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xa004); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xa002); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xa000); + rtl8168_mdio_write(tp, 0x14, 0x107c); + rtl8168_mdio_write(tp, 0x13, 0xb820); + rtl8168_mdio_write(tp, 0x14, 0x0210); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8146); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_clear_phy_mcu_patch_request(tp); +} + +static void +rtl8168_set_phy_mcu_8168ep_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp,0x1f, 0x0A43); + rtl8168_mdio_write(tp,0x13, 0x8146); + rtl8168_mdio_write(tp,0x14, 0x8700); + rtl8168_mdio_write(tp,0x13, 0xB82E); + rtl8168_mdio_write(tp,0x14, 0x0001); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + + rtl8168_mdio_write(tp, 0x13, 0x83DD); + rtl8168_mdio_write(tp, 0x14, 0xAF83); + rtl8168_mdio_write(tp, 0x14, 0xE9AF); + rtl8168_mdio_write(tp, 0x14, 0x83EE); + rtl8168_mdio_write(tp, 0x14, 0xAF83); + rtl8168_mdio_write(tp, 0x14, 0xF1A1); + rtl8168_mdio_write(tp, 0x14, 0x83F4); + rtl8168_mdio_write(tp, 0x14, 0xD149); + rtl8168_mdio_write(tp, 0x14, 0xAF06); + rtl8168_mdio_write(tp, 0x14, 0x47AF); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0xAF00); + rtl8168_mdio_write(tp, 0x14, 0x00AF); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_mdio_write(tp, 0x13, 0xB818); + rtl8168_mdio_write(tp, 0x14, 0x0645); + + rtl8168_mdio_write(tp, 0x13, 0xB81A); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_mdio_write(tp, 0x13, 0xB81C); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_mdio_write(tp, 0x13, 0xB81E); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_mdio_write(tp, 0x13, 0xB832); + rtl8168_mdio_write(tp, 0x14, 0x0001); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8146); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_clear_phy_mcu_patch_request(tp); +} + +static void +rtl8168_set_phy_mcu_8168h_1(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8028); + rtl8168_mdio_write(tp, 0x14, 0x6200); + rtl8168_mdio_write(tp, 0x13, 0xB82E); + rtl8168_mdio_write(tp, 0x14, 0x0001); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0290); + rtl8168_mdio_write(tp, 0x13, 0xA012); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA014); + rtl8168_mdio_write(tp, 0x14, 0x2c04); + rtl8168_mdio_write(tp, 0x14, 0x2c10); + rtl8168_mdio_write(tp, 0x14, 0x2c10); + rtl8168_mdio_write(tp, 0x14, 0x2c10); + rtl8168_mdio_write(tp, 0x14, 0xa210); + rtl8168_mdio_write(tp, 0x14, 0xa101); + rtl8168_mdio_write(tp, 0x14, 0xce10); + rtl8168_mdio_write(tp, 0x14, 0xe070); + rtl8168_mdio_write(tp, 0x14, 0x0f40); + rtl8168_mdio_write(tp, 0x14, 0xaf01); + rtl8168_mdio_write(tp, 0x14, 0x8f01); + rtl8168_mdio_write(tp, 0x14, 0x183e); + rtl8168_mdio_write(tp, 0x14, 0x8e10); + rtl8168_mdio_write(tp, 0x14, 0x8101); + rtl8168_mdio_write(tp, 0x14, 0x8210); + rtl8168_mdio_write(tp, 0x14, 0x28da); + rtl8168_mdio_write(tp, 0x13, 0xA01A); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA006); + rtl8168_mdio_write(tp, 0x14, 0x0017); + rtl8168_mdio_write(tp, 0x13, 0xA004); + rtl8168_mdio_write(tp, 0x14, 0x0015); + rtl8168_mdio_write(tp, 0x13, 0xA002); + rtl8168_mdio_write(tp, 0x14, 0x0013); + rtl8168_mdio_write(tp, 0x13, 0xA000); + rtl8168_mdio_write(tp, 0x14, 0x18d1); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0210); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8028); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_clear_phy_mcu_patch_request(tp); +} + +static void +rtl8168_set_phy_mcu_8168h_2(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8028); + rtl8168_mdio_write(tp, 0x14, 0x6201); + rtl8168_mdio_write(tp, 0x13, 0xB82E); + rtl8168_mdio_write(tp, 0x14, 0x0001); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0290); + rtl8168_mdio_write(tp, 0x13, 0xA012); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA014); + rtl8168_mdio_write(tp, 0x14, 0x2c04); + rtl8168_mdio_write(tp, 0x14, 0x2c09); + rtl8168_mdio_write(tp, 0x14, 0x2c0d); + rtl8168_mdio_write(tp, 0x14, 0x2c12); + rtl8168_mdio_write(tp, 0x14, 0xad01); + rtl8168_mdio_write(tp, 0x14, 0xad01); + rtl8168_mdio_write(tp, 0x14, 0xad01); + rtl8168_mdio_write(tp, 0x14, 0xad01); + rtl8168_mdio_write(tp, 0x14, 0x236c); + rtl8168_mdio_write(tp, 0x14, 0xd03c); + rtl8168_mdio_write(tp, 0x14, 0xd1aa); + rtl8168_mdio_write(tp, 0x14, 0xc010); + rtl8168_mdio_write(tp, 0x14, 0x2745); + rtl8168_mdio_write(tp, 0x14, 0x33de); + rtl8168_mdio_write(tp, 0x14, 0x16ba); + rtl8168_mdio_write(tp, 0x14, 0x31ee); + rtl8168_mdio_write(tp, 0x14, 0x2712); + rtl8168_mdio_write(tp, 0x14, 0x274e); + rtl8168_mdio_write(tp, 0x14, 0xc2bb); + rtl8168_mdio_write(tp, 0x14, 0xd500); + rtl8168_mdio_write(tp, 0x14, 0xc426); + rtl8168_mdio_write(tp, 0x14, 0xd01d); + rtl8168_mdio_write(tp, 0x14, 0xd1c3); + rtl8168_mdio_write(tp, 0x14, 0x401c); + rtl8168_mdio_write(tp, 0x14, 0xd501); + rtl8168_mdio_write(tp, 0x14, 0xc2b3); + rtl8168_mdio_write(tp, 0x14, 0xd500); + rtl8168_mdio_write(tp, 0x14, 0xd00b); + rtl8168_mdio_write(tp, 0x14, 0xd1c3); + rtl8168_mdio_write(tp, 0x14, 0x401c); + rtl8168_mdio_write(tp, 0x14, 0x241a); + rtl8168_mdio_write(tp, 0x13, 0xA01A); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA006); + rtl8168_mdio_write(tp, 0x14, 0x0414); + rtl8168_mdio_write(tp, 0x13, 0xA004); + rtl8168_mdio_write(tp, 0x14, 0x074c); + rtl8168_mdio_write(tp, 0x13, 0xA002); + rtl8168_mdio_write(tp, 0x14, 0x0744); + rtl8168_mdio_write(tp, 0x13, 0xA000); + rtl8168_mdio_write(tp, 0x14, 0xf36b); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0210); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8323); + rtl8168_mdio_write(tp, 0x14, 0xaf83); + rtl8168_mdio_write(tp, 0x14, 0x2faf); + rtl8168_mdio_write(tp, 0x14, 0x853d); + rtl8168_mdio_write(tp, 0x14, 0xaf85); + rtl8168_mdio_write(tp, 0x14, 0x3daf); + rtl8168_mdio_write(tp, 0x14, 0x853d); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x45ad); + rtl8168_mdio_write(tp, 0x14, 0x2052); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7ae3); + rtl8168_mdio_write(tp, 0x14, 0x85fe); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f6); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7a1b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fa); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7be3); + rtl8168_mdio_write(tp, 0x14, 0x85fe); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f7); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7b1b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fb); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7ce3); + rtl8168_mdio_write(tp, 0x14, 0x85fe); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f8); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7c1b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fc); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7de3); + rtl8168_mdio_write(tp, 0x14, 0x85fe); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f9); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7d1b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fd); + rtl8168_mdio_write(tp, 0x14, 0xae50); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7ee3); + rtl8168_mdio_write(tp, 0x14, 0x85ff); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f6); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7e1b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fa); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7fe3); + rtl8168_mdio_write(tp, 0x14, 0x85ff); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f7); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x7f1b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fb); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x80e3); + rtl8168_mdio_write(tp, 0x14, 0x85ff); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f8); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x801b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fc); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x81e3); + rtl8168_mdio_write(tp, 0x14, 0x85ff); + rtl8168_mdio_write(tp, 0x14, 0x1a03); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x85f9); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x811b); + rtl8168_mdio_write(tp, 0x14, 0x03e4); + rtl8168_mdio_write(tp, 0x14, 0x85fd); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf6ad); + rtl8168_mdio_write(tp, 0x14, 0x2404); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xf610); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf7ad); + rtl8168_mdio_write(tp, 0x14, 0x2404); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xf710); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf8ad); + rtl8168_mdio_write(tp, 0x14, 0x2404); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xf810); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf9ad); + rtl8168_mdio_write(tp, 0x14, 0x2404); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xf910); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfaad); + rtl8168_mdio_write(tp, 0x14, 0x2704); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xfa00); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfbad); + rtl8168_mdio_write(tp, 0x14, 0x2704); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xfb00); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfcad); + rtl8168_mdio_write(tp, 0x14, 0x2704); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xfc00); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfdad); + rtl8168_mdio_write(tp, 0x14, 0x2704); + rtl8168_mdio_write(tp, 0x14, 0xee85); + rtl8168_mdio_write(tp, 0x14, 0xfd00); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x44ad); + rtl8168_mdio_write(tp, 0x14, 0x203f); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf6e4); + rtl8168_mdio_write(tp, 0x14, 0x8288); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfae4); + rtl8168_mdio_write(tp, 0x14, 0x8289); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x440d); + rtl8168_mdio_write(tp, 0x14, 0x0458); + rtl8168_mdio_write(tp, 0x14, 0x01bf); + rtl8168_mdio_write(tp, 0x14, 0x8264); + rtl8168_mdio_write(tp, 0x14, 0x0215); + rtl8168_mdio_write(tp, 0x14, 0x38bf); + rtl8168_mdio_write(tp, 0x14, 0x824e); + rtl8168_mdio_write(tp, 0x14, 0x0213); + rtl8168_mdio_write(tp, 0x14, 0x06a0); + rtl8168_mdio_write(tp, 0x14, 0x010f); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x44f6); + rtl8168_mdio_write(tp, 0x14, 0x20e4); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x580f); + rtl8168_mdio_write(tp, 0x14, 0xe582); + rtl8168_mdio_write(tp, 0x14, 0x5aae); + rtl8168_mdio_write(tp, 0x14, 0x0ebf); + rtl8168_mdio_write(tp, 0x14, 0x825e); + rtl8168_mdio_write(tp, 0x14, 0xe382); + rtl8168_mdio_write(tp, 0x14, 0x44f7); + rtl8168_mdio_write(tp, 0x14, 0x3ce7); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x0212); + rtl8168_mdio_write(tp, 0x14, 0xf0ad); + rtl8168_mdio_write(tp, 0x14, 0x213f); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf7e4); + rtl8168_mdio_write(tp, 0x14, 0x8288); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfbe4); + rtl8168_mdio_write(tp, 0x14, 0x8289); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x440d); + rtl8168_mdio_write(tp, 0x14, 0x0558); + rtl8168_mdio_write(tp, 0x14, 0x01bf); + rtl8168_mdio_write(tp, 0x14, 0x826b); + rtl8168_mdio_write(tp, 0x14, 0x0215); + rtl8168_mdio_write(tp, 0x14, 0x38bf); + rtl8168_mdio_write(tp, 0x14, 0x824f); + rtl8168_mdio_write(tp, 0x14, 0x0213); + rtl8168_mdio_write(tp, 0x14, 0x06a0); + rtl8168_mdio_write(tp, 0x14, 0x010f); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x44f6); + rtl8168_mdio_write(tp, 0x14, 0x21e4); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x580f); + rtl8168_mdio_write(tp, 0x14, 0xe582); + rtl8168_mdio_write(tp, 0x14, 0x5bae); + rtl8168_mdio_write(tp, 0x14, 0x0ebf); + rtl8168_mdio_write(tp, 0x14, 0x8265); + rtl8168_mdio_write(tp, 0x14, 0xe382); + rtl8168_mdio_write(tp, 0x14, 0x44f7); + rtl8168_mdio_write(tp, 0x14, 0x3de7); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x0212); + rtl8168_mdio_write(tp, 0x14, 0xf0ad); + rtl8168_mdio_write(tp, 0x14, 0x223f); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf8e4); + rtl8168_mdio_write(tp, 0x14, 0x8288); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfce4); + rtl8168_mdio_write(tp, 0x14, 0x8289); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x440d); + rtl8168_mdio_write(tp, 0x14, 0x0658); + rtl8168_mdio_write(tp, 0x14, 0x01bf); + rtl8168_mdio_write(tp, 0x14, 0x8272); + rtl8168_mdio_write(tp, 0x14, 0x0215); + rtl8168_mdio_write(tp, 0x14, 0x38bf); + rtl8168_mdio_write(tp, 0x14, 0x8250); + rtl8168_mdio_write(tp, 0x14, 0x0213); + rtl8168_mdio_write(tp, 0x14, 0x06a0); + rtl8168_mdio_write(tp, 0x14, 0x010f); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x44f6); + rtl8168_mdio_write(tp, 0x14, 0x22e4); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x580f); + rtl8168_mdio_write(tp, 0x14, 0xe582); + rtl8168_mdio_write(tp, 0x14, 0x5cae); + rtl8168_mdio_write(tp, 0x14, 0x0ebf); + rtl8168_mdio_write(tp, 0x14, 0x826c); + rtl8168_mdio_write(tp, 0x14, 0xe382); + rtl8168_mdio_write(tp, 0x14, 0x44f7); + rtl8168_mdio_write(tp, 0x14, 0x3ee7); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x0212); + rtl8168_mdio_write(tp, 0x14, 0xf0ad); + rtl8168_mdio_write(tp, 0x14, 0x233f); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xf9e4); + rtl8168_mdio_write(tp, 0x14, 0x8288); + rtl8168_mdio_write(tp, 0x14, 0xe085); + rtl8168_mdio_write(tp, 0x14, 0xfde4); + rtl8168_mdio_write(tp, 0x14, 0x8289); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x440d); + rtl8168_mdio_write(tp, 0x14, 0x0758); + rtl8168_mdio_write(tp, 0x14, 0x01bf); + rtl8168_mdio_write(tp, 0x14, 0x8279); + rtl8168_mdio_write(tp, 0x14, 0x0215); + rtl8168_mdio_write(tp, 0x14, 0x38bf); + rtl8168_mdio_write(tp, 0x14, 0x8251); + rtl8168_mdio_write(tp, 0x14, 0x0213); + rtl8168_mdio_write(tp, 0x14, 0x06a0); + rtl8168_mdio_write(tp, 0x14, 0x010f); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0x44f6); + rtl8168_mdio_write(tp, 0x14, 0x23e4); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x580f); + rtl8168_mdio_write(tp, 0x14, 0xe582); + rtl8168_mdio_write(tp, 0x14, 0x5dae); + rtl8168_mdio_write(tp, 0x14, 0x0ebf); + rtl8168_mdio_write(tp, 0x14, 0x8273); + rtl8168_mdio_write(tp, 0x14, 0xe382); + rtl8168_mdio_write(tp, 0x14, 0x44f7); + rtl8168_mdio_write(tp, 0x14, 0x3fe7); + rtl8168_mdio_write(tp, 0x14, 0x8244); + rtl8168_mdio_write(tp, 0x14, 0x0212); + rtl8168_mdio_write(tp, 0x14, 0xf0ee); + rtl8168_mdio_write(tp, 0x14, 0x8288); + rtl8168_mdio_write(tp, 0x14, 0x10ee); + rtl8168_mdio_write(tp, 0x14, 0x8289); + rtl8168_mdio_write(tp, 0x14, 0x00af); + rtl8168_mdio_write(tp, 0x14, 0x14aa); + rtl8168_mdio_write(tp, 0x13, 0xb818); + rtl8168_mdio_write(tp, 0x14, 0x13cf); + rtl8168_mdio_write(tp, 0x13, 0xb81a); + rtl8168_mdio_write(tp, 0x14, 0xfffd); + rtl8168_mdio_write(tp, 0x13, 0xb81c); + rtl8168_mdio_write(tp, 0x14, 0xfffd); + rtl8168_mdio_write(tp, 0x13, 0xb81e); + rtl8168_mdio_write(tp, 0x14, 0xfffd); + rtl8168_mdio_write(tp, 0x13, 0xb832); + rtl8168_mdio_write(tp, 0x14, 0x0001); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8028); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + rtl8168_clear_phy_mcu_patch_request(tp); + + if (tp->RequiredSecLanDonglePatch) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + gphy_val = rtl8168_mdio_read(tp, 0x11); + gphy_val &= ~BIT_6; + rtl8168_mdio_write(tp, 0x11, gphy_val); + } +} + +static void +rtl8168_set_phy_mcu_8168h_3(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int gphy_val; + + rtl8168_set_phy_mcu_patch_request(tp); + + + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8042); + rtl8168_mdio_write(tp, 0x14, 0x3800); + rtl8168_mdio_write(tp, 0x13, 0xB82E); + rtl8168_mdio_write(tp, 0x14, 0x0001); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0090); + rtl8168_mdio_write(tp, 0x13, 0xA016); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA012); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x13, 0xA014); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8010); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8014); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x14, 0x2b5d); + rtl8168_mdio_write(tp, 0x14, 0x0c68); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x0b3c); + rtl8168_mdio_write(tp, 0x14, 0xc2bb); + rtl8168_mdio_write(tp, 0x14, 0xd500); + rtl8168_mdio_write(tp, 0x14, 0xc426); + rtl8168_mdio_write(tp, 0x14, 0xd01d); + rtl8168_mdio_write(tp, 0x14, 0xd1c3); + rtl8168_mdio_write(tp, 0x14, 0x401c); + rtl8168_mdio_write(tp, 0x14, 0xd501); + rtl8168_mdio_write(tp, 0x14, 0xc2b3); + rtl8168_mdio_write(tp, 0x14, 0xd500); + rtl8168_mdio_write(tp, 0x14, 0xd00b); + rtl8168_mdio_write(tp, 0x14, 0xd1c3); + rtl8168_mdio_write(tp, 0x14, 0x401c); + rtl8168_mdio_write(tp, 0x14, 0x1800); + rtl8168_mdio_write(tp, 0x14, 0x0478); + rtl8168_mdio_write(tp, 0x13, 0xA026); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xA024); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xA022); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xA020); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xA006); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xA004); + rtl8168_mdio_write(tp, 0x14, 0x0fff); + rtl8168_mdio_write(tp, 0x13, 0xA002); + rtl8168_mdio_write(tp, 0x14, 0x0472); + rtl8168_mdio_write(tp, 0x13, 0xA000); + rtl8168_mdio_write(tp, 0x14, 0x0b3a); + rtl8168_mdio_write(tp, 0x13, 0xA008); + rtl8168_mdio_write(tp, 0x14, 0x0300); + rtl8168_mdio_write(tp, 0x13, 0xB820); + rtl8168_mdio_write(tp, 0x14, 0x0010); + + + rtl8168_mdio_write(tp, 0x13, 0x83f3); + rtl8168_mdio_write(tp, 0x14, 0xaf84); + rtl8168_mdio_write(tp, 0x14, 0x0baf); + rtl8168_mdio_write(tp, 0x14, 0x8466); + rtl8168_mdio_write(tp, 0x14, 0xaf84); + rtl8168_mdio_write(tp, 0x14, 0xcdaf); + rtl8168_mdio_write(tp, 0x14, 0x873c); + rtl8168_mdio_write(tp, 0x14, 0xaf87); + rtl8168_mdio_write(tp, 0x14, 0x3faf); + rtl8168_mdio_write(tp, 0x14, 0x8760); + rtl8168_mdio_write(tp, 0x14, 0xaf87); + rtl8168_mdio_write(tp, 0x14, 0x60af); + rtl8168_mdio_write(tp, 0x14, 0x8760); + rtl8168_mdio_write(tp, 0x14, 0xef79); + rtl8168_mdio_write(tp, 0x14, 0xfb89); + rtl8168_mdio_write(tp, 0x14, 0xe987); + rtl8168_mdio_write(tp, 0x14, 0xffd7); + rtl8168_mdio_write(tp, 0x14, 0x0017); + rtl8168_mdio_write(tp, 0x14, 0xd400); + rtl8168_mdio_write(tp, 0x14, 0x051c); + rtl8168_mdio_write(tp, 0x14, 0x421a); + rtl8168_mdio_write(tp, 0x14, 0x741b); + rtl8168_mdio_write(tp, 0x14, 0x97e9); + rtl8168_mdio_write(tp, 0x14, 0x87fe); + rtl8168_mdio_write(tp, 0x14, 0xffef); + rtl8168_mdio_write(tp, 0x14, 0x97e0); + rtl8168_mdio_write(tp, 0x14, 0x82aa); + rtl8168_mdio_write(tp, 0x14, 0xa000); + rtl8168_mdio_write(tp, 0x14, 0x08ef); + rtl8168_mdio_write(tp, 0x14, 0x46dc); + rtl8168_mdio_write(tp, 0x14, 0x19dd); + rtl8168_mdio_write(tp, 0x14, 0xaf1a); + rtl8168_mdio_write(tp, 0x14, 0x37a0); + rtl8168_mdio_write(tp, 0x14, 0x012d); + rtl8168_mdio_write(tp, 0x14, 0xe082); + rtl8168_mdio_write(tp, 0x14, 0xa7ac); + rtl8168_mdio_write(tp, 0x14, 0x2013); + rtl8168_mdio_write(tp, 0x14, 0xe087); + rtl8168_mdio_write(tp, 0x14, 0xffe1); + rtl8168_mdio_write(tp, 0x14, 0x87fe); + rtl8168_mdio_write(tp, 0x14, 0xac27); + rtl8168_mdio_write(tp, 0x14, 0x05a1); + rtl8168_mdio_write(tp, 0x14, 0x0807); + rtl8168_mdio_write(tp, 0x14, 0xae0f); + rtl8168_mdio_write(tp, 0x14, 0xa107); + rtl8168_mdio_write(tp, 0x14, 0x02ae); + rtl8168_mdio_write(tp, 0x14, 0x0aef); + rtl8168_mdio_write(tp, 0x14, 0x4619); + rtl8168_mdio_write(tp, 0x14, 0x19dc); + rtl8168_mdio_write(tp, 0x14, 0x19dd); + rtl8168_mdio_write(tp, 0x14, 0xaf1a); + rtl8168_mdio_write(tp, 0x14, 0x37d8); + rtl8168_mdio_write(tp, 0x14, 0x19d9); + rtl8168_mdio_write(tp, 0x14, 0x19dc); + rtl8168_mdio_write(tp, 0x14, 0x19dd); + rtl8168_mdio_write(tp, 0x14, 0xaf1a); + rtl8168_mdio_write(tp, 0x14, 0x3719); + rtl8168_mdio_write(tp, 0x14, 0x19ae); + rtl8168_mdio_write(tp, 0x14, 0xcfbf); + rtl8168_mdio_write(tp, 0x14, 0x878a); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdc3c); + rtl8168_mdio_write(tp, 0x14, 0x0005); + rtl8168_mdio_write(tp, 0x14, 0xaaf5); + rtl8168_mdio_write(tp, 0x14, 0x0249); + rtl8168_mdio_write(tp, 0x14, 0xcaef); + rtl8168_mdio_write(tp, 0x14, 0x67d7); + rtl8168_mdio_write(tp, 0x14, 0x0014); + rtl8168_mdio_write(tp, 0x14, 0x0249); + rtl8168_mdio_write(tp, 0x14, 0xe5ad); + rtl8168_mdio_write(tp, 0x14, 0x50f7); + rtl8168_mdio_write(tp, 0x14, 0xd400); + rtl8168_mdio_write(tp, 0x14, 0x01bf); + rtl8168_mdio_write(tp, 0x14, 0x46a7); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0x98bf); + rtl8168_mdio_write(tp, 0x14, 0x465c); + rtl8168_mdio_write(tp, 0x14, 0x024a); + rtl8168_mdio_write(tp, 0x14, 0x5fd4); + rtl8168_mdio_write(tp, 0x14, 0x0003); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x9c02); + rtl8168_mdio_write(tp, 0x14, 0x4498); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x9902); + rtl8168_mdio_write(tp, 0x14, 0x4a5f); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x8d02); + rtl8168_mdio_write(tp, 0x14, 0x4a5f); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x9002); + rtl8168_mdio_write(tp, 0x14, 0x44dc); + rtl8168_mdio_write(tp, 0x14, 0xad28); + rtl8168_mdio_write(tp, 0x14, 0xf7bf); + rtl8168_mdio_write(tp, 0x14, 0x8796); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdcad); + rtl8168_mdio_write(tp, 0x14, 0x28f7); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x9302); + rtl8168_mdio_write(tp, 0x14, 0x4a5f); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x9302); + rtl8168_mdio_write(tp, 0x14, 0x4a56); + rtl8168_mdio_write(tp, 0x14, 0xbf46); + rtl8168_mdio_write(tp, 0x14, 0x5c02); + rtl8168_mdio_write(tp, 0x14, 0x4a56); + rtl8168_mdio_write(tp, 0x14, 0xbf45); + rtl8168_mdio_write(tp, 0x14, 0x21af); + rtl8168_mdio_write(tp, 0x14, 0x020e); + rtl8168_mdio_write(tp, 0x14, 0xee82); + rtl8168_mdio_write(tp, 0x14, 0x5000); + rtl8168_mdio_write(tp, 0x14, 0x0284); + rtl8168_mdio_write(tp, 0x14, 0xdd02); + rtl8168_mdio_write(tp, 0x14, 0x8521); + rtl8168_mdio_write(tp, 0x14, 0x0285); + rtl8168_mdio_write(tp, 0x14, 0x36af); + rtl8168_mdio_write(tp, 0x14, 0x03d2); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xfafb); + rtl8168_mdio_write(tp, 0x14, 0xef59); + rtl8168_mdio_write(tp, 0x14, 0xbf45); + rtl8168_mdio_write(tp, 0x14, 0x3002); + rtl8168_mdio_write(tp, 0x14, 0x44dc); + rtl8168_mdio_write(tp, 0x14, 0x3c00); + rtl8168_mdio_write(tp, 0x14, 0x03aa); + rtl8168_mdio_write(tp, 0x14, 0x2cbf); + rtl8168_mdio_write(tp, 0x14, 0x8790); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdcad); + rtl8168_mdio_write(tp, 0x14, 0x2823); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x9602); + rtl8168_mdio_write(tp, 0x14, 0x44dc); + rtl8168_mdio_write(tp, 0x14, 0xad28); + rtl8168_mdio_write(tp, 0x14, 0x1a02); + rtl8168_mdio_write(tp, 0x14, 0x49ca); + rtl8168_mdio_write(tp, 0x14, 0xef67); + rtl8168_mdio_write(tp, 0x14, 0xd700); + rtl8168_mdio_write(tp, 0x14, 0x0202); + rtl8168_mdio_write(tp, 0x14, 0x49e5); + rtl8168_mdio_write(tp, 0x14, 0xad50); + rtl8168_mdio_write(tp, 0x14, 0xf7bf); + rtl8168_mdio_write(tp, 0x14, 0x8793); + rtl8168_mdio_write(tp, 0x14, 0x024a); + rtl8168_mdio_write(tp, 0x14, 0x5fbf); + rtl8168_mdio_write(tp, 0x14, 0x8793); + rtl8168_mdio_write(tp, 0x14, 0x024a); + rtl8168_mdio_write(tp, 0x14, 0x56ef); + rtl8168_mdio_write(tp, 0x14, 0x95ff); + rtl8168_mdio_write(tp, 0x14, 0xfefd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xe080); + rtl8168_mdio_write(tp, 0x14, 0x15ad); + rtl8168_mdio_write(tp, 0x14, 0x2406); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x8702); + rtl8168_mdio_write(tp, 0x14, 0x4a56); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xe087); + rtl8168_mdio_write(tp, 0x14, 0xf9e1); + rtl8168_mdio_write(tp, 0x14, 0x87fa); + rtl8168_mdio_write(tp, 0x14, 0x1b10); + rtl8168_mdio_write(tp, 0x14, 0x9f1e); + rtl8168_mdio_write(tp, 0x14, 0xee87); + rtl8168_mdio_write(tp, 0x14, 0xf900); + rtl8168_mdio_write(tp, 0x14, 0xe080); + rtl8168_mdio_write(tp, 0x14, 0x15ac); + rtl8168_mdio_write(tp, 0x14, 0x2606); + rtl8168_mdio_write(tp, 0x14, 0xee87); + rtl8168_mdio_write(tp, 0x14, 0xf700); + rtl8168_mdio_write(tp, 0x14, 0xae12); + rtl8168_mdio_write(tp, 0x14, 0x0286); + rtl8168_mdio_write(tp, 0x14, 0x9d02); + rtl8168_mdio_write(tp, 0x14, 0x8565); + rtl8168_mdio_write(tp, 0x14, 0x0285); + rtl8168_mdio_write(tp, 0x14, 0x9d02); + rtl8168_mdio_write(tp, 0x14, 0x8660); + rtl8168_mdio_write(tp, 0x14, 0xae04); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x87f9); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69fa); + rtl8168_mdio_write(tp, 0x14, 0xbf45); + rtl8168_mdio_write(tp, 0x14, 0x3002); + rtl8168_mdio_write(tp, 0x14, 0x44dc); + rtl8168_mdio_write(tp, 0x14, 0xa103); + rtl8168_mdio_write(tp, 0x14, 0x22e0); + rtl8168_mdio_write(tp, 0x14, 0x87eb); + rtl8168_mdio_write(tp, 0x14, 0xe187); + rtl8168_mdio_write(tp, 0x14, 0xecef); + rtl8168_mdio_write(tp, 0x14, 0x64bf); + rtl8168_mdio_write(tp, 0x14, 0x876f); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdc1b); + rtl8168_mdio_write(tp, 0x14, 0x46aa); + rtl8168_mdio_write(tp, 0x14, 0x0abf); + rtl8168_mdio_write(tp, 0x14, 0x8772); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdc1b); + rtl8168_mdio_write(tp, 0x14, 0x46ab); + rtl8168_mdio_write(tp, 0x14, 0x06bf); + rtl8168_mdio_write(tp, 0x14, 0x876c); + rtl8168_mdio_write(tp, 0x14, 0x024a); + rtl8168_mdio_write(tp, 0x14, 0x5ffe); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xef59); + rtl8168_mdio_write(tp, 0x14, 0xf9bf); + rtl8168_mdio_write(tp, 0x14, 0x4530); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdca1); + rtl8168_mdio_write(tp, 0x14, 0x0310); + rtl8168_mdio_write(tp, 0x14, 0xe087); + rtl8168_mdio_write(tp, 0x14, 0xf7ac); + rtl8168_mdio_write(tp, 0x14, 0x2605); + rtl8168_mdio_write(tp, 0x14, 0x0285); + rtl8168_mdio_write(tp, 0x14, 0xc9ae); + rtl8168_mdio_write(tp, 0x14, 0x0d02); + rtl8168_mdio_write(tp, 0x14, 0x8613); + rtl8168_mdio_write(tp, 0x14, 0xae08); + rtl8168_mdio_write(tp, 0x14, 0xe287); + rtl8168_mdio_write(tp, 0x14, 0xf7f6); + rtl8168_mdio_write(tp, 0x14, 0x36e6); + rtl8168_mdio_write(tp, 0x14, 0x87f7); + rtl8168_mdio_write(tp, 0x14, 0xfdef); + rtl8168_mdio_write(tp, 0x14, 0x95fd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xfafb); + rtl8168_mdio_write(tp, 0x14, 0xef79); + rtl8168_mdio_write(tp, 0x14, 0xfbbf); + rtl8168_mdio_write(tp, 0x14, 0x876f); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdcef); + rtl8168_mdio_write(tp, 0x14, 0x64e2); + rtl8168_mdio_write(tp, 0x14, 0x87e9); + rtl8168_mdio_write(tp, 0x14, 0xe387); + rtl8168_mdio_write(tp, 0x14, 0xea1b); + rtl8168_mdio_write(tp, 0x14, 0x659e); + rtl8168_mdio_write(tp, 0x14, 0x10e4); + rtl8168_mdio_write(tp, 0x14, 0x87e9); + rtl8168_mdio_write(tp, 0x14, 0xe587); + rtl8168_mdio_write(tp, 0x14, 0xeae2); + rtl8168_mdio_write(tp, 0x14, 0x87f7); + rtl8168_mdio_write(tp, 0x14, 0xf636); + rtl8168_mdio_write(tp, 0x14, 0xe687); + rtl8168_mdio_write(tp, 0x14, 0xf7ae); + rtl8168_mdio_write(tp, 0x14, 0x19e2); + rtl8168_mdio_write(tp, 0x14, 0x87f7); + rtl8168_mdio_write(tp, 0x14, 0xf736); + rtl8168_mdio_write(tp, 0x14, 0xe687); + rtl8168_mdio_write(tp, 0x14, 0xf700); + rtl8168_mdio_write(tp, 0x14, 0x00ae); + rtl8168_mdio_write(tp, 0x14, 0x0200); + rtl8168_mdio_write(tp, 0x14, 0x0002); + rtl8168_mdio_write(tp, 0x14, 0x49ca); + rtl8168_mdio_write(tp, 0x14, 0xef57); + rtl8168_mdio_write(tp, 0x14, 0xe687); + rtl8168_mdio_write(tp, 0x14, 0xe7e7); + rtl8168_mdio_write(tp, 0x14, 0x87e8); + rtl8168_mdio_write(tp, 0x14, 0xffef); + rtl8168_mdio_write(tp, 0x14, 0x97ff); + rtl8168_mdio_write(tp, 0x14, 0xfefd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xfafb); + rtl8168_mdio_write(tp, 0x14, 0xef79); + rtl8168_mdio_write(tp, 0x14, 0xfbe2); + rtl8168_mdio_write(tp, 0x14, 0x87e7); + rtl8168_mdio_write(tp, 0x14, 0xe387); + rtl8168_mdio_write(tp, 0x14, 0xe8ef); + rtl8168_mdio_write(tp, 0x14, 0x65e2); + rtl8168_mdio_write(tp, 0x14, 0x87fb); + rtl8168_mdio_write(tp, 0x14, 0xe387); + rtl8168_mdio_write(tp, 0x14, 0xfcef); + rtl8168_mdio_write(tp, 0x14, 0x7502); + rtl8168_mdio_write(tp, 0x14, 0x49e5); + rtl8168_mdio_write(tp, 0x14, 0xac50); + rtl8168_mdio_write(tp, 0x14, 0x1abf); + rtl8168_mdio_write(tp, 0x14, 0x876f); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdcef); + rtl8168_mdio_write(tp, 0x14, 0x64e2); + rtl8168_mdio_write(tp, 0x14, 0x87e9); + rtl8168_mdio_write(tp, 0x14, 0xe387); + rtl8168_mdio_write(tp, 0x14, 0xea1b); + rtl8168_mdio_write(tp, 0x14, 0x659e); + rtl8168_mdio_write(tp, 0x14, 0x16e4); + rtl8168_mdio_write(tp, 0x14, 0x87e9); + rtl8168_mdio_write(tp, 0x14, 0xe587); + rtl8168_mdio_write(tp, 0x14, 0xeaae); + rtl8168_mdio_write(tp, 0x14, 0x06bf); + rtl8168_mdio_write(tp, 0x14, 0x876c); + rtl8168_mdio_write(tp, 0x14, 0x024a); + rtl8168_mdio_write(tp, 0x14, 0x5fe2); + rtl8168_mdio_write(tp, 0x14, 0x87f7); + rtl8168_mdio_write(tp, 0x14, 0xf636); + rtl8168_mdio_write(tp, 0x14, 0xe687); + rtl8168_mdio_write(tp, 0x14, 0xf7ff); + rtl8168_mdio_write(tp, 0x14, 0xef97); + rtl8168_mdio_write(tp, 0x14, 0xfffe); + rtl8168_mdio_write(tp, 0x14, 0xfdfc); + rtl8168_mdio_write(tp, 0x14, 0x04f8); + rtl8168_mdio_write(tp, 0x14, 0xf9fa); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x6602); + rtl8168_mdio_write(tp, 0x14, 0x44dc); + rtl8168_mdio_write(tp, 0x14, 0xad28); + rtl8168_mdio_write(tp, 0x14, 0x29bf); + rtl8168_mdio_write(tp, 0x14, 0x8763); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdcef); + rtl8168_mdio_write(tp, 0x14, 0x54bf); + rtl8168_mdio_write(tp, 0x14, 0x8760); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdcac); + rtl8168_mdio_write(tp, 0x14, 0x290d); + rtl8168_mdio_write(tp, 0x14, 0xac28); + rtl8168_mdio_write(tp, 0x14, 0x05a3); + rtl8168_mdio_write(tp, 0x14, 0x020c); + rtl8168_mdio_write(tp, 0x14, 0xae10); + rtl8168_mdio_write(tp, 0x14, 0xa303); + rtl8168_mdio_write(tp, 0x14, 0x07ae); + rtl8168_mdio_write(tp, 0x14, 0x0ba3); + rtl8168_mdio_write(tp, 0x14, 0x0402); + rtl8168_mdio_write(tp, 0x14, 0xae06); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x6c02); + rtl8168_mdio_write(tp, 0x14, 0x4a5f); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8f9); + rtl8168_mdio_write(tp, 0x14, 0xfafb); + rtl8168_mdio_write(tp, 0x14, 0xef69); + rtl8168_mdio_write(tp, 0x14, 0xfae0); + rtl8168_mdio_write(tp, 0x14, 0x8015); + rtl8168_mdio_write(tp, 0x14, 0xad25); + rtl8168_mdio_write(tp, 0x14, 0x41d2); + rtl8168_mdio_write(tp, 0x14, 0x0002); + rtl8168_mdio_write(tp, 0x14, 0x86f3); + rtl8168_mdio_write(tp, 0x14, 0xe087); + rtl8168_mdio_write(tp, 0x14, 0xebe1); + rtl8168_mdio_write(tp, 0x14, 0x87ec); + rtl8168_mdio_write(tp, 0x14, 0x1b46); + rtl8168_mdio_write(tp, 0x14, 0xab26); + rtl8168_mdio_write(tp, 0x14, 0xd40b); + rtl8168_mdio_write(tp, 0x14, 0xff1b); + rtl8168_mdio_write(tp, 0x14, 0x46aa); + rtl8168_mdio_write(tp, 0x14, 0x1fac); + rtl8168_mdio_write(tp, 0x14, 0x3204); + rtl8168_mdio_write(tp, 0x14, 0xef32); + rtl8168_mdio_write(tp, 0x14, 0xae02); + rtl8168_mdio_write(tp, 0x14, 0xd304); + rtl8168_mdio_write(tp, 0x14, 0x0c31); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0xeb1a); + rtl8168_mdio_write(tp, 0x14, 0x93d8); + rtl8168_mdio_write(tp, 0x14, 0x19d9); + rtl8168_mdio_write(tp, 0x14, 0x1b46); + rtl8168_mdio_write(tp, 0x14, 0xab0e); + rtl8168_mdio_write(tp, 0x14, 0x19d8); + rtl8168_mdio_write(tp, 0x14, 0x19d9); + rtl8168_mdio_write(tp, 0x14, 0x1b46); + rtl8168_mdio_write(tp, 0x14, 0xaa06); + rtl8168_mdio_write(tp, 0x14, 0x12a2); + rtl8168_mdio_write(tp, 0x14, 0x08c9); + rtl8168_mdio_write(tp, 0x14, 0xae06); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x6902); + rtl8168_mdio_write(tp, 0x14, 0x4a5f); + rtl8168_mdio_write(tp, 0x14, 0xfeef); + rtl8168_mdio_write(tp, 0x14, 0x96ff); + rtl8168_mdio_write(tp, 0x14, 0xfefd); + rtl8168_mdio_write(tp, 0x14, 0xfc04); + rtl8168_mdio_write(tp, 0x14, 0xf8fb); + rtl8168_mdio_write(tp, 0x14, 0xef79); + rtl8168_mdio_write(tp, 0x14, 0xa200); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x876f); + rtl8168_mdio_write(tp, 0x14, 0xae33); + rtl8168_mdio_write(tp, 0x14, 0xa201); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x8772); + rtl8168_mdio_write(tp, 0x14, 0xae2b); + rtl8168_mdio_write(tp, 0x14, 0xa202); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x8775); + rtl8168_mdio_write(tp, 0x14, 0xae23); + rtl8168_mdio_write(tp, 0x14, 0xa203); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x8778); + rtl8168_mdio_write(tp, 0x14, 0xae1b); + rtl8168_mdio_write(tp, 0x14, 0xa204); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x877b); + rtl8168_mdio_write(tp, 0x14, 0xae13); + rtl8168_mdio_write(tp, 0x14, 0xa205); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x877e); + rtl8168_mdio_write(tp, 0x14, 0xae0b); + rtl8168_mdio_write(tp, 0x14, 0xa206); + rtl8168_mdio_write(tp, 0x14, 0x05bf); + rtl8168_mdio_write(tp, 0x14, 0x8781); + rtl8168_mdio_write(tp, 0x14, 0xae03); + rtl8168_mdio_write(tp, 0x14, 0xbf87); + rtl8168_mdio_write(tp, 0x14, 0x8402); + rtl8168_mdio_write(tp, 0x14, 0x44dc); + rtl8168_mdio_write(tp, 0x14, 0xef64); + rtl8168_mdio_write(tp, 0x14, 0xef97); + rtl8168_mdio_write(tp, 0x14, 0xfffc); + rtl8168_mdio_write(tp, 0x14, 0x04af); + rtl8168_mdio_write(tp, 0x14, 0x00ed); + rtl8168_mdio_write(tp, 0x14, 0x0220); + rtl8168_mdio_write(tp, 0x14, 0xa5f8); + rtl8168_mdio_write(tp, 0x14, 0xfaef); + rtl8168_mdio_write(tp, 0x14, 0x69bf); + rtl8168_mdio_write(tp, 0x14, 0x4554); + rtl8168_mdio_write(tp, 0x14, 0x0244); + rtl8168_mdio_write(tp, 0x14, 0xdce0); + rtl8168_mdio_write(tp, 0x14, 0x87ff); + rtl8168_mdio_write(tp, 0x14, 0x1f01); + rtl8168_mdio_write(tp, 0x14, 0x9e06); + rtl8168_mdio_write(tp, 0x14, 0xe587); + rtl8168_mdio_write(tp, 0x14, 0xff02); + rtl8168_mdio_write(tp, 0x14, 0x4b05); + rtl8168_mdio_write(tp, 0x14, 0xef96); + rtl8168_mdio_write(tp, 0x14, 0xfefc); + rtl8168_mdio_write(tp, 0x14, 0xaf03); + rtl8168_mdio_write(tp, 0x14, 0x8c54); + rtl8168_mdio_write(tp, 0x14, 0xa434); + rtl8168_mdio_write(tp, 0x14, 0x74a6); + rtl8168_mdio_write(tp, 0x14, 0x0022); + rtl8168_mdio_write(tp, 0x14, 0xa434); + rtl8168_mdio_write(tp, 0x14, 0x11b8); + rtl8168_mdio_write(tp, 0x14, 0x4222); + rtl8168_mdio_write(tp, 0x14, 0xb842); + rtl8168_mdio_write(tp, 0x14, 0xf0a2); + rtl8168_mdio_write(tp, 0x14, 0x00f0); + rtl8168_mdio_write(tp, 0x14, 0xa202); + rtl8168_mdio_write(tp, 0x14, 0xf0a2); + rtl8168_mdio_write(tp, 0x14, 0x04f0); + rtl8168_mdio_write(tp, 0x14, 0xa206); + rtl8168_mdio_write(tp, 0x14, 0xf0a2); + rtl8168_mdio_write(tp, 0x14, 0x08f0); + rtl8168_mdio_write(tp, 0x14, 0xa20a); + rtl8168_mdio_write(tp, 0x14, 0xf0a2); + rtl8168_mdio_write(tp, 0x14, 0x0cf0); + rtl8168_mdio_write(tp, 0x14, 0xa20e); + rtl8168_mdio_write(tp, 0x14, 0x55b8); + rtl8168_mdio_write(tp, 0x14, 0x20d9); + rtl8168_mdio_write(tp, 0x14, 0xc608); + rtl8168_mdio_write(tp, 0x14, 0xaac4); + rtl8168_mdio_write(tp, 0x14, 0x3000); + rtl8168_mdio_write(tp, 0x14, 0xc614); + rtl8168_mdio_write(tp, 0x14, 0x33c4); + rtl8168_mdio_write(tp, 0x14, 0x1a88); + rtl8168_mdio_write(tp, 0x14, 0xc42e); + rtl8168_mdio_write(tp, 0x14, 0x22c4); + rtl8168_mdio_write(tp, 0x14, 0x2e54); + rtl8168_mdio_write(tp, 0x14, 0xc41a); + rtl8168_mdio_write(tp, 0x13, 0xb818); + rtl8168_mdio_write(tp, 0x14, 0x1a01); + rtl8168_mdio_write(tp, 0x13, 0xb81a); + rtl8168_mdio_write(tp, 0x14, 0x020b); + rtl8168_mdio_write(tp, 0x13, 0xb81c); + rtl8168_mdio_write(tp, 0x14, 0x03ce); + rtl8168_mdio_write(tp, 0x13, 0xb81e); + rtl8168_mdio_write(tp, 0x14, 0x00e7); + rtl8168_mdio_write(tp, 0x13, 0xb846); + rtl8168_mdio_write(tp, 0x14, 0x0389); + rtl8168_mdio_write(tp, 0x13, 0xb848); + rtl8168_mdio_write(tp, 0x14, 0xffff); + rtl8168_mdio_write(tp, 0x13, 0xb84a); + rtl8168_mdio_write(tp, 0x14, 0xffff); + rtl8168_mdio_write(tp, 0x13, 0xb84c); + rtl8168_mdio_write(tp, 0x14, 0xffff); + rtl8168_mdio_write(tp, 0x13, 0xb832); + rtl8168_mdio_write(tp, 0x14, 0x001f); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x0000); + rtl8168_mdio_write(tp, 0x14, 0x0000); + rtl8168_mdio_write(tp, 0x1f, 0x0B82); + gphy_val = rtl8168_mdio_read(tp, 0x17); + gphy_val &= ~(BIT_0); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8042); + rtl8168_mdio_write(tp, 0x14, 0x0000); + + + rtl8168_clear_phy_mcu_patch_request(tp); + + if (tp->RequiredSecLanDonglePatch) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + gphy_val = rtl8168_mdio_read(tp, 0x11); + gphy_val &= ~BIT_6; + rtl8168_mdio_write(tp, 0x11, gphy_val); + } +} + +static void +rtl8168_init_hw_phy_mcu(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u8 require_disable_phy_disable_mode = FALSE; + + if (tp->NotWrRamCodeToMicroP == TRUE) + return; + if (rtl8168_check_hw_phy_mcu_code_ver(dev)) + return; + + if (FALSE == rtl8168_phy_ram_code_check(dev)) { + rtl8168_set_phy_ram_code_check_fail_flag(dev); + return; + } + + if (HW_SUPPORT_CHECK_PHY_DISABLE_MODE(tp) && rtl8168_is_in_phy_disable_mode(dev)) + require_disable_phy_disable_mode = TRUE; + + if (require_disable_phy_disable_mode) + rtl8168_disable_phy_disable_mode(dev); + + switch (tp->mcfg) { + case CFG_METHOD_14: + rtl8168_set_phy_mcu_8168e_1(dev); + break; + case CFG_METHOD_15: + rtl8168_set_phy_mcu_8168e_2(dev); + break; + case CFG_METHOD_16: + rtl8168_set_phy_mcu_8168evl_1(dev); + break; + case CFG_METHOD_17: + rtl8168_set_phy_mcu_8168evl_2(dev); + break; + case CFG_METHOD_18: + rtl8168_set_phy_mcu_8168f_1(dev); + break; + case CFG_METHOD_19: + rtl8168_set_phy_mcu_8168f_2(dev); + break; + case CFG_METHOD_20: + rtl8168_set_phy_mcu_8411_1(dev); + break; + case CFG_METHOD_21: + rtl8168_set_phy_mcu_8168g_1(dev); + break; + case CFG_METHOD_25: + rtl8168_set_phy_mcu_8168gu_2(dev); + break; + case CFG_METHOD_26: + rtl8168_set_phy_mcu_8411b_1(dev); + break; + case CFG_METHOD_28: + rtl8168_set_phy_mcu_8168ep_2(dev); + break; + case CFG_METHOD_29: + rtl8168_set_phy_mcu_8168h_1(dev); + break; + case CFG_METHOD_30: + case CFG_METHOD_37: + rtl8168_set_phy_mcu_8168h_2(dev); + break; + case CFG_METHOD_35: + rtl8168_set_phy_mcu_8168h_3(dev); + break; + case CFG_METHOD_36: + break; + } + + if (require_disable_phy_disable_mode) + rtl8168_enable_phy_disable_mode(dev); + + rtl8168_write_hw_phy_mcu_code_ver(dev); + + rtl8168_mdio_write(tp,0x1F, 0x0000); + + tp->HwHasWrRamCodeToMicroP = TRUE; +} +#endif + +static void +rtl8168_hw_phy_config(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct pci_dev *pdev = tp->pci_dev; + u16 gphy_val; + unsigned int i; + + tp->phy_reset_enable(dev); + + if (HW_DASH_SUPPORT_TYPE_3(tp) && tp->HwPkgDet == 0x06) + return; + +#ifndef ENABLE_USE_FIRMWARE_FILE + if (!tp->rtl_fw) { + rtl8168_init_hw_phy_mcu(dev); + } +#endif + + if (tp->mcfg == CFG_METHOD_1) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0B, 0x94B0); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x12, 0x6096); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x0D, 0xF8A0); + } else if (tp->mcfg == CFG_METHOD_2) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0B, 0x94B0); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x12, 0x6096); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_3) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0B, 0x94B0); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x12, 0x6096); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_4) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x12, 0x2300); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x16, 0x000A); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x12, 0xC096); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x00, 0x88DE); + rtl8168_mdio_write(tp, 0x01, 0x82B1); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x08, 0x9E30); + rtl8168_mdio_write(tp, 0x09, 0x01F0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0A, 0x5500); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x03, 0x7002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0C, 0x00C8); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | (1 << 5)); + rtl8168_mdio_write(tp, 0x0D, rtl8168_mdio_read(tp, 0x0D) & ~(1 << 5)); + } else if (tp->mcfg == CFG_METHOD_5) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x12, 0x2300); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x16, 0x0F0A); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x00, 0x88DE); + rtl8168_mdio_write(tp, 0x01, 0x82B1); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0C, 0x7EB8); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x0761); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x03, 0x802F); + rtl8168_mdio_write(tp, 0x02, 0x4F02); + rtl8168_mdio_write(tp, 0x01, 0x0409); + rtl8168_mdio_write(tp, 0x00, 0xF099); + rtl8168_mdio_write(tp, 0x04, 0x9800); + rtl8168_mdio_write(tp, 0x04, 0x9000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x16, rtl8168_mdio_read(tp, 0x16) | (1 << 0)); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | (1 << 5)); + rtl8168_mdio_write(tp, 0x0D, rtl8168_mdio_read(tp, 0x0D) & ~(1 << 5)); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x1D, 0x3D98); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_6) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x12, 0x2300); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x16, 0x0F0A); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x00, 0x88DE); + rtl8168_mdio_write(tp, 0x01, 0x82B1); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0C, 0x7EB8); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x5461); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x5461); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x16, rtl8168_mdio_read(tp, 0x16) | (1 << 0)); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | (1 << 5)); + rtl8168_mdio_write(tp, 0x0D, rtl8168_mdio_read(tp, 0x0D) & ~(1 << 5)); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x1D, 0x3D98); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_7) { + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | (1 << 5)); + rtl8168_mdio_write(tp, 0x0D, rtl8168_mdio_read(tp, 0x0D) & ~(1 << 5)); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x1D, 0x3D98); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x14, 0xCAA3); + rtl8168_mdio_write(tp, 0x1C, 0x000A); + rtl8168_mdio_write(tp, 0x18, 0x65D0); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x17, 0xB580); + rtl8168_mdio_write(tp, 0x18, 0xFF54); + rtl8168_mdio_write(tp, 0x19, 0x3954); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0D, 0x310C); + rtl8168_mdio_write(tp, 0x0E, 0x310C); + rtl8168_mdio_write(tp, 0x0F, 0x311C); + rtl8168_mdio_write(tp, 0x06, 0x0761); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x18, 0xFF55); + rtl8168_mdio_write(tp, 0x19, 0x3955); + rtl8168_mdio_write(tp, 0x18, 0xFF54); + rtl8168_mdio_write(tp, 0x19, 0x3954); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_8) { + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | (1 << 5)); + rtl8168_mdio_write(tp, 0x0D, rtl8168_mdio_read(tp, 0x0D) & ~(1 << 5)); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x14, 0xCAA3); + rtl8168_mdio_write(tp, 0x1C, 0x000A); + rtl8168_mdio_write(tp, 0x18, 0x65D0); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x17, 0xB580); + rtl8168_mdio_write(tp, 0x18, 0xFF54); + rtl8168_mdio_write(tp, 0x19, 0x3954); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0D, 0x310C); + rtl8168_mdio_write(tp, 0x0E, 0x310C); + rtl8168_mdio_write(tp, 0x0F, 0x311C); + rtl8168_mdio_write(tp, 0x06, 0x0761); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x18, 0xFF55); + rtl8168_mdio_write(tp, 0x19, 0x3955); + rtl8168_mdio_write(tp, 0x18, 0xFF54); + rtl8168_mdio_write(tp, 0x19, 0x3954); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x16, rtl8168_mdio_read(tp, 0x16) | (1 << 0)); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_9) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x06, 0x4064); + rtl8168_mdio_write(tp, 0x07, 0x2863); + rtl8168_mdio_write(tp, 0x08, 0x059C); + rtl8168_mdio_write(tp, 0x09, 0x26B4); + rtl8168_mdio_write(tp, 0x0A, 0x6A19); + rtl8168_mdio_write(tp, 0x0B, 0xDCC8); + rtl8168_mdio_write(tp, 0x10, 0xF06D); + rtl8168_mdio_write(tp, 0x14, 0x7F68); + rtl8168_mdio_write(tp, 0x18, 0x7FD9); + rtl8168_mdio_write(tp, 0x1C, 0xF0FF); + rtl8168_mdio_write(tp, 0x1D, 0x3D9C); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x12, 0xF49F); + rtl8168_mdio_write(tp, 0x13, 0x070B); + rtl8168_mdio_write(tp, 0x1A, 0x05AD); + rtl8168_mdio_write(tp, 0x14, 0x94C0); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0B) & 0xFF00; + gphy_val |= 0x10; + rtl8168_mdio_write(tp, 0x0B, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x0C) & 0x00FF; + gphy_val |= 0xA200; + rtl8168_mdio_write(tp, 0x0C, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x5561); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8332); + rtl8168_mdio_write(tp, 0x06, 0x5561); + + if (rtl8168_efuse_read(tp, 0x01) == 0xb1) { + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x05, 0x669A); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8330); + rtl8168_mdio_write(tp, 0x06, 0x669A); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0D); + if ((gphy_val & 0x00FF) != 0x006C) { + gphy_val &= 0xFF00; + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0065); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0066); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0067); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0068); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0069); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x006A); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x006B); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x006C); + } + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x05, 0x6662); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8330); + rtl8168_mdio_write(tp, 0x06, 0x6662); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0D); + gphy_val |= BIT_9; + gphy_val |= BIT_8; + rtl8168_mdio_write(tp, 0x0D, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x0F); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x0F, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x02); + gphy_val &= ~BIT_10; + gphy_val &= ~BIT_9; + gphy_val |= BIT_8; + rtl8168_mdio_write(tp, 0x02, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x03); + gphy_val &= ~BIT_15; + gphy_val &= ~BIT_14; + gphy_val &= ~BIT_13; + rtl8168_mdio_write(tp, 0x03, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x001B); + if (rtl8168_mdio_read(tp, 0x06) == 0xBF00) { + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaef); + rtl8168_mdio_write(tp, 0x06, 0x59ee); + rtl8168_mdio_write(tp, 0x06, 0xf8ea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xf8eb); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0xf87c); + rtl8168_mdio_write(tp, 0x06, 0xe1f8); + rtl8168_mdio_write(tp, 0x06, 0x7d59); + rtl8168_mdio_write(tp, 0x06, 0x0fef); + rtl8168_mdio_write(tp, 0x06, 0x0139); + rtl8168_mdio_write(tp, 0x06, 0x029e); + rtl8168_mdio_write(tp, 0x06, 0x06ef); + rtl8168_mdio_write(tp, 0x06, 0x1039); + rtl8168_mdio_write(tp, 0x06, 0x089f); + rtl8168_mdio_write(tp, 0x06, 0x2aee); + rtl8168_mdio_write(tp, 0x06, 0xf8ea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xf8eb); + rtl8168_mdio_write(tp, 0x06, 0x01e0); + rtl8168_mdio_write(tp, 0x06, 0xf87c); + rtl8168_mdio_write(tp, 0x06, 0xe1f8); + rtl8168_mdio_write(tp, 0x06, 0x7d58); + rtl8168_mdio_write(tp, 0x06, 0x409e); + rtl8168_mdio_write(tp, 0x06, 0x0f39); + rtl8168_mdio_write(tp, 0x06, 0x46aa); + rtl8168_mdio_write(tp, 0x06, 0x0bbf); + rtl8168_mdio_write(tp, 0x06, 0x8290); + rtl8168_mdio_write(tp, 0x06, 0xd682); + rtl8168_mdio_write(tp, 0x06, 0x9802); + rtl8168_mdio_write(tp, 0x06, 0x014f); + rtl8168_mdio_write(tp, 0x06, 0xae09); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0x98d6); + rtl8168_mdio_write(tp, 0x06, 0x82a0); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x4fef); + rtl8168_mdio_write(tp, 0x06, 0x95fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x05f8); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xeef8); + rtl8168_mdio_write(tp, 0x06, 0xea00); + rtl8168_mdio_write(tp, 0x06, 0xeef8); + rtl8168_mdio_write(tp, 0x06, 0xeb00); + rtl8168_mdio_write(tp, 0x06, 0xe2f8); + rtl8168_mdio_write(tp, 0x06, 0x7ce3); + rtl8168_mdio_write(tp, 0x06, 0xf87d); + rtl8168_mdio_write(tp, 0x06, 0xa511); + rtl8168_mdio_write(tp, 0x06, 0x1112); + rtl8168_mdio_write(tp, 0x06, 0xd240); + rtl8168_mdio_write(tp, 0x06, 0xd644); + rtl8168_mdio_write(tp, 0x06, 0x4402); + rtl8168_mdio_write(tp, 0x06, 0x8217); + rtl8168_mdio_write(tp, 0x06, 0xd2a0); + rtl8168_mdio_write(tp, 0x06, 0xd6aa); + rtl8168_mdio_write(tp, 0x06, 0xaa02); + rtl8168_mdio_write(tp, 0x06, 0x8217); + rtl8168_mdio_write(tp, 0x06, 0xae0f); + rtl8168_mdio_write(tp, 0x06, 0xa544); + rtl8168_mdio_write(tp, 0x06, 0x4402); + rtl8168_mdio_write(tp, 0x06, 0xae4d); + rtl8168_mdio_write(tp, 0x06, 0xa5aa); + rtl8168_mdio_write(tp, 0x06, 0xaa02); + rtl8168_mdio_write(tp, 0x06, 0xae47); + rtl8168_mdio_write(tp, 0x06, 0xaf82); + rtl8168_mdio_write(tp, 0x06, 0x13ee); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0x0fee); + rtl8168_mdio_write(tp, 0x06, 0x834c); + rtl8168_mdio_write(tp, 0x06, 0x0fee); + rtl8168_mdio_write(tp, 0x06, 0x834f); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8351); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x834a); + rtl8168_mdio_write(tp, 0x06, 0xffee); + rtl8168_mdio_write(tp, 0x06, 0x834b); + rtl8168_mdio_write(tp, 0x06, 0xffe0); + rtl8168_mdio_write(tp, 0x06, 0x8330); + rtl8168_mdio_write(tp, 0x06, 0xe183); + rtl8168_mdio_write(tp, 0x06, 0x3158); + rtl8168_mdio_write(tp, 0x06, 0xfee4); + rtl8168_mdio_write(tp, 0x06, 0xf88a); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x8be0); + rtl8168_mdio_write(tp, 0x06, 0x8332); + rtl8168_mdio_write(tp, 0x06, 0xe183); + rtl8168_mdio_write(tp, 0x06, 0x3359); + rtl8168_mdio_write(tp, 0x06, 0x0fe2); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0x0c24); + rtl8168_mdio_write(tp, 0x06, 0x5af0); + rtl8168_mdio_write(tp, 0x06, 0x1e12); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x8ce5); + rtl8168_mdio_write(tp, 0x06, 0xf88d); + rtl8168_mdio_write(tp, 0x06, 0xaf82); + rtl8168_mdio_write(tp, 0x06, 0x13e0); + rtl8168_mdio_write(tp, 0x06, 0x834f); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x834f); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x009f); + rtl8168_mdio_write(tp, 0x06, 0x0ae0); + rtl8168_mdio_write(tp, 0x06, 0x834f); + rtl8168_mdio_write(tp, 0x06, 0xa010); + rtl8168_mdio_write(tp, 0x06, 0xa5ee); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x01e0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7805); + rtl8168_mdio_write(tp, 0x06, 0x9e9a); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x049e); + rtl8168_mdio_write(tp, 0x06, 0x10e0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7803); + rtl8168_mdio_write(tp, 0x06, 0x9e0f); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x05ae); + rtl8168_mdio_write(tp, 0x06, 0x0caf); + rtl8168_mdio_write(tp, 0x06, 0x81f8); + rtl8168_mdio_write(tp, 0x06, 0xaf81); + rtl8168_mdio_write(tp, 0x06, 0xa3af); + rtl8168_mdio_write(tp, 0x06, 0x81dc); + rtl8168_mdio_write(tp, 0x06, 0xaf82); + rtl8168_mdio_write(tp, 0x06, 0x13ee); + rtl8168_mdio_write(tp, 0x06, 0x8348); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0x8349); + rtl8168_mdio_write(tp, 0x06, 0x00e0); + rtl8168_mdio_write(tp, 0x06, 0x8351); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x8351); + rtl8168_mdio_write(tp, 0x06, 0x5801); + rtl8168_mdio_write(tp, 0x06, 0x9fea); + rtl8168_mdio_write(tp, 0x06, 0xd000); + rtl8168_mdio_write(tp, 0x06, 0xd180); + rtl8168_mdio_write(tp, 0x06, 0x1f66); + rtl8168_mdio_write(tp, 0x06, 0xe2f8); + rtl8168_mdio_write(tp, 0x06, 0xeae3); + rtl8168_mdio_write(tp, 0x06, 0xf8eb); + rtl8168_mdio_write(tp, 0x06, 0x5af8); + rtl8168_mdio_write(tp, 0x06, 0x1e20); + rtl8168_mdio_write(tp, 0x06, 0xe6f8); + rtl8168_mdio_write(tp, 0x06, 0xeae5); + rtl8168_mdio_write(tp, 0x06, 0xf8eb); + rtl8168_mdio_write(tp, 0x06, 0xd302); + rtl8168_mdio_write(tp, 0x06, 0xb3fe); + rtl8168_mdio_write(tp, 0x06, 0xe2f8); + rtl8168_mdio_write(tp, 0x06, 0x7cef); + rtl8168_mdio_write(tp, 0x06, 0x325b); + rtl8168_mdio_write(tp, 0x06, 0x80e3); + rtl8168_mdio_write(tp, 0x06, 0xf87d); + rtl8168_mdio_write(tp, 0x06, 0x9e03); + rtl8168_mdio_write(tp, 0x06, 0x7dff); + rtl8168_mdio_write(tp, 0x06, 0xff0d); + rtl8168_mdio_write(tp, 0x06, 0x581c); + rtl8168_mdio_write(tp, 0x06, 0x551a); + rtl8168_mdio_write(tp, 0x06, 0x6511); + rtl8168_mdio_write(tp, 0x06, 0xa190); + rtl8168_mdio_write(tp, 0x06, 0xd3e2); + rtl8168_mdio_write(tp, 0x06, 0x8348); + rtl8168_mdio_write(tp, 0x06, 0xe383); + rtl8168_mdio_write(tp, 0x06, 0x491b); + rtl8168_mdio_write(tp, 0x06, 0x56ab); + rtl8168_mdio_write(tp, 0x06, 0x08ef); + rtl8168_mdio_write(tp, 0x06, 0x56e6); + rtl8168_mdio_write(tp, 0x06, 0x8348); + rtl8168_mdio_write(tp, 0x06, 0xe783); + rtl8168_mdio_write(tp, 0x06, 0x4910); + rtl8168_mdio_write(tp, 0x06, 0xd180); + rtl8168_mdio_write(tp, 0x06, 0x1f66); + rtl8168_mdio_write(tp, 0x06, 0xa004); + rtl8168_mdio_write(tp, 0x06, 0xb9e2); + rtl8168_mdio_write(tp, 0x06, 0x8348); + rtl8168_mdio_write(tp, 0x06, 0xe383); + rtl8168_mdio_write(tp, 0x06, 0x49ef); + rtl8168_mdio_write(tp, 0x06, 0x65e2); + rtl8168_mdio_write(tp, 0x06, 0x834a); + rtl8168_mdio_write(tp, 0x06, 0xe383); + rtl8168_mdio_write(tp, 0x06, 0x4b1b); + rtl8168_mdio_write(tp, 0x06, 0x56aa); + rtl8168_mdio_write(tp, 0x06, 0x0eef); + rtl8168_mdio_write(tp, 0x06, 0x56e6); + rtl8168_mdio_write(tp, 0x06, 0x834a); + rtl8168_mdio_write(tp, 0x06, 0xe783); + rtl8168_mdio_write(tp, 0x06, 0x4be2); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0xe683); + rtl8168_mdio_write(tp, 0x06, 0x4ce0); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0xa000); + rtl8168_mdio_write(tp, 0x06, 0x0caf); + rtl8168_mdio_write(tp, 0x06, 0x81dc); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4d10); + rtl8168_mdio_write(tp, 0x06, 0xe483); + rtl8168_mdio_write(tp, 0x06, 0x4dae); + rtl8168_mdio_write(tp, 0x06, 0x0480); + rtl8168_mdio_write(tp, 0x06, 0xe483); + rtl8168_mdio_write(tp, 0x06, 0x4de0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7803); + rtl8168_mdio_write(tp, 0x06, 0x9e0b); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x049e); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x02e0); + rtl8168_mdio_write(tp, 0x06, 0x8332); + rtl8168_mdio_write(tp, 0x06, 0xe183); + rtl8168_mdio_write(tp, 0x06, 0x3359); + rtl8168_mdio_write(tp, 0x06, 0x0fe2); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0x0c24); + rtl8168_mdio_write(tp, 0x06, 0x5af0); + rtl8168_mdio_write(tp, 0x06, 0x1e12); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x8ce5); + rtl8168_mdio_write(tp, 0x06, 0xf88d); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x30e1); + rtl8168_mdio_write(tp, 0x06, 0x8331); + rtl8168_mdio_write(tp, 0x06, 0x6801); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x8ae5); + rtl8168_mdio_write(tp, 0x06, 0xf88b); + rtl8168_mdio_write(tp, 0x06, 0xae37); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4e03); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4ce1); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0x1b01); + rtl8168_mdio_write(tp, 0x06, 0x9e04); + rtl8168_mdio_write(tp, 0x06, 0xaaa1); + rtl8168_mdio_write(tp, 0x06, 0xaea8); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4e04); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4f00); + rtl8168_mdio_write(tp, 0x06, 0xaeab); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4f78); + rtl8168_mdio_write(tp, 0x06, 0x039f); + rtl8168_mdio_write(tp, 0x06, 0x14ee); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x05d2); + rtl8168_mdio_write(tp, 0x06, 0x40d6); + rtl8168_mdio_write(tp, 0x06, 0x5554); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x17d2); + rtl8168_mdio_write(tp, 0x06, 0xa0d6); + rtl8168_mdio_write(tp, 0x06, 0xba00); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x17fe); + rtl8168_mdio_write(tp, 0x06, 0xfdfc); + rtl8168_mdio_write(tp, 0x06, 0x05f8); + rtl8168_mdio_write(tp, 0x06, 0xe0f8); + rtl8168_mdio_write(tp, 0x06, 0x60e1); + rtl8168_mdio_write(tp, 0x06, 0xf861); + rtl8168_mdio_write(tp, 0x06, 0x6802); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x60e5); + rtl8168_mdio_write(tp, 0x06, 0xf861); + rtl8168_mdio_write(tp, 0x06, 0xe0f8); + rtl8168_mdio_write(tp, 0x06, 0x48e1); + rtl8168_mdio_write(tp, 0x06, 0xf849); + rtl8168_mdio_write(tp, 0x06, 0x580f); + rtl8168_mdio_write(tp, 0x06, 0x1e02); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x48e5); + rtl8168_mdio_write(tp, 0x06, 0xf849); + rtl8168_mdio_write(tp, 0x06, 0xd000); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x5bbf); + rtl8168_mdio_write(tp, 0x06, 0x8350); + rtl8168_mdio_write(tp, 0x06, 0xef46); + rtl8168_mdio_write(tp, 0x06, 0xdc19); + rtl8168_mdio_write(tp, 0x06, 0xddd0); + rtl8168_mdio_write(tp, 0x06, 0x0102); + rtl8168_mdio_write(tp, 0x06, 0x825b); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x77e0); + rtl8168_mdio_write(tp, 0x06, 0xf860); + rtl8168_mdio_write(tp, 0x06, 0xe1f8); + rtl8168_mdio_write(tp, 0x06, 0x6158); + rtl8168_mdio_write(tp, 0x06, 0xfde4); + rtl8168_mdio_write(tp, 0x06, 0xf860); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x61fc); + rtl8168_mdio_write(tp, 0x06, 0x04f9); + rtl8168_mdio_write(tp, 0x06, 0xfafb); + rtl8168_mdio_write(tp, 0x06, 0xc6bf); + rtl8168_mdio_write(tp, 0x06, 0xf840); + rtl8168_mdio_write(tp, 0x06, 0xbe83); + rtl8168_mdio_write(tp, 0x06, 0x50a0); + rtl8168_mdio_write(tp, 0x06, 0x0101); + rtl8168_mdio_write(tp, 0x06, 0x071b); + rtl8168_mdio_write(tp, 0x06, 0x89cf); + rtl8168_mdio_write(tp, 0x06, 0xd208); + rtl8168_mdio_write(tp, 0x06, 0xebdb); + rtl8168_mdio_write(tp, 0x06, 0x19b2); + rtl8168_mdio_write(tp, 0x06, 0xfbff); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0x04f8); + rtl8168_mdio_write(tp, 0x06, 0xe0f8); + rtl8168_mdio_write(tp, 0x06, 0x48e1); + rtl8168_mdio_write(tp, 0x06, 0xf849); + rtl8168_mdio_write(tp, 0x06, 0x6808); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x48e5); + rtl8168_mdio_write(tp, 0x06, 0xf849); + rtl8168_mdio_write(tp, 0x06, 0x58f7); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x48e5); + rtl8168_mdio_write(tp, 0x06, 0xf849); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0x4d20); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x4e22); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x4ddf); + rtl8168_mdio_write(tp, 0x06, 0xff01); + rtl8168_mdio_write(tp, 0x06, 0x4edd); + rtl8168_mdio_write(tp, 0x06, 0xff01); + rtl8168_mdio_write(tp, 0x06, 0xf8fa); + rtl8168_mdio_write(tp, 0x06, 0xfbef); + rtl8168_mdio_write(tp, 0x06, 0x79bf); + rtl8168_mdio_write(tp, 0x06, 0xf822); + rtl8168_mdio_write(tp, 0x06, 0xd819); + rtl8168_mdio_write(tp, 0x06, 0xd958); + rtl8168_mdio_write(tp, 0x06, 0x849f); + rtl8168_mdio_write(tp, 0x06, 0x09bf); + rtl8168_mdio_write(tp, 0x06, 0x82be); + rtl8168_mdio_write(tp, 0x06, 0xd682); + rtl8168_mdio_write(tp, 0x06, 0xc602); + rtl8168_mdio_write(tp, 0x06, 0x014f); + rtl8168_mdio_write(tp, 0x06, 0xef97); + rtl8168_mdio_write(tp, 0x06, 0xfffe); + rtl8168_mdio_write(tp, 0x06, 0xfc05); + rtl8168_mdio_write(tp, 0x06, 0x17ff); + rtl8168_mdio_write(tp, 0x06, 0xfe01); + rtl8168_mdio_write(tp, 0x06, 0x1700); + rtl8168_mdio_write(tp, 0x06, 0x0102); + rtl8168_mdio_write(tp, 0x05, 0x83d8); + rtl8168_mdio_write(tp, 0x06, 0x8051); + rtl8168_mdio_write(tp, 0x05, 0x83d6); + rtl8168_mdio_write(tp, 0x06, 0x82a0); + rtl8168_mdio_write(tp, 0x05, 0x83d4); + rtl8168_mdio_write(tp, 0x06, 0x8000); + rtl8168_mdio_write(tp, 0x02, 0x2010); + rtl8168_mdio_write(tp, 0x03, 0xdc00); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x0b, 0x0600); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00fc); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0xF880); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_10) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x06, 0x4064); + rtl8168_mdio_write(tp, 0x07, 0x2863); + rtl8168_mdio_write(tp, 0x08, 0x059C); + rtl8168_mdio_write(tp, 0x09, 0x26B4); + rtl8168_mdio_write(tp, 0x0A, 0x6A19); + rtl8168_mdio_write(tp, 0x0B, 0xDCC8); + rtl8168_mdio_write(tp, 0x10, 0xF06D); + rtl8168_mdio_write(tp, 0x14, 0x7F68); + rtl8168_mdio_write(tp, 0x18, 0x7FD9); + rtl8168_mdio_write(tp, 0x1C, 0xF0FF); + rtl8168_mdio_write(tp, 0x1D, 0x3D9C); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x12, 0xF49F); + rtl8168_mdio_write(tp, 0x13, 0x070B); + rtl8168_mdio_write(tp, 0x1A, 0x05AD); + rtl8168_mdio_write(tp, 0x14, 0x94C0); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x5561); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8332); + rtl8168_mdio_write(tp, 0x06, 0x5561); + + if (rtl8168_efuse_read(tp, 0x01) == 0xb1) { + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x05, 0x669A); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8330); + rtl8168_mdio_write(tp, 0x06, 0x669A); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0D); + if ((gphy_val & 0x00FF) != 0x006C) { + gphy_val &= 0xFF00; + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0065); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0066); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0067); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0068); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x0069); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x006A); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x006B); + rtl8168_mdio_write(tp, 0x0D, gphy_val | 0x006C); + } + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x05, 0x2642); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8330); + rtl8168_mdio_write(tp, 0x06, 0x2642); + } + + if (rtl8168_efuse_read(tp, 0x30) == 0x98) { + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) & ~BIT_1); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x01, rtl8168_mdio_read(tp, 0x01) | BIT_9); + } else if (rtl8168_efuse_read(tp, 0x30) == 0x90) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x01, rtl8168_mdio_read(tp, 0x01) & ~BIT_9); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x16, 0x5101); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x02); + gphy_val &= ~BIT_10; + gphy_val &= ~BIT_9; + gphy_val |= BIT_8; + rtl8168_mdio_write(tp, 0x02, gphy_val); + gphy_val = rtl8168_mdio_read(tp, 0x03); + gphy_val &= ~BIT_15; + gphy_val &= ~BIT_14; + gphy_val &= ~BIT_13; + rtl8168_mdio_write(tp, 0x03, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0F); + gphy_val |= BIT_4; + gphy_val |= BIT_2; + gphy_val |= BIT_1; + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x0F, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x001B); + if (rtl8168_mdio_read(tp, 0x06) == 0xB300) { + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x0080); + rtl8168_mdio_write(tp, 0x05, 0x8000); + rtl8168_mdio_write(tp, 0x06, 0xf8f9); + rtl8168_mdio_write(tp, 0x06, 0xfaee); + rtl8168_mdio_write(tp, 0x06, 0xf8ea); + rtl8168_mdio_write(tp, 0x06, 0x00ee); + rtl8168_mdio_write(tp, 0x06, 0xf8eb); + rtl8168_mdio_write(tp, 0x06, 0x00e2); + rtl8168_mdio_write(tp, 0x06, 0xf87c); + rtl8168_mdio_write(tp, 0x06, 0xe3f8); + rtl8168_mdio_write(tp, 0x06, 0x7da5); + rtl8168_mdio_write(tp, 0x06, 0x1111); + rtl8168_mdio_write(tp, 0x06, 0x12d2); + rtl8168_mdio_write(tp, 0x06, 0x40d6); + rtl8168_mdio_write(tp, 0x06, 0x4444); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xc6d2); + rtl8168_mdio_write(tp, 0x06, 0xa0d6); + rtl8168_mdio_write(tp, 0x06, 0xaaaa); + rtl8168_mdio_write(tp, 0x06, 0x0281); + rtl8168_mdio_write(tp, 0x06, 0xc6ae); + rtl8168_mdio_write(tp, 0x06, 0x0fa5); + rtl8168_mdio_write(tp, 0x06, 0x4444); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x4da5); + rtl8168_mdio_write(tp, 0x06, 0xaaaa); + rtl8168_mdio_write(tp, 0x06, 0x02ae); + rtl8168_mdio_write(tp, 0x06, 0x47af); + rtl8168_mdio_write(tp, 0x06, 0x81c2); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4e00); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4d0f); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4c0f); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4f00); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x5100); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4aff); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4bff); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x30e1); + rtl8168_mdio_write(tp, 0x06, 0x8331); + rtl8168_mdio_write(tp, 0x06, 0x58fe); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x8ae5); + rtl8168_mdio_write(tp, 0x06, 0xf88b); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x32e1); + rtl8168_mdio_write(tp, 0x06, 0x8333); + rtl8168_mdio_write(tp, 0x06, 0x590f); + rtl8168_mdio_write(tp, 0x06, 0xe283); + rtl8168_mdio_write(tp, 0x06, 0x4d0c); + rtl8168_mdio_write(tp, 0x06, 0x245a); + rtl8168_mdio_write(tp, 0x06, 0xf01e); + rtl8168_mdio_write(tp, 0x06, 0x12e4); + rtl8168_mdio_write(tp, 0x06, 0xf88c); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x8daf); + rtl8168_mdio_write(tp, 0x06, 0x81c2); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4f10); + rtl8168_mdio_write(tp, 0x06, 0xe483); + rtl8168_mdio_write(tp, 0x06, 0x4fe0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7800); + rtl8168_mdio_write(tp, 0x06, 0x9f0a); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4fa0); + rtl8168_mdio_write(tp, 0x06, 0x10a5); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4e01); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x059e); + rtl8168_mdio_write(tp, 0x06, 0x9ae0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7804); + rtl8168_mdio_write(tp, 0x06, 0x9e10); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x0fe0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7801); + rtl8168_mdio_write(tp, 0x06, 0x9e05); + rtl8168_mdio_write(tp, 0x06, 0xae0c); + rtl8168_mdio_write(tp, 0x06, 0xaf81); + rtl8168_mdio_write(tp, 0x06, 0xa7af); + rtl8168_mdio_write(tp, 0x06, 0x8152); + rtl8168_mdio_write(tp, 0x06, 0xaf81); + rtl8168_mdio_write(tp, 0x06, 0x8baf); + rtl8168_mdio_write(tp, 0x06, 0x81c2); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4800); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4900); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x5110); + rtl8168_mdio_write(tp, 0x06, 0xe483); + rtl8168_mdio_write(tp, 0x06, 0x5158); + rtl8168_mdio_write(tp, 0x06, 0x019f); + rtl8168_mdio_write(tp, 0x06, 0xead0); + rtl8168_mdio_write(tp, 0x06, 0x00d1); + rtl8168_mdio_write(tp, 0x06, 0x801f); + rtl8168_mdio_write(tp, 0x06, 0x66e2); + rtl8168_mdio_write(tp, 0x06, 0xf8ea); + rtl8168_mdio_write(tp, 0x06, 0xe3f8); + rtl8168_mdio_write(tp, 0x06, 0xeb5a); + rtl8168_mdio_write(tp, 0x06, 0xf81e); + rtl8168_mdio_write(tp, 0x06, 0x20e6); + rtl8168_mdio_write(tp, 0x06, 0xf8ea); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0xebd3); + rtl8168_mdio_write(tp, 0x06, 0x02b3); + rtl8168_mdio_write(tp, 0x06, 0xfee2); + rtl8168_mdio_write(tp, 0x06, 0xf87c); + rtl8168_mdio_write(tp, 0x06, 0xef32); + rtl8168_mdio_write(tp, 0x06, 0x5b80); + rtl8168_mdio_write(tp, 0x06, 0xe3f8); + rtl8168_mdio_write(tp, 0x06, 0x7d9e); + rtl8168_mdio_write(tp, 0x06, 0x037d); + rtl8168_mdio_write(tp, 0x06, 0xffff); + rtl8168_mdio_write(tp, 0x06, 0x0d58); + rtl8168_mdio_write(tp, 0x06, 0x1c55); + rtl8168_mdio_write(tp, 0x06, 0x1a65); + rtl8168_mdio_write(tp, 0x06, 0x11a1); + rtl8168_mdio_write(tp, 0x06, 0x90d3); + rtl8168_mdio_write(tp, 0x06, 0xe283); + rtl8168_mdio_write(tp, 0x06, 0x48e3); + rtl8168_mdio_write(tp, 0x06, 0x8349); + rtl8168_mdio_write(tp, 0x06, 0x1b56); + rtl8168_mdio_write(tp, 0x06, 0xab08); + rtl8168_mdio_write(tp, 0x06, 0xef56); + rtl8168_mdio_write(tp, 0x06, 0xe683); + rtl8168_mdio_write(tp, 0x06, 0x48e7); + rtl8168_mdio_write(tp, 0x06, 0x8349); + rtl8168_mdio_write(tp, 0x06, 0x10d1); + rtl8168_mdio_write(tp, 0x06, 0x801f); + rtl8168_mdio_write(tp, 0x06, 0x66a0); + rtl8168_mdio_write(tp, 0x06, 0x04b9); + rtl8168_mdio_write(tp, 0x06, 0xe283); + rtl8168_mdio_write(tp, 0x06, 0x48e3); + rtl8168_mdio_write(tp, 0x06, 0x8349); + rtl8168_mdio_write(tp, 0x06, 0xef65); + rtl8168_mdio_write(tp, 0x06, 0xe283); + rtl8168_mdio_write(tp, 0x06, 0x4ae3); + rtl8168_mdio_write(tp, 0x06, 0x834b); + rtl8168_mdio_write(tp, 0x06, 0x1b56); + rtl8168_mdio_write(tp, 0x06, 0xaa0e); + rtl8168_mdio_write(tp, 0x06, 0xef56); + rtl8168_mdio_write(tp, 0x06, 0xe683); + rtl8168_mdio_write(tp, 0x06, 0x4ae7); + rtl8168_mdio_write(tp, 0x06, 0x834b); + rtl8168_mdio_write(tp, 0x06, 0xe283); + rtl8168_mdio_write(tp, 0x06, 0x4de6); + rtl8168_mdio_write(tp, 0x06, 0x834c); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4da0); + rtl8168_mdio_write(tp, 0x06, 0x000c); + rtl8168_mdio_write(tp, 0x06, 0xaf81); + rtl8168_mdio_write(tp, 0x06, 0x8be0); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0x10e4); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0xae04); + rtl8168_mdio_write(tp, 0x06, 0x80e4); + rtl8168_mdio_write(tp, 0x06, 0x834d); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x4e78); + rtl8168_mdio_write(tp, 0x06, 0x039e); + rtl8168_mdio_write(tp, 0x06, 0x0be0); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x7804); + rtl8168_mdio_write(tp, 0x06, 0x9e04); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4e02); + rtl8168_mdio_write(tp, 0x06, 0xe083); + rtl8168_mdio_write(tp, 0x06, 0x32e1); + rtl8168_mdio_write(tp, 0x06, 0x8333); + rtl8168_mdio_write(tp, 0x06, 0x590f); + rtl8168_mdio_write(tp, 0x06, 0xe283); + rtl8168_mdio_write(tp, 0x06, 0x4d0c); + rtl8168_mdio_write(tp, 0x06, 0x245a); + rtl8168_mdio_write(tp, 0x06, 0xf01e); + rtl8168_mdio_write(tp, 0x06, 0x12e4); + rtl8168_mdio_write(tp, 0x06, 0xf88c); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x8de0); + rtl8168_mdio_write(tp, 0x06, 0x8330); + rtl8168_mdio_write(tp, 0x06, 0xe183); + rtl8168_mdio_write(tp, 0x06, 0x3168); + rtl8168_mdio_write(tp, 0x06, 0x01e4); + rtl8168_mdio_write(tp, 0x06, 0xf88a); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x8bae); + rtl8168_mdio_write(tp, 0x06, 0x37ee); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x03e0); + rtl8168_mdio_write(tp, 0x06, 0x834c); + rtl8168_mdio_write(tp, 0x06, 0xe183); + rtl8168_mdio_write(tp, 0x06, 0x4d1b); + rtl8168_mdio_write(tp, 0x06, 0x019e); + rtl8168_mdio_write(tp, 0x06, 0x04aa); + rtl8168_mdio_write(tp, 0x06, 0xa1ae); + rtl8168_mdio_write(tp, 0x06, 0xa8ee); + rtl8168_mdio_write(tp, 0x06, 0x834e); + rtl8168_mdio_write(tp, 0x06, 0x04ee); + rtl8168_mdio_write(tp, 0x06, 0x834f); + rtl8168_mdio_write(tp, 0x06, 0x00ae); + rtl8168_mdio_write(tp, 0x06, 0xabe0); + rtl8168_mdio_write(tp, 0x06, 0x834f); + rtl8168_mdio_write(tp, 0x06, 0x7803); + rtl8168_mdio_write(tp, 0x06, 0x9f14); + rtl8168_mdio_write(tp, 0x06, 0xee83); + rtl8168_mdio_write(tp, 0x06, 0x4e05); + rtl8168_mdio_write(tp, 0x06, 0xd240); + rtl8168_mdio_write(tp, 0x06, 0xd655); + rtl8168_mdio_write(tp, 0x06, 0x5402); + rtl8168_mdio_write(tp, 0x06, 0x81c6); + rtl8168_mdio_write(tp, 0x06, 0xd2a0); + rtl8168_mdio_write(tp, 0x06, 0xd6ba); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x81c6); + rtl8168_mdio_write(tp, 0x06, 0xfefd); + rtl8168_mdio_write(tp, 0x06, 0xfc05); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0xf860); + rtl8168_mdio_write(tp, 0x06, 0xe1f8); + rtl8168_mdio_write(tp, 0x06, 0x6168); + rtl8168_mdio_write(tp, 0x06, 0x02e4); + rtl8168_mdio_write(tp, 0x06, 0xf860); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x61e0); + rtl8168_mdio_write(tp, 0x06, 0xf848); + rtl8168_mdio_write(tp, 0x06, 0xe1f8); + rtl8168_mdio_write(tp, 0x06, 0x4958); + rtl8168_mdio_write(tp, 0x06, 0x0f1e); + rtl8168_mdio_write(tp, 0x06, 0x02e4); + rtl8168_mdio_write(tp, 0x06, 0xf848); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x49d0); + rtl8168_mdio_write(tp, 0x06, 0x0002); + rtl8168_mdio_write(tp, 0x06, 0x820a); + rtl8168_mdio_write(tp, 0x06, 0xbf83); + rtl8168_mdio_write(tp, 0x06, 0x50ef); + rtl8168_mdio_write(tp, 0x06, 0x46dc); + rtl8168_mdio_write(tp, 0x06, 0x19dd); + rtl8168_mdio_write(tp, 0x06, 0xd001); + rtl8168_mdio_write(tp, 0x06, 0x0282); + rtl8168_mdio_write(tp, 0x06, 0x0a02); + rtl8168_mdio_write(tp, 0x06, 0x8226); + rtl8168_mdio_write(tp, 0x06, 0xe0f8); + rtl8168_mdio_write(tp, 0x06, 0x60e1); + rtl8168_mdio_write(tp, 0x06, 0xf861); + rtl8168_mdio_write(tp, 0x06, 0x58fd); + rtl8168_mdio_write(tp, 0x06, 0xe4f8); + rtl8168_mdio_write(tp, 0x06, 0x60e5); + rtl8168_mdio_write(tp, 0x06, 0xf861); + rtl8168_mdio_write(tp, 0x06, 0xfc04); + rtl8168_mdio_write(tp, 0x06, 0xf9fa); + rtl8168_mdio_write(tp, 0x06, 0xfbc6); + rtl8168_mdio_write(tp, 0x06, 0xbff8); + rtl8168_mdio_write(tp, 0x06, 0x40be); + rtl8168_mdio_write(tp, 0x06, 0x8350); + rtl8168_mdio_write(tp, 0x06, 0xa001); + rtl8168_mdio_write(tp, 0x06, 0x0107); + rtl8168_mdio_write(tp, 0x06, 0x1b89); + rtl8168_mdio_write(tp, 0x06, 0xcfd2); + rtl8168_mdio_write(tp, 0x06, 0x08eb); + rtl8168_mdio_write(tp, 0x06, 0xdb19); + rtl8168_mdio_write(tp, 0x06, 0xb2fb); + rtl8168_mdio_write(tp, 0x06, 0xfffe); + rtl8168_mdio_write(tp, 0x06, 0xfd04); + rtl8168_mdio_write(tp, 0x06, 0xf8e0); + rtl8168_mdio_write(tp, 0x06, 0xf848); + rtl8168_mdio_write(tp, 0x06, 0xe1f8); + rtl8168_mdio_write(tp, 0x06, 0x4968); + rtl8168_mdio_write(tp, 0x06, 0x08e4); + rtl8168_mdio_write(tp, 0x06, 0xf848); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x4958); + rtl8168_mdio_write(tp, 0x06, 0xf7e4); + rtl8168_mdio_write(tp, 0x06, 0xf848); + rtl8168_mdio_write(tp, 0x06, 0xe5f8); + rtl8168_mdio_write(tp, 0x06, 0x49fc); + rtl8168_mdio_write(tp, 0x06, 0x044d); + rtl8168_mdio_write(tp, 0x06, 0x2000); + rtl8168_mdio_write(tp, 0x06, 0x024e); + rtl8168_mdio_write(tp, 0x06, 0x2200); + rtl8168_mdio_write(tp, 0x06, 0x024d); + rtl8168_mdio_write(tp, 0x06, 0xdfff); + rtl8168_mdio_write(tp, 0x06, 0x014e); + rtl8168_mdio_write(tp, 0x06, 0xddff); + rtl8168_mdio_write(tp, 0x06, 0x01f8); + rtl8168_mdio_write(tp, 0x06, 0xfafb); + rtl8168_mdio_write(tp, 0x06, 0xef79); + rtl8168_mdio_write(tp, 0x06, 0xbff8); + rtl8168_mdio_write(tp, 0x06, 0x22d8); + rtl8168_mdio_write(tp, 0x06, 0x19d9); + rtl8168_mdio_write(tp, 0x06, 0x5884); + rtl8168_mdio_write(tp, 0x06, 0x9f09); + rtl8168_mdio_write(tp, 0x06, 0xbf82); + rtl8168_mdio_write(tp, 0x06, 0x6dd6); + rtl8168_mdio_write(tp, 0x06, 0x8275); + rtl8168_mdio_write(tp, 0x06, 0x0201); + rtl8168_mdio_write(tp, 0x06, 0x4fef); + rtl8168_mdio_write(tp, 0x06, 0x97ff); + rtl8168_mdio_write(tp, 0x06, 0xfefc); + rtl8168_mdio_write(tp, 0x06, 0x0517); + rtl8168_mdio_write(tp, 0x06, 0xfffe); + rtl8168_mdio_write(tp, 0x06, 0x0117); + rtl8168_mdio_write(tp, 0x06, 0x0001); + rtl8168_mdio_write(tp, 0x06, 0x0200); + rtl8168_mdio_write(tp, 0x05, 0x83d8); + rtl8168_mdio_write(tp, 0x06, 0x8000); + rtl8168_mdio_write(tp, 0x05, 0x83d6); + rtl8168_mdio_write(tp, 0x06, 0x824f); + rtl8168_mdio_write(tp, 0x02, 0x2010); + rtl8168_mdio_write(tp, 0x03, 0xdc00); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x0b, 0x0600); + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0xfff6); + rtl8168_mdio_write(tp, 0x06, 0x00fc); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x0D, 0xF880); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_11) { + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x10, 0x0008); + rtl8168_mdio_write(tp, 0x0D, 0x006C); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0B, 0xA4D8); + rtl8168_mdio_write(tp, 0x09, 0x281C); + rtl8168_mdio_write(tp, 0x07, 0x2883); + rtl8168_mdio_write(tp, 0x0A, 0x6B35); + rtl8168_mdio_write(tp, 0x1D, 0x3DA4); + rtl8168_mdio_write(tp, 0x1C, 0xEFFD); + rtl8168_mdio_write(tp, 0x14, 0x7F52); + rtl8168_mdio_write(tp, 0x18, 0x7FC6); + rtl8168_mdio_write(tp, 0x08, 0x0601); + rtl8168_mdio_write(tp, 0x06, 0x4063); + rtl8168_mdio_write(tp, 0x10, 0xF074); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x13, 0x0789); + rtl8168_mdio_write(tp, 0x12, 0xF4BD); + rtl8168_mdio_write(tp, 0x1A, 0x04FD); + rtl8168_mdio_write(tp, 0x14, 0x84B0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x00, 0x9200); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x01, 0x0340); + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x04, 0x4000); + rtl8168_mdio_write(tp, 0x03, 0x1D21); + rtl8168_mdio_write(tp, 0x02, 0x0C32); + rtl8168_mdio_write(tp, 0x01, 0x0200); + rtl8168_mdio_write(tp, 0x00, 0x5554); + rtl8168_mdio_write(tp, 0x04, 0x4800); + rtl8168_mdio_write(tp, 0x04, 0x4000); + rtl8168_mdio_write(tp, 0x04, 0xF000); + rtl8168_mdio_write(tp, 0x03, 0xDF01); + rtl8168_mdio_write(tp, 0x02, 0xDF20); + rtl8168_mdio_write(tp, 0x01, 0x101A); + rtl8168_mdio_write(tp, 0x00, 0xA0FF); + rtl8168_mdio_write(tp, 0x04, 0xF800); + rtl8168_mdio_write(tp, 0x04, 0xF000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0023); + rtl8168_mdio_write(tp, 0x16, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + gphy_val = rtl8168_mdio_read(tp, 0x0D); + gphy_val |= BIT_5; + rtl8168_mdio_write(tp, 0x0D, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0C); + gphy_val |= BIT_10; + rtl8168_mdio_write(tp, 0x0C, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_12) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x17, 0x0CC0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x0D); + gphy_val |= BIT_5; + rtl8168_mdio_write(tp, 0x0D, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0C); + gphy_val |= BIT_10; + rtl8168_mdio_write(tp, 0x0C, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + rtl8168_mdio_write(tp, 0x15, 0x035D); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x01, 0x0300); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_13) { + rtl8168_mdio_write(tp, 0x1F, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x0D); + gphy_val |= BIT_5; + rtl8168_mdio_write(tp, 0x0D, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x0C); + gphy_val |= BIT_10; + rtl8168_mdio_write(tp, 0x0C, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_14 || tp->mcfg == CFG_METHOD_15) { + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0023); + gphy_val = rtl8168_mdio_read(tp, 0x17) | BIT_1; + if (tp->RequiredSecLanDonglePatch) + gphy_val &= ~(BIT_2); + else + gphy_val |= (BIT_2); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b80); + rtl8168_mdio_write(tp, 0x06, 0xc896); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0B, 0x6C20); + rtl8168_mdio_write(tp, 0x07, 0x2872); + rtl8168_mdio_write(tp, 0x1C, 0xEFFF); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x14, 0x6420); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + gphy_val = rtl8168_mdio_read(tp, 0x08) & 0x00FF; + rtl8168_mdio_write(tp, 0x08, gphy_val | 0x8000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + rtl8168_mdio_write(tp, 0x18, gphy_val | 0x0010); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x14); + rtl8168_mdio_write(tp, 0x14, gphy_val | 0x8000); + + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x00, 0x080B); + rtl8168_mdio_write(tp, 0x0B, 0x09D7); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x1006); + } + } + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x19, 0x7F46); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8AD2); + rtl8168_mdio_write(tp, 0x06, 0x6810); + rtl8168_mdio_write(tp, 0x05, 0x8AD4); + rtl8168_mdio_write(tp, 0x06, 0x8002); + rtl8168_mdio_write(tp, 0x05, 0x8ADE); + rtl8168_mdio_write(tp, 0x06, 0x8025); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002F); + rtl8168_mdio_write(tp, 0x15, 0x1919); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + rtl8168_mdio_write(tp, 0x18, gphy_val | 0x0040); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + rtl8168_mdio_write(tp, 0x06, gphy_val | 0x0001); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x00AC); + rtl8168_mdio_write(tp, 0x18, 0x0006); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_16) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_2 | BIT_1; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x18, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x14); + gphy_val |= BIT_15; + rtl8168_mdio_write(tp, 0x14, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x15, 0x1006); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0B, 0x6C14); + rtl8168_mdio_write(tp, 0x14, 0x7F3D); + rtl8168_mdio_write(tp, 0x1C, 0xFAFE); + rtl8168_mdio_write(tp, 0x08, 0x07C5); + rtl8168_mdio_write(tp, 0x10, 0xF090); + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x14, 0x641A); + rtl8168_mdio_write(tp, 0x1A, 0x0606); + rtl8168_mdio_write(tp, 0x12, 0xF480); + rtl8168_mdio_write(tp, 0x13, 0x0747); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0004); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0078); + rtl8168_mdio_write(tp, 0x15, 0xA408); + rtl8168_mdio_write(tp, 0x17, 0x5100); + rtl8168_mdio_write(tp, 0x19, 0x0008); + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x0D, 0x0207); + rtl8168_mdio_write(tp, 0x02, 0x5FD0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0004); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x00A1); + gphy_val = rtl8168_mdio_read(tp, 0x1A); + gphy_val &= ~BIT_2; + rtl8168_mdio_write(tp, 0x1A, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0004); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x16); + gphy_val |= BIT_5; + rtl8168_mdio_write(tp, 0x16, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0004); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x00AC); + rtl8168_mdio_write(tp, 0x18, 0x0006); + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x09, 0xA20F); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B5B); + rtl8168_mdio_write(tp, 0x06, 0x9222); + rtl8168_mdio_write(tp, 0x05, 0x8B6D); + rtl8168_mdio_write(tp, 0x06, 0x8000); + rtl8168_mdio_write(tp, 0x05, 0x8B76); + rtl8168_mdio_write(tp, 0x06, 0x8000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (pdev->subsystem_vendor == 0x1043 && + pdev->subsystem_device == 0x13F7) { + + static const u16 evl_phy_value[] = { + 0x8B56, 0x8B5F, 0x8B68, 0x8B71, + 0x8B7A, 0x8A7B, 0x8A7E, 0x8A81, + 0x8A84, 0x8A87 + }; + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + for (i = 0; i < ARRAY_SIZE(evl_phy_value); i++) { + rtl8168_mdio_write(tp, 0x05, evl_phy_value[i]); + gphy_val = (0xAA << 8) | (rtl8168_mdio_read(tp, 0x06) & 0xFF); + rtl8168_mdio_write(tp, 0x06, gphy_val); + } + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0078); + rtl8168_mdio_write(tp, 0x17, 0x51AA); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B54); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8B5D); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8A7C); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A7F); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A82); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A88); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + gphy_val = rtl8168_mdio_read(tp, 0x06) | BIT_14 | BIT_15; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } else if (tp->mcfg == CFG_METHOD_17) { + if (pdev->subsystem_vendor == 0x144d && + pdev->subsystem_device == 0xc0a6) { + rtl8168_mdio_write(tp, 0x1F, 0x0001); + rtl8168_mdio_write(tp, 0x0e, 0x6b7f); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } else { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_2 | BIT_1; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val &= ~BIT_4; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0004); + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x18, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0002); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x14); + gphy_val |= BIT_15; + rtl8168_mdio_write(tp, 0x14, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0004); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x00AC); + rtl8168_mdio_write(tp, 0x18, 0x0006); + rtl8168_mdio_write(tp, 0x1F, 0x0002); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x09, 0xA20F); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + gphy_val = rtl8168_mdio_read(tp, 0x06) | BIT_14 | BIT_15; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B5B); + rtl8168_mdio_write(tp, 0x06, 0x9222); + rtl8168_mdio_write(tp, 0x05, 0x8B6D); + rtl8168_mdio_write(tp, 0x06, 0x8000); + rtl8168_mdio_write(tp, 0x05, 0x8B76); + rtl8168_mdio_write(tp, 0x06, 0x8000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (pdev->subsystem_vendor == 0x1043 && + pdev->subsystem_device == 0x13F7) { + + static const u16 evl_phy_value[] = { + 0x8B56, 0x8B5F, 0x8B68, 0x8B71, + 0x8B7A, 0x8A7B, 0x8A7E, 0x8A81, + 0x8A84, 0x8A87 + }; + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + for (i = 0; i < ARRAY_SIZE(evl_phy_value); i++) { + rtl8168_mdio_write(tp, 0x05, evl_phy_value[i]); + gphy_val = (0xAA << 8) | (rtl8168_mdio_read(tp, 0x06) & 0xFF); + rtl8168_mdio_write(tp, 0x06, gphy_val); + } + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0078); + rtl8168_mdio_write(tp, 0x17, 0x51AA); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B54); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8B5D); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8A7C); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A7F); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A82); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A88); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val |= BIT_12; + rtl8168_mdio_write(tp, 0x15, gphy_val); + } + } + } else if (tp->mcfg == CFG_METHOD_18) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_2 | BIT_1; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x18, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x14); + gphy_val |= BIT_15; + rtl8168_mdio_write(tp, 0x14, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_14; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x09, 0xA20F); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B55); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8B5E); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8B67); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8B70); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0078); + rtl8168_mdio_write(tp, 0x17, 0x0000); + rtl8168_mdio_write(tp, 0x19, 0x00FB); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B79); + rtl8168_mdio_write(tp, 0x06, 0xAA00); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0003); + rtl8168_mdio_write(tp, 0x01, 0x328A); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B54); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8B5D); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8A7C); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A7F); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A82); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A88); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_15); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val |= BIT_12; + rtl8168_mdio_write(tp, 0x15, gphy_val); + } + } + } else if (tp->mcfg == CFG_METHOD_19) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_2 | BIT_1; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x18, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x14); + gphy_val |= BIT_15; + rtl8168_mdio_write(tp, 0x14, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B54); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8B5D); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8A7C); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A7F); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A82); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A88); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0023); + rtl8168_clear_eth_phy_bit(tp, 0x17, BIT_1); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_15); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val |= BIT_12; + rtl8168_mdio_write(tp, 0x15, gphy_val); + } + } + } else if (tp->mcfg == CFG_METHOD_20) { + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_2 | BIT_1; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + rtl8168_mdio_write(tp, 0x1f, 0x0007); + rtl8168_mdio_write(tp, 0x1e, 0x002D); + gphy_val = rtl8168_mdio_read(tp, 0x18); + gphy_val |= BIT_4; + rtl8168_mdio_write(tp, 0x18, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x14); + gphy_val |= BIT_15; + rtl8168_mdio_write(tp, 0x14, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B86); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_0; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B85); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_14; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0003); + rtl8168_mdio_write(tp, 0x09, 0xA20F); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B55); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8B5E); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8B67); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x05, 0x8B70); + rtl8168_mdio_write(tp, 0x06, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x0078); + rtl8168_mdio_write(tp, 0x17, 0x0000); + rtl8168_mdio_write(tp, 0x19, 0x00FB); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B79); + rtl8168_mdio_write(tp, 0x06, 0xAA00); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B54); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8B5D); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_11); + rtl8168_mdio_write(tp, 0x05, 0x8A7C); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A7F); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A82); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x05, 0x8A88); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8b85); + rtl8168_mdio_write(tp, 0x06, rtl8168_mdio_read(tp, 0x06) | BIT_15); + rtl8168_mdio_write(tp, 0x1f, 0x0000); + } + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1f, 0x0000); + gphy_val = rtl8168_mdio_read(tp, 0x15); + gphy_val |= BIT_12; + rtl8168_mdio_write(tp, 0x15, gphy_val); + } + } + } else if (tp->mcfg == CFG_METHOD_21) { + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + gphy_val = rtl8168_mdio_read(tp, 0x10); + rtl8168_mdio_write(tp, 0x1F, 0x0BCC); + if (gphy_val & BIT_8) + rtl8168_clear_eth_phy_bit(tp, 0x12, BIT_15); + else + rtl8168_set_eth_phy_bit(tp, 0x12, BIT_15); + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + gphy_val = rtl8168_mdio_read(tp, 0x13); + rtl8168_mdio_write(tp, 0x1F, 0x0C41); + if (gphy_val & BIT_8) + rtl8168_set_eth_phy_bit(tp, 0x15, BIT_1); + else + rtl8168_clear_eth_phy_bit(tp, 0x15, BIT_1); + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_2 | BIT_3); + + rtl8168_mdio_write(tp, 0x1F, 0x0BCC); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_7); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_6); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8084); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~(BIT_14 | BIT_13)); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_12); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_1); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_0); + + rtl8168_mdio_write(tp, 0x1F, 0x0A4B); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_2); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8012); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | BIT_15); + + rtl8168_mdio_write(tp, 0x1F, 0x0C42); + gphy_val = rtl8168_mdio_read(tp, 0x11); + gphy_val |= BIT_14; + gphy_val &= ~BIT_13; + rtl8168_mdio_write(tp, 0x11, gphy_val); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x809A); + rtl8168_mdio_write(tp, 0x14, 0x8022); + rtl8168_mdio_write(tp, 0x13, 0x80A0); + gphy_val = rtl8168_mdio_read(tp, 0x14) & 0x00FF; + gphy_val |= 0x1000; + rtl8168_mdio_write(tp, 0x14, gphy_val); + rtl8168_mdio_write(tp, 0x13, 0x8088); + rtl8168_mdio_write(tp, 0x14, 0x9222); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_2); + } + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_22) { + //do nothing + } else if (tp->mcfg == CFG_METHOD_23) { + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | (BIT_3 | BIT_2)); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0BCC); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_7); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_6); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8084); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~(BIT_14 | BIT_13)); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_12); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_1); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_0); + + rtl8168_mdio_write(tp, 0x1F, 0x0A4B); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_2); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8012); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | BIT_15); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0C42); + ClearAndSetEthPhyBit(tp, + 0x11, + BIT_13, + BIT_14 + ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_2); + } + } + } else if (tp->mcfg == CFG_METHOD_24) { + rtl8168_mdio_write(tp, 0x1F, 0x0BCC); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_7); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_6); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8084); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~(BIT_14 | BIT_13)); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_12); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_1); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_0); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8012); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | BIT_15); + + rtl8168_mdio_write(tp, 0x1F, 0x0C42); + gphy_val = rtl8168_mdio_read(tp, 0x11); + gphy_val |= BIT_14; + gphy_val &= ~BIT_13; + rtl8168_mdio_write(tp, 0x11, gphy_val); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_2); + } + } + } else if (tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26) { + rtl8168_mdio_write(tp, 0x1F, 0x0BCC); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_7); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_6); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8084); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~(BIT_14 | BIT_13)); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_12); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_1); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_0); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8012); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | BIT_15); + + rtl8168_mdio_write(tp, 0x1F, 0x0BCE); + rtl8168_mdio_write(tp, 0x12, 0x8860); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x80F3); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x8B00); + rtl8168_mdio_write(tp, 0x13, 0x80F0); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x3A00); + rtl8168_mdio_write(tp, 0x13, 0x80EF); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x0500); + rtl8168_mdio_write(tp, 0x13, 0x80F6); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x6E00); + rtl8168_mdio_write(tp, 0x13, 0x80EC); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x6800); + rtl8168_mdio_write(tp, 0x13, 0x80ED); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x7C00); + rtl8168_mdio_write(tp, 0x13, 0x80F2); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xF400); + rtl8168_mdio_write(tp, 0x13, 0x80F4); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x8500); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8110); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xA800); + rtl8168_mdio_write(tp, 0x13, 0x810F); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x1D00); + rtl8168_mdio_write(tp, 0x13, 0x8111); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xF500); + rtl8168_mdio_write(tp, 0x13, 0x8113); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x6100); + rtl8168_mdio_write(tp, 0x13, 0x8115); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x9200); + rtl8168_mdio_write(tp, 0x13, 0x810E); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x0400); + rtl8168_mdio_write(tp, 0x13, 0x810C); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x7C00); + rtl8168_mdio_write(tp, 0x13, 0x810B); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x5A00); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x80D1); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xFF00); + rtl8168_mdio_write(tp, 0x13, 0x80CD); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x9E00); + rtl8168_mdio_write(tp, 0x13, 0x80D3); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x0E00); + rtl8168_mdio_write(tp, 0x13, 0x80D5); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xCA00); + rtl8168_mdio_write(tp, 0x13, 0x80D7); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x8400); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_2); + } + } + } else if (tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28) { + rtl8168_mdio_write(tp, 0x1F, 0x0BCC); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~BIT_8); + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_7); + rtl8168_mdio_write(tp, 0x11, rtl8168_mdio_read(tp, 0x11) | BIT_6); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8084); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) & ~(BIT_14 | BIT_13)); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_12); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_1); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_0); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8012); + rtl8168_mdio_write(tp, 0x14, rtl8168_mdio_read(tp, 0x14) | BIT_15); + + rtl8168_mdio_write(tp, 0x1F, 0x0C42); + rtl8168_mdio_write(tp, 0x11, (rtl8168_mdio_read(tp, 0x11) & ~BIT_13) | BIT_14); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x80F3); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x8B00); + rtl8168_mdio_write(tp, 0x13, 0x80F0); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x3A00); + rtl8168_mdio_write(tp, 0x13, 0x80EF); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x0500); + rtl8168_mdio_write(tp, 0x13, 0x80F6); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x6E00); + rtl8168_mdio_write(tp, 0x13, 0x80EC); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x6800); + rtl8168_mdio_write(tp, 0x13, 0x80ED); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x7C00); + rtl8168_mdio_write(tp, 0x13, 0x80F2); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xF400); + rtl8168_mdio_write(tp, 0x13, 0x80F4); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x8500); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8110); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xA800); + rtl8168_mdio_write(tp, 0x13, 0x810F); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x1D00); + rtl8168_mdio_write(tp, 0x13, 0x8111); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xF500); + rtl8168_mdio_write(tp, 0x13, 0x8113); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x6100); + rtl8168_mdio_write(tp, 0x13, 0x8115); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x9200); + rtl8168_mdio_write(tp, 0x13, 0x810E); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x0400); + rtl8168_mdio_write(tp, 0x13, 0x810C); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x7C00); + rtl8168_mdio_write(tp, 0x13, 0x810B); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x5A00); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x80D1); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xFF00); + rtl8168_mdio_write(tp, 0x13, 0x80CD); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x9E00); + rtl8168_mdio_write(tp, 0x13, 0x80D3); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x0E00); + rtl8168_mdio_write(tp, 0x13, 0x80D5); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0xCA00); + rtl8168_mdio_write(tp, 0x13, 0x80D7); + rtl8168_mdio_write(tp, 0x14, (rtl8168_mdio_read(tp, 0x14) & ~0xFF00) | 0x8400); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x10, rtl8168_mdio_read(tp, 0x10) | BIT_2); + } + } + } else if (tp->mcfg == CFG_METHOD_29) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x809b); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xF800 , + 0x8000 + ); + rtl8168_mdio_write(tp, 0x13, 0x80A2); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x8000 + ); + rtl8168_mdio_write(tp, 0x13, 0x80A4); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x8500 + ); + rtl8168_mdio_write(tp, 0x13, 0x809C); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0xbd00 + ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x80AD); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xF800 , + 0x7000 + ); + rtl8168_mdio_write(tp, 0x13, 0x80B4); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x5000 + ); + rtl8168_mdio_write(tp, 0x13, 0x80AC); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x4000 + ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x808E); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x1200 + ); + rtl8168_mdio_write(tp, 0x13, 0x8090); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0xE500 + ); + rtl8168_mdio_write(tp, 0x13, 0x8092); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x9F00 + ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + u16 dout_tapbin; + + dout_tapbin = 0x0000; + rtl8168_mdio_write( tp, 0x1F, 0x0A46 ); + gphy_val = rtl8168_mdio_read( tp, 0x13 ); + gphy_val &= (BIT_1|BIT_0); + gphy_val <<= 2; + dout_tapbin |= gphy_val; + + gphy_val = rtl8168_mdio_read( tp, 0x12 ); + gphy_val &= (BIT_15|BIT_14); + gphy_val >>= 14; + dout_tapbin |= gphy_val; + + dout_tapbin = ~( dout_tapbin^BIT_3 ); + dout_tapbin <<= 12; + dout_tapbin &= 0xF000; + + rtl8168_mdio_write( tp, 0x1F, 0x0A43 ); + + rtl8168_mdio_write( tp, 0x13, 0x827A ); + ClearAndSetEthPhyBit( tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_12, + dout_tapbin + ); + + + rtl8168_mdio_write( tp, 0x13, 0x827B ); + ClearAndSetEthPhyBit( tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_12, + dout_tapbin + ); + + + rtl8168_mdio_write( tp, 0x13, 0x827C ); + ClearAndSetEthPhyBit( tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_12, + dout_tapbin + ); + + + rtl8168_mdio_write( tp, 0x13, 0x827D ); + ClearAndSetEthPhyBit( tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_12, + dout_tapbin + ); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8011); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_11); + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + rtl8168_set_eth_phy_bit(tp, 0x16, BIT_1); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_set_eth_phy_bit( tp, 0x11, BIT_11 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0BCA); + ClearAndSetEthPhyBit( tp, + 0x17, + (BIT_13 | BIT_12) , + BIT_14 + ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x803F); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x13, 0x8047); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x13, 0x804F); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x13, 0x8057); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x13, 0x805F); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x13, 0x8067 ); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x13, 0x806F ); + rtl8168_clear_eth_phy_bit( tp, 0x14, (BIT_13 | BIT_12)); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_set_eth_phy_bit( tp, 0x10, BIT_2 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + } else if (tp->mcfg == CFG_METHOD_30 || tp->mcfg == CFG_METHOD_37) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x808A); + ClearAndSetEthPhyBit( tp, + 0x14, + BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0, + 0x0A ); + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8011); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_11); + rtl8168_mdio_write(tp, 0x1F, 0x0A42); + rtl8168_set_eth_phy_bit(tp, 0x16, BIT_1); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_set_eth_phy_bit( tp, 0x11, BIT_11 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (tp->RequireAdcBiasPatch) { + rtl8168_mdio_write(tp, 0x1F, 0x0BCF); + rtl8168_mdio_write(tp, 0x16, tp->AdcBiasPatchIoffset); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + { + u16 rlen; + + rtl8168_mdio_write(tp, 0x1F, 0x0BCD); + gphy_val = rtl8168_mdio_read( tp, 0x16 ); + gphy_val &= 0x000F; + + if ( gphy_val > 3 ) { + rlen = gphy_val - 3; + } else { + rlen = 0; + } + + gphy_val = rlen | (rlen<<4) | (rlen<<8) | (rlen<<12); + + rtl8168_mdio_write(tp, 0x1F, 0x0BCD); + rtl8168_mdio_write(tp, 0x17, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x85FE); + ClearAndSetEthPhyBit( + tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_12|BIT_11|BIT_10|BIT_8, + BIT_9); + rtl8168_mdio_write(tp, 0x13, 0x85FF); + ClearAndSetEthPhyBit( + tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_12, + BIT_11|BIT_10|BIT_9|BIT_8); + rtl8168_mdio_write(tp, 0x13, 0x814B); + ClearAndSetEthPhyBit( + tp, + 0x14, + BIT_15|BIT_14|BIT_13|BIT_11|BIT_10|BIT_9|BIT_8, + BIT_12); + } + + + rtl8168_mdio_write(tp, 0x1F, 0x0C41); + rtl8168_clear_eth_phy_bit(tp, 0x15, BIT_1); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_set_eth_phy_bit(tp, 0x10, BIT_0); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_set_eth_phy_bit( tp, 0x10, BIT_2 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + } else if (tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x808E); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x4800 + ); + rtl8168_mdio_write(tp, 0x13, 0x8090); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0xCC00 + ); + rtl8168_mdio_write(tp, 0x13, 0x8092); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0xB000 + ); + rtl8168_mdio_write(tp, 0x13, 0x8088); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x6000 + ); + rtl8168_mdio_write(tp, 0x13, 0x808B); + ClearAndSetEthPhyBit( tp, + 0x14, + 0x3F00 , + 0x0B00 + ); + rtl8168_mdio_write(tp, 0x13, 0x808D); + ClearAndSetEthPhyBit( tp, + 0x14, + 0x1F00 , + 0x0600 + ); + rtl8168_mdio_write(tp, 0x13, 0x808C); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0xB000 + ); + + rtl8168_mdio_write(tp, 0x13, 0x80A0); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x2800 + ); + rtl8168_mdio_write(tp, 0x13, 0x80A2); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x5000 + ); + rtl8168_mdio_write(tp, 0x13, 0x809B); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xF800 , + 0xB000 + ); + rtl8168_mdio_write(tp, 0x13, 0x809A); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x4B00 + ); + rtl8168_mdio_write(tp, 0x13, 0x809D); + ClearAndSetEthPhyBit( tp, + 0x14, + 0x3F00 , + 0x0800 + ); + rtl8168_mdio_write(tp, 0x13, 0x80A1); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x7000 + ); + rtl8168_mdio_write(tp, 0x13, 0x809F); + ClearAndSetEthPhyBit( tp, + 0x14, + 0x1F00 , + 0x0300 + ); + rtl8168_mdio_write(tp, 0x13, 0x809E); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x8800 + ); + + rtl8168_mdio_write(tp, 0x13, 0x80B2); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x2200 + ); + rtl8168_mdio_write(tp, 0x13, 0x80AD); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xF800 , + 0x9800 + ); + rtl8168_mdio_write(tp, 0x13, 0x80AF); + ClearAndSetEthPhyBit( tp, + 0x14, + 0x3F00 , + 0x0800 + ); + rtl8168_mdio_write(tp, 0x13, 0x80B3); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x6F00 + ); + rtl8168_mdio_write(tp, 0x13, 0x80B1); + ClearAndSetEthPhyBit( tp, + 0x14, + 0x1F00 , + 0x0300 + ); + rtl8168_mdio_write(tp, 0x13, 0x80B0); + ClearAndSetEthPhyBit( tp, + 0x14, + 0xFF00 , + 0x9300 + ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8011); + rtl8168_clear_eth_phy_bit(tp, 0x14, BIT_11); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_set_eth_phy_bit(tp, 0x11, BIT_11); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8016); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_10); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (aspm) { + if (!HW_SUPP_SERDES_PHY(tp) && + HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_set_eth_phy_bit( tp, 0x10, BIT_2 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + } else if (tp->mcfg == CFG_METHOD_35) { + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_set_eth_phy_bit(tp, 0x11, BIT_11); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A4C); + rtl8168_clear_eth_phy_bit(tp, 0x15, (BIT_14 | BIT_13)); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x81B9); + rtl8168_mdio_write(tp, 0x14, 0x2000); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x81D4); + ClearAndSetEthPhyBit(tp, + 0x14, + 0xFF00, + 0x6600); + rtl8168_mdio_write(tp, 0x13, 0x81CB); + ClearAndSetEthPhyBit(tp, + 0x14, + 0xFF00, + 0x3500); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A80); + ClearAndSetEthPhyBit(tp, + 0x16, + 0x000F, + 0x0005); + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8016); + rtl8168_set_eth_phy_bit(tp, 0x14, BIT_13); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x811E); + rtl8168_mdio_write(tp, 0x14, 0xDECA); + + rtl8168_mdio_write(tp, 0x13, 0x811C); + rtl8168_mdio_write(tp, 0x14, 0x8008); + rtl8168_mdio_write(tp, 0x13, 0x8118); + rtl8168_mdio_write(tp, 0x14, 0xF8B4); + rtl8168_mdio_write(tp, 0x13, 0x811A); + rtl8168_mdio_write(tp, 0x14, 0x1A04); + + rtl8168_mdio_write(tp, 0x13, 0x8134); + rtl8168_mdio_write(tp, 0x14, 0xDECA); + rtl8168_mdio_write(tp, 0x13, 0x8132); + rtl8168_mdio_write(tp, 0x14, 0xA008); + rtl8168_mdio_write(tp, 0x13, 0x812E); + rtl8168_mdio_write(tp, 0x14, 0x00B5); + rtl8168_mdio_write(tp, 0x13, 0x8130); + rtl8168_mdio_write(tp, 0x14, 0x1A04); + + rtl8168_mdio_write(tp, 0x13, 0x8112); + ClearAndSetEthPhyBit(tp, + 0x14, + 0xFF00, + 0x7300); + rtl8168_mdio_write(tp, 0x13, 0x8106); + rtl8168_mdio_write(tp, 0x14, 0xA209); + rtl8168_mdio_write(tp, 0x13, 0x8108); + rtl8168_mdio_write(tp, 0x14, 0x13B0); + rtl8168_mdio_write(tp, 0x13, 0x8103); + ClearAndSetEthPhyBit(tp, + 0x14, + 0xF800, + 0xB800); + rtl8168_mdio_write(tp, 0x13, 0x8105); + ClearAndSetEthPhyBit(tp, + 0x14, + 0xFF00, + 0x0A00); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x87EB); + rtl8168_mdio_write(tp, 0x14, 0x0018); + rtl8168_mdio_write(tp, 0x13, 0x87EB); + rtl8168_mdio_write(tp, 0x14, 0x0018); + rtl8168_mdio_write(tp, 0x13, 0x87ED); + rtl8168_mdio_write(tp, 0x14, 0x0733); + rtl8168_mdio_write(tp, 0x13, 0x87EF); + rtl8168_mdio_write(tp, 0x14, 0x08DC); + rtl8168_mdio_write(tp, 0x13, 0x87F1); + rtl8168_mdio_write(tp, 0x14, 0x08DF); + rtl8168_mdio_write(tp, 0x13, 0x87F3); + rtl8168_mdio_write(tp, 0x14, 0x0C79); + rtl8168_mdio_write(tp, 0x13, 0x87F5); + rtl8168_mdio_write(tp, 0x14, 0x0D93); + rtl8168_mdio_write(tp, 0x13, 0x87F9); + rtl8168_mdio_write(tp, 0x14, 0x0010); + rtl8168_mdio_write(tp, 0x13, 0x87FB); + rtl8168_mdio_write(tp, 0x14, 0x0800); + rtl8168_mdio_write(tp, 0x13, 0x8015); + ClearAndSetEthPhyBit(tp, + 0x14, + 0x7000, + 0x7000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_mdio_write(tp, 0x13, 0x8111); + ClearAndSetEthPhyBit(tp, + 0x14, + 0xFF00, + 0x7C00); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_set_eth_phy_bit( tp, 0x10, BIT_2 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + } else if (tp->mcfg == CFG_METHOD_36) { + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_set_eth_phy_bit(tp, 0x11, BIT_11); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + rtl8168_mdio_write(tp, 0x1F, 0x0C41); + rtl8168_clear_eth_phy_bit(tp, 0x15, BIT_1); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + + if (aspm) { + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + rtl8168_mdio_write(tp, 0x1F, 0x0A43); + rtl8168_set_eth_phy_bit( tp, 0x10, BIT_2 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + } + +#ifdef ENABLE_FIBER_SUPPORT + if (HW_FIBER_MODE_ENABLED(tp)) + rtl8168_hw_fiber_phy_config(tp); +#endif //ENABLE_FIBER_SUPPORT + + //EthPhyPPSW + if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_24 || tp->mcfg == CFG_METHOD_25 || + tp->mcfg == CFG_METHOD_26) { + //disable EthPhyPPSW + rtl8168_mdio_write(tp, 0x1F, 0x0BCD); + rtl8168_mdio_write(tp, 0x14, 0x5065); + rtl8168_mdio_write(tp, 0x14, 0xD065); + rtl8168_mdio_write(tp, 0x1F, 0x0BC8); + rtl8168_mdio_write(tp, 0x11, 0x5655); + rtl8168_mdio_write(tp, 0x1F, 0x0BCD); + rtl8168_mdio_write(tp, 0x14, 0x1065); + rtl8168_mdio_write(tp, 0x14, 0x9065); + rtl8168_mdio_write(tp, 0x14, 0x1065); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } else if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36) { + //enable EthPhyPPSW + rtl8168_mdio_write(tp, 0x1F, 0x0A44); + rtl8168_set_eth_phy_bit( tp, 0x11, BIT_7 ); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + + /*ocp phy power saving*/ + if (tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + if (aspm) + rtl8168_enable_ocp_phy_power_saving(dev); + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (HW_HAS_WRITE_PHY_MCU_RAM_CODE(tp)) { + if (tp->eee.eee_enabled) + rtl8168_enable_eee(tp); + else + rtl8168_disable_eee(tp); + } +} + +/* +static inline void rtl8168_delete_esd_timer(struct net_device *dev, struct timer_list *timer) +{ + del_timer_sync(timer); +} + +static inline void rtl8168_request_esd_timer(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct timer_list *timer = &tp->esd_timer; +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) + setup_timer(timer, rtl8168_esd_timer, (unsigned long)dev); +#else + timer_setup(timer, rtl8168_esd_timer, 0); +#endif + mod_timer(timer, jiffies + RTL8168_ESD_TIMEOUT); +} + +static inline void rtl8168_delete_link_timer(struct net_device *dev, struct timer_list *timer) +{ + del_timer_sync(timer); +} + +static inline void rtl8168_request_link_timer(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct timer_list *timer = &tp->link_timer; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) + setup_timer(timer, rtl8168_link_timer, (unsigned long)dev); +#else + timer_setup(timer, rtl8168_link_timer, 0); +#endif + mod_timer(timer, jiffies + RTL8168_LINK_TIMEOUT); +} +*/ + +#ifdef CONFIG_NET_POLL_CONTROLLER +/* + * Polling 'interrupt' - used by things like netconsole to send skbs + * without having to re-enable interrupts. It's not called while + * the interrupt routine is executing. + */ +static void +rtl8168_netpoll(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i; + for (i = 0; i < tp->irq_nvecs; i++) { + struct r8168_irq *irq = &tp->irq_tbl[i]; + struct r8168_napi *r8168napi = &tp->r8168napi[i]; + + disable_irq(irq->vector); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) + irq->handler(irq->vector, r8168napi); +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) + irq->handler(irq->vector, r8168napi, NULL); +#else + irq->handler(irq->vector, r8168napi); +#endif + enable_irq(irq->vector); + } +} + +#endif //CONFIG_NET_POLL_CONTROLLER + +static void +rtl8168_get_bios_setting(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->bios_setting = RTL_R32(tp, 0x8c); + break; + } +} + +static void +rtl8168_set_bios_setting(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (tp->mcfg) { + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + RTL_W32(tp, 0x8C, tp->bios_setting); + break; + } +} + +static void +rtl8168_setup_mqs_reg(struct rtl8168_private *tp) +{ + //tx + tp->tx_ring[0].tdsar_reg = TxDescStartAddrLow; + tp->tx_ring[1].tdsar_reg = TxHDescStartAddrLow; + + tp->isr_reg[0] = IntrStatus; + tp->isr_reg[1] = IntrStatus1; + tp->isr_reg[2] = IntrStatus2; + tp->isr_reg[3] = IntrStatus3; + + tp->imr_reg[0] = IntrMask; + tp->imr_reg[1] = IntrMask1; + tp->imr_reg[2] = IntrMask2; + tp->imr_reg[3] = IntrMask3; +} + +static void +rtl8168_init_software_variable(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct pci_dev *pdev = tp->pci_dev; + + rtl8168_get_bios_setting(dev); + +#ifdef ENABLE_LIB_SUPPORT + tp->ring_lib_enabled = 1; +#endif + + if (tp->mcfg == CFG_METHOD_DEFAULT) + disable_wol_support = 1; + + switch (tp->mcfg) { + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + tp->HwSuppDashVer = 1; + break; + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + tp->HwSuppDashVer = 2; + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + tp->HwSuppDashVer = 3; + break; + default: + tp->HwSuppDashVer = 0; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + tp->HwPkgDet = rtl8168_mac_ocp_read(tp, 0xDC00); + tp->HwPkgDet = (tp->HwPkgDet >> 3) & 0x0F; + break; + } + + if (HW_SUPP_SERDES_PHY(tp)) + eee_enable = 0; + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppNowIsOobVer = 1; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppPhyOcpVer = 1; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + tp->HwSuppUpsVer = 1; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + tp->HwPcieSNOffset = 0x16C; + break; + case CFG_METHOD_DEFAULT: + tp->HwPcieSNOffset = 0; + break; + default: + tp->HwPcieSNOffset = 0x164; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppAspmClkIntrLock = 1; + break; + } + + if (!aspm || !tp->HwSuppAspmClkIntrLock) + dynamic_aspm = 0; + +#ifdef ENABLE_REALWOW_SUPPORT + rtl8168_get_realwow_hw_version(dev); +#endif //ENABLE_REALWOW_SUPPORT + + if (HW_DASH_SUPPORT_DASH(tp) && rtl8168_check_dash(tp)) + tp->DASH = 1; + else + tp->DASH = 0; + + if (tp->DASH) { + if (HW_DASH_SUPPORT_TYPE_3(tp)) { + u64 CmacMemPhysAddress; + void __iomem *cmac_ioaddr = NULL; + struct pci_dev *pdev_cmac; + int ret; + + pdev_cmac = pci_get_slot(pdev->bus, PCI_DEVFN(PCI_SLOT(pdev->devfn), 0)); + ret = pci_enable_device(pdev_cmac); + if (ret < 0) { + dev_err(&pdev_cmac->dev, "eable device fail %d\n", ret); + goto err1; + } + + ret = pci_request_regions(pdev_cmac, MODULENAME); + if (ret < 0) { + dev_err(&pdev_cmac->dev, "could not request regions %d\n", ret); + goto err2; + } + + //map CMAC IO space + CmacMemPhysAddress = pci_resource_start(pdev_cmac, 2); + + /* ioremap MMIO region */ + cmac_ioaddr = ioremap(CmacMemPhysAddress, R8168_REGS_SIZE); + + if (cmac_ioaddr == NULL) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "cannot remap CMAC MMIO, aborting\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + pci_release_regions(pdev_cmac); +err2: + pci_disable_device(pdev_cmac); +err1: + tp->DASH = 0; + } else { + pci_set_master(pdev_cmac); + tp->cmac_ioaddr = cmac_ioaddr; + tp->pdev_cmac = pdev_cmac; + } + } + + eee_enable = 0; + } + +#ifdef ENABLE_DASH_SUPPORT +#ifdef ENABLE_DASH_PRINTER_SUPPORT + if (tp->DASH) { + if (HW_DASH_SUPPORT_TYPE_3(tp) && tp->HwPkgDet == 0x0F) + tp->dash_printer_enabled = 1; + else if (HW_DASH_SUPPORT_TYPE_2(tp)) + tp->dash_printer_enabled = 1; + } +#endif //ENABLE_DASH_PRINTER_SUPPORT +#endif //ENABLE_DASH_SUPPORT + + if (HW_DASH_SUPPORT_TYPE_2(tp)) + tp->cmac_ioaddr = tp->mmio_addr; + + switch (tp->mcfg) { + case CFG_METHOD_1: + tp->intr_mask = RxDescUnavail | RxFIFOOver | TxDescUnavail | TxOK | RxOK | SWInt; + tp->timer_intr_mask = PCSTimeout | RxFIFOOver; + break; + case CFG_METHOD_2: + case CFG_METHOD_3: + case CFG_METHOD_4: + tp->intr_mask = RxDescUnavail | TxDescUnavail | TxOK | RxOK | SWInt; + tp->timer_intr_mask = PCSTimeout; + break; + default: + tp->intr_mask = RxDescUnavail | TxOK | RxOK | SWInt; + tp->timer_intr_mask = PCSTimeout; + break; + } + +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) { + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + tp->timer_intr_mask |= ( ISRIMR_DASH_INTR_EN | ISRIMR_DASH_INTR_CMAC_RESET); + tp->intr_mask |= ( ISRIMR_DASH_INTR_EN | ISRIMR_DASH_INTR_CMAC_RESET); + } else { + tp->timer_intr_mask |= ( ISRIMR_DP_DASH_OK | ISRIMR_DP_HOST_OK | ISRIMR_DP_REQSYS_OK ); + tp->intr_mask |= ( ISRIMR_DP_DASH_OK | ISRIMR_DP_HOST_OK | ISRIMR_DP_REQSYS_OK ); + } + } +#endif + if (aspm) { + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->org_pci_offset_99 = rtl8168_csi_fun0_read_byte(tp, 0x99); + tp->org_pci_offset_99 &= ~(BIT_5|BIT_6); + break; + } + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->org_pci_offset_180 = rtl8168_csi_fun0_read_byte(tp, 0x180); + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + tp->org_pci_offset_180 = rtl8168_csi_fun0_read_byte(tp, 0x214); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + if (tp->org_pci_offset_99 & BIT_2) + tp->issue_offset_99_event = TRUE; + break; + } + } + + pci_read_config_byte(pdev, 0x80, &tp->org_pci_offset_80); + pci_read_config_byte(pdev, 0x81, &tp->org_pci_offset_81); + + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + if ((tp->features & (RTL_FEATURE_MSI | RTL_FEATURE_MSIX)) && + (tp->org_pci_offset_80 & BIT_1)) + tp->use_timer_interrrupt = FALSE; + else + tp->use_timer_interrrupt = TRUE; + break; + default: + tp->use_timer_interrrupt = TRUE; + break; + } + + if (timer_count == 0 || tp->mcfg == CFG_METHOD_DEFAULT || + (tp->features & RTL_FEATURE_MSIX)) + tp->use_timer_interrrupt = FALSE; + + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + tp->ShortPacketSwChecksum = TRUE; + break; + case CFG_METHOD_16: + case CFG_METHOD_17: + tp->ShortPacketSwChecksum = TRUE; + tp->UseSwPaddingShortPkt = TRUE; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_30: + case CFG_METHOD_37: { + u16 ioffset_p3, ioffset_p2, ioffset_p1, ioffset_p0; + u16 TmpUshort; + + rtl8168_mac_ocp_write( tp, 0xDD02, 0x807D); + TmpUshort = rtl8168_mac_ocp_read( tp, 0xDD02 ); + ioffset_p3 = ( (TmpUshort & BIT_7) >>7 ); + ioffset_p3 <<= 3; + TmpUshort = rtl8168_mac_ocp_read( tp, 0xDD00 ); + + ioffset_p3 |= ((TmpUshort & (BIT_15 | BIT_14 | BIT_13))>>13); + + ioffset_p2 = ((TmpUshort & (BIT_12|BIT_11|BIT_10|BIT_9))>>9); + ioffset_p1 = ((TmpUshort & (BIT_8|BIT_7|BIT_6|BIT_5))>>5); + + ioffset_p0 = ( (TmpUshort & BIT_4) >>4 ); + ioffset_p0 <<= 3; + ioffset_p0 |= (TmpUshort & (BIT_2| BIT_1 | BIT_0)); + + if ((ioffset_p3 == 0x0F) && (ioffset_p2 == 0x0F) && (ioffset_p1 == 0x0F) && (ioffset_p0 == 0x0F)) { + tp->RequireAdcBiasPatch = FALSE; + } else { + tp->RequireAdcBiasPatch = TRUE; + tp->AdcBiasPatchIoffset = (ioffset_p3<<12)|(ioffset_p2<<8)|(ioffset_p1<<4)|(ioffset_p0); + } + } + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_36: + case CFG_METHOD_37: { + u16 rg_saw_cnt; + + rtl8168_mdio_write(tp, 0x1F, 0x0C42); + rg_saw_cnt = rtl8168_mdio_read(tp, 0x13); + rg_saw_cnt &= ~(BIT_15|BIT_14); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + if (rg_saw_cnt > 0) { + tp->SwrCnt1msIni = 16000000/rg_saw_cnt; + tp->SwrCnt1msIni &= 0x0FFF; + + tp->RequireAdjustUpsTxLinkPulseTiming = TRUE; + } + } + break; + } + +#ifdef ENABLE_FIBER_SUPPORT + rtl8168_check_hw_fiber_mode_support(tp); +#endif //ENABLE_FIBER_SUPPORT + + switch(tp->mcfg) { + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + if (tp->HwPkgDet == 0x06) { + u8 tmpUchar = rtl8168_eri_read(tp, 0xE6, 1, ERIAR_ExGMAC); + if (tmpUchar == 0x02) + tp->HwSuppSerDesPhyVer = 1; + else if (tmpUchar == 0x00) + tp->HwSuppSerDesPhyVer = 2; + } + break; + } + + if (pdev->subsystem_vendor == 0x144d) { + if (pdev->subsystem_device == 0xc098 || + pdev->subsystem_device == 0xc0b1 || + pdev->subsystem_device == 0xc0b8) + hwoptimize |= HW_PATCH_SAMSUNG_LAN_DONGLE; + } + + switch (tp->mcfg) { + case CFG_METHOD_18: + case CFG_METHOD_19: + if (pdev->subsystem_vendor == 0x13fe) { + if (pdev->subsystem_device == 0x00ec) + hwoptimize |= HW_PATCH_SAMSUNG_LAN_DONGLE; + } + break; + } + +#ifdef CONFIG_CTAP_SHORT_OFF + hwoptimize |= HW_PATCH_SAMSUNG_LAN_DONGLE; +#endif //CONFIG_CTAP_SHORT_OFF + + if (hwoptimize & HW_PATCH_SAMSUNG_LAN_DONGLE) { + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_30: + case CFG_METHOD_37: + tp->RequiredSecLanDonglePatch = TRUE; + break; + } + } + + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppMagicPktVer = WAKEUP_MAGIC_PACKET_V2; + break; + case CFG_METHOD_DEFAULT: + tp->HwSuppMagicPktVer = WAKEUP_MAGIC_PACKET_NOT_SUPPORT; + break; + default: + tp->HwSuppMagicPktVer = WAKEUP_MAGIC_PACKET_V1; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + tp->HwSuppEsdVer = 2; + break; + case CFG_METHOD_35: + tp->HwSuppEsdVer = 3; + break; + default: + tp->HwSuppEsdVer = 1; + break; + } + + if (tp->HwSuppEsdVer == 2 || + tp->HwSuppEsdVer == 3) { + rtl8168_mdio_write(tp, 0x1F, 0x0A46); + tp->BackupPhyFuseDout_15_0 = rtl8168_mdio_read(tp, 0x10); + tp->BackupPhyFuseDout_31_16 = rtl8168_mdio_read(tp, 0x11); + tp->BackupPhyFuseDout_47_32 = rtl8168_mdio_read(tp, 0x12); + tp->BackupPhyFuseDout_63_48 = rtl8168_mdio_read(tp, 0x13); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + + tp->TestPhyOcpReg = TRUE; +#ifdef ENABLE_USE_FIRMWARE_FILE + if (tp->HwSuppEsdVer == 3) + tp->TestPhyOcpReg = FALSE; +#endif + } + + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + tp->HwSuppCheckPhyDisableModeVer = 1; + break; + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppCheckPhyDisableModeVer = 2; + break; + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + tp->HwSuppCheckPhyDisableModeVer = 3; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_14; + break; + case CFG_METHOD_16: + case CFG_METHOD_17: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_16; + break; + case CFG_METHOD_18: + case CFG_METHOD_19: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_18; + break; + case CFG_METHOD_20: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_20; + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_21; + break; + case CFG_METHOD_23: + case CFG_METHOD_27: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_23; + break; + case CFG_METHOD_24: + case CFG_METHOD_25: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_24; + break; + case CFG_METHOD_26: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_26; + break; + case CFG_METHOD_28: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_28; + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_37: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_29; + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_31; + break; + case CFG_METHOD_35: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_35; + break; + case CFG_METHOD_36: + tp->sw_ram_code_ver = NIC_RAMCODE_VERSION_CFG_METHOD_36; + break; + } + + if (tp->HwIcVerUnknown) { + tp->NotWrRamCodeToMicroP = TRUE; + tp->NotWrMcuPatchCode = TRUE; + } + + switch (tp->mcfg) { + case CFG_METHOD_16 ... CFG_METHOD_37: + tp->HwSuppRxDescType = RX_DESC_RING_TYPE_2; + break; + default: + tp->HwSuppRxDescType = RX_DESC_RING_TYPE_1; + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppNumTxQueues = 2; + tp->HwSuppNumRxQueues = 4; + break; + default: + tp->HwSuppNumTxQueues = 1; + tp->HwSuppNumRxQueues = 1; + break; + } + + tp->num_tx_rings = 1; +#ifdef ENABLE_MULTIPLE_TX_QUEUE +#ifndef ENABLE_LIB_SUPPORT + tp->num_tx_rings = tp->HwSuppNumTxQueues; +#endif +#endif + + switch (tp->mcfg) { + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + tp->HwSuppRssVer = 2; + tp->HwSuppIndirTblEntries = RTL8168_MAX_INDIRECTION_TABLE_ENTRIES; + break; + } + + tp->num_rx_rings = 1; +#ifdef ENABLE_RSS_SUPPORT + if (HW_RSS_SUPPORT_RSS(tp)) { +#ifdef ENABLE_LIB_SUPPORT + tp->EnableRss = 1; +#else + u8 rss_queue_num = netif_get_num_default_rss_queues(); + tp->num_rx_rings = (tp->HwSuppNumRxQueues > rss_queue_num)? + rss_queue_num : tp->HwSuppNumRxQueues; + if (tp->num_rx_rings >= 2) + tp->EnableRss = 1; +#endif + } +#endif + if (!tp->EnableRss || tp->num_rx_rings < 1) + tp->num_rx_rings = 1; + +#ifdef ENABLE_LIB_SUPPORT + tp->num_hw_tot_en_rx_rings = 2; +#else + tp->num_hw_tot_en_rx_rings = tp->num_rx_rings; +#endif //ENABLE_LIB_SUPPORT + + rtl8168_setup_mqs_reg(tp); + + rtl8168_set_ring_size(tp, NUM_RX_DESC, NUM_TX_DESC); + + tp->InitRxDescType = RX_DESC_RING_TYPE_1; + if (tp->EnableRss) + tp->InitRxDescType = RX_DESC_RING_TYPE_2; + + tp->RxDescLength = RX_DESC_LEN_TYPE_1; + if (tp->InitRxDescType == RX_DESC_RING_TYPE_2) + tp->RxDescLength = RX_DESC_LEN_TYPE_2; + + tp->NicCustLedValue = RTL_R16(tp, CustomLED); + + rtl8168_get_hw_wol(dev); + + rtl8168_link_option((u8*)&autoneg_mode, (u32*)&speed_mode, (u8*)&duplex_mode, (u32*)&advertising_mode); + + tp->autoneg = autoneg_mode; + tp->speed = speed_mode; + tp->duplex = duplex_mode; + tp->advertising = advertising_mode; + tp->fcpause = rtl8168_fc_full; + + tp->max_jumbo_frame_size = rtl_chip_info[tp->chipset].jumbo_frame_sz; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + /* MTU range: 60 - hw-specific max */ + dev->min_mtu = ETH_MIN_MTU; + dev->max_mtu = tp->max_jumbo_frame_size; +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + + if (rtl8168_support_eee(tp)) { + struct ethtool_eee *eee = &tp->eee; + + eee->eee_enabled = eee_enable; + eee->supported = SUPPORTED_100baseT_Full | + SUPPORTED_1000baseT_Full; + eee->advertised = mmd_eee_adv_to_ethtool_adv_t(MDIO_EEE_1000T | MDIO_EEE_100TX); + eee->tx_lpi_enabled = eee_enable; + eee->tx_lpi_timer = dev->mtu + ETH_HLEN + 0x20; + } + +#ifdef ENABLE_FIBER_SUPPORT + if (HW_FIBER_MODE_ENABLED(tp)) + rtl8168_set_fiber_mode_software_variable(tp); +#endif //ENABLE_FIBER_SUPPORT + +#ifdef ENABLE_RSS_SUPPORT + if (tp->EnableRss) + rtl8168_init_rss(tp); +#endif +} + +static void +rtl8168_release_board(struct pci_dev *pdev, + struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + void __iomem *ioaddr = tp->mmio_addr; + + rtl8168_set_bios_setting(dev); + rtl8168_rar_set(tp, tp->org_mac_addr); + tp->wol_enabled = WOL_DISABLED; + + if (!tp->DASH) + rtl8168_phy_power_down(dev); + +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) + FreeAllocatedDashShareMemory(dev); +#endif + + if (tp->pdev_cmac) { + iounmap(tp->cmac_ioaddr); + pci_clear_master(tp->pdev_cmac); + pci_release_regions(tp->pdev_cmac); + pci_disable_device(tp->pdev_cmac); + tp->pdev_cmac = NULL; + } + + iounmap(ioaddr); + pci_release_regions(pdev); + pci_clear_mwi(pdev); + pci_disable_device(pdev); + free_netdev(dev); +} + +static void +rtl8168_hw_address_set(struct net_device *dev, u8 mac_addr[MAC_ADDR_LEN]) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) + eth_hw_addr_set(dev, mac_addr); +#else + memcpy(dev->dev_addr, mac_addr, MAC_ADDR_LEN); +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) +} + +static int +rtl8168_get_mac_address(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i; + u8 mac_addr[MAC_ADDR_LEN]; + + for (i = 0; i < MAC_ADDR_LEN; i++) + mac_addr[i] = RTL_R8(tp, MAC0 + i); + + if (tp->mcfg == CFG_METHOD_18 || + tp->mcfg == CFG_METHOD_19 || + tp->mcfg == CFG_METHOD_20 || + tp->mcfg == CFG_METHOD_21 || + tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_23 || + tp->mcfg == CFG_METHOD_24 || + tp->mcfg == CFG_METHOD_25 || + tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || + tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || + tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || + tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || + tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || + tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + *(u32*)&mac_addr[0] = rtl8168_eri_read(tp, 0xE0, 4, ERIAR_ExGMAC); + *(u16*)&mac_addr[4] = rtl8168_eri_read(tp, 0xE4, 2, ERIAR_ExGMAC); + } else { + if (tp->eeprom_type != EEPROM_TYPE_NONE) { + u16 *pUshort = (u16*)mac_addr; + /* Get MAC address from EEPROM */ + if (tp->mcfg == CFG_METHOD_16 || + tp->mcfg == CFG_METHOD_17 || + tp->mcfg == CFG_METHOD_18 || + tp->mcfg == CFG_METHOD_19 || + tp->mcfg == CFG_METHOD_20 || + tp->mcfg == CFG_METHOD_21 || + tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_23 || + tp->mcfg == CFG_METHOD_24 || + tp->mcfg == CFG_METHOD_25 || + tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || + tp->mcfg == CFG_METHOD_28 || + tp->mcfg == CFG_METHOD_29 || + tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_31 || + tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || + tp->mcfg == CFG_METHOD_34 || + tp->mcfg == CFG_METHOD_35 || + tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + *pUshort++ = rtl8168_eeprom_read_sc(tp, 1); + *pUshort++ = rtl8168_eeprom_read_sc(tp, 2); + *pUshort = rtl8168_eeprom_read_sc(tp, 3); + } else { + *pUshort++ = rtl8168_eeprom_read_sc(tp, 7); + *pUshort++ = rtl8168_eeprom_read_sc(tp, 8); + *pUshort = rtl8168_eeprom_read_sc(tp, 9); + } + } + } + + if (!is_valid_ether_addr(mac_addr)) { + netif_err(tp, probe, dev, "Invalid ether addr %pM\n", + mac_addr); + eth_random_addr(mac_addr); + dev->addr_assign_type = NET_ADDR_RANDOM; + netif_info(tp, probe, dev, "Random ether addr %pM\n", + mac_addr); + tp->random_mac = 1; + } + + rtl8168_hw_address_set(dev, mac_addr); + rtl8168_rar_set(tp, mac_addr); + + /* keep the original MAC address */ + memcpy(tp->org_mac_addr, dev->dev_addr, MAC_ADDR_LEN); +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + memcpy(dev->perm_addr, dev->dev_addr, MAC_ADDR_LEN); +#endif + return 0; +} + +/** + * rtl8168_set_mac_address - Change the Ethernet Address of the NIC + * @dev: network interface device structure + * @p: pointer to an address structure + * + * Return 0 on success, negative on failure + **/ +static int +rtl8168_set_mac_address(struct net_device *dev, + void *p) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct sockaddr *addr = p; + + if (!is_valid_ether_addr(addr->sa_data)) + return -EADDRNOTAVAIL; + + rtl8168_hw_address_set(dev, addr->sa_data); + + rtl8168_rar_set(tp, dev->dev_addr); + + return 0; +} + +/****************************************************************************** + * rtl8168_rar_set - Puts an ethernet address into a receive address register. + * + * tp - The private data structure for driver + * addr - Address to put into receive address register + *****************************************************************************/ +void +rtl8168_rar_set(struct rtl8168_private *tp, + const u8 *addr) +{ + uint32_t rar_low = 0; + uint32_t rar_high = 0; + + rar_low = ((uint32_t) addr[0] | + ((uint32_t) addr[1] << 8) | + ((uint32_t) addr[2] << 16) | + ((uint32_t) addr[3] << 24)); + + rar_high = ((uint32_t) addr[4] | + ((uint32_t) addr[5] << 8)); + + rtl8168_enable_cfg9346_write(tp); + RTL_W32(tp, MAC0, rar_low); + RTL_W32(tp, MAC4, rar_high); + + switch (tp->mcfg) { + case CFG_METHOD_14: + case CFG_METHOD_15: + RTL_W32(tp, SecMAC0, rar_low); + RTL_W16(tp, SecMAC4, (uint16_t)rar_high); + break; + } + + if (tp->mcfg == CFG_METHOD_17) { + rtl8168_eri_write(tp, 0xf0, 4, rar_low << 16, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xf4, 4, rar_low >> 16 | rar_high << 16, ERIAR_ExGMAC); + } + + rtl8168_disable_cfg9346_write(tp); +} + +#ifdef ETHTOOL_OPS_COMPAT +static int ethtool_get_settings(struct net_device *dev, void *useraddr) +{ + struct ethtool_cmd cmd = { ETHTOOL_GSET }; + int err; + + if (!ethtool_ops->get_settings) + return -EOPNOTSUPP; + + err = ethtool_ops->get_settings(dev, &cmd); + if (err < 0) + return err; + + if (copy_to_user(useraddr, &cmd, sizeof(cmd))) + return -EFAULT; + return 0; +} + +static int ethtool_set_settings(struct net_device *dev, void *useraddr) +{ + struct ethtool_cmd cmd; + + if (!ethtool_ops->set_settings) + return -EOPNOTSUPP; + + if (copy_from_user(&cmd, useraddr, sizeof(cmd))) + return -EFAULT; + + return ethtool_ops->set_settings(dev, &cmd); +} + +static int ethtool_get_drvinfo(struct net_device *dev, void *useraddr) +{ + struct ethtool_drvinfo info; + struct ethtool_ops *ops = ethtool_ops; + + if (!ops->get_drvinfo) + return -EOPNOTSUPP; + + mem_clear(&info, sizeof(info)); + info.cmd = ETHTOOL_GDRVINFO; + ops->get_drvinfo(dev, &info); + + if (ops->self_test_count) + info.testinfo_len = ops->self_test_count(dev); + if (ops->get_stats_count) + info.n_stats = ops->get_stats_count(dev); + if (ops->get_regs_len) + info.regdump_len = ops->get_regs_len(dev); + if (ops->get_eeprom_len) + info.eedump_len = ops->get_eeprom_len(dev); + + if (copy_to_user(useraddr, &info, sizeof(info))) + return -EFAULT; + return 0; +} + +static int ethtool_get_regs(struct net_device *dev, char *useraddr) +{ + struct ethtool_regs regs; + struct ethtool_ops *ops = ethtool_ops; + void *regbuf; + int reglen, ret; + + if (!ops->get_regs || !ops->get_regs_len) + return -EOPNOTSUPP; + + if (copy_from_user(®s, useraddr, sizeof(regs))) + return -EFAULT; + + reglen = ops->get_regs_len(dev); + if (regs.len > reglen) + regs.len = reglen; + + regbuf = kmalloc(reglen, GFP_USER); + if (!regbuf) + return -ENOMEM; + + ops->get_regs(dev, ®s, regbuf); + + ret = -EFAULT; + if (copy_to_user(useraddr, ®s, sizeof(regs))) + goto out; + useraddr += offsetof(struct ethtool_regs, data); + if (copy_to_user(useraddr, regbuf, reglen)) + goto out; + ret = 0; + +out: + kfree(regbuf); + return ret; +} + +static int ethtool_get_wol(struct net_device *dev, char *useraddr) +{ + struct ethtool_wolinfo wol = { ETHTOOL_GWOL }; + + if (!ethtool_ops->get_wol) + return -EOPNOTSUPP; + + ethtool_ops->get_wol(dev, &wol); + + if (copy_to_user(useraddr, &wol, sizeof(wol))) + return -EFAULT; + return 0; +} + +static int ethtool_set_wol(struct net_device *dev, char *useraddr) +{ + struct ethtool_wolinfo wol; + + if (!ethtool_ops->set_wol) + return -EOPNOTSUPP; + + if (copy_from_user(&wol, useraddr, sizeof(wol))) + return -EFAULT; + + return ethtool_ops->set_wol(dev, &wol); +} + +static int ethtool_get_msglevel(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata = { ETHTOOL_GMSGLVL }; + + if (!ethtool_ops->get_msglevel) + return -EOPNOTSUPP; + + edata.data = ethtool_ops->get_msglevel(dev); + + if (copy_to_user(useraddr, &edata, sizeof(edata))) + return -EFAULT; + return 0; +} + +static int ethtool_set_msglevel(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata; + + if (!ethtool_ops->set_msglevel) + return -EOPNOTSUPP; + + if (copy_from_user(&edata, useraddr, sizeof(edata))) + return -EFAULT; + + ethtool_ops->set_msglevel(dev, edata.data); + return 0; +} + +static int ethtool_nway_reset(struct net_device *dev) +{ + if (!ethtool_ops->nway_reset) + return -EOPNOTSUPP; + + return ethtool_ops->nway_reset(dev); +} + +static int ethtool_get_link(struct net_device *dev, void *useraddr) +{ + struct ethtool_value edata = { ETHTOOL_GLINK }; + + if (!ethtool_ops->get_link) + return -EOPNOTSUPP; + + edata.data = ethtool_ops->get_link(dev); + + if (copy_to_user(useraddr, &edata, sizeof(edata))) + return -EFAULT; + return 0; +} + +static int ethtool_get_eeprom(struct net_device *dev, void *useraddr) +{ + struct ethtool_eeprom eeprom; + struct ethtool_ops *ops = ethtool_ops; + u8 *data; + int ret; + + if (!ops->get_eeprom || !ops->get_eeprom_len) + return -EOPNOTSUPP; + + if (copy_from_user(&eeprom, useraddr, sizeof(eeprom))) + return -EFAULT; + + /* Check for wrap and zero */ + if (eeprom.offset + eeprom.len <= eeprom.offset) + return -EINVAL; + + /* Check for exceeding total eeprom len */ + if (eeprom.offset + eeprom.len > ops->get_eeprom_len(dev)) + return -EINVAL; + + data = kmalloc(eeprom.len, GFP_USER); + if (!data) + return -ENOMEM; + + ret = -EFAULT; + if (copy_from_user(data, useraddr + sizeof(eeprom), eeprom.len)) + goto out; + + ret = ops->get_eeprom(dev, &eeprom, data); + if (ret) + goto out; + + ret = -EFAULT; + if (copy_to_user(useraddr, &eeprom, sizeof(eeprom))) + goto out; + if (copy_to_user(useraddr + sizeof(eeprom), data, eeprom.len)) + goto out; + ret = 0; + +out: + kfree(data); + return ret; +} + +static int ethtool_set_eeprom(struct net_device *dev, void *useraddr) +{ + struct ethtool_eeprom eeprom; + struct ethtool_ops *ops = ethtool_ops; + u8 *data; + int ret; + + if (!ops->set_eeprom || !ops->get_eeprom_len) + return -EOPNOTSUPP; + + if (copy_from_user(&eeprom, useraddr, sizeof(eeprom))) + return -EFAULT; + + /* Check for wrap and zero */ + if (eeprom.offset + eeprom.len <= eeprom.offset) + return -EINVAL; + + /* Check for exceeding total eeprom len */ + if (eeprom.offset + eeprom.len > ops->get_eeprom_len(dev)) + return -EINVAL; + + data = kmalloc(eeprom.len, GFP_USER); + if (!data) + return -ENOMEM; + + ret = -EFAULT; + if (copy_from_user(data, useraddr + sizeof(eeprom), eeprom.len)) + goto out; + + ret = ops->set_eeprom(dev, &eeprom, data); + if (ret) + goto out; + + if (copy_to_user(useraddr + sizeof(eeprom), data, eeprom.len)) + ret = -EFAULT; + +out: + kfree(data); + return ret; +} + +static int ethtool_get_coalesce(struct net_device *dev, void *useraddr) +{ + struct ethtool_coalesce coalesce = { ETHTOOL_GCOALESCE }; + + if (!ethtool_ops->get_coalesce) + return -EOPNOTSUPP; + + ethtool_ops->get_coalesce(dev, &coalesce); + + if (copy_to_user(useraddr, &coalesce, sizeof(coalesce))) + return -EFAULT; + return 0; +} + +static int ethtool_set_coalesce(struct net_device *dev, void *useraddr) +{ + struct ethtool_coalesce coalesce; + + if (!ethtool_ops->get_coalesce) + return -EOPNOTSUPP; + + if (copy_from_user(&coalesce, useraddr, sizeof(coalesce))) + return -EFAULT; + + return ethtool_ops->set_coalesce(dev, &coalesce); +} + +static int ethtool_get_ringparam(struct net_device *dev, void *useraddr) +{ + struct ethtool_ringparam ringparam = { ETHTOOL_GRINGPARAM }; + + if (!ethtool_ops->get_ringparam) + return -EOPNOTSUPP; + + ethtool_ops->get_ringparam(dev, &ringparam); + + if (copy_to_user(useraddr, &ringparam, sizeof(ringparam))) + return -EFAULT; + return 0; +} + +static int ethtool_set_ringparam(struct net_device *dev, void *useraddr) +{ + struct ethtool_ringparam ringparam; + + if (!ethtool_ops->get_ringparam) + return -EOPNOTSUPP; + + if (copy_from_user(&ringparam, useraddr, sizeof(ringparam))) + return -EFAULT; + + return ethtool_ops->set_ringparam(dev, &ringparam); +} + +static int ethtool_get_pauseparam(struct net_device *dev, void *useraddr) +{ + struct ethtool_pauseparam pauseparam = { ETHTOOL_GPAUSEPARAM }; + + if (!ethtool_ops->get_pauseparam) + return -EOPNOTSUPP; + + ethtool_ops->get_pauseparam(dev, &pauseparam); + + if (copy_to_user(useraddr, &pauseparam, sizeof(pauseparam))) + return -EFAULT; + return 0; +} + +static int ethtool_set_pauseparam(struct net_device *dev, void *useraddr) +{ + struct ethtool_pauseparam pauseparam; + + if (!ethtool_ops->get_pauseparam) + return -EOPNOTSUPP; + + if (copy_from_user(&pauseparam, useraddr, sizeof(pauseparam))) + return -EFAULT; + + return ethtool_ops->set_pauseparam(dev, &pauseparam); +} + +static int ethtool_get_rx_csum(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata = { ETHTOOL_GRXCSUM }; + + if (!ethtool_ops->get_rx_csum) + return -EOPNOTSUPP; + + edata.data = ethtool_ops->get_rx_csum(dev); + + if (copy_to_user(useraddr, &edata, sizeof(edata))) + return -EFAULT; + return 0; +} + +static int ethtool_set_rx_csum(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata; + + if (!ethtool_ops->set_rx_csum) + return -EOPNOTSUPP; + + if (copy_from_user(&edata, useraddr, sizeof(edata))) + return -EFAULT; + + ethtool_ops->set_rx_csum(dev, edata.data); + return 0; +} + +static int ethtool_get_tx_csum(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata = { ETHTOOL_GTXCSUM }; + + if (!ethtool_ops->get_tx_csum) + return -EOPNOTSUPP; + + edata.data = ethtool_ops->get_tx_csum(dev); + + if (copy_to_user(useraddr, &edata, sizeof(edata))) + return -EFAULT; + return 0; +} + +static int ethtool_set_tx_csum(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata; + + if (!ethtool_ops->set_tx_csum) + return -EOPNOTSUPP; + + if (copy_from_user(&edata, useraddr, sizeof(edata))) + return -EFAULT; + + return ethtool_ops->set_tx_csum(dev, edata.data); +} + +static int ethtool_get_sg(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata = { ETHTOOL_GSG }; + + if (!ethtool_ops->get_sg) + return -EOPNOTSUPP; + + edata.data = ethtool_ops->get_sg(dev); + + if (copy_to_user(useraddr, &edata, sizeof(edata))) + return -EFAULT; + return 0; +} + +static int ethtool_set_sg(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata; + + if (!ethtool_ops->set_sg) + return -EOPNOTSUPP; + + if (copy_from_user(&edata, useraddr, sizeof(edata))) + return -EFAULT; + + return ethtool_ops->set_sg(dev, edata.data); +} + +static int ethtool_get_tso(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata = { ETHTOOL_GTSO }; + + if (!ethtool_ops->get_tso) + return -EOPNOTSUPP; + + edata.data = ethtool_ops->get_tso(dev); + + if (copy_to_user(useraddr, &edata, sizeof(edata))) + return -EFAULT; + return 0; +} + +static int ethtool_set_tso(struct net_device *dev, char *useraddr) +{ + struct ethtool_value edata; + + if (!ethtool_ops->set_tso) + return -EOPNOTSUPP; + + if (copy_from_user(&edata, useraddr, sizeof(edata))) + return -EFAULT; + + return ethtool_ops->set_tso(dev, edata.data); +} + +static int ethtool_self_test(struct net_device *dev, char *useraddr) +{ + struct ethtool_test test; + struct ethtool_ops *ops = ethtool_ops; + u64 *data; + int ret; + + if (!ops->self_test || !ops->self_test_count) + return -EOPNOTSUPP; + + if (copy_from_user(&test, useraddr, sizeof(test))) + return -EFAULT; + + test.len = ops->self_test_count(dev); + data = kmalloc(test.len * sizeof(u64), GFP_USER); + if (!data) + return -ENOMEM; + + ops->self_test(dev, &test, data); + + ret = -EFAULT; + if (copy_to_user(useraddr, &test, sizeof(test))) + goto out; + useraddr += sizeof(test); + if (copy_to_user(useraddr, data, test.len * sizeof(u64))) + goto out; + ret = 0; + +out: + kfree(data); + return ret; +} + +static int ethtool_get_strings(struct net_device *dev, void *useraddr) +{ + struct ethtool_gstrings gstrings; + struct ethtool_ops *ops = ethtool_ops; + u8 *data; + int ret; + + if (!ops->get_strings) + return -EOPNOTSUPP; + + if (copy_from_user(&gstrings, useraddr, sizeof(gstrings))) + return -EFAULT; + + switch (gstrings.string_set) { + case ETH_SS_TEST: + if (!ops->self_test_count) + return -EOPNOTSUPP; + gstrings.len = ops->self_test_count(dev); + break; + case ETH_SS_STATS: + if (!ops->get_stats_count) + return -EOPNOTSUPP; + gstrings.len = ops->get_stats_count(dev); + break; + default: + return -EINVAL; + } + + data = kmalloc(gstrings.len * ETH_GSTRING_LEN, GFP_USER); + if (!data) + return -ENOMEM; + + ops->get_strings(dev, gstrings.string_set, data); + + ret = -EFAULT; + if (copy_to_user(useraddr, &gstrings, sizeof(gstrings))) + goto out; + useraddr += sizeof(gstrings); + if (copy_to_user(useraddr, data, gstrings.len * ETH_GSTRING_LEN)) + goto out; + ret = 0; + +out: + kfree(data); + return ret; +} + +static int ethtool_phys_id(struct net_device *dev, void *useraddr) +{ + struct ethtool_value id; + + if (!ethtool_ops->phys_id) + return -EOPNOTSUPP; + + if (copy_from_user(&id, useraddr, sizeof(id))) + return -EFAULT; + + return ethtool_ops->phys_id(dev, id.data); +} + +static int ethtool_get_stats(struct net_device *dev, void *useraddr) +{ + struct ethtool_stats stats; + struct ethtool_ops *ops = ethtool_ops; + u64 *data; + int ret; + + if (!ops->get_ethtool_stats || !ops->get_stats_count) + return -EOPNOTSUPP; + + if (copy_from_user(&stats, useraddr, sizeof(stats))) + return -EFAULT; + + stats.n_stats = ops->get_stats_count(dev); + data = kmalloc(stats.n_stats * sizeof(u64), GFP_USER); + if (!data) + return -ENOMEM; + + ops->get_ethtool_stats(dev, &stats, data); + + ret = -EFAULT; + if (copy_to_user(useraddr, &stats, sizeof(stats))) + goto out; + useraddr += sizeof(stats); + if (copy_to_user(useraddr, data, stats.n_stats * sizeof(u64))) + goto out; + ret = 0; + +out: + kfree(data); + return ret; +} + +static int ethtool_ioctl(struct ifreq *ifr) +{ + struct net_device *dev = __dev_get_by_name(ifr->ifr_name); + void *useraddr = (void *) ifr->ifr_data; + u32 ethcmd; + + /* + * XXX: This can be pushed down into the ethtool_* handlers that + * need it. Keep existing behaviour for the moment. + */ + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + + if (!dev || !netif_device_present(dev)) + return -ENODEV; + + if (copy_from_user(ðcmd, useraddr, sizeof (ethcmd))) + return -EFAULT; + + switch (ethcmd) { + case ETHTOOL_GSET: + return ethtool_get_settings(dev, useraddr); + case ETHTOOL_SSET: + return ethtool_set_settings(dev, useraddr); + case ETHTOOL_GDRVINFO: + return ethtool_get_drvinfo(dev, useraddr); + case ETHTOOL_GREGS: + return ethtool_get_regs(dev, useraddr); + case ETHTOOL_GWOL: + return ethtool_get_wol(dev, useraddr); + case ETHTOOL_SWOL: + return ethtool_set_wol(dev, useraddr); + case ETHTOOL_GMSGLVL: + return ethtool_get_msglevel(dev, useraddr); + case ETHTOOL_SMSGLVL: + return ethtool_set_msglevel(dev, useraddr); + case ETHTOOL_NWAY_RST: + return ethtool_nway_reset(dev); + case ETHTOOL_GLINK: + return ethtool_get_link(dev, useraddr); + case ETHTOOL_GEEPROM: + return ethtool_get_eeprom(dev, useraddr); + case ETHTOOL_SEEPROM: + return ethtool_set_eeprom(dev, useraddr); + case ETHTOOL_GCOALESCE: + return ethtool_get_coalesce(dev, useraddr); + case ETHTOOL_SCOALESCE: + return ethtool_set_coalesce(dev, useraddr); + case ETHTOOL_GRINGPARAM: + return ethtool_get_ringparam(dev, useraddr); + case ETHTOOL_SRINGPARAM: + return ethtool_set_ringparam(dev, useraddr); + case ETHTOOL_GPAUSEPARAM: + return ethtool_get_pauseparam(dev, useraddr); + case ETHTOOL_SPAUSEPARAM: + return ethtool_set_pauseparam(dev, useraddr); + case ETHTOOL_GRXCSUM: + return ethtool_get_rx_csum(dev, useraddr); + case ETHTOOL_SRXCSUM: + return ethtool_set_rx_csum(dev, useraddr); + case ETHTOOL_GTXCSUM: + return ethtool_get_tx_csum(dev, useraddr); + case ETHTOOL_STXCSUM: + return ethtool_set_tx_csum(dev, useraddr); + case ETHTOOL_GSG: + return ethtool_get_sg(dev, useraddr); + case ETHTOOL_SSG: + return ethtool_set_sg(dev, useraddr); + case ETHTOOL_GTSO: + return ethtool_get_tso(dev, useraddr); + case ETHTOOL_STSO: + return ethtool_set_tso(dev, useraddr); + case ETHTOOL_TEST: + return ethtool_self_test(dev, useraddr); + case ETHTOOL_GSTRINGS: + return ethtool_get_strings(dev, useraddr); + case ETHTOOL_PHYS_ID: + return ethtool_phys_id(dev, useraddr); + case ETHTOOL_GSTATS: + return ethtool_get_stats(dev, useraddr); + default: + return -EOPNOTSUPP; + } + + return -EOPNOTSUPP; +} +#endif //ETHTOOL_OPS_COMPAT + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0) +static int rtl8168_siocdevprivate(struct net_device *dev, struct ifreq *ifr, + void __user *data, int cmd) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ret = 0; + + switch (cmd) { + case SIOCDEVPRIVATE_RTLASF: + if (!netif_running(dev)) { + ret = -ENODEV; + break; + } + + ret = rtl8168_asf_ioctl(dev, ifr); + break; + +#ifdef ENABLE_DASH_SUPPORT + case SIOCDEVPRIVATE_RTLDASH: + if (!netif_running(dev)) { + ret = -ENODEV; + break; + } + + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + + ret = rtl8168_dash_ioctl(dev, ifr); + break; +#endif + +#ifdef ENABLE_REALWOW_SUPPORT + case SIOCDEVPRIVATE_RTLREALWOW: + if (!netif_running(dev)) { + ret = -ENODEV; + break; + } + + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + + ret = rtl8168_realwow_ioctl(dev, ifr); + break; +#endif + + case SIOCRTLTOOL: + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + + ret = rtl8168_tool_ioctl(tp, ifr); + break; + + default: + ret = -EOPNOTSUPP; + } + + return ret; +} +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0) + +static int +rtl8168_do_ioctl(struct net_device *dev, + struct ifreq *ifr, + int cmd) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct mii_ioctl_data *data = if_mii(ifr); + int ret; + + ret = 0; + switch (cmd) { + case SIOCGMIIPHY: + data->phy_id = 32; /* Internal PHY */ + break; + + case SIOCGMIIREG: + rtl8168_mdio_write(tp, 0x1F, 0x0000); + data->val_out = rtl8168_mdio_read(tp, data->reg_num); + break; + + case SIOCSMIIREG: + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + rtl8168_mdio_write(tp, 0x1F, 0x0000); + rtl8168_mdio_write(tp, data->reg_num, data->val_in); + break; + +#ifdef ETHTOOL_OPS_COMPAT + case SIOCETHTOOL: + ret = ethtool_ioctl(ifr); + break; +#endif + case SIOCDEVPRIVATE_RTLASF: + if (!netif_running(dev)) { + ret = -ENODEV; + break; + } + + ret = rtl8168_asf_ioctl(dev, ifr); + break; + +#ifdef ENABLE_DASH_SUPPORT + case SIOCDEVPRIVATE_RTLDASH: + if (!netif_running(dev)) { + ret = -ENODEV; + break; + } + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + + ret = rtl8168_dash_ioctl(dev, ifr); + break; +#endif + +#ifdef ENABLE_REALWOW_SUPPORT + case SIOCDEVPRIVATE_RTLREALWOW: + if (!netif_running(dev)) { + ret = -ENODEV; + break; + } + + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + + ret = rtl8168_realwow_ioctl(dev, ifr); + break; +#endif + + case SIOCRTLTOOL: + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + + ret = rtl8168_tool_ioctl(tp, ifr); + break; + + default: + ret = -EOPNOTSUPP; + break; + } + + return ret; +} + +static void +rtl8168_phy_power_up(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (rtl8168_is_in_phy_disable_mode(dev)) + return; + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + case CFG_METHOD_4: + case CFG_METHOD_5: + case CFG_METHOD_6: + case CFG_METHOD_7: + case CFG_METHOD_8: + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + rtl8168_mdio_write(tp, 0x0E, 0x0000); + break; + } + rtl8168_mdio_write(tp, MII_BMCR, BMCR_ANENABLE); + + //wait mdc/mdio ready + switch (tp->mcfg) { + case CFG_METHOD_23: + case CFG_METHOD_27: + case CFG_METHOD_28: + mdelay(10); + break; + } + + //wait ups resume (phy state 3) + if (HW_SUPPORT_UPS_MODE(tp)) + rtl8168_wait_phy_ups_resume(dev, HW_PHY_STATUS_LAN_ON); +} + +static void +rtl8168_phy_power_down(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 csi_tmp; + +#ifdef ENABLE_FIBER_SUPPORT + if (HW_FIBER_MODE_ENABLED(tp)) + return; +#endif //ENABLE_FIBER_SUPPORT + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + csi_tmp = rtl8168_eri_read(tp, 0x1AB, 1, ERIAR_ExGMAC); + csi_tmp &= ~( BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 ); + rtl8168_eri_write(tp, 0x1AB, 1, csi_tmp, ERIAR_ExGMAC); + break; + } + + rtl8168_mdio_write(tp, 0x1F, 0x0000); + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + case CFG_METHOD_4: + case CFG_METHOD_5: + case CFG_METHOD_6: + case CFG_METHOD_7: + case CFG_METHOD_8: + case CFG_METHOD_9: + case CFG_METHOD_10: + case CFG_METHOD_11: + case CFG_METHOD_12: + case CFG_METHOD_13: + rtl8168_mdio_write(tp, 0x0E, 0x0200); + rtl8168_mdio_write(tp, MII_BMCR, BMCR_PDOWN); + break; + case CFG_METHOD_14: + case CFG_METHOD_15: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mdio_write(tp, MII_BMCR, BMCR_ANENABLE | BMCR_PDOWN); + break; + case CFG_METHOD_21: + case CFG_METHOD_22: + rtl8168_mdio_write(tp, MII_BMCR, BMCR_ANENABLE | BMCR_PDOWN); + break; + case CFG_METHOD_23: + case CFG_METHOD_24: + rtl8168_mdio_write(tp, MII_BMCR, BMCR_ANENABLE | BMCR_PDOWN); + break; + default: + rtl8168_mdio_write(tp, MII_BMCR, BMCR_PDOWN); + break; + } +} + +static int __devinit +rtl8168_init_board(struct pci_dev *pdev, + struct net_device **dev_out, + void __iomem **ioaddr_out) +{ + void __iomem *ioaddr; + struct net_device *dev; + struct rtl8168_private *tp; + int rc = -ENOMEM, i, pm_cap; + + assert(ioaddr_out != NULL); + + /* dev zeroed in alloc_etherdev */ + dev = alloc_etherdev_mq(sizeof (*tp), R8168_MAX_QUEUES); + if (dev == NULL) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_drv(&debug)) + dev_err(&pdev->dev, "unable to alloc new ethernet\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + goto err_out; + } + + SET_MODULE_OWNER(dev); + SET_NETDEV_DEV(dev, &pdev->dev); + tp = netdev_priv(dev); + tp->dev = dev; + tp->pci_dev = pdev; + tp->msg_enable = netif_msg_init(debug.msg_enable, R8168_MSG_DEFAULT); + + if (!aspm || tp->mcfg == CFG_METHOD_9) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) + pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 | + PCIE_LINK_STATE_CLKPM); +#endif + } + + /* enable device (incl. PCI PM wakeup and hotplug setup) */ + rc = pci_enable_device(pdev); + if (rc < 0) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "enable failure\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + goto err_out_free_dev; + } + + if (pci_set_mwi(pdev) < 0) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_drv(&debug)) + dev_info(&pdev->dev, "Mem-Wr-Inval unavailable.\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + } + + /* save power state before pci_enable_device overwrites it */ + pm_cap = pci_find_capability(pdev, PCI_CAP_ID_PM); + if (pm_cap) { + u16 pwr_command; + + pci_read_config_word(pdev, pm_cap + PCI_PM_CTRL, &pwr_command); + } else { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) { + dev_err(&pdev->dev, "PowerManagement capability not found.\n"); + } +#else + printk("PowerManagement capability not found.\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + + } + + /* make sure PCI base addr 1 is MMIO */ + if (!(pci_resource_flags(pdev, 2) & IORESOURCE_MEM)) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "region #1 not an MMIO resource, aborting\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + rc = -ENODEV; + goto err_out_mwi; + } + /* check for weird/broken PCI region reporting */ + if (pci_resource_len(pdev, 2) < R8168_REGS_SIZE) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "Invalid PCI region size(s), aborting\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + rc = -ENODEV; + goto err_out_mwi; + } + + rc = pci_request_regions(pdev, MODULENAME); + if (rc < 0) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "could not request regions.\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + goto err_out_mwi; + } + + if ((sizeof(dma_addr_t) > 4) && + use_dac && + !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) && + !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) { + dev->features |= NETIF_F_HIGHDMA; + } else { + rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); + if (rc < 0) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "DMA configuration failed.\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + goto err_out_free_res; + } + } + + /* ioremap MMIO region */ + ioaddr = ioremap(pci_resource_start(pdev, 2), R8168_REGS_SIZE); + if (ioaddr == NULL) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_err(&pdev->dev, "cannot remap MMIO, aborting\n"); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + rc = -EIO; + goto err_out_free_res; + } + + tp->mmio_addr = ioaddr; + + /* Identify chip attached to board */ + rtl8168_get_mac_version(tp); + + rtl8168_print_mac_version(tp); + + for (i = ARRAY_SIZE(rtl_chip_info) - 1; i >= 0; i--) { + if (tp->mcfg == rtl_chip_info[i].mcfg) + break; + } + + if (i < 0) { + /* Unknown chip: assume array element #0, original RTL-8168 */ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (netif_msg_probe(tp)) + dev_printk(KERN_DEBUG, &pdev->dev, "unknown chip version, assuming %s\n", rtl_chip_info[0].name); +#else + printk("Realtek unknown chip version, assuming %s\n", rtl_chip_info[0].name); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + i++; + } + + tp->chipset = i; + + *ioaddr_out = ioaddr; + *dev_out = dev; +out: + return rc; + +err_out_free_res: + pci_release_regions(pdev); +err_out_mwi: + pci_clear_mwi(pdev); + pci_disable_device(pdev); +err_out_free_dev: + free_netdev(dev); +err_out: + *ioaddr_out = NULL; + *dev_out = NULL; + goto out; +} + +static void +rtl8168_esd_checker(struct rtl8168_private *tp) +{ + struct net_device *dev = tp->dev; + struct pci_dev *pdev = tp->pci_dev; + u8 cmd; + u16 io_base_l; + u16 mem_base_l; + u16 mem_base_h; + u8 ilr; + u16 resv_0x1c_h; + u16 resv_0x1c_l; + u16 resv_0x20_l; + u16 resv_0x20_h; + u16 resv_0x24_l; + u16 resv_0x24_h; + u16 resv_0x2c_h; + u16 resv_0x2c_l; + u32 pci_sn_l; + u32 pci_sn_h; + + if (unlikely(tp->rtk_enable_diag)) + goto exit; + + tp->esd_flag = 0; + + pci_read_config_byte(pdev, PCI_COMMAND, &cmd); + if (cmd != tp->pci_cfg_space.cmd) { + printk(KERN_ERR "%s: cmd = 0x%02x, should be 0x%02x \n.", dev->name, cmd, tp->pci_cfg_space.cmd); + pci_write_config_byte(pdev, PCI_COMMAND, tp->pci_cfg_space.cmd); + tp->esd_flag |= BIT_0; + + pci_read_config_byte(pdev, PCI_COMMAND, &cmd); + if (cmd == 0xff) { + printk(KERN_ERR "%s: pci link is down \n.", dev->name); + goto exit; + } + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_0, &io_base_l); + if (io_base_l != tp->pci_cfg_space.io_base_l) { + printk(KERN_ERR "%s: io_base_l = 0x%04x, should be 0x%04x \n.", dev->name, io_base_l, tp->pci_cfg_space.io_base_l); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_0, tp->pci_cfg_space.io_base_l); + tp->esd_flag |= BIT_1; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_2, &mem_base_l); + if (mem_base_l != tp->pci_cfg_space.mem_base_l) { + printk(KERN_ERR "%s: mem_base_l = 0x%04x, should be 0x%04x \n.", dev->name, mem_base_l, tp->pci_cfg_space.mem_base_l); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_2, tp->pci_cfg_space.mem_base_l); + tp->esd_flag |= BIT_2; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_2 + 2, &mem_base_h); + if (mem_base_h!= tp->pci_cfg_space.mem_base_h) { + printk(KERN_ERR "%s: mem_base_h = 0x%04x, should be 0x%04x \n.", dev->name, mem_base_h, tp->pci_cfg_space.mem_base_h); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_2 + 2, tp->pci_cfg_space.mem_base_h); + tp->esd_flag |= BIT_3; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_3, &resv_0x1c_l); + if (resv_0x1c_l != tp->pci_cfg_space.resv_0x1c_l) { + printk(KERN_ERR "%s: resv_0x1c_l = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x1c_l, tp->pci_cfg_space.resv_0x1c_l); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_3, tp->pci_cfg_space.resv_0x1c_l); + tp->esd_flag |= BIT_4; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_3 + 2, &resv_0x1c_h); + if (resv_0x1c_h != tp->pci_cfg_space.resv_0x1c_h) { + printk(KERN_ERR "%s: resv_0x1c_h = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x1c_h, tp->pci_cfg_space.resv_0x1c_h); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_3 + 2, tp->pci_cfg_space.resv_0x1c_h); + tp->esd_flag |= BIT_5; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_4, &resv_0x20_l); + if (resv_0x20_l != tp->pci_cfg_space.resv_0x20_l) { + printk(KERN_ERR "%s: resv_0x20_l = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x20_l, tp->pci_cfg_space.resv_0x20_l); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_4, tp->pci_cfg_space.resv_0x20_l); + tp->esd_flag |= BIT_6; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_4 + 2, &resv_0x20_h); + if (resv_0x20_h != tp->pci_cfg_space.resv_0x20_h) { + printk(KERN_ERR "%s: resv_0x20_h = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x20_h, tp->pci_cfg_space.resv_0x20_h); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_4 + 2, tp->pci_cfg_space.resv_0x20_h); + tp->esd_flag |= BIT_7; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_5, &resv_0x24_l); + if (resv_0x24_l != tp->pci_cfg_space.resv_0x24_l) { + printk(KERN_ERR "%s: resv_0x24_l = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x24_l, tp->pci_cfg_space.resv_0x24_l); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_5, tp->pci_cfg_space.resv_0x24_l); + tp->esd_flag |= BIT_8; + } + + pci_read_config_word(pdev, PCI_BASE_ADDRESS_5 + 2, &resv_0x24_h); + if (resv_0x24_h != tp->pci_cfg_space.resv_0x24_h) { + printk(KERN_ERR "%s: resv_0x24_h = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x24_h, tp->pci_cfg_space.resv_0x24_h); + pci_write_config_word(pdev, PCI_BASE_ADDRESS_5 + 2, tp->pci_cfg_space.resv_0x24_h); + tp->esd_flag |= BIT_9; + } + + pci_read_config_byte(pdev, PCI_INTERRUPT_LINE, &ilr); + if (ilr != tp->pci_cfg_space.ilr) { + printk(KERN_ERR "%s: ilr = 0x%02x, should be 0x%02x \n.", dev->name, ilr, tp->pci_cfg_space.ilr); + pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, tp->pci_cfg_space.ilr); + tp->esd_flag |= BIT_10; + } + + pci_read_config_word(pdev, PCI_SUBSYSTEM_VENDOR_ID, &resv_0x2c_l); + if (resv_0x2c_l != tp->pci_cfg_space.resv_0x2c_l) { + printk(KERN_ERR "%s: resv_0x2c_l = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x2c_l, tp->pci_cfg_space.resv_0x2c_l); + pci_write_config_word(pdev, PCI_SUBSYSTEM_VENDOR_ID, tp->pci_cfg_space.resv_0x2c_l); + tp->esd_flag |= BIT_11; + } + + pci_read_config_word(pdev, PCI_SUBSYSTEM_VENDOR_ID + 2, &resv_0x2c_h); + if (resv_0x2c_h != tp->pci_cfg_space.resv_0x2c_h) { + printk(KERN_ERR "%s: resv_0x2c_h = 0x%04x, should be 0x%04x \n.", dev->name, resv_0x2c_h, tp->pci_cfg_space.resv_0x2c_h); + pci_write_config_word(pdev, PCI_SUBSYSTEM_VENDOR_ID + 2, tp->pci_cfg_space.resv_0x2c_h); + tp->esd_flag |= BIT_12; + } + + if (tp->HwPcieSNOffset > 0) { + pci_sn_l = rtl8168_csi_read(tp, tp->HwPcieSNOffset); + if (pci_sn_l != tp->pci_cfg_space.pci_sn_l) { + printk(KERN_ERR "%s: pci_sn_l = 0x%08x, should be 0x%08x \n.", dev->name, pci_sn_l, tp->pci_cfg_space.pci_sn_l); + rtl8168_csi_write(tp, tp->HwPcieSNOffset, tp->pci_cfg_space.pci_sn_l); + tp->esd_flag |= BIT_13; + } + + pci_sn_h = rtl8168_csi_read(tp, tp->HwPcieSNOffset + 4); + if (pci_sn_h != tp->pci_cfg_space.pci_sn_h) { + printk(KERN_ERR "%s: pci_sn_h = 0x%08x, should be 0x%08x \n.", dev->name, pci_sn_h, tp->pci_cfg_space.pci_sn_h); + rtl8168_csi_write(tp, tp->HwPcieSNOffset + 4, tp->pci_cfg_space.pci_sn_h); + tp->esd_flag |= BIT_14; + } + } + + if (tp->TestPhyOcpReg && rtl8168_test_phy_ocp(tp)) + tp->esd_flag |= BIT_15; + + if (tp->esd_flag != 0) { + printk(KERN_ERR "%s: esd_flag = 0x%04x\n.\n", dev->name, tp->esd_flag); + netif_carrier_off(dev); + netif_tx_disable(dev); + rtl8168_hw_reset(dev); + rtl8168_tx_clear(tp); + rtl8168_rx_clear(tp); + rtl8168_init_ring(dev); + rtl8168_hw_init(dev); + rtl8168_powerup_pll(dev); + rtl8168_hw_ephy_config(dev); + rtl8168_hw_phy_config(dev); + rtl8168_hw_config(dev); + rtl8168_set_speed(dev, tp->autoneg, tp->speed, tp->duplex, tp->advertising); + tp->esd_flag = 0; + } + +exit: + return; +} + +/* +static void +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) +rtl8168_esd_timer(unsigned long __opaque) +#else +rtl8168_esd_timer(struct timer_list *t) +#endif +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) + struct net_device *dev = (struct net_device *)__opaque; + struct rtl8168_private *tp = netdev_priv(dev); + struct timer_list *timer = &tp->esd_timer; +#else + struct rtl8168_private *tp = from_timer(tp, t, esd_timer); + //struct net_device *dev = tp->dev; + struct timer_list *timer = t; +#endif + rtl8168_esd_checker(tp); + + mod_timer(timer, jiffies + timeout); +} +*/ + +/* +static void +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) +rtl8168_link_timer(unsigned long __opaque) +#else +rtl8168_link_timer(struct timer_list *t) +#endif +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,14,0) + struct net_device *dev = (struct net_device *)__opaque; + struct rtl8168_private *tp = netdev_priv(dev); + struct timer_list *timer = &tp->link_timer; +#else + struct rtl8168_private *tp = from_timer(tp, t, link_timer); + struct net_device *dev = tp->dev; + struct timer_list *timer = t; +#endif + rtl8168_check_link_status(dev); + + mod_timer(timer, jiffies + RTL8168_LINK_TIMEOUT); +} +*/ + +int rtl8168_enable_msix(struct rtl8168_private *tp) +{ + int i, nvecs = 0; + struct msix_entry msix_ent[R8168_MAX_MSIX_VEC]; + //struct net_device *dev = tp->dev; + //const int len = sizeof(tp->irq_tbl[0].name); + + for (i = 0; i < R8168_MAX_MSIX_VEC; i++) { + msix_ent[i].entry = i; + msix_ent[i].vector = 0; + } + + nvecs = pci_enable_msix_range(tp->pci_dev, msix_ent, + tp->min_irq_nvecs, tp->max_irq_nvecs); + if (nvecs < 0) + goto out; + + for (i = 0; i < nvecs; i++) { + struct r8168_irq *irq = &tp->irq_tbl[i]; + irq->vector = msix_ent[i].vector; + //snprintf(irq->name, len, "%s-%d", dev->name, i); + //irq->handler = rtl8168_interrupt_msix; + } + +out: + return nvecs; +} + +/* Cfg9346_Unlock assumed. */ +static int rtl8168_try_msi(struct rtl8168_private *tp) +{ + struct pci_dev *pdev = tp->pci_dev; + unsigned int hw_supp_irq_nvecs; + unsigned msi = 0; + int nvecs = 1; + + switch (tp->mcfg) { + case CFG_METHOD_4 ... CFG_METHOD_8: + hw_supp_irq_nvecs = 2; + break; + case CFG_METHOD_9 ... CFG_METHOD_37: + hw_supp_irq_nvecs = 4; + break; + default: + hw_supp_irq_nvecs = 1; + break; + } + tp->hw_supp_irq_nvecs = clamp_val(hw_supp_irq_nvecs, 1, + R8168_MAX_MSIX_VEC); + + tp->max_irq_nvecs = 1; + tp->min_irq_nvecs = 1; + +#ifdef ENABLE_RSS_SUPPORT + if (!pci_enable_msi(pdev)) + msi |= RTL_FEATURE_MSI; + else + dev_info(&pdev->dev, "Default use INTx.\n"); +#else + switch (tp->mcfg) { + case CFG_METHOD_1: + case CFG_METHOD_2: + case CFG_METHOD_3: + case CFG_METHOD_4: + case CFG_METHOD_5: + case CFG_METHOD_6: + case CFG_METHOD_7: + case CFG_METHOD_8: + dev_info(&pdev->dev, "Default use INTx.\n"); + break; + default: +#if defined(RTL_USE_NEW_INTR_API) + if ((nvecs = pci_alloc_irq_vectors(pdev, tp->min_irq_nvecs, tp->max_irq_nvecs, PCI_IRQ_MSIX)) > 0) + msi |= RTL_FEATURE_MSIX; + else if ((nvecs = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES)) > 0 && + pci_dev_msi_enabled(pdev)) + msi |= RTL_FEATURE_MSI; +#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + if ((nvecs = rtl8168_enable_msix(tp)) > 0) + msi |= RTL_FEATURE_MSIX; + else if (!pci_enable_msi(pdev)) + msi |= RTL_FEATURE_MSI; +#endif + break; + } +#endif //ENABLE_RSS_SUPPORT + if (!(msi & (RTL_FEATURE_MSI | RTL_FEATURE_MSIX))) + dev_info(&pdev->dev, "no MSI. Back to INTx.\n"); + + if (!(msi & RTL_FEATURE_MSIX) || nvecs < 1) + nvecs = 1; + + tp->irq_nvecs = nvecs; + + tp->features |= msi; + + return nvecs; +} + +static void rtl8168_disable_msi(struct pci_dev *pdev, struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) + if (tp->features & (RTL_FEATURE_MSI | RTL_FEATURE_MSIX)) + pci_free_irq_vectors(pdev); +#elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + if (tp->features & (RTL_FEATURE_MSIX)) + pci_disable_msix(pdev); + else if (tp->features & (RTL_FEATURE_MSI)) + pci_disable_msi(pdev); +#endif + tp->features &= ~(RTL_FEATURE_MSI | RTL_FEATURE_MSIX); +} + +static int rtl8168_get_irq(struct pci_dev *pdev) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0) + return pci_irq_vector(pdev, 0); +#else + return pdev->irq; +#endif +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) +static const struct net_device_ops rtl8168_netdev_ops = { + .ndo_open = rtl8168_open, + .ndo_stop = rtl8168_close, + .ndo_get_stats = rtl8168_get_stats, + .ndo_start_xmit = rtl8168_start_xmit, + .ndo_tx_timeout = rtl8168_tx_timeout, + .ndo_change_mtu = rtl8168_change_mtu, + .ndo_set_mac_address = rtl8168_set_mac_address, +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) + .ndo_do_ioctl = rtl8168_do_ioctl, +#else + .ndo_siocdevprivate = rtl8168_siocdevprivate, + .ndo_eth_ioctl = rtl8168_do_ioctl, +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) + .ndo_set_multicast_list = rtl8168_set_rx_mode, +#else + .ndo_set_rx_mode = rtl8168_set_rx_mode, +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) +#ifdef CONFIG_R8168_VLAN + .ndo_vlan_rx_register = rtl8168_vlan_rx_register, +#endif +#else + .ndo_fix_features = rtl8168_fix_features, + .ndo_set_features = rtl8168_set_features, +#endif +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = rtl8168_netpoll, +#endif +}; +#endif + +#ifdef CONFIG_R8168_NAPI + +void rtl8168_enable_napi(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + int i; + + for (i = 0; i < tp->irq_nvecs; i++) + RTL_NAPI_ENABLE(tp->dev, &tp->r8168napi[i].napi); +#endif +} + +static void rtl8168_disable_napi(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + int i; + + for (i = 0; i < tp->irq_nvecs; i++) + RTL_NAPI_DISABLE(tp->dev, &tp->r8168napi[i].napi); +#endif +} + +static void rtl8168_del_napi(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + int i; + + for (i = 0; i < tp->irq_nvecs; i++) + RTL_NAPI_DEL((&tp->r8168napi[i])); +#endif +} +#endif //CONFIG_R8168_NAPI + +static void rtl8168_init_napi(struct rtl8168_private *tp) +{ + int i; + + for (i=0; iirq_nvecs; i++) { + struct r8168_napi *r8168napi = &tp->r8168napi[i]; +#ifdef CONFIG_R8168_NAPI + int (*poll)(struct napi_struct *, int); + + if (tp->features & RTL_FEATURE_MSIX) { + if (i == 0) + poll = rtl8168_poll_msix_ring; + else + poll = rtl8168_poll_msix_rx; + } else { + poll = rtl8168_poll; + } + + RTL_NAPI_CONFIG(tp->dev, r8168napi, poll, R8168_NAPI_WEIGHT); +#endif + + r8168napi->priv = tp; + r8168napi->index = i; + } +} + +static int +rtl8168_set_real_num_queue(struct rtl8168_private *tp) +{ + int retval = 0; + + retval = netif_set_real_num_tx_queues(tp->dev, tp->num_tx_rings); + if (retval < 0) + goto exit; + + retval = netif_set_real_num_rx_queues(tp->dev, tp->num_rx_rings); + if (retval < 0) + goto exit; + +exit: + return retval; +} + +static int __devinit +rtl8168_init_one(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + struct net_device *dev = NULL; + struct rtl8168_private *tp; + void __iomem *ioaddr = NULL; + static int board_idx = -1; + + int rc; + + assert(pdev != NULL); + assert(ent != NULL); + + board_idx++; + + if (netif_msg_drv(&debug)) + printk(KERN_INFO "%s Gigabit Ethernet driver %s loaded\n", + MODULENAME, RTL8168_VERSION); + + rc = rtl8168_init_board(pdev, &dev, &ioaddr); + if (rc) + goto out; + + tp = netdev_priv(dev); + assert(ioaddr != NULL); + + tp->set_speed = rtl8168_set_speed_xmii; + tp->get_settings = rtl8168_gset_xmii; + tp->phy_reset_enable = rtl8168_xmii_reset_enable; + tp->phy_reset_pending = rtl8168_xmii_reset_pending; + tp->link_ok = rtl8168_xmii_link_ok; + + rc = rtl8168_try_msi(tp); + if (rc < 0) { + dev_err(&pdev->dev, "Can't allocate interrupt\n"); + goto err_out_1; + } + + rtl8168_init_software_variable(dev); + + RTL_NET_DEVICE_OPS(rtl8168_netdev_ops); + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22) + SET_ETHTOOL_OPS(dev, &rtl8168_ethtool_ops); +#endif + + dev->watchdog_timeo = RTL8168_TX_TIMEOUT; + dev->irq = rtl8168_get_irq(pdev); + dev->base_addr = (unsigned long) ioaddr; + + rtl8168_init_napi(tp); + +#ifdef CONFIG_R8168_VLAN + if (tp->mcfg != CFG_METHOD_DEFAULT) { + dev->features |= NETIF_F_HW_VLAN_TX; +#ifndef ENABLE_LIB_SUPPORT + dev->features |= NETIF_F_HW_VLAN_RX; +#endif //!ENABLE_LIB_SUPPORT +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) + dev->vlan_rx_kill_vid = rtl8168_vlan_rx_kill_vid; +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) + } +#endif + + /* There has been a number of reports that using SG/TSO results in + * tx timeouts. However for a lot of people SG/TSO works fine. + * Therefore disable both features by default, but allow users to + * enable them. Use at own risk! + */ + tp->cp_cmd |= RTL_R16(tp, CPlusCmd); + if (tp->mcfg != CFG_METHOD_DEFAULT) { + dev->features |= NETIF_F_IP_CSUM; +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + tp->cp_cmd |= RxChkSum; +#else + dev->features |= NETIF_F_RXCSUM; + dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | + NETIF_F_RXCSUM | NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; + dev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | + NETIF_F_HIGHDMA; + if ((tp->mcfg != CFG_METHOD_16) && (tp->mcfg != CFG_METHOD_17)) { + dev->hw_features |= NETIF_F_TSO; + dev->vlan_features |= NETIF_F_TSO; + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_26: + /* nothing to do */ + break; + default: + dev->features |= NETIF_F_SG | NETIF_F_TSO; + break; + }; + } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0) + dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0) + dev->hw_features |= NETIF_F_RXALL; + dev->hw_features |= NETIF_F_RXFCS; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) + if ((tp->mcfg == CFG_METHOD_1) || (tp->mcfg == CFG_METHOD_2) || (tp->mcfg == CFG_METHOD_3)) { + dev->hw_features &= ~NETIF_F_IPV6_CSUM; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0) + netif_set_tso_max_size(dev, LSO_64K); + netif_set_tso_max_segs(dev, NIC_MAX_PHYS_BUF_COUNT_LSO2); +#else //LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0) + netif_set_gso_max_size(dev, LSO_32K); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) + dev->gso_max_segs = NIC_MAX_PHYS_BUF_COUNT_LSO_64K; +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0) + dev->gso_min_segs = NIC_MIN_PHYS_BUF_COUNT; +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0) + } else { + dev->hw_features |= NETIF_F_IPV6_CSUM; + dev->features |= NETIF_F_IPV6_CSUM; + if ((tp->mcfg != CFG_METHOD_16) && (tp->mcfg != CFG_METHOD_17)) { + dev->hw_features |= NETIF_F_TSO6; + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_26: + /* nothing to do */ + break; + default: + dev->features |= NETIF_F_TSO6; + break; + }; + } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0) + netif_set_tso_max_size(dev, LSO_64K); + netif_set_tso_max_segs(dev, NIC_MAX_PHYS_BUF_COUNT_LSO2); +#else //LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0) + netif_set_gso_max_size(dev, LSO_64K); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) + dev->gso_max_segs = NIC_MAX_PHYS_BUF_COUNT_LSO2; +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0) + dev->gso_min_segs = NIC_MIN_PHYS_BUF_COUNT; +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0) + } +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + } + +#ifdef ENABLE_RSS_SUPPORT + if (tp->EnableRss) { + dev->hw_features |= NETIF_F_RXHASH; + dev->features |= NETIF_F_RXHASH; + } +#endif + +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH) + AllocateDashShareMemory(dev); +#endif + +#ifdef ENABLE_LIB_SUPPORT + BLOCKING_INIT_NOTIFIER_HEAD(&tp->lib_nh); +#endif + rtl8168_init_all_schedule_work(tp); + + rc = rtl8168_set_real_num_queue(tp); + if (rc < 0) + goto err_out; + + rtl8168_exit_oob(dev); + + rtl8168_hw_init(dev); + + rtl8168_hw_reset(dev); + + /* Get production from EEPROM */ + if (((tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_29 || + tp->mcfg == CFG_METHOD_30 || tp->mcfg == CFG_METHOD_35 || + tp->mcfg == CFG_METHOD_36 || tp->mcfg == CFG_METHOD_37) && + (rtl8168_mac_ocp_read(tp, 0xDC00) & BIT_3)) || + ((tp->mcfg == CFG_METHOD_26) && (rtl8168_mac_ocp_read(tp, 0xDC00) & BIT_4))) + tp->eeprom_type = EEPROM_TYPE_NONE; + else + rtl8168_eeprom_type(tp); + + if (tp->eeprom_type == EEPROM_TYPE_93C46 || tp->eeprom_type == EEPROM_TYPE_93C56) + rtl8168_set_eeprom_sel_low(tp); + + rtl8168_get_mac_address(dev); + + tp->fw_name = rtl_chip_fw_infos[tp->mcfg].fw_name; + +#if defined(ENABLE_DASH_PRINTER_SUPPORT) + init_completion(&tp->fw_host_ok); + init_completion(&tp->fw_ack); + init_completion(&tp->fw_req); +#endif + + tp->tally_vaddr = dma_alloc_coherent(&pdev->dev, sizeof(*tp->tally_vaddr), + &tp->tally_paddr, GFP_KERNEL); + if (!tp->tally_vaddr) { + rc = -ENOMEM; + goto err_out; + } + + rtl8168_tally_counter_clear(tp); + + pci_set_drvdata(pdev, dev); + + rc = register_netdev(dev); + if (rc) + goto err_out; + + printk(KERN_INFO "%s: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.\n", MODULENAME); + + rtl8168_disable_rxdvgate(dev); + + device_set_wakeup_enable(&pdev->dev, tp->wol_enabled); + + netif_carrier_off(dev); + + printk("%s", GPL_CLAIM); + +out: + return rc; + +err_out: + if (tp->tally_vaddr != NULL) { + dma_free_coherent(&pdev->dev, sizeof(*tp->tally_vaddr), tp->tally_vaddr, + tp->tally_paddr); + + tp->tally_vaddr = NULL; + } +#ifdef CONFIG_R8168_NAPI + rtl8168_del_napi(tp); +#endif + rtl8168_disable_msi(pdev, tp); + +err_out_1: + rtl8168_release_board(pdev, dev); + + goto out; +} + +static void __devexit +rtl8168_remove_one(struct pci_dev *pdev) +{ + struct net_device *dev = pci_get_drvdata(pdev); + struct rtl8168_private *tp = netdev_priv(dev); + + assert(dev != NULL); + assert(tp != NULL); + + set_bit(R8168_FLAG_DOWN, tp->task_flags); + + rtl8168_cancel_all_schedule_work(tp); + +#ifdef CONFIG_R8168_NAPI + rtl8168_del_napi(tp); +#endif + if (HW_DASH_SUPPORT_DASH(tp)) + rtl8168_driver_stop(tp); + + unregister_netdev(dev); + rtl8168_disable_msi(pdev, tp); +#ifdef ENABLE_R8168_PROCFS + rtl8168_proc_remove(dev); +#endif + if (tp->tally_vaddr != NULL) { + dma_free_coherent(&pdev->dev, sizeof(*tp->tally_vaddr), tp->tally_vaddr, tp->tally_paddr); + tp->tally_vaddr = NULL; + } + + rtl8168_release_board(pdev, dev); + +#ifdef ENABLE_USE_FIRMWARE_FILE + rtl8168_release_firmware(tp); +#endif + + pci_set_drvdata(pdev, NULL); +} + +static void rtl8168_free_irq(struct rtl8168_private *tp) +{ + int i; + + for (i=0; iirq_nvecs; i++) { + struct r8168_irq *irq = &tp->irq_tbl[i]; + struct r8168_napi *r8168napi = &tp->r8168napi[i]; + + if (irq->requested) { + irq->requested = 0; +#if defined(RTL_USE_NEW_INTR_API) + pci_free_irq(tp->pci_dev, i, r8168napi); +#else + free_irq(irq->vector, r8168napi); +#endif + } + } +} + +static int rtl8168_alloc_irq(struct rtl8168_private *tp) +{ + struct net_device *dev = tp->dev; + int rc = 0; + struct r8168_irq *irq; + struct r8168_napi *r8168napi; + int i = 0; + const int len = sizeof(tp->irq_tbl[0].name); + +#if defined(RTL_USE_NEW_INTR_API) + for (i=0; iirq_nvecs; i++) { + irq = &tp->irq_tbl[i]; + if (tp->features & RTL_FEATURE_MSIX) + irq->handler = rtl8168_interrupt_msix; + else + irq->handler = rtl8168_interrupt; + + r8168napi = &tp->r8168napi[i]; + snprintf(irq->name, len, "%s-%d", dev->name, i); + rc = pci_request_irq(tp->pci_dev, i, irq->handler, NULL, r8168napi, + irq->name); + if (rc) + break; + + irq->vector = pci_irq_vector(tp->pci_dev, i); + irq->requested = 1; + } +#else + unsigned long irq_flags = 0; +#ifdef ENABLE_LIB_SUPPORT + if (tp->features & (RTL_FEATURE_MSI | RTL_FEATURE_MSIX)) + irq_flags |= IRQF_NO_SUSPEND; +#endif //ENABLE_LIB_SUPPORT + if (tp->features & RTL_FEATURE_MSIX) { + for (i=0; iirq_nvecs; i++) { + irq = &tp->irq_tbl[i]; + irq->handler = rtl8168_interrupt_msix; + r8168napi = &tp->r8168napi[i]; + snprintf(irq->name, len, "%s-%d", dev->name, i); + rc = request_irq(irq->vector, irq->handler, irq_flags, irq->name, r8168napi); + + if (rc) + break; + + irq->requested = 1; + } + } else { + irq = &tp->irq_tbl[0]; + irq->handler = rtl8168_interrupt; + r8168napi = &tp->r8168napi[0]; + snprintf(irq->name, len, "%s-0", dev->name); + irq->vector = dev->irq; + irq_flags |= (tp->features & (RTL_FEATURE_MSI | RTL_FEATURE_MSIX)) ? 0 : SA_SHIRQ; + rc = request_irq(irq->vector, irq->handler, irq_flags, irq->name, r8168napi); + + if (rc == 0) + irq->requested = 1; + } +#endif + if (rc) + rtl8168_free_irq(tp); + + return rc; +} + +static void +rtl8168_set_rxbufsize(struct rtl8168_private *tp, + struct net_device *dev) +{ + unsigned int mtu = dev->mtu; + + tp->rx_buf_sz = (mtu > ETH_DATA_LEN) ? mtu + ETH_HLEN + 8 : RX_BUF_SIZE; + + switch (tp->mcfg) { + case CFG_METHOD_1 ... CFG_METHOD_26: + tp->rx_buf_sz += 1; + break; + default: + break; + } +} + +static int rtl8168_alloc_tx_desc(struct rtl8168_private *tp) +{ + struct pci_dev *pdev = tp->pci_dev; + struct rtl8168_tx_ring *ring; + int i; + + for (i = 0; i < tp->num_tx_rings; i++) { + ring = &tp->tx_ring[i]; + ring->TxDescAllocSize = (ring->num_tx_desc + 1) * sizeof(struct TxDesc); + ring->TxDescArray = dma_alloc_coherent(&pdev->dev, + ring->TxDescAllocSize, + &ring->TxPhyAddr, + GFP_KERNEL); + + if (!ring->TxDescArray) + return -1; + } + + return 0; +} + +static int rtl8168_alloc_rx_desc(struct rtl8168_private *tp) +{ + struct pci_dev *pdev = tp->pci_dev; + + if (tp->InitRxDescType == RX_DESC_RING_TYPE_2) + tp->RxDescAllocSize = ((tp->num_rx_desc + 1) * tp->num_hw_tot_en_rx_rings) + * tp->RxDescLength; + else + tp->RxDescAllocSize = (tp->num_rx_desc + 1) * tp->RxDescLength; + + tp->RxDescArray = dma_alloc_coherent(&pdev->dev, tp->RxDescAllocSize, + &tp->RxPhyAddr, GFP_KERNEL); + if (!tp->RxDescArray) + return -1; + + return 0; +} + +static void rtl8168_free_tx_desc(struct rtl8168_private *tp) +{ + struct rtl8168_tx_ring *ring; + struct pci_dev *pdev = tp->pci_dev; + int i; + + for (i = 0; i < tp->num_tx_rings; i++) { + ring = &tp->tx_ring[i]; + if (ring->TxDescArray) { + dma_free_coherent(&pdev->dev, + ring->TxDescAllocSize, + ring->TxDescArray, + ring->TxPhyAddr); + ring->TxDescArray = NULL; + } + } +} + +static void rtl8168_free_rx_desc(struct rtl8168_private *tp) +{ + struct pci_dev *pdev = tp->pci_dev; + + if (tp->RxDescArray) { + dma_free_coherent(&pdev->dev, tp->RxDescAllocSize, tp->RxDescArray, + tp->RxPhyAddr); + tp->RxDescArray = NULL; + } +} + +static void rtl8168_free_alloc_resources(struct rtl8168_private *tp) +{ + rtl8168_free_rx_desc(tp); + + rtl8168_free_tx_desc(tp); +} + +#ifdef ENABLE_USE_FIRMWARE_FILE +static void rtl8168_request_firmware(struct rtl8168_private *tp) +{ + struct rtl8168_fw *rtl_fw; + + /* firmware loaded already or no firmware available */ + if (tp->rtl_fw || !tp->fw_name) + return; + + rtl_fw = kzalloc(sizeof(*rtl_fw), GFP_KERNEL); + if (!rtl_fw) + return; + + rtl_fw->phy_write = rtl8168_mdio_write; + rtl_fw->phy_read = rtl8168_mdio_read; + rtl_fw->mac_mcu_write = mac_mcu_write; + rtl_fw->mac_mcu_read = mac_mcu_read; + rtl_fw->fw_name = tp->fw_name; + rtl_fw->dev = tp_to_dev(tp); + + if (rtl8168_fw_request_firmware(rtl_fw)) + kfree(rtl_fw); + else + tp->rtl_fw = rtl_fw; +} +#endif + +int rtl8168_open(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct pci_dev *pdev = tp->pci_dev; + int retval; + + retval = -ENOMEM; + +#ifdef ENABLE_R8168_PROCFS + rtl8168_proc_init(dev); +#endif + rtl8168_set_rxbufsize(tp, dev); + /* + * Rx and Tx descriptors needs 256 bytes alignment. + * pci_alloc_consistent provides more. + */ + if (rtl8168_alloc_tx_desc(tp) < 0 || rtl8168_alloc_rx_desc(tp) < 0) + goto err_free_all_allocated_mem; + + retval = rtl8168_init_ring(dev); + if (retval < 0) + goto err_free_all_allocated_mem; + + retval = rtl8168_alloc_irq(tp); + if (retval<0) + goto err_free_all_allocated_mem; + + if (netif_msg_probe(tp)) { + printk(KERN_INFO "%s: 0x%lx, " + "%2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x, " + "IRQ %d\n", + dev->name, + dev->base_addr, + dev->dev_addr[0], dev->dev_addr[1], + dev->dev_addr[2], dev->dev_addr[3], + dev->dev_addr[4], dev->dev_addr[5], dev->irq); + } + +#ifdef ENABLE_USE_FIRMWARE_FILE + rtl8168_request_firmware(tp); +#endif + /* + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + INIT_WORK(&tp->task, rtl8168_reset_task, dev); + #else + INIT_DELAYED_WORK(&tp->task, rtl8168_reset_task); + #endif + */ + pci_set_master(pdev); + +#ifdef CONFIG_R8168_NAPI + rtl8168_enable_napi(tp); +#endif + rtl8168_exit_oob(dev); + + rtl8168_hw_init(dev); + + rtl8168_hw_reset(dev); + + rtl8168_powerup_pll(dev); + + rtl8168_hw_ephy_config(dev); + + rtl8168_hw_phy_config(dev); + + rtl8168_hw_config(dev); + + rtl8168_dsm(dev, DSM_IF_UP); + + clear_bit(R8168_FLAG_DOWN, tp->task_flags); + + rtl8168_set_speed(dev, tp->autoneg, tp->speed, tp->duplex, tp->advertising); + + if (tp->esd_flag == 0) { + //rtl8168_request_esd_timer(dev); + rtl8168_schedule_esd_work(tp); + } + + //rtl8168_request_link_timer(dev); + rtl8168_schedule_linkchg_work(tp); + +out: + + return retval; + +err_free_all_allocated_mem: + rtl8168_free_alloc_resources(tp); + + goto out; +} + +static void +rtl8168_dsm(struct net_device *dev, int dev_state) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + switch (dev_state) { + case DSM_MAC_INIT: + if ((tp->mcfg == CFG_METHOD_5) || (tp->mcfg == CFG_METHOD_6)) { + if (RTL_R8(tp, MACDBG) & 0x80) + RTL_W8(tp, GPIO, RTL_R8(tp, GPIO) | GPIO_en); + else + RTL_W8(tp, GPIO, RTL_R8(tp, GPIO) & ~GPIO_en); + } + + break; + case DSM_NIC_GOTO_D3: + case DSM_IF_DOWN: + if ((tp->mcfg == CFG_METHOD_5) || (tp->mcfg == CFG_METHOD_6)) { + if (RTL_R8(tp, MACDBG) & 0x80) + RTL_W8(tp, GPIO, RTL_R8(tp, GPIO) & ~GPIO_en); + } + break; + + case DSM_NIC_RESUME_D3: + case DSM_IF_UP: + if ((tp->mcfg == CFG_METHOD_5) || (tp->mcfg == CFG_METHOD_6)) { + if (RTL_R8(tp, MACDBG) & 0x80) + RTL_W8(tp, GPIO, RTL_R8(tp, GPIO) | GPIO_en); + } + + break; + } +} + +static void +set_offset70F(struct rtl8168_private *tp, u8 setting) +{ + u32 csi_tmp; + u32 temp = (u32)setting; + temp = temp << 24; + /*set PCI configuration space offset 0x70F to setting*/ + /*When the register offset of PCI configuration space larger than 0xff, use CSI to access it.*/ + + csi_tmp = rtl8168_csi_read(tp, 0x70c) & 0x00ffffff; + rtl8168_csi_write(tp, 0x70c, csi_tmp | temp); +} + +static void +set_offset79(struct rtl8168_private *tp, u8 setting) +{ + //Set PCI configuration space offset 0x79 to setting + + struct pci_dev *pdev = tp->pci_dev; + u8 device_control; + + if (hwoptimize & HW_PATCH_SOC_LAN) + return; + + pci_read_config_byte(pdev, 0x79, &device_control); + device_control &= ~0x70; + device_control |= setting; + pci_write_config_byte(pdev, 0x79, device_control); +} + +static void +set_offset711(struct rtl8168_private *tp, u8 setting) +{ + u32 csi_tmp; + u32 temp = (u32)setting; + temp &= 0x0f; + temp = temp << 12; + /*set PCI configuration space offset 0x711 to setting*/ + + csi_tmp = rtl8168_csi_read(tp, 0x710) & 0xffff0fff; + rtl8168_csi_write(tp, 0x710, csi_tmp | temp); +} + +static void +rtl8168_hw_set_rx_packet_filter(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 mc_filter[2]; /* Multicast hash filter */ + int rx_mode; + u32 tmp = 0; + + if (dev->flags & IFF_PROMISC) { + /* Unconditionally log net taps. */ + if (netif_msg_link(tp)) + printk(KERN_NOTICE "%s: Promiscuous mode enabled.\n", + dev->name); + + rx_mode = + AcceptBroadcast | AcceptMulticast | AcceptMyPhys | + AcceptAllPhys; + mc_filter[1] = mc_filter[0] = 0xffffffff; + } else if ((netdev_mc_count(dev) > multicast_filter_limit) + || (dev->flags & IFF_ALLMULTI)) { + /* Too many to filter perfectly -- accept all multicasts. */ + rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; + mc_filter[1] = mc_filter[0] = 0xffffffff; + } else { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) + struct dev_mc_list *mclist; + unsigned int i; + + rx_mode = AcceptBroadcast | AcceptMyPhys; + mc_filter[1] = mc_filter[0] = 0; + for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; + i++, mclist = mclist->next) { + int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26; + mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); + rx_mode |= AcceptMulticast; + } +#else + struct netdev_hw_addr *ha; + + rx_mode = AcceptBroadcast | AcceptMyPhys; + mc_filter[1] = mc_filter[0] = 0; + netdev_for_each_mc_addr(ha, dev) { + int bit_nr = ether_crc(ETH_ALEN, ha->addr) >> 26; + mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); + rx_mode |= AcceptMulticast; + } +#endif + } + + if (dev->features & NETIF_F_RXALL) + rx_mode |= (AcceptErr | AcceptRunt); + + tmp = mc_filter[0]; + mc_filter[0] = swab32(mc_filter[1]); + mc_filter[1] = swab32(tmp); + + tp->rtl8168_rx_config = rtl_chip_info[tp->chipset].RCR_Cfg; + switch (tp->mcfg) { + case CFG_METHOD_21 ... CFG_METHOD_35: + if (tp->EnableRss) + tp->rtl8168_rx_config &= ~Rx_Single_fetch_V2; + else + tp->rtl8168_rx_config |= Rx_Single_fetch_V2; + break; + default: + break; + } + if (tp->InitRxDescType == RX_DESC_RING_TYPE_2) + tp->rtl8168_rx_config |= RxCfg_rx_desc_v2_en; + tmp = tp->rtl8168_rx_config | rx_mode | (RTL_R32(tp, RxConfig) & rtl_chip_info[tp->chipset].RxConfigMask); + + RTL_W32(tp, RxConfig, tmp); + RTL_W32(tp, MAR0 + 0, mc_filter[0]); + RTL_W32(tp, MAR0 + 4, mc_filter[1]); +} + +static void +rtl8168_set_rx_mode(struct net_device *dev) +{ + rtl8168_hw_set_rx_packet_filter(dev); +} + +void +rtl8168_hw_config(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + struct pci_dev *pdev = tp->pci_dev; + u8 device_control; + u16 mac_ocp_data; + u32 csi_tmp; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + if (dev->mtu > ETH_DATA_LEN) { + dev->features &= ~(NETIF_F_IP_CSUM); + } else { + dev->features |= NETIF_F_IP_CSUM; + } +#endif + rtl8168_disable_rx_packet_filter(tp); + + rtl8168_hw_reset(dev); + + rtl8168_enable_cfg9346_write(tp); + if (tp->HwSuppAspmClkIntrLock) { + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) & ~BIT_7); + rtl8168_hw_aspm_clkreq_enable(tp, false); + } + + rtl8168_set_eee_lpi_timer(tp); + + //clear io_rdy_l23 + switch (tp->mcfg) { + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~BIT_1); + break; + } + + //keep magic packet only + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + csi_tmp = rtl8168_eri_read(tp, 0xDE, 1, ERIAR_ExGMAC); + csi_tmp &= BIT_0; + rtl8168_eri_write(tp, 0xDE, 1, csi_tmp, ERIAR_ExGMAC); + break; + } + + RTL_W8(tp, MTPS, Reserved1_data); + + tp->cp_cmd |= INTT_1; + if (tp->use_timer_interrrupt) + tp->cp_cmd |= PktCntrDisable; + else + tp->cp_cmd &= ~PktCntrDisable; + + RTL_W16(tp, IntrMitigate, 0x5f51); + + rtl8168_tally_counter_addr_fill(tp); + + rtl8168_desc_addr_fill(tp); + + /* Set DMA burst size and Interframe Gap Time */ + if (tp->mcfg == CFG_METHOD_1) + RTL_W32(tp, TxConfig, (TX_DMA_BURST_512 << TxDMAShift) | + (InterFrameGap << TxInterFrameGapShift)); + else + RTL_W32(tp, TxConfig, (TX_DMA_BURST_unlimited << TxDMAShift) | + (InterFrameGap << TxInterFrameGapShift)); + + if (tp->mcfg == CFG_METHOD_4) { + set_offset70F(tp, 0x27); + + RTL_W8(tp, DBG_reg, (0x0E << 4) | Fix_Nak_1 | Fix_Nak_2); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + //disable clock request. + pci_write_config_byte(pdev, 0x81, 0x00); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + set_offset79(tp, 0x50); + } + + //rx checksum offload enable +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + tp->cp_cmd |= RxChkSum; +#else + dev->features |= NETIF_F_RXCSUM; +#endif + + tp->cp_cmd &= ~(EnableBist | Macdbgo_oe | Force_halfdup | + Force_rxflow_en | Force_txflow_en | Cxpl_dbg_sel | + ASF | PktCntrDisable | Macdbgo_sel); + } else if (tp->mcfg == CFG_METHOD_5) { + + set_offset70F(tp, 0x27); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + //disable clock request. + pci_write_config_byte(pdev, 0x81, 0x00); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + set_offset79(tp, 0x50); + } + + //rx checksum offload enable +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + tp->cp_cmd |= RxChkSum; +#else + dev->features |= NETIF_F_RXCSUM; +#endif + } else if (tp->mcfg == CFG_METHOD_6) { + set_offset70F(tp, 0x27); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + //disable clock request. + pci_write_config_byte(pdev, 0x81, 0x00); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + set_offset79(tp, 0x50); + } + + //rx checksum offload enable +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + tp->cp_cmd |= RxChkSum; +#else + dev->features |= NETIF_F_RXCSUM; +#endif + } else if (tp->mcfg == CFG_METHOD_7) { + set_offset70F(tp, 0x27); + + rtl8168_eri_write(tp, 0x1EC, 1, 0x07, ERIAR_ASF); + + //disable clock request. + pci_write_config_byte(pdev, 0x81, 0x00); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + + set_offset79(tp, 0x50); + } + } else if (tp->mcfg == CFG_METHOD_8) { + + set_offset70F(tp, 0x27); + + rtl8168_eri_write(tp, 0x1EC, 1, 0x07, ERIAR_ASF); + + //disable clock request. + pci_write_config_byte(pdev, 0x81, 0x00); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + RTL_W8(tp, 0xD1, 0x20); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + set_offset79(tp, 0x50); + } + } else if (tp->mcfg == CFG_METHOD_9) { + set_offset70F(tp, 0x27); + + /* disable clock request. */ + pci_write_config_byte(pdev, 0x81, 0x00); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~BIT_4); + RTL_W8(tp, DBG_reg, RTL_R8(tp, DBG_reg) | BIT_7 | BIT_1); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + set_offset79(tp, 0x50); + } + + RTL_W8(tp, TDFNR, 0x8); + + } else if (tp->mcfg == CFG_METHOD_10) { + set_offset70F(tp, 0x27); + + RTL_W8(tp, DBG_reg, RTL_R8(tp, DBG_reg) | BIT_7 | BIT_1); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | Jumbo_En1); + + set_offset79(tp, 0x20); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~Jumbo_En1); + + set_offset79(tp, 0x50); + } + + RTL_W8(tp, TDFNR, 0x8); + + RTL_W8(tp, Config1, RTL_R8(tp, Config1) | 0x10); + + /* disable clock request. */ + pci_write_config_byte(pdev, 0x81, 0x00); + } else if (tp->mcfg == CFG_METHOD_11 || tp->mcfg == CFG_METHOD_13) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + else + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + + pci_write_config_byte(pdev, 0x81, 0x00); + + RTL_W8(tp, Config1, RTL_R8(tp, Config1) | 0x10); + + } else if (tp->mcfg == CFG_METHOD_12) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + else + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + + pci_write_config_byte(pdev, 0x81, 0x01); + + RTL_W8(tp, Config1, RTL_R8(tp, Config1) | 0x10); + + } else if (tp->mcfg == CFG_METHOD_14 || tp->mcfg == CFG_METHOD_15) { + + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + if (dev->mtu > ETH_DATA_LEN) { + RTL_W8(tp, MTPS, 0x24); + RTL_W8(tp, Config3, RTL_R8(tp, Config3) | Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | 0x01); + } else { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Jumbo_En0); + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~0x01); + } + + RTL_W8(tp, 0xF3, RTL_R8(tp, 0xF3) | BIT_5); + RTL_W8(tp, 0xF3, RTL_R8(tp, 0xF3) & ~BIT_5); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_7 | BIT_6); + + RTL_W8(tp, 0xD1, RTL_R8(tp, 0xD1) | BIT_2 | BIT_3); + + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_6 | BIT_5 | BIT_4 | BIT_2 | BIT_1); + + RTL_W8(tp, TDFNR, 0x8); + + /* + if (aspm) + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_7); + */ + + RTL_W8(tp, Config5, RTL_R8(tp, Config5) & ~BIT_3); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + RTL_W8(tp, Config1, RTL_R8(tp, Config1) & ~0x10); + } else if (tp->mcfg == CFG_METHOD_16 || tp->mcfg == CFG_METHOD_17) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + rtl8168_eri_write(tp, 0xC0, 2, 0x0000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xB8, 4, 0x00000000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xC8, 4, 0x00100002, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xE8, 4, 0x00100006, ERIAR_ExGMAC); + csi_tmp = rtl8168_eri_read(tp, 0x1D0, 4, ERIAR_ExGMAC); + csi_tmp |= BIT_1; + rtl8168_eri_write(tp, 0x1D0, 1, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0xDC, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | BIT_7); + RTL_W8(tp, 0xD3, RTL_R8(tp, 0xD3) & ~BIT_7); + RTL_W8(tp, 0x1B, RTL_R8(tp, 0x1B) & ~0x07); + + if (tp->mcfg == CFG_METHOD_16) { + RTL_W32(tp, 0xB0, 0xEE480010); + RTL_W8(tp, 0x1A, RTL_R8(tp, 0x1A) & ~(BIT_2|BIT_3)); + rtl8168_eri_write(tp, 0x1DC, 1, 0x64, ERIAR_ExGMAC); + } else { + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp |= BIT_4; + rtl8168_eri_write(tp, 0x1B0, 1, csi_tmp, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xCC, 4, 0x00000050, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xD0, 4, 0x07ff0060, ERIAR_ExGMAC); + } + + RTL_W8(tp, TDFNR, 0x8); + + RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~PMSTS_En); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_6); + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, MTPS, 0x27); + + /* disable clock request. */ + pci_write_config_byte(pdev, 0x81, 0x00); + + } else if (tp->mcfg == CFG_METHOD_18 || tp->mcfg == CFG_METHOD_19) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + rtl8168_eri_write(tp, 0xC8, 4, 0x00100002, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xE8, 4, 0x00100006, ERIAR_ExGMAC); + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | BIT_7); + RTL_W8(tp, 0xD3, RTL_R8(tp, 0xD3) & ~BIT_7); + csi_tmp = rtl8168_eri_read(tp, 0xDC, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + + /* + if (aspm) + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_7); + */ + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, MTPS, 0x27); + + RTL_W8(tp, TDFNR, 0x8); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_6); + + rtl8168_eri_write(tp, 0xC0, 2, 0x0000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xB8, 4, 0x00000000, ERIAR_ExGMAC); + RTL_W8(tp, 0x1B,RTL_R8(tp, 0x1B) & ~0x07); + + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_4; + rtl8168_eri_write(tp, 0x1B0, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp = rtl8168_eri_read(tp, 0x1d0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_4 | BIT_1; + rtl8168_eri_write(tp, 0x1d0, 1, csi_tmp, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xCC, 4, 0x00000050, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xd0, 4, 0x00000060, ERIAR_ExGMAC); + } else if (tp->mcfg == CFG_METHOD_20) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + rtl8168_eri_write(tp, 0xC8, 4, 0x00100002, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xE8, 4, 0x00100006, ERIAR_ExGMAC); + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | BIT_7); + RTL_W8(tp, 0xD3, RTL_R8(tp, 0xD3) & ~BIT_7); + csi_tmp = rtl8168_eri_read(tp, 0xDC, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + + /* + if (aspm) + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_7); + */ + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, MTPS, 0x27); + + RTL_W8(tp, TDFNR, 0x8); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_6); + rtl8168_eri_write(tp, 0xC0, 2, 0x0000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xB8, 4, 0x00000000, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_4; + rtl8168_eri_write(tp, 0x1B0, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp = rtl8168_eri_read(tp, 0x1d0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_4 | BIT_1; + rtl8168_eri_write(tp, 0x1d0, 1, csi_tmp, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xCC, 4, 0x00000050, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xd0, 4, 0x00000060, ERIAR_ExGMAC); + } else if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_24 || tp->mcfg == CFG_METHOD_25 || + tp->mcfg == CFG_METHOD_26 || tp->mcfg == CFG_METHOD_29 || + tp->mcfg == CFG_METHOD_30 || tp->mcfg == CFG_METHOD_35 || + tp->mcfg == CFG_METHOD_36 || tp->mcfg == CFG_METHOD_37) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22) + set_offset711(tp, 0x04); + + rtl8168_eri_write(tp, 0xC8, 4, 0x00080002, ERIAR_ExGMAC); +#ifdef ENABLE_LIB_SUPPORT + rtl8168_eri_write(tp, 0xCC, 1, 0x60, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xD0, 1, 0x70, ERIAR_ExGMAC); +#else + rtl8168_eri_write(tp, 0xCC, 1, 0x38, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xD0, 1, 0x48, ERIAR_ExGMAC); +#endif //ENABLE_LIB_SUPPORT + rtl8168_eri_write(tp, 0xE8, 4, 0x00100006, ERIAR_ExGMAC); + + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | BIT_7); + + csi_tmp = rtl8168_eri_read(tp, 0xDC, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + + if (tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36) + rtl8168_set_mcu_ocp_bit(tp, 0xD438, (BIT_1 | BIT_0)); + + if (tp->mcfg == CFG_METHOD_26) { + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD3C0); + mac_ocp_data &= ~(BIT_11 | BIT_10 | BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0); + mac_ocp_data |= 0x0FFF; + rtl8168_mac_ocp_write(tp, 0xD3C0, mac_ocp_data); + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD3C2); + mac_ocp_data &= ~(BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0); + rtl8168_mac_ocp_write(tp, 0xD3C2, mac_ocp_data); + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD3C4); + mac_ocp_data |= BIT_0; + rtl8168_mac_ocp_write(tp, 0xD3C4, mac_ocp_data); + } else if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + + if (tp->RequireAdjustUpsTxLinkPulseTiming) { + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD412); + mac_ocp_data &= ~(0x0FFF); + mac_ocp_data |= tp->SwrCnt1msIni; + rtl8168_mac_ocp_write(tp, 0xD412, mac_ocp_data); + } + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xE056); + mac_ocp_data &= ~(BIT_7 | BIT_6 | BIT_5 | BIT_4); + //mac_ocp_data |= (BIT_6 | BIT_5 | BIT_4); + rtl8168_mac_ocp_write(tp, 0xE056, mac_ocp_data); + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xE052); + mac_ocp_data &= ~(BIT_15 | BIT_14 | BIT_13 | BIT_3); + mac_ocp_data |= BIT_15; + //mac_ocp_data |= BIT_3; + rtl8168_mac_ocp_write(tp, 0xE052, mac_ocp_data); + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD420); + mac_ocp_data &= ~(BIT_11 | BIT_10 | BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0); + mac_ocp_data |= 0x45F; + rtl8168_mac_ocp_write(tp, 0xD420, mac_ocp_data); + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xE0D6); + mac_ocp_data &= ~(BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0); + mac_ocp_data |= 0x17F; + rtl8168_mac_ocp_write(tp, 0xE0D6, mac_ocp_data); + } + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + RTL_W8(tp, 0x1B, RTL_R8(tp, 0x1B) & ~0x07); + + RTL_W8(tp, TDFNR, 0x4); + + RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~PMSTS_En); + + /* + if (aspm) + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_7); + */ + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, MTPS, 0x27); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_6); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_7); + + rtl8168_eri_write(tp, RSS_CTRL_8168, 4, 0x00000000, ERIAR_ExGMAC); + + if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + rtl8168_mac_ocp_write(tp, 0xE054, 0x0000); + + rtl8168_eri_write(tp, 0x5F0, 2, 0x4000, ERIAR_ExGMAC); + } else { + rtl8168_eri_write(tp, 0x5F0, 2, 0x4F87, ERIAR_ExGMAC); + } + + if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + csi_tmp = rtl8168_eri_read(tp, 0xDC, 4, ERIAR_ExGMAC); + csi_tmp |= (BIT_2 | BIT_3 | BIT_4); + rtl8168_eri_write(tp, 0xDC, 4, csi_tmp, ERIAR_ExGMAC); + } + + if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_24 || tp->mcfg == CFG_METHOD_25) { + rtl8168_mac_ocp_write(tp, 0xC140, 0xFFFF); + } else if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + rtl8168_mac_ocp_write(tp, 0xC140, 0xFFFF); + rtl8168_mac_ocp_write(tp, 0xC142, 0xFFFF); + } + + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp &= ~BIT_12; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + + if (tp->mcfg == CFG_METHOD_29 || tp->mcfg == CFG_METHOD_30 || + tp->mcfg == CFG_METHOD_35 || tp->mcfg == CFG_METHOD_36 || + tp->mcfg == CFG_METHOD_37) { + csi_tmp = rtl8168_eri_read(tp, 0x2FC, 1, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_2); + rtl8168_eri_write(tp, 0x2FC, 1, csi_tmp, ERIAR_ExGMAC); + } else { + csi_tmp = rtl8168_eri_read(tp, 0x2FC, 1, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_0 | BIT_1 | BIT_2); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0x2FC, 1, csi_tmp, ERIAR_ExGMAC); + } + + if (tp->mcfg != CFG_METHOD_37) { + csi_tmp = rtl8168_eri_read(tp, 0x1D0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_1; + rtl8168_eri_write(tp, 0x1D0, 1, csi_tmp, ERIAR_ExGMAC); + } + } else if (tp->mcfg == CFG_METHOD_23 || tp->mcfg == CFG_METHOD_27 || + tp->mcfg == CFG_METHOD_28) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + rtl8168_eri_write(tp, 0xC8, 4, 0x00080002, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xCC, 1, 0x2F, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xD0, 1, 0x5F, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xE8, 4, 0x00100006, ERIAR_ExGMAC); + + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | BIT_7); + + csi_tmp = rtl8168_eri_read(tp, 0xDC, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_6); + + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_7); + + rtl8168_eri_write(tp, 0xC0, 2, 0x0000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xB8, 4, 0x00000000, ERIAR_ExGMAC); + RTL_W8(tp, 0x1B, RTL_R8(tp, 0x1B) & ~0x07); + + RTL_W8(tp, TDFNR, 0x4); + + /* + if (aspm) + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_7); + */ + + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp &= ~BIT_12; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x2FC, 1, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_0 | BIT_1 | BIT_2); + csi_tmp |= (BIT_0 | BIT_1); + rtl8168_eri_write(tp, 0x2FC, 1, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x1D0, 1, ERIAR_ExGMAC); + csi_tmp |= BIT_1; + rtl8168_eri_write(tp, 0x1D0, 1, csi_tmp, ERIAR_ExGMAC); + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, MTPS, 0x27); + + if (tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28) { + rtl8168_oob_mutex_lock(tp); + rtl8168_eri_write(tp, 0x5F0, 2, 0x4F87, ERIAR_ExGMAC); + rtl8168_oob_mutex_unlock(tp); + } + + rtl8168_mac_ocp_write(tp, 0xC140, 0xFFFF); + rtl8168_mac_ocp_write(tp, 0xC142, 0xFFFF); + + if (tp->mcfg == CFG_METHOD_28) { + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD3E2); + mac_ocp_data &= 0xF000; + mac_ocp_data |= 0xAFD; + rtl8168_mac_ocp_write(tp, 0xD3E2, mac_ocp_data); + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD3E4); + mac_ocp_data &= 0xFF00; + rtl8168_mac_ocp_write(tp, 0xD3E4, mac_ocp_data); + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xE860); + mac_ocp_data |= BIT_7; + rtl8168_mac_ocp_write(tp, 0xE860, mac_ocp_data); + } + } else if (tp->mcfg == CFG_METHOD_31 || tp->mcfg == CFG_METHOD_32 || + tp->mcfg == CFG_METHOD_33 || tp->mcfg == CFG_METHOD_34) { + set_offset70F(tp, 0x27); + set_offset79(tp, 0x50); + + rtl8168_eri_write(tp, 0xC8, 4, 0x00080002, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xCC, 1, 0x2F, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xD0, 1, 0x5F, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xE8, 4, 0x00100006, ERIAR_ExGMAC); + + RTL_W32(tp, TxConfig, RTL_R32(tp, TxConfig) | BIT_7); + + csi_tmp = rtl8168_eri_read(tp, 0xDC, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0xDC, 1, csi_tmp, ERIAR_ExGMAC); + + if (tp->RequireAdjustUpsTxLinkPulseTiming) { + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD412); + mac_ocp_data &= ~(0x0FFF); + mac_ocp_data |= tp->SwrCnt1msIni; + rtl8168_mac_ocp_write(tp, 0xD412, mac_ocp_data); + } + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xE056); + mac_ocp_data &= ~(BIT_7 | BIT_6 | BIT_5 | BIT_4); + if (tp->HwPkgDet == 0x0F) + mac_ocp_data |= (BIT_6 | BIT_5 | BIT_4); + rtl8168_mac_ocp_write(tp, 0xE056, mac_ocp_data); + if (tp->HwPkgDet == 0x0F) + rtl8168_mac_ocp_write(tp, 0xEA80, 0x0003); + else + rtl8168_mac_ocp_write(tp, 0xEA80, 0x0000); + + rtl8168_oob_mutex_lock(tp); + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xE052); + mac_ocp_data &= ~(BIT_3 | BIT_0); + if (tp->HwPkgDet == 0x0F) + mac_ocp_data |= BIT_0; + rtl8168_mac_ocp_write(tp, 0xE052, mac_ocp_data); + rtl8168_oob_mutex_unlock(tp); + + mac_ocp_data = rtl8168_mac_ocp_read(tp, 0xD420); + mac_ocp_data &= ~(BIT_11 | BIT_10 | BIT_9 | BIT_8 | BIT_7 | BIT_6 | BIT_5 | BIT_4 | BIT_3 | BIT_2 | BIT_1 | BIT_0); + mac_ocp_data |= 0x45F; + rtl8168_mac_ocp_write(tp, 0xD420, mac_ocp_data); + + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + RTL_W8(tp, 0x1B, RTL_R8(tp, 0x1B) & ~0x07); + + RTL_W8(tp, TDFNR, 0x4); + + RTL_W8(tp, Config2, RTL_R8(tp, Config2) & ~PMSTS_En); + + /* + if (aspm) + RTL_W8(tp, 0xF1, RTL_R8(tp, 0xF1) | BIT_7); + */ + + if (dev->mtu > ETH_DATA_LEN) + RTL_W8(tp, MTPS, 0x27); + + if (FALSE == HW_SUPP_SERDES_PHY(tp)) { + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) | BIT_6); + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) | BIT_7); + } else { + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) & ~BIT_6); + RTL_W8(tp, 0xF2, RTL_R8(tp, 0xF2) & ~BIT_6); + RTL_W8(tp, 0xD0, RTL_R8(tp, 0xD0) & ~BIT_7); + } + + rtl8168_eri_write(tp, 0xC0, 2, 0x0000, ERIAR_ExGMAC); + rtl8168_eri_write(tp, 0xB8, 4, 0x00000000, ERIAR_ExGMAC); + + rtl8168_oob_mutex_lock(tp); + if (tp->HwPkgDet == 0x0F) + rtl8168_eri_write(tp, 0x5F0, 2, 0x4F00, ERIAR_ExGMAC); + else + rtl8168_eri_write(tp, 0x5F0, 2, 0x4000, ERIAR_ExGMAC); + rtl8168_oob_mutex_unlock(tp); + + csi_tmp = rtl8168_eri_read(tp, 0xDC, 4, ERIAR_ExGMAC); + csi_tmp |= (BIT_2 | BIT_3); + rtl8168_eri_write(tp, 0xDC, 4, csi_tmp, ERIAR_ExGMAC); + + if (tp->mcfg == CFG_METHOD_32 || tp->mcfg == CFG_METHOD_33 || + tp->mcfg == CFG_METHOD_34) { + csi_tmp = rtl8168_eri_read(tp, 0xD4, 4, ERIAR_ExGMAC); + csi_tmp |= BIT_4; + rtl8168_eri_write(tp, 0xD4, 4, csi_tmp, ERIAR_ExGMAC); + } + + rtl8168_mac_ocp_write(tp, 0xC140, 0xFFFF); + rtl8168_mac_ocp_write(tp, 0xC142, 0xFFFF); + + csi_tmp = rtl8168_eri_read(tp, 0x1B0, 4, ERIAR_ExGMAC); + csi_tmp &= ~BIT_12; + rtl8168_eri_write(tp, 0x1B0, 4, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x2FC, 1, ERIAR_ExGMAC); + csi_tmp &= ~(BIT_0 | BIT_1); + csi_tmp |= BIT_0; + rtl8168_eri_write(tp, 0x2FC, 1, csi_tmp, ERIAR_ExGMAC); + + csi_tmp = rtl8168_eri_read(tp, 0x1D0, 1, ERIAR_ExGMAC); + csi_tmp &= ~BIT_1; + rtl8168_eri_write(tp, 0x1D0, 1, csi_tmp, ERIAR_ExGMAC); + } else if (tp->mcfg == CFG_METHOD_1) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + if (dev->mtu > ETH_DATA_LEN) { + pci_read_config_byte(pdev, 0x69, &device_control); + device_control &= ~0x70; + device_control |= 0x28; + pci_write_config_byte(pdev, 0x69, device_control); + } else { + pci_read_config_byte(pdev, 0x69, &device_control); + device_control &= ~0x70; + device_control |= 0x58; + pci_write_config_byte(pdev, 0x69, device_control); + } + } else if (tp->mcfg == CFG_METHOD_2) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + if (dev->mtu > ETH_DATA_LEN) { + pci_read_config_byte(pdev, 0x69, &device_control); + device_control &= ~0x70; + device_control |= 0x28; + pci_write_config_byte(pdev, 0x69, device_control); + + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | (1 << 0)); + } else { + pci_read_config_byte(pdev, 0x69, &device_control); + device_control &= ~0x70; + device_control |= 0x58; + pci_write_config_byte(pdev, 0x69, device_control); + + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~(1 << 0)); + } + } else if (tp->mcfg == CFG_METHOD_3) { + RTL_W8(tp, Config3, RTL_R8(tp, Config3) & ~Beacon_en); + + if (dev->mtu > ETH_DATA_LEN) { + pci_read_config_byte(pdev, 0x69, &device_control); + device_control &= ~0x70; + device_control |= 0x28; + pci_write_config_byte(pdev, 0x69, device_control); + + RTL_W8(tp, Config4, RTL_R8(tp, Config4) | (1 << 0)); + } else { + pci_read_config_byte(pdev, 0x69, &device_control); + device_control &= ~0x70; + device_control |= 0x58; + pci_write_config_byte(pdev, 0x69, device_control); + + RTL_W8(tp, Config4, RTL_R8(tp, Config4) & ~(1 << 0)); + } + } + + if ((tp->mcfg == CFG_METHOD_1) || (tp->mcfg == CFG_METHOD_2) || (tp->mcfg == CFG_METHOD_3)) { + /* csum offload command for RTL8168B/8111B */ + tp->tx_tcp_csum_cmd = TxTCPCS; + tp->tx_udp_csum_cmd = TxUDPCS; + tp->tx_ip_csum_cmd = TxIPCS; + tp->tx_ipv6_csum_cmd = 0; + } else { + /* csum offload command for RTL8168C/8111C and RTL8168CP/8111CP */ + tp->tx_tcp_csum_cmd = TxTCPCS_C; + tp->tx_udp_csum_cmd = TxUDPCS_C; + tp->tx_ip_csum_cmd = TxIPCS_C; + tp->tx_ipv6_csum_cmd = TxIPV6F_C; + } + + + //other hw parameters + if (tp->mcfg == CFG_METHOD_21 || tp->mcfg == CFG_METHOD_22 || + tp->mcfg == CFG_METHOD_23 || tp->mcfg == CFG_METHOD_24 || + tp->mcfg == CFG_METHOD_25 || tp->mcfg == CFG_METHOD_26 || + tp->mcfg == CFG_METHOD_27 || tp->mcfg == CFG_METHOD_28) + rtl8168_eri_write(tp, 0x2F8, 2, 0x1D8F, ERIAR_ExGMAC); + + if (tp->bios_setting & BIT_28) { + if (tp->mcfg == CFG_METHOD_18 || tp->mcfg == CFG_METHOD_19 || + tp->mcfg == CFG_METHOD_20) { + u32 gphy_val; + + rtl8168_mdio_write(tp, 0x1F, 0x0007); + rtl8168_mdio_write(tp, 0x1E, 0x002C); + gphy_val = rtl8168_mdio_read(tp, 0x16); + gphy_val |= BIT_10; + rtl8168_mdio_write(tp, 0x16, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0005); + rtl8168_mdio_write(tp, 0x05, 0x8B80); + gphy_val = rtl8168_mdio_read(tp, 0x06); + gphy_val |= BIT_7; + rtl8168_mdio_write(tp, 0x06, gphy_val); + rtl8168_mdio_write(tp, 0x1F, 0x0000); + } + } + + rtl8168_set_rx_q_num(tp, tp->num_hw_tot_en_rx_rings); + + rtl8168_set_rx_vlan_filter(tp); +#ifdef ENABLE_RSS_SUPPORT +#ifdef ENABLE_LIB_SUPPORT + /* if lib queue not exist, default use rx queue 0 */ + if (rtl8168_num_lib_rx_rings(tp) == 0) + mem_clear(tp->rss_indir_tbl, sizeof(tp->rss_indir_tbl)); +#endif //ENABLE_LIB_SUPPORT + rtl8168_config_rss(tp); +#endif //ENABLE_RSS_SUPPORT + rtl8168_hw_clear_timer_int(dev); + + rtl8168_enable_exit_l1_mask(tp); + + switch (tp->mcfg) { + case CFG_METHOD_25: + rtl8168_mac_ocp_write(tp, 0xD3C0, 0x0B00); + rtl8168_mac_ocp_write(tp, 0xD3C2, 0x0000); + break; + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_mac_ocp_write(tp, 0xE098, 0x0AA2); + break; + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + rtl8168_mac_ocp_write(tp, 0xE098, 0xC302); + break; + } + + switch (tp->mcfg) { + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_23: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_disable_pci_offset_99(tp); + if (aspm) { + if (tp->org_pci_offset_99 & (BIT_2 | BIT_5 | BIT_6)) + rtl8168_init_pci_offset_99(tp); + } + break; + } + switch (tp->mcfg) { + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: + case CFG_METHOD_27: + case CFG_METHOD_28: + case CFG_METHOD_29: + case CFG_METHOD_30: + case CFG_METHOD_31: + case CFG_METHOD_32: + case CFG_METHOD_33: + case CFG_METHOD_34: + case CFG_METHOD_35: + case CFG_METHOD_36: + case CFG_METHOD_37: + rtl8168_disable_pci_offset_180(tp); + if (aspm) { + if (tp->org_pci_offset_180 & (BIT_0|BIT_1)) + rtl8168_init_pci_offset_180(tp); + } + break; + } + + tp->cp_cmd &= ~(EnableBist | Macdbgo_oe | Force_halfdup | + Force_rxflow_en | Force_txflow_en | Cxpl_dbg_sel | + ASF | Macdbgo_sel); + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) + RTL_W16(tp, CPlusCmd, tp->cp_cmd); +#else + rtl8168_hw_set_features(dev, dev->features); +#endif + + switch (tp->mcfg) { + case CFG_METHOD_16: + case CFG_METHOD_17: + case CFG_METHOD_18: + case CFG_METHOD_19: + case CFG_METHOD_20: + case CFG_METHOD_21: + case CFG_METHOD_22: + case CFG_METHOD_24: + case CFG_METHOD_25: + case CFG_METHOD_26: { + int timeout; + for (timeout = 0; timeout < 10; timeout++) { + if ((rtl8168_eri_read(tp, 0x1AE, 2, ERIAR_ExGMAC) & BIT_13)==0) + break; + mdelay(1); + } + } + break; + } + + RTL_W16(tp, RxMaxSize, tp->rx_buf_sz); + + rtl8168_disable_rxdvgate(dev); + + if (tp->mcfg == CFG_METHOD_11 || tp->mcfg == CFG_METHOD_12) + rtl8168_mac_loopback_test(tp); + + if (!tp->pci_cfg_is_read) { + pci_read_config_byte(pdev, PCI_COMMAND, &tp->pci_cfg_space.cmd); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_0, &tp->pci_cfg_space.io_base_l); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_0 + 2, &tp->pci_cfg_space.io_base_h); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_2, &tp->pci_cfg_space.mem_base_l); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_2 + 2, &tp->pci_cfg_space.mem_base_h); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_3, &tp->pci_cfg_space.resv_0x1c_l); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_3 + 2, &tp->pci_cfg_space.resv_0x1c_h); + pci_read_config_byte(pdev, PCI_INTERRUPT_LINE, &tp->pci_cfg_space.ilr); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_4, &tp->pci_cfg_space.resv_0x20_l); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_4 + 2, &tp->pci_cfg_space.resv_0x20_h); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_5, &tp->pci_cfg_space.resv_0x24_l); + pci_read_config_word(pdev, PCI_BASE_ADDRESS_5 + 2, &tp->pci_cfg_space.resv_0x24_h); + pci_read_config_word(pdev, PCI_SUBSYSTEM_VENDOR_ID, &tp->pci_cfg_space.resv_0x2c_l); + pci_read_config_word(pdev, PCI_SUBSYSTEM_VENDOR_ID + 2, &tp->pci_cfg_space.resv_0x2c_h); + if (tp->HwPcieSNOffset > 0) { + tp->pci_cfg_space.pci_sn_l = rtl8168_csi_read(tp, tp->HwPcieSNOffset); + tp->pci_cfg_space.pci_sn_h = rtl8168_csi_read(tp, tp->HwPcieSNOffset + 4); + } + + tp->pci_cfg_is_read = 1; + } + + rtl8168_dsm(dev, DSM_MAC_INIT); + + /* Set Rx packet filter */ + rtl8168_hw_set_rx_packet_filter(dev); + +#ifdef ENABLE_DASH_SUPPORT + if (tp->DASH && !tp->dash_printer_enabled) + NICChkTypeEnableDashInterrupt(tp); +#endif + + if (tp->HwSuppAspmClkIntrLock) + rtl8168_hw_aspm_clkreq_enable(tp, true); + + rtl8168_disable_cfg9346_write(tp); + + udelay(10); +} + +void +rtl8168_hw_start(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + +#ifdef ENABLE_LIB_SUPPORT + rtl8168_init_lib_ring(tp); +#endif + + RTL_W8(tp, ChipCmd, CmdTxEnb | CmdRxEnb); + + rtl8168_enable_interrupt(tp); + + rtl8168_lib_reset_complete(tp); +} + +static int +rtl8168_change_mtu(struct net_device *dev, + int new_mtu) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ret = 0; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) + if (new_mtu < ETH_MIN_MTU) + return -EINVAL; + else if (new_mtu > tp->max_jumbo_frame_size) + new_mtu = tp->max_jumbo_frame_size; +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) + + dev->mtu = new_mtu; + + tp->eee.tx_lpi_timer = dev->mtu + ETH_HLEN + 0x20; + + if (!netif_running(dev)) + goto out; + + rtl8168_down(dev); + + rtl8168_set_rxbufsize(tp, dev); + + ret = rtl8168_init_ring(dev); + + if (ret < 0) + goto err_out; + +#ifdef CONFIG_R8168_NAPI + rtl8168_enable_napi(tp); +#endif//CONFIG_R8168_NAPI + + if (tp->link_ok(dev)) + rtl8168_link_on_patch(dev); + else + rtl8168_link_down_patch(dev); + + //mod_timer(&tp->esd_timer, jiffies + RTL8168_ESD_TIMEOUT); + //mod_timer(&tp->link_timer, jiffies + RTL8168_LINK_TIMEOUT); +out: +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0) + netdev_update_features(dev); +#endif + +err_out: + return ret; +} + +static inline void +rtl8168_make_unusable_by_asic(struct RxDesc *desc) +{ + desc->addr = 0x0badbadbadbadbadull; + desc->opts1 &= ~cpu_to_le32(DescOwn | RsvdMask); +} + +static void +rtl8168_free_rx_skb(struct rtl8168_private *tp, + struct rtl8168_rx_ring *ring, + struct sk_buff **sk_buff, + struct RxDesc *desc, + const u32 cur_rx) +{ + struct pci_dev *pdev = tp->pci_dev; + + dma_unmap_single(&pdev->dev, ring->RxDescPhyAddr[cur_rx], tp->rx_buf_sz, + DMA_FROM_DEVICE); + dev_kfree_skb(*sk_buff); + *sk_buff = NULL; + rtl8168_make_unusable_by_asic(desc); +} + +void +rtl8168_mark_to_asic(struct RxDesc *desc, + u32 rx_buf_sz) +{ + u32 eor = le32_to_cpu(desc->opts1) & RingEnd; + + WRITE_ONCE(desc->opts1, cpu_to_le32(DescOwn | eor | rx_buf_sz)); +} + +static inline void +rtl8168_map_to_asic(struct RxDesc *desc, + struct rtl8168_rx_ring *ring, + dma_addr_t mapping, + u32 rx_buf_sz, + const u32 cur_rx) +{ + ring->RxDescPhyAddr[cur_rx] = mapping; + desc->addr = cpu_to_le64(mapping); + wmb(); + rtl8168_mark_to_asic(desc, rx_buf_sz); +} + +static int +rtl8168_alloc_rx_skb(struct rtl8168_private *tp, + struct rtl8168_rx_ring *ring, + struct sk_buff **sk_buff, + struct RxDesc *desc, + int rx_buf_sz, + const u32 cur_rx, + u8 in_intr) +{ + struct sk_buff *skb; + dma_addr_t mapping; + int ret = 0; + + if (in_intr) + skb = RTL_ALLOC_SKB_INTR(&tp->r8168napi[ring->index].napi, + rx_buf_sz + RTK_RX_ALIGN); + else + skb = dev_alloc_skb(rx_buf_sz + RTK_RX_ALIGN); + + if (unlikely(!skb)) + goto err_out; + + if (!in_intr || !R8168_USE_NAPI_ALLOC_SKB) + skb_reserve(skb, RTK_RX_ALIGN); + + mapping = dma_map_single(tp_to_dev(tp), skb->data, rx_buf_sz, + DMA_FROM_DEVICE); + if (unlikely(dma_mapping_error(tp_to_dev(tp), mapping))) { + if (unlikely(net_ratelimit())) + netif_err(tp, drv, tp->dev, "Failed to map RX DMA!\n"); + goto err_out; + } + + *sk_buff = skb; + rtl8168_map_to_asic(desc, ring, mapping, rx_buf_sz, cur_rx); +out: + return ret; + +err_out: + if (skb) + dev_kfree_skb(skb); + ret = -ENOMEM; + rtl8168_make_unusable_by_asic(desc); + goto out; +} + +static void +_rtl8168_rx_clear(struct rtl8168_private *tp, struct rtl8168_rx_ring *ring) +{ + int i; + + for (i = 0; i < tp->num_rx_desc; i++) { + if (ring->Rx_skbuff[i]) { + rtl8168_free_rx_skb(tp, + ring, + ring->Rx_skbuff + i, + rtl8168_get_rxdesc(tp, + tp->RxDescArray, + i, + ring->index), + i); + ring->Rx_skbuff[i] = NULL; + } + } +} + +void +rtl8168_rx_clear(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < tp->num_rx_rings; i++) + _rtl8168_rx_clear(tp, &tp->rx_ring[i]); +} + +static u32 +rtl8168_rx_fill(struct rtl8168_private *tp, + struct rtl8168_rx_ring *ring, + struct net_device *dev, + u32 start, + u32 end, + u8 in_intr) +{ + u32 cur; + + for (cur = start; end - cur > 0; cur++) { + int ret, i = cur % tp->num_rx_desc; + + if (ring->Rx_skbuff[i]) + continue; + + ret = rtl8168_alloc_rx_skb(tp, + ring, + ring->Rx_skbuff + i, + rtl8168_get_rxdesc(tp, + tp->RxDescArray, + i, ring->index), + tp->rx_buf_sz, + i, + in_intr); + if (ret < 0) + break; + } + return cur - start; +} + +static inline void +rtl8168_mark_as_last_descriptor(struct RxDesc *desc) +{ + desc->opts1 |= cpu_to_le32(RingEnd); +} + +static void +rtl8168_desc_addr_fill(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < tp->num_tx_rings; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + RTL_W32(tp, ring->tdsar_reg, ((u64)ring->TxPhyAddr & DMA_BIT_MASK(32))); + RTL_W32(tp, ring->tdsar_reg + 4, ((u64)ring->TxPhyAddr >> 32)); + } + +#ifdef ENABLE_LIB_SUPPORT + /* + * The lib tx q1 polling may be set after tx is disabled. If lib tx q1 + * is released, after enable tx, device will try to access invalid tx q1 + * desc base address. Set tx q1 desc base address to tx q0 desc base + * address to let device to access the valid address and clear tx q1 + * polling bit after enable tx. + */ + if (rtl8168_lib_tx_ring_released(tp)) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[0]; + u16 tdsar_reg = TxHDescStartAddrLow; + RTL_W32(tp, tdsar_reg, ((u64)ring->TxPhyAddr & DMA_BIT_MASK(32))); + RTL_W32(tp, tdsar_reg + 4, ((u64)ring->TxPhyAddr >> 32)); + } +#endif + + RTL_W32(tp, RxDescAddrLow, ((u64) tp->RxPhyAddr & DMA_BIT_MASK(32))); + RTL_W32(tp, RxDescAddrLow + 4, ((u64) tp->RxPhyAddr >> 32)); +} + +static void +rtl8168_tx_desc_init(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < tp->num_tx_rings; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + mem_clear(ring->TxDescArray, ring->TxDescAllocSize); + + ring->TxDescArray[ring->num_tx_desc - 1].opts1 = cpu_to_le32(RingEnd); + } +} + +static void +rtl8168_rx_desc_offset0_init(struct rtl8168_private *tp, int own) +{ + struct rtl8168_rx_ring *ring = &tp->rx_ring[0]; + struct RxDesc *desc; + int ownbit = 0; + int i; + + if (tp->RxDescArray == NULL) + return; + + if (own) + ownbit = DescOwn; + + for (i = 0; i < tp->num_rx_desc; i++) { + desc = rtl8168_get_rxdesc(tp, tp->RxDescArray, i, + ring->index); + if (i == (tp->num_rx_desc - 1)) + desc->opts1 = cpu_to_le32((ownbit | RingEnd) | (unsigned long)tp->rx_buf_sz); + else + desc->opts1 = cpu_to_le32(ownbit | (unsigned long)tp->rx_buf_sz); + } +} + +static void +rtl8168_rx_desc_init(struct rtl8168_private *tp) +{ + if (!tp->RxDescArray) + return; + + if (rtl8168_num_lib_rx_rings(tp) > 0) + return; + + mem_clear(tp->RxDescArray, tp->RxDescAllocSize); +} + +int +rtl8168_init_ring(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int i; + + rtl8168_init_ring_indexes(tp); + + rtl8168_tx_desc_init(tp); + rtl8168_rx_desc_init(tp); + + for (i = 0; i < tp->num_tx_rings; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + mem_clear(ring->tx_skb, sizeof(ring->tx_skb)); + } + + for (i = 0; i < tp->num_rx_rings; i++) { + struct rtl8168_rx_ring *ring = &tp->rx_ring[i]; + + mem_clear(ring->Rx_skbuff, sizeof(ring->Rx_skbuff)); + if (rtl8168_rx_fill(tp, ring, dev, 0, tp->num_rx_desc, 0) != tp->num_rx_desc) + goto err_out; + + rtl8168_mark_as_last_descriptor(rtl8168_get_rxdesc(tp, + tp->RxDescArray, + tp->num_rx_desc - 1, + ring->index)); + } + + + return 0; + +err_out: + rtl8168_rx_clear(tp); + return -ENOMEM; +} + +static void +rtl8168_unmap_tx_skb(struct pci_dev *pdev, + struct ring_info *tx_skb, + struct TxDesc *desc) +{ + unsigned int len = tx_skb->len; + + dma_unmap_single(&pdev->dev, le64_to_cpu(desc->addr), len, DMA_TO_DEVICE); + + desc->opts1 = cpu_to_le32(RTK_MAGIC_DEBUG_VALUE); + desc->opts2 = 0x00; + desc->addr = 0x00; + tx_skb->len = 0; +} + +static void +rtl8168_tx_clear_range(struct rtl8168_private *tp, + struct rtl8168_tx_ring *ring, + u32 start, + unsigned int n) +{ + unsigned int i; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) + struct net_device *dev = tp->dev; +#endif + + for (i = 0; i < n; i++) { + unsigned int entry = (start + i) % ring->num_tx_desc; + struct ring_info *tx_skb = ring->tx_skb + entry; + unsigned int len = tx_skb->len; + + if (len) { + struct sk_buff *skb = tx_skb->skb; + + rtl8168_unmap_tx_skb(tp->pci_dev, tx_skb, + ring->TxDescArray + entry); + if (skb) { + RTLDEV->stats.tx_dropped++; + dev_kfree_skb_any(skb); + tx_skb->skb = NULL; + } + } + } +} + +void +rtl8168_tx_clear(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < tp->num_tx_rings; i++) { + struct rtl8168_tx_ring *ring = &tp->tx_ring[i]; + rtl8168_tx_clear_range(tp, ring, ring->dirty_tx, ring->num_tx_desc); + ring->cur_tx = ring->dirty_tx = 0; + } +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +static void rtl8168_schedule_reset_work(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + set_bit(R8168_FLAG_TASK_RESET_PENDING, tp->task_flags); + schedule_delayed_work(&tp->reset_task, 4); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) +} + +static void rtl8168_schedule_esd_work(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + set_bit(R8168_FLAG_TASK_ESD_CHECK_PENDING, tp->task_flags); + schedule_delayed_work(&tp->esd_task, RTL8168_ESD_TIMEOUT); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) +} + +static void rtl8168_schedule_linkchg_work(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + set_bit(R8168_FLAG_TASK_LINKCHG_CHECK_PENDING, tp->task_flags); + schedule_delayed_work(&tp->linkchg_task, RTL8168_LINK_TIMEOUT); +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) +} + +#define rtl8168_cancel_schedule_reset_work(a) +#define rtl8168_cancel_schedule_esd_work(a) +#define rtl8168_cancel_schedule_linkchg_work(a) + +#else +static void rtl8168_schedule_reset_work(struct rtl8168_private *tp) +{ + set_bit(R8168_FLAG_TASK_RESET_PENDING, tp->task_flags); + schedule_delayed_work(&tp->reset_task, 4); +} + +static void rtl8168_cancel_schedule_reset_work(struct rtl8168_private *tp) +{ + struct work_struct *work = &tp->reset_task.work; + + if (!work->func) return; + + cancel_delayed_work_sync(&tp->reset_task); +} + +static void rtl8168_schedule_esd_work(struct rtl8168_private *tp) +{ + set_bit(R8168_FLAG_TASK_ESD_CHECK_PENDING, tp->task_flags); + schedule_delayed_work(&tp->esd_task, RTL8168_ESD_TIMEOUT); +} + +static void rtl8168_cancel_schedule_esd_work(struct rtl8168_private *tp) +{ + struct work_struct *work = &tp->esd_task.work; + + if (!work->func) return; + + cancel_delayed_work_sync(&tp->esd_task); +} + +static void rtl8168_schedule_linkchg_work(struct rtl8168_private *tp) +{ + set_bit(R8168_FLAG_TASK_LINKCHG_CHECK_PENDING, tp->task_flags); + schedule_delayed_work(&tp->linkchg_task, RTL8168_LINK_TIMEOUT); +} + +static void rtl8168_cancel_schedule_linkchg_work(struct rtl8168_private *tp) +{ + struct work_struct *work = &tp->linkchg_task.work; + + if (!work->func) return; + + cancel_delayed_work_sync(&tp->linkchg_task); +} +#endif + +static void rtl8168_init_all_schedule_work(struct rtl8168_private *tp) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + INIT_WORK(&tp->reset_task, rtl8168_reset_task, dev); + INIT_WORK(&tp->esd_task, rtl8168_esd_task, dev); + INIT_WORK(&tp->linkchg_task, rtl8168_linkchg_task, dev); +#else + INIT_DELAYED_WORK(&tp->reset_task, rtl8168_reset_task); + INIT_DELAYED_WORK(&tp->esd_task, rtl8168_esd_task); + INIT_DELAYED_WORK(&tp->linkchg_task, rtl8168_linkchg_task); +#endif +} + +static void rtl8168_cancel_all_schedule_work(struct rtl8168_private *tp) +{ + rtl8168_cancel_schedule_reset_work(tp); + rtl8168_cancel_schedule_esd_work(tp); + rtl8168_cancel_schedule_linkchg_work(tp); +} + +static void +rtl8168_wait_for_irq_complete(struct rtl8168_private *tp) +{ + if (tp->features & RTL_FEATURE_MSIX) { + int i; + for (i = 0; i < tp->irq_nvecs; i++) + synchronize_irq(tp->irq_tbl[i].vector); + } else { + synchronize_irq(tp->dev->irq); + } +} + +void +_rtl8168_wait_for_quiescence(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + /* Wait for any pending NAPI task to complete */ +#ifdef CONFIG_R8168_NAPI + rtl8168_disable_napi(tp); +#endif//CONFIG_R8168_NAPI + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,67) + /* Give a racing hard_start_xmit a few cycles to complete. */ + synchronize_net(); +#endif + rtl8168_irq_mask_and_ack(tp); + + rtl8168_wait_for_irq_complete(tp); +} + +static void +rtl8168_wait_for_quiescence(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + //suppress unused variable + (void)(tp); + + _rtl8168_wait_for_quiescence(dev); + +#ifdef CONFIG_R8168_NAPI + rtl8168_enable_napi(tp); +#endif //CONFIG_R8168_NAPI +} + +static int rtl8168_rx_nostuck(struct rtl8168_private *tp) +{ + int i, ret = 1; + for (i = 0; i < tp->num_rx_rings; i++) + ret &= (tp->rx_ring[i].dirty_rx == tp->rx_ring[i].cur_rx); + return ret; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +static void rtl8168_reset_task(void *_data) +{ + struct net_device *dev = _data; + struct rtl8168_private *tp = netdev_priv(dev); +#else +static void rtl8168_reset_task(struct work_struct *work) +{ + struct rtl8168_private *tp = + container_of(work, struct rtl8168_private, reset_task.work); + struct net_device *dev = tp->dev; +#endif + u32 budget = ~(u32)0; + int i; + + rtnl_lock(); + + if (!netif_running(dev) || + test_bit(R8168_FLAG_DOWN, tp->task_flags) || + !test_and_clear_bit(R8168_FLAG_TASK_RESET_PENDING, tp->task_flags)) + goto out_unlock; + + rtl8168_wait_for_quiescence(dev); + + for (i = 0; i < tp->num_rx_rings; i++) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[i], &budget); +#else + rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[i], budget); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + } + + netif_carrier_off(dev); + netif_tx_disable(dev); + rtl8168_hw_reset(dev); + + rtl8168_tx_clear(tp); + + if (rtl8168_rx_nostuck(tp)) { + rtl8168_rx_clear(tp); + rtl8168_init_ring(dev); + rtl8168_set_speed(dev, tp->autoneg, tp->speed, tp->duplex, tp->advertising); + } else { + if (unlikely(net_ratelimit())) { + struct rtl8168_private *tp = netdev_priv(dev); + + if (netif_msg_intr(tp)) { + printk(PFX KERN_EMERG + "%s: Rx buffers shortage\n", dev->name); + } + } + rtl8168_schedule_reset_work(tp); + } + +out_unlock: + rtnl_unlock(); +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +static void rtl8168_esd_task(void *_data) +{ + struct net_device *dev = _data; + struct rtl8168_private *tp = netdev_priv(dev); +#else +static void rtl8168_esd_task(struct work_struct *work) +{ + struct rtl8168_private *tp = + container_of(work, struct rtl8168_private, esd_task.work); + struct net_device *dev = tp->dev; +#endif + rtnl_lock(); + + if (!netif_running(dev) || + test_bit(R8168_FLAG_DOWN, tp->task_flags) || + !test_and_clear_bit(R8168_FLAG_TASK_ESD_CHECK_PENDING, tp->task_flags)) + goto out_unlock; + + rtl8168_esd_checker(tp); + + rtl8168_schedule_esd_work(tp); + +out_unlock: + rtnl_unlock(); +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) +static void rtl8168_linkchg_task(void *_data) +{ + struct net_device *dev = _data; + //struct rtl8168_private *tp = netdev_priv(dev); +#else +static void rtl8168_linkchg_task(struct work_struct *work) +{ + struct rtl8168_private *tp = + container_of(work, struct rtl8168_private, linkchg_task.work); + struct net_device *dev = tp->dev; +#endif + rtnl_lock(); + + if (!netif_running(dev) || + test_bit(R8168_FLAG_DOWN, tp->task_flags) || + !test_and_clear_bit(R8168_FLAG_TASK_LINKCHG_CHECK_PENDING, tp->task_flags)) + goto out_unlock; + + rtl8168_check_link_status(dev); + + rtl8168_schedule_linkchg_work(tp); + +out_unlock: + rtnl_unlock(); +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) +static void +rtl8168_tx_timeout(struct net_device *dev, unsigned int txqueue) +#else +static void +rtl8168_tx_timeout(struct net_device *dev) +#endif +{ + struct rtl8168_private *tp = netdev_priv(dev); + + /* Let's wait a bit while any (async) irq lands on */ + rtl8168_schedule_reset_work(tp); +} + +static u32 +rtl8168_get_txd_opts1(struct rtl8168_tx_ring *ring, + u32 opts1, + u32 len, + unsigned int entry) +{ + u32 status = opts1 | len; + + if (entry == ring->num_tx_desc - 1) + status |= RingEnd; + + return status; +} + +static int +rtl8168_xmit_frags(struct rtl8168_private *tp, + struct rtl8168_tx_ring *ring, + struct sk_buff *skb, + const u32 *opts) +{ + struct skb_shared_info *info = skb_shinfo(skb); + unsigned int cur_frag, entry; + struct TxDesc *txd = NULL; + const unsigned char nr_frags = info->nr_frags; + + entry = ring->cur_tx; + for (cur_frag = 0; cur_frag < nr_frags; cur_frag++) { + skb_frag_t *frag = info->frags + cur_frag; + dma_addr_t mapping; + u32 status, len; + void *addr; + + entry = (entry + 1) % ring->num_tx_desc; + + txd = ring->TxDescArray + entry; +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) + len = frag->size; + addr = ((void *) page_address(frag->page)) + frag->page_offset; +#else + len = skb_frag_size(frag); + addr = skb_frag_address(frag); +#endif + mapping = dma_map_single(tp_to_dev(tp), addr, len, DMA_TO_DEVICE); + + if (unlikely(dma_mapping_error(tp_to_dev(tp), mapping))) { + if (unlikely(net_ratelimit())) + netif_err(tp, drv, tp->dev, + "Failed to map TX fragments DMA!\n"); + goto err_out; + } + + /* anti gcc 2.95.3 bugware (sic) */ + status = rtl8168_get_txd_opts1(ring, opts[0], len, entry); + if (cur_frag == (nr_frags - 1)) { + ring->tx_skb[entry].skb = skb; + status |= LastFrag; + } + + txd->addr = cpu_to_le64(mapping); + + ring->tx_skb[entry].len = len; + + txd->opts2 = cpu_to_le32(opts[1]); + wmb(); + txd->opts1 = cpu_to_le32(status); + } + + return cur_frag; + +err_out: + rtl8168_tx_clear_range(tp, ring, ring->cur_tx + 1, cur_frag); + return -EIO; +} + +static inline +__be16 get_protocol(struct sk_buff *skb) +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37) + return vlan_get_protocol(skb); +#else + __be16 protocol; + + if (skb->protocol == htons(ETH_P_8021Q)) + protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto; + else + protocol = skb->protocol; + + return protocol; +#endif +} + +static bool rtl8168_skb_pad(struct sk_buff *skb) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) + if (skb_padto(skb, ETH_ZLEN)) + return false; + skb_put(skb, ETH_ZLEN - skb->len); + return true; +#else + return !eth_skb_pad(skb); +#endif +} + +static inline bool +rtl8168_tx_csum(struct sk_buff *skb, + struct net_device *dev, + u32 *opts) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 csum_cmd = 0; + u8 sw_calc_csum = FALSE; + + if (skb->ip_summed == CHECKSUM_PARTIAL) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) + const struct iphdr *ip = skb->nh.iph; + + if (dev->features & NETIF_F_IP_CSUM) { + if (ip->protocol == IPPROTO_TCP) + csum_cmd = tp->tx_ip_csum_cmd | tp->tx_tcp_csum_cmd; + else if (ip->protocol == IPPROTO_UDP) + csum_cmd = tp->tx_ip_csum_cmd | tp->tx_udp_csum_cmd; + else if (ip->protocol == IPPROTO_IP) + csum_cmd = tp->tx_ip_csum_cmd; + } +#else + u8 ip_protocol = IPPROTO_RAW; + + switch (get_protocol(skb)) { + case __constant_htons(ETH_P_IP): + if (dev->features & NETIF_F_IP_CSUM) { + ip_protocol = ip_hdr(skb)->protocol; + csum_cmd = tp->tx_ip_csum_cmd; + } + break; + case __constant_htons(ETH_P_IPV6): + if (dev->features & NETIF_F_IPV6_CSUM) { + if (skb_transport_offset(skb) > 0 && skb_transport_offset(skb) <= TCPHO_MAX) { + ip_protocol = ipv6_hdr(skb)->nexthdr; + csum_cmd = tp->tx_ipv6_csum_cmd; + csum_cmd |= skb_transport_offset(skb) << TCPHO_SHIFT; + } + } + break; + default: + if (unlikely(net_ratelimit())) + dprintk("checksum_partial proto=%x!\n", skb->protocol); + break; + } + + if (ip_protocol == IPPROTO_TCP) + csum_cmd |= tp->tx_tcp_csum_cmd; + else if (ip_protocol == IPPROTO_UDP) + csum_cmd |= tp->tx_udp_csum_cmd; +#endif + if (csum_cmd == 0) { + sw_calc_csum = TRUE; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + WARN_ON(1); /* we need a WARN() */ +#endif + } + } + + if (csum_cmd != 0) { + if (tp->ShortPacketSwChecksum && skb->len < ETH_ZLEN) { + sw_calc_csum = TRUE; + if (!rtl8168_skb_pad(skb)) + return false; + } else { + if ((tp->mcfg == CFG_METHOD_1) || (tp->mcfg == CFG_METHOD_2) || (tp->mcfg == CFG_METHOD_3)) + opts[0] |= csum_cmd; + else + opts[1] |= csum_cmd; + } + } + + if (tp->UseSwPaddingShortPkt && skb->len < ETH_ZLEN) + if (!rtl8168_skb_pad(skb)) + return false; + + if (sw_calc_csum) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7) + skb_checksum_help(&skb, 0); +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) + skb_checksum_help(skb, 0); +#else + skb_checksum_help(skb); +#endif + } + + return true; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) +/* r8169_csum_workaround() + * The hw limits the value the transport offset. When the offset is out of the + * range, calculate the checksum by sw. + */ +static void r8168_csum_workaround(struct rtl8168_private *tp, + struct sk_buff *skb) +{ + if (skb_shinfo(skb)->gso_size) { + netdev_features_t features = tp->dev->features; + struct sk_buff *segs, *nskb; + + features &= ~(NETIF_F_SG | NETIF_F_IPV6_CSUM | NETIF_F_TSO6); + segs = skb_gso_segment(skb, features); + if (IS_ERR(segs) || !segs) + goto drop; + + do { + nskb = segs; + segs = segs->next; + nskb->next = NULL; + rtl8168_start_xmit(nskb, tp->dev); + } while (segs); + + dev_consume_skb_any(skb); + } else if (skb->ip_summed == CHECKSUM_PARTIAL) { + if (skb_checksum_help(skb) < 0) + goto drop; + + rtl8168_start_xmit(skb, tp->dev); + } else { + struct net_device_stats *stats; + +drop: + stats = &tp->dev->stats; + stats->tx_dropped++; + dev_kfree_skb_any(skb); + } +} + +/* msdn_giant_send_check() + * According to the document of microsoft, the TCP Pseudo Header excludes the + * packet length for IPv6 TCP large packets. + */ +static int msdn_giant_send_check(struct sk_buff *skb) +{ + const struct ipv6hdr *ipv6h; + struct tcphdr *th; + int ret; + + ret = skb_cow_head(skb, 0); + if (ret) + return ret; + + ipv6h = ipv6_hdr(skb); + th = tcp_hdr(skb); + + th->check = 0; + th->check = ~tcp_v6_check(0, &ipv6h->saddr, &ipv6h->daddr, 0); + + return ret; +} +#endif + +static bool rtl8168_tx_slots_avail(struct rtl8168_private *tp, + struct rtl8168_tx_ring *ring) +{ + unsigned int slots_avail = READ_ONCE(ring->dirty_tx) + ring->num_tx_desc + - READ_ONCE(ring->cur_tx); + + /* A skbuff with nr_frags needs nr_frags+1 entries in the tx queue */ + return slots_avail > MAX_SKB_FRAGS; +} + +static netdev_tx_t +rtl8168_start_xmit(struct sk_buff *skb, + struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + unsigned int entry; + struct TxDesc *txd; + dma_addr_t mapping; + u32 len; + u32 opts[2]; + netdev_tx_t ret = NETDEV_TX_OK; + unsigned long large_send; + int frags; + const u16 queue_mapping = skb_get_queue_mapping(skb); + struct rtl8168_tx_ring *ring; + bool stop_queue; + + assert(queue_mapping < tp->num_tx_rings); + + ring = &tp->tx_ring[queue_mapping]; + + if (unlikely(!rtl8168_tx_slots_avail(tp, ring))) { + if (netif_msg_drv(tp)) { + printk(KERN_ERR + "%s: BUG! Tx Ring full when queue awake!\n", + dev->name); + } + goto err_stop; + } + + entry = ring->cur_tx % ring->num_tx_desc; + txd = ring->TxDescArray + entry; + + if (unlikely(le32_to_cpu(txd->opts1) & DescOwn)) { + if (netif_msg_drv(tp)) { + printk(KERN_ERR + "%s: BUG! Tx Desc is own by hardware!\n", + dev->name); + } + goto err_stop; + } + + opts[0] = DescOwn; + opts[1] = rtl8168_tx_vlan_tag(tp, skb); + + large_send = 0; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + if (dev->features & (NETIF_F_TSO | NETIF_F_TSO6)) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) + u32 mss = skb_shinfo(skb)->tso_size; +#else + u32 mss = skb_shinfo(skb)->gso_size; +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) + + /* TCP Segmentation Offload (or TCP Large Send) */ + if (mss) { + if ((tp->mcfg == CFG_METHOD_1) || + (tp->mcfg == CFG_METHOD_2) || + (tp->mcfg == CFG_METHOD_3)) { + opts[0] |= LargeSend | (min(mss, MSS_MAX) << 16); + large_send = 1; + } else { + switch (get_protocol(skb)) { + case __constant_htons(ETH_P_IP): + if (skb_transport_offset(skb) <= GTTCPHO_MAX) { + opts[0] |= GiantSendv4; + opts[0] |= skb_transport_offset(skb) << GTTCPHO_SHIFT; + opts[1] |= min(mss, MSS_MAX) << 18; + large_send = 1; + } + break; + case __constant_htons(ETH_P_IPV6): +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) + if (msdn_giant_send_check(skb)) { + r8168_csum_workaround(tp, skb); + goto out; + } +#endif + if (skb_transport_offset(skb) <= GTTCPHO_MAX) { + opts[0] |= GiantSendv6; + opts[0] |= skb_transport_offset(skb) << GTTCPHO_SHIFT; + opts[1] |= min(mss, MSS_MAX) << 18; + large_send = 1; + } + break; + default: + if (unlikely(net_ratelimit())) + dprintk("tso proto=%x!\n", skb->protocol); + break; + } + } + + if (large_send == 0) + goto err_dma_0; + } + } +#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + + if (large_send == 0) { + if (unlikely(!rtl8168_tx_csum(skb, dev, opts))) + goto err_dma_0; + } + + frags = rtl8168_xmit_frags(tp, ring, skb, opts); + if (unlikely(frags < 0)) + goto err_dma_0; + if (frags) { + len = skb_headlen(skb); + opts[0] |= FirstFrag; + } else { + len = skb->len; + + ring->tx_skb[entry].skb = skb; + + opts[0] |= FirstFrag | LastFrag; + } + + opts[0] = rtl8168_get_txd_opts1(ring, opts[0], len, entry); + mapping = dma_map_single(tp_to_dev(tp), skb->data, len, DMA_TO_DEVICE); + if (unlikely(dma_mapping_error(tp_to_dev(tp), mapping))) { + if (unlikely(net_ratelimit())) + netif_err(tp, drv, dev, "Failed to map TX DMA!\n"); + goto err_dma_1; + } + ring->tx_skb[entry].len = len; + txd->addr = cpu_to_le64(mapping); + txd->opts2 = cpu_to_le32(opts[1]); + wmb(); + txd->opts1 = cpu_to_le32(opts[0]); + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) + dev->trans_start = jiffies; +#else + skb_tx_timestamp(skb); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0) + + /* rtl_tx needs to see descriptor changes before updated ring->cur_tx */ + smp_wmb(); + + WRITE_ONCE(ring->cur_tx, ring->cur_tx + frags + 1); + + stop_queue = !rtl8168_tx_slots_avail(tp, ring); + if (unlikely(stop_queue)) { + /* Avoid wrongly optimistic queue wake-up: rtl_tx thread must + * not miss a ring update when it notices a stopped queue. + */ + smp_wmb(); + netif_stop_subqueue(dev, queue_mapping); + } + + rtl8168_doorbell(ring); /* set polling bit */ + + if (unlikely(stop_queue)) { + /* Sync with rtl_tx: + * - publish queue status and cur_tx ring index (write barrier) + * - refresh dirty_tx ring index (read barrier). + * May the current thread have a pessimistic view of the ring + * status and forget to wake up queue, a racing rtl_tx thread + * can't. + */ + smp_mb(); + if (rtl8168_tx_slots_avail(tp, ring)) + netif_start_subqueue(dev, queue_mapping); + } + +out: + return ret; +err_dma_1: + ring->tx_skb[entry].skb = NULL; + rtl8168_tx_clear_range(tp, ring, ring->cur_tx + 1, frags); +err_dma_0: + RTLDEV->stats.tx_dropped++; + dev_kfree_skb_any(skb); + ret = NETDEV_TX_OK; + goto out; +err_stop: + netif_tx_disable(dev); + ret = NETDEV_TX_BUSY; + RTLDEV->stats.tx_dropped++; + goto out; +} + +static void +rtl8168_tx_interrupt(struct rtl8168_tx_ring *ring) +{ + struct rtl8168_private *tp = ring->priv; + struct net_device *dev = tp->dev; + unsigned int dirty_tx, tx_left; + + assert(dev != NULL); + assert(tp != NULL); + +#ifdef ENABLE_LIB_SUPPORT + if (ring->index > 0) { + rtl8168_lib_tx_interrupt(tp); + return; + } +#endif + dirty_tx = ring->dirty_tx; + smp_rmb(); + tx_left = READ_ONCE(ring->cur_tx) - dirty_tx; + tp->dynamic_aspm_packet_count += tx_left; + + while (tx_left > 0) { + unsigned int entry = dirty_tx % ring->num_tx_desc; + struct ring_info *tx_skb = ring->tx_skb + entry; + u32 len = tx_skb->len; + u32 status; + + rmb(); + status = le32_to_cpu(ring->TxDescArray[entry].opts1); + if (status & DescOwn) + break; + + RTLDEV->stats.tx_bytes += len; + RTLDEV->stats.tx_packets++; + + rtl8168_unmap_tx_skb(tp->pci_dev, + tx_skb, + ring->TxDescArray + entry); + + if (tx_skb->skb!=NULL) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) + dev_consume_skb_any(tx_skb->skb); +#else + dev_kfree_skb_any(tx_skb->skb); +#endif + tx_skb->skb = NULL; + } + dirty_tx++; + tx_left--; + } + + tp->dynamic_aspm_packet_count -= tx_left; + + if (ring->dirty_tx != dirty_tx) { + WRITE_ONCE(ring->dirty_tx, dirty_tx); + smp_wmb(); + if (netif_queue_stopped(dev) && + (rtl8168_tx_slots_avail(tp, ring))) { + netif_start_subqueue(dev, ring->index); + } + smp_rmb(); + if (ring->cur_tx != dirty_tx) + rtl8168_doorbell(ring); + } +} + +static void +rtl8168_tx_all_interrupt(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < rtl8168_tot_tx_rings(tp); i++) + rtl8168_tx_interrupt(&tp->tx_ring[i]); +} + +static inline int +rtl8168_fragmented_frame(u32 status) +{ + return (status & (FirstFrag | LastFrag)) != (FirstFrag | LastFrag); +} + +static inline void +rtl8168_rx_csum(struct rtl8168_private *tp, + struct sk_buff *skb, + struct RxDesc *desc) +{ + u32 opts1 = le32_to_cpu(desc->opts1); + u32 opts2 = le32_to_cpu(desc->opts2); + + if ((tp->mcfg == CFG_METHOD_1) || + (tp->mcfg == CFG_METHOD_2) || + (tp->mcfg == CFG_METHOD_3)) { + u32 status = opts1 & RxProtoMask; + + /* rx csum offload for RTL8168B/8111B */ + if (((status == RxProtoTCP) && !(opts1 & (RxTCPF | RxIPF))) || + ((status == RxProtoUDP) && !(opts1 & (RxUDPF | RxIPF)))) + skb->ip_summed = CHECKSUM_UNNECESSARY; + else + skb->ip_summed = CHECKSUM_NONE; + } else { + /* rx csum offload for RTL8168C/8111C and RTL8168CP/8111CP */ + if (((opts2 & RxV4F) && !(opts1 & RxIPF)) || (opts2 & RxV6F)) { + if (((opts1 & RxTCPT) && !(opts1 & RxTCPF)) || + ((opts1 & RxUDPT) && !(opts1 & RxUDPF))) + skb->ip_summed = CHECKSUM_UNNECESSARY; + else + skb->ip_summed = CHECKSUM_NONE; + } else + skb->ip_summed = CHECKSUM_NONE; + } +} + +/* +static inline int +rtl8168_try_rx_copy(struct rtl8168_private *tp, + struct rtl8168_rx_ring *ring, + struct sk_buff **sk_buff, + int pkt_size, + struct RxDesc *desc, + int rx_buf_sz) +{ + int ret = -1; + + struct sk_buff *skb; + + skb = RTL_ALLOC_SKB_INTR(&tp->r8168napi[ring->index].napi, + pkt_size + RTK_RX_ALIGN); + if (skb) { + u8 *data; + + data = sk_buff[0]->data; + skb_reserve(skb, RTK_RX_ALIGN); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,37) + prefetch(data - RTK_RX_ALIGN); +#endif + eth_copy_and_sum(skb, data, pkt_size, 0); + *sk_buff = skb; + rtl8168_mark_to_asic(desc, rx_buf_sz); + ret = 0; + } + + return ret; +} +*/ + +static inline void +rtl8168_rx_skb(struct rtl8168_private *tp, + struct sk_buff *skb, + u32 ring_index) +{ +#ifdef CONFIG_R8168_NAPI +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) + netif_receive_skb(skb); +#else + napi_gro_receive(&tp->r8168napi[ring_index].napi, skb); +#endif +#else + netif_rx(skb); +#endif +} + +static int +rtl8168_rx_interrupt(struct net_device *dev, + struct rtl8168_private *tp, + struct rtl8168_rx_ring *ring, + napi_budget budget) +{ + unsigned int cur_rx, rx_left; + unsigned int count = 0; + u32 ring_index = ring->index; + unsigned int entry; + struct RxDesc *desc; + u32 status; + u32 rx_quota; + u64 rx_buf_phy_addr; + + assert(dev != NULL); + assert(tp != NULL); + + if (!tp->RxDescArray) + goto rx_out; + +#ifdef ENABLE_LIB_SUPPORT + if (ring->index > 0) { + rtl8168_lib_rx_interrupt(tp); + goto rx_out; + } +#endif + rx_quota = RTL_RX_QUOTA(budget); + cur_rx = ring->cur_rx; + rx_left = tp->num_rx_desc + ring->dirty_rx - cur_rx; + rx_left = rtl8168_rx_quota(rx_left, (u32)rx_quota); + + for (; rx_left > 0; rx_left--, cur_rx++) { + int pkt_size; + const void *rx_buf; + struct sk_buff *skb; + + entry = cur_rx % tp->num_rx_desc; + desc = rtl8168_get_rxdesc(tp, tp->RxDescArray, entry, ring_index); + status = le32_to_cpu(desc->opts1); + if (status & DescOwn) + break; + + rmb(); + + if (unlikely(status & RxRES)) { + if (netif_msg_rx_err(tp)) { + printk(KERN_INFO + "%s: Rx ERROR. status = %08x\n", + dev->name, status); + } + + RTLDEV->stats.rx_errors++; + + if (status & (RxRWT | RxRUNT)) + RTLDEV->stats.rx_length_errors++; + if (status & RxCRC) + RTLDEV->stats.rx_crc_errors++; + + if (!(dev->features & NETIF_F_RXALL)) + goto release_descriptor; + } + + pkt_size = status & 0x00003fff; + if (likely(!(dev->features & NETIF_F_RXFCS))) + pkt_size -= ETH_FCS_LEN; + + /* + * The driver does not support incoming fragmented + * frames. They are seen as a symptom of over-mtu + * sized frames. + */ + if (unlikely(rtl8168_fragmented_frame(status)) || + unlikely(pkt_size > tp->rx_buf_sz)) { + RTLDEV->stats.rx_dropped++; + RTLDEV->stats.rx_length_errors++; + goto release_descriptor; + } + + skb = RTL_ALLOC_SKB_INTR(&tp->r8168napi[ring_index].napi, pkt_size + RTK_RX_ALIGN); + if (!skb) { + RTLDEV->stats.rx_dropped++; + RTLDEV->stats.rx_length_errors++; + //netdev_err(tp->dev, "Failed to allocate RX skb!\n"); + goto release_descriptor; + } + + rx_buf_phy_addr = ring->RxDescPhyAddr[entry]; + dma_sync_single_for_cpu(tp_to_dev(tp), + rx_buf_phy_addr, tp->rx_buf_sz, + DMA_FROM_DEVICE); + + rx_buf = ring->Rx_skbuff[entry]->data; + if (!R8168_USE_NAPI_ALLOC_SKB) + skb_reserve(skb, RTK_RX_ALIGN); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,37) + prefetch(rx_buf); +#endif + eth_copy_and_sum(skb, rx_buf, pkt_size, 0); + + dma_sync_single_for_device(tp_to_dev(tp), rx_buf_phy_addr, + tp->rx_buf_sz, DMA_FROM_DEVICE); + +#ifdef ENABLE_RSS_SUPPORT + rtl8168_rx_hash(tp, (struct RxDescV2 *)desc, skb); +#endif + if (tp->cp_cmd & RxChkSum) + rtl8168_rx_csum(tp, skb, desc); + + skb->dev = dev; + skb_put(skb, pkt_size); + skb->protocol = eth_type_trans(skb, dev); + + if (skb->pkt_type == PACKET_MULTICAST) + RTLDEV->stats.multicast++; + + if (rtl8168_rx_vlan_skb(tp, desc, skb) < 0) + rtl8168_rx_skb(tp, skb, ring_index); +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0) + dev->last_rx = jiffies; +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0) + RTLDEV->stats.rx_bytes += pkt_size; + RTLDEV->stats.rx_packets++; + +release_descriptor: + rtl8168_mark_to_asic(desc, tp->rx_buf_sz); + } + + count = cur_rx - ring->cur_rx; + ring->cur_rx = cur_rx; + ring->dirty_rx += count; + + tp->dynamic_aspm_packet_count += count; + +rx_out: + return count; +} + +/* + *The interrupt handler does all of the Rx thread work and cleans up after + *the Tx thread. + */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) +static irqreturn_t rtl8168_interrupt(int irq, void *dev_instance, struct pt_regs *regs) +#else +static irqreturn_t rtl8168_interrupt(int irq, void *dev_instance) +#endif +{ + struct r8168_napi *r8168napi = dev_instance; + struct rtl8168_private *tp = r8168napi->priv; + struct net_device *dev = tp->dev; + u8 other_q_status = 0; + int handled = 0; + int status; + int i; + + do { + status = RTL_R16(tp, tp->isr_reg[0]); +#ifdef ENABLE_RSS_SUPPORT + if (R8168_MULTI_RX_Q(tp)) { + for (i=1; iisr_reg[i]); + } +#endif + if (!(tp->features & (RTL_FEATURE_MSI | RTL_FEATURE_MSIX))) { + /* hotplug/major error/no more work/shared irq */ + if ((status == 0xFFFF) || (!status && !other_q_status)) + break; + + if (!(status & (tp->intr_mask | tp->timer_intr_mask)) && + !(other_q_status & other_q_intr_mask)) + break; + } + + handled = 1; + + rtl8168_disable_interrupt(tp); + rtl8168_disable_lib_interrupt(tp); + + switch (tp->mcfg) { + case CFG_METHOD_9 ... CFG_METHOD_37: + /* RX_OVERFLOW RE-START mechanism now HW handles it automatically*/ + rtl8168_clear_isr_by_vector(tp, 0, status&~RxFIFOOver); + break; + default: + rtl8168_clear_isr_by_vector(tp, 0, status); + break; + } + + //Work around for rx fifo overflow + if (unlikely(status & RxFIFOOver)) { + if (tp->mcfg == CFG_METHOD_1) { + netif_tx_disable(dev); + udelay(300); + rtl8168_hw_reset(dev); + rtl8168_tx_clear(tp); + rtl8168_rx_clear(tp); + rtl8168_init_ring(dev); + rtl8168_hw_config(dev); + rtl8168_hw_start(dev); + netif_tx_wake_all_queues(dev); + } + tp->rx_fifo_of++; + } + + if (other_q_status) { + for (i=1; iDASH ) { + if (HW_DASH_SUPPORT_TYPE_2(tp) || HW_DASH_SUPPORT_TYPE_3(tp)) { + u8 DashIntType2Status; + + if (status & ISRIMR_DASH_INTR_CMAC_RESET) + tp->CmacResetIntr = TRUE; + + DashIntType2Status = RTL_CMAC_R8(tp, CMAC_IBISR0); + if (DashIntType2Status & ISRIMR_DASH_TYPE2_ROK) { + tp->RcvFwDashOkEvt = TRUE; + } + if (DashIntType2Status & ISRIMR_DASH_TYPE2_TOK) { + tp->SendFwHostOkEvt = TRUE; + } + if (DashIntType2Status & ISRIMR_DASH_TYPE2_RX_DISABLE_IDLE) { + tp->DashFwDisableRx = TRUE; + } + + RTL_CMAC_W8(tp, CMAC_IBISR0, DashIntType2Status); + } else { + if (status & ISRIMR_DP_REQSYS_OK) { + tp->RcvFwReqSysOkEvt = TRUE; + } + if (status & ISRIMR_DP_DASH_OK) { + tp->RcvFwDashOkEvt = TRUE; + } + if (status & ISRIMR_DP_HOST_OK) { + tp->SendFwHostOkEvt = TRUE; + } + } + } +#endif + +#ifdef CONFIG_R8168_NAPI + if ((status & tp->intr_mask) || + (other_q_status & other_q_intr_mask) || + tp->keep_intr_cnt-- > 0) { + if ((status & tp->intr_mask) || + (other_q_status & other_q_intr_mask)) + tp->keep_intr_cnt = RTK_KEEP_INTERRUPT_COUNT; + + if (likely(RTL_NETIF_RX_SCHEDULE_PREP(dev, &tp->r8168napi[0].napi))) + __RTL_NETIF_RX_SCHEDULE(dev, &tp->r8168napi[0].napi); + else if (netif_msg_intr(tp)) + printk(KERN_INFO "%s: interrupt %04x in poll\n", + dev->name, status); + } else { + tp->keep_intr_cnt = RTK_KEEP_INTERRUPT_COUNT; + rtl8168_switch_to_hw_interrupt(tp); + } +#else + if ((status & tp->intr_mask) || + (other_q_status & other_q_intr_mask) || + tp->keep_intr_cnt-- > 0) { + u32 const max_rx_queue = + (other_q_status & other_q_intr_mask) > 0 ? + rtl8168_tot_rx_rings(tp) : 1; + u32 budget = ~(u32)0; + + if ((status & tp->intr_mask) || + (other_q_status & other_q_intr_mask)) + tp->keep_intr_cnt = RTK_KEEP_INTERRUPT_COUNT; + + rtl8168_tx_all_interrupt(tp); + + for (i = 0; i < max_rx_queue; i++) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[i], &budget); +#else + rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[i], budget); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + } + +#ifdef ENABLE_DASH_SUPPORT + if ( tp->DASH ) { + struct net_device *dev = tp->dev; + + HandleDashInterrupt(dev); + } +#endif + + rtl8168_switch_to_timer_interrupt(tp); + } else { + tp->keep_intr_cnt = RTK_KEEP_INTERRUPT_COUNT; + rtl8168_switch_to_hw_interrupt(tp); + } +#endif + + } while (false); + + return IRQ_RETVAL(handled); +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) +static irqreturn_t rtl8168_interrupt_msix(int irq, void *dev_instance, struct pt_regs *regs) +#else +static irqreturn_t rtl8168_interrupt_msix(int irq, void *dev_instance) +#endif +{ + struct r8168_napi *r8168napi = dev_instance; + struct rtl8168_private *tp = r8168napi->priv; + struct net_device *dev = tp->dev; + int message_id = r8168napi->index; +#ifndef CONFIG_R8168_NAPI + u32 budget = ~(u32)0; +#endif + + do { +#if defined(RTL_USE_NEW_INTR_API) + if (!tp->irq_tbl[message_id].requested) + break; +#endif + /* + * Other rx queue may incur interrupt due to rdu. + * Skip its interrupt here or its queue will be initialized + * incorrectly. + */ + if (message_id >= tp->num_rx_rings) + break; + +#ifdef CONFIG_R8168_NAPI + if (likely(RTL_NETIF_RX_SCHEDULE_PREP(dev, &r8168napi->napi))) { + rtl8168_disable_interrupt_by_vector(tp, message_id); + __RTL_NETIF_RX_SCHEDULE(dev, &r8168napi->napi); + } else if (netif_msg_intr(tp)) + printk(KERN_INFO "%s: interrupt message id %d in poll_msix\n", + dev->name, message_id); + rtl8168_self_clear_isr_by_vector(tp, message_id); +#else + if (message_id == 0) + rtl8168_tx_all_interrupt(tp); + + if (message_id < tp->num_rx_rings) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[message_id], &budget); +#else + rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[message_id], budget); +#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) + } + + rtl8168_enable_interrupt_by_vector(tp, message_id); +#endif + + } while (false); + + return IRQ_HANDLED; +} + +#ifdef CONFIG_R8168_NAPI +static int rtl8168_poll_vector(napi_ptr napi, napi_budget budget, bool all_rx_q) +{ + struct r8168_napi *r8168napi = RTL_GET_PRIV(napi, struct r8168_napi); + struct rtl8168_private *tp = r8168napi->priv; + const int message_id = r8168napi->index; + RTL_GET_NETDEV(tp) + unsigned int work_to_do = RTL_NAPI_QUOTA(budget, dev); + unsigned int work_done = 0; + int i; + + if (message_id == 0) + rtl8168_tx_all_interrupt(tp); + + if (all_rx_q) + for (i = 0; i < tp->num_rx_rings; i++) + work_done += rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[i], budget); + else + work_done += rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[message_id], budget); + + RTL_NAPI_QUOTA_UPDATE(dev, work_done, budget); + + if (work_done < work_to_do) { +#ifdef ENABLE_DASH_SUPPORT + if (message_id == 0) { + if ( tp->DASH ) { + struct net_device *dev = tp->dev; + + HandleDashInterrupt(dev); + } + } +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + if (RTL_NETIF_RX_COMPLETE(dev, napi, work_done) == FALSE) + return RTL_NAPI_RETURN_VALUE; +#else + RTL_NETIF_RX_COMPLETE(dev, napi, work_done); +#endif + /* + * 20040426: the barrier is not strictly required but the + * behavior of the irq handler could be less predictable + * without it. Btw, the lack of flush for the posted pci + * write is safe - FR + */ + smp_wmb(); + //if (message_id == 0) + // rtl8168_switch_to_timer_interrupt(tp); + //else + rtl8168_enable_interrupt_by_vector(tp, message_id); + } + + return RTL_NAPI_RETURN_VALUE; +} + +static int rtl8168_poll(napi_ptr napi, napi_budget budget) +{ + return rtl8168_poll_vector(napi, budget, 1); +} + +static int rtl8168_poll_msix_ring(napi_ptr napi, napi_budget budget) +{ + return rtl8168_poll_vector(napi, budget, 0); +} +static int rtl8168_poll_msix_rx(napi_ptr napi, napi_budget budget) +{ + struct r8168_napi *r8168napi = RTL_GET_PRIV(napi, struct r8168_napi); + struct rtl8168_private *tp = r8168napi->priv; + const int message_id = r8168napi->index; + RTL_GET_NETDEV(tp) + unsigned int work_to_do = RTL_NAPI_QUOTA(budget, dev); + unsigned int work_done = 0; + + work_done += rtl8168_rx_interrupt(dev, tp, &tp->rx_ring[message_id], budget); + + RTL_NAPI_QUOTA_UPDATE(dev, work_done, budget); + + if (work_done < work_to_do) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) + if (RTL_NETIF_RX_COMPLETE(dev, napi, work_done) == FALSE) + return RTL_NAPI_RETURN_VALUE; +#else + RTL_NETIF_RX_COMPLETE(dev, napi, work_done); +#endif + /* + * 20040426: the barrier is not strictly required but the + * behavior of the irq handler could be less predictable + * without it. Btw, the lack of flush for the posted pci + * write is safe - FR + */ + smp_wmb(); + //if (message_id == 0) + // rtl8168_switch_to_timer_interrupt(tp); + //else + rtl8168_enable_interrupt_by_vector(tp, message_id); + } + + return RTL_NAPI_RETURN_VALUE; +} +#endif//CONFIG_R8168_NAPI + +static void rtl8168_sleep_rx_enable(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (tp->wol_enabled != WOL_ENABLED) + return; + + if ((tp->mcfg == CFG_METHOD_1) || (tp->mcfg == CFG_METHOD_2)) { + RTL_W8(tp, ChipCmd, CmdReset); + rtl8168_rx_desc_offset0_init(tp, 0); + RTL_W8(tp, ChipCmd, CmdRxEnb); + } else if (tp->mcfg == CFG_METHOD_14 || tp->mcfg == CFG_METHOD_15) { + rtl8168_ephy_write(tp, 0x19, 0xFF64); + RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) | AcceptBroadcast | AcceptMulticast | AcceptMyPhys); + } +} + +static void rtl8168_down(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + //rtl8168_delete_esd_timer(dev, &tp->esd_timer); + //rtl8168_delete_link_timer(dev, &tp->link_timer); + + netif_carrier_off(dev); + + netif_tx_disable(dev); + + _rtl8168_wait_for_quiescence(dev); + + rtl8168_dsm(dev, DSM_IF_DOWN); + + rtl8168_hw_reset(dev); + + rtl8168_tx_clear(tp); + + rtl8168_rx_clear(tp); +} + +static int rtl8168_resource_freed(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < tp->num_tx_rings; i++) + if (tp->tx_ring[i].TxDescArray) return 0; + + if (tp->RxDescArray) + return 0; + + return 1; +} + +int rtl8168_close(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + if (!rtl8168_resource_freed(tp)) { + set_bit(R8168_FLAG_DOWN, tp->task_flags); + + rtl8168_down(dev); + + pci_clear_master(tp->pci_dev); + + rtl8168_hw_d3_para(dev); + + rtl8168_powerdown_pll(dev); + + rtl8168_sleep_rx_enable(dev); + + rtl8168_free_irq(tp); + + rtl8168_free_alloc_resources(tp); + } else { + rtl8168_hw_d3_para(dev); + + rtl8168_powerdown_pll(dev); + } + + return 0; +} + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11) +static void rtl8168_shutdown(struct pci_dev *pdev) +{ + struct net_device *dev = pci_get_drvdata(pdev); + struct rtl8168_private *tp = netdev_priv(dev); + + rtnl_lock(); + + if (HW_DASH_SUPPORT_DASH(tp)) + rtl8168_driver_stop(tp); + + rtl8168_set_bios_setting(dev); + if (s5_keep_curr_mac == 0 && tp->random_mac == 0) + rtl8168_rar_set(tp, tp->org_mac_addr); + +#ifdef ENABLE_FIBER_SUPPORT + rtl8168_hw_fiber_nic_d3_para(tp); +#endif //ENABLE_FIBER_SUPPORT + + if (s5wol == 0) + tp->wol_enabled = WOL_DISABLED; + + rtl8168_close(dev); + rtl8168_disable_msi(pdev, tp); + + rtnl_unlock(); + + if (system_state == SYSTEM_POWER_OFF) { + pci_clear_master(tp->pci_dev); + rtl8168_sleep_rx_enable(dev); + pci_wake_from_d3(pdev, tp->wol_enabled); + pci_set_power_state(pdev, PCI_D3hot); + } +} +#endif + +/** + * rtl8168_get_stats - Get rtl8168 read/write statistics + * @dev: The Ethernet Device to get statistics for + * + * Get TX/RX statistics for rtl8168 + */ +static struct +net_device_stats *rtl8168_get_stats(struct net_device *dev) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) + struct rtl8168_private *tp = netdev_priv(dev); +#endif + return &RTLDEV->stats; +} + +#ifdef CONFIG_PM + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) +static int +rtl8168_suspend(struct pci_dev *pdev, u32 state) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) +static int +rtl8168_suspend(struct device *device) +#else +static int +rtl8168_suspend(struct pci_dev *pdev, pm_message_t state) +#endif +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) + struct pci_dev *pdev = to_pci_dev(device); +#endif + struct net_device *dev = pci_get_drvdata(pdev); + struct rtl8168_private *tp = netdev_priv(dev); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) + u32 pci_pm_state = pci_choose_state(pdev, state); +#endif + if (!netif_running(dev)) + goto out; + + //rtl8168_cancel_schedule_work(dev); + + //rtl8168_delete_esd_timer(dev, &tp->esd_timer); + + //rtl8168_delete_link_timer(dev, &tp->link_timer); + + rtnl_lock(); + + set_bit(R8168_FLAG_DOWN, tp->task_flags); + + netif_carrier_off(dev); + + netif_tx_disable(dev); + + netif_device_detach(dev); + + rtl8168_dsm(dev, DSM_NIC_GOTO_D3); + + rtl8168_hw_reset(dev); + + pci_clear_master(pdev); + + rtl8168_hw_d3_para(dev); + +#ifdef ENABLE_FIBER_SUPPORT + rtl8168_hw_fiber_nic_d3_para(tp); +#endif //ENABLE_FIBER_SUPPORT + + rtl8168_powerdown_pll(dev); + + rtl8168_sleep_rx_enable(dev); + + rtnl_unlock(); + +out: + if (HW_DASH_SUPPORT_DASH(tp)) + rtl8168_driver_stop(tp); + + pci_disable_device(pdev); + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) + pci_save_state(pdev, &pci_pm_state); +#else + pci_save_state(pdev); +#endif +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) + pci_enable_wake(pdev, pci_choose_state(pdev, state), tp->wol_enabled); +#endif + + pci_prepare_to_sleep(pdev); + + return 0; +} + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) +static int +rtl8168_resume(struct pci_dev *pdev) +#else +static int +rtl8168_resume(struct device *device) +#endif +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) + struct pci_dev *pdev = to_pci_dev(device); +#endif + struct net_device *dev = pci_get_drvdata(pdev); + struct rtl8168_private *tp = netdev_priv(dev); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) + u32 pci_pm_state = PCI_D0; +#endif + int err; + + rtnl_lock(); + + err = pci_enable_device(pdev); + if (err) { + dev_err(&pdev->dev, "Cannot enable PCI device from suspend\n"); + goto out_unlock; + } +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) + pci_restore_state(pdev, &pci_pm_state); +#else + pci_restore_state(pdev); +#endif + pci_enable_wake(pdev, PCI_D0, 0); + + /* restore last modified mac address */ + rtl8168_rar_set(tp, dev->dev_addr); + + if (!netif_running(dev)) { + if (HW_DASH_SUPPORT_DASH(tp)) { + rtl8168_driver_start(tp); + } + goto out_unlock; + } + + pci_set_master(pdev); + + rtl8168_exit_oob(dev); + + rtl8168_dsm(dev, DSM_NIC_RESUME_D3); + + rtl8168_hw_init(dev); + + rtl8168_powerup_pll(dev); + + rtl8168_hw_ephy_config(dev); + + rtl8168_hw_phy_config(dev); + + rtl8168_hw_config(dev); + + clear_bit(R8168_FLAG_DOWN, tp->task_flags); + + rtl8168_schedule_reset_work(tp); + + rtl8168_schedule_esd_work(tp); + + rtl8168_schedule_linkchg_work(tp); + + //mod_timer(&tp->esd_timer, jiffies + RTL8168_ESD_TIMEOUT); + //mod_timer(&tp->link_timer, jiffies + RTL8168_LINK_TIMEOUT); +out_unlock: + netif_device_attach(dev); + + rtnl_unlock(); + + return err; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29) + +static struct dev_pm_ops rtl8168_pm_ops = { + .suspend = rtl8168_suspend, + .resume = rtl8168_resume, + .freeze = rtl8168_suspend, + .thaw = rtl8168_resume, + .poweroff = rtl8168_suspend, + .restore = rtl8168_resume, +}; + +#define RTL8168_PM_OPS (&rtl8168_pm_ops) + +#endif + +#else /* !CONFIG_PM */ + +#define RTL8168_PM_OPS NULL + +#endif /* CONFIG_PM */ + +static struct pci_driver rtl8168_pci_driver = { + .name = MODULENAME, + .id_table = rtl8168_pci_tbl, + .probe = rtl8168_init_one, + .remove = __devexit_p(rtl8168_remove_one), +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11) + .shutdown = rtl8168_shutdown, +#endif +#ifdef CONFIG_PM +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) + .suspend = rtl8168_suspend, + .resume = rtl8168_resume, +#else /* CONFIG_PM */ + .driver.pm = RTL8168_PM_OPS, +#endif +#endif /* CONFIG_PM */ +}; + +static int __init +rtl8168_init_module(void) +{ +#ifdef ENABLE_R8168_PROCFS + rtl8168_proc_module_init(); +#endif +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0) + return pci_register_driver(&rtl8168_pci_driver); +#else + return pci_module_init(&rtl8168_pci_driver); +#endif +} + +static void __exit +rtl8168_cleanup_module(void) +{ + pci_unregister_driver(&rtl8168_pci_driver); +#ifdef ENABLE_R8168_PROCFS + if (rtl8168_proc) { +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + remove_proc_subtree(MODULENAME, init_net.proc_net); +#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) + remove_proc_entry(MODULENAME, init_net.proc_net); +#else + remove_proc_entry(MODULENAME, proc_net); +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32) +#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) + rtl8168_proc = NULL; + } +#endif +} + +module_init(rtl8168_init_module); +module_exit(rtl8168_cleanup_module); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_realwow.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_realwow.h new file mode 100644 index 000000000000..d3fb2e7143ac --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_realwow.h @@ -0,0 +1,118 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#ifndef _LINUX_R8168_REALWOW_H +#define _LINUX_R8168_REALWOW_H + +#define SIOCDEVPRIVATE_RTLREALWOW SIOCDEVPRIVATE+3 + +#define MAX_RealWoW_KCP_SIZE (100) +#define MAX_RealWoW_Payload (64) + +#define KA_TX_PACKET_SIZE (100) +#define KA_WAKEUP_PATTERN_SIZE (120) + +//HwSuppKeepAliveOffloadVer +#define HW_SUPPORT_KCP_OFFLOAD(_M) ((_M)->HwSuppKCPOffloadVer > 0) + +enum rtl_realwow_cmd { + + RTL_REALWOW_SET_KCP_DISABLE=0, + RTL_REALWOW_SET_KCP_INFO, + RTL_REALWOW_SET_KCP_CONTENT, + + RTL_REALWOW_SET_KCP_ACKPKTINFO, + RTL_REALWOW_SET_KCP_WPINFO, + RTL_REALWOW_SET_KCPDHCP_TIMEOUT, + + RTLT_REALWOW_COMMAND_INVALID +}; + +struct rtl_realwow_ioctl_struct { + __u32 cmd; + __u32 offset; + __u32 len; + union { + __u32 data; + void *data_buffer; + }; +}; + +typedef struct _MP_KCPInfo { + u8 DIPv4[4]; + u8 MacID[6]; + u16 UdpPort[2]; + u8 PKTLEN[2]; + + u16 ackLostCnt; + u8 KCP_WakePattern[MAX_RealWoW_Payload]; + u8 KCP_AckPacket[MAX_RealWoW_Payload]; + u32 KCP_interval; + u8 KCP_WakePattern_Len; + u8 KCP_AckPacket_Len; + u8 KCP_TxPacket[2][KA_TX_PACKET_SIZE]; +} MP_KCP_INFO, *PMP_KCP_INFO; + +typedef struct _KCPInfo { + u32 nId; // = id + u8 DIPv4[4]; + u8 MacID[6]; + u16 UdpPort; + u16 PKTLEN; +} KCPInfo, *PKCPInfo; + +typedef struct _KCPContent { + u32 id; // = id + u32 mSec; // = msec + u32 size; // =size + u8 bPacket[MAX_RealWoW_KCP_SIZE]; // put packet here +} KCPContent, *PKCPContent; + +typedef struct _RealWoWAckPktInfo { + u16 ackLostCnt; + u16 patterntSize; + u8 pattern[MAX_RealWoW_Payload]; +} RealWoWAckPktInfo,*PRealWoWAckPktInfo; + +typedef struct _RealWoWWPInfo { + u16 patterntSize; + u8 pattern[MAX_RealWoW_Payload]; +} RealWoWWPInfo,*PRealWoWWPInfo; + +int rtl8168_realwow_ioctl(struct net_device *dev, struct ifreq *ifr); +void rtl8168_realwow_hw_init(struct net_device *dev); +void rtl8168_get_realwow_hw_version(struct net_device *dev); +void rtl8168_set_realwow_d3_para(struct net_device *dev); + +#endif /* _LINUX_R8168_REALWOW_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.c new file mode 100644 index 000000000000..bf44a15c734e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.c @@ -0,0 +1,439 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#include +#include "r8168.h" + +enum rtl8168_rss_register_content { + /* RSS */ + RSS_CTRL_TCP_IPV4_SUPP = (1 << 0), + RSS_CTRL_IPV4_SUPP = (1 << 1), + RSS_CTRL_TCP_IPV6_SUPP = (1 << 2), + RSS_CTRL_IPV6_SUPP = (1 << 3), + RSS_CTRL_IPV6_EXT_SUPP = (1 << 4), + RSS_CTRL_TCP_IPV6_EXT_SUPP = (1 << 5), + RSS_HALF_SUPP = (1 << 7), + RSS_QUAD_CPU_EN = (1 << 16), + RSS_HQ_Q_SUP_R = (1 << 31), +}; + +static int rtl8168_get_rss_hash_opts(struct rtl8168_private *tp, + struct ethtool_rxnfc *cmd) +{ + cmd->data = 0; + + /* Report default options for RSS */ + switch (cmd->flow_type) { + case TCP_V4_FLOW: + cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fallthrough */ + case IPV4_FLOW: + cmd->data |= RXH_IP_SRC | RXH_IP_DST; + break; + case TCP_V6_FLOW: + cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; + /* fallthrough */ + case IPV6_FLOW: + cmd->data |= RXH_IP_SRC | RXH_IP_DST; + break; + default: + return -EINVAL; + } + + return 0; +} + +int rtl8168_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd, + u32 *rule_locs) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ret = -EOPNOTSUPP; + + netif_info(tp, drv, tp->dev, "rss get rxnfc\n"); + + if (!(dev->features & NETIF_F_RXHASH)) + return ret; + + switch (cmd->cmd) { + case ETHTOOL_GRXRINGS: + cmd->data = rtl8168_tot_rx_rings(tp); + ret = 0; + break; + case ETHTOOL_GRXFH: + ret = rtl8168_get_rss_hash_opts(tp, cmd); + break; + default: + break; + } + + return ret; +} + +u32 rtl8168_rss_indir_tbl_entries(struct rtl8168_private *tp) +{ + return tp->HwSuppIndirTblEntries; +} + +#define RSS_MASK_BITS_OFFSET (8) +static int _rtl8168_set_rss_hash_opt(struct rtl8168_private *tp) +{ + u32 hash_mask_len; + u32 rss_ctrl; + + /* Perform hash on these packet types */ + rss_ctrl = RSS_CTRL_TCP_IPV4_SUPP + | RSS_CTRL_IPV4_SUPP + | RSS_CTRL_IPV6_SUPP + | RSS_CTRL_IPV6_EXT_SUPP + | RSS_CTRL_TCP_IPV6_SUPP + | RSS_CTRL_TCP_IPV6_EXT_SUPP; + + if (R8168_MULTI_RSS_4Q(tp)) + rss_ctrl |= RSS_QUAD_CPU_EN; + + hash_mask_len = ilog2(rtl8168_rss_indir_tbl_entries(tp)); + hash_mask_len &= (BIT_0 | BIT_1 | BIT_2); + rss_ctrl |= hash_mask_len << RSS_MASK_BITS_OFFSET; + + rtl8168_eri_write(tp, RSS_CTRL_8168, 4, rss_ctrl, ERIAR_ExGMAC); + + return 0; +} + +static int rtl8168_set_rss_hash_opt(struct rtl8168_private *tp, + struct ethtool_rxnfc *nfc) +{ + u32 rss_flags = tp->rss_flags; + + netif_info(tp, drv, tp->dev, "rss set hash\n"); + + /* + * RSS does not support anything other than hashing + * to queues on src and dst IPs and ports + */ + if (nfc->data & ~(RXH_IP_SRC | RXH_IP_DST | + RXH_L4_B_0_1 | RXH_L4_B_2_3)) + return -EINVAL; + + switch (nfc->flow_type) { + case TCP_V4_FLOW: + case TCP_V6_FLOW: + if (!(nfc->data & RXH_IP_SRC) || + !(nfc->data & RXH_IP_DST) || + !(nfc->data & RXH_L4_B_0_1) || + !(nfc->data & RXH_L4_B_2_3)) + return -EINVAL; + break; + case SCTP_V4_FLOW: + case AH_ESP_V4_FLOW: + case AH_V4_FLOW: + case ESP_V4_FLOW: + case SCTP_V6_FLOW: + case AH_ESP_V6_FLOW: + case AH_V6_FLOW: + case ESP_V6_FLOW: + case IP_USER_FLOW: + case ETHER_FLOW: + /* RSS is not supported for these protocols */ + if (nfc->data) { + netif_err(tp, drv, tp->dev, "Command parameters not supported\n"); + return -EINVAL; + } + return 0; + default: + return -EINVAL; + } + + /* if we changed something we need to update flags */ + if (rss_flags != tp->rss_flags) { + u32 rss_ctrl = rtl8168_eri_read(tp, RSS_CTRL_8168, 4, ERIAR_ExGMAC); + + tp->rss_flags = rss_flags; + + /* Perform hash on these packet types */ + rss_ctrl |= RSS_CTRL_TCP_IPV4_SUPP + | RSS_CTRL_IPV4_SUPP + | RSS_CTRL_IPV6_SUPP + | RSS_CTRL_IPV6_EXT_SUPP + | RSS_CTRL_TCP_IPV6_SUPP + | RSS_CTRL_TCP_IPV6_EXT_SUPP; + + if (R8168_MULTI_RSS_4Q(tp)) + rss_ctrl |= RSS_QUAD_CPU_EN; + else + rss_ctrl &= ~RSS_QUAD_CPU_EN; + + rtl8168_eri_write(tp, RSS_CTRL_8168, 4, rss_ctrl, ERIAR_ExGMAC); + } + + return 0; +} + +int rtl8168_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd) +{ + struct rtl8168_private *tp = netdev_priv(dev); + int ret = -EOPNOTSUPP; + + netif_info(tp, drv, tp->dev, "rss set rxnfc\n"); + + if (!(dev->features & NETIF_F_RXHASH)) + return ret; + + switch (cmd->cmd) { + case ETHTOOL_SRXFH: + ret = rtl8168_set_rss_hash_opt(tp, cmd); + break; + default: + break; + } + + return ret; +} + +static u32 _rtl8168_get_rxfh_key_size(struct rtl8168_private *tp) +{ + return sizeof(tp->rss_key); +} + +u32 rtl8168_get_rxfh_key_size(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + netif_info(tp, drv, tp->dev, "rss get key size\n"); + + if (!(dev->features & NETIF_F_RXHASH)) + return 0; + + return _rtl8168_get_rxfh_key_size(tp); +} + +u32 rtl8168_rss_indir_size(struct net_device *dev) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + netif_info(tp, drv, tp->dev, "rss get indir tbl size\n"); + + if (!(dev->features & NETIF_F_RXHASH)) + return 0; + + return rtl8168_rss_indir_tbl_entries(tp); +} + +static void rtl8168_get_reta(struct rtl8168_private *tp, u32 *indir) +{ + int i, reta_size = rtl8168_rss_indir_tbl_entries(tp); + + for (i = 0; i < reta_size; i++) + indir[i] = tp->rss_indir_tbl[i]; +} + +int rtl8168_get_rxfh(struct net_device *dev, u32 *indir, u8 *key, + u8 *hfunc) +{ + struct rtl8168_private *tp = netdev_priv(dev); + + netif_info(tp, drv, tp->dev, "rss get rxfh\n"); + + if (!(dev->features & NETIF_F_RXHASH)) + return -EOPNOTSUPP; + + if (hfunc) + *hfunc = ETH_RSS_HASH_TOP; + + if (indir) + rtl8168_get_reta(tp, indir); + + if (key) + memcpy(key, tp->rss_key, RTL8168_RSS_KEY_SIZE); + + return 0; +} + +static u32 rtl8168_rss_key_reg(struct rtl8168_private *tp) +{ + return RSS_KEY_8168; +} + +static u32 rtl8168_rss_indir_tbl_reg(struct rtl8168_private *tp) +{ + return Rss_indir_tbl; +} + +static void rtl8168_store_reta(struct rtl8168_private *tp) +{ + u32 reta_entries = rtl8168_rss_indir_tbl_entries(tp); + u16 indir_tbl_reg = rtl8168_rss_indir_tbl_reg(tp); + u32 hw_indir[RTL8168_RSS_INDIR_TBL_SIZE] = {0}; + u8 *indir = tp->rss_indir_tbl; + u32 bit_on_cnt = 0x00000001; + u32 i, j; + + /* Mapping redirection table to HW */ + for (i = 0, j = 0; i < reta_entries; i++) { + if ((indir[i] & 2) && R8168_MULTI_RSS_4Q(tp)) + hw_indir[j + 4] |= bit_on_cnt; + if (indir[i] & 1) + hw_indir[j] |= bit_on_cnt; + + if (bit_on_cnt == 0x80000000) { + bit_on_cnt = 0x00000001; + j++; + continue; + } + bit_on_cnt <<= 1; + } + + /* Write redirection table to HW */ + for (i = 0; i < RTL8168_RSS_INDIR_TBL_SIZE; i++) + RTL_W32(tp, indir_tbl_reg + i*4, hw_indir[i]); +} + +static void rtl8168_store_rss_key(struct rtl8168_private *tp) +{ + const u16 rss_key_reg = rtl8168_rss_key_reg(tp); + u32 i, rss_key_size = _rtl8168_get_rxfh_key_size(tp); + u32 *rss_key = (u32*)tp->rss_key; + + /* Write redirection table to HW */ + for (i = 0; i < rss_key_size; i+=4) + rtl8168_eri_write(tp, rss_key_reg + i, 4, *rss_key++, ERIAR_ExGMAC); +} + +int rtl8168_set_rxfh(struct net_device *dev, const u32 *indir, + const u8 *key, const u8 hfunc) +{ + struct rtl8168_private *tp = netdev_priv(dev); + u32 reta_entries = rtl8168_rss_indir_tbl_entries(tp); + int i; + + netif_info(tp, drv, tp->dev, "rss set rxfh\n"); + + /* We require at least one supported parameter to be changed and no + * change in any of the unsupported parameters + */ + if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP) + return -EOPNOTSUPP; + + /* Fill out the redirection table */ + if (indir) { + int max_queues = tp->num_rx_rings; + + /* Verify user input. */ + for (i = 0; i < reta_entries; i++) + if (indir[i] >= max_queues) + return -EINVAL; + + for (i = 0; i < reta_entries; i++) + tp->rss_indir_tbl[i] = indir[i]; + } + + /* Fill out the rss hash key */ + if (key) + memcpy(tp->rss_key, key, RTL8168_RSS_KEY_SIZE); + + rtl8168_store_reta(tp); + + rtl8168_store_rss_key(tp); + + return 0; +} + +static u32 rtl8168_get_rx_desc_hash(struct rtl8168_private *tp, + struct RxDescV2 *desc) +{ + if (!desc->RSSResult) + udelay(1); + return le32_to_cpu(desc->RSSResult); +} + +#define RXS_8168_RSS_IPV4 BIT(17) +#define RXS_8168_RSS_IPV6 BIT(18) +#define RXS_8168_RSS_TCP BIT(19) +#define RTL8168_RXS_RSS_L3_TYPE_MASK (RXS_8168_RSS_IPV4 | RXS_8168_RSS_IPV6) +#define RTL8168_RXS_RSS_L4_TYPE_MASK (RXS_8168_RSS_TCP) +void rtl8168_rx_hash(struct rtl8168_private *tp, + struct RxDescV2 *desc, + struct sk_buff *skb) +{ + u32 rss_header_info; + + if (!(tp->dev->features & NETIF_F_RXHASH)) + return; + + rss_header_info = le32_to_cpu(desc->opts2); + + if (!(rss_header_info & RTL8168_RXS_RSS_L3_TYPE_MASK)) + return; + + skb_set_hash(skb, rtl8168_get_rx_desc_hash(tp, desc), + (RTL8168_RXS_RSS_L4_TYPE_MASK & rss_header_info) ? + PKT_HASH_TYPE_L4 : PKT_HASH_TYPE_L3); +} + +void rtl8168_disable_rss(struct rtl8168_private *tp) +{ + rtl8168_eri_write(tp, RSS_CTRL_8168, 4, 0x00000000, ERIAR_ExGMAC); +} + +void _rtl8168_config_rss(struct rtl8168_private *tp) +{ + _rtl8168_set_rss_hash_opt(tp); + + rtl8168_store_reta(tp); + + rtl8168_store_rss_key(tp); +} + +void rtl8168_config_rss(struct rtl8168_private *tp) +{ + if (!HW_RSS_SUPPORT_RSS(tp)) + return; + + if (!tp->EnableRss) { + rtl8168_disable_rss(tp); + return; + } + + _rtl8168_config_rss(tp); +} + +void rtl8168_init_rss(struct rtl8168_private *tp) +{ + int i; + + for (i = 0; i < rtl8168_rss_indir_tbl_entries(tp); i++) + tp->rss_indir_tbl[i] = ethtool_rxfh_indir_default(i, tp->num_rx_rings); + + netdev_rss_key_fill(tp->rss_key, RTL8168_RSS_KEY_SIZE); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.h new file mode 100644 index 000000000000..77c8320412c5 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/r8168_rss.h @@ -0,0 +1,66 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#ifndef _LINUX_RTL8168_RSS_H +#define _LINUX_RTL8168_RSS_H + +#include +#include + +#define RTL8168_RSS_INDIR_TBL_SIZE 8 +#define RTL8168_RSS_KEY_SIZE 40 /* size of RSS Hash Key in bytes */ +#define RTL8168_MAX_INDIRECTION_TABLE_ENTRIES 128 + +struct rtl8168_private; +struct RxDescV2; + +int rtl8168_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd, + u32 *rule_locs); +int rtl8168_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd); +u32 rtl8168_get_rxfh_key_size(struct net_device *netdev); +u32 rtl8168_rss_indir_size(struct net_device *netdev); +int rtl8168_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key, + u8 *hfunc); +int rtl8168_set_rxfh(struct net_device *netdev, const u32 *indir, + const u8 *key, const u8 hfunc); +void rtl8168_rx_hash(struct rtl8168_private *tp, + struct RxDescV2 *desc, + struct sk_buff *skb); +void _rtl8168_config_rss(struct rtl8168_private *tp); +void rtl8168_config_rss(struct rtl8168_private *tp); +void rtl8168_init_rss(struct rtl8168_private *tp); +u32 rtl8168_rss_indir_tbl_entries(struct rtl8168_private *tp); +void rtl8168_disable_rss(struct rtl8168_private *tp); + +#endif /* _LINUX_RTL8168_RSS_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.c new file mode 100644 index 000000000000..1f361a15af01 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.c @@ -0,0 +1,289 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include + +#include "r8168.h" +#include "rtl_eeprom.h" + +//------------------------------------------------------------------- +//rtl8168_eeprom_type(): +// tell the eeprom type +//return value: +// 0: the eeprom type is 93C46 +// 1: the eeprom type is 93C56 or 93C66 +//------------------------------------------------------------------- +void rtl8168_eeprom_type(struct rtl8168_private *tp) +{ + u16 magic = 0; + + if (tp->mcfg == CFG_METHOD_DEFAULT) + goto out_no_eeprom; + + if(RTL_R8(tp, 0xD2)&0x04) { + //not support + //tp->eeprom_type = EEPROM_TWSI; + //tp->eeprom_len = 256; + goto out_no_eeprom; + } else if(RTL_R32(tp, RxConfig) & RxCfg_9356SEL) { + tp->eeprom_type = EEPROM_TYPE_93C56; + tp->eeprom_len = 256; + } else { + tp->eeprom_type = EEPROM_TYPE_93C46; + tp->eeprom_len = 128; + } + + magic = rtl8168_eeprom_read_sc(tp, 0); + +out_no_eeprom: + if ((magic != 0x8129) && (magic != 0x8128)) { + tp->eeprom_type = EEPROM_TYPE_NONE; + tp->eeprom_len = 0; + } +} + +void rtl8168_eeprom_cleanup(struct rtl8168_private *tp) +{ + u8 x; + + x = RTL_R8(tp, Cfg9346); + x &= ~(Cfg9346_EEDI | Cfg9346_EECS); + + RTL_W8(tp, Cfg9346, x); + + rtl8168_raise_clock(tp, &x); + rtl8168_lower_clock(tp, &x); +} + +int rtl8168_eeprom_cmd_done(struct rtl8168_private *tp) +{ + u8 x; + int i; + + rtl8168_stand_by(tp); + + for (i = 0; i < 50000; i++) { + x = RTL_R8(tp, Cfg9346); + + if (x & Cfg9346_EEDO) { + udelay(RTL_CLOCK_RATE * 2 * 3); + return 0; + } + udelay(1); + } + + return -1; +} + +//------------------------------------------------------------------- +//rtl8168_eeprom_read_sc(): +// read one word from eeprom +//------------------------------------------------------------------- +u16 rtl8168_eeprom_read_sc(struct rtl8168_private *tp, u16 reg) +{ + int addr_sz = 6; + u8 x; + u16 data; + + if(tp->eeprom_type == EEPROM_TYPE_NONE) { + return -1; + } + + if (tp->eeprom_type==EEPROM_TYPE_93C46) + addr_sz = 6; + else if (tp->eeprom_type==EEPROM_TYPE_93C56) + addr_sz = 8; + + x = Cfg9346_EEM1 | Cfg9346_EECS; + RTL_W8(tp, Cfg9346, x); + + rtl8168_shift_out_bits(tp, RTL_EEPROM_READ_OPCODE, 3); + rtl8168_shift_out_bits(tp, reg, addr_sz); + + data = rtl8168_shift_in_bits(tp); + + rtl8168_eeprom_cleanup(tp); + + RTL_W8(tp, Cfg9346, 0); + + return data; +} + +//------------------------------------------------------------------- +//rtl8168_eeprom_write_sc(): +// write one word to a specific address in the eeprom +//------------------------------------------------------------------- +void rtl8168_eeprom_write_sc(struct rtl8168_private *tp, u16 reg, u16 data) +{ + u8 x; + int addr_sz = 6; + int w_dummy_addr = 4; + + if(tp->eeprom_type == EEPROM_TYPE_NONE) { + return ; + } + + if (tp->eeprom_type==EEPROM_TYPE_93C46) { + addr_sz = 6; + w_dummy_addr = 4; + } else if (tp->eeprom_type==EEPROM_TYPE_93C56) { + addr_sz = 8; + w_dummy_addr = 6; + } + + x = Cfg9346_EEM1 | Cfg9346_EECS; + RTL_W8(tp, Cfg9346, x); + + rtl8168_shift_out_bits(tp, RTL_EEPROM_EWEN_OPCODE, 5); + rtl8168_shift_out_bits(tp, reg, w_dummy_addr); + rtl8168_stand_by(tp); + + rtl8168_shift_out_bits(tp, RTL_EEPROM_ERASE_OPCODE, 3); + rtl8168_shift_out_bits(tp, reg, addr_sz); + if (rtl8168_eeprom_cmd_done(tp) < 0) { + return; + } + rtl8168_stand_by(tp); + + rtl8168_shift_out_bits(tp, RTL_EEPROM_WRITE_OPCODE, 3); + rtl8168_shift_out_bits(tp, reg, addr_sz); + rtl8168_shift_out_bits(tp, data, 16); + if (rtl8168_eeprom_cmd_done(tp) < 0) { + return; + } + rtl8168_stand_by(tp); + + rtl8168_shift_out_bits(tp, RTL_EEPROM_EWDS_OPCODE, 5); + rtl8168_shift_out_bits(tp, reg, w_dummy_addr); + + rtl8168_eeprom_cleanup(tp); + RTL_W8(tp, Cfg9346, 0); +} + +void rtl8168_raise_clock(struct rtl8168_private *tp, u8 *x) +{ + *x = *x | Cfg9346_EESK; + RTL_W8(tp, Cfg9346, *x); + udelay(RTL_CLOCK_RATE); +} + +void rtl8168_lower_clock(struct rtl8168_private *tp, u8 *x) +{ + + *x = *x & ~Cfg9346_EESK; + RTL_W8(tp, Cfg9346, *x); + udelay(RTL_CLOCK_RATE); +} + +void rtl8168_shift_out_bits(struct rtl8168_private *tp, int data, int count) +{ + u8 x; + int mask; + + mask = 0x01 << (count - 1); + x = RTL_R8(tp, Cfg9346); + x &= ~(Cfg9346_EEDI | Cfg9346_EEDO); + + do { + if (data & mask) + x |= Cfg9346_EEDI; + else + x &= ~Cfg9346_EEDI; + + RTL_W8(tp, Cfg9346, x); + udelay(RTL_CLOCK_RATE); + rtl8168_raise_clock(tp, &x); + rtl8168_lower_clock(tp, &x); + mask = mask >> 1; + } while(mask); + + x &= ~Cfg9346_EEDI; + RTL_W8(tp, Cfg9346, x); +} + +u16 rtl8168_shift_in_bits(struct rtl8168_private *tp) +{ + u8 x; + u16 d, i; + + x = RTL_R8(tp, Cfg9346); + x &= ~(Cfg9346_EEDI | Cfg9346_EEDO); + + d = 0; + + for (i = 0; i < 16; i++) { + d = d << 1; + rtl8168_raise_clock(tp, &x); + + x = RTL_R8(tp, Cfg9346); + x &= ~Cfg9346_EEDI; + + if (x & Cfg9346_EEDO) + d |= 1; + + rtl8168_lower_clock(tp, &x); + } + + return d; +} + +void rtl8168_stand_by(struct rtl8168_private *tp) +{ + u8 x; + + x = RTL_R8(tp, Cfg9346); + x &= ~(Cfg9346_EECS | Cfg9346_EESK); + RTL_W8(tp, Cfg9346, x); + udelay(RTL_CLOCK_RATE); + + x |= Cfg9346_EECS; + RTL_W8(tp, Cfg9346, x); +} + +void rtl8168_set_eeprom_sel_low(struct rtl8168_private *tp) +{ + RTL_W8(tp, Cfg9346, Cfg9346_EEM1); + RTL_W8(tp, Cfg9346, Cfg9346_EEM1 | Cfg9346_EESK); + + udelay(20); + + RTL_W8(tp, Cfg9346, Cfg9346_EEM1); +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.h new file mode 100644 index 000000000000..cf42fb60855c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtl_eeprom.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +//EEPROM opcodes +#define RTL_EEPROM_READ_OPCODE 06 +#define RTL_EEPROM_WRITE_OPCODE 05 +#define RTL_EEPROM_ERASE_OPCODE 07 +#define RTL_EEPROM_EWEN_OPCODE 19 +#define RTL_EEPROM_EWDS_OPCODE 16 + +#define RTL_CLOCK_RATE 3 + +void rtl8168_eeprom_type(struct rtl8168_private *tp); +void rtl8168_eeprom_cleanup(struct rtl8168_private *tp); +u16 rtl8168_eeprom_read_sc(struct rtl8168_private *tp, u16 reg); +void rtl8168_eeprom_write_sc(struct rtl8168_private *tp, u16 reg, u16 data); +void rtl8168_shift_out_bits(struct rtl8168_private *tp, int data, int count); +u16 rtl8168_shift_in_bits(struct rtl8168_private *tp); +void rtl8168_raise_clock(struct rtl8168_private *tp, u8 *x); +void rtl8168_lower_clock(struct rtl8168_private *tp, u8 *x); +void rtl8168_stand_by(struct rtl8168_private *tp); +void rtl8168_set_eeprom_sel_low(struct rtl8168_private *tp); + + + diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.c new file mode 100644 index 000000000000..a6a98c83163b --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.c @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "r8168.h" +#include "rtl_eeprom.h" +#include "rtltool.h" + +int rtl8168_tool_ioctl(struct rtl8168_private *tp, struct ifreq *ifr) +{ + struct rtltool_cmd my_cmd; + int ret; + + if (copy_from_user(&my_cmd, ifr->ifr_data, sizeof(my_cmd))) + return -EFAULT; + + ret = 0; + switch (my_cmd.cmd) { + case RTLTOOL_READ_MAC: + if (my_cmd.len==1) + my_cmd.data = readb(tp->mmio_addr+my_cmd.offset); + else if (my_cmd.len==2) + my_cmd.data = readw(tp->mmio_addr+(my_cmd.offset&~1)); + else if (my_cmd.len==4) + my_cmd.data = readl(tp->mmio_addr+(my_cmd.offset&~3)); + else { + ret = -EOPNOTSUPP; + break; + } + + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTLTOOL_WRITE_MAC: + if (my_cmd.len==1) + writeb(my_cmd.data, tp->mmio_addr+my_cmd.offset); + else if (my_cmd.len==2) + writew(my_cmd.data, tp->mmio_addr+(my_cmd.offset&~1)); + else if (my_cmd.len==4) + writel(my_cmd.data, tp->mmio_addr+(my_cmd.offset&~3)); + else { + ret = -EOPNOTSUPP; + break; + } + break; + case RTLTOOL_READ_PHY: + my_cmd.data = rtl8168_mdio_prot_read(tp, my_cmd.offset); + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTLTOOL_WRITE_PHY: + rtl8168_mdio_prot_write(tp, my_cmd.offset, my_cmd.data); + break; + case RTLTOOL_READ_EPHY: + my_cmd.data = rtl8168_ephy_read(tp, my_cmd.offset); + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTLTOOL_WRITE_EPHY: + rtl8168_ephy_write(tp, my_cmd.offset, my_cmd.data); + break; + case RTLTOOL_READ_ERI: + my_cmd.data = 0; + if (my_cmd.len==1 || my_cmd.len==2 || my_cmd.len==4) { + my_cmd.data = rtl8168_eri_read(tp, my_cmd.offset, my_cmd.len, ERIAR_ExGMAC); + } else { + ret = -EOPNOTSUPP; + break; + } + + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTLTOOL_WRITE_ERI: + if (my_cmd.len==1 || my_cmd.len==2 || my_cmd.len==4) { + rtl8168_eri_write(tp, my_cmd.offset, my_cmd.len, my_cmd.data, ERIAR_ExGMAC); + } else { + ret = -EOPNOTSUPP; + break; + } + break; + case RTLTOOL_READ_PCI: + my_cmd.data = 0; + if (my_cmd.len==1) + pci_read_config_byte(tp->pci_dev, my_cmd.offset, + (u8 *)&my_cmd.data); + else if (my_cmd.len==2) + pci_read_config_word(tp->pci_dev, my_cmd.offset, + (u16 *)&my_cmd.data); + else if (my_cmd.len==4) + pci_read_config_dword(tp->pci_dev, my_cmd.offset, + &my_cmd.data); + else { + ret = -EOPNOTSUPP; + break; + } + + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTLTOOL_WRITE_PCI: + if (my_cmd.len==1) + pci_write_config_byte(tp->pci_dev, my_cmd.offset, + my_cmd.data); + else if (my_cmd.len==2) + pci_write_config_word(tp->pci_dev, my_cmd.offset, + my_cmd.data); + else if (my_cmd.len==4) + pci_write_config_dword(tp->pci_dev, my_cmd.offset, + my_cmd.data); + else { + ret = -EOPNOTSUPP; + break; + } + break; + case RTLTOOL_READ_EEPROM: + my_cmd.data = rtl8168_eeprom_read_sc(tp, my_cmd.offset); + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTLTOOL_WRITE_EEPROM: + rtl8168_eeprom_write_sc(tp, my_cmd.offset, my_cmd.data); + break; + case RTL_READ_OOB_MAC: + rtl8168_oob_mutex_lock(tp); + my_cmd.data = rtl8168_ocp_read(tp, my_cmd.offset, 4); + rtl8168_oob_mutex_unlock(tp); + + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTL_WRITE_OOB_MAC: + if (my_cmd.len == 0 || my_cmd.len > 4) + return -EOPNOTSUPP; + + rtl8168_oob_mutex_lock(tp); + rtl8168_ocp_write(tp, my_cmd.offset, my_cmd.len, my_cmd.data); + rtl8168_oob_mutex_unlock(tp); + break; + case RTL_ENABLE_PCI_DIAG: + tp->rtk_enable_diag = 1; + dprintk("enable rtk diag\n"); + break; + case RTL_DISABLE_PCI_DIAG: + tp->rtk_enable_diag = 0; + dprintk("disable rtk diag\n"); + break; + case RTL_READ_MAC_OCP: + if (my_cmd.offset % 2) + return -EOPNOTSUPP; + + my_cmd.data = rtl8168_mac_ocp_read(tp, my_cmd.offset); + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTL_WRITE_MAC_OCP: + if ((my_cmd.offset % 2) || (my_cmd.len != 2)) + return -EOPNOTSUPP; + + rtl8168_mac_ocp_write(tp, my_cmd.offset, (u16)my_cmd.data); + break; + case RTL_DIRECT_READ_PHY_OCP: + my_cmd.data = rtl8168_mdio_prot_direct_read_phy_ocp(tp, my_cmd.offset); + if (copy_to_user(ifr->ifr_data, &my_cmd, sizeof(my_cmd))) { + ret = -EFAULT; + break; + } + break; + case RTL_DIRECT_WRITE_PHY_OCP: + rtl8168_mdio_prot_direct_write_phy_ocp(tp, my_cmd.offset, my_cmd.data); + break; + default: + ret = -EOPNOTSUPP; + break; + } + + return ret; +} diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.h new file mode 100644 index 000000000000..7988810acd29 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/r8168/rtltool.h @@ -0,0 +1,86 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +################################################################################ +# +# r8168 is the Linux device driver released for Realtek Gigabit Ethernet +# controllers with PCI-Express interface. +# +# Copyright(c) 2023 Realtek Semiconductor Corp. All rights reserved. +# +# 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, see . +# +# Author: +# Realtek NIC software team +# No. 2, Innovation Road II, Hsinchu Science Park, Hsinchu 300, Taiwan +# +################################################################################ +*/ + +/************************************************************************************ + * This product is covered by one or more of the following patents: + * US6,570,884, US6,115,776, and US6,327,625. + ***********************************************************************************/ + +#ifndef _LINUX_RTLTOOL_H +#define _LINUX_RTLTOOL_H + +#define SIOCRTLTOOL SIOCDEVPRIVATE+1 + +enum rtl_cmd { + RTLTOOL_READ_MAC=0, + RTLTOOL_WRITE_MAC, + RTLTOOL_READ_PHY, + RTLTOOL_WRITE_PHY, + RTLTOOL_READ_EPHY, + RTLTOOL_WRITE_EPHY, + RTLTOOL_READ_ERI, + RTLTOOL_WRITE_ERI, + RTLTOOL_READ_PCI, + RTLTOOL_WRITE_PCI, + RTLTOOL_READ_EEPROM, + RTLTOOL_WRITE_EEPROM, + + RTL_READ_OOB_MAC, + RTL_WRITE_OOB_MAC, + + RTL_ENABLE_PCI_DIAG, + RTL_DISABLE_PCI_DIAG, + + RTL_READ_MAC_OCP, + RTL_WRITE_MAC_OCP, + + RTL_DIRECT_READ_PHY_OCP, + RTL_DIRECT_WRITE_PHY_OCP, + + RTLTOOL_INVALID +}; + +struct rtltool_cmd { + __u32 cmd; + __u32 offset; + __u32 len; + __u32 data; +}; + +enum mode_access { + MODE_NONE=0, + MODE_READ, + MODE_WRITE +}; + +#ifdef __KERNEL__ +int rtl8168_tool_ioctl(struct rtl8168_private *tp, struct ifreq *ifr); +#endif + +#endif /* _LINUX_RTLTOOL_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/Makefile b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/Makefile new file mode 100644 index 000000000000..6831a03a60fd --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/Makefile @@ -0,0 +1,18 @@ +PWD = $(shell pwd) + +EXTRA_CFLAGS:= -I$(M)/include +EXTRA_CFLAGS+= -Wall + +sdhci_pci-objs := sdhci-pci-core.o sdhci-pci-o2micro.o sdhci-pci-arasan.o \ + sdhci-pci-dwc-mshc.o sdhci-pci-gli.o +obj-m += sdhci_pci.o + + +all: + $(MAKE) -C $(KERNEL_SRC)/build M=$(PWD) modules + @if [ ! -d $(module_out_put_dir) ]; then mkdir -p $(module_out_put_dir) ;fi + @if [ -f $(PWD)/*.ko ]; then cp -p $(PWD)/*.ko $(module_out_put_dir);fi +clean: + rm -f $(PWD)/*.o $(PWD)/*.ko $(PWD)/*.mod.c $(PWD)/.*.cmd + rm -f $(PWD)/Module.markers $(PWD)/Module.symvers $(PWD)/modules.order + rm -rf $(PWD)/.tmp_versions \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/cqhci.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/cqhci.h new file mode 100644 index 000000000000..ba9387ed90eb --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/cqhci.h @@ -0,0 +1,324 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. + */ +#ifndef LINUX_MMC_CQHCI_H +#define LINUX_MMC_CQHCI_H + +#include +#include +#include +#include +#include +#include +#include +#include + +/* registers */ +/* version */ +#define CQHCI_VER 0x00 +#define CQHCI_VER_MAJOR(x) (((x) & GENMASK(11, 8)) >> 8) +#define CQHCI_VER_MINOR1(x) (((x) & GENMASK(7, 4)) >> 4) +#define CQHCI_VER_MINOR2(x) ((x) & GENMASK(3, 0)) + +/* capabilities */ +#define CQHCI_CAP 0x04 +#define CQHCI_CAP_CS 0x10000000 /* Crypto Support */ + +/* configuration */ +#define CQHCI_CFG 0x08 +#define CQHCI_DCMD 0x00001000 +#define CQHCI_TASK_DESC_SZ 0x00000100 +#define CQHCI_CRYPTO_GENERAL_ENABLE 0x00000002 +#define CQHCI_ENABLE 0x00000001 + +/* control */ +#define CQHCI_CTL 0x0C +#define CQHCI_CLEAR_ALL_TASKS 0x00000100 +#define CQHCI_HALT 0x00000001 + +/* interrupt status */ +#define CQHCI_IS 0x10 +#define CQHCI_IS_HAC BIT(0) +#define CQHCI_IS_TCC BIT(1) +#define CQHCI_IS_RED BIT(2) +#define CQHCI_IS_TCL BIT(3) +#define CQHCI_IS_GCE BIT(4) /* General Crypto Error */ +#define CQHCI_IS_ICCE BIT(5) /* Invalid Crypto Config Error */ + +#define CQHCI_IS_MASK (CQHCI_IS_TCC | CQHCI_IS_RED | \ + CQHCI_IS_GCE | CQHCI_IS_ICCE) + +/* interrupt status enable */ +#define CQHCI_ISTE 0x14 + +/* interrupt signal enable */ +#define CQHCI_ISGE 0x18 + +/* interrupt coalescing */ +#define CQHCI_IC 0x1C +#define CQHCI_IC_ENABLE BIT(31) +#define CQHCI_IC_RESET BIT(16) +#define CQHCI_IC_ICCTHWEN BIT(15) +#define CQHCI_IC_ICCTH(x) (((x) & 0x1F) << 8) +#define CQHCI_IC_ICTOVALWEN BIT(7) +#define CQHCI_IC_ICTOVAL(x) ((x) & 0x7F) + +/* task list base address */ +#define CQHCI_TDLBA 0x20 + +/* task list base address upper */ +#define CQHCI_TDLBAU 0x24 + +/* door-bell */ +#define CQHCI_TDBR 0x28 + +/* task completion notification */ +#define CQHCI_TCN 0x2C + +/* device queue status */ +#define CQHCI_DQS 0x30 + +/* device pending tasks */ +#define CQHCI_DPT 0x34 + +/* task clear */ +#define CQHCI_TCLR 0x38 + +/* task descriptor processing error */ +#define CQHCI_TDPE 0x3c + +/* send status config 1 */ +#define CQHCI_SSC1 0x40 +#define CQHCI_SSC1_CBC_MASK GENMASK(19, 16) + +/* send status config 2 */ +#define CQHCI_SSC2 0x44 + +/* response for dcmd */ +#define CQHCI_CRDCT 0x48 + +/* response mode error mask */ +#define CQHCI_RMEM 0x50 + +/* task error info */ +#define CQHCI_TERRI 0x54 + +#define CQHCI_TERRI_C_INDEX(x) ((x) & GENMASK(5, 0)) +#define CQHCI_TERRI_C_TASK(x) (((x) & GENMASK(12, 8)) >> 8) +#define CQHCI_TERRI_C_VALID(x) ((x) & BIT(15)) +#define CQHCI_TERRI_D_INDEX(x) (((x) & GENMASK(21, 16)) >> 16) +#define CQHCI_TERRI_D_TASK(x) (((x) & GENMASK(28, 24)) >> 24) +#define CQHCI_TERRI_D_VALID(x) ((x) & BIT(31)) + +/* command response index */ +#define CQHCI_CRI 0x58 + +/* command response argument */ +#define CQHCI_CRA 0x5C + +/* crypto capabilities */ +#define CQHCI_CCAP 0x100 +#define CQHCI_CRYPTOCAP 0x104 + +#define CQHCI_INT_ALL 0xF +#define CQHCI_IC_DEFAULT_ICCTH 31 +#define CQHCI_IC_DEFAULT_ICTOVAL 1 + +/* attribute fields */ +#define CQHCI_VALID(x) (((x) & 1) << 0) +#define CQHCI_END(x) (((x) & 1) << 1) +#define CQHCI_INT(x) (((x) & 1) << 2) +#define CQHCI_ACT(x) (((x) & 0x7) << 3) + +/* data command task descriptor fields */ +#define CQHCI_FORCED_PROG(x) (((x) & 1) << 6) +#define CQHCI_CONTEXT(x) (((x) & 0xF) << 7) +#define CQHCI_DATA_TAG(x) (((x) & 1) << 11) +#define CQHCI_DATA_DIR(x) (((x) & 1) << 12) +#define CQHCI_PRIORITY(x) (((x) & 1) << 13) +#define CQHCI_QBAR(x) (((x) & 1) << 14) +#define CQHCI_REL_WRITE(x) (((x) & 1) << 15) +#define CQHCI_BLK_COUNT(x) (((x) & 0xFFFF) << 16) +#define CQHCI_BLK_ADDR(x) (((x) & 0xFFFFFFFF) << 32) + +/* direct command task descriptor fields */ +#define CQHCI_CMD_INDEX(x) (((x) & 0x3F) << 16) +#define CQHCI_CMD_TIMING(x) (((x) & 1) << 22) +#define CQHCI_RESP_TYPE(x) (((x) & 0x3) << 23) + +/* crypto task descriptor fields (for bits 64-127 of task descriptor) */ +#define CQHCI_CRYPTO_ENABLE_BIT (1ULL << 47) +#define CQHCI_CRYPTO_KEYSLOT(x) ((u64)(x) << 32) + +/* transfer descriptor fields */ +#define CQHCI_DAT_LENGTH(x) (((x) & 0xFFFF) << 16) +#define CQHCI_DAT_ADDR_LO(x) (((x) & 0xFFFFFFFF) << 32) +#define CQHCI_DAT_ADDR_HI(x) (((x) & 0xFFFFFFFF) << 0) + +/* CCAP - Crypto Capability 100h */ +union cqhci_crypto_capabilities { + __le32 reg_val; + struct { + u8 num_crypto_cap; + u8 config_count; + u8 reserved; + u8 config_array_ptr; + }; +}; + +enum cqhci_crypto_key_size { + CQHCI_CRYPTO_KEY_SIZE_INVALID = 0, + CQHCI_CRYPTO_KEY_SIZE_128 = 1, + CQHCI_CRYPTO_KEY_SIZE_192 = 2, + CQHCI_CRYPTO_KEY_SIZE_256 = 3, + CQHCI_CRYPTO_KEY_SIZE_512 = 4, +}; + +enum cqhci_crypto_alg { + CQHCI_CRYPTO_ALG_AES_XTS = 0, + CQHCI_CRYPTO_ALG_BITLOCKER_AES_CBC = 1, + CQHCI_CRYPTO_ALG_AES_ECB = 2, + CQHCI_CRYPTO_ALG_ESSIV_AES_CBC = 3, +}; + +/* x-CRYPTOCAP - Crypto Capability X */ +union cqhci_crypto_cap_entry { + __le32 reg_val; + struct { + u8 algorithm_id; + u8 sdus_mask; /* Supported data unit size mask */ + u8 key_size; + u8 reserved; + }; +}; + +#define CQHCI_CRYPTO_CONFIGURATION_ENABLE (1 << 7) +#define CQHCI_CRYPTO_KEY_MAX_SIZE 64 +/* x-CRYPTOCFG - Crypto Configuration X */ +union cqhci_crypto_cfg_entry { + __le32 reg_val[32]; + struct { + u8 crypto_key[CQHCI_CRYPTO_KEY_MAX_SIZE]; + u8 data_unit_size; + u8 crypto_cap_idx; + u8 reserved_1; + u8 config_enable; + u8 reserved_multi_host; + u8 reserved_2; + u8 vsb[2]; + u8 reserved_3[56]; + }; +}; + +struct cqhci_host_ops; +struct mmc_host; +struct mmc_request; +struct cqhci_slot; + +struct cqhci_host { + const struct cqhci_host_ops *ops; + void __iomem *mmio; + struct mmc_host *mmc; + + spinlock_t lock; + + /* relative card address of device */ + unsigned int rca; + + /* 64 bit DMA */ + bool dma64; + int num_slots; + int qcnt; + + u32 dcmd_slot; + u32 caps; +#define CQHCI_TASK_DESC_SZ_128 0x1 + + u32 quirks; +#define CQHCI_QUIRK_SHORT_TXFR_DESC_SZ 0x1 + + bool enabled; + bool halted; + bool init_done; + bool activated; + bool waiting_for_idle; + bool recovery_halt; + + size_t desc_size; + size_t data_size; + + u8 *desc_base; + + /* total descriptor size */ + u8 slot_sz; + + /* 64/128 bit depends on CQHCI_CFG */ + u8 task_desc_len; + + /* 64 bit on 32-bit arch, 128 bit on 64-bit */ + u8 link_desc_len; + + u8 *trans_desc_base; + /* same length as transfer descriptor */ + u8 trans_desc_len; + + dma_addr_t desc_dma_base; + dma_addr_t trans_desc_dma_base; + + struct completion halt_comp; + wait_queue_head_t wait_queue; + struct cqhci_slot *slot; + +#ifdef CONFIG_MMC_CRYPTO + union cqhci_crypto_capabilities crypto_capabilities; + union cqhci_crypto_cap_entry *crypto_cap_array; + u32 crypto_cfg_register; +#endif +}; + +struct cqhci_host_ops { + void (*dumpregs)(struct mmc_host *mmc); + void (*write_l)(struct cqhci_host *host, u32 val, int reg); + u32 (*read_l)(struct cqhci_host *host, int reg); + void (*enable)(struct mmc_host *mmc); + void (*disable)(struct mmc_host *mmc, bool recovery); + void (*update_dcmd_desc)(struct mmc_host *mmc, struct mmc_request *mrq, + u64 *data); + void (*pre_enable)(struct mmc_host *mmc); + void (*post_disable)(struct mmc_host *mmc); +#ifdef CONFIG_MMC_CRYPTO + int (*program_key)(struct cqhci_host *cq_host, + const union cqhci_crypto_cfg_entry *cfg, int slot); +#endif +}; + +static inline void cqhci_writel(struct cqhci_host *host, u32 val, int reg) +{ + if (unlikely(host->ops->write_l)) + host->ops->write_l(host, val, reg); + else + writel_relaxed(val, host->mmio + reg); +} + +static inline u32 cqhci_readl(struct cqhci_host *host, int reg) +{ + if (unlikely(host->ops->read_l)) + return host->ops->read_l(host, reg); + else + return readl_relaxed(host->mmio + reg); +} + +struct platform_device; + +irqreturn_t cqhci_irq(struct mmc_host *mmc, u32 intmask, int cmd_error, + int data_error); +int cqhci_init(struct cqhci_host *cq_host, struct mmc_host *mmc, bool dma64); +struct cqhci_host *cqhci_pltfm_init(struct platform_device *pdev); +int cqhci_deactivate(struct mmc_host *mmc); +static inline int cqhci_suspend(struct mmc_host *mmc) +{ + return cqhci_deactivate(mmc); +} +int cqhci_resume(struct mmc_host *mmc); + +#endif diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-arasan.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-arasan.c new file mode 100644 index 000000000000..499f3205ec5c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-arasan.c @@ -0,0 +1,331 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * sdhci-pci-arasan.c - Driver for Arasan PCI Controller with + * integrated phy. + * + * Copyright (C) 2017 Arasan Chip Systems Inc. + * + * Author: Atul Garg + */ + +#include +#include + +#include "sdhci.h" +#include "sdhci-pci.h" + +/* Extra registers for Arasan SD/SDIO/MMC Host Controller with PHY */ +#define PHY_ADDR_REG 0x300 +#define PHY_DAT_REG 0x304 + +#define PHY_WRITE BIT(8) +#define PHY_BUSY BIT(9) +#define DATA_MASK 0xFF + +/* PHY Specific Registers */ +#define DLL_STATUS 0x00 +#define IPAD_CTRL1 0x01 +#define IPAD_CTRL2 0x02 +#define IPAD_STS 0x03 +#define IOREN_CTRL1 0x06 +#define IOREN_CTRL2 0x07 +#define IOPU_CTRL1 0x08 +#define IOPU_CTRL2 0x09 +#define ITAP_DELAY 0x0C +#define OTAP_DELAY 0x0D +#define STRB_SEL 0x0E +#define CLKBUF_SEL 0x0F +#define MODE_CTRL 0x11 +#define DLL_TRIM 0x12 +#define CMD_CTRL 0x20 +#define DATA_CTRL 0x21 +#define STRB_CTRL 0x22 +#define CLK_CTRL 0x23 +#define PHY_CTRL 0x24 + +#define DLL_ENBL BIT(3) +#define RTRIM_EN BIT(1) +#define PDB_ENBL BIT(1) +#define RETB_ENBL BIT(6) +#define ODEN_CMD BIT(1) +#define ODEN_DAT 0xFF +#define REN_STRB BIT(0) +#define REN_CMND BIT(1) +#define REN_DATA 0xFF +#define PU_CMD BIT(1) +#define PU_DAT 0xFF +#define ITAPDLY_EN BIT(0) +#define OTAPDLY_EN BIT(0) +#define OD_REL_CMD BIT(1) +#define OD_REL_DAT 0xFF +#define DLLTRM_ICP 0x8 +#define PDB_CMND BIT(0) +#define PDB_DATA 0xFF +#define PDB_STRB BIT(0) +#define PDB_CLOCK BIT(0) +#define CALDONE_MASK 0x10 +#define DLL_RDY_MASK 0x10 +#define MAX_CLK_BUF 0x7 + +/* Mode Controls */ +#define ENHSTRB_MODE BIT(0) +#define HS400_MODE BIT(1) +#define LEGACY_MODE BIT(2) +#define DDR50_MODE BIT(3) + +/* + * Controller has no specific bits for HS200/HS. + * Used BIT(4), BIT(5) for software programming. + */ +#define HS200_MODE BIT(4) +#define HISPD_MODE BIT(5) + +#define OTAPDLY(x) (((x) << 1) | OTAPDLY_EN) +#define ITAPDLY(x) (((x) << 1) | ITAPDLY_EN) +#define FREQSEL(x) (((x) << 5) | DLL_ENBL) +#define IOPAD(x, y) ((x) | ((y) << 2)) + +/* Arasan private data */ +struct arasan_host { + u32 chg_clk; +}; + +static int arasan_phy_addr_poll(struct sdhci_host *host, u32 offset, u32 mask) +{ + ktime_t timeout = ktime_add_us(ktime_get(), 100); + bool failed; + u8 val = 0; + + while (1) { + failed = ktime_after(ktime_get(), timeout); + val = sdhci_readw(host, PHY_ADDR_REG); + if (!(val & mask)) + return 0; + if (failed) + return -EBUSY; + } +} + +static int arasan_phy_write(struct sdhci_host *host, u8 data, u8 offset) +{ + sdhci_writew(host, data, PHY_DAT_REG); + sdhci_writew(host, (PHY_WRITE | offset), PHY_ADDR_REG); + return arasan_phy_addr_poll(host, PHY_ADDR_REG, PHY_BUSY); +} + +static int arasan_phy_read(struct sdhci_host *host, u8 offset, u8 *data) +{ + int ret; + + sdhci_writew(host, 0, PHY_DAT_REG); + sdhci_writew(host, offset, PHY_ADDR_REG); + ret = arasan_phy_addr_poll(host, PHY_ADDR_REG, PHY_BUSY); + + /* Masking valid data bits */ + *data = sdhci_readw(host, PHY_DAT_REG) & DATA_MASK; + return ret; +} + +static int arasan_phy_sts_poll(struct sdhci_host *host, u32 offset, u32 mask) +{ + int ret; + ktime_t timeout = ktime_add_us(ktime_get(), 100); + bool failed; + u8 val = 0; + + while (1) { + failed = ktime_after(ktime_get(), timeout); + ret = arasan_phy_read(host, offset, &val); + if (ret) + return -EBUSY; + else if (val & mask) + return 0; + if (failed) + return -EBUSY; + } +} + +/* Initialize the Arasan PHY */ +static int arasan_phy_init(struct sdhci_host *host) +{ + int ret; + u8 val; + + /* Program IOPADs and wait for calibration to be done */ + if (arasan_phy_read(host, IPAD_CTRL1, &val) || + arasan_phy_write(host, val | RETB_ENBL | PDB_ENBL, IPAD_CTRL1) || + arasan_phy_read(host, IPAD_CTRL2, &val) || + arasan_phy_write(host, val | RTRIM_EN, IPAD_CTRL2)) + return -EBUSY; + ret = arasan_phy_sts_poll(host, IPAD_STS, CALDONE_MASK); + if (ret) + return -EBUSY; + + /* Program CMD/Data lines */ + if (arasan_phy_read(host, IOREN_CTRL1, &val) || + arasan_phy_write(host, val | REN_CMND | REN_STRB, IOREN_CTRL1) || + arasan_phy_read(host, IOPU_CTRL1, &val) || + arasan_phy_write(host, val | PU_CMD, IOPU_CTRL1) || + arasan_phy_read(host, CMD_CTRL, &val) || + arasan_phy_write(host, val | PDB_CMND, CMD_CTRL) || + arasan_phy_read(host, IOREN_CTRL2, &val) || + arasan_phy_write(host, val | REN_DATA, IOREN_CTRL2) || + arasan_phy_read(host, IOPU_CTRL2, &val) || + arasan_phy_write(host, val | PU_DAT, IOPU_CTRL2) || + arasan_phy_read(host, DATA_CTRL, &val) || + arasan_phy_write(host, val | PDB_DATA, DATA_CTRL) || + arasan_phy_read(host, STRB_CTRL, &val) || + arasan_phy_write(host, val | PDB_STRB, STRB_CTRL) || + arasan_phy_read(host, CLK_CTRL, &val) || + arasan_phy_write(host, val | PDB_CLOCK, CLK_CTRL) || + arasan_phy_read(host, CLKBUF_SEL, &val) || + arasan_phy_write(host, val | MAX_CLK_BUF, CLKBUF_SEL) || + arasan_phy_write(host, LEGACY_MODE, MODE_CTRL)) + return -EBUSY; + return 0; +} + +/* Set Arasan PHY for different modes */ +static int arasan_phy_set(struct sdhci_host *host, u8 mode, u8 otap, + u8 drv_type, u8 itap, u8 trim, u8 clk) +{ + u8 val; + int ret; + + if (mode == HISPD_MODE || mode == HS200_MODE) + ret = arasan_phy_write(host, 0x0, MODE_CTRL); + else + ret = arasan_phy_write(host, mode, MODE_CTRL); + if (ret) + return ret; + if (mode == HS400_MODE || mode == HS200_MODE) { + ret = arasan_phy_read(host, IPAD_CTRL1, &val); + if (ret) + return ret; + ret = arasan_phy_write(host, IOPAD(val, drv_type), IPAD_CTRL1); + if (ret) + return ret; + } + if (mode == LEGACY_MODE) { + ret = arasan_phy_write(host, 0x0, OTAP_DELAY); + if (ret) + return ret; + ret = arasan_phy_write(host, 0x0, ITAP_DELAY); + } else { + ret = arasan_phy_write(host, OTAPDLY(otap), OTAP_DELAY); + if (ret) + return ret; + if (mode != HS200_MODE) + ret = arasan_phy_write(host, ITAPDLY(itap), ITAP_DELAY); + else + ret = arasan_phy_write(host, 0x0, ITAP_DELAY); + } + if (ret) + return ret; + if (mode != LEGACY_MODE) { + ret = arasan_phy_write(host, trim, DLL_TRIM); + if (ret) + return ret; + } + ret = arasan_phy_write(host, 0, DLL_STATUS); + if (ret) + return ret; + if (mode != LEGACY_MODE) { + ret = arasan_phy_write(host, FREQSEL(clk), DLL_STATUS); + if (ret) + return ret; + ret = arasan_phy_sts_poll(host, DLL_STATUS, DLL_RDY_MASK); + if (ret) + return -EBUSY; + } + return 0; +} + +static int arasan_select_phy_clock(struct sdhci_host *host) +{ + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct arasan_host *arasan_host = sdhci_pci_priv(slot); + u8 clk; + + if (arasan_host->chg_clk == host->mmc->ios.clock) + return 0; + + arasan_host->chg_clk = host->mmc->ios.clock; + if (host->mmc->ios.clock == 200000000) + clk = 0x0; + else if (host->mmc->ios.clock == 100000000) + clk = 0x2; + else if (host->mmc->ios.clock == 50000000) + clk = 0x1; + else + clk = 0x0; + + if (host->mmc_host_ops.hs400_enhanced_strobe) { + arasan_phy_set(host, ENHSTRB_MODE, 1, 0x0, 0x0, + DLLTRM_ICP, clk); + } else { + switch (host->mmc->ios.timing) { + case MMC_TIMING_LEGACY: + arasan_phy_set(host, LEGACY_MODE, 0x0, 0x0, 0x0, + 0x0, 0x0); + break; + case MMC_TIMING_MMC_HS: + case MMC_TIMING_SD_HS: + arasan_phy_set(host, HISPD_MODE, 0x3, 0x0, 0x2, + DLLTRM_ICP, clk); + break; + case MMC_TIMING_MMC_HS200: + case MMC_TIMING_UHS_SDR104: + arasan_phy_set(host, HS200_MODE, 0x2, + host->mmc->ios.drv_type, 0x0, + DLLTRM_ICP, clk); + break; + case MMC_TIMING_MMC_DDR52: + case MMC_TIMING_UHS_DDR50: + arasan_phy_set(host, DDR50_MODE, 0x1, 0x0, + 0x0, DLLTRM_ICP, clk); + break; + case MMC_TIMING_MMC_HS400: + arasan_phy_set(host, HS400_MODE, 0x1, + host->mmc->ios.drv_type, 0xa, + DLLTRM_ICP, clk); + break; + default: + break; + } + } + return 0; +} + +static int arasan_pci_probe_slot(struct sdhci_pci_slot *slot) +{ + int err; + + slot->host->mmc->caps |= MMC_CAP_NONREMOVABLE | MMC_CAP_8_BIT_DATA; + err = arasan_phy_init(slot->host); + if (err) + return -ENODEV; + return 0; +} + +static void arasan_sdhci_set_clock(struct sdhci_host *host, unsigned int clock) +{ + sdhci_set_clock(host, clock); + + /* Change phy settings for the new clock */ + arasan_select_phy_clock(host); +} + +static const struct sdhci_ops arasan_sdhci_pci_ops = { + .set_clock = arasan_sdhci_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, +}; + +const struct sdhci_pci_fixes sdhci_arasan = { + .probe_slot = arasan_pci_probe_slot, + .ops = &arasan_sdhci_pci_ops, + .priv_size = sizeof(struct arasan_host), +}; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-core.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-core.c new file mode 100644 index 000000000000..e9c31674613e --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-core.c @@ -0,0 +1,2468 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* linux/drivers/mmc/host/sdhci-pci.c - SDHCI on PCI bus interface + * + * Copyright (C) 2005-2008 Pierre Ossman, All Rights Reserved. + * + * Thanks to the following companies for their support: + * + * - JMicron (hardware and technical support) + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#ifdef CONFIG_X86 +#include +#endif + +#include "cqhci.h" + +#include "sdhci.h" +#include "sdhci-pci.h" + +#define mem_clear(data, size) memset((data), 0, (size)) + +static int wb_sdhci_pci = 0; +module_param(wb_sdhci_pci, int, S_IRUGO); + +static void sdhci_pci_hw_reset(struct sdhci_host *host); + +#ifdef CONFIG_PM_SLEEP +static int sdhci_pci_init_wakeup(struct sdhci_pci_chip *chip) +{ + mmc_pm_flag_t pm_flags = 0; + bool cap_cd_wake = false; + int i; + + for (i = 0; i < chip->num_slots; i++) { + struct sdhci_pci_slot *slot = chip->slots[i]; + + if (slot) { + pm_flags |= slot->host->mmc->pm_flags; + if (slot->host->mmc->caps & MMC_CAP_CD_WAKE) + cap_cd_wake = true; + } + } + + if ((pm_flags & MMC_PM_KEEP_POWER) && (pm_flags & MMC_PM_WAKE_SDIO_IRQ)) + return device_wakeup_enable(&chip->pdev->dev); + else if (!cap_cd_wake) + return device_wakeup_disable(&chip->pdev->dev); + + return 0; +} + +static int sdhci_pci_suspend_host(struct sdhci_pci_chip *chip) +{ + int i, ret; + + sdhci_pci_init_wakeup(chip); + + for (i = 0; i < chip->num_slots; i++) { + struct sdhci_pci_slot *slot = chip->slots[i]; + struct sdhci_host *host; + + if (!slot) + continue; + + host = slot->host; + + if (chip->pm_retune && host->tuning_mode != SDHCI_TUNING_MODE_3) + mmc_retune_needed(host->mmc); + + ret = sdhci_suspend_host(host); + if (ret) + goto err_pci_suspend; + + if (device_may_wakeup(&chip->pdev->dev)) + mmc_gpio_set_cd_wake(host->mmc, true); + } + + return 0; + +err_pci_suspend: + while (--i >= 0) + sdhci_resume_host(chip->slots[i]->host); + return ret; +} + +int sdhci_pci_resume_host(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot; + int i, ret; + + for (i = 0; i < chip->num_slots; i++) { + slot = chip->slots[i]; + if (!slot) + continue; + + ret = sdhci_resume_host(slot->host); + if (ret) + return ret; + + mmc_gpio_set_cd_wake(slot->host->mmc, false); + } + + return 0; +} + +static int sdhci_cqhci_suspend(struct sdhci_pci_chip *chip) +{ + int ret; + + ret = cqhci_suspend(chip->slots[0]->host->mmc); + if (ret) + return ret; + + return sdhci_pci_suspend_host(chip); +} + +static int sdhci_cqhci_resume(struct sdhci_pci_chip *chip) +{ + int ret; + + ret = sdhci_pci_resume_host(chip); + if (ret) + return ret; + + return cqhci_resume(chip->slots[0]->host->mmc); +} +#endif + +#ifdef CONFIG_PM +static int sdhci_pci_runtime_suspend_host(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot; + struct sdhci_host *host; + int i, ret; + + for (i = 0; i < chip->num_slots; i++) { + slot = chip->slots[i]; + if (!slot) + continue; + + host = slot->host; + + ret = sdhci_runtime_suspend_host(host); + if (ret) + goto err_pci_runtime_suspend; + + if (chip->rpm_retune && + host->tuning_mode != SDHCI_TUNING_MODE_3) + mmc_retune_needed(host->mmc); + } + + return 0; + +err_pci_runtime_suspend: + while (--i >= 0) + sdhci_runtime_resume_host(chip->slots[i]->host, 0); + return ret; +} + +static int sdhci_pci_runtime_resume_host(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot; + int i, ret; + + for (i = 0; i < chip->num_slots; i++) { + slot = chip->slots[i]; + if (!slot) + continue; + + ret = sdhci_runtime_resume_host(slot->host, 0); + if (ret) + return ret; + } + + return 0; +} + +static int sdhci_cqhci_runtime_suspend(struct sdhci_pci_chip *chip) +{ + int ret; + + ret = cqhci_suspend(chip->slots[0]->host->mmc); + if (ret) + return ret; + + return sdhci_pci_runtime_suspend_host(chip); +} + +static int sdhci_cqhci_runtime_resume(struct sdhci_pci_chip *chip) +{ + int ret; + + ret = sdhci_pci_runtime_resume_host(chip); + if (ret) + return ret; + + return cqhci_resume(chip->slots[0]->host->mmc); +} +#endif + +static u32 sdhci_cqhci_irq(struct sdhci_host *host, u32 intmask) +{ + int cmd_error = 0; + int data_error = 0; + + if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error)) + return intmask; + + cqhci_irq(host->mmc, intmask, cmd_error, data_error); + + return 0; +} + +static void sdhci_pci_dumpregs(struct mmc_host *mmc) +{ + sdhci_dumpregs(mmc_priv(mmc)); +} + +static void sdhci_cqhci_reset(struct sdhci_host *host, u8 mask) +{ + if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL) && + host->mmc->cqe_private) + cqhci_deactivate(host->mmc); + sdhci_reset(host, mask); +} + +/*****************************************************************************\ + * * + * Hardware specific quirk handling * + * * +\*****************************************************************************/ + +static int ricoh_probe(struct sdhci_pci_chip *chip) +{ + if (chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG || + chip->pdev->subsystem_vendor == PCI_VENDOR_ID_SONY) + chip->quirks |= SDHCI_QUIRK_NO_CARD_NO_RESET; + return 0; +} + +static int ricoh_mmc_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->caps = + FIELD_PREP(SDHCI_TIMEOUT_CLK_MASK, 0x21) | + FIELD_PREP(SDHCI_CLOCK_BASE_MASK, 0x21) | + SDHCI_TIMEOUT_CLK_UNIT | + SDHCI_CAN_VDD_330 | + SDHCI_CAN_DO_HISPD | + SDHCI_CAN_DO_SDMA; + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int ricoh_mmc_resume(struct sdhci_pci_chip *chip) +{ + /* Apply a delay to allow controller to settle */ + /* Otherwise it becomes confused if card state changed + during suspend */ + msleep(500); + return sdhci_pci_resume_host(chip); +} +#endif + +static const struct sdhci_pci_fixes sdhci_ricoh = { + .probe = ricoh_probe, + .quirks = SDHCI_QUIRK_32BIT_DMA_ADDR | + SDHCI_QUIRK_FORCE_DMA | + SDHCI_QUIRK_CLOCK_BEFORE_RESET, +}; + +static const struct sdhci_pci_fixes sdhci_ricoh_mmc = { + .probe_slot = ricoh_mmc_probe_slot, +#ifdef CONFIG_PM_SLEEP + .resume = ricoh_mmc_resume, +#endif + .quirks = SDHCI_QUIRK_32BIT_DMA_ADDR | + SDHCI_QUIRK_CLOCK_BEFORE_RESET | + SDHCI_QUIRK_NO_CARD_NO_RESET | + SDHCI_QUIRK_MISSING_CAPS +}; + +static void ene_714_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) +{ + struct sdhci_host *host = mmc_priv(mmc); + + sdhci_set_ios(mmc, ios); + + /* + * Some (ENE) controllers misbehave on some ios operations, + * signalling timeout and CRC errors even on CMD0. Resetting + * it on each ios seems to solve the problem. + */ + if (!(host->flags & SDHCI_DEVICE_DEAD)) + sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); +} + +static int ene_714_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->mmc_host_ops.set_ios = ene_714_set_ios; + return 0; +} + +static const struct sdhci_pci_fixes sdhci_ene_712 = { + .quirks = SDHCI_QUIRK_SINGLE_POWER_WRITE | + SDHCI_QUIRK_BROKEN_DMA, +}; + +static const struct sdhci_pci_fixes sdhci_ene_714 = { + .quirks = SDHCI_QUIRK_SINGLE_POWER_WRITE | + SDHCI_QUIRK_BROKEN_DMA, + .probe_slot = ene_714_probe_slot, +}; + +static const struct sdhci_pci_fixes sdhci_cafe = { + .quirks = SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER | + SDHCI_QUIRK_NO_BUSY_IRQ | + SDHCI_QUIRK_BROKEN_CARD_DETECTION | + SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, +}; + +static const struct sdhci_pci_fixes sdhci_intel_qrk = { + .quirks = SDHCI_QUIRK_NO_HISPD_BIT, +}; + +static int mrst_hc_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA; + return 0; +} + +/* + * ADMA operation is disabled for Moorestown platform due to + * hardware bugs. + */ +static int mrst_hc_probe(struct sdhci_pci_chip *chip) +{ + /* + * slots number is fixed here for MRST as SDIO3/5 are never used and + * have hardware bugs. + */ + chip->num_slots = 1; + return 0; +} + +static int pch_hc_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA; + return 0; +} + +static int mfd_emmc_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE; + slot->host->mmc->caps2 |= MMC_CAP2_BOOTPART_NOACC; + return 0; +} + +static int mfd_sdio_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE; + return 0; +} + +static const struct sdhci_pci_fixes sdhci_intel_mrst_hc0 = { + .quirks = SDHCI_QUIRK_BROKEN_ADMA | SDHCI_QUIRK_NO_HISPD_BIT, + .probe_slot = mrst_hc_probe_slot, +}; + +static const struct sdhci_pci_fixes sdhci_intel_mrst_hc1_hc2 = { + .quirks = SDHCI_QUIRK_BROKEN_ADMA | SDHCI_QUIRK_NO_HISPD_BIT, + .probe = mrst_hc_probe, +}; + +static const struct sdhci_pci_fixes sdhci_intel_mfd_sd = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .allow_runtime_pm = true, + .own_cd_for_runtime_pm = true, +}; + +static const struct sdhci_pci_fixes sdhci_intel_mfd_sdio = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON, + .allow_runtime_pm = true, + .probe_slot = mfd_sdio_probe_slot, +}; + +static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .allow_runtime_pm = true, + .probe_slot = mfd_emmc_probe_slot, +}; + +static const struct sdhci_pci_fixes sdhci_intel_pch_sdio = { + .quirks = SDHCI_QUIRK_BROKEN_ADMA, + .probe_slot = pch_hc_probe_slot, +}; + +#ifdef CONFIG_X86 + +#define BYT_IOSF_SCCEP 0x63 +#define BYT_IOSF_OCP_NETCTRL0 0x1078 +#define BYT_IOSF_OCP_TIMEOUT_BASE GENMASK(10, 8) + +static void byt_ocp_setting(struct pci_dev *pdev) +{ + u32 val = 0; + + if (pdev->device != PCI_DEVICE_ID_INTEL_BYT_EMMC && + pdev->device != PCI_DEVICE_ID_INTEL_BYT_SDIO && + pdev->device != PCI_DEVICE_ID_INTEL_BYT_SD && + pdev->device != PCI_DEVICE_ID_INTEL_BYT_EMMC2) + return; + + if (iosf_mbi_read(BYT_IOSF_SCCEP, MBI_CR_READ, BYT_IOSF_OCP_NETCTRL0, + &val)) { + dev_err(&pdev->dev, "%s read error\n", __func__); + return; + } + + if (!(val & BYT_IOSF_OCP_TIMEOUT_BASE)) + return; + + val &= ~BYT_IOSF_OCP_TIMEOUT_BASE; + + if (iosf_mbi_write(BYT_IOSF_SCCEP, MBI_CR_WRITE, BYT_IOSF_OCP_NETCTRL0, + val)) { + dev_err(&pdev->dev, "%s write error\n", __func__); + return; + } + + dev_dbg(&pdev->dev, "%s completed\n", __func__); +} + +#else + +static inline void byt_ocp_setting(struct pci_dev *pdev) +{ +} + +#endif + +enum { + INTEL_DSM_FNS = 0, + INTEL_DSM_V18_SWITCH = 3, + INTEL_DSM_V33_SWITCH = 4, + INTEL_DSM_DRV_STRENGTH = 9, + INTEL_DSM_D3_RETUNE = 10, +}; + +struct intel_host { + u32 dsm_fns; + int drv_strength; + bool d3_retune; + bool rpm_retune_ok; + bool needs_pwr_off; + u32 glk_rx_ctrl1; + u32 glk_tun_val; + u32 active_ltr; + u32 idle_ltr; +}; + +static const guid_t intel_dsm_guid = + GUID_INIT(0xF6C13EA5, 0x65CD, 0x461F, + 0xAB, 0x7A, 0x29, 0xF7, 0xE8, 0xD5, 0xBD, 0x61); + +static int __intel_dsm(struct intel_host *intel_host, struct device *dev, + unsigned int fn, u32 *result) +{ + union acpi_object *obj; + int err = 0; + size_t len; + + obj = acpi_evaluate_dsm(ACPI_HANDLE(dev), &intel_dsm_guid, 0, fn, NULL); + if (!obj) + return -EOPNOTSUPP; + + if (obj->type != ACPI_TYPE_BUFFER || obj->buffer.length < 1) { + err = -EINVAL; + goto out; + } + + len = min_t(size_t, obj->buffer.length, 4); + + *result = 0; + memcpy(result, obj->buffer.pointer, len); +out: + ACPI_FREE(obj); + + return err; +} + +static int intel_dsm(struct intel_host *intel_host, struct device *dev, + unsigned int fn, u32 *result) +{ + if (fn > 31 || !(intel_host->dsm_fns & (1 << fn))) + return -EOPNOTSUPP; + + return __intel_dsm(intel_host, dev, fn, result); +} + +static void intel_dsm_init(struct intel_host *intel_host, struct device *dev, + struct mmc_host *mmc) +{ + int err; + u32 val; + + intel_host->d3_retune = true; + + err = __intel_dsm(intel_host, dev, INTEL_DSM_FNS, &intel_host->dsm_fns); + if (err) { + pr_debug("%s: DSM not supported, error %d\n", + mmc_hostname(mmc), err); + return; + } + + pr_debug("%s: DSM function mask %#x\n", + mmc_hostname(mmc), intel_host->dsm_fns); + + err = intel_dsm(intel_host, dev, INTEL_DSM_DRV_STRENGTH, &val); + intel_host->drv_strength = err ? 0 : val; + + err = intel_dsm(intel_host, dev, INTEL_DSM_D3_RETUNE, &val); + intel_host->d3_retune = err ? true : !!val; +} + +static void sdhci_pci_int_hw_reset(struct sdhci_host *host) +{ + u8 reg; + + reg = sdhci_readb(host, SDHCI_POWER_CONTROL); + reg |= 0x10; + sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); + /* For eMMC, minimum is 1us but give it 9us for good measure */ + udelay(9); + reg &= ~0x10; + sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); + /* For eMMC, minimum is 200us but give it 300us for good measure */ + usleep_range(300, 1000); +} + +static int intel_select_drive_strength(struct mmc_card *card, + unsigned int max_dtr, int host_drv, + int card_drv, int *drv_type) +{ + struct sdhci_host *host = mmc_priv(card->host); + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct intel_host *intel_host = sdhci_pci_priv(slot); + + if (!(mmc_driver_type_mask(intel_host->drv_strength) & card_drv)) + return 0; + + return intel_host->drv_strength; +} + +static int bxt_get_cd(struct mmc_host *mmc) +{ + int gpio_cd = mmc_gpio_get_cd(mmc); + + if (!gpio_cd) + return 0; + + return sdhci_get_cd_nogpio(mmc); +} + +static int mrfld_get_cd(struct mmc_host *mmc) +{ + return sdhci_get_cd_nogpio(mmc); +} + +#define SDHCI_INTEL_PWR_TIMEOUT_CNT 20 +#define SDHCI_INTEL_PWR_TIMEOUT_UDELAY 100 + +static void sdhci_intel_set_power(struct sdhci_host *host, unsigned char mode, + unsigned short vdd) +{ + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct intel_host *intel_host = sdhci_pci_priv(slot); + int cntr; + u8 reg; + + /* + * Bus power may control card power, but a full reset still may not + * reset the power, whereas a direct write to SDHCI_POWER_CONTROL can. + * That might be needed to initialize correctly, if the card was left + * powered on previously. + */ + if (intel_host->needs_pwr_off) { + intel_host->needs_pwr_off = false; + if (mode != MMC_POWER_OFF) { + sdhci_writeb(host, 0, SDHCI_POWER_CONTROL); + usleep_range(10000, 12500); + } + } + + sdhci_set_power(host, mode, vdd); + + if (mode == MMC_POWER_OFF) + return; + + /* + * Bus power might not enable after D3 -> D0 transition due to the + * present state not yet having propagated. Retry for up to 2ms. + */ + for (cntr = 0; cntr < SDHCI_INTEL_PWR_TIMEOUT_CNT; cntr++) { + reg = sdhci_readb(host, SDHCI_POWER_CONTROL); + if (reg & SDHCI_POWER_ON) + break; + udelay(SDHCI_INTEL_PWR_TIMEOUT_UDELAY); + reg |= SDHCI_POWER_ON; + sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); + } +} + +static void sdhci_intel_set_uhs_signaling(struct sdhci_host *host, + unsigned int timing) +{ + /* Set UHS timing to SDR25 for High Speed mode */ + if (timing == MMC_TIMING_MMC_HS || timing == MMC_TIMING_SD_HS) + timing = MMC_TIMING_UHS_SDR25; + sdhci_set_uhs_signaling(host, timing); +} + +#define INTEL_HS400_ES_REG 0x78 +#define INTEL_HS400_ES_BIT BIT(0) + +static void intel_hs400_enhanced_strobe(struct mmc_host *mmc, + struct mmc_ios *ios) +{ + struct sdhci_host *host = mmc_priv(mmc); + u32 val; + + val = sdhci_readl(host, INTEL_HS400_ES_REG); + if (ios->enhanced_strobe) + val |= INTEL_HS400_ES_BIT; + else + val &= ~INTEL_HS400_ES_BIT; + sdhci_writel(host, val, INTEL_HS400_ES_REG); +} + +static int intel_start_signal_voltage_switch(struct mmc_host *mmc, + struct mmc_ios *ios) +{ + struct device *dev = mmc_dev(mmc); + struct sdhci_host *host = mmc_priv(mmc); + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct intel_host *intel_host = sdhci_pci_priv(slot); + unsigned int fn; + u32 result = 0; + int err; + + err = sdhci_start_signal_voltage_switch(mmc, ios); + if (err) + return err; + + switch (ios->signal_voltage) { + case MMC_SIGNAL_VOLTAGE_330: + fn = INTEL_DSM_V33_SWITCH; + break; + case MMC_SIGNAL_VOLTAGE_180: + fn = INTEL_DSM_V18_SWITCH; + break; + default: + return 0; + } + + err = intel_dsm(intel_host, dev, fn, &result); + pr_debug("%s: %s DSM fn %u error %d result %u\n", + mmc_hostname(mmc), __func__, fn, err, result); + + return 0; +} + +static const struct sdhci_ops sdhci_intel_byt_ops = { + .set_clock = sdhci_set_clock, + .set_power = sdhci_intel_set_power, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_reset, + .set_uhs_signaling = sdhci_intel_set_uhs_signaling, + .hw_reset = sdhci_pci_hw_reset, +}; + +static const struct sdhci_ops sdhci_intel_glk_ops = { + .set_clock = sdhci_set_clock, + .set_power = sdhci_intel_set_power, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_cqhci_reset, + .set_uhs_signaling = sdhci_intel_set_uhs_signaling, + .hw_reset = sdhci_pci_hw_reset, + .irq = sdhci_cqhci_irq, +}; + +static void byt_read_dsm(struct sdhci_pci_slot *slot) +{ + struct intel_host *intel_host = sdhci_pci_priv(slot); + struct device *dev = &slot->chip->pdev->dev; + struct mmc_host *mmc = slot->host->mmc; + + intel_dsm_init(intel_host, dev, mmc); + slot->chip->rpm_retune = intel_host->d3_retune; +} + +static int intel_execute_tuning(struct mmc_host *mmc, u32 opcode) +{ + int err = sdhci_execute_tuning(mmc, opcode); + struct sdhci_host *host = mmc_priv(mmc); + + if (err) + return err; + + /* + * Tuning can leave the IP in an active state (Buffer Read Enable bit + * set) which prevents the entry to low power states (i.e. S0i3). Data + * reset will clear it. + */ + sdhci_reset(host, SDHCI_RESET_DATA); + + return 0; +} + +#define INTEL_ACTIVELTR 0x804 +#define INTEL_IDLELTR 0x808 + +#define INTEL_LTR_REQ BIT(15) +#define INTEL_LTR_SCALE_MASK GENMASK(11, 10) +#define INTEL_LTR_SCALE_1US (2 << 10) +#define INTEL_LTR_SCALE_32US (3 << 10) +#define INTEL_LTR_VALUE_MASK GENMASK(9, 0) + +static void intel_cache_ltr(struct sdhci_pci_slot *slot) +{ + struct intel_host *intel_host = sdhci_pci_priv(slot); + struct sdhci_host *host = slot->host; + + intel_host->active_ltr = readl(host->ioaddr + INTEL_ACTIVELTR); + intel_host->idle_ltr = readl(host->ioaddr + INTEL_IDLELTR); +} + +static void intel_ltr_set(struct device *dev, s32 val) +{ + struct sdhci_pci_chip *chip = dev_get_drvdata(dev); + struct sdhci_pci_slot *slot = chip->slots[0]; + struct intel_host *intel_host = sdhci_pci_priv(slot); + struct sdhci_host *host = slot->host; + u32 ltr; + + pm_runtime_get_sync(dev); + + /* + * Program latency tolerance (LTR) accordingly what has been asked + * by the PM QoS layer or disable it in case we were passed + * negative value or PM_QOS_LATENCY_ANY. + */ + ltr = readl(host->ioaddr + INTEL_ACTIVELTR); + + if (val == PM_QOS_LATENCY_ANY || val < 0) { + ltr &= ~INTEL_LTR_REQ; + } else { + ltr |= INTEL_LTR_REQ; + ltr &= ~INTEL_LTR_SCALE_MASK; + ltr &= ~INTEL_LTR_VALUE_MASK; + + if (val > INTEL_LTR_VALUE_MASK) { + val >>= 5; + if (val > INTEL_LTR_VALUE_MASK) + val = INTEL_LTR_VALUE_MASK; + ltr |= INTEL_LTR_SCALE_32US | val; + } else { + ltr |= INTEL_LTR_SCALE_1US | val; + } + } + + if (ltr == intel_host->active_ltr) + goto out; + + writel(ltr, host->ioaddr + INTEL_ACTIVELTR); + writel(ltr, host->ioaddr + INTEL_IDLELTR); + + /* Cache the values into lpss structure */ + intel_cache_ltr(slot); +out: + pm_runtime_put_autosuspend(dev); +} + +static bool intel_use_ltr(struct sdhci_pci_chip *chip) +{ + switch (chip->pdev->device) { + case PCI_DEVICE_ID_INTEL_BYT_EMMC: + case PCI_DEVICE_ID_INTEL_BYT_EMMC2: + case PCI_DEVICE_ID_INTEL_BYT_SDIO: + case PCI_DEVICE_ID_INTEL_BYT_SD: + case PCI_DEVICE_ID_INTEL_BSW_EMMC: + case PCI_DEVICE_ID_INTEL_BSW_SDIO: + case PCI_DEVICE_ID_INTEL_BSW_SD: + return false; + default: + return true; + } +} + +static void intel_ltr_expose(struct sdhci_pci_chip *chip) +{ + struct device *dev = &chip->pdev->dev; + + if (!intel_use_ltr(chip)) + return; + + dev->power.set_latency_tolerance = intel_ltr_set; + dev_pm_qos_expose_latency_tolerance(dev); +} + +static void intel_ltr_hide(struct sdhci_pci_chip *chip) +{ + struct device *dev = &chip->pdev->dev; + + if (!intel_use_ltr(chip)) + return; + + dev_pm_qos_hide_latency_tolerance(dev); + dev->power.set_latency_tolerance = NULL; +} + +static void byt_probe_slot(struct sdhci_pci_slot *slot) +{ + struct mmc_host_ops *ops = &slot->host->mmc_host_ops; + struct device *dev = &slot->chip->pdev->dev; + struct mmc_host *mmc = slot->host->mmc; + + byt_read_dsm(slot); + + byt_ocp_setting(slot->chip->pdev); + + ops->execute_tuning = intel_execute_tuning; + ops->start_signal_voltage_switch = intel_start_signal_voltage_switch; + + device_property_read_u32(dev, "max-frequency", &mmc->f_max); + + if (!mmc->slotno) { + slot->chip->slots[mmc->slotno] = slot; + intel_ltr_expose(slot->chip); + } +} + +static void byt_add_debugfs(struct sdhci_pci_slot *slot) +{ + struct intel_host *intel_host = sdhci_pci_priv(slot); + struct mmc_host *mmc = slot->host->mmc; + struct dentry *dir = mmc->debugfs_root; + + if (!intel_use_ltr(slot->chip)) + return; + + debugfs_create_x32("active_ltr", 0444, dir, &intel_host->active_ltr); + debugfs_create_x32("idle_ltr", 0444, dir, &intel_host->idle_ltr); + + intel_cache_ltr(slot); +} + +static int byt_add_host(struct sdhci_pci_slot *slot) +{ + int ret = sdhci_add_host(slot->host); + + if (!ret) + byt_add_debugfs(slot); + return ret; +} + +static void byt_remove_slot(struct sdhci_pci_slot *slot, int dead) +{ + struct mmc_host *mmc = slot->host->mmc; + + if (!mmc->slotno) + intel_ltr_hide(slot->chip); +} + +static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot) +{ + byt_probe_slot(slot); + slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | + MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR | + MMC_CAP_CMD_DURING_TFR | + MMC_CAP_WAIT_WHILE_BUSY; + slot->hw_reset = sdhci_pci_int_hw_reset; + if (slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_BSW_EMMC) + slot->host->timeout_clk = 1000; /* 1000 kHz i.e. 1 MHz */ + slot->host->mmc_host_ops.select_drive_strength = + intel_select_drive_strength; + return 0; +} + +static int dnv_emmc_hs_probe_slot(struct sdhci_pci_slot *slot) +{ + /* Remove 1.8V capability, if 1.8V is supported, it will be negotiated to DDR mode */ + slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | + MMC_CAP_HW_RESET | + MMC_CAP_CMD_DURING_TFR | + MMC_CAP_WAIT_WHILE_BUSY; + slot->hw_reset = sdhci_pci_int_hw_reset; + return 0; +} + +static bool glk_broken_cqhci(struct sdhci_pci_slot *slot) +{ + return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC && + (dmi_match(DMI_BIOS_VENDOR, "LENOVO") || + dmi_match(DMI_SYS_VENDOR, "IRBIS")); +} + +static bool jsl_broken_hs400es(struct sdhci_pci_slot *slot) +{ + return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_JSL_EMMC && + dmi_match(DMI_BIOS_VENDOR, "ASUSTeK COMPUTER INC."); +} + +static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot) +{ + int ret = byt_emmc_probe_slot(slot); + + if (!glk_broken_cqhci(slot)) + slot->host->mmc->caps2 |= MMC_CAP2_CQE; + + if (slot->chip->pdev->device != PCI_DEVICE_ID_INTEL_GLK_EMMC) { + if (!jsl_broken_hs400es(slot)) { + slot->host->mmc->caps2 |= MMC_CAP2_HS400_ES; + slot->host->mmc_host_ops.hs400_enhanced_strobe = + intel_hs400_enhanced_strobe; + } + slot->host->mmc->caps2 |= MMC_CAP2_CQE_DCMD; + } + + return ret; +} + +static const struct cqhci_host_ops glk_cqhci_ops = { + .enable = sdhci_cqe_enable, + .disable = sdhci_cqe_disable, + .dumpregs = sdhci_pci_dumpregs, +}; + +static int glk_emmc_add_host(struct sdhci_pci_slot *slot) +{ + struct device *dev = &slot->chip->pdev->dev; + struct sdhci_host *host = slot->host; + struct cqhci_host *cq_host; + bool dma64; + int ret; + + ret = sdhci_setup_host(host); + if (ret) + return ret; + + cq_host = devm_kzalloc(dev, sizeof(*cq_host), GFP_KERNEL); + if (!cq_host) { + ret = -ENOMEM; + goto cleanup; + } + + cq_host->mmio = host->ioaddr + 0x200; + cq_host->quirks |= CQHCI_QUIRK_SHORT_TXFR_DESC_SZ; + cq_host->ops = &glk_cqhci_ops; + + dma64 = host->flags & SDHCI_USE_64_BIT_DMA; + if (dma64) + cq_host->caps |= CQHCI_TASK_DESC_SZ_128; + + ret = cqhci_init(cq_host, host->mmc, dma64); + if (ret) + goto cleanup; + + ret = __sdhci_add_host(host); + if (ret) + goto cleanup; + + byt_add_debugfs(slot); + + return 0; + +cleanup: + sdhci_cleanup_host(host); + return ret; +} + +#ifdef CONFIG_PM +#define GLK_RX_CTRL1 0x834 +#define GLK_TUN_VAL 0x840 +#define GLK_PATH_PLL GENMASK(13, 8) +#define GLK_DLY GENMASK(6, 0) +/* Workaround firmware failing to restore the tuning value */ +static void glk_rpm_retune_wa(struct sdhci_pci_chip *chip, bool susp) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + struct intel_host *intel_host = sdhci_pci_priv(slot); + struct sdhci_host *host = slot->host; + u32 glk_rx_ctrl1; + u32 glk_tun_val; + u32 dly; + + if (intel_host->rpm_retune_ok || !mmc_can_retune(host->mmc)) + return; + + glk_rx_ctrl1 = sdhci_readl(host, GLK_RX_CTRL1); + glk_tun_val = sdhci_readl(host, GLK_TUN_VAL); + + if (susp) { + intel_host->glk_rx_ctrl1 = glk_rx_ctrl1; + intel_host->glk_tun_val = glk_tun_val; + return; + } + + if (!intel_host->glk_tun_val) + return; + + if (glk_rx_ctrl1 != intel_host->glk_rx_ctrl1) { + intel_host->rpm_retune_ok = true; + return; + } + + dly = FIELD_PREP(GLK_DLY, FIELD_GET(GLK_PATH_PLL, glk_rx_ctrl1) + + (intel_host->glk_tun_val << 1)); + if (dly == FIELD_GET(GLK_DLY, glk_rx_ctrl1)) + return; + + glk_rx_ctrl1 = (glk_rx_ctrl1 & ~GLK_DLY) | dly; + sdhci_writel(host, glk_rx_ctrl1, GLK_RX_CTRL1); + + intel_host->rpm_retune_ok = true; + chip->rpm_retune = true; + mmc_retune_needed(host->mmc); + pr_info("%s: Requiring re-tune after rpm resume", mmc_hostname(host->mmc)); +} + +static void glk_rpm_retune_chk(struct sdhci_pci_chip *chip, bool susp) +{ + if (chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_EMMC && + !chip->rpm_retune) + glk_rpm_retune_wa(chip, susp); +} + +static int glk_runtime_suspend(struct sdhci_pci_chip *chip) +{ + glk_rpm_retune_chk(chip, true); + + return sdhci_cqhci_runtime_suspend(chip); +} + +static int glk_runtime_resume(struct sdhci_pci_chip *chip) +{ + glk_rpm_retune_chk(chip, false); + + return sdhci_cqhci_runtime_resume(chip); +} +#endif + +#ifdef CONFIG_ACPI +static int ni_set_max_freq(struct sdhci_pci_slot *slot) +{ + acpi_status status; + unsigned long long max_freq; + + status = acpi_evaluate_integer(ACPI_HANDLE(&slot->chip->pdev->dev), + "MXFQ", NULL, &max_freq); + if (ACPI_FAILURE(status)) { + dev_err(&slot->chip->pdev->dev, + "MXFQ not found in acpi table\n"); + return -EINVAL; + } + + slot->host->mmc->f_max = max_freq * 1000000; + + return 0; +} +#else +static inline int ni_set_max_freq(struct sdhci_pci_slot *slot) +{ + return 0; +} +#endif + +static int ni_byt_sdio_probe_slot(struct sdhci_pci_slot *slot) +{ + int err; + + byt_probe_slot(slot); + + err = ni_set_max_freq(slot); + if (err) + return err; + + slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE | + MMC_CAP_WAIT_WHILE_BUSY; + return 0; +} + +static int byt_sdio_probe_slot(struct sdhci_pci_slot *slot) +{ + byt_probe_slot(slot); + slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE | + MMC_CAP_WAIT_WHILE_BUSY; + return 0; +} + +static void byt_needs_pwr_off(struct sdhci_pci_slot *slot) +{ + struct intel_host *intel_host = sdhci_pci_priv(slot); + u8 reg = sdhci_readb(slot->host, SDHCI_POWER_CONTROL); + + intel_host->needs_pwr_off = reg & SDHCI_POWER_ON; +} + +static int byt_sd_probe_slot(struct sdhci_pci_slot *slot) +{ + byt_probe_slot(slot); + slot->host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | + MMC_CAP_AGGRESSIVE_PM | MMC_CAP_CD_WAKE; + slot->cd_idx = 0; + slot->cd_override_level = true; + if (slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_BXT_SD || + slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_BXTM_SD || + slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_APL_SD || + slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_GLK_SD) + slot->host->mmc_host_ops.get_cd = bxt_get_cd; + + if (slot->chip->pdev->subsystem_vendor == PCI_VENDOR_ID_NI && + slot->chip->pdev->subsystem_device == PCI_SUBDEVICE_ID_NI_78E3) + slot->host->mmc->caps2 |= MMC_CAP2_AVOID_3_3V; + + byt_needs_pwr_off(slot); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP + +static int byt_resume(struct sdhci_pci_chip *chip) +{ + byt_ocp_setting(chip->pdev); + + return sdhci_pci_resume_host(chip); +} + +#endif + +#ifdef CONFIG_PM + +static int byt_runtime_resume(struct sdhci_pci_chip *chip) +{ + byt_ocp_setting(chip->pdev); + + return sdhci_pci_runtime_resume_host(chip); +} + +#endif + +static struct sdhci_pci_fixes sdhci_intel_dnv_emmc = { +#ifdef CONFIG_PM_SLEEP + .resume = byt_resume, +#endif +#ifdef CONFIG_PM + .runtime_resume = byt_runtime_resume, +#endif + .allow_runtime_pm = true, + .probe_slot = byt_emmc_probe_slot, + .add_host = byt_add_host, + .remove_slot = byt_remove_slot, + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | + SDHCI_QUIRK_NO_LED, + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | + SDHCI_QUIRK2_STOP_WITH_TC, + .ops = &sdhci_intel_byt_ops, + .priv_size = sizeof(struct intel_host), +}; + +static const struct sdhci_pci_fixes sdhci_intel_byt_emmc = { +#ifdef CONFIG_PM_SLEEP + .resume = byt_resume, +#endif +#ifdef CONFIG_PM + .runtime_resume = byt_runtime_resume, +#endif + .allow_runtime_pm = true, + .probe_slot = byt_emmc_probe_slot, + .add_host = byt_add_host, + .remove_slot = byt_remove_slot, + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | + SDHCI_QUIRK_NO_LED, + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | + SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 | + SDHCI_QUIRK2_STOP_WITH_TC, + .ops = &sdhci_intel_byt_ops, + .priv_size = sizeof(struct intel_host), +}; + +static const struct sdhci_pci_fixes sdhci_intel_glk_emmc = { + .allow_runtime_pm = true, + .probe_slot = glk_emmc_probe_slot, + .add_host = glk_emmc_add_host, + .remove_slot = byt_remove_slot, +#ifdef CONFIG_PM_SLEEP + .suspend = sdhci_cqhci_suspend, + .resume = sdhci_cqhci_resume, +#endif +#ifdef CONFIG_PM + .runtime_suspend = glk_runtime_suspend, + .runtime_resume = glk_runtime_resume, +#endif + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | + SDHCI_QUIRK_NO_LED, + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | + SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 | + SDHCI_QUIRK2_STOP_WITH_TC, + .ops = &sdhci_intel_glk_ops, + .priv_size = sizeof(struct intel_host), +}; + +static const struct sdhci_pci_fixes sdhci_ni_byt_sdio = { +#ifdef CONFIG_PM_SLEEP + .resume = byt_resume, +#endif +#ifdef CONFIG_PM + .runtime_resume = byt_runtime_resume, +#endif + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | + SDHCI_QUIRK_NO_LED, + .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON | + SDHCI_QUIRK2_PRESET_VALUE_BROKEN, + .allow_runtime_pm = true, + .probe_slot = ni_byt_sdio_probe_slot, + .add_host = byt_add_host, + .remove_slot = byt_remove_slot, + .ops = &sdhci_intel_byt_ops, + .priv_size = sizeof(struct intel_host), +}; + +static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = { +#ifdef CONFIG_PM_SLEEP + .resume = byt_resume, +#endif +#ifdef CONFIG_PM + .runtime_resume = byt_runtime_resume, +#endif + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | + SDHCI_QUIRK_NO_LED, + .quirks2 = SDHCI_QUIRK2_HOST_OFF_CARD_ON | + SDHCI_QUIRK2_PRESET_VALUE_BROKEN, + .allow_runtime_pm = true, + .probe_slot = byt_sdio_probe_slot, + .add_host = byt_add_host, + .remove_slot = byt_remove_slot, + .ops = &sdhci_intel_byt_ops, + .priv_size = sizeof(struct intel_host), +}; + +static const struct sdhci_pci_fixes sdhci_intel_byt_sd = { +#ifdef CONFIG_PM_SLEEP + .resume = byt_resume, +#endif +#ifdef CONFIG_PM + .runtime_resume = byt_runtime_resume, +#endif + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | + SDHCI_QUIRK_NO_LED, + .quirks2 = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON | + SDHCI_QUIRK2_PRESET_VALUE_BROKEN | + SDHCI_QUIRK2_STOP_WITH_TC, + .allow_runtime_pm = true, + .own_cd_for_runtime_pm = true, + .probe_slot = byt_sd_probe_slot, + .add_host = byt_add_host, + .remove_slot = byt_remove_slot, + .ops = &sdhci_intel_byt_ops, + .priv_size = sizeof(struct intel_host), +}; + +/* Define Host controllers for Intel Merrifield platform */ +#define INTEL_MRFLD_EMMC_0 0 +#define INTEL_MRFLD_EMMC_1 1 +#define INTEL_MRFLD_SD 2 +#define INTEL_MRFLD_SDIO 3 + +#ifdef CONFIG_ACPI +static void intel_mrfld_mmc_fix_up_power_slot(struct sdhci_pci_slot *slot) +{ + struct acpi_device *device; + + device = ACPI_COMPANION(&slot->chip->pdev->dev); + if (device) + acpi_device_fix_up_power_extended(device); +} +#else +static inline void intel_mrfld_mmc_fix_up_power_slot(struct sdhci_pci_slot *slot) {} +#endif + +static int intel_mrfld_mmc_probe_slot(struct sdhci_pci_slot *slot) +{ + unsigned int func = PCI_FUNC(slot->chip->pdev->devfn); + + switch (func) { + case INTEL_MRFLD_EMMC_0: + case INTEL_MRFLD_EMMC_1: + slot->host->mmc->caps |= MMC_CAP_NONREMOVABLE | + MMC_CAP_8_BIT_DATA | + MMC_CAP_1_8V_DDR; + break; + case INTEL_MRFLD_SD: + slot->cd_idx = 0; + slot->cd_override_level = true; + /* + * There are two PCB designs of SD card slot with the opposite + * card detection sense. Quirk this out by ignoring GPIO state + * completely in the custom ->get_cd() callback. + */ + slot->host->mmc_host_ops.get_cd = mrfld_get_cd; + slot->host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V; + break; + case INTEL_MRFLD_SDIO: + /* Advertise 2.0v for compatibility with the SDIO card's OCR */ + slot->host->ocr_mask = MMC_VDD_20_21 | MMC_VDD_165_195; + slot->host->mmc->caps |= MMC_CAP_NONREMOVABLE | + MMC_CAP_POWER_OFF_CARD; + break; + default: + return -ENODEV; + } + + intel_mrfld_mmc_fix_up_power_slot(slot); + return 0; +} + +static const struct sdhci_pci_fixes sdhci_intel_mrfld_mmc = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_BROKEN_HS200 | + SDHCI_QUIRK2_PRESET_VALUE_BROKEN, + .allow_runtime_pm = true, + .probe_slot = intel_mrfld_mmc_probe_slot, +}; + +static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) +{ + u8 scratch; + int ret; + + ret = pci_read_config_byte(chip->pdev, 0xAE, &scratch); + if (ret) + return ret; + + /* + * Turn PMOS on [bit 0], set over current detection to 2.4 V + * [bit 1:2] and enable over current debouncing [bit 6]. + */ + if (on) + scratch |= 0x47; + else + scratch &= ~0x47; + + return pci_write_config_byte(chip->pdev, 0xAE, scratch); +} + +static int jmicron_probe(struct sdhci_pci_chip *chip) +{ + int ret; + u16 mmcdev = 0; + + if (chip->pdev->revision == 0) { + chip->quirks |= SDHCI_QUIRK_32BIT_DMA_ADDR | + SDHCI_QUIRK_32BIT_DMA_SIZE | + SDHCI_QUIRK_32BIT_ADMA_SIZE | + SDHCI_QUIRK_RESET_AFTER_REQUEST | + SDHCI_QUIRK_BROKEN_SMALL_PIO; + } + + /* + * JMicron chips can have two interfaces to the same hardware + * in order to work around limitations in Microsoft's driver. + * We need to make sure we only bind to one of them. + * + * This code assumes two things: + * + * 1. The PCI code adds subfunctions in order. + * + * 2. The MMC interface has a lower subfunction number + * than the SD interface. + */ + if (chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB38X_SD) + mmcdev = PCI_DEVICE_ID_JMICRON_JMB38X_MMC; + else if (chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_SD) + mmcdev = PCI_DEVICE_ID_JMICRON_JMB388_ESD; + + if (mmcdev) { + struct pci_dev *sd_dev; + + sd_dev = NULL; + while ((sd_dev = pci_get_device(PCI_VENDOR_ID_JMICRON, + mmcdev, sd_dev)) != NULL) { + if ((PCI_SLOT(chip->pdev->devfn) == + PCI_SLOT(sd_dev->devfn)) && + (chip->pdev->bus == sd_dev->bus)) + break; + } + + if (sd_dev) { + pci_dev_put(sd_dev); + dev_info(&chip->pdev->dev, "Refusing to bind to " + "secondary interface.\n"); + return -ENODEV; + } + } + + /* + * JMicron chips need a bit of a nudge to enable the power + * output pins. + */ + ret = jmicron_pmos(chip, 1); + if (ret) { + dev_err(&chip->pdev->dev, "Failure enabling card power\n"); + return ret; + } + + /* quirk for unsable RO-detection on JM388 chips */ + if (chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_SD || + chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_ESD) + chip->quirks |= SDHCI_QUIRK_UNSTABLE_RO_DETECT; + + return 0; +} + +static void jmicron_enable_mmc(struct sdhci_host *host, int on) +{ + u8 scratch; + + scratch = readb(host->ioaddr + 0xC0); + + if (on) + scratch |= 0x01; + else + scratch &= ~0x01; + + writeb(scratch, host->ioaddr + 0xC0); +} + +static int jmicron_probe_slot(struct sdhci_pci_slot *slot) +{ + if (slot->chip->pdev->revision == 0) { + u16 version; + + version = readl(slot->host->ioaddr + SDHCI_HOST_VERSION); + version = (version & SDHCI_VENDOR_VER_MASK) >> + SDHCI_VENDOR_VER_SHIFT; + + /* + * Older versions of the chip have lots of nasty glitches + * in the ADMA engine. It's best just to avoid it + * completely. + */ + if (version < 0xAC) + slot->host->quirks |= SDHCI_QUIRK_BROKEN_ADMA; + } + + /* JM388 MMC doesn't support 1.8V while SD supports it */ + if (slot->chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_ESD) { + slot->host->ocr_avail_sd = MMC_VDD_32_33 | MMC_VDD_33_34 | + MMC_VDD_29_30 | MMC_VDD_30_31 | + MMC_VDD_165_195; /* allow 1.8V */ + slot->host->ocr_avail_mmc = MMC_VDD_32_33 | MMC_VDD_33_34 | + MMC_VDD_29_30 | MMC_VDD_30_31; /* no 1.8V for MMC */ + } + + /* + * The secondary interface requires a bit set to get the + * interrupts. + */ + if (slot->chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB38X_MMC || + slot->chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_ESD) + jmicron_enable_mmc(slot->host, 1); + + slot->host->mmc->caps |= MMC_CAP_BUS_WIDTH_TEST; + + return 0; +} + +static void jmicron_remove_slot(struct sdhci_pci_slot *slot, int dead) +{ + if (dead) + return; + + if (slot->chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB38X_MMC || + slot->chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_ESD) + jmicron_enable_mmc(slot->host, 0); +} + +#ifdef CONFIG_PM_SLEEP +static int jmicron_suspend(struct sdhci_pci_chip *chip) +{ + int i, ret; + + ret = sdhci_pci_suspend_host(chip); + if (ret) + return ret; + + if (chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB38X_MMC || + chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_ESD) { + for (i = 0; i < chip->num_slots; i++) + jmicron_enable_mmc(chip->slots[i]->host, 0); + } + + return 0; +} + +static int jmicron_resume(struct sdhci_pci_chip *chip) +{ + int ret, i; + + if (chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB38X_MMC || + chip->pdev->device == PCI_DEVICE_ID_JMICRON_JMB388_ESD) { + for (i = 0; i < chip->num_slots; i++) + jmicron_enable_mmc(chip->slots[i]->host, 1); + } + + ret = jmicron_pmos(chip, 1); + if (ret) { + dev_err(&chip->pdev->dev, "Failure enabling card power\n"); + return ret; + } + + return sdhci_pci_resume_host(chip); +} +#endif + +static const struct sdhci_pci_fixes sdhci_jmicron = { + .probe = jmicron_probe, + + .probe_slot = jmicron_probe_slot, + .remove_slot = jmicron_remove_slot, + +#ifdef CONFIG_PM_SLEEP + .suspend = jmicron_suspend, + .resume = jmicron_resume, +#endif +}; + +/* SysKonnect CardBus2SDIO extra registers */ +#define SYSKT_CTRL 0x200 +#define SYSKT_RDFIFO_STAT 0x204 +#define SYSKT_WRFIFO_STAT 0x208 +#define SYSKT_POWER_DATA 0x20c +#define SYSKT_POWER_330 0xef +#define SYSKT_POWER_300 0xf8 +#define SYSKT_POWER_184 0xcc +#define SYSKT_POWER_CMD 0x20d +#define SYSKT_POWER_START (1 << 7) +#define SYSKT_POWER_STATUS 0x20e +#define SYSKT_POWER_STATUS_OK (1 << 0) +#define SYSKT_BOARD_REV 0x210 +#define SYSKT_CHIP_REV 0x211 +#define SYSKT_CONF_DATA 0x212 +#define SYSKT_CONF_DATA_1V8 (1 << 2) +#define SYSKT_CONF_DATA_2V5 (1 << 1) +#define SYSKT_CONF_DATA_3V3 (1 << 0) + +static int syskt_probe(struct sdhci_pci_chip *chip) +{ + if ((chip->pdev->class & 0x0000FF) == PCI_SDHCI_IFVENDOR) { + chip->pdev->class &= ~0x0000FF; + chip->pdev->class |= PCI_SDHCI_IFDMA; + } + return 0; +} + +static int syskt_probe_slot(struct sdhci_pci_slot *slot) +{ + int tm, ps; + + u8 board_rev = readb(slot->host->ioaddr + SYSKT_BOARD_REV); + u8 chip_rev = readb(slot->host->ioaddr + SYSKT_CHIP_REV); + dev_info(&slot->chip->pdev->dev, "SysKonnect CardBus2SDIO, " + "board rev %d.%d, chip rev %d.%d\n", + board_rev >> 4, board_rev & 0xf, + chip_rev >> 4, chip_rev & 0xf); + if (chip_rev >= 0x20) + slot->host->quirks |= SDHCI_QUIRK_FORCE_DMA; + + writeb(SYSKT_POWER_330, slot->host->ioaddr + SYSKT_POWER_DATA); + writeb(SYSKT_POWER_START, slot->host->ioaddr + SYSKT_POWER_CMD); + udelay(50); + tm = 10; /* Wait max 1 ms */ + do { + ps = readw(slot->host->ioaddr + SYSKT_POWER_STATUS); + if (ps & SYSKT_POWER_STATUS_OK) + break; + udelay(100); + } while (--tm); + if (!tm) { + dev_err(&slot->chip->pdev->dev, + "power regulator never stabilized"); + writeb(0, slot->host->ioaddr + SYSKT_POWER_CMD); + return -ENODEV; + } + + return 0; +} + +static const struct sdhci_pci_fixes sdhci_syskt = { + .quirks = SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER, + .probe = syskt_probe, + .probe_slot = syskt_probe_slot, +}; + +static int via_probe(struct sdhci_pci_chip *chip) +{ + if (chip->pdev->revision == 0x10) + chip->quirks |= SDHCI_QUIRK_DELAY_AFTER_POWER; + + return 0; +} + +static const struct sdhci_pci_fixes sdhci_via = { + .probe = via_probe, +}; + +static int rtsx_probe_slot(struct sdhci_pci_slot *slot) +{ + slot->host->mmc->caps2 |= MMC_CAP2_HS200; + return 0; +} + +static const struct sdhci_pci_fixes sdhci_rtsx = { + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | + SDHCI_QUIRK2_BROKEN_64_BIT_DMA | + SDHCI_QUIRK2_BROKEN_DDR50, + .probe_slot = rtsx_probe_slot, +}; + +/*AMD chipset generation*/ +enum amd_chipset_gen { + AMD_CHIPSET_BEFORE_ML, + AMD_CHIPSET_CZ, + AMD_CHIPSET_NL, + AMD_CHIPSET_UNKNOWN, +}; + +/* AMD registers */ +#define AMD_SD_AUTO_PATTERN 0xB8 +#define AMD_MSLEEP_DURATION 4 +#define AMD_SD_MISC_CONTROL 0xD0 +#define AMD_MAX_TUNE_VALUE 0x0B +#define AMD_AUTO_TUNE_SEL 0x10800 +#define AMD_FIFO_PTR 0x30 +#define AMD_BIT_MASK 0x1F + +static void amd_tuning_reset(struct sdhci_host *host) +{ + unsigned int val; + + val = sdhci_readw(host, SDHCI_HOST_CONTROL2); + val |= SDHCI_CTRL_PRESET_VAL_ENABLE | SDHCI_CTRL_EXEC_TUNING; + sdhci_writew(host, val, SDHCI_HOST_CONTROL2); + + val = sdhci_readw(host, SDHCI_HOST_CONTROL2); + val &= ~SDHCI_CTRL_EXEC_TUNING; + sdhci_writew(host, val, SDHCI_HOST_CONTROL2); +} + +static void amd_config_tuning_phase(struct pci_dev *pdev, u8 phase) +{ + unsigned int val; + + pci_read_config_dword(pdev, AMD_SD_AUTO_PATTERN, &val); + val &= ~AMD_BIT_MASK; + val |= (AMD_AUTO_TUNE_SEL | (phase << 1)); + pci_write_config_dword(pdev, AMD_SD_AUTO_PATTERN, val); +} + +static void amd_enable_manual_tuning(struct pci_dev *pdev) +{ + unsigned int val; + + pci_read_config_dword(pdev, AMD_SD_MISC_CONTROL, &val); + val |= AMD_FIFO_PTR; + pci_write_config_dword(pdev, AMD_SD_MISC_CONTROL, val); +} + +static int amd_execute_tuning_hs200(struct sdhci_host *host, u32 opcode) +{ + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct pci_dev *pdev = slot->chip->pdev; + u8 valid_win = 0; + u8 valid_win_max = 0; + u8 valid_win_end = 0; + u8 ctrl, tune_around; + + amd_tuning_reset(host); + + for (tune_around = 0; tune_around < 12; tune_around++) { + amd_config_tuning_phase(pdev, tune_around); + + if (mmc_send_tuning(host->mmc, opcode, NULL)) { + valid_win = 0; + msleep(AMD_MSLEEP_DURATION); + ctrl = SDHCI_RESET_CMD | SDHCI_RESET_DATA; + sdhci_writeb(host, ctrl, SDHCI_SOFTWARE_RESET); + } else if (++valid_win > valid_win_max) { + valid_win_max = valid_win; + valid_win_end = tune_around; + } + } + + if (!valid_win_max) { + dev_err(&pdev->dev, "no tuning point found\n"); + return -EIO; + } + + amd_config_tuning_phase(pdev, valid_win_end - valid_win_max / 2); + + amd_enable_manual_tuning(pdev); + + host->mmc->retune_period = 0; + + return 0; +} + +static int amd_execute_tuning(struct mmc_host *mmc, u32 opcode) +{ + struct sdhci_host *host = mmc_priv(mmc); + + /* AMD requires custom HS200 tuning */ + if (host->timing == MMC_TIMING_MMC_HS200) + return amd_execute_tuning_hs200(host, opcode); + + /* Otherwise perform standard SDHCI tuning */ + return sdhci_execute_tuning(mmc, opcode); +} + +static int amd_probe_slot(struct sdhci_pci_slot *slot) +{ + struct mmc_host_ops *ops = &slot->host->mmc_host_ops; + + ops->execute_tuning = amd_execute_tuning; + + return 0; +} + +static int amd_probe(struct sdhci_pci_chip *chip) +{ + struct pci_dev *smbus_dev; + enum amd_chipset_gen gen; + + smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, + PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, NULL); + if (smbus_dev) { + gen = AMD_CHIPSET_BEFORE_ML; + } else { + smbus_dev = pci_get_device(PCI_VENDOR_ID_AMD, + PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, NULL); + if (smbus_dev) { + if (smbus_dev->revision < 0x51) + gen = AMD_CHIPSET_CZ; + else + gen = AMD_CHIPSET_NL; + } else { + gen = AMD_CHIPSET_UNKNOWN; + } + } + + if (smbus_dev) { + pci_dev_put(smbus_dev); + } + + if (gen == AMD_CHIPSET_BEFORE_ML || gen == AMD_CHIPSET_CZ) + chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; + + return 0; +} + +static u32 sdhci_read_present_state(struct sdhci_host *host) +{ + return sdhci_readl(host, SDHCI_PRESENT_STATE); +} + +static void amd_sdhci_reset(struct sdhci_host *host, u8 mask) +{ + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct pci_dev *pdev = slot->chip->pdev; + u32 present_state; + + /* + * SDHC 0x7906 requires a hard reset to clear all internal state. + * Otherwise it can get into a bad state where the DATA lines are always + * read as zeros. + */ + if (pdev->device == 0x7906 && (mask & SDHCI_RESET_ALL)) { + pci_clear_master(pdev); + + pci_save_state(pdev); + + pci_set_power_state(pdev, PCI_D3cold); + pr_debug("%s: power_state=%u\n", mmc_hostname(host->mmc), + pdev->current_state); + pci_set_power_state(pdev, PCI_D0); + + pci_restore_state(pdev); + + /* + * SDHCI_RESET_ALL says the card detect logic should not be + * reset, but since we need to reset the entire controller + * we should wait until the card detect logic has stabilized. + * + * This normally takes about 40ms. + */ + readx_poll_timeout( + sdhci_read_present_state, + host, + present_state, + present_state & SDHCI_CD_STABLE, + 10000, + 100000 + ); + } + + return sdhci_reset(host, mask); +} + +static const struct sdhci_ops amd_sdhci_pci_ops = { + .set_clock = sdhci_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = amd_sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, +}; + +static const struct sdhci_pci_fixes sdhci_amd = { + .probe = amd_probe, + .ops = &amd_sdhci_pci_ops, + .probe_slot = amd_probe_slot, +}; + +static const struct pci_device_id pci_ids[] = { + SDHCI_PCI_DEVICE(RICOH, R5C822, ricoh), + SDHCI_PCI_DEVICE(RICOH, R5C843, ricoh_mmc), + SDHCI_PCI_DEVICE(RICOH, R5CE822, ricoh_mmc), + SDHCI_PCI_DEVICE(RICOH, R5CE823, ricoh_mmc), + SDHCI_PCI_DEVICE(ENE, CB712_SD, ene_712), + SDHCI_PCI_DEVICE(ENE, CB712_SD_2, ene_712), + SDHCI_PCI_DEVICE(ENE, CB714_SD, ene_714), + SDHCI_PCI_DEVICE(ENE, CB714_SD_2, ene_714), + SDHCI_PCI_DEVICE(MARVELL, 88ALP01_SD, cafe), + SDHCI_PCI_DEVICE(JMICRON, JMB38X_SD, jmicron), + SDHCI_PCI_DEVICE(JMICRON, JMB38X_MMC, jmicron), + SDHCI_PCI_DEVICE(JMICRON, JMB388_SD, jmicron), + SDHCI_PCI_DEVICE(JMICRON, JMB388_ESD, jmicron), + SDHCI_PCI_DEVICE(SYSKONNECT, 8000, syskt), + SDHCI_PCI_DEVICE(VIA, 95D0, via), + SDHCI_PCI_DEVICE(REALTEK, 5250, rtsx), + SDHCI_PCI_DEVICE(INTEL, QRK_SD, intel_qrk), + SDHCI_PCI_DEVICE(INTEL, MRST_SD0, intel_mrst_hc0), + SDHCI_PCI_DEVICE(INTEL, MRST_SD1, intel_mrst_hc1_hc2), + SDHCI_PCI_DEVICE(INTEL, MRST_SD2, intel_mrst_hc1_hc2), + SDHCI_PCI_DEVICE(INTEL, MFD_SD, intel_mfd_sd), + SDHCI_PCI_DEVICE(INTEL, MFD_SDIO1, intel_mfd_sdio), + SDHCI_PCI_DEVICE(INTEL, MFD_SDIO2, intel_mfd_sdio), + SDHCI_PCI_DEVICE(INTEL, MFD_EMMC0, intel_mfd_emmc), + SDHCI_PCI_DEVICE(INTEL, MFD_EMMC1, intel_mfd_emmc), + SDHCI_PCI_DEVICE(INTEL, PCH_SDIO0, intel_pch_sdio), + SDHCI_PCI_DEVICE(INTEL, PCH_SDIO1, intel_pch_sdio), + SDHCI_PCI_DEVICE(INTEL, BYT_EMMC, intel_byt_emmc), + SDHCI_PCI_SUBDEVICE(INTEL, BYT_SDIO, NI, 7884, ni_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, BYT_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, BYT_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, BYT_EMMC2, intel_byt_emmc), + SDHCI_PCI_DEVICE(INTEL, BSW_EMMC, intel_byt_emmc), + SDHCI_PCI_DEVICE(INTEL, BSW_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, BSW_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, CLV_SDIO0, intel_mfd_sd), + SDHCI_PCI_DEVICE(INTEL, CLV_SDIO1, intel_mfd_sdio), + SDHCI_PCI_DEVICE(INTEL, CLV_SDIO2, intel_mfd_sdio), + SDHCI_PCI_DEVICE(INTEL, CLV_EMMC0, intel_mfd_emmc), + SDHCI_PCI_DEVICE(INTEL, CLV_EMMC1, intel_mfd_emmc), + SDHCI_PCI_DEVICE(INTEL, MRFLD_MMC, intel_mrfld_mmc), + SDHCI_PCI_DEVICE(INTEL, SPT_EMMC, intel_byt_emmc), + SDHCI_PCI_DEVICE(INTEL, SPT_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, SPT_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, DNV_EMMC, intel_dnv_emmc), + SDHCI_PCI_DEVICE(INTEL, CDF_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, BXT_EMMC, intel_byt_emmc), + SDHCI_PCI_DEVICE(INTEL, BXT_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, BXT_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, BXTM_EMMC, intel_byt_emmc), + SDHCI_PCI_DEVICE(INTEL, BXTM_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, BXTM_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, APL_EMMC, intel_byt_emmc), + SDHCI_PCI_DEVICE(INTEL, APL_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, APL_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, GLK_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, GLK_SDIO, intel_byt_sdio), + SDHCI_PCI_DEVICE(INTEL, GLK_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, CNP_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, CNP_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, CNPH_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, ICP_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, ICP_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, EHL_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, EHL_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, CML_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, CML_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, CMLH_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, JSL_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, JSL_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, LKF_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(INTEL, LKF_SD, intel_byt_sd), + SDHCI_PCI_DEVICE(INTEL, ADL_EMMC, intel_glk_emmc), + SDHCI_PCI_DEVICE(O2, 8120, o2), + SDHCI_PCI_DEVICE(O2, 8220, o2), + SDHCI_PCI_DEVICE(O2, 8221, o2), + SDHCI_PCI_DEVICE(O2, 8320, o2), + SDHCI_PCI_DEVICE(O2, 8321, o2), + SDHCI_PCI_DEVICE(O2, FUJIN2, o2), + SDHCI_PCI_DEVICE(O2, SDS0, o2), + SDHCI_PCI_DEVICE(O2, SDS1, o2), + SDHCI_PCI_DEVICE(O2, SEABIRD0, o2), + SDHCI_PCI_DEVICE(O2, SEABIRD1, o2), + SDHCI_PCI_DEVICE(ARASAN, PHY_EMMC, arasan), + SDHCI_PCI_DEVICE(SYNOPSYS, DWC_MSHC, snps), + SDHCI_PCI_DEVICE(GLI, 9750, gl9750), + SDHCI_PCI_DEVICE(GLI, 9755, gl9755), + SDHCI_PCI_DEVICE(GLI, 9763E, gl9763e), + SDHCI_PCI_DEVICE_CLASS(AMD, SYSTEM_SDHCI, PCI_CLASS_MASK, amd), + /* Generic SD host controller */ + {PCI_DEVICE_CLASS(SYSTEM_SDHCI, PCI_CLASS_MASK)}, + { /* end: all zeroes */ }, +}; + +MODULE_DEVICE_TABLE(pci, pci_ids); + +/*****************************************************************************\ + * * + * SDHCI core callbacks * + * * +\*****************************************************************************/ + +int sdhci_pci_enable_dma(struct sdhci_host *host) +{ + struct sdhci_pci_slot *slot; + struct pci_dev *pdev; + + slot = sdhci_priv(host); + pdev = slot->chip->pdev; + + if (((pdev->class & 0xFFFF00) == (PCI_CLASS_SYSTEM_SDHCI << 8)) && + ((pdev->class & 0x0000FF) != PCI_SDHCI_IFDMA) && + (host->flags & SDHCI_USE_SDMA)) { + dev_warn(&pdev->dev, "Will use DMA mode even though HW " + "doesn't fully claim to support it.\n"); + } + + pci_set_master(pdev); + + return 0; +} + +static void sdhci_pci_hw_reset(struct sdhci_host *host) +{ + struct sdhci_pci_slot *slot = sdhci_priv(host); + + if (slot->hw_reset) + slot->hw_reset(host); +} + +static const struct sdhci_ops sdhci_pci_ops = { + .set_clock = sdhci_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, + .hw_reset = sdhci_pci_hw_reset, +}; + +/*****************************************************************************\ + * * + * Suspend/resume * + * * +\*****************************************************************************/ + +#ifdef CONFIG_PM_SLEEP +static int sdhci_pci_suspend(struct device *dev) +{ + struct sdhci_pci_chip *chip = dev_get_drvdata(dev); + + if (!chip) + return 0; + + if (chip->fixes && chip->fixes->suspend) + return chip->fixes->suspend(chip); + + return sdhci_pci_suspend_host(chip); +} + +static int sdhci_pci_resume(struct device *dev) +{ + struct sdhci_pci_chip *chip = dev_get_drvdata(dev); + + if (!chip) + return 0; + + if (chip->fixes && chip->fixes->resume) + return chip->fixes->resume(chip); + + return sdhci_pci_resume_host(chip); +} +#endif + +#ifdef CONFIG_PM +static int sdhci_pci_runtime_suspend(struct device *dev) +{ + struct sdhci_pci_chip *chip = dev_get_drvdata(dev); + + if (!chip) + return 0; + + if (chip->fixes && chip->fixes->runtime_suspend) + return chip->fixes->runtime_suspend(chip); + + return sdhci_pci_runtime_suspend_host(chip); +} + +static int sdhci_pci_runtime_resume(struct device *dev) +{ + struct sdhci_pci_chip *chip = dev_get_drvdata(dev); + + if (!chip) + return 0; + + if (chip->fixes && chip->fixes->runtime_resume) + return chip->fixes->runtime_resume(chip); + + return sdhci_pci_runtime_resume_host(chip); +} +#endif + +static const struct dev_pm_ops sdhci_pci_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(sdhci_pci_suspend, sdhci_pci_resume) + SET_RUNTIME_PM_OPS(sdhci_pci_runtime_suspend, + sdhci_pci_runtime_resume, NULL) +}; + +/*****************************************************************************\ + * * + * Device probing/removal * + * * +\*****************************************************************************/ + +static struct sdhci_pci_slot *sdhci_pci_probe_slot( + struct pci_dev *pdev, struct sdhci_pci_chip *chip, int first_bar, + int slotno) +{ + struct sdhci_pci_slot *slot; + struct sdhci_host *host; + int ret, bar = first_bar + slotno; + size_t priv_size = chip->fixes ? chip->fixes->priv_size : 0; + + if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM)) { + dev_err(&pdev->dev, "BAR %d is not iomem. Aborting.\n", bar); + return ERR_PTR(-ENODEV); + } + + if (pci_resource_len(pdev, bar) < 0x100) { + dev_err(&pdev->dev, "Invalid iomem size. You may " + "experience problems.\n"); + } + + if ((pdev->class & 0x0000FF) == PCI_SDHCI_IFVENDOR) { + dev_err(&pdev->dev, "Vendor specific interface. Aborting.\n"); + return ERR_PTR(-ENODEV); + } + + if ((pdev->class & 0x0000FF) > PCI_SDHCI_IFVENDOR) { + dev_err(&pdev->dev, "Unknown interface. Aborting.\n"); + return ERR_PTR(-ENODEV); + } + + host = sdhci_alloc_host(&pdev->dev, sizeof(*slot) + priv_size); + if (IS_ERR(host)) { + dev_err(&pdev->dev, "cannot allocate host\n"); + return ERR_CAST(host); + } + + slot = sdhci_priv(host); + + slot->chip = chip; + slot->host = host; + slot->cd_idx = -1; + + host->hw_name = "PCI"; + host->ops = chip->fixes && chip->fixes->ops ? + chip->fixes->ops : + &sdhci_pci_ops; + host->quirks = chip->quirks; + host->quirks2 = chip->quirks2; + + host->irq = pdev->irq; + + ret = pcim_iomap_regions(pdev, BIT(bar), mmc_hostname(host->mmc)); + if (ret) { + dev_err(&pdev->dev, "cannot request region\n"); + goto cleanup; + } + + host->ioaddr = pcim_iomap_table(pdev)[bar]; + + if (chip->fixes && chip->fixes->probe_slot) { + ret = chip->fixes->probe_slot(slot); + if (ret) + goto cleanup; + } + + host->mmc->pm_caps = MMC_PM_KEEP_POWER; + host->mmc->slotno = slotno; + host->mmc->caps2 |= MMC_CAP2_NO_PRESCAN_POWERUP; + + if (device_can_wakeup(&pdev->dev)) + host->mmc->pm_caps |= MMC_PM_WAKE_SDIO_IRQ; + + if (host->mmc->caps & MMC_CAP_CD_WAKE) + device_init_wakeup(&pdev->dev, true); + + if (slot->cd_idx >= 0) { + ret = mmc_gpiod_request_cd(host->mmc, "cd", slot->cd_idx, + slot->cd_override_level, 0); + if (ret && ret != -EPROBE_DEFER) + ret = mmc_gpiod_request_cd(host->mmc, NULL, + slot->cd_idx, + slot->cd_override_level, + 0); + if (ret == -EPROBE_DEFER) + goto remove; + + if (ret) { + dev_warn(&pdev->dev, "failed to setup card detect gpio\n"); + slot->cd_idx = -1; + } + } + + if (chip->fixes && chip->fixes->add_host) + ret = chip->fixes->add_host(slot); + else + ret = sdhci_add_host(host); + if (ret) + goto remove; + + /* + * Check if the chip needs a separate GPIO for card detect to wake up + * from runtime suspend. If it is not there, don't allow runtime PM. + */ + if (chip->fixes && chip->fixes->own_cd_for_runtime_pm && slot->cd_idx < 0) + chip->allow_runtime_pm = false; + + return slot; + +remove: + if (chip->fixes && chip->fixes->remove_slot) + chip->fixes->remove_slot(slot, 0); + +cleanup: + sdhci_free_host(host); + + return ERR_PTR(ret); +} + +static void sdhci_pci_remove_slot(struct sdhci_pci_slot *slot) +{ + int dead; + u32 scratch; + + dead = 0; + scratch = readl(slot->host->ioaddr + SDHCI_INT_STATUS); + if (scratch == (u32)-1) + dead = 1; + + sdhci_remove_host(slot->host, dead); + + if (slot->chip->fixes && slot->chip->fixes->remove_slot) + slot->chip->fixes->remove_slot(slot, dead); + + sdhci_free_host(slot->host); +} + +static void sdhci_pci_runtime_pm_allow(struct device *dev) +{ + pm_suspend_ignore_children(dev, 1); + pm_runtime_set_autosuspend_delay(dev, 50); + pm_runtime_use_autosuspend(dev); + pm_runtime_allow(dev); + /* Stay active until mmc core scans for a card */ + pm_runtime_put_noidle(dev); +} + +static void sdhci_pci_runtime_pm_forbid(struct device *dev) +{ + pm_runtime_forbid(dev); + pm_runtime_get_noresume(dev); +} + +/* define by gohi, set in bios acpi dsdt table */ +#define EMMC_DSDT_MODE_HS400 0 +#define EMMC_DSDT_MODE_HS200 1 +#define EMMC_DSDT_MODE_DDR52 2 +#define EMMC_DSDT_MODE_SDR52 3 + +static int sdhci_set_quirks2_by_dsdt(struct pci_dev *pdev) +{ + struct acpi_device *acpi_dev; + struct fwnode_handle *pfwnod = pdev->dev.fwnode; + u64 mode; + int ret; + + /* Find acpi node through pci, + * the relationship between pci and acpi devices can be viewed through the /sys/bus file */ + acpi_dev = container_of(pfwnod, struct acpi_device, fwnode); + + /* DSDT need take node as: "Name (MODE, 0x0-)" */ + ret = acpi_evaluate_integer(acpi_dev->handle, "MODE", NULL, &mode); + if (ACPI_SUCCESS(ret)) { + dev_info(&pdev->dev, "SD controller get bus mode:0x%lld from dsts success.\n", mode); + switch(mode) { + case EMMC_DSDT_MODE_SDR52: + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_BROKEN_DDR50 | SDHCI_QUIRK2_BROKEN_HS200; + sdhci_intel_dnv_emmc.probe_slot = dnv_emmc_hs_probe_slot; + dev_info(&pdev->dev, "Configure SDHCI as SDR52 attribute through dsdt.\n"); + break; + case EMMC_DSDT_MODE_DDR52: + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; + dev_info(&pdev->dev, "Configure SDHCI as DDR52 attribute through dsdt.\n"); + break; + case EMMC_DSDT_MODE_HS200: + dev_info(&pdev->dev, "Configure SDHCI as HS200 attribute through dsdt.\n"); + break; + case EMMC_DSDT_MODE_HS400: + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400; + dev_info(&pdev->dev, "Configure SDHCI as HS400 attribute through dsdt.\n"); + break; + default: + ret = EINVAL; + break; + } + } else { + ret = EINVAL; + } + + return ret; +} + +#ifndef COMMAND_LINE_SIZE +#define COMMAND_LINE_SIZE 1024 +#endif + +int sdhci_cmdline_read(char *cmdline) +{ + struct file *filp; + int ret = 0; + loff_t pos; + + /* Basically, the kernel parameters with arch are not exported. + * In order to not have too much influence and generalization, + * use the proc file to obtain parameter information. */ + filp = filp_open("/proc/cmdline", O_RDONLY, 0); + if (IS_ERR(filp)) { + filp = NULL; + goto exit; + } + pos = 0; + ret = kernel_read(filp, cmdline, COMMAND_LINE_SIZE, &pos); + if (ret < 0) { + goto exit; + } + filp_close(filp, NULL); + + return 0; + +exit: + if (filp != NULL) { + filp_close(filp, NULL); + } + return -1; +} + +static int sdhci_set_quirks2_by_cmdline(struct pci_dev *pdev) +{ + char *option, cmdline[COMMAND_LINE_SIZE]; + int ret = 0; + + mem_clear(cmdline, COMMAND_LINE_SIZE); + + ret = sdhci_cmdline_read(cmdline); + if (ret) { + return ret; + } + + option = strstr(cmdline, "sdhcimode="); + if (option == NULL) { + return EINVAL; + } + + /* Count, sdhcimode= is it 10 bytes? */ + option += 10; + + if (!strncmp(option, "sdr52", 5)) { + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_BROKEN_DDR50 | SDHCI_QUIRK2_BROKEN_HS200; + /* Remove 1.8V ability */ + sdhci_intel_dnv_emmc.probe_slot = dnv_emmc_hs_probe_slot; + dev_info(&pdev->dev, "Configure SDHCI as SDR52 attribute through cmdline.\n"); + } else if (!strncmp(option, "ddr52", 5)) { + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; + dev_info(&pdev->dev, "Configure SDHCI as DDR52 attribute through cmdline.\n"); + } else if (!strncmp(option, "hs200", 5)) { + dev_info(&pdev->dev, "Configure SDHCI as HS200 attribute through cmdline.\n"); + ; + } else if (!strncmp(option, "hs400", 5)) { + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400; + dev_info(&pdev->dev, "Configure SDHCI as HS400 attribute through cmdline.\n"); + } else { + dev_info(&pdev->dev, "CSDHCI: Unknown cmdline option.\n"); + return EINVAL; + } + + return 0; +} + +static int sdhci_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + struct sdhci_pci_chip *chip; + struct sdhci_pci_slot *slot; + + u8 slots, first_bar; + int ret, i; + + BUG_ON(pdev == NULL); + BUG_ON(ent == NULL); + + dev_info(&pdev->dev, "SDHCI controller found [%04x:%04x] (rev %x)\n", + (int)pdev->vendor, (int)pdev->device, (int)pdev->revision); + + /* cmdline setting priority, the kernel parameters can be changed flexibly, + * and Bios upgrades are not convenient or secure. */ + ret = sdhci_set_quirks2_by_cmdline(pdev); + if (ret) { + ret = sdhci_set_quirks2_by_dsdt(pdev); + if (ret) { + sdhci_intel_dnv_emmc.quirks2 |= SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400; + dev_info(&pdev->dev, "Configure SDHCI as default[HS400].\n"); + } + } + + ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &slots); + if (ret) + return ret; + + slots = PCI_SLOT_INFO_SLOTS(slots) + 1; + dev_dbg(&pdev->dev, "found %d slot(s)\n", slots); + + BUG_ON(slots > MAX_SLOTS); + + ret = pci_read_config_byte(pdev, PCI_SLOT_INFO, &first_bar); + if (ret) + return ret; + + first_bar &= PCI_SLOT_INFO_FIRST_BAR_MASK; + + if (first_bar > 5) { + dev_err(&pdev->dev, "Invalid first BAR. Aborting.\n"); + return -ENODEV; + } + + ret = pcim_enable_device(pdev); + if (ret) + return ret; + + chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL); + if (!chip) + return -ENOMEM; + + chip->pdev = pdev; + chip->fixes = (const struct sdhci_pci_fixes *)ent->driver_data; + if (chip->fixes) { + chip->quirks = chip->fixes->quirks; + chip->quirks2 = chip->fixes->quirks2; + chip->allow_runtime_pm = chip->fixes->allow_runtime_pm; + } + chip->num_slots = slots; + chip->pm_retune = true; + chip->rpm_retune = true; + + pci_set_drvdata(pdev, chip); + + if (chip->fixes && chip->fixes->probe) { + ret = chip->fixes->probe(chip); + if (ret) + return ret; + } + + slots = chip->num_slots; /* Quirk may have changed this */ + + for (i = 0; i < slots; i++) { + slot = sdhci_pci_probe_slot(pdev, chip, first_bar, i); + if (IS_ERR(slot)) { + for (i--; i >= 0; i--) + sdhci_pci_remove_slot(chip->slots[i]); + return PTR_ERR(slot); + } + + chip->slots[i] = slot; + } + + if (chip->allow_runtime_pm) + sdhci_pci_runtime_pm_allow(&pdev->dev); + + return 0; +} + +static void sdhci_pci_remove(struct pci_dev *pdev) +{ + int i; + struct sdhci_pci_chip *chip = pci_get_drvdata(pdev); + + if (chip->allow_runtime_pm) + sdhci_pci_runtime_pm_forbid(&pdev->dev); + + for (i = 0; i < chip->num_slots; i++) + sdhci_pci_remove_slot(chip->slots[i]); +} + +static struct pci_driver sdhci_driver = { + .name = "sdhci-pci", + .id_table = pci_ids, + .probe = sdhci_pci_probe, + .remove = sdhci_pci_remove, + .driver = { + .pm = &sdhci_pci_pm_ops + }, +}; + +module_pci_driver(sdhci_driver); + +MODULE_AUTHOR("Pierre Ossman "); +MODULE_DESCRIPTION("Secure Digital Host Controller Interface PCI driver"); +MODULE_LICENSE("GPL"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-dwc-mshc.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-dwc-mshc.c new file mode 100644 index 000000000000..f78d65448d17 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-dwc-mshc.c @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * SDHCI driver for Synopsys DWC_MSHC controller + * + * Copyright (C) 2018 Synopsys, Inc. (www.synopsys.com) + * + * Authors: + * Prabu Thangamuthu + * Manjunath M B + */ + +#include "sdhci.h" +#include "sdhci-pci.h" + +#define SDHCI_VENDOR_PTR_R 0xE8 + +/* Synopsys vendor specific registers */ +#define SDHC_GPIO_OUT 0x34 +#define SDHC_AT_CTRL_R 0x40 +#define SDHC_SW_TUNE_EN 0x00000010 + +/* MMCM DRP */ +#define SDHC_MMCM_DIV_REG 0x1020 +#define DIV_REG_100_MHZ 0x1145 +#define DIV_REG_200_MHZ 0x1083 +#define SDHC_MMCM_CLKFBOUT 0x1024 +#define CLKFBOUT_100_MHZ 0x0000 +#define CLKFBOUT_200_MHZ 0x0080 +#define SDHC_CCLK_MMCM_RST 0x00000001 + +static void sdhci_snps_set_clock(struct sdhci_host *host, unsigned int clock) +{ + u16 clk; + u32 reg, vendor_ptr; + + vendor_ptr = sdhci_readw(host, SDHCI_VENDOR_PTR_R); + + /* Disable software managed rx tuning */ + reg = sdhci_readl(host, (SDHC_AT_CTRL_R + vendor_ptr)); + reg &= ~SDHC_SW_TUNE_EN; + sdhci_writel(host, reg, (SDHC_AT_CTRL_R + vendor_ptr)); + + if (clock <= 52000000) { + sdhci_set_clock(host, clock); + } else { + /* Assert reset to MMCM */ + reg = sdhci_readl(host, (SDHC_GPIO_OUT + vendor_ptr)); + reg |= SDHC_CCLK_MMCM_RST; + sdhci_writel(host, reg, (SDHC_GPIO_OUT + vendor_ptr)); + + /* Configure MMCM */ + if (clock == 100000000) { + sdhci_writel(host, DIV_REG_100_MHZ, SDHC_MMCM_DIV_REG); + sdhci_writel(host, CLKFBOUT_100_MHZ, + SDHC_MMCM_CLKFBOUT); + } else { + sdhci_writel(host, DIV_REG_200_MHZ, SDHC_MMCM_DIV_REG); + sdhci_writel(host, CLKFBOUT_200_MHZ, + SDHC_MMCM_CLKFBOUT); + } + + /* De-assert reset to MMCM */ + reg = sdhci_readl(host, (SDHC_GPIO_OUT + vendor_ptr)); + reg &= ~SDHC_CCLK_MMCM_RST; + sdhci_writel(host, reg, (SDHC_GPIO_OUT + vendor_ptr)); + + /* Enable clock */ + clk = SDHCI_PROG_CLOCK_MODE | SDHCI_CLOCK_INT_EN | + SDHCI_CLOCK_CARD_EN; + sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); + } +} + +static const struct sdhci_ops sdhci_snps_ops = { + .set_clock = sdhci_snps_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, +}; + +const struct sdhci_pci_fixes sdhci_snps = { + .ops = &sdhci_snps_ops, +}; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-gli.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-gli.c new file mode 100644 index 000000000000..4d509f656188 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-gli.c @@ -0,0 +1,1159 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2019 Genesys Logic, Inc. + * + * Authors: Ben Chuang + * + * Version: v0.9.0 (2019-08-08) + */ + +#include +#include +#include +#include +#include +#include +#include +#include "sdhci.h" +#include "sdhci-pci.h" +#include "cqhci.h" + +/* Genesys Logic extra registers */ +#define SDHCI_GLI_9750_WT 0x800 +#define SDHCI_GLI_9750_WT_EN BIT(0) +#define GLI_9750_WT_EN_ON 0x1 +#define GLI_9750_WT_EN_OFF 0x0 + +#define SDHCI_GLI_9750_CFG2 0x848 +#define SDHCI_GLI_9750_CFG2_L1DLY GENMASK(28, 24) +#define GLI_9750_CFG2_L1DLY_VALUE 0x1F + +#define SDHCI_GLI_9750_DRIVING 0x860 +#define SDHCI_GLI_9750_DRIVING_1 GENMASK(11, 0) +#define SDHCI_GLI_9750_DRIVING_2 GENMASK(27, 26) +#define GLI_9750_DRIVING_1_VALUE 0xFFF +#define GLI_9750_DRIVING_2_VALUE 0x3 +#define SDHCI_GLI_9750_SEL_1 BIT(29) +#define SDHCI_GLI_9750_SEL_2 BIT(31) +#define SDHCI_GLI_9750_ALL_RST (BIT(24)|BIT(25)|BIT(28)|BIT(30)) + +#define SDHCI_GLI_9750_PLL 0x864 +#define SDHCI_GLI_9750_PLL_LDIV GENMASK(9, 0) +#define SDHCI_GLI_9750_PLL_PDIV GENMASK(14, 12) +#define SDHCI_GLI_9750_PLL_DIR BIT(15) +#define SDHCI_GLI_9750_PLL_TX2_INV BIT(23) +#define SDHCI_GLI_9750_PLL_TX2_DLY GENMASK(22, 20) +#define GLI_9750_PLL_TX2_INV_VALUE 0x1 +#define GLI_9750_PLL_TX2_DLY_VALUE 0x0 +#define SDHCI_GLI_9750_PLLSSC_STEP GENMASK(28, 24) +#define SDHCI_GLI_9750_PLLSSC_EN BIT(31) + +#define SDHCI_GLI_9750_PLLSSC 0x86C +#define SDHCI_GLI_9750_PLLSSC_PPM GENMASK(31, 16) + +#define SDHCI_GLI_9750_SW_CTRL 0x874 +#define SDHCI_GLI_9750_SW_CTRL_4 GENMASK(7, 6) +#define GLI_9750_SW_CTRL_4_VALUE 0x3 + +#define SDHCI_GLI_9750_MISC 0x878 +#define SDHCI_GLI_9750_MISC_TX1_INV BIT(2) +#define SDHCI_GLI_9750_MISC_RX_INV BIT(3) +#define SDHCI_GLI_9750_MISC_TX1_DLY GENMASK(6, 4) +#define GLI_9750_MISC_TX1_INV_VALUE 0x0 +#define GLI_9750_MISC_RX_INV_ON 0x1 +#define GLI_9750_MISC_RX_INV_OFF 0x0 +#define GLI_9750_MISC_RX_INV_VALUE GLI_9750_MISC_RX_INV_OFF +#define GLI_9750_MISC_TX1_DLY_VALUE 0x5 +#define SDHCI_GLI_9750_MISC_SSC_OFF BIT(26) + +#define SDHCI_GLI_9750_TUNING_CONTROL 0x540 +#define SDHCI_GLI_9750_TUNING_CONTROL_EN BIT(4) +#define GLI_9750_TUNING_CONTROL_EN_ON 0x1 +#define GLI_9750_TUNING_CONTROL_EN_OFF 0x0 +#define SDHCI_GLI_9750_TUNING_CONTROL_GLITCH_1 BIT(16) +#define SDHCI_GLI_9750_TUNING_CONTROL_GLITCH_2 GENMASK(20, 19) +#define GLI_9750_TUNING_CONTROL_GLITCH_1_VALUE 0x1 +#define GLI_9750_TUNING_CONTROL_GLITCH_2_VALUE 0x2 + +#define SDHCI_GLI_9750_TUNING_PARAMETERS 0x544 +#define SDHCI_GLI_9750_TUNING_PARAMETERS_RX_DLY GENMASK(2, 0) +#define GLI_9750_TUNING_PARAMETERS_RX_DLY_VALUE 0x1 + +#define SDHCI_GLI_9763E_CTRL_HS400 0x7 + +#define SDHCI_GLI_9763E_HS400_ES_REG 0x52C +#define SDHCI_GLI_9763E_HS400_ES_BIT BIT(8) + +#define PCIE_GLI_9763E_VHS 0x884 +#define GLI_9763E_VHS_REV GENMASK(19, 16) +#define GLI_9763E_VHS_REV_R 0x0 +#define GLI_9763E_VHS_REV_M 0x1 +#define GLI_9763E_VHS_REV_W 0x2 +#define PCIE_GLI_9763E_MB 0x888 +#define GLI_9763E_MB_CMDQ_OFF BIT(19) +#define GLI_9763E_MB_ERP_ON BIT(7) +#define PCIE_GLI_9763E_SCR 0x8E0 +#define GLI_9763E_SCR_AXI_REQ BIT(9) + +#define PCIE_GLI_9763E_CFG 0x8A0 +#define GLI_9763E_CFG_LPSN_DIS BIT(12) + +#define PCIE_GLI_9763E_CFG2 0x8A4 +#define GLI_9763E_CFG2_L1DLY GENMASK(28, 19) +#define GLI_9763E_CFG2_L1DLY_MID 0x54 + +#define PCIE_GLI_9763E_MMC_CTRL 0x960 +#define GLI_9763E_HS400_SLOW BIT(3) + +#define PCIE_GLI_9763E_CLKRXDLY 0x934 +#define GLI_9763E_HS400_RXDLY GENMASK(31, 28) +#define GLI_9763E_HS400_RXDLY_5 0x5 + +#define SDHCI_GLI_9763E_CQE_BASE_ADDR 0x200 +#define GLI_9763E_CQE_TRNS_MODE (SDHCI_TRNS_MULTI | \ + SDHCI_TRNS_BLK_CNT_EN | \ + SDHCI_TRNS_DMA) + +#define PCI_GLI_9755_WT 0x800 +#define PCI_GLI_9755_WT_EN BIT(0) +#define GLI_9755_WT_EN_ON 0x1 +#define GLI_9755_WT_EN_OFF 0x0 + +#define PCI_GLI_9755_PECONF 0x44 +#define PCI_GLI_9755_LFCLK GENMASK(14, 12) +#define PCI_GLI_9755_DMACLK BIT(29) +#define PCI_GLI_9755_INVERT_CD BIT(30) +#define PCI_GLI_9755_INVERT_WP BIT(31) + +#define PCI_GLI_9755_CFG2 0x48 +#define PCI_GLI_9755_CFG2_L1DLY GENMASK(28, 24) +#define GLI_9755_CFG2_L1DLY_VALUE 0x1F + +#define PCI_GLI_9755_PLL 0x64 +#define PCI_GLI_9755_PLL_LDIV GENMASK(9, 0) +#define PCI_GLI_9755_PLL_PDIV GENMASK(14, 12) +#define PCI_GLI_9755_PLL_DIR BIT(15) +#define PCI_GLI_9755_PLLSSC_STEP GENMASK(28, 24) +#define PCI_GLI_9755_PLLSSC_EN BIT(31) + +#define PCI_GLI_9755_PLLSSC 0x68 +#define PCI_GLI_9755_PLLSSC_PPM GENMASK(15, 0) + +#define PCI_GLI_9755_SerDes 0x70 +#define PCI_GLI_9755_SCP_DIS BIT(19) + +#define PCI_GLI_9755_MISC 0x78 +#define PCI_GLI_9755_MISC_SSC_OFF BIT(26) + +#define PCI_GLI_9755_PM_CTRL 0xFC +#define PCI_GLI_9755_PM_STATE GENMASK(1, 0) + +#define GLI_MAX_TUNING_LOOP 40 + +/* Genesys Logic chipset */ +static inline void gl9750_wt_on(struct sdhci_host *host) +{ + u32 wt_value; + u32 wt_enable; + + wt_value = sdhci_readl(host, SDHCI_GLI_9750_WT); + wt_enable = FIELD_GET(SDHCI_GLI_9750_WT_EN, wt_value); + + if (wt_enable == GLI_9750_WT_EN_ON) + return; + + wt_value &= ~SDHCI_GLI_9750_WT_EN; + wt_value |= FIELD_PREP(SDHCI_GLI_9750_WT_EN, GLI_9750_WT_EN_ON); + + sdhci_writel(host, wt_value, SDHCI_GLI_9750_WT); +} + +static inline void gl9750_wt_off(struct sdhci_host *host) +{ + u32 wt_value; + u32 wt_enable; + + wt_value = sdhci_readl(host, SDHCI_GLI_9750_WT); + wt_enable = FIELD_GET(SDHCI_GLI_9750_WT_EN, wt_value); + + if (wt_enable == GLI_9750_WT_EN_OFF) + return; + + wt_value &= ~SDHCI_GLI_9750_WT_EN; + wt_value |= FIELD_PREP(SDHCI_GLI_9750_WT_EN, GLI_9750_WT_EN_OFF); + + sdhci_writel(host, wt_value, SDHCI_GLI_9750_WT); +} + +static void gli_set_9750(struct sdhci_host *host) +{ + u32 driving_value; + u32 pll_value; + u32 sw_ctrl_value; + u32 misc_value; + u32 parameter_value; + u32 control_value; + u16 ctrl2; + + gl9750_wt_on(host); + + driving_value = sdhci_readl(host, SDHCI_GLI_9750_DRIVING); + pll_value = sdhci_readl(host, SDHCI_GLI_9750_PLL); + sw_ctrl_value = sdhci_readl(host, SDHCI_GLI_9750_SW_CTRL); + misc_value = sdhci_readl(host, SDHCI_GLI_9750_MISC); + parameter_value = sdhci_readl(host, SDHCI_GLI_9750_TUNING_PARAMETERS); + control_value = sdhci_readl(host, SDHCI_GLI_9750_TUNING_CONTROL); + + driving_value &= ~(SDHCI_GLI_9750_DRIVING_1); + driving_value &= ~(SDHCI_GLI_9750_DRIVING_2); + driving_value |= FIELD_PREP(SDHCI_GLI_9750_DRIVING_1, + GLI_9750_DRIVING_1_VALUE); + driving_value |= FIELD_PREP(SDHCI_GLI_9750_DRIVING_2, + GLI_9750_DRIVING_2_VALUE); + driving_value &= ~(SDHCI_GLI_9750_SEL_1|SDHCI_GLI_9750_SEL_2|SDHCI_GLI_9750_ALL_RST); + driving_value |= SDHCI_GLI_9750_SEL_2; + sdhci_writel(host, driving_value, SDHCI_GLI_9750_DRIVING); + + sw_ctrl_value &= ~SDHCI_GLI_9750_SW_CTRL_4; + sw_ctrl_value |= FIELD_PREP(SDHCI_GLI_9750_SW_CTRL_4, + GLI_9750_SW_CTRL_4_VALUE); + sdhci_writel(host, sw_ctrl_value, SDHCI_GLI_9750_SW_CTRL); + + /* reset the tuning flow after reinit and before starting tuning */ + pll_value &= ~SDHCI_GLI_9750_PLL_TX2_INV; + pll_value &= ~SDHCI_GLI_9750_PLL_TX2_DLY; + pll_value |= FIELD_PREP(SDHCI_GLI_9750_PLL_TX2_INV, + GLI_9750_PLL_TX2_INV_VALUE); + pll_value |= FIELD_PREP(SDHCI_GLI_9750_PLL_TX2_DLY, + GLI_9750_PLL_TX2_DLY_VALUE); + + misc_value &= ~SDHCI_GLI_9750_MISC_TX1_INV; + misc_value &= ~SDHCI_GLI_9750_MISC_RX_INV; + misc_value &= ~SDHCI_GLI_9750_MISC_TX1_DLY; + misc_value |= FIELD_PREP(SDHCI_GLI_9750_MISC_TX1_INV, + GLI_9750_MISC_TX1_INV_VALUE); + misc_value |= FIELD_PREP(SDHCI_GLI_9750_MISC_RX_INV, + GLI_9750_MISC_RX_INV_VALUE); + misc_value |= FIELD_PREP(SDHCI_GLI_9750_MISC_TX1_DLY, + GLI_9750_MISC_TX1_DLY_VALUE); + + parameter_value &= ~SDHCI_GLI_9750_TUNING_PARAMETERS_RX_DLY; + parameter_value |= FIELD_PREP(SDHCI_GLI_9750_TUNING_PARAMETERS_RX_DLY, + GLI_9750_TUNING_PARAMETERS_RX_DLY_VALUE); + + control_value &= ~SDHCI_GLI_9750_TUNING_CONTROL_GLITCH_1; + control_value &= ~SDHCI_GLI_9750_TUNING_CONTROL_GLITCH_2; + control_value |= FIELD_PREP(SDHCI_GLI_9750_TUNING_CONTROL_GLITCH_1, + GLI_9750_TUNING_CONTROL_GLITCH_1_VALUE); + control_value |= FIELD_PREP(SDHCI_GLI_9750_TUNING_CONTROL_GLITCH_2, + GLI_9750_TUNING_CONTROL_GLITCH_2_VALUE); + + sdhci_writel(host, pll_value, SDHCI_GLI_9750_PLL); + sdhci_writel(host, misc_value, SDHCI_GLI_9750_MISC); + + /* disable tuned clk */ + ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); + ctrl2 &= ~SDHCI_CTRL_TUNED_CLK; + sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); + + /* enable tuning parameters control */ + control_value &= ~SDHCI_GLI_9750_TUNING_CONTROL_EN; + control_value |= FIELD_PREP(SDHCI_GLI_9750_TUNING_CONTROL_EN, + GLI_9750_TUNING_CONTROL_EN_ON); + sdhci_writel(host, control_value, SDHCI_GLI_9750_TUNING_CONTROL); + + /* write tuning parameters */ + sdhci_writel(host, parameter_value, SDHCI_GLI_9750_TUNING_PARAMETERS); + + /* disable tuning parameters control */ + control_value &= ~SDHCI_GLI_9750_TUNING_CONTROL_EN; + control_value |= FIELD_PREP(SDHCI_GLI_9750_TUNING_CONTROL_EN, + GLI_9750_TUNING_CONTROL_EN_OFF); + sdhci_writel(host, control_value, SDHCI_GLI_9750_TUNING_CONTROL); + + /* clear tuned clk */ + ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); + ctrl2 &= ~SDHCI_CTRL_TUNED_CLK; + sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); + + gl9750_wt_off(host); +} + +static void gli_set_9750_rx_inv(struct sdhci_host *host, bool b) +{ + u32 misc_value; + + gl9750_wt_on(host); + + misc_value = sdhci_readl(host, SDHCI_GLI_9750_MISC); + misc_value &= ~SDHCI_GLI_9750_MISC_RX_INV; + if (b) { + misc_value |= FIELD_PREP(SDHCI_GLI_9750_MISC_RX_INV, + GLI_9750_MISC_RX_INV_ON); + } else { + misc_value |= FIELD_PREP(SDHCI_GLI_9750_MISC_RX_INV, + GLI_9750_MISC_RX_INV_OFF); + } + sdhci_writel(host, misc_value, SDHCI_GLI_9750_MISC); + + gl9750_wt_off(host); +} + +static int __sdhci_execute_tuning_9750(struct sdhci_host *host, u32 opcode) +{ + int i; + int rx_inv; + + for (rx_inv = 0; rx_inv < 2; rx_inv++) { + gli_set_9750_rx_inv(host, !!rx_inv); + sdhci_start_tuning(host); + + for (i = 0; i < GLI_MAX_TUNING_LOOP; i++) { + u16 ctrl; + + sdhci_send_tuning(host, opcode); + + if (!host->tuning_done) { + sdhci_abort_tuning(host, opcode); + break; + } + + ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); + if (!(ctrl & SDHCI_CTRL_EXEC_TUNING)) { + if (ctrl & SDHCI_CTRL_TUNED_CLK) + return 0; /* Success! */ + break; + } + } + } + if (!host->tuning_done) { + pr_info("%s: Tuning timeout, falling back to fixed sampling clock\n", + mmc_hostname(host->mmc)); + return -ETIMEDOUT; + } + + pr_info("%s: Tuning failed, falling back to fixed sampling clock\n", + mmc_hostname(host->mmc)); + sdhci_reset_tuning(host); + + return -EAGAIN; +} + +static int gl9750_execute_tuning(struct sdhci_host *host, u32 opcode) +{ + host->mmc->retune_period = 0; + if (host->tuning_mode == SDHCI_TUNING_MODE_1) + host->mmc->retune_period = host->tuning_count; + + gli_set_9750(host); + host->tuning_err = __sdhci_execute_tuning_9750(host, opcode); + sdhci_end_tuning(host); + + return 0; +} + +static void gl9750_disable_ssc_pll(struct sdhci_host *host) +{ + u32 pll; + + gl9750_wt_on(host); + pll = sdhci_readl(host, SDHCI_GLI_9750_PLL); + pll &= ~(SDHCI_GLI_9750_PLL_DIR | SDHCI_GLI_9750_PLLSSC_EN); + sdhci_writel(host, pll, SDHCI_GLI_9750_PLL); + gl9750_wt_off(host); +} + +static void gl9750_set_pll(struct sdhci_host *host, u8 dir, u16 ldiv, u8 pdiv) +{ + u32 pll; + + gl9750_wt_on(host); + pll = sdhci_readl(host, SDHCI_GLI_9750_PLL); + pll &= ~(SDHCI_GLI_9750_PLL_LDIV | + SDHCI_GLI_9750_PLL_PDIV | + SDHCI_GLI_9750_PLL_DIR); + pll |= FIELD_PREP(SDHCI_GLI_9750_PLL_LDIV, ldiv) | + FIELD_PREP(SDHCI_GLI_9750_PLL_PDIV, pdiv) | + FIELD_PREP(SDHCI_GLI_9750_PLL_DIR, dir); + sdhci_writel(host, pll, SDHCI_GLI_9750_PLL); + gl9750_wt_off(host); + + /* wait for pll stable */ + mdelay(1); +} + +static bool gl9750_ssc_enable(struct sdhci_host *host) +{ + u32 misc; + u8 off; + + gl9750_wt_on(host); + misc = sdhci_readl(host, SDHCI_GLI_9750_MISC); + off = FIELD_GET(SDHCI_GLI_9750_MISC_SSC_OFF, misc); + gl9750_wt_off(host); + + return !off; +} + +static void gl9750_set_ssc(struct sdhci_host *host, u8 enable, u8 step, u16 ppm) +{ + u32 pll; + u32 ssc; + + gl9750_wt_on(host); + pll = sdhci_readl(host, SDHCI_GLI_9750_PLL); + ssc = sdhci_readl(host, SDHCI_GLI_9750_PLLSSC); + pll &= ~(SDHCI_GLI_9750_PLLSSC_STEP | + SDHCI_GLI_9750_PLLSSC_EN); + ssc &= ~SDHCI_GLI_9750_PLLSSC_PPM; + pll |= FIELD_PREP(SDHCI_GLI_9750_PLLSSC_STEP, step) | + FIELD_PREP(SDHCI_GLI_9750_PLLSSC_EN, enable); + ssc |= FIELD_PREP(SDHCI_GLI_9750_PLLSSC_PPM, ppm); + sdhci_writel(host, ssc, SDHCI_GLI_9750_PLLSSC); + sdhci_writel(host, pll, SDHCI_GLI_9750_PLL); + gl9750_wt_off(host); +} + +static void gl9750_set_ssc_pll_205mhz(struct sdhci_host *host) +{ + bool enable = gl9750_ssc_enable(host); + + /* set pll to 205MHz and ssc */ + gl9750_set_ssc(host, enable, 0xF, 0x5A1D); + gl9750_set_pll(host, 0x1, 0x246, 0x0); +} + +static void gl9750_set_ssc_pll_100mhz(struct sdhci_host *host) +{ + bool enable = gl9750_ssc_enable(host); + + /* set pll to 100MHz and ssc */ + gl9750_set_ssc(host, enable, 0xE, 0x51EC); + gl9750_set_pll(host, 0x1, 0x244, 0x1); +} + +static void gl9750_set_ssc_pll_50mhz(struct sdhci_host *host) +{ + bool enable = gl9750_ssc_enable(host); + + /* set pll to 50MHz and ssc */ + gl9750_set_ssc(host, enable, 0xE, 0x51EC); + gl9750_set_pll(host, 0x1, 0x244, 0x3); +} + +static void sdhci_gl9750_set_clock(struct sdhci_host *host, unsigned int clock) +{ + struct mmc_ios *ios = &host->mmc->ios; + u16 clk; + + host->mmc->actual_clock = 0; + + gl9750_disable_ssc_pll(host); + sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); + + if (clock == 0) + return; + + clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); + if (clock == 200000000 && ios->timing == MMC_TIMING_UHS_SDR104) { + host->mmc->actual_clock = 205000000; + gl9750_set_ssc_pll_205mhz(host); + } else if (clock == 100000000) { + gl9750_set_ssc_pll_100mhz(host); + } else if (clock == 50000000) { + gl9750_set_ssc_pll_50mhz(host); + } + + sdhci_enable_clk(host, clk); +} + +static void gl9750_hw_setting(struct sdhci_host *host) +{ + u32 value; + + gl9750_wt_on(host); + + value = sdhci_readl(host, SDHCI_GLI_9750_CFG2); + value &= ~SDHCI_GLI_9750_CFG2_L1DLY; + /* set ASPM L1 entry delay to 7.9us */ + value |= FIELD_PREP(SDHCI_GLI_9750_CFG2_L1DLY, + GLI_9750_CFG2_L1DLY_VALUE); + sdhci_writel(host, value, SDHCI_GLI_9750_CFG2); + + gl9750_wt_off(host); +} + +static void gli_pcie_enable_msi(struct sdhci_pci_slot *slot) +{ + int ret; + + ret = pci_alloc_irq_vectors(slot->chip->pdev, 1, 1, + PCI_IRQ_MSI | PCI_IRQ_MSIX); + if (ret < 0) { + pr_warn("%s: enable PCI MSI failed, error=%d\n", + mmc_hostname(slot->host->mmc), ret); + return; + } + + slot->host->irq = pci_irq_vector(slot->chip->pdev, 0); +} + +static inline void gl9755_wt_on(struct pci_dev *pdev) +{ + u32 wt_value; + u32 wt_enable; + + pci_read_config_dword(pdev, PCI_GLI_9755_WT, &wt_value); + wt_enable = FIELD_GET(PCI_GLI_9755_WT_EN, wt_value); + + if (wt_enable == GLI_9755_WT_EN_ON) + return; + + wt_value &= ~PCI_GLI_9755_WT_EN; + wt_value |= FIELD_PREP(PCI_GLI_9755_WT_EN, GLI_9755_WT_EN_ON); + + pci_write_config_dword(pdev, PCI_GLI_9755_WT, wt_value); +} + +static inline void gl9755_wt_off(struct pci_dev *pdev) +{ + u32 wt_value; + u32 wt_enable; + + pci_read_config_dword(pdev, PCI_GLI_9755_WT, &wt_value); + wt_enable = FIELD_GET(PCI_GLI_9755_WT_EN, wt_value); + + if (wt_enable == GLI_9755_WT_EN_OFF) + return; + + wt_value &= ~PCI_GLI_9755_WT_EN; + wt_value |= FIELD_PREP(PCI_GLI_9755_WT_EN, GLI_9755_WT_EN_OFF); + + pci_write_config_dword(pdev, PCI_GLI_9755_WT, wt_value); +} + +static void gl9755_disable_ssc_pll(struct pci_dev *pdev) +{ + u32 pll; + + gl9755_wt_on(pdev); + pci_read_config_dword(pdev, PCI_GLI_9755_PLL, &pll); + pll &= ~(PCI_GLI_9755_PLL_DIR | PCI_GLI_9755_PLLSSC_EN); + pci_write_config_dword(pdev, PCI_GLI_9755_PLL, pll); + gl9755_wt_off(pdev); +} + +static void gl9755_set_pll(struct pci_dev *pdev, u8 dir, u16 ldiv, u8 pdiv) +{ + u32 pll; + + gl9755_wt_on(pdev); + pci_read_config_dword(pdev, PCI_GLI_9755_PLL, &pll); + pll &= ~(PCI_GLI_9755_PLL_LDIV | + PCI_GLI_9755_PLL_PDIV | + PCI_GLI_9755_PLL_DIR); + pll |= FIELD_PREP(PCI_GLI_9755_PLL_LDIV, ldiv) | + FIELD_PREP(PCI_GLI_9755_PLL_PDIV, pdiv) | + FIELD_PREP(PCI_GLI_9755_PLL_DIR, dir); + pci_write_config_dword(pdev, PCI_GLI_9755_PLL, pll); + gl9755_wt_off(pdev); + + /* wait for pll stable */ + mdelay(1); +} + +static bool gl9755_ssc_enable(struct pci_dev *pdev) +{ + u32 misc; + u8 off; + + gl9755_wt_on(pdev); + pci_read_config_dword(pdev, PCI_GLI_9755_MISC, &misc); + off = FIELD_GET(PCI_GLI_9755_MISC_SSC_OFF, misc); + gl9755_wt_off(pdev); + + return !off; +} + +static void gl9755_set_ssc(struct pci_dev *pdev, u8 enable, u8 step, u16 ppm) +{ + u32 pll; + u32 ssc; + + gl9755_wt_on(pdev); + pci_read_config_dword(pdev, PCI_GLI_9755_PLL, &pll); + pci_read_config_dword(pdev, PCI_GLI_9755_PLLSSC, &ssc); + pll &= ~(PCI_GLI_9755_PLLSSC_STEP | + PCI_GLI_9755_PLLSSC_EN); + ssc &= ~PCI_GLI_9755_PLLSSC_PPM; + pll |= FIELD_PREP(PCI_GLI_9755_PLLSSC_STEP, step) | + FIELD_PREP(PCI_GLI_9755_PLLSSC_EN, enable); + ssc |= FIELD_PREP(PCI_GLI_9755_PLLSSC_PPM, ppm); + pci_write_config_dword(pdev, PCI_GLI_9755_PLLSSC, ssc); + pci_write_config_dword(pdev, PCI_GLI_9755_PLL, pll); + gl9755_wt_off(pdev); +} + +static void gl9755_set_ssc_pll_205mhz(struct pci_dev *pdev) +{ + bool enable = gl9755_ssc_enable(pdev); + + /* set pll to 205MHz and ssc */ + gl9755_set_ssc(pdev, enable, 0xF, 0x5A1D); + gl9755_set_pll(pdev, 0x1, 0x246, 0x0); +} + +static void gl9755_set_ssc_pll_100mhz(struct pci_dev *pdev) +{ + bool enable = gl9755_ssc_enable(pdev); + + /* set pll to 100MHz and ssc */ + gl9755_set_ssc(pdev, enable, 0xE, 0x51EC); + gl9755_set_pll(pdev, 0x1, 0x244, 0x1); +} + +static void gl9755_set_ssc_pll_50mhz(struct pci_dev *pdev) +{ + bool enable = gl9755_ssc_enable(pdev); + + /* set pll to 50MHz and ssc */ + gl9755_set_ssc(pdev, enable, 0xE, 0x51EC); + gl9755_set_pll(pdev, 0x1, 0x244, 0x3); +} + +static void sdhci_gl9755_set_clock(struct sdhci_host *host, unsigned int clock) +{ + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct mmc_ios *ios = &host->mmc->ios; + struct pci_dev *pdev; + u16 clk; + + pdev = slot->chip->pdev; + host->mmc->actual_clock = 0; + + gl9755_disable_ssc_pll(pdev); + sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); + + if (clock == 0) + return; + + clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); + if (clock == 200000000 && ios->timing == MMC_TIMING_UHS_SDR104) { + host->mmc->actual_clock = 205000000; + gl9755_set_ssc_pll_205mhz(pdev); + } else if (clock == 100000000) { + gl9755_set_ssc_pll_100mhz(pdev); + } else if (clock == 50000000) { + gl9755_set_ssc_pll_50mhz(pdev); + } + + sdhci_enable_clk(host, clk); +} + +static void gl9755_hw_setting(struct sdhci_pci_slot *slot) +{ + struct pci_dev *pdev = slot->chip->pdev; + u32 value; + + gl9755_wt_on(pdev); + + pci_read_config_dword(pdev, PCI_GLI_9755_PECONF, &value); + /* + * Apple ARM64 platforms using these chips may have + * inverted CD/WP detection. + */ + if (of_property_read_bool(pdev->dev.of_node, "cd-inverted")) + value |= PCI_GLI_9755_INVERT_CD; + if (of_property_read_bool(pdev->dev.of_node, "wp-inverted")) + value |= PCI_GLI_9755_INVERT_WP; + value &= ~PCI_GLI_9755_LFCLK; + value &= ~PCI_GLI_9755_DMACLK; + pci_write_config_dword(pdev, PCI_GLI_9755_PECONF, value); + + /* enable short circuit protection */ + pci_read_config_dword(pdev, PCI_GLI_9755_SerDes, &value); + value &= ~PCI_GLI_9755_SCP_DIS; + pci_write_config_dword(pdev, PCI_GLI_9755_SerDes, value); + + pci_read_config_dword(pdev, PCI_GLI_9755_CFG2, &value); + value &= ~PCI_GLI_9755_CFG2_L1DLY; + /* set ASPM L1 entry delay to 7.9us */ + value |= FIELD_PREP(PCI_GLI_9755_CFG2_L1DLY, + GLI_9755_CFG2_L1DLY_VALUE); + pci_write_config_dword(pdev, PCI_GLI_9755_CFG2, value); + + /* toggle PM state to allow GL9755 to enter ASPM L1.2 */ + pci_read_config_dword(pdev, PCI_GLI_9755_PM_CTRL, &value); + value |= PCI_GLI_9755_PM_STATE; + pci_write_config_dword(pdev, PCI_GLI_9755_PM_CTRL, value); + value &= ~PCI_GLI_9755_PM_STATE; + pci_write_config_dword(pdev, PCI_GLI_9755_PM_CTRL, value); + + gl9755_wt_off(pdev); +} + +static int gli_probe_slot_gl9750(struct sdhci_pci_slot *slot) +{ + struct sdhci_host *host = slot->host; + + gl9750_hw_setting(host); + gli_pcie_enable_msi(slot); + slot->host->mmc->caps2 |= MMC_CAP2_NO_SDIO; + sdhci_enable_v4_mode(host); + + return 0; +} + +static int gli_probe_slot_gl9755(struct sdhci_pci_slot *slot) +{ + struct sdhci_host *host = slot->host; + + gl9755_hw_setting(slot); + gli_pcie_enable_msi(slot); + slot->host->mmc->caps2 |= MMC_CAP2_NO_SDIO; + sdhci_enable_v4_mode(host); + + return 0; +} + +static void sdhci_gli_voltage_switch(struct sdhci_host *host) +{ + /* + * According to Section 3.6.1 signal voltage switch procedure in + * SD Host Controller Simplified Spec. 4.20, steps 6~8 are as + * follows: + * (6) Set 1.8V Signal Enable in the Host Control 2 register. + * (7) Wait 5ms. 1.8V voltage regulator shall be stable within this + * period. + * (8) If 1.8V Signal Enable is cleared by Host Controller, go to + * step (12). + * + * Wait 5ms after set 1.8V signal enable in Host Control 2 register + * to ensure 1.8V signal enable bit is set by GL9750/GL9755. + * + * ...however, the controller in the NUC10i3FNK4 (a 9755) requires + * slightly longer than 5ms before the control register reports that + * 1.8V is ready, and far longer still before the card will actually + * work reliably. + */ + usleep_range(100000, 110000); +} + +static void sdhci_gl9750_reset(struct sdhci_host *host, u8 mask) +{ + sdhci_reset(host, mask); + gli_set_9750(host); +} + +static u32 sdhci_gl9750_readl(struct sdhci_host *host, int reg) +{ + u32 value; + + value = readl(host->ioaddr + reg); + if (unlikely(reg == SDHCI_MAX_CURRENT && !(value & 0xff))) + value |= 0xc8; + + return value; +} + +#ifdef CONFIG_PM_SLEEP +static int sdhci_pci_gli_resume(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + + pci_free_irq_vectors(slot->chip->pdev); + gli_pcie_enable_msi(slot); + + return sdhci_pci_resume_host(chip); +} + +static int sdhci_cqhci_gli_resume(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + int ret; + + ret = sdhci_pci_gli_resume(chip); + if (ret) + return ret; + + return cqhci_resume(slot->host->mmc); +} + +static int sdhci_cqhci_gli_suspend(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + int ret; + + ret = cqhci_suspend(slot->host->mmc); + if (ret) + return ret; + + return sdhci_suspend_host(slot->host); +} +#endif + +static void gl9763e_hs400_enhanced_strobe(struct mmc_host *mmc, + struct mmc_ios *ios) +{ + struct sdhci_host *host = mmc_priv(mmc); + u32 val; + + val = sdhci_readl(host, SDHCI_GLI_9763E_HS400_ES_REG); + if (ios->enhanced_strobe) + val |= SDHCI_GLI_9763E_HS400_ES_BIT; + else + val &= ~SDHCI_GLI_9763E_HS400_ES_BIT; + + sdhci_writel(host, val, SDHCI_GLI_9763E_HS400_ES_REG); +} + +static void sdhci_set_gl9763e_signaling(struct sdhci_host *host, + unsigned int timing) +{ + u16 ctrl_2; + + ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); + ctrl_2 &= ~SDHCI_CTRL_UHS_MASK; + if (timing == MMC_TIMING_MMC_HS200) + ctrl_2 |= SDHCI_CTRL_UHS_SDR104; + else if (timing == MMC_TIMING_MMC_HS) + ctrl_2 |= SDHCI_CTRL_UHS_SDR25; + else if (timing == MMC_TIMING_MMC_DDR52) + ctrl_2 |= SDHCI_CTRL_UHS_DDR50; + else if (timing == MMC_TIMING_MMC_HS400) + ctrl_2 |= SDHCI_GLI_9763E_CTRL_HS400; + + sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); +} + +static void sdhci_gl9763e_dumpregs(struct mmc_host *mmc) +{ + sdhci_dumpregs(mmc_priv(mmc)); +} + +static void sdhci_gl9763e_cqe_pre_enable(struct mmc_host *mmc) +{ + struct cqhci_host *cq_host = mmc->cqe_private; + u32 value; + + value = cqhci_readl(cq_host, CQHCI_CFG); + value |= CQHCI_ENABLE; + cqhci_writel(cq_host, value, CQHCI_CFG); +} + +static void sdhci_gl9763e_cqe_enable(struct mmc_host *mmc) +{ + struct sdhci_host *host = mmc_priv(mmc); + + sdhci_writew(host, GLI_9763E_CQE_TRNS_MODE, SDHCI_TRANSFER_MODE); + sdhci_cqe_enable(mmc); +} + +static u32 sdhci_gl9763e_cqhci_irq(struct sdhci_host *host, u32 intmask) +{ + int cmd_error = 0; + int data_error = 0; + + if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error)) + return intmask; + + cqhci_irq(host->mmc, intmask, cmd_error, data_error); + + return 0; +} + +static void sdhci_gl9763e_cqe_post_disable(struct mmc_host *mmc) +{ + struct sdhci_host *host = mmc_priv(mmc); + struct cqhci_host *cq_host = mmc->cqe_private; + u32 value; + + value = cqhci_readl(cq_host, CQHCI_CFG); + value &= ~CQHCI_ENABLE; + cqhci_writel(cq_host, value, CQHCI_CFG); + sdhci_writew(host, 0x0, SDHCI_TRANSFER_MODE); +} + +static const struct cqhci_host_ops sdhci_gl9763e_cqhci_ops = { + .enable = sdhci_gl9763e_cqe_enable, + .disable = sdhci_cqe_disable, + .dumpregs = sdhci_gl9763e_dumpregs, + .pre_enable = sdhci_gl9763e_cqe_pre_enable, + .post_disable = sdhci_gl9763e_cqe_post_disable, +}; + +static int gl9763e_add_host(struct sdhci_pci_slot *slot) +{ + struct device *dev = &slot->chip->pdev->dev; + struct sdhci_host *host = slot->host; + struct cqhci_host *cq_host; + bool dma64; + int ret; + + ret = sdhci_setup_host(host); + if (ret) + return ret; + + cq_host = devm_kzalloc(dev, sizeof(*cq_host), GFP_KERNEL); + if (!cq_host) { + ret = -ENOMEM; + goto cleanup; + } + + cq_host->mmio = host->ioaddr + SDHCI_GLI_9763E_CQE_BASE_ADDR; + cq_host->ops = &sdhci_gl9763e_cqhci_ops; + + dma64 = host->flags & SDHCI_USE_64_BIT_DMA; + if (dma64) + cq_host->caps |= CQHCI_TASK_DESC_SZ_128; + + ret = cqhci_init(cq_host, host->mmc, dma64); + if (ret) + goto cleanup; + + ret = __sdhci_add_host(host); + if (ret) + goto cleanup; + + return 0; + +cleanup: + sdhci_cleanup_host(host); + return ret; +} + +static void sdhci_gl9763e_reset(struct sdhci_host *host, u8 mask) +{ + if ((host->mmc->caps2 & MMC_CAP2_CQE) && (mask & SDHCI_RESET_ALL) && + host->mmc->cqe_private) + cqhci_deactivate(host->mmc); + sdhci_reset(host, mask); +} + +static void gli_set_gl9763e(struct sdhci_pci_slot *slot) +{ + struct pci_dev *pdev = slot->chip->pdev; + u32 value; + + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); + value &= ~GLI_9763E_VHS_REV; + value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_W); + pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_SCR, &value); + value |= GLI_9763E_SCR_AXI_REQ; + pci_write_config_dword(pdev, PCIE_GLI_9763E_SCR, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_MMC_CTRL, &value); + value &= ~GLI_9763E_HS400_SLOW; + pci_write_config_dword(pdev, PCIE_GLI_9763E_MMC_CTRL, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_CFG2, &value); + value &= ~GLI_9763E_CFG2_L1DLY; + /* set ASPM L1 entry delay to 21us */ + value |= FIELD_PREP(GLI_9763E_CFG2_L1DLY, GLI_9763E_CFG2_L1DLY_MID); + pci_write_config_dword(pdev, PCIE_GLI_9763E_CFG2, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_CLKRXDLY, &value); + value &= ~GLI_9763E_HS400_RXDLY; + value |= FIELD_PREP(GLI_9763E_HS400_RXDLY, GLI_9763E_HS400_RXDLY_5); + pci_write_config_dword(pdev, PCIE_GLI_9763E_CLKRXDLY, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); + value &= ~GLI_9763E_VHS_REV; + value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R); + pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); +} + +#ifdef CONFIG_PM +static void gl9763e_set_low_power_negotiation(struct sdhci_pci_slot *slot, bool enable) +{ + struct pci_dev *pdev = slot->chip->pdev; + u32 value; + + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); + value &= ~GLI_9763E_VHS_REV; + value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_W); + pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_CFG, &value); + + if (enable) + value &= ~GLI_9763E_CFG_LPSN_DIS; + else + value |= GLI_9763E_CFG_LPSN_DIS; + + pci_write_config_dword(pdev, PCIE_GLI_9763E_CFG, value); + + pci_read_config_dword(pdev, PCIE_GLI_9763E_VHS, &value); + value &= ~GLI_9763E_VHS_REV; + value |= FIELD_PREP(GLI_9763E_VHS_REV, GLI_9763E_VHS_REV_R); + pci_write_config_dword(pdev, PCIE_GLI_9763E_VHS, value); +} + +static int gl9763e_runtime_suspend(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + struct sdhci_host *host = slot->host; + u16 clock; + + /* Enable LPM negotiation to allow entering L1 state */ + gl9763e_set_low_power_negotiation(slot, true); + + clock = sdhci_readw(host, SDHCI_CLOCK_CONTROL); + clock &= ~(SDHCI_CLOCK_PLL_EN | SDHCI_CLOCK_CARD_EN); + sdhci_writew(host, clock, SDHCI_CLOCK_CONTROL); + + return 0; +} + +static int gl9763e_runtime_resume(struct sdhci_pci_chip *chip) +{ + struct sdhci_pci_slot *slot = chip->slots[0]; + struct sdhci_host *host = slot->host; + u16 clock; + + if (host->mmc->ios.power_mode != MMC_POWER_ON) + return 0; + + clock = sdhci_readw(host, SDHCI_CLOCK_CONTROL); + + clock |= SDHCI_CLOCK_PLL_EN; + clock &= ~SDHCI_CLOCK_INT_STABLE; + sdhci_writew(host, clock, SDHCI_CLOCK_CONTROL); + + /* Wait max 150 ms */ + if (read_poll_timeout(sdhci_readw, clock, (clock & SDHCI_CLOCK_INT_STABLE), + 1000, 150000, false, host, SDHCI_CLOCK_CONTROL)) { + pr_err("%s: PLL clock never stabilised.\n", + mmc_hostname(host->mmc)); + sdhci_dumpregs(host); + } + + clock |= SDHCI_CLOCK_CARD_EN; + sdhci_writew(host, clock, SDHCI_CLOCK_CONTROL); + + /* Disable LPM negotiation to avoid entering L1 state. */ + gl9763e_set_low_power_negotiation(slot, false); + + return 0; +} +#endif + +static int gli_probe_slot_gl9763e(struct sdhci_pci_slot *slot) +{ + struct pci_dev *pdev = slot->chip->pdev; + struct sdhci_host *host = slot->host; + u32 value; + + host->mmc->caps |= MMC_CAP_8_BIT_DATA | + MMC_CAP_1_8V_DDR | + MMC_CAP_NONREMOVABLE; + host->mmc->caps2 |= MMC_CAP2_HS200_1_8V_SDR | + MMC_CAP2_HS400_1_8V | + MMC_CAP2_HS400_ES | + MMC_CAP2_NO_SDIO | + MMC_CAP2_NO_SD; + + pci_read_config_dword(pdev, PCIE_GLI_9763E_MB, &value); + if (!(value & GLI_9763E_MB_CMDQ_OFF)) + if (value & GLI_9763E_MB_ERP_ON) + host->mmc->caps2 |= MMC_CAP2_CQE | MMC_CAP2_CQE_DCMD; + + gli_pcie_enable_msi(slot); + host->mmc_host_ops.hs400_enhanced_strobe = + gl9763e_hs400_enhanced_strobe; + gli_set_gl9763e(slot); + sdhci_enable_v4_mode(host); + + return 0; +} + +#define REG_OFFSET_IN_BITS(reg) ((reg) << 3 & 0x18) + +static u16 sdhci_gli_readw(struct sdhci_host *host, int reg) +{ + u32 val = readl(host->ioaddr + (reg & ~3)); + u16 word; + + word = (val >> REG_OFFSET_IN_BITS(reg)) & 0xffff; + return word; +} + +static u8 sdhci_gli_readb(struct sdhci_host *host, int reg) +{ + u32 val = readl(host->ioaddr + (reg & ~3)); + u8 byte = (val >> REG_OFFSET_IN_BITS(reg)) & 0xff; + + return byte; +} + +static const struct sdhci_ops sdhci_gl9755_ops = { + .read_w = sdhci_gli_readw, + .read_b = sdhci_gli_readb, + .set_clock = sdhci_gl9755_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, + .voltage_switch = sdhci_gli_voltage_switch, +}; + +const struct sdhci_pci_fixes sdhci_gl9755 = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_BROKEN_DDR50, + .probe_slot = gli_probe_slot_gl9755, + .ops = &sdhci_gl9755_ops, +#ifdef CONFIG_PM_SLEEP + .resume = sdhci_pci_gli_resume, +#endif +}; + +static const struct sdhci_ops sdhci_gl9750_ops = { + .read_w = sdhci_gli_readw, + .read_b = sdhci_gli_readb, + .read_l = sdhci_gl9750_readl, + .set_clock = sdhci_gl9750_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_gl9750_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, + .voltage_switch = sdhci_gli_voltage_switch, + .platform_execute_tuning = gl9750_execute_tuning, +}; + +const struct sdhci_pci_fixes sdhci_gl9750 = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_BROKEN_DDR50, + .probe_slot = gli_probe_slot_gl9750, + .ops = &sdhci_gl9750_ops, +#ifdef CONFIG_PM_SLEEP + .resume = sdhci_pci_gli_resume, +#endif +}; + +static const struct sdhci_ops sdhci_gl9763e_ops = { + .set_clock = sdhci_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_gl9763e_reset, + .set_uhs_signaling = sdhci_set_gl9763e_signaling, + .voltage_switch = sdhci_gli_voltage_switch, + .irq = sdhci_gl9763e_cqhci_irq, +}; + +const struct sdhci_pci_fixes sdhci_gl9763e = { + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .probe_slot = gli_probe_slot_gl9763e, + .ops = &sdhci_gl9763e_ops, +#ifdef CONFIG_PM_SLEEP + .resume = sdhci_cqhci_gli_resume, + .suspend = sdhci_cqhci_gli_suspend, +#endif +#ifdef CONFIG_PM + .runtime_suspend = gl9763e_runtime_suspend, + .runtime_resume = gl9763e_runtime_resume, + .allow_runtime_pm = true, +#endif + .add_host = gl9763e_add_host, +}; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-o2micro.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-o2micro.c new file mode 100644 index 000000000000..bca1d095b759 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci-o2micro.c @@ -0,0 +1,926 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2013 BayHub Technology Ltd. + * + * Authors: Peter Guo + * Adam Lee + * Ernest Zhang + */ + +#include +#include +#include +#include +#include +#include + +#include "sdhci.h" +#include "sdhci-pci.h" + +/* + * O2Micro device registers + */ + +#define O2_SD_MISC_REG5 0x64 +#define O2_SD_LD0_CTRL 0x68 +#define O2_SD_DEV_CTRL 0x88 +#define O2_SD_LOCK_WP 0xD3 +#define O2_SD_TEST_REG 0xD4 +#define O2_SD_FUNC_REG0 0xDC +#define O2_SD_MULTI_VCC3V 0xEE +#define O2_SD_CLKREQ 0xEC +#define O2_SD_CAPS 0xE0 +#define O2_SD_ADMA1 0xE2 +#define O2_SD_ADMA2 0xE7 +#define O2_SD_MISC_CTRL2 0xF0 +#define O2_SD_INF_MOD 0xF1 +#define O2_SD_MISC_CTRL4 0xFC +#define O2_SD_MISC_CTRL 0x1C0 +#define O2_SD_PWR_FORCE_L0 0x0002 +#define O2_SD_TUNING_CTRL 0x300 +#define O2_SD_PLL_SETTING 0x304 +#define O2_SD_MISC_SETTING 0x308 +#define O2_SD_CLK_SETTING 0x328 +#define O2_SD_CAP_REG2 0x330 +#define O2_SD_CAP_REG0 0x334 +#define O2_SD_UHS1_CAP_SETTING 0x33C +#define O2_SD_DELAY_CTRL 0x350 +#define O2_SD_OUTPUT_CLK_SOURCE_SWITCH 0x354 +#define O2_SD_UHS2_L1_CTRL 0x35C +#define O2_SD_FUNC_REG3 0x3E0 +#define O2_SD_FUNC_REG4 0x3E4 +#define O2_SD_LED_ENABLE BIT(6) +#define O2_SD_FREG0_LEDOFF BIT(13) +#define O2_SD_SEL_DLL BIT(16) +#define O2_SD_FREG4_ENABLE_CLK_SET BIT(22) +#define O2_SD_PHASE_MASK GENMASK(23, 20) +#define O2_SD_FIX_PHASE FIELD_PREP(O2_SD_PHASE_MASK, 0x9) + +#define O2_SD_VENDOR_SETTING 0x110 +#define O2_SD_VENDOR_SETTING2 0x1C8 +#define O2_SD_HW_TUNING_DISABLE BIT(4) + +#define O2_PLL_DLL_WDT_CONTROL1 0x1CC +#define O2_PLL_FORCE_ACTIVE BIT(18) +#define O2_PLL_LOCK_STATUS BIT(14) +#define O2_PLL_SOFT_RESET BIT(12) +#define O2_DLL_LOCK_STATUS BIT(11) + +#define O2_SD_DETECT_SETTING 0x324 + +static const u32 dmdn_table[] = {0x2B1C0000, + 0x2C1A0000, 0x371B0000, 0x35100000}; +#define DMDN_SZ ARRAY_SIZE(dmdn_table) + +struct o2_host { + u8 dll_adjust_count; +}; + +static void sdhci_o2_wait_card_detect_stable(struct sdhci_host *host) +{ + ktime_t timeout; + u32 scratch32; + + /* Wait max 50 ms */ + timeout = ktime_add_ms(ktime_get(), 50); + while (1) { + bool timedout = ktime_after(ktime_get(), timeout); + + scratch32 = sdhci_readl(host, SDHCI_PRESENT_STATE); + if ((scratch32 & SDHCI_CARD_PRESENT) >> SDHCI_CARD_PRES_SHIFT + == (scratch32 & SDHCI_CD_LVL) >> SDHCI_CD_LVL_SHIFT) + break; + + if (timedout) { + pr_err("%s: Card Detect debounce never finished.\n", + mmc_hostname(host->mmc)); + sdhci_dumpregs(host); + return; + } + udelay(10); + } +} + +static void sdhci_o2_enable_internal_clock(struct sdhci_host *host) +{ + ktime_t timeout; + u16 scratch; + u32 scratch32; + + /* PLL software reset */ + scratch32 = sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); + scratch32 |= O2_PLL_SOFT_RESET; + sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); + udelay(1); + scratch32 &= ~(O2_PLL_SOFT_RESET); + sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); + + /* PLL force active */ + scratch32 |= O2_PLL_FORCE_ACTIVE; + sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); + + /* Wait max 20 ms */ + timeout = ktime_add_ms(ktime_get(), 20); + while (1) { + bool timedout = ktime_after(ktime_get(), timeout); + + scratch = sdhci_readw(host, O2_PLL_DLL_WDT_CONTROL1); + if (scratch & O2_PLL_LOCK_STATUS) + break; + if (timedout) { + pr_err("%s: Internal clock never stabilised.\n", + mmc_hostname(host->mmc)); + sdhci_dumpregs(host); + goto out; + } + udelay(10); + } + + /* Wait for card detect finish */ + udelay(1); + sdhci_o2_wait_card_detect_stable(host); + +out: + /* Cancel PLL force active */ + scratch32 = sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); + scratch32 &= ~O2_PLL_FORCE_ACTIVE; + sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); +} + +static int sdhci_o2_get_cd(struct mmc_host *mmc) +{ + struct sdhci_host *host = mmc_priv(mmc); + + if (!(sdhci_readw(host, O2_PLL_DLL_WDT_CONTROL1) & O2_PLL_LOCK_STATUS)) + sdhci_o2_enable_internal_clock(host); + else + sdhci_o2_wait_card_detect_stable(host); + + return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); +} + +static void o2_pci_set_baseclk(struct sdhci_pci_chip *chip, u32 value) +{ + u32 scratch_32; + + pci_read_config_dword(chip->pdev, + O2_SD_PLL_SETTING, &scratch_32); + + scratch_32 &= 0x0000FFFF; + scratch_32 |= value; + + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); +} + +static u32 sdhci_o2_pll_dll_wdt_control(struct sdhci_host *host) +{ + return sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); +} + +/* + * This function is used to detect dll lock status. + * Since the dll lock status bit will toggle randomly + * with very short interval which needs to be polled + * as fast as possible. Set sleep_us as 1 microsecond. + */ +static int sdhci_o2_wait_dll_detect_lock(struct sdhci_host *host) +{ + u32 scratch32 = 0; + + return readx_poll_timeout(sdhci_o2_pll_dll_wdt_control, host, + scratch32, !(scratch32 & O2_DLL_LOCK_STATUS), 1, 1000000); +} + +static void sdhci_o2_set_tuning_mode(struct sdhci_host *host) +{ + u16 reg; + + /* enable hardware tuning */ + reg = sdhci_readw(host, O2_SD_VENDOR_SETTING); + reg &= ~O2_SD_HW_TUNING_DISABLE; + sdhci_writew(host, reg, O2_SD_VENDOR_SETTING); +} + +static void __sdhci_o2_execute_tuning(struct sdhci_host *host, u32 opcode) +{ + int i; + + sdhci_send_tuning(host, opcode); + + for (i = 0; i < 150; i++) { + u16 ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); + + if (!(ctrl & SDHCI_CTRL_EXEC_TUNING)) { + if (ctrl & SDHCI_CTRL_TUNED_CLK) { + host->tuning_done = true; + return; + } + pr_warn("%s: HW tuning failed !\n", + mmc_hostname(host->mmc)); + break; + } + + mdelay(1); + } + + pr_info("%s: Tuning failed, falling back to fixed sampling clock\n", + mmc_hostname(host->mmc)); + sdhci_reset_tuning(host); +} + +/* + * This function is used to fix o2 dll shift issue. + * It isn't necessary to detect card present before recovery. + * Firstly, it is used by bht emmc card, which is embedded. + * Second, before call recovery card present will be detected + * outside of the execute tuning function. + */ +static int sdhci_o2_dll_recovery(struct sdhci_host *host) +{ + int ret = 0; + u8 scratch_8 = 0; + u32 scratch_32 = 0; + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct sdhci_pci_chip *chip = slot->chip; + struct o2_host *o2_host = sdhci_pci_priv(slot); + + /* UnLock WP */ + pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch_8); + scratch_8 &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch_8); + while (o2_host->dll_adjust_count < DMDN_SZ && !ret) { + /* Disable clock */ + sdhci_writeb(host, 0, SDHCI_CLOCK_CONTROL); + + /* PLL software reset */ + scratch_32 = sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); + scratch_32 |= O2_PLL_SOFT_RESET; + sdhci_writel(host, scratch_32, O2_PLL_DLL_WDT_CONTROL1); + + pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG4, + &scratch_32); + /* Enable Base Clk setting change */ + scratch_32 |= O2_SD_FREG4_ENABLE_CLK_SET; + pci_write_config_dword(chip->pdev, O2_SD_FUNC_REG4, scratch_32); + o2_pci_set_baseclk(chip, dmdn_table[o2_host->dll_adjust_count]); + + /* Enable internal clock */ + scratch_8 = SDHCI_CLOCK_INT_EN; + sdhci_writeb(host, scratch_8, SDHCI_CLOCK_CONTROL); + + if (sdhci_o2_get_cd(host->mmc)) { + /* + * need wait at least 5ms for dll status stable, + * after enable internal clock + */ + usleep_range(5000, 6000); + if (sdhci_o2_wait_dll_detect_lock(host)) { + scratch_8 |= SDHCI_CLOCK_CARD_EN; + sdhci_writeb(host, scratch_8, + SDHCI_CLOCK_CONTROL); + ret = 1; + } else { + pr_warn("%s: DLL unlocked when dll_adjust_count is %d.\n", + mmc_hostname(host->mmc), + o2_host->dll_adjust_count); + } + } else { + pr_err("%s: card present detect failed.\n", + mmc_hostname(host->mmc)); + break; + } + + o2_host->dll_adjust_count++; + } + if (!ret && o2_host->dll_adjust_count == DMDN_SZ) + pr_err("%s: DLL adjust over max times\n", + mmc_hostname(host->mmc)); + /* Lock WP */ + pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch_8); + scratch_8 |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch_8); + return ret; +} + +static int sdhci_o2_execute_tuning(struct mmc_host *mmc, u32 opcode) +{ + struct sdhci_host *host = mmc_priv(mmc); + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct sdhci_pci_chip *chip = slot->chip; + int current_bus_width = 0; + u32 scratch32 = 0; + u16 scratch = 0; + u8 scratch_8 = 0; + u32 reg_val; + + /* + * This handler implements the hardware tuning that is specific to + * this controller. Fall back to the standard method for other TIMING. + */ + if ((host->timing != MMC_TIMING_MMC_HS200) && + (host->timing != MMC_TIMING_UHS_SDR104) && + (host->timing != MMC_TIMING_UHS_SDR50)) + return sdhci_execute_tuning(mmc, opcode); + + if (WARN_ON((opcode != MMC_SEND_TUNING_BLOCK_HS200) && + (opcode != MMC_SEND_TUNING_BLOCK))) + return -EINVAL; + + /* Force power mode enter L0 */ + scratch = sdhci_readw(host, O2_SD_MISC_CTRL); + scratch |= O2_SD_PWR_FORCE_L0; + sdhci_writew(host, scratch, O2_SD_MISC_CTRL); + + /* Stop clk */ + reg_val = sdhci_readw(host, SDHCI_CLOCK_CONTROL); + reg_val &= ~SDHCI_CLOCK_CARD_EN; + sdhci_writew(host, reg_val, SDHCI_CLOCK_CONTROL); + + /* UnLock WP */ + pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch_8); + scratch_8 &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch_8); + + /* Set pcr 0x354[16] to choose dll clock, and set the default phase */ + pci_read_config_dword(chip->pdev, O2_SD_OUTPUT_CLK_SOURCE_SWITCH, ®_val); + reg_val &= ~(O2_SD_SEL_DLL | O2_SD_PHASE_MASK); + reg_val |= (O2_SD_SEL_DLL | O2_SD_FIX_PHASE); + pci_write_config_dword(chip->pdev, O2_SD_OUTPUT_CLK_SOURCE_SWITCH, reg_val); + + /* Lock WP */ + pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch_8); + scratch_8 |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch_8); + + /* Start clk */ + reg_val = sdhci_readw(host, SDHCI_CLOCK_CONTROL); + reg_val |= SDHCI_CLOCK_CARD_EN; + sdhci_writew(host, reg_val, SDHCI_CLOCK_CONTROL); + + /* wait DLL lock, timeout value 5ms */ + if (readx_poll_timeout(sdhci_o2_pll_dll_wdt_control, host, + scratch32, (scratch32 & O2_DLL_LOCK_STATUS), 1, 5000)) + pr_warn("%s: DLL can't lock in 5ms after force L0 during tuning.\n", + mmc_hostname(host->mmc)); + /* + * Judge the tuning reason, whether caused by dll shift + * If cause by dll shift, should call sdhci_o2_dll_recovery + */ + if (!sdhci_o2_wait_dll_detect_lock(host)) + if (!sdhci_o2_dll_recovery(host)) { + pr_err("%s: o2 dll recovery failed\n", + mmc_hostname(host->mmc)); + return -EINVAL; + } + /* + * o2 sdhci host didn't support 8bit emmc tuning + */ + if (mmc->ios.bus_width == MMC_BUS_WIDTH_8) { + current_bus_width = mmc->ios.bus_width; + mmc->ios.bus_width = MMC_BUS_WIDTH_4; + sdhci_set_bus_width(host, MMC_BUS_WIDTH_4); + } + + sdhci_o2_set_tuning_mode(host); + + sdhci_start_tuning(host); + + __sdhci_o2_execute_tuning(host, opcode); + + sdhci_end_tuning(host); + + if (current_bus_width == MMC_BUS_WIDTH_8) { + mmc->ios.bus_width = MMC_BUS_WIDTH_8; + sdhci_set_bus_width(host, current_bus_width); + } + + /* Cancel force power mode enter L0 */ + scratch = sdhci_readw(host, O2_SD_MISC_CTRL); + scratch &= ~(O2_SD_PWR_FORCE_L0); + sdhci_writew(host, scratch, O2_SD_MISC_CTRL); + + sdhci_reset(host, SDHCI_RESET_CMD); + sdhci_reset(host, SDHCI_RESET_DATA); + + host->flags &= ~SDHCI_HS400_TUNING; + return 0; +} + +static void o2_pci_led_enable(struct sdhci_pci_chip *chip) +{ + int ret; + u32 scratch_32; + + /* Set led of SD host function enable */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG0, &scratch_32); + if (ret) + return; + + scratch_32 &= ~O2_SD_FREG0_LEDOFF; + pci_write_config_dword(chip->pdev, + O2_SD_FUNC_REG0, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_TEST_REG, &scratch_32); + if (ret) + return; + + scratch_32 |= O2_SD_LED_ENABLE; + pci_write_config_dword(chip->pdev, + O2_SD_TEST_REG, scratch_32); +} + +static void sdhci_pci_o2_fujin2_pci_init(struct sdhci_pci_chip *chip) +{ + u32 scratch_32; + int ret; + /* Improve write performance for SD3.0 */ + ret = pci_read_config_dword(chip->pdev, O2_SD_DEV_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~((1 << 12) | (1 << 13) | (1 << 14)); + pci_write_config_dword(chip->pdev, O2_SD_DEV_CTRL, scratch_32); + + /* Enable Link abnormal reset generating Reset */ + ret = pci_read_config_dword(chip->pdev, O2_SD_MISC_REG5, &scratch_32); + if (ret) + return; + scratch_32 &= ~((1 << 19) | (1 << 11)); + scratch_32 |= (1 << 10); + pci_write_config_dword(chip->pdev, O2_SD_MISC_REG5, scratch_32); + + /* set card power over current protection */ + ret = pci_read_config_dword(chip->pdev, O2_SD_TEST_REG, &scratch_32); + if (ret) + return; + scratch_32 |= (1 << 4); + pci_write_config_dword(chip->pdev, O2_SD_TEST_REG, scratch_32); + + /* adjust the output delay for SD mode */ + pci_write_config_dword(chip->pdev, O2_SD_DELAY_CTRL, 0x00002492); + + /* Set the output voltage setting of Aux 1.2v LDO */ + ret = pci_read_config_dword(chip->pdev, O2_SD_LD0_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~(3 << 12); + pci_write_config_dword(chip->pdev, O2_SD_LD0_CTRL, scratch_32); + + /* Set Max power supply capability of SD host */ + ret = pci_read_config_dword(chip->pdev, O2_SD_CAP_REG0, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x01FE); + scratch_32 |= 0x00CC; + pci_write_config_dword(chip->pdev, O2_SD_CAP_REG0, scratch_32); + /* Set DLL Tuning Window */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_TUNING_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x000000FF); + scratch_32 |= 0x00000066; + pci_write_config_dword(chip->pdev, O2_SD_TUNING_CTRL, scratch_32); + + /* Set UHS2 T_EIDLE */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_UHS2_L1_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x000000FC); + scratch_32 |= 0x00000084; + pci_write_config_dword(chip->pdev, O2_SD_UHS2_L1_CTRL, scratch_32); + + /* Set UHS2 Termination */ + ret = pci_read_config_dword(chip->pdev, O2_SD_FUNC_REG3, &scratch_32); + if (ret) + return; + scratch_32 &= ~((1 << 21) | (1 << 30)); + + pci_write_config_dword(chip->pdev, O2_SD_FUNC_REG3, scratch_32); + + /* Set L1 Entrance Timer */ + ret = pci_read_config_dword(chip->pdev, O2_SD_CAPS, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0xf0000000); + scratch_32 |= 0x30000000; + pci_write_config_dword(chip->pdev, O2_SD_CAPS, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_MISC_CTRL4, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x000f0000); + scratch_32 |= 0x00080000; + pci_write_config_dword(chip->pdev, O2_SD_MISC_CTRL4, scratch_32); +} + +static void sdhci_pci_o2_enable_msi(struct sdhci_pci_chip *chip, + struct sdhci_host *host) +{ + int ret; + + ret = pci_find_capability(chip->pdev, PCI_CAP_ID_MSI); + if (!ret) { + pr_info("%s: unsupported MSI, use INTx irq\n", + mmc_hostname(host->mmc)); + return; + } + + ret = pci_alloc_irq_vectors(chip->pdev, 1, 1, + PCI_IRQ_MSI | PCI_IRQ_MSIX); + if (ret < 0) { + pr_err("%s: enable PCI MSI failed, err=%d\n", + mmc_hostname(host->mmc), ret); + return; + } + + host->irq = pci_irq_vector(chip->pdev, 0); +} + +static void sdhci_o2_enable_clk(struct sdhci_host *host, u16 clk) +{ + /* Enable internal clock */ + clk |= SDHCI_CLOCK_INT_EN; + sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); + + sdhci_o2_enable_internal_clock(host); + if (sdhci_o2_get_cd(host->mmc)) { + clk |= SDHCI_CLOCK_CARD_EN; + sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); + } +} + +static void sdhci_pci_o2_set_clock(struct sdhci_host *host, unsigned int clock) +{ + u16 clk; + u8 scratch; + u32 scratch_32; + struct sdhci_pci_slot *slot = sdhci_priv(host); + struct sdhci_pci_chip *chip = slot->chip; + + host->mmc->actual_clock = 0; + + sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); + + if (clock == 0) + return; + + /* UnLock WP */ + pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch); + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + if ((host->timing == MMC_TIMING_UHS_SDR104) && (clock == 200000000)) { + pci_read_config_dword(chip->pdev, O2_SD_PLL_SETTING, &scratch_32); + + if ((scratch_32 & 0xFFFF0000) != 0x2c280000) + o2_pci_set_baseclk(chip, 0x2c280000); + } else { + pci_read_config_dword(chip->pdev, O2_SD_PLL_SETTING, &scratch_32); + + if ((scratch_32 & 0xFFFF0000) != 0x25100000) + o2_pci_set_baseclk(chip, 0x25100000); + } + + pci_read_config_dword(chip->pdev, O2_SD_OUTPUT_CLK_SOURCE_SWITCH, &scratch_32); + scratch_32 &= ~(O2_SD_SEL_DLL | O2_SD_PHASE_MASK); + pci_write_config_dword(chip->pdev, O2_SD_OUTPUT_CLK_SOURCE_SWITCH, scratch_32); + + /* Lock WP */ + pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch); + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); + sdhci_o2_enable_clk(host, clk); +} + +static int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot) +{ + struct sdhci_pci_chip *chip; + struct sdhci_host *host; + struct o2_host *o2_host = sdhci_pci_priv(slot); + u32 reg, caps; + int ret; + + chip = slot->chip; + host = slot->host; + + o2_host->dll_adjust_count = 0; + caps = sdhci_readl(host, SDHCI_CAPABILITIES); + + /* + * mmc_select_bus_width() will test the bus to determine the actual bus + * width. + */ + if (caps & SDHCI_CAN_DO_8BIT) + host->mmc->caps |= MMC_CAP_8_BIT_DATA; + + switch (chip->pdev->device) { + case PCI_DEVICE_ID_O2_SDS0: + case PCI_DEVICE_ID_O2_SEABIRD0: + case PCI_DEVICE_ID_O2_SEABIRD1: + case PCI_DEVICE_ID_O2_SDS1: + case PCI_DEVICE_ID_O2_FUJIN2: + reg = sdhci_readl(host, O2_SD_VENDOR_SETTING); + if (reg & 0x1) + host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; + + host->quirks2 |= SDHCI_QUIRK2_BROKEN_DDR50; + + sdhci_pci_o2_enable_msi(chip, host); + + if (chip->pdev->device == PCI_DEVICE_ID_O2_SEABIRD0) { + ret = pci_read_config_dword(chip->pdev, + O2_SD_MISC_SETTING, ®); + if (ret) + return -EIO; + if (reg & (1 << 4)) { + pr_info("%s: emmc 1.8v flag is set, force 1.8v signaling voltage\n", + mmc_hostname(host->mmc)); + host->flags &= ~SDHCI_SIGNALING_330; + host->flags |= SDHCI_SIGNALING_180; + host->mmc->caps2 |= MMC_CAP2_NO_SD; + host->mmc->caps2 |= MMC_CAP2_NO_SDIO; + pci_write_config_dword(chip->pdev, + O2_SD_DETECT_SETTING, 3); + } + + slot->host->mmc_host_ops.get_cd = sdhci_o2_get_cd; + } + + if (chip->pdev->device == PCI_DEVICE_ID_O2_SEABIRD1) { + slot->host->mmc_host_ops.get_cd = sdhci_o2_get_cd; + host->mmc->caps2 |= MMC_CAP2_NO_SDIO; + host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN; + } + + host->mmc_host_ops.execute_tuning = sdhci_o2_execute_tuning; + + if (chip->pdev->device != PCI_DEVICE_ID_O2_FUJIN2) + break; + /* set dll watch dog timer */ + reg = sdhci_readl(host, O2_SD_VENDOR_SETTING2); + reg |= (1 << 12); + sdhci_writel(host, reg, O2_SD_VENDOR_SETTING2); + + break; + default: + break; + } + + return 0; +} + +static int sdhci_pci_o2_probe(struct sdhci_pci_chip *chip) +{ + int ret; + u8 scratch; + u32 scratch_32; + + switch (chip->pdev->device) { + case PCI_DEVICE_ID_O2_8220: + case PCI_DEVICE_ID_O2_8221: + case PCI_DEVICE_ID_O2_8320: + case PCI_DEVICE_ID_O2_8321: + /* This extra setup is required due to broken ADMA. */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + /* Set Multi 3 to VCC3V# */ + pci_write_config_byte(chip->pdev, O2_SD_MULTI_VCC3V, 0x08); + + /* Disable CLK_REQ# support after media DET */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_CLKREQ, &scratch); + if (ret) + return ret; + scratch |= 0x20; + pci_write_config_byte(chip->pdev, O2_SD_CLKREQ, scratch); + + /* Choose capabilities, enable SDMA. We have to write 0x01 + * to the capabilities register first to unlock it. + */ + ret = pci_read_config_byte(chip->pdev, O2_SD_CAPS, &scratch); + if (ret) + return ret; + scratch |= 0x01; + pci_write_config_byte(chip->pdev, O2_SD_CAPS, scratch); + pci_write_config_byte(chip->pdev, O2_SD_CAPS, 0x73); + + /* Disable ADMA1/2 */ + pci_write_config_byte(chip->pdev, O2_SD_ADMA1, 0x39); + pci_write_config_byte(chip->pdev, O2_SD_ADMA2, 0x08); + + /* Disable the infinite transfer mode */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_INF_MOD, &scratch); + if (ret) + return ret; + scratch |= 0x08; + pci_write_config_byte(chip->pdev, O2_SD_INF_MOD, scratch); + + /* Lock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + break; + case PCI_DEVICE_ID_O2_SDS0: + case PCI_DEVICE_ID_O2_SDS1: + case PCI_DEVICE_ID_O2_FUJIN2: + /* UnLock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + /* DevId=8520 subId= 0x11 or 0x12 Type Chip support */ + if (chip->pdev->device == PCI_DEVICE_ID_O2_FUJIN2) { + ret = pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG0, + &scratch_32); + if (ret) + return ret; + scratch_32 = ((scratch_32 & 0xFF000000) >> 24); + + /* Check Whether subId is 0x11 or 0x12 */ + if ((scratch_32 == 0x11) || (scratch_32 == 0x12)) { + scratch_32 = 0x25100000; + + o2_pci_set_baseclk(chip, scratch_32); + ret = pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG4, + &scratch_32); + if (ret) + return ret; + + /* Enable Base Clk setting change */ + scratch_32 |= O2_SD_FREG4_ENABLE_CLK_SET; + pci_write_config_dword(chip->pdev, + O2_SD_FUNC_REG4, + scratch_32); + + /* Set Tuning Window to 4 */ + pci_write_config_byte(chip->pdev, + O2_SD_TUNING_CTRL, 0x44); + + break; + } + } + + /* Enable 8520 led function */ + o2_pci_led_enable(chip); + + /* Set timeout CLK */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_CLK_SETTING, &scratch_32); + if (ret) + return ret; + + scratch_32 &= ~(0xFF00); + scratch_32 |= 0x07E0C800; + pci_write_config_dword(chip->pdev, + O2_SD_CLK_SETTING, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_CLKREQ, &scratch_32); + if (ret) + return ret; + scratch_32 |= 0x3; + pci_write_config_dword(chip->pdev, O2_SD_CLKREQ, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_PLL_SETTING, &scratch_32); + if (ret) + return ret; + + scratch_32 &= ~(0x1F3F070E); + scratch_32 |= 0x18270106; + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); + + /* Disable UHS1 funciton */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_CAP_REG2, &scratch_32); + if (ret) + return ret; + scratch_32 &= ~(0xE0); + pci_write_config_dword(chip->pdev, + O2_SD_CAP_REG2, scratch_32); + + if (chip->pdev->device == PCI_DEVICE_ID_O2_FUJIN2) + sdhci_pci_o2_fujin2_pci_init(chip); + + /* Lock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + break; + case PCI_DEVICE_ID_O2_SEABIRD0: + case PCI_DEVICE_ID_O2_SEABIRD1: + /* UnLock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_PLL_SETTING, &scratch_32); + if (ret) + return ret; + + if ((scratch_32 & 0xff000000) == 0x01000000) { + scratch_32 &= 0x0000FFFF; + scratch_32 |= 0x1F340000; + + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); + } else { + scratch_32 &= 0x0000FFFF; + scratch_32 |= 0x25100000; + + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG4, + &scratch_32); + if (ret) + return ret; + scratch_32 |= (1 << 22); + pci_write_config_dword(chip->pdev, + O2_SD_FUNC_REG4, scratch_32); + } + + /* Set Tuning Windows to 5 */ + pci_write_config_byte(chip->pdev, + O2_SD_TUNING_CTRL, 0x55); + //Adjust 1st and 2nd CD debounce time + pci_read_config_dword(chip->pdev, O2_SD_MISC_CTRL2, &scratch_32); + scratch_32 &= 0xFFE7FFFF; + scratch_32 |= 0x00180000; + pci_write_config_dword(chip->pdev, O2_SD_MISC_CTRL2, scratch_32); + pci_write_config_dword(chip->pdev, O2_SD_DETECT_SETTING, 1); + /* Lock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + break; + } + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int sdhci_pci_o2_resume(struct sdhci_pci_chip *chip) +{ + sdhci_pci_o2_probe(chip); + return sdhci_pci_resume_host(chip); +} +#endif + +static const struct sdhci_ops sdhci_pci_o2_ops = { + .set_clock = sdhci_pci_o2_set_clock, + .enable_dma = sdhci_pci_enable_dma, + .set_bus_width = sdhci_set_bus_width, + .reset = sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, +}; + +const struct sdhci_pci_fixes sdhci_o2 = { + .probe = sdhci_pci_o2_probe, + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD, + .probe_slot = sdhci_pci_o2_probe_slot, +#ifdef CONFIG_PM_SLEEP + .resume = sdhci_pci_o2_resume, +#endif + .ops = &sdhci_pci_o2_ops, + .priv_size = sizeof(struct o2_host), +}; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci.h new file mode 100644 index 000000000000..3661a224fb04 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci-pci.h @@ -0,0 +1,199 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __SDHCI_PCI_H +#define __SDHCI_PCI_H + +/* + * PCI device IDs, sub IDs + */ + +#define PCI_DEVICE_ID_O2_SDS0 0x8420 +#define PCI_DEVICE_ID_O2_SDS1 0x8421 +#define PCI_DEVICE_ID_O2_FUJIN2 0x8520 +#define PCI_DEVICE_ID_O2_SEABIRD0 0x8620 +#define PCI_DEVICE_ID_O2_SEABIRD1 0x8621 + +#define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809 +#define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a +#define PCI_DEVICE_ID_INTEL_BYT_EMMC 0x0f14 +#define PCI_DEVICE_ID_INTEL_BYT_SDIO 0x0f15 +#define PCI_DEVICE_ID_INTEL_BYT_SD 0x0f16 +#define PCI_DEVICE_ID_INTEL_BYT_EMMC2 0x0f50 +#define PCI_DEVICE_ID_INTEL_BSW_EMMC 0x2294 +#define PCI_DEVICE_ID_INTEL_BSW_SDIO 0x2295 +#define PCI_DEVICE_ID_INTEL_BSW_SD 0x2296 +#define PCI_DEVICE_ID_INTEL_MRFLD_MMC 0x1190 +#define PCI_DEVICE_ID_INTEL_CLV_SDIO0 0x08f9 +#define PCI_DEVICE_ID_INTEL_CLV_SDIO1 0x08fa +#define PCI_DEVICE_ID_INTEL_CLV_SDIO2 0x08fb +#define PCI_DEVICE_ID_INTEL_CLV_EMMC0 0x08e5 +#define PCI_DEVICE_ID_INTEL_CLV_EMMC1 0x08e6 +#define PCI_DEVICE_ID_INTEL_QRK_SD 0x08A7 +#define PCI_DEVICE_ID_INTEL_SPT_EMMC 0x9d2b +#define PCI_DEVICE_ID_INTEL_SPT_SDIO 0x9d2c +#define PCI_DEVICE_ID_INTEL_SPT_SD 0x9d2d +#define PCI_DEVICE_ID_INTEL_DNV_EMMC 0x19db +#define PCI_DEVICE_ID_INTEL_CDF_EMMC 0x18db +#define PCI_DEVICE_ID_INTEL_BXT_SD 0x0aca +#define PCI_DEVICE_ID_INTEL_BXT_EMMC 0x0acc +#define PCI_DEVICE_ID_INTEL_BXT_SDIO 0x0ad0 +#define PCI_DEVICE_ID_INTEL_BXTM_SD 0x1aca +#define PCI_DEVICE_ID_INTEL_BXTM_EMMC 0x1acc +#define PCI_DEVICE_ID_INTEL_BXTM_SDIO 0x1ad0 +#define PCI_DEVICE_ID_INTEL_APL_SD 0x5aca +#define PCI_DEVICE_ID_INTEL_APL_EMMC 0x5acc +#define PCI_DEVICE_ID_INTEL_APL_SDIO 0x5ad0 +#define PCI_DEVICE_ID_INTEL_GLK_SD 0x31ca +#define PCI_DEVICE_ID_INTEL_GLK_EMMC 0x31cc +#define PCI_DEVICE_ID_INTEL_GLK_SDIO 0x31d0 +#define PCI_DEVICE_ID_INTEL_CNP_EMMC 0x9dc4 +#define PCI_DEVICE_ID_INTEL_CNP_SD 0x9df5 +#define PCI_DEVICE_ID_INTEL_CNPH_SD 0xa375 +#define PCI_DEVICE_ID_INTEL_ICP_EMMC 0x34c4 +#define PCI_DEVICE_ID_INTEL_ICP_SD 0x34f8 +#define PCI_DEVICE_ID_INTEL_EHL_EMMC 0x4b47 +#define PCI_DEVICE_ID_INTEL_EHL_SD 0x4b48 +#define PCI_DEVICE_ID_INTEL_CML_EMMC 0x02c4 +#define PCI_DEVICE_ID_INTEL_CML_SD 0x02f5 +#define PCI_DEVICE_ID_INTEL_CMLH_SD 0x06f5 +#define PCI_DEVICE_ID_INTEL_JSL_EMMC 0x4dc4 +#define PCI_DEVICE_ID_INTEL_JSL_SD 0x4df8 +#define PCI_DEVICE_ID_INTEL_LKF_EMMC 0x98c4 +#define PCI_DEVICE_ID_INTEL_LKF_SD 0x98f8 +#define PCI_DEVICE_ID_INTEL_ADL_EMMC 0x54c4 + +#define PCI_DEVICE_ID_SYSKONNECT_8000 0x8000 +#define PCI_DEVICE_ID_VIA_95D0 0x95d0 +#define PCI_DEVICE_ID_REALTEK_5250 0x5250 + +#define PCI_SUBDEVICE_ID_NI_7884 0x7884 +#define PCI_SUBDEVICE_ID_NI_78E3 0x78e3 + +#define PCI_VENDOR_ID_ARASAN 0x16e6 +#define PCI_DEVICE_ID_ARASAN_PHY_EMMC 0x0670 + +#define PCI_DEVICE_ID_SYNOPSYS_DWC_MSHC 0xc202 + +#define PCI_DEVICE_ID_GLI_9755 0x9755 +#define PCI_DEVICE_ID_GLI_9750 0x9750 +#define PCI_DEVICE_ID_GLI_9763E 0xe763 + +/* + * PCI device class and mask + */ + +#define SYSTEM_SDHCI (PCI_CLASS_SYSTEM_SDHCI << 8) +#define PCI_CLASS_MASK 0xFFFF00 + +/* + * Macros for PCI device-description + */ + +#define _PCI_VEND(vend) PCI_VENDOR_ID_##vend +#define _PCI_DEV(vend, dev) PCI_DEVICE_ID_##vend##_##dev +#define _PCI_SUBDEV(subvend, subdev) PCI_SUBDEVICE_ID_##subvend##_##subdev + +#define SDHCI_PCI_DEVICE(vend, dev, cfg) { \ + .vendor = _PCI_VEND(vend), .device = _PCI_DEV(vend, dev), \ + .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, \ + .driver_data = (kernel_ulong_t)&(sdhci_##cfg) \ +} + +#define SDHCI_PCI_SUBDEVICE(vend, dev, subvend, subdev, cfg) { \ + .vendor = _PCI_VEND(vend), .device = _PCI_DEV(vend, dev), \ + .subvendor = _PCI_VEND(subvend), \ + .subdevice = _PCI_SUBDEV(subvend, subdev), \ + .driver_data = (kernel_ulong_t)&(sdhci_##cfg) \ +} + +#define SDHCI_PCI_DEVICE_CLASS(vend, cl, cl_msk, cfg) { \ + .vendor = _PCI_VEND(vend), .device = PCI_ANY_ID, \ + .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, \ + .class = (cl), .class_mask = (cl_msk), \ + .driver_data = (kernel_ulong_t)&(sdhci_##cfg) \ +} + +/* + * PCI registers + */ + +#define PCI_SDHCI_IFPIO 0x00 +#define PCI_SDHCI_IFDMA 0x01 +#define PCI_SDHCI_IFVENDOR 0x02 + +#define PCI_SLOT_INFO 0x40 /* 8 bits */ +#define PCI_SLOT_INFO_SLOTS(x) ((x >> 4) & 7) +#define PCI_SLOT_INFO_FIRST_BAR_MASK 0x07 + +#define MAX_SLOTS 8 + +struct sdhci_pci_chip; +struct sdhci_pci_slot; + +struct sdhci_pci_fixes { + unsigned int quirks; + unsigned int quirks2; + bool allow_runtime_pm; + bool own_cd_for_runtime_pm; + + int (*probe) (struct sdhci_pci_chip *); + + int (*probe_slot) (struct sdhci_pci_slot *); + int (*add_host) (struct sdhci_pci_slot *); + void (*remove_slot) (struct sdhci_pci_slot *, int); + +#ifdef CONFIG_PM_SLEEP + int (*suspend) (struct sdhci_pci_chip *); + int (*resume) (struct sdhci_pci_chip *); +#endif +#ifdef CONFIG_PM + int (*runtime_suspend) (struct sdhci_pci_chip *); + int (*runtime_resume) (struct sdhci_pci_chip *); +#endif + + const struct sdhci_ops *ops; + size_t priv_size; +}; + +struct sdhci_pci_slot { + struct sdhci_pci_chip *chip; + struct sdhci_host *host; + + int cd_idx; + bool cd_override_level; + + void (*hw_reset)(struct sdhci_host *host); + unsigned long private[] ____cacheline_aligned; +}; + +struct sdhci_pci_chip { + struct pci_dev *pdev; + + unsigned int quirks; + unsigned int quirks2; + bool allow_runtime_pm; + bool pm_retune; + bool rpm_retune; + const struct sdhci_pci_fixes *fixes; + + int num_slots; /* Slots on controller */ + struct sdhci_pci_slot *slots[MAX_SLOTS]; /* Pointers to host slots */ +}; + +static inline void *sdhci_pci_priv(struct sdhci_pci_slot *slot) +{ + return (void *)slot->private; +} + +#ifdef CONFIG_PM_SLEEP +int sdhci_pci_resume_host(struct sdhci_pci_chip *chip); +#endif +int sdhci_pci_enable_dma(struct sdhci_host *host); + +extern const struct sdhci_pci_fixes sdhci_arasan; +extern const struct sdhci_pci_fixes sdhci_snps; +extern const struct sdhci_pci_fixes sdhci_o2; +extern const struct sdhci_pci_fixes sdhci_gl9750; +extern const struct sdhci_pci_fixes sdhci_gl9755; +extern const struct sdhci_pci_fixes sdhci_gl9763e; + +#endif /* __SDHCI_PCI_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci.h new file mode 100644 index 000000000000..5ce7cdcc192f --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/sdhci/sdhci.h @@ -0,0 +1,822 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * linux/drivers/mmc/host/sdhci.h - Secure Digital Host Controller Interface driver + * + * Header file for Host Controller registers and I/O accessors. + * + * Copyright (C) 2005-2008 Pierre Ossman, All Rights Reserved. + */ +#ifndef __SDHCI_HW_H +#define __SDHCI_HW_H + +#include +#include +#include +#include +#include +#include +#include + +#include + +/* + * Controller registers + */ + +#define SDHCI_DMA_ADDRESS 0x00 +#define SDHCI_ARGUMENT2 SDHCI_DMA_ADDRESS +#define SDHCI_32BIT_BLK_CNT SDHCI_DMA_ADDRESS + +#define SDHCI_BLOCK_SIZE 0x04 +#define SDHCI_MAKE_BLKSZ(dma, blksz) (((dma & 0x7) << 12) | (blksz & 0xFFF)) + +#define SDHCI_BLOCK_COUNT 0x06 + +#define SDHCI_ARGUMENT 0x08 + +#define SDHCI_TRANSFER_MODE 0x0C +#define SDHCI_TRNS_DMA 0x01 +#define SDHCI_TRNS_BLK_CNT_EN 0x02 +#define SDHCI_TRNS_AUTO_CMD12 0x04 +#define SDHCI_TRNS_AUTO_CMD23 0x08 +#define SDHCI_TRNS_AUTO_SEL 0x0C +#define SDHCI_TRNS_READ 0x10 +#define SDHCI_TRNS_MULTI 0x20 + +#define SDHCI_COMMAND 0x0E +#define SDHCI_CMD_RESP_MASK 0x03 +#define SDHCI_CMD_CRC 0x08 +#define SDHCI_CMD_INDEX 0x10 +#define SDHCI_CMD_DATA 0x20 +#define SDHCI_CMD_ABORTCMD 0xC0 + +#define SDHCI_CMD_RESP_NONE 0x00 +#define SDHCI_CMD_RESP_LONG 0x01 +#define SDHCI_CMD_RESP_SHORT 0x02 +#define SDHCI_CMD_RESP_SHORT_BUSY 0x03 + +#define SDHCI_MAKE_CMD(c, f) (((c & 0xff) << 8) | (f & 0xff)) +#define SDHCI_GET_CMD(c) ((c>>8) & 0x3f) + +#define SDHCI_RESPONSE 0x10 + +#define SDHCI_BUFFER 0x20 + +#define SDHCI_PRESENT_STATE 0x24 +#define SDHCI_CMD_INHIBIT 0x00000001 +#define SDHCI_DATA_INHIBIT 0x00000002 +#define SDHCI_DOING_WRITE 0x00000100 +#define SDHCI_DOING_READ 0x00000200 +#define SDHCI_SPACE_AVAILABLE 0x00000400 +#define SDHCI_DATA_AVAILABLE 0x00000800 +#define SDHCI_CARD_PRESENT 0x00010000 +#define SDHCI_CARD_PRES_SHIFT 16 +#define SDHCI_CD_STABLE 0x00020000 +#define SDHCI_CD_LVL 0x00040000 +#define SDHCI_CD_LVL_SHIFT 18 +#define SDHCI_WRITE_PROTECT 0x00080000 +#define SDHCI_DATA_LVL_MASK 0x00F00000 +#define SDHCI_DATA_LVL_SHIFT 20 +#define SDHCI_DATA_0_LVL_MASK 0x00100000 +#define SDHCI_CMD_LVL 0x01000000 + +#define SDHCI_HOST_CONTROL 0x28 +#define SDHCI_CTRL_LED 0x01 +#define SDHCI_CTRL_4BITBUS 0x02 +#define SDHCI_CTRL_HISPD 0x04 +#define SDHCI_CTRL_DMA_MASK 0x18 +#define SDHCI_CTRL_SDMA 0x00 +#define SDHCI_CTRL_ADMA1 0x08 +#define SDHCI_CTRL_ADMA32 0x10 +#define SDHCI_CTRL_ADMA64 0x18 +#define SDHCI_CTRL_ADMA3 0x18 +#define SDHCI_CTRL_8BITBUS 0x20 +#define SDHCI_CTRL_CDTEST_INS 0x40 +#define SDHCI_CTRL_CDTEST_EN 0x80 + +#define SDHCI_POWER_CONTROL 0x29 +#define SDHCI_POWER_ON 0x01 +#define SDHCI_POWER_180 0x0A +#define SDHCI_POWER_300 0x0C +#define SDHCI_POWER_330 0x0E + +#define SDHCI_BLOCK_GAP_CONTROL 0x2A + +#define SDHCI_WAKE_UP_CONTROL 0x2B +#define SDHCI_WAKE_ON_INT 0x01 +#define SDHCI_WAKE_ON_INSERT 0x02 +#define SDHCI_WAKE_ON_REMOVE 0x04 + +#define SDHCI_CLOCK_CONTROL 0x2C +#define SDHCI_DIVIDER_SHIFT 8 +#define SDHCI_DIVIDER_HI_SHIFT 6 +#define SDHCI_DIV_MASK 0xFF +#define SDHCI_DIV_MASK_LEN 8 +#define SDHCI_DIV_HI_MASK 0x300 +#define SDHCI_PROG_CLOCK_MODE 0x0020 +#define SDHCI_CLOCK_CARD_EN 0x0004 +#define SDHCI_CLOCK_PLL_EN 0x0008 +#define SDHCI_CLOCK_INT_STABLE 0x0002 +#define SDHCI_CLOCK_INT_EN 0x0001 + +#define SDHCI_TIMEOUT_CONTROL 0x2E + +#define SDHCI_SOFTWARE_RESET 0x2F +#define SDHCI_RESET_ALL 0x01 +#define SDHCI_RESET_CMD 0x02 +#define SDHCI_RESET_DATA 0x04 + +#define SDHCI_INT_STATUS 0x30 +#define SDHCI_INT_ENABLE 0x34 +#define SDHCI_SIGNAL_ENABLE 0x38 +#define SDHCI_INT_RESPONSE 0x00000001 +#define SDHCI_INT_DATA_END 0x00000002 +#define SDHCI_INT_BLK_GAP 0x00000004 +#define SDHCI_INT_DMA_END 0x00000008 +#define SDHCI_INT_SPACE_AVAIL 0x00000010 +#define SDHCI_INT_DATA_AVAIL 0x00000020 +#define SDHCI_INT_CARD_INSERT 0x00000040 +#define SDHCI_INT_CARD_REMOVE 0x00000080 +#define SDHCI_INT_CARD_INT 0x00000100 +#define SDHCI_INT_RETUNE 0x00001000 +#define SDHCI_INT_CQE 0x00004000 +#define SDHCI_INT_ERROR 0x00008000 +#define SDHCI_INT_TIMEOUT 0x00010000 +#define SDHCI_INT_CRC 0x00020000 +#define SDHCI_INT_END_BIT 0x00040000 +#define SDHCI_INT_INDEX 0x00080000 +#define SDHCI_INT_DATA_TIMEOUT 0x00100000 +#define SDHCI_INT_DATA_CRC 0x00200000 +#define SDHCI_INT_DATA_END_BIT 0x00400000 +#define SDHCI_INT_BUS_POWER 0x00800000 +#define SDHCI_INT_AUTO_CMD_ERR 0x01000000 +#define SDHCI_INT_ADMA_ERROR 0x02000000 + +#define SDHCI_INT_NORMAL_MASK 0x00007FFF +#define SDHCI_INT_ERROR_MASK 0xFFFF8000 + +#define SDHCI_INT_CMD_MASK (SDHCI_INT_RESPONSE | SDHCI_INT_TIMEOUT | \ + SDHCI_INT_CRC | SDHCI_INT_END_BIT | SDHCI_INT_INDEX | \ + SDHCI_INT_AUTO_CMD_ERR) +#define SDHCI_INT_DATA_MASK (SDHCI_INT_DATA_END | SDHCI_INT_DMA_END | \ + SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL | \ + SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_DATA_CRC | \ + SDHCI_INT_DATA_END_BIT | SDHCI_INT_ADMA_ERROR | \ + SDHCI_INT_BLK_GAP) +#define SDHCI_INT_ALL_MASK ((unsigned int)-1) + +#define SDHCI_CQE_INT_ERR_MASK ( \ + SDHCI_INT_ADMA_ERROR | SDHCI_INT_BUS_POWER | SDHCI_INT_DATA_END_BIT | \ + SDHCI_INT_DATA_CRC | SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_INDEX | \ + SDHCI_INT_END_BIT | SDHCI_INT_CRC | SDHCI_INT_TIMEOUT) + +#define SDHCI_CQE_INT_MASK (SDHCI_CQE_INT_ERR_MASK | SDHCI_INT_CQE) + +#define SDHCI_AUTO_CMD_STATUS 0x3C +#define SDHCI_AUTO_CMD_TIMEOUT 0x00000002 +#define SDHCI_AUTO_CMD_CRC 0x00000004 +#define SDHCI_AUTO_CMD_END_BIT 0x00000008 +#define SDHCI_AUTO_CMD_INDEX 0x00000010 + +#define SDHCI_HOST_CONTROL2 0x3E +#define SDHCI_CTRL_UHS_MASK 0x0007 +#define SDHCI_CTRL_UHS_SDR12 0x0000 +#define SDHCI_CTRL_UHS_SDR25 0x0001 +#define SDHCI_CTRL_UHS_SDR50 0x0002 +#define SDHCI_CTRL_UHS_SDR104 0x0003 +#define SDHCI_CTRL_UHS_DDR50 0x0004 +#define SDHCI_CTRL_HS400 0x0005 /* Non-standard */ +#define SDHCI_CTRL_VDD_180 0x0008 +#define SDHCI_CTRL_DRV_TYPE_MASK 0x0030 +#define SDHCI_CTRL_DRV_TYPE_B 0x0000 +#define SDHCI_CTRL_DRV_TYPE_A 0x0010 +#define SDHCI_CTRL_DRV_TYPE_C 0x0020 +#define SDHCI_CTRL_DRV_TYPE_D 0x0030 +#define SDHCI_CTRL_EXEC_TUNING 0x0040 +#define SDHCI_CTRL_TUNED_CLK 0x0080 +#define SDHCI_CMD23_ENABLE 0x0800 +#define SDHCI_CTRL_V4_MODE 0x1000 +#define SDHCI_CTRL_64BIT_ADDR 0x2000 +#define SDHCI_CTRL_PRESET_VAL_ENABLE 0x8000 + +#define SDHCI_CAPABILITIES 0x40 +#define SDHCI_TIMEOUT_CLK_MASK GENMASK(5, 0) +#define SDHCI_TIMEOUT_CLK_SHIFT 0 +#define SDHCI_TIMEOUT_CLK_UNIT 0x00000080 +#define SDHCI_CLOCK_BASE_MASK GENMASK(13, 8) +#define SDHCI_CLOCK_BASE_SHIFT 8 +#define SDHCI_CLOCK_V3_BASE_MASK GENMASK(15, 8) +#define SDHCI_MAX_BLOCK_MASK 0x00030000 +#define SDHCI_MAX_BLOCK_SHIFT 16 +#define SDHCI_CAN_DO_8BIT 0x00040000 +#define SDHCI_CAN_DO_ADMA2 0x00080000 +#define SDHCI_CAN_DO_ADMA1 0x00100000 +#define SDHCI_CAN_DO_HISPD 0x00200000 +#define SDHCI_CAN_DO_SDMA 0x00400000 +#define SDHCI_CAN_DO_SUSPEND 0x00800000 +#define SDHCI_CAN_VDD_330 0x01000000 +#define SDHCI_CAN_VDD_300 0x02000000 +#define SDHCI_CAN_VDD_180 0x04000000 +#define SDHCI_CAN_64BIT_V4 0x08000000 +#define SDHCI_CAN_64BIT 0x10000000 + +#define SDHCI_CAPABILITIES_1 0x44 +#define SDHCI_SUPPORT_SDR50 0x00000001 +#define SDHCI_SUPPORT_SDR104 0x00000002 +#define SDHCI_SUPPORT_DDR50 0x00000004 +#define SDHCI_DRIVER_TYPE_A 0x00000010 +#define SDHCI_DRIVER_TYPE_C 0x00000020 +#define SDHCI_DRIVER_TYPE_D 0x00000040 +#define SDHCI_RETUNING_TIMER_COUNT_MASK GENMASK(11, 8) +#define SDHCI_USE_SDR50_TUNING 0x00002000 +#define SDHCI_RETUNING_MODE_MASK GENMASK(15, 14) +#define SDHCI_CLOCK_MUL_MASK GENMASK(23, 16) +#define SDHCI_CAN_DO_ADMA3 0x08000000 +#define SDHCI_SUPPORT_HS400 0x80000000 /* Non-standard */ + +#define SDHCI_MAX_CURRENT 0x48 +#define SDHCI_MAX_CURRENT_LIMIT GENMASK(7, 0) +#define SDHCI_MAX_CURRENT_330_MASK GENMASK(7, 0) +#define SDHCI_MAX_CURRENT_300_MASK GENMASK(15, 8) +#define SDHCI_MAX_CURRENT_180_MASK GENMASK(23, 16) +#define SDHCI_MAX_CURRENT_MULTIPLIER 4 + +/* 4C-4F reserved for more max current */ + +#define SDHCI_SET_ACMD12_ERROR 0x50 +#define SDHCI_SET_INT_ERROR 0x52 + +#define SDHCI_ADMA_ERROR 0x54 + +/* 55-57 reserved */ + +#define SDHCI_ADMA_ADDRESS 0x58 +#define SDHCI_ADMA_ADDRESS_HI 0x5C + +/* 60-FB reserved */ + +#define SDHCI_PRESET_FOR_HIGH_SPEED 0x64 +#define SDHCI_PRESET_FOR_SDR12 0x66 +#define SDHCI_PRESET_FOR_SDR25 0x68 +#define SDHCI_PRESET_FOR_SDR50 0x6A +#define SDHCI_PRESET_FOR_SDR104 0x6C +#define SDHCI_PRESET_FOR_DDR50 0x6E +#define SDHCI_PRESET_FOR_HS400 0x74 /* Non-standard */ +#define SDHCI_PRESET_DRV_MASK GENMASK(15, 14) +#define SDHCI_PRESET_CLKGEN_SEL BIT(10) +#define SDHCI_PRESET_SDCLK_FREQ_MASK GENMASK(9, 0) + +#define SDHCI_SLOT_INT_STATUS 0xFC + +#define SDHCI_HOST_VERSION 0xFE +#define SDHCI_VENDOR_VER_MASK 0xFF00 +#define SDHCI_VENDOR_VER_SHIFT 8 +#define SDHCI_SPEC_VER_MASK 0x00FF +#define SDHCI_SPEC_VER_SHIFT 0 +#define SDHCI_SPEC_100 0 +#define SDHCI_SPEC_200 1 +#define SDHCI_SPEC_300 2 +#define SDHCI_SPEC_400 3 +#define SDHCI_SPEC_410 4 +#define SDHCI_SPEC_420 5 + +/* + * End of controller registers. + */ + +#define SDHCI_MAX_DIV_SPEC_200 256 +#define SDHCI_MAX_DIV_SPEC_300 2046 + +/* + * Host SDMA buffer boundary. Valid values from 4K to 512K in powers of 2. + */ +#define SDHCI_DEFAULT_BOUNDARY_SIZE (512 * 1024) +#define SDHCI_DEFAULT_BOUNDARY_ARG (ilog2(SDHCI_DEFAULT_BOUNDARY_SIZE) - 12) + +/* ADMA2 32-bit DMA descriptor size */ +#define SDHCI_ADMA2_32_DESC_SZ 8 + +/* ADMA2 32-bit descriptor */ +struct sdhci_adma2_32_desc { + __le16 cmd; + __le16 len; + __le32 addr; +} __packed __aligned(4); + +/* ADMA2 data alignment */ +#define SDHCI_ADMA2_ALIGN 4 +#define SDHCI_ADMA2_MASK (SDHCI_ADMA2_ALIGN - 1) + +/* + * ADMA2 descriptor alignment. Some controllers (e.g. Intel) require 8 byte + * alignment for the descriptor table even in 32-bit DMA mode. Memory + * allocation is at least 8 byte aligned anyway, so just stipulate 8 always. + */ +#define SDHCI_ADMA2_DESC_ALIGN 8 + +/* + * ADMA2 64-bit DMA descriptor size + * According to SD Host Controller spec v4.10, there are two kinds of + * descriptors for 64-bit addressing mode: 96-bit Descriptor and 128-bit + * Descriptor, if Host Version 4 Enable is set in the Host Control 2 + * register, 128-bit Descriptor will be selected. + */ +#define SDHCI_ADMA2_64_DESC_SZ(host) ((host)->v4_mode ? 16 : 12) + +/* + * ADMA2 64-bit descriptor. Note 12-byte descriptor can't always be 8-byte + * aligned. + */ +struct sdhci_adma2_64_desc { + __le16 cmd; + __le16 len; + __le32 addr_lo; + __le32 addr_hi; +} __packed __aligned(4); + +#define ADMA2_TRAN_VALID 0x21 +#define ADMA2_NOP_END_VALID 0x3 +#define ADMA2_END 0x2 + +/* + * Maximum segments assuming a 512KiB maximum requisition size and a minimum + * 4KiB page size. Note this also allows enough for multiple descriptors in + * case of PAGE_SIZE >= 64KiB. + */ +#define SDHCI_MAX_SEGS 128 + +/* Allow for a a command request and a data request at the same time */ +#define SDHCI_MAX_MRQS 2 + +/* + * 48bit command and 136 bit response in 100KHz clock could take upto 2.48ms. + * However since the start time of the command, the time between + * command and response, and the time between response and start of data is + * not known, set the command transfer time to 10ms. + */ +#define MMC_CMD_TRANSFER_TIME (10 * NSEC_PER_MSEC) /* max 10 ms */ + +#define sdhci_err_stats_inc(host, err_name) \ + mmc_debugfs_err_stats_inc((host)->mmc, MMC_ERR_##err_name) + +enum sdhci_cookie { + COOKIE_UNMAPPED, + COOKIE_PRE_MAPPED, /* mapped by sdhci_pre_req() */ + COOKIE_MAPPED, /* mapped by sdhci_prepare_data() */ +}; + +struct sdhci_host { + /* Data set by hardware interface driver */ + const char *hw_name; /* Hardware bus name */ + + unsigned int quirks; /* Deviations from spec. */ + +/* Controller doesn't honor resets unless we touch the clock register */ +#define SDHCI_QUIRK_CLOCK_BEFORE_RESET (1<<0) +/* Controller has bad caps bits, but really supports DMA */ +#define SDHCI_QUIRK_FORCE_DMA (1<<1) +/* Controller doesn't like to be reset when there is no card inserted. */ +#define SDHCI_QUIRK_NO_CARD_NO_RESET (1<<2) +/* Controller doesn't like clearing the power reg before a change */ +#define SDHCI_QUIRK_SINGLE_POWER_WRITE (1<<3) +/* Controller has an unusable DMA engine */ +#define SDHCI_QUIRK_BROKEN_DMA (1<<5) +/* Controller has an unusable ADMA engine */ +#define SDHCI_QUIRK_BROKEN_ADMA (1<<6) +/* Controller can only DMA from 32-bit aligned addresses */ +#define SDHCI_QUIRK_32BIT_DMA_ADDR (1<<7) +/* Controller can only DMA chunk sizes that are a multiple of 32 bits */ +#define SDHCI_QUIRK_32BIT_DMA_SIZE (1<<8) +/* Controller can only ADMA chunks that are a multiple of 32 bits */ +#define SDHCI_QUIRK_32BIT_ADMA_SIZE (1<<9) +/* Controller needs to be reset after each request to stay stable */ +#define SDHCI_QUIRK_RESET_AFTER_REQUEST (1<<10) +/* Controller needs voltage and power writes to happen separately */ +#define SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER (1<<11) +/* Controller provides an incorrect timeout value for transfers */ +#define SDHCI_QUIRK_BROKEN_TIMEOUT_VAL (1<<12) +/* Controller has an issue with buffer bits for small transfers */ +#define SDHCI_QUIRK_BROKEN_SMALL_PIO (1<<13) +/* Controller does not provide transfer-complete interrupt when not busy */ +#define SDHCI_QUIRK_NO_BUSY_IRQ (1<<14) +/* Controller has unreliable card detection */ +#define SDHCI_QUIRK_BROKEN_CARD_DETECTION (1<<15) +/* Controller reports inverted write-protect state */ +#define SDHCI_QUIRK_INVERTED_WRITE_PROTECT (1<<16) +/* Controller has unusable command queue engine */ +#define SDHCI_QUIRK_BROKEN_CQE (1<<17) +/* Controller does not like fast PIO transfers */ +#define SDHCI_QUIRK_PIO_NEEDS_DELAY (1<<18) +/* Controller does not have a LED */ +#define SDHCI_QUIRK_NO_LED (1<<19) +/* Controller has to be forced to use block size of 2048 bytes */ +#define SDHCI_QUIRK_FORCE_BLK_SZ_2048 (1<<20) +/* Controller cannot do multi-block transfers */ +#define SDHCI_QUIRK_NO_MULTIBLOCK (1<<21) +/* Controller can only handle 1-bit data transfers */ +#define SDHCI_QUIRK_FORCE_1_BIT_DATA (1<<22) +/* Controller needs 10ms delay between applying power and clock */ +#define SDHCI_QUIRK_DELAY_AFTER_POWER (1<<23) +/* Controller uses SDCLK instead of TMCLK for data timeouts */ +#define SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK (1<<24) +/* Controller reports wrong base clock capability */ +#define SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN (1<<25) +/* Controller cannot support End Attribute in NOP ADMA descriptor */ +#define SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC (1<<26) +/* Controller is missing device caps. Use caps provided by host */ +#define SDHCI_QUIRK_MISSING_CAPS (1<<27) +/* Controller uses Auto CMD12 command to stop the transfer */ +#define SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 (1<<28) +/* Controller doesn't have HISPD bit field in HI-SPEED SD card */ +#define SDHCI_QUIRK_NO_HISPD_BIT (1<<29) +/* Controller treats ADMA descriptors with length 0000h incorrectly */ +#define SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC (1<<30) +/* The read-only detection via SDHCI_PRESENT_STATE register is unstable */ +#define SDHCI_QUIRK_UNSTABLE_RO_DETECT (1<<31) + + unsigned int quirks2; /* More deviations from spec. */ + +#define SDHCI_QUIRK2_HOST_OFF_CARD_ON (1<<0) +#define SDHCI_QUIRK2_HOST_NO_CMD23 (1<<1) +/* The system physically doesn't support 1.8v, even if the host does */ +#define SDHCI_QUIRK2_NO_1_8_V (1<<2) +#define SDHCI_QUIRK2_PRESET_VALUE_BROKEN (1<<3) +#define SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON (1<<4) +/* Controller has a non-standard host control register */ +#define SDHCI_QUIRK2_BROKEN_HOST_CONTROL (1<<5) +/* Controller does not support HS200 */ +#define SDHCI_QUIRK2_BROKEN_HS200 (1<<6) +/* Controller does not support DDR50 */ +#define SDHCI_QUIRK2_BROKEN_DDR50 (1<<7) +/* Stop command (CMD12) can set Transfer Complete when not using MMC_RSP_BUSY */ +#define SDHCI_QUIRK2_STOP_WITH_TC (1<<8) +/* Controller does not support 64-bit DMA */ +#define SDHCI_QUIRK2_BROKEN_64_BIT_DMA (1<<9) +/* need clear transfer mode register before send cmd */ +#define SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD (1<<10) +/* Capability register bit-63 indicates HS400 support */ +#define SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 (1<<11) +/* forced tuned clock */ +#define SDHCI_QUIRK2_TUNING_WORK_AROUND (1<<12) +/* disable the block count for single block transactions */ +#define SDHCI_QUIRK2_SUPPORT_SINGLE (1<<13) +/* Controller broken with using ACMD23 */ +#define SDHCI_QUIRK2_ACMD23_BROKEN (1<<14) +/* Broken Clock divider zero in controller */ +#define SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN (1<<15) +/* Controller has CRC in 136 bit Command Response */ +#define SDHCI_QUIRK2_RSP_136_HAS_CRC (1<<16) +/* + * Disable HW timeout if the requested timeout is more than the maximum + * obtainable timeout. + */ +#define SDHCI_QUIRK2_DISABLE_HW_TIMEOUT (1<<17) +/* + * 32-bit block count may not support eMMC where upper bits of CMD23 are used + * for other purposes. Consequently we support 16-bit block count by default. + * Otherwise, SDHCI_QUIRK2_USE_32BIT_BLK_CNT can be selected to use 32-bit + * block count. + */ +#define SDHCI_QUIRK2_USE_32BIT_BLK_CNT (1<<18) +/* Issue CMD and DATA reset together */ +#define SDHCI_QUIRK2_ISSUE_CMD_DAT_RESET_TOGETHER (1<<19) + + int irq; /* Device IRQ */ + void __iomem *ioaddr; /* Mapped address */ + phys_addr_t mapbase; /* physical address base */ + char *bounce_buffer; /* For packing SDMA reads/writes */ + dma_addr_t bounce_addr; + unsigned int bounce_buffer_size; + + const struct sdhci_ops *ops; /* Low level hw interface */ + + /* Internal data */ + struct mmc_host *mmc; /* MMC structure */ + struct mmc_host_ops mmc_host_ops; /* MMC host ops */ + u64 dma_mask; /* custom DMA mask */ + +#if IS_ENABLED(CONFIG_LEDS_CLASS) + struct led_classdev led; /* LED control */ + char led_name[32]; +#endif + + spinlock_t lock; /* Mutex */ + + int flags; /* Host attributes */ +#define SDHCI_USE_SDMA (1<<0) /* Host is SDMA capable */ +#define SDHCI_USE_ADMA (1<<1) /* Host is ADMA capable */ +#define SDHCI_REQ_USE_DMA (1<<2) /* Use DMA for this req. */ +#define SDHCI_DEVICE_DEAD (1<<3) /* Device unresponsive */ +#define SDHCI_SDR50_NEEDS_TUNING (1<<4) /* SDR50 needs tuning */ +#define SDHCI_AUTO_CMD12 (1<<6) /* Auto CMD12 support */ +#define SDHCI_AUTO_CMD23 (1<<7) /* Auto CMD23 support */ +#define SDHCI_PV_ENABLED (1<<8) /* Preset value enabled */ +#define SDHCI_USE_64_BIT_DMA (1<<12) /* Use 64-bit DMA */ +#define SDHCI_HS400_TUNING (1<<13) /* Tuning for HS400 */ +#define SDHCI_SIGNALING_330 (1<<14) /* Host is capable of 3.3V signaling */ +#define SDHCI_SIGNALING_180 (1<<15) /* Host is capable of 1.8V signaling */ +#define SDHCI_SIGNALING_120 (1<<16) /* Host is capable of 1.2V signaling */ + + unsigned int version; /* SDHCI spec. version */ + + unsigned int max_clk; /* Max possible freq (MHz) */ + unsigned int timeout_clk; /* Timeout freq (KHz) */ + u8 max_timeout_count; /* Vendor specific max timeout count */ + unsigned int clk_mul; /* Clock Muliplier value */ + + unsigned int clock; /* Current clock (MHz) */ + u8 pwr; /* Current voltage */ + u8 drv_type; /* Current UHS-I driver type */ + bool reinit_uhs; /* Force UHS-related re-initialization */ + + bool runtime_suspended; /* Host is runtime suspended */ + bool bus_on; /* Bus power prevents runtime suspend */ + bool preset_enabled; /* Preset is enabled */ + bool pending_reset; /* Cmd/data reset is pending */ + bool irq_wake_enabled; /* IRQ wakeup is enabled */ + bool v4_mode; /* Host Version 4 Enable */ + bool use_external_dma; /* Host selects to use external DMA */ + bool always_defer_done; /* Always defer to complete requests */ + + struct mmc_request *mrqs_done[SDHCI_MAX_MRQS]; /* Requests done */ + struct mmc_command *cmd; /* Current command */ + struct mmc_command *data_cmd; /* Current data command */ + struct mmc_command *deferred_cmd; /* Deferred command */ + struct mmc_data *data; /* Current data request */ + unsigned int data_early:1; /* Data finished before cmd */ + + struct sg_mapping_iter sg_miter; /* SG state for PIO */ + unsigned int blocks; /* remaining PIO blocks */ + + int sg_count; /* Mapped sg entries */ + int max_adma; /* Max. length in ADMA descriptor */ + + void *adma_table; /* ADMA descriptor table */ + void *align_buffer; /* Bounce buffer */ + + size_t adma_table_sz; /* ADMA descriptor table size */ + size_t align_buffer_sz; /* Bounce buffer size */ + + dma_addr_t adma_addr; /* Mapped ADMA descr. table */ + dma_addr_t align_addr; /* Mapped bounce buffer */ + + unsigned int desc_sz; /* ADMA current descriptor size */ + unsigned int alloc_desc_sz; /* ADMA descr. max size host supports */ + + struct workqueue_struct *complete_wq; /* Request completion wq */ + struct work_struct complete_work; /* Request completion work */ + + struct timer_list timer; /* Timer for timeouts */ + struct timer_list data_timer; /* Timer for data timeouts */ + +#if IS_ENABLED(CONFIG_MMC_SDHCI_EXTERNAL_DMA) + struct dma_chan *rx_chan; + struct dma_chan *tx_chan; +#endif + + u32 caps; /* CAPABILITY_0 */ + u32 caps1; /* CAPABILITY_1 */ + bool read_caps; /* Capability flags have been read */ + + bool sdhci_core_to_disable_vqmmc; /* sdhci core can disable vqmmc */ + unsigned int ocr_avail_sdio; /* OCR bit masks */ + unsigned int ocr_avail_sd; + unsigned int ocr_avail_mmc; + u32 ocr_mask; /* available voltages */ + + unsigned timing; /* Current timing */ + + u32 thread_isr; + + /* cached registers */ + u32 ier; + + bool cqe_on; /* CQE is operating */ + u32 cqe_ier; /* CQE interrupt mask */ + u32 cqe_err_ier; /* CQE error interrupt mask */ + + wait_queue_head_t buf_ready_int; /* Waitqueue for Buffer Read Ready interrupt */ + unsigned int tuning_done; /* Condition flag set when CMD19 succeeds */ + + unsigned int tuning_count; /* Timer count for re-tuning */ + unsigned int tuning_mode; /* Re-tuning mode supported by host */ + unsigned int tuning_err; /* Error code for re-tuning */ +#define SDHCI_TUNING_MODE_1 0 +#define SDHCI_TUNING_MODE_2 1 +#define SDHCI_TUNING_MODE_3 2 + /* Delay (ms) between tuning commands */ + int tuning_delay; + int tuning_loop_count; + + /* Host SDMA buffer boundary. */ + u32 sdma_boundary; + + /* Host ADMA table count */ + u32 adma_table_cnt; + + u64 data_timeout; + + unsigned long private[] ____cacheline_aligned; +}; + +struct sdhci_ops { +#ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS + u32 (*read_l)(struct sdhci_host *host, int reg); + u16 (*read_w)(struct sdhci_host *host, int reg); + u8 (*read_b)(struct sdhci_host *host, int reg); + void (*write_l)(struct sdhci_host *host, u32 val, int reg); + void (*write_w)(struct sdhci_host *host, u16 val, int reg); + void (*write_b)(struct sdhci_host *host, u8 val, int reg); +#endif + + void (*set_clock)(struct sdhci_host *host, unsigned int clock); + void (*set_power)(struct sdhci_host *host, unsigned char mode, + unsigned short vdd); + + u32 (*irq)(struct sdhci_host *host, u32 intmask); + + int (*set_dma_mask)(struct sdhci_host *host); + int (*enable_dma)(struct sdhci_host *host); + unsigned int (*get_max_clock)(struct sdhci_host *host); + unsigned int (*get_min_clock)(struct sdhci_host *host); + /* get_timeout_clock should return clk rate in unit of Hz */ + unsigned int (*get_timeout_clock)(struct sdhci_host *host); + unsigned int (*get_max_timeout_count)(struct sdhci_host *host); + void (*set_timeout)(struct sdhci_host *host, + struct mmc_command *cmd); + void (*set_bus_width)(struct sdhci_host *host, int width); + void (*platform_send_init_74_clocks)(struct sdhci_host *host, + u8 power_mode); + unsigned int (*get_ro)(struct sdhci_host *host); + void (*reset)(struct sdhci_host *host, u8 mask); + int (*platform_execute_tuning)(struct sdhci_host *host, u32 opcode); + void (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs); + void (*hw_reset)(struct sdhci_host *host); + void (*adma_workaround)(struct sdhci_host *host, u32 intmask); + void (*card_event)(struct sdhci_host *host); + void (*voltage_switch)(struct sdhci_host *host); + void (*adma_write_desc)(struct sdhci_host *host, void **desc, + dma_addr_t addr, int len, unsigned int cmd); + void (*copy_to_bounce_buffer)(struct sdhci_host *host, + struct mmc_data *data, + unsigned int length); + void (*request_done)(struct sdhci_host *host, + struct mmc_request *mrq); + void (*dump_vendor_regs)(struct sdhci_host *host); +}; + +#ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS + +static inline void sdhci_writel(struct sdhci_host *host, u32 val, int reg) +{ + if (unlikely(host->ops->write_l)) + host->ops->write_l(host, val, reg); + else + writel(val, host->ioaddr + reg); +} + +static inline void sdhci_writew(struct sdhci_host *host, u16 val, int reg) +{ + if (unlikely(host->ops->write_w)) + host->ops->write_w(host, val, reg); + else + writew(val, host->ioaddr + reg); +} + +static inline void sdhci_writeb(struct sdhci_host *host, u8 val, int reg) +{ + if (unlikely(host->ops->write_b)) + host->ops->write_b(host, val, reg); + else + writeb(val, host->ioaddr + reg); +} + +static inline u32 sdhci_readl(struct sdhci_host *host, int reg) +{ + if (unlikely(host->ops->read_l)) + return host->ops->read_l(host, reg); + else + return readl(host->ioaddr + reg); +} + +static inline u16 sdhci_readw(struct sdhci_host *host, int reg) +{ + if (unlikely(host->ops->read_w)) + return host->ops->read_w(host, reg); + else + return readw(host->ioaddr + reg); +} + +static inline u8 sdhci_readb(struct sdhci_host *host, int reg) +{ + if (unlikely(host->ops->read_b)) + return host->ops->read_b(host, reg); + else + return readb(host->ioaddr + reg); +} + +#else + +static inline void sdhci_writel(struct sdhci_host *host, u32 val, int reg) +{ + writel(val, host->ioaddr + reg); +} + +static inline void sdhci_writew(struct sdhci_host *host, u16 val, int reg) +{ + writew(val, host->ioaddr + reg); +} + +static inline void sdhci_writeb(struct sdhci_host *host, u8 val, int reg) +{ + writeb(val, host->ioaddr + reg); +} + +static inline u32 sdhci_readl(struct sdhci_host *host, int reg) +{ + return readl(host->ioaddr + reg); +} + +static inline u16 sdhci_readw(struct sdhci_host *host, int reg) +{ + return readw(host->ioaddr + reg); +} + +static inline u8 sdhci_readb(struct sdhci_host *host, int reg) +{ + return readb(host->ioaddr + reg); +} + +#endif /* CONFIG_MMC_SDHCI_IO_ACCESSORS */ + +struct sdhci_host *sdhci_alloc_host(struct device *dev, size_t priv_size); +void sdhci_free_host(struct sdhci_host *host); + +static inline void *sdhci_priv(struct sdhci_host *host) +{ + return host->private; +} + +void __sdhci_read_caps(struct sdhci_host *host, const u16 *ver, + const u32 *caps, const u32 *caps1); +int sdhci_setup_host(struct sdhci_host *host); +void sdhci_cleanup_host(struct sdhci_host *host); +int __sdhci_add_host(struct sdhci_host *host); +int sdhci_add_host(struct sdhci_host *host); +void sdhci_remove_host(struct sdhci_host *host, int dead); + +static inline void sdhci_read_caps(struct sdhci_host *host) +{ + __sdhci_read_caps(host, NULL, NULL, NULL); +} + +u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock, + unsigned int *actual_clock); +void sdhci_set_clock(struct sdhci_host *host, unsigned int clock); +void sdhci_enable_clk(struct sdhci_host *host, u16 clk); +void sdhci_set_power(struct sdhci_host *host, unsigned char mode, + unsigned short vdd); +void sdhci_set_power_and_bus_voltage(struct sdhci_host *host, + unsigned char mode, + unsigned short vdd); +void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode, + unsigned short vdd); +int sdhci_get_cd_nogpio(struct mmc_host *mmc); +void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq); +int sdhci_request_atomic(struct mmc_host *mmc, struct mmc_request *mrq); +void sdhci_set_bus_width(struct sdhci_host *host, int width); +void sdhci_reset(struct sdhci_host *host, u8 mask); +void sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned timing); +int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode); +void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios); +int sdhci_start_signal_voltage_switch(struct mmc_host *mmc, + struct mmc_ios *ios); +void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable); +void sdhci_adma_write_desc(struct sdhci_host *host, void **desc, + dma_addr_t addr, int len, unsigned int cmd); + +#ifdef CONFIG_PM +int sdhci_suspend_host(struct sdhci_host *host); +int sdhci_resume_host(struct sdhci_host *host); +int sdhci_runtime_suspend_host(struct sdhci_host *host); +int sdhci_runtime_resume_host(struct sdhci_host *host, int soft_reset); +#endif + +void sdhci_cqe_enable(struct mmc_host *mmc); +void sdhci_cqe_disable(struct mmc_host *mmc, bool recovery); +bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error, + int *data_error); + +void sdhci_dumpregs(struct sdhci_host *host); +void sdhci_enable_v4_mode(struct sdhci_host *host); + +void sdhci_start_tuning(struct sdhci_host *host); +void sdhci_end_tuning(struct sdhci_host *host); +void sdhci_reset_tuning(struct sdhci_host *host); +void sdhci_send_tuning(struct sdhci_host *host, u32 opcode); +void sdhci_abort_tuning(struct sdhci_host *host, u32 opcode); +void sdhci_switch_external_dma(struct sdhci_host *host, bool en); +void sdhci_set_data_timeout_irq(struct sdhci_host *host, bool enable); +void __sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd); + +#endif /* __SDHCI_HW_H */ diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c index 2ba7e7912ed5..0f65d26774b3 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_eeprom_93xx46.c @@ -528,7 +528,7 @@ static int eeprom_93xx46_probe(struct spi_device *spi) return err; } -static int eeprom_93xx46_remove(struct spi_device *spi) +static void eeprom_93xx46_remove(struct spi_device *spi) { struct eeprom_93xx46_dev *edev = spi_get_drvdata(spi); @@ -538,7 +538,7 @@ static int eeprom_93xx46_remove(struct spi_device *spi) device_remove_file(&spi->dev, &dev_attr_erase); kfree(edev); - return 0; + return; } static struct spi_driver wb_eeprom_93xx46_driver = { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c index 3932cb26cd77..22cd9e16de08 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_i2c_bus_drv.c @@ -20,6 +20,7 @@ #include #include +#include #define DRV_NAME "wb-fpga-i2c" #define DRV_VERSION "1.0" @@ -77,6 +78,12 @@ static int fpga_file_read(const char *path, uint32_t pos, uint8_t *val, size_t s struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDONLY, 0); if (IS_ERR(filp)) { FPGA_I2C_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -85,9 +92,10 @@ static int fpga_file_read(const char *path, uint32_t pos, uint8_t *val, size_t s } tmp_pos = (loff_t)pos; - ret = kernel_read(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &tmp_pos, 0); if (ret < 0) { - FPGA_I2C_ERROR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + FPGA_I2C_ERROR("vfs_iter_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -109,6 +117,12 @@ static int fpga_file_write(const char *path, uint32_t pos, uint8_t *val, size_t struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { FPGA_I2C_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -117,9 +131,10 @@ static int fpga_file_write(const char *path, uint32_t pos, uint8_t *val, size_t } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - FPGA_I2C_ERROR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + FPGA_I2C_ERROR("vfs_iter_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } vfs_fsync(filp, 1); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c index 8fd9e4f0f1b4..25f2d60b9334 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pca954x_drv.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "fpga_i2c.h" extern int i2c_device_func_write(const char *path, uint32_t pos, uint8_t *val, size_t size); @@ -133,6 +134,12 @@ static int fpga_file_write(const char *path, int pos, unsigned char *val, size_t struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { FPGA_PCA954X_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -141,9 +148,10 @@ static int fpga_file_write(const char *path, int pos, unsigned char *val, size_t } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - FPGA_PCA954X_ERROR("kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + FPGA_PCA954X_ERROR("vfs_iter_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -481,7 +489,7 @@ static int fpga_i2c_pca954x_probe(struct i2c_client *client, const struct i2c_de return ret; } -static int fpga_i2c_pca954x_remove(struct i2c_client *client) +static void fpga_i2c_pca954x_remove(struct i2c_client *client) { #if LINUX_VERSION_CODE <= KERNEL_VERSION(4,6,7) struct pca954x *data = i2c_get_clientdata(client); @@ -501,7 +509,7 @@ static int fpga_i2c_pca954x_remove(struct i2c_client *client) i2c_mux_del_adapters(muxc); #endif - return 0; + return; } static struct i2c_driver fpga_i2c_pca954x_driver = { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c index aedcc78dab90..baabfb5cd4d0 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_fpga_pcie.c @@ -8,8 +8,9 @@ #include #include -#define FPGA_MSI_IRQ_NUM (14) #define FPGA_MSI_IRQ_BEGIN (0) +#define FPGA_MSI_IRQ_MAX (32) +#define FPGA_MSI_IRQ_MIN (16) #define XILINX_FPGA_USE_MSI (0) #define XILINX_FPGA_NUSE_MSI (1) @@ -68,7 +69,7 @@ static int fpga_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) int err; wb_fpga_pcie_t *wb_fpga_pcie; - FPGA_PCIE_DEV_VERBOSE("Enter vendor 0x%x, subsystem_vendor 0x%x.\n", pdev->vendor, pdev->subsystem_vendor); + FPGA_PCIE_DEV_VERBOSE("Enter vendor 0x%x, device 0x%x.\n", pdev->vendor, pdev->device); wb_fpga_pcie = devm_kzalloc(&pdev->dev, sizeof(wb_fpga_pcie_t), GFP_KERNEL); if (!wb_fpga_pcie) { @@ -96,17 +97,18 @@ static int fpga_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (wb_fpga_pcie->driver_data == XILINX_FPGA_USE_MSI) { FPGA_PCIE_DEV_VERBOSE("start pci_enable_msi_range!\n"); #if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,152) - err = pci_enable_msi_range(pdev, FPGA_MSI_IRQ_BEGIN + 1, FPGA_MSI_IRQ_NUM); + err = pci_enable_msi_range(pdev, FPGA_MSI_IRQ_BEGIN + 1, FPGA_MSI_IRQ_MAX); #else err = pci_alloc_irq_vectors_affinity(pdev, FPGA_MSI_IRQ_BEGIN + 1, - FPGA_MSI_IRQ_NUM, PCI_IRQ_MSI, NULL); + FPGA_MSI_IRQ_MAX, PCI_IRQ_MSI, NULL); #endif - if (err != FPGA_MSI_IRQ_NUM) { + if ((err > FPGA_MSI_IRQ_MAX) || (err < FPGA_MSI_IRQ_MIN)) { FPGA_PCIE_DEV_ERROR("pci_enable_msi_block err %d FPGA_MSI_IRQ_NUM %d.\n", err, - FPGA_MSI_IRQ_NUM); + FPGA_MSI_IRQ_MAX); dev_err(&pdev->dev, "Failed to enable pci msi, ret:%d.\n", err); return -EINVAL; } + FPGA_PCIE_DEV_VERBOSE("pci_enable_msi success, ret: %d\n", err); } dev_info(&pdev->dev, "fpga pci device init success.\n"); @@ -132,6 +134,9 @@ static void fpga_pcie_remove(struct pci_dev *pdev) static const struct pci_device_id fpga_pci_ids[] = { { PCI_DEVICE(0x10ee, 0x7022), .driver_data = XILINX_FPGA_USE_MSI}, { PCI_DEVICE(0x10ee, 0x7011), .driver_data = XILINX_FPGA_NUSE_MSI}, + { PCI_DEVICE(0x1ded, 0x7022), .driver_data = XILINX_FPGA_USE_MSI}, + { PCI_DEVICE(0x1ded, 0x7021), .driver_data = XILINX_FPGA_USE_MSI}, + { PCI_DEVICE(0x1ded, 0x5220), .driver_data = XILINX_FPGA_USE_MSI}, {0} }; MODULE_DEVICE_TABLE(pci, fpga_pci_ids); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c index 988ef12a7672..59cee0b1e1c0 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_dev.c @@ -27,6 +27,9 @@ #define WIDTH_2Byte (2) #define WIDTH_4Byte (4) +#define KERNEL_SPASE (0) +#define USER_SPASE (1) + static int g_i2c_dev_debug = 0; static int g_i2c_dev_error = 0; @@ -61,11 +64,14 @@ struct i2c_dev_info { static int transfer_read(struct i2c_client *client, u8 *buf, loff_t regaddr, size_t count) { struct i2c_adapter *adap; - int i; + union i2c_smbus_data data; + int i, j; u8 offset_buf[MAX_BUS_WIDTH]; struct i2c_msg msgs[2]; int msgs_num, ret; struct i2c_dev_info *i2c_dev; + u8 offset; + u8 length; if (!client) { I2C_DEV_DEBUG_ERROR("can't get read client\n"); @@ -127,9 +133,47 @@ static int transfer_read(struct i2c_client *client, u8 *buf, loff_t regaddr, siz return -EINVAL; } } else { - I2C_DEV_DEBUG_ERROR("don't find read master_xfer\n"); - return -EINVAL; - + if (i2c_dev->addr_bus_width == WIDTH_1Byte) { + offset = regaddr & 0xFF; + if (i2c_check_functionality(adap, I2C_FUNC_SMBUS_READ_I2C_BLOCK)) { + for (j = 0; j < count; j += I2C_SMBUS_BLOCK_MAX) { + if (count - j > I2C_SMBUS_BLOCK_MAX) { + length = I2C_SMBUS_BLOCK_MAX; + } else { + length = count - j; + } + data.block[0] = length; + ret = adap->algo->smbus_xfer(adap, client->addr, + 0, + I2C_SMBUS_READ, + offset, I2C_SMBUS_I2C_BLOCK_DATA, &data); + if (ret) { + I2C_DEV_DEBUG_ERROR("smbus_xfer read block error, ret = %d\n", ret); + return -EFAULT; + } + memcpy(buf + j, data.block + 1, length); + offset += length; + } + } else { + for (j = 0; j < count; j++) { + ret = adap->algo->smbus_xfer(adap, client->addr, + 0, + I2C_SMBUS_READ, + offset, I2C_SMBUS_BYTE_DATA, &data); + + if (!ret) { + buf[j] = data.byte; + } else { + I2C_DEV_DEBUG_ERROR("smbus_xfer read byte error, ret = %d\n", ret); + return -EFAULT; + } + offset++; + } + } + } else { + I2C_DEV_DEBUG_ERROR("smbus_xfer not support addr_bus_width = %d\n", i2c_dev->addr_bus_width); + return -EINVAL; + } } return 0; } @@ -392,7 +436,7 @@ static int device_write(struct i2c_dev_info *i2c_dev, uint32_t offset, uint8_t * return count; } -static ssize_t i2c_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +static ssize_t i2c_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset, int flag) { u8 val[FPGA_MAX_LEN]; int ret, read_len; @@ -422,7 +466,8 @@ static ssize_t i2c_dev_read(struct file *file, char __user *buf, size_t count, l return read_len; } - if (access_ok(buf, read_len)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { I2C_DEV_DEBUG_DMESG("user space read, buf: %p, offset: %lld, read count %lu.\n", buf, *offset, count); if (copy_to_user(buf, val, read_len)) { @@ -440,17 +485,27 @@ static ssize_t i2c_dev_read(struct file *file, char __user *buf, size_t count, l return ret; } +static ssize_t i2c_dev_read_user(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + I2C_DEV_DEBUG_DMESG("i2c_dev_read_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = i2c_dev_read(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t i2c_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) { int ret; I2C_DEV_DEBUG_DMESG("i2c_dev_read_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, to->count, iocb->ki_pos); - ret = i2c_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + ret = i2c_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } -static ssize_t i2c_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset) +static ssize_t i2c_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset, int flag) { u8 val[FPGA_MAX_LEN]; int write_len; @@ -473,7 +528,9 @@ static ssize_t i2c_dev_write(struct file *file, const char __user *buf, size_t c } mem_clear(val, sizeof(val)); - if (access_ok(buf, count)) { + + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { I2C_DEV_DEBUG_DMESG("user space write, buf: %p, offset: %lld, write count %lu.\n", buf, *offset, count); if (copy_from_user(val, buf, count)) { @@ -497,13 +554,23 @@ static ssize_t i2c_dev_write(struct file *file, const char __user *buf, size_t c return write_len; } +static ssize_t i2c_dev_write_user(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + I2C_DEV_DEBUG_DMESG("i2c_dev_write_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = i2c_dev_write(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t i2c_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) { int ret; I2C_DEV_DEBUG_DMESG("i2c_dev_write_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, from->count, iocb->ki_pos); - ret = i2c_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + ret = i2c_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } @@ -555,6 +622,8 @@ static loff_t i2c_dev_llseek(struct file *file, loff_t offset, int origin) static const struct file_operations i2c_dev_fops = { .owner = THIS_MODULE, .llseek = i2c_dev_llseek, + .read = i2c_dev_read_user, + .write = i2c_dev_write_user, .read_iter = i2c_dev_read_iter, .write_iter = i2c_dev_write_iter, .unlocked_ioctl = i2c_dev_ioctl, @@ -734,7 +803,7 @@ static int i2c_dev_probe(struct i2c_client *client, const struct i2c_device_id * return 0; } -static int i2c_dev_remove(struct i2c_client *client) +static void i2c_dev_remove(struct i2c_client *client) { int i; for (i = 0; i < MAX_I2C_DEV_NUM; i++) { @@ -743,7 +812,7 @@ static int i2c_dev_remove(struct i2c_client *client) i2c_dev_arry[i] = NULL; } } - return 0; + return; } static const struct i2c_device_id i2c_dev_id[] = { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c index 1f69d96bad0b..20f8954cce83 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.c @@ -27,6 +27,7 @@ #include #include #include +#include #include "wb_i2c_ocores.h" @@ -81,6 +82,8 @@ typedef struct wb_pci_dev_s { uint32_t bus; uint32_t slot; uint32_t fn; + uint32_t check_pci_id; + uint32_t pci_id; } wb_pci_dev_t; /* @@ -193,6 +196,12 @@ static int ocores_i2c_file_read(const char *path, uint32_t pos, uint8_t *val, si struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDONLY, 0); if (IS_ERR(filp)) { OCORES_I2C_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -201,14 +210,14 @@ static int ocores_i2c_file_read(const char *path, uint32_t pos, uint8_t *val, si } tmp_pos = (loff_t)pos; - ret = kernel_read(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &tmp_pos, 0); if (ret < 0) { - OCORES_I2C_ERROR("kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + OCORES_I2C_ERROR("vfs_iter_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } filp_close(filp, NULL); - return ret; exit: @@ -226,6 +235,12 @@ static int ocores_i2c_file_write(const char *path, uint32_t pos, uint8_t *val, s struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { OCORES_I2C_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -234,15 +249,15 @@ static int ocores_i2c_file_write(const char *path, uint32_t pos, uint8_t *val, s } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - OCORES_I2C_ERROR("kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + OCORES_I2C_ERROR("vfs_iter_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } vfs_fsync(filp, 1); filp_close(filp, NULL); - return ret; exit: @@ -873,6 +888,7 @@ MODULE_DEVICE_TABLE(of, ocores_i2c_match); static int fpga_ocores_i2c_get_irq(struct ocores_i2c *i2c) { int devfn, irq; + uint32_t pci_id; struct device *dev; wb_pci_dev_t *wb_pci_dev; struct pci_dev *pci_dev; @@ -894,6 +910,14 @@ static int fpga_ocores_i2c_get_irq(struct ocores_i2c *i2c) ret = -EINVAL; return ret; } + ret = of_property_read_u32(dev->of_node, "check_pci_id", &wb_pci_dev->check_pci_id); + if (ret == 0) { + ret = of_property_read_u32(dev->of_node, "pci_id", &wb_pci_dev->pci_id); + if (ret != 0) { + OCORES_I2C_ERROR("need to check pci id, but pci id not config.\n"); + return -EINVAL; + } + } } else { if (i2c->dev->platform_data == NULL) { OCORES_I2C_ERROR("Failed to get platform data config.\n"); @@ -905,6 +929,8 @@ static int fpga_ocores_i2c_get_irq(struct ocores_i2c *i2c) wb_pci_dev->bus = i2c_ocores_device->pci_bus; wb_pci_dev->slot = i2c_ocores_device->pci_slot; wb_pci_dev->fn = i2c_ocores_device->pci_fn; + wb_pci_dev->check_pci_id = i2c_ocores_device->check_pci_id; + wb_pci_dev->pci_id = i2c_ocores_device->pci_id; } OCORES_I2C_VERBOSE("pci_domain:0x%x, pci_bus:0x%x, pci_slot:0x%x, pci_fn:0x%x.\n", @@ -917,8 +943,18 @@ static int fpga_ocores_i2c_get_irq(struct ocores_i2c *i2c) wb_pci_dev->domain, wb_pci_dev->bus, devfn); return -ENODEV; } + if (wb_pci_dev->check_pci_id == 1) { + pci_id = (pci_dev->vendor << 16) | pci_dev->device; + if (wb_pci_dev->pci_id != pci_id) { + OCORES_I2C_ERROR("Failed to check pci id, except: 0x%x, really: 0x%x\n", + wb_pci_dev->pci_id, pci_id); + return -ENXIO; + } + OCORES_I2C_VERBOSE("pci id check ok, pci_id: 0x%x", pci_id); + } + irq = pci_dev->irq + i2c->irq_offset; - OCORES_I2C_VERBOSE("get irq no:%d.\n", irq); + OCORES_I2C_VERBOSE("get irq no: %d.\n", irq); return irq; } @@ -1060,10 +1096,10 @@ static int ocores_i2c_probe(struct platform_device *pdev) i2c->flags |= OCORES_FLAG_POLL; } else { - + i2c->irq_offset = i2c_ocores_device->irq_offset; irq = fpga_ocores_i2c_get_irq(i2c); if (irq < 0 ) { - dev_err(i2c->dev, "Failed to get ocores i2c irq number, ret: %d.\n", irq); + dev_err(i2c->dev, "Failed to get ocores i2c irq number, ret: %d.\n", irq); ret = irq; goto out; } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h index acd2710a92f0..d413ebb3ad44 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_i2c_ocores.h @@ -22,6 +22,8 @@ typedef struct i2c_ocores_device_s { uint32_t pci_bus; uint32_t pci_slot; uint32_t pci_fn; + uint32_t check_pci_id; + uint32_t pci_id; int device_flag; } i2c_ocores_device_t; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c index b1f5294b85ab..03571871014b 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_io_dev.c @@ -27,6 +27,9 @@ #define IO_INDIRECT_OP_WRITE (0x2) #define IO_INDIRECT_OP_READ (0X3) +#define KERNEL_SPASE (0) +#define USER_SPASE (1) + static int g_io_dev_debug = 0; static int g_io_dev_error = 0; @@ -138,7 +141,7 @@ static int io_dev_read_tmp(wb_io_dev_t *wb_io_dev, uint32_t offset, uint8_t *buf return count; } -static ssize_t io_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +static ssize_t io_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset, int flag) { wb_io_dev_t *wb_io_dev; int ret, read_len; @@ -167,7 +170,8 @@ static ssize_t io_dev_read(struct file *file, char __user *buf, size_t count, lo return read_len; } - if (access_ok(buf, read_len)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { IO_DEV_DEBUG_VERBOSE("user space read, buf: %p, offset: %lld, read count %lu.\n", buf, *offset, count); if (copy_to_user(buf, buf_tmp, read_len)) { @@ -184,13 +188,23 @@ static ssize_t io_dev_read(struct file *file, char __user *buf, size_t count, lo return ret; } +static ssize_t io_dev_read_user(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + IO_DEV_DEBUG_VERBOSE("io_dev_read_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = io_dev_read(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t io_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) { int ret; IO_DEV_DEBUG_VERBOSE("io_dev_read_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, to->count, iocb->ki_pos); - ret = io_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + ret = io_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } @@ -245,7 +259,7 @@ static int io_dev_write_tmp(wb_io_dev_t *wb_io_dev, uint32_t offset, uint8_t *bu return count; } -static ssize_t io_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset) +static ssize_t io_dev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset, int flag) { wb_io_dev_t *wb_io_dev; int write_len; @@ -268,7 +282,8 @@ static ssize_t io_dev_write(struct file *file, const char __user *buf, size_t co } mem_clear(buf_tmp, sizeof(buf_tmp)); - if (access_ok(buf, count)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { IO_DEV_DEBUG_VERBOSE("user space write, buf: %p, offset: %lld, write count %lu.\n", buf, *offset, count); if (copy_from_user(buf_tmp, buf, count)) { @@ -291,13 +306,23 @@ static ssize_t io_dev_write(struct file *file, const char __user *buf, size_t co return write_len; } +static ssize_t io_dev_write_user(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + IO_DEV_DEBUG_VERBOSE("io_dev_write_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = io_dev_write(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t io_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) { int ret; IO_DEV_DEBUG_VERBOSE("io_dev_write_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, from->count, iocb->ki_pos); - ret = io_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + ret = io_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } @@ -354,6 +379,8 @@ static long io_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) static const struct file_operations io_dev_fops = { .owner = THIS_MODULE, .llseek = io_dev_llseek, + .read = io_dev_read_user, + .write = io_dev_write_user, .read_iter = io_dev_read_iter, .write_iter = io_dev_write_iter, .unlocked_ioctl = io_dev_ioctl, diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c index 1e84e65d7b11..a94ae020a4b7 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_mac_bsc.c @@ -1,5 +1,4 @@ /* - * wb_mac_th3.c - A driver for control wb_mac_th3 base on wb_mac.c * * Copyright (c) 1998, 1999 Frodo Looijaard * @@ -28,24 +27,39 @@ #include #include #include +#include #define mem_clear(data, size) memset((data), 0, (size)) #define MAC_TEMP_INVALID (99999999) +#define MAC_ID_REG (0x02000000) -#define MAC_SIZE (256) -#define MAC_TEMP_NUM (16) +#define MAC_REG_ADDR_WIDTH (4) +#define MAC_REG_DATA_WIDTH (4) +#define MAC_BSC_MAX_TEMP_NUM (16) +#define MAC_BSC_MAX_READ_REG_STEP (6) +#define MAC_BSC_MAX_SETUP_NUM (1) -#define MAC_ID_REG (0x02000000) +#define MAC_BSC_MAX_RETRY (3) +#define MAC_BSC_RETRY_SLEEP_TIME (10000) /* 10ms */ -typedef enum { - DBG_START, - DBG_VERBOSE, - DBG_KEY, - DBG_WARN, - DBG_ERROR, - DBG_END, -} dbg_level_t; +static int g_wb_mac_bsc_debug = 0; +static int g_wb_mac_bsc_error = 0; + +module_param(g_wb_mac_bsc_debug, int, S_IRUGO | S_IWUSR); +module_param(g_wb_mac_bsc_error, int, S_IRUGO | S_IWUSR); + +#define WB_MAC_BSC_DEBUG(fmt, args...) do { \ + if (g_wb_mac_bsc_debug) { \ + printk(KERN_INFO "[MAC_BSC][VER][func:%s line:%d] "fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) + +#define WB_MAC_BSC_ERROR(fmt, args...) do { \ + if (g_wb_mac_bsc_error) { \ + printk(KERN_ERR "[MAC_BSC][ERR][func:%s line:%d]"fmt, __func__, __LINE__, ## args); \ + } \ +} while (0) typedef enum{ MAC_TYPE_START, @@ -53,20 +67,11 @@ typedef enum{ TD4_X9_8 = 0xb788, TH3 = 0xb980, TD3 = 0xb870, + TD3_X2 = 0xb274, TD4 = 0xb880, TH4 = 0xb990, MAC_TYPE_END, -} mac_type; - -typedef struct sensor_regs_s { - int id; - u32 reg; -} sensor_reg_t; - -typedef struct mac_temp_regs_s { - int mac_type; - sensor_reg_t sensor_reg[MAC_TEMP_NUM]; -} mac_temp_reg_t; +} mac_id; typedef enum { MAC_TEMP_START, @@ -88,365 +93,464 @@ typedef enum { MAC_TEMP_END, } mac_hwmon_index; -static mac_temp_reg_t mac_temp_reg[] = { +typedef enum action_e { + I2C_WRITE, + I2C_READ +} action_t; + +typedef struct i2c_op_s { + action_t op; + uint32_t reg_addr; + uint32_t reg_val; + int read_back; +} i2c_op_t; + +typedef struct dev_params_s { + int mac_id; + i2c_op_t sbus_setup[MAC_BSC_MAX_SETUP_NUM]; + i2c_op_t vtmon_read[MAC_BSC_MAX_READ_REG_STEP]; + uint32_t vtmon_reg_addrs[MAC_BSC_MAX_TEMP_NUM]; + uint8_t vtmon_instances; + uint32_t vtmon_data_width; + int vtmon_scalar; + int vtmon_offset; + uint8_t sbus_setup_ops; + int vtmon_read_ops; + int sbus_addr_op; + int sbus_error_op; + uint32_t sbus_error_mask; +} dev_params_t; + +static dev_params_t mac_temp_conf[] = { + { + .mac_id = TD3_X2, + /* CMIC_TOP_SBUS_RING_MAP_0_7 = 0x52222100 */ + .sbus_setup = {{I2C_WRITE, 0x1010000c, 0x52222100, 0}}, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRL = 0x00000000 */ + {I2C_WRITE, 0x10110400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[0] = 0x2c380200 */ + {I2C_WRITE, 0x1011040c, 0x2c380200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[1] = TOP_PVTMON_RESULT_0 */ + {I2C_WRITE, 0x10110410, 0x02005300, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRL = 0x00000001 */ + {I2C_WRITE, 0x10110400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERR */ + {I2C_READ, 0x10110408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[1] */ + {I2C_READ, 0x10110410} + }, + .vtmon_reg_addrs = { + 0x02005300, 0x02005400, 0x02005500, 0x02005600, 0x02005700, 0x02005800 + }, + .vtmon_instances = 6, + .vtmon_data_width = 10, + .vtmon_scalar = -5570, + .vtmon_offset = 4578289, + .sbus_setup_ops = 1, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = 4, + .sbus_error_mask = 0x00000041, + }, { - /* TD3 */ - .mac_type = TD3, - .sensor_reg = { - {.id = MAC_TEMP_INDEX1, .reg = 0x02004700}, - {.id = MAC_TEMP_INDEX2, .reg = 0x02004800}, - {.id = MAC_TEMP_INDEX3, .reg = 0x02004900}, - {.id = MAC_TEMP_INDEX4, .reg = 0x02004a00}, - {.id = MAC_TEMP_INDEX5, .reg = 0x02004b00}, - {.id = MAC_TEMP_INDEX6, .reg = 0x02004c00}, - {.id = MAC_TEMP_INDEX7, .reg = 0x02004d00}, - {.id = MAC_TEMP_INDEX8, .reg = 0x02004e00}, - {.id = MAC_TEMP_INDEX9, .reg = 0x02005200}, - {.id = MAC_TEMP_INDEX10, .reg = 0x02005100}, - {.id = MAC_TEMP_INDEX11, .reg = 0x02005000}, - {.id = MAC_TEMP_INDEX12, .reg = 0x02004f00}, + .mac_id = TD3, /* TD3_X7*/ + /* CMIC_TOP_SBUS_RING_MAP_0_7 = 0x52222100 */ + .sbus_setup = {{I2C_WRITE, 0x0320000c, 0x52222100, 0}}, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRL = 0x00000000 */ + {I2C_WRITE, 0x03210400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[0] = 0x2c380200 */ + {I2C_WRITE, 0x0321040c, 0x2c380200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[1] = TOP_PVTMON_RESULT_0 */ + {I2C_WRITE, 0x03210410, 0x02004700, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRL = 0x00000001 */ + {I2C_WRITE, 0x03210400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERR */ + {I2C_READ, 0x03210408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[1] */ + {I2C_READ, 0x03210410} }, + .vtmon_reg_addrs = { + 0x02004700, 0x02004800, 0x02004900, 0x02004a00, 0x02004b00, 0x02004c00, + 0x02004d00, 0x02004e00, 0x02005200, 0x02005100, 0x02005000, 0x02004f00 + }, + .vtmon_instances = 12, + .vtmon_data_width = 10, + .vtmon_scalar = -5350, + .vtmon_offset = 4341000, + .sbus_setup_ops = 0, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = 4, + .sbus_error_mask = 0x00000041, }, { - /* TD4 */ - .mac_type = TD4, - .sensor_reg = { - {.id = MAC_TEMP_INDEX1, .reg = 0x02004900}, - {.id = MAC_TEMP_INDEX2, .reg = 0x02004b00}, - {.id = MAC_TEMP_INDEX3, .reg = 0x02004d00}, - {.id = MAC_TEMP_INDEX4, .reg = 0x02004f00}, - {.id = MAC_TEMP_INDEX5, .reg = 0x02005100}, - {.id = MAC_TEMP_INDEX6, .reg = 0x02005300}, - {.id = MAC_TEMP_INDEX7, .reg = 0x02005500}, - {.id = MAC_TEMP_INDEX8, .reg = 0x02005700}, - {.id = MAC_TEMP_INDEX9, .reg = 0x02005900}, - {.id = MAC_TEMP_INDEX10, .reg = 0x02005b00}, - {.id = MAC_TEMP_INDEX11, .reg = 0x02005d00}, - {.id = MAC_TEMP_INDEX12, .reg = 0x02005f00}, - {.id = MAC_TEMP_INDEX13, .reg = 0x02006100}, - {.id = MAC_TEMP_INDEX14, .reg = 0x02006300}, - {.id = MAC_TEMP_INDEX15, .reg = 0x02006500}, + .mac_id = TH3, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRL = 0x00000000 */ + {I2C_WRITE, 0x03210400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[0] = 0x2c400200 */ + {I2C_WRITE, 0x0321040c, 0x2c400200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[1] = TOP_PVTMON_RESULT_0 */ + {I2C_WRITE, 0x03210410, 0x02004a00, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRL = 0x00000001 */ + {I2C_WRITE, 0x03210400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERR */ + {I2C_READ, 0x03210408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGE[1] */ + {I2C_READ, 0x03210410} + }, + .vtmon_reg_addrs = { + 0x02004a00, 0x02004b00, 0x02004c00, 0x02004d00, 0x02004e00, 0x02004f00, + 0x02005000, 0x02005100, 0x02005200, 0x02005300, 0x02005400, 0x02005500, + 0x02005600, 0x02005700, 0x02005800 }, + .vtmon_instances = 15, + .vtmon_data_width = 10, + .vtmon_scalar = -5350, + .vtmon_offset = 4341000, + .sbus_setup_ops = 0, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = -1, }, { - /* TD4_X9 */ - .mac_type = TD4_X9, - .sensor_reg = { - {.id = MAC_TEMP_INDEX1, .reg = 0x02005a00}, - {.id = MAC_TEMP_INDEX2, .reg = 0x02005c00}, - {.id = MAC_TEMP_INDEX3, .reg = 0x02005e00}, - {.id = MAC_TEMP_INDEX4, .reg = 0x02006000}, - {.id = MAC_TEMP_INDEX5, .reg = 0x02006200}, - {.id = MAC_TEMP_INDEX6, .reg = 0x02006400}, - {.id = MAC_TEMP_INDEX7, .reg = 0x02006600}, - {.id = MAC_TEMP_INDEX8, .reg = 0x02006800}, - {.id = MAC_TEMP_INDEX9, .reg = 0x02006a00}, + .mac_id = TD4_X9, + /* CMIC_TOP_SBUS_RING_MAP_8_15r = 0x00000000 */ + .sbus_setup = {{I2C_WRITE, 0x03200010, 0x00000000, 0}}, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000000 */ + {I2C_WRITE, 0x03210400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[0] = 0x2c400200 */ + {I2C_WRITE, 0x0321040c, 0x2c400200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] = TOP_VTMON_0_RESULT_1r */ + {I2C_WRITE, 0x03210410, 0x02005a00, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000001 */ + {I2C_WRITE, 0x03210400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERRr */ + {I2C_READ, 0x03210408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] */ + {I2C_READ, 0x03210410} + }, + .vtmon_reg_addrs = { + 0x02005a00, 0x02005c00, 0x02005e00, 0x02006000, 0x02006200, 0x02006400, + 0x02006600, 0x02006800, 0x02006a00 }, + .vtmon_instances = 9, + .vtmon_data_width = 11, + .vtmon_scalar = -2454, + .vtmon_offset = 3668120, + .sbus_setup_ops = 0, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = 4, + .sbus_error_mask = 0x00000041, }, { - /* TD4_X9_8 */ - .mac_type = TD4_X9_8, - .sensor_reg = { - {.id = MAC_TEMP_INDEX1, .reg = 0x02005a00}, - {.id = MAC_TEMP_INDEX2, .reg = 0x02005c00}, - {.id = MAC_TEMP_INDEX3, .reg = 0x02005e00}, - {.id = MAC_TEMP_INDEX4, .reg = 0x02006000}, - {.id = MAC_TEMP_INDEX5, .reg = 0x02006200}, - {.id = MAC_TEMP_INDEX6, .reg = 0x02006400}, - {.id = MAC_TEMP_INDEX7, .reg = 0x02006600}, - {.id = MAC_TEMP_INDEX8, .reg = 0x02006800}, - {.id = MAC_TEMP_INDEX9, .reg = 0x02006a00}, + .mac_id = TD4_X9_8, + /* CMIC_TOP_SBUS_RING_MAP_8_15r = 0x00000000 */ + .sbus_setup = {{I2C_WRITE, 0x03200010, 0x00000000, 0}}, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000000 */ + {I2C_WRITE, 0x03210400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[0] = 0x2c400200 */ + {I2C_WRITE, 0x0321040c, 0x2c400200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] = TOP_VTMON_0_RESULT_1r */ + {I2C_WRITE, 0x03210410, 0x02005a00, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000001 */ + {I2C_WRITE, 0x03210400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERRr */ + {I2C_READ, 0x03210408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] */ + {I2C_READ, 0x03210410} }, + .vtmon_reg_addrs = { + 0x02005a00, 0x02005c00, 0x02005e00, 0x02006000, 0x02006200, 0x02006400, + 0x02006600, 0x02006800, 0x02006a00 + }, + .vtmon_instances = 9, + .vtmon_data_width = 11, + .vtmon_scalar = -2454, + .vtmon_offset = 3668120, + .sbus_setup_ops = 0, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = 4, + .sbus_error_mask = 0x00000041, }, { - /* TH3 */ - .mac_type = TH3, - .sensor_reg = { - {.id = MAC_TEMP_INDEX1, .reg = 0x02004a00}, - {.id = MAC_TEMP_INDEX2, .reg = 0x02004b00}, - {.id = MAC_TEMP_INDEX3, .reg = 0x02004c00}, - {.id = MAC_TEMP_INDEX4, .reg = 0x02004d00}, - {.id = MAC_TEMP_INDEX5, .reg = 0x02004e00}, - {.id = MAC_TEMP_INDEX6, .reg = 0x02004f00}, - {.id = MAC_TEMP_INDEX7, .reg = 0x02005000}, - {.id = MAC_TEMP_INDEX8, .reg = 0x02005100}, - {.id = MAC_TEMP_INDEX9, .reg = 0x02005200}, - {.id = MAC_TEMP_INDEX10, .reg = 0x02005300}, - {.id = MAC_TEMP_INDEX11, .reg = 0x02005400}, - {.id = MAC_TEMP_INDEX12, .reg = 0x02005500}, - {.id = MAC_TEMP_INDEX13, .reg = 0x02005600}, - {.id = MAC_TEMP_INDEX14, .reg = 0x02005700}, - {.id = MAC_TEMP_INDEX15, .reg = 0x02005800}, + .mac_id = TD4, /* TD4-X11 */ + /* CMIC_TOP_SBUS_RING_MAP_8_15r = 0x00000000 */ + .sbus_setup = {{I2C_WRITE, 0x03200010, 0x00000000, 0}}, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000000 */ + {I2C_WRITE, 0x03210400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[0] = 0x2c400200 */ + {I2C_WRITE, 0x0321040c, 0x2c400200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] = TOP_VTMON_0_RESULT_1r */ + {I2C_WRITE, 0x03210410, 0x02004900, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000001 */ + {I2C_WRITE, 0x03210400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERRr */ + {I2C_READ, 0x03210408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] */ + {I2C_READ, 0x03210410} + }, + .vtmon_reg_addrs = { + 0x02004900, 0x02004b00, 0x02004d00, 0x02004f00, 0x02005100, 0x02005300, + 0x02005500, 0x02005700, 0x02005900, 0x02005b00, 0x02005d00, 0x02005f00, + 0x02006100, 0x02006300, 0x02006500 }, + .vtmon_instances = 15, + .vtmon_data_width = 11, + .vtmon_scalar = -2454, + .vtmon_offset = 3668120, + .sbus_setup_ops = 0, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = 4, + .sbus_error_mask = 0x00000041, }, { - /* TH4 */ - .mac_type = TH4, - .sensor_reg = { - {.id = MAC_TEMP_INDEX1, .reg = 0x0201d800}, - {.id = MAC_TEMP_INDEX2, .reg = 0x0201e000}, - {.id = MAC_TEMP_INDEX3, .reg = 0x0201e800}, - {.id = MAC_TEMP_INDEX4, .reg = 0x0201f000}, - {.id = MAC_TEMP_INDEX5, .reg = 0x0201f800}, - {.id = MAC_TEMP_INDEX6, .reg = 0x02020000}, - {.id = MAC_TEMP_INDEX7, .reg = 0x02020800}, - {.id = MAC_TEMP_INDEX8, .reg = 0x02021000}, - {.id = MAC_TEMP_INDEX9, .reg = 0x02021800}, - {.id = MAC_TEMP_INDEX10, .reg = 0x02022000}, - {.id = MAC_TEMP_INDEX11, .reg = 0x02022800}, - {.id = MAC_TEMP_INDEX12, .reg = 0x02023000}, - {.id = MAC_TEMP_INDEX13, .reg = 0x02023800}, - {.id = MAC_TEMP_INDEX14, .reg = 0x02024000}, - {.id = MAC_TEMP_INDEX15, .reg = 0x02024800}, + .mac_id = TH4, + .vtmon_read = { + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000000 */ + {I2C_WRITE, 0x03210400, 0x00000000, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[0] = 0x2c400200 */ + {I2C_WRITE, 0x0321040c, 0x2c400200, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] = TOP_VTMON_0_RESULT_1r */ + {I2C_WRITE, 0x03210410, 0x0201d800, 1}, + /* CMIC_COMMON_POOL_SCHAN_CH4_CTRLr = 0x00000001 */ + {I2C_WRITE, 0x03210400, 0x00000001, 0}, + /* CMIC_COMMON_POOL_SCHAN_CH4_ERRr */ + {I2C_READ, 0x03210408}, + /* CMIC_COMMON_POOL_SCHAN_CH4_MESSAGEr[1] */ + {I2C_READ, 0x03210410} + }, + .vtmon_reg_addrs = { + 0x0201d800, 0x0201e000, 0x0201e800, 0x0201f000, 0x0201f800, 0x02020000, + 0x02020800, 0x02021000, 0x02021800, 0x02022000, 0x02022800, 0x02023000, + 0x02023800, 0x02024000, 0x02024800, }, + .vtmon_instances = 15, + .vtmon_data_width = 11, + .vtmon_scalar = -2454, + .vtmon_offset = 3668120, + .sbus_setup_ops = 0, + .vtmon_read_ops = 6, + .sbus_addr_op = 2, + .sbus_error_op = -1, }, }; -static int debuglevel = 0; -module_param(debuglevel, int, S_IRUGO | S_IWUSR); - -static int mac_pcie_id = MAC_TYPE_START; -module_param(mac_pcie_id, int, S_IRUGO | S_IWUSR); - -#define DBG_DEBUG(fmt, arg...) do { \ - if ( debuglevel > DBG_START && debuglevel < DBG_ERROR) { \ - printk(KERN_INFO "[DEBUG]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ - } else if ( debuglevel >= DBG_ERROR ) { \ - printk(KERN_ERR "[DEBUG]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ - } else { } \ -} while (0) - -#define DBG_ERROR(fmt, arg...) do { \ - if ( debuglevel > DBG_START) { \ - printk(KERN_ERR "[ERROR]:<%s, %d>:"fmt, __FUNCTION__, __LINE__, ##arg); \ - } \ - } while (0) - struct mac_data { - struct i2c_client *client; - struct device *hwmon_dev; - struct mutex update_lock; - u8 data[MAC_SIZE]; /* Register value */ + struct i2c_client *client; + struct device *hwmon_dev; + struct mutex update_lock; + dev_params_t dev_param; }; -static int wb_i2c_read_one_time(struct i2c_client *client, u8 *recv_buf, int size) +static int bsc_i2c_read(struct i2c_client *client, uint32_t reg_addr, uint32_t *reg_val) { + int msgs_num, ret, i; + uint8_t addr_buf[MAC_REG_ADDR_WIDTH]; + uint8_t data_buf[MAC_REG_DATA_WIDTH]; + uint32_t val; struct i2c_msg msgs[2]; - int ret = 0; - if ((client == NULL) || (recv_buf == NULL)) { - DBG_DEBUG("i2c_client || recv_buf = NULL\r\n"); - return -1; + for (i = 0; i < MAC_REG_ADDR_WIDTH; i++) { + addr_buf[i] = (reg_addr >> ((MAC_REG_ADDR_WIDTH -i -1) * 8)) & 0xff; } mem_clear(msgs, sizeof(msgs)); - - msgs[0].buf = recv_buf; - msgs[0].len = size; msgs[0].addr = client->addr; - msgs[0].flags |= I2C_M_RD; - - ret = i2c_transfer(client->adapter, msgs, 1); - if (ret < 0) { - return ret; + msgs[0].flags = 0; + msgs[0].len = MAC_REG_ADDR_WIDTH; + msgs[0].buf = addr_buf; + + msgs[1].addr = client->addr; + msgs[1].flags = I2C_M_RD; + msgs[1].len = MAC_REG_DATA_WIDTH; + msgs[1].buf = data_buf; + + msgs_num = 2; + ret = i2c_transfer(client->adapter, msgs, msgs_num); + if (ret != msgs_num) { + WB_MAC_BSC_ERROR("i2c_transfer read failed, reg_addr: 0x%x, ret: %d\n", reg_addr, ret); + return -EIO; } - DBG_DEBUG("i2c_transfer, dev_addr 0x%x, size %d.\n", client->addr, size); - + val = 0; + for (i = 0; i < MAC_REG_DATA_WIDTH; i++) { + val |= data_buf[i] << ((MAC_REG_DATA_WIDTH - i -1) * 8); + } + WB_MAC_BSC_DEBUG("bsc_i2c_read success, reg_addr: 0x%x, reg_val: 0x%x\n", reg_addr, val); + *reg_val = val; return 0; } -static int wb_i2c_write_one_time(struct i2c_client *client, u8 *write_buf, int size) +static int bsc_i2c_write(struct i2c_client *client, uint32_t reg_addr, uint32_t reg_val) { - struct i2c_msg msgs[2]; - int ret = 0; + int ret, i; + uint8_t write_buf[MAC_REG_ADDR_WIDTH + MAC_REG_DATA_WIDTH]; + struct i2c_msg msgs[1]; - if ((client == NULL) || (write_buf == NULL)) { - DBG_DEBUG("i2c_client || write_buf = NULL\r\n"); - return -1; + /* fill reg_addr first*/ + for (i = 0; i < MAC_REG_ADDR_WIDTH; i++) { + write_buf[i] = (reg_addr >> ((MAC_REG_ADDR_WIDTH -i -1) * 8)) & 0xff; } - - if ((size <= 0)) { - DBG_DEBUG("size invalid, size %d\n", size); - return -1; + for (i = 0; i < MAC_REG_DATA_WIDTH; i++) { + write_buf[i + MAC_REG_ADDR_WIDTH] = (reg_val >> ((MAC_REG_DATA_WIDTH -i -1) * 8)) & 0xff; } mem_clear(msgs, sizeof(msgs)); - - msgs[0].len = size; + msgs[0].len = MAC_REG_ADDR_WIDTH + MAC_REG_DATA_WIDTH; msgs[0].buf = write_buf; msgs[0].addr = client->addr; + msgs[0].flags = I2C_M_IGNORE_NAK; ret = i2c_transfer(client->adapter, msgs, 1); if (ret < 0) { + WB_MAC_BSC_DEBUG("i2c_transfer write failed, reg_addr: 0x%x, reg_val: 0x%x, ret: %d\n", + reg_addr, reg_val, ret); return ret; } - DBG_DEBUG("i2c_transfer, dev_addr 0x%x, size %d\n", client->addr, size); - + WB_MAC_BSC_DEBUG("i2c_transfer write reg_addr: 0x%x, reg_val: 0x%x success\n", + reg_addr, reg_val); return 0; } -static u8 step2_buf1[8] = {0x03, 0x21, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00}; -static u8 step2_buf2[8] = {0x03, 0x21, 0x04, 0x0c, 0x2c, 0x38, 0x02, 0x00}; -static u8 step2_buf3[8] = {0x03, 0x21, 0x04, 0x10, 0x02, 0x00, 0x4a, 0x00}; -static u8 step2_buf4[8] = {0x03, 0x21, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01}; -static u8 step2_buf5[4] = {0x03, 0x21, 0x04, 0x08}; -static u8 step2_buf6[4] = {0x03, 0x21, 0x04, 0x10}; - -static int getmac_register(struct i2c_client *client, u32 index, int *reg_value) +static int handle_operation_write(struct i2c_client *client, i2c_op_t *operation) { - int i; - int ret = 0; - int value = 0; - unsigned char read_buf[8]; - - if (index == 0) { - DBG_ERROR("invalid index\n"); - return -1; - } - - step2_buf3[7] = index & 0xff; - step2_buf3[6] = (index >> 8) & 0xff; - step2_buf3[5] = (index >> 16) & 0xff; - step2_buf3[4] = (index >> 24) & 0xff; - - ret = wb_i2c_write_one_time(client, step2_buf1, 8); - if (ret < 0) { - DBG_ERROR("write step2_buf1 failed, ret = %d\n", ret); - } - ret = wb_i2c_write_one_time(client, step2_buf2, 8); - if (ret < 0) { - DBG_ERROR("write step2_buf2 failed, ret = %d\n", ret); - } - ret = wb_i2c_write_one_time(client, step2_buf3, 8); - if (ret < 0) { - DBG_ERROR("write step2_buf3 failed, ret = %d\n", ret); - } - ret = wb_i2c_write_one_time(client, step2_buf4, 8); - if (ret < 0) { - DBG_ERROR("write step2_buf4 failed, ret = %d\n", ret); - } - - ret = wb_i2c_write_one_time(client, step2_buf5, 4); - if (ret < 0) { - DBG_ERROR("write step2_buf5 failed, ret = %d\n", ret); - } - ret = wb_i2c_read_one_time(client, read_buf, 4); - if (ret < 0) { - DBG_ERROR("read failed, ret = %d\n", ret); - } - for (i = 0; i < 4; i++) { - DBG_DEBUG("read_buf[%d] = 0x%x \n", i, read_buf[i]); - } - - ret = wb_i2c_write_one_time(client, step2_buf6, 4); - if (ret < 0) { - DBG_ERROR("write step2_buf6 failed, ret = %d\n", ret); - } - - ret = wb_i2c_read_one_time(client, read_buf, 4); - if (ret < 0) { - DBG_ERROR("read failed, ret = %d\n", ret); - return ret; + int ret; + uint32_t rd_back_val; + + ret = bsc_i2c_write(client, operation->reg_addr, operation->reg_val); + WB_MAC_BSC_DEBUG("bsc_i2c_write reg_addr: 0x%x, set val: 0x%x, ret: %d\n", + operation->reg_addr, operation->reg_val, ret); + if (operation->read_back) { + ret = bsc_i2c_read(client, operation->reg_addr, &rd_back_val); + if (rd_back_val != operation->reg_val) { + WB_MAC_BSC_ERROR("bsc_i2c_write failed, reg_addr: 0x%x, set val: 0x%x, read back valu: 0x%x\n", + operation->reg_addr, operation->reg_val, rd_back_val); + return -1; + } + WB_MAC_BSC_DEBUG("bsc_i2c_write success, reg_addr: 0x%x, set val: 0x%x, read_back val: 0x%x\n", + operation->reg_addr, operation->reg_val, rd_back_val); } - - value = (read_buf[0] << 24)| (read_buf[1] << 16) | (read_buf[2] << 8) | read_buf[3]; - *reg_value = value; - - return ret; -} - -static int mac_calcute(u32 reg, int *temp) -{ - int ret = 0; - u32 tmp = 0; - - switch(mac_pcie_id) { - case TD3: - case TH3: - tmp = reg & 0x3ff; - *temp = 434100 - (tmp * 535); - break; - case TD4: - case TH4: - case TD4_X9: - case TD4_X9_8: - tmp = reg & 0x7ff; - *temp = (356070 - (tmp * 237)); - break; - default: - ret = -1; - DBG_ERROR("read failed, ret = %d\n", ret); - break; - } - - if ((*temp / 1000 < -70) || (*temp / 1000 > 200)) { - ret = -1; - DBG_ERROR("mac temp invalid, temp = %d\n", *temp ); - } - - return ret; + return 0; } -static int find_reg_type(int type, int *type_index) +static int handle_operation(struct i2c_client *client, i2c_op_t *operation) { - int i; - int size; - - size = ARRAY_SIZE(mac_temp_reg); - for (i = 0; i < size; i++) { - if (mac_temp_reg[i].mac_type == type) { - *type_index = i; - return 0; + int ret, i; + + if (operation->op == I2C_WRITE) { + for (i = 0; i < MAC_BSC_MAX_RETRY; i++) { + ret = handle_operation_write(client, operation); + if (ret == 0) { + WB_MAC_BSC_DEBUG("handle_operation_write success, retry: %d\n", i); + return 0; + } + if ((i + 1) < MAC_BSC_MAX_RETRY) { + usleep_range(MAC_BSC_RETRY_SLEEP_TIME, MAC_BSC_RETRY_SLEEP_TIME + 1); + } } + WB_MAC_BSC_DEBUG("handle_operation_write retry: %d failed, ret: %d, ignore it\n", i, ret); + return 0; } - return -1; + if (operation->op == I2C_READ) { + ret = bsc_i2c_read(client, operation->reg_addr, &operation->reg_val); + WB_MAC_BSC_DEBUG("bsc_i2c_read reg_addr: 0x%x, get val: 0x%x, ret: %d\n", + operation->reg_addr, operation->reg_val, ret); + return ret; + } + + WB_MAC_BSC_ERROR("Unsupport operation type: %d\n", operation->op); + return -EINVAL; } -static sensor_reg_t * find_reg_offset(int type, int index) +static int get_mac_reg(struct i2c_client *client, uint32_t reg_addr, uint32_t *reg_value) { - int i; - int type_index; - int ret; + int i, ret; + i2c_op_t *op; + struct mac_data *data; + dev_params_t *dev_params; + uint32_t val_tmp; + + data = i2c_get_clientdata(client); + dev_params = &data->dev_param; + val_tmp = 0; + for (i = 0; i < dev_params->vtmon_read_ops; i++) { + op = &dev_params->vtmon_read[i]; + if (i == dev_params->sbus_addr_op) { + op->reg_val = reg_addr; + } + WB_MAC_BSC_DEBUG("Start to handle %s operation, step: %d, reg_addr: 0x%x, reg_value: 0x%x, read back flag: %d\n", + op->op == I2C_READ ? "I2C_READ" : "I2C_WRITE", i, op->reg_addr, op->reg_val, op->read_back); + ret = handle_operation(client, op); + if (ret < 0) { + WB_MAC_BSC_ERROR("handle operation %d failed, ret: %d\n", i, ret); + return ret; + } + if (op->op == I2C_READ) { + val_tmp = op->reg_val; + } - ret = find_reg_type(type, &type_index); - if (ret < 0) { - DBG_ERROR("find_reg_type failed, ret = %d\n", ret); - return NULL; + if (i == dev_params->sbus_error_op) { + if (val_tmp & dev_params->sbus_error_mask) { + WB_MAC_BSC_ERROR("SBUS error seen, status value: 0x%x\n", op->reg_val); + return -EIO; + } + WB_MAC_BSC_DEBUG("Error status check ok, status: 0x%x, error_mask: 0x%x \n", + val_tmp, dev_params->sbus_error_mask); + } } - for (i = 0; i < MAC_TEMP_NUM; i++) { - if (mac_temp_reg[type_index].sensor_reg[i].id == index) { - return &(mac_temp_reg[type_index].sensor_reg[i]); - } + if (val_tmp == reg_addr) { + WB_MAC_BSC_ERROR("get mac register error, register value: 0x%x equal to reg_addr: 0x%x\n", + val_tmp, reg_addr); + return -EIO; } - return NULL; + *reg_value = val_tmp; + WB_MAC_BSC_DEBUG("get_mac_reg success, reg_addr: 0x%x, reg_value: 0x%x", reg_addr, *reg_value); + return 0; } -static int get_mactemp(struct i2c_client *client, int index, int *temp) +static int read_vtmon(struct i2c_client *client, uint8_t vtmon, int *temp) { + struct mac_data *data; + dev_params_t *dev_params; + uint32_t reg_addr, reg_val; + uint32_t vtmon_val; int ret; - int reg_value; - if (index == 0) { - DBG_ERROR("invalid index\n"); + data = i2c_get_clientdata(client); + dev_params = &data->dev_param; + + if (vtmon >= dev_params->vtmon_instances) { + WB_MAC_BSC_ERROR("VTMON index [%d] greater or equal to VTMON instance number: %d\n", + vtmon, dev_params->vtmon_instances); return -1; } - - ret = getmac_register(client, index, ®_value); + reg_addr = dev_params->vtmon_reg_addrs[vtmon]; + ret = get_mac_reg(client, reg_addr, ®_val); if (ret < 0) { - DBG_ERROR("getmac_register failed, ret = %d\n", ret); + WB_MAC_BSC_ERROR("Read VTMON[%d] failed, reg_addr: 0x%x, ret: %d\n", + vtmon, reg_addr, ret); return ret; } - DBG_DEBUG("reg_value = 0x%x \n", reg_value); - ret = mac_calcute(reg_value, temp); - if (ret < 0) { - DBG_ERROR("mac_calcute failed, ret = %d\n", ret); - return ret; - } + vtmon_val = reg_val & ((1 << dev_params->vtmon_data_width) - 1); + *temp = ((dev_params->vtmon_scalar * vtmon_val) + dev_params->vtmon_offset) / 10; + if ((*temp / 1000 < -40) || (*temp / 1000 > 120)) { + WB_MAC_BSC_ERROR("MAC temp invalid, vtmon: %d, temp: %d\n", vtmon, *temp); + return -EINVAL; + } + WB_MAC_BSC_DEBUG("Read mac temp success, index: %d, value: %d\n", vtmon + 1, *temp); return 0; } @@ -454,76 +558,44 @@ static ssize_t show_mac_temp(struct device *dev, struct device_attribute *da, ch { struct mac_data *data = dev_get_drvdata(dev); struct i2c_client *client = data->client; - u32 index_value = to_sensor_dev_attr_2(da)->index; - sensor_reg_t *t; - int result = 0; - int temp = -MAC_TEMP_INVALID; + u32 temp_index = to_sensor_dev_attr(da)->index; + int ret, temp; mutex_lock(&data->update_lock); - t = find_reg_offset(mac_pcie_id, index_value); - if (t == NULL) { + ret = read_vtmon(client, temp_index - 1, &temp); + if (ret < 0) { temp = -MAC_TEMP_INVALID; - DBG_ERROR("find_reg_offset failed, mac_pcie_id = %d, index_value = %d\n", mac_pcie_id, index_value); - } else { - result = get_mactemp(client, t->reg, &temp); - if (result < 0) { - temp = -MAC_TEMP_INVALID; - DBG_ERROR("get_mactemp failed, ret = %d\n", result); - } + WB_MAC_BSC_ERROR("get_mactemp index: %d failed, ret = %d\n", temp_index, ret); } - mutex_unlock(&data->update_lock); - return snprintf(buf, MAC_SIZE, "%d\n", temp); + return snprintf(buf, PAGE_SIZE, "%d\n", temp); } static ssize_t show_mac_max_temp(struct device *dev, struct device_attribute *da, char *buf) { struct mac_data *data = dev_get_drvdata(dev); struct i2c_client *client = data->client; - int i; - int result; - int temp = -MAC_TEMP_INVALID; - int type_index; - int tmp; + dev_params_t *dev_params; + int i, ret; + int tmp, temp; mutex_lock(&data->update_lock); - result = find_reg_type(mac_pcie_id, &type_index); - if (result < 0) { - DBG_ERROR("find_reg_type failed, ret = %d\n", result); - goto exit; - } - - for (i = 0; i < MAC_TEMP_NUM; i++) { - result = get_mactemp(client, mac_temp_reg[type_index].sensor_reg[i].reg, &tmp); - if (result < 0) { - DBG_ERROR("get_mactemp failed, ret = %d\n", result); + dev_params = &data->dev_param; + temp = -MAC_TEMP_INVALID; + for (i = 0; i < dev_params->vtmon_instances ; i++) { + ret = read_vtmon(client, i, &tmp); + if (ret < 0) { + WB_MAC_BSC_ERROR("Get mactemp failed, temp index: %d, ret = %d\n", + i, ret); tmp = -MAC_TEMP_INVALID; } temp = (temp > tmp) ? temp : tmp; } -exit: mutex_unlock(&data->update_lock); - return snprintf(buf, MAC_SIZE, "%d\n", temp); -} - -static int mac_bsc_init(struct i2c_client *client) -{ - int ret; - int reg_value; - int mac_id = 0; - - ret = getmac_register(client, MAC_ID_REG, ®_value); - if (ret < 0) { - DBG_ERROR("getmac_register failed, ret = %d\n", ret); - return ret; - } - - DBG_DEBUG("reg_value = 0x%x \n", reg_value); - mac_id = reg_value & 0xffff; - return mac_id; + return snprintf(buf, PAGE_SIZE, "%d\n", temp); } static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_mac_temp, NULL, MAC_TEMP_INDEX1); @@ -564,85 +636,220 @@ static struct attribute *mac_hwmon_attrs[] = { }; ATTRIBUTE_GROUPS(mac_hwmon); -static int init_bcs_command(int mac_type) { - int ret; +static void mac_bsc_setup(struct i2c_client *client) +{ + int i, ret; + struct mac_data *data; + dev_params_t *dev_params; + uint32_t reg_value; + + data = i2c_get_clientdata(client); + dev_params = &data->dev_param; + + for (i = 0; i < dev_params->sbus_setup_ops; i++) { + ret = bsc_i2c_read(client, dev_params->sbus_setup[i].reg_addr, ®_value); + if ((ret < 0) || (reg_value != dev_params->sbus_setup[i].reg_val)) { + WB_MAC_BSC_DEBUG("bsc setup op%d, ret: %d, reg_addr: 0x%x, read value: 0x%x not equal to set value: 0x%x\n", + i, ret, dev_params->sbus_setup[i].reg_addr, reg_value, dev_params->sbus_setup[i].reg_val); + bsc_i2c_write(client, dev_params->sbus_setup[i].reg_addr, dev_params->sbus_setup[i].reg_val); + } else { + WB_MAC_BSC_DEBUG("bsc setup op%d, reg_addr: 0x%x, read value: 0x%x equal to set value: 0x%x\n", + i, dev_params->sbus_setup[i].reg_addr, reg_value, dev_params->sbus_setup[i].reg_val); + } + } + return; +} - ret = 0; - switch (mac_type) { - case TD3: - step2_buf2[5] = 0x38; - break; - case TH3: - case TH4: - case TD4: - case TD4_X9: - case TD4_X9_8: - step2_buf2[5] = 0x40; - break; - default: - ret = -1; - break; - } - return ret; +static int mac_bsc_init(struct i2c_client *client) +{ + int ret, mac_id; + uint32_t reg_value; + + ret = get_mac_reg(client, MAC_ID_REG, ®_value); + if (ret < 0) { + WB_MAC_BSC_ERROR("Get MAC ID failed, reg_addr: 0x%x, ret = %d\n", + MAC_ID_REG, ret); + return ret; + } + + WB_MAC_BSC_DEBUG("Get MAC ID success, reg_addr: 0x%x, value: 0x%x \n", + MAC_ID_REG, reg_value); + mac_id = reg_value & 0xffff; + return mac_id; } -static int mac_probe(struct i2c_client *client, const struct i2c_device_id *id) +static int find_mac_config(int type, int *index) { - struct mac_data *data; - int mac_type; - int ret; + int i, size; - mac_type = id->driver_data; - mac_pcie_id = mac_type; - if (init_bcs_command(mac_type) < 0) { - DBG_ERROR("mactype[%x] not support \n", mac_type); + size = ARRAY_SIZE(mac_temp_conf); + for (i = 0; i < size; i++) { + if (mac_temp_conf[i].mac_id == type) { + *index = i; + return 0; + } + } + return -1; +} + +static int mac_bsc_config_check(dev_params_t *dev_params) +{ + i2c_op_t *last_op; + i2c_op_t *err_op; + i2c_op_t *addr_op; + + /* vtmon_instances should not more than the MAC_BSC_MAX_TEMP_NUM */ + if ((dev_params->vtmon_instances > MAC_BSC_MAX_TEMP_NUM) || + (dev_params->vtmon_instances <= 0)) { + WB_MAC_BSC_ERROR("VTMON instance number %d more than the max number: %d\n", + dev_params->vtmon_instances, MAC_BSC_MAX_TEMP_NUM); return -1; - }; + } - if (mac_type == TD4) { - ret = mac_bsc_init(client); - if (ret < 0) { - DBG_ERROR("mac_bsc_init failed, ret = %d\n", ret); + /* vtmon read operation steps should not more than the MAC_BSC_MAX_READ_REG_STEP */ + if ((dev_params->vtmon_read_ops > MAC_BSC_MAX_READ_REG_STEP) || + (dev_params->vtmon_read_ops <=0)) { + WB_MAC_BSC_ERROR("VTMON read ops number %d more than the max step: %d\n", + dev_params->vtmon_read_ops, MAC_BSC_MAX_READ_REG_STEP); + return -1; + } + + /* the last operation must be I2C_READ to get temperature register value */ + last_op = &dev_params->vtmon_read[dev_params->vtmon_read_ops - 1]; + if (last_op->op != I2C_READ) { + WB_MAC_BSC_ERROR("VTMON read ops config error, last operation not I2C_READ, last step: %d, op_code: %d\n", + dev_params->vtmon_read_ops - 1, last_op->op); + return -1; + } + + /* the address operation steps should not more than the vtmon_read_ops and not the last step */ + if ((dev_params->sbus_addr_op >= (dev_params->vtmon_read_ops - 1)) || + (dev_params->sbus_addr_op < 0)) { + WB_MAC_BSC_ERROR("VTMON addr op step invalid, index %d, read ops: %d\n", + dev_params->sbus_addr_op, dev_params->vtmon_read_ops); + return -1; + } + + /* the address operation must be I2C_WRITE to set temperature register address */ + addr_op = &dev_params->vtmon_read[dev_params->sbus_addr_op]; + if (addr_op->op != I2C_WRITE) { + WB_MAC_BSC_ERROR("VTMON addr op config error, addr operation not I2C_WRITE, addr op step: %d, op_code: %d\n", + dev_params->sbus_addr_op, addr_op->op); + return -1; + } + + /* the error status operation steps should not more than the vtmon_read_ops and not the last step */ + if (dev_params->sbus_error_op >= (dev_params->vtmon_read_ops - 1)) { + WB_MAC_BSC_ERROR("VTMON error op step invalid, index %d, read ops: %d\n", + dev_params->sbus_error_op, dev_params->vtmon_read_ops); + return -1; + } + + /* if error status operation exist, it must be I2C_READ to get error status register */ + if (dev_params->sbus_error_op >=0) { + err_op = &dev_params->vtmon_read[dev_params->sbus_error_op]; + if (err_op->op != I2C_READ) { + WB_MAC_BSC_ERROR("VTMON error op config error, error operation not I2C_READ, error op step: %d, op_code: %d\n", + dev_params->sbus_error_op, err_op->op); return -1; } - mac_type = ret; - mac_pcie_id = mac_type; + } + WB_MAC_BSC_DEBUG("dev_params check ok, instance number: %d, read_ops: %d, addr_op: %d, error_op: %d\n", + dev_params->vtmon_instances, dev_params->vtmon_read_ops, + dev_params->sbus_addr_op, dev_params->sbus_error_op); + return 0; +} + +static int mac_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct mac_data *data; + int ret, mac_id, index; + + WB_MAC_BSC_DEBUG("=========mac_probe(%d-%04x)===========\n", + client->adapter->nr, client->addr); + + if (!client->adapter->algo->master_xfer) { + dev_err(&client->adapter->dev, "I2C level transfers not supported\n"); + return -EOPNOTSUPP; } - DBG_DEBUG("=========mac_probe(%x)===========\n",client->addr); - DBG_DEBUG("mac_type: %x\n", mac_type); data = devm_kzalloc(&client->dev, sizeof(struct mac_data), GFP_KERNEL); if (!data) { + dev_err(&client->dev, "Failed to devm_kzalloc.\n"); return -ENOMEM; } data->client = client; i2c_set_clientdata(client, data); - mutex_init(&data->update_lock); + mac_id = id->driver_data; + ret = find_mac_config(mac_id, &index); + if (ret < 0) { + dev_err(&client->dev, "Failed to find mac config, mac id from driver_data: 0x%x\n", mac_id); + return -EINVAL; + } + data->dev_param = mac_temp_conf[index]; + ret = mac_bsc_config_check(&data->dev_param); + if (ret < 0) { + dev_err(&client->dev, "Invalid config parameter, mac id: 0x%x, config index: %d\n", + mac_id, index); + return -EINVAL; + } + + mac_bsc_setup(client); + + if (mac_id == TD4) { + ret = mac_bsc_init(client); + if (ret < 0) { + dev_err(&client->dev, "Failed to get mac id, ret: %d\n", ret); + return -EIO; + } + mac_id = ret; + ret = find_mac_config(mac_id, &index); + if (ret < 0) { + dev_err(&client->dev, "Failed to find mac config, mac id from chip: 0x%x\n", mac_id); + return -EINVAL; + } + data->dev_param = mac_temp_conf[index]; + ret = mac_bsc_config_check(&data->dev_param); + if (ret < 0) { + dev_err(&client->dev, "Invalid config parameter, mac id: 0x%x, config index: %d\n", + mac_id, index); + return -EINVAL; + } + } + + WB_MAC_BSC_DEBUG("mac_id: 0x%x, config index: %d\n", mac_id, index); + + mutex_init(&data->update_lock); data->hwmon_dev = hwmon_device_register_with_groups(&client->dev, client->name, data, mac_hwmon_groups); - if (IS_ERR(data->hwmon_dev)) { + if (IS_ERR(data->hwmon_dev)) { + dev_err(&client->dev, "Failed to register mac bsc hwmon\n"); return PTR_ERR(data->hwmon_dev); } + dev_info(&client->dev, "Register mac bsc %x with %d vtmon instance number success\n", + mac_id, data->dev_param.vtmon_instances); return 0; } -static int mac_remove(struct i2c_client *client) +static void mac_remove(struct i2c_client *client) { struct mac_data *data = i2c_get_clientdata(client); + hwmon_device_unregister(data->hwmon_dev); - return 0; + return; } -static const struct i2c_device_id mac_id[] = { +static const struct i2c_device_id mac_id_table[] = { { "wb_mac_bsc_td3", TD3 }, + { "wb_mac_bsc_td3_x2", TD3_X2 }, { "wb_mac_bsc_td4", TD4 }, { "wb_mac_bsc_th3", TH3 }, { "wb_mac_bsc_th4", TH4 }, {} }; -MODULE_DEVICE_TABLE(i2c, mac_id); +MODULE_DEVICE_TABLE(i2c, mac_id_table); static struct i2c_driver wb_mac_bsc_driver = { .driver = { @@ -650,7 +857,7 @@ static struct i2c_driver wb_mac_bsc_driver = { }, .probe = mac_probe, .remove = mac_remove, - .id_table = mac_id, + .id_table = mac_id_table, }; module_i2c_driver(wb_mac_bsc_driver); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c index c09162368ad0..9a55fcdec97e 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_optoe.c @@ -792,7 +792,7 @@ static ssize_t optoe_bin_write(struct file *filp, struct kobject *kobj, return optoe_read_write(optoe, buf, off, count, OPTOE_WRITE_OP); } -static int optoe_remove(struct i2c_client *client) +static void optoe_remove(struct i2c_client *client) { struct optoe_data *optoe; int i; @@ -810,7 +810,7 @@ static int optoe_remove(struct i2c_client *client) kfree(optoe->writebuf); kfree(optoe); - return 0; + return; } static ssize_t show_dev_class(struct device *dev, diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c index 757c100e4738..093d070fd429 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.c @@ -25,6 +25,9 @@ #define PCIE_BUS_WIDTH_2 (2) #define PCIE_BUS_WIDTH_4 (4) +#define KERNEL_SPASE (0) +#define USER_SPASE (1) + static int g_pcie_dev_debug = 0; static int g_pcie_dev_error = 0; @@ -60,6 +63,8 @@ typedef struct wb_pci_dev_s { uint32_t bar_len; uint32_t bar_flag; uint32_t bus_width; + uint32_t check_pci_id; + uint32_t pci_id; struct miscdevice misc; void (*setreg)(struct wb_pci_dev_s *wb_pci_dev, int reg, u32 value); u32 (*getreg)(struct wb_pci_dev_s *wb_pci_dev, int reg); @@ -216,7 +221,7 @@ static int pci_dev_read_tmp(wb_pci_dev_t *wb_pci_dev, uint32_t offset, uint8_t * return count; } -static ssize_t pci_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +static ssize_t pci_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset, int flag) { wb_pci_dev_t *wb_pci_dev; int ret, read_len; @@ -244,7 +249,8 @@ static ssize_t pci_dev_read(struct file *file, char __user *buf, size_t count, l PCIE_DEV_DEBUG_ERROR("pci_dev_read_tmp failed, ret:%d.\n", read_len); return read_len; } - if (access_ok(buf, read_len)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { PCIE_DEV_DEBUG_VERBOSE("user space read, buf: %p, offset: %lld, read count %lu.\n", buf, *offset, count); if (copy_to_user(buf, buf_tmp, read_len)) { @@ -261,13 +267,23 @@ static ssize_t pci_dev_read(struct file *file, char __user *buf, size_t count, l return ret; } +static ssize_t pci_dev_read_user(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + PCIE_DEV_DEBUG_VERBOSE("pci_dev_read_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = pci_dev_read(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t pci_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) { int ret; PCIE_DEV_DEBUG_VERBOSE("pci_dev_read_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, to->count, iocb->ki_pos); - ret = pci_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + ret = pci_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } @@ -307,7 +323,7 @@ static int pci_dev_write_tmp(wb_pci_dev_t *wb_pci_dev, uint32_t offset, uint8_t } static ssize_t pci_dev_write(struct file *file, const char __user *buf, size_t count, - loff_t *offset) + loff_t *offset, int flag) { wb_pci_dev_t *wb_pci_dev; u8 buf_tmp[PCI_RDWR_MAX_LEN]; @@ -330,7 +346,8 @@ static ssize_t pci_dev_write(struct file *file, const char __user *buf, size_t c } mem_clear(buf_tmp, sizeof(buf_tmp)); - if (access_ok(buf, count)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { PCIE_DEV_DEBUG_VERBOSE("user space write, buf: %p, offset: %lld, write count %lu.\n", buf, *offset, count); if (copy_from_user(buf_tmp, buf, count)) { @@ -353,13 +370,23 @@ static ssize_t pci_dev_write(struct file *file, const char __user *buf, size_t c return write_len; } +static ssize_t pci_dev_write_user(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + PCIE_DEV_DEBUG_VERBOSE("pci_dev_write_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = pci_dev_write(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t pci_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) { int ret; PCIE_DEV_DEBUG_VERBOSE("pci_dev_write_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, from->count, iocb->ki_pos); - ret = pci_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + ret = pci_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } @@ -464,6 +491,8 @@ static long pci_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg static const struct file_operations pcie_dev_fops = { .owner = THIS_MODULE, .llseek = pci_dev_llseek, + .read = pci_dev_read_user, + .write = pci_dev_write_user, .read_iter = pci_dev_read_iter, .write_iter = pci_dev_write_iter, .unlocked_ioctl = pci_dev_ioctl, @@ -587,6 +616,7 @@ static int pci_setup_bars(wb_pci_dev_t *wb_pci_dev, struct pci_dev *dev) static int pci_dev_probe(struct platform_device *pdev) { int ret, devfn; + uint32_t pci_id; wb_pci_dev_t *wb_pci_dev; struct pci_dev *pci_dev; struct miscdevice *misc; @@ -622,12 +652,20 @@ static int pci_dev_probe(struct platform_device *pdev) ret += of_property_read_u32(pdev->dev.of_node, "upg_flash_base", &firmware_upg->upg_flash_base); if (ret != 0) { PCIE_DEV_DEBUG_VERBOSE("dts don't adaptive fpga upg related, ret:%d.\n", ret); - firmware_upg->upg_ctrl_base = -1; + firmware_upg->upg_ctrl_base = -1; firmware_upg->upg_flash_base = -1; } else { PCIE_DEV_DEBUG_VERBOSE("upg_ctrl_base:0x%04x, upg_flash_base:0x%02x.\n", firmware_upg->upg_ctrl_base, firmware_upg->upg_flash_base); } + ret = of_property_read_u32(pdev->dev.of_node, "check_pci_id", &wb_pci_dev->check_pci_id); + if (ret == 0) { + ret = of_property_read_u32(pdev->dev.of_node, "pci_id", &wb_pci_dev->pci_id); + if (ret != 0) { + dev_err(&pdev->dev, "Failed to get pci_id, ret:%d.\n", ret); + return -ENXIO; + } + } } else { if (pdev->dev.platform_data == NULL) { dev_err(&pdev->dev, "Failed to get platform data config.\n"); @@ -641,6 +679,8 @@ static int pci_dev_probe(struct platform_device *pdev) wb_pci_dev->fn = pci_dev_device->pci_fn; wb_pci_dev->bar = pci_dev_device->pci_bar; wb_pci_dev->bus_width = pci_dev_device->bus_width; + wb_pci_dev->check_pci_id = pci_dev_device->check_pci_id; + wb_pci_dev->pci_id = pci_dev_device->pci_id; firmware_upg->upg_ctrl_base = pci_dev_device->upg_ctrl_base; firmware_upg->upg_flash_base = pci_dev_device->upg_flash_base; PCIE_DEV_DEBUG_VERBOSE("upg_ctrl_base:0x%04x, upg_flash_base:0x%02x.\n", @@ -658,6 +698,15 @@ static int pci_dev_probe(struct platform_device *pdev) wb_pci_dev->domain, wb_pci_dev->bus, devfn); return -ENXIO; } + if (wb_pci_dev->check_pci_id == 1) { + pci_id = (pci_dev->vendor << 16) | pci_dev->device; + if (wb_pci_dev->pci_id != pci_id) { + dev_err(&pdev->dev, "Failed to check pci id, except: 0x%x, really: 0x%x\n", + wb_pci_dev->pci_id, pci_id); + return -ENXIO; + } + PCIE_DEV_DEBUG_VERBOSE("pci id check ok, pci_id: 0x%x", pci_id); + } ret = pci_setup_bars(wb_pci_dev, pci_dev); if (ret != 0) { dev_err(&pdev->dev, "Failed to get pci bar address.\n"); diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h index 9ba0f3b457ea..33da8d475f91 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_pcie_dev.h @@ -18,6 +18,8 @@ typedef struct pci_dev_device_s { int pci_fn; int pci_bar; int bus_width; + uint32_t check_pci_id; + uint32_t pci_id; int upg_ctrl_base; int upg_flash_base; int device_flag; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c index 3fe1c4aa10f5..092c99da2ad8 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_platform_i2c_dev.c @@ -134,7 +134,7 @@ static int transfer_read(struct platform_i2c_dev_info *i2c_dev, u8 *buf, loff_t I2C_SMBUS_READ, offset, I2C_SMBUS_I2C_BLOCK_DATA, &data); if (ret) { - I2C_DEV_DEBUG_ERROR("smbus_xfer read block error, ret = %d\r\n", ret); + I2C_DEV_DEBUG_ERROR("smbus_xfer read block error, ret = %d\n", ret); ret = -EFAULT; goto error_exit; } @@ -151,7 +151,7 @@ static int transfer_read(struct platform_i2c_dev_info *i2c_dev, u8 *buf, loff_t if (!ret) { buf[j] = data.byte; } else { - I2C_DEV_DEBUG_ERROR("smbus_xfer read byte error, ret = %d\r\n", ret); + I2C_DEV_DEBUG_ERROR("smbus_xfer read byte error, ret = %d\n", ret); ret = -EFAULT; goto error_exit; } @@ -159,7 +159,7 @@ static int transfer_read(struct platform_i2c_dev_info *i2c_dev, u8 *buf, loff_t } } } else { - I2C_DEV_DEBUG_ERROR("smbus_xfer not support addr_bus_width = %d\r\n", i2c_dev->addr_bus_width); + I2C_DEV_DEBUG_ERROR("smbus_xfer not support addr_bus_width = %d\n", i2c_dev->addr_bus_width); ret = -EINVAL; goto error_exit; } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c index b569ace32526..d70424afb0e7 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_dev.c @@ -32,6 +32,9 @@ #define OP_READ (0x3) #define OP_WRITE (0x2) +#define KERNEL_SPASE (0) +#define USER_SPASE (1) + static int g_spi_dev_debug = 0; static int g_spi_dev_error = 0; @@ -312,7 +315,7 @@ static int device_write(struct spi_dev_info *spi_dev, uint32_t offset, uint8_t * return count; } -static ssize_t spi_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset) +static ssize_t spi_dev_read(struct file *file, char __user *buf, size_t count, loff_t *offset, int flag) { u8 val[MAX_RW_LEN]; int ret, read_len; @@ -342,7 +345,8 @@ static ssize_t spi_dev_read(struct file *file, char __user *buf, size_t count, l return read_len; } - if (access_ok(buf, read_len)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { SPI_DEV_DEBUG("user space read, buf: %p, offset: %lld, read count %lu.\n", buf, *offset, count); if (copy_to_user(buf, val, read_len)) { @@ -360,18 +364,28 @@ static ssize_t spi_dev_read(struct file *file, char __user *buf, size_t count, l return ret; } +static ssize_t spi_dev_read_user(struct file *file, char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + SPI_DEV_DEBUG("spi_dev_read_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = spi_dev_read(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t spi_dev_read_iter(struct kiocb *iocb, struct iov_iter *to) { int ret; SPI_DEV_DEBUG("spi_dev_read_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, to->count, iocb->ki_pos); - ret = spi_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos); + ret = spi_dev_read(iocb->ki_filp, to->kvec->iov_base, to->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } static ssize_t spi_dev_write(struct file *file, const char __user *buf, - size_t count, loff_t *offset) + size_t count, loff_t *offset, int flag) { u8 val[MAX_RW_LEN]; int write_len; @@ -394,7 +408,8 @@ static ssize_t spi_dev_write(struct file *file, const char __user *buf, } mem_clear(val, sizeof(val)); - if (access_ok(buf, count)) { + /* check flag is user spase or kernel spase */ + if (flag == USER_SPASE) { SPI_DEV_DEBUG("user space write, buf: %p, offset: %lld, write count %lu.\n", buf, *offset, count); if (copy_from_user(val, buf, count)) { @@ -418,13 +433,23 @@ static ssize_t spi_dev_write(struct file *file, const char __user *buf, return write_len; } +static ssize_t spi_dev_write_user(struct file *file, const char __user *buf, size_t count, loff_t *offset) +{ + int ret; + + SPI_DEV_DEBUG("spi_dev_write_user, file: %p, count: %lu, offset: %lld\n", + file, count, *offset); + ret = spi_dev_write(file, buf, count, offset, USER_SPASE); + return ret; +} + static ssize_t spi_dev_write_iter(struct kiocb *iocb, struct iov_iter *from) { int ret; SPI_DEV_DEBUG("spi_dev_write_iter, file: %p, count: %lu, offset: %lld\n", iocb->ki_filp, from->count, iocb->ki_pos); - ret = spi_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos); + ret = spi_dev_write(iocb->ki_filp, from->kvec->iov_base, from->count, &iocb->ki_pos, KERNEL_SPASE); return ret; } @@ -474,6 +499,8 @@ static loff_t spi_dev_llseek(struct file *file, loff_t offset, int origin) static const struct file_operations spi_dev_fops = { .owner = THIS_MODULE, .llseek = spi_dev_llseek, + .read = spi_dev_read_user, + .write = spi_dev_write_user, .read_iter = spi_dev_read_iter, .write_iter = spi_dev_write_iter, .unlocked_ioctl = spi_dev_ioctl, @@ -648,7 +675,7 @@ static int spi_dev_probe(struct spi_device *spi) return 0; } -static int spi_dev_remove(struct spi_device *spi) +static void spi_dev_remove(struct spi_device *spi) { int i; @@ -658,7 +685,7 @@ static int spi_dev_remove(struct spi_device *spi) spi_dev_arry[i] = NULL; } } - return 0; + return; } static const struct of_device_id spi_dev_of_match[] = { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c index e70c97b1af9d..b073dac08a8a 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_gpio_device.c @@ -44,6 +44,10 @@ module_param(g_wb_spi_gpio_device_error, int, S_IRUGO | S_IWUSR); static char gpiod_lookup_table_devid[64]; +static char *gpio_chip_name = NULL; +module_param(gpio_chip_name, charp, 0644); +MODULE_PARM_DESC(str_var, "A string variable for GPIO controller"); + #define WB_SPI_GPIO_DEVICE_VERBOSE(fmt, args...) do { \ if (g_wb_spi_gpio_device_debug) { \ printk(KERN_INFO "[WB_SPI_GPIO_DEVICE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ @@ -122,6 +126,12 @@ static int __init wb_spi_gpio_device_init(void) wb_spi_gpio_table.table[1].chip_hwnum = mosi; wb_spi_gpio_table.table[2].chip_hwnum = miso; wb_spi_gpio_table.table[3].chip_hwnum = cs; + if (gpio_chip_name) { + wb_spi_gpio_table.table[0].key = gpio_chip_name; + wb_spi_gpio_table.table[1].key = gpio_chip_name; + wb_spi_gpio_table.table[2].key = gpio_chip_name; + wb_spi_gpio_table.table[3].key = gpio_chip_name; + } wb_spi_gpio_table_devid_name_set(); WB_SPI_GPIO_DEVICE_VERBOSE("spi gpi device table bus[%d] dev id[%s]\n", bus, wb_spi_gpio_table.dev_id); for (p = &wb_spi_gpio_table.table[0]; p->key; p++) { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c index a709427c5b73..5cf3538d88fa 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_spi_ocores.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "wb_spi_ocores.h" @@ -125,6 +126,12 @@ static int oc_spi_file_read(const char *path, uint32_t pos, uint8_t *val, size_t struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDONLY, 0); if (IS_ERR(filp)) { SPI_OC_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -133,9 +140,10 @@ static int oc_spi_file_read(const char *path, uint32_t pos, uint8_t *val, size_t } tmp_pos = (loff_t)pos; - ret = kernel_read(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &tmp_pos, 0); if (ret < 0) { - SPI_OC_ERROR("kernel_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + SPI_OC_ERROR("vfs_iter_read failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -153,11 +161,16 @@ static int oc_spi_file_read(const char *path, uint32_t pos, uint8_t *val, size_t static int oc_spi_file_write(const char *path, uint32_t pos, uint8_t *val, size_t size) { - int ret; struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { SPI_OC_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -166,9 +179,10 @@ static int oc_spi_file_write(const char *path, uint32_t pos, uint8_t *val, size_ } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - SPI_OC_ERROR("kernel_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); + SPI_OC_ERROR("vfs_iter_write failed, path=%s, addr=%d, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c index 8c02d981843a..aa50ef848dde 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "wb_wdt.h" @@ -63,6 +64,7 @@ module_param(g_wb_wdt_error, int, S_IRUGO | S_IWUSR); enum { HW_ALGO_TOGGLE, HW_ALGO_LEVEL, + HW_ALGO_EIGENVALUES, }; enum { @@ -72,7 +74,6 @@ enum { }; typedef struct wb_wdt_priv_s { - struct task_struct *thread; struct hrtimer hrtimer; ktime_t m_kt; @@ -89,7 +90,13 @@ typedef struct wb_wdt_priv_s { uint32_t timeleft_cfg_reg; uint32_t hw_margin; uint32_t feed_time; + uint8_t timer_accuracy_reg_flag; + uint32_t timer_accuracy_reg; + uint8_t timer_accuracy_reg_val; uint32_t timer_accuracy; + uint8_t timer_update_reg_flag; + uint32_t timer_update_reg; + uint8_t timer_update_reg_val; gpio_wdt_info_t gpio_wdt; logic_wdt_info_t logic_wdt; struct device *dev; @@ -105,6 +112,12 @@ static int wdt_file_read(const char *path, uint32_t pos, uint8_t *val, size_t si struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDONLY, 0); if (IS_ERR(filp)) { WDT_ERROR("read open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -113,9 +126,10 @@ static int wdt_file_read(const char *path, uint32_t pos, uint8_t *val, size_t si } tmp_pos = (loff_t)pos; - ret = kernel_read(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_DEST, &iov, 1, iov.iov_len); + ret = vfs_iter_read(filp, &iter, &tmp_pos, 0); if (ret < 0) { - WDT_ERROR("kernel_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + WDT_ERROR("vfs_iter_read failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -137,6 +151,12 @@ static int wdt_file_write(const char *path, uint32_t pos, uint8_t *val, size_t s struct file *filp; loff_t tmp_pos; + struct kvec iov = { + .iov_base = val, + .iov_len = min_t(size_t, size, MAX_RW_COUNT), + }; + struct iov_iter iter; + filp = filp_open(path, O_RDWR, 777); if (IS_ERR(filp)) { WDT_ERROR("write open failed errno = %ld\r\n", -PTR_ERR(filp)); @@ -145,9 +165,10 @@ static int wdt_file_write(const char *path, uint32_t pos, uint8_t *val, size_t s } tmp_pos = (loff_t)pos; - ret = kernel_write(filp, val, size, &tmp_pos); + iov_iter_kvec(&iter, ITER_SOURCE, &iov, 1, iov.iov_len); + ret = vfs_iter_write(filp, &iter, &tmp_pos, 0); if (ret < 0) { - WDT_ERROR("kernel_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); + WDT_ERROR("vfs_iter_write failed, path=%s, addr=0x%x, size=%ld, ret=%d\r\n", path, pos, size, ret); goto exit; } @@ -297,7 +318,7 @@ static void wdt_hwping(wb_wdt_priv_t *priv) WDT_ERROR("logic toggle wdt write failed.ret = %d\n", ret); } WDT_VERBOSE("logic toggle wdt work.\n"); - break; + break; case HW_ALGO_LEVEL: tmp_val = !logic_wdt->active_val; ret = wb_wdt_write(logic_wdt->logic_func_mode, logic_wdt->feed_dev_name, @@ -313,6 +334,17 @@ static void wdt_hwping(wb_wdt_priv_t *priv) } WDT_VERBOSE("logic level wdt work.\n"); break; + case HW_ALGO_EIGENVALUES: + ret = wb_wdt_write(logic_wdt->logic_func_mode, logic_wdt->feed_dev_name, + logic_wdt->feed_reg, &logic_wdt->active_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("logic eigenvalues wdt write failed, path: %s, mode: %d, reg: 0x%x, val: 0x%x, ret: %d\n", + logic_wdt->feed_dev_name, logic_wdt->logic_func_mode, logic_wdt->feed_reg, + logic_wdt->active_val, ret); + } + WDT_VERBOSE("logic eigenvalues wdt work, path: %s, mode: %d, reg: 0x%x, val: 0x%x\n", + logic_wdt->feed_dev_name, logic_wdt->logic_func_mode, logic_wdt->feed_reg, logic_wdt->active_val); + break; } } return; @@ -359,6 +391,16 @@ static int thread_timer_cfg(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) return -EINVAL; } + if (priv->timer_accuracy_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_accuracy_reg, &priv->timer_accuracy_reg_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set timer_accuracy_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_accuracy_reg, priv->timer_accuracy_reg_val, ret); + return ret; + } + } + set_time_val = hw_margin / accuracy; ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); @@ -366,6 +408,17 @@ static int thread_timer_cfg(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) dev_err(dev, "set wdt thread timer reg error.\n"); return ret; } + + if (priv->timer_update_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_update_reg, &priv->timer_update_reg_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set timer_update_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_update_reg, priv->timer_update_reg_val, ret); + return ret; + } + } + return 0; } @@ -457,6 +510,16 @@ static int hrtimer_cfg(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) hrtimer_ns = (feed_time % MS_TO_S) * MS_TO_NS; set_time_val = hw_margin / accuracy; + if (priv->timer_accuracy_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_accuracy_reg, &priv->timer_accuracy_reg_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set timer_accuracy_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_accuracy_reg, priv->timer_accuracy_reg_val, ret); + return ret; + } + } + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); if (ret < 0) { @@ -464,6 +527,16 @@ static int hrtimer_cfg(wb_wdt_priv_t *priv, wb_wdt_device_t *wb_wdt_device) return ret; } + if (priv->timer_update_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_update_reg, &priv->timer_update_reg_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set timer_update_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_update_reg, priv->timer_update_reg_val, ret); + return ret; + } + } + priv->m_kt = ktime_set(hrtimer_s, hrtimer_ns); hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); hrtimer->function = hrtimer_hwping; @@ -529,6 +602,16 @@ static int wb_wdt_set_timeout(struct watchdog_device *wdd, unsigned int t) return -EINVAL; } + if (priv->timer_accuracy_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_accuracy_reg, &priv->timer_accuracy_reg_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("set timer_accuracy_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_accuracy_reg, priv->timer_accuracy_reg_val, ret); + return ret; + } + } + set_time_val = timeout_ms / accuracy; ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); @@ -536,6 +619,17 @@ static int wb_wdt_set_timeout(struct watchdog_device *wdd, unsigned int t) WDT_ERROR("set wdt timeout reg error, set_time_val:%u ret:%d\n", set_time_val, ret); return ret; } + + if (priv->timer_update_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_update_reg, &priv->timer_update_reg_val, ONE_BYTE); + if (ret < 0) { + WDT_ERROR("set timer_update_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_update_reg, priv->timer_update_reg_val, ret); + return ret; + } + } + wdd->timeout = t; return 0; @@ -590,6 +684,16 @@ static int watchdog_device_cfg(wb_wdt_priv_t *priv) return -ENXIO; } + if (priv->timer_accuracy_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_accuracy_reg, &priv->timer_accuracy_reg_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set timer_accuracy_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_accuracy_reg, priv->timer_accuracy_reg_val, ret); + return ret; + } + } + set_time_val = priv->hw_margin / priv->timer_accuracy; ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, priv->timeout_cfg_reg, &set_time_val, ONE_BYTE); @@ -598,6 +702,16 @@ static int watchdog_device_cfg(wb_wdt_priv_t *priv) return ret; } + if (priv->timer_update_reg_flag != 0) { + ret = wb_wdt_write(priv->priv_func_mode, priv->config_dev_name, + priv->timer_update_reg, &priv->timer_update_reg_val, ONE_BYTE); + if (ret < 0) { + dev_err(priv->dev, "set timer_update_reg error, reg_addr: 0x%x, value: 0x%x, ret: %d.\n", + priv->timer_update_reg, priv->timer_update_reg_val, ret); + return ret; + } + } + watchdog_set_drvdata(&priv->wdd, priv); priv->wdd.info = &wb_wdt_ident; @@ -844,6 +958,44 @@ static int wb_wdt_probe(struct platform_device *pdev) priv->timeleft_cfg_reg = priv->timeout_cfg_reg; of_property_read_u32(pdev->dev.of_node,"timeleft_cfg_reg", &priv->timeleft_cfg_reg); + + /* timer accuracy register is optional */ + ret = of_property_read_u8(pdev->dev.of_node,"timer_accuracy_reg_flag", &priv->timer_accuracy_reg_flag); + if (ret < 0) { + /* case: don't has timer_accuracy_reg */ + dev_dbg(&pdev->dev, "Failed to get property in dts: timer_accuracy_reg_flag.\n"); + priv->timer_accuracy_reg_flag = 0; + } else { + ret = of_property_read_u32(pdev->dev.of_node, "timer_accuracy_reg", &priv->timer_accuracy_reg); + if (ret < 0) { + dev_err(&pdev->dev, "Failed to get timer accuracy register address.\n"); + return -ENXIO; + } + ret = of_property_read_u8(pdev->dev.of_node, "timer_accuracy_reg_val", &priv->timer_accuracy_reg_val); + if (ret < 0) { + dev_err(&pdev->dev, "Failed to get timer accuracy register value.\n"); + return -ENXIO; + } + } + + /* timer update register is optional */ + ret = of_property_read_u8(pdev->dev.of_node,"timer_update_reg_flag", &priv->timer_update_reg_flag); + if (ret < 0) { + /* case: don't has timer_update_reg */ + dev_dbg(&pdev->dev, "Failed to get property in dts: timer_update_reg_flag.\n"); + priv->timer_update_reg_flag = 0; /* no timer update register */ + } else { + ret = of_property_read_u32(pdev->dev.of_node, "timer_update_reg", &priv->timer_update_reg); + if (ret < 0) { + dev_err(&pdev->dev, "Failed to get timer update register address.\n"); + return -ENXIO; + } + ret = of_property_read_u8(pdev->dev.of_node, "timer_update_reg_val", &priv->timer_update_reg_val); + if (ret < 0) { + dev_err(&pdev->dev, "Failed to get timer update register value.\n"); + return -ENXIO; + } + } } else { if (pdev->dev.platform_data == NULL) { dev_err(&pdev->dev, "Failed to get platform data config.\n"); @@ -864,12 +1016,20 @@ static int wb_wdt_probe(struct platform_device *pdev) priv->feed_wdt_type = wb_wdt_device->feed_wdt_type; priv->sysfs_index = wb_wdt_device->sysfs_index; priv->timeleft_cfg_reg = wb_wdt_device->timeleft_cfg_reg; + priv->timer_accuracy_reg_flag = wb_wdt_device->timer_accuracy_reg_flag; + priv->timer_accuracy_reg = wb_wdt_device->timer_accuracy_reg; + priv->timer_accuracy_reg_val = wb_wdt_device->timer_accuracy_reg_val; + priv->timer_update_reg_flag = wb_wdt_device->timer_update_reg_flag; + priv->timer_update_reg = wb_wdt_device->timer_update_reg; + priv->timer_update_reg_val = wb_wdt_device->timer_update_reg_val; } if (!strcmp(algo, "toggle")) { priv->hw_algo = HW_ALGO_TOGGLE; } else if (!strcmp(algo, "level")) { priv->hw_algo = HW_ALGO_LEVEL; + } else if (!strcmp(algo, "eigenvalues")) { + priv->hw_algo = HW_ALGO_EIGENVALUES; } else { dev_err(&pdev->dev, "hw_algo config error.must be toggle or level.\n"); return -EINVAL; @@ -877,8 +1037,12 @@ static int wb_wdt_probe(struct platform_device *pdev) WDT_VERBOSE("config_dev_name:%s, config_mode:%u, priv_func_mode:%u, enable_reg:0x%x, timeout_cfg_reg:0x%x\n", priv->config_dev_name, priv->config_mode, priv->priv_func_mode, priv->enable_reg, priv->timeout_cfg_reg); - WDT_VERBOSE("timeout_cfg_reg:0x%x, enable_val:%u, disable_val:%u, enable_mask:%u, hw_margin:%u, feed_wdt_type:%u\n", + WDT_VERBOSE("timeout_cfg_reg:0x%x, enable_val:0x%x, disable_val:0x%x, enable_mask:0x%x, hw_margin:%u, feed_wdt_type:%u\n", priv->timeleft_cfg_reg, priv->enable_val, priv->disable_val, priv->enable_mask, priv->hw_margin, priv->feed_wdt_type); + WDT_VERBOSE("timer_accuracy_reg_flag: %d, timer_accuracy_reg: 0x%x, timer_accuracy_reg_val: 0x%x, timer_accuracy: %d\n", + priv->timer_accuracy_reg_flag, priv->timer_accuracy_reg, priv->timer_accuracy_reg_val, priv->timer_accuracy); + WDT_VERBOSE("timer_update_reg_flag: %d, timer_update_reg: 0x%x, timer_update_reg_val: 0x%x\n", priv->timer_update_reg_flag, + priv->timer_update_reg, priv->timer_update_reg_val); priv->dev = &pdev->dev; if (priv->config_mode == GPIO_FEED_WDT_MODE) { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h index 10c30e13f94c..d45904ba32ea 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_wdt.h @@ -4,6 +4,7 @@ #include #define SYSFS_NO_CFG (0xff) +#define INVALID_REG_ADDR (0xffffffff) typedef struct gpio_wdt_info_s { int gpio; @@ -35,7 +36,13 @@ typedef struct wb_wdt_device_s { uint32_t timeleft_cfg_reg; uint32_t hw_margin; uint32_t feed_time; + uint8_t timer_accuracy_reg_flag; + uint32_t timer_accuracy_reg; + uint8_t timer_accuracy_reg_val; uint32_t timer_accuracy; + uint8_t timer_update_reg_flag; + uint32_t timer_update_reg; + uint8_t timer_update_reg_val; union { gpio_wdt_info_t gpio_wdt; logic_wdt_info_t logic_wdt; diff --git a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c index edc12d34b6e2..51c5b4143df8 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c +++ b/platform/broadcom/sonic-platform-modules-micas/common/modules/wb_xdpe132g5c.c @@ -325,12 +325,17 @@ static ssize_t xdpe_avs_vout_store(struct device *dev, struct device_attribute * long vout, vout_max, vout_min; client = to_i2c_client(dev); - ret = kstrtol(buf, 10, &vout); + ret = kstrtol(buf, 0, &vout); if (ret) { WB_XDPE_ERROR("%d-%04x: invalid value: %s \n", client->adapter->nr, client->addr, buf); return -EINVAL; } + if (vout <= 0) { + WB_XDPE_ERROR("%d-%04x: invalid value: %ld \n", client->adapter->nr, client->addr, vout); + return -EINVAL; + } + data = i2c_get_clientdata(client); vout_max = data->vout_max; vout_min = data->vout_min; @@ -534,7 +539,7 @@ static int xdpe132g5c_probe(struct i2c_client *client, const struct i2c_device_i return 0; } -static int xdpe132g5c_remove(struct i2c_client *client) +static void xdpe132g5c_remove(struct i2c_client *client) { struct xdpe_data *data; @@ -542,7 +547,7 @@ static int xdpe132g5c_remove(struct i2c_client *client) data = i2c_get_clientdata(client); hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&client->dev.kobj, &xdpe132g5c_sysfs_attrs_group); - return 0; + return; } static const struct i2c_device_id xdpe132g5c_id[] = { diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py b/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py index a0a2ccaac938..1f367133a89b 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/avscontrol.py @@ -164,7 +164,7 @@ def doAvsCtrol(avs_conf): ret, log = doAvsCtrol_single(avs_conf) if ret is True: return True, log - time.sleep(1) + time.sleep(10) return False, log diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/drv_update.py b/platform/broadcom/sonic-platform-modules-micas/common/script/drv_update.py new file mode 100755 index 000000000000..9de4911e8023 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/drv_update.py @@ -0,0 +1,152 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +import syslog +import os +import shutil +from platform_config import DRVIER_UPDATE_CONF +from platform_util import exec_os_cmd + + +DRV_UPDATE_DEBUG_FILE = "/etc/.drv_update_debug_flag" + +DRVUPDATEERROR = 1 +DRVUPDATEDEBUG = 2 +debuglevel = 0 + + +def drv_update_debug(s): + if DRVUPDATEDEBUG & debuglevel: + syslog.openlog("DRV_UPDATE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def drv_update_error(s): + if DRVUPDATEERROR & debuglevel: + syslog.openlog("DRV_UPDATE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + + +def drv_update_info(s): + syslog.openlog("DRV_UPDATE", syslog.LOG_PID) + syslog.syslog(syslog.LOG_LOCAL1 | syslog.LOG_NOTICE, s) + +def debug_init(): + global debuglevel + try: + with open(DRV_UPDATE_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + +def get_driver_md5sum(drv_path): + status, output = exec_os_cmd("md5sum %s" % drv_path) + if status or len(output) == 0: + return False, output + drv_md5 = output.strip().split(" ")[0] + return True, drv_md5 + + +def do_driver_replace(src_file, target_file): + # Backup target file + src_file_dir = os.path.dirname(src_file) + target_file_name = os.path.basename(target_file) + drv_update_debug("src_file: %s, src_file_dir: %s" % (src_file, src_file_dir)) + drv_update_debug("target_file: %s, target_file_name: %s" % (target_file, target_file_name)) + try: + shutil.copyfile(target_file, "%s/%s.bak" % (src_file_dir, target_file_name)) + shutil.copyfile(src_file, target_file) + return True + except Exception as e: + drv_update_error("do_driver_replace error, msg: %s" % str(e)) + return False + + +def doDrvUpdate(): + reboot_flag = DRVIER_UPDATE_CONF.get("reboot_flag", 0) + drv_list = DRVIER_UPDATE_CONF.get("drv_list", []) + err_cnt = 0 + update_initramfs_flag = 0 + # get kernel version + status, output = exec_os_cmd("uname -r") + if status or len(output) == 0: + drv_update_error("Failed to get kernel version, status: %s, log: %s" % (status, output)) + return + kversion = output.strip() + drv_update_debug("kernel version: %s" % kversion) + for item in drv_list: + try: + source_drv = item.get("source") + target_drv = item.get("target") + judge_flag = item.get("judge_flag") + if source_drv is None or target_drv is None or judge_flag is None: + drv_update_error("driver update config error, source_drv: %s, target_drv: %s, judge_file: %s" % (source_drv, target_drv, judge_flag)) + err_cnt += 1 + continue + drv_update_debug("source_drv: %s, target_drv: %s, judge_flag: %s" % (source_drv, target_drv, judge_flag)) + + # Check if the current driver is expected + if os.path.exists(judge_flag): + drv_update_debug("The current driver is expected, do nothing") + continue + + # get source driver file path + source_drv_path = "/lib/modules/%s/%s" % (kversion, source_drv) + drv_update_debug("source driver: %s, file path: %s" % (source_drv, source_drv_path)) + + # get target driver file path + target_drv_path = "/lib/modules/%s/%s" % (kversion, target_drv) + drv_update_debug("target driver: %s, file path: %s" % (target_drv, target_drv_path)) + + # get source driver md5sum + status, source_drv_md5 = get_driver_md5sum(source_drv_path) + if status is False: + msg = "get %s md5sum failed msg: %s" % (source_drv_path, source_drv_md5) + drv_update_error(msg) + err_cnt += 1 + continue + drv_update_debug("source driver file path: %s, md5sum: %s" % (source_drv_path, source_drv_md5)) + + # get target driver md5sum + status, target_drv_md5 = get_driver_md5sum(target_drv_path) + if status is False: + msg = "get %s md5sum failed msg: %s" % (target_drv_path, target_drv_md5) + drv_update_error(msg) + err_cnt += 1 + continue + drv_update_debug("target driver file path: %s, md5sum: %s" % (target_drv_path, target_drv_md5)) + + if source_drv_md5 != target_drv_md5: + drv_update_debug("source_drv_md5 not equal to target_drv_md5, try to use source driver replace target driver") + status = do_driver_replace(source_drv_path, target_drv_path) + if status is False: + err_cnt += 1 + continue + else: + drv_update_debug("source_drv_md5 equal to target_drv_md5, do nothing") + + drv_update_debug("Driver replacement completed, set update_initramfs_flag") + update_initramfs_flag = 1 + + except Exception as e: + err_cnt += 1 + drv_update_error(str(e)) + + if update_initramfs_flag == 1: + drv_update_debug("starting to update initramfs") + os.system("update-initramfs -u") + drv_update_debug("update initramfs finish") + + os.system("sync") + if update_initramfs_flag == 1 and err_cnt == 0 and reboot_flag == 1: + reboot_log = "%DRV_UPDATE-5-REBOOT: Update initramfs is completed, restarting the system to take effect." + reboot_log_cmd = "echo '%s' > /dev/ttyS0" % reboot_log + exec_os_cmd(reboot_log_cmd) + drv_update_info(reboot_log) + os.system("/sbin/reboot") + return + +if __name__ == '__main__': + debug_init() + doDrvUpdate() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py b/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py index 29d18e7b2688..89d3e72335ff 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/generate_airflow.py @@ -21,6 +21,7 @@ from platform_config import AIR_FLOW_CONF, AIRFLOW_RESULT_FILE from platform_util import dev_file_read, byteTostr from eepromutil.fru import ipmifru +from eepromutil.cust_fru import CustFru from eepromutil.fantlv import fan_tlv @@ -84,6 +85,21 @@ def get_model_fru(device, eeprom): except Exception as e: return False, str(e) +def get_model_custfru(device, eeprom): + try: + custfru = CustFru() + custfru.decode(eeprom) + dev_name = device.get("name") + field = device.get("field") + model = getattr(custfru, field, None) + if model is None: + msg = "%s get model error, field: %s" % (dev_name, field) + return False, msg + airflow_debug("%s get model success, model: %s" % (dev_name, model)) + return True, model + except Exception as e: + return False, str(e) + def get_model_fantlv(device, eeprom): try: @@ -107,7 +123,7 @@ def get_model_fantlv(device, eeprom): def get_device_modele(device): e2_type = device.get("e2_type") dev_name = device.get("name") - support_e2_type = ("fru", "fantlv") + support_e2_type = ("fru", "fantlv", "custfru") if e2_type not in support_e2_type: msg = "%s unsupport e2_type: %s" % (dev_name, e2_type) return False, msg @@ -122,6 +138,8 @@ def get_device_modele(device): binval = byteTostr(binval_bytes) if e2_type == "fru": return get_model_fru(device, binval) + if e2_type == "custfru": + return get_model_custfru(device, binval) return get_model_fantlv(device, binval) @@ -134,7 +152,7 @@ def get_board_air_flow(fan_intake_num, fan_exhaust_num, psu_intake_num, psu_exha return "N/A" if fan_intake_num > fan_exhaust_num: - airflow_debug("fan intake number %d more than fan exhaust number %s, set board air flow: intake") + airflow_debug("fan intake number more than fan exhaust number, set board air flow: intake") return "intake" if fan_intake_num < fan_exhaust_num: diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py index 7722b111f944..63acf84b7f3e 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/hal_fanctrl.py @@ -260,6 +260,14 @@ def __init__(self): self.__deal_fan_error_conf = self.__fancontrol_para.get("deal_fan_error_conf", {}) self.__deal_fan_error_default_countdown = self.__deal_fan_error_conf.get("countdown", 0) + self.__deal_all_fan_error_method_flag = self.__fancontrol_para.get("deal_all_fan_error_method_flag", 0) + if self.__deal_all_fan_error_method_flag: + self.__all_fan_error_switch_temp_critical_temp = self.__fancontrol_para.get("all_fan_error_switch_temp_critical_temp", 100) + self.__all_fan_error_recover_log = self.__fancontrol_para.get("all_fan_error_recover_log", "Reboot the system.") + self.__all_fan_error_recover_cmd = self.__fancontrol_para.get("all_fan_error_recover_cmd", "/sbin/reboot") + self.__all_fan_error_check_crit_reboot_num = self.__fancontrol_para.get("all_fan_error_check_crit_reboot_num", 3) + self.__all_fan_error_check_crit_sleep_time = self.__fancontrol_para.get("all_fan_error_check_crit_sleep_time", 20) + self.__warning_countdown = 0 # temp warning flag for normal fancontrol self.__critical_countdown = 0 # temp critical flag for normal fancontrol self.__emergency_countdown = 0 # temp emergency flag for normal fancontrol @@ -574,6 +582,46 @@ def checkEmergReboot(self): fancontrol_error("%%policy: checkEmergReboot failed") fancontrol_error(str(e)) + def all_fan_error_checkTempRebootCrit(self): + try: + temp_dict = dict(self.__temps_threshold_config) + tmp = temp_dict.get(SWITCH_TEMP) + switch_temp_value = tmp['temp'] + if switch_temp_value >= self.__all_fan_error_switch_temp_critical_temp: + fancontrol_debug("all fan error, switch temp[%d] is over critical[%d]." + % (switch_temp_value, self.__all_fan_error_switch_temp_critical_temp)) + return True + except Exception as e: + fancontrol_error("%%policy: all_fan_error_checkTempRebootCrit failed") + fancontrol_error(str(e)) + return False + + def all_fan_error_checkCritReboot(self): + try: + reboot_flag = self.all_fan_error_checkTempRebootCrit() + if reboot_flag > 0: + self.set_all_fan_speed_pwm(self.__max_pwm) + for i in range(self.__all_fan_error_check_crit_reboot_num): + time.sleep(self.__all_fan_error_check_crit_sleep_time) + self.get_monitor_temp() + reboot_flag = self.all_fan_error_checkTempRebootCrit() + if reboot_flag > 0: + fancontrol_emerg("%%FANCONTROL-0-TEMP_EMERG: The temperature of device over reboot critical value lasts for %d seconds." % + (self.__all_fan_error_check_crit_sleep_time * (i + 1))) + continue + else: + fancontrol_debug("The temperature of device is not over reboot critical value.") + break + if reboot_flag > 0: + fancontrol_emerg("%%FANCONTROL-0-TEMP_EMERG: The temperature of device over reboot critical value.") + fancontrol_emerg(self.__all_fan_error_recover_log) + exec_os_cmd("sync") + time.sleep(3) + exec_os_cmd(self.__all_fan_error_recover_cmd) + except Exception as e: + fancontrol_error("%%policy: all_fan_error_checkCritReboot failed") + fancontrol_error(str(e)) + def get_fan_total_number(self): return self.int_case.get_fan_total_number() @@ -706,6 +754,25 @@ def abnormal_check(self): pwm_min = self.__min_pwm pwm_list.append(pwm_min) + self.__fan_absent_num = self.checkFanPresence() + if self.__fan_absent_num >= self.__fan_absent_fullspeed_num: + fan_absent_pwm = self.__max_pwm + pwm_list.append(fan_absent_pwm) + fancontrol_debug("fan_absent_pwm = 0x%x" % fan_absent_pwm) + + rotor_err_num = self.checkFanRotorStatus() + if rotor_err_num >= self.__rotor_error_fullspeed_num: + rotor_err_pwm = self.__max_pwm + pwm_list.append(rotor_err_pwm) + fancontrol_debug("rotor_err_pwm = 0x%x" % rotor_err_pwm) + + if self.__deal_all_fan_error_method_flag: + fan_num = self.get_fan_total_number() + # all fan absent or fail + if (self.__fan_absent_num == fan_num) or (self.__fan_nok_num == fan_num): + fancontrol_debug("All fan error or absent.") + self.all_fan_error_checkCritReboot() + if self.__check_temp_emergency == 1: status = self.checkTempEmergency() if status is True: @@ -751,18 +818,6 @@ def abnormal_check(self): fancontrol_debug("TempWarningCountdown: %d, over_warn_countdown_pwm = 0x%x" % (self.__warning_countdown, over_warn_countdown_pwm)) - self.__fan_absent_num = self.checkFanPresence() - if self.__fan_absent_num >= self.__fan_absent_fullspeed_num: - fan_absent_pwm = self.__max_pwm - pwm_list.append(fan_absent_pwm) - fancontrol_debug("fan_absent_pwm = 0x%x" % fan_absent_pwm) - - rotor_err_num = self.checkFanRotorStatus() - if rotor_err_num >= self.__rotor_error_fullspeed_num: - rotor_err_pwm = self.__max_pwm - pwm_list.append(rotor_err_pwm) - fancontrol_debug("rotor_err_pwm = 0x%x" % rotor_err_pwm) - psu_absent_num = self.checkPsuPresence() if psu_absent_num >= self.__psu_absent_fullspeed_num: psu_absent_pwm = self.__max_pwm diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py index 4fe0beec44d5..35c16728f72c 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_common.py @@ -25,6 +25,8 @@ "INIT_COMMAND_PRE", "INIT_PARAM", "INIT_COMMAND", + "SET_MAC_CONF", + "DRVIER_UPDATE_CONF", "MONITOR_TEMP_MIN", "MONITOR_K", "MONITOR_MAC_IN", @@ -128,6 +130,12 @@ INIT_PARAM = [] INIT_COMMAND = [] +# Set eth mac address parameters +SET_MAC_CONF = [] + +# driver update config +DRVIER_UPDATE_CONF = {} + ################################ fancontrol parameter################################### MONITOR_TEMP_MIN = 38 MONITOR_K = 11 diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py index 004a64c72233..d6b3151e47cf 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_config.py @@ -30,6 +30,8 @@ "GLOBALINITCOMMAND", "GLOBALINITPARAM_PRE", "GLOBALINITCOMMAND_PRE", + "SET_MAC_CONF", + "DRVIER_UPDATE_CONF", "MONITOR_CONST", "PSU_FAN_FOLLOW", "MONITOR_SYS_LED", @@ -132,6 +134,12 @@ def getdeviceplatform(): GLOBALINITPARAM_PRE = module_product.INIT_PARAM_PRE GLOBALINITCOMMAND_PRE = module_product.INIT_COMMAND_PRE +# Set eth mac address parameters +SET_MAC_CONF = module_product.SET_MAC_CONF + +# driver update config +DRVIER_UPDATE_CONF = module_product.DRVIER_UPDATE_CONF + ################################ fancontrol parameter################################### diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py index 808d93216210..152dd16a25a6 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_e2.py @@ -3,6 +3,7 @@ import click from eepromutil.fru import ipmifru +from eepromutil.cust_fru import CustFru from eepromutil.fantlv import fan_tlv import eepromutil.onietlv as ot from platform_config import PLATFORM_E2_CONF @@ -238,6 +239,15 @@ def fru_eeprom_show(eeprom, e2_decode=None): print(str(e)) +def custfru_eeprom_show(eeprom, e2_decode=None): + try: + custfru = CustFru() + custfru.decode(eeprom) + print(custfru) + except Exception as e: + print(str(e)) + + def eeprom_parase(eeprom_conf): name = eeprom_conf.get("name") e2_type = eeprom_conf.get("e2_type") @@ -256,6 +266,8 @@ def eeprom_parase(eeprom_conf): fru_eeprom_show(binval, e2_decode) elif e2_type == "fantlv": fantlv_eeprom_show(binval, e2_decode) + elif e2_type == "custfru": + custfru_eeprom_show(binval, e2_decode) else: print("Unknow eeprom type: %s" % e2_type) return @@ -363,45 +375,40 @@ def decode_eeprom_info(e2_type, e2_path, e2_size): def main(): '''platform eeprom display script''' -# fan eeprom info display - +# fan eeprom info display @main.command() @click.argument('fan_index', required=True) def fan(fan_index): '''fan_index(1, 2, 3...)/all''' get_fans_eeprom_info(fan_index) -# psu eeprom info display - +# psu eeprom info display @main.command() @click.argument('psu_index', required=True) def psu(psu_index): '''psu_index(1, 2, 3...)/all''' get_psus_eeprom_info(psu_index) -# slot eeprom info display - +# slot eeprom info display @main.command() @click.argument('slot_index', required=True) def slot(slot_index): '''slot_index(1, 2, 3...)/all''' get_slots_eeprom_info(slot_index) -# syseeprom info display - +# syseeprom info display @main.command() @click.argument('syseeprom_index', required=True) def syseeprom(syseeprom_index): '''syseeprom_index(1, 2, 3...)/all''' get_syseeprom_info(syseeprom_index) -# fru eeprom info decode - +# fru eeprom info decode @main.command() @click.argument('e2_path', required=True) @click.argument('e2_size', required=False, default="256") @@ -409,9 +416,8 @@ def fru(e2_path, e2_size): '''e2_path''' decode_eeprom_info("fru", e2_path, e2_size) -# fantlv eeprom info decode - +# fantlv eeprom info decode @main.command() @click.argument('e2_path', required=True) @click.argument('e2_size', required=False, default="256") @@ -419,9 +425,8 @@ def fantlv(e2_path, e2_size): '''e2_path''' decode_eeprom_info("fantlv", e2_path, e2_size) -# onie_tlv eeprom info decode - +# onie_tlv eeprom info decode @main.command() @click.argument('e2_path', required=True) @click.argument('e2_size', required=False, default="256") diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py index 2143b9420cd3..43f36f040d6a 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_intf.py @@ -76,14 +76,31 @@ def get_dev_path(self, dev_type, dev_id): def get_port_path(self, port): port_num = self.__port_optoe_dict.get("port_num", 0) - optoe_start_bus = self.__port_optoe_dict.get("optoe_start_bus", 0) - if port_num <= 0 or optoe_start_bus <= 0: - msg = "PLATFORM_INTF_OPTOE config error!" + if port_num <= 0: + msg = "PLATFORM_INTF_OPTOE port_num config error, port_num: %d!" % port_num return False, msg + if port <= 0 or port > port_num: msg = "port out of range !" return False, msg - path = OPTOE_PATH % (port + optoe_start_bus - 1) + + port_bus_map = self.__port_optoe_dict.get("port_bus_map") + optoe_start_bus = self.__port_optoe_dict.get("optoe_start_bus", 0) + if port_bus_map is None: # get port bus by optoe_start_bus + if optoe_start_bus <= 0: + msg = "PLATFORM_INTF_OPTOE optoe_start_bus config error, optoe_start_bus: %d" % optoe_start_bus + return False, msg + port_bus = port + optoe_start_bus - 1 + else: # get port bus by port_bus_map + port_bus = port_bus_map.get(port) + if port_bus is None: + msg = "port %d don't has i2c bus" % port + return False, msg + if not isinstance(port_bus, int) or port_bus < 0: + msg = "port %d i2c bus config error, port_bus: %s " % port_bus + return False, msg + + path = OPTOE_PATH % (port_bus) platform_intf_debug("path:%s" % path) return True, path diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py index 61d255823786..f19231bba0a4 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_process.py @@ -188,6 +188,13 @@ def start_tty_console(): if len(rets) == 0: os.system(cmd) +def startDrvUpdate(): + if STARTMODULE.get('drv_update', 0) == 1: + cmd = "nohup drv_update.py >/dev/null 2>&1 &" + rets = getPid("drv_update.py") + if len(rets) == 0: + os.system(cmd) + def stopAvscontrol(): if STARTMODULE.get('avscontrol', 0) == 1: @@ -358,6 +365,7 @@ def copy_machineconf(): def load_apps(): copy_machineconf() otherinit_pre() + startDrvUpdate() startGenerate_air_flow() start_tty_console() startRebootCause() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py index 1727242b74b9..bd25231d9273 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/platform_sensors.py @@ -91,7 +91,7 @@ def print_cputemp_sensors(): print_info_str += toptile + '\n' for item in val_ret: print_info_str += formatstr.format(**item) + '\n' - print_console(print_info_str) + print_console(print_info_str) def print_boardtemp(): @@ -106,7 +106,7 @@ def print_boardtemp(): for item in val_ret: realformat = formatstr if item.get('errcode', 0) == 0 else errformat print_info_str += realformat.format(**item) + '\n' - print_console(print_info_str) + print_console(print_info_str) def print_mactemp_sensors(): @@ -145,19 +145,19 @@ def print_fan_sensor(): toptile = "Onboard fan Sensors:" errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" fan_signle_rotor_format = " {id} : \n" \ - " fan_type :{fan_type}\n" \ - " sn :{sn}\n" \ - " hw_version:{hw_version}\n" \ - " Speed :{Speed} RPM\n" \ - " status :{errmsg} \n" + " fan_type : {fan_type}\n" \ + " sn : {sn}\n" \ + " hw_version: {hw_version}\n" \ + " Speed : {Speed} RPM\n" \ + " status : {errmsg} \n" fan_double_rotor_format = " {id} : \n" \ - " fan_type :{fan_type}\n" \ - " sn :{sn}\n" \ - " hw_version:{hw_version}\n" \ + " fan_type : {fan_type}\n" \ + " sn : {sn}\n" \ + " hw_version: {hw_version}\n" \ " Speed :\n" \ - " speed_front :{rotor1_speed:<5} RPM\n" \ - " speed_rear :{rotor2_speed:<5} RPM\n" \ - " status :{errmsg} \n" + " speed_front : {rotor1_speed:<5} RPM\n" \ + " speed_rear : {rotor2_speed:<5} RPM\n" \ + " status : {errmsg} \n" if len(val_ret) != 0: print_info_str += toptile + '\n' @@ -167,7 +167,7 @@ def print_fan_sensor(): else: realformat = fan_signle_rotor_format if item.get('errcode', 0) == 0 else errformat print_info_str += realformat.format(**item) - print_console(print_info_str) + print_console(print_info_str) def print_psu_sensor(): @@ -176,23 +176,41 @@ def print_psu_sensor(): toptile = "Onboard Power Supply Unit Sensors:" errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" psuformat = " {id} : \n" \ - " type :{type1}\n" \ - " sn :{sn}\n" \ - " in_current :{in_current} A\n" \ - " in_voltage :{in_voltage} V\n" \ - " out_current:{out_current} A\n" \ - " out_voltage:{out_voltage} V\n" \ - " temp :{temp} C \n" \ - " fan_speed :{fan_speed} RPM\n" \ - " in_power :{in_power} W\n" \ - " out_power :{out_power} W\n" + " type : {type1}\n" \ + " sn : {sn}\n" \ + " in_current : {in_current} A\n" \ + " in_voltage : {in_voltage} V\n" \ + " out_current: {out_current} A\n" \ + " out_voltage: {out_voltage} V\n" \ + " temp : {temp} C \n" \ + " fan_speed : {fan_speed} RPM\n" \ + " in_power : {in_power} W\n" \ + " out_power : {out_power} W\n" if len(val_ret) != 0: print_info_str += toptile + '\r\n' for item in val_ret: realformat = psuformat if item.get('errcode', 0) == 0 else errformat print_info_str += realformat.format(**item) - print_console(print_info_str) + print_console(print_info_str) + +def print_cust_psu_sensor(): + val_ret = get_call_value_by_function("getCustPsu") + print_info_str = "" + toptile = "Onboard Power Supply Unit Sensors:" + errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" + psuformat = " {id} : \n" \ + " Model : {type1}\n" \ + " Serial : {sn}\n" \ + " HW Rev : {hw_version}\n" \ + " Status : {errmsg}\n" + + if len(val_ret) != 0: + print_info_str += toptile + '\r\n' + for item in val_ret: + realformat = psuformat if item.get('errcode', 0) == 0 else errformat + print_info_str += realformat.format(**item) + print_console(print_info_str) def print_slot_sensor(): @@ -201,10 +219,10 @@ def print_slot_sensor(): toptile = "Onboard slot Sensors:" errformat = " {id} : {errmsg}\n" # " {id:<20} : {errmsg}" psuformat = " {id} : \n" \ - " slot_type :{slot_type}\n" \ - " sn :{sn}\n" \ - " hw_version :{hw_version} \n" \ - " status :{errmsg}\n" + " slot_type : {slot_type}\n" \ + " sn : {sn}\n" \ + " hw_version : {hw_version} \n" \ + " status : {errmsg}\n" if len(val_ret) != 0: print_info_str += toptile + '\r\n' @@ -219,11 +237,17 @@ def print_boarddcdc(): print_info_str = "" toptile = "Onboard DCDC Sensors:" errformat = " {id:<26} : {errmsg}" - formatstr = " {id:<26} : {dcdc_input:<6} {dcdc_unit:<1} (Min = {dcdc_min:<6} {dcdc_unit:<1}, Max = {dcdc_max:<6} {dcdc_unit:<1})" + ok_formatstr = " {id:<26} : {dcdc_input:<6} {dcdc_unit:<1} (Min = {dcdc_min:<6} {dcdc_unit:<1}, Max = {dcdc_max:<6} {dcdc_unit:<1})" + nok_formatstr = " {id:<26} : {dcdc_input:<6} {dcdc_unit:<1} (Min = {dcdc_min:<6} {dcdc_unit:<1}, Max = {dcdc_max:<6} {dcdc_unit:<1}) ({dcdc_status:<6})" if len(val_ret) != 0: print_info_str += toptile + '\n' for item in val_ret: + if float(item["dcdc_input"]) > float(item["dcdc_max"]) or float(item["dcdc_input"]) < float(item["dcdc_min"]): + item["dcdc_status"] = "NOT OK" + formatstr = nok_formatstr + else: + formatstr = ok_formatstr realformat = formatstr if item.get('errcode', 0) == 0 else errformat print_info_str += realformat.format(**item) + '\n' print_console(print_info_str) @@ -245,6 +269,7 @@ def getsensors(): print_macpower_sensors() print_fan_sensor() print_psu_sensor() + print_cust_psu_sensor() print_slot_sensor() print_boarddcdc() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/set_eth_mac.py b/platform/broadcom/sonic-platform-modules-micas/common/script/set_eth_mac.py new file mode 100755 index 000000000000..3e445a3ac73c --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/set_eth_mac.py @@ -0,0 +1,274 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +import syslog +import os +import re +import eepromutil.onietlv as ot +from eepromutil.fru import ipmifru +from platform_config import STARTMODULE, SET_MAC_CONF +from platform_util import byteTostr, dev_file_read, exec_os_cmd + + +STANDARD_MAC_LEN = 12 +SETMAC_DEBUG_FILE = "/etc/.setmac_debug_flag" + +SETMACERROR = 1 +SETMACDEBUG = 2 +debuglevel = 0 + +cfg_prefix = "iface" +mac_prefix = "hwaddress ether" + +def setmac_debug(s): + if SETMACDEBUG & debuglevel: + syslog.openlog("SETMAC", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def setmac_error(s): + if SETMACERROR & debuglevel: + syslog.openlog("SETMAC", syslog.LOG_PID) + syslog.syslog(syslog.LOG_ERR, s) + +def setmac_info(s): + syslog.openlog("SETMAC", syslog.LOG_PID) + syslog.syslog(syslog.LOG_INFO, s) + + +def debug_init(): + global debuglevel + try: + with open(SETMAC_DEBUG_FILE, "r") as fd: + value = fd.read() + debuglevel = int(value) + except Exception: + debuglevel = 0 + + +def decode_mac(encodedata): + if encodedata == None: + return None + ret = ":".join("%02x" % ord(data) for data in encodedata) + return ret.upper() + + +def validate_mac(value): + if value is None: + setmac_error("mac is none") + return False + if value.find('-') != -1: + pattern = re.compile(r"^\s*([0-9a-fA-F]{2,2}-){5,5}[0-9a-fA-F]{2,2}\s*$") + temp_value = value.replace("-", "") + elif value.find(':') != -1: + pattern = re.compile(r"^\s*([0-9a-fA-F]{2,2}:){5,5}[0-9a-fA-F]{2,2}\s*$") + temp_value = value.replace(":", "") + else: + pattern = re.compile(r"^\s*([0-9a-fA-F]{2,2}){5,5}[0-9a-fA-F]{2,2}\s*$") + temp_value = value + if not pattern.match(value): + setmac_error("mac format error") + return False + if len(temp_value) != STANDARD_MAC_LEN: + setmac_error("mac len error len:%d" % len(temp_value)) + return False + if temp_value == "000000000000": + setmac_error("illegal zero mac") + return False + if int(temp_value, 16) >> 40 & 1 == 1: + setmac_error("illegal mac") + return False + setmac_debug("mac validate success") + return True + + +def get_onie_eeprom(eeprom): + try: + onietlv = ot.onie_tlv() + rets = onietlv.decode(eeprom) + setmac_debug("%-20s %-5s %-5s %-20s" % ("TLV name", "Code", "lens", "Value")) + for item in rets: + if item["code"] == 0xfd: + setmac_debug("%-20s 0x%-02X %-5s" % (item["name"], item["code"], item["lens"])) + else: + setmac_debug("%-20s 0x%-02X %-5s %-20s" % (item["name"], item["code"], item["lens"], item["value"])) + except Exception as e: + setmac_error(str(e)) + return False, str(e) + return True, rets + + +def get_fru_eeprom_info(eeprom): + try: + fru = ipmifru() + fru.decodeBin(eeprom) + except Exception as e: + setmac_error(str(e)) + return False, str(e) + return True, fru + + +def get_mac_from_eeprom(eeprom_conf): + name = eeprom_conf.get("name") + e2_type = eeprom_conf.get("e2_type") + e2_path = eeprom_conf.get("e2_path") + e2_size = eeprom_conf.get("e2_size", 256) + mac_location = eeprom_conf.get("mac_location", {}) + e2_mac = None + + support_e2_type = ("fru", "onie_tlv") + if e2_type not in support_e2_type: + msg = "Unsupport e2 type: %s" % e2_type + return False, msg + + setmac_debug("===================%s===================" % name) + ret, binval_bytes = dev_file_read(e2_path, 0, e2_size) + if ret is False: + msg = "eeprom read error, eeprom path: %s, msg: %s" % (e2_path, binval_bytes) + return False, msg + binval = byteTostr(binval_bytes) + + # onie_tlv + if e2_type == "onie_tlv": + status, eeprom_info = get_onie_eeprom(binval) + if status is False: + msg = "get_onie_eeprom failed, msg: %s" % (eeprom_info) + return False, msg + + field = mac_location.get("field", "") + for eeprom_info_item in eeprom_info: + if eeprom_info_item.get("name") == field: + e2_mac = eeprom_info_item.get("value") + break + if e2_mac is None: + msg = "get_onie_eeprom mac address failed, e2_mac is None" + return False, msg + return True, e2_mac + + # fru + status, eeprom_info = get_fru_eeprom_info(binval) + if status is False: + msg = "get_fru_eeprom_info failed, msg: %s" % (eeprom_info) + return False, msg + + area = mac_location.get("area", "") + field = mac_location.get("field", "") + fru_area = getattr(eeprom_info, area, None) + fru_field = getattr(fru_area, field, None) + e2_mac = decode_mac(fru_field) + if e2_mac is None: + msg = "decode_mac failed, area: %s, field: %s, value: %s" % (area, field, fru_field) + return False, msg + return True, e2_mac + + +def read_mac_from_config_file(ifcfg): + ifcfg_file_path = ifcfg.get("ifcfg_file_path") + if not os.path.exists(ifcfg_file_path): + msg = "%s not exist" % ifcfg_file_path + return False, msg + try: + fd = open(ifcfg_file_path, 'r') + for line in reversed(fd.readlines()): + if line.strip().startswith(mac_prefix): + mac = line.strip().replace(mac_prefix, "").strip() + return True, mac + except Exception as e: + setmac_error(str(e)) + return False, str(e) + return False, "mac address not found in %s" % ifcfg_file_path + + +def set_e2_mac_to_config_file(eth_name, mac, ifcfg): + try: + ifcfg_file_path = ifcfg.get("ifcfg_file_path") + cfg_file_dir = os.path.dirname(ifcfg_file_path) + if not os.path.exists(cfg_file_dir): + cmd = "mkdir -p %s" % cfg_file_dir + setmac_info("Create interfaces config directory: %s" % cfg_file_dir) + os.system(cmd) + os.system("sync") + wr_val = cfg_prefix + " %s\n" % eth_name + wr_val += " %s %s\n" % (mac_prefix, mac) + with open(ifcfg_file_path, "w") as fd: + fd.write(wr_val) + os.system("sync") + setmac_info("Create interfaces config: %s with mac address: %s" % (ifcfg_file_path, mac)) + return True + except Exception as e: + setmac_error(str(e)) + return False + +def get_eth_current_mac(eth_name): + get_mac_cmd = "ifconfig %s |grep ether |awk '{print $2}'" % eth_name + status, output = exec_os_cmd(get_mac_cmd) + if status or len(output) == 0: + msg = "get mac exec cmd : %s fail, msg: %s" % (get_mac_cmd, output) + setmac_error(msg) + return False, msg + mac = output.replace("\n", "").upper() + return True, mac + +def set_eth_mac(eth_name, mac): + set_mac_cmd = "ifconfig %s hw ether %s" % (eth_name, mac) + status, output = exec_os_cmd(set_mac_cmd) + if status: + setmac_error("run cmd: %s fail, msg: %s" % (set_mac_cmd, output)) + return False + setmac_info("ifconfig %s with mac address: %s success" % (eth_name, mac)) + return True + + +def doSetmac(): + if STARTMODULE.get('set_eth_mac', 0) == 0: + setmac_debug("set_eth_mac config not set") + return + + try: + if SET_MAC_CONF is None: + setmac_debug("set_mac_conf in none") + return + + if len(SET_MAC_CONF) == 0: + setmac_debug("set_mac_conf list is none") + return + + for setmac_item in SET_MAC_CONF: + eth_name = setmac_item.get("eth_name") + e2_name = setmac_item.get("e2_name", "") + ifcfg = setmac_item.get("ifcfg") + if eth_name is None or ifcfg is None: + setmac_error("set_mac_conf error, eth_name or ifcfg is None") + continue + + # decode mac by eeprom + status, e2_mac = get_mac_from_eeprom(setmac_item) + if status is False: + setmac_error("get mac from %s eeprom fail, msg: %s" % (e2_name, e2_mac)) + continue + status = validate_mac(e2_mac) + if status is False: + setmac_error("e2_mac: %s invalid" % e2_mac) + continue + setmac_debug("get mac from %s eeprom info success, mac: %s" % (e2_name, e2_mac)) + + # read config file mac address + status, cfg_mac = read_mac_from_config_file(ifcfg) + setmac_debug("read_mac_from_config_file, status: %s, cfg_mac: %s" % (status, cfg_mac)) + if status is False or cfg_mac != e2_mac: + set_e2_mac_to_config_file(eth_name, e2_mac, ifcfg) + # check current eth mac + status, current_mac = get_eth_current_mac(eth_name) + if status is False: + setmac_error("get %s current mac fail" % eth_name) + continue + setmac_debug("current_mac:%s len:%d" % (current_mac, len(current_mac))) + if current_mac != e2_mac: + set_eth_mac(eth_name, e2_mac) + except Exception as e: + setmac_error(str(e)) + return + + +if __name__ == '__main__': + debug_init() + doSetmac() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/script/subnetwork.py b/platform/broadcom/sonic-platform-modules-micas/common/script/subnetwork.py new file mode 100755 index 000000000000..5f9df14c8696 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/script/subnetwork.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +import os +import re +import subprocess +import sys +import time + + +def start(): + subnet_path = "/sys/class/net/eth0.4088" + retry_count = 10 + subnet_cmds = [] + subnet_cmds.append("ip link add link eth0 name eth0.4088 type vlan id 4088") + subnet_cmds.append("ip addr add 240.1.1.1/30 brd 240.1.1.3 dev eth0.4088") + subnet_cmds.append("ip link set dev eth0.4088 up") + + retry = 0 + while not os.path.exists(subnet_path) and retry < retry_count: + try: + for cmd in subnet_cmds: + subprocess.run(cmd.split(), check=True) + except subprocess.CalledProcessError as e: + print("Start subnetwork Failed, retrying: %d, cmd: %s, returncode: %d" % (retry, cmd, e.returncode)) + retry = retry + 1 + time.sleep(5) + + if os.path.exists(subnet_path): + print("Start subnetwork Success.") + + +def stop(): + subnet_path = "/sys/class/net/eth0.4088" + subnet_cmds = [] + subnet_cmds.append("ip link set dev eth0.4088 down") + subnet_cmds.append("ip link del eth0.4088") + + try: + for cmd in subnet_cmds: + subprocess.run(cmd.split(), check=True) + except subprocess.CalledProcessError as e: + print("Stop subnetwork Failed, returncode: " + e.returncode) + + if not os.path.exists(subnet_path): + print("Stop subnetwork Success.") + + +def main(): + print(sys.argv[1]) + if sys.argv[1] == 'start': + start() + elif sys.argv[1] == 'stop': + stop() + else: + print("Error parameter!\nRequired parameters : start or stop.") + + +if __name__ == '__main__': + main() diff --git a/platform/broadcom/sonic-platform-modules-micas/common/service/subnetwork.service b/platform/broadcom/sonic-platform-modules-micas/common/service/subnetwork.service new file mode 100755 index 000000000000..666046592116 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-micas/common/service/subnetwork.service @@ -0,0 +1,13 @@ +[Unit] +Description=Configuration eth0.4088 subnetwork +After=network.target +DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/subnetwork.py start +ExecStop=/usr/local/bin/subnetwork.py stop +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py index 1ad578e40546..c693ad9f0ac5 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/fan.py @@ -109,6 +109,10 @@ def get_status(self): tolerance = 30 if isinstance(value, str) or value is None: + if self.is_psu_fan: + psu_status_dict = self.int_case.get_psu_status(self.name) + if psu_status_dict["OutputStatus"] is True: + return True return False if value < min_speed: @@ -186,7 +190,7 @@ def get_speed(self): max_speed = psu_status_dict["FanSpeed"]["Max"] if isinstance(value, str) or value is None: - return 0 + return None pwm = value * 100 / max_speed if pwm > 100: pwm = 100 @@ -277,11 +281,9 @@ def get_target_speed(self): # get fan rotor pwm pwm = int(self.int_case.get_fan_speed_pwm(self.name, self.fan_index)) else: - psu_status_dict = self.int_case.get_psu_status(self.name) - if psu_status_dict["InputStatus"] is False: - pwm = 0 - else: - pwm = self.get_speed() # target equal to real pwm, to avoid alarm + pwm = self.get_speed() # target equal to real pwm, to avoid alarm + if pwm is None: + return None return int(pwm) def get_vendor(self): @@ -292,7 +294,7 @@ def get_vendor(self): string: Vendor name of fan """ if not self.is_psu_fan: - return "WB" + return "Micas" return 'N/A' def get_revision(self): diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py index a9f7e87d2027..0812e8529ce6 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/psu.py @@ -32,7 +32,10 @@ def __init__(self, interface_obj, index): self.psu_status_dict_update_time = 0 self.psu_power_dict_update_time = 0 - self._fan_list.append(Fan(self.int_case, 1, 1, psu_fan=True, psu_index=index)) + self.psufannum = self.int_case.get_psu_fan_number(self.name) + + if self.psufannum: + self._fan_list.append(Fan(self.int_case, 1, 1, psu_fan=True, psu_index=index)) def psu_dict_update(self): local_time = time.time() @@ -127,13 +130,13 @@ def get_voltage(self): e.g. 12.1 """ self.psu_status_dict_update() - if self.psu_status_dict["InputStatus"] is False: + if self.psu_status_dict["OutputStatus"] is False: value = 0 else: self.psu_power_dict_update() value = self.psu_power_dict["Outputs"]["Voltage"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_current(self): @@ -145,13 +148,13 @@ def get_current(self): e.g. 15.4 """ self.psu_status_dict_update() - if self.psu_status_dict["InputStatus"] is False: + if self.psu_status_dict["OutputStatus"] is False: value = 0 else: self.psu_power_dict_update() value = self.psu_power_dict["Outputs"]["Current"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_power(self): @@ -163,13 +166,13 @@ def get_power(self): e.g. 302.6 """ self.psu_status_dict_update() - if self.psu_status_dict["InputStatus"] is False: + if self.psu_status_dict["OutputStatus"] is False: value = 0 else: self.psu_power_dict_update() value = self.psu_power_dict["Outputs"]["Power"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_powergood_status(self): @@ -219,7 +222,7 @@ def get_temperature(self): self.psu_status_dict_update() value = self.psu_status_dict["Temperature"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_temperature_high_threshold(self): @@ -233,7 +236,7 @@ def get_temperature_high_threshold(self): self.psu_status_dict_update() value = self.psu_status_dict["Temperature"]["Max"] if value is None: - value = 0 + return None return round(float(value), 1) def get_voltage_high_threshold(self): @@ -247,7 +250,7 @@ def get_voltage_high_threshold(self): self.psu_power_dict_update() value = self.psu_power_dict["Outputs"]["Voltage"]["HighAlarm"] if value is None: - value = 0 + return None return round(float(value), 1) def get_voltage_low_threshold(self): @@ -261,7 +264,7 @@ def get_voltage_low_threshold(self): self.psu_power_dict_update() value = self.psu_power_dict["Outputs"]["Voltage"]["LowAlarm"] if value is None: - value = 0 + return None return round(float(value), 1) def get_input_voltage(self): @@ -278,7 +281,7 @@ def get_input_voltage(self): self.psu_power_dict_update() value = self.psu_power_dict["Inputs"]["Voltage"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_input_current(self): @@ -295,7 +298,7 @@ def get_input_current(self): self.psu_power_dict_update() value = self.psu_power_dict["Inputs"]["Current"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_input_power(self): @@ -312,7 +315,7 @@ def get_input_power(self): self.psu_power_dict_update() value = self.psu_power_dict["Inputs"]["Power"]["Value"] if value is None: - value = 0 + return None return round(float(value), 1) def get_revision(self): diff --git a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py index 532bf9d86d50..3fc22b4b6618 100644 --- a/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/sonic_platform/sfp.py @@ -91,7 +91,11 @@ def get_transceiver_info(self): # temporary solution for a sonic202111 bug transceiver_info = super().get_transceiver_info() try: - if transceiver_info is not None and transceiver_info["vendor_rev"] is not None: + if transceiver_info == None: + return None + if transceiver_info['cable_type'] == None: + transceiver_info['cable_type'] = 'N/A' + if transceiver_info["vendor_rev"] is not None: transceiver_info["hardware_rev"] = transceiver_info["vendor_rev"] except BaseException: print(traceback.format_exc()) @@ -375,6 +379,8 @@ def get_presence(self): return False try: dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.presence_cpld) + if dev_id == -1: + return False ret, info = platform_reg_read(0, dev_id, offset, 1) if (ret is False or info is None): @@ -390,6 +396,8 @@ def get_reset_status(self): return False try: dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.reset_cpld) + if dev_id == -1: + return False ret, info = platform_reg_read(0, dev_id, offset, 1) if (ret is False or info is None): @@ -409,6 +417,8 @@ def get_tx_disable(self): try: tx_disable_list = [] dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.txdis_cpld) + if dev_id == -1: + return False ret, info = platform_reg_read(0, dev_id, offset, 1) if (ret is False or info is None): @@ -473,6 +483,8 @@ def set_reset(self, reset): try: val = [] dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.reset_cpld) + if dev_id == -1: + return False ret, info = platform_reg_read(0, dev_id, offset, 1) if (ret is False or info is None): @@ -508,6 +520,8 @@ def set_tx_disable(self, tx_disable): try: val = [] dev_id, offset, offset_bit = self._get_sfp_cpld_info(self.txdis_cpld) + if dev_id == -1: + return False ret, info = platform_reg_read(0, dev_id, offset, 1) if (ret is False or info is None): @@ -537,9 +551,9 @@ def set_tx_disable(self, tx_disable): return True def _get_sfp_cpld_info(self, cpld_config): - dev_id = 0 - offset = 0 - + dev_id = -1 + offset = -1 + offset_bit = -1 for dev_id_temp in cpld_config["dev_id"]: for offset_temp in cpld_config["dev_id"][dev_id_temp]["offset"]: port_range_str = cpld_config["dev_id"][dev_id_temp]["offset"][offset_temp] diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/control b/platform/broadcom/sonic-platform-modules-micas/debian/control index fde544a790aa..12062b9f26eb 100644 --- a/platform/broadcom/sonic-platform-modules-micas/debian/control +++ b/platform/broadcom/sonic-platform-modules-micas/debian/control @@ -8,26 +8,6 @@ Package: platform-modules-micas-m2-w6510-48v8c Architecture: amd64 Description: kernel modules for platform devices such as fan, led, sfp -Package: platform-modules-micas-m2-w6510-32c -Architecture: amd64 -Description: kernel modules for platform devices such as fan, led, sfp - -Package: platform-modules-micas-m2-w6910-64c -Architecture: amd64 -Description: kernel modules for platform devices such as fan, led, sfp - -Package: platform-modules-micas-m2-w6920-4s -Architecture: amd64 -Description: kernel modules for platform devices such as fan, led, sfp - Package: platform-modules-micas-m2-w6520-24dc8qc Architecture: amd64 Description: kernel modules for platform devices such as fan, led, sfp - -Package: platform-modules-micas-m2-w6930-64qc -Architecture: amd64 -Description: kernel modules for platform devices such as fan, led, sfp - -Package: platform-modules-micas-m2-w6510-48gt4v -Architecture: amd64 -Description: kernel modules for platform devices such as fan, led, sfp \ No newline at end of file diff --git a/platform/broadcom/sonic-platform-modules-micas/debian/rules b/platform/broadcom/sonic-platform-modules-micas/debian/rules index e801ef47f459..bfb787932816 100755 --- a/platform/broadcom/sonic-platform-modules-micas/debian/rules +++ b/platform/broadcom/sonic-platform-modules-micas/debian/rules @@ -45,7 +45,10 @@ COMPILE_WHL: $(COMPILE_DIRS) cp -r $(MOD_SRC_DIR)/common/lib/plat_hal $(MOD_SRC_DIR)/$${mod}/; \ cp -r $(MOD_SRC_DIR)/common/lib/wbutil $(MOD_SRC_DIR)/$${mod}/; \ cp -r $(MOD_SRC_DIR)/common/lib/eepromutil $(MOD_SRC_DIR)/$${mod}/; \ - cp -r $(MOD_SRC_DIR)/common/sonic_platform $(MOD_SRC_DIR)/$${mod}/; \ + cp -r $(MOD_SRC_DIR)/common/lib/restful_util $(MOD_SRC_DIR)/$${mod}/; \ + if [ $$mod != "m2-w6940-128qc" ]; then \ + cp -r $(MOD_SRC_DIR)/common/sonic_platform $(MOD_SRC_DIR)/$${mod}/; \ + fi; \ cp $(MOD_SRC_DIR)/common/script/hal_pltfm.py $(MOD_SRC_DIR)/$${mod}/hal_pltfm.py; \ cp $(MOD_SRC_DIR)/common/script/platform_util.py $(MOD_SRC_DIR)/$${mod}/platform_util.py; \ cp $(MOD_SRC_DIR)/common/script/platform_intf.py $(MOD_SRC_DIR)/$${mod}/platform_intf.py; \ @@ -53,7 +56,10 @@ COMPILE_WHL: $(COMPILE_DIRS) rm -rf $(MOD_SRC_DIR)/$${mod}/plat_hal; \ rm -rf $(MOD_SRC_DIR)/$${mod}/wbutil; \ rm -rf $(MOD_SRC_DIR)/$${mod}/eepromutil; \ - rm -rf $(MOD_SRC_DIR)/$${mod}/sonic_platform; \ + rm -rf $(MOD_SRC_DIR)/$${mod}/restful_util; \ + if [ $$mod != "m2-w6940-128qc" ]; then \ + rm -rf $(MOD_SRC_DIR)/$${mod}/sonic_platform; \ + fi; \ rm -rf $(MOD_SRC_DIR)/$${mod}/hal_pltfm.py; \ rm -rf $(MOD_SRC_DIR)/$${mod}/platform_intf.py; \ rm -rf $(MOD_SRC_DIR)/$${mod}/platform_util.py; \ diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/cpld_test_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/cpld_test_header.vme deleted file mode 100644 index 083fd78f3ea1919d9d3737fe0d8d0c7b8b2ce881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmaiu!AgWc7{^Cl9GwWZEU4QY>mrW2O9%#{v#rqDVj^@}T%AMUt^?Upr*1u1&(K43 z?FnqO2k^UmA0NNppMS~gYSXfp);#POTEzEsNrQ-{S16)+_OzzH_2yb`frh&jGzynN zocKiSc%1|*>JQ(XrjPMM;vcLbWx(?lMPV9>2xnduTlc0w*NEL#8!^N-$!~cVJr}!X zU*U-Hx_RHReT%cEsj*`cOSm-1L@17ejCweGWq851n7EkCz1hsO3AQcUK?q#pT+$Q+ zaP`9Ix{m7r0$EYyqaQexPBa5Reu@nVOwPd9@%QJs+)cP9_xx1wT$jWNHKXIBQctQq VsrNb@^ic_@K=0eZ|8`^i#~;mYW4-_Y diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin deleted file mode 100644 index bdf9ae2139e2..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/.upgrade_test/fpga_test_header.bin +++ /dev/null @@ -1,10 +0,0 @@ -fpga_test_header.bin -FILEHEADER( -DEVTYPE=0x404a -TYPE=fpga -CHAIN=3 -CHIPNAME=fpga -VERSION=v0 -FILETYPE=SPI-LOGIC-DEV -CRC=0x00000000 -) diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile index 1b84abef410a..052a5a6a0773 100644 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/Makefile @@ -7,7 +7,6 @@ INSTALL_DIR = $(SUB_BUILD_DIR)/$(KERNEL_SRC)/$(INSTALL_MOD_DIR) INSTALL_SCRIPT_DIR = $(SUB_BUILD_DIR)/usr/local/bin INSTALL_LIB_DIR = $(SUB_BUILD_DIR)/usr/lib/python3/dist-packages INSTALL_SYSFS_CFG_DIR = $(SUB_BUILD_DIR)/etc/plat_sysfs_cfg -INSTALL_UPGRADE_TEST_DIR = $(SUB_BUILD_DIR)/etc/.upgrade_test all: $(MAKE) -C $(KBUILD_OUTPUT) M=$(DIR_KERNEL_SRC) modules @@ -19,8 +18,6 @@ all: @if [ -d $(PWD)/hal-config/ ]; then cp -r $(PWD)/hal-config/* ${INSTALL_LIB_DIR} ;fi @if [ ! -d ${INSTALL_SYSFS_CFG_DIR} ]; then mkdir -p ${INSTALL_SYSFS_CFG_DIR} ;fi @if [ -d $(PWD)/plat_sysfs_cfg/ ]; then cp -r $(PWD)/plat_sysfs_cfg/* ${INSTALL_SYSFS_CFG_DIR} ;fi - @if [ ! -d ${INSTALL_UPGRADE_TEST_DIR} ]; then mkdir -p ${INSTALL_UPGRADE_TEST_DIR} ;fi - @if [ -d $(PWD)/.upgrade_test/ ]; then cp -r $(PWD)/.upgrade_test/* ${INSTALL_UPGRADE_TEST_DIR} ;fi clean: rm -f ${DIR_KERNEL_SRC}/*.o ${DIR_KERNEL_SRC}/*.ko ${DIR_KERNEL_SRC}/*.mod.c ${DIR_KERNEL_SRC}/.*.cmd rm -f ${DIR_KERNEL_SRC}/Module.markers ${DIR_KERNEL_SRC}/Module.symvers ${DIR_KERNEL_SRC}/modules.order diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py index 5aef2f7a3086..126337656139 100755 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/config/x86_64_micas_m2_w6510_48v8c_r0_config.py @@ -746,10 +746,6 @@ {"name": "wb_csu550", "delay": 0}, {"name": "wb_ina3221", "delay": 0}, {"name": "wb_tps53622", "delay": 0}, - {"name": "firmware_driver_cpld", "delay": 0}, - {"name": "firmware_driver_ispvme", "delay": 0}, - {"name": "firmware_driver_sysfs", "delay": 0}, - {"name": "wb_firmware_upgrade_device", "delay": 0}, {"name": "plat_dfd", "delay": 0}, {"name": "plat_switch", "delay": 0}, {"name": "plat_fan", "delay": 0}, @@ -975,12 +971,12 @@ {"cmd": "modprobe mtd", "gettype": "cmd"}, {"cmd": "modprobe spi_nor", "gettype": "cmd"}, {"cmd": "modprobe ofpart", "gettype": "cmd"}, - {"cmd": "modprobe intel_spi writeable=1", "gettype": "cmd"}, - {"cmd": "modprobe intel_spi_platform writeable=1", "gettype": "cmd"}, + {"cmd": "modprobe spi_intel writeable=1", "gettype": "cmd"}, + {"cmd": "modprobe spi_intel_platform", "gettype": "cmd"}, ], "finish_cmd": [ - {"cmd": "rmmod intel_spi_platform", "gettype": "cmd"}, - {"cmd": "rmmod intel_spi", "gettype": "cmd"}, + {"cmd": "rmmod spi_intel_platform", "gettype": "cmd"}, + {"cmd": "rmmod spi_intel", "gettype": "cmd"}, {"cmd": "rmmod ofpart", "gettype": "cmd"}, {"cmd": "rmmod spi_nor", "gettype": "cmd"}, {"cmd": "rmmod mtd", "gettype": "cmd"}, @@ -1069,7 +1065,7 @@ AIR_FLOW_CONF = { "psu_fan_airflow": { - "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3', 'U1D-D10800-DRB'], "exhaust": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] }, diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py index ccd9b2a465b5..c1eb46247086 100755 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_device.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 psu_fan_airflow = { - "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3', 'U1D-D10800-DRB'], "exhaust": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] } @@ -12,7 +12,8 @@ psu_display_name = { "PA550II-F": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], - "PA550II-R": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] + "PA550II-R": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'], + "PD800I-F": ['U1D-D10800-DRB'] } psutypedecode = { @@ -66,6 +67,33 @@ class threshold: FRONT_FAN_SPEED_MAX = 24000 REAR_FAN_SPEED_MAX = 22500 FAN_SPEED_MIN = 5000 + + + ASPOWER_DC_PSU_TEMP_MIN = -10 * 1000 + ASPOWER_DC_PSU_TEMP_MAX = 55 * 1000 + + ASPOWER_DC_PSU_FAN_SPEED_MIN = 800 + ASPOWER_DC_PSU_FAN_SPEED_MAX = 24000 + + ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MIN = 11.4 * 1000 + ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MAX = 12.6 * 1000 + + ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN = 36 * 1000 + ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX = 72 * 1000 + + ASPOWER_DC_ERR_VALUE = -9999999 + + ASPOWER_DC_PSU_OUTPUT_POWER_MIN = 5 * 1000 * 1000 + ASPOWER_DC_PSU_OUTPUT_POWER_MAX = 800 * 1000 * 1000 + + ASPOWER_DC_PSU_INPUT_POWER_MIN = 5 * 1000 * 1000 + ASPOWER_DC_PSU_INPUT_POWER_MAX = 880 * 1000 * 1000 + + ASPOWER_DC_PSU_OUTPUT_CURRENT_MIN = 0.5 * 1000 + ASPOWER_DC_PSU_OUTPUT_CURRENT_MAX = 66 * 1000 + + ASPOWER_DC_PSU_INPUT_CURRENT_MIN = 1 * 1000 + ASPOWER_DC_PSU_INPUT_CURRENT_MAX = 28 * 1000 class Description: @@ -88,21 +116,34 @@ class Description: "pmbusloc": {"bus": 24, "addr": 0x58, "way": "i2c"}, "present": {"loc": "/sys/wb_plat/psu/psu1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, "name": "PSU1", + "get_threshold_by_model": 1, "psu_display_name": psu_display_name, "airflow": psu_fan_airflow, "TempStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, "Temperature": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, - "Min": threshold.PSU_TEMP_MIN, - "Max": threshold.PSU_TEMP_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MIN, + "other": threshold.PSU_TEMP_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MAX, + "other": threshold.PSU_TEMP_MAX, + }, "Unit": Unit.Temperature, "format": "float(float(%s)/1000)" }, "FanStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, "FanSpeed": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, - "Min": threshold.PSU_FAN_SPEED_MIN, - "Max": threshold.PSU_FAN_SPEED_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MIN, + "other": threshold.PSU_FAN_SPEED_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MAX, + "other": threshold.PSU_FAN_SPEED_MAX, + }, "Unit": Unit.Speed }, "psu_fan_tolerance": 40, @@ -119,52 +160,94 @@ class Description: }, 'DC': { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, - "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, 'other': { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.ERR_VALUE, - "Max": threshold.ERR_VALUE, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.ERR_VALUE, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.ERR_VALUE, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" } }, "InputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_CURRENT_MIN, - "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MIN, + "other": threshold.PSU_INPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MAX, + "other": threshold.PSU_INPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "InputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_POWER_MIN, - "Max": threshold.PSU_INPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MIN, + "other": threshold.PSU_INPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MAX, + "other": threshold.PSU_INPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, "OutputsStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, "OutputsVoltage": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, - "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MIN, + "other": threshold.PSU_OUTPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MAX, + "other": threshold.PSU_OUTPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, "OutputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_CURRENT_MIN, - "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MIN, + "other": threshold.PSU_OUTPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MAX, + "other": threshold.PSU_OUTPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "OutputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_POWER_MIN, - "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MIN, + "other": threshold.PSU_OUTPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MAX, + "other": threshold.PSU_OUTPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, @@ -174,21 +257,34 @@ class Description: "pmbusloc": {"bus": 25, "addr": 0x58, "way": "i2c"}, "present": {"loc": "/sys/wb_plat/psu/psu2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, "name": "PSU2", + "get_threshold_by_model": 1, "psu_display_name": psu_display_name, "airflow": psu_fan_airflow, "TempStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, "Temperature": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, - "Min": threshold.PSU_TEMP_MIN, - "Max": threshold.PSU_TEMP_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MIN, + "other": threshold.PSU_TEMP_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MAX, + "other": threshold.PSU_TEMP_MAX, + }, "Unit": Unit.Temperature, "format": "float(float(%s)/1000)" }, "FanStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, "FanSpeed": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, - "Min": threshold.PSU_FAN_SPEED_MIN, - "Max": threshold.PSU_FAN_SPEED_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MIN, + "other": threshold.PSU_FAN_SPEED_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MAX, + "other": threshold.PSU_FAN_SPEED_MAX, + }, "Unit": Unit.Speed }, "psu_fan_tolerance": 40, @@ -205,52 +301,94 @@ class Description: }, 'DC': { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, - "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, 'other': { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.ERR_VALUE, - "Max": threshold.ERR_VALUE, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.ERR_VALUE, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.ERR_VALUE, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" } }, "InputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_CURRENT_MIN, - "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MIN, + "other": threshold.PSU_INPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MAX, + "other": threshold.PSU_INPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "InputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_POWER_MIN, - "Max": threshold.PSU_INPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MIN, + "other": threshold.PSU_INPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MAX, + "other": threshold.PSU_INPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, "OutputsStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, "OutputsVoltage": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, - "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MIN, + "other": threshold.PSU_OUTPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MAX, + "other": threshold.PSU_OUTPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, "OutputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_CURRENT_MIN, - "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MIN, + "other": threshold.PSU_OUTPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MAX, + "other": threshold.PSU_OUTPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "OutputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_POWER_MIN, - "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MIN, + "other": threshold.PSU_OUTPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MAX, + "other": threshold.PSU_OUTPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py index 3fadc9cc4608..c2b857975382 100755 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/hal-config/x86_64_micas_m2_w6510_48v8c_r0_exhaust_device.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 psu_fan_airflow = { - "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], + "intake": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3', 'U1D-D10800-DRB'], "exhaust": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] } @@ -12,7 +12,8 @@ psu_display_name = { "PA550II-F": ['CSU550AP-3-500', 'DPS-550AB-39 A', 'GW-CRPS550N2C', 'CSU550AP-3-300', 'DPS-550AB-39 B', 'CSU550AP-3'], - "PA550II-R": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'] + "PA550II-R": ['CSU550AP-3-501', 'DPS-550AB-40 A', 'GW-CRPS550N2RC'], + "PD800I-F": ['U1D-D10800-DRB'] } psutypedecode = { @@ -66,6 +67,33 @@ class threshold: FRONT_FAN_SPEED_MAX = 24000 REAR_FAN_SPEED_MAX = 22500 FAN_SPEED_MIN = 5000 + + + ASPOWER_DC_PSU_TEMP_MIN = -10 * 1000 + ASPOWER_DC_PSU_TEMP_MAX = 55 * 1000 + + ASPOWER_DC_PSU_FAN_SPEED_MIN = 800 + ASPOWER_DC_PSU_FAN_SPEED_MAX = 24000 + + ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MIN = 11.4 * 1000 + ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MAX = 12.6 * 1000 + + ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN = 36 * 1000 + ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX = 72 * 1000 + + ASPOWER_DC_ERR_VALUE = -9999999 + + ASPOWER_DC_PSU_OUTPUT_POWER_MIN = 5 * 1000 * 1000 + ASPOWER_DC_PSU_OUTPUT_POWER_MAX = 800 * 1000 * 1000 + + ASPOWER_DC_PSU_INPUT_POWER_MIN = 5 * 1000 * 1000 + ASPOWER_DC_PSU_INPUT_POWER_MAX = 880 * 1000 * 1000 + + ASPOWER_DC_PSU_OUTPUT_CURRENT_MIN = 0.5 * 1000 + ASPOWER_DC_PSU_OUTPUT_CURRENT_MAX = 66 * 1000 + + ASPOWER_DC_PSU_INPUT_CURRENT_MIN = 1 * 1000 + ASPOWER_DC_PSU_INPUT_CURRENT_MAX = 28 * 1000 class Description: @@ -88,21 +116,34 @@ class Description: "pmbusloc": {"bus": 24, "addr": 0x58, "way": "i2c"}, "present": {"loc": "/sys/wb_plat/psu/psu1/present", "way": "sysfs", "mask": 0x01, "okval": 1}, "name": "PSU1", + "get_threshold_by_model": 1, "psu_display_name": psu_display_name, "airflow": psu_fan_airflow, "TempStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, "Temperature": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, - "Min": threshold.PSU_TEMP_MIN, - "Max": threshold.PSU_TEMP_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MIN, + "other": threshold.PSU_TEMP_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MAX, + "other": threshold.PSU_TEMP_MAX, + }, "Unit": Unit.Temperature, "format": "float(float(%s)/1000)" }, "FanStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, "FanSpeed": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, - "Min": threshold.PSU_FAN_SPEED_MIN, - "Max": threshold.PSU_FAN_SPEED_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MIN, + "other": threshold.PSU_FAN_SPEED_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MAX, + "other": threshold.PSU_FAN_SPEED_MAX, + }, "Unit": Unit.Speed }, "psu_fan_tolerance": 40, @@ -119,52 +160,94 @@ class Description: }, 'DC': { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, - "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, 'other': { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.ERR_VALUE, - "Max": threshold.ERR_VALUE, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.ERR_VALUE, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.ERR_VALUE, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" } }, "InputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_CURRENT_MIN, - "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MIN, + "other": threshold.PSU_INPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MAX, + "other": threshold.PSU_INPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "InputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_POWER_MIN, - "Max": threshold.PSU_INPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MIN, + "other": threshold.PSU_INPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MAX, + "other": threshold.PSU_INPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, "OutputsStatus": {"bus": 24, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, "OutputsVoltage": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, - "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MIN, + "other": threshold.PSU_OUTPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MAX, + "other": threshold.PSU_OUTPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, "OutputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_CURRENT_MIN, - "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MIN, + "other": threshold.PSU_OUTPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MAX, + "other": threshold.PSU_OUTPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "OutputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-24/24-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_POWER_MIN, - "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MIN, + "other": threshold.PSU_OUTPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MAX, + "other": threshold.PSU_OUTPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, @@ -174,21 +257,34 @@ class Description: "pmbusloc": {"bus": 25, "addr": 0x58, "way": "i2c"}, "present": {"loc": "/sys/wb_plat/psu/psu2/present", "way": "sysfs", "mask": 0x01, "okval": 1}, "name": "PSU2", + "get_threshold_by_model": 1, "psu_display_name": psu_display_name, "airflow": psu_fan_airflow, "TempStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0004}, "Temperature": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/temp1_input", "way": "sysfs"}, - "Min": threshold.PSU_TEMP_MIN, - "Max": threshold.PSU_TEMP_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MIN, + "other": threshold.PSU_TEMP_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_TEMP_MAX, + "other": threshold.PSU_TEMP_MAX, + }, "Unit": Unit.Temperature, "format": "float(float(%s)/1000)" }, "FanStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x0400}, "FanSpeed": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/fan1_input", "way": "sysfs"}, - "Min": threshold.PSU_FAN_SPEED_MIN, - "Max": threshold.PSU_FAN_SPEED_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MIN, + "other": threshold.PSU_FAN_SPEED_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_FAN_SPEED_MAX, + "other": threshold.PSU_FAN_SPEED_MAX, + }, "Unit": Unit.Speed }, "psu_fan_tolerance": 40, @@ -205,52 +301,94 @@ class Description: }, 'DC': { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.PSU_DC_INPUT_VOLTAGE_MIN, - "Max": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.PSU_DC_INPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, 'other': { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in1_input", "way": "sysfs"}, - "Min": threshold.ERR_VALUE, - "Max": threshold.ERR_VALUE, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MIN, + "other": threshold.ERR_VALUE, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_DC_INPUT_VOLTAGE_MAX, + "other": threshold.ERR_VALUE, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" } }, "InputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_CURRENT_MIN, - "Max": threshold.PSU_INPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MIN, + "other": threshold.PSU_INPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_CURRENT_MAX, + "other": threshold.PSU_INPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "InputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power1_input", "way": "sysfs"}, - "Min": threshold.PSU_INPUT_POWER_MIN, - "Max": threshold.PSU_INPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MIN, + "other": threshold.PSU_INPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_INPUT_POWER_MAX, + "other": threshold.PSU_INPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, "OutputsStatus": {"bus": 25, "addr": 0x58, "offset": 0x79, "way": "i2cword", "mask": 0x8800}, "OutputsVoltage": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/in2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_VOLTAGE_MIN, - "Max": threshold.PSU_OUTPUT_VOLTAGE_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MIN, + "other": threshold.PSU_OUTPUT_VOLTAGE_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_VOLTAGE_MAX, + "other": threshold.PSU_OUTPUT_VOLTAGE_MAX, + }, "Unit": Unit.Voltage, "format": "float(float(%s)/1000)" }, "OutputsCurrent": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/curr2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_CURRENT_MIN, - "Max": threshold.PSU_OUTPUT_CURRENT_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MIN, + "other": threshold.PSU_OUTPUT_CURRENT_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_CURRENT_MAX, + "other": threshold.PSU_OUTPUT_CURRENT_MAX, + }, "Unit": Unit.Current, "format": "float(float(%s)/1000)" }, "OutputsPower": { "value": {"loc": "/sys/bus/i2c/devices/i2c-25/25-0058/hwmon/hwmon*/power2_input", "way": "sysfs"}, - "Min": threshold.PSU_OUTPUT_POWER_MIN, - "Max": threshold.PSU_OUTPUT_POWER_MAX, + "Min": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MIN, + "other": threshold.PSU_OUTPUT_POWER_MIN, + }, + "Max": { + "U1D-D10800-DRB": threshold.ASPOWER_DC_PSU_OUTPUT_POWER_MAX, + "other": threshold.PSU_OUTPUT_POWER_MAX, + }, "Unit": Unit.Power, "format": "float(float(%s)/1000000)" }, diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile index e59ffd7ee67d..2e9c25ae6b7a 100755 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile +++ b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/Makefile @@ -1,10 +1,8 @@ MAKEFILE_FILE_PATH = $(abspath $(lastword $(MAKEFILE_LIST))) MODULES_DIR = $(abspath $(MAKEFILE_FILE_PATH)/../../../../common/modules) -FIRMWARE_UPGRADE_PATH = $(abspath $(MAKEFILE_FILE_PATH)/../../../../common/app/firmware_upgrade/firmware_driver/include) EXTRA_CFLAGS+= -I$(MODULES_DIR) EXTRA_CFLAGS+= -I$(MODULES_DIR)/linux-5.10 -EXTRA_CFLAGS+= -I$(FIRMWARE_UPGRADE_PATH) obj-m := wb_pcie_dev_device.o obj-m += wb_i2c_mux_pca954x_device.o @@ -12,4 +10,3 @@ obj-m += wb_i2c_ocores_device.o obj-m += wb_lpc_drv_device.o obj-m += wb_i2c_dev_device.o obj-m += wb_io_dev_device.o -obj-m += wb_firmware_upgrade_device.o diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c b/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c deleted file mode 100644 index 6dce748325a2..000000000000 --- a/platform/broadcom/sonic-platform-modules-micas/m2-w6510-48v8c/modules/driver/wb_firmware_upgrade_device.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * wb_firmware_upgrade.c - * - * ko for firmware device - */ -#include -#include -#include -#include -#include -#include - -static int g_wb_firmware_upgrade_debug = 0; -static int g_wb_firmware_upgrade_error = 0; - -module_param(g_wb_firmware_upgrade_debug, int, S_IRUGO | S_IWUSR); -module_param(g_wb_firmware_upgrade_error, int, S_IRUGO | S_IWUSR); - -#define WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE(fmt, args...) do { \ - if (g_wb_firmware_upgrade_debug) { \ - printk(KERN_INFO "[WB_FIRMWARE_UPGRADE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define WB_FIRMWARE_UPGRADE_DEBUG_ERROR(fmt, args...) do { \ - if (g_wb_firmware_upgrade_error) { \ - printk(KERN_ERR "[WB_FIRMWARE_UPGRADE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -/* cpld */ -static firmware_upgrade_device_t firmware_upgrade_device_data0 = { - .type = "JTAG", - .upg_type.jtag = { - .tdi = 67, - .tck = 65, - .tms = 6, - .tdo = 32, - }, - .en_gpio[0] = 50, - .en_level[0] = 1, - .en_gpio[1] = 48, - .en_level[1] = 1, - .chain = 1, - .chip_index = 1, - - .en_gpio_num = 2, - .en_logic_num = 0, -}; - -/* fpga */ -static firmware_upgrade_device_t firmware_upgrade_device_data1 = { - .type = "SPI_LOGIC", - .chain = 3, - .chip_index = 1, - .upg_type.sysfs = { - .dev_name = "/dev/fpga0", - .ctrl_base = 0xa00, - .flash_base = 0x1A0000, - .test_base = 0x7F0000, - .test_size = 0x10000, - }, - .en_gpio_num = 0, - .en_logic_num = 0, -}; - -static firmware_upgrade_device_t firmware_upgrade_device_data2 = { - .type = "SPI_LOGIC", - .chain = 4, - .chip_index = 1, - .upg_type.sysfs = { - .dev_name = "/dev/fpga0", - .ctrl_base = 0xa00, - .flash_base = 0x0, - .test_base = 0x7F0000, - .test_size = 0x10000, - }, - .en_gpio_num = 0, - .en_logic_num = 0, -}; - -/* bios */ -static firmware_upgrade_device_t firmware_upgrade_device_data3 = { - .type = "MTD_DEV", - .chain = 2, - .chip_index = 1, - .upg_type.sysfs = { - .mtd_name = "BIOS", - .flash_base = 0x800000, - }, - - .en_gpio_num = 0, - .en_logic_num = 0, -}; - -static void firmware_device_release(struct device *dev) -{ - return; -} - -static struct platform_device firmware_upgrade_device[] = { - { - .name = "firmware_cpld_ispvme", - .id = 1, - .dev = { - .platform_data = &firmware_upgrade_device_data0, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 2, - .dev = { - .platform_data = &firmware_upgrade_device_data1, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 3, - .dev = { - .platform_data = &firmware_upgrade_device_data2, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 4, - .dev = { - .platform_data = &firmware_upgrade_device_data3, - .release = firmware_device_release, - }, - }, - }; - - static int __init firmware_upgrade_device_init(void) - { - int i; - int ret = 0; - firmware_upgrade_device_t *firmware_upgrade_device_data; - - WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); - for (i = 0; i < ARRAY_SIZE(firmware_upgrade_device); i++) { - firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; - ret = platform_device_register(&firmware_upgrade_device[i]); - if (ret < 0) { - firmware_upgrade_device_data->device_flag = -1; /* device register failed, set flag -1 */ - printk(KERN_ERR "firmware_upgrade_device id%d register failed!\n", i + 1); - } else { - firmware_upgrade_device_data->device_flag = 0; /* device register suucess, set flag 0 */ - } - } - return 0; - } - - static void __exit firmware_upgrade_device_exit(void) - { - int i; - firmware_upgrade_device_t *firmware_upgrade_device_data; - - WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); - for (i = ARRAY_SIZE(firmware_upgrade_device) - 1; i >= 0; i--) { - firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; - if (firmware_upgrade_device_data->device_flag == 0) { /* device register success, need unregister */ - platform_device_unregister(&firmware_upgrade_device[i]); - } - } - } - - module_init(firmware_upgrade_device_init); - module_exit(firmware_upgrade_device_exit); - MODULE_DESCRIPTION("FIRMWARE UPGRADE Devices"); - MODULE_LICENSE("GPL"); - MODULE_AUTHOR("support"); diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_base_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_base_cpld_header.vme deleted file mode 100644 index d0120b0b324f1f89296cfe9ba7d22c0db960986a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmXR)O)E+*&WKM+EKZG2F33sIE6Yvga`W_Y^>B4`aShVoa&Zj{i41VHHK;H$00C1o zE-)XYn9JG2(bLb?5J-Cl_&NHz+JZ&HT!Vr={rzmq48SIVm52GdaybV%1C23FNlGOY;=mQj-)6%oPj`tW1rq42%_w42%r9xELfA!WcPNgc%Ch6omf+K>;TN zI|CClGZXgH!~gPQd^G diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_cpu_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_cpu_cpld_header.vme deleted file mode 100644 index 5d29b5b6806c2abfd58dedbd51b068c7ce73ebc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmXR)O)E+*&WKMgC}j zE={gfh3t4BFf`IL{FvQGl3I|HUzwYlSE3M-pP!>(tY-+cA;{G+1Zb#& zi(`nZl|pc7o`P3tj)I|uf{}rhiJ_IT5s+bI$i>AVsSw73UUZDuonm^2s1LUh%g-Dz0xMi^q-{wBs{M`fKi%B>P0&fi1#1FOOfhW H&QuQo0|!pK diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_fan_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_fan_cpld_header.vme deleted file mode 100644 index 5a7fb9b1285100a967097fa9c10fef2737454e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmXR)O)E+*&WKM-%!^Mh$Vt&F%T48S^Yn4`aCLNX4btFpaSaQJ3~;qIs4y}B0aG(B zFdw9t%h|)x)6dorNP7nOIr_TVf#WR4+MrrdWIj9-CQygbMy036kJjZa`G#4Q}ap`Lh|!-6pZyOfm&T1Lx5%~ zxHyKmS}6pV<|(+PCMg)0D;OGBnHmF;f{}rdAr}{eq(T@Y2eU9k0h@&I|Ns9BI2nO# zb`IhH1x(D$Ox!Qn1sDZ6gc;ZigcO7s8CXOZ4)I=T6J`3(QUDU3S0KPB%_Q}roe9MI N58|arbu4G92LN+sPtE`U diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_maca_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_maca_cpld_header.vme deleted file mode 100644 index 240306b5ddb24304299cd62d97cf70ac34699f8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmXR)O)E+*&WO)VOiqkXF33sIE6Yvga`W_Y^>B4`aShVoa&Zj{i41VHHK;H$00C1o zE-)XYn9JG2(bLb?5J-Cl_&NHz+JZ&HT!Vr={rzmq48SIVm52GdaybV%1C2>cHZnFg zHc#c!SecqwnOG_q85kLIaWP0LgfVh32{RP12?+oHU%&}s zvV)mS%*;&OFW3bb1v!Kn*b9Udgc%uFL>Lb7UTG6$`p;4T5}sEez$ncm^`e~##QP88 LrAT!wXQ~GPhE7km diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_macb_cpld_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.cpld_refresh/refresh_macb_cpld_header.vme deleted file mode 100644 index fc3c537189e3796c4970a04ca5825cdee991ccfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmXR)O)E+*&WO)VOiqeVF33sIE6Yvga`W_Y^>B4`aShVoa&Zj{i41VHHK;H$00C1o zE-)XYn9JG2(bLb?5J-Cl_&NHz+JZ&HT!Vr={rzmq48SIVm52GdaybV%gN!jZFikX1 zN#WAuO4U6U4+MrrdWIj9-CQygbMy036kJjZa`G#4Q}ap`Lh|!-6pZyOfm&T1Lx5%~ zxHyKmS}6pV<|(+PCMg)0D;OGBnVMRem?{_<7#VVLF-R(eF>){pGZe6K2>&nOWCpU> zC4~R~|6jnw%*@37f?a@7kVBY(y+BAon2~`+gy9hHl{QhP|11R{;duoDjM7X}FWQ+v Oy#F9xid4sPrg{L65l_$n diff --git a/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/cpld_test_header.vme b/platform/broadcom/sonic-platform-modules-micas/m2-w6520-24dc8qc/.upgrade_test/cpld_test_header.vme deleted file mode 100644 index 29bc7594d140dea035ed6a1348fc2f7ace7197bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmaiv%}T>S6h}e-G-4-dQHbPO6dHIBs9 z1c}E{It^WMrn6}@p<(ly)A?`{bOkkE?}<>)Gzl zYLq-IH|2H>3FAfix?$T2va&3oXAcERqf9s -#include -#include -#include -#include -#include - -static int g_wb_firmware_upgrade_debug = 0; -static int g_wb_firmware_upgrade_error = 0; - -module_param(g_wb_firmware_upgrade_debug, int, S_IRUGO | S_IWUSR); -module_param(g_wb_firmware_upgrade_error, int, S_IRUGO | S_IWUSR); - -#define WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE(fmt, args...) do { \ - if (g_wb_firmware_upgrade_debug) { \ - printk(KERN_INFO "[WB_FIRMWARE_UPGRADE][VER][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -#define WB_FIRMWARE_UPGRADE_DEBUG_ERROR(fmt, args...) do { \ - if (g_wb_firmware_upgrade_error) { \ - printk(KERN_ERR "[WB_FIRMWARE_UPGRADE][ERR][func:%s line:%d]\r\n"fmt, __func__, __LINE__, ## args); \ - } \ -} while (0) - -/* cpld */ -static firmware_upgrade_device_t firmware_upgrade_device_data0 = { - .type = "JTAG", - .upg_type.jtag = { - .tdi = 67, - .tck = 65, - .tms = 6, - .tdo = 32, - }, - .en_gpio[0] = 50, - .en_level[0] = 0, - .chain = 1, - .chip_index = 1, - - .en_gpio_num = 1, - .en_logic_num = 0, -}; - -/* fpga */ -static firmware_upgrade_device_t firmware_upgrade_device_data1 = { - .type = "SPI_LOGIC", - .chain = 1, - .chip_index = 1, - .upg_type.sysfs = { - .dev_name = "/dev/fpga0", - .ctrl_base = 0xa00, - .flash_base = 0x2f0000, - .test_base = 0x7F0000, - .test_size = 0x10000, - }, - .en_gpio_num = 0, - .en_logic_num = 0, -}; - -/* 5387 */ -static firmware_upgrade_device_t firmware_upgrade_device_data2 = { - .type = "SYSFS", - .chain = 2, - .chip_index = 1, - .upg_type.sysfs = { - .sysfs_name = "/sys/bus/spi/devices/spi0.0/eeprom", - }, - .en_logic_dev[0] = "/dev/cpld1", - .en_logic_addr[0] = 0x4d, - .en_logic_mask[0] = 0xfe, - .en_logic_en_val[0] = 0, - .en_logic_dis_val[0]= 1, - .en_logic_width[0] = 1, - - .en_gpio_num = 0, - .en_logic_num = 1, -}; - -/* bios */ -static firmware_upgrade_device_t firmware_upgrade_device_data3 = { - .type = "MTD_DEV", - .chain = 3, - .chip_index = 1, - .upg_type.sysfs = { - .mtd_name = "BIOS", - .flash_base = 0x800000, - }, - - .en_gpio_num = 0, - .en_logic_num = 0, -}; - -/* fpga */ -static firmware_upgrade_device_t firmware_upgrade_device_data4 = { - .type = "SPI_LOGIC", - .chain = 4, - .chip_index = 1, - .upg_type.sysfs = { - .dev_name = "/dev/fpga0", - .ctrl_base = 0xa00, - .flash_base = 0x0, - .test_base = 0x7F0000, - .test_size = 0x10000, - }, - .en_gpio_num = 0, - .en_logic_num = 0, -}; - -static void firmware_device_release(struct device *dev) -{ - return; -} - -static struct platform_device firmware_upgrade_device[] = { - { - .name = "firmware_cpld_ispvme", - .id = 1, - .dev = { - .platform_data = &firmware_upgrade_device_data0, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 2, - .dev = { - .platform_data = &firmware_upgrade_device_data1, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 3, - .dev = { - .platform_data = &firmware_upgrade_device_data2, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 4, - .dev = { - .platform_data = &firmware_upgrade_device_data3, - .release = firmware_device_release, - }, - }, - { - .name = "firmware_sysfs", - .id = 5, - .dev = { - .platform_data = &firmware_upgrade_device_data4, - .release = firmware_device_release, - }, - }, - }; - - static int __init firmware_upgrade_device_init(void) - { - int i; - int ret = 0; - firmware_upgrade_device_t *firmware_upgrade_device_data; - - WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); - for (i = 0; i < ARRAY_SIZE(firmware_upgrade_device); i++) { - firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; - ret = platform_device_register(&firmware_upgrade_device[i]); - if (ret < 0) { - firmware_upgrade_device_data->device_flag = -1; /* device register failed, set flag -1 */ - printk(KERN_ERR "firmware_upgrade_device id%d register failed!\n", i + 1); - } else { - firmware_upgrade_device_data->device_flag = 0; /* device register suucess, set flag 0 */ - } - } - return 0; - } - - static void __exit firmware_upgrade_device_exit(void) - { - int i; - firmware_upgrade_device_t *firmware_upgrade_device_data; - - WB_FIRMWARE_UPGRADE_DEBUG_VERBOSE("enter!\n"); - for (i = ARRAY_SIZE(firmware_upgrade_device) - 1; i >= 0; i--) { - firmware_upgrade_device_data = firmware_upgrade_device[i].dev.platform_data; - if (firmware_upgrade_device_data->device_flag == 0) { /* device register success, need unregister */ - platform_device_unregister(&firmware_upgrade_device[i]); - } - } - } - - module_init(firmware_upgrade_device_init); - module_exit(firmware_upgrade_device_exit); - MODULE_DESCRIPTION("FIRMWARE UPGRADE Devices"); - MODULE_LICENSE("GPL"); - MODULE_AUTHOR("support"); From 9ce8f106fb583ead51407e356b1be7fb0fa5a9f2 Mon Sep 17 00:00:00 2001 From: philo Date: Mon, 19 Feb 2024 09:13:07 +0800 Subject: [PATCH 5/8] update rules.mk Signed-off-by: philo --- platform/broadcom/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/broadcom/rules.mk b/platform/broadcom/rules.mk index b4cba59f132c..15073c3d89a0 100755 --- a/platform/broadcom/rules.mk +++ b/platform/broadcom/rules.mk @@ -21,8 +21,8 @@ include $(PLATFORM_PATH)/platform-modules-quanta.mk #include $(PLATFORM_PATH)/platform-modules-ruijie.mk #include $(PLATFORM_PATH)/platform-modules-ragile.mk #include $(PLATFORM_PATH)/platform-modules-tencent.mk -include $(PLATFORM_PATH)/platform-modules-micas.mk #include $(PLATFORM_PATH)/platform-modules-ufispace.mk +include $(PLATFORM_PATH)/platform-modules-micas.mk include $(PLATFORM_PATH)/docker-syncd-brcm.mk include $(PLATFORM_PATH)/docker-syncd-brcm-rpc.mk include $(PLATFORM_PATH)/docker-saiserver-brcm.mk From 528d1c2b7d107a488a4fcd2de55dd26a9449b13d Mon Sep 17 00:00:00 2001 From: philo Date: Fri, 23 Feb 2024 10:23:41 +0800 Subject: [PATCH 6/8] update device files Signed-off-by: philo --- .../td4-m2-w6520-24dc8qc-24x200G+8x400G.yml | 1 - .../custom_led.bin | Bin 532 -> 648 bytes .../plugins/ssd_util.py | 13 ++++++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml index c455ec72f29d..c4dd4e36d1ca 100644 --- a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml +++ b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/M2-W6520-24DC8QC/td4-m2-w6520-24dc8qc-24x200G+8x400G.yml @@ -8,7 +8,6 @@ bcm_device: l3_alpm_template: 2 l3_alpm2_bnk_threshold: 100 svi_my_station_optimization: 1 - sai_nbr_bcast_ifp_optimized: 2 uft_mode: 1 l3_enable: 1 l2_hitbit_enable: 0 diff --git a/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/custom_led.bin b/device/micas/x86_64-micas_m2-w6520-24dc8qc-r0/custom_led.bin index d1b65a292f655b64393b895313007e3a8314a04f..34f9374b98786b398ba0619fcbd101e5e3b5b661 100644 GIT binary patch literal 648 zcma)1OK1}T5Ph?|X*LzDQG|_&5_f~zL}@jO#1C#hjIp4$iW0L`6Q!{6CSJ@%P!AFt zrKJklt|E9+dMQgiRWJ4~n+j6NWx+!aA_T75VUo=#iG{Y+vy+aS^hrIi5MFV*ajW3ofeYj-SSIwX*`yL`^rOnjQeu~ zt|1p0yG0lAEQfQ!c7IB8g*Z}zD-FXF;)}R$w$9R_;h~T1p7u2s)XjQe=C}HZ5vxp@ zhO@_<#8zW6X2UBBQ=gSsLwp>4AkEB~m&Xmoy4B=Jou;4GNvp7^+f2UOS-)$(XVTI+ z(Y-0_Ea>Dxg;w%Ch1?43@;x>R9mi)Z(npnd&Zy7GE?Gr6s&pK&m1SAqq%1qV6hXK0 z3zhz$NczdtfQ7+uJCPDsY{W)Bl%8{+8uF@4b|k+ce;`j53jX}BDzCx!ZvSUztsfC=!yxuz9}XgeV+dhA!q|c_oX166LKPEe X;31~*1Qwowumf3~L=87k#~u6xFtVlO literal 532 zcmaiwF-RK$6o&toc`67eSMJwMW_%wg_VTyhS&jy27> zfVLWwatM1&3b_5)2x?VD@nu3wsJiB9dhG0$d6!k5)TOkdxMFP^L!yp2=O(B(X9%e* z;yS*rq(1YX$#>kK#KrcY@AN^)Ff-9X-e361OX4nz&zH2pD7EjNT_vBGf_&AtXu5m< z_tiDQNhSHnt`0r9W(O9_tW;r}uUT(}6>r#SHCUHF3wu zg6)F0)A__tEd$T``UIKc Date: Wed, 24 Apr 2024 09:07:22 +0800 Subject: [PATCH 7/8] Update restful_api.py --- .../common/lib/restful_util/restful_api.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py index 6caba07d915e..c1e9dd7738b9 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py @@ -58,7 +58,6 @@ def post_request(self, url, data, time_out=(30, 30)): full_url = self.BmcBaseUrl + url self.restful_api_debug_log("POST: %s -d %s" % (full_url, str(data))) response = requests.post(full_url, json=data, timeout=time_out) - # 检查响应状态码 if response.status_code == 200: self.restful_api_debug_log("RET: %s" % str(response.json())) return response.json() @@ -72,25 +71,20 @@ def post_request(self, url, data, time_out=(30, 30)): if __name__ == '__main__': client = RestfulApiClient() - # 发送 GET 请求 time_data = client.get_request(client.TimeUrl) print("Current time:", time_data) - # 获取fans fans = client.get_request(client.FansUrl) print("Current fans:", fans) - # 发送 POST 请求 new_time = "2023-08-31 14:41:28 +0800" response = client.post_request(client.TimeUrl, {"time": new_time}) print("Time set successfully:", response) - # 发送 POST 请求 cmd = "bmc reset cold" response = client.post_request(client.PowerUrl, {"cmd": cmd}) print("Time set successfully:", response) - # 发送 GET 请求 #sensors = client.get_request(client.SensorsUrl) #print("sensors:", sensors) -''' \ No newline at end of file +''' From b88c94192a99731ab933fb5d89ab5b4591f647e7 Mon Sep 17 00:00:00 2001 From: Philo <135693886+philo-micas@users.noreply.github.com> Date: Sun, 28 Apr 2024 16:22:32 +0800 Subject: [PATCH 8/8] Update restful_api.py --- .../common/lib/restful_util/restful_api.py | 1 - 1 file changed, 1 deletion(-) diff --git a/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py index c1e9dd7738b9..2cb7f5273a44 100755 --- a/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py +++ b/platform/broadcom/sonic-platform-modules-micas/common/lib/restful_util/restful_api.py @@ -6,7 +6,6 @@ import requests - class RestfulApiClient(): Debug_file = "/tmp/restful_api_debug" BmcBaseUrl = 'http://240.1.1.2:8080'